Fwd: Comments on SPARQL 1.1 Property Paths

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