【发布时间】:2016-03-28 04:19:53
【问题描述】:
我刚开始学习本体和语义网。现在,我想构建一个使用本体的应用程序。因此,我遇到了许多使用本体的应用程序示例。所有这些应用程序都具有相同的行为:它们使用查询语言(例如 SPARQL)查询本体的数据并获取返回结果。
从这种行为中,UI 看到本体就像数据库:允许存储和检索数据。但是我在 Stack Overflow 上也看到我们不应该使用本体作为数据库。所以我的问题是,我们为什么不呢?本体如何不适合用作数据库
【问题讨论】:
我刚开始学习本体和语义网。现在,我想构建一个使用本体的应用程序。因此,我遇到了许多使用本体的应用程序示例。所有这些应用程序都具有相同的行为:它们使用查询语言(例如 SPARQL)查询本体的数据并获取返回结果。
从这种行为中,UI 看到本体就像数据库:允许存储和检索数据。但是我在 Stack Overflow 上也看到我们不应该使用本体作为数据库。所以我的问题是,我们为什么不呢?本体如何不适合用作数据库
【问题讨论】:
语义 Web 三元组存储可以表示您可以存储在任何其他数据库中的任何数据,无论它是关系数据库还是图形数据库。从某种意义上说,它是您可以表示数据的最简单的形式:没有更简单的形式,因为您不能只使用对来表示数据,您需要三元组,没有更复杂的形式不能简化为三元组商店。
您绝对可以将数据存储在三重存储中,对其进行查询并获得有用的结果,市场上有商业和开源产品可以做到这一点。
另一方面,您还可以存储有关信息存储方式的信息,即三元存储中的元数据。任何谓词本身就是一个可以存储信息的实体。并非所有图形数据库都是这种情况,但语义 Web 三元组存储是这种情况。
此外,您还可以使用“推理器”对实体及其关系进行推理。
但是,它是一个相当大的数据,但从消极的一面来看,当您想要表示存储在大多数关系数据库中的信息类型时,它的效率非常低,这些关系数据库是每行具有相同列的数据表,而您没有不需要推理存储的数据或列本身。
因此,根据应用程序,您将在关系数据库、文档数据库、图形数据库或三重存储之间进行选择。
【讨论】: