0

我正在尝试编写 RDF/OWL 数据(重新)加载到 GraphDB 存储的脚本,我想知道如何能够通过 Ontorefine 组件再次处理 CSV 文件,保持列修改和 RDF 映射,仅使用 REST API .

4

1 回答 1

2

编写脚本的一种方法是使用 rdf-mapper REST API,它接受列映射文件和表格文件并将结果流式传输到输入位置文件。

之后可以使用导入服务器文件 REST API 将该文件导入 GraphDB(有关更多信息,请参见https://graphdb.ontotext.com/free/devhub/workbench-rest-api/curl-commands.html #数据导入)。

请记住,在启动 GraphDB 时,您需要使用此属性输入您计划从中导入 RDF 文件的目录:

-Dgraphdb.workbench.importDirectory=/import/location/

下面是一个小示例脚本,说明如何使用 cURL 将 CSV 文件作为 RDF .ttl 文档导入:

curl -X POST -sL \
            --url "http://address:port/rest/rdf-mapper/rdf/stream:csv:separator={CSV-SEPERATOR}"\
            -F mapping=@mapping.json \
            -F data=@import_file.csv \
            -H 'accept: text/turtle' \
            -o export_file.ttl

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{
   "fileNames": [
     "export_file.ttl"
   ],
   "importSettings": {
     "baseURI": "",
     "context": "",
     "parserSettings": {
       "failOnUnknownDataTypes": true,
       "failOnUnknownLanguageTags": true,
       "normalizeDataTypeValues": true,
       "normalizeLanguageTags": true,
       "preserveBNodeIds": true,
       "stopOnError": true,
       "verifyDataTypeValues": true,
       "verifyLanguageTags": true
     }
   }
 }' 'http://address:port/rest/data/import/server/{REPOSITORY-NAME}'

PS 以下是如何使用 GraphDB Workbench 并按照以下步骤创建所需的 mapping.json:转到 Ontorefine -> 选择并导入表格文件 -> 选择 Create Project -> 选择 RDF Mapping / Edit RDF Mapping -> 然后新建一个打开窗口,您可以在其中配置所述映射 -> 配置映射后选择“下载 JSON”。然后可以将下载的 JSON 映射与上面提供的示例一起使用。

有关更多信息,请查看https://graphdb.ontotext.com/free/loading-data-using-ontorefine.html?highlight=mapping

于 2020-12-08T12:48:56.947 回答