ISSUE-54: Simpler constant-valued term maps

constant-term-map

Simpler constant-valued term maps

State:
CLOSED
Product:
R2RML
Raised by:
Richard Cyganiak
Opened on:
2011-07-18
Description:
“Constant-valued term maps” are a very simple construct that is used quite frequent in R2RML. I expect them to account for nearly 50% of all term maps.
http://www.w3.org/2001/sw/rdb2rdf/r2rml/#constant

There are several problems with the current design for constant-valued term maps in R2RML:

1. It's rather verbose. Something so simple shouldn't require several triples and nested nodes.
2. It's inconsistent with other kinds of term maps (column- and template-valued term maps)
3. While a column- or template-based term maps can be re-used in multiple position (as subject, predicate, object, and graph name), this is not possible with constant-valued term maps
4. R2RML defines four different properties for a job that could be done with one property

There are four different kinds of constant-valued term maps, depending on where in the mapping they occur: constant-valued subject maps, predicate maps, object maps, and graph maps.

[] rr:subjectMap [ rr:subject <constant> ].
[] rr:predicateMap [ rr:predicate <constant> ].
[] rr:objectMap [ rr:object <constant> ].
[] rr:graphMap [ rr:graph <constant> ].

It would be simpler if they would all use the same property for expressing the constant part:

[] rr:subjectMap [ rr:constant <constant> ].
[] rr:predicateMap [ rr:constant <constant> ].
[] rr:objectMap [ rr:constant <constant> ].
[] rr:graphMap [ rr:constant <constant> ].

This would simplify spec and implementation, and would be more consistent with the design of other kinds of term maps (column- and template-valued term maps), which use the same property (such as rr:column, rr:template, rr:termType and so on) regardless of whether the term map is a subject map, predicate map etc. This would also make them more re-usable: The same constant-valued term map could now be used both as subject and as object map, as is already possible with column- and template-valued term maps.

Furthermore, adopting this change would free up the terms rr:subject, rr:predicate, rr:object and rr:graph for another, more beneficial use: They could be used as syntactic sugar for quickly establishing constant-valued term maps. So, we could simply write

[] rr:predicate foaf:name.

and it would be syntactic sugar for

[] rr:predicateMap [ rr:constant foaf:name ].

And rr:subject, rr:object and rr:graph would be defined in the same way as shortcuts for establishing a constant-valued subject map, object map or graph map respectively.

Given that constant-valued term maps are so common (especially as predicate maps and graph maps), this would nicely help reduce the verbosity of R2RML.
Related Actions Items:
No related actions
Related emails:
  1. Re: Please review: syntactic sugar and polishing (ISSUE-54, ISSUE-56, ISSUE-59, ISSUE-60) (from dmcneil@revelytix.com on 2011-08-30)
  2. Re: Please review: syntactic sugar and polishing (ISSUE-54, ISSUE-56, ISSUE-59, ISSUE-60) (from richard@cyganiak.de on 2011-08-30)
  3. Re: Please review: syntactic sugar and polishing (ISSUE-54, ISSUE-56, ISSUE-59, ISSUE-60) (from boris.villazon@deri.org on 2011-08-30)
  4. Re: Please review: syntactic sugar and polishing (ISSUE-54, ISSUE-56, ISSUE-59, ISSUE-60) (from dmcneil@revelytix.com on 2011-08-30)
  5. Re: Please review: syntactic sugar and polishing (ISSUE-54, ISSUE-56, ISSUE-59, ISSUE-60) (from dmcneil@revelytix.com on 2011-08-29)
  6. Re: Please review: syntactic sugar and polishing (ISSUE-54, ISSUE-56, ISSUE-59, ISSUE-60) (from richard@cyganiak.de on 2011-08-29)
  7. Re: Please review: syntactic sugar and polishing (ISSUE-54, ISSUE-56, ISSUE-59, ISSUE-60) (from dmcneil@revelytix.com on 2011-08-29)
  8. Please review: syntactic sugar and polishing (ISSUE-54, ISSUE-56, ISSUE-59, ISSUE-60) (from richard@cyganiak.de on 2011-08-27)
  9. Re: Status of the R2RML document and going last call (from michael.hausenblas@deri.org on 2011-08-02)
  10. Status of the R2RML document and going last call (from richard@cyganiak.de on 2011-08-02)
  11. Re: RDB2RDF WG agenda for 2011-08-02 meeting 1600 UTC (from marcelo.arenas1@gmail.com on 2011-08-02)
  12. Re: RDB2RDF WG agenda for 2011-08-02 meeting 1600 UTC (from ashok.malhotra@oracle.com on 2011-08-02)
  13. RDB2RDF WG agenda for 2011-08-02 meeting 1600 UTC (from michael.hausenblas@deri.org on 2011-07-30)
  14. Re: Many-to-Many table in R2RML (from juanfederico@gmail.com on 2011-07-29)
  15. Re: Many-to-Many table in R2RML (from richard@cyganiak.de on 2011-07-29)
  16. Re: RDB2RDF WG agenda for 2011-07-19 meeting 1600 UTC (from juanfederico@gmail.com on 2011-07-19)
  17. Re: RDB2RDF WG agenda for 2011-07-19 meeting 1600 UTC (from seema.sundara@oracle.com on 2011-07-19)
  18. Re: RDB2RDF WG agenda for 2011-07-19 meeting 1600 UTC (from marcelo.arenas1@gmail.com on 2011-07-19)
  19. RDB2RDF WG agenda for 2011-07-19 meeting 1600 UTC (from michael.hausenblas@deri.org on 2011-07-19)
  20. ISSUE-54 (constant-term-map): Simpler constant-valued term maps [R2RML] (from sysbot+tracker@w3.org on 2011-07-18)

Related notes:

Done:
http://www.w3.org/2001/sw/rdb2rdf/r2rml/#dfn-constant-valued-term-map
http://www.w3.org/2001/sw/rdb2rdf/r2rml/#dfn-constant-shortcut-property

The possible use of the constant shortcut properties is also pointed out throughout the text wherever they are allowed. Most examples are updated to use rr:predicate instead of rr:predicateMap.

Richard Cyganiak, 27 Aug 2011, 15:39:53

As per WG decision [1]:

[[
RESOLUTION: Close ISSUES 54, 56, 60; they are addressed in the latest draft.
]]

[1] http://www.w3.org/2011/09/06-RDB2RDF-minutes.html#item02

Michael Hausenblas, 6 Sep 2011, 17:24:46

Display change log ATOM feed


Ashok Malhotra <ashok.malhotra@oracle.com>, Michael Hausenblas <michael.hausenblas@deri.org>, Chairs, Eric Prud'hommeaux <eric@w3.org>, Ivan Herman <ivan@w3.org>, Staff Contacts
Tracker: documentation, (configuration for this group), originally developed by Dean Jackson, is developed and maintained by the Systems Team <w3t-sys@w3.org>.
$Id: 54.html,v 1.1 2012/10/16 16:28:39 vivien Exp $