【问题标题】:Marklogic Data hub: Triples are not generated in the Mapping output fileMarklogic 数据中心:映射输出文件中未生成三元组
【发布时间】:2021-03-29 07:42:09
【问题描述】:

我正在使用最新版本的 Marklogic datahub 和 MarkLogic Server。

  • 数据中心 5.4.1 快速入门
  • MarkLogic 服务器版本 10.0-6.2

在 MarkLogic Datahub 中,我为数据源创建了一个流。

这里的数据源是从 csv 文件中读取数据。

我已经创建了一个实体,并且能够进行摄取和映射。

执行摄取和映射步骤后,我观察到映射输出文件中没有生成三元组。

我是否遗漏了数据中心在映射输出文件中生成三元组所需的一些步骤?

我恳请您在这方面帮助我。

谢谢。

【问题讨论】:

标签: marklogic


【解决方案1】:

标准的数据中心映射流程永远不会填充信封的三元组部分。

默认情况下,自定义映射步骤也不会,除非您明确地在其中放置一些三元组。

但是,如果您已经定义了一个实体并映射到它,那么数据中心将在幕后将三元组插入到三元组索引中。

您可以通过进入查询控制台、选择最终数据库并运行以下 SparQL 查询来验证您的数据库:

select ?s ?p ?o
where
{
  ?s ?p ?o.
}

您应该在那里看到一大堆三元组,其中主题以“http://marklogic.com/row/”开头,谓词将以“http://marklogic.com/column/... "

如果您想用自己的三元组填写信封的三元组部分,那么您有三个选择:

  1. 在映射步骤中添加自定义挂钩,将三元组添加到信封的三元组;
  2. 在映射步骤之后添加一个自定义步骤,该步骤从 Final 到 Final 填充三元组部分;或
  3. 将您的映射步骤转换为自定义映射步骤,编写 JavaScript 代码来进行属性映射,并将三元组添加为同一流程的一部分。

【讨论】:

  • 我通常不会理会那个三元组部分。如果您需要 SPARQL 的 SQL 访问您的数据,请使用 TDE。它确保您的信封保持清洁;信封内没有不必要的数据重复。
  • 另外请注意,行三元组并不是真正的三元组,只有在部署了定义实体 SQL 视图的 TDE 时才会显示。主题值可能看起来像 IRI,但实际上是 RowID..
猜你喜欢
  • 1970-01-01
  • 2022-10-06
  • 1970-01-01
  • 2021-11-30
  • 2021-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多