RDF star profile "functional opaque" - w3c/rdf-star-wg GitHub Wiki
graph ::= ( triple | reifier rdf:annotationOf opaqueTripleTerm )*
triple ::= subject predicate object
subject ::= iri | BlankNode
predicate ::= iri_but_rdf:annotationOf
object ::= iri | BlankNode | literal
reifier ::= iri | BlankNode
opaqueTripleTerm ::= triple
- RDF 1.1 syntax is the above without the opaqueTripleTerm category.
- A term is denoted by
r, a triple byt, and a graph byg. - Given a triple
t, we denote the subject, predicate, object oftast.s,t.p,t.o, respectively.
An RDF simple interpretation I is a structure <IR, IP, IS, IL, IEXT, SRE> consisting of:
- A non-empty set
IRof resources, called the domain or universe ofI. - A set
IP, called the set of properties ofI. - A mapping
ISfrom IRIs intoIR ⋃ IP, called the interpretation of IRIs. - A partial mapping
ILfrom literal intoIR, called the interpretation of literals. - A mapping
IEXTfromIPinto2IR x IR, called the extension of properties. - ⏩ A (canonical) injective function
SREfrom opaqueTripleTerm into literal of datatyperdf:TripleTermDatatype, called the syntactic denotation of triple terms. ⏪
A is a mapping from BlankNode to IR.
Given I and A, the function [I+A](.) is defined over terms, triples, and graphs as follows.
-
[I+A](r) = IS(r)ifris a iri -
[I+A](r) = IL(r)ifris a literal - ⏩
[I+A](r) = IL(SRE(r))ifris a opaqueTripleTerm ⏪️ -
[I+A](r) = A(r)ifris a BlankNode
-
[I+A](t) = TRUEif and only if<[I+A](t.s), [I+A](t.o)> ∈ IEXT([I+A](t.p)) -
[I+A](g) = TRUEif and only if∀ t ∈ g . [I+A](t) = TRUE
An interpretation I is a model of a graph g if and only if
∃ A . [I+A](g) = TRUE and
⏩ ∀ x,y1,y2 . (x,y1) ∈ IEXT(IS(rdf:annotationOf)) ⋀ (x,y2) ∈ IEXT(IS(rdf:annotationOf)) → y1=y2 ⏪️
The set of all models of a graph g is called models(g).
Simple entailment: g ⊨ g' if and only if models(g) ⊆ models(g').
- RDF 1.1 semantics is the above without the parts within ⏩...⏪ marks, involving the opaqueTripleTerm category, and the functionality of rdf:annotationOf.