У меня есть экземпляр graphDB, работающий на VPS, и я хочу получить список организаций с отношением hasUnit. Следующий запрос отлично выполняется на странице выполнения SPARQL:
PREFIX org: <http://www.w3.org/ns/org#>
SELECT (?s AS ?Organization) (COUNT(?o) AS ?Count)
WHERE{
?s org:hasUnit ?o .
} GROUP BY ?s
но когда я пытаюсь получить результаты с помощью интерфейса REST, я получаю сообщение об ошибке «НЕПРАВИЛЬНЫЙ ЗАПРОС: org.eclipse.rdf4j.query.parser.sparql.ast.VisitorException: QName 'org: hasUnit' использует неопределенный префикс»
вот мой запрос uri:
http://23.101.230.37:7200/repositories/CSIRO?query= SELECT (?s AS ?Organization) (COUNT(?o) AS ?Count) WHERE{
?s org:hasUnit ?o . } GROUP BY ?s
Однако следующий запрос выполняется нормально:
http://23.101.230.37:7200/repositories/CSIRO?query= SELECT (?s AS ?Organization) (COUNT(?o) AS ?Count) WHERE{
?s ?p ?o . } GROUP BY ?s
"QName 'org:hasUnit' uses an undefined prefix"
? Я нахожу это очень ясным и полезным. Но вы далеко не первый, у кого отсутствуют объявления префиксов в запросе SPARQL. С моей точки зрения, я всегда старался добавлять все используемые префиксы, чтобы сделать SPARQL самодостаточным, чтобы вы могли запускать его в любой среде без необходимости использования заранее определенных префиксов. - person UninformedUser   schedule 15.01.2019