W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > January to March 2010

Re: Comments on SPARQL 1.1 Property Paths

From: Andy Seaborne <andy.seaborne@talis.com>
Date: Mon, 01 Feb 2010 21:45:12 +0000
Message-ID: <4B674B68.7050502@talis.com>
To: Steve Harris <steve.harris@garlik.com>
CC: SPARQL Working Group <public-rdf-dawg@w3.org>


On 01/02/2010 6:56 PM, Steve Harris wrote:
> 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

I am reading Doug's comments as it being the latter.  It's not absence 
of a path; there is a link; it's not rdf:type.

The example is of whether ex:GeorgeWBush and ex:TonyBlair have a
connection in the graph, ignoring the fact that they are both
(rdf:type ex:Politician)s.

	Andy

>
>> # ?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 21:45:24 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:41 GMT