From https://ruben.verborgh.org/blog/2018/12/28/designing-a-linked-data-developer-experience/#ldflex-feeling:

If you are dealing with a different type of data, you cannot use them. This is odd, since Linked Data can model anything. They assume that objects have a specific set of properties. This is a major restriction, since Linked Data enables arbitrary data shapes.

I don't use LDflex, so my "issue" is just theoretical, musing about the citation from your blog post: say, I want to query RDF profiles, where one profile uses foaf and the other uses schema as namespace for the name property - how would you access the data? Tricky "vocabulary alignment" via one jsonld-context is not allowed, for json-keys have to be unique:

{ "@context": { "name": "http://foaf.org/name", "name": "http://schema.org/name" } Because of this it's probably also not allowed to write two context.jsonld with one key referencing two different properties. In other words, what to do to get this SPARQL, resp. how to get the idea behind it:

SELECT ?friend ?name WHERE { { ?friend foaf:name ?name. } UNION { ?friend schema:name ?name }. }


The long-term answer here is reasoning based on ontologies.

A JSON-LD context alone indeed won't get us there. However, the ontological equivalence between foaf:name and schema:name can allow the LDflex internals to derive the SPARQL query you provide in the example. Currently, only the simple SPARQL query without union would be derived.

However, this is the long term only; there are still quite some things to tackle (notably shapes) before we should dive into reasoning.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.