- From: Michael Hausenblas <michael.hausenblas@deri.org>
- Date: Wed, 13 Jul 2011 07:40:01 +0100
- To: RDB2RDF Working Group WG <public-rdb2rdf-wg@w3.org>
- Cc: Richard Cyganiak <richard.cyganiak@deri.org>, Richard Cyganiak <richard@cyganiak.de>
> [[
> PROPOSAL: To resolve ISSUE-34, drop rr:tableOwner, and instead state
> that rr:tableName MAY be qualified to include a schema name and a
> catalog name
> ]]
+1
Cheers,
Michael
--
Dr. Michael Hausenblas, Research Fellow
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
On 12 Jul 2011, at 19:26, Richard Cyganiak wrote:
> All,
>
> Continuing the discussion from the call.
>
> First, please review what the spec currently says:
> http://www.w3.org/2001/sw/rdb2rdf/r2rml/#physical-tables
>
> I'll explain the proposal in a bit more detail, for the sake of
> clarity. The proposal is to drop rr:tableOwner, and instead state
> that a "table or view name" MAY be qualified to include a schema
> name and a catalog name.
>
> The intention is that all of the following are all valid values for
> rr:tableName:
>
> emp
> EMP
> SCOTT.EMP
> CAT.SCOTT.EMP
> "Emp"
> "Scott Smith".EMP
> SCOTT."!@#$%^&"
>
> If catalog or schema are absent, then the defaults of the SQL
> connection are used. (Note that's nothing new; rr:tableOwner was
> always optional.)
>
> My arguments against other proposed designs are as follows:
>
> Proposal: no change
> Objection: rr:tableOwner is nonstandard terminology and the standard
> term is schema.
>
> Proposal: just rename rr:tableOwner to rr:tableSchema
> Objection: A fully qualified table name is [[Catalog.]Schema.]Table,
> and there is no case for separating [Catalog.]Schema from Table
>
> Proposal: have three properties rr:tableName, rr:schemaName,
> rr:catalogName (or similar names)
> Objection: This works and is consistent. But it puts undue burden on
> users who now have to use three properties for what can be achieved
> with one. Users already can write fully qualified table names in
> catalog.schema.table notation in rr:sqlQuery, so why should
> rr:tableName work any differently?
>
> Proposal: add rr:fullyQualifiedTableName as an alternative to the
> current design
> Objection: Having two different ways of doing exactly the same thing
> creates extra cognitive load for mapping authors, extra work for
> implementers, and extra work for editors, with no benefit.
>
> Proposal: allow fully qualified names, but call the property
> rr:objectName or similar to make clear it's something different from
> an unqualified table name
> Objection: The SQL spec states that a table name may include schema
> and catalog, so calling it rr:tableName is consistent.
>
> Objection: tableName is not intuitive because it doesn't mention views
> Counter: The SQL spec says that views are identified by table names.
> One can use a view almost everywhere in SQL where a table is
> allowed; and this fact is usually simply assumed and not explicitly
> pointed out by always referring to "table or view". The R2RML spec
> very explicitly states, in multiple places, that views are allowed
> too.
>
> Objection: Parsing fully qualified table names places undue burden
> on implementers
> Counter: It's not hard.
> Regex for an undelimited identifier: [^.]+
> Regex for a delimited identifier: ("[^"]*")+
> Regex for an identifier: (delimited|undelimited)
> Regex for a qualified table name: ((identifier\.)?identifier\.)?
> identifier
> (This regex is just for matching and splitting the three parts; it
> doesn't validate the characters that are allowed in undelimited
> identifiers. That's orthogonal to ISSUE-34.)
>
> So my proposal is still:
>
> [[
> PROPOSAL: To resolve ISSUE-34, drop rr:tableOwner, and instead state
> that rr:tableName MAY be qualified to include a schema name and a
> catalog name
> ]]
Received on Wednesday, 13 July 2011 06:40:43 UTC