- From: Andy Seaborne <andy@apache.org>
- Date: Mon, 1 Jan 2024 16:52:15 +0000
- To: RDF-star Working Group <public-rdf-star-wg@w3.org>
In the named occurrence proposal, can the blank node of a named occurrence RDF term be used on its own as the named occurrence? << _:a | :s :p :o >> :starts 1989 . _:a :finishes 1990 . As the name can be a URI, << <http://example/occ1> | :s :p :o >> :starts 1999 . <http://example/occ1> :finishes 2000 . In SPARQL: does this match the examples above? SELECT * { ?X :starts ?start . ?X :finishes ?finish . } If yes, either _:a :finishes 1990 . is actually << _:a | :s :p :o >> :finishes 1990 . or if _:a :starts 1989 . _:a :finishes 1990 . then how does the application find :s :p :o? In the proposed semantics: [1] [I+A](r) = IS(r) if r is a iri [I+A](r) = A(r) if r is a BlankNode [I+A](r) = [I+A](r.id) if r is a tripleOccurrence so [I+A](r) = A(r.id) if r is a tripleOccurrence and r.id is a blank node [I+A](r) = IS(r.id) if r is a tripleOccurrence and r.id is a URI. This has an impact on implementations and APIs. Take Apache CommonsRDF [2] as an example. The accessor function on a graph is Stream<? extends Triple> stream(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) where subject/predicate/object can be a constant or a wildcard. So if the application is given <http://example/occ1>, how does it determine whether URI is named occurrence and if so, how does it find the triple subject/predicate/object? Scanning all triples to find named occurrences and looking at the id of a named occurrence is expensive. Expecting an addition function x -> triple just for occurrences is a big step. In the triple-term version has rdf:occurrenceOf so there is a triple to maps the blank node / URI to the 3-tuple of s,p,o that had the effect of OT. Andy [1] https://github.com/w3c/rdf-star-wg/wiki/Semantics:-Andy's-proposal#semantics [2] Apache CommonsRDF : https://commons.apache.org/proper/commons-rdf/
Received on Monday, 1 January 2024 16:52:23 UTC