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 oft
ast.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
IR
of resources, called the domain or universe ofI
. - A set
IP
, called the set of properties ofI
. - A mapping
IS
from IRIs intoIR ⋃ IP
, called the interpretation of IRIs. - A partial mapping
IL
from literal intoIR
, called the interpretation of literals. - A mapping
IEXT
fromIP
into2
IR x IR
, called the extension of properties. - ⏩ A (canonical) injective function
SRE
from opaqueTripleTerm into literal, 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)
ifr
is a iri -
[I+A](r) = IL(r)
ifr
is a literal - ⏩
[I+A](r) = IL(SRE(r))
ifr
is a opaqueTripleTerm ⏪️ -
[I+A](r) = A(r)
ifr
is a BlankNode
-
[I+A](t) = TRUE
if and only if<[I+A](t.s), [I+A](t.o)> ∈ IEXT([I+A](t.p))
-
[I+A](g) = TRUE
if 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.