- From: Juan Sequeda <juanfederico@gmail.com>
- Date: Tue, 1 Jun 2010 00:34:22 -0500
- To: "Eric Prud'hommeaux" <eric@w3.org>
- Cc: public-rdb2rdf-wg@w3.org
- Message-ID: <AANLkTimgD-Q_VPGrUgxtjNuEmA12C3wP_jnggIcGiE9f@mail.gmail.com>
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