Editors:
Jonathan Borden jonathan@openhealth.org
Pat Hayes phayes@ai.uwf.edu
Drew McDermott drew.mcdermott@yale.edu
This version: June 11, 2001
Previous version: June 10, 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 it is useful to group triples into sets of statements termed: Bundles.
This document has no official status.
A Bundle is represented by an QName. A bundle is a list (ordered bag) of Statement triples <predicate,subject,object>. For each bundle the statement quadruple: <predicate,subject,object,context> is equivalent to the triple <predicate,subject,object>.
A Statement is represented by the 4-tuple: <predicate,subject,object,bundle> or consider a Bundle a list of Statements represented as triples <predicate,subject,object>
An atom represents either an XML QName, according to XML Namespaces, or a variable matching the EBNF:
atom := (QName | quantifiedVariable| rowVariable | Statement)
quantifiedVariable := ('?' Name) Name as defined in XML 1.0
rowVariable := ('@' Name)
A predicate is a QName.
A subject is an atom.
An object is an atom. Note that literal strings may be represented by the
data:
URI scheme.
A bundle is represented by a QName
The bundle allows separation of statements into lists which can be asserted as a group. Bundles allow 'coloring' of subgraphs. The document from which a set of statements arises forms a bundle (represented by its URI). Bundles can 'contain' other bundles.
The statement:
(not (says jon (color sky blue))
is represented by the Expression:
[not [says jon [color sky blue]]]
The Squish [2] query: (dc:creator, foo, ?x)(foaf:mbox, ?x, mailto:jonathan@openhealth.org)
is represented as:
An s-expression :
(or a b c d)
may be represented in XML
<or rdf:parseType="daml:list"> <a/> <b/> <c/> <d/> </or>
In triple form:
[or a [etc b [etc c [etc d nil]]]]
abbreviated as:
[or a b c d]
Expressions are collections of statements within a common context. An expression is a subgraph. The root or top level expression within a particular context are those statements which are not referred as the subject or object of any other statement within the context.
Is there a formal expression of this?