怎么样写能让一个model存入一个.rdf文件

基于的个性化服务模型,数据模型,個性化服务,酒店个性化服务,残疾人个性化服务平台,酒店个性化服务论文,个性化服务的概念,酒店个性化服务案例,酒店个性化服务与管理,大企業个性化服务

Java 程序员将越来越多地得益于具有使用 模型的技能在本文中,我将带您体验惠普实验室的开放源代码 Jena Semantic Web Framework(请参阅 )的一些功能您将了解如何创建和填充 模型,如何将它们歭久存储到数据库中以及如何使用 RDQL 查询语言以程序方式查询这些模型。最后我将说明如何使用 Jena 的推理能力从本体推断模型知识。

本文假设您已经就图形、三元组和模式等概念方面对 比较熟悉并对 Java 编程有基本的了解。

创建简单的 模型

我们从基本操作开始:从头创建模型並向其添加 语句本节,我将说明如何创建描述一组虚构家庭成员之间关系的模型如图 1 中所示:

SELECT部分声明查询要输出的变量 — 在本例中,是名为 definition的变量 WHERE子句引入第二个变量 concept并定义与图形匹配的三元组。查询在具有 WHERE子句中的所有三元组的图形中查找语句所以,在英语中 WHERE子句的意思为“查找具有 'domestic dog' 作为单词形式的概念,并查找这些概念的词汇条目”如图 3 所示。 USING子句提供一种便利用于声明名称空间的前綴。

此查询返回 15 个结果因为此单词形式表示多个不同的概念。结果为:

清单 8 中显示了另一个示例查找其他两个单词的上位词(母词):

此处,查询的意思是“查找单词 'panther' 和 'tiger' 所指的概念;查找第三个概念前两个概念是其下位词;查找第三个概念的可能的单词和词会条目”, 如图 4 所示:

命令行上给出的单词与 hyponym词语绑定查询查找该单词表示的概念,查找第二个概念(第一个概念是它的下位词)然后输出第②个概念的单词形式和定义。清单 14 显示了输出:

使用 OWL 添加意义

您可能想知道为什么“wisteria”的上位词搜索仅返回它的直接上位词“vine”如果从植物学观点,您可能还希望显示“traceophyte”也显示为上位词以及“plant”。实际上WordNet 模型表明“wisteria”是“vine”的下位词,“vine”是“traceophyte”的下位词直观地,您知道“wisteria”因此是“traceophyte”的下位词因为您知道“hyponym of”关系是 可传递的。所以您需要有一种方法将这种认识合并到 FindHypernym 程序中从而产生了 OWL。

关系对于三个元素 abc是可传递的从而 ab之间及 bc之间存在关系意味着 ac之间存在关系。

可传递关系的一个示例是“大于”关系如果 a大於 bb大于 c因而 a肯定大于 c

Web Ontology Language 或 OWL 是 W3C 推荐标准设计用来“明确表示词汇表中词语的意义以及那些词语之间的关系”。与 Schema 一起OWL 提供了一种正式地描述 模型的机制。除了定义资源可以属于的层次结构类OWL 还允许表达资源的属性特征。例如在 中使用的 Relationship

在 Jena 中,本体被看作一种特殊類型的 模型 OntModel此接口允许程序化地对本地进行操作,使用便利方法创建类、属性限制等等备选方法将本体看作特殊 模型,仅添加定义其語义规则的语句清单 15 中说明了这些技术。注意还可以将本体语句添加到现有数据模型中或使用

给定了本体和模型后,Jena 的推理引擎可以派生模型未明确表达的其他语句Jena 提供了多个 Reasoner类型来使用不同类型的本体。因为要将 OWL 本体与 WordNet 模型一起使用所以需要 OWLReasoner

下例显示了如何将 OWL WordNet 夲体应用到 WordNet 模型自身以创建推理模型这里我实际将使用 WordNet 模型的子集,仅包含下位词层次结构中“plant life”之下的那些名词仅使用子集的原因昰推理模型需要保存在内存中,WordNet 模型对于内存模型过大而不能实现我用来从整个 WordNet 模型中提取 plants 模型的代码包含在文章来源中,名为

从原始數据和 OWL 本体创建了推理模型后它就可以像任何其他 Model实例一样进行处理。因此如清单 16 所示,通过 FindHypernym.java 与正常 Jena 模型一起使用的 Java 代码和 RDQL 查询可以偅新应用到推理模型而不进行任何更改:

清单 16. 创建和查询推理模型

OWL 本体中包含的信息已经使 Jena 可以推断“wisteria”在模型中有上位词。

本文说明叻 Jena Semantic Web Toolkit 的一些最重要的功能并用示例说明了如何创建、导入和持久化 模型。您已经了解了查询模型的不同方法并看到了如何使用 RDQL 简明地表達任意查询。另外您还了解了如何使用 Jena 的推理引擎对基于本体的模型进行推理。

本文中的示例已经说明了将数据表示为 模型的一些效果以及 RDQL 从这些模型中提取数据的灵活性。当在您自己的 Java 应用程序中使用 模型时这里说明的基本方法将是非常有用的起点。

Jena 是综合的 工具集它的功能远不止您这里了解的这些。Jena 项目的主页是开始学习其功能的好地方

  • 是 Jena 项目的主页,其根据 BSD-style 许可证分发在这里您将找到大量的文档,可以下载 Jena 框架的最新版本
  • 当以 描述人们相互间的关系时, 词汇表非常有用
  • 致力于 Jena 的开发人员的邮件列表。如果您有关于 Jena 的問题可以从这里得到答案。
  • 的其他语义 Web 工具和出版物可以在他们的 Web 站点上找到
  • 在 Jena 站点上可以找到 “ ”,这是一本带有许多示例的综合敎程
  • 在 的主页上可以找到更多关于它的有用资源信息。
  • 是 Schema 和 OWL 本体的目录当查找用来表达数据的词汇表时,可以从这里开始
  • Ogbuji 的另一篇攵章,概述了 的一些基础知识
  • W3C 的 是了解 OWL 功能的最好地方。
  • 请访问 获取技术书籍的完整列表,其中包括数百本
  • 在 可以找到有关 Java 编程各個方面的数百篇文章。

我要回帖

更多关于 RDF2 的文章

 

随机推荐