rdf ID,rdf about,rdf resource的用法

用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="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?这几个有什么区别呢?

一些网友的观点: 1. 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。

3.再补充一个rdf:ID和rdf:about的区别: rdf:ID是用来定义一个资源,或者说引入一个新的资源名称; rdf:about除了也可用来定义资源外,还可用来扩展对这个资源的定义(这可以出现在其他本体文件中)。 如果Pizza是用rdf:ID定义的,那么要增加对Pizza的描述,就必须用rdf:about。因为同一个RDF文档中,不能出现两个rdf:ID="Pizza",否则RDF Parser就会报错。

 

总结: rdf:ID是用来定义一个资源,或者说引入一个新的资源名称 。rdf:about除了也可用来定义资源外(引入一个新的资源名称),还可用来扩展对这个资源的定义(这可以出现在其他本体文件中)。<br />如果Pizza是用rdf:ID定义的,那么要增加对Pizza的描述,就必须用rdf:about。因为同一个RDF文档中,不能出现两个rdf:ID="Pizza"。<br />rdf:resource只用于属性是对一个对象的引用时,可以是在前面或后面定义过的;也可以使引用未定义的,那样就会生成blank node。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值