RDF/XML

a)        RDF/XML主要讲的就是如何用XML的方式来表示RDF的图。

b)        例子图:

 

注:在RDF图中,椭圆表示基于URI标识的节点。矩形表示文本。弧线表示谓语。

 

c)        空节点

由于RDF的语法只能表示两者之间的关系,所以,当我们需要表示一对多的关系时,RDF推荐的方案就是引入一个空节点(Blank Node),空节点的作用就是作为一个临时节点,或者说作为一个容器。

 

d)        A(节点描述)

<rdf:Description rdf:about="A"></rdf:Description>

 

e)        A->d->D(属性表述)

<rdf:Description rdf:about="A">

<d>D</d>

         </rdf:Description>

 

f)        A->d->D(简化方式)

<rdf:Description rdf:about="A" d="D"></rdf:Description>

g)        A->a->_->b->B(空节点,,多节点描述)

<rdf:Description rdf:about="A">

<a rdf:nodeID="abc"/>                     //   引用空节点

</rdf:Description>

<rdf:Description rdf:nodeID="abc">             //   声明空节点的内容

<b>

<rdf:Description rdf:about="B"></rdf:Description>

</b>

</rdf:Description>

 

注:我们通过为空节点取定一个内部唯一的id值,来指定和引用空节点。

 

h)        A->a->_->b->B(简化空节点)

<rdf:Description rdf:about="A">

<a rdf:parseType="Resource">

<b>

<rdf:Description rdf:about="B"></rdf:Description>

</b>

</a>

</rdf:Description>

 

注:通过rdf:parseType="Resource"来约去空节点定义。

 

i)        A->a->_->b->B(简化子节点)

<rdf:Description rdf:about="A">

<a>

<rdf:Description>

<b rdf:resource="B"></b>

</rdf:Description>

</a>

</rdf:Description>

 

注:通过谓词rdf:resource来指定宾语。能使用该语法的宾语,必须是不带其他子节点或属性。

 

j)        XML文本,普通文本

<rdf:RDF>

<rdf:Description rdf:about="http://example.org/item01">

<ex:prop rdf:parseType="Literal" xmlns:a="http://example.org/a#">

<a:Box required="true">

<a:widget size="10" />

</a:Box>

</ex:prop>

</rdf:Description>

</rdf:RDF>

 

注:通过谓词rdf:parseType="Literal",指明节点的内容是普通文本,解释器不需要对其进行解释。

 

k)        有类型的文本

<rdf:RDF>

<rdf:Description rdf:about="http://example.org/item01">

<ex:size rdf:datatype="http://www.w3.org/2001/XMLSchema#int">123</ex:size>

</rdf:Description>

</rdf:RDF>

 

注:通过谓词rdf:datatype,指定该值所使用的数据类型。

 

l)        有类型的节点

RDF也支持部分的面向对象的概念,即节点可能是属于某一种类型,为此,我们可以如此表示带类型的节点。

<rdf:Description rdf:about="A">

<rdf:type rdf:resource="http://example.org/stuff/1.0/Document"/>

</rdf:Description>

 

注:通过谓词rdf:type,来指定某一个节点所属的类型

 

m)        有类型的节点(简化方式)

<ex:Document rdf:about="A">

</ex:Document>

 

注:通过把类型名直接作为节点名,而不使用rdf:Description的方式,可以无需声明rdf:type

 

n)        URI

如前文所说,RDF使用URI作为词汇表,所以,不管是节点还是谓词,我们都可以使用http://aaa#bbb来唯一进行标识,所以,上述的节点A他的完整表示可能会是http://aaa#A。但使用这种方式会带来的一个问题就是,当我们要替换词汇表时,可能会需要进行大量的替换动作,为此,RDF提供了一些简便措施。

<rdf:RDF xml:base="http://aaa">

<rdf:Description rdf:ID="A">

</rdf:Description>

</rdf:RDF>

 

注:通过定义xml:base,和使用谓词rdf:ID,而不是rdf:about,解释器在解释时就会将xml:base的值和ID值进行合并,得出节点的URI

 

o)        容器

RDF支持三种容器类型,rdf:Bag(无序,可重复),rdf:Seq(有序,可重复),rdf:Alt(多个中的一个),这三者的语法基本一致。

        

p)        A包含BCD(手工编号)

<rdf:Seq rdf:about="A">

<rdf:_1 rdf:resource="B"/>

<rdf:_2 rdf:resource="C"/>

<rdf:_3 rdf:resource="D"/>

</rdf:Seq>

 

注:这里用户需要手工的使用rdf:_n的方式对节点进行编号。编号的作用就是可以使得,在通过父节点进行引用时,可以引用到子节点。

 

q)        A包含BCD(自动编号)

<rdf:Seq rdf:about="A">

<rdf:li rdf:resource="B"/>

<rdf:li rdf:resource="C"/>

<rdf:li rdf:resource="D"/>

</rdf:Seq>

 

注:通过声明rdf:li,解释器在解释时,将自动生成编号。

 

r)        集合

集合和容器的区别在于,容器只说明了什么包含在容器当中,但没有说明什么不在容器之中,也就是说容器并没有对内容的范围进行限定。而集合则对范围作了限定,凡是不在集合声明当中出现的,都不是集合的元素。

 

s)        A包含BCD

         <rdf:Description rdf:about="A">

<a rdf:parseType="Collection">

<rdf:Description rdf:about="B"/>

<rdf:Description rdf:about="C"/>

<rdf:Description rdf:about="D"/>

</a>

</rdf:Description>

 

注:集合的元素不需要排序。集合通过谓词rdf:parseType="Collection"来指定。

 

t)        RDF/XML解释

由于RDF文件是使用XML进行表述,所以我们可以使用一般的解释器进行分析。并根据识别出的节点,进行进一步的语义解释。
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值