以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  关于属性全局和局部限制的问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=76550)


--  作者:adwar
--  发布时间:8/31/2009 11:44:00 AM

--  关于属性全局和局部限制的问题
<owl:class rdf:ID="MealCourse"/>

<owl:class rdf:ID="Eatcourse">
  <owl:disjointWith rdf:resource="#MealCourse"/>
</owl:class>

<owl:ObjectProperty rdf:ID="course">
   <rdfs:domain rdf:resource="#Meal" />
   <rdfs:range rdf:resource="#MealCourse" />
</owl:ObjectProperty>

<owl:Class rdf:ID="Meal">
  <rdfs:subclassof>
    <owl:Restriction>
      <owl:onProperty rdf:resource="#course"/>
      <owl:allvaluesFrom rdf:resource="#Eatcourse"/>
    </owl:Restriction>
  </rdfs:subclassof>
</owl:Class>

如上面所写,我现有course属性,在定义这一属性的时候设定了它的domain是Meal,range是MealCourse, 现有类MealCourse和Eatcourse,它们互不相交, 现定义Meal类, 在Meal类里我有个allvaluesFrom局部限制,限制它的course属性的值域为Eatcourse.
不知道在这种局部与全局相冲突的情况下,Meal里的course属性其实只能取什么值,或是两种值都能取呢,
我是刚刚开始学习,可能问的问题有些愚蠢,请勿见怪.


--  作者:admin
--  发布时间:8/31/2009 4:12:00 PM

--  
<owl:Restriction>
      <owl:onProperty rdf:resource="#course"/>
      <owl:allvaluesFrom rdf:resource="#Eatcourse"/>
    </owl:Restriction>
~~~~~~~~allvaluesFrom 的含义是:假如有course属性的话,那么其值必为Eatcourse的实例

所以该定义的实际效果是:若Meal实例无course属性,那么它是合法的;若Meal实例有course属性,那么便会引起冲突。


--  作者:adwar
--  发布时间:8/31/2009 8:55:00 PM

--  
谢谢答复。
如果这样看来好像全局的(range)所对应的值域应该是>=局部的(allvaluesfrom)所对应的值,
也可以说假设range对对应的是A类,allvaluesfrom所对应的是B类,则B应该只能从属于A.

不知道这个说法这是不是对的呢


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