ckan - 如何自动将 CKAN 数据导出到 Virtuoso Open Source Edition?
问题描述
我正在使用 Drupal 和 CKAN 开发一个开放数据门户。但是现在客户想要添加 Virtuoso 开源服务作为 SPARQL 端点和链接数据工具。
系统架构类似于下图datos.gob.es(西班牙政府的开放数据门户)。
我很难理解从 CKAN 到 Virtuoso 的数据加载动态,官方文档根本没有帮助。
到目前为止,我已经找到了下一个选项,但不能满足我的实际问题。
.rdf
在 Quad Store手动上传文件 通过导体接口上传(非自动)- 商业版可以通过 ODBC 连接器连接 PostgreSQL CKAN 数据库。(非开源)
- 使用 RDF 批量加载过程,将文件上传
.rdf
到临时目录并启动ld_dir()
(rdf_loader_run()
默认情况下不自动) - 使用 Virtuoso Jena Provider (¿COMPLEX SCENARIO?)
完美的场景是一种旁路连接,当您将新数据集上传到 CKAN 时,会自动将其 rdf 文件上传到 Virtuoso。
我不知道我是否完全迷失了 Virtuoso 功能。但是有没有办法将 CKAN 连接到 Virtuoso 以便它自动获取.rdf
或.ttl
文件?谢谢。
解决方案
一种方法可能是开发一个带有自定义插件的小型 cKan 扩展,该插件在添加资源时执行,从 cKan 获取数据集 rdf,并发出 http put 请求以将资源放入 virtuoso。看起来 virtuoso 支持 http/put。
http://vos.openlinksw.com/owiki/wiki/VOS/VirtRDFInsert#HTTP%20PUT
$ curl -T kidehen.n3 http://cname/DAV/home/demo/MyData/ -u demo:demo
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML>
<HEAD>
<TITLE>201 Created</TITLE>
</HEAD>
<BODY>
<H1>Created</H1>Resource /DAV/home/demo/MyData/kidehen.n3 has been created.
</BODY>
</HTML>
这是创建插件的文档示例。 https://seanh-ckan.readthedocs.io/en/latest/plugins/
推荐阅读
- node.js - 在 NodeJS 控制器中检查 Mongoose 模型字段数据类型
- c++ - 在 Windows 10 上从源代码编译 libcurl 7.61.1
- node.js - nodeJs脚本可以删除他自己的文件吗?
- php - PHP - 错误:您有一个 SQL 语法错误 如何修复
- javascript - 当我使用 currentddate.setDate(currentddate.getDate() + 30) 从今天开始添加 30 天时出现奇怪的数字
- javascript - 如何将单击按钮更改为窗口加载
- excel - 直到单元格值介于 -1 和 1 之间
- javascript - Google Apps 脚本类 UrlFetchApp 用于获取网址不以“http://”开头的网页
- javascript - 按类型单击 selenium 中的项目
- javascript - 无法让凉亭安装聚合物“凉亭组件”文件夹丢失?