14

我一直在阅读诸如 RDF 和 OWL 之类的语义 Web 技术,并且对在我现有的关系数据库之上构建 RDF/三重存储语义数据库的可能性很感兴趣。这只是一个研发活动,看看我能做什么。

我喜欢OWLIM的外观,但有些基础知识让我失望。究竟是如何构建并使用 OWL 本体的?您是否使用Protege之类的东西构建它,然后将其导入您的存储库?或者本体是你开发的与 repo 通信的软件的副产品?

这是一个新手问题,但我只是不确定 OWL 在什么地方适合事物的大顺序......如果我没有四处寻找指导,我不会问这个问题。

4

3 回答 3

10

我不认为您必须使用OWL来构建应用程序的特定方式。见鬼,你甚至不需要使用它来构建一个 semweb 应用程序。

一般来说,我认为人们倾向于使用 OWL 的方式有几种。我认为主要之一是推理。他们使用OWL2 配置文件之一定义对其应用程序重要的概念,然后使用推理器根据其本体推断新知识。现在甚至有一些工作将 OWL 本体用作完整性约束的模式。

在其他情况下,人们将其用作文档工件,以便能够概述其数据中的内容,但他们不会更正式地使用它。

两者之间有一些零碎的用例,RDF 模式也有类似的用途,可以像 OWL 本体一样使用,只是具有较低级别的表达性或类似SKOS的东西,可用于在应用程序中简单地定义分类法没有任何形式的表现力。

启动 Protege是一个好的开始。这将让您探索构建本体的一些基础知识,并且大多数推理器都可以作为插件使用,因此您还可以探索如何构建本体以及可以得到什么样的推理。

一旦你有了一个本体,如果你想将它用于文档以外的东西,即推理,你必须将它加载到推理器(PelletFact++RacerProHermiT)或执行 OWL 推理的数据库(Stardog猫头鹰)。如果您不担心推理,那么您可以将其放入任何三元存储中,通过SesameJena访问它(如果您使用的是 Java),仍然可以通过SPARQL查询明确的事实。

所以我想简短的回答是没有正确的方法来使用 OWL,它被用于各种不同的能力。您可能会觉得有趣的是 W3C 保留了一个带有语义 Web 应用程序列表的页面。这些案例研究讨论了公司遇到的问题以及他们如何使用语义技术解决这些问题。您可以阅读其中的一些内容,以更好地了解各个行业的人们如何利用该技术。

于 2012-07-23T10:57:43.617 回答
1

有许多使用关系数据库作为后端的三元存储。

查看Apache Jenaopenrdf Sesame以获得同时具有 rdbms 和“本机”(纯三元组)后端的三元组。

此外,我强烈建议查看D2RQ,它通过三重存储覆盖访问现有关系存储中的数据。

有更长的列表,但这些都是很好的起点。

于 2012-07-20T20:52:09.693 回答
1

是的,您可以在 Protege 中设计您的本体,然后将其导入您的 Triple Store。如果您的 Triple Store 支持推理并且您启用了它,您的 Sparql 查询将产生不同的结果。

例如,您可以将“related-to”定义为“married-to”、“child-of”、“parent-of”和“sibling-of”的超属性。然后你可以询问所有“相关”的人。

开始体验独立的三联店以了解这项技术。将与 RDB 的接口放在一边,直到您对基础知识感到满意为止。

于 2015-04-22T04:54:54.200 回答