在emacs-sparql中为dbpedia设置正确的端点

时间:2014-04-15 14:41:00

标签: emacs sparql dbpedia

我开始使用emacs sparql-mode在脚本中而不是在浏览器中编辑和执行我的sparql查询。

我的脚本test.sparql如下:

PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX : <http://dbpedia.org/resource/>
PREFIX dbpedia2: <http://dbpedia.org/property/>
PREFIX dbpedia: <http://dbpedia.org/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>

ENDPOINT <http://dbpedia.org/sparql>

SELECT DISTINCT ?Concept WHERE {
  [] a ?Concept
} LIMIT 5

但是,当我用C-c C-c执行此操作时,我会继续:

HTTP/1.1 405 Not Allowed
Server: nginx/1.4.7
Date: Tue, 15 Apr 2014 14:34:16 GMT
Content-Type: text/html
Content-Length: 172
Connection: keep-alive

<html>
<head><title>405 Not Allowed</title></head>
<body bgcolor="white">
<center><h1>405 Not Allowed</h1></center>
<hr><center>nginx/1.4.7</center>
</body>
</html>

或者当我改变

ENDPOINT <http://dbpedia.org/sparql>

ENDPOINT <http://dbpedia.org/>

类似http://dbpedia.org/snorql/的访问的正确端点是什么?我需要做什么修改才能以JSON形式返回结果?

2 个答案:

答案 0 :(得分:1)

我还没有使用过sparql-mode,但endpoint不是SPARQL语法的一部分。 service关键字用于表示联合查询。它在SPARQL 1.1 Federated Query中有更全面的描述,并且有一些例子。我认为你的查询将是:

select distinct ?concept where {
  service <http://dbpedia.org/sparql> { 
    [] a ?concept
  }
}
limit 5

我不熟悉所有细节,因此我不确定远程端点是否获取有关limit 5的信息,因此处理它可能会有所帮助service中的子查询:

select ?concept where {
  service <http://dbpedia.org/sparql> { 
    select distinct ?concept where {
      [] a ?concept
    }
    limit 5
  }
}

正如我所说,我没有sparql模式,但我可以使用Jena的命令行sparql工具运行该查询,我得到了一种人们期望的结果。 (你可能想要增加limit;我倾向于得到的前五个结果是:

-----------------------------------------------------------------------
| concept                                                             |
=======================================================================
| <http://www.w3.org/1999/02/22-rdf-syntax-ns#Property>               |
| <http://www.openlinksw.com/schemas/virtrdf#QuadMapFormat>           |
| <http://www.openlinksw.com/schemas/virtrdf#QuadStorage>             |
| <http://www.openlinksw.com/schemas/virtrdf#array-of-QuadMap>        |
| <http://www.openlinksw.com/schemas/virtrdf#QuadMap>                 |
| <http://www.openlinksw.com/schemas/virtrdf#array-of-QuadMapFormat>  |

这不是您可能期望的有用的DBpedia课程。)

答案 1 :(得分:1)

在sparql或Emacs sparql模式下没有“ ENDPOINT”! 通过单击“ C-c C-c”使其运行时,迷你缓冲区中会出现提示 询问将作为基本端点的URL!这个基本端点可以是任何东西 就像在本地主机上或“ http://dbpedia.org/sparql”上运行的Fusionki服务器一样! 输入网址后也可以指定格式,默认格式为csv / txt!

如果要更改端点,只需单击“ C-c C-u”并提供新的URL。 您也可以通过单击“ C-c C-f”来更改格式! 万一忘记键绑定,您可以随时执行“ C-h m”,其中“ h”代表帮助,“ m”代表mode;)

这是您的示例正在运行:

enter image description here