【问题标题】:Is the Triple store commonly used for CRUD operations? [closed]三重存储是否常用于 CRUD 操作? [关闭]
【发布时间】:2021-12-08 01:45:50
【问题描述】:

我正在学习语义网络技术和关联数据的力量。使用 RDF、RDFS、OWL 推理非常方便。从三重存储读取链接数据的 Sparql 查询既酷又无缝。当我更多地考虑实际使用时,想知道它是否适合完整的 CRUD 事务使用。虽然 Sparql 支持插入和更新操作,但它实际上被采用了吗?任何最佳实践指南?

【问题讨论】:

    标签: jena semantic-web triplestore


    【解决方案1】:

    Virtuoso 支持 (C)reate、(R)ead、(U)pdate、(D)elete 操作的完整 ACID 操作。

    它通过融合 SQL 和 SPARQL 的关系操作特性的多模型 DBMS 实现了这一目标。

    如前所述,您可以向 Virtuoso 发出包含 SPARQL 的 SQL 查询(通过 FROM CLAUSE)。更好的是,您可以在所述 SQL 中添加“FOR UPDATE”以触发完整的 ACID 行为。

    链接

    【讨论】:

      【解决方案2】:

      我不确定你想确切知道什么,但我会尽我所能回答你的问题(你能不能稍微改进一下,写下你想解决的确切问题是什么?):

      SPARQL 1.1 更新(在 SPARQL 1.0 中以前称为 SPARUL 或 SPARQL 更新)允许创建、读取更新和删除资源。

      与关系数据库世界相比,数据库通常具有读写访问权限,但只有少数使用某种身份验证方法(数据孤岛)的人才能访问,而在语义 Web 世界中发布数据非常常见通过公共 SPARQL 端点。与维基百科等其他一些数据共享形式相反,在我所知道的所有情况下,这些数据共享仅提供读取权限。

      但是,允许通过与公共 SPARQL 端点接口分离的受保护连接进行 SPARQL 1.1 更新查询绝对仍然是一个常见用例。

      例如,可以有一个 CRUD 应用程序,例如 OntoWiki,它与 Virtuoso SPARQL 端点安装在同一台服务器上,并使用网络上的 ISQL 连接到端点,因为 Virtuoso ISQL 支持 SPARQL 查询,包括更新,在 ISQL 查询的第一行中使用 SPARQL 关键字。

      如果您只是很少想要执行某些特定的 SPARQL 1.1 更新查询,并且您不需要单独的 CRUD 编辑器,对于 Virtuoso SPARQL,您还可以在 SQL 选项卡的指挥 Web 界面中运行这些查询.

      但是,大多数 SPARQL 端点(通常除了 Virtuoso,它的行为可能与描述的不同,具体取决于各种设置以及特定的交互方法和模式)不会保留三重级别之外的数据完整性,因为就它们而言它们只存储图形,它们是三元组的集合。在更高级别(例如,使用 OWL、RDFS 或 SHACL)描述的完整性条件不会被检查,因此不会被此类 SPARQL 端点保留。这包括:

      • 域和范围限制(每个母亲都必须是人类和女性)
      • 基数(每个孩子必须有一个父亲和一个母亲)
      • 非二元关系,例如使用连接到单个关系资源的多个辅助三元组来表达的 OWL 公理。

      对于某些用例,使用带有 CRUD 接口的传统关系数据库来处理特定用户输入并稍后对其进行转换可能是有意义的,例如使用 R2RML 到 RDF。由于其混合性质,Virtuoso 可以同时提供这两种功能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-23
        • 2011-01-30
        • 2018-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多