Поддерживает ли RDF4J GeoSPARQL?

Я использую рабочую среду RDF4J:

System Information
Application Information
Application Name    RDF4J Workbench
Version 2.0.1
Runtime Information
Operating System    Windows 8.1 6.3 (amd64)
Java Runtime    Oracle Corporation Java HotSpot(TM) 64-Bit Server VM (1.8.0_101)
Process User    Greg
Memory
Used    203 MB
Maximum 3463 MB

Хотя я вижу ссылки на GeoSPARQL в репозитории RDF4J на github, в настоящее время он, похоже, не реализован. Я выполнил этот запрос обновления SPARQL в очищенном репозитории «В хранилище памяти с поддержкой RDFS + SPIN», чтобы настроить тест на рабочем месте RDF4J:

PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX sf: <http://www.opengis.net/ont/sf#>
PREFIX sxxicci: <http://www.disa.mil/dso/a2i/ontologies/PBSM/Interface/SXXIComplianceCheckIndividuals#>

INSERT DATA
{
     sxxicci:aPolygon geo:asWKT "Polygon((0.5 -0.5, 0.5 0.5, -0.5 0.5, 0.5 -0.5))"^^sf:wktLiteral .
}

В результате получается репозиторий с одним фактом.

Теперь я пытаюсь найти перекрытие с буквальным многоугольником со следующим запросом, который должен найти мой единственный факт, установленный выше:

PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX geof: <http://www.opengis.net/def/function/geosparql/>
PREFIX sf: <http://www.opengis.net/ont/sf#>

SELECT DISTINCT * 
WHERE 
{
     ?bGeom geo:asWKT ?bWKT . 
     FILTER (geof:sfIntersects(?bWKT, "Polygon((1 0, 1 1, 0 1, 1 0))"^^sf:wktLiteral))
}

Этот запрос дает результат ошибки в виде HTML, который я визуализировал:

введите здесь описание изображения

Это, кажется, указывает на то, что

  1. Я сделал что-то не так при настройке этого теста (если да, то что?) ИЛИ

  2. RDF4J не поддерживает GeoSPARQL (по крайней мере, функцию geof:sfIntersects)

1 и/или 2 или что-то еще?

Спасибо.


person Greg Cox    schedule 15.09.2016    source источник
comment
Я не знаю, содержит ли рабочая среда все Jar-файлы, связанные с GeoSPARQL, но здесь, я думаю, мы можем оценить, какие функции (по крайней мере) поддерживаются: github.com/eclipse/rdf4j/tree/master/testsuites/geosparql/src/   -  person UninformedUser    schedule 15.09.2016
comment
Ага, считается ли наличие нулевой документации малодокументированным? В любом случае, мы работаем над улучшением этого, следите за обновлениями.   -  person Jeen Broekstra    schedule 16.09.2016
comment
Бьюсь об заклад, что функция geof:sfIntersects всегда будет медленнее, чем магический предикат geo:sfIntersects, так как функция должна выполнить полное сканирование   -  person Vladimir Alexiev    schedule 13.01.2017


Ответы (1)


У меня была аналогичная проблема с использованием API-интерфейсов RDF4J в приложении maven, проблема заключалась в том, что функции GeoSPARQL определены в пакете rdf4j-queryалгебра-geosparql; который не включен по умолчанию. После добавления этого в мой POM запросы работали, как и ожидалось.

Я не совсем знаком с серверами приложений, но быстрый взгляд на rdf4j-workbench, развернутый на Tomcat, показывает, что эта библиотека отсутствует в каталоге lib/. Как только я добавил его вручную и перезагрузил приложение, мой пространственный запрос был проанализирован и выполнен правильно.

person nickrobison    schedule 12.01.2017
comment
как вы настроили репозиторий? В хранилище памяти с поддержкой RDFS + SPIN (из исходного вопроса) не похоже, что он включает GeoSPARQL - person Vladimir Alexiev; 14.03.2018
comment
Я действительно не помню, как я изначально настроил репозиторий, я просто провел быстрый тест в прошлом году, но я думаю, что следовал той же процедуре, что и в исходной публикации. Я не помню, чтобы видел параметр для прямого включения поддержки GeoSPARQL, но с правильными jar-файлами в каталоге lib я не уверен, как параметр конфигурации решит проблему. - person nickrobison; 14.03.2018