我正在尝试编写 RDF/OWL 数据(重新)加载到 GraphDB 存储的脚本,我想知道如何能够通过 Ontorefine 组件再次处理 CSV 文件,保持列修改和 RDF 映射,仅使用 REST API .
1 回答
编写脚本的一种方法是使用 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