RDF star "baseline with IRI opacity" - w3c/rdf-star-wg GitHub Wiki
graph ::= triple*
triple ::= subject predicate object
subject ::= NoLiteralTerm
predicate ::= iri
object ::= term
NoLiteralAtomicTerm ::= iri | BlankNode
atomicTerm ::= NoLiteralAtomicTerm | literal
NoLiteralTerm ::= NoLiteralAtomicTerm | tripleTerm
term ::= NoLiteralTerm | literal
tripleTerm ::= transparentTripleTerm | opaqueTripleTerm
transparentTripleTerm ::= triple
opaqueTripleTerm ::= triple
- RDF 1.1 syntax is the above without the tripleTerm category and its dependents.
- 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, ISo, RE> 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 mapping
ISofrom IRIs intoIR ⋃ IP, called the opaque interpretation of IRIs. ⏪ - ⏩ An injective function
REfromIR x IP x IRintoIR, called the 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, and the function [[I+A]](.) is defined over terms, as follows.
-
[I+A](r) = IS(r)ifris a iri -
[I+A](r) = IL(r)ifris a literal - ⏩
[I+A](r) = RE([I+A](r.s), [I+A](r.p), [I+A](r.o))ifris a transparentTripleTerm ⏪️ - ⏩
[I+A](r) = RE([[I+A]](r.s), [[I+A]](r.p), [[I+A]](r.o))ifris a opaqueTripleTerm ⏪️ -
[I+A](r) = A(r)ifris a BlankNode
- ⏩
[[I+A]](r) = ISo(r)ifris a iri ⏪ - ⏩
[[I+A]](r) = IL(r)ifris a literal ⏪ - ⏩
[I+A](r) = RE([[I+A]](r.s), [[I+A]](r.p), [[I+A]](r.o))ifris a tripleTerm ⏪️ - ⏩
[[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
A simple interpretation I is a model of a graph g if and only if ∃ A . [I+A](g) = TRUE.
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 simple semantics is the above without the parts within ⏩...⏪ marks.
graph ::= triple*
triple ::= ( subject predicate object ) |
( reifier rdf:reifies transparentTripleTerm ) |
( annotation rdf:isAnnotationOf opaqueTripleTerm )
subject ::= noLiteralAtomicTerm
predicate ::= iri_but_rdf:reifies_or_rdf:isAnnotationOf
object ::= atomicTerm
noLiteralAtomicTerm ::= iri | BlankNode
atomicTerm ::= noLiteralAtomicTerm | literal
noLiteralTerm ::= noLiteralAtomicTerm | tripleTerm
term ::= noLiteralTerm | literal
reifier ::= subject
annotation ::= object
tripleTerm ::= transparentTripleTerm | opaqueTripleTerm
transparentTripleTerm ::= triple
opaqueTripleTerm ::= triple
- Observe that RDF 1.1 is always well formed.
RDF semantics is defined over the well formed fragment of RDF.
RDF semantics restricts interpretations as follows:
A RDF interpretation I is a RDF model of a graph g if and only if
-
∃ A . [I+A](g) = TRUEand - all the RDF 1.1 metamodelling stuff and
- all the RDF 1.1 axiomatic triples stuff and
- ⏩ metamodelling characterising reification ⏪️ and
- ⏩ axiomatic triples characterising reification ⏪️
The set of all RDF models of a graph g is called rdf-models(g).
RDF entailment: g ⊨ g' if and only if rdf-models(g) ⊆ rdf-models(g').
- RDF 1.1 RDF semantics is the above without the parts within ⏩...⏪ marks.