本站首页    管理页面    写新日志    退出

The Neurotic Fishbowl

[/*SemanticWeb*/][转]关于rdf:ID,rdf:about,rdf:resource的用法
nybon 发表于 2004/11/15 18:03:26

转自: bbs.xml.org.cn 原贴 ChouBill: 我用Protege建立一个本体,关于Pizza的,有三个类,包括Pizza, PiazzaBase和PizzaTopping,他们互相Disjointwith,我原以为这三个类既然是在层次上对等的,那代码也应该差不多。但是当我查看源代码时发现自动生成的代码中,这三个类是不一样的,主要是有些用的是rdf:ID,有些用的是rdf:about,还有用rdf:resource的,如下: <?xml version="1.0"?> <rdf:RDF     xmlns:owl="http://www.w3.org/2002/07/owl#"     xmlns="http://www.owl-ontologies.com/unnamed.owl#"     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"   xml:base="' target=_blank>http://www.owl-ontologies.com/unnamed.owl">   <owl:Ontology rdf:about=""/>   <owl:Class rdf:ID="PizzaBase">     <owl:disjointWith>       <owl:Class rdf:ID="Pizza"/>     </owl:disjointWith>     <owl:disjointWith>       <owl:Class rdf:ID="PizzaTopping"/>     </owl:disjointWith>   </owl:Class>   <owl:Class rdf:about="#Pizza">     <owl:disjointWith rdf:resource="#PizzaBase"/>     <owl:disjointWith>       <owl:Class rdf:about="#PizzaTopping"/>     </owl:disjointWith>   </owl:Class>   <owl:Class rdf:about="#PizzaTopping">     <owl:disjointWith rdf:resource="#PizzaBase"/>     <owl:disjointWith rdf:resource="#Pizza"/>   </owl:Class> </rdf:RDF> 我的疑问是同样的结构,为什么有些要用rdf:resource有些又用rdf:about,还有些用rdf:ID?这几个有什么区别呢? orangebench: 1)rdf:ID和rdf:about的区别: rdf:about的值是一个完整URIref,注意也可以是相对URI,(相对于xml:base);rdf:ID是对rdf:about的值的缩写,其值是一个“ XML Name”,所以,不能是数字开头,不能有“/”符号等。 例如:rdf:ID="PizzaBase" 等价于rdf:about="(xml:base)+‘#’+‘PizzaBase’ "这个xml:base的值可以在XML文件头声明,如你例子中的,xml:base="http://www.owl-ontologies.com/unnamed.owl", 如果没有声明,则其值是RDF文件所放在的位置uri。 2)rdf:resource 和rdf:about <owl:disjointWith rdf:resource="#PizzaBase"/> 是 <owl:disjointWith >   <rdf:Description rdf:about="#PizzaBase" /></owl:disjointWith >的缩写。这里必须没有对资源="#PizzaBase" 做进一步的说明。所以,rdf:resource只能出现在表示属性的节点中,如这里的owl:disjointWith节点。 而  <owl:disjointWith>             <owl:Class rdf:about="#PizzaTopping"/>    </owl:disjointWith>是等价于:<owl:disjointWith >   <rdf:Description rdf:about="#PizzaTopping" >         <rdf:type rdf:resource="&rdfs;Class" />   </rdf:Description></owl:disjointWith > 这里不能用rdf:resource了,因为声明了#PizzaTopping是一个类。 所以,我们可以看出:说明了:  <owl:Class rdf:ID="PizzaBase">以后,后面的都是用: <owl:disjointWith rdf:resource="#PizzaBase"/>了。 ChouBill: 非常感谢orangebench老大的详细说明,我觉得我好像有些理解了,把我的理解说一下看看理解得正不正确。 其实我们可以把rdf:ID看作和rdf:about一样的东西,rdf:ID只是一个缩写而已。所以  <owl:Class rdf:ID="PizzaBase">     <owl:disjointWith>       <owl:Class rdf:ID="Pizza"/>     </owl:disjointWith>     <owl:disjointWith>       <owl:Class rdf:ID="PizzaTopping"/>     </owl:disjointWith>   </owl:Class>中,把所有的rdf:ID="xxx"替换成rdf:about="#xxx"也是可以的,这是我的第一个理解。 第二,为什么这里不能用rdf:resource呢,是因为到目前为止,Pizza类和PizzaTopping类还没有被定义,需要在这里申明它是一个类。如果Pizza类在之前就已经定义了,那么这里也可以用rdf:resource来简写。 上述理解正确吗? orangebench: 我觉得是:你的理解完全正确。 ;-) 再补充一个rdf:ID和rdf:about的区别: rdf:ID是用来定义一个资源,或者说引入一个新的资源名称;rdf:about除了也可用来定义资源外,还可用来扩展对这个资源的定义(这可以出现在其他本体文件中)。 ChouBill: 能说得再详细点吗,免得理解起来有歧义 上面的例子中,定义了三个类:<owl:Class rdf:ID="PizzaBase"><owl:Class rdf:about="#Pizza"><owl:Class rdf:about="#PizzaTopping">我原来认为这三个都可以定义成rdf:ID,现在还是这么认为。你的意思是说如果Pizza和PizzaTopping的定义如果不在同一个文件中的话,就只能用rdf:about,对不对? orangebench: 我也认为这三个定义都可以用rdf:ID来定义。我的意思是:如果已经有本体定义了Pizza和PizzaTopping(用rdf:ID),你在其他的本体中要增加对Pizza和PizzaTopping的描述,应该用rdf:about,但是不是必须用,我没把握。

阅读全文(2270) | 回复(0) | 编辑 | 精华

 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)

 
 



The Neurotic Fishbowl

.: 公告

This blog focuses on:

Semantic Web && Java Technology


Bloginess

«November 2025»
1
2345678
9101112131415
16171819202122
23242526272829
30

.: 我的分类(专题)

首页(171)
/*SemanticWeb*/(34)
/*Java*/(74)
/*FreeComments*/(59)
/*Agent*/(4)


In the Bowl

.: 最新日志

The End
使用Google Trends进行选型
怎样才能称为一次新的版本发行?
如何防止RSS信息过载
使用Excel作为用户接口
如何有效地报告Bug
sourceforge再次被封
趣文两篇
编写Firefox扩展
Jetspeed心得随笔


.: 最新回复

回复:Google API与yahoo 
回复:JADE 3.3的bug
回复:JADE 3.3的bug
回复:JADE 3.3的bug
回复:JADE 3.3的bug
回复:Jbpm和Shark比较的feat
回复:JADE 3.3的bug
回复:JADE 3.3的bug
回复:[转]批判性地看待一种可行的表示技
回复:JIRA破解


The Fishkeeper
blog名称:SW Portal
日志总数:171
评论数量:219
留言数量:8
访问次数:1054697
建立时间:2004年10月30日



Text Me

.: 留言板

签写新留言

路过
路过
页脚问题
RE:请问一下你的主页的下面部分是怎么关
请问一下你的主页的下面部分是怎么关闭的?
我是做Mobile Agent的
Gmail
不错
不错啊小倪同学


Other Fish in the Sea

.: 链接





站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.035 second(s), page refreshed 144794508 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号