Skip to content

RDF star "baseline with IRI opacity"

Enrico Franconi edited this page Jun 11, 2024 · 5 revisions

RDF-star "baseline" with IRI opacity (DRAFT 2024.06.11)

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, ISo, 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. A mapping ISo from IRIs into IR ⋃ IP, called the opaque interpretation of IRIs.
  7. An injective function RE from IR x IP x IR into IR, 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)   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) = RE([[I+A]](r.s), [[I+A]](r.p), [[I+A]](r.o))   if r is a opaqueTripleTerm ⏪️
  • [I+A](r) = A(r)   if r is a BlankNode
  • [[I+A]](r) = ISo(r)   if r is a iri
  • [[I+A]](r) = IL(r)   if r is a literal
  • [[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 ) |
                          ( 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

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
  • ∀ x,y1,y2 . (x,y1) ∈ IEXT(IS(rdf:isAnnotationOf)) ⋀ (x,y2) ∈ IEXT(IS(rdf:isAnnotationOf)) → y1=y2   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