以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  关于allValuesFrom的继续提问  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=23194)


--  作者:erickong
--  发布时间:10/17/2005 3:21:00 PM

--  关于allValuesFrom的继续提问
<owl:Class rdf:ID="Person">
  <rdfs:subClassOf>
    <owl:Restriction>
      <owl:onProperty rdf:resource="#hasChild" />
      <owl:allvaluesFrom rdf:resource="#Person" />
    </owl:Restriction>
  </rdfs:subClassOf>
</owl:Class>

比如"我"是person类的一个个体,我现在没有孩子,那应该理解成"我"的"hasChild"属性映射到空呢,还是理解成"我"没有haschild这个属性呢?


--  作者:lngxt
--  发布时间:10/17/2005 5:07:00 PM

--  
同问


--  作者:admin
--  发布时间:10/17/2005 6:57:00 PM

--  
没有hasChild
--  作者:jiexincao
--  发布时间:10/17/2005 7:17:00 PM

--  
这个问题我的理解是属性的取值为空,
原因在于如果hasChild的域(domain)为person,那么表明person应该具有该属性,相比之下一个非person类的实例则不具有该属性。简单的说就是一个实例是否具有某个属性应该看相应属性的域是否定义在相应的类上。
另一个问题需要注意的是如果在我们的本体(或者说是知识库)中显式的说明了某人的haschild属性为空在本体(或者说是知识库)未提及此人的haschild的属性也是有区别的,在open-world 假设条件下后者的含义是此人的haschild属性的取值情况未知。
--  作者:twwwgauts
--  发布时间:10/19/2005 10:49:00 AM

--  
我也认为是属性为空,has-child应是Person的属性,现在只是没有值而已。
--  作者:admin
--  发布时间:10/19/2005 12:09:00 PM

--  
嗯。我没说清楚。

要回答这个问题,首先我们应明确:
何谓“我现在没有孩子”(1楼)
何谓"实例是否具有某个属性" (4楼)

这里有两种理解:
(1)“没有“或“是否具有“,指的是知识库中__没有__或__不存在___
(2)客观的理解,即客观地看“是否应当“具有

我采取(1)

我在3楼的回答没有说清楚,实际上我说”没有hasChild“指的是知识库中没有明确指出hasChild与某个个体关联。

我们来看一下OWL Semantics & Abstract Syntax中对allvaluesfrom的解释:

restriction(p allValuesFrom(r))  的语义是:{x ∈ O | <x,y> ∈ ER(p) implies y ∈ EC(r)}  

这里符号比较多,我重新表述一下:{x∈所有个体的集合|   三元组(x, p, y) 成立 --> y是r的一个实例 }  ,注意,这里的 --->  是逻辑蕴含

也就是说,如果明确说明 a isA person, 而且 a hasChild b那么 b isA person。
如果 没有明确说明 是否 a isA person,那么 结果不一定。


--  作者:jiexincao
--  发布时间:10/19/2005 3:50:00 PM

--  
明白admin的意思了,
----------------------
(open-world 假设条件下:)
但是针对楼主的问题,他指出已经知道他没有孩子 ,那么情况就是知识库中已经明确的包含了他的haschild的情况,所以我觉得还是属性的取值为空。
不过如果如果知识库中不包含这个信息,我们进行case分析的时候,就应该在需要的情况下对haschild的取值情况进行分析,当然前提就是我所说的hasChild的域(domain)为person。所以这种做法也说明了person是具有这个属性的,只是取值的问题。

--  作者:erickong
--  发布时间:10/21/2005 6:13:00 PM

--  
如果hasChild属性值为空,是否意味着类Person有一个“空”个体?
--  作者:jiexincao
--  发布时间:10/21/2005 9:52:00 PM

--  
其实我决定haschild的值域(range)应该定义为一个list,所以这样看来hasChild属性值为空只是说明这个列表为空。
person有个“空”个体我觉得有点别扭,因为空集是任何集合的子集,所以取值为空是可以的,但是说成是“空”个体颇有点不爽。当然这只是个人看法而已啊。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
78.125ms