- From: Juan Sequeda <juanfederico@gmail.com>
- Date: Mon, 6 Sep 2010 22:43:01 -0500
- To: Richard Cyganiak <richard@cyganiak.de>
- Cc: "Eric Prud'hommeaux" <eric@w3.org>, Michael Hausenblas <michael.hausenblas@deri.org>, RDB2RDF WG <public-rdb2rdf-wg@w3.org>
- Message-ID: <AANLkTi=3aakHWvtukjSXwfrjDbPsGyZskQA1WeaqQUK2@mail.gmail.com>
Richard, Great clarification and +1 on everything. Given that we are clear that there are two audience, the only thing I'm saying is that if we are going to write a document on the Direct Mapping, which one of the audiences is expecting to see a R2RML file... we need to have a R2RML syntax before we have a Direct Mapping document ready. Hence my suggestion to put priority on syntax right now. Juan Sequeda +1-575-SEQ-UEDA www.juansequeda.com On Mon, Sep 6, 2010 at 10:31 PM, Richard Cyganiak <richard@cyganiak.de>wrote: > Juan, > > > On 6 Sep 2010, at 22:57, Juan Sequeda wrote: > >> Let's see if I understand the implied mechanics. Option 1 directly >>> specifies the RDF graph implied by a database (for any tuple in the >>> database, you can say exactly what triples are in the direct >>> graph). Option 2 specifies a mapping language, with certain mapping >>> semantics, and with a default configuration. The default graph is the >>> products of applying the mapping semantics for a default configuration >>> to a database. >>> >>> Option 2 uses R2RML. >> >> I see the two options this way >> >> Option 1: >> >> 1) We (the WG) present the direct mapping rules in order to generate a >> direct RDF graph from a RDB >> 2) Database vendors (oracle, db2, etc) implement these mapping rules OR >> RDB2RDF systems on top of a RDB can read the database dictionary and run >> these mapping rules >> 3) You click the button "Generate Direct RDF" >> 4) Outcomes your RDF >> 5) Use RDF to RDF tools (sparql constructs, etc) to map to other >> vocabularies >> >> Option 2: >> >> 1) We (the WG) present the direct mapping rules in order to generate a >> direct RDF graph from a RDB >> 2) Database vendors (oracle, db2, etc) implement these mapping rules OR >> RDB2RDF systems on top of a RDB can read the database dictionary and run >> these mapping rules >> 3) You click the button "Generate Direct RDF" >> 4) Outcomes your RDF >> 5) Out comes the R2RML mapping file that generated the Direct RDF Graph >> 6) A user can modify the R2RML mapping file in order to change >> vocabularies, >> etc >> > > I think it would be helpful if you kept stronger awareness of the > difference between *implementation* and *specification*. > > No matter wether our specification describes the direct mapping as a > mapping to a “direct RDF graph” or to a “direct R2RML file”, vendors are > free to, and able to, implement either of the two options above. In fact, > the D2RQ system implements both of the approaches you describe above -- > users can instruct it to dump the direct graph, or they can instruct it to > create a D2RQ mapping file that can then be customized in order to dump a > customized graph. > > > So.. if we agree on this.. we are practically then talking about the same >> thing. Only difference is that in Option 2 we are outputing the direct >> mapping also in R2RML. Otherwise.. why would we need R2RML?????? >> > > Remember that some people in the WG want what we sometimes call the > “RDF-based approach”. They want to specify RDB2RDF mappings using, say, RIF > rules against the direct graph. > > So there are at least TWO DISTINCT AUDIENCES for the direct mapping spec: > > 1. RDB2RDF vendors who implement R2RML engines and want to equip their > systems with functionality similar to D2R's "generate-mapping" script, which > generates a simple canonical R2RML file for a given database, with the > intent of allowing further customization of the R2RML file by the user. > > 2. RDB2RDF vendors who implement RIF-based engines (or engines based on any > other RDF-to-RDF transformation language). Users of these engines will write > RIF rules that transform the direct graph into a custom graph. Users and > vendors of these systems don't need the R2RML language. > > Eric's argument (which I find compelling) is this: People in the second > category are much better served by a specification that describes the shape > of the direct graph. That they are poorly served by a specification that > describes the shape of a direct R2RML file, which then under the semantics > of the R2RML language implies the shape of the direct graph. > > (Possibly there is a third audience, vendors of engines that *only* provide > access to the direct graph without offering the possibility of > customization. They don't need R2RML either, they just need a spec that > describes the shape of the direct graph given a DB.) > > I hope this clarifies things. > > Best, > Richard > > > > > >> >> >>> So you think that a direct mapping shouldn't output the R2RML file? I >>>> >>> think >>> >>>> it should because this file is the basis for people to work on and start >>>> customizing it. >>>> >>> >>> The RDF rules folks will have everything they need with option 1. They >>> can write/share rules in RIF, SPIN, n3, ... which transform the >>> default graph to popular ontologies. Simple implementations will >>> materialize these graphs, and arguably cooler implementations will >>> work directly on the relational data, but that's really implementation >>> detail; all they need is the default graph. >>> >>> >>> Hence I'm with Eric here. >>>>> >>>>> >>>>> The automatic mapping file that is generated in D2R is equivalent to >>>>> >>>> the >>> >>>> Direct Mapping (right Richard?). >>>>>> >>>>>> >>>>> Well I'd say the *graph* produced by an auto-generated D2R mapping file >>>>> >>>> is >>> >>>> equivalent to the direct mapping. >>>>> >>>>> >>>> and I'd call the auto-generated D2R mapping file the Direct Mapping >>>> file. >>>> >>> So >>> >>>> D2R does option 2 then. >>>> >>>> >>>>> Best, >>>>> Richard >>>>> >>>> >>> -- >>> -ericP >>> >>> >
Received on Tuesday, 7 September 2010 03:43:55 UTC