-- 作者:D_Dorf
-- 发布时间:2/28/2007 8:00:00 PM
-- 请教高手,一个关于SPARQL的问题!!
我的SPARQL问句: String prefix = "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> " + "PREFIX base: <http://ontosearch.com/ontology#> "; String slect = "SELECT ?y "; String where = "WHERE { "+ //"?x rdfs:subClassOf ?y ." + " base:pizza rdfs:domain ?y . " + " }"; ------------------------------------------------------------------------------------------------------------------- 得到了如下结果: ----------------------------------------- | y | ========================================= | base:test | | base:food | | rdfs:Resource | | base:cultures | | base:non-creature | | <http://www.w3.org/2002/07/owl#Thing> | | base:country | ----------------------------------------- 这个结果把两个pizza的class混在了一起。我的意图其实是想把每个pizza的class分别显示出来, 如以下: ----------------------------------------- | y | ========================================= | base:food | | base:cultures | | base:non-creature | ----------------------------------------- | y | ========================================= | base:test | | base:country | base:non-creature ----------------------------------------- 这样我就可以得到两条路经: non-creature -> cultures -> food -> pizza 和: non-creature -> country -> test -> pizza 请教高手,该怎么实现? 附带rdf文件: <?xml version="1.0" encoding="windows-1252"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <owl:Ontology rdf:about="http://ontosearch.com/ontology"/> <rdfs:Class rdf:about="http://ontosearch.com/ontology#country"> <rdfs:subClassOf> <owl:Class rdf:about="http://ontosearch.com/ontology#non-creature"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:about="http://ontosearch.com/ontology#cultures"> <rdfs:subClassOf rdf:resource="http://ontosearch.com/ontology#non-creature"/> </rdfs:Class> <rdfs:Class rdf:about="http://ontosearch.com/ontology#food"> <rdfs:subClassOf rdf:resource="http://ontosearch.com/ontology#cultures"/> </rdfs:Class> <rdfs:Class rdf:about="http://ontosearch.com/ontology#bacteria"> <rdfs:subClassOf> <owl:Class rdf:about="http://ontosearch.com/ontology#creature"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:about="http://ontosearch.com/ontology#science"> <rdfs:subClassOf rdf:resource="http://ontosearch.com/ontology#non-creature"/> </rdfs:Class> <rdfs:Class rdf:about="http://ontosearch.com/ontology#test"> <rdfs:subClassOf rdf:resource="http://ontosearch.com/ontology#country"/> </rdfs:Class> <owl:Class rdf:about="http://ontosearch.com/ontology#Plant"> <rdfs:subClassOf rdf:resource="http://ontosearch.com/ontology#creature"/> </owl:Class> <owl:Class rdf:about="http://ontosearch.com/ontology#Auto"> <rdfs:subClassOf rdf:resource="http://ontosearch.com/ontology#non-creature"/> </owl:Class> <owl:Class rdf:about="http://ontosearch.com/ontology#Vore"> <rdfs:subClassOf rdf:resource="http://ontosearch.com/ontology#creature"/> </owl:Class> <owl:ObjectProperty rdf:about="http://ontosearch.com/ontology#jaguar"> <rdfs:domain rdf:resource="http://ontosearch.com/ontology#vore"/> </owl:ObjectProperty> <owl:ObjectProperty rdf:about="http://ontosearch.com/ontology#tiger"> <rdfs:domain rdf:resource="http://ontosearch.com/ontology#vore"/> </owl:ObjectProperty> <rdf:Description rdf:about="http://ontosearch.com/ontology#cat"> <rdfs:domain rdf:resource="http://ontosearch.com/ontology#vore"/> </rdf:Description> <rdf:Description rdf:about="http://ontosearch.com/ontology#pizza"> <rdfs:domain rdf:resource="http://ontosearch.com/ontology#test"/> <rdfs:domain rdf:resource="http://ontosearch.com/ontology#food"/> </rdf:Description> </rdf:RDF>
|