- From: David Robillard <d@drobilla.net>
- Date: Fri, 10 Aug 2012 10:45:10 -0400
- To: nathan@webr3.org
- Cc: Ivan Herman <ivan@w3.org>, Souripriya Das <SOURIPRIYA.DAS@oracle.com>, public-rdf-comments Comments <public-rdf-comments@w3.org>, W3C RDF WG <public-rdf-wg@w3.org>
- Message-ID: <1344609910.5189.52.camel@verne.drobilla.net>
On Mon, 2012-07-30 at 11:45 +0100, Nathan wrote: > Ivan Herman wrote: > > (Sorry for the late reaction, I was on vacations...) > > > > > > The ^P formalism and syntax is already part of the SPARQL 1.1 query language, part of the property path features. Ie, if adopted in Turtle, it would not create any compatibility problems with SPARQL 1.1 (which would not be the case with the 'is ... of' syntax). > > > > RDFa has the @rev attribute that is used for the same purpose. In my own practice @rev is not used very often; however, when it is, it is damn useful, that is for sure... > > > > _Personally_, I would be in favour adding ^P to Turtle. > > +1 I have been considering this change, and while I am extremely resistant to complicating Turtle and making the mapping of the syntax to the model "fuzzier", some of the arguments for already mentioned are compelling. For my pet use case of high performance streaming abbreviated serialization, it will make life more difficult, but I *think* it is not a show-stopper (I have not yet attempted to implement this). On the down side: * It raises questions about serialization and normalization, which I suspect in practice will mean it simply disappears whenever the data has travelled via a model, since this concept is not in the model. "Deeply" supporting this concept means augmenting statements stored in the model, however one could argue that, just as in syntax, this is preferable to defining every property twice. Since implementations can simply eliminate 'inverseness' immediately upon parsing nobody is forced to deal with these deeper implications. The only unavoidable deeper repercussion is that triple order gets wacky when streaming. If you're transmitting abbreviated subject-oriented descriptions that need to remain whole, you either have to augment your model with an inverse flag, or forbid inverse properties in that context. * It is certainly ugly and completely non-obvious, but being from SPARQL no alternative would be considered anyway. For what it's worth, in my opinion Tim's original proposal is much clearer. When teaching/advocating I would not make mention of this feature at all: while useful, it is not very elegant and makes the language less clear. * More fancifully, one might imagine a more powerful general mechanism to annotate any segment with any triple ordering. This would make it possible, for example, to serialize abbreviated PSO in Turtle, which for some data sets makes a huge difference. For example: @PSO . doap:name <http://drobilla.net/drobilla#me> "David" ; <http://plugin.org.uk/swh.xrdf#me> "Steve" ; <http://www.w3.org/People/Berners-Lee/card#i> "Tim" . (or perhaps @order 2 1 3 . to go *really* general and avoid English) This makes it possible to much more efficiently store certain data sets (or indices) in Turtle. I am not seriously proposing this, but it is an idea that seemed worth mentioning if we're going to tinker with triple ordering. Anyway, all that said, unlike the other changes from SPARQL which seem to automatically make it in without discussion, this one actually has tangible value for tersely publishing linked data, which is what Turtle is for. That it reduces incentive to make inverse properties, and makes possible certain streaming serialization use cases, are certainly much stronger arguments than crippling the pname syntax for copy paste compatibility with a path syntax that doesn't even make sense in Turtle in the first place. Accordingly, I support this addition more than I support the other junk from SPARQL that has already been included. In particular, since this is a *useful* adoption of path syntax, which addresses real (i.e. not superficial) issues, and makes sense when considering Turtle as a language unto itself, personally I think it is vastly more appropriate addition than the mangled PN_ rules. In short, I am not sure I actively support the feature, but the arguments for are convincing and I would happily implement it, at least for parsing. Thank you, -dr
Received on Friday, 10 August 2012 14:45:37 UTC