Modi per esprimere domande geografiche in forma leggibile da una macchina


22

Un concetto chiave di GIS è rispondere alle domande sui set di dati. Dal punto di vista di un database; SQL con estensioni spaziali è un modo per porre tali domande. In quali altri modi le domande possono essere espresse in un modulo basato su testo leggibile automaticamente? Quali sono i vantaggi di diversi approcci?


2
+1 Sarebbe interessato a sentire alternative agli operatori Clementini
Kirk Kuykendall,


@whuber, avrei dovuto essere più specifico. Sono interessato alle alternative agli operatori Clementini nelle query ArcGIS o alle query su database a cui ArcGIS può connettersi. Mentre a prima vista Clementini sembra sia umano che leggibile dalla macchina, come essere umano ho spesso difficoltà .
Kirk Kuykendall,

1
@Kirk OK, ma sembra che ArcGIS abbia delle difficoltà, non tu! :-) È interessante che Clemintini et al. Finiscano il loro documento originale con l'osservazione "Un altro punto nella nostra lista dei desideri è legato al test se il metodo basato sul calcolo è davvero adatto per gli utenti finali".
whuber

1
@Matthew Potresti essere un po 'più chiaro sulla portata delle "domande" a cui sei interessato? Ad esempio, sei principalmente interessato a domande a cui viene data risposta scoprendo ed elaborando le relazioni spaziali tra le caratteristiche (che presumibilmente avrebbero bisogno del potere di GIS per svolgere) o basterebbe solo cercare gli attributi statici delle singole entità o posizioni nominate ( quale non ha bisogno di elaborazione spaziale)?
whuber

Risposte:


7

Posso solo pensare a 3 tipi di query spaziali, ignorando qualsiasi attributo o query basate sull'hash.

  1. Query spaziali basate sulla geometria e utilizzate per trovare le relazioni tra le caratteristiche vettoriali. Le query spaziali SQL sono in realtà solo un algoritmo API di basso livello come Bentley-Ottmann , utilizzato in OpenLayer per verificare se due linee si intersecano.

    Come ha detto Kirk, i tipi di relazione tra le caratteristiche si sono standardizzati sul modello a nove intersezioni dimensionalmente esteso :

    • È uguale a
    • Disarticolare
    • interseca
    • Tocca (incontra)
    • croci
    • All'interno (dentro)
    • contiene
    • Le sovrapposizioni
    • Copertine
    • Coperto da

    Si può sostenere che le query spaziali basate sugli indici sono una forma semplificata di query geometriche. La maggior parte delle query di geometria utilizza un indice spaziale come query di primo passaggio per filtrare le funzionalità irrilevanti prima di confrontare le singole geometrie che richiedono più tempo. Questi sono anche implementati in database NoSQL come MongoDB .

  2. Query spaziali basate sulla teoria dei grafi . Questi tipi di query sono implementati in GIS tramite strumenti come Network Analyst , e di nuovo a basso livello sono gli algoritmi .
  3. Query spaziali basate su griglie raster e teoria degli insiemi (e teoria degli insiemi fuzzy ).

Esistono alcune implementazioni che combinano quanto sopra, come StarSpan che combina query raster e vettoriali, sebbene nasconda davvero una fase di preelaborazione.

Esistono numerose API che implementano questo tipo di query leggibili sia in macchina che in testo. C'è una buona discussione su diverse implementazioni e i loro problemi qui .


L'articolo Verso un linguaggio di query spaziale 3d suddivide gli operatori spaziali in 4 tipi, in base alla query anziché al tipo di dati (che forse ha più senso):

  1. operatori direzionali (come sopra, sotto, nord di nord, sud di sud)
  2. operatori topologici (come tocco, contenere, uguale, interno)
  3. operatori metrici (come la distanza)
  4. Operatori booleani (come unione, intersezione)

Porta anche la terminologia per gestire le funzionalità 3d (corpo e superficie), che non sono incluse in DE-I9M.


Quindi oltre il modello dimensionalmente esteso a nove intersezioni possiamo solo esprimere domande in forme prese in prestito da altri domini?
Matthew Snape,

1
Definisci la tua domanda in qualsiasi lingua specifica del dominio GIS che desideri, ma alla fine la macchina eseguirà una query utilizzando uno dei metodi di cui sopra (anche se potrei mancarne alcuni).
geographika,

7

1 - Ci sono alcuni studi con questo software: http://nlp.uned.es/MLQA06/papers/ferres.pdf
Nonostante sia più legato alle ricerche su Internet, potrebbe fornire alcune indicazioni su come tradurre il linguaggio umano in linguaggio informatico.
Google 'GeoTALP-Q' fornisce anche altri articoli sull'argomento.

2- GeoDjango fornisce un'API per le query spaziali, è una traduzione da SQL a un linguaggio orientato agli oggetti che può accelerare molte attività noiose come la scrittura di funzioni PL / python per query spaziali complesse. È limitato dal database che si utilizza.


Questa è una scoperta interessante. Poiché ci piace che questo sito sia indipendente e fornisca risposte immediatamente utili, è meglio accompagnare un riferimento come questo con il proprio riepilogo delle relative conclusioni. Potresti farlo qui? La mia rapida lettura del documento suggerisce che potrebbe concentrarsi maggiormente sull'estrazione di attributi geografici dai dati basati sul Web piuttosto che sull'elaborazione di query sulle relazioni
whuber

@whuber. Ok, grazie per il suggerimento. Lo terrò in considerazione per le risposte future.
Pablo,

2
+1 La cosa sfortunata di SQL è che molte delle sue parole riservate dal suono spaziale hanno poco o niente a che fare con lo spazio: DOVE, DA, IN ecc.
Kirk Kuykendall,

@Kirk Divertente, non ci avevo mai pensato, in quel modo. La differenza tra posizione e spazio è sufficiente per dare un mal di testa a un ragazzo. :)
Nathanus,

@nathanus Sì, e poi c'è anche la nozione di distanza lessicale tra due suoni sonori che può essere usata da un dbms per trovare la strada di corrispondenza più vicina .
Kirk Kuykendall,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.