以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  请教高手,一个关于SPARQL的问题!!  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=43493)


--  作者: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>


--  作者:windancer2003
--  发布时间:3/8/2007 1:34:00 AM

--  
select ?x ?y ?z
where {
pizza rdfs:domain ?x
OPTIONAL {?x rdfs:subClassOf ?y}.
OPTIONAL {?y rdfs:subClassOf ?z}.
}

W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms