Semantics: proposal by Peter Patel‐Schneider for transparent semantics - w3c/rdf-star-wg GitHub Wiki

This semantics is fully transparent and stays fairly close in exposition to the RDF 1.1 semantics. The main difference here is that 3-tuples are members of the domain. This change makes the connection between quoted triples and facts more explicit. To further this connection, IEXT is modified from a map to a set of 3-tuples.

The set of RDF triples is the smallest set of S P O . where

  • S is a IRI, a blank node, or an RDF triple;
  • P is an IRI; and
  • O is an IRI, a blank node, a literal, or an RDF triple.

When an RDF triple is used as a subject or object of a triple, this occurrence of the triple is called a quoted triple.

An RDF graph G is a set of RDF triples.

A simple interpretation I = < IR, IP, IEXT, IS, IL > consists 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 set IEXT, a subset of IP x IR x IR.
  4. A mapping IS from IRIs into (IR union IP).
  5. A partial mapping IL from literals into IR.

Given a (simple) interpretation I define I(E) as

  • if E is an IRI then I(E) = IS(E),
  • if E is a literal then I(E) = IL(E),
  • if E is a quoted ground triple s p o then I(s p o) = <I(p), I(s), I(o)> if this is in IR, undefined otherwise.
  • if E is an (unquoted) ground triple s p o . define I(E) = true if the 3-tuple <I(p), I(s), I(o)> is in IEXT, otherwise I(E) = false.
  • if E is a ground RDF graph define I(E) = false if I(E') = false for some triple E' in E, otherwise I(E) = true.

Given an interpretation I let A be a mapping from a set of blank nodes to IR.

Define [I+A](E) to be

  • if E is a blank node then [I+A](E) = A(E),
  • if E is an IRI or literal then [I+](E) = I(E),
  • if E is a quoted triple S P O then [I+](E) = <[I+A](S), [I+A](P), [I+](O)>,
  • if E is an (unquoted) triple S P O. then [I+](E) = true if <[IS](p), [I+A](s),[I+A](o)> is in IEXT)) otherwise [I+A](E) = false.
  • if E is RDF graph then [I+A](E) = false if [I+A](E') = false for some triple E' in E, otherwise [I+A](E) = true.

For E an RDF graph define I(E) = true if [I+A](E) = true for some mapping A from the set of blank nodes in E to IR, otherwise I(E) = false.

Note that the two definitions of I on RDF graphs coincide on ground RDF graphs.

The RDF graph G entails the RDF graph G' iff for all interpretations I if I(G) = true then I(G) = true.