Re: documenting a default mapping

Hi Eric

I definitely agree that it would be very useful to write down base case
transformations from relations (rdb) to RDF, analogous to D2R's minimal
configuration.

However I want to make a quick reminder, that this is what I have been
standing up and stating since day one: Direct mapping is needed because it
is the first step and it can be automated. I have recommended several times
to read our paper where we show a formal framework based on datalog on how
to create the transformations from RDB to OWL. Here is the paper again. I
really hope everybody can read it, because honestly, the work has already
been done:

Translating SQL Applications to the Semantic Web
http://www.springerlink.com/content/mv58805364k31734/
http://userweb.cs.utexas.edu/~jsequeda/rdb2rdf/sql2sw_dexa2008.pdf

My bachelors thesis a while back was on surveying all the different Direct
Mapping approaches. I have just finished writing this up as a journal
submission. In this survey, we create an evaluation framework in order to
compare all the approaches and determine a notion of completeness.

http://userweb.cs.utexas.edu/~jsequeda/rdb2rdf/Survey-DO-NOT-DISTRIBUITE.pdf

I'd appreciate it if this is not massively distributed. (btw, we survey the
work of Astrova et al that you were mentioning).

Eric, I'm a bit fuzzy on the algebra and explanation that you are
presenting. However I insist that you take a look at our work because I
believe we are on the same page, and we shouldn't re-invent the wheel.

BTW, in the charter, aren't we suppose to have a RIF representation of the
mapping language. We should be able to easily translate datalog to RIF, so
this should be a done deal.

Cheers,

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


On Mon, May 31, 2010 at 1:45 AM, Eric Prud'hommeaux <eric@w3.org> wrote:

> Noting Irina Astrova's "Rules for Mapping SQL Relational Databases to
> OWL Ontologies", I suspect it would be useful to write down a base
> case transformation from relations to RDF, analogous to D2R's minimal
> configuration for relations with single primary keys. Following is an
> algebra and an explaination for that:
>
> Suppose we want to RDF-ize a relation R:
>  R:relation := (name:string, data:set(T:tuple))†
>  T := set (A:attribute)
>  attributes := (name:string, value:string,
> function:null|pk|reference|scalar)
> meaning attributes are SQL NULL, a primary key, a foreign key, or
> scalar values. (Yes, this minimal mapping precludes attributes from
> being both primary AND foreign keys.)
>
> RDFr(R)    := set (RDFt(T) for each T in R.data)
> RDFt(T)    := set (RDFl(S, A) for each scalar A in T)
>            + set (RDFn(S, A) for each reference A in T) | S =
> nodemap(pk(T))
> RDFl(S, A) := triple (S, predicatemap(A), literalmap(A))
> RDFn(S, A) := triple (S, predicatemap(A), nodemap(A))
>
> literalmap produces RDF literal with XSD datatypes with this type
> mapping TM:
>  SQL           XSD
>  INT           http://www.w3.org/TR/xmlschema-2/#integer
>  FLOAT         http://www.w3.org/TR/xmlschema-2/#float
>  DATE          http://www.w3.org/TR/xmlschema-2/#date
>  TIME          http://www.w3.org/TR/xmlschema-2/#time
>  TIMESTAMP     http://www.w3.org/TR/xmlschema-2/#dateTime
>  CHAR          http://www.w3.org/TR/xmlschema-2/#string
>  VARCHAR       http://www.w3.org/TR/xmlschema-2/#string
>  STRING        http://www.w3.org/TR/xmlschema-2/#string
>
> literalmap := rdfLiteral(A,value, TM(A.type))
>
> nodemap and predicate map are lexical transformations producing IRIs,
> either hash
>  nodemap(A):IRI = IRI(stemURI + "/" + R.name "/" A.name + "." + A.value +
> "#_")
>  predicatemap(A):IRI = IRI(stemURI + "/" + R.name "#" A.name)
> or slash-compatible:
>  nodemap(A):IRI = IRI(stemURI + "/" + R.name "/" A.name + "/" + A.value)
>  predicatemap(A):IRI = IRI(stemURI + "/" + R.name "/" A.name)
>
> † A variant of this algebra with the traditional relation definition
>    R:relation := (name:string, header:set(D:definition),
> data:multiset(T:tuple))
>  was implemented in scala
>
> https://dvcs.w3.org/hg/stemGraph/file/4ace3eb848d4/src/main/scala/Main.scala
>  but the extra rigor ensuring consistent attributes provides more noise
>  than value to this application.
>
>
> I'd like to get this into a forum for disucssion with rdb2rdf WG and
> the broader community. If folks here are interested in this material,
> I'll draw up a WG-publishable document. If not, I can make it available
> elsewhere. Either way, the feedback will be useful to us.
> --
> -ericP
>
>

Received on Tuesday, 1 June 2010 05:34:58 UTC