以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  owl能否表示individual的unionof关系  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=16216)


--  作者:user100
--  发布时间:3/29/2005 11:19:00 PM

--  owl能否表示individual的unionof关系
owl:unionOf是表示owl:Class之间关系的,例如
<owl:Class rdf:ID="Fruit">
  <owl:unionOf rdf:parseType="Collection">
    <owl:Class rdf:about="#SweetFruit" />
    <owl:Class rdf:about="#NonSweetFruit" />
  </owl:unionOf>
</owl:Class>

但是,如果想要表达下面的这种类似于“unionof”的关系,该怎么办
<fruit:Fruit rdf:Id=apple>
  <owl:unionOf rdf:parseType="Collection">
    <fruit:果皮 rdf:ID="苹果皮"/>
    <fruit:果肉 rdf:ID ="苹果肉"/>
  </owl:unionOf>
</fruit:Fruit >

上面这样用unionof是肯定不行的,那么该用什么表示呢?


--  作者:iamwym
--  发布时间:3/30/2005 4:09:00 AM

--  
unionof是集合之间的概念,个体并没有联合这样一个关系,数理逻辑的根本上就是不支持的,不要说owl了
--  作者:user100
--  发布时间:3/30/2005 1:03:00 PM

--  谢谢
谢谢,但是如果就是需要表达这种个体之间的关系,比如A模块由B,C两个子模块构成,A,B,C都是属于module类的个体,那么怎么表达这种关系呢
--  作者:iamwym
--  发布时间:3/30/2005 5:47:00 PM

--  
owl无法表示个体之间的关系,一般定义成bc属于一类,a属于一类,然后表达这两个类之间的关系。

--  作者:user100
--  发布时间:3/30/2005 10:35:00 PM

--  re
谢谢,即使如你所说,问题还是没解决。比如bc属于modulea类,a属于moduleb类。有一个属性composedby,该怎么表示composedby的range呢?比较直接的表示是
<rdfs:range rdf:resource="#Modulea"/>
但是这样的表示是错误的,在owl一致性检查是会报错。因为a是composedby两个子模块,即b和c,那么而上面的这个range描述不能体现出这种关系,该range描述的理解是a模块composedby一个模块b或者c,而我要表达的是a模块有且仅有b和C(或者还有更多)的子模块组合而成,那么该怎么表示这种range呢?能否帮忙给出几行代码?
--  作者:user100
--  发布时间:3/30/2005 11:16:00 PM

--  
现在正在建一个本体,被这个问题困扰很久了,总是绕不过去。大侠都说说吧。谢了。
问的更明确一些。比如在http://www.w3.org/TR/2004/REC-rdf-primer-20040210中有一个例子如下:
<rdf:Description rdf:about="http://example.org/courses/6.001">
      <s:students rdf:parseType="Collection">
            <rdf:Description rdf:about="http://example.org/students/Amy"/>
            <rdf:Description rdf:about="http://example.org/students/Mohamed"/>
            <rdf:Description rdf:about="http://example.org/students/Johann"/>
      </s:students>
   </rdf:Description>

那么该怎么描述s:students的range,才可以向上面这个例子那样表示出这门课程有且只有3个学生呢。如果这样描述range:<rdfs:range rdf:resource="#person"/>,那么s:students就只能这样用:
  <rdf:Description rdf:about="http://example.org/courses/6.001"> <s:students rdf:about="http://example.org/students/Amy"/>
  <rdf:Description rdf:about="http://example.org/courses/6.001"> <s:students rdf:about="http://example.org/students/Mohamed"/>
  <rdf:Description rdf:about="http://example.org/courses/6.001"> <s:students rdf:about="http://example.org/students/Johann"/>

这样就不知道是否还有其他的学生上这门课了。


--  作者:iamwym
--  发布时间:3/31/2005 7:19:00 AM

--  
如果要在本题中建立是否有学生选一门课,一般是定义这个学生为一个类而不是Individual,因为现有的reasoner不支持证对于个体的推理。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
39.063ms