Я использую рабочую среду 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, который я визуализировал:
Это, кажется, указывает на то, что
Я сделал что-то не так при настройке этого теста (если да, то что?) ИЛИ
RDF4J не поддерживает GeoSPARQL (по крайней мере, функцию geof:sfIntersects)
1 и/или 2 или что-то еще?
Спасибо.
geof:sfIntersects
всегда будет медленнее, чем магический предикатgeo:sfIntersects
, так как функция должна выполнить полное сканирование - person Vladimir Alexiev   schedule 13.01.2017