摘 要: 资源描述框架RDF是处理元数据的基础,它提供了Web上应用程序间机器能理解的信息的互操作性能;语义网络语言SNetL是语义网络的形式化描述语言。本文提出了从RDF知识表示到SNetL语言转换的思想与算法。
关键词: 资源描述框架 语义网络语言 知识表示 转换算法
1 语义网络和SNetL概述
语义网络(Semantic Network)作为一种知识表示的工具是由奎林(J.R.Quilian)在1968年的博士论文中提出的。语义网络是通过概念及其语义关系来表达知识的一种网络图。从图论的观点看,它可以看作是三元组集合,是一个“带标识的有向图”。其中,有向图的节点表示各种事物、概念、情况、属性、动作、状态等;弧表示各种语义联系,指明它所连接的节点间的某种语义关系。节点和弧都必须带有标识,以便区分各种不同对象及对象间各种不同的语义联系。每个节点可以带有若干属性。另外,节点还可以是一个语义子网络,形成一个多层次的嵌套结构。
SNetL(Semantic Network Language)是语义网络的形式化描述语言。SNetL的功能主要包括:以三元组的形式构造关系表达式;用标号关系式实现分块思想;关系和节点一样处理,以便建立关系之间的关系;便于描述自然语言所表达的语义;具有较强的提问能力和推理解答能力等。
SNetL语言的核心是用三元组的形式描述知识,一般表示为:(nodel_1,relation_name,,node_2)。其中node_1和node_2分别表示弧所连接的两个节点;relation_name表示网络中的弧,用于描述节点之间的语义。在SNetL中,用标号可以对节点和关系进一步说明,其作用相当于自然语言中的定语和状语。
下面给出经过扩展的SNetL+ 语言形式化描述的总体语法框架。
<语义网络程序>∷=snet <程序名>;
<SNETL语句序列>
end_of_snet;
<SNETL语句序列>∷=<SNETL语句>{;<SNETL语句>}
<SNETL语句>∷=<主关系式>{;<标号关系式>}|<多数蕴涵关
系式>|<例外蕴涵关系式>|<依赖时间蕴涵关系式>
<主关系式>∷=<无标号关系式>
<标号关系式>∷=<标号>:<无标号关系式>
<无标号关系式>∷=<一般关系式>|<关系修饰关系式>|<量词
关系式>|<节点修饰关系式>|<蕴涵关系式>|<或
关系式>|<与关系式>|<否定关系式>|<one_of关
系式>|<subset关系式> |<subclass关系式>|
<part_of关系式>|<be关系式>|<关系类型句>|
<关系性质关系式>|<多数蕴涵关系式>|<例外蕴
涵关系式>|<依赖时间蕴涵关系式>
2 RDF到SNetL的转换思想与算法描述
RDF是处理元数据的基础,它提供了Web上应用程序间机器能理解的信息的互操作性。在语义Web中,本体描述语言很多,如RDF、DAML+OIL和OWL等。在知识推理过程中,一般都将其描述的知识转换为RDF三元组,以便实现信息的互操作。本文介绍RDF与SNetL的转换思想与算法描述。
2.1 RDF关键字与SNetL关系式的对应关系
RDF关键字与SNetL关系式的对应关系如表1所示。
2.2 带有标号的关系式转换
RDF到SNetL的转换中,主要考虑在转换中带有标号的情况:属性约束、复杂类、规则表示等。
(1)属性约束
OWL中属性约束有六种情况:owl:cardinality、owl:minCardinality、owl:maxCardinality、owl:someValuesFrom、owl:allValuesFrom、owl:hasValue。另外,在OWL知识表示中,有“匿名类”的概念,因此在转换过程中,要进行标号的处理。
图1是对“病毒文件是类,它是Software的子类,它的属性fileSize最大不超过1 024KB”的描述( _:x为匿名类)。
上述OWL属性约束的转换过程中,定义了匿名类_:x,它是定义类的超(父)类。在将RDF三元组转换到SNetL的过程中应该注意:①约束范围,也就是匿名类的作用范围。在OWL到RDF的转换过程中,加入了“ontoKsys:Begin”(开始)和“ontoKsys:End”(结束)两个关键字来识别约束的开始与结束,开始与结束之间是匿名类或临时变量的有效范围。②匿名类可以用SNetL语言中的<变量>来代替。③owl:Restriction、ontoKsys:Begin和ontoKsys:End等指示约束范围的关键字不需要进行转换。上述描述转换如下:
(病毒文件,TYPE,类);
(病毒文件,subclass,Software);
(病毒文件,subclass,x:L1);&&将匿名类名用SNetL的变量x代替,并加标号修饰
L1:(x,对于属性,fileSize:L2);&&将owl:onProperty转换为“对于属性”
L2:(fileSize,是属性,x);
(fileSize,最大基数,y:L3:L4);
L3:(y,be,非负整数);
L4:(y,number,1024);
owl:cardinality、owl:minCardinality、owl:maxCardinality转换为SNetL的方法是相同的。图2是对owl:someValuesFrom、owl:allValuesFrom、owl:hasValue到SNetL的转换描述。
(2)复杂类
OWL中复杂类包括:owl:oneOf(枚举)、owl:intersectionOf(交集)、owl:unionOf(并集)、owl:complementOf(补集)、owl:disjointWith(不相交集)、owl:equivalentClass(等价类)。由于在复杂类的转换中涉及到RDF:List及参照对象,因此需要加入标号进行修饰。
图3描述了“图形图像处理”软件是“图形处理软件”和“图像处理软件”的并集。
其他的复杂类与owl:unionOf有相似之处,因篇幅有限,这里就不作介绍。
(3)IF-THEN规则表示
在OWL扩展中,规则表示涉及到蕴涵关系式、与关系式、或关系式和非关系式等,在转换过程中也要考虑标号的转换问题。
如果要描述:“如果A是B的子类,B是C的子类,则A是C的子类”,则RDF三元组可表示为:
(子类传递性,TYPE,IF-THEN规则)
(子类传递性,规则名称,subClass Transitive Relation)
转换如下:
(L1,imply,L2) &&L1表示规则的前件,L2表示规则的后件
L1:(L3,and,L4) &&owlplus:AND映射为SNetL的and,
表示L3和L4成立,则L1成立
L3:(A,subclass,B) &&owlplus:predication的谓词sub
ClassOf转换为SNetL的subclass
L4:(B,subclass,C)
L2:(A,subclass,C) &&A、B、C是概念集的元素,在转换
过程中要作初始化
2.3 RDF到SNetL的主要关键字转换表
RDF到SNetL的主要关键字转换表如表2所示。
2.4 RDF到SNetL转换算法的描述
算法TORTS(Transfer of RDF to SNetL RDF到SNetL的转换算法):
功能描述:算法将RDF三元组表示的知识库转换为SNetL表示。
输入:RDF三元组表示的知识库(rdf_knowledge_triple)。
输出:SNetL表示的知识库。
算法简单描述:
TORTS1[初始化]对RDF表示的知识进行一致性检查;
基于本体,建立RDF到SNetL的关键字转换表;
p1←rdf_knowledge_triple
TORTS2[p1等于NULL?] 若p1等于NULL,则算法结束;
TORTS3[分类转换处理]判断是否可以直接进行三元组转换或者要进行标号处理。如果是,属性约束、规则表示、复杂类等转到TORTS4;否则,转到TORTS5 TORTS4[带有标号的关系式处理]读入RDF到SNetL的
关键字转换表;
下面对在属性约束、规则表示、复杂类等的表示范围内调用相应的转换规则进行处理。
(1)属性约束:约束开始即进行标号处理,并分类,对owl:cardinality、owl:minCardinality、owl:maxCardinality、owl:some-ValuesFrom、owl:allValuesFrom、owl:hasValues进行处理。
(2)复杂类:复杂类定义开始进行标号处理,主要考虑RDF列表类(RDF:LIST)的转换,并分类,对owl:oneOf(枚举)、owl:intersectionOf(交集)、owl:unionOf(并集)、owl:complementOf(补集)、owl:disjointWith(不相交集)、owl:equivalentClass(等价类)进行处理。
(3)规则表示:规则的前提定义owlplus:Rule-Premise开始时进行标号处理,(前提 结论)转换到SNetL表示为:(L1,imply,L2),L1表示规则的前提,L2表示规则的结论;搜索RDF的谓词到SNetL的转换;对规则中的与、或、非关系式进行处理。
(4)其他标号的处理
TORTS5[直接转换处理]读入RDF到SNetL的关键字转换表;
搜索在RDF的主体、谓词、对象中是否与SNetL有对应的转换关系,并将RDF的<主体,谓词,对象>直接转换为<事实节点,关系,事实节点>。
TORTS6[知识指针移动]p1←next(p1)转到TORTS2。
3 结束语
本文提出了RDF到SNetL知识表示的转换思想与算法。基于语义网络的SNetL表示的知识在推理技术上已逐渐成熟,因此,可以借助于SNetL的技术进行语义Web的知识推理。另外,语义Web与语义网络的关联研究也将促进这两个领域的共同发展。
参考文献
1 王永庆.人工智能原理与方法.西安:西安交通大学出版社, 2001
2 夏幼明.扩展的SNETL语言语法描述.云南省重点项目鉴定材料文集,2003
3 徐天任,夏幼明,甘健侯.用语义网络语言描述知识的表示. 云南师范大学学报,2003;(5)
4 W3C Recommendation.Resource Description Framework (RDF):Concepts and Abstract Syntax.http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/.2004,2
5 W3C Recommendation.RDF/XML Syntax Specification(Revised).http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/.2004,2
6 W3C Recommendation.OWL Web Ontology Language Semantics and Abstract Syntax.http://www.w3.org/TR/2004/REC-owl-semantics-20040210/.2004,2
7 W3C Recommendation.OWL Web Ontology Language Guide.http://www.w3.org/TR/2004/REC-owl-guide-20040210/.2004,2