ACTION-122: Proposal for ISSUE-18

Hello everyone,

I hope this can clarify my proposal for ISSUE-18 presented at the last meeting.

The proposal is based on the following two ideas:

1) Each TriplesMap is associated with exactly one relation. 
2) Relations can be of two kinds: 
	- RefereciableRelations which are those that have a name in the DB schema (i.e. tables and views);
	- QueryResultRealtions which are the runtime relations generated from the result of a SELECT SQL query. 

The following UML illustrates the relationship between the TriplesMap and the Relation.
The following R2RML demonstrate the usage of the proposed schema:

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

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

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

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

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


The advantages that I see on this proposal are:

- Abstraction of the relation attributes to its own semantic object.
- Separation of concerns between the TriplesMaps and the Relation
- Enable reuse of the relation objects by multiple TripleMaps because now every relation has its own URI. 

The disadvantages that I see on this proposal are:
- Changes the structure of the current R2RML specification.
- Introduces complexity to the R2RML language. 

The names of properties and classes could (or should) be changed to others that are more user-friendly and meaningful. 

Cheers,
Alex

Received on Wednesday, 4 May 2011 11:27:05 UTC