[TURTLE] Turtle Inverse Properties

The following is a summary of the positions expressed by the WG and by
the community on public-rdf-comments around Turtle Inverse Properties


Use cases
=========

Reduce otherwise verbose reuse of an object for many subjects.
(From TimBL http://lists.w3.org/Archives/Public/public-rdf-comments/2012Jul/0007.html)

Examples:

    foaf:Person is a of :Alice, :Bob, :Charlie, :David, :Elisa .

vs.

    :Alice a foaf:Person .
    :Bob a foaf:Person .
    :Charlie a foaf:Person .
    :David a foaf:Person .
    :Elisa a foaf:Person .

Allowing a predicate to be used in either direction
(From TimBL http://lists.w3.org/Archives/Public/public-rdf-comments/2012Jul/0007.html)

    :Alice  foaf:age 38;
        g:child :Bob, :Charlie;
        is  g:child of  :Edna, :Fred;
        foaf:basedNear :London;
        is dc:author of [ dc:title "My life"; dc:date "1999"] .


Compatibility with N3 has not been considered as a use case.

Rationale
=========

Decreases the motivation for the anti-pattern to define both property
and inverse of the property for all properties. In other words, if you
can write  "is child of" you don't need to define a separate "parent"
property.

No emerging consensuses on the need to reduce otherwise verbose reuse
of an object for many subjects.


Objections
==========

English-centric "is ... of" is English-centric.

Moves Turtle away from stated goal of compatibility with SPARQL 1.1.


Revised ^ Syntax
================

    foaf:Person ^a :Alice, :Bob, :Charlie, :David, :Elisa .

    :Alice  foaf:age 38;
        g:child :Bob, :Charlie;
        ^g:child :Edna, :Fred;
        foaf:basedNear :London;
        is dc:author of [ dc:title "My life"; dc:date "1999"] .

Objections to Revised Syntax
============================

Not compatible with N3

Not compatible with SPARQL Update or SPARQL CONSTRUCT

No implementation experience


Objections to both original syntax and revised syntax
=====================================================

Turtle is a reasonably settled languages, changes made by the working
group so far have been limited to areas of existing differences in
implementation.

No demand over years of implementation experience

Harder to teach Turtle

No implementation experience in SERIALIZING to these inverse forms.


Proposals
=========

1. Add is .. of syntax to Turtle.

    1.1. Allowing "literals" in any subject position by syntax,
however the RDF model disallows literal as subject. (somewhat as
SPARQL but SPARQL does not support is ... of syntax)

    1.2. Attempting to limit use of "literals" in subject position to
only is ... of predicates in grammar (Not as SPARQL)


2. Add ^ property path syntax to Turtle.

    1.1. Allowing "literals" in any subject position by syntax,
however the RDF model disallows literal as subject. (As SPARQL in
query blocks, however SPARQL disallows path syntax in triple assertion
syntax)

    1.2. Attempting to limit use of "literals" in subject position to
only ^ predicates in grammar (Not as SPARQL and SPARQL disallows path
syntax in triple assertion syntax.)


3. Add both ^ property path syntax and "is ... of" syntax.

    1.1. Allowing "literals" in any subject position by syntax,
however the RDF model disallows literal as subject. (As SPARQL in
query blocks, however SPARQL disallows path syntax in triple assertion
syntax)

    1.2. Attempting to limit use of "literals" in subject position to
only ^ predicates and is .. of predicates in grammar (Not as SPARQL
and SPARQL disallows path syntax in triple assertion syntax and SPARQL
does not support is ... of)

4. Do nothing.

Received on Friday, 17 August 2012 18:30:58 UTC