Jumat, 30 Januari 2015

Penyimpan Kecerdasan Lumen, Part-3

Pemanfaatan Database


Sistem Database Lumen bisa dimanfaatkan untuk beberapa kebutuhan, antara lain:

  1. Journal and Emailed Facts, yaitu membuat jurnal bulanan dan mingguan dari kegiatan Robot Lumen sesuai kebutuhan pengguna dan administrator yang bisa diemail kepada list yang ditentukan oleh Administrator. Jurnal ini mencakup:
    1.  Sejumlah data yang tertangkap dari kamera, microphone, berbagai sensor sentuhan, sonar, dll. Data yang tertangkap ini disimpan dan dilaporkan dalam bentuk teks.
    2. Rekaman gambar dan suara orang-orang, serta gambar obyek-obyek, baik yang sudah dikenali atau baru ditemui. Rekaman gambar dan suara disimpan dalam format yang sudah terkompresi
    3. Tugas-tugas yang dikerjakan berdasarkan perintah administrator dan permintaan para pengguna. rekaman tugas ini disimpan dalam bentuk teks
    4. Rekaman respon audio dari Robot terhadap pertanyaan dan permintaan para pengguna. Rekaman tanya jawab dan diskusi ini disimpan dalam bentuk teks
    5. Juga termasuk rekaman berbagai postur tubuh dan kondisi aktuator penggerak badan Robot. Rekaman postur dan kondisi aktuator disimpan dalam bentuk teks.
  2. Persistence Query and Facts, yaitu menampilkan jawaban berdasar fakta dari berbagai pertanyaan administrator atau pengguna. Fakta yang disajikan adalah fakta yang sudah terverifikasi oleh administrator maupun komunitas Wikipedia. Fakta ini bisa disajikan lewat aplikasi yang berjalan di handphone dan web browser, seperti yang terlihat pada bagian akhir dari artikel part-2. Adapun mekanismenya adalah sebagai berikut:
    1. Pengguna bisa memilih dari beberapa alternatif query yang tersedia. Dan dalam hitungan mili-detik, jawaban akan tersedia.
    2. Pengguna juga bisa mengajukan pertanyaan berdasarkan kombinasi beberapa kata kunci yang tersedia. Dan dalam hitungan mili-detik, jawaban akan tersedia.
    3. Alternatif lainnya, pengguna bisa juga menggunakan pertanyaan dalam bahasa natural, Bila tidak ada fakta yang bisa disajikan, maka aplikasi database bisa menanyakan alternatif pertanyaan, atau minta pertanyaan  lain yang bisa terjawab. 
  3. Lumen Social Expression, yaitu informasi terkini berbentuk ekspresi sosial yang diposting secara rutin di beberapa media sosial yang dimiliki Robot Lumen, seperti Twitter dan Facebook. Aplikasi yang mendukung fungsi ini akan segera dikembangkan dan bukan menjadi tugas utama saya. Informasi ini diharapkan akan membentuk persepsi sosial terhadap Robot Lumen. Komunikasi lewat media sosial ini direncanakan akan menjadi komunikasi dua arah, yang bisa berfungsi untuk menanyakan fakta yang tersimpan di dalam database.
  4. Natural Language Expression, yaitu ekspresi tanya jawab dalam bahasa natural seperti hanya percakapan antar manusia normal, sehingga Robot Lumen bisa berbicara kepada pengguna dan manusia lainnya sebagai teman yang cerdas dan baik hati. Aplikasi yang mendukung fungsi ini akan dikembangkan dalam waktu dekat dan bukan menjadi tanggungjawab saya. Aplikasi ini menjadi wajib bila Lumen akan diturunkan sebagai pemandu pameran yang bisa bicara interaktif dan bisa ditanya apa saja terkait pameran maupun beberapa hal umum lainnya.

Sumber Data

Seperti hanya seorang manusia yang belajar dari interaksi dengan lingkungan dan kegiatan yang dialaminya, Robot Lumen pun harus bisa melakukan hal yang sama. Sebagai penyimpan kecerdasan Robot Lumen, sistem database ini harus adaptif terhadap kegiatan dan lingkungan sekitar, ini adalah sumber data utama. Untuk itu Robot Lumen dilengkapi dengan sebuah Streaming Server.


Streaming server ini akan menyalurkan semua data yang ditangkap oleh semua sensor yang ada pada Robot Lumen yang tergambar dalam skematik berikut:


Terhitung ada 2 kamera, 2 microphone, 5 sensor tekanan, 2 sensor sonar, ditambah sensor-sensor gerakan pada setiap motor aktuator dan persendian yang mengendalikan 25 derajat kebebasan Robot Lumen ini, sebagaimana bisa dilihat pada gambar berikut

 

Namun belajar hanya mengandalkan pada pengalaman pribadi Robot Lumen akan memakan waktu terlalu lama, sehingga saya akan menambahkan sejumlah data yang saya entri sendiri, dan juga mengimpor data tambahan berkelas dunia yang sudah diverifikasi oleh Wikipedia lewat format database Yago 2, sehingga Robot Lumen bisa menjawab berbagai pertanyaan yang datanya sudah tersedia di Wikipedia.

Standar Database Lumen

Database Lumen ini dibuat dengan menggunakan skema database khas Lumen, namun juga dengan mengadaptasi berbagai standar database berkelas dunia sehingga tidak harus menemukan hal yang sudah ditemukan orang lain, dan bisa menghemat waktu pengembangan. Adapun skema ontologi yang kita adopsi adalah sebagai berikut


Terhitung ada 144 property untuk database khas Lumen, dimana 9 adalah properti database dasar, 7 properti database spesifik Lumen, 6 properti database spesifik vCard, dan selebihnya adalah database spesifik Wiki/Yago.

Sebagian dari skema database Lumen bisa dilihat pada gambar berikut


Saat ini total ukuran dari database untuk Penyimpan kecerdasan Lumen sudah sekitar 13GB. Detail dari database dan skema database Lumen ini bisa dibagi untuk kepentingan riset atas seijin grup LSKK Prodi Teknik Elektro ITB. Bila anda berminat untuk bekerjasama, silahkan hubungi penulis untuk alamat dropbox share.




Minggu, 25 Januari 2015

Penyimpan Kecerdasan Lumen, Part-2

Skematik Umum


Skematik diagram blok IO Robot Lumen, termasuk di dalamnya jaringan internet, 6 jenis sensor dan aktuator gerakan/suara yang ada pada sebuah Robot Lumen bisa dilihat pada gambar di atas.

Seperti yang telah umum diketahui, kegiatan dari Robot Lumen secara default akan dilaksanakan sebagaimana diperintahkan atau diprogramkan, dan secara default tidak ada proses direkam atau disimpan dalam database, sehingga tidak ada proses pembelajaran dari kegiatannya.

Apa yang tertangkap sensor kamera, apa yang masuk sensor microphone, apa yang tertangkap sensor sonar dan sensor sentuhan, semuanya lewat dan berlangsung begitu saja. Begitu juga penggunaan postur tubuh dan tingkat kekakuan persendian dalam gerakan, serta suara yang keluar dari speaker semuanya lewat dan berlangsung begitu saja.


Maka untuk membuat Robot Lumen bisa mengenali dan belajar dari lingkungan serta aktivitasnya, kita perlu bantuan streaming server, dimana diakusisi 3 jenis data streaming, yaitu:
  1. Camera stream, yaitu mengambil data visual berupa wajah dan obyek yang ditemuinya. Selanjutnya pada gambar wajah dan obyek tersebut akan dilakukan proses pengenalan melalui pembandingan dengan gambar wajah dan obyek yang sudah ada dalam database, untuk selanjutnya diidentifikasi apakah dikenali atau gambar wajah dan obyek baru. Bila gambar wajah dan obyek itu baru ditemui dan belum dikenali, maka Robot Lumen akan menanyakan identitas gambar wajah dan obyek tersebut.
  2. Audio stream, yaitu mengambil data suara pembicara dan isi pembicaraan. Suara pembicara selanjutnya akan dibandingkan dengan data suara pembicara yang sudah ada di dalam server database untuk proses identifikasi pembicara, bila suara pembicara baru, maka akan ditanyakan identitas pemilik suara itu untuk identifikasi. Sedangkan isi pembicaraan akan diproses dalam aplikasi pengenalan pembicaraan dan dikonversi menjadi teks untuk selanjutnya diproses dalam aplikasi NLP (pemrosesan bahasa natural) untuk direspon isi pembicaraannya sesuai maksud pembicara.
  3. Motion stream, yaitu mengambil data gerakan berupa jalan yang dilalui dan postur tubuh yang diperlukan dalam melaksanakan jalan tersebut. Jalan yang dilalui bisa karena melaksanakan program yang telah ditentukan atau mengikuti jalan seseorang pengunjung pameran sambil melakukan suatu tindakan seperti memberi petunjuk lokasi pameran.
Ketiga data streaming itu diolah dengan aplikasi yang sesuai, dan disalurkan melalui kanal data yang sesuai agar bisa disimpan dalam database, untuk menjadi bahan laporan kegiatan, dan juga sebagai bentuk pembelajaran dari kejadian yang ada di lingkungan Robot Lumen ini.

Tentang Database Lumen


Data yang didapatkan dari streaming kamera, streaming audio, dan streaming gerakan tersebut akan memperkaya data yang sudah ada di dalam database secara real-time. Di samping data streaming dari aktivitas Robot Lumen, data lain yang saat ini dimiliki Lumen Database Server adalah data ilmu pengetahuan baku dari Yago/Wikipedia, dan data pribadi para periset Lumen sebagai pembanding baku untuk identitas, wajah dan suara.

Untuk pengembangannya, direncanakan data dari berbagai sumber di internet seperti YouTube dan sumber lainnya akan tersedia secara bertahap sesuai kebutuhan, sebagaimana tercantum dalam bagian satu dari rangkaian dokumen ini, silahkan klik disini untuk lebih detilnya.

Secara garis besar ada 2 komponen dari Lumen Database Server, yaitu Lumen Persistence Application, dan Knowledge Repository Database, yang keduanya akan bekerjasama untuk mendukung fungsi server database Lumen.

Lumen Persistence Application



Lumen Persistence Application adalah serangkaian program yang digunakan untuk mengelola data yang masuk dan yang keluar. Adapun rangkaian program persistence disusun dengan bahasa Groovy yang menggunakan syntax Java dan Java Script. Sejauh ini aplikasi pada folder lumen/pesistence yang sudah dibuat dan sudah berjalan untuk hal yang sederhana bisa dilihat pada gambar di atas.

Ada pula list program lainnya di folder lumen-sdk sebagai berikut:



Setelah program dijalankan, maka output sementara adalah sebagai berikut


bisa dilihat pada baris ke-4 dari bawah, bahwa ada satu route yang telah aktif dalam server, dan pada baris terbawah sudah disampaikan adanya 1 data yang sudah tersedia dan siap diserahkan kepada browser yang melakukan query. Hasilnya adalah sebagai berikut:


Ini adalah hasil tahap pertama dari server database Lumen, yang sementara hanya berisi 1 data dengan hanya satu jenis query. Tahapan berikutnya adalah memperbanyak pilihan query dan menambah data dari input manual maupun data akuisisi dari Yago/Wikipedia, yang direncanakan akan siap semua pada tanggal 6 Februari 2015




Jumat, 23 Januari 2015

Penyimpanan Kecerdasan Lumen, Part-1

Skematik umum


Sistem yang akan saya kembangkan untuk Robot Lumen adalah server penyimpan kecerdasan atau dalam bahasa Inggris disebut knowledge repository server. Server ini akan menyimpan data teks untuk kecerdasan bahasa, data visual untuk pengenalan pengguna, data suara untuk pengenalan pengguna, dan data gerakan Robot untuk merespon permintaan dan perintah pengguna


Informasi Umum



Sebuah repositori pengetahuan adalah sistem komputerisasi yang secara sistematis menangkap, mengatur dan mengkategorikan pengetahuan dalam sebuah organisasi. Repositori dapat ditanya dan data dapat dengan cepat diambil.
Repositori pengetahuan yang efektif meliputi faktual, konseptual, prosedural dan teknik meta-kognitif. Fitur utama dari repositori pengetahuan tergambar dalam forum-forum komunikasi pakar. Sebuah repositori pengetahuan dapat mengambil banyak bentuk untuk "menyimpan" pengetahuan yang dimilikinya.

Beberapa bentuk repository pengetahuan:

  1. Sebuah server penyimpan kecerdasan sebagai gudang pengetahuan yang bersifat dinamis untuk informasi para pengguna dan wawasan para pengembang database. Database ini bisa juga disebut pengetahuan eksplisit elektronik. 
  2. Bentuk lain dari database adalah perpustakaan, yaitu sebuah repositori pengetahuan dalam bentuk buku . Ini bisa juga disebut database pengetahuan eksplisit fisik, 
  3. Dan komunitas pakar, yaitu gudang pengetahuan sebagai kombinasi dari pengetahuan baku (explicit knowledge) dan pengalaman (tacit knowledge) para pakar tersebut.

Sifat repositori adalah menyimpan dan mengelola berbagai pengetahuan yang dimilikinya. Sebuah repositori (sebagai lawan arsip) dirancang untuk mendapatkan pengetahuan keluar dan masuk. Oleh karena itu akan memiliki beberapa aturan struktur, klasifikasi, taksonomi, manajemen catatan, dll, untuk memfasilitasi keterlibatan pengguna.


Pengantar Sistem Penyimpan Kecerdasan



Sistem penyimpan kecerdasan telah berkembang dari arsip dokumen statis yang diterbitkan seperti buku dan jurnal, menjadi komunitas online yang dinamis yang memfasilitasi pencarian dan navigasi informasi yang relevan dalam platform pembelajaran ringkas dan cepat. Sistem ini bisa menjadi fasilitas untuk belajar cepat, repositori pengetahuan juga memungkinkan dukungan untuk pengujian dan penilaian karyawan.

Fitur Kunci


Ada beberapa fitur kunci dari sistem repositori pengetahuan digital yang efektif, yaitu:

  1. Sentralisasi. Berbagai macam materi kursus digital, dan konten yang dikumpulkan dari berbagai sumber, dapat ditempatkan di sebuah lokasi terpusat di mana ia dapat ditandai, dibagi dan dikomentari secara global dalam satu antar-muka yang konsisten.
  2. Manajemen konten. Luasnya konten pembelajaran dapat mencakup file audio visual, simulasi, data, modul pembelajaran, artikel, blog, video YouTube, praktik terbaik bimbingan, kemampuan pemantauan dan informasi kontak. Konten dicari dengan kata kunci, hasil belajar, dan fasilitas lainnya.
  3. Penghematan biaya. Repositori pengetahuan berpotensi dapat mengurangi biaya pelatihan dan pendidikan dengan membuat materi kursus murah, mengurangi kebutuhan untuk pelatihan kelas dan merangsang pembelajaran informal yang produktif.
  4. Kontrol akses. Dengan membatasi potongan konten individu melalui otentikasi password dan fungsi keamanan lainnya, administrator server repositori pengetahuan dapat menyelesaikan berbagai tujuan. Kontrol akses termasuk menjaga  hak milik informasi dan melindungi kekayaan intelektual. Beberapa repositori menggunakan manajemen hak digital (DRM) untuk melindungi dan menguangkan kekayaan intelektual organisasi di pasar.
  5. Manajemen Rekam. Repositori pengetahuan dapat diintegrasikan dengan sistem manajemen pembelajaran untuk berbaur mulus ke dalam program pembelajaran dan manajemen orang-orang berbakat dalam organisasi.

Praktek Terbaik

Berbagai praktek sistem repositori pengetahuan terbaik dimanfaatkan melalui organisasi pelatihan untuk memfasilitasi pembelajaran sekaligus melindungi informasi hak milik dan kekayaan intelektual.
  1. Memastikan kualitas daripada kuantitas. Untuk melindungi dan menjaga integritas informasi yang terkandung dalam repositori, organisasi sering membuat sistem "pelayan" ahli yang bertanggung jawab atas kawasan atau komunitas tertentu. "Pelayan" harus bisa menjadi moderator posting, menanggapi pertanyaan dan, bila memungkinkan melatih peserta didik, serta menyelenggarakan webinar.
  2. Memberikan pengawasan dan kontrol. Untuk memastikan bahwa tujuan berbagi pengetahuan ditetapkan dan dilaksanakan, organisasi dapat membuat sebuah komite lintas fungsional untuk mengatur penghargaan karyawan dan pelatihan profesional. Panel bertugas untuk memastikan bahwa repositori menjadi aspek berharga dari pengalaman belajar holistik untuk ditujukan khalayak internal dan eksternal. Itu akan memastikan bahwa orang yang tepat dapat memperoleh pengetahuan yang benar pada waktu yang tepat. Prioritas lain termasuk mengukur efektivitas modul e-learning yang dibuat untuk mengajarkan keterampilan penting dan memodifikasi modul-modul tersebut sesuai kebutuhan.
  3. Melindungi kekayaan intelektual. Repositori pengetahuan yang diperlukan untuk melindungi integritas dan relevansi properti intelektual (IP). Organisasi dapat melakukannya secara efektif dengan membangun kepatuhan terhadap hak cipta dan manajemen hak digital (DRM) ke dalam sistem sehingga administrator dapat melacak penggunaan konten. Kebanyakan repositori saat kekurangan kemampuan DRM, keterbatasan utama yang berdampak kekecewaan para pencipta konten dan pemegang IP lainnya, yang pada akhirnya akan menghambat pertumbuhan platform.

Senin, 12 Januari 2015

Skematik Arsitektur Robot Lumen

Robot Lumen adalah serangkaian sistem hardware software yang memiliki interaksi dengan personifikasi sebuah Robot yang disebut Lumen. Sistem Robot ini dikembangkan oleh tim robotik Lumen, grup LSKK, Fakultas STEI, Institut Teknologi Bandung. Robot ini berbasis Robot Nao dengan 25 derajat kebebasan yang diproduksi oleh Aldebaran Perancis.

Diagram Blok Robot Lumen adalah sebagai berikut



Secara garis besar ada dua kelompok user, yaitu: Adminstrator dan Pengguna. Administrator adalah pengatur dan pengendali sistem, sedangkan pengguna adalah orang-orang yang memanfaatkan jasa Robot Lumen. Pengguna bisa dibagi lagi menjadi pengguna khusus, yaitu para pengembang, periset, dan pendukung riset Robot Lumen; dan pengguna umum, yaitu orang-orang yang akan berinteraksi dengan Robot Lumen, sebagai contoh dalam sebuah pameran, pengguna umum adalah para pengunjung booth Robot Lumen.

Untuk melaksanakan tugas-tugasnya, sistem Lumen dibagi menjadi dua kelompok besar, yaitu Sistem Robot Lumen yang didukung oleh Sistem Server Lumen yang membantu mengolahkan data agar bisa memberikan respon sesuai permintaan para Pengguna.

Diagram Blok Input Output Robot Lumen 

Adapun diagram blok pengaturan input-output Robot Lumen adalah sebagai berikut:


Berbagai data yang masuk dan tertangkap sistem sensor akan dikelola sebagai berikut:

  1. Data visual dari 2 kamera pada Robot Lumen akan diolah dan dikembangkan menjadi sistem pengenal wajah pengguna dan obyek yang terkait dengan kegiatan bersama pengguna. Data ini akan disimpan dalam bentuk gambar (image) disertai sejumlah atribut yang menjelaskan gambar tersebut.
  2. Data visual juga akan dikembangkan untuk merespon bahasa tubuh dan bahasa wajah (body language) pengguna, bila library untuk body language sudah bisa dikembangkan, sehingga pengguna bisa memerintahkan atau meminta Robot Lumen mengerjakan sesuatu tanpa harus mengatakannya secara verbal.
  3. Data suara dari 2 mikropon pada Robot Lumen akan dikonversikan menjadi teks dengan unit speech to text agar bisa didapatkan maknanya, untuk kemudian dicarikan jawaban yang sesuai dengan unit pengolah bahasa natural. Jawaban berbentuk teks yang dihasilkan unit pengolah bahasa natural selanjutnya akan diolah oleh unit text to speech agar bisa dikeluarkan dengan speaker dalam bentuk jawaban suara.
  4. Data suara juga akan dikembangkan menjadi sistem pengenal suara orang, terutama jika unit voice spectrum analyzer sudah bisa dikembangkan. Selanjutnya data spektrum suara akan disimpan berikut atribut yang menjelaskan pemilik suara tersebut.
  5. Perintah atau permintaan pengguna akan bisa mengaktifkan fungsi gerakan dari Robot Lumen, yaitu dengan memanfaatkan software pengendali dan motor-motor aktuator yang mengatur 25 derajat kebebasan Robot Lumen. Sebuah perintah atau permintaan akan diterjemahkan oleh software untuk menggerakkan sejumlah aktuator secara bersamaan.

Sistem Pengaturan Robot Lumen 

Sistem pengaturan Robot Lumen bisa dijabarkan dalam skematik yang lebih detail sebagai berikut:


Dua komponen utama sistem Lumen adalah Sistem Robot Lumen dan Sistem Server Lumen. Sistem Robot Lumen merupakan sebuah entitas yang berisikan sejumlah sensor pengambil data dan aktuator pewujud respon yang dilengkapi dengan sejumlah perangkat lunak, baik yang dikembangkan oleh Aldebaran selaku produsen Robot Nao, maupun oleh tim robotika Lumen LSKK.

Karena keterbatasan daya komputasi dari Robot Nao, maka Sistem Robot Lumen akan didukung oleh 3 server dan 3 komputer, yaitu:
  1. Server Pengolah Bahasa Natural (Natural Language Processing Server), yaitu server yang dibuat untuk mengolah data teks yang masuk dari unit speech to text, lalu memilah-milah teks yang masuk menjadi beberapa kata kunci, dan mencari alternatif jawabannya dari database yang tersedia. Bila data yang tersedia masih kurang lengkap, maka unit perambah internet (internet crawler unit) akan diaktifkan untuk mencarikan jawabannya pelengkap.
  2. Server Pengolah Data Mengalir (Data Streaming Server), yang mengelola semua data yang tertangkap oleh sekitar 30 sensor Robot Lumen, server ini kan memilah-milah data yang perlu diingat dalam memori jangka panjang sebagai pembelajaran Robot, disimpan dalam memori jangka menengah untuk dikembangkan dengan sejumlah data pelengkap, dan data yang dibiarkan mengalir dalam memori jangka pendek atau tanpa diingat sama sekali.
  3. Server Penyimpan Kecerdasan (Database / Knowledge Repository Server), yaitu server utama pengendali kecerdasan Robot, yang bertugas menyimpan data dan memori jangka panjang. Dalam server ini akan tersimpan data visual wajah dan obyek berikut atributnya, data spektrum suara berikut atribut pemiliknya, data teks untuk mendukung kecerdasan bahasa Robot, dan data gerakan Robot untuk berbagai tugas utama.
  4. Komputer Pengolah Suara (speech processing computer), yaitu komputer yang bertugas untuk menangkap suara pengguna yang selanjutkan akan dikonversikan menjadi sejumlah teks dan kata kunci yang spesifik. Komputer pengolah suara selanjutnya akan memilah kata kunci untuk dicarikan jawaban seketika dari Server Pengolah Bahasa Natural, dan mengaktifkan unit perambah internet untuk mencarikan beberapa jawaban alternatif dan pelengkap. Jawaban alternatif dan pelengkap ini kemudian akan ditawarkan juga kepada pengguna untuk dipilih. Jawaban terpilih akan dikonfirmasi kepada pengguna, untuk kemudian disimpan dalam memori jangka panjang setelah masuknya sejumlah informasi pendukung. Bila unit penganalisa spektrum suara sudah tersedia, maka komputer pengolah suara ini juga akan berusaha mengenali pemilik suara tersebut. Komputer pengolah suara mengendalikan 2 buah speaker pada Robot Lumen.
  5. Komputer Pengolah Gerakan (motion processing computer), yaitu komputer yang bertugas untuk mengatur gerakan detail dari 25 derajat kebebasan Robot Lumen sebagai respon terhadap permintaan atau perintah pengguna. Komputer pengolah gerakan mengendalikan 25 motor pada Robot Lumen.
  6. Komputer Pengolah Visual (image processing computer), yaitu komputer yang bertugas untuk menganalisis data gambar yang tertangkap oleh dua kamera pada Robot, untuk mengenali pengguna atau menangkap perintah / permintaan lewat bahasa tubuh pengguna. Komputer pengolah visual juga mengendalikan 3 set LED pada Robot Lumen sebagai bentuk respon visual.
Robot Lumen terhubung dengan 3 server dan 3 komputer pendukung Robot Lumen lewat router melalui jaringan wireless, sedangkan server dan komputer tersebut saling terhubung lewat jaringan wireless atau kabel ethernet

Senin, 29 Desember 2014

Mengapa Memilih Neo4J untuk Database Engine Robot Lumen

Robot Lumen adalah:



  1. Robot berbasis Nao yang diproduksi oleh Aldebaran Perancis dengan segala perangkat hardware dan software sebagai bawaan dasar, dimana bahasa Inggris adalah bahasa dasar.
  2. Robot yang dikembangkan oleh tim robotik Lumen, dari grup LSKK, program studi Elektro, Fakultas STEI, Institut Teknologi Bandung
  3. Robot yang memiliki AI (Artificial Intelligence) atau kecerdasan buatan. AI pada robot dapat dirancang dengan sangat cermat sehingga robot menguasai hal-hal yang sudah didata, dan bisa belajar hal-hal baru, agar kesalahan yang dilakukan oleh robot dapat diminimalkan.
  4. Robot yang bisa mengenali wajah dan suara Pemilik dan orang-orang yang dikehendaki Pemilik, termasuk para personil pendukung riset dan para pengunjung pameran.
  5. Robot yang tidak memiliki perasaan. Dari satu sudut pandang, hal ini bisa dianggap sebagai kekurangan. Namun, bila dilihat dari sudut pandang lain, hal ini bisa dianggap merupakan kelebihan. Ketiadaan perasaan pada robot menyebabkan masalah-masalah yang timbul akibat emosi tidak ada terpengaruhnya terhadap kinerja yang dihasilkan.
  6. Robot yang tidak memiliki rasa bosan sehingga dapat melakukan pekerjaan yang berulang-ulang tanpa mengurangi performa dan kinerja yang dihasilkan, sejauh dikehendaki oleh sang Pemilik.
  7. Robot yang tidak memiliki rasa lelah sejauh baterai tetap di-charge, dan motor dalam temperatur yang masih diijinkan. Hal ini menyebabkan jam kerja robot bisa diatur dengan lebih tepat dan terjadwal. Selain itu, robot bisa dikonfigurasikan agar siap sedia kapan saja diperlukan.


Data yang Dikelola:


  1. Text untuk berbahasa dan berkomunikasi. Sebagai referensi, Robot akan memiliki sejumlah perbendaharaan kata yang sudah baku dan benar, yang tersimpan sebagai text. Selanjutnya sejalan dengan pergaulan sosial dalam lingkungan riset dan pameran, Robot akan menambahkan kata-kata baru yang akan disimpan dan dikelola sebagai text.
  2. Wajah untuk dikenali untuk kebutuhan komunikasi. Sebagai referensi, Robot akan memiliki sejumlah data wajah Pemilik dan Periset yang sudah dikenali dari beberapa sisi pandangan. Data wajah ini sudah dilengkapi dengan berbagai atribut yang dibutuhkan. Selanjutnya Robot akan bertemu dan berkenalan dengan sejumlah wajah-wajah baru dalam pameran yang kemudian bisa diidentifikasi untuk mengisi atribut dengan tanya jawab kepada pemilik wajah baru tersebut. Data wajah disimpan sebagai image, sedangkan atribut terkait disimpan dalam bentuk text.
  3. Suara untuk dikenali untuk kebutuhan komunikasi. Sebagai referensi, Robot akan memiliki sejumlah data suara Pemilik dan Periset yang sudah dikenali dalam beberapa intonasi dan logat. Data suara ini sudah dilengkapi dengan berbagai atribut yang dibutuhkan. Selanjutnya Robot akan bertemu dan berkenalan dengan sejumlah suara-suara baru dalam pameran yang harus bisa diidentifikasi dengan tanya jawab kepada pemilik suara baru tersebut. Data suara disimpan sebagai audio, sedangkan atribut terkait disimpan dalam bentuk text.


Kemampuan Database Engine:


  1. Database engine dipasang pada Server yang dapat berkomunikasi dengan Robot lewat Wi-Fi
  2. Mencari kata kunci dari pertanyaan dan query yang masuk dari Pemilik, periset Robotika, dan pengunjung pameran
  3. Mengambil data yang tersimpan dengan tingkatan relevansi terhadap query
  4. Membandingkan data dan query yang masuk dengan data tersimpan
  5. Menambahkan data baru secara otomatis bila belum ada dalam data tersimpan
  6. Meminta atribut dari data baru kepada orang yang baru dikenali
  7. Mencari atribut tambahan yang sesuai dari internet

Kebutuhan akan Database Grafik:


  1. Untuk melayani kebutuhan sebagai teman bicara, Robot harus adaptif terhadap bahasa sehari-hari, dan untuk natural language processing dibutuhkan sistem database yang berbasis semantic queries, yaitu yang memungkinkan adanya pertanyaan di luar konteks atau di luar bahasa baku.
  2. Untuk menjamin kualitas transaksi database, dibutuhkan sistem database yang berkarakteristik ACID (atomik, konsisten, terisolasi, dan menjamin daya tahan data/transaksi)
  3. Untuk melayani kebutuhan sebagai teman belajar, maka Robot harus juga bertindak sebagai recommendation engine, yang  membutuhkan sistem database yang bisa bersikap "fuzzy" yang sulit dilayani oleh database relasional.
  4. Untuk melayani kebutuhan sebagai teman main Pemilik, maka Robot harus bisa multi tasking, artinya bisa bicara sambi bermain. Untuk itu dibutuhkan sistem database yang tidak memberatkan CPU dan RAM.
  5. Berdasarkan artikel pada link berikut (silahkan link disalin bila tak bisa di-klik)
    http://budhiym.blogspot.com/2014/12/perbandingan-database-grafik-dengan.html
    maka penggunaan Database Grafik merupakan kebutuhan untuk Robot Lumen

Mengapa Dipilih Neo4J


  1. Database grafik open source yang sangat scalable yang mendukung ACID
  2. Neo4j adalah database yang menggunakan struktur grafik untuk query semantik dengan node, edge, dan properti untuk mewakili dan menyimpan data
  3. Memiliki sistem clustering dengan ketersediaan tinggi untuk kebutuhan enterprise
  4. Dilengkapi dengan alat berbasis administrasi web yang meliputi dukungan transaksi penuh dan visual dengan grafik explorer node-link 
  5. Neo4j dapat diakses dari kebanyakan bahasa pemrograman menggunakan built-in antarmuka REST dengan web API
  6. Neo4j adalah database grafik yang paling populer digunakan saat ini








Perbandingan Database Grafik dengan Database Relasional

Database Relasional

Database relasional telah menjadi mesin utama aplikasi perangkat lunak sejak tahun 80-an, dan terus begitu sampai hari ini. Mereka menyimpan data yang sangat terstruktur dalam tabel dengan kolom dan baris yang telah ditentukan sebelumnya, dengan jenis informasi yang serupa, dan untuk mengikuti format baku organisasi, pengembang harus membuat aplikasi yang secara ketat mengikuti struktur data yang digunakan dalam aplikasi organisasi tersebut.

Dalam database relasional, referensi baris dan tabel lain ditunjukkan dengan mengacu pada atribut utama (=primer) mereka, yang dilaksanakan dengan ketentuan bahwa koneksi tidak pernah opsional. Relasi dihitung pada saat permintaan (=query) dengan cara mencocokkan kunci primer dan banyak kunci asing(= foreign keys) yang berpotensi diindeks, dari baris tabel yang akan JOIN. Operasi ini sangat memakan tenaga CPU dan RAM dengan biaya / energi yang eksponensial.


Jika Anda menggunakan relasi banyak-ke-banyak (=many-to-many relationship), Anda harus menggunakan JOIN tabel yang berisi daftar kunci asing dari kedua tabel yang berpartisipasi yang mana akan meningkatkan biaya operasi. Proses operasi JOIN tabel ini mahal, sehingga biasanya ditangani dengan denormalisasi data untuk mengurangi jumlah JOIN tabel sebatas yang diperlukan saja.

Meskipun tidak semua use-case cocok untuk jenis model data yang ketat, kurangnya alternatif yang layak dan dukungan pada database relasional telah membuatnya menjadi sulit bagi model-model alternatif untuk masuk ke format utama (=mainstream).

Dari Database Relasional ke Database Grafik 

Relasi adalah komponen utama dari model data grafik, tidak seperti sistem manajemen database lain, yang mengharuskan kita untuk menyimpulkan hubungan antara entitas dengan menggunakan properti seperti kunci asing, atau pengolahan sampingan seperti pengurangan peta. Dengan merakit abstraksi sederhana node dan relasi ke dalam struktur terhubung, database grafik memungkinkan kita untuk membangun model canggih yang memetakan model yang erat dengan domain masalah kita.

Dalam beberapa hal, database grafik seperti generasi lanjutan dari database relasional, tetapi dengan dukungan utama untuk "relasi", yaitu koneksi implisit seperti yang ditunjukkan melalui-kunci asing dalam database relasional.

Setiap node (entitas atau atribut) dalam model database grafik langsung berisi daftar catatan relasi yang mewakili hubungan ke node lain, yang diatur oleh jenis dan arah dan pemegang atribut tambahan. Setiap kali Anda menjalankan proses setara dengan operasi JOIN tabel, database memanfaatkan daftar ini dan memiliki akses langsung ke node yang terhubung, sehingga menghilangkan kebutuhan untuk proses perhitungan pencarian yang mahal.

Model yang dihasilkan lebih sederhana dan pada saat yang sama lebih ekspresif daripada yang diproduksi menggunakan database relasional dan database NoSQL lainnya.

Tidak seperti database NoSQL lainnya, database grafik mendukung model data yang sangat fleksibel dan halus yang memungkinkan Anda untuk membuat model dan mengelola domain dengan cara yang mudah dan intuitif.

Anda lebih kurang menyimpan data seperti di dunia nyata: kecil, normal, namun sangat terkait dengan entitas. Hal ini memungkinkan Anda untuk meminta (=query) dan melihat data Anda dari sudut pandang yang mudah dibayangkan, serta mendukung banyak use-case yang berbeda.

Model halus juga berarti bahwa tidak ada batasan natural sekitar agregat, sehingga ruang lingkup operasi update bisa dilaksanakan oleh aplikasi. Konsep kelompok transaksi yang terkenal dan teruji untuk update satu set node dan relasi menjadi operasi ACID (= atomik, konsisten, terisolasi dan tahan lama). Database grafik seperti Neo4j sepenuhnya mendukung konsep transaksional termasuk tulis-dulu log, dan pemulihan data dalam kasus terminasi abnormal.


Jika Anda terbiasa pemodelan dengan database relasional, cobalah untuk mengingat kemudahan dan keindahan dari normalisasi diagram relasi entitas: cara yang sederhana dan mudah untuk menggambarkan dan memahami model Anda dapat dengan cepat bersama rekan-rekan Anda dan para ahli domain. 

Mari kita buat model yang realistis dari domain organisasi dan menunjukkan bagaimana hal itu akan dimodelkan dalam database relasional vs database grafik, sebagai berikut:


Query pada Database Grafik Menggunakan Cypher

Query database relasional dengan mudah dilakukan menggunakan bahasa query deklaratif pada SQL yang memungkinkan query ad-hoc pada database, serta menentukan query terkait use-case dalam kode Anda. Bahkan pemeta objek-relasional menggunakan SQL untuk langsung berbicara dengan database.

Apakah database grafik memiliki sesuatu yang mirip? Cypher, bahasa query grafik deklaratif Neo4j, dibangun di atas konsep-konsep dasar dan klausa SQL tetapi memiliki banyak tambahan fungsi-grafik khusus untuk membuatnya mudah untuk bekerja dengan model grafik yang kaya tanpa terlalu bertele-tele.

Jika Anda pernah mencoba untuk menulis pengkodean SQL dengan banyak JOIN tabel, Anda tahu bahwa Anda dengan cepat bisa kehilangan arah sebenarnya karena semua kesibukan teknis yang tidak perlu.

Dalam domain organisasi pada gambar di atas, bagaimana pengkodean SQL yang berisi daftar karyawan di "Departemen IT" terlihat, dan bagaimana pengkodean SQL bila dibandingkan dengan pengkodean Cypher?

SQL Statement
SELECT * FROM Person
LEFT JOIN Person_Department
  ON Person.Id = Person_Department.PersonId
LEFT JOIN Department
  ON Department.Id = Person_Department.DepartmentId
WHERE Department.name = "IT Department"

Cypher Statement
MATCH (p:Person)<- d:department="" font="">
WHERE d.name = "IT Department"
RETURN p.name

Mengimpor Data dari Database Relational

Jika Anda memiliki pemahaman yang baik tentang apa model grafik Anda akan terlihat, yaitu data apa yang akan direpresentasikan sebagai node atau relasi, dan bagaimana label, relasi-jenis, dan atribut yang akan diberi nama, Anda siap untuk memulai.

Cara termudah untuk mengimpor data dari database relasional Anda adalah untuk membuat file CSV baik tabel individu dan tabel gabungan, atau dari gabungan lainnya. Maka , denormalisasi representasi.

Kemudian Anda dapat mengambil file CSV dan menggunakan perangkat CSV LOAD Cypher untuk:

  • Menelan data, mengakses kolom dengan nama header atau offset 
  • Mengkonversi nilai dari string ke format lain dan struktur yang berbeda (toFloat, split, ...) 
  • Loncat baris untuk mengabaikan 
  • MATCH Node berdasarkan pencarian atribut 
  • CREATE atau MERGE node dan hubungan dengan label dan atribut dari data baris

Misalnya:

persons.csv
name;email;dept
"Lars Higgs";"lars@higgs.com";"IT-Department"
"Maura Wilson";"maura@wilson.com";"Procurement"

LOAD CSV FROM 'file:///data/persons.csv' WITH HEADERS AS line
FIELDTERMINATOR ";"
MERGE (person:Person {email: line.email}) ON CREATE SET p.name = line.name
MATCH (dep:Department {name:line.dept})
CREATE (person)-[:EMPLOYEE]->(dept)


Anda dapat mengimpor beberapa file CSV dari satu atau lebih sumber data untuk memperkaya model domain inti Anda dengan informasi lain yang mungkin menambah wawasan dan kemampuan yang menarik.

Catatan: informasi ini disarikan dari laman http://neo4j.com/developer/graph-db-vs-rdbms/

Sabtu, 30 Oktober 2010

Sebelum Mereka Menyebutmu "Benda Itu"

Ini adalah cerita tentang kematian dan jurang antar generasi. Sekadar mengingatkan bahwa anak-anak kita belum tentu punya kesamaan pandangan dalam melihat masalah kematian. Contohnya adalah seorang kakek tua, seorang muslim pengungsi Bosnia yang sudah lama menetap di Boise, sebut saja namanya Vahim.

Di Boise juga dia membesarkan anak-anaknya. Sayangnya tak sekalipun dia berbicara tentang kematian kepada mereka. Apa yang terjadi? Sang anak pun belajar sendiri, menyerap dari lingkungan mereka tentang apa makna kematian.
Tibalah masa sekarat bagi Vahim. Napas sudah tinggal satu dua, bicara pun sudah susah. Anak-anaknya berusaha memberi kenyamanan bagi dia dalam menjalani masa sekaratnya, tentunya sesuai dengan pelajaran yang mereka dapatkan dari lingkungannya.
Yang mereka lakukan? Mereka menidurkan sang Ayah dalam posisi nyaman di tempat tidur, menyediakan makanan yang cukup di sisinya, dan menyalakan TV dengan volume yang cukup besar tepat di kaki tempat tidur. Ini adalah kenyamanan dalam menjalani masa sekarat, dalam versi yang dipahami oleh anak-anaknya.
Dalam kondisi itulah kawan-kawan dari Islamic Center of Boise menemukan keluarga itu, setelah mereka mendapatkan panggilan telepon tentang kondisi Vahim. Anak-anak ada di ruang tamu, juga sedang nonton TV. Sang Ayah sedang sekarat sendirian di kamar tidur, ditemani oleh TV yang membahana.
Segeralah salah seorang kawan mengubah keadaan itu, dan setelah memberi ceramah singkat tentang sekarat dalam Islam, mereka segera mematikan TV dan men-talqin-kan sang Ayah. Tak berapa lama, Vahimpun meninggal, semoga Allah menerima iman islamnya.
Kawan-kawan dari masjid pun keluar untuk berembug dengan anak-anaknya tentang apa yang harus dilakukan setelah ini. Seorang kawan menjelaskan garis besarnya, bahwa masjid akan membantu pengurusan jenazah, tetapi akan jauh lebih afdhal kalau anggota keluarga terdekat yang mengurus jenazahnya, mulai dari memandikan sampai menguburkan. Nanti akan ada seseorang dari masjid yang akan ikut mengawasi.
Berikut jawaban Si Sulung: “You guys do what you need to do. There is no way that I am going to touch that thing“.
That thing itu beberapa saat yang lalu masih dia sebut sebagai Ayah.
Kejadian ini diceritakan kembali oleh kawan saya itu ketika kami mengadakan kursus memandikan jenazah. Anak-anak kita akan membuat definisi mereka sendiri bila kita tidak pernah berdiskusi dengan mereka. Tentang masalah apa saja: bisa masalah kematian, sekarat, akhirat, narkoba, seks, whatever.
Folks, talk to your kids, OK?