Extending the baseline with "asserted" stuff - w3c/rdf-star-wg GitHub Wiki
We can extend the baseline by adding a new property rdfs:states
(which has been called also rdfs:asserts
).
This is an extension of RDFS.
We extend the RDFS interpretation of a triple if the predicate is rdfs:states
, in order to enforce the truth of the triple associated to the triple term as follows:
[I+A](t) = TRUE iff (<[I+A](t.s), [I+A](t.o)> ∈ IEXT([I+A](t.p)) and
([I+A](tt) = TRUE if (t.p = rdfs:states and
t.o is a triple term and
tt is the triple corresponding to the triple term t.o)))
:a rdfs:states <<(:s :p :o)>> .
entails
:s :p :o .
:a rdfs:states <<(:s :p :o)>> .
is equivalent to
:a rdfs:states <<(:s :p :o)>> .
:s :p :o .
Given the graph:
:a1 rdf:reifies <<(:s1 :p1 :o1)>> .
:a2 rdfs:states <<(:s2 :p2 :o2)>> .
the SPARQL query
SELECT *
WHERE {?s ?p ?o}
returns:
?s ?p ?o
:a1 rdf:reifies <<(:s1 :p1 :o1)>>
:a2 rdfs:states <<(:s2 :p2 :o2)>>
while, under the RDFS entailment regime, it returns:
?s ?p ?o
:a1 rdf:reifies <<(:s1 :p1 :o1)>>
:a2 rdfs:states <<(:s2 :p2 :o2)>>
:s2 :p2 :o2
° It has been suggested that rdfs:states rdfs:subPropertyOf rdf:reifies.
should hold in RDFS.
° It has been suggested that the mapping between RDF-star and LPGs should use rdfs:states
instead rdf:reifies
; but this introduces the possibly incomprehensible behaviour that distinct edges with the same label (type) between the same node identifiers will correspond to a unique triple in the graph, e.g.,
:e111 rdfs:states <<( :john :worksFor :A )>>.
:e222 rdfs:states <<( :john :worksFor :A )>>.
:e111 :sal 100K.
:e222 :sal 200K.
will entail the unique triple in the graph:
:john :worksFor :A.
° It has been suggested that the annotation syntax in Turtle could be mapped into rdfs:states
instead of rdf:reifies
. REJECTED BY A WG STRAW-POLL.