Вопрос или проблема
Могу ли я представить, что георегион не пересекается (точно противоположен) с другим, используя GeoSPARQL?
Я хочу представить (в RDF, используя свою собственную онтологию вместе с GeoSPARQL), что у меня есть объект внутри некоторой области, которая полностью не пересекается с другой областью. Например, я хочу описать, когда автомобиль покидает мой пригород (или заходит в “не мой пригород”).
Я пытался сделать это, используя предикат geosparql:sfDisjoint, чтобы представить местоположение, охватывающее всю землю, которое является “не моим пригородом”. Это не сработало во время выполнения запроса SPARQL, потому что sfDisjoint правильно трактуется как функция, а не как отношение/свойство движком запросов.
Я осознаю, что не очень хорошо это формулирую. Есть ли кто-то, кто достаточно понимает мою проблему, чтобы помочь мне выразить ее лучше?
Еще лучше, понимает ли кто-то, могу ли я использовать GeoSPARQL, чтобы на самом деле представить факт, что какое-то местоположение не пересекается, а не просто вычислять, пересекается ли оно в результате запроса. Если нет, есть ли более подходящая онтология для представления таких пространственных отношений.
# Чисто иллюстративный пример Turtle RDF, показывающий, как я пытался использовать предикат geosparql:sfDisjoint.
@prefix data: <http://somedata.doesnt.matter.what#> .
@prefix ont: <http://someontologydoesnt.matter.what#> .
@prefix geosparql: <http://www.opengis.net/ont/geosparql#> .
# Автомобиль 1 находится в моем пригороде
data:mycar1 a ont:Car ;
ont:inLocation data:mysuburb .
# Автомобиль 2 находится вне моего пригорода
data:mycar2 a ont:Car ;
ont:inLocation [
a ont:Location ;
geosparql:sfDisjoint data:mysuburb
] .
data:mysuburb a ont:Location ;
ont:name "Мой Пригород" ;
ont:geoJSON """{"type": "Polygon", "coordinates": [[[40,40], [40,41], [41,40], [40,40]]]}""" .
Примечание: Кросспостинг на GIS stack exchange https://gis.stackexchange.com/questions/487352/how-to-represent-that-region-is-disjoint-the-exact-inverse-from-another-using, но я думаю, что выбрал неправильный обмен.
Ответ или решение
Вопрос о том, как можно непосредственно представить концепцию «непересекающихся» георегионов с использованием GeoSPARQL, требует тщательного и глубокого анализа возможностей этой онтологии. Давайте рассмотрим ключевые аспекты вашего запроса, чтобы предложить оптимальное решение.
Понимание GeoSPARQL
GeoSPARQL — это стандарт для представления и обработки пространственных данных в формате RDF. Он предоставляет свойства и классы, которые позволяют описывать геометрические и топологические отношения между пространственными объектами. Однако следует отметить, что GeoSPARQL в основном ориентирован на вычисление и оценку пространственных отношений, а не на их явное представление.
Представление концепции непересекаемости
Как вы правильно отметили, использование предиката geosparql:sfDisjoint
указывает на то, что два географических объекта не пересекаются. Однако это свойство в GeoSPARQL выполняет функцию, а не отношение. Это означает, что его применение следует учитывать в контексте вычислений, а не как способ зафиксировать данные в вашей модели.
Настройка RDF для представления дискретных пространств
Ваше намерение выразить, что автомобиль расположен вне определенной зоны («не моего субурба»), может быть реализовано иначе. Вместо того чтобы рассчитывать отношения с помощью предикатов, можно использовать более простой и интуитивно понятный подход. Например, вы можете создать отдельный ресурс для пространства «не моего субурба» и использовать его для определения местоположения вашего автомобиля. Вот один из возможных способов реализации:
@prefix data: <http://somedata.doesnt.matter.what#> .
@prefix ont: <http://someontologydoesnt.matter.what#> .
@prefix geosparql: <http://www.opengis.net/ont/geosparql#> .
# Задаем георегион "Не мой субурб"
data:notMySuburb a ont:Location ;
ont:geoJSON """{"type": "Polygon", "coordinates": [[[30,30], [30,35], [35,30], [30,30]]]}""" .
# Автомобиль 1 находится в моем субурбе
data:myCar1 a ont:Car ;
ont:inLocation data:mySuburb .
# Автомобиль 2 находится вне моего субурба
data:myCar2 a ont:Car ;
ont:inLocation data:notMySuburb .
Альтернативные решения
Если ваше намерение заключается не только в вычислениях, но и в структурировании данных, вы можете рассмотреть использование других онтологий, которые могут предложить более значимые способы описания пространственных отношений. Например, онтологии из области географической информации, такие как OWL-Time или связанная модель пространственной информации, могут предложить средства для выражения взаимосвязей между пространственными сущностями.
Заключение
Вы можете использовать GeoSPARQL для представления и вычисления пространственных отношений, но для явного представления концепции «непересекаемости» необходимо будет адаптировать вашу структуру данных. Это может быть достигнуто как через создание дополнительных ресурсов, так и через применение других онтологий, более ориентированных на выражение зрелых абстракций.
Если у вас есть дополнительные вопросы или вы хотите обсудить варианты реализации, пожалуйста, не стесняйтесь обращаться!