Service 发现SPARQL端点的版本

Service 发现SPARQL端点的版本,service,version,sparql,linked-data,discoverability,Service,Version,Sparql,Linked Data,Discoverability,例如,给定一个SPARQL端点(可以是SPARQL 1.0或1.1),如何找到它支持的SPARQL版本 [一个选择是尝试1.1功能,例如,并查看它是否有效,但我想应该有更好的方法来实现这一点] SPARQL 1.1服务描述规范 通过SPARQL协议提供的SPARQL服务应返回 取消引用时服务端点上的服务描述文档 使用不带任何查询参数字符串的HTTP GET操作 假如此服务描述必须在RDF中可用 序列化,可通过RDFa[RDFa]嵌入(X)HTML中,以及 如果在其他RDF中可用,则应使用内容协商

例如,给定一个SPARQL端点(可以是SPARQL 1.0或1.1),如何找到它支持的SPARQL版本

[一个选择是尝试1.1功能,例如,并查看它是否有效,但我想应该有更好的方法来实现这一点]

SPARQL 1.1服务描述规范

通过SPARQL协议提供的SPARQL服务应返回 取消引用时服务端点上的服务描述文档 使用不带任何查询参数字符串的HTTP GET操作 假如此服务描述必须在RDF中可用 序列化,可通过RDFa[RDFa]嵌入(X)HTML中,以及 如果在其他RDF中可用,则应使用内容协商[CONNEG] 陈述

而且,

3.2.10 sd:supportedLanguage 将sd:Service的实例与其实现的SPARQL语言(例如查询和更新)关联。 子功能:sd:功能域:sd:服务范围:sd:语言

3.3.3 sd:语言 sd:Language的一个实例表示一种SPARQL语言,包括提供 特定功能或扩展。本文件定义了三个方面 sd:Language:sd:SPARQL10Query、sd:SPARQL11Query和 sd:sparql11更新。类型:rdfs:Class子类:sd:Feature


但当我取消引用大多数SPARQL端点时,它们只会向我发送一个HTML SPARQL查询编辑器

更新: HTML编辑器的问题是因为我没有在端点上使用适当的内容协商。但是现在的问题是,有没有一种好的方法来区分SPARQL 1.0端点和不提供服务描述的SPARQL 1.1端点


在发现和监视SPARQL端点方面做了一些工作,例如,但我没有看到一种直接的方法来查找版本。

您应该检查的第一件事是,当您取消对端点的引用时,您要求的是RDF格式的内容,而不是文本/html等。,默认情况下,web浏览器会指定,并且端点不会基于用户代理向您提供某些输出,等等。例如,如果您在访问DBpedia端点,您将获得一个HTML查询编辑器。但是,如果您请求的页面的Accept头设置为“application/rdf+xml”,那么您将得到服务描述。如果不知道您遇到了哪些端点问题,我们真的无法提供更多帮助。这应该是可行的,但有些端点不能做到,这并不是我们可以调试的技术问题,特别是如果您不告诉我们哪些端点有问题的话。下面是使用curl时的效果:

$ curl -H "Accept: application/rdf+xml" http://dbpedia.org/sparql 

这是一个使用d3的XmlHttpRequest功能的实时版本。(我知道没有库也可以做到这一点,但我最近使用了很多d3。)

/**
*向dbpedia.org/sparql发出GET请求
*并在前置元素中显示响应。
*/
d3.xhr(“http://dbpedia.org/sparql")
.get(函数(错误、数据){
console.log(错误);
控制台日志(数据);
d3.选择(“主体”)
.append(“pre”)
.文本(数据、响应);
});

“但是当我取消引用大多数SPARQL端点时,它们只会向我发送一个HTML SPARQL查询编辑器。”您取消了对哪些端点的引用?这和,例如,和感谢一起工作。是的,我应该使用内容协商。终点是。它不支持SPARQL端点上的内容协商,因此它只有GET操作的HTML表示。谢谢!是的,它解决了我关于在没有内容协商的情况下向SPARQL端点发送请求的评论。此外,如果SPARQL端点向我发送服务描述,即使没有sd:Language信息,我也可以推断它可能支持SPARQL 1.1,因为服务描述是在1.1中引入的。但是,如果没有服务描述,有没有办法知道某个特定端点是否是SPARQL 1.0端点?我关心的端点是。@Nandana是的,该端点似乎没有返回适当的RDF描述。我不确定SPARQL 1.0提供了什么。我认为(对于SPARQL 1.0)可能是最接近您的。