database - 我可以使用本体作为数据库并在其中存储数据吗?

标签 database ontology

我刚刚开始学习本体论和语义网。现在,我想构建一个使用本体的应用程序。所以我遇到了许多使用本体的应用程序示例。所有这些应用程序都有相同的行为:它们使用查询语言(例如 SPARQL)查询本体中的数据并获取返回结果。

从这个行为中,UI 看到本体就像数据库:允许存储和检索数据。但我也在 Stack Overflow 上看到,我们不应该使用本体作为数据库。所以我的问题是,我们为什么不应该呢?本体为什么不适合用作数据库

最佳答案

语义 Web 三元组存储可以表示您可以存储在任何其他数据库中的任何数据,无论是关系数据库还是图形数据库。从某种意义上说,它是表示数据的最简单形式:没有更简单的形式,因为您不能仅使用对来表示数据,您需要三元组,并且没有更复杂的形式不能简化为三元组商店。

您绝对可以将数据存储在三重存储中,查询它并获得有用的结果,市场上有商业和开源产品可以做到这一点。

从好的方面来说,您还可以存储有关信息存储方式的信息,即三重存储中的元数据。任何谓词本身就是一个可以存储信息的实体。并非所有图数据库都是这种情况,但语义 Web 三元组存储是这样。

从好的方面来说,您可以使用“推理器”来推理实体及其关系。

但是,它相当大,但从负面来看,当您想要表示大多数关系数据库中存储的信息类型时,它的效率非常低,这些数据表是每行具有相同列的数据表,而您却没有。不需要对存储的数据或列本身进行推理。

因此,根据应用程序,您将在关系数据库、文档数据库、图形数据库或三元组存储之间进行选择。

关于database - 我可以使用本体作为数据库并在其中存储数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36255919/

相关文章:

java - Virtuoso java API 加载 OntModel

classpath - 用 Jena 创建一个新的本体

java - Tomcat启动时实例化对象

php - PHP表单未插入MySQL数据库

database - 大型数据集的分布式复制二进制存储

database - Oracle 数据库更改的 Redis 监听器

owl - 获取本体IRI

python - 如何使用 owlready python 将父类(super class)添加到类中?

mysql - 开发一个从远程数据库获取内容的 iOS 应用程序

MySQL 拒绝多个用户访问