-
Notifications
You must be signed in to change notification settings - Fork 8
RDF star "alternative baseline"
graph ::= triple*
triple ::= tripleStructure
tripleStructure ::= subject predicate object
subject ::= NoLiteralTerm
predicate ::= iri
object ::= term
NoLiteralTerm ::= NoLiteralAtomicTerm | tripleTerm
NoLiteralAtomicTerm ::= iri | BlankNode
tripleTerm ::= tripleStructure
term ::= NoLiteralTerm | literal
- 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 structure
s
, we denote the subject, predicate, object ofs
ass.s
,s.p
,s.o
, respectively.
An RDF simple interpretation I
is a structure <IR
, IP
, IS
, IL
, IEXT
, RE
> 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. - ⏩ An injective function
RE
fromIR x IP x IR
intoIR
, 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 as follows.
-
[I+A](r) = IS(r)
ifr
is a iri -
[I+A](r) = IL(r)
ifr
is a literal - ⏩
[I+A](r) = RE([I+A](r.s), [I+A](r.p), [I+A](r.o))
ifr
is a tripleTerm ⏪️ -
[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
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.
RDF semantics restricts the function [I+A](.)
with the following additional conditions:
⏩
[I+A](t) = TRUE
implies
<[I+A](t.s), [I+A](rdf:TripleTerm)> ∈ IEXT([I+A](rdf:type))
if t.s
is a triple term
⏪️
⏩
[I+A](t) = TRUE
implies
<[I+A](t.o), [I+A](rdf:TripleTerm)> ∈ IEXT([I+A](rdf:type))
if t.o
is a triple term
⏪️
⏩
[I+A](t) = TRUE
implies
<[I+A](t.p), [I+A](rdf:ReificationProperty)> ∈ IEXT([I+A](rdf:type))
if <[I+A](t.o), [I+A](rdf:TripleTerm)> ∈ IEXT([I+A](rdf:type))
⏪️
⏩
[I+A](t) = TRUE
implies
<[I+A](t.p), [I+A](rdf:InverseReificationProperty)> ∈ IEXT([I+A](rdf:type))
if <[I+A](t.s), [I+A](rdf:TripleTerm)> ∈ IEXT([I+A](rdf:type))
⏪️
A RDF interpretation I
is a RDF model of a graph g
if and only if ∃ A . [I+A](g) = TRUE
.
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.
if S contains | then S RDF entails | |
---|---|---|
reif1 | sss aaa <<(xxx yyy zzz)>> . | aaa rdf:type rdf:ReificationProperty . |
reif2 | <<(xxx yyy zzz)>> aaa ooo . | aaa rdf:type rdf:InverseReificationProperty . |
triple1 | sss aaa <<(xxx yyy zzz)>> . | <<(xxx yyy zzz)>> rdf:type rdf:TripleTerm . |
triple2 | <<(xxx yyy zzz)>> aaa ooo . | <<(xxx yyy zzz)>> rdf:type rdf:TripleTerm . |
RDF axiomatic triples |
---|
rdf:reifies rdf:type rdf:ReificationProperty . |
The RDF 1.2 Concepts and Abstract Syntax document should be weakened or expanded, to reflect that we can use alternative reification properties:
RDF 1.2 Concepts and Abstract Syntax |
---|
Every triple with a triple term as its object SHOULD use http://www.w3.org/1999/02/22-rdf-syntax-ns#reifies (rdf:reifies) as its predicate. Every triple whose object is not a triple term SHOULD NOT use http://www.w3.org/1999/02/22-rdf-syntax-ns#reifies (rdf:reifies) as its predicate. |
A triple term is represented in Turtle as follows:
<<( s p o )>>
The following temporary shortcut for a term (a triple term reifier) is added to Turtle, which can be used in arbitrary subject or object position:
<< s p o ~ e >>
which expands in Turtle, following the best practice, as follows:
<< s p o ~ e >> p1 o1 . ==> e rdf:reifies <<( s p o )>> . e p1 o1 .
s1 p1 << s p o ~ e >> . ==> e rdf:reifies <<( s p o )>> . s1 p1 e .
Summary of the RDF-star WG wiki.
- Editor's guide
- Meeting minutes
- RDF terminology
- Scribes
- Use Cases collection
- RDF-star syntax and semantics:
- RDF-star "alternative baseline" (VOTED 2024.11.14 - frozen)
- RDF-star "liberal baseline" (current working version)
- RDF-star "minimal baseline" (VOTED 2024.07.18 - frozen - superseded by vote 2024.11.14 - deprecated)
- RDF-star "working baseline" (working version - deprecated)
- RDF‐star baseline examples
- RDF-star and LPGs
- Extending the baseline with "asserted" stuff
- systems and acronyms
- Task forces
- Text Direction considerations
- Text Direction Proposal
- Triple‐Edge-subgroup-proposals