- From: Andy Seaborne <andy.seaborne@talis.com>
- Date: Mon, 01 Feb 2010 09:09:54 +0000
- To: SPARQL Working Group <public-rdf-dawg@w3.org>
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 . # ?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.
Received on Monday, 1 February 2010 09:10:08 UTC