Cara mengungkapkan pertanyaan geografis dalam bentuk yang dapat dibaca mesin

22

Konsep inti SIG adalah menjawab pertanyaan tentang dataset. Dari sudut pandang basis data; SQL dengan ekstensi spasial adalah cara mengajukan pertanyaan seperti itu. Apa cara lain yang bisa diajukan pertanyaan dalam bentuk berbasis teks yang dapat dibaca mesin? Apa manfaat dari pendekatan yang berbeda?

Matthew Snape
sumber
2
+1 Akan tertarik mendengar alternatif untuk Operator Clementini
Kirk Kuykendall
@whuber, aku seharusnya lebih spesifik. Saya tertarik pada alternatif untuk operator Clementini di kueri ArcGIS, atau kueri terhadap basis data yang dapat terhubung ArcGIS. Sementara pada pandangan pertama, Clementini tampak seperti manusia dan dapat dibaca mesin, sebagai manusia saya sering mengalami kesulitan .
Kirk Kuykendall
1
@Kirk OK, tetapi sepertinya ArcGIS mengalami kesulitan, bukan Anda! :-) Sangat menarik bahwa Clemintini dkk mengakhiri makalah asli mereka dengan komentar "Poin lain dalam daftar keinginan kami terkait dengan pengujian apakah metode berbasis kalkulus benar-benar cocok untuk pengguna akhir."
Whuber
1
@ Matthew Bisakah Anda sedikit lebih jelas tentang ruang lingkup "pertanyaan" di mana Anda tertarik? Misalnya, apakah Anda terutama tertarik pada pertanyaan yang dijawab dengan menemukan dan memproses hubungan spasial di antara fitur-fitur (yang mungkin membutuhkan kekuatan GIS untuk melaksanakan) atau apakah cukup hanya untuk mencari atribut statis dari entitas atau lokasi bernama individu ( yang tidak memerlukan pemrosesan spasial)?
Whuber

Jawaban:

7

Saya hanya bisa memikirkan 3 jenis kueri spasial, mengabaikan atribut atau hash based queries.

  1. Kueri spasial berdasarkan geometri, dan digunakan untuk menemukan hubungan antara fitur vektor. Query spasial SQL sebenarnya hanyalah alogoritma level rendah API seperti Bentley-Ottmann - digunakan di OpenLayers untuk memeriksa apakah dua garis berpotongan.

    Sebagaimana Kirk menyebutkan jenis-jenis hubungan antara fitur-fitur telah distandarisasi pada model sembilan-persimpangan yang diperluas secara dimensi :

    • Sama dengan
    • Menguraikan
    • Persimpangan
    • Sentuhan (bertemu)
    • Persilangan
    • Dalam (dalam)
    • Mengandung
    • Tumpang tindih
    • Meliputi
    • Tertutup oleh

    Dapat diperdebatkan bahwa kueri spasial berdasarkan indeks adalah bentuk kueri geometri yang disederhanakan. Sebagian besar kueri geometri menggunakan indeks spasial sebagai kueri lulus pertama untuk menyaring fitur yang tidak relevan sebelum membandingkan masing-masing geometri yang lebih memakan waktu. Ini juga diimplementasikan dalam database NoSQL seperti MongoDB .

  2. Kueri spasial berdasarkan teori grafik . Jenis-jenis kueri ini diimplementasikan dalam GIS melalui alat-alat seperti Network Analyst , dan sekali lagi pada level rendah adalah algoritma .
  3. Kueri spasial berdasarkan grid raster dan teori himpunan (dan teori himpunan fuzzy ).

Ada beberapa implementasi yang menggabungkan hal di atas, seperti StarSpan yang menggabungkan permintaan raster dan vektor - meskipun itu benar-benar menyembunyikan langkah preprocessing.

Ada banyak API yang mengimplementasikan jenis kueri ini yang dapat dibaca oleh mesin dan teks. Ada diskusi yang bagus tentang berbagai implementasi dan masalah mereka di sini .


Makalah Menuju Spatial Query Language 3d memecah operator spasial menjadi 4 jenis, berdasarkan kueri dan bukan tipe data (yang mungkin lebih masuk akal):

  1. operator directional (seperti di atas, di bawah, northOf, southOf)
  2. operator topologi (seperti sentuhan, isi, sama, di dalam)
  3. operator metrik (seperti jarak)
  4. Operator Boolean (seperti serikat pekerja, persimpangan)

Itu juga membawa terminologi untuk berurusan dengan fitur 3d (tubuh dan permukaan), yang tidak termasuk dalam DE-I9M.

geografi
sumber
Jadi di luar model persimpangan sembilan yang diperluas secara dimensi, kita hanya bisa mengungkapkan pertanyaan dalam bentuk yang dipinjam dari domain lain?
Matthew Snape
1
Tetapkan pertanyaan Anda dalam bahasa spesifik domain GIS apa pun yang Anda inginkan, tetapi pada akhirnya mesin akan meminta menggunakan salah satu metode di atas (walaupun saya mungkin akan kehilangan beberapa).
geografis
7

1 - Ada beberapa studi dengan perangkat lunak ini: http://nlp.uned.es/MLQA06/papers/ferres.pdf
Meskipun lebih terkait dengan pencarian internet, ini dapat memberikan beberapa panduan tentang bagaimana menerjemahkan bahasa manusia ke bahasa komputer.
Googling 'GeoTALP-Q' juga menyediakan lebih banyak artikel tentang masalah ini.

2- GeoDjango menyediakan API untuk kueri spasial, ini merupakan terjemahan dari SQL ke bahasa Berorientasi Objek yang dapat mempercepat banyak pekerjaan yang membosankan seperti menulis fungsi PL / python untuk kueri spasial yang kompleks. Ini dibatasi oleh database yang Anda gunakan.

Pablo
sumber
Itu penemuan yang menarik. Karena kami menyukai situs ini untuk berdiri sendiri dan memberikan jawaban yang berguna segera, yang terbaik adalah menemani referensi seperti ini dengan ringkasan Anda sendiri dari kesimpulan yang relevan. Bisakah Anda melakukan ini di sini? Pembacaan saya yang sangat cepat dari makalah ini menunjukkan bahwa ia mungkin lebih berfokus pada penggalian atribut geografis dari data berbasis web daripada pada pemrosesan pertanyaan tentang hubungan
whuber
@whuber. Ok, terima kasih atas tipnya. Saya akan memperhitungkannya untuk jawaban di masa mendatang.
Pablo
2
+1 Hal yang disayangkan tentang SQL adalah bahwa begitu banyak dari kata-kata yang diperuntukkan untuk tata ruang tidak ada hubungannya dengan ruang: DI MANA, DARI, DALAM, dll.
Kirk Kuykendall
@Kirk Lucu, saya tidak pernah memikirkannya, seperti itu. Perbedaan antara lokasi dan ruang cukup untuk membuat pria sakit kepala. :)
Nathanus
@nathanus Ya, dan kemudian bahkan ada gagasan jarak leksikal antara dua soundex yang dapat digunakan oleh dbms untuk menemukan jalan terdekat yang cocok.
Kirk Kuykendall