Bilgisayar alanından hareketle yaşamla ilgili her şeyi paylaşmaya çalışan arkadaşların oluşturduğu kollektif bir günlüktür.
Yeni Özgür Yazılım ve Linux Günleri / 2010 Videoları
Belgesel: When Copyright Goes Bad
Kaynak: When Copyright Goes Bad - documentary - Boing Boing
Doğal Dil İşleme (Natural Language Processing) (NLP)
A Natural Language Query Interface to Structured Information
AquaLog An Ontology Portable Question Answering System
Ginseng projesi
Querying the Semantic Web with Ginseng
Querix A Natural Language Interface to Query Ontologies
İlk aşamada kullanıcının sorduğu soruyu içerdiği kelimelere göre işleyebilen bir algoritmaya ihtiyacımız olacak. Bu amaçla genel adıyla Natural Language Processing (NLP) olarak anılan ve dilin gramer yapısına göre değişiklik gösterebilen yöntemler kullanılabilir.
Biz basitçe cümleyi önceden belirlediğimiz anahtar kelimeleri arayarak ve geri kalan kelimeleri ontolojimiz içinde sorgulayarak sonuç döndüren bir yapı kurmaya çalışacağız. Öncelikle soru ya da cümle yapısını belirlememizi sağlayacak olan Kim, Kaç, Nerede, Ne zaman gibi anahtar kelimeleri ayırdetmemiz gerekir. Bu anahtar kelimeler, bağlaçlar v.s. dışında kalan kelimeler bizim için ontoloji içinde aranacak değerleri oluşturacaktır.
-->
Örnek çalışmamızda soruların ingilizce sorulması isteniyordu. Soruyu kelime kelime incelerken anahtar olarak belirlediğimiz kelimeleri tarayıp, işimize yarayacak olanları aldıktan sonra temizleriz.
-->
Geriye kalan kelimeler bizim için veri sorgulamada kullanılacak değerler olacaktır.
OWL - Web Ontoloji Dili
OWL, Semantic Web'in gelecekteki uygulamaları için temel teknolojilerden biridir. Sayıca çok ve çeşitli alanlardaki uygulamalarda önemli bir rol oynamaktadır, ve araştırmalarını araçlara, uslamlama tekniklerine, biçimsel temellere ve dil eklentilerine odaklamıştır. (Kaynak)
İlgili bağlantılar:
Introduction to OWL
OWL Web Ontology Language
OWL Belgesi Hazırlama
A Practical Guide To Building OWL Ontologies Using The Protégé-OWL
Jena ve SPARQL ile owl / rdf ontoloji dosyaları üzerinde çalışmak
Ontolojiler ile ilgili çalışmalar yapılıyor ve pek çok döküman bulabiliyoruz. Buna karşın bu konu üzerinde araştırırken baştan sona bir referans bulamadım.
Basit bir Doğal dil işleyici(NLP) geliştirip, oluşturacağımız ontoloji ile ilgili sorulacak olan sorulara, bu ontoloji üzerinden SPARQL kullanarak yanıt verebilecek bir yazılım Hangi adımları hangi araçlarla gerçekleştirmemiz gerektiğini bulmak uzunca vakit aldı, Türkçe kaynakların azlığı da bir başka sorun...
Benzer çalışmalar yapacak arkadaşlara yardımcı olması açısından öğrendiklerimi adım adım yazmaya çalışacağım.
Geliştirmek istediğimiz yazılım en basit hali ile; “bir web sayfasından doğal dil ile girilen soru cümlesini alarak, elimizdeki ontolojiye göre uygun yanıtı veren bir sistem” olmalı.
Bu amaçla inceleyeceğimiz konular şöyle olacak:
- OWL
- Natural Language Processing(NLP)
- Generic Question Templates(GQT)
- Ontology Mapping -Protege
- SPARQL ve ARQ -WordNet
- Inference ve Reasoner -Generic Rule Reasoner
-Rule tanımlama, .rules dosyası
Matt Zimmerman - Ubuntu Inside Out
Almanya ve Avrupa'da GPL'in Durumu
Cahit Arf Yazılımı
Gerçekten de Cahit Arf adında bir yazılım var. Weka adlı veri madenciliği yazılımı için ilişkisel veri tabanlarından ve ARFF dosyalarından veri çıkarılmasına yardımcı oluyor bu yazılım. LGPL lisansıyla yazılan bu yazılıma neden Cahit Arf adı verildiğini bilmiyorum; ama hoşuma gitti.
OpenOffice Writer'da Bağlantılı Dizin Oluşturma
OpenOffice Writer'da içindekiler bölümünü oluşturmak için öncelikle dikkat edilmesi gereken başlıkların biçimlendirmesinin başlık tiplerinden biri olması: Örneğin; ana başlıklar başlık 1(header 1), alt başlıklar başlık 2(header 2), ve daha küçük başlıklar başlık 3(header 3)...
Başlık düzeylerine göre başlıklar oluşturulduktan sonra dizini koymak istediğimiz yere tıklayarak Ekle menüsünün, Dizinler ve Tablolar kısmından Dizinler ve Tablolar'ı seçiyoruz. Karşımıza çıkan pencere oluşturacağımız dizinle ilgili özellikleri belirlememizi sağlıyor. Bağlantılı dizin oluşturmamız için Girişler tabında bazı değişiklikler yapmamız gerekiyor. Yapı denilen bölümde E# ile gösterilen bölüm numarasını seçip Köprü(Hyperlink)'ye tıklıyoruz. Karakter biçemini de Sayfa Numarası olarak seçiyoruz. Ve yine Yapı denilen bölümden en sondaki Sayfa numarası(#)nı seçip yine Köprüye tıklıyoruz. Yaptıklarımızın tüm başlık düzeylerini etkilemesi için de Hepsi butonunu tıklıyoruz. Tamam dediğimizde dizin-içindekiler bölümümüz eklenecektir. Önemli bir nokta belgede herhangi bir değişiklik yapıldığında dizinin güncellenmesi gerektiği. Bunun için o bölüme gelip fareye sağ tıklayarak Dizin/Tablo Güncelle diyoruz. Bağlantılı dizin özelliği PDF'ye çevirdiğimizde de işe yarayacaktır. Yani PDF dosyamızda da belge içindeki başlıklara bağlantı kuran bir dizinimiz olacaktır.
Yararlandığım Kaynak: How to: Create a linked index with OpenOffice