Pages

Jumat, 27 Juni 2014

Deployment Architecture Lumen Robot Friend Knowledge Base

Rencananya Lumen Robot Friend Knowledge Base akan dideploy untuk:
  1. appserver Tomcat 7 di Java 8, yang cross platform sehingga dapat dijalankan di Ubuntu 14.04 maupun Windows 8. Juga dapat dideploy di cloud platform seperti Microsoft Azure.
  2. 3 platform client device yaitu Lumen/NAO, Android phone (mungkin support tablet, tapi di luar lingkup), dan Windows 8 netbook/notebook/ultrabook (desktop bisa juga, namun akan lebih repot untuk menggunakan fitur speech recognition & camera).
  3. 5 integrasi social media: Facebook profile/OpenGraph API, Facebook chat (XMPP) API, Twitter API, Google+ API, dan Google Hangouts API.

Komunikasi bidirectional antara client dan server menggunakan protocol yang masih dalam pertimbangan, kandidatnya adalah:
  1. AMQP (Advanced Message Queueing Protocol). Standar messaging realtime yang open.
  2. MQTT (machine-to-machine connectivity protocol). Biasa digunakan untuk project IoT (Internet-of-(every)Thing).
  3. HTTP-JSON. JSON format over request-response-based HTTP.
  4. XMPP (Extensible Messaging and Presence Protocol). Realtime chat protocol yang bisa digunakan untuk custom/proprietary purpose.
Saat ini saya cenderung pada protocol AMQP di broker RabbitMQ, yang kebetulan juga mendukung protocol MQTT dan STOMP over WebSocket (SockJS).

Saat ini server Lumen Knowledge Base menggunakan library Apache Jena sebagai RDF framework dan Apache Jena Fuseki sebagai RDF database.

Beberapa library & teknologi yang dipertimbangkan untuk diintegrasikan sbb:
  1. OpenCog. Menggunakan C++ dan Scheme. Ada beberapa modul yang dapat dipakai. Misalnya MOSES, RelEx, dan PLN. OpenCog masih belum truly cross platform karena masih depend ke libraries di Ubuntu.
  2. Apache Stanbol untuk Solr search engine, content store, entity store, dan content semantic enhancer.
  3. Apache Marmotta untuk Linked Data platform.
Sumber knowledge base yang dalam proses integrasi maupun dalam pertimbangan:
  1. WordNet 3.1 RDF untuk database kata dan synsets dalam bahasa Inggris dan berbagai translasi (termasuk Indonesia). Komponen sudah diintegrasikan sebagai de facto standard untuk data linguistik.
  2. BabelNet untuk word sense disambiguation dan keterhubungan kata untuk 50 bahasa. Komponen ini bisa dipastikan bakal masuk karena saya belum menemukan alternatif yang lebih baik yang juga open source.
  3. DBpedia. Rencananya, konsep-konsep dalam Lumen Knowledge Base secara utama akan menggunakan data DBpedia, yang bersumber dari Wikipedia.
  4. Freebase. Ensiklopedia semantic dari Google sebagai alternatif DBpedia. Menurut saya DBpedia sudah cukup sehingga tidak perlu Freebase.
  5. OpenCyc. Knowledge base common sense. Meski rilis terbaru Juni 2012, karena nampaknya datanya lebih valid/akurat dibandingkan dengan ConceptNet 5, kesimpulan sementara saya memilih OpenCyc yang akan saya integrasikan.
  6. ConceptNet 5. Mirip dengan OpenCyc namun lebih up-to-date dan crowdsourced. Namun, dari hasil sampling sesaat, ada data-data ConceptNet yang kurang masuk akal.
  7. YAGO2s. Knowledge base keterhubungan konsep berdasarkan DBpedia yang divalidasi secara manual. Format TURTLE, 2.2 GB compressed, 18.5 GB uncompressed. Saya belum meneliti lebih lanjut apa bedanya atau kelebihannya dibandingkan DBpedia maupun OpenCyc.
  8. SUMO (Suggested Upper Merged Ontology), dalam format SUO-KIF (Standard Upper Ontology Knowledge Interchange Format). Ukuran SUMO dalam format OWL/XML 35 MB. Sepertinya ini berupa ontology bukan data, yang sudah digunakan oleh DBpedia dan WordNet, tapi perlu saya telaah lebih lanjut.