如何在 dotNetRDF 中配置 SPARQL 端点?
How to Configure a SPARQL Endpoint in dotNetRDF?
我正在尝试指定 configuration file that sets up a SPARQL endpoint in dotNetRDF. Before integrating it in an application, I am testing the configuration file by loading it to run a local server in the rdfServer GUI tool and then trying to access that server from the Store Manager tool, both from the dotNetRDF Tools(尽管这与问题无关)。
我正在遵循 manual 使用最小配置代码来设置 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" .
文档说:
This specifies configuration for a Handler which responds to requests on the URI /sparql
by providing a SPARQL Query endpoint.
我加载此配置并 运行 它在 localhost:1987
上。但是,当尝试按照描述访问它时,通过向 http://localhost:1987/sparql
发送一个简单的查询 (SELECT * WHERE { ?a ?b ?c . } LIMIT 10
) 而不使用默认图形,服务器的日志输出总是包含备注:
ERROR There are No Handlers registered which can process this request
我还尝试通过从本地文件加载图形来构建所提供的示例,同时考虑到有关如何从各自的 manual page (for the sake of the test, by loading the pizza ontology 定义图形的信息,我的文件已放在与配置文件相同的目录下):
@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
(以防在配置的URL后自动添加sparql
后缀)
http://localhost:1987/sparql
(以防 sparql
后缀由于某种原因实际上替换了图特定的 URL)
我在没有默认图表的情况下尝试了所有这些,并使用 http://example.org/graph
作为默认图表。
对于 2) 和 3),我得到了与上面相同的结果:
ERROR There are No Handlers registered which can process this request
对于 1),另一方面,服务器说:
ERROR Unexpected error from Handler VDS.RDF.Utilities.Server.SparqlServerHandler
事实 1) 以某种方式产生了不同的消息,这让我看起来好像在 URL 的正确轨道上,但它仍然没有给我任何关于如何正确设置的提示上配置文件。
如何为从本地文件加载的图形配置简单的 SPARQL 端点?
某处有某种最小配置示例吗?
所以问题的原因部分是文档失败,部分是 rdfServer 中的错误。
rdfServer 比我们的 ASP.Net 集成更受限制,仅支持配置 SPARQL Servers。但是,它没有通知您这一点,而是尝试为您的配置文件中定义的任何 HTTP 处理程序配置 SPARQL 服务器。这会导致您在尝试访问处理程序时看到失败,因为 SPARQL 服务器对它们的访问方式做了一些假设。
主要假设是它们被映射到通配符路径,因此您需要有一个 <dotnetrdf:/path/*>
形式的 URI 作为您的 HTTP 处理程序声明的主题,如下所示:
@prefix dnr: <http://www.dotnetrdf.org/configuration#> .
<dotnetrdf:/sparql/*> a dnr:HttpHandler ;
dnr:type "VDS.RDF.Web.SparqlServer" ;
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/query
和 /sparql/update
的端点。请注意,rdfServer 不支持 SPARQL 图形存储协议。
我们将确保 rdfServer 的未来版本更清楚地执行这些限制,并在尝试使用不受支持的配置时给出适当的错误消息。
我正在尝试指定 configuration file that sets up a SPARQL endpoint in dotNetRDF. Before integrating it in an application, I am testing the configuration file by loading it to run a local server in the rdfServer GUI tool and then trying to access that server from the Store Manager tool, both from the dotNetRDF Tools(尽管这与问题无关)。
我正在遵循 manual 使用最小配置代码来设置 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" .
文档说:
This specifies configuration for a Handler which responds to requests on the URI
/sparql
by providing a SPARQL Query endpoint.
我加载此配置并 运行 它在 localhost:1987
上。但是,当尝试按照描述访问它时,通过向 http://localhost:1987/sparql
发送一个简单的查询 (SELECT * WHERE { ?a ?b ?c . } LIMIT 10
) 而不使用默认图形,服务器的日志输出总是包含备注:
ERROR There are No Handlers registered which can process this request
我还尝试通过从本地文件加载图形来构建所提供的示例,同时考虑到有关如何从各自的 manual page (for the sake of the test, by loading the pizza ontology 定义图形的信息,我的文件已放在与配置文件相同的目录下):
@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
(以防在配置的URL后自动添加sparql
后缀)http://localhost:1987/sparql
(以防sparql
后缀由于某种原因实际上替换了图特定的 URL)
我在没有默认图表的情况下尝试了所有这些,并使用 http://example.org/graph
作为默认图表。
对于 2) 和 3),我得到了与上面相同的结果:
ERROR There are No Handlers registered which can process this request
对于 1),另一方面,服务器说:
ERROR Unexpected error from Handler VDS.RDF.Utilities.Server.SparqlServerHandler
事实 1) 以某种方式产生了不同的消息,这让我看起来好像在 URL 的正确轨道上,但它仍然没有给我任何关于如何正确设置的提示上配置文件。
如何为从本地文件加载的图形配置简单的 SPARQL 端点?
某处有某种最小配置示例吗?
所以问题的原因部分是文档失败,部分是 rdfServer 中的错误。
rdfServer 比我们的 ASP.Net 集成更受限制,仅支持配置 SPARQL Servers。但是,它没有通知您这一点,而是尝试为您的配置文件中定义的任何 HTTP 处理程序配置 SPARQL 服务器。这会导致您在尝试访问处理程序时看到失败,因为 SPARQL 服务器对它们的访问方式做了一些假设。
主要假设是它们被映射到通配符路径,因此您需要有一个 <dotnetrdf:/path/*>
形式的 URI 作为您的 HTTP 处理程序声明的主题,如下所示:
@prefix dnr: <http://www.dotnetrdf.org/configuration#> .
<dotnetrdf:/sparql/*> a dnr:HttpHandler ;
dnr:type "VDS.RDF.Web.SparqlServer" ;
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/query
和 /sparql/update
的端点。请注意,rdfServer 不支持 SPARQL 图形存储协议。
我们将确保 rdfServer 的未来版本更清楚地执行这些限制,并在尝试使用不受支持的配置时给出适当的错误消息。