Запрос топологии в геопространстве
Я вдохновил эту статью и создал онтологию с использованием онтологии geosparql. Два класса, названные Area и Park, были созданы как подклассы класса Feature geosparql. 3 экземпляра Area и 1 экземпляр Park были добавлены в онтологию. Затем были созданы экземпляры геометрии (asWKT) как подкласс класса Polygon класса geosparql. И экземпляры геометрии были связаны с экземплярами Park и Area через свойство объекта hasGeometry ( Созданная онтология и экземпляры).
Я попытался сделать запрос топологии, чтобы выяснить, какие экземпляры Area находятся в экземпляре Park. Итак, я выполнил приведенный ниже запрос с помощью плагина запроса sparql в Protégé 4.3.
PREFIX geosparql: http://www.opengis.net/ont/geosparql PREFIX su: http://www.example.org/su
ВЫБЕРИТЕ? X? Y ГДЕ {? Xa su: Площадь; geosparql:hasGeometry?xgeo . Су Су: Парк; geosparql:hasGeometry?ygeo .?xgeo geosparql:sfWithin?ygeo . }
Результаты не возвращаются, но я знаю, что в экземпляре Park есть два экземпляра Area. Я не обнаружил проблему. Разве я не запрашиваю топологические отношения с использованием geosparql и protégé?
1 ответ
Проблема в том, что вы не импортируете "хорошее" использование sfWithin
юридическое лицо.
Есть разница между http://www.opengis.net/ont/geosparql#sfWithin
а также http://www.opengis.net/def/function/geosparql/sfWithin
,
На самом деле, я пока не понимаю, как поступить в Protégé с этим утверждением, я сожалею об этом.
Если вам действительно нужно использовать такой запрос топологии, вы можете вместо этого использовать GraphDB, который реализует хороший рабочий плагин для GeoSPARQL.