Maneiras de expressar perguntas geográficas em formato legível por máquina

22

Um conceito central do GIS é responder a perguntas sobre conjuntos de dados. Do ponto de vista de um banco de dados; SQL com extensões espaciais é uma maneira de fazer essas perguntas. De que outras maneiras as perguntas podem ser expressas em um formulário baseado em texto legível por máquina? Quais são os benefícios de diferentes abordagens?

Matthew Snape
fonte
2
+1 estaria interessado em ouvir alternativas para Operadores Clementini
Kirk Kuykendall
@ Whuber, eu deveria ter sido mais específico. Estou interessado em alternativas aos operadores Clementini nas consultas do ArcGIS ou nos bancos de dados aos quais o ArcGIS pode se conectar. Embora à primeira vista, Clementini pareça humano e legível por máquina, como humano muitas vezes tenho dificuldade .
Kirk Kuykendall
1
@ Kirk OK, mas parece que o ArcGIS está tendo dificuldades, não você! :-) É interessante que Clemintini et al terminem seu trabalho original com a observação "Outro ponto da nossa lista de desejos está relacionado ao teste se o método baseado em cálculo é realmente adequado para os usuários finais".
whuber
1
@ Matthew Você poderia ser um pouco mais claro sobre o escopo das "perguntas" em que está interessado? Por exemplo, você está interessado principalmente em perguntas respondidas pela descoberta e processamento de relações espaciais entre recursos (que presumivelmente precisariam do poder do GIS para executar) ou bastaria apenas procurar atributos estáticos de entidades ou locais nomeados individuais ( que não precisam de processamento espacial)?
whuber

Respostas:

7

Só consigo pensar em três tipos de consulta espacial, ignorando qualquer atributo ou consulta baseada em hash.

  1. Consultas espaciais baseadas na geometria e são usadas para encontrar os relacionamentos entre os recursos do vetor. As consultas espaciais do SQL são realmente apenas um alogoritmo de baixo nível da API, como o Bentley-Ottmann - usado no OpenLayers para verificar se duas linhas se cruzam.

    Como Kirk mencionou, os tipos de relacionamento entre os recursos padronizaram o modelo de nove interseções estendido dimensionalmente :

    • É igual a
    • Disjuntar
    • Cruza
    • Toques (atende)
    • Cruzes
    • Dentro (dentro)
    • Contém
    • Sobreposições
    • Capas
    • Coberto por

    Pode-se argumentar que as consultas espaciais baseadas em índices são uma forma simplificada de consultas de geometria. A maioria das consultas de geometria usa um índice espacial como uma consulta de primeira passagem para filtrar recursos irrelevantes antes de comparar geometrias individuais, que consomem mais tempo. Eles também são implementados em bancos de dados NoSQL , como o MongoDB .

  2. Consultas espaciais baseadas na teoria de grafos . Esses tipos de consulta são implementados no GIS por meio de ferramentas como o Network Analyst , e novamente em um nível baixo são algoritmos .
  3. Consultas espaciais baseadas em grades raster e teoria dos conjuntos (e teoria dos conjuntos difusos ).

Existem algumas implementações que combinam as opções acima, como o StarSpan, que combina consultas de varredura e vetor - embora oculte realmente uma etapa de pré-processamento.

Existem inúmeras APIs que implementam esses tipos de consultas legíveis por máquina e texto. Há uma boa discussão sobre diferentes implementações e seus problemas aqui .


O artigo Towards a 3d Spatial Query Language divide os operadores espaciais em 4 tipos, com base na consulta e não no tipo de dados (o que talvez faça mais sentido):

  1. operadores direcionais (como acima, abaixo, northOf, southOf)
  2. operadores topológicos (como toque, contém, igual, interior)
  3. operadores métricos (como distância)
  4. Operadores booleanos (como união, interseção)

Ele também traz terminologia para lidar com os recursos 3D (corpo e superfície), que não estão incluídos no DE-I9M.

geographika
fonte
Portanto, além do modelo de nove interseções estendido dimensionalmente, só podemos expressar perguntas em formulários emprestados de outros domínios?
Matthew Snape
1
Defina sua pergunta em qualquer idioma específico do domínio GIS que você desejar, mas no final a máquina consultará usando um dos métodos acima (embora eu possa estar faltando alguns).
geographika
7

1 - Existem alguns estudos com este software: http://nlp.uned.es/MLQA06/papers/ferres.pdf
Apesar de mais relacionado a pesquisas na Internet, ele pode fornecer algumas orientações sobre como traduzir a linguagem humana para a linguagem de computador.
Googling 'GeoTALP-Q' também fornece mais artigos sobre o assunto.

2- O GeoDjango fornece uma API para consultas espaciais, é uma tradução do SQL para uma linguagem orientada a objetos que pode acelerar muito trabalho tedioso, como escrever funções PL / python para consultas espaciais complexas. É limitado pelo banco de dados que você usa.

Pablo
fonte
Essa é uma descoberta interessante. Como gostamos deste site de forma independente e fornecer respostas imediatamente úteis, é melhor acompanhar uma referência como essa com seu próprio resumo de suas conclusões relevantes. Você poderia fazer isso aqui? Minha rápida leitura do artigo sugere que ele pode se concentrar mais na extração de atributos geográficos de dados baseados na Web, em vez de processar consultas sobre relacionamentos
whuber
@whuber. Ok, obrigado pela dica. Vou levar isso em conta para respostas futuras.
23411 Pablo
2
+1 A coisa infeliz sobre SQL é que tantas de suas palavras reservadas sonoridade espaciais têm pouco ou nada a ver com o espaço: onde, a partir, IN etc.
Kirk Kuykendall
@ Kirk Funny, nunca pensei nisso dessa maneira. A diferença entre localização e espaço é suficiente para causar dor de cabeça a um homem. :)
Nathanus
@nathanus Sim, e ainda existe a noção de distância lexical entre dois soundexes que podem ser usados ​​por um dbms para encontrar a rua mais próxima .
Kirk Kuykendall