以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  急:如何建立transitive属性  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=75087)


--  作者:summertea007
--  发布时间:5/26/2009 10:17:00 PM

--  急:如何建立transitive属性
比如定义ABC三个类,A is-part-of B,B is-part-of C,is-part-of是Transitive的

我在protege中建立的是

<owl:TransitiveProperty rdf:ID="is_part_of">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
    <rdfs:range>
      <owl:Class>
        <owl:unionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#B"/>
          <owl:Class rdf:about="#C"/>
        </owl:unionOf>
      </owl:Class>
    </rdfs:range>
    <rdfs:domain>
      <owl:Class>
        <owl:unionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#A"/>
          <owl:Class rdf:about="#B"/>
        </owl:unionOf>
      </owl:Class>
    </rdfs:domain>
  </owl:TransitiveProperty>

可是后来我用jena查找is_part_of的domain和range查出来的是


--  作者:summertea007
--  发布时间:5/26/2009 10:27:00 PM

--  
可是后来我用jena查找is_part_of的domain和range查出来的是

Class:A
  associated object property: is_part_of
  asssociated property domain:null
  asssociated property range:3c032d18:1217d4b4859:-7ffd
Class:B
  associated object property: is_part_of
  asssociated property domain:null
  asssociated property range:3c032d18:1217d4b4859:-7ffd
Class:C
  associated object property: is_part_of
  asssociated property domain:null
  asssociated property range:3c032d18:1217d4b4859:-7ffd


--  作者:summertea007
--  发布时间:5/26/2009 10:28:00 PM

--  
所以我感觉 是不是我在建立transitive属性的时候出了错。
--  作者:summertea007
--  发布时间:5/26/2009 10:35:00 PM

--  
又或者是我在用Jena查询的时候出了错?
大家能帮我看看么
for(Iterator ipp = ((OntModel)c.getModel()).listObjectProperties();ipp.hasNext(); )      
    {
       OntProperty property = (OntProperty) ipp.next();
       System.out.println("  associated object property: " + property.getLocalName().toString());
       System.out.println("  asssociated property domain:" + property.getDomain().getLocalName());
       for (Iterator pr=property.listRange();pr.hasNext();)
       {   
        OntResource range = (OntResource) pr.next();
        System.out.println("  asssociated property range:" + range.as(OntClass.class).toString());
       }
--  作者:Lexxuan
--  发布时间:5/27/2009 3:04:00 AM

--  
我用你的附件的owl是得不到4楼的结果的,只有
Class:A
Class:B
Class:C
究其原因,是因为你的附件只有:
  <owl:Class rdf:ID="C" />
  <owl:Class rdf:ID="B" />
  <owl:Class rdf:ID="A" />
和属性的定义,却没有把此属性分配到任何类.
LZ怎么得到你4楼的结果的?而且,我用我的Jena,可能是版本问题,没有.listObjectProperties(),而是.listDeclaredProperties()
请LZ说明.
--  作者:Lexxuan
--  发布时间:5/27/2009 3:36:00 AM

--  
另外,你的这种方法查询owl功能很有限,也会出现类似你的运行结果的难理解的字符串.
可以用SPARQL查询
--  作者:summertea007
--  发布时间:5/30/2009 6:45:00 PM

--  
那么对于“传递”关系应该怎么建立owl文件呢?

还有如果要查询一个属性的domain和range 用SPARQL语言怎么写?


--  作者:summertea007
--  发布时间:5/30/2009 6:47:00 PM

--  
拜托各位高手发表一下意见 现在卡住了 毕业设计的项目进行不下去了
--  作者:Lexxuan
--  发布时间:5/30/2009 11:07:00 PM

--  
传递属性在owl里怎么表达,可以用工具建造本体然后再查阅owl文件就会很清楚了.
怎么用SPARQL查询,可以参考帖子  Jena下本体的简单检索
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms