Re: R2RML draft - new introduction

Juan Sequeda
+1-575-SEQ-UEDA
www.juansequeda.com


On Wed, Oct 13, 2010 at 8:52 PM, Boris Villazón Terrazas <
bvillazon@fi.upm.es> wrote:

>  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> 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.
>

I agree with you. However I feel that the following contradicts:

"The input to an R2RML mapping is a relational database"

I thought that R2RML mapping AND the relational database AND vocabulary are
all inputs.


>
> Boris
>
>
>
>
>
>> Boris
>>
>>
>>
>>
>>
>>
>>
>>
>>  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 02:42:26 UTC