29 Temmuz 2011 Cuma

Anlamsal Web ve Ontoloji

İnsanın hafıza modeli

 

Günümüzde, piyasa ile rekabet edebilmek için şirket içindeki verileri saklamak, işlemek, hızlı ve anlaşılır bir şekilde paylaşmak şart olmuştur. Bir takım araçlar bunun için mevcut – takvimler, ortak dosya depoları, çeşitli listeler. Ama bazen bunlar yeterli olmuyor.

İki çalışan arasında, elektronik ortamda bilgi paylaşımın, en az bilgi kaybı ile ne şekilde ve hangi formatta gerçekleşmesi gerekiyor? Bu uzun zamandır uğraşılan bir bilgisayar bilimi konusudur. Bu makale, konuya bir çözüm seçeneği olan Ontoloji(varlık felsefesi) ve Anlamsal web hakkında kısa bilgiler içermektedir.

Bir örneği ele alalım. Belirli bir satış elamanın, belirli bir dönemde, belirli bir müşterinin, belirli bir satıştaki, belirli bir satış kalemi ile ilgili belirtilen notlara ulaşmak isteniyor.

Burada bir bilgi zinciri söz konusu. Aranan notlara ulaşmak için başlangıç noktası olarak belirli bir müşteriyi sistemde bularak başlayabiliriz, ya da önce satış temsilcinin belirli dönemde yapılan satışları listelenebilir, oradan ilgili müşteri için kısıt verilebilir. Görünen o ki eğer aranan bilgiyi başka birisi girdiyse o bilgiyi bulmak için biraz şansa ve tahmine ihtiyaç vardır.

Peki, yazılı dokümanlardan tam olarak aranan bilgiye ulaşmak için zorlandık. Kolay yolu var elbette: Gidip o satışı gerçekleştiren plasiyeri bulup, doğrudan bilgiyi ondan çekmeye çalışalım(insan dili kullanarak).

Burada izlenen yol nasıl olacak?

-          Abi, geçen dönem(“A” dönemi)

-          “B” müşterine gitmiştin

-          “C” satışı gerçekleştirmiştin ya

-          “D” ürünü istemişlerdi

-          O ürün ile ilgili bir takım notlar belirtilmişti

-          Tamam hatırladım – o notları falanca deftere yazmış olmam gerekiyor

Göründüğü gibi bir bilgiye ulaşmak için bir bilgi patikasını izlemiş olduk. (Şekil-1)

Şekil 1 – Bilgiye ulaşmak için örnek patika

Burada dikkat çekilmesi gereken bir nokta var: Satış elemanların kullandığı CRM(Müşteri İlişki Yönetim) sisteminde “A” satış dönemi ile o dönemde satış gerçekleşen “B” müşterisi arasındaki ilişkiyi temsil eden bir kayıt saklanmıyor olabilir. Ama satış elemanlar arasında geçen dialogda, hangi satış döneminden bahsedildiğini kesinleştirildikten sonra, ilgili müşteriden bahsedilmeye başlandı. Soru sorulan kişi nasıl doğrudan bir satış dönemi kavramı ile müşteri kavramını ilişkilendirebilmiş? Aslında beyinde ufak bir bilgi çıkarsaması gerçekleştirdi. Onun aklında daha önce kabul ettiği bir kural var: eğer belirli bir dönemde, belirli bir satışın müşterisi B ise, o zaman o dönemde B müşterisi ile iş yapılmıştır. Bu bilgi, çıkarsama yoluyla elde edildiğinden, bu bağlantı şekil-1’de kesik çizgi ile gösterildi.

Bazı araştırmalara göre insanın hafızasında bilgiler bir birine bağlı kavramlar olarak saklandığından bahsedilmektedir. Bilgisayar bilimlerinde bu tür veri yapı “Graph” veri yapısı olarak tanımlanmaktadır. Belirli bir bilgiye ulaşmak için belirli bir yerden başlamak gerekiyor ve bağlar(ilişkiler) üzerinden aranan kavrama(bilgiye) ulaşılır. Aranan bilgi ne kadar çok beyindeki farklı kavramlar ile ilişkilendirilir ise o biliye o kadar kolay ulaşılabilir(hatırlanır).

Anlamsal web ve Ontoloji kavramları

Anlamsal web kavramı, dünyadaki tüm web sitelerdeki bilgilerin sadece insanın okuyabildiği şekilde göstermek yerine makinenin anlayacağı ve çıkarsama yapabileceği formatta saklamak anlamına gelir. Web servis’ler yaygın olmadığı zaman bu düşünce çok modaydı. En sevilen örnek, sistem kendi kendine otel sitesine bağlanıp yer bilgisini öğrenecekti, araba kiralama şirketine bağlanıp araba durumu öğrenecekti. Siteler bu tür bilgileri artık web servis ile dışarı sundukları için anlamsal web’in yayılması biraz rafa kalktı gibi(bkz:”semantic web öldü”).

Ama ortada yalnış bir anlama var. Anlamsal web teknolojide bilgilerin web üzerinde anlamlı bir şekilde dağıtılmış olması en heyecan verici bir özellik olarak görmüyorum. En değerli özelliği, alt yapıda tüm bilgilerin tablolar olarak saklamak yerine, kavram ve o kavramlar arasında nasıl bir ilişki olduğu gösteren veri yapısında tutulmasıdır ve tanımlı olmayan ilişkileri ortaya çıkarsama yapılmasına sağlayan kuralları tanımlayabilme olanağıdır. Bu tür bilgi tutma tekniği ontoloji ile adlandırılmaktadır. Asıl espiri verilerin tablolarda değil(ilişkili veritabanlar), üçlü demeçler halinde tutmaktır. Bu maksimum esneklik sağlar. Son kullanıcının bile alt yapıdaki bilgi şemasını değiştirmesine olanak sağlar.

Ontolojİ’nİn yapItaşlarI

Kavram(Entity)

İnsan beyinde tüm bilgiler kavramlar ve kavramlar arasında ilişkiler cinsinden  tutulduğundan ilk bölümde bahsedilmişti. Anlamsal web’de kavramlar belirli bir çeşidi veya sınıfı ifade etmek için kullanılır. Örnek olarak, Şehir, Üniversite, İnsan, Kedi, Puğaça – bunlar hepsi bir kavramdır. Kavramlar bir nesne olmak zorunda değildir. Başarı, Renk, Mutluluk, Toplantı – bu kelimeler de söylendiğinde aklımızda belirli bir kavram canlanıyor.

Örneklem(Instance)

Kavram olarak adlandırdığımız belirli bir çeşidin veya cinsin bir örneklemidir. Örneğin Ege Üniversitesi, Üniversite kavramının bir örneklemidir.

Bir örneklem tipinde olan birden çok kavram var olabilir.

Hem kavramın, hem örneklemlerin de başka kavramlar ve örneklemlerle ilişkileri(bağları) olabiliyor.

Demeç(Statement)

İnsan beyindeki bir bilgi en küçük parçalara bölündüğü zaman, bir işe yarar bu bilgi parçası en az üç kısımdan oluşması gerekiyor : ne, neyle, nasıl bir bağı var. Böyle üçlülere Ontoloji’de “Statement” veya “Triple” olarak anılır.

Örneğin Şekil 2’de gösterilen örnekte kavramlar arasında düz çizgili olan bağlantılar bilinen ilişkiler olduğunu varsayarsak, tüm bilinenleri üçlü demeçler cinsinden listeleyebiliriz:

Ne(Subject)

Neyle(Object)

Nasıl bir ilişkisi var(Predicate)

A satış dönemi

C satışı

İçerir

C satışı

B müşterisi

İçerir

C satışı

E satış kalemi

İçerir

E satış kalemi

D ürünü

Temsil eder

E satış kalemi

Satış kalemi ile ilgili not

İçerir

Tablo 1 - Demeç listesi her bir satır bir demeci temsil etmektedir.

Şekil 2 - Örnek Ontoloji

Çıkarsama(Inference)

Şekil 2’deki örnekte gösterilen ontoloji için hazırlanan demeçler arasında “A” satış dönemi ve “B” müşterisi arasında doğrudan bir ilişki tanımlı değil(düz çizgi ile bağlantı gösterilmedi).

İnsan da bildiği herşeyi bir yerden duymuş veya görmüş değildir – bazı bilgileri aklında var olan kurallara uygun olarak çıkarsama yoluyla elde edebiliyor.

Örnek olarak, çok bellidir ki, eğer belirli bir dönemde belirli bir müşterinin satışı gerçekleştiyse, o zaman o dönemde ilgili müşteri ile iş yapılmıştır. Böyle kurallar ontoloji çıkarsama araçlarında tanımlanabiliyor. Bilgi araması yapıldığında var olan demeçler üzerinde bu kuralları da çıkarsama aracında çalıştırıp ilave bilgiler elde edilebilir.

Kalıtım(İnheritance)

Bazı kavramlar diğer kavramları daha net olarak ifade etmek için kullanılır. Örneğin “Okul” bir kavramdır. “Meslek okulu”, “okul” kavramının biraz daha net veya dar bir tanımıdır.

Bir başka ilginç örnek: “çalışıyor olmak” ilişkisi ve “yönetiyor olmak” ilişkisini kapsıyor.

İlişkisel veri tabanlarda ve nesne tabanlı programlarda, kavramların bir birinden kalıtımı simule edilebiliyor. Ama kavramların arasındaki ilişkiler bir birinden kalıtlanamıyor. ikinci örnekte ilişki kalıtımı başka veri yapılarda rastlanmamaktadır. Bu özellik diğer tüm yapılardan anlamsal web’i çok farklı kılmaktadır ve esneklik sağlamaktadır.

Kalıtım ve Çıkarsama kavramların gücünü sergilemek için küçük bir örnek gösterilecek:

Şekil-3 ve Şekil-4’ te iki adet demeç var. Anlıyoruz ki eğer bir kişi bir yerde yöneticilik yaptıysa, o zaman o yerde mutlaka çalışmıştır.

Bu kuraldan yola çıkarak yukarıdaki iki demeçten bir kaç tane daha bilgi çıkarılabilir.

Şekil’lerden Bu iki bilgi biliniyor:

Yönetmek, Çalışmak ilişkinin daha özel halidir.

Ahmet bey, ABC meslek okulunda yöneticilik yaptı.

Bu iki bilgi üstteki iki bilgilerden çıkarsama yoluyla elde edilebilir:

Ahmet bey ABC meslek okulunda çalıştı.

Ahmet bey bir okulda çalıştı(Okul, meslek okulun daha genel kavramı)

Hangİ durumlarda verİlerİ ontoloJİ olarak saklanmasI uygundur?

Semantic web ile ilk tanıştığı zaman çoğu uzmanlar, ilişkili veritabanlar ile işleyen tüm sistemleri semantic web’e uyarlamaya bakarlar. Ve herşey ontology yapılırsa iyi olur gözüyle bakıyorlar. Ama en doğrusu bu değildir – her sistemde kullanılan bilgiler ontoloji olarak saklanmasına gerek yoktur. Tam olarak hangi durumlarda kesinlikle bilgiler ontoloji olarak saklanması daha uygundur sorusuna cevap verebilmek için bir analiz gerçekleştirdim. Aşağıdaki listeden 1,2,4 koşullar varsa ontoloji kullanılması düşünülebilir, 3. Numaralı koşulu taşıyan sistemler başka klasik yöntemlerle  de gerçekleştirilebilir - Ontoloji kullanmak şart değil.

1.       Domain’de bir çok çeşit kavram varsa, ve bu kavram çeştilerin zamanla artma eğilimi gösteriyorsa

2.       Domain’deki kavramlar arasında birden çok çeşit ilişki olabiliyorsa. Ve ilişki çeşitleri belirli sayıda olmayıp zamanda çoğalma eğilimi gösteriyorsa.

3.       Kavramlar arasında hiyerarşik yapılar çok fazla ise(bir birinden türeyen, bir birini genişleten kavramlar).

4.       Kavramlar arasındaki ilişkiler içinde de bir hiyerarşi varsa.

Hiç yorum yok:

Yorum Gönder