Ontoloji Tabanlı Bir Kitap Sorgulama Sistemi Gerçekleştirimi

Benzer belgeler
WEB 3.0 TEKNOLOJİSİNİN AÇIK KAYNAK YAZILIMLARLA UYGULANMASI

Anlamsal Web te SKOS Kullanılarak Bilgi Organizasyonu

Semantik Web Teknolojileri

Semantik Bilgi Yönetimi

Ontoloji Tabanlı Türk Şarap Portalı Tasarımı

Ontoloji Tabanlı Model Dönüşüm Aracı

RESTFUL WEB SERVĠSLERĠ ĠLE ONTOLOJĠ SORGULAMA ABDULHAMĠT MABOÇOĞLU YÜKSEK LĠSANS TEZĠ BĠLGĠSAYAR MÜHENDĠSLĠĞĠ

Soru 1 2 / Toplam Değer 5 10 / Puan

Laboratuar Notları #5

Yrd. Doç. Dr. Tuğba ÖZACAR ÖZTÜRK

Anahtar Kelimeler: Yazılım Etmenleri, Çoklu Etmen Sistemler, Yazılım Mimarisi.

Semantik Web Programlama (COMPE 567) Ders Detayları

LINQ (Temel Kavramlar)

BBY 163: Bilgi Yönetimi Kavramları

WEB ĠN GELECEĞĠ: ANLAMSAL WEB

Yazılım Yeniden Yapılamaya Yönelik Bir Kurumsal Mimari: Model Güdümlü ve Ontoloji Tabanlı Bir Yaklaşım

ISSN: El-Cezerî Fen ve Mühendislik Dergisi Cilt: 3, No: 1, 2016 ( )

YENİ BİLGİ MODELLEME VE PROGRAMLAMA FELSEFESİYLE SEMANTIC WEB

Yrd. Doç. Dr. Övünç ÖZTÜRK

UML ile Modellenen Coğrafi Verilerin XSLT Yardımıyla OWL a Dönüştürülmesi

Bağlı Açık Üniversite Verisi. Prof. Dr. Oğuz Dikenelli

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Kaynak Kod Güvenliği Bir Güvensiz API Örneği

Model Güdümlü Geliştirme ile Gömülü Kaynakların Yönetimi

4. Bölüm Programlamaya Giriş

Anlamsal Bilgi Yönetiminde Üst Veri Sistemlerinin ve Ontolojilerin Kullanımı

ANLAMSAL WEB (WEB 3.0) VE ONTOLOJİLERİNE GENEL BİR BAKIŞ

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri

Anlamsal Web için Bilgi Sistemi Altyapısı

SU KALITE SİSTEMİ. Türkiye Halk Sağlığı Kurumu

Kaynak Kod Sorgulamada Ontoloji Kullanımı

Fırat Üniversitesi Personel Otomasyonu

FIRAT ÜNİVERSİTESİ PERSONEL OTOMASYONU

T.C. ATATÜRK ÜNİVERSİTESİ EDEBİYAT FAKÜLTESİ BİLGİ VE BELGE YÖNETİMİ BÖLÜMÜ SEMANTİK WEB HAZIRLAYAN: LEYLA BOLAT SEMİNER

XBRL Bilanço ve Gelir Tablosu Analizi ve Semantik Web e Uyarlanması

5-Hafta Genel Sayfa Yapısı

Yazılım Mühendisliği 1

Data Structures Lab Güz

Semantik Web Bulutunun (Linked Data Cloud) Oluşumu ve Gelişim Durumu

Windows Mobile İşletim Sistemleri İçin Veri Giriş Yazılımı

Her Yönüyle SQL Enjeksiyonu. OWASP-Türkiye Bünyamin Demir

UZAKTAN EĞİTİM MERKEZİ

Anlamsal Web Politika Dillerinin Karşılaştırılması

KENT GÜVENLİK YÖNETİM SİSTEMLERİ BİLEŞENLERİ İÇİN ANLAMSAL AĞ TABANLI BİLGİ PAYLAŞIMI

Yazılım Mühendisliği Bölüm - 3 Planlama

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

NESNEYE YÖNELİK PROGRAMLAMA

Bütün XML dökümanlarının bir kök elemanı olmalıdır. Diğer bütün elemanlar kök elemanı tarafından kapsanır.

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) İş Kuralları ve Veri Modelleri

SENTEZ TABANLI YAZILIM MİMARİSİ TASARIM YAKLAŞIMININ ESSENCE ÇERÇEVESİYLE MODELLENMESİ

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Bibliyografik Evrenin Gelişimi ve Kütüphanelerde Bağlı Veri Yaklaşımları

Swing ve JDBC ile Database Erişimi

Semantic Web (Anlamsal Ağ) Yapıları ve Yansımaları

PAKET TRANSFER SİSTEMİ

ANLAMSAL WEB TABANLI BİR DOĞAL DİL SORU-CEVAP SİSTEMİ. Abdullah Talha KABAKUŞ YÜKSEK LİSANS TEZİ BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

VERİ TABANI YÖNETİM SİSTEMLERİ

İleri Yapay Zeka (COMPE 568) Ders Detayları

Yazılım Mühendisliğine Giriş (SE 112) Ders Detayları

Veritabanı Dersi. Teoriden Pratiğe. Çağıltay N.E., Tokdemir G. Veritabanı Sistemleri Dersi -Bölüm XXV: Web'den Erişim Çağıltay, N., Tokdemir, G.

TEMSA FABRİKALARINDA İŞ ETÜDÜ UYGULAMASI: MONTAJ AKIŞ KARTI (AOS)

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

BİLGİ ÜRETİMİ SÜRECİNDE DEĞER YARATAN UNSURLAR, 18 Aralık 2018, Bartın Üniversitesi

VERİ TABANI YÖNETİM SİSTEMLERİ

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir?

ÖNSÖZ ŞEKİL LİSTESİ TABLO LİSTESİ

SPARQL Sorgu Eniyilemesi için Karınca Kolonisi Yöntemi

Laboratuar Notları #5

HTML (Hyper Text Markup Language)

C# nedir,.net Framework nedir?

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

Mobil Cihazlardan Web Servis Sunumu

DİZİN. Not: Koyu harfle yazılan sayfalar ilgili terimin yoğun olarak geçtiği sayfaları göstermektedir.

Java da, tüm değişkenlerin kullanılmadan önce tanımlanması edilmesi gerekir. Bir değişken tanımlamanın temel gösterimi bu şekildedir:

VERİ MADENCİLİĞİ (Web Madenciliği)

Anlamsal Web Servisleri Temelinde Örnek Bir Servis Tanımı

VERİ TABANI SİSTEMLERİ

Üst Düzey Programlama

RoboGuice ve Android Annotations ile Verimli Android Uygulama Geliştirme Emrah Ayanoğlu, Onur Özcan, Alperen Eraslan. Inet-TR 12 9 Kasım 2012

Client Server Database

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EĞİTİM ÖĞRETİM YILI DERS KATALOĞU

Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

WEB TASARIMININ TEMELLERİ

1 GİRİŞ 1 Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

Sunum İçeriği. Programlamaya Giriş

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Ontoloji Tabanlı Bilgi Sistemlerinde Politika Yönetimi. Policy Management in Ontology Based Information Systems

Doğal Hesaplama (COMPE 564) Ders Detayları

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Laboratuar Notları #4

Assist. Prof. Dr. Övünç ÖZTÜRK

2 Temel Kavramlar (Devam) Veritabanı 1

Yazılım Mimari Tasarımından Yazılım Geliştirme Çatısının Üretilmesinde Model Güdümlü Bir Yaklaşım

Moodle-IST Kullanım Klavuzu

Hızlı Uygulama Geliştirme (SE 340) Ders Detayları

Transkript:

Ontoloji Tabanlı Bir Kitap Sorgulama Sistemi Gerçekleştirimi Ege Üniversitesi, Bilgisayar Mühendisliği Bölümü, 35100, Bornova, İzmir aysegul.alaybeyoglu @ege.edu.tr, aybars.ugur @ege.edu.tr Özet: Bu bildiride, RDF tabanlı bir kitap ontolojisinin hazırlanması ve ontolojinin anlamsal web ortamında kullanılmasına yönelik gerçekleştirilen bir çalışma anlatılmıştır. RDF tabanlı OWL dili ile ontoloji geliştirilmiştir. Bu ontolojide kitaplar birer RDF kaynağı olacak şekilde tasarlanmışlardır. Bu kaynaklara ait özelliklerde yine ilgili OWL yapıları kullanılarak ontoloji bünyesinde yer almıştır. İlgili ontoloji üzerinde RDQL kullanılarak sorgu işleten ve JENA API yi kullanan bir sistem yazılımı da tasarlanıp hayata geçirilmiştir. Böylelikle ontoloji bir RDF kaynak modeli olarak yazılım bileşenleri tarafından işlenebilmekte ve onun üzerinde tıpkı veritabanı sistemlerindeki sorgulama yaklaşımına benzer bir biçimde sorgular işletilerek ilgili RDF kaynaklarına erişim sağlanabilmektedir. Elde edilen bu kaynaklar daha sonra anlamsal web ortamında ilgili yapılar tarafından kullanılabilirler. Abstract: In this paper, development and use of an RDF based book ontology within the Semantic Web environment are discussed. In the developed ontology each book item has been designed as an RDF Resource. Likewise, attributes of each resource have been included within the ontology by using proper OWL constructs. A software has also been designed an implemented in order to process and query on the related ontology by using JENA API and RDQL. Hence ontology can be processed by software components as an RDF resource model and can be queried as if it is an ordinary database. Ontology resources that are obtained by execution of appropriate queries, can be used by related components on Semantic Web environment. Anahtar Kelimeler: Anlamsal Web, Ontoloji, RDF. 1. Giriş Günümüzdeki web içeriğine temel oluşturan bir çok yapıya bakıldığında bu yapıların insanların okuması, anlaması ve kullanımı için tasarlanmış ve geliştirilmiş olduğu görülür. Mevcut web alt yapısında sunulan içeriğin bilgisayarca okunur ve bilgisayarca anlaşılabilir olması çok zordur fakat bunun sağlanabilmesi için de yeni bir modele gereksinim duyulmuştur. Bu yeni web modeli de Anlamsal Web tir [1]. Anlamsal Web kavramı ilk olarak Tim Berners Lee tarafından öne sürülmüştür. Anlamsal Web yeni ve ayrı bir web olmayıp, bilgilere iyi tanımlanmış anlamların verildiği, bilgisayarların ve insanların birlikte çalışmalarına imkan veren bugünkü web in bir uzantısıdır[2]. 489 Buradaki temel amaç iyi tanımlanmış ve ilişkilendirilmiş olan bilgilerin ve servislerin web ortamında kolay bir şekilde bilgisayarcaokunabilir ve bilgisayarca-anlaşılabilir olmasını sağlayacak standartların ve teknolojilerin geliştirilmesidir[3]. Bu çalışmada da Anlamsal Web in temel bileşeni olan ontoloji den RDF tabanlı bir sorgulama dili olan RDQL ile sorgulama gerçekleştirimi çalışması anlatılmıştır. Bildirinin girişinde anlamsal web ile ilgili bilgiler verildikten sonra devamında uygulamamızın temelini oluşturan ontoloji, ontoloji dilleri, JENA ve RDQL teknolojilerinden bahsedilmiştir. Bir sonraki bölümde de uygumamızın gerçekleştirimi hakkında bilgiler verilmiştir. Uygulamamızda kitap domaini için bir ontoloji hazırlanmıştır.

Ontoloji Tabanlı Bir Kitap Sorgulama Sistemi Gerçekleştirimi Daha sonrada ontolojimizde anlamsal olarak tuttuğumuz bilgileri RDQL ile sorgulamış ve sorgumuza karşılık gelen cevabı elde etmiş bulunmaktayız. Sonuç bölümünde ise gerçekleştirdiğimiz uygulamanın sonuçları değerlendirilmiş ve gelecekte hedeflenen çalışmalardan bahsedilmiştir. 2. Sistemin Alt Yapısını Oluşturan Teknolojiler Ontoloji Anlamsal Web in en temel bileşeni olan ontoloji, kavramlar arasındaki ilişkileri formal olarak içeren bir dokümandır. Sözlük anlamı varlık bilmi olarak tanımlanan ontolojilerin bilgisayar biliminde en çok kabul gören tanımı ise kavramsallaştırmanın biçimsel ve açıkça belirtilmesi dir[1]. Burada kavramsallaştırma ile kast edilen, belirli bir ön alanda, bu ön alana ait soyut model oluşturma anlamına gelmektedir. Ontolojiler herhangi bir alanda standart olarak kullanılacak ortak ve paylaşılan sözcük kümelerini (vocabulary) veya terminolojiyi belirler. Ontoloji Dilleri (OWL ve RDF) Ontolojiler, ontoloji dilleri ile tanımlanmaktadır. Bir çok alan için değişik ontoloji dillerinde ontolojiler geliştirilmektedir. Bu dillerden en çok kullanılanları RDF (Resource Description Framework) ve OWL (Web Ontology Language) dur. RDF de her kaynağın bir URI ye sahip olması ile ve nesne, fiil, özne üçlüsünün yer alması, anlamın ifade edilmesini sağlamaktadır. İlgili üçlüler de XML tag ları ile ifade edilmektedirler[2]. RDFS (RDF Schema) gösterimi, RDF veri modelini genişleten bir tip sistemidir. Bu tip sistemi, bir alanda kullanılacak olan sözcük kümesini tanımlar. Bu sözcük kümesi de bir alanda kullanılacak olan nesneler, nesneler arasındaki alt/üst küme ilişkileri, özellikler, özelliklerin alabileceği değerleri tanımlar.[4]. Bir başka çok sık kullanılan ontoloji dili ise OWL (Web Ontology Language) dur. OWL dili RDF diline bir eklentidir ve OWL Full, OWL DL, OWL Lite olmak üzere üçe ayrılmıştır. OWL dili ile özellikler, nesne ve veri 490 tipi olmak üzere ikiye ayrılmış, küme işlemleri getirilmiş, özelliklerin alabileceği değerler üzerinde kısıtlamalar koyabilme ve eşleme ilişkileri tanımlayabilme sağlanmıştır [6]. Sorgulama Ontoloji oluşturulduktan sonra, yapılabilecek işlemlerden birisi de ontolojide tutulan bilgilerin bir ontoloji sorgulama dili ile sorgulanmasıdır. RDF tabanlı herhangi bir ontolojinin Java kullanılarak modelinin oluşturulup üzerinde sorgulamanın ve çıkarsamanın yapılabilmesi için JENA çerçevesi kullanılabilir. Bu çalışmada da ontolojimiz RDF tabanlı olduğu için RDF tabanlı bir sorgulama diline ihtiyaç vardır. Bunun için de JENA yazılım çerçevesi içerisinde yer alan RDQL sorgulama dili [10] kullanılmıştır. 3. Sistem Ontolojinin Oluşturulması Ontoloji tabanlı bir sistem hazırlandığı için kaynakları tanımlayan bir ontolojinin olması gerekmektedir. Bu nedenle bu çalışma kapsamında bir ontoloji geliştirilmiştir. Sistem, kitap sorgulama ile ilgili olduğu için ontoloji Kitap kaynaklarını ve onların sahip olduğu özellikleri (adı, yazarları, basım yılı, vb) içermektedir. Ontolojiyi tasarlama ve hayata geçirmede kullanılan ontoloji dili Ontoloji Web Language (OWL) dir. Haliyle yukarıda bahsedilen kaynaklar ontolojide birer Owl Individual ı olarak yer almaktadır. Ontolojiyi geliştirmek için OWL ın kullanılmasının nedeni bu dilin W3C (World Wide Web Consortium) tarafından standart kabul edilmesidir. Ontolojiyi oluşturmak için Protege [11] ontoloji geliştirme editörü kullanılmıştır. Protege, sistem geliştiricileri ve uzmanları tarafından bilgi tabanlı sistemlerin geliştirilmesi amacıyla kullanılan entegre bir yazılım aracıdır. Şekil 1 de kitap ontolojisinin geliştirilmesi sırasında kullanılan Protege 3.2 nin grafiksel kullanıcı ara yüzü verilmiştir.

Şekil 1: Protege 3.2 editöründe ontolojinin geliştirilmesi sırasında elde edilen ekran görüntüsü Şekil 2: Ontolojideki individualların (kitap kaynaklarının) Protege individual editörü kullanılarak hazırlanması 491

Ontoloji Tabanlı Bir Kitap Sorgulama Sistemi Gerçekleştirimi Ontolojide Individualların Oluşturulması Bu ontolojiye bağlı olarak hazırlanan kitap kaynakları (individualları) da yine editör aracılığıyla Şekil 2 de de gösterildiği gibi ontolojiye dahil edilmiştir. Ontoloji OWL kodu Hazırlanan ontolojide kitap kaynakları ve bu kaynaklara ait özellikler (ISBN, Ad, Yayınevi, Basım yılı ve yazarları) yer almıştır. Kitap kaynakları haricinde yazarlar da ontoloji de birer OWL Individual ı olarak bulunmuşlardır. Aşağıda sistemin ontolojisinden bir kesit verilmiştir: <?xml version= 1.0?> <rdf:rdf xmlns:rdf= http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:xsd= http://www.w3.org/2001/xmlschema# xmlns:rdfs= http://www.w3.org/2000/01/rdf-schema# xmlns:owl= http://www.w3.org/2002/07/owl# xmlns= http://alaybeyoglu.googlepages.com/kitaplar.owl# xml:base= http://alaybeyoglu.googlepages.com/kitaplar.owl > <owl:ontology rdf:about= /> <owl:class rdf:id= Yazar /> <owl:class rdf:id= Kitap > <rdfs:subclassof rdf:resource= http://www.w3.org/2002/07/owl#thing /> <rdfs:subclassof> <owl:restriction> <owl:maxcardinality rdf:datatype= http://www.w3.org/2001/xmlschema#int >1</owl:maxCardinality> <owl:onproperty> <owl:datatypeproperty rdf:id= ISBN /> </owl:onproperty> </owl:restriction> </rdfs:subclassof> </owl:class> <owl:objectproperty rdf:id= Kitap_Yazar > <rdfs:range rdf:resource= #Yazar /> </owl:objectproperty> <owl:datatypeproperty rdf:about= #ISBN > <owl:datatypeproperty rdf:id= Kitap_Ad > <owl:datatypeproperty rdf:id= Isim > <rdfs:domain rdf:resource= #Yazar /> 492

<owl:datatypeproperty rdf:id= Kitap_Yil > <rdfs:range rdf:resource= http://www.w3.org/2001/xmlschema#int /> <owl:datatypeproperty rdf:id= Soyisim > <rdfs:domain rdf:resource= #Yazar /> <owl:datatypeproperty rdf:id= Email > <rdfs:domain rdf:resource= #Yazar /> <owl:datatypeproperty rdf:id= Kitap_Yayinevi > <Yazar rdf:id= Yazar_01 > <Email rdf:datatype= http://www.w3.org/2001/xmlschema#string ></Email> <Soyisim rdf:datatype= http://www.w3.org/2001/xmlschema#string >Russell</Soyisim> <Isim rdf:datatype= http://www.w3.org/2001/xmlschema#string >Stuart J.</Isim> </Yazar> <Yazar rdf:id= Yazar_02 > <Isim rdf:datatype= http://www.w3.org/2001/xmlschema#string >Peter</Isim> <Email rdf:datatype= http://www.w3.org/2001/xmlschema#string >norvig@gmail.com</email> <Soyisim rdf:datatype= http://www.w3.org/2001/xmlschema#string >Norvig</Soyisim> </Yazar> <Kitap rdf:id= Kitap_01 > <Kitap_Yazar rdf:resource= #Yazar_01 /> <Kitap_Yazar rdf:resource= #Yazar_02 /> <ISBN rdf:datatype= http://www.w3.org/2001/xmlschema#string >0130803022</ISBN> <Kitap_Yayinevi rdf:datatype= http://www.w3.org/2001/xmlschema#string >Prentice Hall</Kitap_Yayinevi> <Kitap_Ad rdf:datatype= http://www.w3.org/2001/xmlschema#string >Artificial Intelligence: A Modern Approach</Kitap_Ad> <Kitap_Yil rdf:datatype= http://www.w3.org/2001/xmlschema#int >2003</Kitap_Yil> </Kitap> </rdf:rdf> 493

Ontoloji Tabanlı Bir Kitap Sorgulama Sistemi Gerçekleştirimi Verilen kesitte Artificial Intelligence: A Modern Approach adlı kitap ve bu kitabın sahip olduğu yazarlar (Russel and Norvig) birer OWL class örneği olarak ontolojide yer almışlardır. Buna göre Kitap_01 bir Kitap individual ıdır. Bu kitabın da yazarları Yazar_01 ve Yazar_02, Yazar class ının individuallarıdır. Sorgulama İşlemi Hazırlanan sorgulama sistemi Java Platformu 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.2 sürümü kullanılmıştır. Sistemde izlenen iş sırası öncelikle ilgili ontolojinin ağ üzerinde belli bir lokasyonda tutulan dosyasına erişimi, dosyaya eriştikten sonra ontolojinin dosyadan alınarak JENA aracılığıyla belleğe yüklenip çalışma zamanı ortamında graf modelinin oluşturulması ve bu model üzerinde RDQL kullanılarak anlamsal sorguların gerçekleştirilmesi şeklinde olmuştur. Aşağıdaki sistem yazılım kodu parçasında ontolojinin belli bir URI den (Universal Resource Identifier) alınarak JENA çalışma ortamında modelin oluşturulması gerçekleştirilmektedir: public void load (String descriptionurl) { OntModel ontmodel; if (ontmodel == null){ ontmodel= ModelFactory.createOntologyModel (ProfileRegistry.OWLLANG); ontmodel.getdocumentmanager().setpro cessimports(false); } ontmodel.read(descriptionurl); } Ontoloji modeline ait graf oluşturulduktan sonra onun üzerinde RDQL kullanılarak sorgular işletilebilir. Sorgu işletimi için KitapSorgulama sınıfına ait metot şu şekildedir: public QueryResults execquery (OntModel m, String querystring) { Query query = new Query(queryString); query.setsource(m); QueryExecution qe = new QueryEngine(query); return qe.exec(); } Yukarıdaki metot querystring parametresi ile gelen RDQL sorgusunu m ile temsil edilen ontoloji üzerinde işletip sonuçları JENA QueryResults koleksiyonunda döndürmektedir. Bu koleksiyon üzerinde uygun iteratörler aracılığıyla dolaşılarak RDF kaynakları çekilir ve bu kaynaklarda yer alan ontoloji elemanları (OWL Individual lar) başka işlemler için kullanılabilirler. Sorgular için verilebilecek en kolay örnek ontolojideki tüm yazarların bulunduğu aşağıdaki RDQL sorgusudur: SELECT?x WHERE (?x http://www.w3.org/1999/02/22- rdf-syntax-ns#type kitaplar.owl#yazar>); RDQL sorgularının tipik bir örneği olarak WHERE tümcesi (clause) içerisinde RDF üçlüleri (RDF-triple) yer almaktadır. Üçlünün sırası subject-premise-object şeklindedir. Burada?x ile ifade edilen sorgu sonucu dönecek QueryResults dır. Her x in http://alaybeyoglu. googlepages.com/kitaplar. owl#yazar OWL class ı ile http://www.w3.org/1999/02/22-rdfsyntax-ns#type ilişkisinde olduğu belirtilmiştir. Buna göre ilgili ontolojiden tipi Yazar olan OWL individuallar ı bu sorgu ile istenmektedir. Şekil 3 te bu sorgunun işletilip sorgu sonuçlarının ekrana yazılması görüntülenmektedir. 494

Şekil 3: Ontolojideki tüm yazarların sorgulandığı RDQL sorgusunun işletilmesi sonucunda elde edilen ekran görüntüsü Bir başka örnek de (ontolojideki sınıf ilişkileri de göz önüne alındığında) nispeten karışık olan bir yazara ait tüm kitapların sorgulanması olarak verilebilir. Aşağıdaki RDQL sorgusunda yazarının soyismi Daconta olan tüm kitapların ontolojiden Bir başka örnek de (ontolojideki sınıf getirilmesi gerçekleştirilmektedir: ilişkileri de göz önüne alındığında) nispeten karışık olan bir yazara ait tüm kitapların sorgulanması olarak verilebilir. Aşağıdaki RDQL sorgusunda yazarının soyismi SELECT?x WHERE (?x http://www.w3.org/1999/02/22- rdf-syntax-ns#type kitaplar.owl#kitap>), (?y <http://www.w3.org/1999/02/22- rdf-syntax-ns#type> kitaplar.owl#yazar>), (?x kit aplar.owl#kitap_yazar>?y), (?y kit aplar.owl#soyisim> \ Daconta\ ) Burada da yine sorgu sonucu istenen kaynaklar?x ile ifade edilmektedir. İlk koşul cümlesinde?x in bir Kitap olduğu belirtilmektedir. Her bir?y ise bir Yazar ı temsil eder. Her x ile y arasında (ontolojimizde yer aldığı gibi) bir Kitap_Yazar ilişkisinin olacağı belirtilmiştir. Her y yazarının Soyisim özelliğinin aldığı değerin de Daconta olduğu son RDF üçlüsünde belirtilmiştir. Bu sorguyu işleten RDQL sorgu motoru yukarıda verilen RDF üçlülerini göz önüne alarak Şekil 4 teki gibi sorgu sonuçlarını döndürmektedir: Sorgu sonucunda da görüldüğü gibi Daconta soyisimli yazarın -ki kendisi OWL ontolojimizde Yazar_03 adlı Individual ile temsil edilmiştir- Yazar ilişkisinde bulunduğu iki Kitap kaynağı bulunmuştur. Bu kitapların KitapAd özellikleri ekrana yazdırılmak istendiğinde The Semantic Web ve C++ Pointers and Dynamic Memory Management değerlerinin elde edildiği görülmektedir. 495

Ontoloji Tabanlı Bir Kitap Sorgulama Sistemi Gerçekleştirimi Şekil 4: Ontolojide belli bir yazara ait tüm kitapların sorgulanması 4. Sonuç Bu bildiride, RDF tabanlı bir kitap ontolojisinin sorgulanmasına yönelik gerçekleştirilen bir çalışma anlatılmıştır. RDF tabanlı OWL dili ile ontoloji geliştirilmiş ve bu ontoloji üzerinde RDQL kullanılarak sorgu işleten ve JENA API yi kullanan bir sistem yazılımı tasarlanıp hayata geçirilmiştir. Ontolojinin OWL kullanılarak gerçekleştirilmiş olması bu ontoloji geliştirme dilinin W3C tarafından standart kabul edilmesi ve sıkça kullanılması açısından bize diğer uygulamalarımız için de faydalı olmuştur. JENA API ve içerisinde bulunan RDQL motoru, RDF tabanlı sorguları ontolojimiz üzerinde işletmemize olanak vermiştir. Yaptığımız sistem testlerinde sorgu çalışma zamanlarının ontoloji boyutunu (içerdiği Individual sayısı) göz önüne aldığımızda kullanıcıyı memnun edecek seviyelerde olduğu söylenebilir. RDQL oluşturmada karşılaştığımız en önemli güçlük sorgu sonucu elde edilen kaynakların özelliklerine ulaşmada oldukça karmaşık bir metot çağırımın izlenmesi zorunluluğu olmuştur. Bir diğer güçlük ise birleşim işlemi harici kesişim içeren sorguların hazırlanmasında yaşanılmıştır. Ancak söz konusu güçlüklerin RDQL yerine yeni jenerasyon olan SPARQL un [7] vaat ediği özelliklerle aşılacağına inanılmaktadır. Bu çalışma dahilinde yakın zamanda planlanan ilk iş RDQL yerine SPARQL in uygulanması ve sistem çalışmasının gözlemlenmesidir. Bir diğer hedeflenen çalışma ise Kitap ontolojisinin yeni ilişkilerle güçlendirilmesi ve içerdiği Individual sayısının arttırılarak sorgu işletim performansının ölçülmesidir. 496

5. Kaynaklar [1]. T. Berners-Lee, J. Hendler, and O. Lassila, The Semantic Web, Scientific American, vol. 184, no. 5, pp. 34--43, 2001 [2]. Dave Beckett s Resource Description Framework (RDF) Resource Guide http://www. ilrt.bristol.ac.uk/discovery/rdf/res ources [3]. W3C Technical Reports and Publications http://www.w3.org/tr [4]. The Semantic Web Community Portal- World Wide Website, http://www.semanticweb.org [5]. Hendler, J., et al., Spinning the Semantic Web: Bringing the World Wide Web to Its Full Potential. 2002: MIT Press. [6]. Ontology Web Language World Wide Website, http://www.w3.org/tr/owl-features/, W3C [7]. SPARQL, http://www.w3.org/tr/rdfsparql-query/, W3C [8]. Jena - A Semantic Web Framework for Java, JENA, http://jena.sourceforge.net/, Hewlett-Packard Development Company [9]. Resource Description Framework, http:// www.w3.org/rdf/, W3C [10]. RDF Query Language, http://www. w3.org/submission/rdql/, W3C [11]. Protege : Free Open-Source Ontology Editor and Knowledge-Base Framework, http://protege.stanford.edu/ 497