- From: Juan Sequeda <juanfederico@gmail.com>
- Date: Thu, 14 Oct 2010 14:09:33 -0500
- To: Richard Cyganiak <richard@cyganiak.de>
- Cc: Souri Das <Souripriya.Das@oracle.com>, ashok.malhotra@oracle.com, RDB2RDF WG <public-rdb2rdf-wg@w3.org>
- Message-ID: <AANLkTi=89Yy-2CSSKK5qvvNYbWtTTo3op4iZcjkcx5L3@mail.gmail.com>
Richard, On Thu, Oct 14, 2010 at 1:51 PM, Richard Cyganiak <richard@cyganiak.de>wrote: > Hi Juan, > > > On 14 Oct 2010, at 15:22, Juan Sequeda wrote: > >> I'm assuming that the target vocabulary should also be the input, >> > > Why? All that needs to be known about the target vocabulary is said in the > R2RML mapping. > > > hence >> >> R2R(R, V) = RDF >> > > This would imply that I can use a given R2RML mapping with different target > vocabularies as input. That's not the case. The target vocabulary is baked > into the R2RML mapping. > > > However, I believe that R2RML mapping is an input itself. Hence it should >> be >> >> R2REngine(R, V, M) = RDF >> > > That's what implementors have to build, but not what we have to write in > the spec. > > Exactly!! "The intended audience of this specification are implementors of software that generates or processes R2RML mapping documents" So as the implementor, I'm confused. I want to see R2REngine(R,V,M) = RDF (or something like this). The mapping is an input. I'm showing this to other people and I'm sharing their confusions... which at the same time is confusion me. > > where >> >> R2REngine is a RDB2RDF systen >> R is the relational schema >> V is the targe vocabulary >> M is the mapping expressed in R2RML >> >> What do you think? >> > > The output graph has to contain information that's in the database tables. > So the tables themselves have to be part of the input. > > > A relational schema consists of tables. > Richard > > > >> Juan Sequeda >> +1-575-SEQ-UEDA >> www.juansequeda.com >> >> >> On Thu, Oct 14, 2010 at 9:17 AM, Richard Cyganiak <richard@cyganiak.de >> >wrote: >> >> >>> On 13 Oct 2010, at 22:49, Juan Sequeda wrote: >>> >>> Let R be a relational schema >>>> Let V be a target vocabulary >>>> >>>> R2R(R, V) = RDF graph >>>> >>>> Is this correct? >>>> >>>> >>> What is “R2R” supposed to be in the formula above? >>> >>> Richard >>> >>> >>> >>> >>> >>> >>> Juan Sequeda >>>> +1-575-SEQ-UEDA >>>> www.juansequeda.com >>>> >>>> >>>> On Wed, Oct 13, 2010 at 1:50 PM, Souri Das <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 >>>>> >>>>>> 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 19:10:35 UTC