- From: Eric Prud'hommeaux <eric@w3.org>
- Date: Tue, 14 Jun 2011 11:10:45 -0400
- To: public-rdb2rdf-wg@w3.org
I hacked up a "grammar" for an R2RML mapping (scare quotes 'cause it's
an abstract syntax -- there are no lexical tokens to e.g. tell if the
first Name is a TableOwner or a LogicalTable).
http://www.w3.org/2005/01/yacker/uploads/R2RML_Mapping?lang=perl&markup=html#prod-R2RML_Mapping-R2RML_Mapping
Anyone can hack on this. Note that there's no history, so if you're
going to do something radical, it's polite to either save under a new
name or copy the old bnf someplace safe like an email.
I tried to be as faitful to the spec text as possible, which should hilight some possible questions, e.g.
[2] TriplesMap ::= (TableOwner)? LogicalTable SubjectMap (PredicateObjectMap)* (RefPredicateObjectMap)*
[4] LogicalTable ::= TableName
| SqlQuery
Shouldn't the TableOwner be optional only when the LogicalTable is a
TableName, i.e.
[2] TriplesMap ::= LogicalTable SubjectMap (PredicateObjectMap)* (RefPredicateObjectMap)*
[4] LogicalTable ::= TableOwner? TableName
| SqlQuery
?
Anyways, I think working out an abstract syntax will help many people
towards understand R2RML.
--
-ericP
Received on Tuesday, 14 June 2011 15:11:23 UTC