【问题标题】:Query a local ttl file using SPARQL on Virtuoso Conductor?在 Virtuoso Conductor 上使用 SPARQL 查询本地 ttl 文件?
【发布时间】:2019-10-31 15:41:35
【问题描述】:

我正在尝试学习 SPARQL,我正在尝试查询本地 ttl 文件,这是我的下载

路径是:C:/Users/abc/Downloads/human-instructions-english-wikihow/en_0_rdf_result.ttl

SELECT ?s ?p ?o
FROM <C:/Users/abc/Downloads/human-instructions-english-wikihow/en_0_rdf_result.ttl>
WHERE {?s ?p ?o}
LIMIT 1000 

所以我尝试执行这样一个非常简单的查询,但它不返回任何输出。

我知道我们必须在 FROM 中放置一个 SPARQL 端点或带有“http”的东西,但这个文件在我的下载中,我似乎无法弄清楚端点是什么。

请帮帮我。谢谢。

【问题讨论】:

  • 4 年前这是不可能的,除非您使用导入文件:stackoverflow.com/questions/23607443/… - 不确定现在是否可行。顺便说一句,您的第二个查询没有任何意义,它甚至不是有效的 SPARQL 语法
  • 是的,我明白了,前缀声明可能不正确,我只是在尝试,因为我看到了一些类似的查询。对此感到抱歉,也感谢您的帮助。
  • 不仅是前缀声明,而且查询体是由三重模式组成的,但你的是……不同的东西。以前从未见过这种语法。您在哪里看到这样的查询?
  • 关于您的初始查询,您也可以在 Openlink 论坛中询问是否有某种方法可以解决您想要实现的目标。虽然我认为 TallTed 和其他人很快就会在这里回答。
  • @AKSW 我在看一些 youtube 视频,这个人写了类似这样的东西,但并不完全像这样。他的查询有效,所以我很确定他做的事情是正确的。但是,我想我只是尝试自己编写底部查询,因此这是一个错误。我认为我应该删除它以避免混淆。

标签: sparql virtuoso


【解决方案1】:

(如果您还没有安装 Virtuoso Sponger 中间件模块 cartridges_dav.vad,您的 Virtuoso Enterprise/Commercial EditionOpen Source Edition 版本。)

首先,您需要将此行添加到 SPARQL 查询的顶部 --

define get:soft "replace"

define pragma”是一个 SPARQL 扩展,它告诉 Virtuoso 解析它在其余查询中遇到的远程 URL。

然后,您需要为目标文件使用完整的 URI。这可能是 file: 方案 URI,IFF --

  • URI 构造正确
  • 目标文件可通过运行 Virtuoso 的文件系统访问
  • 保存目标文件的目录包含在virtuoso.ini文件的DirsAllowed参数中

另见How to import JSON-LD into Virtuoso

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多