- From: Steve Harris <steve.harris@garlik.com>
- Date: Mon, 1 Feb 2010 18:56:16 +0000
- To: Andy Seaborne <andy.seaborne@talis.com>
- Cc: SPARQL Working Group <public-rdf-dawg@w3.org>
On 1 Feb 2010, at 09:09, Andy Seaborne wrote: > Summary: > > 1/ Use of ! ex:property meaning anything but that property. > > # ?x connected to :y but not by having the same type: > ?x !rdf:type ?y . I'm a little confused by the semantics of this, is it: ?x ?p ?y . NOT EXISTS { ?x rdf:type ?y } . or ?x ?p ?y FILTER(?p != rdf:type) - Steve > # ?x connected to ?y by some path that excludes rdf:type > ?x !( rdf:type | ^rdf:type)* ?y . > > and a follow-on from that, not mentioneded by Doug, would be "any" > property (but not bound to a variable). > > 2/ Describing properties rather than just naming them. > > Andy > > -------- Original Message -------- > Subject: Comments on SPARQL 1.1 Property Paths > Resent-Date: Mon, 01 Feb 2010 02:43:25 +0000 > Resent-From: public-rdf-dawg-comments@w3.org > Date: Fri, 29 Jan 2010 09:52:46 -0500 > From: Douglas Reid <dreid@bbn.com> > To: public-rdf-dawg-comments@w3.org > > I had a few questions/comments regarding the draft of the SPARQL 1.1 > Property Paths that was just published. > > Has there been any consideration of enabling, for lack of a better > term, negated properties in property paths? By negated properties, > I mean the notion of "any property EXCEPTING x". The use case that > comes to mind is the notion of determining if two entities are > connected via some graph pattern, without having to know how they > are connected and wanting to ignore trivial / useless connections. > For instance, I might want to discover whether or not ex:GeorgeWBush > and ex:TonyBlair have a connection in the graph, ignoring the fact > that they are both (rdf:type ex:Politician)s. > > It seems that having a negation mechanism might be more efficient, > in certain cases, than a long listing of alternatives. > > Consider: > > { > ?x ( foaf:knows | ex:meetOnce | ex:workedWith | ex:ownedCompany | > ex:employed | .. )* ?y . > } > > as compared to: > > { > ?x !( rdf:type | ^rdf:type)* ?y . > } > > Note: Here the "!" character is meant to convey a path that exists > but does not include these properties, as opposed to implying the > absence of a path using those properties. > > I realize that with clever ontology-wrangling, one could make all > "interesting" properties a sub-property of a utility property that > would serve to make property path querying easier, but that seems > less elegant and, in some situations, impractical. > > Somewhat related question: I think I understand why the WG doesn't > want to tackle variable property paths, but might it be useful to > include a mechanism for general property description, without > explicit property naming? One wouldn't need the chosen property for > the path returned just be able to ontologically-describe an > appropriate property to chose when considering paths. > > For instance, imagine trying to ensure, without exhaustive > specification, that all property paths identified only occur through > non-literal objects, so as to avoid trivial connections (say > ex:first_name or ex:age). > > It might look something like: > > { > ?x ( [ a owl:ObjectProperty ] | ^[ a owl:ObjectProperty ] ) * ?y . > } > > Thanks for listening, > Doug. > > -- Steve Harris, Garlik Limited 2 Sheen Road, Richmond, TW9 1AE, UK +44 20 8973 2465 http://www.garlik.com/ Registered in England and Wales 535 7233 VAT # 849 0517 11 Registered office: Thames House, Portsmouth Road, Esher, Surrey, KT10 9AD
Received on Monday, 1 February 2010 18:56:46 UTC