Skip to content

Instantly share code, notes, and snippets.

@gcarothers
Created August 17, 2012 16:47
Show Gist options
  • Save gcarothers/3380493 to your computer and use it in GitHub Desktop.
Save gcarothers/3380493 to your computer and use it in GitHub Desktop.
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 SERALIZING 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment