W3C

- DRAFT -

RDB2RDF

03 Aug 2010

See also: IRC log

Attendees

Present
Juan, Ashok, Wolfgang, Richard, Boris, Souri, EricP, Seema
Regrets
Marcelo
Chair
Ashok
Scribe
Juan

Contents


<Ashok> chair

<Ashok> scribenick: juansequeda

<Ashok> scribe: Juan

Approve minutes of minutes

<Ashok> RES

+1

<Ashok> ol

RESOLUTION: Minutes from last meeting July 27 telcon approved

<Ashok> Minutes are at: http://www.w3.org/2010/07/27-rdb2rdf-minutes.html

SQL Based Approach by Souri

The approach is taking a SQL query and mapping it to a class and each attribute to a property

<cygri> Souri's slides from the SemTech F2F: http://www.w3.org/2001/sw/rdb2rdf/wiki/File:RDB2RDF_Map_viaSQL_F2F_at_SemTech2010.pdf

<Souri> XML schema: http://www.w3.org/2001/sw/rdb2rdf/wiki/Example_XML_Schema_Mapping

Souri: what we are presenting comes from the discussions that we have had
... DBKeyType is for definition of primary keys..
... RDFTermType are the different types that we can have: IRI, blank node or literal
... A SQL query is associated with a ClassMap. it has several properties associated with this class map: object properties and datatype properties
... the SQLDefString is required which defines the SQL Query
... InstURIPropertyMap: this gives us how to get the URI for a row in the particular table/view
... there should be exactly one

Ashok: is this a database column?

Souri: yes, it actually is but it is mapped to the identity of a row
... the DBColumnName is required
... there is InverseExpr, it is for optimizations, but we can discuss about this later
... RDFTypeURIPropertyMap: gives us a way to say that a particular row may belong to a class which is defined by a class with values defined in that row

+q

<ericP> ericP: could you have multiple PropertyMaps with PropertyName=rdf:type instead of RDFTypeURIPropertyMap?

<ericP> Souri: yes, but this approach allows for performance optimizations

<ericP> ... specifically, you can ask for { ?x a ?type } or { ?x a my:SoccerStar }

juansequeda: or a RDFTypeURIPropertyMap, that means that the object has to be a IRI

souri: yes
... how do you know which triples belongs to which graph? That is what GraphURIPropertyMap is for
... this is optional. you don't have to say this
... can also assign columns to a graph
... you can divide a row to "column groups"

ericP: then my SS number can go to the tax graph and personal graph

souri: yes
... useful to organizing datastore
... PropertyMap is optional. it has a property name, the DBColumnName and the RDFTerm, so you can say if it should be a IRI, literal or blank node
... KeyMap takes care of constraints
... Keyname is the name, KeyType which is either a primary, unique or reference. both of these are requireed
... InverseExpr is for perfomance
... Richard points out if we need to have classes or not
... RDF doesn't have classes. RDFS introduces it
... why is it good? if you have the same property repeated in different classes

+1 to ask what problems can we have if defining classes is required

scribe: having a class, you can restrict your query. you can scope down the space that you have to look for

ericP: if we don't define a class type, and we do ?s foaf:name ?o then it will be a union of everything that has foafo:name

<Souri> a working example (revised version of the old example we had) -- http://www.w3.org/2001/sw/rdb2rdf/wiki/Revised_Example_of_SQL-Query_based_Approach

<ericP> juansequeda: what are the implications of having typemaps required?

<ericP> Souri: [ example of multiple columns emiting the same property, implying a common domain ]

<ericP> cygri: we're chartered to map from DBs to RDF graphs

<ericP> ... why should we introduce a restriction on the types of generated rdf graphs

souri: if C1 is domain for foaf:name and C2 is also domain for foaf:name, then the actual domain is the intersection of C1 and C2, whihc is false

Richard: why is InverseExpr is needed and how would you use it?

souri: good question but I don't have an example yet on the wiki
... suppose in your view you are projecting a column whose column is X+Y but you are projecting it as Y. For Y I'm getting a value of 10. When I translate the SPARQL to SQL, I can do Y = 10. However there is no index on Y. I want to say X = 9. We want the user to specify Y-1 as the InverseExpr

<Ashok> souri discusses example in above Wiki -- URL above

<ericP> ericP: in RIF, you express rule details which don't change the semantics as *annotations*

Souri is going through examples in http://www.w3.org/2001/sw/rdb2rdf/wiki/Revised_Example_of_SQL-Query_based_Approach

<Ashok> Annotations that help performance is a good idea

+q to ask are we expecting that the URIs are to be generated in the SQL query with a concat?

<Zakim> juansequeda, you wanted to ask are we expecting that the URIs are to be generated in the SQL query with a concat?

Richard: we should have URI Patterns so they can be reused

Ashok: lets continue next week and talk about class type, uri generation
... and we should think about if this should be an output of the WG
... Richard, you had an action to comment on this

Richard: I will send an email that summarizes limitations or the need of expressivity

Summary of Action Items

[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.135 (CVS log)
$Date: 2010/08/03 17:02:00 $

Scribe.perl diagnostic output

[Delete this section before finalizing the minutes.]
This is scribe.perl Revision: 1.135  of Date: 2009/03/02 03:52:20  
Check for newer version at http://dev.w3.org/cvsweb/~checkout~/2002/scribe/

Guessing input format: RRSAgent_Text_Format (score 1.00)

Found ScribeNick: juansequeda
Found Scribe: Juan
Present: Juan Ashok Wolfgang Richard Boris Souri EricP Seema
Regrets: Marcelo
Got date from IRC log name: 03 Aug 2010
Guessing minutes URL: http://www.w3.org/2010/08/03-rdb2rdf-minutes.html
People with action items: 

[End of scribe.perl diagnostic output]