- From: Ivan Mikhailov <imikhailov@openlinksw.com>
- Date: Mon, 15 Mar 2010 13:08:46 +0600
- To: Juan Sequeda <juanfederico@gmail.com>
- Cc: public-rdb2rdf-wg@w3.org
Hello Juan, On Sun, 2010-03-14 at 12:46 -0600, Juan Sequeda wrote: > [1] The Expressive Power of SPARQL > http://www.dcc.uchile.cl/~cgutierr/papers/expPowSPARQL.pdf > [1] states that SPARQL and non-recursive safe Datalog have the same > expressive power. Yes of course. OTOH non-recursive safe Datalog is simply not sufficient in real life, that's why there's a need in a recursive and unsafe Datalog with numerous tricks in all areas, from arithmetic more complete than Presburger's one to special tricks for special datatypes to built-in magic predicates of all sorts. SPARQL 1.0 demonstrates similar gaps in functionality. Both SPARQL 1.0 and minimal Datalog are good technology demonstrators and good starting points for newbies but they can not satisfy industrial needs without extensions. > [2] Translating SQL Applications to the Semantic Web > http://userweb.cs.utexas.edu/~jsequeda/sql2sw_dexa2008.pdf > [2] shows FOL rules, which can be implemented in Datalog in order to > automatically generate a rdf schema or owl ontology from a rdb schema. Again, nice technology demonstrator but the paper properly mention the assumption: "the relational schema is normalized, at least up to third normal form" The real schema is usually what I name "2.5 normal form", denormalized for speed, with cryptic enumerations, with historical peculiarities and to crown it all, with more accurate description of the world than surrounding applications need for interop. While 2.5 form and enums can be resolved by simple views and translation functions, the difference in accuracy requires both complicated built-in mapping functionality (at least "rules with exceptions") and handwritten procedures. Example 1. Border control database uses integer values for field "sex" of passport's bearers, in range 1 to 5, not counting NULL. That is simple case only if we translate 1 to "M", 2 to "F" and ignore everything else when export. Example 2, more complicated one, is fetching of a list of countries from some database of the department of foreign affairs. What you need is a list of statements like <Russia> rdf:type <Country> . But in the database, Country is simply not a type. There's a relation "subject ?A treats subject ?B as an independent country from the moment ?C" (and, optionally, "to moment ?D") and different applications will need different projections of this relation to the ?B axis. As a result, automated DDL-to-OWL is more for making sketches of translations, not for obtaining final versions, and if a mapping language is sufficient for such a sketching then there's no warranty that it is also sufficient for the production --- even if we do not mention performance hints etc. Best Regards, Ivan Mikhailov OpenLink Software http://virtuoso.openlinksw.com P.S. As usual, this is my personal opinion, not an opinion of any W3C group.
Received on Monday, 15 March 2010 07:09:20 UTC