ANLAMSAL WEB İÇİN RDF TABANLI BİR ÇIKARSAMA MOTORU TASARIMI

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "ANLAMSAL WEB İÇİN RDF TABANLI BİR ÇIKARSAMA MOTORU TASARIMI"

Transkript

1 I EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ (YÜKSEK LİSANS TEZİ) ANLAMSAL WEB İÇİN RDF TABANLI BİR ÇIKARSAMA MOTORU TASARIMI Tuğba ÖZACAR Bilgisayar Mühendisliği Anabilim Dalı Bilim Dalı Kodu: Sunuş Tarihi: Tez Danışmanı: Yrd. Doç. Dr. Murat Osman ÜNALIR Bornova-İZMİR

2 II

3 III Tuğba Özacar tarafından yüksek lisans tezi olarak sunulan Anlamsal Web için RDF Tabanlı Çıkarsama Motoru Tasarımı başlıklı bu çalışma E.Ü. Lisansüstü Eğitim ve Öğretim Yönetmeliği ile E.Ü. Fen Bilimleri Enstitüsü Eğitim ve Öğretim Yönergesi nin ilgili hükümleri uyarınca tarafımızdan değerlendirilerek savunmaya değer bulunmuş ve tarihinde yapılan tez savunma sınavında aday oybirliği/oyçokluğu ile başarılı bulunmuştur. Jüri Üyeleri: İmza Jüri Başkanı: Raportör Üye: Üye:

4 IV

5 V ÖZET ANLAMSAL WEB İÇİN RDF TABANLI BİR ÇIKARSAMA MOTORU TASARIMI ÖZACAR, Tuğba Yüksek Lisans Tezi, Bilgisayar Mühendisliği Bölümü Tez Yöneticisi: Yrd. Doç. Dr. Murat Osman ÜNALIR Kasım 2004, 126 sayfa Bu tez kapsamında, anlamsal web ontolojileri ile çıkarsama yapmaya yönelik bir araç tasarımı gerçekleştirilmiştir. Anlamsal web ontolojilerinin saklandığı sunucuların sorgulanması için, kural tabanlı bir çıkarsama motoru tasarlanmış ve bu motorun temel bileşenleri C# dili ile gerçekleştirilmiştir. Ontoloji sunucusu üzerindeki çıkarsama motoru, ontoloji sorgulama, ontoloji tutarlılığını test etme, ontoloji kapanışını bulma olarak sıralanabilecek çıkarsama servislerini sağlamaktır. Bu servislere değişik platformlardan ulaşılabilmesi için, servislerin web servisleri olarak tanımlanması planlanmaktadır. Son olarak belirtilmesi gereken nokta, çıkarsama motorunun eksiksiz çıkarsama yapması planlanmamaktadır. Çıkarsama işlemi, anlatım gücü üzerinde kısıtlama yapılmamış diller üzerinde, ileriye doğru ve geriye doğru zincirleme mekanizmaları ile gerçekleştirilmektedir. Anahtar sözcükler: anlamsal web, ontoloji, çıkarsama motoru, çıkarsama, ontoloji sorgulama.

6 VI

7 VII ABSTRACT DESIGN OF AN RDF INFERENCE ENGINE FOR THE SEMANTIC WEB ÖZACAR, Tuğba MSc in Computer Eng. Supervisor: Assist. Prof. Dr. Murat Osman Ünalır November 2004, 126 pages In this thesis, a tool that supports reasoning with web ontologies is designed. A rule based inference engine is designed and basic components of the tool are implemented C#, in order to query the servers that stores the web ontologies. The inference engine on the server, supports the ontology querying, ontology validation, finding the closure of an ontology services. These services are planned to be web services, in order to make these services reachable from different platforms. Finally, the reasoning will not be complete. Reasoning will be done by forward chaining and backward chaining methods on the languages with high expressivity. Keywords: semantic web, ontology, inference engine, reasoning, ontology querying.

8 VIII

9 IX TEŞEKKÜR Bu tez çalışması sırasında ilgi ve sabrından dolayı değerli danışmanım sayın Yrd. Doç. Dr. Murat Osman Ünalır a ve çalışma arkadaşım sayın Övünç Öztürk e teşekkürlerimi sunarım. Sevgi ve desteklerinden dolayı sevgili aileme minnettar olduğumu belirtmek isterim. Ege Üniversitesi Bilgisayar Mühendisliği nin değerli öğretim üye ve elemanlarına saygı ve teşekkürlerimi sunarım. Son olarak, tez üzerindeki önerilerinden ötürü saygıdeğer jürü üyelerime teşekkür etmek isterim.

10 X

11 XI İÇİNDEKİLER Sayfa ÖZET...V ABSTRACT...VII TEŞEKKÜR... IX İÇİNDEKİLER... XI ŞEKİLLER DİZİNİ... XIII ÇİZELGELER DİZİNİ... XV 1.GİRİŞ 1 2.ANLAMSAL WEB VE BETİM MANTIĞI Bilgi Gösteriminin Tarihçesi Betim Mantığına Genel Bakış Betim Mantığı ile Bilgi Sunumu 13 3.ONTOLOJİLER Ontoloji Modelleme Ontoloji Dilleri RDF/RDFS OWL Kural Tanımlama Dilleri OWL Kural Dili ÇIKARSAMA ARAÇLARI Betim Mantığında Çıkarsama Çıkarsama Algoritmaları 51

12 XII İÇİNDEKİLER (devam) Sayfa 4.2 Çıkarsama Araçları Anlamsal Web ve Çıkarsama AEGONT ÇIKARSAMA MOTORU Genel Bakış İleriye ve Geriye Doğru Zincirleme Bileşenleri İleriye Doğru Zincirleme Mekanizması Geriye Doğru Zincirleme Mekanizması İleriye ve Geriye Zincirlemenin karşılaştırılması İleriye Yönelik Çalışmalar OWL-QL Dili ve Protokolü İleriye Doğru Zincirleme Üzerinde Eniyileme Geriye Doğru Zincirlemenin Çalışabilirliği SONUÇ 97 KAYNAKLAR 100 EK 1- AEGONT UML MODELİ 108 EK2- SÖZLÜK 117 EK-3 ONTOLOJİ KAPANIŞININ BULUNMASI 121 EK-4 GERİYE DOĞRU ZİNCİRLEME 125 ÖZGEÇMİŞ 127

13 XIII ŞEKİLLER DİZİNİ Şekil Sayfa 2.1. Anlamsal web katmanları Anlamsal Ağlarla bilgi gösterimi Betim mantığı tabanlı bir bilgi sistemi Ontoloji biçimleme dilleri RDF çizgesiyle bilginin sunumu RDF üçlüleriyle bilginin gösterimi RDF/XML sözdizimi ile bilginin gösterimi Öğrenci kavramına ve bir öğrenci örneğine ait çizge RDFS dili ile modelleme OWL dilinin temelleri Kural kullanım çeşitleri OWL kural dilinin soyut sözdizimi OWL kural dili ile yazılmış bir kural OWL kural dili ile yazılmış bir kural Ontoloji geliştirme ortamlarının çıkarsama yetenekleri ve kullandıkları çıkarsama araçları LOOM mimarisi AEGONT Çıkarsama Motoru Mimarisi Ontolojinin ayrıştırılması Çıkarsama motoruna ait kural yapısı Kuralların ayrıştırılması Kuralların sınıflandırılması Tutarsızlık bulmaya yönelik bir kural Üçlü eşleşmesi...73

14 XIV ŞEKİLLER DİZİNİ (devam) Şekil Sayfa 5.8. (a) Eşleştirme sonunda oluşan bağlama seti. (b) Eldeki bağlama seti doğrultusunda üçlü eşleştirme Kural tabanlı bir sistemde ileriye doğru zincirleme işlemi Geriye doğru zincirleme işlemi İleriye doğru zincirleme mekanizmasının avantajlı olduğu bir durum Geriye doğru zincirleme mekanizmasının avantajlı olduğu bir durum Basit bir OWL-QL sorgusu ve yanıtı OWL-QL ile sorgu öncüllerinin modellenmesi OWL-QL sorgu-yanıtlama dialoğu Örnek bir Rete ağı Anlamsal webin genel görüntüsü Ek1.1. AEGONT çıkarsama motoru kullanım durumu şeması Ek1.2. Find the Closure Ontology kullanım durumuna ait aktivite şeması Ek1.3. Validate an Ontology kullanım durumuna ait aktivite şeması Ek1.4. Query the Specified Ontology ve Create a Query kullanım durumlarına ait aktivite şemaları Ek1.5. AEGONT Çıkarsama Motoru sınıf şeması

15 XV ÇİZELGELER DİZİNİ Çizelge Sayfa 2.1. AL dil ailesi Anlatımlı betim mantıkları OWL dili ile kavram tanımlama ve nitelikler üzerinde çokluk kısıtları belirtme OWL dili ile nitelikler üzerinde değer kısıtı belirtme OWL dili ile ayrık sınıfların gösterilmesi Bölge, ürün, şarap üreticisi ve tarih kavramları OWL dili ile n-li ilişki tanımlama OWL dili ile iddiaların gösterilmesi Çıkarsama işlemleri arasında indirgeme Oedipus hikayesini gösteren ABox...47 Ek1.1: Find the Closure Ontology kullanım durumu senaryosu.109 Ek1.2. Validate an Ontology kullanım durumu senaryosu Ek1.3. Query the Specified Ontology kullanım durumu senaryosu Ek1.4. Create a query kullanım durumu senaryosu...112

16 XVI

17 1 1.GİRİŞ Webin yaratıcısı Tim Berners-Lee nin, web tasarımı iki aşamalıydı. Bunlardan ilki, diğer bir deyişle bugünkü web insanlar arasında bilgi paylaşımını hedefliyordu. Anlamsal web olarak adlandırılan, ikinci aşama bilgi paylaşımını, sadece insanlar arasında olmaktan çıkarıp makinalar arasında da gerçekleştirmeyi hedefler. Bunu gerçekleştirebilmek için web üzerindeki kaynakların, ontolojik kavramlarla ilişkilendirilmesi çözüm olarak sunulmuştur. Anlamsal web vizyonunun gerçekleşebilmesi, ontoloji yaratmayı ve bu ontolojiler üzerinde çıkarsama yapabilmeyi gerektirir. Ontoloji yaratmak ve ontolojiler üzerinde çıkarsama yapabilmek, standartlaşmış sözdizimlerini ve bu sözdizimlerine ait standartlaşmış anlamı gerektirir. Bu tez, W3C (World Wide Web Consortium) tarafından kabul edilmiş RDF tabanlı standart ontoloji biçimleme dillerini destekleyen bir çıkarsama motoru tasarımını anlatmaktadır. Standart ontoloji biçimleme dilleri, betim mantığı örnekleridir. Betim mantığı, bilgi gösterimi alanında atılmış önemli bir adımdır. Bu açıdan tezin ikinci bölümü, bilgi gösterimi tarihini, betim mantığı ile bilgi gösteriminin ortaya çıkışını anlatmaktadır. Bu bölümde betim mantığı ile bilgi gösterimi örneklerle açıklanmış ve anlamsal web ontolojileri ile betim mantığı arasındaki ilişki ortaya konmuştur. Üçüncü bölümde, ontoloji kavramı anlatılmış ve ontoloji yaratmak için kullanılan metodlar özetlenmiştir. Ontoloji modelleme için kullanılan, betim mantığı tabanlı diller incelenmiş ve bu dillerle yaratılmış ontoloji örnekleri verilmiştir. Betim mantığı tabanlı diller, anlamsal web üzerine çıkarsama yapabilmek

18 2 için gerekli kuralları gösterememektedir. Bu bölümde son olarak kuralları gösterebilmek için, önerilmiş diller özetlenmektedir. Dördüncü bölümde, çıkarsama işlemi, çıkarsama algoritmaları ve ontoloji geliştirme araçlarında kullanılmış çıkarsama araçları incelenmektedir. Bu bölümde son olarak, anlamsal web üzerinde çıkarsama işleminin nasıl olması gerektiğine dair çeşitli görüşler sunulmuştur. Beşinci bölüm, tez kapsamında tasarlanan AEGONT çıkarsama motorunu anlatmaktadır. Bu bölümde çıkarsama aracının, gerçekleştirilmiş bileşenleri ve çıkarsama için kullandığı metodlar anlatılmaktadır. Son olarak, çıkarsama motoru ile anlamsal web üzerindeki bir ontoloji sunucunun nasıl sorgulanacağına dair bir öneri sunulmuştur. Çıkarsama işlemi için, W3C üyesi olan Agfa nın Euler Proof Mechanism adlı projesinde kullanılan kurallar kullanılmıştır. Son bölüm tezin sonuçlarını içermektedir. Ek-1 de AEGONT çıkarsama motoruna ait UML modeli sunulmuştur. Ek2, tezde kullanılmış bazı terimlerin İngilizce karşılıklarının bulunduğu bir sözlüktür. Bu sözlüğün hazırlanmasında, Türkiye Bilişim Derneği nin hazırladığı sözlükten ve ODTÜ Geliştirme Vakfı na ait Mantık Terimleri Sözlüğü nden faydalanılmıştır.

19 3 2.ANLAMSAL WEB VE BETİM MANTIĞI Günümüzde birçok kişi için webde bilgiye ulaşmak gittikçe zorlaşmaktadır. Web üzerinde çalışan arama motorları çok sayıda yanıt döndürür ve döndürülen yanıtların çoğu ilgisizdir, dahası ilgili yanıtların birçoğu bunların arasında değildir. Bunun nedeni varolan web kaynaklarının makinalar tarafından anlaşılamamasıdır. Bu kaynaklar sadece bu bilgilerin ekranda nasıl görünmesi gerektiğine dair bilgi sunarlar ve içerikleri yalnızca insanlar tarafından anlaşılabilir. Anlamsal web, web kaynaklarının makinalar tarafından anlaşılabilir hale getirilmesini hedefler (Berners-Lee et al., 2001). Böylelikle bu kaynaklar hem makinalar hem de insanlar tarafından işlenebilecek ve paylaşılabilecektir. Webin bu yeni versiyonu, şu anda gerçekleştirilmiş olan ilk versiyonuna göre çok daha büyük ve güçlü olacaktır (Fensel and Musen, 2001). Verinin anlamının, önalan teorileri ile birlikte gösterilebilmesi, diğer bir deyişle ontolojiler, insan bilgisinin web üzerinde makinaların işleyebileceği biçimde saklanmasını sağlayacak ve bu veri üzerinde çalışan çok büyük rakamlarda çıkarsama servisiyle web üzerinde çok çeşitli servisler tanımlanabilecektir. Tim Berners-Lee, anlamsal webin gerçekleşme adımlarını çeşitli katmanlar halinde sunmuştur ( Şekil 2.1 ) (Berners-Lee et al.,2001). Unicode ve URI katmanları, anlamsal web üzerinde kavramları URI ler ile tanımlamayı sağlar, bu tanımlamalarda uluslararası karakter setleri kullanılır. XML, isim uzayı ve şema tanımlarının bulunduğu katman, anlamsal web tanımlarının diğer XML standartlarıyla uyumlu olmasını sağlar. RDF ve RDF şema

20 4 katmanında URI ler yardımıyla kavram tanımlamaları yapılır ve kavram tipleri belirtilir, diğer bir deyişle bu katmanda ortak sözlükler oluşturulur. Ontoloji katmanında tanımlanan sözlükler geliştirilerek farklı kavramlar arasında ilişkiler tanımlanır. Şekil 2.1. Anlamsal web katmanları. Mantık, tanıt ve güven katmanlarında çalışmalar halen devam etmektedir ve bu katmana ait bazı basit uygulamalar geliştirilmiştir. Mantık katmanı kural tanımlamalarının yapıldığı katmandır. Tanıt katmanı kuralları işleterek, güven katmanıyla birlikte, uygulamaların gerçekleştirilen tanıta güvenip güvenmeyeceği konusunda bir mekanizma gerçekleştirmeyi hedefler. Anlamsal webin amacını ortaya koyduktan sonra bu amacın yanlış olduğuna ve hiçbir zaman hedefine ulaşamayacağına dair bazı iddialar ve bu iddialara karşılık anlamsal web fikrini ortaya

21 5 koyan Tim Berners-Lee nin, 1998 yılında vermiş olduğu yanıtları sunmak yararlı olacaktır (Berners-Lee, 1998). İlk iddia dökümanların makinalar tarafından anlaşılması üzerinedir. Makinaların insani özellikler gösterebilmesi için daha önce de yapay zeka alanında çalışmalar yapıldığı ve başarıya ulaşılmadığı belirtilmiştir. Lee bu iddiaya aşağıdaki yanıtı vermiştir: Dökümanların makinalar tarafından anlaşılabilir olması makinaların insani yeteneklere sahip olmasını sağlayan sihirli bir yapay zekayı gerektirmez. Makinaların varolan düzgün tanımlanmış veriler üzerinde, düzgün tanımlanmış işlemleri gerçekleştirerek, düzgün tanımlanmış bir problemi çözme yeteneğini gösterir. Makinaların insanların dilini anlaması yerine, insanların ek çaba göstermelerini gerektirir. Anlamsal webin daha önce geliştirilmiş bilgi gösterim sistemlerinin bir tekrarı olduğu iddiasına karşılık, aradaki farklara değinilmiştir: Anlamsal webin daha önce geliştirilmiş ve beklenen etkiyi gösterememiş KIF ve cyc gibi bilgi gösterimi sistemlerinin bir uzantısı olduğu kısmen doğru olmakla birlikte, bu sistemler bilgiyi düzenlerken çok merkeziyetçi bir yaklaşım içerisindedirler. Örnek olarak cyc ontolojileri bir kavram için herkesin aynı terimi kullanmasını öngörmektedir. RDF, bunun yerine kavramları URI kullanarak isimlendirmeyi önerir. Bu sistemlerin iki temel problemi olan fiziksel merkeziyetçilik ve global tutarlılığı sağlama hedefini ortadan kaldırır. Bu yanıtlara ek olarak anlamsal web üzerinde bilginin eksik ve parçalı olarak duracağı, dolayısıyla web üzerindeki sorguların her zaman doğru yanıt döndürmesinin hedeflenmediğini belirtmekte fayda vardır. Dahası her sorgu makul zamanda yanıtlanmayabilir veya her sorgu sonlanmayabilir.

22 6 Anlamsal webin hedeflediği sınırları belirttikten sonra, verinin makinalar tarafından anlaşılabilir olmasını sağlayabilmek için yapılmış bilgi gösterimi çalışmalarından bahsedilecektir. Daha sonra anlamsal web dillerinin büyük ölçüde temel aldığı betim mantığı ile bilgi gösterimi üzerinde durulacaktır. 2.1 Bilgi Gösteriminin Tarihçesi Birçok uygulamanın gittikçe daha büyük miktarda veri işlenmesini gerektirmesi, bilginin makinaların anlayıp işleyebileceği bir biçimde sunulması üzerinde çalışmaları yoğunlaşmıştır ve bilgi gösterimi başlı başına bir araştırma alanı olmuştur. Anlamsal ağlar, yapılandırılmış bilgi gösterimi için atılmış ilk adımlardan biridir. Quillan tarafından ortaya atılan anlamsal ağlar, bilgiyi, birbirine değişik tipte bağlarla bağlanmış bir küme düğüm şeklinde gösterir (Collins and Quillan, 1963). Tipik olarak düğümler kavramları, bağlar ise kavramlar arasındaki ilişkileri gösterir. Şekil 2.2 de Collins ve Quilllan ın insanlarda bilgi depolama ve tepki süresi üzerine yaptıkları çalışma sırasında geliştirdikleri anlamsal ağ görülmektedir (Harmon and King, 1985). Anlamsal ağların en büyük eksiği açık bir anlam sağlayamamalarıdır. Anlamsal ağların bu altyapıyı sağlayamamalarının nedeni, bağların ve düğümlerin farklı anlamlar taşımasından kaynaklanır. Bir düğüm bütün örnekleri için geçerli olan özellikleri ile birlikte bir kavramı gösterebildiği gibi, özgün özellikleri olan tek bir nesneyi de gösterebilir. Benzer şekilde iki düğüm arasındaki bir bağ, bir kavramın tanımlanmasında rol oynayabildiği gibi, gerçek dünyadan iki nesne arasındaki ilişkiyi de

23 7 gösterebilir. İlk örneklerdeki düğüm ve bağ tipleri içlemsel bilgiyi saklarlar, ikinci tip örnekler ise kaplamsal bilgi sağlarlar. Bu ayrım bütün bilgi gösterimi biçimciliklerindeki temel gerçektir. Fakat anlamsal ağlarda, içlemsel ve kaplamsal bilgi arasındaki ayrım yapılamamaktadır. Şekil 2.2. Anlamsal Ağlarla bilgi gösterimi. Anlamsal ağların açık bir anlam sağlayamamaları, yapay zeka uygulamalarında kullanımlarını kısıtladı. Bir bilgi gösterimi dili, anlamsal bir teorisi olan diğer bir deyişle dilin kullandığı ifadelerin gerçek dünyadaki nesnelerle olan ilişkilerinin nasıl olduğu ortaya konmuş olan, biçimsel bir dil olmalıdır (Hayes, 1979). Bu eksiklerine rağmen anlamsal ağlar, çerçeve tabanlı

24 8 sistemlerle birlikte betim mantığının ortaya çıkmasında etkili olmuşlardır ve bu açıdan önem taşırlar. Diğer taraftan, betim mantığı kadar kuvvetli bir anlam sağlayamamalarına karşın, birçok anlamsal ağ, soyutlama sağlayabilmek için özel bağlar kullanır. Bu amaçla kullanılan bağlardan en bilinen iki örneği is-a ve instance-of bağlarıdır. Bir is-a bağı, bir kavramın, diğerinin alt kavramı olduğunu gösterir, instance-of bağı ise bir kavramın, diğer bir kavramın örneği olduğunu gösterir. is-a bağlarının birleşmesi sınıflar üzerinde bir yarısıralama belirtir; bu sıralama taksonomi olarak adlandırılır. is-a ilişkisiyle bağlanan alt kavram, üst kavramın özelliklerini kalıt alır, bu monoton diğer bir deyişle kalıtımlı ağların tipik işleyişidir. Çerçeveler, bilgi gösterimi alanındaki bir başka önemli gelişmedir (Minsky,1975). Böyle bir sistemde, bir çerçeve, öznitelikleri olan bir kavramı belirtir. Bir öznitelik; çokluk kısıtları, varsayılan değer ve çeşitli yordamlar gibi bir öznitelikle ilgili bütün bilgileri tanımlayabilen yuvalarla tanımlanır. Her yuvanın bir önalanı vardır. Bu önalan dizgi veya tamsayı gibi somut bir önalan olabildiği gibi bir çerçeve de olabilir. Dahası bir çerçevenin diğer bir çerçevenin alt-çerçevesi olduğunu belirtilebilir dolayısıyla altçerçeve diğerinin bütün özelliklerini, yuvalarını kalıt alır. Bir çerçeve bir kavramı belirtebildiği gibi, bir kavrama ait bir örneği de belirtebilir. Bu durumda çerçevenin, kendisini örneği olduğu kavrama bağlayan özel bir yuvası bulunur. Bir örneği belirten bir çerçeve, yuvaları ait olduğu kavramdan kalıt alır.

25 9 Çerçeve tabanlı sistemlerde, içlemsel ve kaplamsal bilginin ayrılamaması ve işlevsel eklentilerin varlığı, bu sistemlerde anlamsal ağlarla benzer problemleri oluşturmuştur. KL-ONE (Brachman and Schmolze, 1985), çerçeve tabanlı sistemlere dayalı bir sistemdir, bu sistemde anlamsal ağların ve çerçeve tabanlı sistemlerin eksikleri fark edilmiştir. İlk olarak bu eksikleri tamamlamak amacıyla Brachman ın sunduğu yapılandırılımış kalıtımlı ağlarla ilgili üç temel fikir, betim mantığının temelini oluşturmuştur (Brachman, 1979) : Temel yapı taşları atomik kavramlar, atomik roller ve örneklerdir. Dilin sınırlı bir anlatım gücü vardır. Bunun nedeni dilin karmaşık kavramları ve karmaşık rolleri tanımlamak için küçük bir yapıtaşı kümesini kullanmasıdır. Kavramlar ve örnekler arasında açıkça belirtilmemiş ilişkiler, çıkarsama yordamları yardımıyla ortaya çıkarılabilirler. Örnek olarak kavramlar ve örnekler arasındaki kapsama ilişkileri modellemenin önemli bir kısmını oluştururlar. Kullanıcıların is-a ilişkilerini açıkça modellediği anlamsal ağların tersine kapsama ilişkileri ve örnek ilişkileri sınıf tanımlarından ve örnek özelliklerinden çıkarılabilecektir. 2.2 Betim Mantığına Genel Bakış Anlamsal ağlar ve çerçeve tabanlı sistemlerle geliştirilen birçok uygulama sonrasında, bilginin sunumunda kullanılan yapıların anlamının oluşturulması gerektiğinin farkına varıldı.

26 10 Böylelikle bu yapıları kullanarak birtakım çıkarsamalar da yapılabilecekti. Anlamsal ağların ve çerçeve tabanlı sistemlerin açıklarını kapatmak amacıyla, bir önceki bölümde anlatılan, Brachman ın yapılandırılmış kalıtımlı ağlarla ilgili üç temel fikri ile ortaya çıkan betim mantığı, bir uygulama önalanındaki bilgiyi modellemek için öncelikle bu önalandaki ilgili kavramları belirten bir terminoloji oluşturur, daha sonra bu terminolojiyi kullanarak bu önalandaki nesnelerin ve örneklerin özelliklerini belirtir. Betim mantığı, anlamsal ağlar ve çerçeve tabanlı sistemler gibi kendi öncellerinden farklı olarak anlam içerir. Bir ağa anlam kazandırabilmek amacıyla, kullanılan yapı elemanları için bir dil tanımlanması ve bu dilin dizileri için bir çevirimin sağlanması gerekir. Betim mantığının bir anlamının olması, betim mantığı ile çıkarsama yapılabilmesini sağlar. Betim mantığının karakteristik özelliği olan çıkarsama, bilgitabanında açıkça belirtilmiş bilgiyi kullanarak yeni bilgilere ulaşabilme olarak tanımlanır. Bu bölümde betim mantığının bilgitabanlı uygulamalarda nasıl kullanılacağı gösterilecektir. Herhangi bir bilgitabanı ele alındığında, içlemsel bilgi ve kaplamsal bilgi arasında kesin bir ayrım olduğu açıkça görülebilir. İçlemsel bilgi problemin önalanıyla ilgili genel bilgi sunar, kaplamsal bilgi ise bir probleme özgü bilgi anlamına gelir. Betim mantığı bilgitabanı da benzer şekilde iki bileşenden oluşur: TBox ve ABox. TBox, içlemsel bilgiyi bir terminoloji şeklinde saklar. Bu terminoloji kavramların genel özelliklerinin tanımlanmasıyla oluşur. İçlemsel bilgi genellikle değişmez bilgidir. TBox

27 11 içerisindeki en temel tanımlama formu, kavram tanımıdır. Daha önceden tanımlanmış kavramlar kullanılarak yeni kavramlar tanımlanabilir. Örnek olarak, Kadın kavramı daha önce tanımlanmış olan Dişi ve İnsan kavramları yardımıyla aşağıdaki gibi tanımlanabilir: Kadın İnsan Dişi Böyle bir tanımlama, mantıksal eşitlik olarak adlandırılır ve bir örneği kadın olarak sınıflandırabilmek için yeterli ve gerekli koşulları sağlar. Betim mantığı bu açıdan, bilgi gösteriminde kullanılan diğer yöntemlerden, örnek olarak sadece gerekli koşulları sağlayanlardan, daha güçlüdür. Bu özelliğine rağmen betim mantığında birtakım kabullenmeler bulunmaktadır: Bir kavram için tek bir tanımlama yapılabilir. Tanımlamalar çevrimsizdir diğer bir deyişle kavramlar, kendilerini veya dolaylı yoldan kendilerine referans veren diğer kavramları kullanarak tanımlanamazlar. Böyle bir kısıtlama birçok betim mantığı bilgitabanına özgüdür ve tanımlanmış her kavramın, tanımının sağ tarafındaki kavramları yenileyerek, atomik kavramlardan oluşmuş daha karmaşık bir yapıya yalnızca tek bir şekilde dönüştürülebileceği anlamına gelir. Yukarıdaki prensipleri temel alarak, bir terminoloji oluşturmanın temel adımı, sınıflandırma işlemidir. Sınıflandırma, yeni bir kavramın, kavramların hiyerarşisinde uygun bir yere konulmasıdır. Yeni tanımlanan bir kavramın yeri, bu kavramı kapsayan en özel kavram ile bu kavramın kapsadığı en genel kavram arasındadır.

28 12 Bir terminoloji oluşturduktan sonra bilgitabanındaki kaplamsal bilginin oluşturulması gerekir. ABox, kaplamsal bilgiyi saklar. Kaplamsal bilgi, önalandaki örneklere özgü bilgidir ve zamana bağlı olarak sürekli bir değişim içerisindedir. Aşağıda önalana ait bir örnek bilgisi görülmektedir: Dişi İnsan( Ayşe) Bu ifade, Ayşe örneğinin dişi bir insan olduğunu belirtir. Daha önceden verdiğimiz tanıma göre yukarıdaki ifade Ayşe nin Kadın sınıfının örneği olduğu ifadesine eşittir. Benzer olarak; çocuk( Ayşe, Ali ) ifadesi, Ayşe nin Ali isimli bir çocuğu olduğunu belirtir. Şekil 2.3 de, betim mantığı tabanlı bir bilgi sisteminin yapısı görülmektedir. Bilgitabanındaki bilgi, TBox ve ABox olmak üzere iki kısımdan oluşmaktadır. Betim mantığı tabanlı bir sistem, verilen kurallar ve bilgitabanındaki bilgiyi kullanarak yeni bilgilere ulaşabilme yeteneğine sahiptir. Böylelikle kullanıcılardan gelen sorgulara doğru ve eksiksiz yanıtlar döndürebilir. Şekil 2.3. Betim mantığı tabanlı bir bilgi sistemi.

29 Betim Mantığı ile Bilgi Sunumu Betim mantığında temel anlatımlar, atomik kavramlar ve atomik rollerdir. Daha karmaşık anlatımlar, bu iki temeli ve dilin yapı taşlarını kullanarak oluşturulurlar. Soyut gösterimde, A ve B harfleri atomik kavramları, R atomik rolleri, C ve D kavram anlatımlarını gösterir. Betim mantığı örnekleri, birbirlerinden sahip oldukları yapı taşları ile ayrılırlar. Bir betim mantığı örneğinin anlatım gücünü gösterebilmek için AL dil ailesinden bir dil ile eşleştirme yapılır. AL, Smith-SchauB ve Smolka tarafından 1991 yılında ortaya atılmış soyut bir dildir (Smith-SchauB and Smolka, 1991). Bu ailenin diğer elemanları, AL dilinin uzantılarıdır. En temel betim mantığı özelliklerini taşıyan AL dili ile kavram tanımları aşağıdaki sözdizim kuralına göre oluşturulur: C, D A T A C D R.C R.T AL diliyle yapılabilecek kavram tanımlarına örnekler verebilmek için, iki atomik kavram olarak, İnsan ve Dişi kavramları kullanılacaktır. Yukarıdaki kuraldan da anlaşılabileceği gibi AL dili ile yalnızca atomik sınıfların, tümleyeni tanımlanabilir. Bütün sınıfların alt sınıfı olan boş sınıf, bütün sınıfları kapsayan evrensel sınıf ve atomik sınıf tanımları

30 14 yapılabilir. İki sınıfın kesişimiyle oluşan yeni bir sınıf tanımlanabilir. Örnek olarak, İnsan Dişi anlatımıyla Kadın sınıfının tanımı oluşturulabilir. çocuk adında bir atomik rol olduğu varsayılırsa, bu rol üzerinde değer kısıtı uygulanarak çocuk sahibi olmayan insanlar kavramı, İnsan çocuk. şeklinde gösterilebilir. Sınırlı tikel niceleme ile en az bir çocuğu olan insanlar, İnsan çocuk.t şeklinde ifade edilebilir. AL kavramlarının biçimsel anlamlarını tanımlayabilmek için, boş olmayan bir küme I (yorumlama önalanı) ve yorumlama fonksiyonundan oluşan yorumlamalar (I), kullanılır. Yorumlama fonksiyonu, her kavramı (A), A I I olmak üzere bir kümeye ve her atomik rolü (R), R I I X I olmak üzere bir ikili ilişkiye atar. Yorumlama fonksiyonu kavram tanımları için aşağıdaki anlatımlarla genişletilir: T I = I I = ( A) I = I \ A I (C D) I = C I D I ( R.C) I = {a I b. (a,b) R I b C I } ( R.T) I = { a I b. (a,b) R I } AL diline ek yapı taşlarının eklenmesiyle, bu dilin anlatım gücü daha yüksek uzantıları elde edilir. Çizelge 2.1 AL dil ailesini göstermektedir.

31 15 Çizelge 2.1. AL dil ailesi. FL - ve FL 0 dilleri, AL dilinden atomik tümleme ve sınırlı tikel nicelemenin çıkarılmasıyla oluşurlar. AL dilinin uzantılarından, ALU dili, AL diline kavramların birleşiminin eklenmesiyle oluşur. Kavramlar C ve D olmak üzere, kavramların birleşimi C D şeklinde gösterilir ve aşağıdaki gibi yorumlanır: (C D) I = C I D I. Kadın ve Erkek, atomik kavramlar olmak üzere Kadın Erkek, İnsan sınıfını tanımlar. Bir diğer uzantı, ALE dilidir. Bu dil AL diline tikel niceleyici ekler. Tikel niceleyici R.C şeklinde yazılır ve aşağıdaki gibi yorumlanır: ( R.C) I = {a I b.(a,b) R I b C I }. İnsan ve Dişi kavramları iki atomik kavram, çocuk bir atomik rol olmak üzere, İnsan çocuk.dişi, kız çocuk sahibi insanlar kavramını gösterir.

32 16 ALC dili, AL dilinden farklı olarak sadece atomik sınıfların değil, bütün kavramların tümleyenlerini tanımlayabilir. Tümleme aşağıdaki gibi yorumlanır: ( C) I = I \ C I. AL diline, sayı kısıtlarının eklenmesiyle ALU uzantısı oluşur. Sayı kısıtları, nr (en az kısıtı) ve nr (en fazla kısıtı) şeklinde gösterilirler ve. kümenin eleman sayısını belirtmek üzere, aşağıdaki gibi yorumlanırlar: ve ( nr) I = {a I {b (a,b) R I n }, ( nr) I = {a I {b (a,b) R I n }. AL dilininin yukarıda anlatılan yapı taşlarının herhangi bir alt kümesiyle genişletilmesiyle farklı AL dilleri oluşur. Her AL dili aşağıdaki biçimde bir dizgiyle adlandırılır: AL[U][E][N][C]. Örnek olarak, ALEN dili, AL dilinin tikel niceleyici ve sayı kısıtları ile genişletilmesiyle oluşur. Anlamsal açıdan bakıldığında bu dillerin herbiri, birbirinden ayrık değildir. C D ( C D) ve R.C R. C eşitlikleri gözönüne alındığına, kavramların birleşimi ve tikel niceleyicinin, tümleme ile ifade edilebileceği görülür. Yine kavramların birleşimi ve tikel niceleyici kullanılarak, tümleyen ifade edilebilir. Bu nedenle ALC dili ALUE dili ile eşdeğer anlatım gücüne sahiptir.

33 Aynı nedenden ötürü, ALUE dili de ALC dili ile eşdeğer anlatım gücündedir. Bu iki dil birbirlerinin yerine geçebilirler. Betim mantığı yapı taşlarının artmasıyla, anlatımlı betim mantığı ortaya çıkmıştır. Anlatımlı betim mantığı, betim mantığı yapı taşlarına, nitelendirilmiş sayı kısıtları (Q), öğelik kolleksiyonları (O), somut önalanlar, çevrik roller (I), geçişken roller, rollerin birleşimi, rol düzenleme, rol kimliği, yansımalı geçişken kapanış, rol hiyerarşisi (H) gibi yapı taşlarını ekler. Anlatımlı betim mantığı örnekleri (Çizelge 2.2) için çok uzun isimlerden kaçınmak amacıyla, ALC dilinin geçişken rollerle genişletilmesiyle oluşan ALC + R dili, kısaca S simgesi ile gösterilir. S dilinin, sayı kısıtları ve çevrik rollerle genişletilmesiyle SIN; rol hiyerarşileri, çevrik roller ve sayı kısıtlarıyla genişletilmesiyle SHIF; çevrik roller ve nitelendirilmiş sayı kısıtlarıyla genişletilmesiyle SHIQ dili elde edilir. 17 Çizelge 2.2. Anlatımlı betim mantıkları. Bu bölümde, anlamsal webin ne olduğu ve hedeflediği sınırlar özetlenmektedir. Anlamsal web ontolojileri yaratmak için sunulmuş ontoloji biçimleme dillerinin temelinde yer alan betim

34 18 mantığı konusu ve betim mantığı ile bilgi gösterimi incelenmiştir. Bir sonraki bölümde, ontoloji kavramı daha ayrıntılı olarak incelenmekte ve ontoloji biçimleme dilleri anlatılmaktadır.

35 19 3.ONTOLOJİLER Ontoloji kelimesinin felsefe alanındaki karşılığı varlık bilimi demektir. Son zamanlarda bu kelime bilgi gösterimi alanında da karşılık bulmuştur. Ontoloji kelimesi için ilk ortaya atılan tanımlardan biri Neches e aittir (Neches et al, 1991): Bir ontoloji belli bir alana ait bir sözlük oluşturan temel terimleri ve ilişkileri ve yine bu sözlük için bir uzantı oluşturabilmek amacıyla terimleri ve ilişkileri birleştiren kuralları tanımlar. Bu anlatım bir ontoloji oluşturmanın ne anlama geldiğini göstermektedir. Buna göre bir ontoloji belli bir önalandaki temel terimleri, bu terimler arasındaki ilişkileri ve önalanla ilgili kuralları belirtir. Ontoloji, sadece içerisinde açıkça belirtilmiş tanımları içermez, aynı zamanda bu ontolojiden çıkarsanabilecek bilgiyi de içerir. Birkaç yıl sonra Gruber aşağıdaki ontoloji tanımını ortaya koymuştur (Gruber, 1993). Buna göre; Bir ontoloji ortak bir kavramsallaştırmanın biçimsel gösterimidir. Daha sonra Gruber in tanımı Studer tarafından aşağıdaki gibi genişletilmiş ve açıklanmıştır (Studer et al, 1998): Bir ontoloji ortak bir kavramsallaştırmanın açık ve biçimsel gösterimidir. Kavramsallaştırma, dünya üzerinde gözlemlenebilen herhangi bir olaya veya duruma ait kavramların belirlenmesiyle, bu olay veya durumun soyut bir modelini oluşturma anlamına gelir. Gösterimin açık olması, kullanılan kavramların tipinin ve bu kavramların kullanımıyla ilgili kısıtların açıkça belirtilmesidir. Biçimsel gösterim, yaratılan ontolojinin makinalar tarafından okunabildiği anlamına gelir. Kavramsallaştırmanın ortak olması, ontolojinin genel olarak kabul edilmiş bilgiyi modellemesidir.

36 20 Bütün bu tanımları temel alarak birçok ontolojinin en önemli unsurunun kavramlar olduğu sonucuna varılır. Kavramlar, önalandaki nesne sınıflarını belirtirler. Bu kavramlara ait nitelikler, bu sınıflara ait özelliklere karşılık gelir. Kavram nitelikleri üzerinde kısıtlama yapılabilir. Kavramlar arasındaki hiyerarşi, taksonomi olarak adlandırılır. Ontolojiler, seyrek ve yoğun ontolojiler olmak üzere iki grupta incelenir. Yalnızca kavramları, kavram taksonomisini, kavramlar arasındaki ilişkileri ve bu kavramlara ait nitelikleri içeren ontolojiler seyrek ontolojiler olarak nitelendirilirler. Yoğun ontolojiler, önalandaki bu bilgilere ek olarak, aksiyomları ve kısıtları kullanarak, bilginin içerdiği anlamı da kapsarlar. Ontoloji ve bu ontolojideki kavramlara ait örnekler birleştirildiğinde bilgitabanları oluşturulur. Ortak bir ontoloji kullanan, birçok farklı bilgitabanı olabilir. Ortak bir ontolojiyi kullanan bilgitabanlarını birleştirmek ve üzerlerinde çıkarsama yapmak daha kolaydır. Bu nedenle bir ontolojinin, bir grup tarafından kabul edilmiş genel bilgiyi göstermesi, bu ontolojinin insanlar ve yazılımlar tarafından tekrar kullanılabilirliğini ve paylaşılabilirliğini arttırır. 3.1 Ontoloji Modelleme Gruber, ontoloji modellemek amacıyla çerçevelerin ve birinci basamak mantığın kullanılmasını önerdi. Gruber ontoloji bileşenlerini, kavramlar, ilişkiler, fonksiyonlar, biçimsel aksiyomlar ve kavram örnekleri olarak gruplandırdı. Daha sonraları, KL-ONE (Brachman and Schmolze, 1985), Krypton (Brachman et al, 1983), Classic (Borgida et al, 1989), LOOM (MacGregor, 1999) ve Kris (Baader and Hollunder, 1991)

37 21 gibi sistemler ile birlikte yoğun ontolojilerin modellenmesinde betim mantığının kullanılması yaygınlaştı. Bir betim mantığı bilgitabanı, TBox ve ABox olarak iki kısımda incelenir. TBox, içlemsel bilgiyi bir terminoloji şeklinde saklar. Bu terminoloji kavramların genel özelliklerinin tanımlanmasıyla oluşur. ABox bu kavramlara ait örnekleri içerir. Betim mantığı tabanlı sistemler ontolojileri üç bileşen ile modeller: kavramlar, roller ve örnekler. Kavramlar, çerçeve tabanlı sistemlerde olduğu gibi nesne sınıflarını belirtir. Roller bu kavramlar arasındaki ikili ilişkilerdir. Bazı betim mantıkları kavramlar arasındaki n-li ilişkilerin modellenmesini de destekler. Üçüncü bileşen, bu kavramlara ait örnekleridir. Bir betim mantığı örneği, önceden tanımlanmış terimleri ve dile ait temel yapıları kullanarak yeni sınıflar ve roller tanımlar. Dile ait temel yapı taşlarının değişik kombinasyonları ile farklı betim mantıkları ortaya çıkmıştır. Yapı taşlarının kombinasyonu, dilin anlatım gücünü ve çıkarsama zorluğunu belirler. Dilin anlatım gücü yükseldikçe, çıkarsama güçleşir. Bazı betim mantığı tabanlı sistemlerde ABox, çıkarsama için gerekli olan kuralları tanımlar. Bu kuralların nerede yer alacağı tartışılmaktadır. Birçok kişi bu kuralların, içlemsel bilgi olduğunu ve TBox kısmında yer almasını savunmaktadır (Gomez-Perez et al, 2004). Ontoloji modellemek için önerilen bir diğer yöntem yazılım mühendisliği tekniklerini kullanmaktır. Yapay zeka alanı dışında da yaygın olarak kullanılması ve kolay anlaşılması nedeniyle, ontoloji modellemek için UML(Unified Modeling

38 22 Language)(Rumbaugh et al., 1998) kullanılması önerisi önemli açıkları nedeniyle genel kabul görmemiştir. Bir UML diyagramında, sınıflar üç kısma ayrılmış kutularla gösterilir. Bu kısımlar sınıfın, ismini, niteliklerini ve işlevlerini belirtir. Ontoloji modellerken sınıflar, kavramlara karşılık gelir ve bu sınıfların işlev kısmı kullanılmaz. UML diyagramlarında sınıflar ve sınıf örneklerinin gösterimleri arasında fark yoktur. Sınıf örnekleri, ait oldukları sınıflara kesikli çizgilerle bağlanmış nesneler olarak gösterilirler. Nitelik anlatımları, nitelik tiplerini, bu niteliklerin değerlerini ve varsayılan değerlerini gösterir. Nitelik çoklukları, OCL(Object Constraint Language)(Warmer and Kleppe, 1998) kullanılarak gösterilir ve bu OCL ifadeleri kavramlara not olarak eklenir. Kavram hiyerarşileri, sınıflar arasındaki genelleme ilişkileriyle oluşturulur. OCL ile ayrık ve tüketici bilgi gösterilemez. Sınıflar arasındaki ikili ilişkiler doğrudan gösterilebilir fakat n-li ilişkileri gösterebilmek için bir sınıfa daha ihtiyaç duyulur. Biçimsel aksiyomlar OCL ile gösterilebilmesine rağmen, bu ifadelerin hiçbiri işlenemez. Diğer bir deyişle UML modelleri biçimsel anlamdan yoksundur (Gomez-Perez et al, 2004). Veritabanı teknolojilerinin, ontoloji modellemek için kullanılması önerilen bir diğer yaklaşımdır. Veritabanı modelleme için önerilmiş nesneye dayalı yaklaşımlar, ER diyagramlar gibi birçok yöntem bulunmaktadır. Burada yaygın olarak kullanılmasından ötürü ER diyagramları örnek gösterilecektir. Genel olarak ontoloji kavramları, ER varlıklarına; öznitelikler, ER özniteliklerine; kavramlar arası ilişkiler, ER varlıkları arasındaki ER ilişkilerine karşılık gelir. Ontolojilerin, makinalar tarafından anlaşılması diğer bir gerekliliktir. Bu nedenle, ER diyagramlarıyla

39 23 modellenmiş ontolojiler SQL diline çevrilirler. SQL diline ait insert sözcüğü ile, kavramlara ait örnekler ontolojiye eklenebilir. Tutarlılık kuralları, SQL tetiklemeleri olarak gösterilebilirler. SQL görünümleri, veritabanı tabloları üzerinde çıkarsama işlemi için ve sorgu yaratmak için kullanılabilirler. Ontolojileri modellemek için yazılım teknikleri ve veritabanı teknolojileri gibi seçenekler olmasına rağmen, ontoloji geliştirmek için yapay zeka tabanlı dillerden faydalanmak en iyi yöntemdir. Son zamanlarda yoğunlaşan anlamsal web çalışmaları, web dökümanlarının ontolojilerle ilişkilendirilerek, webin sadece insanlar tarafından değil makinalar tarafından da anlaşılabilir hale getirilmesini öngörmektedir. Bu nedenle, web ontolojilerinin RDF, OWL gibi yapay zeka tabanlı biçimleme dilleriyle modellenmesi kabul görmüştür. Burada belirtilmesi gereken bir diğer nokta bir önalan modelinin, ontoloji olabilmesi için bu modelin ontoloji tabanlı diller veya ontoloji biçimleme dilleriyle modellenmiş olmasının yeterli olmayacağıdır. Örnek olarak OWL ile yazılmış fakat ontoloji tanımlarında yer alan bileşenlere sahip olmayan bir döküman ontoloji olarak nitelendirilemez. 3.2 Ontoloji Dilleri 1990 ların başında, yapay zeka tabanlı ilk ontoloji dilleri yaratıldı. Bu diller, birinci basamak mantık, çerçeveler ve betim mantığı tabanlı dillerdi. Birbirinden farklı dillerde yaratılmış ontolojiler arasında iletişimi sağlamak için OKBC (Open Knowledge Base Connectivity)(Chaudhri et al, 1998) protokolü geliştirildi.

40 24 Bu grupta ilk yaratılan dil olan CycL (Lenat and Guha, 1990) nin temelinde çerçeveler ve birinci basamak mantık vardır yılında geliştirilen KIF (Genesereth and Fikes, 1992) birinci basamak mantığı kullanır. KIF ile ontoloji geliştirmek zor olduğundan daha sonra bu dilin üzerine Ontolingua geliştirildi yılında geliştirilen OCML (Motta, 1999) işlevsel Ontolingua olarak tanıtıldı, bu dilde yaratılan ifadeler Ontolingua da yaratılmış olanlara çok benzemektedir. Aynı yıllarda, sadece ontolojileri değil, genel bilgitabanlarını modellemek üzere LOOM yaratıldı. LOOM, betim mantığını ve kuralları temel alır. Son olarak 1995 yılında gerçekleştirilen FLogic (Kifer et al, 1995) çerçeveleri ve birinci basamak mantığı birleştirir. Buraya kadar anlatılan ontoloji dilleri, geleneksel ontoloji dilleri olarak gruplandırılır. Anlamsal web alanındaki çalışmaların yoğunlaşması ile birlikte web karakteristiklerini taşıyan ikinci kuşak ontoloji dilleri yaratılmaya başlandı. Bu diller web tabanlı ontoloji dilleri veya ontoloji biçimleme dilleri olarak bilinir. Bu dillerin sözdizimleri HTML ve XML gibi biçimleme dillerine dayanır. Şekil 3.1 ontoloji biçimleme dillerini göstermektedir (Berners-Lee, 1999). Şekil 3.1. Ontoloji biçimleme dilleri.

41 25 İlk ontoloji biçimleme dili olan SHOE, HTML tabanlıydı daha sonra bu dilin sözdizimi XML e adapte edildi. Bu dil dışında bütün ontoloji biçimleme dilleri XML tabanlıdır. Ontoloji biçimleme dillerinin anlatım gücü bazı kriterlere göre değerlendirilir. Dil; kavram, nitelik ve kavramlara ve niteliklere ait örnek tanımlayabilecek yapılara sahip olmalıdır. Bir başka özellik dilin fonksiyon ve n-li ilişki tanımlayabilme yeteneğidir. Fonksiyonlar, aynı n-1 argüman için her zaman aynı n. argümana sahip özel ilişkiler olarak tanımlanır. n-li ilişkilere örnek vermek gerekirse, Şarap ile Üzüm kavramları arasında üretilir adında ikili bir ilişki tanımlanabilir. Burada üretilme işleminin hangi tarihte yapıldığı eklenirse ilişki Şarap, Üzüm ve Tarih kavramları arasında üçlü bir ilişki olur. İlişki üzerinde önalan ve artalan kısıtlarının belirtilebilmesi, ontoloji üzerinde bütünlük testlerinin gerçekleştirilmesine olanak sağlar. Nitelik çokluğu ve nitelik tipi kısıtları dilin anlatım gücünü arttıran diğer faktörlerdir. Örnek olarak bir şarabın yalnızca bir üreticisinin olabileceği, üretici niteliği üzerinde çokluk kısıtı ile olasıdır. Bir şarabın renginin kırmızı veya beyaz olabileceği, renk niteliği üzerinde tip kısıtlaması ile gerçekleştirilir. Diğer bir özellik bir kavramın bütün örnekleri için, örneğe ait nitelik değeri belirtilmemişse, bu niteliğe varsayılan değer atanmasıdır. Yerel veya global nitelik tanımlayabilmek başka bir özelliktir. Yerel nitelik tanımlayabilme, farklı kavramlar için aynı isimle nitelik tanımlayabilmeyi sağlar. Örnek olarak iki ayrı kavram olan İnsan ve Ağaç ın, boy isminde özelliği olabilir. Global nitelik ise bütün kavramlara uygulanabilen, önalanı belirtilmemiş niteliktir.

42 26 Kavramlar arası kapsama ilişkilerini belirtebilme, bütün ontoloji biçimleme dillerinin ortak özelliğidir. Başka bir özellik bir kavramın diğer bir kavram tarafından kapsanmadığını belirtebilmektir. Bir kavramın belirtilen alt sınıflarına ait örnekleri dışında da örnekleri olabilmesi ayrık parçalama olarak adlandırılır. Örneğin Kuşlar ve Sürüngenler, Omurgalılar kavramının alt kavramları olmalarına rağmen Omurgalılar sınıfının kuş ve sürüngen örneği olmayan örnekleri de bulunmaktadır. Bir kavramın, belirtilen alt kavramlarına ait örnekleri dışında örneğe sahip olmaması ise tüketici parçalama olarak adlandırılır. İnsan kavramına ait bütün örnekler, İnsan kavramının alt kavramları olan Kadın veya Erkek kavramının örneği olmak zorundadırlar. Tüketici ve ayrık parçalamayı belirtebilecek, dil yapılarının bulunması dilin anlatım gücünü arttırır. Önemli bir özellik ayrık kavramlar tanımlayabilmektir. Kadın ve Erkek kavramları, ayrık kavramlardır. Çünkü Kadın ve Erkek kavramlarının ortak bir örnekleri olamaz. İki element arasında tanımlanmış ilişkilere deyim denir. Başka bir örnek tarafından belirtilen deyimlere iddia adı verilir. Örnek olarak Ayşe, Zeynep in bilgisayarı olduğunu söyledi. bir iddiadır. Kavramlar ve nitelikler için doğal dilde açıklama satırları yazabilmeye belgeleme adı verilir ve bütün ontoloji biçimleme dillerinin sahip olduğu bir özelliktir. Tezin bu bölümünde, geliştirilen uygulama bakımından önem taşıyan RDF(S) ve OWL dilleri, anlatılan kriterlere göre değerlendirilecektir.

43 RDF/RDFS RDF (Resource Description Framework) dili, W3C tarafından web üzerindeki kaynaklar hakkındaki bilgiyi modellemek amacıyla geliştirildi. RDF, web üzerindeki bilginin insanlara gösterilmesinden çok makinalar tarafından işlenebilir olmasını hedeflemektedir. RDF dilinin anlatım gücü çok düşüktür ve ontoloji geliştirmek için yeterli bir dil değildir. Buna rağmen diğer ontoloji biçimleme dillerine öncü olması bakımından önem taşır. RDF, web kaynaklarını, bu kaynaklara ait nitelikleri ve bu kaynaklar arasındaki ilişkileri göstermek amacıyla kullanılır. Diğer bir deyişle önceden yaratılmış bir ontolojiye, RDF ile örnekler eklenebilir. RDF için üç çeşit gösterim biçimi kullanılır: RDF çizgeleri (Şekil 3.2), RDF üçlüleri (Şekil 3.3) ve RDF/XML sözdizimi (Şekil 3.4). Şekil 3.2. RDF çizgesiyle bilginin sunumu.

44 28 Şekil 3.3. RDF üçlüleriyle bilginin gösterimi. Şekil 3.4. RDF/XML sözdizimi ile bilginin gösterimi. Web üzerinde ortak sözlükler oluşturabilmek için, RDF dili üzerine RDFS (RDF Schema) dili geliştirildi. RDF şema, diğer

45 29 RDF kaynaklarının özelliklerini anlatabilmek için kullanılan RDF kaynakları topluluğu olarak tanımlanabilir. Bu şema sözlüğü rdfs isimuzayında tanımlanmıştır. RDFS, RDF diline ek olarak sınıf hiyerarşileri tanımlamaya, sınıf ve nitelik tanımları yapmaya, nitelikler üzerinde önalan ve artalan kısıtları yaratmaya olanak sağlar. Kaynaklar bir veya daha fazla sayıda sınıfın örneği olabilirler. Kavramlar hiyerarşik bir biçimde düzenlenebilirler. Şekil 3.6 da, Şekil 3.5 te görülen örneğin, RDFS/XML sözdizimiyle modellenmiş hali görülmektedir. Burada rdfs:class, rdfs:property, rdfs:domain ve rdfs:range anahtar sözcükleri ile RDFS dilinin anlatım gücününün yükseldiği görülmektedir. Şekil 3.5. Öğrenci kavramına ve bir öğrenci örneğine ait çizge.

46 30 Şekil 3.6. RDFS dili ile modelleme OWL OWL (Web Ontology Language), DAML+OIL (van Harmelen et al, 2001) dilinden türer, bu dilin sadeleştirilerek güncellenmiş biçimidir. OWL, uzantısı olduğu DAML+OIL dili gibi kavramsal dilleri, çerçeve tabanlı sistemleri ve web dillerini temel alır (Şekil 3.7). Şekil 3.7. OWL dilinin temelleri.

47 31 OWL anlatım gücü yüksek bir dildir. OWL dili ile sınıf ve nitelik tanımı yapılabilir. Bu sınıf ve niteliklere ait örnekler tanımlanabilir. Bunların yanında yerel veya global nitelik, n-li ilişki, ikili fonksiyon, ilişkiler üzerinde önalan ve artalan kısıtları, nitelik çokluğu ve nitelik tipi kısıtları doğrudan veya dolaylı olarak gösterilebilir. Sınıflar arası kapsama ilişkileri, bir sınıfın diğer bir sınıf tarafından kapsanmadığı, ayrık parçalama, tüketici parçalama, ayrık sınıflar, deyimler, iddialar doğrudan veya varolan dil yapılarının birarada kullanılmasıyla belirtilebilir. Ayrıca sınıflar ve nitelikler için belgeleme oluşturulabilir. OWL dili, kavramsal diller terminolojisine göre + incelendiğinde bir SHOIN dilidir. SHOIN dili, ALC R dilinin özelliklerine ek olarak geçişken roller, rol hiyerarşileri, çevrik roller, sayı kısıtları ve örnek kolleksiyonları tanımlamaya izin verir. Bu bölümün devamında, gerçek dünyadan seçilmiş örnekler, OWL dili ile modellenecektir. Çizelge 3.1 de, şarap isminde bir kavram tanımlanır. Şarap kavramı, kırmızı şarap ve beyaz şarap kavramlarının birleşiminden oluşur. Şarap sınıfının, kırmızı şarap veya beyaz şarap olmayan örneği bulunmadığından, bu durum tüketici parçalamaya örnek olarak gösterilebilir. Şarap kavramının içindedir ve ürün kimliği adında nitelikleri vardır ve bir şarap örneğinin yalnızca bir içindedir değeri ve yine yalnızca bir ürün kimliği değeri olabilir. Çizelge 3.2, kırmızı şarap tanımını göstermektedir. Kırmızı şarap kavramı, şarap kavramının alt sınıfıdır. Global olarak tanımlanmış renk niteliği üzerinde yerel kısıtlama yapılarak, bir kırmızı şarap örneğinin renginin yalnızca kırmızı olabileceği belirtilmiştir.

48 32 Çizelge 3.1. OWL dili ile kavram tanımlama ve nitelikler üzerinde çokluk kısıtları belirtme. Çizelge 3.2. OWL dili ile nitelikler üzerinde değer kısıtı belirtme. Çizelge 3.3, şarap kavramının alt sınıfı olan, beyaz şarap sınıfını tanımlamaktadır. Global olarak tanımlanmış renk niteliği üzerinde yerel kısıtlama yapılarak, bir beyaz şarap örneğinin renginin yalnızca beyaz olabileceği belirtilmiştir. Ayrıca bu

49 33 örnekte kırmızı şarap ve beyaz şarap kavramının, ayrık sınıflar olduğu gösterilmiştir. Diğer bir deyişle kırmızı ve şarap sınıflarının ortak bir örneğinin olamayacağı belirtilmiştir. Çizelge 3.3. OWL dili ile ayrık sınıfların gösterilmesi. Çizelge 3.4, takip eden örneklerde kullanılacak olan bölge, ürün, şarap üreticisi ve tarih kavramlarını tanımlamaktadır. Çizelge 3.4. Bölge, ürün, şarap üreticisi ve tarih kavramları. Çizelge 3.5 de içindedir ve ürün kimliği nitelikleri tanımlanmıştır. İçindedir niteliği üzerinde önalan kısıtı olmadığından global bir niteliktir ve her sınıfa eklenebilir. Örnekte bu nitelik üzerinde bir artalan kısıtı yapılmış ve bu niteliğin alabileceği değerlerin Bölge sınıfına ait olması zorunluluğu getirilmiştir. Bu örnekteki şarap, şarap üreticisi ve tarih kavramları arasındaki Her şarap belli bir tarihte belli bir üretici tarafından üretilmiştir. üçlü ilişkisi doğrudan modellenemediğinden Ürün

50 34 adında bir sınıf yaratılmış ve önalanı şarap, artalanı ürün olan, ürün kimliği niteliği tanımlanmıştır. Her şarabın yalnızca bir ürün kimliği olabilir. Daha sonra önalanı ürün, artalanı tarih olan üretim tarihi ve önalanı ürün artalanı şarap üreticisi olan üretici nitelikleri tanımlanarak şarap, şarap üreticisi ve tarih kavramları arasındaki üçlü ilişki modellenmiştir. Çizelge 3.5. OWL dili ile n-li ilişki tanımlama. Son olarak, çizelge 3.6, OWL diliyle RDF dilinde olduğu gibi iddiaların modellenebildiğini göstermektedir. Örnekte 1001 numaralı öğrencinin, Kırmızı şarapların rengi kırmızıdır. şeklindeki iddiası gösterilmektedir.

51 35 Çizelge 3.6. OWL dili ile iddiaların gösterilmesi. OWL dilinin üç alt dili vardır: OWL Lite, OWL DL ve OWL Full (Smith el al., 2002). OWL Lite, yalnızca bir sınıf hiyerarşisi oluşturmak ve basit kısıtlar tanımlamak için kullanılabilir. Örnek olarak OWL Lite nitelik çokluk değerlerinin yalnızca 0 veya 1 olmasına izin verir. OWL Lite için araç desteği sağlamak, diğer iki alt dilden daha kolaydır. OWL Lite dilinin anlatım gücü diğer iki alt dile göre daha düşük olduğu için, bu dil üzerinde çıkarsama yapmanın karmaşıklığı daha azdır. OWL DL, maksimum anlatım gücünün yanında eksiksizlik ( yapılabilecek bütün çıkarsamaların yapıldığı garantisi ) ve saptanabilirlik ( yapılan bütün çıkarsama işlemlerinin sonlanacağı garantisi) isteyen kullanıcılar için tasarlanmıştır. OWL DL bütün OWL yapı taşlarına sahip olmasına rağmen, bu yapı taşları belirli kurallar çerçevesinde kullanılabilirler. Örnek olarak, bir sınıf (kavram) birçok sınıfın alt sınıfı olarak tanımlanabilmesine rağmen, başka bir sınıfın örneği olarak tanımlanamaz. OWL Full, hiçbir kısıtlama ve garanti olmadan maksimum anlatım gücünü kullanmak isteyen kullanıcılar içindir. Örnek

52 36 olarak OWL Full bir sınıfın, örnek kolleksiyonu yada tek bir örnek olarak tanımlanmasına izin verir. OWL Full üzerinde eksiksiz çıkarsama yapabilecek bir aracın olamayacağı ispatlanmıştır. 3.3 Kural Tanımlama Dilleri Çok çeşitli kural tipleri olduğu için, kesin ve tek bir kural tanımı vermek oldukça zordur. Bu yüzden kuralları, aşağıdaki gibi, farklı seviyelere göre tanımlamak doğru bir yaklaşım olacaktır: Problem önalan seviyesinde, kurallar, önalan dilinin terimlerini tanımlayan, önalan kısıtlarını belirten deyimlerdir. Platform bağımsız seviyede kurallar RuleML, N3, Prolog gibi kural dilleriyle tanımlanırlar. Platform bağımlı işletme seviyesinde, JESS, XSB gibi işlenebilir seviyede bir dilde ifade edilmiş deyimlerdir. Kurallar, anlamsal webin gerçekleşmesi açısından büyük önem taşımaktadır. Varolan ontoloji biçimleme dilleri, anlamsal web üzerinde çıkarsama yapabilmek için gerekli olan kural gösterimlerini destekleyememektedir. Bu yüzden, kural tanımlama dilleri, ontoloji dillerinde, betim mantığı ile birlikte kullanılacaklardır. Kurallar, çıkarsama yapmak, kısıt belirtmek, veri dönüşümleri ve tepki yaratabilmek (belli bir olay karşısında sistemin/etmenin ne gibi tepkiler vereceğini belirtmek) gibi amaçlar için kullanılacaklardır (Şekil 3.8). Kural dillerinin web tabanlı olması, kuralların web üzerinde yayınlanması ve değişik sistemler ve uygulamalar arasında kural alışverişi için gereklidir.

53 37 Şekil 3.8. Kural kullanım çeşitleri. Kural gösterimlerinin yapılabilmesi için birçok dil önerilmesine rağmen henüz bu konuda bir standart oluşturulmamıştır. Anlamsal web için böyle bir kural dilinin zorunlu olduğu anlaşıldığından, Triple, RuleML, OCL, Prolog, Notation 3 ve OWL kural dili gibi birçok sözdizimi önerilmiştir. Triple, RDF sorgu ve çıkarsama dili olarak önerildi. Kaynakları ve isim uzaylarını, RDF üçlüleriyle gösterilebilen modelleri, deyimler hakkındaki deyimleri, RDF veri dönüşümünü ve RDF için bir kural dilini destekler. RuleML, XML tabanlı bir kural biçimleme dilidir. Notation 3 dili, RDF/XML sözdizimine bir alternatiftir, buna ek olarak bu dilin basit sözdizimi ile kurallar ifade edilebilir. Böylelikle RDF dili ile kurallar bütünleştirilebilir. Tez kapsamında geliştirilen çıkarsama motoru, XML tabanlı OWL kural dili(horrocks and Patel-Schneider, 2003) ile ifade edilmiş kuralları kullanmaktadır. Çıkarsama motorunun kullandığı kurallar, W3C üyesi olan Agfa nın Euler Proof Mechanism adlı projesinde kullanılan Notation 3 ile ifade edilmiş kuralların, OWL kural dilinde yazılmasıyla elde edilmişlerdir. Bölüm 3.3.1, Owl

54 38 kural dili ile ilgili açıklamaları ve örnekleri içermektedir. Bu bölüm, (Horrocks and Patel-Schneider, 2003) etiketli kaynağın bir özeti ve çevirisi niteliğindedir OWL Kural Dili Owl kural dili, OWL dilinin kuralları modelleyebilen bir uzantısıdır. Bahsedilen kurallar, baş ve gövde bölümleri arasında bir gerektirme işlemini gösterirler. Baş kısmında belirtilen şartların gerçekleşmesi, gövde kısmındaki şartların da gerçekleşmesini gerektirir. Baş ve gövde kısımları bir veya daha fazla atomdan oluşabilir. Birçok atomun bulunması bu atomların ( ) işleci ile bağlanması anlamına gelir. Baş kısmı boş olan bir kuralın, gövde kısmı her koşulda gerçekleştirilmelidir. Gövde kısmının boş olması, kuralın baş kısmındaki koşulların da gerçekleşmemesi gerektiğini belirtir. Örnek olarak, gövde kısmı boş olan kurallar, tutarsızlıkların tespiti sırasında kullanılabilirler. OWL kural dili ile ifade edilmiş kuralların, gövde kısımları birden fazla atom içerebilir. Bu tip kuralların, bölüm XX de bahsedilen Aegont kural yapısına dönüştürülmesi sırasında, Lloyd-Topor çevrimi (Lloyd, 1987) kullanılmaktadır. Atomlar; C bir OWL tanımlaması, P bir OWL niteliği, x ve y değişken, OWL sınıf örneği veya OWL veri değerleri olmak üzere, C(x), P(x,y), sameas(x,y) veya differentfrom(x,y) formunda olabilirler. Bir OWL ontolojisi, aksiyomlardan ve olgulardan oluşur. OWL aksiyomları, subclass aksiyomları, equivalentclass aksiyomları gibi değişik biçimlerde olabilirler. OWL kural dili, OWL diline, kural aksiyomlarını eklemeyi hedeflemektedir. Şekil

55 39 3.9, OWL kural dilinin soyut sözdizimini, BNF dilinin genişletilmiş bir versiyonuyla göstermektedir. Şekil 3.10 ve Şekil 3.11, anlatılan soyut sözdiziminin, RDF/XML sözdizimiyle yazılmış örnekleridir. Şekil 3.10 da gösterilen örnek, bir kişinin, ebeveyninin erkek kardeşini, uncle olarak nitelendirmektedir. Bu kural, Notation 3 sözdizimiyle, daha sade bir şekilde gösterilirse: {?x1 eg:hasparent?x2.?x2 eg:hassibling?x3.?x3 eg:hassex male} (?x1 eg:hasuncle?x3). Şekil 3.11 de gösterilen ikinci örnek ise belli bir akımı izleyen sanatçıya ait bir eserin bu akımı yansıttığını göstermektedir. Kural, Notation 3 sözdizimiyle gösterilirse: {?x has rdf:type ulan:artist.?y has rdf:type aat:style.?x aatulan:artiststyle?y.?x vra:creator?z} (?z vra:style/period?y). Şekil 3.9. OWL kural dilinin soyut sözdizimi.

56 40 Şekil OWL kural dili ile yazılmış bir kural.

57 Şekil OWL kural dili ile yazılmış bir kural. 41

58 42 4. ÇIKARSAMA ARAÇLARI Tezin bu bölümünde betim mantığı tabanlı bilgi gösterim sistemlerinde kullanılmış çıkarsama araçları ve anlamsal web üzerinde çıkarsama incelenecektir. İlk kısımda, betim mantığı örnekleri üzerinde çıkarsamanın kapsamı ve çıkarsama yapabilmek için önerilmiş bazı yöntemler incelenecektir. Ayrıca betim mantığına dayalı bilgi gösterim sistemlerinin gerektirdiği açık dünya çıkarsamanın, klasik veritabanı sistemlerinde uygulanan kapalı dünya çıkarsamadan farkı belirtilecektir. Bu kısımda son olarak betim mantığına dayalı olarak geliştirilmiş bilgi gösterim sistemleri üzerindeki çıkarsama mekanizmaları incelenecektir. İkinci kısımda anlamsal web üzerinde çalışacak çıkarsama mekanizmalarının sahip olması gereken özellikler anlatılacaktır. 4.1 Betim Mantığında Çıkarsama Bir bilgi gösterim sistemi, açıkça belirtilmiş kavram tanımlarını ve bu kavramlara ait örnekleri sakladığı gibi, çıkarsama yoluyla elde edilebilecek, açıkça belirtilmemiş bilgiyi de saklar. Bu nedenle betim mantığı tabanlı bir bilgi sistemi, belirli bazı çıkarsama işlemlerini gerçekleştirebilmelidir. Betim mantığı tabanlı bir sistemde çıkarsama işlemleri TBox ve ABox için olmak üzere iki kısımda incelenir. Bütün bu çıkarsama işlemlerinin, ABox için tutarlılık kontrolü işlemine indirgenebileceği gösterilecektir. TBox ile ilgili çıkarsamalar tutarlılık, kapsama, eşitlik ve ayrıklıktır. Bu problemleri açıklarken, kullanılacak olan T sembolü,

59 43 bir bilgitabanı oluşturulurken birbirine bağlı olarak tanımlanmış kavramları, diğer bir deyişle terminolojiyi belirtir. Tutarlılık: T nin herhangi bir I modelinde, C I boş değilse, C kavramı, T ye göre tutarlıdır. Kapsama: T nin her I modeli için, C I D I ise, C kavramı T ye göre D kavramı tarafından kapsanır. Bu durum C T D veya T C D şeklinde gösterilir. Eşitlik: T nin her I modeli için, C I D I ise, C kavramı T ye göre D kavramı tarafından kapsanır. Bu durum C T D veya T C D şeklinde gösterilir. Ayrıklık: T nin her I modeli için, C I D I ise, C kavramı, T ye göre, D kavramı tarafından kapsanır. Belirtilen problemler, Şekil 4.1 de görüldüğü gibi, birbirlerine indirgenebilirler (Baader et al., 2003). ABox ile ilgili çıkarsamalar, ABox tutarlılığı ve örnek kontrolüdür. ABox tutarlılığı, verilen bir ABox ın ( A ) ve TBox ın ( T ) ortak bir modeli olup olmadığını bulur. Örnek kontrolü ABox ( A ), TBox ( T ), bir örnek adı ( a ) ve bir kavram ( C ) olmak üzere, A nın ve T nin bütün modelleri için, a I C I ifadesinin doğru olup olmadığını test eder ve A,T a:c şeklinde gösterilir. Örnek kontrolü, A C (a) ifadesi ancak ve ancak A { C (a) } tutarlı ise doğrudur. bağlantısı ile ABox tutarlılığı problemine indirgenebilir. Çizelge 4.1 de görüldüğü gibi kavramlarla ilgili önemli çıkarsama işlemleri, kavram tutarlılığına indirgenebilir. Kavram tutarlığı, C ancak ve ancak {C(a)}

60 44 tutarsızsa doğrudur. bağlantısı ile ABox tutarlılığına indirgenebilir. Çizelge 4.1. Çıkarsama işlemleri arasında indirgeme. Bu temel çıkarsama işlemlerinin yanında, yine bu temel çıkarsama işlemlerine indirgenebileceği kolayca görülen bazı işlemleri listelemek faydalı olacaktır (Baader et al, 1991) : Sınıflandırma: Yeni yaratılan bir kavramın, kavram hiyerarşisinde yerinin bulunması.

61 45 Bilgitabanı tutarlılığı: Sunulan bilginin tutarlılığının test edilmesi. Örnekleme: Varolan bilgiden yeni bilgilere ulaşılması. Gerçekleme: Bir nesnenin örneği olduğu sınıfların bulunması. Erişim: Verilen bir sınıfın örneklerinin bulunması. Taban: Verilen bir örneğin verilen bir sınıfa ait olup olmadığının tespit edilmesi. Buraya kadar incelenen betim mantığı bilgitabanları ABox ve TBox olmak üzere iki kısımdan oluşmaktadır. Bu bilgitabanları K= (T, A) şeklinde gösterilir. CLASSIC, LOOM gibi bazı betim mantığı tabanlı bilgi sistemlerinde, bilgiyi modellemek için bu iki bileşene ek olarak kurallar kullanılabilir. En basit olarak bir kural örneği, C ve D kavram olmak üzere, C D şeklinde olabilir ve Eğer bir nesne C kavramının örneği ise, aynı zamanda D kavramının da örneği olduğunu türet. anlamına gelir. Bu tür kurallar tetikleme kuralları olarak adlandırılır. Sonlu sayıda bir kurallar kümesinin ( R ) anlamı, ileriye doğru bir çıkarsama işlemiyle anlatılabilir (Baader et al., 2003). Bir başlangıç bilgitabanı K, ile başlayarak bir dizi bilgitabanı K (0), K (1), oluşturulur. Bu gösterimde K (0 ) =K olmak üzere K (i+1), K (i) ye yeni bir D (a) eklenmesiyle elde edilir. K (i) bilgitabanı D (a) yı içermemesine rağmen, R kümesi C D şeklinde bir kural barındırır ve K (i) C (a) deyimi doğrudur. Bu işlem sonlu bir işlemdir çünkü başlangıç bilgitabanı sonlu sayıda örnek içerir ve

62 46 sonlu sayıda kural vardır. Bu nedenlerden ötürü, sonlu sayıda D (a) deyimi eklenebilir. Kuralların uygulanması sonunda, TBox kısmı K (0) ile aynı olan, fakat ABox kısmı kuralların uygulanmasıyla genişletilmiş K (n), bilgitabanı elde edilir. Elde edilen bu yeni bilgitabanına, K nın yordamsal uzantısı adı verilir ve K sembolü ile gösterilir.yordamsal uzantı, kuralların uygulanma sırasından bağımsızdır. Sonuç olarak, bir tetikleme kural kümesi ( R ) ile, herhangi bir bilgitabanından K, tek bir şekilde K yordamsal uzantısı türetilebilir. Bir kural bilgitabanı, T sembolü TBox, A sembolü ABox, R bir kural kümesi olmak üzere, K( T, A, R ) şeklinde gösterilir. Böyle bir bilgitabanının yordamsal uzantısı, ( T, A ) ya tetikleme kurallarının uygulanmasıyla elde edilir ve K = ( T, A ) şeklinde gösterilir. Betim mantığı tabanlı sistemlerin, klasik veritabanı sistemlerinden en önemli farkı bu sistemlerin açık dünya olmalarıdır. Klasik veritabanları, kapalı dünya sistemlerdir. Bu tür sistemlerde, bilgitabanında varolmayan bilgilerin yanlış olduğu kabul edilir. Açık dünya sistemlerde ise varolmayan bilgilerin eksik veya yanlış olduğu kabullenilir. Bu iki sistem arasındaki farkı açıklayabilmek için, iki tür sistemde de Ali nin Ayşe ve Mehmet adında iki çocuğu vardır. bilgisi olduğu kabullenilsin. Kapalı dünya bir sistemde bu bilgiden yola çıkarak Ali nin iki çocuğu vardır. bilgisine ulaşılabilir. Açık dünya bir sistemde Ali nin en az iki çocuğu vardır. sonucuna ulaşılır. Çünkü böyle bir sistemde, Ali nin bilgitabanında bulunmayan çocuklarının da olabileceği kabullenmesi vardır.

63 47 Betim mantığı tabanlı açık dünya bilgi sistemlerinde sorgu cevaplamanın zorluğunu gösterebilmek amacıyla eski Yunan mitolojisinden alınmış Oedipus hikayesini, kullanan bir örnek yararlı olacaktır (Baader et al., 2003). Çizelge 4.2 de anlatılan hikaye, özet olarak babasını öldürüp annesi Iokaste ile evlenen Oedipus tan bahseder. Iokaste ile Oedipus un, Polyneikes adında bir çocuğu olur. Daha sonra Polyneikes ın da, baba katili olmadığı bilinen, Thersandros isimli bir çocuğu olur. Çizelge 4.2. Oedipus hikayesini gösteren ABox. Böyle bir açık dünya sisteme, Iokaste nin, kendisi baba katili olan fakat çocuğu baba katili olmayan, bir çocuğu var mıdır? sorgusu gönderildiğinde, sistemin olumsuz yanıt döndürmesi doğru gözükebilir. Çünkü Iokaste nin iki çocuğu vardır. İlki, Oedipus, kendisi baba katili olmasına rağmen, çocuğu Polyneikes ın baba katili olmadığına dair bir bilgi bulunmamaktadır. İkinci çocuk, Polyneikes ın baba katili olduğu bilgisi olmadığı için, Polyneikes ta aranan çocuk değildir. Bu durumda sistem olumsuz yanıt döndürür. Fakat doğru bir çıkarsama yapıldığında yanıtın bu olmadığı görülür. Polyneikes ın baba katili olduğuna dair bir bilgi olmamasına rağmen, açık dünya bir sistemde bu bilginin yanlış olduğuna dair bir çıkarsama yapılamaz. Bu durumda Polyneikes ın baba katili olduğu bilgisini doğru kabul edersek, aranan çocuk Polyneikes tır. Çünkü kendisi baba katilir fakat çocuğu

64 48 Thersandros baba katili değildir. İkinci durumda, yani Polyneikes ın baba katili olmadığını kabul edersek, aranan çocuk Oedipus tur. Çünkü kendisi baba katili olmasına rağmen, çocuğu Polyneikes baba katili değildir. Her iki kabullunmede de, sonuçlar farklı olsa da, yanıt olumludur. Bu örnekten de anlaşılabileceği gibi açık dünya bir sistemde, kapalı dünya bir sistemden farklı olarak, klasik çıkarsama algoritmalarının yanında, durum analizi gibi teknikler de gerekebilir. Diğer bir problem, betim mantığı tabanlı bilgi sistemlerinde, monotonik olmayan çıkarsama işleminin nasıl ele alınacağıdır. Monotonik çıkarsama adı, çıkarsama sonuçlarının her zaman geçerliliğini korumasından gelmektedir. Diğer bir deyişle, bilgitabanının sadece belli bir kısmını kullanarak, bir deyimin doğru olduğu ispatlandığında, bütün bilgitabanı kullanılarak, önceden elde edilmiş olan ispatın yanlış olduğu sonucuna varılamaz (Bender, 1996). Bu teori monotonik olarak adlandırılır, çünkü bilgitabanına yeni bilgiler eklendiğinde, önceden doğru olduğu ispatlanmış deyimlerin doğruluğu değişmez. Monotonik olmayan çıkarsama da, bilgitabanının belli bir kısmı kullanılarak önceden ispatlanmış doğrular, bilgitabanının bütünü gözönüne alındığında geçerliliklerini yitirebilirler. Bu konuda genellikle verilen bir örnek penguenler ve kuşlarla ilgilidir. Bilgitabanınızda kuşların genellikle uçabildiği ve penguenin de bir kuş olduğu bilgileri bulunuyorsa, buradan penguenin uçabildiği sonucuna varabilirsiniz. Fakat bilgitabanına, penguenin uçamadığı bilgisini eklediğinizde, önceden ulaştığınız sonuç geçersiz olacaktır. Bu problemin kaynağı, genellikle kelimesine dayandırılabilir. Bu tür sözcükler sağduyu çıkarsamasında yer almasına rağmen, birinci basamak mantıkta yer almazlar.

65 49 Yapay zeka araştırmacıları, sağduyunun ne olduğunu anlamaya çalışmaktadırlar. İnsanların sahip olduğu sağduyuyu taklit edebilme problemi yıllardır üzerinde çalışılan ve hala çözülememiş bir problemdir. Bazı araştırmacılar, sağduyunun ne olduğunun anlaşıldığını, tek problem olarak, dünyadaki bütün bilginin modellenmemiş olmasını göstermektedir. Diğer grup ise sağduyu çıkarsamanın nasıl işlediğinin hala bilinmediğini savunmaktadır. Problem üzerindeki çalışmanın büyük kısmı monotonik olmayan çıkarsama ile ilgilidir. Monotonik olmayan çıkarsamanın karşılaştığı ve çözüm beklediği iki büyük problem aşağıda gösterilmektedir (Bender, 1996): Bilgitabanının belli bir kısmına yoğunlaşıldığı halde ulaşılan sonucun doğruluğu nasıl garanti edilir? Çıkarsama işlemi sırasında, eksik bilgi fark edilip, bu bilgi hakkında akla uygun kabullenmeler nasıl yapılabilir? Bunların yanında betim mantığının, somut önalanlar, kipsel mantık, bulanık ve kesin olmayan bilgi sunumu gibi uzantılarla genişletilmesi betim mantığı üzerinde çıkarsamayı etkileyecek diğer faktörlerdir. Betim mantığı, bilginin soyut mantıksal bir seviyede sunulmasını öngörür. Fakat birçok uygulama, kavram tanımları yaparken somut önalanlara ve bu önalanların önceden tanımlı yüklemlerine ihtiyaç duyar. Doğal sayılar kümesi, somut bir önalana, (büyük eşittir) ve ya < (küçüktür) bu önalanın önceden tanımlı yüklemlerine örnek olarak gösterilebilir (Baader et al., 2003).

66 50 Birçok betim mantığı örneği, geniş yapı taşları sunsa da, sadece durağan bilgiyi gösterebilirler. Kipsel uzantılar olarak bilinen zaman bağlılığını, değişik etmenlere ait inançları, zorunlulukları göstermek üzere tasarlanmamışlardır. Örnek olarak, standart bir betim mantığı örneği ile aşağıdaki gibi bir iyi araba kavramı tanımlanabilir (Baader et al., 2003): F1: iyiaraba araba parça. Klima. Fakat bu duruma Ayşe nin inandığı, Ali nin inanmadığı bilgisi eklenemez: [ Ayşe inanır ] ( F1 ) [ Ali inanır ] ( F1 ). Değişik etmenlere ait inanışlar modellenemediği gibi, F1 in yalnızca günümüz şartlarında doğru olduğu, gelecekte geçerli olmayacağı bilgisi, diğer bir deyişle zaman bağlılığı da günümüzdeki betim mantığı örneklerince gösterilememektedir (Baader et al., 2003). Betim mantığının bir diğer eksiği, bulanık veya kesin olmayan bilgiyi gösterememesidir. Bu zorluğun aşılması için, betim mantığının, olasılıksal mantık ve bulanık mantıkla genişletilmesi bir öneri olarak sunulmuştur (Baader et al., 2003). Buraya kadar anlatılan işlemler, kapsama ilişkilerini hesaplayan ve ABox tutarlılığını test eden standart çıkarsama işlemleridir. Fakat geliştirilen uygulama programlarında, standart çıkarsama servislerinin yanında, ek servislere de ihtiyaç duyulduğu farkedilmiştir ve bu servisler standart olmayan çıkarsama problemleri olarak gruplandırılmıştır.

67 51 Bu servislerin başında yeni tanımlanan bir kavramın, taksonomide uygun yere yerleştirilmesi yer alır. Bu problem, en özel kapsayanın ve en genel kapsananın hesaplanması ile ilgilidir. Diğer bir servis, aynı bilgitabanı üzerinde birçok kişinin paralel olarak çalışmasına yöneliktir. Bir kişinin önceden tanımladığı bir kavramın, farklı bir isimle yeniden yaratılmasını önlemeye yönelik bu problem, kavramların birleştirilmesi olarak adlandırılan standart olmayan çıkarsama servisiyle çözülür. Eşleştirme, birleştirmenin özel bir halidir ve kullanıcıya göstermeden önce, kavram tanımlarındaki gereksiz kısımların atılması olarak tanımlanır. Üçüncü servis, kavram tanımlarının yeniden yazılması, kavram tanımlarının özgün tanıma bağlı kalarak, birtakım eniyileme kriterlerini karşılayacak şekilde ( daha az yer kaplayacak şekilde ), değiştirilmesi işlemidir. Bütün bu işlemlerle ilgili ayrıntılı bilgi ve çözüme yönelik öneriler (Baader et al., 2003) de yer almaktadır Çıkarsama Algoritmaları Çıkarsama araçlarında kullanılan iki önemli yaklaşım, yapısal kapsama algoritmaları ve çizelge algoritmalarıdır. Yapısal kapsama algoritmaları iki aşamalıdır. İlk olarak, kapsama testi yapılacak kavramlar, normal forma getirilir. Daha sonra normal formların sözdizimsel yapıları karşılaştırılır. A 1 A m ayrık kavram adları, R 1 R n ayrık rol isimleri, C 1 C n normal formdaki kavram tanımları olmak üzere; A 1 A m R 1.C 1 R n.c n, şeklindeki bir kavram anlatımı normal formdadır.

68 52 İkinci aşamada, normal formdaki kavram tanımlarına, kapsama testi yapılır. A 1 A m R 1.C 1 R n.c n, normal formdaki C kavramının tanımı; B 1 B k S 1.D 1 S p.d p, normal formdaki D kavramının tanımı olmak üzere, aşağıdaki şartlar gerçekleştiğinde, C D sonucuna varılır: (i) 1 i k arasında her i için, 1 j m ve B i = A j olmak üzere bir j vardır. (ii) 1 i p arasında her i için, 1 j n, S i = R j ve C j D i olmak üzere bir j vardır. Çizelge algoritmaları, kavram tanımlarına doğrudan kapsama testi yapmak yerine, kavram tanımlarının kapsama problemini (C D), tümleme işlecini kullanarak, kavram tanımlarının tutarsızlığı problemine (C D) indirgerler. Çizelge algoritmalarına bir örnek olarak, ( R.A) ( R.B) kavramının, R.(A B) tarafından kapsanıp kapsanmadığı belirlenecektir. Problem, C = ( R.A) ( R.B) ( R.(A B) ) kavramının tutarsızlığı problemine indirgenir. İlk olarak bütün tümleme işleçleri, de Morgan kuralları ve işleçler için geçerli olağan kurallar doğrultusunda, ifadenin en iç kısımlarına doğru hareket ettirilirler. Bunun sonucunda, C 0 = ( R.A) ( R.B) R.( A B) ifadesi elde edilir. Bütün tümleme işleçleri, kavram isimlerinin önündedir, diğer bir deyişle ifade tümleme normal formundadır.

69 I Daha sonra C0 olmak üzere, sonlu bir yorumlama ( I ) I I bulmaya çalışılır. Bunun anlamı, de, C 0 nin bir örneğinin olması demektir. I Algoritma, bir örnek üretir, örneğin b, b üzerinde b C0 kısıtının sağlanması gerekmektedir. C 0 üç kavram anlatımının kesişimi olduğundan, b üç kısıtı sağlamalıdır: b ( R. A) I, b ( RB. ) I ve b ( R.( A B)) I. İki algoritma karşılaştırıldığında, yapısal kapsama algoritmalarının, genellikle anlatım gücü düşük betim mantıkları örneklerinde kullanıldığı görülür. Tümlemeyi ve ayrıklığı destekleyen betim mantığı örneklerinde kullanılamazlar. Tümlemeyi ve ayrıklığı destekleyen örneklerde, çizelge algoritmaları kullanılmaktadır. 4.2 Çıkarsama Araçları Anlamsal web çalışmalarının hızlanmasıyla birlikte, varolan çıkarsama araçlarının, ontoloji araçlarıyla bütünleştirilmesi ve ontoloji biçimleme dilleri tabanlı çıkarsama araçlarının geliştirilmesi gündeme geldi. Genel olarak bu çıkarsama araçlarını iki grupta toplayabiliriz: Betim mantığı tabanlı çıkarsama araçları Kural tabanlı çıkarsama araçları Betim mantığı tabanlı çıkarsama araçları, çizge algoritmalarını kullanan araçlardır. Kural tabanlı çıkarsama araçları ise ileriye doğru zincirleme ve geriye doğru zincirleme mekanizmalarını kullanarak, bir bilgitabanına sistemdeki kuralları uygularlar. Şekil 4.1, yaygın olarak kullanılan ontoloji geliştirme 53

70 54 ortamlarının, çıkarsama yeteneklerini ve kullandıkları çıkarsama araçlarını göstermektedir. OilEd (Bechhofer et al, 2001), betim mantığı ontolojileri için, Java ile geliştirilmiş bir ontoloji editörü uygulamasıdır. İlk olarak OIL için geliştirilen OilEd, daha sonraları DAML+OIL ve OWL ile çalışabilir hale getirilmiştir. OilEd editörü, çıkarsama yapabilmek amacıyla FaCT, RACER, DIG gibi betim mantığı tabanlı çıkarsama araçları ile entegre çalışır. OilEd örneklerle ilgili tutarlılık testlerini gerçekleştirmez. Diğer bir deyişle bir örnekle ilgili bilgilerin, bu örneğin ait olduğu sınıfla çelişip çelişmediği kontrol edilmez. Ontoloji editörü çıkarsama işlemini kendi yapmadığından, sınıf hiyerarşisini görüntüleyemez. Sınıflar bir liste şeklinde görüntülenir, hiyerarşi FaCT öbekleyicisinin çalıştırılmasıyla görüntülenebilir. Şekil 4.1. Ontoloji geliştirme ortamlarının çıkarsama yetenekleri ve kullandıkları çıkarsama araçları.

71 55 FaCT (Fast Classification of Terminologies) (Horrocks et al, 1999), optimize edilmiş çizge algoritmalarını kullanan, betim mantığı tabanlı bir çıkarsama aracıdır. FaCT eksiksiz ve doğru olarak çalışan iki çıkarsama aracından oluşur: ilki SHF (ALC dilinin geçişken roller, işlevsel roller ve rol hiyerarşisi özellikleriyle genişletilmiş hali) dilini destekler, ikincisi ise SHIQ (SHF dilinin çevrik roller ve nitelendirilmiş sayı kısıtları ile genişletilmiş hali) dilini desteklemektedir. RACER (Renamed ABox and Concept Expression Reasoner) (Haarslev and Möller, 2001), ontoloji geliştirmeye, RDF dökümanları ve RDFS/DAML ontolojileri üzerinde sorgu yanıtlamaya, kalıcı sorguları kaydetmeye yönelik, optimize edilmiş çizge algoritmalarını kullanan bir anlamsal web çıkarsama aracıdır. RACER, ALCQHIR+(D)- (ALC dilinin nitelendirilmiş sayı kısıtları, rol hiyerarşisi, çevrik roller, geçişken roller ve kısıtlı somut önalanlar ile genişletilmiş hali) diline ait ABox ve TBox çıkarsama işlemlerini destekleyen tek araçtır. RACER, RDF/RDFS/DAML/OWL dökümanlarına ait TBox lar ve ABox lar üzerinde somut önalanları destekleyecek şekilde çıkarsama yapabilmektedir. RACER, one of deyimi hariç DAML ın anlatım gücünü destekler. Diğer bir kısıtlama ABox için tek isim kabullenmesidir. RACER, bütün TBox ve ABox çıkarsama servislerini sağlar, bunun yanında çoklu TBox ve ABox i destekler. OilEd in örneklerle ilgili çıkarsama yeteneğinin az olması, kullandığı çıkarsama araçlarından kaynaklanmaktadır. FaCT, çıkarsama yaparken örnekleri gözönünde bulundurmaz. RACER ise örnekler üzerinde kısıtlı bir çıkarsama işlemi gerçekleştirir. RACER, örneklerle ilgili OWL dilinde olmayan ekstra

72 56 kabullenmeler yapar. Buna göre bütün örnekler birbirinden farklıdır. RACER ile gerçekleştirilen çıkarsamalar doğru olmasına rağmen eksiktir. OntoEdit (Sure et al., 2002), Java ile geliştirilmiş bir ontoloji ortamıdır ve şu sıralar Ontoprise adı ile ticari bir araç haline getirilmektedir. OntoEdit, değişik ek yazılımlar kullanarak genişleyebilen bir yazılımdır. Bu ek yazılımlar iki grupta toplanabilir: RDF(S), DAML+OIL gibi değişik dillerdeki ontolojileri import/export edebilmek amacıyla kullanılan ek yazılımlar Flogic aksiyomlarını düzenlemek amacıyla kullanılan grafiksel bir kural editörü, çıkarsama aracı(ontobroker), grafiksel sorgu editörü ve ontoloji eşleştiriciler gibi değişik servisleri destekleyebilmek amacıyla kullanılan ek yazılımlar OntoEdit Professional ın çıkarsama amacıyla kullandığı OntoBroker (Decker et al, 1999) üç temel elemandan oluşur: Sorgu arayüzü Çıkarsama motoru Web üzerinde istenen bilgiyi bulabilmek için geliştirilmiş Webcrawler OntoBroker yazılımında, çıkarsama ve sorgulama birbirinden ayrı yürütülmektedir. Çıkarsama motoru, varolan gerçekleri ve kuralları kullanarak açıkça belirtilmemiş bilgiyi ortaya çıkarır. Çıkarsama motoru, arka planda çalışır ve ürettiği gerçekler bilgitabanına kaydedilir. Sorgulama sırasında, çıkarsama motoru

73 57 doğrudan kullanılmaz, bunun yerine bilgitabanındaki üçlüler kullanılır. Gerçeklerin ve kuralların sayısı arttıkça çıkarsama mekanizması oldukça yavaşlamaktadır. Gerçek bir uygulama da kullanıcının bu kadar beklemeyeceği düşünülmüş ve OntoBroker çıkarsama motorunun performansının iyileştirilmesi için üç yöntem sunulmuştur (Staab et al., 2000): Çıkarsama motoru sonuçları buldukça, bunları kullanıcıya görüntülemek. Böylelikle kullanıcı bu yanıtları incelerken, çıkarsama motoru geri kalanları bulmaya devam edecek ve kullanıcı bekletilmemiş olacaktır. Daha önceden çalıştırılmış olan sorguları saklamak ve bunları kullanmak. Böylelikle zamanla çıkarsama motorunun hızı artacaktır. Bir sorguyu bölmek ve parallel olarak çalışan çıkarsama motorları arasında paylaştırmak. Üst seviyedeki bir çıkarsama motoru, paralel olarak çalışan çıkarsama motorları arasındaki koordinasyonu sağlayacaktır. Ontolingua sunucusu(farquhar et al., 1997), Ontolingua dilinde ontoloji yaratmayı kolaylaştırmak ve ontolojileri saklamak amacıyla Lisp ile geliştirildi. Ontolingua sunucusunun, çıkarsama amacıyla kullandığı JTP (KSL, 2004), basit ve genel bir çıkarsama mimarisine sahiptir. JTP, Java ile geliştirilmiştir ve modüler bir mimariye sahiptir. Sisteme kolaylıkla yeni çıkarsama modülleri eklenebilir veya varolan modüller yeniden düzenlenebilir. JTP mimarisinde, çıkarsama sistemi reasoner adı verilen modüllerden oluşur.

74 58 Reasoner lar işlevlerine gore iki grupta incelenirler: ileriye doğru zincirleme yapanlar ve geriye doğru zincirleme yapanlar. Geriye doğru zincirleme yapanlar, sorguları işlerler ve yanıtların ispatlarını döndürürler. İleriye doğru zincirleme yapanlar, ispatlarla doğrulanan bu yanıtları işleyerek, yeni sonuçlara ulaşırlar. OntoSaurus(Swartout et al, 1997), bir web tarayıcısı aracılığı ile LOOM (MacGregor, 1999) ontolojilerinin yaratılmasını sağlar. OntoSaurus iki modülden oluşur: LOOM bilgi gösterimi sistemini kullanarak kavram sınıflandırması yapan ve örnek eşleştirme fonksiyonlarına sahip bir ontoloji sunucusu ile bu sunucuda saklanan LOOM ontolojilerinden HTML sayfaları oluşturan web ontoloji düzenleyicisi ve tarayıcısı. Bu iki modül ve aralarındaki arayüzler Lisp dili ile gerçekleştirilmiştir. OntoSaurus ontoloji düzenleyici, LOOM çıkarsama motorunu kullanarak, iki servis sunar: Kavram sınıflandırması: LOOM kavram tanımlarından otomatik olarak türetilirler. Örnek eşleştirmesi: Betim mantığı ile ifade edilmiş sorgularla eşleşen örneklerin bulunması işlemi. LOOM çıkarsama aracı, iki türlü dil kullanır: LOOM betim mantığı ve LOOM yüklemler biçimsel dizgesi. İlki anlatım gücü bakımından diğerinden düşük olsa da LOOM çıkarsama aracı ile daha iyi çalışmaktadır. LOOM yüklemler biçimsel dizgesi, sorguların ifade edilmesi amacıyla kullanılır. LOOM betim mantığının anlatım gücü yüksek olduğundan, üzerinde eksiksiz çıkarsama yapılamaz. LOOM çıkarsama aracının en önemli özelliklerinden biri, bilgitabanında bir değişiklik

75 59 olduğunda yapılan çıkarsamaların da bu değişiklikler doğrultusunda değiştirilmesidir. LOOM sürekli genişleyen bir sistemdir ve her sürümünde yeni çıkarsama yetenekleri sağlar. Bu nedenle, birçok çıkarsama yöntemini sorunsuz olarak birarada kullanır. Çıkarsama aracı kullanıcıya iki tip seçenek sunar. Bunlardan ilki performansı hızlı fakat zayıf bir çıkarsama işlemidir (geriye doğru zincirleme ve production rule firing ). İkincisi ise daha yavaş fakat daha derin bir çıkarsama seçeneği sunar (LOOM classifier). LOOM çıkarsama motorunun çekirdeği LOOM classifier olarak adlandırılmıştır. LOOM classifier kavramlar arası kapsama ilişkilerini, yapısal kapsama algoritması ile hesaplar. LOOM çıkarsama motorunun, benzerlerinden bir farkı da kuralların, ileriye doğru zincirleme ve geriye doğru zincirleme işlemlerinden hangisi ile kullanılacağına kullanıcıların değil sistemin karar vermesidir. Son olarak bahsedilmesi gerekli bir diğer konu, LOOM sorgu işlemcisidir. LOOM sorgu işlemcisi, LOOM PC dilinde girilen her sorguyu optimize eder ve Common Lisp diline çevirir. Şekil 4.2 LOOM çıkarsama motorunun mimarisini özetlemektedir (MacGregor, 1999). Şekil 4.2. LOOM mimarisi.

76 60 Son olarak JESS (Java Expert System Shell)(Friedman-Hill, 2003), Prolog ve WebOde ontoloji editörleri ile kullanılan kural tabanlı bir çıkarsama aracıdır. Jess, Jess kural dili ile ifade edilmiş kurallar ile ileriye doğru çıkarsama mekanizmasını kullanır. İleriye doğru çıkarsama mekanizması Rete algoritmasıyla optimize edilmiştir. 4.3 Anlamsal Web ve Çıkarsama Anlamsal webin ilk tasarımında çıkarsama hiç düşünülmemesine rağmen, daha sonraları ontolojilerin gerçek gücünün çıkarsama araçları ile ortaya çıkacağı farkedildi. Bu nedenle Tim Berners-Lee, özgün taslağa mantık katmanını ekledi. Bu katmanda ontolojilere eklenen kuralların ontolojilerdeki veriye uygulanarak, ontolojide açıkça belirtilmemiş bilgilere ulaşılması hedefleniyordu. Berners-Lee, web üzerinde milyonlarca farklı çıkarsama aracının çalışarak sorgulara yanıt döndüreceğini, fakat bu araçların her sorguya yanıt döndürmesinin ya da döndürülen yanıtların eksiksiz olmasının beklenilmemesi gerektiğini savunuyordu (Berners-Lee, 1998). Lee anlamsal webin gerçek dünyanın bir taklidi olduğunu ve gerçek dünyada bizlerin birçok problemi çözemediğimizi veya eksik sonuçlara ulaşabildiğimizi, bu nedenle aynı durumlarla anlamsal web üzerinde de karşılaşılabileceğini belirtiyordu (Berners-Lee, 1998). Sonuç olarak, anlamsal web üzerinde çalışacak, çıkarsama araçlarının, kuralları veriye uygulayan, ileriye doğru zincirleme mekanizmaları olması yeterliydi. Anlamsal web, daha önceki bilgi gösterimi sistemlerinin hedeflediği gibi insanlara özgü eksiksiz

77 61 çıkarsama yeteneğini ve sağduyuyu taklit etmeyi hedeflemediği için, bu sistemlerin uğradığı başarısızlığa uğramayacaktı. David G. Schwartz, anlamsal web çalışmasının, Carl Hewitt in Open Information Systems Semantics ve Les Gasser in Distributed AI çalışmalarıyla farkedilir biçimde benzerlik gösterdiğini savunmaktadır (Schwartz, 2003). Bir açık sistem, çalışması sırasında beklenmedik etkilere bağlı olan, ve her an dışarıdan yeni bilgiler alabilen bir sistem olarak tanımlanır. Birçok bilgi sistemi dışarıdan bilgi almasına rağmen, bunlar beklenen ve önceden tanımlı bilgilerdir. İlk olarak dağıtık yapay zeka, birbirinden bağımsız sistemler arasında deterministik olmayan iletişimi gündeme getirir. Bağımsız sistemlerin deterministik olmayan iletişimi, önceden tanımlanmamış girdilerin değişimiyle sonuçlanır, bu durum açık sistemler veya açık dünya kabullenmesi olarak adlandırılır. Schwartz a göre açık dünya kabullenmesi ve dağıtık yapay zeka, anlamsal webin temellerini oluşturmaktadır. Hewitt in açık dünya sistemlerle ilgili yedi temel kavramı (Hewitt, 1991) ve Gasser in dağıtık yapay zeka ile ilgili altı prensibi (Gasser, 1999), anlamsal web çalışmalarında mutlaka gözönüne alınmalıdır. Hewitt, açık dünya sistemlerin, çelişkileri farketme ve bu çelişkileri çözme yeteneğine sahip olmaları gerektiğini belirtmektedir. Çelişkileri çözme mekanizmalarına sahip olmayan bir anlamsal web uygulaması, iletişim kontrol edilmediği için verimsiz hale gelecektir. Hewitt in değindiği bir başka nokta, açık dünya sistemlerde, sistemlerin anlaşmasıdır. Sistemlerin anlaşması, birlikte yapılacak bir iş için, katılımcıların birtakım kabullenmeler yapmasıdır.

78 62 Anlamsal web üzerinde bir örnek vermek gerekirse, bir konsorsiyumda katılımcı sistemler, bir ontolojiyi kendi ihtiyaçları doğrultusunda değiştirerek kullanmak üzere belirleyebilirler. Belirli bir zaman sonra, bu ontolojiyi değiştirip yerine belirli başka bir ontolojiyi kullanmak üzere anlaşmayı genişletebilirler. Hewitt in belirttiği kavramlar arasında, müzakere dikkate değer diğer bir terimdir. Müzakere, sistemlerin, anlaşmaları değiştirmek üzere iletişim kurmasıdır. Anlamsal web üzerinde, URI ler arası eşleştirme işlemlerinde, otomatik müzakerenin etkili olacağı belirtilmektedir. Gasser, dağıtık yapay zekanın prensiplerini belirttiği çalışmasında, dağıtık yapay zeka yaklaşımlarının, çok çeşitli gösterim çeşitlerini gözönüne alıp bu gösterimler arasında çalışan çıkarsama mekanizmaları sağlaması gerektiğini belirtmiştir. Kaynakların kısıtlı olduğu gözönünde bulundurulmalıdır. Dağıtık yapay zeka teorisi, beklenmedik çelişkiler ve tıkanıklıklara karşın etmen gruplarının birleşik, sağlam ve devamlı bir işlevsellik sağlamasını hedeflemektedir. Mark Musen, Alan Newell in bilgiyi, davranışsal bir olgu olarak karakterize etmesini örnek göstermiştir (Brewster and O Hara, 2004). Newell, bilgiyi, bir etmenin hedefleri, etmen yetenekleri ve etmenin amacına ulaşmak için seçtiği etkinlikler olarak görmüştür (Newell, 1982). Diğer bir deyişle bilgi, etmenin amacına uygun yordamları bağlayan bir özniteliktir. Bu nedenlerden ötürü, Musen e göre bilgiyi, sadece kavramsallaştırmanın gösterimi, ontoloji, olarak görmek yanlıştır. Bilgi kavramı, dünyada neler olduğunu göstermenin ötesine geçer, amacı etkinliğe bağlar.

79 63 Clansey ve Chandrasekaran ın bilgi sistemlerinde, önalan bilgisine ek olarak problem çözme metodlarını eklemenin önemine işaret etmeleri, bilgi sistemlerinde yordamsal bileşenlerin kullanılmasını yaygınlaştırdı (Chandrasekaran, 1986). Deyim tabanlı çıkarsayıcılar, öbekleyiciler, kısıt gerçekleme motorları gibi problem çözme mekanizmaları, sistemlerin belirli problemleri çözmek için önalan bilgisini nasıl kullanılacağını tanımlarlar. Problem çözme metodları, ileriye veya geriye doğru zincirlemeyi kullanan, geleneksel çıkarsama araçlarından çok farklıdır. Problem çözme mekanizmaları, klasik çıkarsama araçlarından farklı olarak, problem çözmeyi, kurallar veya çerçeveler gibi veri yapıları üzerindeki işlevler şeklinde yorumlamazlar. Bu mekanizmalar, etmenlere amaçlarını gerçekleştirmek için sahip oldukları bilgiyi nasıl kullanacaklarını gösteren soyut yordamlar sağlarlar. Anlamsal web, büyük bir bilgitabanı üzerindeki sorgulara yanıt döndürecek bir sistemdir. Bu nedenle, bilgi gösterimi büyük ölçüde ontolojiler kullanılarak gerçekleştirilecektir. Fakat çıkarsama işleminin başarısız olması, standart çıkarsamanın yeterli olmaması, çelişkilerin ortaya çıkması, çıkarsama sırasında kullanılacak birtakım buluşsal yöntemlerin belirtilmesi gibi durumlarda etmene bağlı problem çözme metodlarının kullanılmasının yararları açıkça görülmektedir. Anlamsal web ile ilgili çözülmesi gereken problemler dört grupta incelenebilir: Ontoloji yazarları nasıl anlamsal anlatımlar üretecekler? Etmenler bu bilgiye nasıl ulaşacaklar?

80 64 Etmenler dağıtık bilgiyi nasıl birleştirecekler? Kullanıcılar, anlamsal webi nasıl sorgulayacaklar? İlk sorun, ontolojileri anlatmak için tek bir şekilde yorumlanabilen, anlatım gücü yüksek ve web tabanlı dillerin ortaya çıkmasıyla ve bu dilleri kullanarak ontoloji geliştirmeyi kolaylaştıran araçların gerçekleştirimiyle çözülmüştür. Etmenlerin bu bilgiye ulaşmaları ve farklı bilgileri biraraya getirmesi konusunda, anlamsal webden önce ortaya çıkmış yapay zeka mekanizmalarının gerçekleştirimi planlanmaktadır. Berners- Lee, anlamsal webin yapay zeka olmadığını söylese de anlamsal web bu sorunları çözmek için yapay zeka çalışmalarından faydalanacaktır. Berners-Lee ontolojilerdeki terimler arası ilişki kurabilmek, bu terimlerin eşit veya farklı olduğunu gösterebilmek için, ontoloji yazarının dildeki yapıtaşlarını kullanarak, yarattığı terimin diğer ontolojilerdeki terimlerle eşitlik veya farklılık ilişkisini belirtmesi gerektiğini söylemektedir. Fakat yazar, aynı önalandaki diğer ontolojiler hakkında bilgi sahibi değilse böyle bir işlemi gerçekleştirmesi beklenemez. Anlamsal web üzerinde kullanıcıların, sorgularını ifade edebilmek için kullanacakları OWL-QL (Fikes et al., 2003) gibi biçimsel dillere ve arayüzlere ihtiyaç vardır. Bunun yanında anlamsal webin, basit sorgu yanıtlama yaklaşımlarıyla kullanıcılara daha uygun yanıtlar döndürmesi planlanmaktadır. McGuinness sorgu yanıtlamayı iyileştiren teknikleri üç grupta toplamaktadır: içerik değiştirme yaklaşımları, sorgu değiştirme yaklaşımları ve yanıt değiştirme yaklaşımları (McGuinness, 2004). Bu çalışmada gelecek kuşak sorgu yanıtlama sistemlerinin kullanıcının yazdığı sorgunun çok genel veya tutarsız

81 65 olduğu hakkında kullanıcıyı uyarıp, yazılan sorguya en uygun yanıtları döndüreceği belirtilmektedir. Bu bölüm anlamsal web üzerinde çıkarsama işlemini ve anlamsal web için geliştirilmiş çıkarsama araçlarını özetlemektedir. Bir sonraki bölümde, AEGONT çıkarsama motorunun hedefleri ve yetenekleri anlatılmaktadır. Böylelikle varolan araçlarla, geliştirilen çıkarsama aracı arasındaki farklar ve benzerlikler daha iyi anlaşılacaktır.

82 66 5. AEGONT ÇIKARSAMA MOTORU Tez kapsamında geliştirilen çıkarsama aracı, AEGONT (Aegean Ontology Development Environment) isimli ontoloji geliştirme ortamında kullanılmaktadır. Çıkarsama aracı, üzerinde hiçbir eniyileme işlemi gerçekleştirilmemiş, ileriye doğru zincirlemeye dayalı bir kural motoru olarak tanımlanabilir. Şekil 5.1 de çıkarsama motorunun mimarisi görülmektedir. Şekil 5.1. AEGONT Çıkarsama Motoru Mimarisi. Çıkarsama motoru, AEGONT projesi kapsamında geliştirilen RDF ayrıştırıcısı tarafından, özne, yüklem ve nesne üçlülerine dönüştürülmüş ontolojiler üzerinde, ayrıştırılmış kuralları da kullanarak ileriye doğru zincirleme işlemi ile kullanıcının üçlüler şeklinde ifade edilmiş sorgusunu yanıtlamaktadır. İleriye doğru zincirleme işlemi sonunda, ontolojide bir hata yoksa ontoloji kapanışı elde edilir. Ontoloji kapanışında, başlangıç ontolojisinde açıkça belirtilen deyimlerin yanında, açıkça belirtilmemiş ve çıkarsama yoluyla elde edilebilecek bilgiler bulunmaktadır. İleriye

83 67 doğru zincirleme işlemi sonunda, elde edilen ontoloji kapanışı, hafızada üçlülerden oluşmuş bir çizge olarak tutulur. Sorguya ait üçlüler, çizgenin üçlüleriyle eşleştirilmeye çalışılır. Eşleştirme başarılı olursa, sonuçlar kullanıcıya yanıt olarak döndürülür. Çıkarsama motorunun bir diğer yeteneği, geriye doğru zincirleme işlemi ile de sorgulama yapabilmesidir. Fakat geriye doğru zincirleme algoritmasından gelen birtakım açıklar dolayısıyla, geriye doğru zincirleme işlemi, sorgu yanıtlama bileşeni olarak atanmamıştır. Algoritmadaki bu açıkları kapatmak için, literatürde yer alan birtakım metodların uygulanmasıyla, geriye doğru zincirleme, çıkarsama motorunun sorgu yanıtlamak için kullandığı bir diğer alternatif durumuna gelecektir. Çıkarsama motorunun yeteneklerinin, daha iyi anlaşılabilmesi için UML ile modellenmiş, kullanım durumlarına ait çizgeler, sınıf çizgeleri ve kullanım durumu senaryoları Ek-1 de sunulmuştur. Tezin bu bölümünde, ilk olarak sistemde kuralların ve ontolojilerin nasıl saklandığı, üçlü eşleştirme işlemi ve kural ayrıştırma mekanizmaları anlatılacaktır. İkinci bölümde ontolojiler ve kurallar kullanılarak gerçekleştirilen ileriye doğru ve geriye doğru zincirleme mekanizmaları, örnek ontolojiler üzerinde incelenecektir. Bu iki bileşenin, çıkarsama motorunda ne yönde kullanıldıkları açıklanacaktır. Son bölümde, çıkarsama motoru üzerinde gerçekleştirilecek çalışmalar özetlenecektir. Bu çalışmalardan en öncelikli olanı, çıkarsama motoru için OWL-QL dili ve protokolüne dayalı bir sorgu arayüzü geliştirmektir. Daha sonraki aşamalarda ise ileriye

84 68 doğru zincirleme işlemi üzerinde Rete algoritması kullanılarak, performans iyileştirilmesi yapılacaktır. Son olarak geriye doğru zincirleme algoritmasındaki açıkları kapamak amacıyla sunulmuş metodlar uygulanacaktır. 5.1 Genel Bakış AEGONT çıkarsama motoru, kullanıcıdan sorgulanacak ontolojinin ve kullanılacak kuralların URI lerini alarak, öncelikli olarak ilgili dosyaların ayrıştırma işlemlerini gerçekleştirir. RDF dosyaları olarak saklanan OWL ontolojileri, ayrıştırıcı yardımıyla özne, yüklem ve nesne üçlülerine dönüştürülür ve bu üçlüler bir çizgede tutulur. Şekil 5.2, örnek bir ontoloji parçasının ayrıştırılması sonucu oluşan çizge üçlülerini göstermektedir. Şekilde (_) karakteriyle adlandırılan kavramlar, ayrıştırıcı tarafından otomatik olarak adlandırılmış anonim kavramlardır. Şekil 5.2. Ontolojinin ayrıştırılması.

85 69 Çizge üzerinde yaratılan indekslerle, üçlülere ulaşma işlemi hızlandırılır. Çıkarsama motorunun performansını önemli ölçüde attıran bu indeksler yedi türdür: özne, yüklem, nesne, özne-yüklem, özne-nesne, yüklem-nesne, özne-yüklem-nesne. Çıkarsama motorunun kullandığı bir diğer girdi kurallardır. Kurallar, de bahsedilen OWL Rule Language ile yaratılıp,.owlr uzantılı dosyalar olarak saklanırlar. OWL Rule Language, XML tabanlıdır ve kuralların paylaşılabilir olmasını sağlar. Dosyalarda saklanan kurallar, çıkarsama motoru tarafından ayrıştırılarak, sistemin kullandığı kural yapısına dönüştürülürler. Bu yapıda, kurallar sol el tarafı ve sağ el tarafı olmak üzere iki kısımdan oluşmaktadır. Sol el tarafı bir veya daha fazla üçlüden oluşmaktadır. Sağ el tarafında tek bir üçlü bulunmaktadır. Kural tanımlarında, tümleme işleci ( ) desteklenmemektedir. Şekil 5.3 de OWL Rule Language ile yazılmış bir kural görülmektedir. Bu kural, iki kavramın(a ve B), birbirlerini kapsamaları halinde eşit kavramlar olduklarını göstermektedir. Şekil 5.4 bu kuralın, ayrıştırıldıktan sonraki durumu göstermektedir. Değişkenleri belirtmek için başlarına (? ) karakteri konulmuştur.

86 70 Şekil 5.3. Çıkarsama motoruna ait kural yapısı. Şekil 5.4. Kuralların ayrıştırılması.

87 71 Sistemdeki kurallar iki kısımda incelenebilir (Şekil 5.5): Ontoloji dilinin standart kuralları: Bu kurallar aynı dilde ifade edilmiş bütün ontolojiler için geçerlidir. Ontolojinin ifade edildiği dilin anlamından kaynaklanırlar. Dildeki yapı taşlarının, anlamını ortaya koyarlar. Örnek olarak rdfs:subclassof terimi, bir kavramın diğer bir kavram tarafından kapsandığını gösterir. İki kavram (A ve B) birbirleri tarafından kapsanıyorsa, bu iki kavram birbirine eşittir. Şekil 5.4 te gösterilen bu kural, bu terimin anlamının gerektirdiği işlemlerin gerçekleştirilmesini sağlayacaktır. Bu gruptaki kurallar iki kısımda incelenebilir: ontolojide belirtilmemiş bilgilerin ortaya çıkarılmasını sağlayan kurallar ve ontolojideki tutarsızlıkları ortaya çıkarmaya yönelik kurallar. Bir önceki örnekte belirtilen kural, ontolojide belirtilmemiş bir bilginin çıkarsanıp, ontolojiye eklenmesini sağlar ve ilk gruptaki kurallara örnektir. Ontolojideki tutarsızlıkları bulmaya yönelik bir kural örneği olarak Şekil 5.6 de, ayrık olarak tanımlanmış iki kavrama da (Y ve Z) ait bir örneği (X) bulan kural gösterilebilir. Ayrık sınıflar owl:disjointwith terimi ile gösterilir.

88 72 Şekil 5.5. Kuralların sınıflandırılması. Şekil 5.6. Tutarsızlık bulmaya yönelik bir kural.

89 73 Kullanıcı kaynaklı kurallar: Bu tip kurallar önalana özgü kurallardır. Kullanıcıdan kullanıcıya değişiklik gösterebilirler. Örnek olarak bir kuruluşa özgü kurallar, diğer kuruluşta geçerliliğini yitirebilir. İleriye doğru çıkarsama mekanizması ayrıştırılan ontolojileri ve kuralları kullanarak, bir üçlü çizgesi olan ontoloji kapanışını döndürür. Daha sonra sorgu ile ontoloji kapanışına ait üçlüler arasında bir eşleştirme yapılmaya çalışılır. İki üçlünün eşleşebilmesi için, üçlülerin özne, yüklem ve nesne kısımlarının birebir uyuşması veya, bu kısımlardan birinin veya ikisinin de değişken olması gerekmektedir. Şekil 5.7 de, yukarıda anlatılan durumların herbirine uygun eşleşen üçlü örnekleri gösterilmektedir. Şekilde değişkenler, isimlerinin önlerinde yer alan? simgesi ile diğerlerinden ayrılmaktadırlar (örneğin orn:?x değişkeni). Şekil 5.7. Üçlü eşleşmesi. 5.2 İleriye ve Geriye Doğru Zincirleme Bileşenleri Bu bölümde anlatılan çıkarsama motoru bileşenleri Visual Studio.NET ortamında C# dili ile gerçekleştirilmiştir. Bir sonraki adım, bu bileşenlerle ilgili eniyileme işlemlerinin gerçekleştirilmesi ve bileşenlerinin sunduğu servislere her platformadan ulaşılabilmesi için servislerin web servisleri haline getirilmesidir.

90 74 Son olarak belirtilmesi gereken bir diğer nokta, bu bileşenlerin, tez kapsamında sıfırdan yaratıldığıdır. Bu bileşenlerin gerçekleştirimi sırasında, önceden geliştirilmiş hiçbir araç kullanılmamıştır İleriye Doğru Zincirleme Mekanizması İleriye doğru zincirleme mekanizması, bölüm 4.1 de anlatıldığı gibi, bir başlangıç ontolojisine, belirli bir kural kümesinin uygulanması işlemidir. İleriye doğru zincirleme işleminin algoritması aşağıda görülmektedir: Hiçbir kural, ontolojiye yeni bir üçlü eklemeyene kadar; o Her kural için, Kuralın sol el tarafındaki ilk üçlü için ontolojide varolan ve eşleşen ilk üçlüyü bul. Bu eşleşmenin oluşturduğu değişken bağlamaları (variable bindings) için yeni bir bağlama seti (binding set) oluştur. Şekil 5.8 (a), örnek bir eşleme sonucunda oluşan değişken bağlamalarını göstermektedir. Varolan değişken bağlamalarını kullanarak 1, kuralın sol el tarafında yer alan bir sonraki üçlüyü ontolojide varolan bir üçlüyle eşleştirmeye çalış. Eşleşme sonucunda, yeni 1 Varolan değişken bağlamalarını kullanarak eşleştirme işleminde, eşleştirilecek üçlü, bu bağlama seti doğrultusunda yenilenir(şekil5.8 (b)). Eşleştirme işlemi bu yeni üçlüyle yapılır.

91 75 değişken bağlamaları oluşursa, bağlama setine bunları ekle. Bir önceki adımı, yeni oluşan değişken bağlamalarını saklayarak, kuralın sol el tarafındaki bütün üçlüler için, aşağıda listelenen durumlardan biri oluşana kadar tekrarla: Oluşan bağlama seti ve ontolojide varolan üçlüleri kullanarak yeni bir eşleştirme yapılamayınca. Bu durumda, kuralın sol el tarafında eşleştirmesi yapılmış bir önceki üçlüye dön. Bu üçlü için yapılmış eşlemenin oluşturduğu, değişken bağlamalarını, bağlama setinden sil. Bu üçlü için, ontolojide varolan diğer üçlülerle alternatif bir eşleştirme gerçekleştirmeye çalışarak işleme devam et. Kuralın sol el tarafında eşleştirilecek üçlü kalmayınca. Bu durumda, Eldeki bağlama setini kullanarak, kuralın sağ el tarafındaki üçlüyü yenile. Şekil 5.8 (b), bir üçlünün, bağlama seti doğrultusunda nasıl yenilendiğini göstermektedir.

92 76 Yenilenen üçlünün, ontoloji üçlüleri arasında olup olmadığına bak. Eğer yoksa, üçlüyü ontolojiye ekle. Kuralın sol el tarafında eşleştirmesi yapılmış son üçlüye dön. Bu üçlü için yapılmış eşlemenin oluşturduğu, değişken bağlamalarını, bağlama setinden sil. Bu üçlü için, ontolojide varolan diğer üçlülerle alternatif bir eşleştirme gerçekleştirmeye çalışarak işleme devam et. Hiçbir şekilde eşleştirme yapma olanağı kalmayınca. Ek-3 te, ileriye doğru zincirleme işlemi ile bir ontolojinin kapanışının bulunması örneklenmiştir.

93 77 Şekil 5.8. (a) Eşleştirme sonunda oluşan bağlama seti. (b) Eldeki bağlama seti doğrultusunda üçlü eşleştirme. İleriye doğru zincirleme mekanizması ile sol el tarafları, ontolojideki üçlülerle eşleşen kurallar tetiklenmektedir. Şekil 5.9 (Xu, 2004), kural tabanlı bir sistemde ileriye doğru zincirleme işlemini özetlemektedir. Şekildeki örnekte, R1 kuralının tetiklenmesi için, sol el tarafında bulunan B ve C üçlülerinin eşleşmesi gerekmektedir. Fakat ontolojide B ile eşleşen üçlü olmadığından, R1 tetiklenemez. Ontolojideki C ve D üçlüleri, R2 kuralını tetikleyerek, H üçlüsünün türetilmesine neden olurlar. İleriye doğru zincirleme mekanizmasının ilk iterasyonu, kural setindeki bütün kuralların işlenmesiyle son bulur. Daha sonra ikinci iterasyon aynı şekilde, R1 kuralından başlar ve bütün kurallar işlenince son bulur. Bir iterasyon boyunca, ontolojiye yeni bir üçlü eklenmezse, ileriye doğru zincirleme mekanizması sonlanır. İleriye doğru zincirleme, aşağıdan yukarıya çıkarsama olarak nitelendirilir, çünkü alt seviyeli üçlülerden başlayarak, üst seviyeli sonuçlara ulaşılmaktadır.

94 78 Şekil 5.9. Kural tabanlı bir sistemde ileriye doğru zincirleme işlemi. Bu işlem sonunda, ontolojide bir hata yoksa, ontoloji kapanışı elde edilir. Eğer ontolojide hata varsa ileriye doğru zincirleme işlemi, tutarsızlıkları döndürür ve ontoloji kapanışı oluşmaz. Ontoloji kapanışında, başlangıç ontolojisinde açıkça belirtilen deyimlerin yanında, açıkça belirtilmemiş ve çıkarsama yoluyla elde edilebilecek bilgiler bulunmaktadır. Bu algoritmada, birçok kural sisteminin gözardı ettiği nokta, ontolojide açıkça belirtilmiş bir gerçeği, çıkarsama yoluyla tekrar ontolojiye eklemeyi önlemektir. Diğer bir deyişle bilinen bir gerçeği tekrar ontolojiye ekleyecek kuralların tetiklenmesi önlenmelidir. AEGONT çıkarsama motorunun, ileriye doğru zincirleme mekanizması üzerinde, hiçbir eniyileme gerçekleştirilmemiştir.

95 79 Bilinen bir gerçeği ontolojiye ekleyecek kuralların tetiklenmesi önlenmemiştir. AEGONT çıkarsama motoru, kullanıcıdan gelen sorguları yanıtlamak için, sorgu üçlülerini ontoloji kapanışı içindeki üçlülerle eşleştirilir. Ek-3, bir ontolojinin üçlülerini ve verilen kural kümesini kullanan ileriye doğru zincirleme mekanizmasının ürettiği bir ontoloji kapanışını göstermektedir Geriye Doğru Zincirleme Mekanizması Geriye doğru zincirleme mekanizması, bir amacı ispatlamak (sorguları yanıtlamak) için, Prolog gibi depth-first arama yapar. Geriye doğru zincirleme sırasında bir amacın ispatlanması, yan amaçların ispatlanmasıyla gerçekleştirilir. Geriye doğru zincirleme işlemi ile bir sorgunun nasıl ispatlandığını gösteren algoritma aşağıda görülmektedir: Sağ el tarafı, sorguyla eşleşen bir kural bul ve bir bağlama kümesi yarat. Yaratılan bağlama setini kullanarak, kuralın sol el tarafındaki ilk üçlüyle aşağıdaki işlemleri gerçekleştir. Üçlüyle, ontolojide varolan bir üçlüyü eşleştirmeye çalış. Üçlüyü sorgu olarak belirle ve varolan bağlama setini kullanarak, yeni sorguyu geriye doğru zincirleme işlemiyle ispatlamaya çalış.

96 80 Yukarıdaki işlemi, yeni oluşan değişken bağlamalarını saklayarak, kuralın sol el tarafındaki bütün üçlüler için, aşağıda listelenen durumlardan biri oluşana kadar tekrarla: Varolan bağlama kümesini kullanarak, ontolojideki üçlülerle ve kuralların sağ el taraflarıyla hiçbir eşleştirme yapılamıyorsa. Bu durumda, kuralın sol el tarafında eşleştirmesi yapılmış bir önceki üçlüye dön. Bu üçlü için yapılmış eşlemenin oluşturduğu, değişken bağlamalarını, bağlama setinden sil. Bu üçlü için, alternatif bir eşleştirme gerçekleştirmeye çalışarak işleme devam et. Eşleştirilecek hiçbir üçlü kalmayınca. Elde edilen bağlama seti, sorguyu ispatlamıştır. Bu durumda; Eğer sorgunun olası bütün yanıtları isteniyorsa, eldeki bağlama setini çözüm olarak sun ve sanki en son üçlü için eşleştirme yapılamamış gibi davran. Tek bir yanıtın bulunması yeterli ise, eldeki bağlama

97 81 setini çözüm olarak sun ve çık. Hiçbir şekilde eşleştirme yapma olanağı kalmayınca. Ek-4 te geriye doğru zincirleme işlemi ile bir sorgunun ispatlanması örneklenmiştir. Şekil 5.10 (Xu, 2004), geriye doğru zincirleme işlemini özetlemektedir. H amacının (hipotezinin) doğru veya yanlış olduğunu ispatlayabilmek için, yan amaçlardan en az biri ispatlanmalıdır. Bu çizge bir and-or ağacını göstermektedir. Bu ağaçta, H2 gibi bazı hipotezler, alt seviyesindeki bütün hipotezlerin ispatlanmasını gerektirirken, H hipotezi gibi olan diğerleri için tek bir yan amacın ispatlanması yeterlidir. Şekil Geriye doğru zincirleme işlemi.

98 82 Geriye doğru zincirleme sırasında, verilen bir düğümden yola çıkarak, çizgedeki diğer bir düğüme yol bulmaya çalışılmaktadır. Bulunan yol sonsuz uzunlukta olabilir, bu durumda algoritma sonlanmaz. Aşağıdaki örnek, çözüm olmasına rağmen, sonsuz döngüyle sonuçlanan bir aramayı göstermektedir (Bogunovic, 1995) : p ( a, b ). p ( c, b ). p ( X, Y ), p ( Y, Z ) p ( X, Z ). p ( Y, X ) p( Y, X ). X, Y, Z değişken isimlerini belirtmektedir, bu işlemde amaç p (a, c) olarak verilmiştir. Bu örnekteki, son iki kural çok genel olduğu için herhangi bir alt amaç ile eşleşecek, bu yüzden kuralların sırası ne olursa olsun, sistem her iki kuralı da kullanamayacaktır. Sonuç olarak bu arama sonsuz döngü ile sonuçlanacaktır. Belirtilen problem, geriye doğru zincirleme mekanizmasının en önemli açığıdır İleriye ve Geriye Zincirlemenin karşılaştırılması AEGONT çıkarsama motorunda, sorgu yanıtlamak için iki alternatif sağlanmaya çalışılmasının nedeni, performansı arttırmaktır. Sorgunun yapısına göre, bu iki yöntemden biri daha yüksek performans sağlamaktadır. İleriye doğru zincirleme mekanizması, istenilen amaca ulaşmanın birçok yolu olduğunda; fakat, üçlüleri kullanarak ulaşılacak sonuçların sayısı az olduğunda, geriye doğru zincirleme mekanizmasına göre daha avantajlıdır. İleriye doğru zincirleme mekanizmasının, avantajlı olduğu bir örnek Şekil 5.11 de (Xu, 2004) gösterilmiştir. Şekilde ağaç geniştir fakat fazla derin değildir,

99 83 bu sonuç ileriye doğru zincirleme mekanizmasının, breadth-first arama yapmasından kaynaklanmaktadır. Şekil İleriye doğru zincirleme mekanizmasının avantajlı olduğu bir durum. Geriye doğru zincirleme mekanizması, yukarıdan aşağıya çıkarsama olarak nitelendirilebilir. Çünkü hipotezler (amaçlar) gibi yüksek seviyeli yapılardan yola çıkarak, bu hipotezleri destekleyecek daha alt seviyeli üçlülerin bulunmasını öngörür. Geriye doğru zincirleme mekanizması, üçlüleri kullanarak ulaşılacak sonuçların sayısı çok olduğunda fakat istenilen amaca ulaşmanın az sayıda yolu olduğunda, ileriye doğru zincirleme mekanizmasına göre daha avantajlıdır. Geriye doğru zincirleme mekanizmasının, avantajlı olduğu bir örnek Şekil 5.12 de (Xu, 2004) gösterilmiştir. Buradaki ağacın dar ve derin olmasının nedeni, geriye doğru zincirleme mekanizmasının depth-first arama yapmasıdır.

100 84 Şekil Geriye doğru zincirleme mekanizmasının avantajlı olduğu bir durum. 5.3 İleriye Yönelik Çalışmalar AEGONT sunucusu, anlamsal web üzerinde sorgu yanıtlamak amacıyla geliştirilmektedir. Anlamsal web, klasik veri tabanlarından ve lokal çözümler sağlayan klasik bilgitabanlarından farklı bir ortamdır. Anlamsal web üzerinde, bilgi dağıtık ve parçalıdır. Sorguyu yanıtlamak için çıkarsama mekanizmalarına gereksinim duyulur. Sorguyu gönderen etmen, sorgulayacağı bilgitabanları hakkında fikir sahibi değildir. OWL sorgu dili (OWL-QL)(Fikes et al., 2003), anlamsal web etmenleri arasında, OWL dilinde ifade edilmiş bilgiyi kullanarak geliştirilen sorgu-yanıt dialogları için standart olmaya aday bir dil ve protokoldür. Standart veritabanı ve web sorgulama dillerinin aksine, OWL-QL yanıt döndüren etmenin, sorguyu yanıtlamak için otomatik çıkarsama metodlarını kullanabildiği sorgu-yanıt dialoglarını destekler. Bunun yanında, sorguyu yanıtlamak için kullanılacak bilgi, anlamsal web üzerindeki birçok bilgitabanında dağıtık olabilir, dahası bu bilgitabanları sorguyu gönderen etmen tarafından belirtilmemiştir. Böyle bir ortamda, sorgunun yanıtı beklenmeyen boyutlarda olabilir ve sorgunun döndürülmesi makul

101 85 süreyi aşabilir. OWL-QL, sorgu, sorgunun yanıtı ve yanıtı üretecek bilgitabanları arasındaki ilişkiyi gösterebilen biçimsel bir dildir. Yapılacak ilk iyileştirme, sorgu yanıtlama işleminin OWL- QL protokolü çerçevesinde gerçekleştirilmesidir başlığı altında OWL-QL protokolünün ayrıntıları anlatılmıştır. Bu kısım, (Fikes et al., 2003) etiketli kaynağın bir özeti ve çevirisi niteliğindedir. Daha sonraki iyileştirmeler, varolan çıkarsama mekanizmalarıyla ilgilidir. İlki ileriye doğru zincirleme işleminin hızlandırılması için, daha önce Jess, OPS5, ART, CLIPS gibi kural tabanlı sistemlerde uygulanmış Rete algoritmasıdır. İkincisi ise, geriye doğru çıkarsama mekanizmasının sonsuz döngüye girmesini önlemeye yöneliktir. Geriye doğru çıkarsama mekanizmasında sonsuz döngü örneği, bölüm de verilmiştir. Böylelikle geriye doğru zincirleme mekanizmasının, her durumda çalışabilirliği sağlanacak ve bu mekanizma çıkarsama motoru tarafından, alternatif sorgu yanıtlama metodu olarak kullanılacaktır OWL-QL Dili ve Protokolü OWL sorgu dili (OWL-QL), sorguyu gönderen (istemci) ve yanıt döndüren(sunucu) etmenin, OWL dilinde ifade edilmiş bilgiyi kullanarak, bir sorgu-yanıtlama diyaloğu yürütebilmeleri için önerilmiş biçimsel bir dil ve protokoldür. OWL-QL tasarımı, anlamsal web üzerinde sorgu-yanıtlama dialogları hakkında, aşağıda listelenen birtakım kabullenmeleri temel almaktadır: Anlamsal web çeşitli biçimlerde ifade edilmiş birçok çeşit bilgiye ulaşan, çok çeşitli sorgu-yanıtlama servislerini içerir. Klasik sorgu dillerinden farklı olarak OWL-QL, sunucuların yanıt döndürebilmek için otomatik çıkarsama metodlarını

102 86 kullanmasını, sorgu yanıtlamak için kullanılacak bilginin birden fazla bilgitabanı üzerinde dağıtık olarak durmasını ve istemcinin kullanılacak bilgitabanlarını belirtmediği durumları destekler. Anlamsal web üzerinde bazı sunucular, konu hakkında kısmi bilgiye sahiptir. Bazı sunucular kısıtlı performansa sahiptir ve bazı sunucular bazı tip sorguları desteklememektedir. Bu yüzden, sorgulama protokolünün, kısmi yanıtları transfer edebilmesi önem taşımaktadır. OWL-QL, sunucunun yanıtları buldukça, parça parça döndürmesine izin verir. Bunun yanında anlamsal web üzerinde bir sorgunun yanıtı, beklenmeyen boyutlarda olabilir. Bu nedenle OWL-QL, sunucunun istemciye göndereceği bir sonraki yanıt setindeki yanıt sayısının, istemci tarafından belirtilmesini destekler. Anlamsal web sorgu dili, sorguyu yanıtlamak için kullanılacak bilgitabanlarının belirtilmediği, sorguları desteklemelidir. Anlamsal web üzerinde sorgular sunucuya yollanacak ve sunucu yanıtı bulabileceği, güvenilir bilgi kaynaklarını seçecektir. OWL-QL sorguyu yanıtlayacak bilgitabanlarının sunucu tarafından seçilmesini destekler. Buna ek olarak kullanıcı, sorguyu yanıtlamak için kullanılan bilgitabanlarını görmek için istekte bulunabilir. Web üzerinde çok çeşitli gösterim biçimleri ve sözdizimler kullanılmaktadır. Değişik grupların farklı tercihleri bulunmaktadır ve bunların hiçbiri standart değildir. OWL-QL tasarımının ana özellikleri, dilden bağımsızdır. Anlamsal web üzerinde bilgi gösterimi için kullanılan diller, anlam içerirler. Bu özellik, anlamsal web için geliştirilmiş

103 87 sorgu dilleri içinde geçerlidir. Bu diller sorgu, sorgunun yanıtı ve yanıtı bulmak için kullanılan bilgitabanları arasındaki ilişkilerin, biçimsel anlatımlarını içerirler. OWL-QL, anlamsal web sorgu dillerinde olması gereken, bu özelliği taşımaktadır. Bir OWL-QL sorgu-yanıtlama diyaloğu, istemcinin, sunucuya sorgu yollamasıyla başlar. Bir OWL-QL sorgusu mutlaka bir sorgu örüntüsü içeren bir nesne olarak tanımlanabilir. Sorgu örüntüsü, OWL cümlelerinden oluşmuş bir kümedir. Bu cümlelerin içindeki bir kısım URIref ler değişken olarak nitelendirilir. Şekil 5.13, basit bir OWL-QL sorgusunu ve yanıtını göstermektedir. Sorguda, istemci Kimin kırmızı arabası var? sorgusunu göndermektedir. Değişkenler (?) karakteri ile belirtilmiştir. Şekil Basit bir OWL-QL sorgusu ve yanıtı. Bazı durumlarda, bir bilgitabanı sorgunun yanıtını içermesine rağmen, bilgitabanını kullanarak sorgudaki her değişken bağlanamaz. Örnek olarak, Her insanın bir babası vardır. ve Joe bir insandır. bilgilerini içeren bir bilgitabanı, Joe nun bir babası

104 88 vardır. yargısına varabilir. Fakat Joe nun babasının kim olduğunu söyleyemez. OWL-QL, istemcinin, yanıtı bir değişken bağlansa da bağlanmasa da kabul edeceği durumları tasarlamasını destekler. Bir OWL-QL sorgusundaki tüm değişkenler, must-bind değişkeni, may-bind değişkeni veya don t bind değişkeni tiplerinden birine aittir. must bind, may-bind ve don t bind değişkenlerinin etkilerini gösterebilmek için aşağıdaki bilgileri içeren bir bilgitabanı gözönünde bulundurulursa: Her insanın bir babası vardır. C i, insanlar kümesini belirtir. C k, C i nin alt kümesidir. C k kümesinin her elemanı için, F k, C k nın babasıdır.. Böyle bir durumda bilgitabanına {(hasfather?p?f)} şeklinde ve?p hasfather?f anlamına gelen, bir sorgu örüntüsü gönderildiğinde:?f don t-bind değişkeni ise: Sorgu yanıtları, C i kümesindeki tüm insanları içerir. Sorgu yanıtlarında bu insanların babalarına ait hiçbir bilgi bulunmaz.?f must-bind değişkeni ise: Sorguya ait her yanıtta bir insan ve bu insanın babasına ait bilgi bulunur. Yanıtlar sadece C k, kümesindeki insanları içerir.?f may-bind değişkeni ise: Yanıtlar, C i kümesindeki her insanı, tekrarsız olarak içerir. Bilgitabanında, bir insanın babasına ait bilgi bulunuyorsa, yanıtlarda bu bilgi sunulur. Eğer insanın, babasına ait bilgi yoksa, yalnızca kendi bilgisi sunulur.

105 89 OWL-QL, istemcinin döndürülecek yanıtın formatını belirlemesine izin verir. Bu format sorgu ile birlikte yollanır ve isteğe bağlı olarak, bir yanıt örüntüsü içerir. Yanıt örüntüsü içerisinde sorgunun tüm must-bind ve may-bind değişkenlerini içeren herhangi bir liste ifadesi olabilir. Eğer yanıt örüntüsü belirtilmemişse, must-bind ve may-bind değişken listeleri yanıt örüntüsü olarak kullanılır. Yanıt, yanıt örüntüsündeki her değişkenin yerine, değişkenin bağlanmış olduğu değerin yerleştirilmesiyle oluşturulur. OWL-QL dilinin anlatım gücü, OWL dilinin anlatım gücüyle kısıtlıdır. OWL ile modellenemeyen kavramlar, OWL-QL ile gösterilemez. Örnek olarak OWL-QL dili OWL dili gibi, en genel altsınıf veya en özel kavramı modelleyemez. OWL-QL dili, OWL dili gibi, gerektirir( ) mantıksal bağlacını içermez. Bunun sonucunda Eğer Joe bir insansa, Joe nun babası var mıdır? gibi sorgular yalnızca bir sorgu örüntüsü kullanılarak modellenemez. Bu tip sorguları modelleyebilmek için OWL-QL sorgusu, bir sorgu öncülü içerebilir. Sorgu öncülü içermeyen sorgularda, sorgu öncülü boş olarak kabul edilir. Şekil 5.14 te Eğer C1 bir deniz ürünü ise ve W1, C1 ile tüketilebilen bir içecek ise W1 ne renktir? sorgusundaki, Eğer C1 bir deniz ürünü ise ve W1, C1 ile tüketilebilen bir içecek ise öncülü, sorgu öncülü (premise) olarak belirtilmiştir. Şekil OWL-QL ile sorgu öncüllerinin modellenmesi.

106 90 Sunucunun sorguyu yanıtlarken kullandığı OWL cümleleri, yanıt bilgitabanı olarak adlandırılır. Bu bilgitabanı bir veya daha fazla bilgitabanını belirtebildiği gibi, sunucunun yanıtı bulurken ulaşabildiği bütün bilgiyi gösteren sanal bir etikette olabilir. Bir OWL-QL sorgusu, bir bilgitabanı, bilgitabanı referansları listesi veya bir değişken olabilen bir yanıt bilgitabanı örüntüsü içerir. Eğer bilgitabanı örüntüsü, bir bilgitabanı veya bilgitabanına referanssa, bu durumda bu bilgitabanı yanıtı içermelidir. Eğer örüntü, bir bilgitabanı listesi veya bilgitabanı referansları listesi ise, bilgitabanlarının birleşimi yanıtların birleşimini içermelidir. Son olarak, örüntü bir değişkense, sunucu sorguyu yanıtlamak için herhangi bir bilgitabanını seçmekte serbesttir. Bu değişken mustbind değişkeni ise, sunucu istemciye sorguyu yanıtlarken kullandığı bilgitabanlarının referanslarını döndürmek zorundadır. Bir sorgunun bir veya daha fazla yanıtı olabildiği gibi hiç yanıtı olmayabilir. İstemcinin, bütün yanıtların bulunmasını beklemesi ve sunucunun yanıtları bir kerede döndürmesi gerçekçi bir çözüm sunmaz. Buna ek olarak, sunucular konu hakkında kısmi bilgiye sahip olabilirler ve yanıtların yalnızca bir kısmını döndürebilirler. Bununla birlikte, dönen yanıtlar içerisinde gereksiz tekrarlar olabilir. İstemcinin bekletilerek, bütün yanıtların bir kerede döndürülmesi yerine, sunucu yanıtları demetler içerisinde yollar. İstemci, her demette en fazla ne kadar yanıt bulunacağını belirtebilir. İstemci, bir sorgunun yanıtı için sunucuya gönderdiği her istekte yanıt demet boyutu belirtebilir. Sunucunun, dialog boyunca gönderdiği tüm yanıtlar, tepki koleksiyonu olarak adlandırılır.

107 91 Yanıt demeti, mutlaka bir işlem tanıtıcısı veya bir ya da daha fazla sonlandırma simgesi içerir. Yanıt demeti içerisinde sonlandırma simgelerinin bulunması, sunucunun bütün yanıtları döndürdüğünü ve daha fazla yanıt döndürmeyeceğini belirtir. Yanıt demetinde, işlem tanıtıcısının bulunması, sunucunun, istemcinin istemesi halinde daha fazla yanıt döndürebileceğini belirtir. İstemci, daha fazla yanıt isterse, sunucuya sunucu sürdürme gönderir. Sunucu sürdürme içerisinde, sunucunun bir önceki yanıt demeti içerisinde gönderdiği işlem tanıtıcısı ve bir sonraki yanıtın boyutunu belirleyen yanıt demet boyutu bulunur. İstemci, sunucuya sunucu sonlandırma yollayarak, dialoğu sonlandırabilir. Şekil 5.15, anlatılan OWL-QL sorgu-yanıtlama dialoğunu özetlemektedir. Şekil OWL-QL sorgu-yanıtlama dialoğu.

108 92 İstemcinin, döndürülen yanıtların içerisinde gereksiz tekrarlar olup olmadığını bilmesi yararlı bir özelliktir. OWL-QL, sunucunun gereksiz tekrar içermeyen yanıtlar döndürme yeteneğini, istemcilere bildirebilmesini sağlar. Sunucuların tekrar içermeyen yanıt döndürme yetenekleri aşağıdaki gibi seviyelendirilmiştir: non-repeating: dönen yanıtlar içerisinde, birbirine eşit yanıtlar yoktur. terse: sunucu bir yanıt gönderdikten sonra, bu yanıtı kapsayan başka bir yanıt döndüremez. serially terse: sayılan seviyeler arasında gerçekleştirimi en zor olanıdır. Serially terse olarak nitelendirilen bir sunucu, bir sorguya döndürülen yanıt koleksiyonu içerisinde herhangi bir yanıttan daha genel veya eşit bir yanıt olmayacağını garanti eder. Serially terse bir server, aynı zamanda terse ve non-repeating dir. Bu yargının tersi doğru değildir İleriye Doğru Zincirleme Üzerinde Eniyileme İleriye doğru zincirleme mekanizması, basit bir örüntüeşleştirme algoritmasıdır. Sabit sayıdaki kuralı, değişen sayıdaki olgulara uygular. Fakat, deneysel sonuçlar, her döngüde değişen olgu sayısının, toplam olgu sayısına göre çok az olduğunu göstermektedir. Bu durumda, yeni olgular bulabilmek için her iterasyonda yapılan testlerin birçoğu, bir önceki iterasyondaki testlerle aynı sonuçları üretir. Kural tabanlı sistemlerin çoğu bu sorunu çözebilmek için Charles Forgy nin Rete algoritmasını(forgy, 1982) kullanmaktadır. Bu bölümde, Rete algoritmasının Jess kural motoruna uygun olarak genişletilmesi ve rafine edilmesi

109 93 anlatılmaktadır (Friedman-Hill, 2003). Algoritmanın özgün hali, büyük miktardaki örüntünün yine büyük miktardaki nesne ile karşılaştırılması için uygun bir metod sunmaktadır. Rete algoritması kısaca, her iterasyonda yapılmış test sonuçlarının hatırlanması prensibine dayanır. Her iterasyonda yalnızca, yeni oluşan olgular karşılaştırılarak performans önemli ölçüde arttırılır. Bununla birlikte, yeni olgular yalnızca eşleşebilecek uygun kurallarla karşılaştırılır. Rete Latince ağ anlamına gelmektedir. Rete algoritması, birbirine bağlı düğümlerden oluşmuş bir ağ yaratılmasını hedefler. Her düğüm, bir kuralın sol el tarafında gerçekleştirilmiş bir veya daha fazla testi belirtir. Her düğümde bir yada iki adet girdi ve herhangi bir sayıda çıktı bulunur. Yeni eklenen veya çıkartılan olgular, düğümlerden oluşan bu ağ tarafından işlenir. Girdi düğümleri, ağın üstünde, çıktı düğümleri ağın altında yer alırlar. Bu düğümler birleşerek Rete ağını oluştururlar. Ağın üst kısmında yer alan girdi düğümleri, olguları baş kısımlarına göre kategorilere ayırırlar- örnek olarak kitaplar bir kısma, ödünç alanlar bir kısma ayrılır. Ağın iç kısımlarına doğru, daha keskin ayrımlar gerçekleştirilir. Ağın alt kısmı kuralları belirten düğümlerden oluşur. Bir olgu ağda en tepeden aşağıya kadar süzüldüğünde, alttaki kuralın sol el tarafı testlerinden geçmiştir. Girdiler ve çıktılar haricinde, ağ iki ayrı biçimdeki düğümlerden oluşur: bir girdili düğümler ve iki girdili düğümler. Bir girdili düğümler tek bir olguyu bağımsız olarak test eder. İki girdili düğümler ise birçok olguyu birlikte test eder. Şekil 5.16, Rete algoritmasını bir örnekle açıklamaktadır. Örnekte olgular

110 94 tanımlanmış ve test edilmesi gereken iki durum gösterilmiştir. Şekildeki ağ bu örnek doğrultusunda oluşturulmuş Rete ağını göstermektedir. Şekil Örnek bir Rete ağı. Şekil 5.16 da, her kutu bir düğümü belirtmektedir. Bir düğümün girdileri en üstte, çıktıları ise en altta yer almaktadır. Elmas şeklindeki?q biçiminde etiketlenmiş düğümler, tek girdili diğer bir deyişle örüntü düğümleridir. Örüntü düğümleri bir olgunun, başında yer alan değişkenin veya değerin?q ile örtüşüp

111 95 örtüşmediğini test eder. Bu testi geçen olgular, bu düğümün çıktısına gönderilirler. Yamuk biçimindeki düğümler iki girdili diğer bir deyişle bağlantı düğümleridir. Her bağlantı düğümü, sol taraftan gelen ilk n-1 inci örüntünün sonuçlarını, sağdan gelen n inci örüntü sonuçları ile bağlar. Ağ, sol taraftaki girdilerin bir ya da daha çok olguyu destekleyebileceği, sağ taraftaki girdilerin ise yalnızca bir olguyu destekleyeceği şekilde tasarlanmıştır. Her bağlantı düğümü, iki ya da daha fazla olguyu çıktı olarak verir. Bağlantı düğümlerinde, iki girdiden gelenler ayrı bellek bölgelerinde tutulurlar. Bu bellek bölgeleri alfa ve beta olarak adlandırılır. Fakat bu anlatımda ve Şekil 5.16 da sol ve sağ olarak adlandırılmışlardır. LEFT.p.q=RIGHT.r? gösterimi, sol bellekten p. olgudaki q slotunun sağ bellekten slot r ile karşılaştırma sonuçlarını içerir. Bağlantı düğümleri, bu düğümde testi geçmiş olan her sağ bellek elemanı ve sol bellek elemanı eşleştirmesi için bir çıktı üretir. En alttaki oval düğümler, bağımsız kuralları belirten sonlandırıcı düğümlerdir. Bir tek girdileri vardır ve çıktıları yoktur. Bu düğümlere bir girdi geldiğinde, girdi nesnesi ve belirttiği kural kullanılarak bir aktivasyon kaydı oluşturulur ve bu kayıt ajandada saklanır. Bu ağı çalıştırmak için, şekildeki her yeni olgu ağın en üstünde gösterilir. Örnek örüntü ağı x, y, ve z dışında bütün olguları eler. Bağlantı düğümü, bütün {x, y} çiftlerini x.a=y.b ile birlikte example-1 e ait sonlandırıcı düğüme gönderir. Ve bütün {x, y, z} üçlüleri example-2 ye yollanır.

112 96 Başlangıçtaki olgulara ek olarak, (z (c 17))? şeklinde bir olgu eklendiğinde, bu olgu =z? şeklinde gösterilir ve aşağıdaki bağlantı düğümüne gönderilir. Bağlantı düğümüne ait sol bellek zaten bütün x, y eşleştirmelerini içermektedir. Bu yüzden doğru x, y, z üçlüleri, ilk iterasyonda gerçekleştirilen örüntü eşleştirme işlemi tekrarlanmadan, daha önce bulunmuş olan her x, y çifti için yeni bir aktivasyon kaydı yaratılarak oluşturulur Geriye Doğru Zincirlemenin Çalışabilirliği Diğer bir eniyileme geriye doğru zincirleme mekanizması üzerinde gerçekleştirilecektir. Geriye doğru zincirleme mekanizması üzerinde (Bogunovic, 1995) de anlatılan tabling(memoing) yöntemi uygulanacaktır. Bu yöntem kısaca, geriye doğru zincirleme işlemi sırasında ispatlanmaya çalışılan her amacı ve yanıtı bir yığıtta saklar. İspatlanmak üzere yollanan bir amaç zaten yığıtta bulunuyorsa, sistemin sonsuz döngüye girmesini engellemek amacıyla, zaten yığıtta bulunan amacın yanıtı dönene kadar işlem durdurulur.

113 97 6. SONUÇ AEGONT çıkarsama motoru, RDF tabanlı diller ile ifade edilmiş ontolojiler üzerinde çıkarsama yapmaktadır. Çıkarsama işlemi, ileriye doğru zincirleme ve geriye doğru zincirleme mekanizmaları ile gerçekleştirilmektedir. Bu işlemler üzerinde hiçbir eniyileme gerçekleştirilmemiştir. İşlemlerin sağlıklı ve performansı yüksek olarak çalışabilmesi için Rete algoritması, tabling ve magic transformation gibi eniyileme tekniklerinin uygulanması planlanmaktadır. Çıkarsama motoru sorgu cevaplama, ontoloji kapanışı bulma ve bir ontolojinin tutarlılığını test etme gibi standart çıkarsama servisleri sunmaktadır. Daha sonraki aşamalarda, bu servislerin, web servisi haline getirilmesiyle, istemciler sunucuya her platformadan ulaşacaklardır. Çıkarsama motorunun, anlamsal web üzerinde çalışması planlanmaktadır. Bu nedenle, araç üzerinde iyileştirme işlemlerine gerek duyulmaktadır. Anlamsal web üzerindeki ontoloji dökümanlarına bakıldığında, bu dökümanların aslında her kullanıcının kendi uygulamasının ihtiyaçları doğrultusunda geliştirdiği, sınırlı sayıda kavrama sahip mikrodünyalar olduğu görülecektir. Bugün ontoloji olarak nitelendirilen dökümanların içerdiği bilgiler eksiktir ve bu dökümanlar tek başlarına bir ontoloji oluşturamazlar. Ancak bu dökümanların hepsi biraraya getirildiğinde oluşan döküman ontolojidir. Bu açıdan bakıldığında anlamsal web, üzerinde tek bir ontolojinin, dağıtık olarak bulunduğu bir bilgitabanıdır. Bu dağıtık ontoloji parçaları arasındaki bütünleştirmenin, bir ontolojinin içindeki kavramların, diğer ontolojilerdeki kavramlara referans vermesiyle gerçekleştirilmesi planlanmaktadır. Ontolojiler üzerinde gerçekleştirilecek işlemlerin kolaylığı açısından, birbirlerine

114 98 referans veren ontolojilerin fiziksel olarak yakın olması uygun bir çözüm olarak durmaktadır. Bu şekilde bir döküman ağı yaratıldıktan sonra, ikinci adım bu dökümanların, örnekleri ile ilişkilendirilmesidir. Bir önalandaki ontolojiyi kullanan ve bu ontolojiden fiziksel olarak bağımsız birçok bilgitabanı olabilir. Örnek olarak, turizm alanında geliştirilmiş bir ontolojiyi kullanan birçok otel bulunacaktır. Bu anlatılanlardan sonra anlamsal web, Şekil 6.1 deki gibi bir ortam olarak gösterilebilir. Şekilde nokta kümeleri birbiriyle ilişkili ontolojileri, dış katmandaki büyük noktalar bu ontolojilerle ilişkili, fakat fiziksel olarak bağımsız, örneklerden oluşan bilgitabanlarını göstermektedir. Şekil 6.1. Anlamsal webin genel görüntüsü. Çıkarsama işlemi, anlamsal web gibi bilginin dağıtık olarak durduğu ve istemcinin sorgusuna makul bir zamanda yanıt döndürülmesi gerekliliği olan bir ortamın gereksinimlerini karşılayan bir protokol içerisinde gerçekleştirilmelidir. Bu nedenle,

Bölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler. Fundamentals, Design, and Implementation, 9/e

Bölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler. Fundamentals, Design, and Implementation, 9/e Bölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler Fundamentals, Design, and Implementation, 9/e Üç Şema Modeli Üç şema modeli 1975 de ANSI/SPARC tarafından geliştirildi Veri modellemeninç ve rolünü

Detaylı

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

Yazılım Yeniden Yapılamaya Yönelik Bir Kurumsal Mimari: Model Güdümlü ve Ontoloji Tabanlı Bir Yaklaşım Yazılım Yeniden Yapılamaya Yönelik Bir Kurumsal Mimari: Model Güdümlü ve Ontoloji Tabanlı Bir Yaklaşım Doç.Dr. Murat Paşa UYSAL Prof.Dr. A. Erhan MERGEN Yazılım Yeniden Yapılama Genel olarak Yazılım Yeniden

Detaylı

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

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri Konular Veritabanı Tasarım Aşamaları Veri Modeli Nedir? Veri Modeli Temel Bileşenleri İş Kuralları (Business Rules) İş Kurallarını Veri

Detaylı

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

Yrd. Doç. Dr. Tuğba ÖZACAR ÖZTÜRK Yrd. Doç. Dr. Tuğba ÖZACAR ÖZTÜRK ÖĞRENİM DURUMU Derece Üniversite Bölüm / Program Yıllar Lisans Dokuz Eylül Üniversitesi Bilgisayar Mühendisliği 99-00 Y. Lisans Ege Üniversitesi Bilgisayar Mühendisliği

Detaylı

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

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir? Sınıf Diyagramları Sınıf diyagramı statik bir diyagramdır. Bir uygulamanın statik görünümünü temsil eder. Sınıf diyagramı sadece bir sistemin farklı yönlerini görselleştirmek, açıklamak ve belgelemek için

Detaylı

Semantik Bilgi Yönetimi

Semantik Bilgi Yönetimi Semantik Bilgi Yönetimi Yaşar ar Tonta Hacettepe Üniversitesi Bilgi ve Belge Yönetimi Bölümü tonta@hacettepe.edu.tr yunus.hacettepe.edu.tr/~tonta/ 1 Plan Memex ten Semantik Web e... Semantik Bilgi Yönetimi

Detaylı

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri Veri modelleri, veriler arasında ilişkisel ve sırasal düzeni gösteren kavramsal tanımlardır. Her program en azından bir veri modeline dayanır. Uygun

Detaylı

BSM 532 KABLOSUZ AĞLARIN MODELLEMESİ VE ANALİZİ OPNET MODELER

BSM 532 KABLOSUZ AĞLARIN MODELLEMESİ VE ANALİZİ OPNET MODELER BSM 532 KABLOSUZ AĞLARIN MODELLEMESİ VE ANALİZİ OPNET MODELER Yazılımı ve Genel Özellikleri Doç.Dr. Cüneyt BAYILMIŞ Kablosuz Ağların Modellemesi ve Analizi 1 OPNET OPNET Modeler, iletişim sistemleri ve

Detaylı

UZAKTAN EĞİTİM MERKEZİ

UZAKTAN EĞİTİM MERKEZİ ÜNİTE 2 VERİ TABANI İÇİNDEKİLER Veri Tabanı Veri Tabanı İle İlgili Temel Kavramlar Tablo Alan Sorgu Veri Tabanı Yapısı BAYBURT ÜNİVERSİTESİ UZAKTAN EĞİTİM MERKEZİ BİLGİSAYAR II HEDEFLER Veri tabanı kavramını

Detaylı

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

Yrd. Doç. Dr. Övünç ÖZTÜRK Yrd. Doç. Dr. Övünç ÖZTÜRK ÖĞRENİM DURUMU Derece Üniversite Bölüm / Program Yıllar Lisans Orta Doğu Teknik Üniversitesi Bilgisayar Mühendisliği 99-00 Y. Lisans Ege Üniversitesi Bilgisayar Mühendisliği

Detaylı

BULANIK MANTIK VE SİSTEMLERİ 2014 2015 BAHAR DÖNEMİ ÖDEV 1. Müslüm ÖZTÜRK 148164001004 Bilişim Teknolojileri Mühendisliği ABD Doktora Programı

BULANIK MANTIK VE SİSTEMLERİ 2014 2015 BAHAR DÖNEMİ ÖDEV 1. Müslüm ÖZTÜRK 148164001004 Bilişim Teknolojileri Mühendisliği ABD Doktora Programı BULANIK MANTIK VE SİSTEMLERİ 2014 2015 BAHAR DÖNEMİ ÖDEV 1 Müslüm ÖZTÜRK 148164001004 Bilişim Teknolojileri Mühendisliği ABD Doktora Programı Mart 2015 0 SORU 1) Bulanık Küme nedir? Bulanık Kümenin (fuzzy

Detaylı

İş Zekası için Dört-Katmanlı Veri Modellemesi Gerçekleştirimi. Harun Gökçe EG Yazılım, TOBB ETÜ

İş Zekası için Dört-Katmanlı Veri Modellemesi Gerçekleştirimi. Harun Gökçe EG Yazılım, TOBB ETÜ İş Zekası için Dört-Katmanlı Veri Modellemesi Gerçekleştirimi Harun Gökçe EG Yazılım, TOBB ETÜ İçerik İş Zekası Kavramı Tarihçesi İş Zekası Tanım, Kavramlar ve Gereklilik Dört-Katmanlı Veri Modellemesi

Detaylı

Mobil Cihazlardan Web Servis Sunumu

Mobil Cihazlardan Web Servis Sunumu Mobil Cihazlardan Web Servis Sunumu Özlem Özgöbek Ege Üniversitesi Bilgisayar Mühendisliği Bölümü 2010 İnternet erişiminin yaygınlaşması ve artık mobil cihazlar üzerinden bile yüksek hızlı veri iletişimine

Detaylı

Veritabanı Tasarımı. NOT NULL ve UNIQUE Kısıtlamaları Tanımlama

Veritabanı Tasarımı. NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Veritabanı Tasarımı NOT NULL ve UNIQUE Kısıtlamaları Tanımlama NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Konular Kısıtlama terimini veri bütünlüğü ile ilişkilendirerek tanımlama Sütun seviyesinde ve tablo

Detaylı

Süreklilik Göstergesi. Kavram Haritaları. Etkileşim Göstergesi. Problem/Çözüm Göstergesi Karşılaştırma Matrisi. (Anlam Çözümleme Tablosu)

Süreklilik Göstergesi. Kavram Haritaları. Etkileşim Göstergesi. Problem/Çözüm Göstergesi Karşılaştırma Matrisi. (Anlam Çözümleme Tablosu) Kavram Haritaları Hiyerarşik KH Hiyerarşik Olmayan KH ( Ağ, Örümcek Harita) Zincir KH Sınıflandırma Haritası Vee Diyagramları Neden-Sonuç Diyagramları Balık Kılçığı Döngü Göstergesi Olay Zinciri Dizileri

Detaylı

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları Veri yapısı, bilginin anlamlı sırada bellekte veya disk, çubuk bellek gibi saklama birimlerinde tutulması veya saklanması şeklini gösterir. Bilgisayar

Detaylı

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

Ontoloji Tabanlı Türk Şarap Portalı Tasarımı Ontoloji Tabanlı Türk Şarap Portalı Tasarımı Övünç Öztürk 1, Tuğba Özacar 2, Murat Osman Ünalır 3 1 Araş.Gör.,Ege Üniversitesi, Bilgisayar Mühendisliği Bölümü, 35100 Bornova İZMİR ozturk@staff.ege.edu.tr

Detaylı

Veritabanı ve Yönetim Sistemleri

Veritabanı ve Yönetim Sistemleri Veritabanı ve Yönetim Sistemleri Öğr. Gör. M. Mutlu YAPICI Ankara Üniversitesi Elmadağ Meslek Yüksekokulu Ders İzlencesi Hafta Modüller/İçerik/Konular 1. Hafta Temel Kavramlar 2. Hafta Veri Modelleri 3.

Detaylı

VERİ TABANI UYGULAMALARI

VERİ TABANI UYGULAMALARI VERİ TABANI UYGULAMALARI VERİ TABANI NEDİR? Bir konuyla ilgili çok sayıda verinin tutulmasına, depolanmasına ve belli bir mantık içerisinde gruplara ayrılmasına veri tabanı denir. Veri tabanı programları;

Detaylı

DERS 2 : BULANIK KÜMELER

DERS 2 : BULANIK KÜMELER DERS 2 : BULNIK KÜMELER 2.1 Gİriş Klasik bir küme, kesin sınırlamalarla verilen bir kümedir. Örneğin, klasik bir küme aşağıdaki gibi belirtilebilir: = { x x > 6 }, Kapalı sınır noktası burada 6 dır.burada

Detaylı

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf / Y.Y. Ders Saati (T+U+L) Kredi AKTS YAPAY ZEKA BG-421 4/2 2+1+0 2+.5 4 Dersin Dili : TÜRKÇE Dersin Seviyesi : LİSANS

Detaylı

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU Bilişim Sistemleri Modelleme, Analiz ve Tasarım Yrd. Doç. Dr. Alper GÖKSU Ders Akışı Hafta 5. İhtiyaç Analizi ve Modelleme II Haftanın Amacı Bilişim sistemleri ihtiyaç analizinin modeli oluşturulmasında,

Detaylı

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

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) İş Kuralları ve Veri Modelleri Celal Çeken Veysel Harun Şahin Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) İş Kuralları ve Veri Modelleri Konular Veritabanı Tasarımı Yaşam Döngüsü Veri Modeli Nedir? Veri Modeli Temel Bileşenleri

Detaylı

İÇİNDEKİLER. Çeviri Ekibi /5 Çeviri Önsözü / 6 Şekiller Listesi / 8 Tablolar listesi / 9 Ayrıntılı İçerik / 10

İÇİNDEKİLER. Çeviri Ekibi /5 Çeviri Önsözü / 6 Şekiller Listesi / 8 Tablolar listesi / 9 Ayrıntılı İçerik / 10 İÇİNDEKİLER Çeviri Ekibi /5 Çeviri Önsözü / 6 Şekiller Listesi / 8 Tablolar listesi / 9 Ayrıntılı İçerik / 10 1. Bölüm: Karma Yöntem Araştırmalarının Doğası / 1 2. Bölüm: Karma Yöntem Araştırmalarının

Detaylı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ Ders 10 LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ LINUX de Programlama LINUX işletim sistemi zengin bir programlama ortamı sağlar. Kullanıcılara sistemi geliştirme olanağı sağlar.

Detaylı

Veritabanı Yönetimi Bilgisayarların. Keşfi Hedefler. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi

Veritabanı Yönetimi Bilgisayarların. Keşfi Hedefler. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi Hedefler Veritabanı Yönetimi Bilgisayarların Discovering Keşfi 2010 Computers 2010 Living in a Digital World Dijital Dünyada Yaşamak Veritabanı terimini tanımlamak ve bir veritabanının veri ve bilgi ile

Detaylı

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

VERİ TABANI YÖNETİM SİSTEMLERİ VERİ TABANI YÖNETİM SİSTEMLERİ Veri Tabanı Nedir? Sistematik erişim imkânı olan, yönetilebilir, güncellenebilir, taşınabilir, birbirleri arasında tanımlı ilişkiler bulunabilen bilgiler kümesidir. Bir kuruluşa

Detaylı

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

VERİ TABANI YÖNETİM SİSTEMLERİ VERİ TABANI YÖNETİM SİSTEMLERİ ÖĞR.GÖR.VOLKAN ALTINTAŞ 26.9.2016 Veri Tabanı Nedir? Birbiriyle ilişkisi olan verilerin tutulduğu, Kullanım amacına uygun olarak düzenlenmiş veriler topluluğunun, Mantıksal

Detaylı

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf / Y.Y. Ders Saati (T+U+L) Kredi AKTS PROGRAMLAMA DİLLERİ BG-324 3/2 3+0+0 3+0 4 Dersin Dili : TÜRKÇE Dersin Seviyesi

Detaylı

Mühendislikte Veri Tabanları Dersi Uygulamaları (MS-Access)

Mühendislikte Veri Tabanları Dersi Uygulamaları (MS-Access) Mühendislikte Veri Tabanları Dersi Uygulamaları (MS-Access) İstanbul Teknik Üniversitesi, İnşaat Fakültesi, Geomatik Mühendisliği Bölümü Prof. Dr. Nebiye MUSAOĞLU Doç. Dr. Elif SERTEL Y. Doç. Dr. Şinasi

Detaylı

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU Bilişim Sistemleri Modelleme, Analiz ve Tasarım Yrd. Doç. Dr. Alper GÖKSU Ders Akışı Hafta 10-11. Nesneye Yönelik Sistem Analizi Haftanın Amacı Bilişim sistemleri geliştirmede nesneye yönelik sistem analizi

Detaylı

HASTANE OTOMASYONU VERİ TABANI YÖNETİM SİSTEMLERİ TEMEL VERİTABANI KAVRAMLARI

HASTANE OTOMASYONU VERİ TABANI YÖNETİM SİSTEMLERİ TEMEL VERİTABANI KAVRAMLARI VERİ TABANI YÖNETİM SİSTEMLERİ HASTANE OTOMASYONU Öğr. Gör. Handan ÇETİNKAYA İstanbul Gelişim Üniversitesi Günümüzde en basitinden en karmaşığına kadar pek çok veritabanı mevcuttur. En basiti Microsoft

Detaylı

1) Programlama dillerinin temel kavramlarını öğrenir. 1,2,4 1

1) Programlama dillerinin temel kavramlarını öğrenir. 1,2,4 1 DERS BİLGİLERİ Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS Programlama Dilleri BIL204 4 3+0 3 5 Ön Koşul Dersleri Dersin Dili Dersin Seviyesi Dersin Türü Türkçe Lisans Zorunlu / Yüz Yüze Dersin

Detaylı

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır. 18 SQL SORGU DİLİ SQL (Structured Query Language) yapısal sorgu dili, veritabanı yönetim sistemlerinin standart programlama dili olarak bilinmektedir. SQL dilinin Access içinde sorgu pencerelerinde veya

Detaylı

LINQ (Temel Kavramlar)

LINQ (Temel Kavramlar) LINQ (Temel Kavramlar) Ele Alınacak Başlıklar Temel Kavramlar Lambda İfadeleri (*Lambda Expressions) Query İfadeleri (*Query Expressions) Tür Çıkarsama (*Type Inference) Anonim Türler (*Anonymous Types)

Detaylı

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

ÖNSÖZ ŞEKİL LİSTESİ TABLO LİSTESİ İÇİNDEKİLER ÖNSÖZ ii ŞEKİL LİSTESİ v TABLO LİSTESİ vii ÖZET viii SUMMARY ix BÖLÜM 1. GİRİŞ 1 1.1. YÜKLENİCİ FİRMALARDA İNŞAAT EKİPMANI YÖNETİMİ PROBLEMİNİN ÖNEMİ 1 1.2. PROBLEMİN TANIMLANMASI 3 1.3. YÜKLENİCİ

Detaylı

VERİ TABANI SİSTEMLERİ

VERİ TABANI SİSTEMLERİ VERİ TABANI SİSTEMLERİ 1- Günümüzde bilgi sistemleri Teknoloji ve bilgi. 2- Bilgi sistemlerinin Geliştirilmesi İşlevsel Gereksinimleri 1.AŞAMA Gereksinim Belirleme ve Analiz Veri Gereksinimleri Gereksinimler

Detaylı

VERİ TABANI YÖNETİM SİSTEMLERİ Melih BÖLÜKBAŞI

VERİ TABANI YÖNETİM SİSTEMLERİ Melih BÖLÜKBAŞI VERİ TABANI YÖNETİM SİSTEMLERİ Melih BÖLÜKBAŞI Dersin Hedefleri Veri Tabanı Kullanıcıları Veri Modelleri Veri Tabanı Tasarımı İlişkisel VT Kavramsal Tasarımı (Entity- Relationship, ER) Modeli VT KULLANICILARI

Detaylı

Öğretim planındaki AKTS Ulusal Kredi

Öğretim planındaki AKTS Ulusal Kredi Ders Kodu Teorik Uygulama Lab. Yazılım Gereksinimleri Mühendisliği Ulusal Kredi Öğretim planındaki AKTS 481052000001303 3 0 0 3 5 Dersin Yürütülmesi Hakkında Bu ders gerçek dünya problemlerinin analiz

Detaylı

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS DERS BİLGİLERİ Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS Veritabanı ve Veritabanı Programlama BIL362 6 3+0 3 4 Ön Koşul Dersleri Yok Dersin Dili Dersin Seviyesi Dersin Türü Türkçe Lisans Zorunlu

Detaylı

Veritabanı Tasarımı. Kartezyen Çarpım ve Join İşlemleri

Veritabanı Tasarımı. Kartezyen Çarpım ve Join İşlemleri Veritabanı Tasarımı Kartezyen Çarpım ve Join İşlemleri Konular Oracle özel join işlemlerini isimlendirme ve onların ANSI/ISO SQL: 1999 karşıtları Join durumlarının amacını açıklama Kartezyen çarpımdan

Detaylı

BLG4146 - Sistem Analizi ve Tasarımı. Öğr. Grv. Aybike ŞİMŞEK

BLG4146 - Sistem Analizi ve Tasarımı. Öğr. Grv. Aybike ŞİMŞEK BLG4146 - Sistem Analizi ve Tasarımı Öğr. Grv. Aybike ŞİMŞEK Tasarım Evresi Analiz evresinde sorulan NE sorusuyla elde edilen bilgilerin NASIL yapılacağı, NASIL gerçekleştirileceğinin ortaya konulduğu

Detaylı

Anlamsal Web için Bilgi Sistemi Altyapısı

Anlamsal Web için Bilgi Sistemi Altyapısı Anlamsal Web için Bilgi Sistemi Altyapısı M.O. Ünalır, Ö. Öztürk, T. Özacar Ege Üniversitesi Bilgisayar Müh. Bölümü, İzmir unalir@bornova.ege.edu.tr,ozturk@staff.ege.edu.tr,ozacar@staff.ege.edu.tr Özetçe

Detaylı

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 100217026 SEMİNER

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 100217026 SEMİNER 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 100217026 SEMİNER DERS SORUMLUSU: KASIM BİNİCİ ERZURUM 2013 1 GİRİŞ İnsanlığın var olduğu

Detaylı

WEB ARAÇLARI VE UZAKTAN EĞİTİM CEIT357-4.HAFTA

WEB ARAÇLARI VE UZAKTAN EĞİTİM CEIT357-4.HAFTA WEB ARAÇLARI VE UZAKTAN EĞİTİM CEIT357-4.HAFTA 1 Giriş Bu bölümümde günümüzde en çok kullanılan Web araçları tanıtılacak ve anlatılacaktır.bunların eğitimde, özellikle uzaktan eğitimde nasıl kullanıldığından

Detaylı

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf/Y.Y. Ders Saati (T+U+L) Kredi AKTS Programlama Dillerinin Prensipleri BİM-323 3/II 3+0+0 3 4 Dersin

Detaylı

Oracle Database 11g: Introduction to SQL

Oracle Database 11g: Introduction to SQL Oracle Database 11g: Introduction to SQL Mehmet Salih DEVECI GTECH-Kıdemli Veritabanı Yöneticisi Mehmetsalih.deveci@gtech.com.tr BÖLÜM- 1: SQL E GİRİŞ SELECT ifadesinin kabiliyetlerinin ortaya çıkarılması

Detaylı

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyararşik yapıya sahip

Detaylı

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf/Y.Y. Ders Saati (T+U+L) Kredi AKTS Yapay Zeka BİM-433 4/II 2+2+0 3 4,5 Dersin Dili Dersin Seviyesi

Detaylı

EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ (YÜKSEK LİSANS TEZİ)

EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ (YÜKSEK LİSANS TEZİ) EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ (YÜKSEK LİSANS TEZİ) ÖLÇEKLENEBİLİR H.264 VİDEO KODLAYICISI İÇİN SEVİYELENDİRİLEBİLİR GÜVENLİK SAĞLAYAN BİR VİDEO ŞİFRELEME ÇALIŞMASI Gül BOZTOK ALGIN Uluslararası

Detaylı

MİLLİ SAVUNMA ÜNİVERSİTESİ KARA HARP OKULU DEKANLIĞI BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ DERS TANITIM BİLGİLERİ

MİLLİ SAVUNMA ÜNİVERSİTESİ KARA HARP OKULU DEKANLIĞI BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ DERS TANITIM BİLGİLERİ MİLLİ SAVUNMA ÜNİVERSİTESİ KARA HARP OKULU DEKANLIĞI BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf / Y.Y. Ders Saati (T+U+L) Kredi AKTS Veritabanı Yönetimi 4 / Bahar (3+0+0)

Detaylı

Örnek bir kullanım ve bilgisayar ağlarını oluşturan bileşenlerin özeti

Örnek bir kullanım ve bilgisayar ağlarını oluşturan bileşenlerin özeti Bu sayfaları okuduğunuza göre bir şekilde bilgisayarlar ve bilgisayar ağlarıyla ilişkiniz olduğunu biliyorum. Ancak yine de en başta niçin bilgisayar ağı kullanıyoruz sorusunun cevabını vermekle işe başlayabiliriz.

Detaylı

BM208- Nesneye Dayalı Analiz ve Tasarım. Sunum 7

BM208- Nesneye Dayalı Analiz ve Tasarım. Sunum 7 BM208- Nesneye Dayalı Analiz ve Tasarım Sunum 7 Component(Bileşen) Diyagramları Sistemin fiziksel yapısını modellemede kullanılır. Bu fiziksel yapıdan kasıt gömülü kontroller, portlar, arayüzlerin yanı

Detaylı

Uygulamalı Yapay Zeka. Dr. Uğur YÜZGEÇ Ders 2: Prolog Giriş

Uygulamalı Yapay Zeka. Dr. Uğur YÜZGEÇ Ders 2: Prolog Giriş Uygulamalı Yapay Zeka Dr. Uğur YÜZGEÇ Ders 2: Prolog Giriş Prolog Yazılımı Bedava Prolog yorumlayıcıları var Linux, Windows, Mac OS Çok fazla sayıda Prolog yazılımı indirmek mümkün Bunlardan birkaçı SWI

Detaylı

Kullanım Durumu Diyagramları (Use-case Diyagramları)

Kullanım Durumu Diyagramları (Use-case Diyagramları) Kullanım Durumu Diyagramları (Use-case Diyagramları) Analiz aşaması projeler için hayati önem taşır. İyi bir analizden geçmemiş projelerin başarı şansı azdır. Analiz ile birlikte kendimize Ne? sorusunu

Detaylı

Olasılık, bir deneme sonrasında ilgilenilen olayın tüm olaylar içinde ortaya çıkma ya da gözlenme oranı olarak tanımlanabilir.

Olasılık, bir deneme sonrasında ilgilenilen olayın tüm olaylar içinde ortaya çıkma ya da gözlenme oranı olarak tanımlanabilir. 5.SUNUM Olasılık, bir deneme sonrasında ilgilenilen olayın tüm olaylar içinde ortaya çıkma ya da gözlenme oranı olarak tanımlanabilir. Günlük hayatta sıklıkla kullanılmakta olan olasılık bir olayın ortaya

Detaylı

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf / Y.Y. Ders Saati (T+U+L) Kredi AKTS VERİ TABANI BG-313 3/1 3+1+0 3+0,5 5 Dersin Dili : TÜRKÇE Dersin Seviyesi : LİSANS

Detaylı

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay. PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011

Detaylı

Veritabanı Tasarımı. Birincil Anahtar, İkincil Anahtar ve Kontrol Kısıtlamaları

Veritabanı Tasarımı. Birincil Anahtar, İkincil Anahtar ve Kontrol Kısıtlamaları Veritabanı Tasarımı Konular Birincil Anahtar, İkincil Anahtar ve Kontrol Kısıtlamasını tanımlamak ve örnek vermek Birincil Anahtar, İkincil Anahtar ve Kontrol Kısıtlamasının amacını tanımlamak CREATE TABLE

Detaylı

SİSTEM ANALİZİ ve TASARIMI. ÖN İNCELEME ve FİZİBİLİTE

SİSTEM ANALİZİ ve TASARIMI. ÖN İNCELEME ve FİZİBİLİTE SİSTEM ANALİZİ ve TASARIMI ÖN İNCELEME ve FİZİBİLİTE Sistem Tasarım ve Analiz Aşamaları Ön İnceleme Fizibilite Sistem Analizi Sistem Tasarımı Sistem Gerçekleştirme Sistem Operasyon ve Destek ÖN İNCELEME

Detaylı

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

Bibliyografik Evrenin Gelişimi ve Kütüphanelerde Bağlı Veri Yaklaşımları Bibliyografik Evrenin Gelişimi ve Kütüphanelerde Bağlı Veri Yaklaşımları Arş. Gör. Tolga ÇAKMAK tcakmak@hacettepe.edu.tr 19 Nisan 2013 Boğaziçi Üniversitesi İçerik Bilginin Düzenlenmesi Bilgi Düzenleme

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

Detaylı

Programlama Dilleri (COMPE 325) Ders Detayları

Programlama Dilleri (COMPE 325) Ders Detayları Programlama Dilleri (COMPE 325) Ders Detayları Ders Adı Programlama Dilleri Ders Kodu COMPE 325 Dönemi Ders Saati Uygulama Saati Laboratuar Kredi AKTS Saati Güz 3 0 0 3 4.5 Ön Koşul Ders(ler)i Dersin Dili

Detaylı

Veritabanı Uygulamaları Tasarımı

Veritabanı Uygulamaları Tasarımı Veritabanı Uygulamaları Tasarımı Veri Tabanı Veritabanı yada ingilizce database kavramı, verilerin belirli bir düzene göre depolandığı sistemlere verilen genel bir isimdir. Günümüzde özel veya kamu kuruluşların

Detaylı

Olasılık Kuramı ve İstatistik. Konular Olasılık teorisi ile ilgili temel kavramlar Küme işlemleri Olasılık Aksiyomları

Olasılık Kuramı ve İstatistik. Konular Olasılık teorisi ile ilgili temel kavramlar Küme işlemleri Olasılık Aksiyomları Olasılık Kuramı ve İstatistik Konular Olasılık teorisi ile ilgili temel kavramlar Küme işlemleri Olasılık Aksiyomları OLASILIK Olasılık teorisi, raslantı ya da kesin olmayan olaylarla ilgilenir. Raslantı

Detaylı

DNS Nedir? HİKMET TÜYSÜZ

DNS Nedir? HİKMET TÜYSÜZ DNS Nedir? 14545568 HİKMET TÜYSÜZ DNS DNS, Domain Name System in kısaltılmış şeklidir. Türkçe karşılığı ise Alan İsimlendirme Sistemi olarak bilinir. DNS, 256 karaktere kadar büyüyebilen host isimlerini

Detaylı

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) Varlık İlişki Modeli

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) Varlık İlişki Modeli Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) Varlık İlişki Modeli Konular Veritabanı Tasarım Aşamaları Kavramsal Tasarım Temel Kavramlar Varlıklar Arası İlişkiler Var Olma Bağımlılığı (Existence

Detaylı

Yazılım Mühendisliği 1

Yazılım Mühendisliği 1 Yazılım Mühendisliği 1 HEDEFLER Yazılım, program ve algoritma kavramları anlar. Yazılım ve donanım maliyetlerinin zamansal değişimlerini ve nedenleri hakkında yorum yapar. Yazılım mühendisliği ile Bilgisayar

Detaylı

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015 BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015 Ders- 13 World Wide Web (WWW) Yrd. Doç. Dr. Burcu Can Buğlalılar Bilgisayar Mühendisliği Bölümü Bilgisayar Katmanları İçerik World Wide Web (WWW) Anlık Mesajlaşma

Detaylı

Anlamsal Web te SKOS Kullanılarak Bilgi Organizasyonu

Anlamsal Web te SKOS Kullanılarak Bilgi Organizasyonu inet-tr 09 - XIV. Türkiye de İnternet Konferansı Bildirileri 12-13 Aralık 2009 Bilgi Üniversitesi, İstanbul Anlamsal Web te SKOS Kullanılarak Bilgi Organizasyonu Ege Üniversitesi, Bilgisayar Mühendisliği

Detaylı

Genetik Algoritmalar. Bölüm 1. Optimizasyon. Yrd. Doç. Dr. Adem Tuncer E-posta:

Genetik Algoritmalar. Bölüm 1. Optimizasyon. Yrd. Doç. Dr. Adem Tuncer E-posta: Genetik Algoritmalar Bölüm 1 Optimizasyon Yrd. Doç. Dr. Adem Tuncer E-posta: adem.tuncer@yalova.edu.tr Optimizasyon? Optimizasyon Nedir? Eldeki kısıtlı kaynakları en iyi biçimde kullanmak olarak tanımlanabilir.

Detaylı

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) Genel SQL SQL çok yüksek seviyeli bir dildir. Biraz ingilizce bilgisi gerektirir. Programlama dillerine göre öğrenilmesi çok daha kolaydır. Çünkü programlama dillerindeki

Detaylı

COĞRAFİ BİLGİ SİSTEMLERİ İLERİ SEVİYE EĞİTİMLERİ BUILDING GEODATABASE EĞİTİMİ

COĞRAFİ BİLGİ SİSTEMLERİ İLERİ SEVİYE EĞİTİMLERİ BUILDING GEODATABASE EĞİTİMİ COĞRAFİ BİLGİ SİSTEMLERİ İLERİ SEVİYE EĞİTİMLERİ BUILDING GEODATABASE EĞİTİMİ http://facebook.com/esriturkey https://twitter.com/esriturkiye egitim@esriturkey.com.tr Kursun Süresi: 3 Gün 18 Saat COĞRAFİ

Detaylı

... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI ... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE 2018 2019 ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI Hazırlayan : Özel Öğretim Kurumları Birliği (ÖZKURBİR) Dersin Adı : Bilişim

Detaylı

Bilgi Servisleri (IS)

Bilgi Servisleri (IS) Bilgi Servisleri (IS) GRID Kullanıcı Eğitimi Boğaziçi Üniversitesi 2007, İstanbul Emrah AKKOYUN Konu Başlığı Neden ihtiyaç duyulur? Kullanıcılar kimlerdir? Bilgi Servisi türleri MDS ve BDII LDAP Bilgi

Detaylı

Semantik Web Programlama (COMPE 567) Ders Detayları

Semantik Web Programlama (COMPE 567) Ders Detayları Semantik Web Programlama (COMPE 567) Ders Detayları Ders Adı Ders Kodu Dönemi Ders Saati Uygulama Saati Laboratuar Kredi AKTS Saati Semantik Web Programlama COMPE 567 Güz 3 0 0 3 7.5 Ön Koşul Ders(ler)i

Detaylı

Eylül 2007 de v1.0 ı yayınlanan SysML sayesinde endüstri mühendislerinin de ihtiyacı karşılanmış oldu.

Eylül 2007 de v1.0 ı yayınlanan SysML sayesinde endüstri mühendislerinin de ihtiyacı karşılanmış oldu. 1 Yazılımcıların da endüstri mühendislerinin de en büyük ihtiyaçlarının başında ortak modelleme dili ihtiyacı gelir. UML nin (Unified Modeling Language) Kasım 1997 de OMG tarafından yayınlanmasıyla birlikte

Detaylı

Mobil Uygulama Geliştirmeye Giriş (ISE 407) Ders Detayları

Mobil Uygulama Geliştirmeye Giriş (ISE 407) Ders Detayları Mobil Uygulama Geliştirmeye Giriş (ISE 407) Ders Detayları Ders Adı Ders Dönemi Ders Uygulama Laboratuar Kredi AKTS Kodu Saati Saati Saati Mobil Uygulama Geliştirmeye Giriş ISE 407 Her İkisi 3 0 0 3 5

Detaylı

İlişkisel Veri Tabanları I

İlişkisel Veri Tabanları I İlişkisel Veri Tabanları I Erdem Alparslan Bahçeşehir Üniversitesi 1 Veri Tabanı Modelleri Veri Tabanları tasarımında kullanılan modeller: Tablolar : Veriler tek bir tabloda veya tablo dizisinde tutulur

Detaylı

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

Yazılım Mimari Tasarımından Yazılım Geliştirme Çatısının Üretilmesinde Model Güdümlü Bir Yaklaşım Yazılım Mimari Tasarımından Yazılım Geliştirme Çatısının Üretilmesinde Model Güdümlü Bir Yaklaşım İbrahim Onuralp Yiğit 1, Nafiye Kübra Turhan 2, Ahmet Erdinç Yılmaz 3, Bülent Durak 4 1,2,3,4 ASELSAN A.Ş.

Detaylı

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU Bilişim Sistemleri Modelleme, Analiz ve Tasarım Yrd. Doç. Dr. Alper GÖKSU Ders Akışı Hafta 10-11. Nesneye Yönelik Sistem Tasarımı Haftanın Amacı Bilişim sistemleri geliştirmede nesneye yönelik sistem tasarımı

Detaylı

KÜMELER. İyi tanımlanmış nesneler topluluğuna küme denir. Bir küme, birbirinden farklı nesnelerden oluşur. Bu nesneler somut veya soyut olabilir.

KÜMELER. İyi tanımlanmış nesneler topluluğuna küme denir. Bir küme, birbirinden farklı nesnelerden oluşur. Bu nesneler somut veya soyut olabilir. 1 KÜMELER İyi tanımlanmış nesneler topluluğuna küme denir. ir küme, birbirinden farklı nesnelerden oluşur. u nesneler somut veya soyut olabilir. Kümeyi oluşturan nesnelerin her birine eleman(öğe) denir.

Detaylı

UNIVERSAL BİLGİ TEKNOLOJİLERİ

UNIVERSAL BİLGİ TEKNOLOJİLERİ UNIVERSAL BİLGİ TEKNOLOJİLERİ Coğrafi Bilgi Sistemleri (CBS) ile Bilgisayar Destekli Tasarım (CAD) Sistemleri Arasındaki Temel Farklar Universal Bilgi Teknolojileri Ltd. Şti. 2010. Tüm hakları saklıdır.

Detaylı

Yazarlar hakkında Editör hakkında Teşekkür

Yazarlar hakkında Editör hakkında Teşekkür İÇİNDEKİLER Yazarlar hakkında Editör hakkında Teşekkür XIII XIV XV Giriş 1 Kitabın amaçları 1 Öğretmen katkısı 2 Araştırma katkısı 2 Yansıma için bir ara 3 Sınıf etkinlikleri 3 Terminoloji üzerine bir

Detaylı

BİLGİSAYAR PROGRAMLARININ TASARIMLARINDAKİ VE KODLARINDAKİ SORUNLARIN BELİRLENMESİ ALPER FİLİZ MEHMET ALİ SERT

BİLGİSAYAR PROGRAMLARININ TASARIMLARINDAKİ VE KODLARINDAKİ SORUNLARIN BELİRLENMESİ ALPER FİLİZ MEHMET ALİ SERT BİLGİSAYAR PROGRAMLARININ TASARIMLARINDAKİ VE KODLARINDAKİ SORUNLARIN BELİRLENMESİ ALPER FİLİZ 040080202 MEHMET ALİ SERT 040090521 SUNUM İÇERİĞİ Problem Tanımı Tespit Edilen Sorunlar Problemin Sonuçları

Detaylı

UBL UBL Türkiye Özelleştirmesi TEMEL BİLGİLER

UBL UBL Türkiye Özelleştirmesi TEMEL BİLGİLER e-fatura UBL UBL Türkiye Özelleştirmesi TEMEL BİLGİLER UBL (Universal Business Language) UBL, iş dünyasının evrensel ölçekte birlikte iş yapabilirlik ihtiyacını gidermek amacıyla doğmuş bir yapıdır. Bu

Detaylı

SiSTEM ANALiZi ve TASARIMI

SiSTEM ANALiZi ve TASARIMI SiSTEM ANALiZi ve TASARIMI BIL3403 Öğ. Gör. ASLI BiROL abirol@kavram.edu.tr 01.10.2012 Dersin Amacı Bu ders ile öğrenci; edindiği mesleki bilgi birikimini kullanarak sektörde uygulanabilir bir projeyi

Detaylı

ELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI

ELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI ELIF KIOTZEOGLOU 0510130077 RESUL MURAD 0510120082 MERT PACOLARI 0510120083 SQL SQL,(İngilizce "Structured Query Language", Türkçe: Yapılandırılmış Sorgu Dili) verileri yönetmek ve tasarlamak için kullanılan

Detaylı

AYRIK YAPILAR ARŞ. GÖR. SONGÜL KARAKUŞ- FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ BÖLÜMÜ, ELAZIĞ

AYRIK YAPILAR ARŞ. GÖR. SONGÜL KARAKUŞ- FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ BÖLÜMÜ, ELAZIĞ AYRIK YAPILAR P r o f. D r. Ö m e r A k ı n v e Y r d. D o ç. D r. M u r a t Ö z b a y o ğ l u n u n Ç e v i r i E d i t ö r l ü ğ ü n ü ü s t l e n d i ğ i «A y r ı k M a t e m a t i k v e U y g u l a

Detaylı

WEB ĠN GELECEĞĠ: ANLAMSAL WEB

WEB ĠN GELECEĞĠ: ANLAMSAL WEB Ege Akademik BakıĢ / Ege Academic Review 8 (1) 2008: 205-213 WEB ĠN GELECEĞĠ: ANLAMSAL WEB THE FUTURE OF THE WEB: THE SEMANTIC WEB Öğr. Gör. Kaan KURTEL, Ġzmir Ekonomi Üniversitesi, kaan.kurtel@ieu.edu.tr

Detaylı

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1 Algoritmalar Arama Problemi ve Analizi Bahar 2016 Doç. Dr. Suat Özdemir 1 Arama Problemi Sıralama algoritmaları gibi arama algoritmaları da gerçek hayat bilgisayar mühendisliği problemlerinin çözümünde

Detaylı

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

VERİ MADENCİLİĞİ (Web Madenciliği) VERİ MADENCİLİĞİ (Web Madenciliği) Yrd.Doç.Dr. Kadriye ERGÜN kergun@balikesir.edu.tr Kaynak: M. Ali Akcayol, Gazi Üniversitesi, Bilgisayar Mühendisliği Bölümü Ders Notları İçerik İnternet World Wide Web

Detaylı

VERİTABANI. SQL (Structured Query Language)

VERİTABANI. SQL (Structured Query Language) VERİTABANI SQL (Structured Query Language) SQL'de Gruplama Bir tablonun satırları gruplara ayrılarak fonksiyonların bunlara uygulanması mümkündür. Gruplara ayırmak için SELECT deyimi içerisinde GROUP BY

Detaylı

İŞ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

İŞ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 İŞ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 bulunmaktadır; 1. Performans: İşletim sistemi, makine

Detaylı

Veri Tabanı Yönetim Sistemleri Bölüm - 3

Veri Tabanı Yönetim Sistemleri Bölüm - 3 Veri Tabanı Yönetim Sistemleri Bölüm - 3 İçerik Web Tabanlı Veri Tabanı Sistemleri.! MySQL.! PhpMyAdmin.! Web tabanlı bir veritabanı tasarımı. R. Orçun Madran!2 Web Tabanlı Veritabanı Yönetim Sistemleri

Detaylı

Bölüm 4: DDL Veri Tanımlama Dili

Bölüm 4: DDL Veri Tanımlama Dili Bölüm 4: DDL Veri Tanımlama Dili -43- Dr. Serkan DİŞLİTAŞ DDL (Data Definition Language Veri Tanımlama Dili : Bu kategorideki SQL komutları ile veritabanları, tablo, görünüm ve indekslerin yaratılması,

Detaylı

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf/Y.Y. Ders Saati (T+U+L) Kredi AKTS Veri Tabanı Yönetimi BİM-324 3/II 3+0+0 3 4,5 Dersin Dili Dersin

Detaylı

HACETTEPE ÜNİVERSİTESİ TÜRKİYAT ARAŞTIRMALARI ENSTİTÜSÜ

HACETTEPE ÜNİVERSİTESİ TÜRKİYAT ARAŞTIRMALARI ENSTİTÜSÜ Amaç ve Kapsam HACETTEPE ÜNİVERSİTESİ TÜRKİYAT ARAŞTIRMALARI ENSTİTÜSÜ TEZ YAZIM YÖNERGESİ Bu yönergenin amacı, Hacettepe Üniversitesi Lisansüstü Eğitim, Öğretim ve Sınav Yönetmeliği uyarınca Hacettepe

Detaylı

DERS TANITIM BİLGİLERİ. Dersin Adı Kodu Yarıyıl Teori (saat/hafta) Laboratuar (saat/hafta) Uygulama (saat/hafta) AKTS. Yerel Kredi

DERS TANITIM BİLGİLERİ. Dersin Adı Kodu Yarıyıl Teori (saat/hafta) Laboratuar (saat/hafta) Uygulama (saat/hafta) AKTS. Yerel Kredi DERS TANITIM BİLGİLERİ Dersin Adı Kodu Yarıyıl Teori (saat/hafta) Uygulama (saat/hafta) Laboratuar (saat/hafta) Yerel Kredi AKTS Temel Bilgi ve İletişim BEB650 Güz / 0 2 0 1 2 Teknolojileri Kullanımı Bahar

Detaylı

Bilgisayar Programı Nedir?

Bilgisayar Programı Nedir? BİL1002 Bilgisayar Programlama PROF.DR.TOLGA ELBİR Bilgisayar Programı Nedir? Program, bilgisayarda i belirli libir amacı gerçekleştirmek için geliştirilmiş yöntemlerin ve verilerin, bilgisayarındonanımınınyerine

Detaylı