Skip to content

RDF star "liberal baseline"

Enrico Franconi edited this page Feb 4, 2025 · 51 revisions

RDF-star liberal baseline (2025-02-04) - aligned with the RDF Semantics deliverable

ABSTRACT GRAMMAR

graph                 ::= triple*
triple                ::= tripleStructure
tripleStructure       ::= subject predicate object
subject               ::= iri | blankNode | tripleTerm
predicate             ::= iri 
object                ::= term
tripleTerm            ::= tripleStructure
term                  ::= iri | blankNode | literal | tripleTerm

Notes:

  • RDF 1.1 syntax is the above without the tripleTerm category and its dependents.
  • A term is denoted by r, a triple by t, and a graph by g.
  • Given a triple structure s, we denote the subject, predicate, object of s as s.s, s.p, s.o, respectively.
  • A term appears in a graph g if it is in the set TM(g), defined inductively as follows: (1) for each triple t in the graph g, t.s, t.p, and t.o are in TM(g); (2) for each triple term s in TM(g), s.s, s.p, and s.o are in TM(g).
    A triple t appears in a graph g if t is in g or if the triple term composed by t.s, t.p, and t.o appears in g.

SIMPLE SEMANTICS

An RDF simple interpretation I is a structure <IR, IP, IS, IL, IEXT, RE> consisting of:

  1. A non-empty set IR of resources, called the domain or universe of I.
  2. A set IP, called the set of properties of I.
  3. A mapping IS from IRIs into IR ⋃ IP, called the interpretation of IRIs.
  4. A partial mapping IL from literal into IR, called the interpretation of literals.
  5. A mapping IEXT from IP into 2IR x IR, called the extension of properties.
  6. An injective mapping RE from IR x IP x IR into IR, called the interpretation 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)   if r is a iri
  • [I+A](r) = IL(r)   if r is a literal
  • [I+A](r) = RE([I+A](r.s), [I+A](r.p), [I+A](r.o))   if r is a tripleTerm ⏪️
  • [I+A](r) = A(r)   if r 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').

Notes:

  • RDF 1.1 simple semantics is the above without the parts within ⏩...⏪ marks.

RDF SEMANTICS

RDF interpretations add the following new IRI with the namespace prefix rdf: rdf:reifies. ⏪️

The rdfD2 RDF entailment pattern is replaced by the following entailment pattern, so to have a sound and complete set of metamodelling RDF entailment patterns:

if the triple structure appears in S then S RDF entails
rdfD2-ts sss aaa ooo aaa rdf:type rdf:Property .

Additional RDF axiomatic triple:
rdf:reifies rdf:type rdf:Property .

Notes:

  • RDF 1.1 RDF semantics is the above without the parts within ⏩...⏪ marks.

RDFS SEMANTICS

RDFS Interpretations add the following new IRI with the namespace prefix rdfs: rdfs:Proposition. ⏪️

RDFS semantics restricts the function [I+A](.) with the following additional metamodelling condition: ⏪️

<r, [I+A](rdfs:Proposition)> ∈ IEXT([I+A](rdf:type))
  if ∃ x,y,z . RE(x,z,y)=r or 
  if ∃ x . <x,r> ∈ IEXT([I+A](rdf:reifies))

The rdfs4a and rdfs4b RDFS entailment patterns are replaced by the following entailment patterns:

if the triple structure appears in S then S RDFS entails
rdfs4a-ts sss aaa ooo sss rdf:type rdfs:Resource .
rdfs4b-ts sss aaa ooo ooo rdf:type rdfs:Resource .

Additional metamodelling RDFS entailment patterns, valid only for generalised RDFS:

if S contains then S RDFS entails
Grdfs14 xxx rdf:type rdfs:Resource
yyy rdf:type rdf:Property
zzz rdf:type rdfs:Resource
<<(xxx yyy zzz)>> rdf:type rdfs:Proposition .

Additional RDFS axiomatic triple:
rdf:reifies rdf:range rdfs:Proposition .

Incomplete metamodelling RDFS entailment pattern, replacing Grdfs14, valid for RDFS:

if the triple structure appears in S then S RDFS entails
rdfs14 xxx yyy <<(aaa bbb ccc)>>
the graph graph S with the appearance replaced with
xxx yyy _:nnn

_:nnn rdf:type rdfs:Proposition .

Notes:

  • RDF 1.1 RDFS semantics is the above without the parts within ⏩...⏪ marks.

BEST PRACTICE (informative)

The RDF-concepts and RDF-primer documents should be conveying the right message 😊, namely reification is sanctioned only if it makes use of the property rdf:reifies or any of its subproperties; the subject of rdf:reifies is called a reifier and the object is called a proposition.

TURTLE SYNTAX (informative)

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 .
Clone this wiki locally