【Semantic Web】从G. Antoniou等人视角看语义网(三)资源描述框架:RDF和RDFs的公理化语义

学习笔记:G. Antoniou, Paul Groth et al. A Semantic Primer,Third Edition.

引言

      本部分内容需要对离散数学有一定基础,了解一阶谓词逻辑、谓词公式等基本概念。
      我们利用谓词逻辑(predicate logic)来形式化定义RDF和RDFs的建模原语含义,谓词逻辑作为所有(符号)知识表示的基础被广泛接受。在形式化过程中使用的公式称之为公理(axiom)。

方法

      RDF和RDFs中的所有语言原语被表示为常量:Resource、Class、Property、subClassOf,等等。一些预定义的谓词被用作表达这些常量之间联系的基础。
      下面介绍一个使用链表的辅助理论,链表在RDF中被用于表达容器,包括下面的函数符号
      nil(空链表)
      cons(x,l)(添加一个元素到链表头部)
      first(l)(返回第一个元素)
      reset(l)(返回链表的剩余部分)
      和谓词符号
      item(x,l)(取值为真,当且仅当一个元素出现在链表中)
      list(l)(取值为真,当且仅当l是个链表)

      大多数公理提供了类型信息,如Type(subClassOf, Property)表示subClassOf 是一个属性。变量名以“?”开头,所有公理都隐式地全称量化。

基本谓词

      基本谓词包括:
      PropVal(P, R, V),表示一个包含资源R、属性P和取值V的RDF声明。
 
     Type(R, T)等价于PropVal(Type, R, T),表示一个资源R的类型是T。用公理化表示即:
     Type(?r, ?t)↔PropVal(type, ?r, ?t)

RDF

      一个RDF声明(R, P, V)即一个三元组表示为PropVal(P, R, V)这里注意主语、属性、宾语在声明和公理化表示里的位置差异。

      前面提到过所有的类都是Class的实例:
      Type(Class, Class)
      Type(Resource, Class)
      Type(Property, Class)
      Type(Literal, Class)
      其中,Class、Resource、Property、Literal 都是常量。有如下公式:
      Type(?p, Property)→Type(?p, Resource),表示每个属性都是资源。
      Type(?c, class)→Type(?c, Resource),表示每个类都是资源。
      PropVal(?p, ?r, ?v)→Type(?p, Property),表示RDF中声明的谓语必须是一个属性。

类型属性

      type 是一个属性:Type(type, Property),等价于PropVal(type, type, property)
      公理化为:Type(?r, ?c)→(Type(?r, Resource)∧Type(?c, Class)),表示指定变量?r的类型是?c,那么?r是一个资源且?c是一个类。

辅助的FuncProp属性

      常量FuncProp 是所有函数型属性的类。一个函数型属性是一个函数,它将一个资源关联到最多一个取值。函数型属性不是RDF中的概念,其用于其他原语的公理化。给出定义:
      P是一个函数型属性,当且仅当它是一个属性,并且不存在x、y1、y2满足P(x, y1)和P(x, y2),且y1≠y2。公理化为:
      Type(?p, FuncProp)↔
      (Type(?p, Property)∧∀?r∀?v1∀?v2(PropVal(?p, ?r, ?v1)∧(PropVal(?p, ?r, ?v2)→?v1=?v2))

具体化声明

      用常量Statement 表示所有具体化声明的类。由如下公式:
      Type(?s, Statement)→Type(?s, Resource),表示具体化声明都是资源。
      Type(Statement, Class),表示具体化声明是Class的一个实例。
 
      一个具体化声明可以分解成一个RDF三元组的3个部分:
      Type(?st, Statement)→
      ∃?p∃?r∃?v(PropVal(Predicate, ?st, ?p)∧PropVal(Subject, ?st, ?r)∧PropVal(Object, ?st, ?v))
      其中Subject、Predicate、Object是函数型属性,结合函数型属性的定义我们可以知道,每个声明只能有一个主语、一个谓语、一个宾语。公理化为:
      Type(Subject, FuncProp)
      Type(Predicate, FuncProp)
      Type(Object, FuncProp)
      它们的类型信息公理化为:
      PropVal(Subject, ?st, ?r)→(Type(?st, Statement)∧Type(?r,Resource)),表示如果一个声明?st的主语是?r,那么?st必然是Statement的一个实例并且?r是一个资源。
      PropVal(Predicate, ?st, ?p)→(Type(?st, Statement)∧Type(?p,Property)),表示如果一个声明?st的谓语是?p,那么?st必然是Statement的一个实例并且?p是一个属性。
      PropVal(Object, ?st, ?v)→(Type(?st, Statement)∧Type(?v,Resource)∨Type(?v, Literal)),表示如果Object作为属性值出现在一个RDF声明中,那么它必须应用到一个具体化声明上,并且取值是一个资源或者字符串。

容器

      所有的容器都是资源:
      Type(?c, Container)→Type(?c, Resource)
      容器是链表:
      Type(?c, Container)→list(?c)
      如前文所说,容器是包、序列或者选择:
      Type(?c, Container)→(Type(?c, Bag)∨Type(?c, Seq)∨Type(?c, Alt))
      包和序列是不相交的:
      ┐(Type(?x, Bag)∧Type(?x, Seq))
      对于每一个自然数n>0,存在一个选择器_n,它选择一个容器中的第n个元素,并且仅用于容器。公理化为:
      Type(_n, FuncProp)
      PropVal(_n, ?c, ?o)→Type(?c, Container)

RDFs

子类和子属性

      subClassOf首先是一个属性,如果一个类C是一个类C’的子类,那么C的所有实例都是C’的实例,公理化为:
      Type(subClassOf, Property)
      PropVal(subClassOf, ?c, ?c’)→(Type(?c, Class)∧Type(?c’, Class)∧∀?x(Type(?x, ?c)→Type(?x, ?c’)))
 
      subPropertyOf是一个属性,如果P是P’的子属性,仅当P(x, y)时必有P’(x, y),公理化为:
      Type(subPropertyOf, Property)
      PropVal(subPropertyOf, ?p, ?p’)↔
       (Type(?p, Property)∧Type(?p’, property)∧∀?r∀?v(PropVal(?p, ?r ,?v)→PropVal(?p’, ?r, ?v)))

约束

      每个约束资源是一个资源:PropVal(subClassOf, ConstraintResource, Resource)
 
      约束属性是属性,同时也是约束资源:
      Type(?cp, ConstraintProperty)↔(Type(?cp, ConstraintResource)∧Type(?cp, Property))
 
      domain(定义域)和range(值域)属于约束属性,公理化为:
      Type(domain, ConstraintProperty), Type(range, ConstraintProperty)
      如果属性P的定义域是D,那么对于任意的P(x, y),有x∈D,公理化为:
      PropVal(domain, ?p, ?d)→∀?x∀?y(PropVal(?p, ?x, ?y)→Type(?x, ?d))
      如果属性P的值域是R,那么对于任何P(x, y),有y∈R,公理化为:
      PropVal(range, ?p, ?r)→∀?x∀?y(PropVal(?p, ?x, ?y)→Type(?y, ?r))
 
      由上述公式可以推导出(下面的公式解释可能比较绕,理解其含义即可):
      PropVal(domain, domain, Property),表示定义域这个属性的定义域为属性,因为只有属性才有定义域
      PropVal(domain, range, Property),表示值域这个属性的定义域为属性,因为只有属性才有值域
      PropVal(range, range, Class),表示值域这个属性的值域是类,因为值域这个属性的取值范围(值域)为一个Class
      PropVal(range, domain, Class),表示定义域这个属性的值域是类,因为定义域这个属性的取值范围(值域)为Class

总结

      我们知道谓词逻辑被广泛用于知识表示,并用于自动化推理。本文用谓词逻辑形式化地定义了RDF和RDFs语义,并在此基础上给出了相当数量的谓词公式,这些谓词公式可以用作RDF和RDFs的自动化推理。
      例如,给定rents的值域是ResidentialUnit,而ResidentialUnit 的超类是Unit,已知条件rents(Mike, BaronWayBuilding),则很容易推理出Type(BaronWayBuilding, Unit)或者表示为Unit(BaronWayBuilding)
      RDF为表示和处理机器可理解的数据提供了重要的基础,它使用基于图的数据模型,核心概念包括:资源、属性、声明和图。一个声明就是一个资源 - 属性 - 取值三元组。*RDF提供三种标准语法Turtle、RDF/XML、RDFa来支持语法层面的互操作性,使用分布式思想,允许递增式地构建知识,并对知识提供共享和复用。RDF一个很重要的特点是领域无关*,RDFs提供了一种描述特定领域的机制,RDF可以看做是一种基本的本体语言。
      RDFs命名空间并未完全介绍,感兴趣的读者可以自行查阅官方在线文档,阅读RDFs命名空间,尝试理解其他文中未给出的元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值