- From: Graham Klyne <Graham.Klyne@Baltimore.com>
- Date: Sat, 16 Jun 2001 11:00:00 +0100
- To: w3c-rdfcore-wg <w3c-rdfcore-wg@w3.org>
All,
This is a repeat, with some small corrections and adjustments, of some
content from my earlier message to Frank Manola (about reification test
questions). This is also intended as a follow-on contribution to Brian's
draft partitioning of the problem space.
What I am trying to do here is present an abstract syntax that is not tied
to any surface syntax, and which I think could be a basis for hanging some
formal semantics onto.
As presented, this syntax aims to capture RDF facts and reifications, and
nothing else: this is what I would regard as the RDF "core" syntax. I
would anticipate RDF "extensions" being presented as alternative
productions for 'S'.
NOTE: "reification" is deliberately called out as a distinct syntax
production, so that there is a place to hang the semantics that distinguish
it from any other collection of facts. There is some syntactic ambiguity
here that needs to be resolved at some level; e.g. adjusting the abstract
syntax so that rdf:subject, rdf:object, rdf:predicate can appear *only* in
a production for R (and not for A).
...
Terminal symbols:
N : Nodes (may be represented by Qnames or URIs)
L : Literals (may be represented by strings, data: URIs or arbitrary
XML elements)
P : Properties (may be represented by Qnames or URIs)
rdf:type (distinguished member of Properties)
rdf:subject (distinguished member of Properties)
rdf:object (distinguished member of Properties)
rdf:predicate (distinguished member of Properties)
rdf:Statement (distinguished member of Nodes)
[ ] ("punctuation" literals)
Nonterminal symbols:
G : Graphs (distinguished symbol of this syntax)
S : Simple expressions (currently: "triple" or "reification")
R : Reifications (description of a Node that denotes a statement)
A : Assertions (generic ground fact, expressed as triple)
V : Values (nodes or literals)
Productions:
::= denotes a production in the syntax metalanguage,
| denotes alternative productions in the syntax metalanguage,
<NULL> is a placeholder for an empty sequence of symbols
G ::= S | G G | <NULL>
S ::= R | A
R ::= [ N rdf:type rdf:Statement ]
[ N rdf:predicate P ]
[ N rdf:subject N ]
[ N rdf:object V ]
A ::= [ N P V ]
V ::= N | L
...
#g
------------------------------------------------------------
Graham Klyne Baltimore Technologies
Strategic Research Content Security Group
<Graham.Klyne@Baltimore.com> <http://www.mimesweeper.com>
<http://www.baltimore.com>
------------------------------------------------------------
Received on Saturday, 16 June 2001 06:17:39 UTC