Skip to content

RDF star "baseline"

Enrico Franconi edited this page May 31, 2024 · 9 revisions

RDF-star "baseline" (DRAFT 2024.05.31)

ABSTRACT SYNTAX

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

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 t, we denote the subject, predicate, object of t as t.s, t.p, t.o, respectively.

SIMPLE SEMANTICS

An RDF simple interpretation I is a structure <IR, IP, IS, IL, IEXT, RE, SRE> 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 function RE from IR x IP x IR into IR, called the denotation of transparent triple terms.
  7. An injective function SRE from opaqueTripleTerm into literal, called the syntactic denotation of transparent 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 transparentTripleTerm ⏪️
  • [I+A](r) = IL(SRE(r))   if r is a opaqueTripleTerm ⏪️
  • [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.

ABSTRACT SYNTAX OF WELL FORMED RDF

graph                 ::= triple*
triple                ::= ( subject predicate object ) | 
                          ( reifier rdf:reifies transparentTripleTerm ) |
                          ( opaqueTripleTerm rdf:hasAnnotation annotation )
subject               ::= noLiteralAtomicTerm
predicate             ::= iri_but_rdf:reifies_or_rdf:hasAnnotation 
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

Non context-free syntactic condition: A graph can not have two triples with the same annotation and distinct opaque triple terms.

RDF SEMANTICS

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) = TRUE   and
  • all the RDF 1.1 metamodelling crap   and
  • all the RDF 1.1 axiomatic triples crap   ⏩ and
  • ∀ x1,x2,y . (x1,y) ∈ IEXT(IS(rdf:hasAnnotation)) ⋀ (x2,y) ∈ IEXT(IS(rdf:hasAnnotation)) → x1=x2   and
  • more metamodelling crap   and
  • more axiomatic triples crap ⏪️

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').

Notes:

  • RDF 1.1 RDF semantics is the above without the parts within ⏩...⏪ marks.
  • Observe that RDF 1.1 is always well formed.
Clone this wiki locally