以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  listDeclaredProperties如何获取一个OntClass的所有属性  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=37955)


--  作者:xuguangfz
--  发布时间:9/15/2006 10:47:00 PM

--  listDeclaredProperties如何获取一个OntClass的所有属性
使用listDeclaredProperties(false)可以获取OntClass的所有属性(包括继承的)
但如果当一个对象属性有多个domain的时候,通过调用这个函数就获取不了该属性,请问大伙是怎么回事情?
例如:
  <owl:ObjectProperty rdf:ID="Address">
    <rdfs:range rdf:resource="#PlaceType"/>
    <rdfs:domain>
      <owl:Class>
        <owl:unionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#PersonType"/>
          <owl:Class rdf:about="#PersonGroupType"/>
          <owl:Class rdf:about="#OrganizationType"/>
        </owl:unionOf>
      </owl:Class>
    </rdfs:domain>
  </owl:ObjectProperty>
当Coach(PersonType子类)调用
listDeclaredProperties(false)时,其他属性都可以得到,就是address属性得不到。
--  作者:jpz6311whu
--  发布时间:9/15/2006 11:09:00 PM

--  
但如果当一个对象属性有多个domain的时候
---
不是多个domain,你举的例子中Address的domain只有一个,它是三者的unionOf。
所以你用listDeclaredProperties(false)得到的是这一个union
--  作者:xuguangfz
--  发布时间:9/16/2006 1:25:00 PM

--  
那如果我想得到Coach的所有属性怎么办?

--  作者:xuguangfz
--  发布时间:9/16/2006 1:28:00 PM

--  
用Jena listDeclaredProperties(false)根本没有返回这个UNION啊。
--  作者:jpz6311whu
--  发布时间:9/16/2006 1:52:00 PM

--  
不好意思,我说错了。
用Jena listDeclaredProperties(false)根本没有返回这个UNION啊。
确实是这样。

因为本体库中,没有
(Address, rdfs:domain, PersonType)
这样的三元组
而有这样的三元组:
(Address, rdfs:domain,_:union)

所以PersonType并不是Address的domain,那个_:union才是


--  作者:avrilyun
--  发布时间:2/29/2012 1:13:00 PM

--  把构建本体模型的这句写成这样就行了
把构建本体模型的这句写成这样就行了。参数是创建推理机的意思。outModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF, null);
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.012ms