Re: SKOS query in SPARQL 1.1

  The blog posting Dan mentions covers property paths as one set of new 
SPARQL 1.1 features. I covered other new features at 
http://www.snee.com/bobdc.blog/2010/08/trying-sparql-11-new-query-fea.html.

For using property paths with SKOS, here are a few queries off the top 
of my head with the International Virtual  Observatory Alliance SKOS 
thesaurus available at 
http://www.ivoa.net/rdf/Vocabularies/vocabularies-20091007/IAUT93/ . (If 
I brought over my neighbor who knows a lot more about astronomy than I 
do, that would probably make these better.)

All queries assume @prefix i: 
<http://www.ivoa.net/rdf/Vocabularies/IAUT93#> and @prefix skos: 
<http://www.w3.org/2004/02/skos/core#> .

1. Get all data in the subtree under the top level concept i:VariableStars:

SELECT *
WHERE {
   ?c skos:broader* i:VariableStars .
   ?c ?p ?o .
}


2. What concepts are skos:related to the same concepts that i:BlackHoles 
is related to?

SELECT DISTINCT ?c
WHERE {
   i:BlackHoles skos:related^skos:related ?c .
   FILTER (?c != i:BlackHoles)
}


3. Working in some of SPARQL 1.1's aggregate functions 
(http://www.w3.org/TR/sparql11-query/#aggregates) can help to analyze a 
particular vocabulary. For example: how many nodes are there six levels 
down?

SELECT (COUNT(?b) as ?sixDeep)
WHERE {
   ?c skos:broader{6} ?b .
}


Bob


-----Original Message-----

From: Dan Brickley [mailto:danbri@danbri.org]
Sent: Saturday, October 16, 2010 6:04 AM
To: SKOS

Subject: SKOS query in SPARQL 1.1

Hello SKOS people,

http://www.snee.com/bobdc.blog/2010/10/playing-more-with-sparql-11-pr.html
from Bob DuCharme might be of interest.

"Playing more with SPARQL 1.1 property paths"

It describes some new language features in SPARQL (along with their
implementation in ARQ, Jena's query engine; Java software).

The new SPARQL draft includes a 'property paths' feature,
http://www.w3.org/TR/2010/WD-sparql11-query-20101014/#propertypaths

"A property path is a possible route through a graph between two graph
nodes. A trivial case is a property path of length exactly 1, which is
a triple pattern. Property paths allow for more concise expression of
some SPARQL basic graph patterns and also add the ability to match
arbitrary length paths. The ends of the path may be RDF terms or
variables. Variables can not be used as part of the path itself, only
the ends. Query evaluation determines all matches of a path expression
and binds subject or object as appropriate."

This should lend itself to SKOS (and Bob reports some success there),
since we often have hierarchies of skos:broader to traverse. If anyone
experiments with this, I'm sure everyone here would be happy to see
some summary and sample queries. The SPARQL Working Group might
appreciate feedback too.

cheers,

Dan

Received on Saturday, 16 October 2010 13:51:08 UTC