Warning:
This wiki has been archived and is now read-only.
RDF-WG GraphContainers
From Provenance WG Wiki
How do you use RDF to model the "Dataset" created in an empty SPARQL endpoint that receives the following requests?
Contents
INSERT into first third party
How do you use RDF to model the "Dataset" created in an empty SPARQL endpoint that receives the following request?
# (Telling http://logd.tw.rpi.edu/sparql) PREFIX tblcard: <http://www.w3.org/People/Berners-Lee/card#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> INSERT { GRAPH <http://www.w3.org/People/Berners-Lee/card> { tblcard:i rdfs:label "Tim Berners-Lee" } }
How it is treated by currently deployed SPARQL endpoint implementations
@PREFIX tblcard: <http://www.w3.org/People/Berners-Lee/card#> . @PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @PREFIX sd: <http://www.w3.org/ns/sparql-service-description#> . @PREFIX : <http://logd.tw.rpi.edu/sparql/our_namespace_for_our_datasets#> . :logd_dataset a r:Dataset; sd:namedGraph tblcard:i; . tblcard:i # <-- The problem here is that the SPARQL endpoint is using # someone else's URI to describe its own partition of triples. a sparql:NamedGraph; rdf:containsTriples ( [ rdf:subject tblcard:i; rdf:predicate rdfs:label; rdf:object "Tim Berners-Lee" ] ); rdf:hasGraphSerialization [ rdf:value """@PREFIX tblcard: <http://www.w3.org/People/Berners-Lee/card#> . @PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> . <http://www.w3.org/People/Berners-Lee/card> { tblcard:i rdfs:label "Tim Berners-Lee }"""^^rdf:trig ]; .
How it should be reinterpreted
@PREFIX tblcard: <http://www.w3.org/People/Berners-Lee/card#> . @PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @PREFIX sd: <http://www.w3.org/ns/sparql-service-description#> . @PREFIX : <http://logd.tw.rpi.edu/sparql/our_namespace_for_our_datasets#> . :logd_dataset a r:Dataset; sd:namedGraph :card; . :card a r:GraphContainer; # aka g-box sd:name tblcard:i; dcterms:identifier tblcard:i; r:inDataset :logd_dataset; # r:inDataset provides the "given context" that Dublin Core # mentions in the definition for dcterms:identifier. r:contains :card_snapshot; . :card_snapshot a rdf:Graph; # aka g-snap rdf:containsTriples ( [ rdf:subject tblcard:i; rdf:predicate rdfs:label; rdf:object "Tim Berners-Lee" ] ); rdf:hasGraphSerialization [ rdf:value """@PREFIX tblcard: <http://www.w3.org/People/Berners-Lee/card#> . @PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> . <http://www.w3.org/People/Berners-Lee/card> { tblcard:i rdfs:label "Tim Berners-Lee }"""^^rdf:trig ]; .
INSERT into second first party
How do you use RDF to model the "Dataset" created in an empty SPARQL endpoint that receives the following request?
# (Telling http://dbpedia.org/sparql) PREFIX tblcard: <http://www.w3.org/People/Berners-Lee/card#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> INSERT { GRAPH <http://www.w3.org/People/Berners-Lee/card> { tblcard:i rdfs:label "Tim Berners-Lee" } }