BİLGİ
TABANLI BİR YÖNETİM SİSTEMİNDE
KAVRAMSAL
MODELLEMENİN ÖNEMİ
İstanbul Üniversitesi, Mühendislik Fakültesi
Bilindiği
gibi bir yazılım geliştirme sistemi veriler ve bu veriler üzerine
gerçekleştirilen süreçler şeklinde iki
temel kavramdan oluşmaktadır. Bu nedenle bir yazılım modelinin geliştirilmesi sırasında problemin
ayrıştırılması veri ya da süreç
faktörünün önemine göre gerçekleştirilir. Süreçleri temel alan programlama
modelleri C, Pascal gibi yapısal
programlama dillerinin birer kara kutu gibi işleyen fonksiyonlarını
kullanırlar. Oysa veriler temel alınarak programlama tasarımı yapan nesneye
dayalı programlama yöntemlerinde, bilgi tabanlı sistemlerde olduğu gibi,
sistemin hangi süreçleri ne tür veriler
üzerinde uyguladığı araştırılır.
Gerçek dünya uygulamaları esas olarak iki kısımdan oluşmaktadır:
☼
Varlıkların
simgelenişinin incelendiği nesneye
yönelik veri
modellerinin desteklenmesi,
☼
Mevcut
nesneye-yönelik veri tabanı sistemleri ile tam olarak
desteklenmeyen
varlıklar arası ilişkilerin simgelenmesi.
Nesneye yönelik veri tabanlarının gelişimi hem nesneye yönelik
programlama dillerinin hem de anlamsal veri modellerinin gelişmesi ile güçlenmiştir. Aslında nesneye yönelik veri
tabanının yapısal bileşenlerinin anlamsal veri modelleri ile ortak yönleri
olmasına rağmen, ilişkilerin ele alınış tarzı daha çok nesneye yönelik
programlama dillerdeki gibi
gerçeklenir. İlişkileri
nesneleri kullanarak modellemek
her zaman kolay olmayabilir.
Nesneye
yönelik veri tabanı sistemlerinde varlıklar arası ilişkiler:
☼
Nesne
yapısının bir parçasını oluşturan nesne
özelliklerinin
simgelendiği
iç-varlık ilişkisi; örneğin kitap ile kitabın başlığı arasındaki ilişki,
☼
Varlıklar
arası ilişkilerin daha zayıf olduğu ara-varlık ilişkisi; örneğin
kurum
ile kurumda çalışanlar ilişkisi
şeklinde
nesne özelliklerine göre
sınıflandırılabilir [2]. Bu iki tanım arasındaki farkı şöyle de
açıklayabiliriz:
☼
İç-varlık ilişkisi varlıklarla bir anlam taşırken,
ara-varlık
ilişkileri varlıklardan ayrı simgelenirler.
☼
Varlıkların öncelikli özelliklerinin ara-varlık ilişkilerinden ayırt
edilmesi
nedeni ile, iç-varlık ilişkileri ile oluşturulan veri tabanı oldukça esnek; yani modülerdir.
☼
Ara-varlık
ilişkilerinde ise nesne özellikleri bazı karmaşık ilişkileri
tam
olarak gerçekleştiremez; örneğin yuvalanmış ilişkilerin sıradüzensel
olarak örgütleşmesi nedeni ile, işlenmeleri oldukça güçtür. Bir
düzeydeki bir varlık bir sonraki düzeydeki bir dizi varlık ile
ilişkilendirilebilir.
☼
Ara varlık
ilişkilerinin tanımlanması ve işlenmesi
SQL benzeri
yüksek
düzeyli çalışmalarla desteklenebilir.
Avrupa kökenli O2, Amerika kökenli
GemStone ve ONTOS nesneye yönelik veri tabanı yönetim sistemleri:
1.
Uygulama
dilleri ve platform farklılıkları,
2.
Temel
veri tanımlama ve yönetim özellikleri,
3.
Aktif/pasif
nesnelerin kullanımı
4.
Çoklu miras
ilişkisini destekleme,
5.
Birleşik
nesne özellikleri destekleme,
6.
Dinamik şema
gelişim özellikleri,
7.
Veri
depolama yönetimi,
8.
Bildirim
değiştirebilme özelliği,
9.
Uygunluk ve
sorgu yönetimi
10.
Veri tabanı
erişim hızı ve güvenlik
11.
Kullanıcı
arayüzleri
gibi özellikleri ile farklılık gösteren, C++ programlama dilinde (GemStone ilave olarak Smalltalk ‘u da
desteklemektedir) geliştirilmiş ticari nesneye yönelik veri tabanı yönetim
sistemleridir [1].
II. KAVRAMSAL MODELLEMENİN
ÖNEMİ
Nesneye
yönelik bir dil gibi kavramsal modelleme dili de bir gerçek dünya varlığı ile
ilgili tüm bilgiyi davranışı ile birlikte nesnenin kendisinde kuşatır. Kavramsal modelleme dilleri gerçek
dünya varlıklarını bilgisayar modelindeki nesneye doğrudan eşleştirmesi nedeni
ile, bu tür sistemlerin tasarımı ve
yaşama geçirmesi oldukça kolaydır. İlk
nesneye yönelik standart dillerden olan Smalltalk, örnek değişkenlerinin
özelliklerle yer değiştirmesi ile kısıtların bütünlüğünü ve ilişkilerin
diğer nesnelerle semantiğini kuşatmıştır.
İlişkisel veri modeli pek çok
gerçek dünya veritabanı yönetiminde
için standart olarak uygulanmaktadır. Geliştirilecek
modelin, örneğin bir bilgi modelinin, veri tabanları ile varlıklar arasındaki
ilişkilerin değerlerinin tutulduğu tablolarla
uyumlu olup olmadığı
araştırılır. Bu yaklaşım ,
yüzyıllardan beri insanların
bilgi dizilerini tutmakta kullandığı iki boyutlu
tablolara çok benzeyen
tek ifadeli yapısı ile oldukça güçlüdür. Sonucun olumlu olması için de veri güvenilirliği ve başarım oranı yüksek uygulamaların
geliştirilmesi gerekir. Bu nedenle ilişkisel veri tabanı teknolojisi karmaşık
bilgi sistemlerinin isterlerini tam olarak karşılayamaz. Oysa nesneye yönelik
veri tabanı tasarımı ile son derece karmaşık bilginin hızlı bir şekilde yönetilmesi mümkündür. Herhangi bir gerçek
dünya varlığının tanımlanması için gerekli olan bilginin, Pascal ‘da
kayıtlarla ve C’ de
yapılarla tek bir depolama
nesnesinde depolanabilmesine rağmen, bu
varlığın çeşitli mesajlara karşı
göstereceği davranış ve ilişkilerinin diğer nesneler üzerindeki etkileri ve kısıtlarının programın tümüne yayılması zorunluluğu vardır .
Bilindiği gibi veri tabanı kendi içinde
verinin anlamı hakkında hiç bir şey saklayamaz. Bu da veri tabanı
uygulamalarında sınırlama oluşturmuştur.
Oysa anlambilimsel veri modeli verinin yapısının geliştirilmesini
sağlayarak uygulamalardaki kısıtları ortadan kaldırmıştır [7].
Anlambilimsel veri modelleri kavramsal
modellemenin üst seviyesinde geliştirilir, tasarımın gerçekleştirme aşaması ile
bir bağlantısı yoktur. Bu tür
modellemede ifade kolaylığı, basitlik, kesinlik ve simgesellik temel
ilkelerdir. Anlambilimsel ağlarda düğümler
nesneleri simgelerken, bağlantılar veya yaylar bağıntıları
simgeler. Anlambilimsel modellerin
olumlu yönleri kolay anlaşılabilirliği, mirası desteklemesi, bilgiyi
incelemenin doğal yolu olması iken; olumsuz yönleri de istisna durumlarını
modellemedeki zorluk, yordamsal bilgiyi simgelemedeki güçlük, düğümleri ve
bağıntıları tanımlamak için bir standart geliştirilmemiş olmasıdır. Aslında
ticari veri tabanı yönetim
sistemleri anlambilimsel veri modelleme kavramları kapsamında değildir. Çünkü
bu tür modelleme ile birbirinden farklı veya çelişkili yorumlar ortaya
çıkabilir. Ayrıca anlambilimsel içeriğin ilişkisel bir yaşama geçirmede
korunması da oldukça güçtür.
Veritabanında bilginin birden fazla anlamının sunulmasını mümkün kılan
anlambilimsel veri modelleri çeşitli
veri soyutlamaları ile
geliştirilebilir.
Veri soyutlamaları ile
gerçek dünya, varlıklar ve varlıklar arasındaki ilişkiler şeklinde çeşitli
bakış açılarına göre tanımlanabilir
[4].
☼ Alt tip-üst tip ilişkilerini simgeleyen kapsama,
☼ İki veya daha fazla nesne arasındaki
ilişkiye izin vererek daha
yüksek seviyede bir
nesne oluşturan kümeleşme,
☼ Öğelerin koleksiyonunu daha yüksek seviyede bir küme olarak
tanımlayan birliktelik
incelenen sistemin
yapısını simgeleyen nesneye yönelik
modelleme metodolojisidir.
Kapsama soyutlaması genellikle “is-a” ifadesi ile gösterilir. İlişkilerde “A is-a B” dir. A özel bir varlık tipi, B ise genel nesne tipi ile ilgilidir. Kapsama soyutlaması bir çok çeşide ayrılabilir:
☼ Sınıflandırma, varlık oluşumu ve onun uygun varlık tipi arasında bir
kapsama soyutlamasıdır. Örneğin; “Ayşe sekreterdir”. Varlık tipinden varlık oluşumuna doğru ters ilişki de tanımlanabilir.
☼ Genel varlık tipi birbiriyle çakışmayan özel varlık tiplerinin birleşimi
olarak tanımlandığında bu soyutlama genelleştirme oluşturur. Özel varlık tipleri genelin bir parçasıdır. Örneğin; öğrenci lisans ve yüksek lisans öğrencilerin genelleştirmesidir.
☼ Özelleştirme ise genelleştirmenin tersidir. Genel varlık tipi
olayları bağımsız altsınıflar şeklinde görüntüleyen bazı ayırt edici karakteristikler içerir. Örneğin; mezun öğrenciler öğrencilerin özel bir halidir.
☼ Tek bir genellemeye birden fazla özel varlık tipi ilişkilendirildiğinde,
özel varlıklar arasındaki ilişkiyi kontrol
etmek gerekir. Örneğin özel varlık tipi
numarasının genel varlık tipi için
tanımlanması gerekebilir. Çalışanlar isimli genel varlık
tipinin; sekreter, mühendis,
yönetici, tam zamanlı ve yarı zamanlı çalışanlar varlık
tiplerini içerdiği kabul edilsin.
Bunların bir grubu tam
zamanlı ve yarı zamanlı çalışanlar varlıkları olarak tüm çalışanları
içerirler ve örtüşme oluşturmazlar. Bir başka grup ise teknisyen, sekreter ve mühendis olarak tüm çalışanları içermemesine rağmen örtüşme de oluşturmaz.
Fakat bu iki grup arasında örtüşme olabilir. Örtüşme olduğunda özel varlıklar
arasında alt küme sıradüzeni oluşur.
Kümeleşme, nesneler arasındaki ilişkinin daha yüksek düzeyde bir nesne olarak ele alındığı soyutlamadır. Küme oluşturulurken kümeyi oluşturan nesnelerin özgül özellikleri bastırılır. Örnek olarak “rezervasyon” otel, insan ve tarihin kümeleşmiş halidir. Nesnenin kendine ait özelliği olabileceği gibi başka ilişkiler de içerebilir. Üç tür kümeleşme tanımlanabilir:
☼ Bir özellik diğer özelliklerin birleşimi olabilir. Mesela “adres “
özelliği numara, cadde, posta kutusu, posta kodu özelliklerinin bir
kümeleşmesidir.
☼ Bir varlık, varlık ve /veya
özelliklerin bir toplaşımı olabilir. Örneğin
komite bir
varlık olarak , bir özellik olan isimden, bir varlık olan başkandan,
bir varlık olan sekreterden, varlık takımı olan öğelerden meydana
gelebilir.
☼
Bir ilişki, varlık ve özelliklerin bir toplaşımı
olabilir. Örneğin; görev
ilişkisi, hem çalışan ve proje varlık
tiplerinin hem de başlangıç tarihi ve bitiş tarihi
özelliklerinin kümeleşmesi olabilir.
Kümeleşmenin bileşenleri seviyelerde
tanımlanabilir. Örneğin, klima arabanın amaca uygun bileşeni
(olması şart olmayan) iken, motor belirleyici
(karakteristik bileşenin tek başına kümeleşme oluşturması) bileşenidir. Kümeleşmenin bütünlüğünü sağlamak için, uygun olmayan
bileşenler kaldırılmalı, tüm belirleyici bileşenler tanımlanmalı, herhangi bir
belirleyici bileşen sadece bir defa
kullanılmalıdır.
Birliktelik, öğe nesnelerin ayrıntılarının bastırıldığı, küme nesnesinin özelliklerinin ön plana çıkarıldığı soyutlama tipidir. Kümeleşme için tanımlanan komite örneğindeki öğelik, kişi varlık tipinin birlikteliğidir. Birliktelik “komitenin öğelik bileşeni” şeklinde tanımlandığında ilişki için de kullanılmış olur. Birlikteliğin öğelerinin tümü aynı cinsten olmalıdır. Oysa kümeleşmenin bileşenleri çoğunlukla aynı cinsten değildir. Birliktelik soyutlaması ile sonlu sayıda öğe kullanılabilmesine rağmen, kümeleşmede bileşenlerin sayısı sabit olmalıdır.
Farklı gerçek dünya kavramlarını modellemede kullandığımız ve yukarıdaki veri soyutlamalarına göre tanımlanan nesneler bir içerik sıradüzeni oluştururlar. Aşağıdaki şekilde en genel şekilde çoklu içerik temsil edilmektedir.

![]()


![]()



![]()
![]()
Şekil 1:
Bisiklet tasarımı için içerik sıradüzeni
Yukarıdaki
tasarımda her bir bileşen bir nesne olarak modellenir ve bu bileşenlerin
içerikleri aynı zamanda nesne içeriklerini oluşturur. Bir simgelenişle sınıflara ait değişkenlerin tümü tanımlanmamış
olabilir. Örneğin bisiklet sınıfı marka-ismi isimli bir değişken de içerebilir.
III. KAVRAMA YÖNELİK
VERİTABANLARINDA BİR SORGULAMA ÖRNEĞİ
Kavrama yönelik veri
tabanlarında sorgulamanın gerçekleşmesi duruma dayalı mantık yürüten
sistemlerle gerçekleştirilebilir [6].
Bu sistemler bilgiyi hafızanın veya kullanılan kütüphanenin eski
durumlarından çıkartarak amaç sorgusuna uygun verinin çıkarımı için bir
mekanizma oluştururlar. Belli bir
veriyi arama kesin bir sorgulama olabileceği gibi bir amaç sorgulaması da olabilir.
Kesin sorgulamalar kriterlere birebir uyan veriyi hedef alır. Örneğin
“Balzac’ın eserleri nelerdir?” veya “8.15 uçağı ne zaman kalkıyor?. Sorgulamayı
yapan kişi başka birinin eseri veya başka bir uçağın kalkış saati ile
ilgilenmemektedir. Oysa amaç sorgulamaları o soruya yakın verileri hedef olarak
tanımlar. Örneğin “kroner kalp yetmezliği riski düşük olan hastalardan yüksek kolestrolü olanları listele” . Eğer hiç
yoksa orta düzeydeki kolestrolü ve düşük kroner kalp riski olan hastalar da
sorgulamayı yapanı ilgilendirebilir. Tipik amaç sorgulamaları kesin olmayan
değerler içerebilir. Böyle sınırları belirsiz sorgulama gereksinmelerine
mühendislik, tıp, yönetim gibi uygulamalarda
karşılaşılmaktadır. Kavramların oluşturulması ve duruma göre mantık
yürütme sistemleri tıbbi teşhis, yatırım planlaması gibi bilgi yoğunluklu
uygulama alanları için bilginin integrasyonunun doğru olarak sağlanması
ile doğru sonuçlar üretebilir.
Duruma dayalı mantık yürütebilmek için
tanımlanacak kavram modellerinin bazı
özellikleri gerçekleştirmesi
gerekir. Klasik kavram modelinde
kavramların gösterimi tüm sınıfın bir özet tanımını verir. Böylece hafızada
tutulması gereken bilginin az olması sağlanır. Kavramın temsil ettiği
özellikler gerekli özellikler iken, bunlar yan yana getirildiğinde yeterli özellikleri oluştururlar. Bu
nedenle de bu model ile bir çok kavram
için soyut özellik tanımı yapılması güç
olabilir. Kavramın tanımının gerekli ve yeterli özelliklerle sınırlanmadığı ve
kavramın yine tüm sınıfın özet bir tanımı ile sunulduğu model, prototip kavram
modelidir. Eğer kavram soyut bir özet olarak değil de bazı örnekleri ile tanımlanıyorsa örnek kavram modeli
oluşturur[3]. Bundan sonra sunulan kavramların veritabanında modellenmesi seçilecek bir örnek tanımlama ve kavram
sorgulama dilinde gerçekleştirilir. Böylece bilgi tabanlı yönetim sistemleri
için duruma-yönelik mantık yürütme ile
yeni durumların yorumlanması ve yeni problemlerin çözümü elde edilir.
IV.
BİLGİNİN WWW ORTAMINDA
SAKLANMASI
Geliştirilen
herhangi bir yazılım sisteminin sonuçlarının bir veri tabanı içerisinde
tutulması geleneksel bir yaklaşımdır. Oysa hem dilbilimsel hem de kavramsal
desteği olan bir programın
geliştirilmesi bilgi
bilgisayarı doğurur. Böylece bir konu
ile ilgili bilgi edinmek isteyen ve bu bilgileri düzenleyen herhangi bir kimse, çevrimiçi
metinlerden pek çok bilgiyi kolaylıkla
algılayabilir. Burada geliştiricinin
potansiyel bir ilk kullanıcı olduğu görülür. HTML – tabanlı bir tasarım gerçekleştirildiğinde geliştirici çok çeşitli dağıtık belgeye ulaşabilir; uzman kontrolleri ve
standartlara uyum ile büyük ölçekte paylaşılabilirlik sağlanabilir. Uzman kişilerle karşılıklı konuşmanın sağlanması tıp, hukuk gibi tüm alana-özel
terimler içeren çalışmalarda önemlidir.
Böylece problemin modellenmesi için
ulusal ve uluslararası düzeylerde oluşturulacak komitelerin sadece betimsel değil tavsiye edilmiş bilgiyi sunması sağlanır.
Uyumun sağlanması için kavramsal analiz çok önemlidir. İlgi alanının anlaşılabilirliği, o alanın
kavramlarının anlaşılabilirliğidir.
Tasarlanan programın yaşama geçirilmesi için kavramsal analizi
destekleyen örnek metne gereksinim
vardır. Böylece belirli bir özel alana
ait kavramları içererek oportünist
olmayan bir yaklaşım sergileyen bir
örnek metin düzenlenir. Burada yapılan
işin bilgi mühendisliği ile ortak
yönleri oldukça fazladır. Fakat örnek
metnin oluşumu için gerekli olan belgelerin
farklı kaynaklardan sağlanabilmesi ve bunların bilgisayar
tarafından okunabilir forma dönüşümü
gerekmesi nedeni ile, kolaylıkla
tercih edilen bir yöntem olmamasına rağmen sonuçları çok sağlıklıdır.
Bilgi tabanlı bir yönetim sistemi
oluşturulurken geleneksel veri tabanı yerine dilbilimsel bilgiyi de içeren
kavramsal ilişkiler çeşitli sıradüzenlerde tanımlanabilir[5] . Yukarıda
ayrıntılı olarak incelenmiş olan soyutlamalar burada da tanımlanır. Örneğin;
genelleştirme-özelleştirme için “araba bir araç cinsidir”, konu için“cebir matematiğin alt alanıdır” ve
parçası olma (kümeleşme) için “baş
vücudun bir parçasıdır”. Bu aşamada geliştirici çok sayıda tanımlanabilen
ayırt edici özelliğin, çerçeve
benzeri bir yapı oluşturarak kavram ile
birlikteliğini kurmalıdır. Örneğin
bilişim alanına yönelik bir
sözlüğünün düzenlendiğini düşünelim.
CD-ROM kavramı için bir kişi “depolama
kapasitesi: 700 MB” şeklinde bir ayırt edici özellik tanımlayabilir. Bir kavram
genelleştirme-özelleştirme sıradüzeninin bir parçası ise, ayırt edici
özellikler otomatik olarak genelden daha özel kavramlara miras yolu ile
geçmelidir. Burada çoklu mirasın da gerçeklenmesi sağlanabilir. Çalışmanın daha sonraki aşamalarında dağıtık olarak
oluşturulmuş farklı bilgi tabanlarının birleştirilmesi ile , o konu ile ilgili
araştırma yapan kişinin daha büyük bir bilgi tabanına ulaşması mümkün olabilir. Örnek olarak Avustralya’daki arabalar ile ilgili bir bilgi
tabanının Kanada’daki kamyonlarla ilgili bir bilgi tabanı ile tümleştirilmesi verilebilir.
Böylece; özellikle WWW ortamında belirli
bir alana-yönelik belgelerin toplanması ile bu belgeler içindeki potansiyel
terimlerin tanımlarının, bu terimlerin dilbilimsel özelliklerinin de mevcut olduğu kavramsal bilginin analizi ile
yapılması, daha nitelikli ve daha hızlı çalışan alana-yönelik çalışmalar
olarak sonuçlanacaktır .
V . SONUÇ
Bilgi tabanlı sistemlerde yazılımın
geliştirilmesi aşamalarında pek çok
sorun ile karşılaşılabilir. Analiz
aşamasında yazılımın hizmet edeceği
unsurlar isterlere göre çok iyi
belirlenmelidir. Geniş kapsamlı olarak
toplanmış veriler, geliştirilecek yazılımı başarısızlığa sürükleyebilir.
Bu nedenle de yazılımın geliştirilmesi esnasında kavramsallaştırma temel
bir problem çözme aktivitesi olarak
tanımlanabilir. Kavramsal modellemenin en önemli özelliği sistemin yüksek düzeyde simgelenişini
sergilemesidir. Amaç ise, istelerden
cümleler çıkararak bunları tasarım ve
program aktiviteleri için uygun hale getirmektir. Veri soyutlamaları şeklinde tanımlanan özelliklerin birçok
ticari veritabanı yönetim sistemi tarafından desteklenmemesi nedeni ile, pratikte uygulanabilirliği yüksek düzeyde değildir. Fakat dilbilimsel ve
kavramsal tanımlar arasındaki benzerlikten yararlanarak geniş
kapsamlı ve bilgi tabanlı veritabanı
yönetim sisteminin oluşturulması
kolaylaşmıştır.
[1].Barillere B, Chan
B., Goff J.M., Milcent M., Huuskonen P.,.Stampfli R,.Willmott C, “Corparison
Between Gemstone, Ontos and O2,
Oriented Database Management Systems”,
1993, http://light.web.cern.ch/Light/cortex/report/
[2] Beraha S., Su J.;
“Support for Modeling Relationships in Object-Oriented Databases”,
Data& Knowledge Engineering 29
(1999) 227-257.
[3] Dubitzky W., Büchner
A.G., Hughes J.G., Bell D.A,“Towards Concept-Oriented Databases”,
Data&Knowledge Engineering 30 (1999) 23-55.
[4] Goldstein R.C.,
Storey V.C., “Data Abstractions:Why and How?”, Data&Knowledge
Engineering 29 (1999) 293-311.
[5] Meyer I., Skuce D.,
Kavanagh J.,.Davidson L, “Integrating linguistic and conceptual analysis in a
WWW-based tool for terminography,
http://www.qucis.queensu.ca/achallc97/papers/p021.html
[6] http://www-cia.mty.itesm.mx/~lgarrido/Repositories/CBR/reasoning.html Case-Based Reasoning Repository
[7] http://www.chimu.com/publications/
, ChiMu Corporation.