Re: RDB2RDF WG agenda for 2010-10-19 meeting 1600 UTC

On Fri, 2010-10-15 at 15:57 -0700, ashok malhotra wrote:
> I will not be able to make the call on Tuesday.
> Can we agree that Eric's description is accurate and correct?

Eric, I like your document. Giving a concrete syntax for the input is a
nice thing to do to make it explicit so that any RDBMS user can
understand what your document is about. By the way, may I suggest you to
precise that you need only two subsets of SQL:
* the Data Definition Language to describe your database
* the Data Manipulation Language that gives you the INSERT
It's important as you don't need any query at that point.

As nobody defines mapping in terms of concrete syntax, I guess we will
need some sort of abstraction (ie. AST) to reason about, one for the
input (SQL Data Definition Language + Data Manipulation Language /
INSERT) and one for the output (RDF). The latter is easy as we already
have [1] as a W3C Recommendation. Maybe you already have something in
mind for a SQL AST but here is an example of what one can expect from
your first example:

[[
CREATE TABLE Addresses (ID INT, city CHAR(10), state CHAR(2), PRIMARY
KEY(ID))
CREATE TABLE People (ID INT, fname CHAR(10), addr INT, PRIMARY KEY(ID),
FOREIGN KEY(addr) REFERENCES Addresses(ID))
INSERT INTO Addresses (ID, city, state) VALUES (18, "Cambridge", "MA")
INSERT INTO People (ID, fname, addr) VALUES (7, "Bob", 18)
INSERT INTO People (ID, fname, addr) VALUES (8, "Sue", NULL)
]]

would give something like that: (for better indentation/understanding,
please see the attached file)

[[
database(relation(name("Addresses"),
                  header(attribute("ID") → type(int)×PrimaryKey,
                         attribute("city") → type(char),
                         attribute("state") → type(char)),
                  data(tuple("ID" → 18, "city" → "Cambridge", "state" →
"MA")))
         relation(name("People"),
                  header(attribute("ID") → type(int)×PrimaryKey,
                         attribute("fname") → type(char),
                         attribute("addr") →
type(int)×ForeignKey("Adresses", "ID")),
                  data(tuple("ID" → 7, "fname" → "bob", "addr" → 18),
                       tuple("ID" → 8, "fname" → "sue", "addr" →
null))))
]]

Actually, this little example raises some questions. See below.

Does R2ML want to map the Data Definition Language to some generated
ontology?

If we take SQL types into account, do we want to know the constraints?
That means: is type(char) enough or do I need type(char(10))?

Also, one can assume that the built AST comes from valid SQL CREATE
TABLE / INSERT. But I think it would be safer to make some assumptions
explicit, like for example: "for any tuple, for any (attribute → value)
within this tuple, the declared type in the header and the actual type
for the value MUST be the same". If it's not the case, well, the mapping
does not make any sense :-) One can implement that as a light type
system on top of the AST, or we can also decide to make it part of the
mapping.

> The semantics can then be expressed in Datalog.

I was wondering what people call "semantics" for such a mapping and what
can kind of statements they expect in the case of R2ML?

I was taught that datalog was just a subset of Prolog, used to define
new relations from other relations using deductive logic. Here, we just
want to go from one model (RDB) to another one (RDF).

Alexandre.

> All the best, Ashok
> 
> On 10/15/2010 12:48 PM, Eric Prud'hommeaux wrote:
> > * Michael Hausenblas<michael.hausenblas@deri.org>  [2010-10-15 13:44+0100]
> >> All,
> >>
> >> Below the agenda for our next week's meeting. We now focus on addressing the
> >> remaining issues (such as document structure, etc.) and the mapping
> >> semantics in a high-level, non-formal way. The goal is to publish the FPWD
> >> next week.
> > I'd also like to get some feedback on whether
> >    http://www.w3.org/2010/10/12-Direct-Tests
> > match the WG's expectations of what the generated graphs would look like.
> >
> >> Cheers,
> >>        Michael
> >>
> >> ---------------------------------------------------------
> >> AGENDA Teleconference
> >> W3C RDB2RDF Working Group telephone conference 2010-10-19
> >> ----------------------------------------------------------
> >> Tuesday, 19 October *16:00-17:00 UTC* Local time:
> >> http://www.timeanddate.com/worldclock/fixedtime.html?month=10&day=19&year=20
> >> 10&hour=16&min=00&sec=0
> >> Bridge US: +1-617-761-6200 (Zakim) Conference code : 7322733# (spells
> >> "RDB2RDF")
> >> Duration : 60 minutes
> >> -------------------------------------------------------------------
> >> IRC channel : #RDB2RDF on irc.w3.org:6665 W3C IRC Web Client :
> >> http://www.w3.org/2001/01/cgi-irc
> >> Zakim information : http://www.w3.org/2002/01/UsingZakim
> >> Zakim bridge monitor : http://www.w3.org/1998/12/bridge/Zakim.html
> >> Zakim IRC bot : http://www.w3.org/2001/12/zakim-irc-bot.html
> >> -------------------------------------------------------------------
> >>
> >> Chair: Michael
> >> Scribe: Zakim, pick a victim
> >>
> >> 1. Admin
> >> PROPOSAL: Accept the minutes of last meeting, see
> >> http://www.w3.org/2010/10/12-rdb2rdf-minutes.html
> >>
> >> Review open actions, see
> >> http://www.w3.org/2001/sw/rdb2rdf/track/actions/open
> >>
> >> 2. FPWD "Relational Database to RDF Mapping Language"
> >> http://www.w3.org/2001/sw/rdb2rdf/r2rml/
> >>
> >> Comments see following threads:
> >> http://lists.w3.org/Archives/Public/public-rdb2rdf-wg/2010Oct/0028.html
> >>
> >> 3. AOB
> >>
> >> Cheers,
> >>        Michael
> >>
> >> -- 
> >> Dr. Michael Hausenblas
> >> LiDRC - Linked Data Research Centre
> >> DERI - Digital Enterprise Research Institute
> >> NUIG - National University of Ireland, Galway
> >> Ireland, Europe
> >> Tel. +353 91 495730
> >> http://linkeddata.deri.ie/
> >> http://sw-app.org/about.html
> >>
> >>
> >>
> 
> 

Received on Sunday, 17 October 2010 18:25:05 UTC