语义网就是计算机可以理解的网络,它依靠RDF(Resource description framework), OWL(Ontology web language)等规范实现。
人类为什么能理解一篇文字组成的文章,因为他了解每个词的含义,他为什么会了解每个词的含义,因为他们在词典中都有解释。那么那些用来解释词的词又是被谁解释的?最终的最基本词是由人的感官解释, 比如“红色”这个词, 你无法再进一步解释,你只能告诉他那个苹果的颜色就是红色。
这个compiler theory相似,语言最终都解释到不能再进行推理的终结符为止。
语义网的价值在于它可以被计算机自动的进行聚合,分类,搜索, 方便网站间数据的整合等等。 基于语义网的推理还可以产生很多的应用。
RDF (http://www.w3.org/TR/2002/WD-rdf-concepts-20021108/)是一个关于对象(或资源)和它们之间关系的数据模型,且为该数据模型提供了简单的语义,这个数据模型能够用XML语法表示。RDF Schema (http://www.w3.org/TR/2002/WD-rdf-schema-20021112/)是一个描述RDF资源的属性(property)和类(classe)的词汇表,提供了关于这些属性和类的层次结构的语义.简言之,RDF是一个用来描述web上任何资源的方法,RDF Shehema定义了一本用于解释这些描述的词典.
OWL(http://www.w3.org/TR/2004/REC-owl-features-20040210/): SemanticWeb需要在RDF之上增加的第一个层次是一种能够对Web文档中的术语含义进行形式化描述的本体语言。如果希望机器能够对这些Web文档进行有效的推理工作, 这一本体语言必须超越RDF Schema的基本语义。OWL用例和需求文档 (http://www.w3.org/TR/webont-req/)提供了更多关于本体的细节 (http://www.w3.org/TR/webont-req/#onto-def),用六个用例 (http://www.w3.org/TR/webont-req/#section-use-cases)推动了对OWL的需求,并且规范化了OWL的设计目标 (http://www.w3.org/TR/webont-req/#section-goals)、需求 (http://www.w3.org/TR/webont-req/#section-requirements)以及目的 (http://www.w3.org/TR/webont-req/#section-objectives)。
RDF的抽象语法就是一个个tripple, 又叫做RDF graph. (The RDF abstract syntax is a set of triples, called the RDF graph). 这个tripple 由subject, predict和object组成。许多的tripples组成一个RDF图。
Subject和predict是一个RDF URI reference
Object 可以是一个RDF URI reference或者literal
例如. 网页http://www.example.org/index.html 的创建者是john。
Subject就是http://www.example.org/index.html , predict是creator, Object是john。 Creator 必须定义在某个RDF Schema中.
在RDF中表现为
<rdf:Description rdf:about="http://www.example.org/index.html">
<j.0:creator>John</j.0:Subject>
</rdf:Description>
RDF有专门的查询语言http://www.w3.org/TR/rdf-sparql-query/. 在JENA中的实现是ARQ search engine.
Jena 是HP实验室的OpenSource semantic web Framwork(java based). 目前正在使用Jena2.4, 还不知道他的效率怎么样。去年3,4月时好像还没有SPARQL, 用的是jena的RDQL, 现在的ARQ同时支持RDQL和SPARQL两种语法。