新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     >>W3CHINA.ORG讨论区<<     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论Semantic Web(语义Web,语义网或语义万维网, Web 3.0)及相关理论,如:Ontology(本体,本体论), OWL(Web Ontology Langauge,Web本体语言), Description Logic(DL, 描述逻辑),RDFa,Ontology Engineering等。
    [返回] W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWLW3CHINA.ORG讨论区 - Web新技术讨论『 Semantic Web(语义Web)/描述逻辑/本体 』 → 一个关于RDF的简单问题(关于rdf:ID,rdf:about,rdf:resource的用法) 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 83321 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 一个关于RDF的简单问题(关于rdf:ID,rdf:about,rdf:resource的用法) 举报  打印  推荐  IE收藏夹 
       本主题类别: 经典问答 | RDF/RDFS    
     ChouBill 帅哥哟,离线,有人找我吗?处女座1978-9-10
      
      
      威望:4
      等级:大三暑假(参加全国数模竞赛拿了一等奖)
      文章:124
      积分:774
      门派:XML.ORG.CN
      注册:2004/4/1

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给ChouBill发送一个短消息 把ChouBill加入好友 查看ChouBill的个人资料 搜索ChouBill在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 访问ChouBill的主页 引用回复这个贴子 回复这个贴子 查看ChouBill的博客楼主
    发贴心情 一个关于RDF的简单问题(关于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?这几个有什么区别呢?


    [此贴子已经被orangebench于2004-11-8 11:58:08编辑过]

       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    欢迎访问真人CS枪战论坛
    http://www.gunwar.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/11/3 10:25:00
     
     orangebench 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      等级:研一(参加了一年一度的XML大会)(版主)
      文章:681
      积分:4761
      门派:W3CHINA.ORG
      注册:2004/5/28

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给orangebench发送一个短消息 把orangebench加入好友 查看orangebench的个人资料 搜索orangebench在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 访问orangebench的主页 引用回复这个贴子 回复这个贴子 查看orangebench的博客2
    发贴心情 
    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"/>
    了。

    ----------------------------------------------
    Semantic Web is a dream; Semantic Web technology is 
    the reality.
    Weblog: http://blog.w3china.org/~orangebench/

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/11/3 22:00:00
     
     ChouBill 帅哥哟,离线,有人找我吗?处女座1978-9-10
      
      
      威望:4
      等级:大三暑假(参加全国数模竞赛拿了一等奖)
      文章:124
      积分:774
      门派:XML.ORG.CN
      注册:2004/4/1

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给ChouBill发送一个短消息 把ChouBill加入好友 查看ChouBill的个人资料 搜索ChouBill在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 访问ChouBill的主页 引用回复这个贴子 回复这个贴子 查看ChouBill的博客3
    发贴心情 
    非常感谢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来简写。

    上述理解正确吗?

    ----------------------------------------------
    欢迎访问真人CS枪战论坛
    http://www.gunwar.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/11/4 9:54:00
     
     orangebench 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      等级:研一(参加了一年一度的XML大会)(版主)
      文章:681
      积分:4761
      门派:W3CHINA.ORG
      注册:2004/5/28

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给orangebench发送一个短消息 把orangebench加入好友 查看orangebench的个人资料 搜索orangebench在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 访问orangebench的主页 引用回复这个贴子 回复这个贴子 查看orangebench的博客4
    发贴心情 
    我觉得是:
    你的理解完全正确。

    ;-)

    ----------------------------------------------
    Semantic Web is a dream; Semantic Web technology is 
    the reality.
    Weblog: http://blog.w3china.org/~orangebench/

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/11/4 12:30:00
     
     gengkeming 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:29
      积分:190
      门派:XML.ORG.CN
      注册:2004/5/16

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给gengkeming发送一个短消息 把gengkeming加入好友 查看gengkeming的个人资料 搜索gengkeming在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看gengkeming的博客5
    发贴心情 
    谢谢你们,让我明白了好多东西!我也想问orangebench老大一个问题,是不是rdf是专门用来存储本体中的实例的?请赐教!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/11/7 9:35:00
     
     orangebench 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      等级:研一(参加了一年一度的XML大会)(版主)
      文章:681
      积分:4761
      门派:W3CHINA.ORG
      注册:2004/5/28

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给orangebench发送一个短消息 把orangebench加入好友 查看orangebench的个人资料 搜索orangebench在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 访问orangebench的主页 引用回复这个贴子 回复这个贴子 查看orangebench的博客6
    发贴心情 
    RDF当然可以用来存储本体实例,但它设计的目的,是用于描述Web上资源的。它是一种元数据表示语言标准。

    ----------------------------------------------
    Semantic Web is a dream; Semantic Web technology is 
    the reality.
    Weblog: http://blog.w3china.org/~orangebench/

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/11/8 11:55:00
     
     orangebench 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      等级:研一(参加了一年一度的XML大会)(版主)
      文章:681
      积分:4761
      门派:W3CHINA.ORG
      注册:2004/5/28

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给orangebench发送一个短消息 把orangebench加入好友 查看orangebench的个人资料 搜索orangebench在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 访问orangebench的主页 引用回复这个贴子 回复这个贴子 查看orangebench的博客7
    发贴心情 
    再补充一个rdf:ID和rdf:about的区别:

    rdf:ID是用来定义一个资源,或者说引入一个新的资源名称;
    rdf:about除了也可用来定义资源外,还可用来扩展对这个资源的定义(这可以出现在其他本体文件中)。


    [此贴子已经被作者于2004-11-9 11:58:43编辑过]

    ----------------------------------------------
    Semantic Web is a dream; Semantic Web technology is 
    the reality.
    Weblog: http://blog.w3china.org/~orangebench/

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/11/9 0:04:00
     
     ChouBill 帅哥哟,离线,有人找我吗?处女座1978-9-10
      
      
      威望:4
      等级:大三暑假(参加全国数模竞赛拿了一等奖)
      文章:124
      积分:774
      门派:XML.ORG.CN
      注册:2004/4/1

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给ChouBill发送一个短消息 把ChouBill加入好友 查看ChouBill的个人资料 搜索ChouBill在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 访问ChouBill的主页 引用回复这个贴子 回复这个贴子 查看ChouBill的博客8
    发贴心情 
    能说得再详细点吗,免得理解起来有歧义

    上面的例子中,定义了三个类:
    <owl:Class rdf:ID="PizzaBase">
    <owl:Class rdf:about="#Pizza">
    <owl:Class rdf:about="#PizzaTopping">
    我原来认为这三个都可以定义成rdf:ID,现在还是这么认为。你的意思是说如果Pizza和PizzaTopping的定义如果不在同一个文件中的话,就只能用rdf:about,对不对?

    ----------------------------------------------
    欢迎访问真人CS枪战论坛
    http://www.gunwar.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/11/10 9:41:00
     
     orangebench 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      等级:研一(参加了一年一度的XML大会)(版主)
      文章:681
      积分:4761
      门派:W3CHINA.ORG
      注册:2004/5/28

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给orangebench发送一个短消息 把orangebench加入好友 查看orangebench的个人资料 搜索orangebench在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 访问orangebench的主页 引用回复这个贴子 回复这个贴子 查看orangebench的博客9
    发贴心情 
    我也认为这三个定义都可以用rdf:ID来定义。
    我的意思是:如果已经有本体定义了Pizza和PizzaTopping(用rdf:ID),你在其他的本体中要增加对Pizza和PizzaTopping的描述,应该用rdf:about,但是不是必须用,我没把握。


    以下是引用ChouBill在2004-11-10 9:41:54的发言:
    能说得再详细点吗,免得理解起来有歧义

    上面的例子中,定义了三个类:
    <owl:Class rdf:ID="PizzaBase">
    <owl:Class rdf:about="#Pizza">
    <owl:Class rdf:about="#PizzaTopping">
    我原来认为这三个都可以定义成rdf:ID,现在还是这么认为。你的意思是说如果Pizza和PizzaTopping的定义如果不在同一个文件中的话,就只能用rdf:about,对不对?


    ----------------------------------------------
    Semantic Web is a dream; Semantic Web technology is 
    the reality.
    Weblog: http://blog.w3china.org/~orangebench/

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/11/10 15:36:00
     
     lngxt 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:27
      积分:199
      门派:XML.ORG.CN
      注册:2004/10/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lngxt发送一个短消息 把lngxt加入好友 查看lngxt的个人资料 搜索lngxt在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lngxt的博客10
    发贴心情 
    以下是引用ChouBill在2004-11-3 10:25:10的发言:
    我用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?这几个有什么区别呢?

    [此贴子已经被orangebench于2004-11-8 11:58:08编辑过]



    我还有个疑问:这只是引入了Pizza, PiazzaBase和PizzaTopping类,那么怎么具体定义这些类呢?在这个文档外部吗?哪位大侠能不能给个示例,谢了!:)
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/11/16 10:24:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/3/28 11:43:52

    本主题贴数16,分页: [1] [2]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    125.000ms