TREEcg / specification

RDF vocabulary and hypermedia specification to publish your Linked Data using search trees
https://w3id.org/tree/specification
27 stars 12 forks source link

More precise Named Graphs support in combination with shape extraction #88

Closed pietercolpaert closed 7 months ago

pietercolpaert commented 8 months ago

Example:

ex:TREECGMembers a tree:Collection;
            rdfs:label "The collection of TREE CG members"@en;
            tree:shape [ ... ] ;
            tree:member ex:Sander1, ex:Sander2, ... .

ex:Sander1 dct:created "2023-01-01" ;
                     dct:versionOf ex:Sander . 
ex:Sander1 {
    ex:Sander a foaf:Person ;
              rdfs:label "Sander" ;
              foaf:knows ex:Thomas .
}
ex:Sander2 dct:created "2023-06-01" .
                     dct:versionOf ex:Sander . 
ex:Sander2 {
    ex:Sander a foaf:Person ;
              rdfs:label "Sander" ;
              foaf:knows ex:Thomas, ex:Pieter .
}

Over here, we only want ex:Sander a foaf:Person to be extracted once. Furthermore, we also want when we extract ex:Sander1, that ex:Sander foaf:knows ex:Pieter is not extracted.

When no shape is defined, this will work fine, however, when a shape is defined that also further describes the object of dct:versionOf, then we will get into the trouble with the current implementation.

I propose to implement an extra handle in the member extraction algorithm that during the shape extraction step removes quads within graphs that belong to other members.