W3C home > Mailing lists > Public > public-rdf-comments@w3.org > July 2012

Re: in...of syntax Re: Turtle Last Call: Request for Review

From: Steve Harris <steve.harris@garlik.com>
Date: Tue, 17 Jul 2012 11:40:26 +0100
Cc: Dan Brickley <danbri@danbri.org>, Tim Berners-Lee <timbl@w3.org>, public-rdf-comments@w3.org, David Wood <david@3roundstones.com>, Sandro Hawke <sandro@w3.org>
Message-Id: <77576DA0-6A3A-4B8F-93AE-FD79EDC73E97@garlik.com>
To: nathan@webr3.org
On 2012-07-16, at 22:24, Nathan wrote:

> Dan Brickley wrote:
>> On 16 July 2012 21:36, Tim Berners-Lee <timbl@w3.org> wrote:
>>> I would like to formalize the request I have made at intervals
>>> to include the     is ... of syntax as in N3 in Turtle.
>>> Motivations:
>>> - It is convenient for human Turtle writers.
>>>        Example:
>>>        foaf:Person is rdf:type of :Alice, :Bob, :Charlie, :David, :Elisa .
>> consider
>> foo:TechnicalPerson is rdfs:subClassOf foaf:Person .
>> giving us
>> foaf:Person is rdfs:subClassOf of foo:TechnicalPerson .
>> or
>> bar:copyeditor rdfs:subPropertyOf dc:contributor .
>> giving us
>> dc:contributor is rdfs:subPropertyOf of bar:copyeditor .
>> Cutting out the namespaces and reading the English, we get
>> "Person is subClassOf of TechnicalPerson", and "contributor is
>> subPropertyOf of copyeditor".
>> The repetitition of 'of' here reminds me unhappily of
>> http://en.wikipedia.org/wiki/James_while_John_had_had_had_had_had_had_had_had_had_had_had_a_better_effect_on_the_teacher
>> Ultimately I think the old RDFS WG takes the blame here; we should
>> have called these 'superProperty' and 'superClass': "Person is
>> superClass of TechnicalPerson" is just fine.
>> You might argue that there are a handful of properties (those with
>> 'of' in the name, mostly) for which this shortcut is really bad, but
>> perhaps it's still useful.
>> I am entirely sat on the fence. I don't feel comfortable turning
>> Turtle (and SPARQL too?) into more of a pseudo-English thing. On the
>> other hand ...
>>> - By allowing a predicate to be used in either direction, it decreases
>>> the motivation for the antipattern define both p and inverse of p for all p.
>>> In other words, of you can write   "is child of" you don't need
>>> to define a separate "parent" property.
>> ...this is quite persuasive, though note that RDF vocabulary authors
>> take more into account than Turtle: if 'rev=' is not considered
>> deployable in HTML5+RDFa, they'll still include the inverses.
> The same thing can be achieved with symbols, for example using ^:
>  foaf:Person ^rdf:type :Alice, :Bob, :Charlie, :David, :Elisa .
> It seems there are two issues, one if having the functionality, the other is having the alignment with N3. Which is the most important, are they equal, is there a possibility of having one without the other?
> My personal opinion is "why not", it has worked for over a decade, wouldn't break turtle, and is very useful (I requested this myself multiple times at the start of the RDF WG too).

A concern with all these approaches that no-one has touched on is the increased difficulty of learning the syntax.

While you don't have to show someone new to the language all the features, they will see anything popular in data in the wild.

At the risk of being a devil's advocate, the lack of a ^-type syntax doesn't seem to have hurt Turtle adoption so farů


Steve Harris, CTO
Garlik, a part of Experian
+44 7854 417 874  http://www.garlik.com/
Registered in England and Wales 653331 VAT # 887 1335 93
Registered office: Landmark House, Experian Way, Nottingham, Notts, NG80 1ZZ
Received on Tuesday, 17 July 2012 10:40:59 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 16:59:30 UTC