我正在尝试指定一个在dotNetRDF中设置 SPARQL 端点的配置文件。在将其集成到应用程序中之前,我正在测试配置文件,方法是加载它以在rdfServer GUI工具中运行本地服务器,然后尝试从商店管理器工具访问该服务器,两者都来自dotNetRDF 工具(尽管这不应该与问题相关)。
我通过使用最少的配置代码来设置 SPARQL 处理程序来遵循手册:
@prefix dnr: <http://www.dotnetrdf.org/configuration#> .
<dotnetrdf:/sparql> a dnr:HttpHandler ;
dnr:type "VDS.RDF.Web.QueryHandler" ;
dnr:queryProcessor _:proc .
_:proc a dnr:SparqlQueryProcessor ;
dnr:type "VDS.RDF.Query.LeviathanQueryProcessor" ;
dnr:usingStore _:store .
_:store a dnr:TripleStore ;
dnr:type "VDS.RDF.TripleStore" .
文档说:
/sparql
这指定了 Handler 的配置,该 Handler通过提供 SPARQL 查询端点来响应 URI 上的请求。
我加载此配置并在localhost:1987
. 但是,当尝试按照描述访问它时,通过发送一个简单的查询 ( SELECT * WHERE { ?a ?b ?c . } LIMIT 10
) 到http://localhost:1987/sparql
没有默认图形,服务器的日志输出总是包含以下注释:
错误没有注册可以处理此请求的处理程序
我还尝试通过从本地文件加载图表来构建提供的示例,同时考虑有关如何从相应的手册页定义图表的信息(为了测试,通过加载披萨本体,我与配置文件放在同一目录中的文件):
@prefix dnr: <http://www.dotnetrdf.org/configuration#> .
<dotnetrdf:/graph> a dnr:HttpHandler ;
dnr:type "VDS.RDF.Web.QueryHandler" ;
dnr:queryProcessor _:proc .
_:proc a dnr:SparqlQueryProcessor ;
dnr:type "VDS.RDF.Query.LeviathanQueryProcessor" ;
dnr:usingStore _:store .
_:store a dnr:TripleStore ;
dnr:type "VDS.RDF.TripleStore" ;
dnr:usingGraph <http://example.org/graph> .
<http://example.org/graph> a dnr:Graph ;
dnr:type "VDS.RDF.Graph" ;
dnr:fromFile "pizza.owl" .
我尝试了以下发送上述简单查询的变体:
http://localhost:1987/graph
(因为这似乎是基于配置说法的合乎逻辑的选择<dotnetrdf:/graph>
)http://localhost:1987/graph/sparql
(以防在sparql
配置的 URL 后自动添加后缀)http://localhost:1987/sparql
(如果sparql
后缀由于某种原因实际上替换了特定于图形的 URL)
我在没有默认图表的情况下尝试了所有这些,并使用http://example.org/graph
了默认图表。
对于 2) 和 3),我得到了与上面相同的结果:
错误没有注册可以处理此请求的处理程序
另一方面,对于 1),服务器说:
错误来自处理程序 VDS.RDF.Utilities.Server.SparqlServerHandler 的意外错误
1) 以某种方式产生不同消息的事实使我看起来好像在正确的轨道上找到那里的 URL,但它仍然没有为我提供有关如何正确设置配置文件的任何提示。
如何为从本地文件加载的图形配置简单的 SPARQL 端点?
某处是否有某种最小的配置示例?