- From: Boris Villazón Terrazas <bvillazon@fi.upm.es>
- Date: Thu, 14 Oct 2010 03:52:46 +0200
- To: Juan Sequeda <juanfederico@gmail.com>, RDB2RDF WG <public-rdb2rdf-wg@w3.org>
- CC: Souri Das <Souripriya.Das@oracle.com>, Richard Cyganiak <richard@cyganiak.de>, ashok.malhotra@oracle.com
- Message-ID: <4CB6626E.9070302@fi.upm.es>
Juan and all, On 14/10/2010 3:17, Juan Sequeda wrote: > Boris and all, > > On Wed, Oct 13, 2010 at 8:10 PM, Boris Villazón Terrazas > <bvillazon@fi.upm.es <mailto:bvillazon@fi.upm.es>> wrote: > > Hi Juan > > > On 13/10/2010 23:49, Juan Sequeda wrote: >> I don't think answers my question. >> >> Just to make sure that I understand what is being proposed, I see >> as the following: >> >> Let R be a relational schema >> Let V be a target vocabulary >> >> R2R(R, V) = RDF graph >> >> Is this correct? > As far as I understand and according to the introduction: > R2RML is a language for expressing customized mappings from > relational databases to RDF datasets. > > Again, I took the liberty of creating a preliminary diagram that > depicts this definition. You can find it at: > http://mccarthy.dia.fi.upm.es/rdb2rdf/R2RML.png > > > Just like the one in the use case doc > > http://www.w3.org/2001/sw/rdb2rdf/use-cases/ > > :) Yes, they are similar .... :) > > > > IMHO, a R2RML mapping only expresses the mappings from RDB to RDF. > A specific R2RML engine takes as input: the R2RML mapping, the RDB > connection info, the target RDF dataset (vocabulary?) and > generates as output an RDF dataset > > Or am I wrong? > > > This is exactly what I want to have 100% cleary. > > Richard (I think) stated > > "The input to an R2RML mapping..." > > Now you introduce R2RML Engine and the input to that is the R2RML > mapping, RDB etc.... > > So this is not consistent. > > We have then > > 1) R2RML mapping has inputs > 2) R2RML mapping is an input itself > > What are we talking about? Maybe, I'm introducing some noise (sorry for that), but the notion of R2RML engine is extracted from Richard and Souri introduction: ".... The mapping is conceptual; *implementations are free to materialize *the output data, or to offer virtual access through an interface that queries the underlying database. ... " and " .... A *client connecting to the relational database, *EITHER to materialize the RDF triples based upon an RDB2RDF mapping, OR to query via SQL query obtained via translation of a (end-user submitted) SPARQL query using an RDB2RDF mapping, must have sufficient privileges in the relational database to compute the logical table(s) specified in the mapping ..." I was thinking in some like http://mccarthy.dia.fi.upm.es/rdb2rdf/R2RMLEngine.png Sorry if I'm wrong. Boris > > > Boris > > > > > > > >> >> Juan Sequeda >> +1-575-SEQ-UEDA >> www.juansequeda.com <http://www.juansequeda.com> >> >> >> On Wed, Oct 13, 2010 at 1:50 PM, Souri Das >> <Souripriya.Das@oracle.com <mailto:Souripriya.Das@oracle.com>> wrote: >> >> Not sure if you saw my earlier email ... I am including it >> here anyway, just in case: >> ===================== >> >> Ashok's question is very important and the answer in our FPWD >> must be absolutely clear. >> >> I like the answer Richard came up with after discussing with >> Michael. >> >> We may want to consider a rephrasing like the following: >> "An RDB2RDF mapping may be used against a relational database >> only if the logical table(s) used in the mapping is (are) >> valid in that relational database." >> >> Also, there is an issue of privileges for actually using an >> RDB2RDF mapping: >> "A client connecting to the relational database, EITHER to >> materialize the RDF triples based upon an RDB2RDF mapping, OR >> to query via SQL query obtained via translation of a >> (end-user submitted) SPARQL query using an RDB2RDF mapping, >> must have sufficient privileges in the relational database to >> compute the logical table(s) specified in the mapping." >> >> Thanks, >> - Souri. >> ===================== >> >> >> Juan Sequeda wrote: >>> On Wed, Oct 13, 2010 at 1:11 PM, Richard Cyganiak >>> <richard@cyganiak.de <mailto:richard@cyganiak.de>> wrote: >>> >>> On 13 Oct 2010, at 15:12, ashok malhotra wrote: >>> >>> How about "The input to an R2RML mapping is a >>> Relational database which contains the data as well >>> as the schema." >>> >>> >>> Well, the input can't be a database with *any* schema; >>> it must be the same schema that the mapping was written >>> for. I'd like to make that as clear as possible. >>> >>> How about this: >>> >>> “Every R2RML mapping is tailored to a specific database >>> schema and target vocabulary. >>> >>> >>> target vocabulary or vocabularies >>> >>> The input to an R2RML mapping is a relational database >>> that conforms to the schema. >>> >>> >>> so you mean: >>> >>> RDB and Vocabulary --> R2RML Mapping --> RDF >>> >>> or is a R2RML mapping and input self: >>> >>> RDB and Vocabulary and R2RML Mapping --> RDB2RDF System --> RDF >>> >>> The output is an RDF dataset, as defined in SPARQL, that >>> uses predicates and types from the target vocabulary.” >>> >>> This is for the intro; in the later chapters there is >>> more space to spell it out in detail. >>> >>> Richard >>> >>> >>> >>> >>> >>> >>> All the best, Ashok >>> >>> On 10/13/2010 4:01 AM, Richard Cyganiak wrote: >>> >>> Ashok, >>> >>> On 12 Oct 2010, at 23:59, ashok malhotra wrote: >>> >>> One question. You say: >>> >>> The input to an R2RML mapping is a >>> relational database. >>> >>> >>> Is it a relational database or a relational >>> database schema? >>> >>> >>> Good question. I discussed this a bit with >>> Michael this morning. >>> >>> Definition: An RDB schema consists of the table >>> *declarations*, but it does not include the >>> actual *data* in the tables. >>> >>> Definition: A relational database on the other >>> hand consists of both an RDB schema, and data >>> that populate the tables. >>> >>> The input to an R2RML mapping has to include the >>> actual data, because otherwise how could a >>> transformed form of the data be part of the >>> mapping's output? So the input is indeed a >>> relational database. >>> >>> On the other hand, an R2RML mapping is >>> *specific* to an RDB schema. That is, it only >>> works with an input database that conforms to a >>> certain schema (contains certain tables and >>> columns). Let's call that schema the “input >>> schema” of the mapping. One could then say that >>> the input to a mapping is any database that >>> conforms to the input schema. In other word, the >>> domain of an R2RML mapping is the set of all >>> databases that conform to the mapping's input >>> schema. >>> >>> I think the notion of an input schema is >>> actually really valuable for writing the spec. >>> For example, it allows us to say things like, >>> “the SQL query in a TriplesMap MUST be a SELECT >>> query that can be validly executed over the >>> input schema.” >>> >>> Richard >>> >>> >>> >>> >> >> > >
Received on Thursday, 14 October 2010 01:53:18 UTC