Способи висловлення географічних питань у машиночитаному вигляді


22

Основною концепцією ГІС є відповіді на запитання щодо наборів даних. З погляду бази даних; SQL з просторовими розширеннями - це спосіб задавати такі питання. Які ще способи питання можуть бути виражені в машиночитаній текстовій формі? У чому переваги різних підходів?


2
+1 Було б зацікавлено почути альтернативи операторам «Клементині»
Кірк Куйкендалл,


@whuber, я повинен був бути більш конкретним. Мене цікавлять альтернативи операторам Clementini в запитах ArcGIS або запитах на бази даних, до яких ArcGIS може підключитися. Хоча Клементині на перший погляд здається читабельним як людиною, так і машиною, але у людини часто виникають труднощі .
Кірк Куйкендалл

1
@Kirk Добре, але, схоже, ArcGIS має труднощі, а не ти! :-) Цікаво, що Клемінтіні та ін закінчують оригінальний документ зауваженням "Ще один пункт нашого списку бажань пов'язаний з тестуванням, чи дійсно метод, заснований на обчислення, підходить для кінцевих споживачів".
whuber

1
@Matthew Не могли б ви бути трохи зрозумілішими щодо сфери "питань", в яких вас цікавлять? Наприклад, вас цікавлять, головним чином, питання, на які відповідають, виявляючи та обробляючи просторові зв’язки між особливостями (які, мабуть, знадобляться потужністю ГІС для здійснення), чи достатньо лише пошукати статичні атрибути окремих названих об'єктів чи локацій ( яким не потрібна просторова обробка)?
whuber

Відповіді:


7

Я можу думати лише про 3 типи просторових запитів, ігноруючи будь-які запити на основі атрибутів чи хешів.

  1. Просторові запити, засновані на геометрії, використовуються для пошуку зв’язків між векторними ознаками. Просторові запити SQL насправді є лише алорітмами низького рівня API, такими як Bentley-Ottmann - використовуються в OpenLayers для перевірки, чи перетинаються дві лінії.

    Як згадував Кірк, типи взаємозв'язку між ознаками стандартизовані за розмірною моделлю дев'яти перетину :

    • Дорівнює
    • Непересічні
    • Перетинає
    • Торкається (зустрічається)
    • Хрести
    • Всередині (всередині)
    • Містить
    • Перекриття
    • Обкладинки
    • Вкритий

    Можна стверджувати, що просторові запити на основі індексів є спрощеною формою геометричних запитів. Більшість запитів геометрії використовують просторовий індекс як запит першого проходу для фільтрації невідповідних функцій перед порівнянням окремих геометрій, що забирає більше часу. Вони також реалізовані в базах даних NoSQL, таких як MongoDB .

  2. Просторові запити, засновані на теорії графів . Ці типи запитів реалізуються в ГІС за допомогою таких інструментів, як Network Analyst , і знову на низькому рівні - алгоритми .
  3. Просторові запити, засновані на растрових сітках та теорії множин (та теорії нечітких множин ).

Є кілька реалізацій, які поєднують у собі вищезазначене, наприклад StarSpan, який поєднує растрові та векторні запити - хоча це дійсно приховує крок попередньої обробки.

Існує чимало API, які реалізують такі типи запитів, які читаються як в машині, так і в тексті. Там хороша дискусія про різні реалізаціях і їхні проблеми тут .


У статті До мови просторового простору запитів розбиваються просторові оператори на 4 типи, виходячи із запиту, а не типу даних (що, можливо, має більше сенсу):

  1. оператори спрямованості (такі як вище, внизу, northOf, southOf)
  2. топологічні оператори (такі як дотик, містять, рівні, всередині)
  3. метричні оператори (наприклад, відстань)
  4. Булові оператори (такі як об'єднання, перехрестя)

Він також пропонує термінологію для обробки 3d-функцій (корпусу та поверхні), які не входять до DE-I9M.


Тож за межами розмірно розширеної моделі дев'яти перетину ми можемо висловлювати питання лише у формах, запозичених з інших областей?
Меттью Снейп

1
Визначте своє запитання будь-якою мовою для домену GIS, яку ви бажаєте, але врешті-решт, машина запитає за допомогою одного з перерахованих вище методів (хоча, можливо, я їх і не вистачає).
geographika

7

1 - Існує кілька досліджень із цим програмним забезпеченням: http://nlp.uned.es/MLQA06/papers/ferres.pdf
Незважаючи на те, що це більше пов'язано з пошуком в Інтернеті, воно може дати певні вказівки щодо переведення людської мови на комп'ютерну мову.
"GeoTALP-Q" Google також містить більше статей на цю тему.

2- GeoDjango надає API для просторових запитів, це переклад з SQL на об'єктно-орієнтовану мову, який може пришвидшити багато копіткої роботи, як написання функцій PL / python для складних просторових запитів. Вона обмежена базою даних, яку ви використовуєте.


Це цікава знахідка. Оскільки нам подобається, що цей веб-сайт стоїть окремо і надає негайно корисні відповіді, найкраще супроводжувати подібне посилання з вашим власним резюме відповідних висновків. Ви могли б це зробити тут? Моє дуже швидке ознайомлення з доповіддю припускає, що це може бути зосереджено більше на вилученні географічних атрибутів з веб-даних, а не на обробці запитів про просторові відносини.
whuber

@whuber. Добре, дякую за пораду. Я буду враховувати це для подальших відповідей.
Пабло

2
+1 Прикра в SQL полягає в тому, що стільки його просторово звукових зарезервованих слів мало або нічого спільного з простором: ДЕ, ВІД, ВІД і т. Д.
Кірк Куйкендал,

@Kirk Смішно, я ніколи про це не думав. Різниці між місцем та простором достатньо, щоб дати хлопцеві головний біль. :)
Натанус

@nathanus Так, і тоді існує навіть поняття лексичної відстані між двома звуковими програмами, яке dbms може використовувати для пошуку найближчої вулиці, що відповідає.
Кірк Куйкендалл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.