- 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