【读书笔记】以数据为中心的语义Web程序

书籍:《Web3.0与Semantic Web编程》

基础知识

【读书笔记】以数据为中心的语义Web程序_第1张图片
语义就是“意思、含义”,通过确立关键字符号(数据)之间的关系来为关键字赋予有用的含义。语义Web就是一个数据网,这些数据以多种方式进行描述,相互链接形成语义关系,而这种语义关系遵从规定的语法和语言构造。

语义Web应用程序一般都会用到很多本体,本体是语义Web中路径和术语组成的领域词汇集,每一个本体都是针对某个必需的信息领域所选择的。
【读书笔记】以数据为中心的语义Web程序_第2张图片
语义Web实例:GeoNames

【读书笔记】以数据为中心的语义Web程序_第3张图片
上图是语义Web的主要组件,核心组件包括语义Web陈述、统一资源标识符(URI)、语义Web语言、本体和实例数据。此外,为了搭建语义Web,还需要一些组件和工具——建造工具、询问工具、推理机、规则引擎和语义框架。

  • 陈述:是语义Web的基础,每个陈述包含多个元素(这些元素一般为spo三元组),定义了信息结构、具体实例和对这种结构的限定条件。相互关联的陈述形成了数据网络,也就是构成了语义Web。
  • URI:为陈述中所包含的术语提供了一个在整个Internet上都唯一的名称,消除了命名冲突。
  • 语言:陈述的表达方式。
  • 本体:由定义概念、关系和约束的陈述组成。
  • 实例数据:含有与具体实例相关的信息的陈述。

建立语义Web开发环境

  • 编译和执行工具:Java SDK
  • 代码编译工具:Eclipse IDE
  • 本体编辑工具:Protege
  • 语义Web程序设计框架:Jena
  • 本体推理机:Pellet

书上的代码下载(要小币币)

语义Web程序设计

语义Web程序设计涵盖两个基本方面的内容:知识表示和应用程序集成。

语义Web信息模型
在语义Web上,信息被表示成一个被称作陈述(statement)的断言集合,陈述由主语、谓语、宾语三部分组成(因此陈述也被称作三元组)。

以主语和宾语为节点,以谓语为边,自然就构成了语义Web所使用的数据模型,通常使用一种叫做资源描述框架(RDF)的语言来对其进行形式化。(谓语使用箭头来表示,箭头的方向总是从陈述的主语指向陈述的宾语)

使用RDF来进行信息交换的优势在于其灵活性和表达能力——便于合并,无序,无重复;但是如果单独使用,则无法对隐藏在各种描述之后的含义或语义提供有力支持。

RDF序列化的三种最流行的格式是RDF/XML、Turtle和N-Tripe。(个人觉得Turtle的格式最好看)

本体
本体是为了让RDF更具有语义,本体有3个基本的语义构件块:类、个体和属性。
区分:
annotation: 标注,是标记出来供计算机使用的注释;
comment:注释,帮助用户理解代码的注释。

本体中常用的标注属性:
【读书笔记】以数据为中心的语义Web程序_第4张图片
本体中OWL属性的类别:
【读书笔记】以数据为中心的语义Web程序_第5张图片
语义Web程序设计框架
【读书笔记】以数据为中心的语义Web程序_第6张图片
RDF存储

  • AllegroGraph:有精简免费版本和商业完整版,支持Java语言版和Lisp语言版,提供SPARQL接口和基于RDFS的推理。
  • Mulgara:开源,使用Java编写的RDF存储,提供SPARQL查询处理器。
  • OpenLink Virtuoso:提供了基于关系数据库的RDF存储,有开源版和商业版,支持将SPARQL嵌入到SQL中。
  • Oracle 11g
  • OWLIM
  • Parliament:基于C++的RDF存储实现,采用了高校的基于磁盘的存储,但是只有有限的推理功能。

推理引擎

  • FaCT++:基于C++的开源推理机,支持OWL DL的一个较大的子集。
  • Hermit:基于Java的OWL推理机,基于一种新的造型表推理算法(tableau reasoning algorithm),可以将其集成到Protege或者使用OWL API的Java应用程序中使用。
  • KAON2:基于Java的框架,主要面向OWL DL本体方面的操作和推理,支持OWL DL的一个较大子集。
  • Pellet:开源的基于Java的OWL DL推理引擎,能够支持大多数OWL构造,包括OWL 2引入的构造。
  • RacerPro:商用推理机,支持OWL DL的一个较大的子集。
  • Vampire:商业软件,一阶逻辑公式证明器。

你可能感兴趣的:(语义网,编程,Semantic,Web,语义网)