W3C home > Mailing lists > Public > public-rdb2rdf-comments@w3.org > July 2012

Re: Blank nodes as subject maps in R2RML

From: Richard Cyganiak <richard@cyganiak.de>
Date: Wed, 25 Jul 2012 18:59:02 +0100
Cc: Juan Sequeda <juanfederico@gmail.com>, David McNeil <dmcneil@revelytix.com>, public-rdb2rdf-comments@w3.org
Message-Id: <52354AA3-2EE3-405C-BD8D-DB7EA8E2D728@cyganiak.de>
To: Tomasz Pluskiewicz <tomasz.pluskiewicz@gmail.com>
On 25 Jul 2012, at 18:24, Tomasz Pluskiewicz wrote:
> It is what I have asked last month on
> http://answers.semanticweb.com/questions/16823/blank-nodes-as-subject-maps-in-r2rml
> 
> Indeed it is for direct mapping, which I implement using a default
> mapping generator. Though I am still unsure how a subject map should
> look like for a direct mapping such as in
> http://www.w3.org/2001/sw/rdb2rdf/test-cases/#D005-1table3columns3rows2duplicates
> test case. It does indeed seem that each tuple generates a fresh blank
> node. If it were to only contain rr:termType and rr:class, then it is
> invalid in the light of current specifications as Richard notes.
> 
> Otherwise I would like to ask for guidance what should such default
> mapping look like.

The simplest rr:template could be something like: "IOUs:{fname}:{lname}:{amount}"

This generates a fresh blank node for each distinct set of values. In other words, it re-uses the same blank node when there are duplicate rows. As noted in [1], this is legal for R2RML default mappings.

You may be able to use database-specific SQL features to preserve duplicate rows. For example, in Oracle, "IOUs:{ROWID}" should work.

Best,
Richard


[1] http://www.w3.org/TR/r2rml/#default-mappings


> 
> Regard,
> Tomasz Pluskiewicz
> 
> On Wed, Jul 25, 2012 at 7:05 PM, Juan Sequeda <juanfederico@gmail.com> wrote:
>> However, If this were to be valid, it would automatically generate a fresh
>> bnode for each tuple. Which would lead us to the whole discussion that we
>> had before about bnodes and the direct mapping.
>> 
>> Tomasz, is this a feature or something that you need?
>> 
>> Juan Sequeda
>> +1-575-SEQ-UEDA
>> www.juansequeda.com
>> 
>> 
>> 
>> On Wed, Jul 25, 2012 at 11:59 AM, Richard Cyganiak <richard@cyganiak.de>
>> wrote:
>>> 
>>> On 25 Jul 2012, at 15:05, Tomasz Pluskiewicz wrote:
>>>> Sorry to revive an old topic, but I have recenlty realized the root of
>>>> my question.
>>>> 
>>>> The R2RML specs at http://www.w3.org/TR/r2rml/#dfn-term-map state
>>>> clearly that "A term map must be exactly one of the following: a
>>>> constant-valued term map, a column-valued term map, a template-valued
>>>> term map." Doesn't this mean that a term map
>>>> 
>>>> <StudentsTriplesMap> rr:subjectMap
>>>> [
>>>>   rr:termType rr:BlankNode;
>>>>   rr:class <http://example.com/Student>
>>>> ];
>>>> 
>>>> is in fact invalid, having no explicit rr:constant, rr:column or
>>>> rr:template property?
>>> 
>>> It is indeed invalid. You'd usually want an rr:template or rr:column that
>>> creates the blank node identifier.
>>> 
>>> Best,
>>> Richard
>>> 
>>> 
>>>> 
>>>> Regards,
>>>> Tomasz
>>>> 
>>>> On Fri, Jun 8, 2012 at 10:19 PM, Tomasz Pluskiewicz
>>>> <tomasz.pluskiewicz@gmail.com> wrote:
>>>>> Thank you for answering. Also, let me answer here again.
>>>>> 
>>>>> I forgot to mention I intended the mapping as default mapping for
>>>>> table without primary key.
>>>>> 
>>>>> In my oppinion by default direct mapping should generate a blank node
>>>>> for each row. And I do have mixed feelings about the behavior not
>>>>> preserving duplicate rows.
>>>>> 
>>>>> Regards,
>>>>> Tomasz
>>>>> 
>>>>> On Fri, Jun 8, 2012 at 6:26 PM, Juan Sequeda <juanfederico@gmail.com>
>>>>> wrote:
>>>>>> I asked on the forum, but let me ask here.
>>>>>> 
>>>>>> are you expecting the R2RML engine to generate a blank node for each
>>>>>> tuple,
>>>>>> or do you have a column value that you would like to use in order to
>>>>>> generate the blank node?
>>>>>> 
>>>>>> Juan Sequeda
>>>>>> +1-575-SEQ-UEDA
>>>>>> www.juansequeda.com
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On Fri, Jun 8, 2012 at 9:22 AM, David McNeil <dmcneil@revelytix.com>
>>>>>> wrote:
>>>>>>> 
>>>>>>>> From the latest R2RML draft:
>>>>>>> 
>>>>>>> * a subject map is a term map,
>>>>>>> http://www.w3.org/2001/sw/rdb2rdf/r2rml/#dfn-term-map
>>>>>>> 
>>>>>>> * the termType property can be used on term maps,
>>>>>>> http://www.w3.org/2001/sw/rdb2rdf/r2rml/#termtype
>>>>>>> 
>>>>>>> So "yes", you can use termType on subject maps and this is how you
>>>>>>> would
>>>>>>> produce subjects as blank nodes.
>>>>>>> 
>>>>>>> -David
>>>>>> 
>>>>>> 
>>>> 
>>> 
>> 
> 
Received on Wednesday, 25 July 2012 17:59:34 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 19:45:17 UTC