13.07.2015 Views

07 31 Ocak - 2 Şubat 2007 Kütahya - Akademik Bilişim Konferansları

07 31 Ocak - 2 Şubat 2007 Kütahya - Akademik Bilişim Konferansları

07 31 Ocak - 2 Şubat 2007 Kütahya - Akademik Bilişim Konferansları

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Ontoloji Tabanlı Bir Kitap Sorgulama Sistemi GerçekleştirimiAyşegül Alaybeyoğlu, Aybars UğurVerilen kesitte Artificial Intelligence: A ModernApproach adlı kitap ve bu kitabın sahip olduğuyazarlar (Russel and Norvig) birer OWL classörneği olarak ontolojide yer almışlardır. Bunagöre “Kitap_01” bir Kitap individual’ ıdır. Bukitabın da yazarları Yazar_01 ve Yazar_02, Yazarclass’ının individuallarıdır.Sorgulama İşlemiHazırlanan sorgulama sistemi JavaPlatformu’nda geliştirilmiş olup JENA çatısına[8] ait uygulama geliştirme kütüphanesini kullanmaktadır.Kullanılan Java çalışma ortamısürümü 1.5’tir ve JENA kütüphanesinin ise 2.2sürümü kullanılmıştır.Sistemde izlenen iş sırası öncelikle ilgili ontolojininağ üzerinde belli bir lokasyonda tutulandosyasına erişimi, dosyaya eriştikten sonra ontolojinindosyadan alınarak JENA aracılığıylabelleğe yüklenip çalışma zamanı ortamındagraf modelinin oluşturulması ve bu model üzerindeRDQL kullanılarak anlamsal sorgularıngerçekleştirilmesi şeklinde olmuştur.Aşağıdaki sistem yazılım kodu parçasında ontolojininbelli bir URI’den (Universal ResourceIdentifier) alınarak JENA çalışma ortamındamodelin oluşturulması gerçekleştirilmektedir:public void load (StringdescriptionUrl) { OntModel ontModel;if (ontModel == null){ontModel=ModelFactory.createOntologyModel(ProfileRegistry.OWLLANG);ontModel.getDocumentManager().setProcessImports(false);}ontModel.read(descriptionUrl);}Ontoloji modeline ait graf oluşturulduktansonra onun üzerinde RDQL kullanılarak sorgularişletilebilir. Sorgu işletimi için KitapSorgulamasınıfına ait metot şu şekildedir:public QueryResults execQuery(OntModel m, String queryString) {Query query = newQuery(queryString);query.setSource(m);QueryExecution qe =new QueryEngine(query);return qe.exec();}Yukarıdaki metot “queryString” parametresi ilegelen RDQL sorgusunu “m” ile temsil edilenontoloji üzerinde işletip sonuçları JENA QueryResultskoleksiyonunda döndürmektedir.Bu koleksiyon üzerinde uygun iteratörler aracılığıyladolaşılarak RDF kaynakları çekilir vebu kaynaklarda yer alan ontoloji elemanları(OWL Individual’lar) başka işlemler için kullanılabilirler.Sorgular için verilebilecek en kolay örnek ontolojidekitüm yazarların bulunduğu aşağıdakiRDQL sorgusudur:SELECT ?x WHERE(?x http://www.w3.org/1999/02/22-rdf-syntax-ns#type);RDQL sorgularının tipik bir örneği olarakWHERE tümcesi (clause) içerisinde RDFüçlüleri (RDF-triple) yer almaktadır. Üçlününsırası subject-premise-object şeklindedir. Burada?x ile ifade edilen sorgu sonucu dönecekQueryResults’dır. Her “x”’in http://alaybeyoglu.googlepages.com/kitaplar. owl#Yazar” OWLclass’ı ile http://www.w3.org/1999/02/22-rdfsyntax-ns#typeilişkisinde olduğu belirtilmiştir.Buna göre ilgili ontolojiden tipi “Yazar” olanOWL individuallar’ı bu sorgu ile istenmektedir.Şekil 3 ‘te bu sorgunun işletilip sorgu sonuçlarınınekrana yazılması görüntülenmektedir.606

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!