Web上的知识表示重新审视: 基于原型的本体的工具外文翻译资料

 2022-03-22 09:03

英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料


Web上的知识表示重新审视:

基于原型的本体的工具

Michael Cochez1; 2; 4,Stefan Decker1; 2和Eric Prud#39;hommeaux3

1弗劳恩霍夫应用信息技术研究所FIT

DE-53754德国圣奥古斯丁

{stefan.decker,michael.cochez}@ fit.fraunhofer.de

2亚琛工业大学,Informatik 5

DE-52056,德国亚琛

3万维网联盟(W3C)

Stata中心,麻省理工学院

eric@w3.org

4于韦斯屈莱大学数学信息技术系

FI-40014芬兰Jyvauml;skylauml;大学

摘要

近年来,RDF和OWL已成为最常见的在Web上使用的知识表示语言,推动着W3C的建议。 本文中,我们提出了一个实用的基于不同类型的知识表示的实现原型。 详细地说,我们提供了一个简单而有效的具体语法可由应用程序解析。 我们还提供了一个可扩展的实现原型知识库,专门为存储原型而设计。这些实现是用Java编写的,可以通过使用实现作为库来扩展。 或者,该软件可以这样部署。 此外,还介绍了本地和网络部署的基准测试结果。本文扩充了一篇研究论文,其中描述了我们原型系统的更多理论方面

关键词:关联数据,知识表示,原型

1介绍

最近,我们提出原型作为在web上表达知识的一种方式。该论文侧重于理论方面和分析。在这篇资源文章中,我们描述了我们为部署原型而开发的工具。首先,我们基于可用于存储原型的Java接口的实现提出知识库的实现。然后,我们重新使用这个系统来展示如何在远程和分布式设置中使用知识库。每个部分都包含一定数量的基准测试,以便读者了解所提供解决方案的实用可重用性。我们确实假设读者对原型背后的想法有一定的了解。用于基准的实施和代码是根据LGPLv3许可授权的,可以从中下载:

https://github.com/miselico/knowledgebase

2独立的知识库

原型知识库(KB)由一系列原型组成.为了反映这一点。IKnowledge接口被我们定义为KB的基础,只有一个必须实施的方法。此方法的签名是可选的lt;? extends Prototypegt; isDefined(ID id);。提供的Java源代码包含这个接口的五个实现,即

EmptyKnowledgeBase是没有任何内容的KB。 但是,按照定义,它仍然包含空的原型P ;.

PredefinedKB是一个包含字符串和整数常量的KB,本节将对此进行更详细的描述。

KnowledgeBase存储原型。 它可以使用另一个IKnowledgeBase作为基础来构建。 如果所请求的原型没有直接在知识库中定义,将会查询相关基础。

RemoteKB从远程KB获取其原型。 这个实现在第3节中进一步描述。

ChainedKB是一个IknowledgeBase,它将多个IKnowledgeBases连接在一起。依次检查KB,直到找到定义Prototype的KB。 如果没有找到,则返回一个空的Optional,表示没有可以找到Prototype。

每个原型由四部分组成,即1)其自己的ID,2)其基部的ID,3)用于添加部件的变更集,以及4)用于移除部件的变更集。这个结构在我们的实现中是非常模仿的.ID本质上是使用字符串类型和使用多映射(即可以将给定键的多个值关联的映射)的更改集合来表示的。正式定义允许创建一个原型,该原型将删除给定属性的所有值。根据理论定义,该计算将包含所有可能的ID的枚举集合,这是不可行的。因此,我们的实现具有两个不同的变更集实现,并将“全部删除”视为不需要枚举的特殊情况。

具体实施应涵盖的另一方面是文字的使用。在当前状态下,正式的Prototype KB定义不支持文字作为属性的值。相反,人们必须使用商定的原型来表示文字。因此,我们设计了PredefinedKB,它的作用类似于KB,它隐含地包含了所有可能的字符串和整数文字,编码为原型。 所支持的文字类型被扩展为任何类型。

2.1一致性检查

当从一组原型中创建KB时,应检查结果是否符合我们的原型知识库定义。在本文中,我们说KB必须检查一致性。 此一致性检查在KnowledgeBase实现中执行。首先,所有ID和属性名称必须是有效的绝对IRI,这是由类型系统强制执行的。接下来,如果有任何涉及在KB中找不到的ID定义的原型,则创建将被拒绝。然后,检查是否所有继承链最终(递归地)都在空的原型上结束。 如果情况也是如此,则执行检查以确保没有使用两次ID(这包括检查底层的KB)。实际上,人们可能想要删除最后一张支票,并且重复的问题可以通过给定的知识库中的原型来解决。 这可以使用ChainedKB。

我们软件的设计有助于构建一致的KB。 KB提供了可用于构建的构建器类。 此外,KB本身是完全不可变的。 通过创建新的KB来进行更改。 这确保了在任何时间点的一致性。

2.2定点计算

给定知识库KBo,我们实现了一种计算其解释KBn的方法。这种解释包含每个具有ID标识的原型定义在KBo中的表单(id;(PROTO:P_0; ADD;;))的新原型定义。如果ADD的解释是IKB(KBo)= IKB(KBn)。这归结为计算每个原型表达式的固定点。然而,由于对所有ID(无限集合)进行通用量化,所以定义的直接实现将不起作用。 因此,我们实现这一点,以便仅为这些实际使用的ID创建简单的更改表达式。

我们以可扩展的方式实现了一致性检查和定点计算。 对于一致性检查和计算固定点,实现进行了优化,使其不会计算两次。当原型P1的固定点已经被计算出来时,那么基于P1的原型P2的固定点的计算将重新使用该结果。类似地,在从P进行递归推导的一致性检查期间:如果已经知道原型P1从P递归地导出,则我们重新使用该信息来得出具有基础P1的P2来自P;的推论。 接下来,我们将介绍数据集及其使用的基准。

2.3数据集和基准

由于原型系统是新的,因此不存在利用其特征的现有实际数据集。 可以使用现有的RDF数据集作为原型,但这会导致KB不使用特定于原型的继承特性。因此,我们决定为我们的基准测试使用合成数据集。 我们创建了三种不同大小的三种数据集,共产生了九套数据集。请注意,我们不在数据集中使用删除功能。 这不是必需的,因为删除只会减轻系统的负担。 表1列出了数据集的概述。

表1:数据集的概述。 括号内的数字表示用于生成数据集的不同大小参数(有关更多信息,请参阅第2.3节)。该表格显示原型的数量以及原型的添加集中的属性的平均数量(和设计开发)。 下面我们将仅以数据集的首字母为参考。

数据集

原型

每个原型的属性

基线(19/20/21)

1,048,575

2,097,151

4,194,303

0

0

0

块(10/20.30)

1,000,000

2,000,000

3,000,000

1

1

1

增量(1/2/3)

1,000,000

2,000,000

3,000,000

2.0 plusmn; 1.4

2.0 plusmn; 1.4

2.0 plusmn; 1.4

第一类数据集对于一致性检查和定点计算具有有益的特性。 此外,它没有任何附属于原型的属性。因此,我们将调用这些基准数据集。 为了生成数据,我们从一个派生自P的原型开始,接下来我们创建两个从原型派生出来的原型,然后我们创建四个派生自这两个原型的原型,依此类推,直到我们创建了2n个派生自2n- 1 (for nisin; {19, 20,21})。

对于第二种类型,我们改变设置不太理想并引入属性。 我们创建了10个,20个和30个100块; 000原型,因此这种类型将被称为块。每个模块中的所有原型都是从一个较低的模块中随机选择的原型得到的。 然后,每个原型都有一个属性,其值从下面的块中随机选取。 在最下面的块中,基数总是P; 并且该属性的值始终是相同的固定原型。

第三种类型的数据集,我们称之为增量数据集,对定点计算和一致性检查要求更高。 这一次,我们每次只向KB添加1,200万原型。每个原型都会随机选择一个以前创建的原型作为其基础。 此外,每个原型获得0到4个属性,从10个不同的属性中选择(替换)。每个属性的值是随机选择的原型中。

结果:对于每个数据集,我们测量执行一致性检查和计算所有原型的固定点需要多长时间(即计算整个解释)。 我们还测量每个原型的最终平均数量。 这些结果可以在表2中找到。

从表中可以看出,一致性检查与系统中原型的数量成线性关系。 在某些情况下,似乎这种行为甚至是次线性的。 这可能是由即时编译引起的。

对于固定点,基准数据集提供接近线性的性能,这是预期的。 同样,较大的集合似乎计算速度更快(或者说,由于JIT编译器尚未优化代码,所以较小集合的处理速度较慢)。 块和增量实验也显示了预期的可扩展性。 但是,它们确实没有线性缩放,因为在较大的实验中,固定点中每个原型的属性数量较大。

表2:基准的结果。 对于每个数据集,该表显示一致性检查完成需要多长时间,以及计算固定点所需的时间。 最后三列显示计算固定点后的属性的平均数量(和标准偏差)。

数据集

一致性(ms)

不动点(ms)

计算固定点后的属性的平均数量

ba(19/20/21)

2,659

4,083

8,150

5,281

7,344

15,055

0

0

0

bl(10/20/30)

3,517

6,195

9,278

12,740

27,367

50,003

5.5plusmn;2.9

10.5plusmn;5.8

15.5plusmn;8.6

inc(1/2/3)

4,580

8,469

10,463

23,597

57,151

94,702

26.7plusmn;9.0

27.3plusmn;9.1

30.0plusmn;9.6

通过在单个“Intel(R)Xeon(R)E5-2670 @ 2.60GHz”内核上运行代码(使用任务集)获得结果。 为了保持结果可比,我们允许JVM使用大量的内存。 内存主要用于存储KB的固定点,实际上很少有人留在内存中。 这些结果表明,原型系统可以很好地扩展,甚至达到数百万个原型。

3分布式知识库

我们的目标是创建一个可以在网络上使用的KB。 因此,仅仅说明我们的实现可以在本地使用是不够的。 在本节中,我们将介绍我们如何实现KB的客户端 - 服务器版本。 在我们的实现中,我们使用无处不在的HTTP协议和众所周知的数据格式。我们还说明,通过HTTP协议的链接头,KB可以有明确的链接。 为了展示行动中的知识共享场景,我们执行基准测试,我们在模拟的Web环境中查询知识库。

3.1原型序列化和连接

为了在服务器和客户端之间传递原型,我们希望使用一种独立于平台的语言。 此外,使用不同的现代编程语言,序列化应该很容易解析。尽管软件中已经有了简单的文本序列化,并且在研究论文[1]中进行了演示,但我们选择为客户机 - 服务器交互实现JSON序列化。这也可以在稍后与Javascript客户端(和服务器)进行更直接的集成。 JSON序列化本身很简单。 原型转换为以下结构:

{'id':'theID', 'b

全文共7993字,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[15806],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。