Re: How to eliminate bnode from N3QL query result

BTW, if you need just the rdf subclass statements that are the result  
of that query for use in some system you could use the query:

prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>

construct {?a rdfs:subClassOf ?b}
from <http://purl.org/commons/galen/>
    where {?a rdfs:subClassOf ?b filter (!isBlank(?a) && !isBlank(?b))}

This can be packaged up as a URL and you can get the resultant rdf  
with a http get. For your convenience, I've made a tinyurl for the  
query: http://tinyurl.com/23zalo

-Alan


On Sep 8, 2007, at 9:48 PM, Alan Ruttenberg wrote:

> Hi Helen,
>
> Not sure about N3QL but it can be done in SPARQL, e.g.
>
> prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
>
> select *
> from <http://purl.org/commons/galen/>
>    where {?a rdfs:subClassOf ?b filter (!isBlank(?a) && !isBlank(?b))}
>
> You can try this against the Neurocommons triple store here:
>
> http://hcls1.csail.mit.edu:8890/nsparql/
>
> Use count(*) instead of * to see how many results you get with or  
> without the filter.
>
> Only the raw owl is loaded. There is no inference.
>
> My only thought about N3QL was to write a rule that added a type  
> assertion when something is a class but not a restriction (say  
> "namedClass") and then do the query against that class.
>
> -Alan
>
>
> On Sep 8, 2007, at 7:37 AM, helen.chen@agfa.com wrote:
>
>>
>> Dear List
>>
>> I am using N3QL to get anatomic structures and relationship from  
>> an ontology.
>>
>> When query for subclasses of a concept, some bnodes are returned,  
>> as a result of restriction on that class, for example:
>>
>> In the ontology:
>> ---------------------------------------
>> :Hip  a       owl:Class ;
>>       rdfs:subClassOf :BodyJunctionalBodyPart ;
>>       rdfs:subClassOf
>>               [ a       owl:Restriction ;
>>                 owl:onProperty :hasBetaConnection ;
>>                 owl:someValuesFrom :Thigh
>>               ] .
>> ----------------------
>>
>> So a query
>>
>> [] select {?A ?B}
>>    where {?A rdfs:subClassOf ?B}.
>>
>> will give results
>>
>> :Hip    :BodyJunctionalBodyPart
>> :Hip    var:_123456 (bnode).
>>
>> Is there a way to eliminate the bnodes in the query result, i.e by  
>> using a filter clause maybe?
>>
>> Thanks for your help.
>>
>> Helen
>

Received on Monday, 10 September 2007 07:32:48 UTC