İÇERİK YÖNETİM SİSTEMLERİ MODÜLLERİNİN ANLAMSAL OLARAK İLİŞKİLENDİRİLMESİ Adem TEKEREK 1, Ali Teymur KAHRAMAN 2 1 Gazi Üniversitesi, Bilişim Enstitüsü, Elektronik ve Bilgisayar Eğitimi Bölümü 2 Gazi Üniversitesi, Bilişim Enstitüsü, Bilgisayar Bilimleri Bölümü 1. ÖZET Günümüzde web sitelerinde açık kaynak kodlu İçerik Yönetim Sistemlerinin (Joomla, Drupal, Wordpress, Plone) kullanılması yaygınlaşmış ve popülerleşmiştir. İYS'lerinde (İçerik Yönetim Sistemleri) belirli görevleri ve işlemlemleri gerçekleştiren hazır scriptler yer almaktadır. Bu scriptler genellikle açık kaynaklı olup gönüllü kullanıcılar tarafından belirli standartlar altında geliştirilmektedir. Geliştirilen ve kullanıma sunulan bu scriptlere modül veya eklenti denilmektedir. Bu eklentilerin sayısı Drupal [1] ve Joomla [2] İYS lerinde 7000 'nin üzerindedir. Wordpress İYS sisteminde ise 13000 üzerinde eklentisi vardır ve indirilme sayısı 160 milyonun üzerindedir.[3] Her bir eklentinin gerçekleştirdiği görev, farklı veya aynı görevi gerçekleştiren birbirine rakip eklentiler olabilir. Kullanıcılar İYS'lerinde yapmak istedikleri eklentileri ararken karmaşa yaşayabilmektedir. Zorlu araştırma sürecinden sonra, tam olarak hangi eklentinin yapmak istedikleri işleri çözebilen eklenti olduğunu bulabilmektedirler. Bu projenin amacı sayıları on milyonların üzerinde olan İYS kullanıcılarına bir arayüz ve ontoloji tabanlı arama motoru sayesinde tam olarak istedikleri eklentiyi sunabilen veya buna en yakın çözümleri getirebilen eklentileri sunabilmektir. Anahtar Kelimeler : Ontoloji, Anlamsal Ağlar, İçerik Yönetim Sistemi
2.Metodoloji Projede ile anlamsal ağlar teknikleri ile var olan mevcut eklentiler kullanarak akıllı etiketlendirme gerçekleştirilmiştir. Bunu gerçekleştirebilmek için kullanıcı etkileşimli sıralama sistemi kullanılmıştır. Kullanıcı, arama ekranına İYS'de gerçekleştirmek istediği işlemi yapacak eklentiyi bulabilmek için anahtar kelimeler girecektir. Eğer kullanıcının aradığı kelime daha önce başka kullanıcılar tarafından aranmış ise kullanıcı geri dönüşüm bildirilerine göre sonuç sıralanacaktır. Uygulamada bir anahtar kelime ilk defa kullanıyor ise, veri tabanında bulunan eklenti tanımlama bilgilerinden (metadata) oluşturulan ontolojiye göre arama işlemi sonuçlandırılacaktır. Uygulamanın Özet Sözde Kodu Eğer Anahtar Kelime Veri Tabanında Var İse Döndür Kullanıcı Geri Dönüşüm Oranı Yok İse Eklenti Tanımlama Bilgilerinden Oluşturulan Ontolojiye Göre Arama Yap Son Olarak Kullanıcı Geri Dönüşüm Bildirimi Al
Başla Anahtar Kelime Gir Hayır Anahtar Kelime Girildimi Evet VT Ara Girilen Kelimeyi VT Ara Anahtar Kelime Bulundu Hayır Akılllı Arama Motorunu Çalıştır Evet Sonuçları Göster Olası Sonuçlar Kullanıcı Geri Dönüşüm Oranını Al VT Yaz VT Yaz Bitir Şekil 1. Uygulamanın Çalışma Algoritması
3 Literatür Araştırması "Ranking web sites using domain ontology concepts" isimli makalede Ahmad Kayed ve ark. pek çok web arama motorunun kullanıcı sorgularına döndürdüğü cevapların büyük miktarlarda ilgisiz bilgi döndürdüğünü belirtmişlerdir. Anlamsal webin arama motoru işlemlerini iyileştirecek umut verici bir yaklaşım olduğunu ve web alanları için ontolojilerin anlamsal veriyle anlaşmak için makinelere yardım etmek amacıyla kavramları yakalanabileceğini ileri sürmüşlerdir. Makalede, web sitelerini doğru bir şekilde yeniden sıralamak ve yeniden sorgu kavramları oluşturmak için, düzenlemişler ve web sitelerinin ilgililik oranının nasıl olduğunu göstermişlerdir. Bu nedenle makalede, düzenlenmiş dokümanların yeniden sıralanması için yeni bir ilgililik oranı önermişlerdir. Bu yaklaşımı ontoloji kavramları olarak adlandırılmışlar ve elektronik ticaret alanına uygulamışlardır. Uygulama alanı olarak anlaşılır ve kısa olması için, sadece Yahoo arama motorunun sonuçları üzerinde işlemler gerçekleştirilmiştir. Geliştirilen ontoloji ve Yahoo arama motorunun döndürdüğü sonuçlardan sadece ilk 30 satır üzerinde inceleme yapılmıştır ve sonuşlar makale tablo olarak verilmiştir. Aşağıdaki grafikte ise sonuçlara göre oluşan çizgi grafik verilmiştir. Bunun için, İngilizce tasarlanmış, ontoloji temelli uygulamaları geliştirmek için kullanılan özel bir şablon(framework) olan KAON kullanılarak ontoloji kavramları üretilmiştir. KAON, iş uygulamalarını hedefleyen açık kaynak kodlu bir ontoloji yönetim altyapı sistemidir. Sonuç olarak, arama sorgularında dönen sonuçlara göre düzenlenmiş dökümanların (web siteleri) yeniden sıralanabileceğini göstermişlerdir. Bu yöntem düzenlenmiş dokümanlarda ontoloji kavramları sıklığına dayandırmışlar ve sonuçlar arasındaki hesaplamak için kullanmışlardır.[4]
Şekil 2. Ontoloji İnşaa Metodu "A smart web query method for semantic retrieval of web data" makalesinde Roger H.L. Chiang ve ark. Web'te sorgulanma ve çıkarım yapmak genellikle zor olduğundan çünkü web verisinin diğer hiçbir verinin organizasyon standardına uymadığından bahsetmişlerdir. Bu yüzden web üzerindeki arama teknolojisinin gelişiminin nispeten tam olarak gelişmemiş bir yapıda olduğunu belirtmişlerdir. Şuandaki arama motorlarının ilkel veri sorgulama özelliğine sahip olduğunu belirterek ilişkili veriyi bulmak için detaylı sözdizimsel tanımlamalara ihtiyaç olduğunu belirtmişlerdir.yazarlar bu araştırmada web verisinin semantik yolla çıkarılması için zeki bir web sorgulaması (SWQ-smart web query) metodu sunmaktadırlar. Bu metod uygun arama sorgusunu belirlemek ve formülize etmek için içerik ontolojisi olarak tanımlanan etkin semantikleri kullanmaktadır. Metod ayrıca ilişkili web sayfalarını otomatik olarak tanımlamak ve sıralamak için semantik arama filtreleri kullanmaktadır. Hiyerarşik yapıda bulunan ontolojilerin aksine, içerik ontolojisinde kavramlar ve ilişkiler esnek bir yapıda belirli bir alanda uygun olarak tanımlanmaktadır. Bir SWQ metodu önerilen metodu test etmek için geliştirilmiştir. SWQ metod ve motorunun testi ve doğruluğu için e- ticaret uygulamasına adapte edilmiştir. [5]
Şekil 3. SWQ Arama Motoru Raquel Trillo ve ark. " Using semantic techniques to access web data " başlıklı makalede, girilen farklı anlamlardaki anahtar kelimeleri kategorilendiren geleneksel arama motorları sonuçlarını önerdikleri bir dizi semantik tekniklerle gruplandırmışlardır. Yazarlar diğer önerilen metodlardan farklı olarak,web üzerinde erişebilir olan ontoloji bilgilerini kullanarak, dinamik olarak olası kategorileri tanımlamışlardır.buda kaynaklardan bağımsız gruplandırılmış sonuçlar sağlar. Yazarlar yaptıkları literatür araştırmasında, web araması için kümeleme-kategorilendirme işleminin aşağıda verilen özellikleri taşıması gerektiğini belirtmişlerdir. Alaka : Yaklaşım, Kullanıcının sorgusuyla ilgili sayfaları alakasız olanlardan ayrılmalıdır. Gözatılabilir Özetler : Sonuç sayfasından üretilen grupların bilgilendirici özetlerini sağlamalıdır Örtüşme : Bir sayfa birden fazla grupla ilişlilendirilmelidir. Hız : Web sayfalarının farklı gruplarını oluştururken süreç hızlı işlemelidir. Artımlı: Kullanılabilir bilgi oluştuğu andan itibareb süreç artımlı olarak işlemelidir. Araştırmacılar geliştirdikleri sistemi iki adımda tanıtmışlardır. Birinci adımda kullanıcının girdiği anahtar kelimenin anlamsal keşfini yapmışlardır.bu adımdaki amaç anahtar kelimenin veya kelimelerin farklı manaya gelen anlamlarını ve olas ıeş anlamlı sözcüklerini bulmaktır. Sorgudaki herbir kelime kelime anlamına göre sıralamaya tabi tutulur.,
İkinci adımda geleneksel arama motorlarından gelen kategori sonuçlarının isabet oranını kullanarak yeni sınıflandırma oluşturmaktır.[6] Şekil 4. Uygulama Özeti 4. Veri Tabanı Tasarımı Oluşturulan Tablolar tb_iys: İçerik Yönetim Sistemlerinin listesinin tutulduğu Tablodur. (Tablo 1) tb_tb_modul_kayit: Uygulamamızın en önemli tablosudur. Örnek ve Test olarak seçilecek modüllere ait detaylı bilgilerin tutulduğu tablodur. tb_modul_adlari: Modül adlarini tutan tablodur. tb_modul_kategori: İlgili İYS'de bulunan kategorilerin listesini tutan tablodur. (Tablo 2) Tablo 1 İçerik Yönetim Sistemleri Veri Tabanı Tablosu Kayit_ID IYS_ID IYS_Adi 1 1 DotNetNuke 2 2 Drupal
3 3 Joomla 4 4 Mambo 5 5 OSCommerce 6 6 PHP-Nuke 7 7 Plone 8 8 PostNuke 9 9 WordPress Tablo 1 modüllerin ait olduğu İYS'lerinin tutulduğu tablodur. Tablo 2 İçerik Yönetim Sistemleri Modül Kategorisi Veri Tabanı Tablosu Kayit_ID IYS_ID Kategori_ID Kategori_Adi 1 2 1 Administration 2 2 2 Commerce and advertising 3 2 3 Community 4 2 4 Content 5 2 5 Content access control 6 2 6 Content Construction Kit 7 2 7 Content display 8 2 8 Database drivers 9 2 9 Developer 10 2 10 Drush 11 2 11 e-commerce 12 2 12 Evaluation and rating 13 2 13 Event 14 2 14 Examples 15 2 15 Features integration 16 2 16 Features package 17 2 17 Fields 18 2 18 File management 19 2 19 Filters and editors 20 2 20 Games and Amusements 21 2 21 Import and export 22 2 22 Javascript Utilities 23 2 23 Location 24 2 24 Mail 25 2 25 Media 26 2 26 Mobile 27 2 27 Multilingual 28 2 28 Novelty 29 2 29 Organic groups 30 2 30 Paging 31 2 31 Path management 32 2 32 Performance and Scalability 33 2 33 Project management 34 2 34 RDF 35 2 35 Rules 36 2 36 Search
37 2 37 Security 38 2 38 Site navigation 39 2 39 Spam prevention 40 2 40 Statistics 41 2 41 Syndication 42 2 42 Taxonomy 43 2 43 Theme enhancements 44 2 44 Theme related 45 2 45 Third-party integration 46 2 46 User Access & Authentication 47 2 47 User access and authentication 48 2 48 User management 49 2 49 Utility 50 2 50 Views Tablo 2 İYS'lerinde bulunan modüllerin kategorilerinin tutulduğu tablodur.projede sadece e- ticaret kategorisinde bulunan modüller ele alınarak işlemler gerçekleştirilecektir. 5. Geliştirilen Uygulama Projenin amacı İYS'leri kullanıcılarına modül aramada yardım sağlayacak bir uygulamayı gerçekleştirmektir, Uygulamanın amacına yönelik, Mısır mitolojisinde yazı ve bilgi tanrısı olan "THOHT" ismi seçilmiştir. Standart arama uygulamasının geliştirilmesi aşamasında MySQL veritabanı sistemleri, PHP web programlama dili ve Apache Sunucu sistemleri kullanılmıştır. Şekil 6 da yapılan standart bir arama işlemi görülmektedir. Şekil 6. Normal Uygulama Erkan Görüntüsü İlişkisel veritabanı özellikleri kullanılarak örnek sorgulama cümlesi aşağıdaki gibidir.
Uygulamanın standart arama işlemi Şekil 6'da görülmektedir. Kullanıcıdan alınan anahtar kelime veri tabanı üzerinde veritabanı ilişkileri kullanılarak ilişkili aynı arayüz üzerinde kullanıcılara geri dönüş yapılmaktadır. Arama Ekranı Üzerinde XML Oluştur butonuna tıklayarak veri tabanını XML olarak oluşturabiliriz. EK1 xml.xml dosyasında oluşturulan XML dosyası bulunmaktadır. 4.2. Semantic Arama Uygulaması 4.2.1. Ontoloji Tasarımı Ontoloji tasarımı için Protege programı kullanılmıştır. Protege programı ontoloji geliştirmek için en yaygın olarak kullanılan programdır. Şekil 7. Ontoloji oluşturulması için kullanılan Protege ekran görüntüsü Aşağıdaki Örnekte oluşturulan ontolojinin bir kısmı sunulmuştur. Ontoloji tamamı ise Ek2.owl ekte sunulmuştur. Şekil 8'de oluşturulan ontolojinin sınıf yapıları görülmektedir. İçerik yönetim sistemleri özelliklerine göre oluşturulan İYS üst sınıfı ve Kategoriler, Dokümantasyon, Çeviriler, Diller, Kurulum, Temanlar, Eklentiler olmak üzere 8 sınıftan oluşmaktadır. Oluşturulan sınıflar arasında tek yönlü ve çift yönlü olmak üzere çeşitli ilişkiler bulanmaktadır
Şekil 8. Ontoloji Sınıfları
Şekil 9. Temel Yapısı
Oluşturulan ontolojide 8 sınıf bulunmaktadır. Bu sınıflardan IYS sınıfının 9 bireyi (individual), Diller sınıfının 30 bireyi, Kategoriler sınıfının 50 bireyi, Eklentiler sınıfının 40 bireyi bulunmaktadır. dolayısıyla oluşturulan ontoloji kalabalık bir yapıya sahiptir. 4.2.1. Semantic Arama İşlemi Semantic arama işlemi oluşturulan ontoloji temel alınarak Protege programı üzerinde bulunan Oueries eklentisi kullanılmıştır. Şekil 10.a Protege semantic arama Şekil 10.a'da görüldüğü gibi Eklentiler sınıfı üzerinde açıklama alanına göre bir sorgulama işlemi yapılmıştır. Yapılan sorgulama işlemine göre açıklama ananında "ubercart" anahtar kelimesi geçen 27 sonuca ulaşılmıştır.
Şekil 10 Protege semantic arama (b) Şekil 10.b'de görüldüğü gibi yine eklentiler sınıfı üzerinde açıklama alanına göre çapraz bir sorgulama işlemi yapılmıştır. Yapılan sorgulama işlemine göre açıklama ananında "ubercart" ve "paypal" anahtar kelimesi geçen 1 sonuca ulaşılmıştır. 7.Sonuçlar Bu çalışmayla ontoloji tabanlı, akıllı bir arama işlemi gerçekleştirilmek amaçlanmıştır. Arama işlemi açık kaynak kodlu içerik yönetim sistemlerinin eklentileri üzerine gerçekleştirilecektir. Uygulama için bir ilişkisel veri tabanı ve "THOTH" isimli bir arayüz geliştirilmiştir. Standart ve semantik arama olmak üzere iki farklı sorgulama işlemi gerçekleştirilmiştir. Standart sorgulama işlemi ilişkisel veri tabanı özellikleri kullanılarak geliştirilmiştir. semantik sorgulama ise protege programında oluşturulan ontoloji kullanılarak yine protege programında gerçekleştirilmiştir. Kaynaklar [1] http://drupal.org/project/modules [2] http://extensions.joomla.org/ [3] http://wordpress.org/extend/plugins/ [4] Ahmad Kayed, Eyas El-Qawasmeh, Zakariya Qawaqneh, Ranking web sites using domain ontology concepts
[5] Roger H.L.Chiang, Cecil Eng Huang Chua, Veda C. Storey, A smart web query method for semantic retrieval of web data [6] Raquel Trillo, LauraPo, SergioIlarri, SoniaBergamaschi, EduardoMena, Using semantic techniques to access web data