Sposoby wyrażania pytań geograficznych w formie do odczytu maszynowego


22

Podstawową koncepcją GIS jest odpowiadanie na pytania dotyczące zbiorów danych. Z punktu widzenia bazy danych; SQL z rozszerzeniami przestrzennymi jest sposobem zadawania takich pytań. Jakie inne sposoby można wyrazić w formie tekstowej do odczytu maszynowego? Jakie są zalety różnych podejść?


2
+1 Byłbym zainteresowany usłyszeniem alternatyw dla Operatorów Clementini
Kirk Kuykendall


@ whuber, powinienem był bardziej konkretny. Interesują mnie alternatywy dla operatorów Clementini w zapytaniach ArcGIS lub zapytania dotyczące baz danych, z którymi ArcGIS może się połączyć. Choć na pierwszy rzut oka Clementini wydaje się czytelny zarówno dla ludzi, jak i dla maszyn, jako człowiek często mam trudności .
Kirk Kuykendall

1
@Kirk OK, ale wygląda na to, że ArcGIS ma trudności, nie ty! :-) Interesujące jest to, że Clemintini i in. Kończą swój oryginalny tekst uwagą „Kolejny punkt na naszej liście życzeń dotyczy testowania, czy metoda oparta na rachunku jest naprawdę odpowiednia dla użytkowników końcowych”.
whuber

1
@Matthew Czy mógłbyś być trochę bardziej zrozumiały w zakresie „pytań”, którymi jesteś zainteresowany? Na przykład, czy interesują Cię głównie pytania, na które odpowiedzi można znaleźć, odkrywając i przetwarzając relacje przestrzenne między obiektami (które prawdopodobnie wymagałyby mocy GIS do przeprowadzenia), czy wystarczyłoby po prostu sprawdzenie statycznych atrybutów poszczególnych nazwanych jednostek lub lokalizacji ( które nie wymagają przetwarzania przestrzennego)?
whuber

Odpowiedzi:


7

Mogę myśleć tylko o 3 typach zapytań przestrzennych, ignorując zapytania oparte na atrybutach lub hashach.

  1. Zapytania przestrzenne oparte na geometrii i służą do znajdowania związków między elementami wektorowymi. Zapytania przestrzenne SQL są w rzeczywistości tylko alogorytmami niskiego poziomu API, takimi jak Bentley-Ottmann - używanymi w OpenLayers do sprawdzania, czy przecinają się dwie linie.

    Jak wspomniał Kirk, typy relacji między cechami ustandaryzowały się w rozszerzonym wymiarowo modelu dziewięciu skrzyżowań :

    • Równa się
    • Nieskładny
    • Przecina
    • Dotyka (spełnia)
    • Krzyże
    • Wewnątrz (wewnątrz)
    • Zawiera
    • Pokrywają się
    • Okładki
    • Objęte

    Można argumentować, że zapytania przestrzenne oparte na indeksach są uproszczoną formą zapytań geometrycznych. Większość zapytań dotyczących geometrii wykorzystuje indeks przestrzenny jako zapytanie pierwszego przejścia w celu odfiltrowania nieistotnych elementów przed porównaniem poszczególnych geometrii, co jest bardziej czasochłonne. Są one również implementowane w bazach danych NoSQL, takich jak MongoDB .

  2. Zapytania przestrzenne oparte na teorii grafów . Tego rodzaju zapytania są implementowane w GIS za pomocą narzędzi takich jak Network Analyst , a na niskim poziomie są algorytmy .
  3. Zapytania przestrzenne oparte na siatkach rastrowych i teorii zbiorów (i teorii zbiorów rozmytych ).

Istnieje kilka implementacji, które łączą powyższe, na przykład StarSpan, który łączy zapytania rastrowe i wektorowe - chociaż tak naprawdę ukrywa etap wstępnego przetwarzania.

Istnieje wiele interfejsów API, które implementują tego rodzaju zapytania, które można odczytać zarówno z komputera, jak i tekstu. Jest to dobra dyskusja na temat różnych wdrożeń i ich problemów tutaj .


Artykuł W kierunku języka zapytań przestrzennych 3d dzieli operatory przestrzenne na 4 typy, oparte raczej na zapytaniu niż na typie danych (co może być bardziej sensowne):

  1. operatory kierunkowe (takie jak powyżej, poniżej, northOf, southOf)
  2. operatory topologiczne (takie jak dotyk, zawierają, równe, wewnątrz)
  3. operatory metryczne (takie jak odległość)
  4. Operatory boolowskie (takie jak suma, przecięcie)

Wprowadza także terminologię do obsługi funkcji 3D (korpus i powierzchnia), które nie są uwzględnione w DE-I9M.


Więc poza rozszerzonym wymiarowo modelem dziewięciu skrzyżowań możemy wyrażać pytania tylko w formularzach zapożyczonych z innych domen?
Matthew Snape

1
Zdefiniuj swoje pytanie w dowolnym języku specyficznym dla domeny GIS, ale w końcu urządzenie będzie wyszukiwać za pomocą jednej z powyższych metod (chociaż może mi brakować kilku).
geographika

7

1 - Istnieje kilka badań z tym oprogramowaniem: http://nlp.uned.es/MLQA06/papers/ferres.pdf
Mimo że jest ono bardziej związane z wyszukiwaniem w Internecie, może dostarczyć wskazówek, jak tłumaczyć język ludzki na język komputerowy.
Googling „GeoTALP-Q” zawiera także więcej artykułów na ten temat.

2- GeoDjango zapewnia API dla zapytań przestrzennych, jest to tłumaczenie z SQL na język obiektowy, który może przyspieszyć wiele żmudnej pracy, takiej jak pisanie funkcji PL / python dla złożonych zapytań przestrzennych. Jest to ograniczone przez używaną bazę danych .


To interesujące znalezisko. Ponieważ chcemy, aby ta strona była samodzielna i zawierała natychmiast przydatne odpowiedzi, najlepiej jest dołączyć takie odniesienie z własnym streszczeniem odpowiednich wniosków. Czy możesz to zrobić tutaj? Moje bardzo szybkie przejrzenie artykułu sugeruje, że może on bardziej koncentrować się na wydobywaniu atrybutów geograficznych z danych opartych na sieci, niż na przetwarzaniu zapytań dotyczących relacji
whuber

@whuber. Ok, dzięki za napiwek. Wezmę to pod uwagę przy przyszłych odpowiedziach.
Pablo

2
+1 Niefortunną rzeczą w SQL jest to, że tak wiele jego przestrzennie brzmiących słów zastrzeżonych ma niewiele lub nic wspólnego z przestrzenią: GDZIE, Z, W itp.
Kirk Kuykendall

@ Kirk Funny, nigdy o tym nie myślałem. Różnica między lokalizacją a przestrzenią wystarczy, aby przyprawić faceta o ból głowy. :)
Nathanus

@nathanus Tak, a nawet istnieje pojęcie leksykalnej odległości między dwoma soundexami, które mogą być użyte przez dbms do znalezienia najbliższej pasującej ulicy.
Kirk Kuykendall
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.