Interesting... we're thinking that the first step for PHP support would involve a 'm-ld service' process, which communicates with the PHP via the web server https://github.com/m-ld/m-ld-spec/wiki/PHP-app
There would still be a lot of value in having a PHP library for integrating with it, which could then later use a fully-native PHP m-ld engine.
Hi Danny, thanks for dropping by, and for your interest.
he mentioned the IDs for bnodes thing. Do you have anything in place for that?
m-ld's API uses JSON-LD for writing data. If a JSON-LD object does not have an
@id, it's given a generated one by the engine (we "skolemize" it). This means that blank nodes never appear in the data.
say I want to make a thing that talks over SPARQL - how do I flip between endpoint X and the store between a m-ld setup?
So it might be better to have the switch in your client app, which decides whether the data it wants to look at is in a m-ld domain, and if so, clones it locally. It can still use SPARQL, and it could even do distributed queries across both the m-ld domain and remote conventional triplestores, using Comunica.
Finally, you might mean that you want to replace how the m-ld engine itself persists data internally. We're considering adding an extension API to do that – for example, for server-based clones that want to persist to a cloud-managed triplestore. This is not entirely straightforward because a m-ld clone has to atomically persist not just the triples but a bunch of control metadata too.
Sorry, huge download of info! I'd be interested to learn what your proposed app looks like, happy to discuss further. (BTW if you want to go more long-form you're welcome to post in the Discussion forum).
re. generating @id - ok, makes sense. A while back I worked for Talis and their platform/store took essentially the same approach, seemed to work :)
re. clones/domains/endpoints, yeah...I haven't fully absorbed the clone model yet, I guess I should have a play. I hadn't seen Comunica before - nice!
re. proposed app - I need to learn typescript/angular for some work-work so I was thinking of reworking some of the bits over here : https://github.com/danja/HKMS#components - mostly built around the idea of browser-based views querying a remote SPARQL server