Re: ACTION-122: Proposal for ISSUE-18

Based on original suggestion by Alex and name change suggestions from 
Ashok and David, I have put together the following proposal for 
discussion in the group meeting (today, if possible). -- Souri.

PROPOSAL: To resolve ISSUE-18 by always requiring use of a URI (or blank 
node) to identify the logical table to use for a TriplesMap and 
specifying the details about the logical table using either the pair of 
properties, rr:tableName and rr:tableOwner, or the property rr:SQLQuery.

Details:

The logical table identifier will be specified as value for a new 
property, rr:logicalTable, for the TriplesMap and it will be member of 
exactly one of two new subclasses, rr:NamedLogicalTableClass and 
rr:QueryLogicalTableClass, of the new class rr:LogicalTableClass.

To support specifying the details of a logical table, domain for the two 
properties, rr:tableName, rr:tableOwner will be changed to 
rr:NamedQueryClass and the domain for rr:SQLQuery will be changed to 
rr:QueryLogicalTableClass. If a logical table is member of 
rr:NamedLogicalTableClass, then details about the logical table will be 
specified using the rr:tableName and rr:tableOwner properties. If the 
logical table is member of rr:QueryLogicalTableClass, then the details 
will be specified using the rr:SQLQuery property.

Example:

<TriplesMap1>
     a rr:TriplesMapClass;
     rr:logicalTable <MyTable>;
     ...

<TriplesMap2>
     a rr:TriplesMapClass;
     rr:logicalTable <GetFailStudents>;
     ...

<TriplesMap3>
     a rr:TriplesMapClass;
     rr: logicalTable <GetFailStudents>;
     ...

<MyTable>
     a  rr:NamedLogicalTableClass;
     rr:tableName "my_table";
     rr:tableOwner "my_schema".

<GetFailStudents>
     a  rr:QueryLogicalTableClass;
     rr:SQLQuery "SELECT id, name FROM my_schema.students WHERE grade<  50".

Received on Tuesday, 10 May 2011 15:57:35 UTC