Author: Jonathan Borden jonathan@openhealth.org This version: May 24, 2001
This document defines an Abstract Syntax or Infoset for RDF [1]. RDF Statements are commonly refered to as triples of {predicate,subject,object}. In practice RDF Datastores may supplement the triple with associated information. This abstract syntax defines the supplemented information items.
A Context is a set of Statements
A Statement is represented by the 7-tuple: <predicate,subject,object, contextURI,id, index, asserted>
A predicate is an atom
. An atom
matches the EBNF production (quantvar | URIref) where URIref
is a URI Reference as defined by RFC 2396 and
quantvar
is a quantified variable matching the production ('?', Name)
A subject is an atom.
An object is an atom. Note that literal strings may be represented by the data:
URI scheme.
A context is represented by a URI, directly analogous to the base URI information item in an XML Infoset.
An RDF Statement may have an optional id
by which the statement is refered to (combined with the contextURI).
The index
gives the index of a statement within a context in document order.
The index allows preservation of statement order as if each RDF <Description> defines a container, and folds the RDF concept of
container directly into the RDF Abstract Syntax.
A boolean flag indicating whether the statement is asserted
within the context.
A statement may be referred to by index
using a syntax consistent with the ChildSeq
syntax of XPointer []. For example,
the 2nd statement in a context is referred to as:
/2
This syntax allows reference to a particular statement in a context as if the context were an <rdf:Seq> container.
The statement:
(not (says jon (color sky blue))
is represented by the Statements: