Kullanım biçemi içerisinde temel yapıtaşı (element) olarak modüller kullanılmaktadır.
26 Eylül 2008 Cuma
Mimari Biçemleri: Modül Görünüş Tipinin Biçemleri - Kullanım Biçemi
Kullanım biçemi içerisinde temel yapıtaşı (element) olarak modüller kullanılmaktadır.
22 Eylül 2008 Pazartesi
Mimari Biçemleri: Modül Görünüş Tipinin Biçemleri
UML ile gösterim yapıldığında ise farklı şekilde gösterim yapılabilmektedir. Bir gösterim içerisinde bir modül diğerinin içine çizilerek ayrıştırma görünümü oluşturulur. Diğer bir gösterimde ise bir modül parçasıdır ilişkisi ile bağlı olduğu modüle bağlanır ve aşağıdaki şekilde gösterilir.

Mimari Görünümleri : Modül Görünüm Tipi
Modülarizasyon :
- Değiştirilebilme
- Taşınabilirlik
- Tekrardan kullanım
özellikleri yazılım birimlerine uygulanarak modüller oluşturulmaktadır. Modül GörünümTipi temelde 4 farklı işlemin sonucunda oluşan 4 görünümten oluşmaktadır.
- Ayrıştırma (Decomposition) : Modüller arası içerme işleminin belirlenmesi ve gerekli modüllerin ayrıştırılması.
- Kullanım (Uses) : Modüller arasındanki işlevsel bağımlılık ilişkilerinin tanımlanması ve gösterimi
- Genelleştirme (Generalization) : Özelleştirme işlemlerinin gerçekleştirilmesi ve ilişkilerin gösterilmesi
- Katmanlar (Layers) : "Kullanabilme" izininin tanımlanması ve bu sayede farklı görünümlerin birbirleri arasındaki seviyelerin gösterimi
Modül Görünüm Tipi bu farklı görünümlerin bütününden oluşmakta ve yazılım mimarilerini açıklamaktadır. Modül Görünüm Tipi, modüller arasında 4 farklı ilişki tanımlamaktadır. Yazılım uygulamaları içerisinde sınıfların kendi aralarındaki ilişkileri incelendiğinde, temelde bu dört ilişkinin modülleri tanımlamak ve modüller arası ilişkileri betimlemek için yeterli olduğu görülür. Bu ilişkilere bakacak olursak;
İlişkiler : parçasıdır(is-part-of) , bağlıdır(depends-on), aynısıdır(is-a), ek olarak kullanabilme (allowed-to-use)
Modül Görünüm Tipi bu özelliklerin yanı sıra birer hiyerarşiyi açıklayacak bir isim, modüllerin sorumlulukları (Birbirine karışmayan ve detaylı bir şekilde açıklanmış modül rolleri ve kimlikleri), modülün arayüzünün görünülürlüğü(kapsandığı modülün arayüzünden mi yoksa kendi arayüzünden mi haberleşeceği) ve uygulanma bilgisi (Cod parçalarına işaret eden, test, uygulanma kısıtlarını ve yönetim bilgileri) içermektedir.
İlişkiler ise kendi özelliklerine sahiptir.
parçasıdır : Görünürlük özelliği
bağlıdır : Bağlı durumdaki modüllerin arasındaki koşullar
aynısıdır : Uygulama özelliği ; A --inherits--> B
Modül Görünüm Tipi bu özelliklere sahip olmakla birlikte, bir çok farklı gösterim yolu ile gösterilebilmektedir. Genel olarak bakıldığında mimari şekilleri içerisinde modüller, baloncuklar, kutular ile gösterilmekte, ilişkiler ise çizgiler ile belirtilmektedir. Modüllerin özellikleri ise düz yazı ile açıklanmaktadır. Genel gösterimin dışında UML(Unified Modeling Language) ile de gösterilmektedir. Modül Görünüm Tipinin içerisinde yer alan modüller ve aralarındaki ilişkiler UML olarak Şekil-1 içerisinde gösterilmektedir.

Şekil-1 : Modül Görünüm Tipi elementleri ve ilişkileri
19 Eylül 2008 Cuma
Anlamsal Web Portal Mimarisinin Anlatımı : Mimari Görünüşlerinin Eklenmesi
- Giriş
Anlamsal Web Portal geliştirme süreci içerisinde diğer Anlamsal Web Portal mimarileri incelendiğinde karşımıza çıkan mimarilerde genel eksiklik mimarilerin tüm özelliklerinin ve içeriğinin yansıtılmamasıdır. Bu eksikliği gidermek için Documenting Software Architectures kitabı içerisinde bahsedilen görünüş ve diğer yapılardan burada kısaca bahsedilecektir. - Gereksinimler ve Kısıtlamalar
Anlamsal Web Portal Mimarilerinin genel yapısı içerisinde en önemli özellik ontoloji kavramıdır. Ontolojilerin gösterimi ve saklanması işlemleri, ontolojilerin içeriklerinin farklı şekillerde web portal içerisinde etki edebilmesi, Anlamsal Web Portal kavramının temel özelliklerinden birisidir. Ontolojiler bu özellikleri nedeniyle mimari içerisinde farklı yerlerde (katmanlarda) kullanılmaktadır. Bu durum ise ontolojilerin bilgi katmanı dışında üst katmanlar içerisinden erişilmesi gerekliliğini doğurur. Üst katmanların ontolojileri kullanabilmesi, katmanlı mimariler içerisindeki soyutlama gerekliliğini de içermek zorundadır. - Mimari Görünüşleri
- Mantıksal Görünüşü (Logical View)
Mantıksal görünüş içerisinde davranışsal gereksinimler gösterilere oluşturulan mimarinin son kullanıcıya nasıl bir hizmet sunacağı belirtilmektedir. Mantıksal görünüş ilgi alanında olan bilginin kullanıcının anlayabileceği bir seviyeye çekilmesi, yani davranışların modellenmesi için gerekli olan soyutlamanın gösterildiği görünüştür.
- İşlem Görünüşü (Process View)
İşlem görünüşü anlatılan mimarinin dağıtık ve kararlı yapısının anlatıldığı görünüştür. İşlem görünüşü kararlı yapısı içerisinde sistemin bütünlüğü ve hataya toleransı gösterilmektedir. Sistemin bütünlüğü ve olabilecek hataların belirlenmesinde temel alınması gereken birimler mantıksal görünüş içerisinde ortaya konan sınıflardır. Bu sınıflar bir kontrol iş parçağı tarafından denetlenerek, her bir sınıf içerisindeki her bir operasyon bu denetlemeden geçirilmektedir. İşlem görünüşü temel olarak bu hata kontrolünü gerçekleştirirken sadece oluşacak işlem hatalarını değil, aynı zamanda donanım hatalarını da kontrol etmektedir.
- Geliştirme Görünüşü (Development View)
Geliştirime görünüşü yazılım modüllerinin organizasyonun gösterildiği görünüştür. Bu görünüş içerisinde her bir yazılım parçacığı küçük birimler içerisinde gösterilmektedir. Geliştirme görünüşü bu şekilde büyük yazılımların küçük parçacıklara bölüştürülmesi ve çalışma gruplarına dağıtılmasında kullanılmaktadır. Bu görünüşün tam olarak gerçekleştirilmesi amacıyla bütçe oluşturma, planlama ve proje işleminin gözlemlenmesi gibi yazılım mühendisliği tekniklerinin kullanılması gerekmektedir.
- Fiziksel Görünüş(Physical View)
Fiziksel görünüş yukarıda belirtilen tüm görünüşlerin bir bütün halinde çalıştığının gösterildiği görünüştür. Fiziksel görünüş içerisinde diğer görünüşlerde belirtilen tüm yapılar çalışan bir işlem olarak gösterilmekte ve uygunluk, performans, ölçeklenebilirlik ve hataya tolerans gibi işlemleri ele almaktadır.
8 Eylül 2008 Pazartesi
Yoğunluk
5 Eylül 2008 Cuma
Dynamic Object Model-Dinamik Nesne Modeli (Uygulama)
3 Eylül 2008 Çarşamba
Dynamic Object Model-Dinamik Nesne Modeli (Devam)


- Bileşen sınıfı Özellik sınıfının nesneleri için Sahip dir. /Özellik:Özellik
- Bileşen sınıfı Özellik sınıfının değer tutan rolü için bir istemcidir. Çünkü değerleri özellik sınıfına sormaktadır.
- Bileşen sınıfı BileşenTipi sınıfının tip rolü için bir nesnedir. Çünkü kendisine ait tipler temelde diğer sınıftan gelmektedir.
- Bileşen sınıfı BileşenTipi sınıfının tip rolü için bir istemcidir. Çünkü kendisine ait tiplerin özelliklerini bu sınıfa sormaktadır.
- Özellik sınıfı Bileşen sınıfının sahip rolü için bir özelliktir.
- Özellik sınıfı ÖzellikTipi sınıfının tip rolü için bir nesnedir.
- Özellik sınıfı Değer sınıfının değer rolü için bir değer tutucudur.
- Değer sınıfı Özellik sınıfının değer tutucu rolü için bir değerdir.
- Bileşen Tipi sınıfı Bileşen sınıfının sahip rolü için bir istemcidir. Çünkü sahip olacağı tipler Bileşen sınıfı içerisinden tanımlanmaktadır.
- Bileşen Tipi sınıfı Bileşen sınıfının nesne rolü için bir tipdir. Çünkü Bileşen sınıfına ait tipler Bileşen Tipi içerisinde saklanmaktadır.
- Bileşen Tipi sınıfı ÖzellikTipi sınıfının özellik rolü için bir sahiptir. Çünkü Özellik Tipi sınıfı Bileşen Tipi sınıfının tanımladıkları dışında tip bulunduramaz.
- Bileşen Tipi sınıfı Özellik Tipi sınıfının özellik rolü için bir istemcidir. Çünkü Bileşen Tipi içerisindeki tip tanımları Özellik Tipi içerisindedir.
- Özellik Tipi sınıfı Bileşen Tipi sınıfının sahip rolü için bir özelliktir.
- Özellik Tipi sınıfı Özellik Tipi sınıfının nesne rolü için bir tiptir. Kendi kendisi içerisinde tanımlanan tipleri kullanarak yeni tipler oluşturabileceğinden kendisinin tipidir.
2 Eylül 2008 Salı
Dynamic Object Model-Dinamik Nesne Modeli
Anlamsal Web açık bir dünyadır. Açık bir dünyada, bir varlık hakkındaki bilgi sadece bilinen kadar olduğu kabul edilir. Eldeki bilgiden yola çıkarak, bu varlık ile ilgili diğer bilgilerin doğruluğu ya da yanlışlığı bilinemez. Bu tip bir yaklaşıma Açık Dünya Yaklaşımı denmektedir. Anlamsal Web kendi içerisinde varlıkları paylaşabilen bir dünyadır. Bu sebeple bir varlık ile ilgili bilgi farklı yerlerde tutulabilmektedir. Bu sebepten Anlamsal Web'de bir varlık hakkındaki bilginin erişilen uzay kadar olduğu kabul edilmez. Erişilen uzay sadece varlıkla ilgili bilginin bir kısmı olduğu yani açık bir uzayda sadece bir galaksiyi gözlemleyebildiğimiz kabul edilmektedir.
Programlama yöntemleri ve paradigmalarına baktığımızda ise açık bir dünya aksine olabildiğince net ve belirli bir uzayla karşılaşırız. Kapalı dünya yaklaşımına sahip programlama yöntemleri ve dilleri, temelini aldığı lojik diller ile birlikte Anlamsal Web ile karşıtlık içerisindedir. Bu sebepten üst düzey programlama dillerinin açık dünya yaklaşımına sahip ontolojileri modellerken kullanılması ve ontolojik kavramları anlamsal olarak saklayabilmesi için açık dünya yaklaşımına olmaları gerekir.
Dinamik Nesne Modeli bu noktada devreye girerek, Anlamsal Web ile Nesneye Dayalı Programlama arasında bir köprü oluşturmaktadır.
Dinamik Nesne Modeli temelde önceden belirlenmiş ve oluşturulmuş nesne çatılarını dinamik hale getirerek, çalışma anında yeni tiplerin yaratılmasını ya da varolanların değiştirilmesini veya varolan nesneler arası ilişkilerin değiştirilmesini sağlamaktadır.
Dinamik Nesne Modeli temelde bir bileşik desendir. Tip-Nesne, Özellik listesi ve Değer Saklayan Desenlerinin birleşiminden oluşmaktadır.
1 Eylül 2008 Pazartesi
Reification-Maddeleştirme
Soyut veya metaforik bir kavramı, formülasyonu, vb. sanki gerçek veya somut bir nesneymiş gibi değerlendirme. Örneğin aşka duyulan özlemi bir hastalıkmış gibi, ya da soyut 'renk' kavramına sanki renkli nesneden bağımsız olarak varolan bir şeymiş gibi değerlendirmek buna bir örnektir. [Psikoloji Sözlüğü]
Reification (Maddeleştirme) Anlamsal Web içerisinde cümleciklerin maddeleştirilmesine denilir. Reification, RDF (Resource Description Identifier) dili kullanılarak açıklanan cümlecikler içerisindeki Özne-Yüklem-Nesne üçlülerindeki yapıyı desteklemektedir. Bu yapı içerisinde yapılan "Ali sinemaya gitti" cümlesinin üçüncü bir şahıs tarafından bize iletildiğini ele alalım. Bu durumda cümle: "Ahmetin söylediğine göre Ali sinemaya gitmiş" şeklinde olacaktır. Bu noktada reification önem kazanmaktadır. Ali'nin sinemaya gidip gitmediği bir üçlü değildir. Bu cümle içerisinde düşünüldüğünde bir nesne olması gerekmektedir. RDF dili içerisinde üçlülerin bir nesne olarak kullanılması gerekliliği ortaya çıkmakta, RDF dili içerisinde reification yapısı sayesinde bu cümlenin üçlü olarak saklanması sağlanabilmektedir.
Soyut kavramlar düşünüldüğünde bir cümle içerisinde nesne olarak ya da betimlemelerde soyut kavramlar kullanıldığı görülmektedir. Bu durumda kullanılan her rengin ya da soyut kavramın öznesinden bağımsız olarak bir nesne olarak varolabilmesi gerekmektedir. Bu durumu bir örnekle incelersek;
"Ali ekmeği kızarttı." cümlesini ele alır ve bu durumu bir üçlü olarak bir graf içerisine yerleştirdiğimizi düşünelim.
kızarmak
Bu durumda artık bir üçlü elde etmiş oluruz. Ancak eğer bu cümle daha farklı betimlemelerde içerseydi nasıl yapılandırılmalıydı?
Cümlemiz "Ali ekmeği salı günü tavada kızarttı." olsaydı bu durumda elimizdeki üçlü yapısı bu betimleme için yetmeyecektir. Graf içerisinde bu betimleme şöyle olacaktır.
Kızartmak eylemiBu durumda elimizdeki cümlenin anlamsal olarak kayba uğramaması amacıyla bu betimleme içerisine salı günü ve tavayı eklememiz gerekmektedir. Bu zarfların özne ya da nesne ile ilgili olmadığını düşünürsek, zarfları yüklem içerisinde betimlememiz gerekmektedir. Bu rudumda Kızarmak eylemini tanımlarız. Bu eylem içerisinde zarfları tanımlamak ve anlamsal olarak kaybı engellemek mümkün olur.
/\
/ \
/ \
/ \
/ \
/Kızartmak \
Tom -------> Ekmek
tavada -------- kızartmak eylemiBu yeni durumda Kızartmak eylemi genel durumdan kurtulmuş ve özelleşmiş olarak tutulur. Kızartmak yüklemi yerine yeni tanımlanan kızartmak eylemi saklanmalıdır. Bu sayede reification yapılabilmekte ve anlamsal kayıp olmadan bilgi eksiksiz saklanabilmektedir. Çıkarsama işlemlerinde önemli bir yere sahip olan bu bilgiler sayesinde çıkarsama işlemleri genel durağanlığından kurtulmuş olur [Newcomb, S. R.].
/ /\
salı günü --+ / \
/ \
/ \
/ \
/Kızartmak \
Ali -------> Ekmek
Anlamsal Web Çalışmaları
Anlamsal Web Çalışmaları blogunda size Anlamsal Web ile ilgili yaptığım çalışmaları, okuduğum makaleleri özetlemeye çalışacağım. Blog içerisinde tüm yazılar türkçe olacak ve bu sayede türkçe bir dökümantasyon elde etmek ve sizlerinde Anlamsal Web konusunda bilgi edinmenizi sağlamayı amaçlamaktayım.