【发布时间】:2019-07-01 10:24:57
【问题描述】:
我正在尝试使用图形存储 HTTP 协议从存储库中的命名图形(名称是 URI)中检索所有语句。我在 Windows 10 上使用 8.10 版 GraphDB 安装。
安装会在以下位置报告 API 的可用性: /repositories/{repositoryID}/rdf-graphs/{graph}
但是,将 {graph} 替换为 URI 会导致报告 No Handler Found 错误或 noslash 错误(如果 URI 已编码)。
我尝试过未编码的 URI 和编码的 URI。引用的规范 SPARQL 1.1 Graph Store HTTP Protocol 建议 ?graph={graph} 可能是必需的,但这也失败了。
一些例子:
未编码
11:14:50.901 [http-nio-7200-exec-2] WARN o.s.w.s.m.s.DefaultHandlerExceptionResolver - 已解决 [org.springframework.web.servlet.NoHandlerFoundException:找不到 GET /repositories/foodandwine/rdf-graphs/@ 的处理程序987654322@
用 %2e 替换“:”
11:14:59.583 [http-nio-7200-exec-10] 警告 o.s.web.servlet.PageNotFound - 找不到 GET /repositories/foodandwine/rdf-graphs/http%3e//www.w3 的处理程序。 org/TR/2003/PR-owl-guide-20031209/food
将“:”替换为 %2e,将“/”替换为 %2f
消息 URI 无效:noSlash
描述 由于被认为是客户端错误(例如,格式错误的请求语法、无效的请求消息帧或欺骗性请求路由),服务器无法或不会处理请求。
我确信我错过了一些非常简单的事情,但如果能指引正确的方向,我将不胜感激。
【问题讨论】:
-
您查看了rdf4j.eclipse.org/documentation/rest-api/#graph-store-support 的RDF4J 文档吗?建议使用
service?graph=端点和一个 sutableAccept标头,例如类似:curl -X GET --header 'Accept: application/rdf+xml' http://localhost:7200/repositories/test/rdf-graphs/service?graph=http%3A%2F%2Fbase.org%2FtestHTH -
感谢您的链接和建议。这样就解决了。我没有发现“服务”端点路径,因为它没有列在 REST API 的内置帮助中。
标签: graphdb named-graphs