- From: Alan Ruttenberg <alanruttenberg@gmail.com>
- Date: Sat, 8 Sep 2007 21:48:40 -0400
- To: helen.chen@agfa.com
- Cc: semantic-web@w3.org
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 Sunday, 9 September 2007 01:48:55 UTC