Rabu, 26 September 2007

XML Dalam Sistem Informasi Geografi

Kita telah mengenal berbagai format proprietary dari aplikasi-aplikasi SIG yang berbeda-beda, baik dari segi vendor-nya maupun perbedaan versi dari tiap format. Lumrah saja, karena tiap vendor menginginkan format yang efisien dan sesuai dengan aplikasi yang mereka buat. Terdapat fungsi dan aplikasi untuk korvesi antar format, tapi tidak selalu memadai karena ada keunikan dari tiap format yang belum tentu dapat dikonversi ke format lain.

Hal ini juga menjadi hambatan untuk webmapping , karena setiap aplikasi akan memerlukan client environment yang berbeda-beda pula. Tidak semua orang bersedia menginstall software tersendiri (applet khusus, plug-ins tertentu dll) bagi tiap aplikasi webmap yang ingin mereka lihat.

Karena perbedaan format menghambat pemanfaatan data geografis secara lebih luas, diperlukan cara pertukaran data yang dapat dipahami secara global. Fungsi ini dapat dipenuhi oleh XML (eXtensible Markup Language).

eXtensible Markup Language

XML adalah bahasa markup yang menyediakan sintaks yang lentur (dapat dikembangkan sesuai kebutuhan) dan independen (tidak tergantung sistem platform). Jadi sesuai untuk sarana pertukaran data antar berbagai ragam sistem, baik lewat internet atau jalur lain [1].

Format ini merupakan rekomendasi dari World Wide Web Consortium. XML memungkinkan untuk memuat baik data koordinat, data penyerta dan instruksi yang menyatakan jenis perlakuan terhadap data tersebut. Perlakuan itu dapat berupa transformasi data ke bentuk lain ataupun untuk menyatakan bagaimana data ditampilkan.

Penggunaan XML memungkinkan penerapan internet SIG dalam bentuk yang lebih terbuka, murah dan beragam tapi tetap kompatibel. Hal tersebut dapat diwujudkan oleh beberapa subset/turunan dari XML, yaitu SVG, XSL dan GML. Dunia XML memang penuh dengan akronim tiga huruf yang kadang membingungkan, untuk itu masing-masing akan coba dipaparkan secara singkat.

Scalable Vector Graphics

Untuk keperluan SIG, tentunya diperlukan format untuk tampilan data spasial. Karena XML bersifat general, maka untuk keperluan grafis diperkenalkan suatu subset XML yaitu SVG (Scalable Vector Graphics), suatu standar terbuka untuk grafik 2D yang merupakan rekomendasi dari W3C [2].


Peta Geologi gabungan vektor dan raster[15]

Hasil pemilu dalam SVG.[16]

Penggunaan SVG dalam SIG telah memberikan dampak terutama terhadap aplikasi webmap. Contoh tampilan webmap interaktif yang menggunakan SVG sudah cukup banyak saat ini, seperti gambar di kiri.

SVG memungkinkan penggunaan vektor yang memberikan banyak keunggulan dibanding format raster yang selama ini kita kenal. SVG juga dilengkapi dengan SVG DOM (Document Object Model) untuk membuat peta yang interaktif. Terdapat juga spesifikasi untuk mobile devices (SVG tiny) [2] dan browser phones (pSVG) [8,9]. SVG juga dapat dikompresi sehingga menurunkan ukuran transfer secara signifikan.

Dengan kemampuan SVG untuk memuat data vektor, bitmap dan teks, orang akan menganggap hanya dengan SVG sudah cukup. Dan memang saat ini sudah banyak contoh webmap yang menggunakan SVG, baik untuk tampilan dan data penyertanya [7].

Walau demikian, ada beberapa hal yang tidak tercakup dalam spesifikasi SVG. Misalnya mengenai standar link feature terhadap data, sistem referensi spasial yang digunakan, feature buffer atau standar skema data spasial.
Memang sengaja tidak dicakup karena SVG adalah suatu format grafis umum yang tidak hanya digunakan untuk aplikasi SIG, sehingga pertukaran data secara terbuka akan rumit jika hanya mengandalkan SVG. Untuk itu diperlukan subset XML lain, yaitu GML.


Geographic Markup Language

GML adalah suatu subset XML untuk transformasi dan penyimpanan informasi geografis, baik data spatial ataupun non spatial dari suatu obyek geografis. GML adalah spesifikasi dari OpenGIS Consortium.

Komponen untuk layanan feature geografis[5]

GML menyediakan framework yang terbuka dan independen untuk mendefinisikan obyek dan skema dari suatu aplikasi SIG. Hal ini meningkatkan kemampuan untuk berbagi skema dan informasi geografis [5]. Format ini juga berperan penting dalam implementasi Web Feature Server (WFS).

WFS adalah suatu modul yang mengimplementasikan interface standar untuk operasi data spasial yang berada dalam suatu datastore [5]. Datastore tersebut dapat berupa general SQL database, flat XML file, spasial database, proprietary format dll, dan manipulasi terhadap datanya dapat dilakukan melalui Web. HTTP server adalah server yang dapat melayani HTTP request. Aplikasi klien adalah aplikasi yang berkomunikasi dengan web server menggunakan HTTP, misalnya suatu browser.

Standar yang interoperable mempermudah klien dalam menggunakan web sebagai sarana mengakses data geografis dan servis geografis lainnya. Tentu saja, GML hanya mengatur mengenai skema dan penulisan data spasial, sedangkan untuk menampilkannya dapat menggunakan SVG.

Extensible Stylesheet Language

XSL merupakan subset dari XML yang direkomendasikan W3C untuk mendefinisikan stylesheets [3]. Suatu dokumen XML dengan struktur tertentu dapat diproses oleh suatu XSL stylesheet menjadi bentuk lain yang diinginkan. Karena XSL adalah bahasa prosedural, XSL hanya berfungsi jika diterjemahkan menggunakan XSL Transformation (XSLT) [4].

XSL dipergunakan untuk mentransformasikan data (GML) menjadi tampilan grafis di klien (SVG). Hal ini dapat dilakukan dengan menggunakan prosesor untuk XSLT seperti Xalan atau Saxon. Di server hal ini dapat dilakukan secara otomatis untuk menghasilkan SVG. Sedangkan di sisi klien hal ini - paling tidak saat ini - masih harus dilakukan secara manual, karena browser belum memberikan keleluasaan untuk itu.

Cara lain untuk mengubah GML menjadi SVG, adalah dengan langsung mengakses Document Object Model, baik di server ataupun di klien. Di server, dapat dilakukan dengan menggunakan servlet, atau server scripts, atau aplikasi lain yang mampu mengakses DOM dari suatu dokumen XML. Di sisi klien, cara yang paling mudah adalah dengan menggunakan EcmaScript.

Peta dengan XML

Jika melihat format XML yang berupa tag-tag dalam bentuk teks, akan sulit membayangkan membuat aplikasi SIG berdasarkan XML. Tapi XML bukanlah bahasa pemrograman, melainkan data yang diproses oleh User Agent (aplikasi di server, browser dll) dengan instruksi tertentu.

Jika kita sudah memiliki data GML (baik berupa file yang dihasilkan suatu aplikasi atau stream dari web), data tersebut harus diolah lebih lanjut agar dapat ditampilkan. Dalam GML dimungkinkan untuk merujuk pada suatu skema data sehingga pemrosesan GML dilakukan berdasarkan skema tersebut.
GML kemudian dapat ditransformasikan menggunakan XSL-XSLT, yang dapat dilakukan baik di server (misalnya Cocoon) atau secara lokal (misalnya menggunakan Saxon, atau parsing menggunakan clientside script). Di masa datang diharapkan XSL dapat dilaksanakan langsung di browser.

Setelah melalui proses transformasi, file GML akan menjadi SVG yang dapat dilihat menggunakan browser. (contoh file GML, XSL dan SVG dapat dilihat di bagian akhir). Saat ini, SVG di browser masih memerlukan plug-ins, karena SVG masih merupakan format yang baru, sehingga membutuhkan waktu bagi pembuat browser untuk mengadopsi-nya. Kecuali anda menggunakan browser khusus SVG seperti Amaya atau Batik.

Proses tersebut, mulai dari data, proses dan output semuanya berupa dokumen XML. Hal lainnya adalah proses ini dapat dilakukan menggunakan software-software opensource.

Sekilas muncul pertanyaan, mengapa tidak langsung menghasilkan SVG dari database atau aplikasi lainnya? Mengapa harus melalui GML?[18] Ilustrasi berikut mengenai Web Feature Server mungkin dapat membantu.

Konsep penggunaan XML dan pertukaran data

Penggunaan format XML (dalam hal ini GML) sangat penting karena berfungsi sebagai jembatan, terutama untuk penerapan Web Feature Server[14].


Dari binary ke teks

Sampai di sini mungkin masih ada yang mengganjal. Bagaimana mengubah data-data SIG yang sudah ada dan umumnya dalam bentuk binary ke XML? Hal ini masih harus dilakukan karena saat ini data-data SIG umumnya adalah dalam format proprietary (shapefile/dbf, mif/mid dll) yang berupa binary.

Beberapa cara yang dilakukan antara lain :

  • Dapat menggunakan bahasa pemrograman/script yang terdapat pada aplikasi SIG untuk mengambil data-data dan menghasilkan format XML (misalnya avenue pada ArcView 3.x, VB pada ArcGIS, atau mapBasic pada MapIfo).
  • Memasukkan data SIG dalam database, dan membuat file XML baik dengan fungsi yang ada pada database atau dengan bantuan aplikasi lain (PHP, perl, JSP, XSQL, XSL dll) [10].
  • Jika tidak memiliki software SIG, dapat membuat sendiri program yang membaca format binary, kemudian dieksport ke XML atau database. Ada juga aplikasi opensource maupun komersial yang dapat melakukan hal ini untuk beberapa format binary SIG [13].
  • Menggunakan aplikasi yang berjalan di server untuk membaca format binary dan langsung di-stream melalui web dalam bentuk GML.

Di masa datang hal ini akan lebih mudah, karena vendor applikasi SIG akan mengadopsi format XML atau turunannya baik untuk proses import atau export. Selain itu perkembangan teknologi GPS memungkinkan untuk langsung memproses data koordinat [11].

XML bukan hanya sekedar suatu format data, dan memang tidak didesain sebagai format penyimpanan semata. Data-data aplikasi SIG besar kemungkinan akan tetap menggunakan format proprietary, karena masing-masing vendor aplikasi SIG mempunyai pertimbangannya masing-masing (efisiensi, investasi yang ditanam dalam format tsb, proteksi dll). XML lebih berguna sebagai sarana pertukaran baik offline atau online.

Untuk database, perlu dipertimbangkan bahwa data XML bersifat hirarkis, sedangkan database relational. Selain itu database saat ini sudah ada yang memiliki kemampuan spasial. Jadi penyimpanan di database akan lebih memadai, dan struktur database-nya terserah kepada masing-masing pihak. Hasil query dapat disusun dan dikirim kepada klien dalam format XML tertentu yang sesuai [10].

Keuntungan penggunaan XML dalam SIG

Dengan segala kerepotan ini, keuntungan apa yang dapat diambil? Banyak sekali.

  • Format yang berupa standar terbuka.
  • Peta berbasiskan vektor dengan kualitas grafis yang baik.
  • Fasilitas DOM untuk modifikasi dokumen dan interaksi dengan pengguna.
  • Lebih hemat bandwith.
  • Extensible dengan berbagai teknologi di server (servlets, JSP, ASP, PHP, Pearl dll).
  • Konfigurasi sistem klien yang generik dan fleksibel.
  • Penerapan konsep pemisahan isi dari style, berarti memudahkan manajemen data.
  • Implementasi SIG yang tidak memerlukan biaya besar, lebih terjangkau oleh semua pihak.
  • Klien yang berdasarkan pada interface standar memungkinkan koneksi ke berbagai server, database, web service dll.
  • Memungkinkan adanya desentralisasi data geografis dengan pendekatan bottom up [6].
  • Data yang terdistribusi di berbagai tempat dapat diekstrak kemudian diintegrasikan secara mudah, selama tetap menggunakan format pertukaran standar.
  • Membuka peluang bagi terciptanya Sistem Informasi Kolaboratif [12].
  • Integrasi dengan non-GIS software, karena XML merambah ke semua bidang. Basis pengguna SIG bertambah luas.
  • Interaksi SIG dengan bidang lain secara lebih luas, dan penggunaan SIG untuk bidang yang selama ini belum terjamah SIG.

Beberapa keuntungan diatas memang dapat tercapai jika penggunaan XML telah diadopsi secara luas, yang diyakini hanya masalah waktu saja.

Hambatan

- Penggunaan XML belum mencapai tahap massal.
- SVG masih belum disupport secara native di beberapa browser, jadi saat ini masih memerlukan plugins.
Hal diatas memang wajar terjadi karena ada rentang waktu yang diperlukan dalam setiap pengadopsian teknologi baru.
- Masalah HAKI, tidak semua data disediakan untuk publik.
- Masalah organisasi dari institusi/badan/perusahaan untuk berkolaborasi bersama-sama.
- Kesenjangan teknologi informasi yang kita alami di Indonesia (istilah gagahnya adalah digital divide), baik di tingkat bawah, menengah dan atas.

Penutup

Seperti juga pada bidang lain, XML akan membawa SIG kepada penerapan standar terbuka yang memudahkan akses dan pertukaran data geografis. Hal ini memungkinkan terciptanya kerjasama yang lebih terintegrasi antara pihak-pihak yang langsung terkait dengan SIG, juga dengan pihak lain yang selama ini belum memanfaatkan dan dimanfaatkan untuk SIG.
Sisi lain adalah penerapan yang mudah dan murah akan bermanfaat terutama bagi yang memiliki sumberdaya terbatas. Bertambahnya pengguna SIG akan mendorong pengembangan SIG dari bawah, dengan partisipasi aktif masyarakat dalam melakukan self-survey SIG[17].

Tidak ada komentar: