ANLAMSAL WEB TABANLI BİR DOĞAL DİL SORU-CEVAP SİSTEMİ. Abdullah Talha KABAKUŞ YÜKSEK LİSANS TEZİ BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI

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

Download "ANLAMSAL WEB TABANLI BİR DOĞAL DİL SORU-CEVAP SİSTEMİ. Abdullah Talha KABAKUŞ YÜKSEK LİSANS TEZİ BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI"

Transkript

1

2 ANLAMSAL WEB TABANLI BİR DOĞAL DİL SORU-CEVAP SİSTEMİ Abdullah Talha KABAKUŞ YÜKSEK LİSANS TEZİ BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI GAZİ ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ HAZİRAN 2014

3 A. Talha KABAKUŞ tarafından hazırlanan ANLAMSAL WEB TABANLI BİR DOĞAL DİL SORU-CEVAP SİSTEMİ adlı bu tez çalışması aşağıdaki jüri tarafından OY BİRLİĞİ ile Gazi Üniversitesi Bilgisayar Mühendisliği (Teknoloji Fakültesi) Anabilim Dalında YÜKSEK LİSANS TEZİ olarak kabul edilmiştir. Danışman: Doç. Dr. Aydın ÇETİN Bilgisayar Mühendisliği (Teknoloji Fakültesi), Gazi Üniversitesi Bu tezin, kapsam ve kalite olarak Yüksek Lisans Tezi olduğunu onaylıyorum Başkan: Doç. Dr. Ercan Nurcan YILMAZ Elektrik-Elektronik Mühendisliği (Teknoloji Fakültesi), Gazi Üniversitesi Bu tezin, kapsam ve kalite olarak Yüksek Lisans Tezi olduğunu onaylıyorum Üye: Yrd. Doç. Dr. Cemal KOÇAK Bilgisayar Mühendisliği (Teknoloji Fakültesi), Gazi Üniversitesi Bu tezin, kapsam ve kalite olarak Yüksek Lisans Tezi olduğunu onaylıyorum..... Tez Savunma Tarihi: 13/06/2014 Jüri tarafından kabul edilen bu tezin Yüksek Lisans tezi olması için gerekli şartları yerine getirdiğini onaylıyorum.... Prof. Dr. Şeref SAĞIROĞLU Fen Bilimleri Enstitüsü Müdürü

4 ETİK BEYAN Gazi Üniversitesi Fen Bilimleri Enstitüsü Tez Yazım Kurallarına uygun olarak hazırladığım bu tez çalışmasında; Tez içinde sunduğum verileri, bilgileri ve dokümanları akademik ve etik kurallar çerçevesinde elde ettiğimi, Tüm bilgi, belge, değerlendirme ve sonuçları bilimsel etik ve ahlak kurallarına uygun olarak sunduğumu, Tez çalışmasında yararlandığım eserlerin tümüne uygun atıfta bulunarak kaynak gösterdiğimi, Kullanılan verilerde herhangi bir değişiklik yapmadığımı, Bu tezde sunduğum çalışmanın özgün olduğunu, bildirir, aksi bir durumda aleyhime doğabilecek tüm hak kayıplarını kabullendiğimi beyan ederim. Abdullah Talha KABAKUŞ 13/06/2014

5 iv ANLAMSAL WEB TABANLI BİR DOĞAL DİL SORU-CEVAP SİSTEMİ (Yüksek Lisans Tezi) Abdullah Talha KABAKUŞ GAZİ ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ Haziran 2014 ÖZET Linked Data, web üzerinde tanımlı kendi alanlarında uzmanlaşmış bilgi bankalarını birbirleriyle ilişkilendirerek aranan herhangi bir konu hakkında detaylı bilgi elde edilmesini amaçlamaktadır. Bu bağlamda bilgi bankaları, kendisi üzerinde arama yapılabilmesi için son nokta servis arayüzleri sunmaktadır. Ancak bu servisler üzerinden sorgulamaların sadece SPARQL kullanılarak yapılabilmesi nedeniyle oldukça önemli sayıdaki web kullanıcıları bu servislerden yararlanamamaktadır. Tez çalışmasında bu kısıtları gidermek amacıyla doğal dil sorularını algılayarak Linked Data üzerinden cevaplayan semantik web sistemi geliştirilmiştir. Sistemin başarım ölçütleri olarak doğru cevabın bulunması ve doğru cevabın elde edilme süresi esas alınmıştır. Sistemde bilgi bankalarının son nokta servis arayüzlerinde sunulmayan sayfalama, dinamik sonuç sayısı tanımlama, sesli arama ve cevap alma, geliştirici tanımlı soru-cevap yedeklemesi, sosyal medya tümleştirmesi, anlık imla denetimi özellikleri sunulmuştur. Cevap hedef kümesine göre sonuç sayesinde dinamik olarak son kullanıcı tarafından ayarlanabilmektedir. Farklı türdeki sorular üzerinde yapılan testlerde dinamik sayfalama sayesinde cevap süresinde 2 ile 2,5 kat arasında iyileştirme elde edilmiştir. Sorulan sorulara cevap alınamama olasılığına karşın benzetim tabanlı tavsiye modulü sisteme tümleştirilmiştir. Sistemin varsayılan soru-cevap yedekleme süresi bir ay olarak ayarlanmıştır. Varsayılan soru-cevap yedekleme süresi üzerinden yapılan testlerde cevap kümesinin boyutuna bağlı olarak sistemin cevap alma süresinde 2 ile 12 kat arasında iyileştirme elde edilmiştir. Bilim Kodu : Anahtar Kelimeler : Anlamsal Arama, Dil İşleme, Semantik Web Sayfa Adedi : 84 Tez Yöneticisi : Doç. Dr. Aydın ÇETİN

6 v A SEMANTIC WEB BASED NATURAL LANGUAGE QUESTION ANSWERING SYSTEM (M. Sc. Thesis) Abdullah Talha KABAKUS GAZI UNIVERSITY GRADUATE SCHOOL OF NATURAL AND APPLIED SCIENCES June 2014 ABSTRACT Linked Data project is aimed to give more details on any subject through the big knowledge bases defined on the web. In this context, knowledge bases offer endpoint service user interfaces to query their data. Because of the SPARQL query language limitation of these knowledge bases, significant number of web users are unable to benefit from these services. In this thesis, a semantic web based natural language question answering system over Linked Data was developed to eliminate this limitation. Performance criteria were defined as system s ability to retrieve right answers and its related response time. Features which are not provided by knowledge bases endpoint services such as paging, dynamic paging, voice search and answer vocalization, questionanswer caching, social media integration and live spell checking were added to the developed system. The number od retrieved answers per page can be dynamically set by end users through answer-target set. Tests on different type of natural language questions show that developed system s question answering performance is improved by dynamic paging between 2-2,5 times. With considering it is not always possible to get answers for all questions, a recommendation module based on similarity is integrated into system. System s default question and answer caching duration was set as one month. Tests under default caching duration show that system s question answering performance was accelerated between 2 and 12 times according to size of answer sets. Science Code : Key Words : Semantic Search, Language Processing, Semantic Web Page Number : 84 Supervisor : Assoc. Prof. Dr. Aydin CETIN

7 vi TEŞEKKÜR Çalışmalarım boyunca değerli yardım ve katkılarıyla beni yönlendiren değerli hocam Doç. Dr. Aydın ÇETİN e, tüm hayatım boyunca destek ve sevgileriyle hep yanımda olan anneme, babama, abime ve eşime teşekkürü bir borç bilirim.

8 vii İÇİNDEKİLER Sayfa ÖZET... ABSTRACT... TEŞEKKÜR... İÇİNDEKİLER... ÇİZELGELERİN LİSTESİ... ŞEKİLLERİN LİSTESİ... iv v vi vii ix x SİMGELER VE KISALTMALAR... xiii 1. GİRİŞ YÖNTEM VE ARAÇLAR Semantik Web URI ve unicode XML ve XML schema RDF RDF schema OWL Ontoloji Kurallar, mantıksal çerçeve, ispat ve güven SPARQL Çıkarsınım (Inferencing) Araçlar Protege Jena API Twinkle... 25

9 viii Sayfa OntoWiki OWLmt Sesame SİSTEM MİMARİSİ Yazılım Mimarisi Sistem Geliştirme Süreçleri Doğal dil sorularının doğal dil işleme yöntemleriyle anlamlandırılması Anlamlandırılan doğal dil sorularına uygun olan SPARQL sorgularının üretilmesi DBpedia servisi üzerinden SPARQL sorgularının işletilmesi ve sonuçların web arayüzünde gösterilmesi BULGULAR SONUÇ VE DEĞERLENDİRME KAYNAKLAR EKLER EK-1. Veritabanında tutulan düzensiz fiiller EK-2. Linked Data üzerinde tanımlı ve erişime açık olan veri setleri EK-3. En çok kullanılan İngilizce soru desenleri ve sistem tarafından cevaplanma durumu ÖZGEÇMİŞ... 84

10 ix ÇİZELGELERİN LİSTESİ Çizelge Sayfa Çizelge 3.1. Who is Michael Jordan? doğal dil sorusunun Apache OpenNLP kullanılarak çözümlenmiş hali Çizelge 3.2. Apache OpenNLP kütüphanesi aracılığıyla biçimbirimsel çözümleme etiketleri Çizelge 3.3. Geliştirilen sistem tarafından öntanımlı soru desenleri ve aranan cevap türleri Çizelge 3.4. Eğitim veri dosyası ve karşılığında aranan nesne türü Çizelge 3.5. Produce fiiliyle eşleşen aday özellikler ve Levenshtein Uzaklık değerleri Çizelge 3.6. Dinamik sayfalama kullanılarak elde edilen arama süreleri Çizelge 3.7. Ses algılama güven değerinin hassaslık ve cevap oranına göre değişimi Çizelge 3.8. Seçilen örnek sorulara ait cevapların depolanması sonucunda sistem üzerinde elde edilen arama performans kazançları... 55

11 x ŞEKİLLERİN LİSTESİ Şekil Sayfa Şekil 1.1. DBpedia, Linked Open Data bulut diyagramının en merkezi bilgi tabanlarından birisidir, Eylül Şekil 2.1. Semantik Web Katmanlı Kek Diyagramı... 6 Şekil 2.2. Örnek XML dökümanı... 8 Şekil 2.3. Şekil 2.2.'deki örnek XML dökümanına ait XML Schema dökümanı... 9 Şekil 2.4. RDF veri modelinin çizelge gösterimi... 9 Şekil 2.5. Örnek bir RDF çizelgesi Şekil 2.6. Şekil 2.2.'deki RDF çizelgesinin RDF/XML olarak tanımı Şekil 2.7. Örnek bir RDFa kod parçası Şekil 2.8. AutoMeta Kullanıcı Grafik Arayüzü Şekil 2.9. DBpedia üzerinden isme göre artan sırada Türk müzisyenleri listeleyen SPARQL sorgu örneği Şekil Çıkarsınım tabanlı semantik web uygulama mimarisi Şekil Protege OntoGraf arayüzü ile örnek bir ontoloji çizge görüntüsü Şekil Protege kullanıcı arayüzü (user interface) ekran görüntüsü Şekil WebProtege kullanıcı arayüzü ekran görüntüsü Şekil Jena API ile bir RDF modelin okunup, model içindeki sınıfları ve özellikleri listeleyen metotları gösteren kod örneği Şekil Twinkle Kullanıcı Arayüzü Ekran Görüntüsü Şekil OntoWiki Kullanıcı Arayüzü Ekran Görüntüsü Şekil OWLmt kullanıcı arayüzü Şekil Sesame Mimarisi Şekil 3.1. Nesne tabanlı yaklaşımın katmanlar arasındaki karşılıkları Şekil 3.2. Ext JS 4.x ile sunulan istemci tarafta MVC mimarisi... 32

12 xi Şekil Sayfa Şekil 3.3. Spring MVC uygulama çatısı katmanları ve katmanlar arası iletişimi gösteren diyagram Şekil 3.4. GZIP sıkıştırmanın istemci ile sunucu arasındaki iletişim yöntemi Şekil 3.5. Sistem soru cevaplama mekanizması akış diyagramı Şekil 3.6. DBpedia Bileşenlerinin ön izlemesi Şekil 3.7. Sistemin arama mekanizmasını gösteren diyagram Şekil 3.8. Sorgu sonuçlarını detayları ve resim önizlemesiyle beraber görüntülemeyi sağlayan web arayüzü Şekil 3.9. DBpedia üzerinden enlem ve boylam bilgisi içeren lokasyonları harita üzerinde gösteren pencerenin ekran çıktısı Şekil Enlem ve boylam bilgisi kullanılarak harita üzerinde lokasyon gösterimini sağlayan kod kesiti Şekil DBpedia aracılığıyla eşleştirilen kaynağa ait bilgileri içeren Freebase sayfası Şekil Arama önerileri penceresi Şekil Soru önerisi sorgusu gerçekleştiren kod bloğundan bir kesit Şekil Geçmiş aramaların görüntülendiği pencere Şekil Kullanıcıya ait geçmiş aramaların listelenmesini sağlayan metottan bir kesit Şekil Kullanıcı sisteme giriş penceresi ekran görüntüsü Şekil Kullanıcı kayıt penceresi ekran görüntüsü Şekil Kullanıcı şifre hatırlatma penceresi ekran görüntüsü Şekil Sesli soru-cevap mekanizması Şekil Ses algılama ve kontrol fonksiyonundan bir kesit Şekil Yazım hatası kontrol penceresi Şekil Yazım hatası denetimini gerçekleştiren fonksiyondan bir kesit Şekil Depolanan çeşitli soru sayısına göre sistemin arama performansları... 56

13 xii Şekil Sayfa Şekil Sosyal medya tümleştirmesi için sunulan araç çubuğu Şekil 4.1. Türkiye deki yerleşim yerleri sorusuna geliştirilen sistemin bulduğu cevaplar Şekil 4.2. Türkiye deki yerleşim yerleri sorusuna Google tarafından bulunan cevaplar... 65

14 xiii SİMGELER VE KISALTMALAR Bu çalışmada kullanılmış bazı kısaltmalar açıklamaları ile birlikte aşağıda sunulmuştur. Kısaltmalar Açıklamalar API ARQ AJAX DTD EE FOAF GZIP HTML HTTP IETF JRE JSON MVC NoSQL OWL RDF RDFa RFC SPARQL SQL URI URL URN XSD XML WWW WYSIWYG W3C Application Programming Interface A SPARQL Processor for Jena Asynchrous Javascript And XML Document Type Definition Enterprise Edition Friend Of A Friend GNU Zip HyperText Markup Language HyperText Transfer Protocol Internet Engineering Task Force Java Runtime Environment Javascript Object Notation Model-View-Controller Not Only SQL Web Ontology Language Resource Description Framework RDF in attributes Requests for Comments Simple Protocol and RDF Query Language Structured Query Language Uniform Resource Identifier Uniform Resource Locator Uniform Resource Name XML Schema Definition extensible Markup Language World Wide Web What You See Is What You Get World Wide Web Consortium

15 1 1. GİRİŞ Web, ortaya çıktığı ilk günden itibaren gerek kullanıcı sayısı gerekse sunduğu servislerle kimse tarafından beklenmeyen büyük bir patlama gerçekleştirmiştir. Web'in günümüze kadar olan süre içindeki gelişimi incelenirse süreci etkileyen en önemli faktörün kullanıcı gereksinimleri olduğu ortaya çıkacaktır. Kullanıcıların talepleri, gelişen bilgisayar teknolojileri ile web günümüzde hayatın her alanında çok önemli bir yer arz etmektedir. Web için kesin çizgilerle belirlenmiş, resmi olan bir ayrım bulunmamakla beraber sunduğu teknolojiler ve yeniliklere göre genel kabul görmüş bir sınıflandırma mevcutttur. Web 1.0, web üzerinde sabit içerikli bilgi portallerinin sunulması, dökümanların paylaşımı, mail servisi için kullanılan web'in ilk versiyonudur. Web 1.0, tek yönlü bir iletişim sunduğundan kullanıcı etkileşimi, interaktif bir yapı barındırmamaktadır. Bu süreçte web sayfaları sadece HTML (HyperText Markup Language) teknolojisinden faydalanılarak geliştirilmiştir. Web 2.0, kullanıcılarla web arasındaki tek yönlü iletişim yerine web'in içeriğine ortak hatta kaynak olmasını sağlayan ve bu sebepten ötürü katılımcı web veya sosyal web olarak da adlandırılan Web 1.0'dan sonraki web versiyonudur. Günümüzde en çok kullanılan web sitelerinden Facebook, Twitter, YouTube, Wikipedia gibi sitelerin doğması ve yaygınlaşması Web 2.0 teknolojileri ile kullanıcı katılımının ön plana çıkarılmasıyla bu dönemde gerçekleşmiştir. Web 2.0'ın sunduğu Javascript, ActionScript, Flash, AJAX (Asynchronous JavaScript And XML) teknolojileri sayesinde dinamik ve kullanıcı etkileşimi ön planda olan web siteleri geliştirilmiştir. Ayrıca bu dönem, öncesinde web'e erişimde kullanılan masaüstü ve dizüstü bilgisayarların yanında tablet bilgisayarlar, akıllı telefonlar gibi çeşitli cihazların da kullanılmaya başlandığı dönemdir. Web 3.0 ya da diğer adıyla semantik web ise Web 2.0 ile gelinen bu noktayı bir adım daha ileri götürerek web'in sadece insanlar tarafından değil, makinalar tarafından da anlaşılabilir olmasını amaçlamaktadır. World Wide Web (WWW)'in kurucusu Tim Berners-Lee semantik web'i, varolan webden bağımsız bir web değil, varolan web'in doğru tanımlanmış verilerin insanlar ve bilgisayarlar tarafından anlamlandırılmasına olanak sağlayan genişletilmiş hali olarak tanımlamaktadır [1]. PCMag ise semantik web'i makinaların da

16 2 insanlar gibi web sayfalarını okuyabildiği, arama motorlarının ve yazılım ajanlarının NET'i daha iyi irdeleyebildiği ve arananları daha kolay bulabildiği bir ortam olarak tanımlamıştır [2]. Tanımlamaların da ifade ettiği üzere semantik web, Web 2.0'ın barındırdığı tüm özelliklerin üstüne web üzerinde anlamlı ve ilişkilendirilmiş veriler işlenmesi üzerine yoğunlaşmaktadır. Semantik Web, RDF (Resource Description Framework) üzerine inşa edilmiştir. Semantik web kaynak (veri) tanımlamaları üçlüler (triple) halinde yapılmaktadır. Tanımlanan verileri sorgulamak için standart olarak W3C (World Wide Web Consortium) tarafından SPARQL (Simple Protocol and RDF Query Language) adı verilen SQL (Structured Query Language) benzeri bir dil kabul edilmiştir. Semantik web ile birlikte çok sayıda kurum ve kuruluş kendi ontolojilerini oluşturarak semantik veritabanlarını oluşturmaya başlamıştır. Kendi alanlarında özelleşerek detaylanan bu semantik veritabanlarının hem web üzerinden hem de diğer semantik veritabanları üzerinden erişilebilir olması web üzerinde büyük bir veritabanı kurulması için şarttır. Linked Data projesi ise başta DBpedia, Freebase ve YAGO olmak üzere birçok büyük bilgi tabanlarının birleştirilmesini ve birbirleriyle ilişkilendirilmesini sağlamak üzere kurulmuştur. Linked Data'da tanımlanan veriler yapısal ve makinalar tarafından işletilebilir olduğundan uygulamalar, bu verileri kullanarak faydalı bilgileri kolayca bulabilmektedir [3]. DBpedia, Wikipedia üzerinde sunulan yapısal verilerin web üzerinden sorgulanabilmesi için semantik veritabanlarında tutulması amacıyla Free University of Berlin, University of Leipzig ve OpenLink Software işbirliği ile 2007 yılında başlatılan bir projedir [4]. DBpedia, Wikipedia üzerindeki bilgi kutularında bulunan yapısal verilerin semantik veritabanlarında depolanmasıyla oluşturulmuş Linked Open Data bünyesinde bulunan en önemli merkezi bilgi tabanlarındandır [5]. DBpedia, Wikipedia üzerinde tanımlı olan veriler üzerinde karmaşık sorgular yapılabilmesini ve bu veriler ile web üzerinde tanımlı diğer veri setleri arasında bağlantı kurulmasını sağlamaktadır [6]. DBpedia üzerinde 2.35 milyonu tanımlı ontoloji içerisinde sınıflandırılmış olmak üzere toplamda 3.77 milyon üçlü tanımlanmıştır. Bu üçlüler içerisinde insan, yerleşim yeri, sanat ürünü ve organizasyon tanımlıdır [7]. DBpedia, sunduğu son nokta servis arayüzü ile tüm bu verilerin web üzerinden sorgulanabilmesini sağlamaktadır. Ancak

17 3 sorgulamaların sadece SPARQL adı verilen semantik web sorgu dili kullanılarak yapılabilmesinden dolayı konunun uzmanları dışındaki çoğunluğu oluşturan web kullanıcıları bu servisten faydalanamamaktadır. Web kullanıcılarının ortak dili, konuşma dilidir. DBpedia servisinin koyduğu SPARQL sorgu kısıtı giderilerek semantik web teknolojilerinin faydalarından tüm web kullanıcılarının yararlanabilmesini sağlamak için doğal dil sorgularını işleyip, uygun SPARQL sorgularına çevirdikten sonra bu servis aracılığıyla sorgu yapan semantik web sistemi geliştirilmiştir. Gerek evrensel bir çalışma hedeflenmesi gerekse semantik web kütüphanelerinin varolan destekleri sebebiyle hedef dil olarak İngilizce seçilmiştir. Bu zamana kadar yapılan çalışmalar incelendiğinde sesli soru-cevap seçeneğinin ve sosyal medya tümleştirmesi sunulmaması, sayfalama desteğinin verilmemesi, soru bazlı olarak listelenecek cevap sayısının belirlenememesi, anlık imla kontrol ve yönlendirmesinin yapılmaması, cevaplanan sorulara yönelik depolama mekanizmasının bulunmaması, başarısız arama durumlarında kullanıcıların yönlendirilmemesi, semantik web kaynaklarının doğal dile çevrilmesi esnasında sistemlerin zaman kaybına uğraması, sistemlerin kullanılmaya başlanmadan önce eğitilmeye ihtiyaç duyması, sınırlı çeşitte ontoloji tanımlama dili kullanımı eksiklikleri tespit edilmiştir. Ayrıca bazı soru-cevap sistemlerinin sadece ön tanımlı desenlerden faydalanması sonucunda sonsuz sayıda soru kümesini karşısında yetersiz kaldığı görülmüştür [4, 39-47]. Geliştirilen sistemin hedeflenen performans, yaklaşım ve özellikleri aşağıda listelenmiştir: Sesli soru-cevap seçeneğinin sunulması Sosyal medya tümleştirmesi sunulması Cevaplanan sorulara yönelik depolama mekanizması Cevaplara yönelik dinamik sayfalama mekanizması Doğal dil sorularının anlık imla kontrolü ve düzeltilmesi Kullanıcılara yönelik soru tavsiye (yönlendirme) sistemi Hem ön tanımlı soru desenleri hem de anlık olarak DBpedia ontolojisi üzerinden SPARQL sorgu üretimi ile daha çok sayıda sorunun cevaplanması Freebase tümleştirmesi sağlanarak bulunan cevaplarla ilgili farklı kaynaktan bilgiler sunulması Lokasyonlara yönelik olarak harita desteğinin sunulması Tüm semantik web ontoloji tanımlama dil ve çerçevelerinden faydalanılması

18 4 Şekil 1.1'de sunulan Linked Data bulut diyagramından da görülebileceği üzere DBpedia, Linked Data bulutunun merkezinde bulunmaktadır ve ilişkilendirilmiş bilgi bankaları üzerinden kendisinde tanımlı kaynaklarla ilgili daha detaylı bilgiler sunmaktadır. Tez çalışmasında bilgi kaynağı olarak DBpedia'nın temel alınması ve yine Linked Data bulutundaki en merkezi bilgi bankalarından olan Freebase'den de faydalanılması hedeflenmiştir. Tez çalışması ile ilgili yöntem ve araçlar 2. bölümde sunulmuştur. Geliştirilen sistem ve kullanılan teknolojiler bölüm 3 de verilmiştir. Çalışma sonucunda elde edilen bulgular ve tartışmalar bölüm 4 de anlatılmıştır. Çalışmadan elde edilen sonuçlar ve değerlendirmeler 5. bölümde yer almaktadır. Şekil 1.1. DBpedia, Linked Open Data bulut diyagramının en merkezi bilgi tabanlarından birisidir, Eylül 2011 [8]

19 5 2. YÖNTEM VE ARAÇLAR Bu bölümde Semantik Web ile ilgili temel kavramlar ve yazılım araçları sunulmaktadır. Sisteme ait kaynak tanımlama çerçeveleri, ontoloji tanımlama dilleri gibi kavramsal ve sistemin geliştirilmesinde kullanılan çeşitli yazılımsal araçlar bu bölümde tanıtılmaktadır Semantik Web Semantik web kavramı, ilk olarak WWW'nin kurucusu Tim Berners-Lee ve arkadaşları tarafından 2001'de ortaya atılmıştır [1]. Semantik web günümüzdeki web'den ayrı bir web değil, onun geliştirilmiş versiyonudur [9]. Web 2.0'a ek olarak semantik weble birlikte artık web sitelerinin içerikleri sadece insanlar değil, makinalar tarafından da anlaşılabilecek ve yorumlanabilecektir. Semantik web ile web üzerinde dökümanlar ağı (web of documents) oluşturulması amaçlanmıştır. Verilerin web üzerinde gömülü olarak tanımlanması sonucunda işlenmekte olan verilerle ilgili diğer bağlantılar üst veriler (metadata) aracılığıyla elde edilebilecek ve bu bağlantılar takip edilerek özelleşmiş bilgi tabanlarından daha detaylı bilgiler alınabilecektir. Semantik web'le akıllı yazılımlar, kullanıcılar yerine aramalar yapacak, web üzerinde bu aramalarla ilgili anlamlı bilgiler elde edecek, anlamlı bir şekilde bu bilgileri bir araya getirecek ve bir sonraki adım için kararlar alabilecektir [10]. Şekil 2.1'de semantik web katmanlı kek yapısı gösterilmiştir. Bu yapının temelinde URI (Uniform Resource Identifier) ve Unicode katmanları yer almaktadır. URI, web üzerinde tanımlanmış bir kaynağın (resource) tekil adresini belirtir. Unicode ise kaynak tanımlaması yapılırken uluslararası bir karakter seti kullanılmasını belirtmektedir. URI ve Unicode katmanlarının üstünde XML (extensible Markup Language) ve Namespace katmanları yer almaktadır. XML, bilgi tanımlamada kullanılan genel amaçlı işaret dilidir. Namespace'ler (isim uzayı) ise çok sayıda ontoloji kullanımında kaynak tanımlaması yapılırken oluşabilecek karışıklığı gidermek ve kaynakların hangi ontolojiye ait olduğunu belirtmek için kullanılır. Bir üst katmanda yer alan RDF (Resource Description Framework) semantik web

20 6 kaynaklarının web üzerinde tanımlanmasını sağlayan dildir. RDF ile semantik web kaynakları subject, predicate, object şeklinde üçlüler halinde tanımlanır. RDF katmanının hemen üstünde RDF Schema katmanı yer alır. RDF Schema, RDF ile tanımlanan kaynakların özelliklerini ve niteliklerini belirler. Ontoloji katmanı, RDF Schema katmanının genişletilmiş, daha kapsamlı halidir. Bu sayede RDF Schema ile tanımlanamayacak ilişkiler OWL (Web Ontology Language) ile tanımlanabilmektedir. SPARQL (SPARQL Protocol and RDF Query Language) veritabanlarını sorgulamayı, veritabanlarında RDF formatında depolanmış verinin çekilmesini ve işletilmesini sağlayan RDF sorgu dilidir [11, 12]. Daha üst katmanlarda bulunan Rules, Logic, Proof ve Trust katmanları tam fonksiyonel semantik web tasarımında rol almaktadır. İlerleyen bölümlerde her bir katman daha detaylı bir şekilde ele alınacaktır. Şekil 2.1. Semantik Web Katmanlı Kek Diyagramı [13]

21 URI ve unicode URI, Web üzerinde tanımlanmış kaynakları tespit etmek ve erişilebilir kılmak için var oldukları ontoloji ismini ön ek alarak elde edilen tekil (unique) erişim adresine karşılık gelmektedir. URI bir tanımlayıcıdır, web üzerinde bir lokasyonu belirtmez. URI, URL (Uniform Resource Locator) veya URN (Uniform Resource Name) olabilir. URL, gibi HTTP (Hyper Text Transfer Protocol) ile erişilebilir tanımlayıcıdır. URN ise urn:isbn: gibi tanımlayıcı sistemlerle beraber kullanılan isim tanımlayıcısıdır. Unicode, uluslararası karakter kodlama standartıdır ve dünya genelinde hangi dilde olursa olsun veri işleme, transfer etme, görüntüleme işlemlerinde kullanılmak üzere tasarlanmıştır. Dünyadaki bütün modern dillerdeki karakter setlerini ve sembollerini içerir. Unicode kodlama standartı içindeki bütün karakterlerin tekil bir kodlama karşılığı vardır. Böylelikle web üzerinde tanımlanan her döküman karmaşıklığa yol açmayacak bir şekilde kodlanmış olmaktadır XML ve XML schema XML, Genişletilebilir İşaretleme Dili, belgelerin içindeki veri yapılarını, programlama dillerinden ve bilgi işleme ortamlarından bağımsız olarak tanımlanmasını sağlayan basit bir veri işaretleme dilidir. HTML'de olduğu gibi XML'de de veriler ve veri yapıları etiketlerle (tag) belirlenir. Yalnız XML'de HTML'de olduğu gibi ön tanımlı (pre-defined) etiketler bulunmamaktadır. XML'in esnekliğini sağlayan en önemli etken bu serbest etiket tanımlama yapısıdır. İstenilen sayıda ve seviyede etiket tanımlamak mümkündür. HTML'de olduğu gibi açılan her etiketin (<etiket_adi>) mutlaka kapanış etiketi (</etiket_adi>) de olmak zorundadır. Etiketleri daha detaylı tanımlamak için nitelikler (attributes) tanımlamak mümkündür. Nitelikler <person id= 199 > örneğindeki gibi isim-değer (name-value) çiftlerinden oluşurlar. XML dökümanları içerisinde yorumlar (comments) <!-- ile başlar ve --> ile biter. Bu ifadeler arasında bulunan satırlar XML ayrıştırıcıları (parser) tarafından dikkate alınmaz.

22 8 <?xml version="1.0"?> <person id="199"> <personname>talha</personname> <personsurname>kabakus</personsurname> <sex>male</sex> <job>computer Engineer</job> <!-- This is a comment --> <courses> <course> <coursename>introduction to Programming</courseName> <courseid>12</courseid> <course> </courses> </person> Şekil 2.2. Örnek XML dökümanı XML Schema, XML dökümanlarında kullanılacak olan isimleri, dökümanların yapısını, elemanların niteliklerinin tanımlanması ve bu kıstaslara göre XML dökümanlarının doğrulamasını (validation) sağlar. Bir XML dökümanının geçerli (valid) olarak kabul edilebilmesi için XML Schema'da belirlenmiş olan veri yapısına uyması gerekmektedir. Diğer bir doğrulama ise XML dökümanının doğru düzenlenmiş (well-formed) olmasıdır. Bu doğrulamada XML dökümanı tekil köke sahip mi, açılan her etiket kapatılmış mı gibi kriterler söz dizimi (syntax) olarak incelenir. XML Schema Mayıs 2001 tarihinde W3C (World Wide Web Consortium) tarafından tavsiye edilen şema olarak yayınlanmıştır. XML Schema, diğer XML şema dilleriyle karıştırılmaması için XSD (XML Schema Definition) olarak da anılmaktadır. En çok bilinen XML şema dilleri DTD (Document Type Definitions) ve XML Schema'dır. XML Schema element type, attribute type ve complex type olmak üzere üç çeşit bileşenden oluşmaktadır. Element Type, XML dökümanında tanımlı olan kök veri yapısını tanımlarken, complex type bu kök veri yapısı içinde bulunan alt veri yapılarına karşılık gelmektedir. Attribute type ise en alt seviyedeki veri yapılarında bulunan bileşenleri tanımlamayı sağlar.

23 9 <xsd:schema xmlns:xsd= > <xsd:element name= person type= persontype /> <xsd:complextype name= persontype > <xsd:sequence> <xsd:element name= personname type= xsd:string /> <xsd:element name= personsurname type= xsd:string /> <xsd:element name= sex type= xsd:string /> <xsd:element name= job type= xsd:string /> </xsd:sequence> </xsd:complextype> <xsd:complextype name= Courses > <xsd:sequence> <xsd:element name= course minoccurs= 0 maxoccurs= unbounded /> </xsd:sequence> <xsd:complextype> <xsd:sequence> <xsd:element name= coursename type= xsd:string > <xsd:element name= courseid type= xsd:int > </xsd:sequence> </xsd:complextype> </xsd:complextype> Şekil 2.3. Şekil 2.2'deki örnek XML dökümanına ait XML Schema dökümanı RDF RDF, W3C tarafından tanımlanmış kaynak tanımlama üst veri dilidir. Kaynak, URI'a sahip herhangi birşey olabilir. Kaynaklar ifadeler (statement) içinde üçlüler halinde kullanılarak birbirleriyle ilişkilendirilir. RDF, kaynakları özne-yüklem-nesne (subject-predicate-object) olarak şekillendirilen üçlüler (triples) halinde tanımlar. Bu şekilde oluşturulmuş üçlüler Şekil 2.4.'deki gibi gösterilebilir [14]. Şekil 2.4. RDF veri modelinin çizelge gösterimi RDF üçlülerinden özne (subject) bir URI'a sahip herhangi bir kaynak olabilir ve üçlü içinde tanımlaması yapılandır. Yüklem (predicate) özne ile nesne arasındaki ilişkiyi

24 10 tanımlar. Nesne (object) ise hem URI'ı olan kaynak hem de literal (sabit) olabilir. RDF çizelgesinde kaynaklar elipsle, literaller ise kutularla gösterilir. Yüklemler ise özneden nesneye doğru çizilen tek yönlü oklarla gösterilirler. dersinadi Programlamaya Giriş CS101 dersinbolumu Bilgisayar Mühendisliği Şekil 2.5. Örnek bir RDF çizelgesi Verileri tanımlamada kullanılan diğer bir yol ise üçlüler tanımlamaktır. Bu notasyonda üçlüler özne, yüklem, nesne sırasında ard arda sıralanır. Yukarıda çizelge ile tanımlanan ifadeler RDF üçlüleri şeklinde aşağıdaki gibi de tanımlanabilir: <#CS101> <#dersinadi> Programlamaya Giriş. <#CS101> <#dersinbolumu> <Bilgisayar Muhendisligi>. RDF ifadeleri, RDF/XML adı verilen XML tabanlı bir söz dizimi (syntax) ile de makinalar tarafından işlenebilir bir formatta tanımlanabilmektedir. RDF/XML formatında Şekil 2.5.'deki çizelge aşağıdaki gibi tanımlanabilmektedir: <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:ders=" <rdf:description rdf:about="cs101"><ders:dersinbolumu rdf:resource="bilgisayar Muhendisligi"></ders:dersinBolumu> <ders:dersinadi>programlamaya Giris</ders:dersinAdi> </rdf:description> </rdf:rdf> Şekil 2.6. Şekil 2.2.'deki RDF çizelgesinin RDF/XML olarak tanımı

25 11 RDFa (RDF in attributes) RDF verilerinin HTML etiketleri arasında gömülü olarak tanımlanmasıdır. RDFa sayesinde hali hazırda var olan web sitelerine RDF verileri gömülebilecektir ve semantik web'e hızlı bir geçiş yapılabilecektir. Etiketler aracılığıyla gömülü olarak tanımlanan bu semantik veriler ayrıştırılarak RDF formatına dönüştürülebilmektedir. <p about= ex:talha">talha'nın adı-soyadı <span property= ex:hasname">talha Kabakuş</span> ve yaşı <span property= ex:hasname">24</span> 'dür.</p> Şekil 2.7. Örnek bir RDFa kod parçası RDFaCE (RDFa Content Editor) ve AutoMeta (Automated Meta Data Annotation) başlıca RDFa editörlerine örnek verilebilir. RDFaCE, web tabanlı bir editörken, AutoMeta masaüstü (desktop) RDFa editörüdür. AutoMeta, hem komut satırından hem de Şekil 2.8'de görülen kullanıcı grafik arayüzünden hizmet veren Java tabanlı ve açık kaynak kodlu bir yazılımdır. Ayrıca hem RDF verilerinin RDFa formatında tanımlanmasını hem de RDFa tanımlarından RDF veri çıkarsınımı yapılmasını sağlamaktadır.

26 12 Şekil 2.8. AutoMeta kullanıcı grafik arayüzü RDF schema RDF Schema, RDF üzerine inşa edilmiş ve RDF ile tanımlanamayan bazı ilişkilerin tanımlanmasını ve tanımlamaları yapılmasını sağlar. RDF Schema, W3C tarafından 2004 yılının Şubat ayında kabul edilmiştir. RDF Schema ile RDF'de olmayan sınıf (class) tanımları, alt sınıf (subclass), alt özellik (subproperty), tanım kümesi (domain) ve hedef kümesi (range) tanımlamaları sayesinde daha iyi tanımlanmış ontolojiler oluşturmak mümkündür. RDF Schema, bu özellikleriyle nesne tabanlı yaklaşımla büyük benzerlik göstermektedir. Ancak RDF Schema'da sınıflar ve kaynaklar arası ayrıklık (disjoint), eşitlik

27 13 (sameas) ve özellikler (property) üzerinde kısıtlama (restriction), ters (inverse), simetrik, geçişkenlik gibi karakteristikler tanımlanamaması gibi eksiklikleri mevcuttur. RDF Schema, RDF'in semantik eklentisidir ve ilişkili kaynakları gruplama, kaynaklar arasında ilişkiler tanımlama mekanizmaları sunmaktadır [15]. RDF Schema'ya ait özellikler özel bir isim uzayı (namespace) ile tanımlanır ve varsayılan olarak bu ön ek (prefix) rdfs: olarak tanımlanmıştır. RDF Schema'ya ait tanımlamalar aşağıda verilmiştir: rdfs:resource: RDF tarafından tanımlanan herşey bir rdfs:resource örneğidir. rdfs:class: RDF tarafından tanımlı olan kaynakların sınıflarını tanımlar. Ontoloji içinde tip ve kategori tanımında kullanılır. rdfs:literal: Tamsayılar (integers), metinler (strings) gibi temel veri türlerini tanımlar. rdfs:datatype: Veri türlerinin sınıfıdır. rdfs:xmlliteral: XML bilgisi içeren sabitleri (literals) tanımlamak için kullanılır. rdfs:property: Kaynak sınıfa ait karakteristikleri tanımlamaya yarar. rdfs:domain: Üzerinde tanımlı olduğu özelliğin hangi türden kaynaklara ait olduğunu belirtir. Üçlülerde tanımlı olduğu özelliğin tanımladığı öznenin türünü (sınıfını) belirtir. Bir özelliğin tanım kümesi (domain) sadece kaynak olabilir. rdfs:range: Üzerinde tanımlı olduğu özelliğin hangi türden nesneleri bağladığını belirtir. Üçlülerde tanımlı olduğun özelliğin nesnesinin türünü belirtir. Bir özelliğin hedef kümesi (range) hem kaynak hem de literal olabilir. rdf:type: Tanımlı olduğu örneğin (instance) hangi sınıfa ait olduğunu belirtir. rdfs:subclassof: Sınıflar arası hiyerarşi kurarak alt sınıf ilişkisini tanımlar. Böylelikle RDF sınıflarının nesne tabanlı yaklaşım sergilemesini ve kalıtsallık göstermesini sağlar. rdfs:subpropertyof: Özellikler arası hiyerarşi kurarak alt özellik ilişkisini tanımlar. rdfs:label: Tanımlı olduğu kaynağın insanlar tarafından kolaylıkla okunabilir isminin tanımlanmasını sağlar. rdfs:comment: Kaynağa ait açıklamaları belirtir. rdfs:container: rdf:bag, rdf:seq, rdf:alt gibi kaynak topluluklarının ata sınıfını (superclass) temsil eder. rdfs:containermembershipproperty: Kaynağın tanımlı olduğu topluluğa aitliğini belirtir. rdfs:seealso: Tanımlı olduğu özneye ait daha detaylı bilgi içeren kaynakları

28 14 tanımlamada kullanılır. S rdfs:seealso O üçlüsü, O'nun S hakkında daha detaylı bilgi içerebileceğini belirtir. rdfs:member: Kaynağın aitliğini belirtir. rdfs:isdefinedby: Tanımlı olduğu öznenin hangi kaynak tarafından tanımlı olduğunu belirtir. S rdfs:isdefinedby O üçlüsü S'nin O tarafından tanımlandığını belirtir. rdf:bag: Barındırdığı kaynakların sırası önemsiz olan kaynak topluluklarını temsil eder. rdf:seq: Barındırdığı kaynakların sırası önem arz eden kaynak topluluklarını temsil eder. rdf:alt: Birbirine alternatif kaynak topluluklarını temsil eder OWL OWL, RDF Schema'da bulunan sınıflar ve kaynaklar arası ayrıklık (disjoint), eşitlik (sameas) ve özellikler (property) üzerinde kısıtlama (restriction), ters (inverse), simetrik, geçişkenlik gibi karakteristikler tanımlanamaması gibi eksiklikleri gidermek üzere geliştirilmiştir. OWL, barındırdığı bu özellikleriyle RDF Schema'ya göre ontolojileri çok daha gelişkin ve detaylı olarak tanımlamayı mümkün kılmaktadır. OWL'a ait tanımlamalar aşağıda verilmiştir: owl:inverseof: Özellikler arası tersidir ilişkisini tanımlar. A p B ve B q A üçlülerinden p owl:inverseof q olduğu çıkartılır. owl:symmetricproperty: Tanımlanan özelliğin üçlü içindeki özne ve nesnenin yer değiştirmesi durumunda da geçerli olan özelliktir. A p B ve B p A üçlülerinden p rdf:type owl:symmetricproperty olduğu çıkartılır. owl:transitiveproperty: Özellikler arası geçişkenliği tanımlar. p rdf:type owl:transitiveproperty, A p B, B p C üçlülerinden A p C üçlüsü elde edilir. owl:equivalentclass: İki sınıfın birbirine denk olduğunu belirtir. A rdfs:subclassof B, B rdfs:subclassof A üçlülerinden A owl:equivalentclass B olduğu çıkartılır. owl:equivalentclass: İki özelliğin birbirine denk olduğunu belirtir. p rdfs:subclassof q, q rdfs:subclassof p üçlülerinden p owl:equivalentclass q olduğu çıkartılır. owl:sameas: İki özelliğin ya da kaynağın birbirine eşit olduğunu belirtmek için kullanılır. owl:functionalproperty: Fonksiyonel özellikler, tanımlı olduğu özneyi sadece tek bir nesneye bağlar. Yani fonksiyonel özelliklerin değer kümesi (range) her zaman bir

29 15 elemanlıdır. p rdf:type owl:functionalproperty, A p B, A p C üçlülerinden B owl:sameas C olduğu çıkartılır. Fonksiyonel özellikler, cebirdeki n:1 (many-to-one) fonksiyonlara karşılık gelir. owl:inversefunctionalproperty: Ters fonksiyonel özellikler, tanımlı olduğu üçlüdeki nesnenin sadece tek bir özneye ait olduğunu belirtir. Yani ters fonksiyonel özelliklerin tanım kümesi (domain) her zaman bir elemanlıdır. p rdf:type owl:inversefunctionalproperty, B p A, C p A üçlülerinden B owl:sameas C olduğu çıkartılır. Fonksiyonel özellikler, cebirdeki 1:n (one-to-many) fonksiyonlara karşılık gelir. owl:datatypeproperty: Özelliğin nesne olarak sadece sabit değer (literal) alabileceğini belirtir. owl:objectproperty: Özelliğin nesne olarak sadece kaynak (resource) alabileceğini belirtir. owl:restriction: Varolan özellikler ve sınıflar üzerinde kısıtlamalar koyarak yeni sınıflar oluşturma işlemidir. owl:somevaluesfrom: Özelliğin belirtilen değer kümesi sınıfından en az bir nesneye sahip olması gerektiği kısıtlamasıdır. owl:allvaluesfrom: Özelliğin sadece belirtilen değer kümesi sınıfından nesneye sahip olabildiğini belirten kısıtlamadır. owl:allvaluesfrom: Özelliğin belirtilen sabit değere sahip en az bir nesneye sahip olması gerektiği kısıtlamasıdır. owl:unionof: Tanımlanan sınıfların birleşimini temsil eder. Parametre olarak n sayıda sınıf alabilir. owl:intersectionof: Tanımlanan sınıfların kesişimini temsil eder. Parametre olarak n sayıda sınıf alabilir. owl:oneof: Tanımlanan kaynağın parametre olarak verilen kaynaklardan birisi olduğunu belirten kısıtlamadır. owl:differentfrom: İki kaynağın birbirinden farklı olduğunu belirtir. owl:distinctmembers: owl:differentfrom kısıtlamasının genişletilmiş halidir, kaynağın tanımlanan listedeki bütün kaynaklardan farklı olduğunu belirten kısıtlamadır. owl:cardinality: Tanımlanan özelliğin değer kümesinde kaç tane nesneyle ilişkilendirilebileceğini sabitleyen kısıtlamadır. owl:mincardinality: Tanımlanan özelliğin değer kümesinde en az kaç tane nesneyle ilişkilendirilebileceğini belirten kısıtlamadır.

30 16 owl:maxcardinality: Tanımlanan özelliğin değer kümesinde en çok kaç tane nesneyle ilişkilendirilebileceğini belirten kısıtlamadır. owl:complementof: İki sınıfın birbirinin tümleyeni olduğunu belirtir. Tanımladığı sınıflar arasında ortak eleman bulunmaz. owl:disjointwith: İki sınıfın birbirinden farklı olduğunu belirtir. Tanımladığı sınıflar arasında ortak eleman bulunmaz. OWL, ifade gücüne göre OWL Lite, OWL DL ve OWL Full olmak üzere üç alt dile sahiptir: OWL Lite, OWL'un ifade gücü en zayıf olan alt dilidir. Genelde kullanım amacı sınıflandırmalar ve basit sabit tanımlamalardır. Özellik türleri, kardinalite (cardinality) kısıtlamaları, eşitlikler tanımlanmasını desteklemektedir. Ayrıca RDF Schema'daki tüm tanımlamaları kapsamaktadır. OWL DL, çıkarsınım sisteminin hesaplamaya yönelik (computational) özelliklerini ele alan ifade gücünün OWL Lite'a göre daha kuvvetli olan OWL dilidir. DL son eki, Description Logics yani İfade Mantığı ndan gelmektedir. OWL Full, OWL'a ait çıkarsınım yazılımlarının dahi tamamen destekleyemeyeceği tüm tanımlamaları içerir. Örnek olarak OWL Full kapsamında bir sınıf hem bir örnek hem de örnek listesi olarak tanımlanabilmektedir. Ancak bu durum çıkarsınım yazılımları tarafından desteklenmeyebilir; çünkü OWL Full, çıkarsınım sistemlerinin hesaplamaya yönelik özelliklerini garanti etmez [10] Ontoloji Ontoloji, bir kavramsallaştırmanın tanımsallaştırılmasıdır [16]. Semantik web, ontolojiler üzerine kurulmuştur ve semantik web'le bu kendi alanında özelleşmiş ontolojiler araclığıyla web üzerinde büyük bir veritabanı kurulmaya çalışılmaktadır. Ontolojilerdeki kaynaklar, özelleşmiş ontolojilerdeki kaynaklarla ilişkilendirilerek farklı bilgi tabanlarına ulaşmayı sağlar. Örnek olarak birçok ontoloji FOAF (Friend Of A Friend) ve DBpedia ile kaynak ilişkilendirmesi yaparak kaynağa ait bilgi genişletilmesini sağlar. İfade etme detaylarına göre üç farklı versiyonu vardır; OWL-Lite en basit düzeyde detay sağlar, OWL-DL ortalama düzeyde detay sağlar, OWL-Full ise en yüksek düzeyde detay ifade etmeyi sağlar [17].

31 Kurallar, mantıksal çerçeve, ispat ve güven Mantıksal çerçeve (Logic Framework), ontoloji dilinin bir adım öteye götürülmesini ve web üzerinde mantıksal ifadelerin tanımlanmasını sağlayan bir yöntem sunar. Kural dili, makinaların semantik web kuralları üzerinden çıkarsınım yapılmasını ve bu çıkarsınımlar üzerinde sonlandırma yapılmasına izin veren çıkarsınım kurallarının elde edilmesini sağlar. İspat katmanı kuralları işletir, iz sürer ve mantıksal çıkarsamanın adımlarını açıklar. Son olarak güven katmanı, semantik web üzerinde bulunan verinin, semantik web servis ve ajanlarının (agents) güvenilirliğinin tasdik edilmesini ve ne kadar güvenilir olduğunun belirlenmesini sağlar. Web gibi kullanıcılara açık ve anlık olarak işleyen çevrimiçi sistemlerde içeriğinin ne kadar doğru ne kadar yanlış olduğunun tespiti eş zamanlı olarak pek mümkün olmamaktadır ve bunun için bir kısıtlama söz konusu değildir. Bu güvenilirlik ve doğruluk testi insan gözlemine kalmış durumdadır. Semantik web içeriği sadece insanlara değil, makinalara da hitap ettiğinden bilginin güvenilirliğinin ve doğruluğunun tespitinde makinalar da sorumlu olmaktadır. Dijital imza ve şifreleme güvenlik katmanının temellerini oluşturmaktadır. Dijital imza ve şifreleme semantik web'in tüm seviyelerindeki kullanıcılar için tasarlanmış ve bu sayede yetkilendirme, bütünlük, inkâr edilemezlik ve verinin gizliliği garanti altına alınmış olur [10]. Bu katman bu aşamadaki göreviyle büyük önem arz etmektedir. Semantik web'in yüksek seviye katmanları halen geliştirilme aşamasındadır; sadece kavramsal olarak kısmi standartlar oluşturulmuştur SPARQL SPARQL, Ocak 2008'den itibaren W3C tarafından kabul görmüş RDF verileri üzerinde çeşitli sorgulamalar yapmayı sağlayan SQL benzeri bir sorgu dilidir. SPARQL, 4 çeşit sorgu tipini desteklemektedir: SELECT: Sorguda belirtilen kısıtlamalara göre üzerinde çalışan veri kümesinden istenilen değişkenlerin elde edilmesini sağlar.

32 18 ASK: Veri kümesinde aranan örüntüde veri olup-olmadığını Evet/Hayır şeklinde cevaplamayı sağlayan sorgu tipidir. DESCRIBE: Sorguyla ya da kaynağın URI ile veri kümesi içindeki tanımını döndüren sorgu tipidir. CONSTRUCT: Belirtilen sorguyu veri kümesinde arayıp, sorguya uyan şema üretmeyi sağlayan sorgu tipidir [18]. Şekil 2.9'da DBpedia üzerinden isme göre artan sırada Türk müzisyenleri listeleyen SPARQL sorgu örneği verilmiştir. Sorgunun başında bulunan ve PREFIX anahtar kelimesi ile başlayan tanımlamalar ön ek (prefix) tanımlamalarıdır ve sorgu içinde kullanılacak olan ontolojiler burada tanımlanır. PREFIX anahtar sözcüğünden sonra gelen kısım tanımlanacak olan ontoloji için takma adı (alias), sonraki kısım ise ontolojinin URI adresini belirtir. Sonrasında sorgunun tipini belirten SELECT anahtar sözcüğü ve sorgu sonucunda döndürülmesi istenilen değişkenler araya virgül koyarak yazılır. Asterisk (*) karakteri ile tüm değişkenlerin geri döndürülmesi sağlanabilir. WHERE cümleciği içinde ise veri kümesinde aranacak olan örüntü kümeleri tanımlanır. Son kısımda ORDER anahtar kelimesi ile ise sorgu sonucu dönecek verinin nasıl sıralanması gerektiği belirtilir. Burada? ile başlayan sözcükler değişkenleri ifade eder ve SELECT sorgusu sonucunda bu değişkenlere ait değerler geri döndürülecektir. Dolayısıyla sorgu sonucunda istenilen veri alanlarının değişkenlerle tanımlanması gerekmektedir. PREFIX dbpedia2: < PREFIX dbpedia: < PREFIX dbont: < PREFIX : < SELECT DISTINCT * WHERE {?person dbpedia2:birthplace :Turkey; rdf:type dbont:musicalartist; dbpedia2:name?name. } ORDER BY ASC(?name) Şekil 2.9. DBpedia üzerinden isme göre artan sırada Türk müzisyenleri listeleyen SPARQL sorgu örneği

33 Çıkarsınım (Inferencing) Çıkarsınım (inferencing), basitçe verilen bilgilerle diğer ilişkili bilgilerin elde edilmesidir [19]. Yaklaşım türüne göre iki tür çıkarsınım vardır: TBox Çıkarsınım: Üsteri (Metadata) üzerinden yapılan çıkarsınımlardır. ABox Çıkarsınım: Veriler üzerinden yapılan çıkarsınımlardır. Gerçekleşim zamanına göre çıkarsınımlar iki kategoride incelenebilir: Depolanan Çıkarsınımlar (Cached Inferencing): Tanımlanan veya çıkarsınım yapılan tüm ifadelerin (üçlülerin) tek bir depoda tutulduğu çıkarsınımlardır. Bu yaklaşımında verinin sürekli büyümesi, üçlüler modelden silindiği zaman çıkarsınım yapılan üçlüler de silinmeli mi ve aramanın verinin sürekli büyümesi sonucunda zorlaşması gibi çıkmazları bulunmaktadır. Gerçek Zamanlı Çıkarsınım (Just in time inferencing): Gerçek zamanlı olarak yapılan çıkarsınımlardır. Bu yaklaşımda çıkarsınım yapılan üçlüler hiçbir zaman depolanmaz. Çıkarsınımlar anlık olarak gerçekleştiğinden cevap (response) sürelerinin gecikebilmesi ve çıkarsınımların sadece cevap kapsamında kalması bu yaklaşımın dezavantajlarıdır. Şekil 2.10'da çıkarsınım tabanlı semantik web uygulaması mimarisi sunulmuştur.

34 20 Şekil Çıkarsınım tabanlı semantik web uygulama mimarisi [19] En yaygın çıkarsınımlar aşağıda listelenmiştir: rdfs:domain çıkarsınımı: Tanım kümesi bilgisi verilen bir özellik ve özelliği içeren bir üçlünün bulunması durumdan üçlü içindeki özneye ait tip çıkarsınımıdır. Örnek olarak?p rdfs:domain?d ve?x?p?y üçlülerinden?x rdf:type?d üçlüsü elde edilir. rdfs:range çıkarsınımı: Hedef kümesi bilgisi verilen bir özellik ve özelliği içeren bir üçlünün bulunması durumdan üçlü içindeki nesneye ait tip çıkarsınımıdır. Örnek olarak?p rdfs:range?d ve?x?p?y üçlülerinden?y rdf:type?d üçlüsü elde edilir. rdfs:subclassof çıkarsınımı: Aralarında alt sınıf ilişkisi tanımlanan iki sınıftan, alt sınıfa ait örneğin aynı zaman üst sınıfa da ait bir örnek olduğu çıkarsınımıdır. Örnek olarak?b rdfs:subclassof?a ve?x rdf:type?b üçlülerinden?x rdf:type?a üçlüsü elde edilir. owl:inverseof çıkarsınımı: Ters özellik ilişkisi bulunan iki özellik ve bu iki özellikten birinin içinde bulunduğu bir üçlüden diğer özelliğin yüklem olduğu ve ilk üçlüdeki özne ile yüklemin yer değişmesi sonucunda elde edilen çıkarsınımdır. Örnek olarak?p owl:inverseof?q ve?a?p?b üçlülerinden?b?q?a üçlüsü elde edilir. owl:equivalentclass çıkarsınımı: Aralarında eşlik durumu bulunan iki sınıftan birine ait bir örneğin diğerine de ait olduğu çıkarsınımıdır. Örnek olarak?a owl:equivalentclass?b ve?a rdf:type?a üçlülerinden?a rdf:type?b üçlüsü elde edilir.

35 21 owl:equivalentproperty çıkarsınımı: Aralarında eşlik durumu bulunan iki özellikten birinin yüklem olduğu üçlüdeki özne ve nesne ile birlikte diğer özellik yüklem olarak kullanılarak elde edilen çıkarsınımdır. Örnek olarak?p owl:equivalentproperty?q ve?a?p?b üçlülerinden?a?q?b üçlüsü elde edilir. owl:sameas çıkarsınımı: Aralarında eşlik durumu bulunan iki kaynak ya da özellik birbirleri yerine kullanılabilmesiyle elde edilen çıkarsınımdır. Örnek olarak?a owl:sameas?b ve?a?p?c üçlülerinden?b?p?c üçlüsü elde edilir. owl:functionalproperty çıkarsınımı: Fonksiyonel özelliğin yüklem olduğu tüm üçlülerdeki öznelerin birbirine eşit olduğu çıkarsınımıdır. Örnek olarak?p rdf:type owl:functionalproperty,?a?p?b,?a?p?c üçlülerinden?b owl:sameas?c üçlüsü elde edilir Araçlar Semantik web, W3C kurucusu Tim Berners-Lee'nin dediği gibi Web 2.0'dan tamamen farklı olmayıp, sadece bir eklenti olması sebebiyle hali hazırda varolan birçok web projeleri semantik web teknolojilerinden faydalanmaya başlamıştır. Semantik web'in popülerliğinin artması ve yaygınlaşması sonucusunda birtakım semantik web için geliştirilmiş araçlar ve kütüphaneler ortaya çıkmıştır. Bu bölümde en çok kullanılan semantik web geliştirme araç ve kütüphaneleri sunulacaktır Protege Protege, Stanford University ile University of Manchester tarafından Java Swing teknolojisi kullanılarak geliştirilmiş açık kaynak kodlu ve ücretsiz bir ontoloji editörüdür. Geliştirilebilir ve esnek mimarisi sayesinde gereksinim doğrultusu birçok eklentiyle (plugin) aracı detaylandırmak mümkündür. Ayrıca en popüler ve gelişmiş Java IDE (integrated development environment)'lerden olan IntelliJ Idea ve Eclipse için hazır eklentileri de bulunmaktadır. Protege'in sunduğu gelişmiş kullanıcı arayüzü (user interface) ile tüm detaylarıyla yeni ontolojiler oluşturulabilmekte ve oluşturulan ontolojiler Şekil 2.11'de görüldüğü üzere OntoGraf adı verilen grafik arayüzünde görüntülenebilmektedir. Ayrıca Protege, oluştulmuş ontolojilere yönelik SPARQL sorguları yazıp, sonuçları görüntülemek için bir sorgu arayüzü sunmaktadır. Bu sorgu arayüzünde hem çevrimiçi (online) hem de çevrimdışı (offline) ontolojilerden faydalanarak sorgulamalar

36 22 yapılabilmektedir. Şekil Protege OntoGraf arayüzü ile örnek bir ontoloji çizge görüntüsü Protege, barındırdığı HermiT ve FaCT++ adlı çıkarsama (inference) motorları ile var olan veri modeli ve veriler üzerinden yeni örüntüler çıkartabilmektedir. Bu yaklaşım semantik web'i, Web 2.0 ve Web 1.0'dan ayıran en önemli farktır. Böylelikle semantik sistemler var olan örüntüleri yorumlayıp yeni örüntüler elde edebilmekte ve kendi kendini eğitebilmektedir. Şekil 2.12'de Protege 4.2.0'dan alınan kullanıcı arayüzü ekran görüntüsü sunulmuştur.

37 23 Şekil Protege kullanıcı arayüzü (user interface) ekran görüntüsü Protege, WebProtege adında ücretsiz ve açık kaynak kodlu web istemcisi (client) de sunmaktadır. WebProtege, Sencha Ext JS kullanılarak geliştirilmiş, performanslı bir web arayüzü sunmaktadır. Web tabanlı olmasından ötürü çevrimiçi olarak ontolojiler üzerinde çalışılabilmektedir. WebProtege, Protege ile tamamen uyumlu olduğundan Protege ile geliştirilmiş ontolojiler WebProtege'e yüklenerek (upload) geliştirilmelerine devam edilebilmektedir. WebProtege, Şekil 2.13'de görüldüğü üzere oldukça kullanışlı, tamamen kişiselleştirilebilir ve zengin bir kullanıcı arayüzü sunmaktadır.

38 24 Şekil WebProtege kullanıcı arayüzü ekran görüntüsü Jena API (Application Programming Interface) Jena, başlangıçta HP tarafından geliştirilen, sonradan Apache tarafından satın alınan RDF, RDF Schema ve OWL yapılarını destekleyen Java programlama dili ile geliştirilmiş açık kaynak kodlu bir kütüphanedir. Jena ile programatik olarak var olan RDF modellerini okumak, düzenlemek, sorgulamak ve yeni RDF modelleri oluşturmak mümkündür. Jena'nın barındırdığı ARQ (A SPARQL Processor for Jena) modülü ile tanımlanan RDF modelleri üzerinde SPARQL sorguları yazılabilmekte ve bu sorgular programatik olarak yürütülebilmektedir. Bunun yanı sıra Jena, RDF model dosyaları, sunduğu SDB modülü ile MySQL gibi ilişkisel veritabanları ve Sesame ve Virtuoso gibi semantik veritabanları ile çalışabilmektedir. Tipik bir semantik web uygulama geliştirme aşamaları aşağıda listelenmiştir [20]: Protege kullanılarak bilgi tabanının modellenmesi Modelin Virtuoso ve Jena SDB kullanılarak veritabanına yüklenmesi

39 25 Verinin yüklenmesi Yüklenen model üzerinde Jena API, OWL API gibi API'lar kullanılarak uygulamanın geliştirilmesi Şekil Jena API ile bir RDF modelin okunup, model içindeki sınıfları ve özellikleri listeleyen metotları gösteren kod örneği Twinkle Twinkle, Jena ARQ modülü kullanılarak geliştirilmiş açık kaynak kodlu ve oldukça kullanışlı bir kullanıcı grafik arayüzü (GUI) aracıdır. Twinkle'ın sunduğu başlıca özellikler aşağıda listelenmiştir: SPARQL sorgularını yükleme, düzenleme ve kaydetme Sorgulara isim uzayı (PREFIX) ifadelerinin eklenmesi Uzun süren sorguların iptal edilmesi (Sorgu zaman aşımı özelliği) Sorgu sonuçlarının dosya sistemine kaydedilmesi Gerek yerel (local) gerekse uzak (remote) RDF modellerinin sorgulanabilmesi İlişkisel veritabanlarında tutulan RDF verilerinin sorgulanabilmesi

40 26 DBpedia, reyvu.com ve GovTrack gibi çevrimiçi SPARQL servislerinin sorgulanabilmesi Sorgular yürütülürken çıkarsınım yapılabilmesi Twinkle, Java ile geliştirilmiş olduğundan çalıştırılabilmesi için işletim sistemi üzerinde JRE (Java Runtime Environment)'ın kurulu olması gerekmektedir. Twinkle, yapılandırma dosyaları sayesinde esnek bir veri kaynağı ve isim uzayı tanımlama yapısına sahiptir. Bunun için dağıtım klasörü içinde bulunan etc/config.n3 dosyası düzenlenerek yeni veri kaynakları ve isim uzayları tanımlanabilmektedir. Şekil Twinkle Kullanıcı Arayüzü Ekran Görüntüsü OntoWiki Leipzig Üniversitesi bünyesinde, Auer ve arkadaşları tarafından 2007 yılında geliştirilmeye başlayan ve halen geliştirilmeye devam edilen OntoWiki [21], wiki ile semantik web yaklaşımlarını birleştirerek son kullanıcı destekli bir yapı sağlayan çevrimiçi ontoloji geliştirme aracıdır. Şekil 2.16'da ekran görüntüsü görüldüğü üzere OntoWiki, kullanışlı, sade ve kolay

41 27 erişilebilir bir kullanıcı arayüzü sunmaktadır. OntoWiki, metin belgelerinde kullanılan WYSIWYG (What You See Is What You Get) arayüzüne benzer bir arayüzle RDF içerikleri için anlık olarak düzenleme sağlamaktadır. Ayrıca OntoWiki, semantik içeriğin sezgisel (intuitive) olarak yönetilmesini sağlamaktadır. Şekil OntoWiki kullanıcı arayüzü OWLmt Semantik web yaygınlaştıkça semantik web teknolojileri kullanılarak geliştirilmiş web sitelerinin sayısı da artmaktadır. Bu yaygınlaşma ortaya çıkan ontoloji çeşitliliğini de artırmaktadır. schema.org gibi bu ontolojileri ortak bir paydada buluşturmaya çalışan projeler olsa da web gibi açık platformlarda bu çeşitliliğinin önüne geçilmesi mümkün olmamaktadır. Tüm bu çeşitlilik ve heterojenlik içerisinde ontolojilerin birbiriyle tümleştirilmesi ve kaynaklar aracılığıyla birbirleriyle bağlantılar kurabilmesi için bu çeşitlilik gösteren ontolojilerin haritalaması (mapping) gerekmektedir. OWLmt, ontolojiler arasında haritalama işleminin yapılmasını sağlamak amacıyla Java programlama dili kullanılarak geliştirilmiş açık kaynak kodlu bir araçtır. OWLmt, kaynak ve hedef ontolojiler arasında veri format farklılılarını haritalayarak veri

42 28 format (birim) dönüşümleri yapılmasını sağlamaktadır. OWLmt, bu dönüşümler esnasında metin birleştirme (concat), parçalama (split) ve alt kümesinin alınması (substring) gibi temel XPath operasyonlarını da desteklemektedir. Biçer, yaptığı tez çalışmasında sunulan bu operasyonların üstüne programatik bir yaklaşım eklemek için OWLmt'ye JavaScript desteğini ekleyerek karmaşık dönüşümlerin programlama bileşenleri yardımıyla ele alınması üzerine çalışmıştır [22]. Şekil OWLmt kullanıcı arayüzü Sesame Sesame, RDF verilerinin depolanmasını, parçalanmasını, veriler ve veri modelleri üzerinde çıkarsınım yapılmasını ve sorgulanmasını sağlayan bir çerçevedir. Sesame, sunduğu zengin ve kolay kullanılabilir uygulama geliştirme arayüzü (API) ile her türlü semantik web depolama çözümünü desteklemektedir. Böylelikle tek bir uygulama geliştirme arayüzü ile hem yerel hem de uzaktaki veri depolarına ulaşılabilmektedir. Sesame, başta RDF/XML, Turtle, N-Triples, TriG ve TriX olmak üzere tüm RDF veri formatlarını desteklemektedir. Sesame, SeRQL adında bir RDF sorgu dili sunmakla beraber SPARQL sorgu dilini de tamamen desteklemektedir.

43 29 Şekil 2.18.'de Sesame'nin mimarisi sunulmuştur. Sesame, depolama formatı olarak ilişkisel veritabanları, hafıza ve dosya sistemlerinin hepsini desteklemektedir. SAIL (Storage And Inference Layer) uygulama geliştirme arayüzü (API), bu depolama formatlarını çerçeveden soyutlanmasını ve çıkarsınım yapılmasını sağlamaktadır. Bu katmanın üstünde Sesame'nin SeRQL, RQL ve RDQL sorgu motorları, yönetim modülü ve RDF çıkarsınım fonksiyonel modülleri bulunmaktadır. Bu fonksiyonel modüllere Repository API ve Graph API adlarındaki Sesame erişim uygulama geliştirme arayüzleri ile erişim sağlanmaktadır. Repository API, sorgulama, RDF dosyalarının (verilerinin) depolanması, RDF çıkarsınımı gibi yüksek seviye işlemler için kullanılır. Graph API ise ifadeler (üçlüler) eklenmesi veya çıkartılması, RDF modellerinin direk olarak kod parçalarından üretilmesi gibi işlemlerde kullanılır. Bu iki uygulama geliştirme arayüzü fonksiyonelite olarak birbirini tamamlamakta ve pratikte genellikle birlikte kullanılmaktadır. Uygulama geliştirme arayüzleri, masaüstü istemcilerine ve Sesame sunucularına direk erişim desteği sunmaktadır. Sesame sunucuları, Sesame uygulama geliştirme arayüzlerine HTTP tabanlı erişim desteği sağlamaktadır.

44 30 Şekil Sesame Mimarisi

45 31 3. SİSTEM MİMARİSİ Bu bölümde Linked Data üzerinden doğal dil sorularını cevaplamak üzere geliştirilmiş sistem detaylarıyla birlikte anlatılacaktır Yazılım Mimarisi Geliştirilen sistem web tabanlı bir uygulama olduğundan istemci-sunucu (client-server) mimarisine sahiptir. Performans ve istemci-sunucu teknolojilerinin bağımsız ve ayrı olması prensipleri göz önünde bulundurulduğundan istemci ile sunucu RESTful web servisleri ile haberleşmektedir. İstemcinin sunucu ile iletişimi AJAX (Asynchronous JavaScript And XML) istekleri ile olmaktadır. Anlık olarak ve gerektikçe yapılan AJAX istekleri sayesinde sunucuya gereksiz çağrıların yapılması engellenmiştir. Şekil 3.1'de nesne tabanlı yaklaşımın katmanlar arasındaki karşılıkları görselle sunulmuştur. Şekil 3.1. Nesne tabanlı yaklaşımın katmanlar arasındaki karşılıkları İstemci kısmı, yani kullanıcı arayüzü Sencha Ext JS 4.2 JavaScript kütüphanesi kullanılarak geliştirilmiştir. Sencha Ext JS, sunduğu HTML5 ve CSS3 bileşenleri, modern, yüksek performanslı bileşenleri, MVC (model-view-controller) katmanlı yazılım mimarisine sahip olması ve nesne tabanlı yaklaşım prensiplerini desteklemesinden ötürü tercih sebebi olmuştur. MVC, yazılımın kalitesini süreçler ve arayüz tasarımları göz önüne alınarak daha iyi kontrol edilebilmesi için yazılımı Model, View (Görüntü) ve Controller

46 32 (Kontrolör) katmanlarına bölen yazılım tasarımıdır [23]. MVC mimarisi başlıca faydaları geliştirilmiş bakılabilirlik ve sistemin genişletebilirliği, aynı modele ait birden çok arayüz, tekrar kullanılabilir görüntü ve kontrolörler, senkronize arayüzler ve tekrar kullanılabilirlik olarak sıralanabilir [24]. Şekil 3.2'de Ext JS 4.x ile sunulan istemci MVC mimarisi gösterilmiştir. Şekil 3.2. Ext JS 4.x ile sunulan istemci tarafta MVC mimarisi [25] Sunucu kısmı ise Java EE (Enterprise Edition) teknolojileri kullanılarak geliştirilmiştir. Açık kaynak kodlu, 2012 Zeroturnaround firmasının Yazılım Geliştirici Üretkenlik Raporu (Developer Productivity Report 2012) [26] sonuçlarına göre en popüler Java web kütüphanesi olan Spring MVC uygulama çatısı olarak kullanılmıştır. Şekil 3.3'de Spring MVC katmanları ve katmanlar arası iletişim sunulmuştur.

47 33 Şekil 3.3. Spring MVC uygulama çatısı katmanları ve katmanlar arası iletişimi gösteren diyagram Sunucu ile istemci arasındaki iletişim hızlı olabilmesi HTTP istekleriyle gönderilen içeriğin mümkün olduğunca küçük boyutta olması gerekmektedir. Bunun için IETF (Internet Engineering Task Force) tarafından RFC (Requests for Comments) 1952 ile standartlaştırılmış GZIP (GNU Zip) sıkıştırma yöntemi kullanılmıştır. İstemciye sunucu tarafından gönderilen cevapta GZIP sıkıştırma yönteminin kullanıldığı HTTP başlıklarında bulunan content-encoding özelliği aracılığıyla bildirilmektedir. Şekil 3.4'de istemci ve sunucu arasında GZIP sıkıştırması sürecinin nasıl yapıldığı gösterilmiştir. Şekil 3.4. GZIP sıkıştırmanın istemci ile sunucu arasındaki iletişim yöntemi

48 Sistem Geliştirme Süreçleri Semantik web, teknolojileri ve standartlarıyla web üzerinde anlamlı ve ilişkili veriler tanımlayarak web üzerinde büyük bir veri tabanı oluşturma hedefinin gerçekleştirilmesi için geliştirilmiştir. DBpedia, Wikipedia üzerindeki verilerin sorgulanabilmesi için bir son nokta servisi ve bu servisin kullanılabilmesi için bir web arayüzü sunmaktadır. Ancak bu arayüzden sorgu dilinin SPARQL olmasından ötürü sadece konunun uzmanları faydalanabilmektedir. Bu servisin tüm web kullanıcılarına açılabilmesi için web kullanıcılarının ortak dili olan doğal dil ile sorgu ortamının oluşturulması gerekmektedir. Zemberek gibi var olan Türkçe doğal dil işleme kütüphanelerinin yetersizliği ve İngilizce nin daha küresel bir dil olması sebebiyle sistemin sorgu dili İngilizce olarak seçilmiştir. Sistem, kullanıcıların sorduğu doğal dil sorguları, uygun SPARQL sorgularına dönüştürülmeli ve son nokta servisi aracılığıyla yürütülmelidir. Sorgu sonucu elde edilen cevaplar ise kullanıcıların algılayabileceği bir formatta kullanıcı-dostu bir arayüzle sunulmalıdır. Şekil 3.5 de geliştirilen sistemin soru cevaplama sürecine ait akış diyagramı sunulmuştur. Geliştirilen sistem temel olarak üç aşamada doğal dil sorularını uygun SPARQL sorgularına çevirerek bulunan cevapları son kullanıcıya sunmaktadır: Doğal dil sorularının doğal dil işleme yöntemleriyle anlamlandırılması Anlamlandırılan doğal dil sorularına uygun olan SPARQL sorgularının üretilmesi DBpedia servisi üzerinden SPARQL sorgularının işletilmesi ve sonuçların web arayüzünde gösterilmesi

49 35 Şekil 3.5. Sistem soru cevaplama mekanizması akış diyagramı DBpedia Bilgi Çıkartım Çerçevesi (DBpedia Knowledge Extraction Framework)'nin temel bileşenlerini şu şekilde belirtilebilir: PageCollections (Sayfa Kolesiyonları) Wikipedia makalelerinin yerel ya da uzaktaki kaynaklarıdır. Destinations (hedefler) RDF üçlülerinin kaydedilebilir formata dönüştürülmesi (serialization) ve depolanmasını sağlamaktadır.

50 36 Extractors (çıkartımcılar) özel tipteki wiki işaretlerini (markup) üçlülere çevirmeyi sağlamaktadır. Parsers çıkarsınım işlemi esnasında veri tiplerinin belirlenmesinde, farklı birimler arasında değer dönüşümünde ve wiki işaretlerini listelere parçalamada görev almaktadır. ExtractionJobs bir iş akışı içinde sayfa koleksiyonlarını, çıkartımcıları ve hedefleri gruplamaktadır. Çerçevenin çekirdeğinde ise Extraction Manager (Çıkartım Yöneticisi) yer almakta ve Wikipedia makalelerinin Çıkartımcılara gönderilmesini ve orada sonuçlanan çıktının da Hedeflere iletilmesini sağlamaktadır. Çıkartım Yöneticisi ayrıca URI yönetimini ve makaleler arası yönlendirmeleri de üstlenmektedir [5]. Şekil 3.6'da sunulan DBpedia bileşen ön izlemesinde görüldüğü üzere DBpedia üzerindeki güncelleme, çıkarsınım ve aktarım süreçleri her an devam etmektedir. Wikipedia üzerinde makalelere yapılan değişiklik eş zamanlı olarak bu sistem sayesinde DBpedia'ya yansıtılmaktadır. Geliştirilen sistem, doğal dil sorularına karşılık bulunan cevaplarla ilgili olarak her türlü bilgiyi anlık olarak DBpedia uç nokta (endpoint) servisinden sağladığından dolayı cevaplara ait bilgilerin güncelliğini garanti etmektedir.

51 37 Şekil 3.6. DBpedia Bileşenlerinin ön izlemesi [5] İlerleyen başlıklarda yukarıda liste halinde sunulan sistemin temel çalışma metodolojisi detaylı olarak açıklanacaktır Doğal dil sorularının doğal dil işleme yöntemleriyle anlamlandırılması Kullanıcıların doğal dilde sorduğu sorular, web arayüzünden alındıktan sonra doğal dil işleme yöntemleriyle anlamlandırılmaktadır. Bu amaçla geliştirilen sistemde açık kaynak kodlu Apache OpenNLP kütüphanesi kullanılmıştır. Kütüphane, sunduğu büyük eğitim seti sayesinde verilen özne, yüklem, nesne, edat, zarf gibi cümlenin öğelerine ayırmakla beraber nesnelere yönelik insan, zaman, para, lokasyon, yüzde ve organizasyon gibi tür tespitinde de bulunabilmektedir. Geliştirilen bir Java yardımcı sınıfı sayesinde muhtemel nesneler birleştirilmekte ve mümkün olan en büyük nesne adayı bulunmaktadır. Örnek verilecek olursa Who is Michael Jordan? gibi bir soruya OpenNLP kütüphanesinin insan türü eğitim verisi aracılığıyla bulabileceği kelimeler Michael ve Jordan ayrı ayrı olarak bulunmaktadır. Bulunan kelimeler birleştirilerek en muhtemel arama kriteri elde edilmektedir. Çizelge 3.1'de yukarıdaki örnek soruya yönelik sistem tarafından

52 38 bulunan ayrıştırma sonuçları Çizelge 3.2'de sunulan biçimbirimsel çözümleme etiketleriyle (POS - Part Of Speech Tags) beraber sunulmuştur. Çizelge 3.1. Who is Michael Jordan? doğal dil sorusunun Apache OpenNLP kullanılarak çözümlenmiş hali Kelime Who is Michael Jordan Biçimbirimsel Çözümleme Etiketi WP (WH soru eki) VBZ (3. tekil şahıs çekimli şimdiki zaman fiili) NNP (Tekil özel isim) NNP (Tekil özel isim) Çizelge 3.2. Apache OpenNLP kütüphanesi aracılığıyla biçimbirimsel çözümleme etiketleri Etiket Etiket Türü Etiket Etiket Türü Etiket Etiket Türü CC Coordinating Conjuction NNS Noun, plural TO to CD Cardinal Number NNP Proper noun, singular UH Interjection DT Determiner NNPS Proper noun, plural VB Verb, base form EX Existential there PDT Predeterminer VBD Verb, past tense FW Foreign word POS Possessive ending VBG Verb, gerund IN Preposition PRP Personal pronoun VBN Verb, past participle JJ Adjective PRP$ Possessive pronoun VBP Verb, non-3rd person singular present JJR JJS Adjective, comparative Adjective, superlative RB Adverb VBZ Verb, 3rd person singular present RBR Adverb, comparative WDT Wh-determiner LS List item marker RBS Adverb, superlative WP Wh-pronoun MD Modal RP Particle WP$ Possessive whpronoun NN Noun, singular SYM Symbol WRB Wh-adverb Anlamlandırılan doğal dil sorularına uygun olan SPARQL sorgularının üretilmesi Doğal dil sorguları öğelerine ayrıldıktan sonra sistem tarafından belirlenmiş desenlerle

53 39 (pattern) sorunun eşleştirmesi süreci başlamaktadır. Geliştirilen sistem, esnek bir desen yapısına sahip olduğundan desenlerin sayısı artırılabilecektir. Çizelge 3.3'de geliştirilen sistem üzerinde tanımlanan desenler ve beklenen cevap türleri listelenmiştir. Çizelge 3.3. Geliştirilen sistem tarafından öntanımlı soru desenleri ve aranan cevap türleri Soru Deseni Who / whom When Where What Find Locate Aranan Cevap Türü İnsan/Kişi Tarih Yer, lokasyon Herşey Yer, lokasyon İçinde latitude & longitude bilgisi içeren lokasyon Biçimbirimsel çözümleme sonucu tespit edilen yüklem, düzenli (regular) veya düzensiz (irregular) fiil olabilir. Bunun ayırt edilebilmesi için açık kaynak kodlu NoSQL (Not Only SQL) veritabanı olan MongoDB üzerinde düzensiz fiiller ve düzensiz fiillerin halleri (tenses) tutulmuştur. MongoDB, esnek, ölçeklenebilir ve oldukça hızlı döküman tabanlı olarak çalışan bir veritabanıdır [27]. NoSQL veritabanları özellikle büyük veriler kullanıldığında ilişkisel veritabanlarına göre daha iyi performans sunduğu öne sürülmektedir [28]. Bunun en tanıdık örneği olarak Facebook gösterilebilir. Facebook, kullandığı NoSQL veritabanı çözümü (Cassandra) sayesinde eş zamanlı olarak 100 milyondan fazla kullanıcı verisini işletebilmektedir [29]. Çözümlenen her bir yüklem EK- 1'de listesi verilen veritabanında bulunan düzensiz fiillerle karşılaştırılmaktadır. Bulunan fiil, veritabanında bulunamazsa düzenli fiil olduğu anlaşılmaktadır. Yüklemin veritabanında karşılığı bulunuyorsa düzensiz fiildir ve şimdiki zaman hali üzerinden süreç devam etmektedir. Yüklem bulunduktan sonra yükleme karşılık gelecek muhtemel özellikler DBpedia ontoloji veri modeli üzerinden Jena API aracılığıyla aranmaktadır. Levenshtein Uzaklık algoritması metinlerin benzerliklerini belirleyen bir algoritmadır. Muhtemel özellik listesine metin karşılaştırması tabanlı Levenshtein uzaklık algoritması implemente edilip, uygulanarak yükleme en yakın özellik bulunmaktadır. Her RDF üçlüsü özne, yüklem ve nesneden oluşur. Uygun SPARQL sorgusu oluşturulmadan önce nesnenin doğru bir şekilde bulunması gerekmektedir. Doğal dil sorusu ön tanımlı desenler aracılığıyla ne tür bir cevap aradığı belirlendikten sonra ilgili

54 40 eğitim verisi üzerinden nesne aranmıştır. Apache OpenNLP ile biçimbirimsel çözümlemeye tabii tutulduktan sonra nesne belirlenmesine rağmen ikinci defa eğitim verisi üzerinden nesnenin türü kontrol edilmektedir. Bu yaklaşım özellikle karmaşık sorgularda yanlış nesne eşleştirmesini önlemede bu süreç önem arz etmektedir. Çizelge 3.4. Eğitim veri dosyası ve karşılığında aranan nesne türü Eğitim Veri Dosyası en-ner-date.bin en-ner-location.bin en-ner-money.bin en-ner-organization.bin en-ner-percentage.bin en-ner-person.bin en-ner-time.bin Aranan Nesne Türü Tarih Lokasyon (Ülke, şehir) Para birimi Kurum/kuruluş Yüzde İnsan Zaman Üçlüleri oluşturacak yüklem ve nesne bulunduktan sonra, DBpedia servisinden faydalanabilmek için biçimbirimsel çözümlemeye uğramış doğal dil sorusuna anlamsal olarak karşılık gelen geçerli (valid) SPARQL sorgusu elde edilmektedir. Bu süreci şu şekilde örneklenebilir: who produce Saturnight? gibi örnek bir doğal dil sorgusunu ele alalım. İlk olarak biçimbirimsel çözümleme sonucusunda sorunun nesnesi bulunmaktadır. Bu örnekte çözümleme sonucunda bulunan nesne Saturnight 'dır. Sonrasında sorunun yüklemi aranmaktadır. Biçimbirimsel çözümleme sonucusunda bu örnek için yüklem produce olarak bulunmuştur. Bulunan yüklemin veritabanında karşılığının olupolmadığına bakılır. Produce düzenli bir fiil olduğundan veritabanında karşılığı bulunamayacaktır. Üçlü içinde yüklemler DBpedia üzerinde tanımlanan özellikler olarak karşılık bulduğundan bu aşamada DBpedia'da tanımlı tüm özellikler yükleme en yakın (benzer) özelliği bulabilmek için string temelli karşılaştırmaya tabii tutulur. Produce fiili için DBpedia'da bulunan ve benzerlik gösteren aday özellik listesi Çizelge 3.5'de verilmiştir. Levenshtein Uzaklık algoritması uygulandıktan sonra bulunan sonuçlara göre aday özellik listesinden yükleme en yakın olan özellik bulunur. Sonuç olarak sistem tarafından oluşturan üçlü şu şekilde olmaktadır: Özne:?x Yüklem: producer Nesne: Saturnight.

55 41 Çizelge 3.5 Produce fiiliyle eşleşen aday özellikler ve Levenshtein Uzaklık değerleri DBpedia Özelliği Levenshtein Uzaklık Değeri producer 1 coproducer 4 coexecutiveproducer 13 wineproduced 6 executiveproducer DBpedia servisi üzerinden SPARQL sorgularının işletilmesi ve sonuçların web arayüzünde gösterilmesi Doğal dil sorularının algılanıp, ilgili SPARQL sorguları elde edildikten sonra DBpedia servisinin programatik olarak kullanılabilmesi için açık kaynak kodlu semantik web geliştirme kütüphanesi olan Apache Jena kütüphanesinden faydalanılmıştır. Apache Jena dosyalar, veritabanları ve URL'ler veya bunların kombinasyonlarıyla çalışabilecek gelişmiş bir uygulama geliştirme arayüzü (Application Programming Interface - API) sunmaktadır [4]. Apache Jena barındırdığı ARQ modülü sayesinde belirlenen semantik model üzerinde SPARQL sorgularının yürütülmesi ve bulunan sonuçların Java nesneleri olarak elde edilmesini sağlamaktadır. ARQ modulü, SPARQL ve SPARQL/Update (SPARQL 1.1) standartlarını sorgu dili olarak kullanabilmekle beraber birleştirme (aggregation), Lucene metin arama motoru ile serbest metin arama (free text search) gibi eklentileri de desteklemektedir [30]. Sorulan her soru veri tabanında aşağıdaki bilgilerle birlikte saklanmaktadır: Soru metni Zaman damgası Sorunun aradığı özne türü Soruyu soran kullanıcının sistemdeki kullanıcı adı Sorgu süresi Sorgu sonucu kullanıcıya gösterilecek olan cevap sayısı Sorgu sonuç başlangıç indeksi Sorgu sonuç limiti Sorunun cevap/cevapları

56 42 Doğal dil sorusu Jena kullanılarak DBpedia üzerinden sorgulanmadan önce yakın zamanda sorularak cevabının veri tabanında bulunup bulunmadığı kontrol edilmektedir. Eğer bir soru son 1 ay içinde sorulmuşsa, sorunun cevabını gösteren referans numarası (ID) ile DBpedia üzerinden cevap, en güncel hali son kullanıcıya gösterilmektedir. Bu depolama mekanizmasıyla sorulan soru doğal dil işleme ve DBpedia'dan sorgulama süreçlerinden geçirilmediğinden Çizelge 3.5'de sunulduğu gibi çok ciddi performans kazançları elde edilmektedir. Eğer soru son 1 ay içinde sorulmamışsa, doğal dil işleme ve DBpedia üzerinden sorgulama süreçlerinden geçirilerek cevabı bulunmaktadır. Sonrasında soru, cevabı ve yukarıda listelenen detaylarıyla birlikte veri tabanında depolanmaktadır. Sorgu sonucunda elde edilen Java objeleri (RDFNode türünde) JSON (JavaScript Object Notation) formatına dönüştürülerek web arayüzünde listelenmiştir. Şekil 3.7'de arama süreci diyagram olarak sunulmuştur. Şekil 3.7. Sistemin arama mekanizmasını gösteren diyagram Şekil 3.8'de sunulan geliştirilen sistemin web arayüzü, DBpedia servisi için geliştirilmiş son nokta servis web arayüzünde bulunmayan bir özellik olarak sayfalama (paging) desteği de sunmaktadır. Bu da sonuçların daha hızlı olarak listelenmesini sağlayarak yanıt hızı daha yüksek bir web (responsive web) ortamı sunmaktadır. Bunun için bulunan sonuçlar dinamik olarak belirlenebilen sayfa başına sonuç sayısı (page size) değerince listelenmiş, sayfalara bölünmüştür. Sonuçlar listelenirken SPARQL'de bulunan LIMIT ve OFFSET anahtar sözcüklerinden faydalanılmıştır. Kullanıcı arayüzünde her bir sayfa isteğinde bu değerler sunucu tarafa AJAX istekleriyle (request) sunucuya gönderilmekte ve sunucu

57 43 tarafta oluşturulmuş olan SPARQL sorgularının sonuna LIMIT ve OFFSET değerleri eklenmektedir. LIMIT sayfada bulunacak sonuç sayısını belirtirken OFFSET sonuçlar arasında kalınan sırayı belirtmektedir. Bu şekilde arayüzde bulunan grid üzerinde belirlenen sayfa sayısı kadar sonuç listelenmektedir. Ayrıca sayfa başına düşen sonuç sayısı kullanıcı temelli ve dinamik olarak değiştirilebilmektedir. Bu da soru tipine göre cevap sayısının belirlenebilmesi imkânını sunmaktadır. Örnek olarak who produce Saturnight? sorusunun sayfa başına düşen cevap sayısı find places in Germany sorusuna göre daha özel bir soru olmasından ötürü daha küçük bir değer olması makuldur. Böylelikle sistem daha kısa zamanda son kullanıcıya göre özelleşmiş cevaplar üretebilecektir. Geliştirilen bu mimari, DBpedia'nın sunduğu SPARQL sorgu web arayüzünde bulunan önemli bir eksiklik olarak göze batmaktadır. Çizelge 3.6'da sunulduğu üzere dinamik sayfalama özelliği % arasında performans kazancı sağlamıştır. Çizelge 3.6. Dinamik sayfalama kullanılarak elde edilen arama süreleri Doğal Dil Soru How tall is Michael Jordan? İlk 20 sonuç için arama süresi (sn) 1 sonuç için arama süresi (sn) İyileştirme (%) Find places in England Find people died in Cevaplar, web arayüzünde bulunan liste üzerinde gösterilmektedir. Seçilen cevaba ait detaylar ise listenin hemen yanında bulunan ve detayları gösteren ekranda gösterilmektedir. DBpedia üzerinden arama yapılırken, sonuçların özet içerme şartı aranmaktadır. Ancak her sonucun anasayfa linki, Freebase tümleştirme bilgisi veya lokasyon bilgisi içermesi aranmamaktadır. Bu yaklaşım SPARQL'de bulunan OPTIONAL anahtar sözcüğü ile sağlanmıştır. Opsiyonel olan alanlar ve bu alanlara yönelik kısıtlamalar bu anahtar sözcük içerisinde tanımlanmıştır.

58 44 Şekil 3.8. Sorgu sonuçlarını detayları ve resim önizlemesiyle beraber görüntülemeyi sağlayan web arayüzü Harita desteği Sonuç listesi, aranan nesne türüne göre dinamik olarak şekillenmektedir. Bulunan sonuç (üçlünün öznesi) bir lokasyonsa ve DBpedia üzerinde enlem (latittute) ve boylam (longitude) değerlerine sahip ise sonuç listenirken yanında harita simgesi gösterilmektedir. Bu ikona tıklanıldığında ise Şekil 3.9'da örneklendiği gibi DBpedia dan enlem ve boylam bilgisi alınarak lokasyonlar harita üzerinde gösterilmektedir. Şekil 3.10 da ise bu işlemin gerçekleştirilmesi için geliştirilen koddan bir kesit sunulmuştur. Cevaptan alınan enlem (latitude) ve boylam (longitude) bilgileri birleştirilerek harita ekrana getirildiği zaman gösterilecek olan lokasyon (initiallocation) belirlenmekte ve bir işaretçi (marker) ile lokasyonun adı gösterilmektedir. Harita gösterimi için LeafletJS adında açık kaynak kodlu harita kütüphanesinden faydalanılmıştır. Harita üzerindeki enlem ve boylam bilgileri ise Cloudmade adı verilen geolokasyon (geolocation) bilgileri sunan bir sağlayıcıdan (provider) alınmıştır. Böylelikle lokasyon bilgisi içeren arama sonuçlarında son kullanıcıya bulunan lokasyonu harita üzerinde görme imkânı sunulmuştur. Haritaya ait enlem ve boylam bilgileri DBpedia'dan temin edildikten sonra sunucudan istemciye gönderilmektedir. Haritanın çizdirilmesi işlemi istemci tarafında yapıldığından

59 45 sunucu gereksiz yükten kurtarılarak sistemin daha performanslı olması amaçlanmıştır. Şekil 3.9. DBpedia üzerinden enlem ve boylam bilgisi içeren lokasyonları harita üzerinde gösteren pencerenin ekran çıktısı Şekil Enlem ve boylam bilgisi kullanılarak harita üzerinde lokasyon gösterimini sağlayan kod kesiti Freebase tümleştirmesi Freebase, 2010 yılında Google tarafından satın alınmış olan, içinde 40 milyondan fazla başlık ve 2 milyara yakın bilgi barındıran gelişmiş bir bilgi bankasıdır [31]. Semantik

60 46 web'in geliştirilmesindeki en önemli amaç, web üzerinden büyük bir veritabanı kurmak ve bu veritabanı içindeki özelleşmiş bilgi bankalarının birbirleriyle iletişim içinde olmasını sağlamaktır. Böylelikle herhangi bir kaynak hakkında daha detaylı bilgi içeren bilgi bankalarından faydalanılabilecektir. Linked Data projesi bu anlamda atılmış çok önemli bir adımdır. DBpedia, barındırdığı kaynakları başta YAGO, Freebase olmak üzere diğer bilgi bankalarıyla eşleştirmektedir. Bu bağlamda, geliştirilen sistemde de bütün sonuçlarda bu harici bağlantılardan (link) faydalanılmıştır. Eğer bulunan kaynaklar Freebase'i ithaf eden bağlantılara sahip ise cevaplar listelenirken yanında çıkan ikonla Freebase ile bağlantı kurulmuş ve tıklanıldığı zaman kaynağa ait Şekil 3.11'deki gibi Freebase üzerinden cevaplara ait bilgileri sunan sayfa pencere içinde gösterilmiştir. Benzer şekilde DBpedia üzerinden kaynağa ait anasayfa (homepage) bilgisi barınıyorsa bu da bir eylem ikonuyla belirtilmekte ve tıklandığı zaman kaynağın anasayfası pencere içinde gösterilmektedir. Şekil DBpedia aracılığıyla eşleştirilen kaynağa ait bilgileri içeren Freebase sayfası Arama önerileri Kullanıcının yaptığı her arama bir NoSQL veritabanı olan MongoDB'de saklanmaktadır. Soruların kaydedildiği tabloda veri çok olacağından ve tablo içinde aramaların performansı önem arz ettiğinden büyük veriler üzerinde hızlı arama yetenekleriyle ön plana çıkan NoSQL veritabanı tercih edilmiştir. NoSQL veritabanları dış anahtarlar (foreign keys)

61 47 kullanmadığından ötürü yüksek performansta okuma/yazma (read/write) işlemleri ve veri birleştirme (aggregation) sağlamaktadır [32]. Ayrıca bu sistemler ilişkisel veritabanlarına göre daha ölçeklenebilir yapıdadır ve çarpraz düğüm işlemleri için daha iyidir [33]. Kullanıcı, web arayüzünde yaptığı arama sonucunda bir sonuç bulamazsa, NoSQL veritabanında depolanan arama sorgularından benzer olanları tavsiye sistemi aracılığıyla kullanıcıya bir pencerede aracılığıyla sunulmaktadır. Cins isimlerde oluşacak hatalar, kullanıcı soruyu sormadan önce kontrol edilmekte ve düzeltme penceresi kullanıcıya sunulmaktadır. Ancak özel isimlerin yanlış yazımından ötürü meydana gelebilecek yazım hataları öngörülemeyeceği için tavsiye sistemi geliştirilmiştir. Geliştirilen tavsiye sistemi, bu tip durumlarda geçmişte yapılmış ve benzerlik gösteren aramaları, aranan özne türünü de gözönünde bulundurarak kullanıcıya sunmaktadır. Metinsel benzerlik için Levenshtein uzaklık algoritmasından faydalanılmıştır. find places in Germanyy doğal dil sorusu sorulurken yazım hatası gerçekleştiğinden sistemden cevap alınamamış ve Şekil 3.12'deki arama tavsiye penceresi sunulmuştur. Bu örnek için sistem tarafından bulunan Levenshtein uzaklık değerleri find places in Germany önerisi için 1, find places in Italy önerisi için 6 olarak bulunmuştur. Bulunan öneriler benzerlik değerlerine göre son kullanıcıya sunulmuştur. Şekil 3.13 de ise soru önerisi sorgusu gerçekleştirilmek üzere geliştirilen Java kodundan bir kesit sunulmuştur. Öncelikle önerilecek sorunun, mevcut soruyla metinsel ve cevap türü benzerlik kriterleri (criteria) tanımlanmıştır. Sonrasında ise önerilecek soruların cevabının bulunma şartı sorguya eklenmiştir. Tüm şartlar VE (AND) mantıksal işlemine tabii tutularak veritabanından nihai sorgulama gerçekleştirilmiştir. Levenshtein uzaklık algoritması ile hesaplanan benzerlik değerlerine göre sıralanarak arama önerileri son kullanıcıya sunulmuştur. Şekil Arama önerileri penceresi

62 48 Şekil Soru önerisi sorgusu gerçekleştiren kod bloğundan bir kesit Geçmiş aramalar Kullanıcının sistem üzerinde yapmış olduğu aramaları görüntüleyebilmesi için Şekil 3.14'de görüldüğü gibi geçmiş aramaları gösteren bir pencere sunulmaktadır. Bu sayede kullanıcı geçmiş aramalarını görüntüleyebilmekte ve tekrar benzer aramalar yapabilmektedir. Liste üzerinde her satır sonunda bulunan eylem (action) ikonuna tıklandığı zaman veya satıra iki defa tıklandığı zaman arama sorgusu otomatik olarak girilmiş olmaktadır. Bu şekilde kullanıcıların benzer aramaları daha hızlı bir şekilde yapmaları sağlanmaktadır. Şekil 3.15 de ise kullanıcıya ait geçmiş aramaların listelenmesini sağlamak üzere geliştirilen Java kodundan bir kesit sunulmuştur. Şekil Geçmiş aramaların görüntülendiği pencere

63 49 Şekil Kullanıcıya ait geçmiş aramaların listelenmesini sağlayan metottan bir kesit Arama motorları, forumlar ve mail servisleri gibi kullanıcı üyeliği gerektirmemektedir. Ancak birçok arama motoru bünyesinde barındırdığı servisleri bireyselleştirmek için kullanıcı hesapları sunmaktadır. Geliştirilen sistem benzer şekilde sistemi kullanabilmek için bireysel bir hesaba sahip olmayı zorunlu kılmamakla beraber kullanıcının geçmiş aramalarının sadece oturum (session) bazında değil; hepsinin listelenebilmesi için gerekli kılmaktadır. Eğer kullanıcı hesabıyla sisteme giriş yapmamışsa geçmişe yönelik aramaların kapsamı (scope) oturum temelli olmaktadır. Şekil 3.16'da sistem giriş ekranı sunulmuştur. Giriş ekranında sunulan bağlantı ile henüz üye olmamış kullanıcılar üyeliğe yönlendirilmektedir. Ayrıca kullanıcının şifresini unutması durumunda şifre hatırlatma bağlantısı giriş ekranında yer almaktadır. Şekil Kullanıcı sisteme giriş penceresi ekran görüntüsü

64 50 Şekil 3.17'de kullanıcı hesap oluşturma ekranı görüntülenmektedir. Kullanıcı hesapları, kullanıcı adı temellidir ve yeni kayıt oluşturulurken daha önce girilen kullanıcı adının kullanılıp-kullanılmadığı kontrol edilir. Eğer girilen kullanıcı adı daha önce kullanılmamışsa yeni kayıt oluşturulur. Kullanıcı giriş yapabilmesi için gerekli olan bilgilerini unutması durumunda Şekil 3.18'de olduğu gibi kullanıcıya sorulan ve sistemde var olması beklenilen adresine kullanıcıya ait sisteme giriş bilgileri gönderilmektedir. Girilen adresi sistemde kayıtlı değilse kullanıcıya uyarı verilmektedir. Şekil Kullanıcı kayıt penceresi ekran görüntüsü Şekil Kullanıcı şifre hatırlatma penceresi ekran görüntüsü

65 51 Sesli soru-cevap seçeneği Kullanıcıların doğal dil sorularını sesli olarak sorabilmesi, soru-cevap sisteminin hızlandırılması ve kolaylaşıtırılması açısından büyük önem arz etmektedir. Bu sayede engelliler için arama ve sorulara yanıt bulma imkânı da sağlanmış olmaktadır. Soruların sesli sorulabildiği gibi sorulara yönelik cevaplara ait özetler de sesli olarak yanıtlanmaktadır. Tanımlanan kısayol tuşu (Ctrl+Shift+A) ile sesli arama başlatılabilmektedir. Soruların kullanıcıya ait hatalardan (telaffaz hatası, ortam gürültüsü, gibi) ötürü algılanamaması durumunda engelliler de düşünülerek sesli uyarı verilmektedir. Bu sesli uyarıdan sonra kullanıcıya tekrar sözel soru sorma imkânı tanınmaktadır. Sesli doğal dil sorularının algılanabilmesi ve metine dönüştürülmesi için HTML5'in en önemli yeniliklerinden olan Web Speech API kütüphanesinden faydalanılmıştır. Web Speech API, henüz W3C standartı olmaması sebebiyle şuan için sadece Google Chrome sürüm 25 ve üstü tarafından desteklenmektedir. Geliştirilen sistemde bu kontrol yapılmakta ve istemci tarafında uygun tarayıcı (browser) bulunduğu takdirde bu özellik sunulmaktadır. Doğal dil sorularının testi ve algı seçiciliği için 0 ile 1 arasında bir güven değeri (confidence) belirlemek mümkündür. Uygulamada bu değer çeşitli dış etmenler (ses, gürültü, hışırtı vs.) göz önüne alınarak 0,75 olarak belirlenmiştir. Çizelge 3.7 de algı seçiciliği ve cevap oranının güven değerine göre değişimi sunulmuştur. Çizelge 3.7 den de görülebileceği üzere güven değeri arttıkça algı seçiciliği yükselmekte ve cevap oranı düşmektedir. Geliştirilen sistemde Web Speech API kütüphanesinin kullanılmasının sebebi, bu yaklaşımın tamamen istemci (client) tarafında çalışmasıdır. Çizelge 3.7. Ses algılama güven değerinin hassaslık ve cevap oranına göre değişimi Güven Değeri Algı Seçiciliği Cevap Oranı 0-0,25 Çok düşük Çok yüksek 0,25-0,5 Düşük Yüksek 0,5-0,75 Yüksek Yüksek 0,75-1 Çok yüksek Çok düşük Sorulara ait yanıtların sesli olarak son kullanıcıya aktarılması için Google Translate servisinden faydalanılmıştır. Servis, sorguya parametre olarak belirtilen dil ve metni sesli

66 52 olarak cevaplandırmaktadır. Servisten ses nesnesi olarak alınan cevaplar, gizli ve gömülü bir HTML bileşeni olarak işlenmektedir. Şekil 3.19'da sistemin sesli soru-cevap mekanizması diyagramı sunulmuştur. Şekil 3.20 de ise ses algılama ve doğru eşleşme kontrollerini gerçekleştirmek üzere geliştirilen Javascript fonksiyondan bir kesit sunulmuştur. Şekil Sesli soru-cevap mekanizması Şekil Ses algılama ve doğru eşleşme kontrol fonksiyonundan bir kesit

67 53 Yazım hatası kontrolü Gerek sesli gerekse metin olarak giriş yapılan aramalarda kullanıcıdan kaynaklı hatalara yönelik soruya karşılık yanıt bulunamaması durumunda önceki başlıklarda bahsedildiği gibi yanıt bulmuş önceki aramalar kullanıcıya önerilmektedir. Bu proaktif bir yaklaşımla kullanıcıdan kaynaklı oluşabilecek yazım hataları önlenmektedir. Böylece hem uygulama sunucusu kullanıcıdan kaynaklı yazım hatalarından dolayı cevabı bulunamayacak sorularla meşgul edilmemekte hem de kullanıcı daha kısa sürede aradığı cevabı bulabilmektedir. Kullanıcı sesli ya da metinsel olarak arama yaptığı anda sorulan doğal dil sorusu yazım kontrolünden geçirilmekte ve hata bulunması durumunda Şekil 3.21'de gösterilen pencere kullanıcıya sunulmaktadır. Hata bulunmaması durumunda ise kullanıcının sorusuna cevap aranmaya başlanmaktadır. Şekil 3.22 de ise yazım hatası denetimini gerçekleştirmek üzere geliştirilen Javascript fonksiyonundan bir kesit sunulmuştur. Yazım kontrol penceresinde aşağıdaki kontroller mevcuttur: Yoksay (Ignore): Yazım kontrolü yapılan kelimede belirlenen hatanın düzeltilmeden geçilmesini sağlar. Tümünü Yoksay (Ignore All): Yazım kontrolü yapılan kelimede belirlenen hataya ait tüm tekrarların düzeltilmeden geçilmesini sağlar. Değiştir (Replace): Yazım kontrolünde hata tespit edilen kelimenin seçilen tavsiye edilen seçilmiş kelime ile değiştirilmesini sağlar. Tümünü Değiştir (Replace All): Yazım kontrolünde hata tespit edilen kelimenin seçilen tavsiye edilen kelime ile cümlenin tamanındaki tüm tekrarlarında değiştirilmesini sağlar. Kaydet (Save): Yazım kontrolünde yapılan değişikliklerin kalıcı olmasını sağlar. İptal (Cancel): Yazım kontrolü penceresinin kapatılmasını sağlar.

68 54 Şekil Yazım hatası denetim penceresi Şekil Yazım hatası denetimini gerçekleştiren fonksiyondan bir kesit Sonuçların depolanması Geliştirilen sistem, tüm sorulara ait cevapları içeren referans (ID) numaralarını veritabanında varsayılan olarak 1 ay süreyle saklamaktadır. Bu süre geliştirici tarafından tanımlı olmakla beraber değişkenlik gösterebilmektedir. Böylelikle daha öncesinde

69 55 sorulmuş doğal dil soruları, önceki başlıklarda anlatılan tüm süreçler atlanarak doğrudan veritabanında saklanan cevap referans numaraları ile cevaplandırılmaktadır. Ayrıca veritabanında cevaba ait sadece referans numaraları saklandığından bilgiler her aramada güncelliğini korumaktadır. Referans numaraları integer bir değer olduğundan veritabanı arama ve indeksleme performansı en üst düzeyde olmaktadır. Tanımlı depolama süresini aşan sorular cevaplarıyla beraber geçersiz (invalid) sayılarak bu cevaplara ait soruların tekrar sorulması durumunda sistem açısından yeni bir soruymuş gibi ele alınmaktadır. Bu yaklaşımla sistemin ortalama cevap hızı 2 saniyeye kadar düşürülmüştür. Çizelge 3.8'de 3872 kayıt üzerinde sisteme kazandırılan performans kazancı sunulmuştur. Çizelge 3.8. Seçilen örnek sorulara ait cevapların depolanması sonucunda sistem üzerinde elde edilen arama performans kazançları Doğal Dil Sorusu Ortalama Cevap Süresi (sn.) Depolama Sonucu Cevap Süresi (sn.) Who is Barack Obama? Find places in Germany Who produce Saturnight? How tall is Michael Jordan? Where is Paris? Performans Kazancı (kat) Sorulara ait cevapların yedeklenerek veri sayısının artması sonucunda oluşabilecek arama sürelerinin uzaması göz önünde bulundurularak sistem kodlanan bir soru oluşturma betiğiyle elde edilen çeşitli sayıda veri karşısında test edilmiştir. Test sonuçları Şekil 3.23'den da görülebileceği üzere oldukça tatmin edici bulunmuştur. Sistem, 5 milyondan fazla depolanmış soru içinde aranan bir soruyu sadece 4,5 saniyede bulabilmektedir. Bu yüksek performansın başlıca iki sebebi bulunmaktadır: 1. Veri tabanı türü olarak NoSQL bir veritabanı (MongoDB) kullanılması 2. Veri tabanında sorulara ait cevaplara yönelik sadece referans değerlerinin tutulması ile depolanacak olan veri boyutunun minimize edilmesi

70 56 Şekil Depolanan çeşitli soru sayısına göre sistemin arama performansları Sosyal medya tümleştirmesi Go-Globe ve Social Jumpstart firmaları tarafından yapılan araştırmaya göre sosyal medyada 1 dakika içinde 2 milyon YouTube videosu izlenmekte, 700 bin Facebook durum paylaşımı, 700 bin Google araması yapılmakta ve Twitter üzerinden 175 bin tweet (maksimum 140 karakterlik serbest ileti) atılmaktadır [34, 35]. Twitter yetkilileri tarafından Mayıs 2013'de yapılan açıklamaya göre Twitter'da her gün 200 milyon kullanıcı tarafından 400 milyon tweet atılmaktadır [36]. Özellikle Twitter kurum-kuruluşlar, politikacılar [37], sivil toplum örgütleri ve hatta ülke başkanları gibi sahip olduğu çok çeşitli kullanıcı kitlesinden ötürü günümüzde birçok uygulama ve sistem için veri kaynağı olmaktadır. Daha çok kullanıcı, ürünler ve servisler hakkında yorum yaptıkça veya politik ve dini görüşlerini paylaştıkça mikroblog siteleri insanların duygu ve düşüncelerini daha iyi yansıtan önemli bir kaynak haline gelmektedir. Siyasi partiler sosyal medya üzerinden insanların kendilerini destekleyip-desteklemediğini öğrenebilirler. Sosyal kuruluşlar insanların güncel konularla ilgili fikirlerini alabilirler. Tüm bu bilgiler, sosyal medyada bulunan mikroblog servisleri ile her gün hoşlandıkları/hoşlanmadıkları şeyleri ve günlük yaşamla ilgili birçok konuda fikirlerini paylaşan kullanıcılar vasıtasıyla öğrenilebilmektedir [38]. Sosyal medyanın bu yadsınamaz gücünden faydalanarak cevaplara yönelik daha güncel ve detaylı bilgi sunmak amacıyla Şekil 3.24'de sunulan araç çubuğu aracılığıyla sosyal medya tümleştirmesi sağlanmıştır. Bu araç çubuğu sayesinde tek tıklamayla sorulara karşılık bulunan cevaplara yönelik daha detaylı sonuçlar Facebook,

71 57 Twitter ve Google üzerinden kullanıcılara sunulmaktadır. Şekil Sosyal medya tümleştirmesi için sunulan araç çubuğu

72 58

73 59 4. BULGULAR Doğal dilde sorulabilecek soru çeşidinin sonsuz oluşu ve her bir sorunun çeşitli biçimlerde sorulabilmesi sonucunda oluşan bu çeşitliliğin doğal dil soruları anlamlandırılırken doğru bir şekilde ele alınması önem arz etmektedir. Aynı manada fakat farklı biçimlerde sorulan soruların hepsinin cevabı aynı olduğundan sistem tarafından da bu soruların aynı şekilde yanıtlanması gerekmektedir. Örnek verecek olursak, Türkiye'nin en büyük şehri hangisidir? doğal dil sorusunun SPARQL sorgu karşılığı şu üçlüden oluşmaktadır: Subject: Turkey Predicate: dbprop:largestcity Object:?x. Aynı soru Türkiye'nin yüz ölçümü en geniş şehri hangisidir? şeklinde de sorulması mümkündür. Bunun gibi örnekler kolaylıkla çoğaltılabileceğinden bu çeşitliliklerin doğru bir şekilde eşleştirilerek aynı cevaba yönlendirilmesi çözüm noktası olarak düşünülmektedir. Semantik web ontoloji tanımla dili olan ve kaynak eşlemeyi sağlayan OWL dili ile çok çeşitliliğinin algılandıktan sonra semantik web kaynaklarının eşleştirilmesi ile çok biçimliliğin çözümüne yönelik bir önemli bir adım atıldığı düşünülmektedir. OWL bünyesinde sunduğu owl:sameas özelliği sayesinde semantik web kaynaklarının eşleştirilmesini ve farklı ontolojiler arasında geçiş yapılabilmesini sağlamaktadır. Bu sayede herhangi bir bilgi bankası üzerindeki bir kaynak, daha detaylı bilgi sunan özelleşmiş başka bir bilgi bankasıyla eşleştirilebilmektedir. Doğal dil ifadelerindeki çok çeşitliliğin anlaşılması doğal dil bilimi kapsamında üzerinde çalışılan konular arasındadır. Doğal dildeki soruların algılanıp, DBpedia son nokta servisi aracılığıyla sorgulanabilmesi için uygun ve geçerli (valid) SPARQL sorgularına dönüştürülmesi gerekmektedir. Bu dönüşüm bu zamana kadar yapılan çalışmalarda ya ön tanımlı desenler aracılığıyla doğal dil sorularının algılanması ya da doğrudan doğal dil işleme ve semantik web ontolojileri ile eşleştirilmesi şeklinde yapılmıştır. Sadece ön tanımlı desenlerin kullanılmasının sonsuz sayıda ve çeşitte doğal dil sorusu sorulabileceği göz önünde bulundurulursa sistemin cevaplayabileceği hedef soru kitlesini kısıtladığı düşünülmektedir. Ancak ön tanımlı desenler yeterince çoğaltılması durumunda daha çok doğal dil sorusunun algılanması ve uygun SPARQL sorgularına daha hızlı dönüştürülmesi sağlanacaktır. Diğer taraftan bu desenler dışında kalan soruları da cevaplayabilmek için ayrıştırılan doğal dil sorularının ontolojiler aracılığıyla uygun semantik kaynaklarla eşleştirilerek SPARQL sorgularının üretilmesi yaklaşımını da gerekli kılmaktadır.

74 60 Literatürde bu zamana kadar yapılan çalışmalar incelendiğinde sesli doğal dil soru-cevap seçeneğinin bulunduğu semantik web sisteminin sunulmadığı görülmüştür. Bu sebeple engelli web kullanıcılarının kullanabileceği bir doğal dil soru-cevap sistemi bulunmamaktadır. Sözel doğal dil ifadelerinin sistem tarafından doğru bir şekilde algılanması için çevredeki gürültü etmenleri, donanımsal yetersizlikler ve çeşitli telafuzlar göz önünde bulundurularak doğal dil ifadelerinin algılama doğruluğu noktasında esneklik gösterilmesi gerekmektedir. Ayrıca sorulan doğal dil sorularına karşılık bulunan cevapların engelli kullanıcılar tarafından anlaşılması için sözel olarak sunulması gerekmektedir. Birden çok cevap içeren sorularda ise engelliler tarafından diğer cevapların da öğrenilebilmesi için klavye yön tuşları ile cevaplar arasında geçiş yapılabilmesi gerekmektedir. Doğal dil sorularına yönelik cevapların bir sınırı olmadığından sorular cevaplanırken hem istemci hem de sunucu performansının gözetilmesi gerekmektedir. Örneğin sorulabilecek 1960 yılında doğan insanları göster sorusuna verilecek cevap sayısı oldukça çok olması muhtemeldir. Çok sayıda cevabı olan soruların cevaplandırılması eğer bir sınır koyulmazsa arama süresini uzatacaktır. Bu bağlamda, cevaplar listelenirken sayfalama (paging) desteğinin sunulması gerekmektedir. Sayfalama desteği ile sonuçlar gruplar halinde daha kısa sürede listelenebilecektir. Thriller'ın yapımcısı kimdir? gibi noktasal cevabı olan sorular için sayfa boyutunun son kullanıcı tarafından ayarlanabilir olması soru cevaplama hızını artıracaktır. Ostuni ve arkadaşları [39] Cinemappy isimli Linked Data'daki verilerden faydalanarak mobil (Android) film tavsiye uygulaması geliştirmiştir. Sistem, tavsiye ettiği filmlerle ilgili tüm verileri DBpedia son nokta servisinden elde etmektedir. Cinemappy'nin DBpedia'nın hem İngilizce hem de İtalyanca ontolojilerini birlikte kullanmasının sisteme karmaşıklık katacağı düşünülmektedir. Bunun yerine bulunan kaynağın istenilen dildeki çevirilerini Wikipedia'dan doğrudan elde etmeleri performans olarak sistemi hızlandırılacağı düşünülmektedir. Ayrıca bu şekilde İngilizce ve İtalyanca ile kısıtlanan dil desteği sınırının da ortadan kaldırılabileceği düşünülmektedir. Ell ve arkadaşları [40] SPARTIQULATION isimli SPARQL sorgularını son kullanıcı tarafından da okunabilmesi, anlaşılabilmesi doğal dil ifadelerine dönüştüren ve bunu sözsel

75 61 bir ifadeyle son kullanıcıya sunan bir sistem geliştirmiştir. SPARTIQULATION, doğal dil üretim sistemlerinden (Natural Language Generation - NLG) esinlenerek ve dil bilimi ağırlıklı olarak kullanılarak geliştirilmiş [4]. SPARTIQULATION, genelden özele doğru giderek aranan özneyi bulmaya çalışmaktadır. Sistem, RDF ve RDFS tabanlı bir yaklaşım öne sürdüğünden dolayı tanımlı olan herşey en temel tür olan rdf:thing'den türetilmektedir. Doğal dil sorusunun algılanıp, soruda varolan kısıtlamalar göz önüne alınarak özne şekillendirilmektedir. SPARTIQULATION, RDF ve RDFS kaynak tanımlama dillerini kullanmaktadır; ancak bu dillerdeki yetersizlikleri gidermek için geliştirilmiş olan FOAF, OWL gibi daha üst düzey kaynak tanımlama dillerinden faydalanılmamasından ötürü öznenin bulunmasının zorlaşacağı ve doğruluk oranını düşebileceği düşünülmektedir. Sistemin sadece gömülü mesaj tiplerini temel alarak çalışması esneklik ve genişletilebilirlik açısından bir dezavantaj oluşturduğu düşünülmektedir. Geliştirilen sistemde eğitim verileri Apache OpenNLP kütüphanesinin yeni sürümleriyle birlikte sürekli güncellenmekte ve geliştirilmektedir. Geliştirilen sistem de SPARTIQULATION gibi bulunan cevapları sesli olarak sunmaktadır; ancak SPARTIQULATION dezavantajı seslendirilecek olan sözel ifadeleri bilgi bankalarından hazır olarak değil de elde edilen kaynaklardan kendilerinin elde etmesidir. Bu yaklaşımın hem cevap süresini uzatacağı hem de dönüşüm esnasında hatalara sebep olabileceği düşünülmektedir. Bizim geliştirilen sistemde bu bilgiler DBpedia'dan hazır olarak alınmakta ve seslendirilmektedir. DBpedia'dan elde edilen bu bilgilerin sorumlu kişiler tarafından sürekli denetleniyor ve düzeltiliyor olması geliştirilen sistemin daha güvenilir ve tutarlı cevaplı vermesini sağlamaktadır. Lopez ve arkadaşları [41] PowerAqua adında soru cevaplayan sistem sunmuştur. PowerAqua'nın geliştirilen sistemden en bariz farkı çoklu veri kaynağı kullanmasıdır. Bu yaklaşım, kaynakla ilgili daha fazla bilgiye erişim sağlayabileceği gibi bilgi bankaları arasındaki uyumsuzluk sebebiyle tutarsız sonuçlar üretme tehlikesi de barındırmaktadır. Çünkü bilgi bankalarının çok çeşitli ontolojiler üzerinde çalışmasından ötürü ortak bir kaynak tanımları bulunmamaktadır. Bu çeşitlilikten dolayı bir bilgi bankasındaki kaynağı başka bir bilgi bankasıyla eşleştirmek her zaman mümkün olmamaktadır. Bizim geliştirilen sistem, veri kaynağı olarak DBpedia'yı kullanmakta ve DBpedia'nın kendi iç ontolojisi üzerinden Freebase gibi diğer bilgi bankalarına erişim sunmaktadır. Bu yaklaşımla sistemimiz uyumsuz verilerden barındırılarak homojenliği garanti etmektedir.

76 62 Damljanovic ve arkadaşları [42] FREyA isimli bir sistemi sunmuştur. FREyA'nin en büyük dezavantajı sistemin kullanıma başlanmadan önce eğitime tabii tutulma ihtiyacının olmasıdır. Sistem mekanizmasının kullanıcılardan alınan geri bildirimlere (feedback) göre şekillenmesinden ötürü farklı kullanıcı gruplarına göre farklı mekanizmaların ortaya çıkması tehlikesini doğurmaktadır. Yanlış kullanıcı yönlendirmesinden veya kullanıcı görünümlü saldırılar olması durumunda sistemin işleyişinin etkileneceği ve yanlış ya da tutarsız cevapların verilme olasılığının artacağı düşünülmektedir. Geliştirilen sistem, kullanıma hazır olabilmesi için kullanıcı ve kullanıcı geri bildirim mekanizmalarına ihtiyaç duymamaktadır. Sistemimiz, kullanıcı geri bildirimlerini kullanıcı temelli değerlendirdiğinden sistem mekanizması bundan etkilenmemektedir. Bu yaklaşımla çalışma mekanizması yetersiz kullanıcı kitlesin karşısında dahi değişmeyen daha kararlı ve kararlı bir sistem sunulmaktadır. Ferrucci ve arkadaşları [43] Watson isimli ve oldukça karmaşık bir sistem sunmuştur. IBM tarafından sunulan rapora göre Watson, bünyesinde barındırdığı birçok alt modül ve 100'den fazla farklı teknikle doğal dilleri analiz ederek kaynak teşhisi etmekte, varsayımlar bulmakta ve üretmekte, bu varsayımları birleştirip değerlendirmektir [44]. Unger ve Cimiano [45] ön tanımlı desenlerin kullanılarak soru cevaplandırılması temeline dayanan bir sistem geliştirmiştir. Bu yaklaşımın karmaşık sorular karşısında sadece ön tanımlı desenlerin kullanılmasından ötürü sistemin cevaplayabileceği soru çeşidine kısıtlama getireceği düşünülmektedir. Ayrıca sonsuz adet soruya sonlu sayıda ön tanımlı desenle cevap verilmeye çalışıldığından başarı oranının çok çeşitli veri setleri karşısında düşük olabileceği düşünülmektedir. Bu yaklaşımın başarı oranı düşük, ancak tanımlı desenlere uyan sorularda daha doğru ve hızlı cevaplar vereceği düşünülmektedir. Geliştirilen sistem hem ön tanımlı desenlerden hem de gelen sorguya göre DBpedia ontoloji eşleştirmesinden faydalandığından daha geniş soru kitlesine açık olduğu düşünülmektedir. Ayrıca geliştirilen sistem doğal dil sorgusuyla birebir eşleşen DBpedia özelliği bulanamasa bile özne ile alakalı sonuçlar bulmaktadır. Örneğin Michael Jordan'un sayı rekoru kaçtır? gibi bir doğal dil sorusu karşısında geliştirilen sistem DBpedia üzerinden doğrudan cevap bulamasa bile Michael Jordan'la ilgili bilgiler sunulmaktadır. Böylelikle kullanıcının aradığı cevaba bir adım daha yaklaştırılması amaçlanmaktadır. Pythia [46] dilbilimsel analizler ışığında kendi sözlüğünü oluşturmakta ve karmaşık

77 63 sorguları dilbilimsel temellere dayandırarak çözmektedir. Geliştirilen sistem DBpedia'nın ontolojisi aracılığıyla sunmuş olduğu özelliklerden faydalanarak sorguları üretmeye çalışmaktadır. DBpedia'nın sürekli güncellenmesi ve geniş bir geliştirici kitlesinin olmasından dolayı sistem geliştirilirken kendi sözlüğümüzün oluşturulması gibi bir yol izlenmemiştir. Yahya ve arkadaşları [47] soruları kelime ve kelime gruplarına ayırdıktan sonra bu ayrışımları semantik öğeler, sınıflar ve ilişkilerle eşleştirmektedir. Geliştirilen sistem, semantik bileşenleri üçlüler halinde gruplandıktan sonra nihai SPARQL üçlülerini oluşturarak karmaşık sorguları ele almaya çalışmaktadır. Doğal dil sorularına yönelik bulunan cevapları kullanıcı dostu ve herkes tarafından anlaşılabilir bir formatta sunmamaları sistemin kullanılabilirliği açısından zorluk oluşturduğu düşünülmektedir. Geliştirilen sistemde bulunan sonuçlar hem sözel hem de görsel olarak son kullanıcıya Şekil 3.7'de görüntülenen web arayüzünde detaylı olarak sunulmaktadır. Sistemimiz, web'in ve web kaynaklarının mümkün olduğunca çok web kullanıcısına açılması hedefi doğrultusunda geliştirilmiştir. Kabakuş ve Doğdu [4] tarafından sunulan sistem doğal dil sorularını sadece ön tanımlı desenlere göre ele almaktadır. Bu yaklaşımla ön tanımlı desenler dışına çıkabilecek sorular cevaplandırılamamaktadır. Geliştirilen sistemde hem ön tanımlı desenlerden hem de DBpedia tarafından sunulan ontoloji üzerinde anlık olarak üretilen çözümlerden faydalanılmaktadır. Ayrıca sunulan sistemde sorulan her soru her zaman yeni bir soruymuş gibi ele alınmaktadır. Geliştirilen sistemde ise sorular, cevap referans numaralarıyla birlikte 1 ay süreyle veritabanında saklanmaktadır. Bu süre içerisinde veritabanında depolanan soruların tekrar sorulması durumunda cevaplar veritabanında depolanan DBpedia referans numaraları ile elde edilmektedir. Geliştirilen sistemin sunduğu dinamik sonuç sayısı sayesinde kullanıcılar, sordukları soruların cevap kümesi genişliğine göre sayfa başına listenelecek cevap sayısını belirleyebilmektedir. Ancak sunulan sistemde tüm sorular aynı genişlikte cevap kümesi varmış gibi ele alınmaktadır. Bu da noktasal cevabı olan sorularda gereksiz zaman kaybına sebep olacaktır. Yukarıdaki sistemlerin hiçbirisinde sesli arama ve cevaplandırma seçeneği sunulmamaktadır. Geliştirilen sistem, bu yaklaşımla hem kullanıcı hedef kitlesini engellileri de içine alacak şekilde artırmakta hem de kullanıcıların sistemi daha etkileşimli

78 64 ve daha hızlı kullanabilmesini sağlamaktadır. Geliştirilen sistem bu açıdan da diğerlerinden ayrılmaktadır. Şekil 4.1 ve Şekil 4.2 de geliştirilen sistem ile Google arama motorunun aynı aramalara karşılık bulunan cevaplar görüntülenmiştir. Geliştirilen sistem, aramaları algılayıp noktasal cevaplar bulduğundan yanlış ya da ilgisiz sonuçlar listelenmemektedir. Ancak Google, kelime tabanlı aramaları da sonuçlarına dâhil ettiğinden dolayı bulunan sonuçlar arasında yapılan aramayla doğrudan ilişkili olmayan sonuçları da listelemektedir. Şekil 4.1. Türkiye deki yerleşim yerleri sorusuna geliştirilen sistemin bulduğu cevaplar

79 Şekil 4.2. Türkiye deki yerleşim yerleri sorusuna Google tarafından bulunan cevaplar 65

80 66

81 67 5. SONUÇ VE DEĞERLENDİRME Doğal dil soru çeşidinin olasılığı göz önüne alındığında tüm doğal dil sorularını algılayan bir sistemin oluşturulması karmaşık bir problem olarak ortaya çıkmaktadır. Geliştirilen sistemde sorulan sorulara doğru cevaplar bulunamasa dahi kullanıcıların sorularına en yakın cevabı bulmak ve/veya kullanıcıları doğru cevaba yönlendirmek için aranan cevaplarla ilgili sonuçlar kullanıcılara sunulmaktadır. Doğal dil soru-cevap sistemleri incelendiğinde sadece ön tanımlı desenler kullanarak çözüm üreten sistemlerde, üretilebilecek SPARQL sorgu ve cevaplanabilecek soru kümesi çeşitliliğinin kısıtlandığı gözlemlenmiştir. Ancak bu şablonlara uyan sorular olduğu zaman cevap doğruluğu ve tutarlılığının arttığı gözlemlenmiştir. Ayrıca doğal dil sorularının ayrıştırılmasıyla elde edilen yüklemlerle eşleştirilebilecek DBpedia ontolojisinde tanımlı uygun özelliklerin bulunması her zaman mümkün olmadığı tez çalışması boyunca deneyim edilmiştir. Bu sebeplerle geliştirilen sistemde hem ön tanımlı desenler hem de anlık ontoloji eşleştirmesinden faydalanılmıştır. Bu sayede mümkün olduğunca çok sayıda doğal dil sorusuna cevap verilmesi hedeflenmiştir. Geliştirilen sistemde sorulan tüm sorular cevaplarıyla birlikte veritabanında varsayılan olarak 1 ay süreyle saklanmaktadır. Bu süre zarfında aynı sorunun tekrar sorulması durumunda cevaplar, doğal dil işleme ve SPARQL sorgu hazırlama süreçlerinden geçirilmeyerek doğrudan veritabanında saklanan DBpedia referanslarından bulunmaktadır. Bu yaklaşımla sistem sorulan soruya göre 2-12 kat hızlandırılmıştır. Soruların veritabanında depolanması ve sorunun cevabının aranması cevaplara ait sadece referansların saklanması ve ilişkisel olmayan (NoSQL) bir veritabanı (MongoDB) kullanılması arama işlem hızını önemli ölçüde artırmıştır. Geliştirilen sistem, önceden sorulmuş ve veritabanında depolanmış bir soruya ilişkin arama işlemini 5 milyondan fazla soru arasında 4,5 saniyede gerçekleştirmiştir. Depolanan sorular, 1 ay süre içinde tekrar sorulmazsa cevapların güncelliğini yitirebileceği göz önünde bulundurularak sistem tarafından otomatik olarak silinmektedir. Sistemde cevaplara ait sadece referanslar saklanmakta ve bu şekilde cevaba ait detayların güncelliği sağlanmaktadır. Geliştirilen sistem engelli web kullanıcıları da göz önünde bulundurularak sesli arama ve

82 68 cevaplama seçeneği de sunmaktadır. Doğal dilde aramanın en kolay şekilde sözlü olarak yapılabileceği düşünülmektedir. Doğal dilde sözlü soru-cevap seçeneği engellilere sistem aracılığıyla arama yapabilmesini, tüm kullanıcılar için de arama süreci kolaylaştırmakta ve hızlandırmaktadır. Doğal dil ifadelerinin doğru bir şekilde algılanması için çevredeki gürültü etmenleri, donanımsal yetersizlikleri ve telafuz hataları (esneklikleri) göz önünde bulundurularak sistemde %75'lik algılama doğruluk sınırı (threshold) tanımlanmıştır. Sistem klayve yön tuşları ile sorulara yönelik bulunan cevaplar arasında gezinmeyi sağlamakta, seçilen her bir cevap seslendirilmekte ve bu şekilde engelliler için doğal dil soru-cevap süreci tamamlanmaktadır. Geliştirilen sistemde sunulan dinamik sayfalama desteği ile arama sonucunda listelenecek cevaplar kullanıcı tanımlı sayıda gruplara bölünerek daha hızlı bulunması ve hem istemci tarafında hem de sunucu tarafında performans iyileştirilmesi sağlanmıştır. Hem DBpedia'nın sunduğu son nokta servis web arayüzü hem de literatürde bu zamana kadar ulaşabildiğimiz çalışmalarda kullanıcı tanımlı dinamik sayfalama özelliğinin bulunmadığı gözlemlenmiştir. Dinamik sayfalama ile sistemin sorulara cevap bulma hızı 2 ile 2,5 kat arasında artırılmıştır. Son kullanıcının sistemi kolay kullanabilmesi için web arayüzü kullanıcı-dostu (userfriendly) tasarımlarımları temel alınarak geliştirilmiştir. Arama sonucunda bulunan cevaplar bir liste(grid) üzerinde gösterilmiş ve cevaplara ait detaylar bir panel üzerinden sunulmuştur. Bu panel üzerinde her cevaba ait DBpedia'dan elde edilen özet bilgisi, varsa anasayfa, ilişkili Freebase tanıtım sayfası ve harita bilgisi son kullanıcıya sunulmuştur. Günümüzde sosyal medyanın etkin bir şekilde kullanıldığı düşünülerek sisteme sosyal medya tümleştirmesi eklenmiştir. Ancak bu noktada elde edilen cevapların doğruluğu konusu bu tezin kapsamı dışında başka bir akademik problem olarak karşımıza çıkmaktadır. Sistem EK-3'de sunulan en çok kullanılan İngilizce soru desenlerinin %75'ini doğrudan, %87,5 unu ise dolaylı olarak cevaplandırabilmektedir. Nihai olarak bu başarım sonuçları, doğal dil sorularının yüklemleriyle DBpedia üzerinde tanımlı olan özelliklerin benzerlik oranlarına bağlı olmaktadır. Bu tez çalışmasının kapsamında sistemin en iyileme çalışmalarının sürdürülmesinde

83 69 aşağıdaki hususların göz önünde bulundurulmasında yarar görülmektedir. Bu hususlar; Daha gelişmiş bir doğal dil algılama ve ontoloji eşleştirme mekanizması sağlanarak sistemin daha fazla soru çeşidine cevap verebilmesinin sağlanması, Linked Data bulutunda bulunan kendi alanında özelleşmiş diğer bilgi bankalarından da faydalanabilmek ve daha karmaşık sorgular üretebilmek için bilgi bankaları üzerindeki yapısal tanımlamaların ilişkilendirilmesi, Sistem veri kaynağı olarak bir web servisten beslendiğinden cevap arama süresinin düşürülmesi için geliştirilen sistem açısından süreci etkileyen en önemli etken üretilen SPARQL sorgusudur. Sistem üzerinde bu SPARQL sorgu en iyileme çalışmaları için yöntem geliştirilmesi olarak sıralanabilir.

84 70

85 71 KAYNAKLAR 1. Berners-Lee, T., Hendler, J., Lassila, O. (2001). The Semantic Web. Sci. Am., 284: İnternet: Metz, C. (Mart 2007). Web 3.0. PCMag. URL: cle2%2f0%2c2817%2c %2c00.asp&date= , Son Erişim Tarihi: Bizer, C., Heath, T., Berners-Lee, T. (2009). Linked data-the story so far. Int. J. Semant. Web Inf. Syst., 5: Kabakuş, A.T., Doğdu, E. (Eylül 2013). Linked Data Üzerinden Doğal Dil Sorgularını Cevaplayan Sistem. 7. Ulusal Yazılım Mühendisliği Sempozyumu (UYMS 13), İzmir, CEUR-WS.org, ceur-ws.org/vol-1072/submission15.pdf. 5. Bizer, C., Lehmann, J., Kobilarov, G., Auer, S., Becker, C., Cyganiak, R., Hellmann, S. (2009). DBpedia - A crystallization point for the Web of Data. Web Semant. Sci. Serv. Agents World Wide Web, 7: Lehmann, J., Schüppel, J., Auer, S. (2007). Discovering Unknown Connections the DBpedia Relationship Finder. 1. SABRE Sosyal Semantik Web Konferansı (CSSW 07), Leipzig, Almanya. 7. İnternet: DBpedia. (Haziran 2014). DBpedia Hakkında Sayfası. URL: ate= , Son Erişim Tarihi: İnternet: Linked Data. (Eylül 2011). Linking Open Data bulutu. URL: cloud.net%2fversions%2f %2flod-cloud_colored.png&date= , Son Erişim Tarihi: İnternet: W3C. (Kasım 2009). W3C Semantic Web Frequently Asked Questions. URL: FFAQ%23relateweb&date= , Son Erişim Tarihi: Gençoğlu, B.K. (2007). Design and Implementation of An Example Semantic Web Based System. Yayınlanmamış Yüksek Lisans Tezi, Dokuz Eylül Üniversitesi Fen Bilimleri Enstitüsü, İzmir. 11. İnternet: Rapoza, J. (Mayıs 2006). SPARQL Will Make the Web Shine. eweek. URL:

86 72 2Fa%2FApplication-Development%2FSPARQL-Will-Make-the-Web- Shine%2F&date= , Son Erişim Tarihi: Segaran, T., Evans, C., Taylor, J. (2009). Programming the Semantic Web. Amerika Birleşik Devletleri: O Reilly Media, İnternet: Hawke, S., Herman, I., Archer, P., Prud'hommeaux, E. (Haziran 2013) W3C Semantic Web Activity. W3C. URL: Fsw%2F&date= , Son Erişim Tarihi: İnternet: W3C. (Şubat 2014). RDF 1.1 Concepts and Abstract Syntax. URL: rdf11-concepts%2f&date= , Son Erişim Tarihi: İnternet: W3C. (Şubat 2014). RDF Vocabulary Description Language 1.0: RDF Schema. URL: rdf-schema%2f&date= , Son Erişim Tarihi: Gruber, T.R. (1995). Toward principles for the design of ontologies used for knowledge sharing?. Int. J. Hum. Comput. Stud., 43: İnternet: W3C. (Şubat 2004). OWL Web Ontology Language Overview. URL: owl-features%2f&date= , Son Erişim Tarihi: İnternet: W3C. (Ocak 2008). SPARQL Protocol for RDF. URL: rdf-sparql-protocol%2f&date= , Son Erişim Tarihi: Allemang, D., James, H. (2008). Semantic Web for the Working Ontologist. Birleşik Amerika Devletleri: Morgan Kaufmann, 84, Doğdu, E., Şenkul, P. (2012). Semantik Web ve Bilgi Bankaları Çalıştayı, Ankara, Türkiye. 21. Auer, S., Dietzold, S., Riechert, T. (2006). OntoWiki A Tool for Social, Semantic Collaboration. 5. Uluslararası Semantik Web Konferansı, Berlin, Almanya. 22. Biçer, V. (2007). Architecture specification of service-oriented systems through semantic Web technologies, Yayınlanmamış Yüksek Lisans Tezi, Orta Doğu Teknik Üniversitesi Fen Bilimleri Enstitüsü, Ankara. 23. Hasan, S.S., Isaac, R.K. (2011). An integrated approach of MAS-CommonKADS, Model View Controller and web application optimization strategies for web-based expert system development. Expert Syst. Appl., 38:

87 Varma, V. (2009). Software Architecture: A Case Based Approach, Hindistan: Pearson Education India, İnternet: Groner, L. (Temmuz 2012). ExtJS 4 MVC Architecture Mind Map. URL: oianeg%2fextjs-4-mvc-architecture-mind-map &date= , Son Erişim Tarihi: İnternet: Zeroturnaround. (Mayıs 2012) Zeroturnaround Developer Productivity Report URL: p-content%2fuploads%2f2012%2f05%2fzeroturnaround-developer-productivityreport-2012.pdf&date= , Son Erişim Tarihi: Banker, K. (2011). MongoDB in Action. Birleşik Amerika Devletleri: Manning Publications, Leavitt, N. (2010). Will NoSQL Databases Live Up to Their Promise?. Computer, 43 (2): Okman, L., Gal-Oz, N., Gonen, Y., Gudes, E., Abramov, J. (2011). Security Issues in NoSQL Databases. 10. IEEE Uluslararası Hesaplama ve İletişim Güvenliği, Gizliliği ve Güvenilirliği Konferansı, Changsha, Çin. 30. Lindörfer F. (2004). Semantic web frameworks, Basel Üniversitesi, İnternet: Freebase. (2014) Freebase Anasayfası. URL: = , Son Erişim Tarihi: Bonnet, L., Laurent, A., Sala, M., Laurent, B., Sicard, N. (2011). Reduce, You Say: What NoSQL Can Do for Data Aggregation and BI in Large Repositories. 22. Uluslararası Veri tabanı ve Uzman Sistemler Çalıştayı (DEXA 11), Toulouse, Fransa. 33. Verma, A., Llora, X., Venkataraman, S., Goldberg, D.E., Campbell, R.H. (2010). Scaling ecga model building via data-intensive computing. IEEE Evrimsel Hesaplama Kongresi (CEC 2010), Barcelona, İspanya. 34. İnternet: Go-Globe. (Haziran 2013). İnsanlar çevrimiçi olarak ne kadar sık iletişimde bulunuyorlar? URL: m%2fwp-content%2fuploads%2f2013%2f06%2finfographic-how-often-peopleinteract-online.jpg&date= , Son Erişim Tarihi: İnternet: Social Jumpstart (Mart 2012). Sosyal medyada bir dakika. URL: 2Fwp-content%2Fuploads%2F2012%2F03%2Fone-minute-social-mediainfographic.jpg&date= , Son Erişim Tarihi:

88 İnternet: Wickre, K. (Mart 2013) Celebrating #Twitter7. Twitter. URL: 3%2Fcelebrating-twitter7&date= , Son Erişim Tarihi: İnternet: Cheng, A., Evans, M. and Koudas, N. (Ekim 2009). Inside the Political Twittersphere. URL: nsidetwitter%2fpolitics%2f&date= , Son Erişim Tarihi: Pak, A. and Paroubek, P. (2010). Twitter as a Corpus for Sentiment Analysis and Opinion Mining. 7. Uluslararası Dil Kaynakları ve Değerlendirme Konferansı (LREC 10), Valletta, Malta. 39. Ostuni, V. C., Gentile, G., Noia, T. D., Mirizzi, R., Romito, D., Sciascio, E. D. (2013). Mobile Movie Recommendations with Linked Data. Uluslararası Bilgi İşleme Federasyonu, Regensburg, Almanya. 40. Ell, B., Vrandecic, D., Simperl, E. (2012). SPARTIQULATION: Verbalizing SPARQL queries. Linked Data ile etkileşim çalıştayı, Heraklion, Yunanistan. 41. Lopez, V., Fernández, M., Motta, E., Stieler, N. (2012). PowerAqua: Supporting users in querying and exploring the Semantic Web. Semant. Web, 3: Damljanovic, D., Agatonovic, M., Cunningham, H. (2011). FREyA: an Interactive Way of Querying Linked Data using Natural Language. Linked Data üzerinden Soru Cevaplama Çalıştayı (QALD), Heraklion, Yunanistan, Ferrucci, D., Brown, E., Chu-Carroll, J., Gondek, D., Kalyanpur A., Lally, A., Murdock, W., Nyberg, E., Prager, J., Schlaefer, N. ve Welty C. (2010). Building Watson: An Overview of the DeepQA Project. AI Magazine, 31(3): Watson A System Designed for Answers (2011). IBM Syst. Technol. 45. Unger, C., Bühmann, L. (2012). Template-based question answering over RDF data. 21. Uluslararası World Wide Web Konferansı, Lyon, Fransa. 46. Unger, C., Cimiano, P. (2011). Pythia: Compositional Meaning Construction for Ontology-Based Question Answering on the Semantic Web. Natural Language Processing and Information Systems, Yahya, M., Berberich, K., Elbassuoni, S., Ramanath, M., Tresp, V., Weikum, G. (2012). Natural language questions for the web of data. Doğal Dil İşleme ve Hesaplamalı Doğal Dil Öğrenme Üzerine Deneysel Yöntemler Tümleşik Konferansı (EMNLP -CoNLL 12), Jeju Island, Kore.

89 EKLER 75

90 76 EK-1. Çizelge 1. Veritabanında tutulan düzensiz fiiller v1 v2 v3 be was, were been bear Bore born beat Beat beaten become Became become begin Began begun bring brought brought build Built built buy bought bought catch caught caught choose chose chosen come came come cost cost cost cut cut cut do did done draw drew drawn drink drank drunk drive drove driven eat ate eaten fall fell fallen feed fed fed feel felt felt fight fought fought find found found fly flew flown forget forgot forgotten get got got give gave given go went gone have had had

91 77 EK-1. (devam) Çizelge 1. Veritabanında tutulan düzensiz fiiller v1 v2 v3 hear heard heard keep kept kept know knew known learn learnt learnt leave left left let let let lose lost lost make made made mean meant meant meet met met pay paid paid put put put read read read ring rang rung run ran run say said said see saw seen sell sold sold send sent sent show showed shown shut shut shut sit sat sat sleep slept slept speak spoke spoken spend spent spent stand stood stood steal stole stolen swim swam swum take took taken

92 78 EK-1. (devam) Çizelge 1. Veritabanında tutulan düzensiz fiiller v1 v2 v3 teach taught taught tell told told think thought thought understand understood understood wake woke woken wear wore worn win won won write wrote written

93 79 EK-2. Çizelge 2. Linked Data üzerinde tanımlı ve erişime açık olan veri setleri Veri Seti Adı Advogato BBC Music BBC Programmes Bio2RDF CIA Factbook Craigslist CrunchBase DailyMed data.gov data.gov.uk Data-Gov Wiki DBLP DBTropes DBpedia dbpedia lite dbtune Diseasome doapspace.org DrugBank ECS School Southampton ESWC2006 Conference data.semanticweb.org Eurostat Countries and Regions Food and Agriculture Organization of the United Nations (FAO) geopolitical ontology flickr wrappr Veri Seti Erişim Adresi urce/

94 80 EK-2. (devam) Çizelge 2. Linked Data üzerinde tanımlı ve erişime açık olan veri setleri Veri Seti Adı Freebase Gene Ontology Annotations Chris Mungall (Berkeley Drosophila Genome Project) German National Library PND and SWD Geonames GeoSpecies Knowledge Base GovTrack.us Hungarian National Library OPAC and Digital Library Univeristät Berlin ISWC and ASWC 2007 Conference Data Jamendo Music LastFM wrapper Lexvo.org Library of Congress Subject Headings as SKOS Linked Data Ligado nos Políticos lingvoj.org LinkedCT.org - Linked Data Source of Clinical Trials Linked Movie DataBase (LinkedMDB) Linked Sensor Data Veri Seti Erişim Adresi ARQL-InSitu

95 81 EK-2. (devam) Çizelge 2. Linked Data üzerinde tanımlı ve erişime açık olan veri setleri Veri Seti Adı Mannheim University Library MindSwap MusicBrainz MySpace wrapper New York Times Linked Open Data - Beta News about the Semantic Web Open Archives Demo OpenCyc OpenGuides Open Election Data Ordnance Survey data from the UK overdogg.com PDB2RDF Project Gutenberg Catalog Pressemappe: 20th Century Press Archives RAMEAU RDF Book Mashup RDFohloh Revyu RKB Explorer Data Robots.net Semantic Web Community Wiki SemanticBible SemanticWebCentral Veri Seti Erişim Adresi

96 82 EK-2. (devam) Çizelge 2. Linked Data üzerinde tanımlı ve erişime açık olan veri setleri Veri Seti Adı SIDER SKOS Data Zone Southampton Pubs STW Thesaurus for Economics TalkDigger Telegraphis.net Uberblic.org UMBEL (Upper Mapping and Binding Exchange Layer) UniProt US Census US Securities and Exchange commission's EDGAR database Wikicompany Watchdog.net WordNet Wordnet 3.0 YAGO ontology Colibrary Web API LinkedGeoData.org Veri Seti Erişim Adresi yago-resources-now-retrievable-on-the-web/

97 83 EK-3. Çizelge 3. En çok kullanılan İngilizce soru desenleri ve sistem tarafından cevaplanma durumu Soru Deseni Kesin Cevap Kısmi Cevap What + + When + + Where + + Who + + How Which Whom + +

98 84 ÖZGEÇMİŞ Kişisel Bilgiler Soyadı, Adı : KABAKUŞ, Abdullah Talha Uyruğu : T.C. Doğum Tarihi ve Yeri : , Erzurum Medeni Hali : Evli Telefon : talha.kabakus@ibu.edu.tr Eğitim Derecesi Okul/Program Mezuniyet Tarihi Yüksek Lisans Gazi Üniversitesi/Bilgisayar Mühendisliği Devam ediyor Lisans Çankaya Üniversitesi/ Bilgisayar Mühendisliği 2010 Lise Özel Yavuz Selim Lisesi 2006 İş Deneyimi, Yıl Yer Görev Akgün Yazılım Yazılım Uzmanı 2012 Türk Telekom Mühendis 2012-devam ediyor Abant İzzet Baysal Üniversitesi Yazılım Uzmanı Yabancı Dil İngilizce Yayınlar 1. Kabakuş, A.T. (2013). Object Oriented Programming Approaches for JavaScript. Erciyes Üniversitesi Fen Bilimleri Enstitüsü Dergisi. 2. Kabakuş, A.T., Doğdu, E. (2013). Linked Data Üzerinden Doğal Dil Sorgularını Cevaplayan Sistem. 7. Ulusal Yazılım Mühendisliği Sempozyumu (UYMS 2013), İzmir, Türkiye, ceurws.org/vol-1072/submission15.pdf. 3. Kabakuş, A.T., Çetin, A. (2014). Semantic Question and Answer System for Distance Education. Erciyes Üniversitesi Fen Bilimleri Enstitüsü Dergisi. Hobiler Programlama, doğa, fotoğrafçılık, kitap okuma, masa tenisi, sinema

99 GAZİ GELECEKTİR...

WEB 3.0 TEKNOLOJİSİNİN AÇIK KAYNAK YAZILIMLARLA UYGULANMASI

WEB 3.0 TEKNOLOJİSİNİN AÇIK KAYNAK YAZILIMLARLA UYGULANMASI XVIII. AKADEMİK BİLİŞİM KONFERANSI AB 2016 30 Ocak - 5 Şubat 2016 Adnan Menderes Üniversitesi - AYDIN WEB 3.0 TEKNOLOJİSİNİN AÇIK KAYNAK YAZILIMLARLA UYGULANMASI Yrd.Doç.Dr. Mustafa YENİAD 1 myeniad@ybu.edu.tr

Detaylı

Soru 1 2 / Toplam Değer 5 10 / Puan

Soru 1 2 / Toplam Değer 5 10 / Puan BİL546 Semantik Web - Erdoğan Doğdu Güz 2011 Arasınav 19 Ekim 2011 90 dakika Ad Soyad: Soru 1 2 / 2 3 4 5 6 7 8 Toplam Değer 5 10 / 10 25 10 20 10 10 10 110 Puan 1. (5 puan) Aşağıdaki kısaltmaları açık

Detaylı

Bütün XML dökümanlarının bir kök elemanı olmalıdır. Diğer bütün elemanlar kök elemanı tarafından kapsanır.

Bütün XML dökümanlarının bir kök elemanı olmalıdır. Diğer bütün elemanlar kök elemanı tarafından kapsanır. XML Genişletilebilir İşaretleme Dili (extensible Markup Language), hem insanlar hem bilgi işlem sistemleri tarafından kolayca okunabilecek dokümanlar oluşturmayı sağlamaktadır W3C tarafından tanımlanmış

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ı

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ı

Veritabanı Dersi. Teoriden Pratiğe. Çağıltay N.E., Tokdemir G. Veritabanı Sistemleri Dersi -Bölüm XXV: Web'den Erişim Çağıltay, N., Tokdemir, G.

Veritabanı Dersi. Teoriden Pratiğe. Çağıltay N.E., Tokdemir G. Veritabanı Sistemleri Dersi -Bölüm XXV: Web'den Erişim Çağıltay, N., Tokdemir, G. Veritabanı Dersi Teoriden Pratiğe Çağıltay N.E., Tokdemir G. Veritabanı Sistemleri Dersi -Bölüm XXV: Web'den Erişim Çağıltay, N., Tokdemir, G. BÖLÜM 25 Web den Erişim Ortak Geçit Arayüzü Bazı Web Kavramları

Detaylı

FIRAT ÜNİVERSİTESİ BİLGİSAYAR MÜH.

FIRAT ÜNİVERSİTESİ BİLGİSAYAR MÜH. FIRAT ÜNİVERSİTESİ BİLGİSAYAR MÜH. WSDL-SOAP MURAT TEZGİDER Web Servisi Nedir? web servisi :standart formatları kullanarak programlama dili, işletim sistemi ve platformdan bağımsız olarak bilgiyi paylaşan

Detaylı

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

VERİ TABANI YÖNETİM SİSTEMLERİ I BÖLÜM 11 11. SQL de JOIN (BİRLEŞTİRME) İŞLEMİ 11.1. JOIN (Birleştirme) İşlemi Veri tabanı kayıtları oluşturulurken bütün bilgiler bir tabloda değil de, birkaç tablo üzerinde tutulur. Bu dataların daha

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ı

DİZİN. Not: Koyu harfle yazılan sayfalar ilgili terimin yoğun olarak geçtiği sayfaları göstermektedir.

DİZİN. Not: Koyu harfle yazılan sayfalar ilgili terimin yoğun olarak geçtiği sayfaları göstermektedir. DİZİN Not: Koyu harfle yazılan sayfalar ilgili terimin yoğun olarak geçtiği sayfaları göstermektedir. A ağırlıklandırma bkz. terim ağırlıklandırma AltaVista, 6, 31, 37, 45-47, 93, 135 anahtar sözcükler,

Detaylı

HTML (Hyper Text Markup Language)

HTML (Hyper Text Markup Language) HTML (Hyper Text Markup Language) Ele Alınacak Başlıklar HTML tarihçesi Bir HTML dökümanın genel görünümü HTML ve tarayıcı etkileşimi Tarihçe Internet The World Wide Web (www) HTML URI/URL HTTP Tim Berners-Lee

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ı

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ı

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ı

Linked Data Üzerinden Doğal Dil Sorgularını Cevaplayan Sistem

Linked Data Üzerinden Doğal Dil Sorgularını Cevaplayan Sistem Linked Data Üzerinden Doğal Dil Sorgularını Cevaplayan Sistem A. Talha Kabakuş 1, Erdoğan Doğdu 2 1 Abant İzzet Baysal Üniversitesi 2 TOBB Ekonomi ve Teknoloji Üniversitesi talha.kabakus@ibu.edu.tr edogdu@etu.edu.tr

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ı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı Ders 7 LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ 1 LINUX Yapısı LINUX işletim sisteminin diğer işletim sistemleri gibi kendine özgü bir yapısı vardır. LINUX yapısı ve bileşenleri aşağıdaki

Detaylı

Laboratuar Notları #5

Laboratuar Notları #5 The European Union s Making the Labour Market more Inclusive III programme For North Cyprus Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals Module

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ı

Ç NDEK LER G R fi 1 Bafllamadan Önce 1 Kitab Kimler Okumal? 1 Kitap çerisindeki Örnekler 2 Örneklerin Kullan m 3 Çekinmeden Yaz n 7

Ç NDEK LER G R fi 1 Bafllamadan Önce 1 Kitab Kimler Okumal? 1 Kitap çerisindeki Örnekler 2 Örneklerin Kullan m 3 Çekinmeden Yaz n 7 +AS3-icindekiler 4/13/10 10:51 PM Page ix Ç NDEK LER G R fi 1 Bafllamadan Önce 1 Kitab Kimler Okumal? 1 Kitap çerisindeki Örnekler 2 Örneklerin Kullan m 3 Çekinmeden Yaz n 7 1 PROGRAMLAMAYA G R fi 9 Programlama

Detaylı

BTP208 İnternet Programcılığı II XML ve XML Uygulamaları. (2. Kısım)

BTP208 İnternet Programcılığı II XML ve XML Uygulamaları. (2. Kısım) BTP208 İnternet Programcılığı II XML ve XML Uygulamaları (2. Kısım) Hazırlayan Öğr. Gör. Özgür ÖZŞEN İçerik XML DTD Belge Tipi Tanımlamaları 1 Karakter Veri Bir elemanın başlangıç ve bitiş etiketi içindeki

Detaylı

Html temelleri. Ders 4

Html temelleri. Ders 4 Html temelleri Ders 4 1 Giriş World Wide Web (Kısaca web) uygun protokoller kullanarak haberleşen yazılımların çalıştırıldığı internet üzerindeki sistemlerin bir koleksiyonudur. Çoğu sistem gününüzde en

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama XML 1 XML XML (Extensible Markup Language) verileri belirli yapıda tutmak için kullanılan bir işaretleme dilidir. Bu yapı bilindiği için verinin istenildiğinde kullanılmasını, değiştirilmesini

Detaylı

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Android e Giriş. Öğr.Gör. Utku SOBUTAY Android e Giriş Öğr.Gör. Utku SOBUTAY Android İşletim Sistemi Hakkında 2 Google tarafından geliştirilmiştir. Dünyada en çok kullanılan mobil işletim sistemidir. 2018 itibariyle Dünyada Android; %78.65,

Detaylı

WEB TASARIMINDA TEMEL KAVRAMLAR

WEB TASARIMINDA TEMEL KAVRAMLAR WEB TASARIMINDA TEMEL KAVRAMLAR İnternet Ortamı İnternet, bir çok bilgisayar sisteminin birbirine bağlı olduğu, dünya çapında yaygın olan ve sürekli büyüyen bir iletişim ağıdır. Lan (Local) Man (Metropolian)

Detaylı

Bilimsel ve Teknik Dokümantasyon. Yrd. Doç.Dr. Özlem Bayram ozlembayr@gmail.com

Bilimsel ve Teknik Dokümantasyon. Yrd. Doç.Dr. Özlem Bayram ozlembayr@gmail.com Bilimsel ve Teknik Dokümantasyon Yrd. Doç.Dr. Özlem Bayram ozlembayr@gmail.com Enformason Teknolojisi: Đnternet Bilgisayar ağı: Birden fazla bilgisayar arasındaki programların paylaşılabilmesine izin veren

Detaylı

Veritabanı. Ders 2 VERİTABANI

Veritabanı. Ders 2 VERİTABANI Veritabanı Veritabanı Nedir? Birbiri ile ilişkili verilerin bir arada uzun süreli bulundurulmasıdır. Veritabanı bazen Veritabanı Yönetim sistemi veya Veritabanı Sistemi yerine de kullanılır. Gerçek dünyanın

Detaylı

DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Yazılım Tasarımı Dokümanı v 1.0.1 01.08.2011. Mustafa Atanak Sefai Tandoğan Doç. Dr.

DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Yazılım Tasarımı Dokümanı v 1.0.1 01.08.2011. Mustafa Atanak Sefai Tandoğan Doç. Dr. DGridSim Gerçek Zamanlı Veri Grid Simülatörü Yazılım Tasarımı Dokümanı v 1.0.1 01.08.2011 Mustafa Atanak Sefai Tandoğan Doç. Dr. Atakan Doğan 1. Sistem Mimarisi DGridSim katmanlı bir yapı göz önünde bulundurularak

Detaylı

İNTERNET PROGRAMLAMA II. Tanımlar

İNTERNET PROGRAMLAMA II. Tanımlar İNTERNET PROGRAMLAMA II Tanımlar WWW( World Wide Web) Dünya üzerindeki bütün bilgisayarların bağlı olduğu bir ağdır. Çoğunlukla Web olarak adlandırılır. Web üzerindeki bilgisayarlar standart protokolleri

Detaylı

SDD Dökümantasyonu Versࠀyon 1.0. Movࠀe Predࠀctࠀon Orhan Özgün Ergen Ahmet Saday Berkay Erken

SDD Dökümantasyonu Versࠀyon 1.0. Movࠀe Predࠀctࠀon Orhan Özgün Ergen Ahmet Saday Berkay Erken ࠀFakültes Mࠀmarlık Mühendࠀslࠀk ve ࠀtesࠀversࠀÜn Beykent ࠀğࠀslࠀMühend Yazılım SDD Dökümantasyonu Versࠀyon 1.0 Movࠀe Predࠀctࠀon 120301009 Sefa Saࠀd Denࠀz 120301019 Orhan Özgün Ergen 120301027 Ahmet Saday

Detaylı

CENG 302 Yazılım Mühendisliği Yazılım Mimarisi - Devam. Alper UĞUR

CENG 302 Yazılım Mühendisliği Yazılım Mimarisi - Devam. Alper UĞUR CENG 302 Yazılım Mühendisliği Yazılım Mimarisi - Devam Alper UĞUR Yazılım Mimarisi Gereksinim: NE? Mimari : NE+NASIL GEREKSİNİMLER (software architecture) Requirements : WHAT? Architecture : WHAT + HOW?

Detaylı

Özgür Yazılımlarla Web Programlama. Özlem Özgöbek ozlem.ozgobek@linux.org.tr

Özgür Yazılımlarla Web Programlama. Özlem Özgöbek ozlem.ozgobek@linux.org.tr Özgür Yazılımlarla Web Programlama Özlem Özgöbek ozlem.ozgobek@linux.org.tr Web Nedir? İnternet dünya çapında birbirine bağlı bilgisayar ağlarından oluşan bir sistemdir. Web ise internette çalışan servislerden

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ı

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ı

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1 Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte

Detaylı

AKILLI TATIL PLANLAMA SISTEMI

AKILLI TATIL PLANLAMA SISTEMI AKILLI TATIL PLANLAMA SISTEMI Istanbul Teknik Üniversitesi Bilgisayar ve Bilişim Fakültesi Bitirme Ödevi Ali Mert Taşkın taskinal@itu.edu.tr Doç. Dr. Feza Buzluca buzluca@itu.edu.tr Ocak 2017 İçerik Giriş

Detaylı

COĞRAFİ BİLGİ SİSTEMLERİ SERVER MİMARİSİ SERVER UYGULAMA GELİŞTİRME EĞİTİMİ

COĞRAFİ BİLGİ SİSTEMLERİ SERVER MİMARİSİ SERVER UYGULAMA GELİŞTİRME EĞİTİMİ COĞRAFİ BİLGİ SİSTEMLERİ SERVER MİMARİSİ SERVER UYGULAMA GELİŞTİRME EĞİTİMİ http://facebook.com/esriturkey https://twitter.com/esriturkiye egitim@esriturkey.com.tr Kursun Süresi: 5 Gün 30 Saat COĞRAFİ

Detaylı

XAML Dili Microsoft Blend. Tasarım ve Kodlamanın. Birbirinden Ayrılması

XAML Dili Microsoft Blend. Tasarım ve Kodlamanın. Birbirinden Ayrılması Giriş WPF Nedir? Tasarım ve Kodlamanın Birbirinden Ayrılması XBAP Nedir? Silverlight Nedir? Sunum Katmanları Neydi? Sunum Katmanları İle Neler Yapılabiliyordu Neden Microsoft? VCL Application, FireMonkey

Detaylı

Elbistan MYO Güz Dönemi Öğr.Gör. Murat KEÇECİOĞLU

Elbistan MYO Güz Dönemi Öğr.Gör. Murat KEÇECİOĞLU Elbistan MYO 2016-2017 Güz Dönemi Öğr.Gör. Murat KEÇECİOĞLU HTML Nedir? HTML, Hyper Text Markup Language sözcüklerinin baş harflerinden oluşan bir kısaltmadır ve Web in temel dilidir. Html dökümanları

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ı

YENİ BİLGİ MODELLEME VE PROGRAMLAMA FELSEFESİYLE SEMANTIC WEB

YENİ BİLGİ MODELLEME VE PROGRAMLAMA FELSEFESİYLE SEMANTIC WEB YENİ BİLGİ MODELLEME VE PROGRAMLAMA FELSEFESİYLE SEMANTIC WEB ANKARA ÜNİVERSİTESİ 31.03.2012 B İ LGİSAYA R Y ÜK. MÜH. BÖRTEÇİN EGE WEB 1.0 1995 2000 İnsan odaklı Web de henüz sadece belgeler var Belgelerin

Detaylı

Web Server Sunucu Loglarının K-Komşu Algoritması ile İ ncelenmesi

Web Server Sunucu Loglarının K-Komşu Algoritması ile İ ncelenmesi Web Server Sunucu Loglarının K-Komşu Algoritması ile İ ncelenmesi İçindekiler 1 Özet... 2 2 Giriş... 3 3 Uygulama... 4 4 Sonuçlar... 6 1 1 Özet Web sunucu logları üzerinde veri madenciliği yapmanın temel

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 Bulutunun (Linked Data Cloud) Oluşumu ve Gelişim Durumu

Semantik Web Bulutunun (Linked Data Cloud) Oluşumu ve Gelişim Durumu Semantik Web Bulutunun (Linked Data Cloud) Oluşumu ve Gelişim Durumu Evren Sezgin 1, Hakan Akar 2, Salim Dikilitaş 3 1,2Akdeniz Üniversitesi, Enformatik Bölüm Başkanlığı, Antalya 3Akdeniz Üniversitesi,

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ı

PAZARTESİ SALI 2015-2016 Ders Programı 1. Öğretim 09.00-09.50 10.00-10.50 11.00-11.50 12.00-12.50 HRT4291 WEB TABANLI CBS GR:11 Ü.GÜMÜŞAY EZ-121 ; D1-129 HRT4291 WEB TABANLI CBS GR:22 Ü.GÜMÜŞAY EZ-121

Detaylı

4. Bağlantı (Köprü) Oluşturma

4. Bağlantı (Köprü) Oluşturma 4. Bağlantı (Köprü) Oluşturma Bu bölümü bitirdiğinizde, HTML dosyalarında nasıl bağlantı oluşturulduğunu, Bağ etiketinin ne olduğunu, Yerel dosyalara nasıl bağlantı kurulduğunu, İnternet üzerindeki dosyalara

Detaylı

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi Mehmet Karakoç Akdeniz Üniversitesi Bilgisayar Bilimleri Araştırma ve Uygulama Merkezi 28.11.2014 inet-tr'14 : GWT AUFaculty Project 1 İçerik Giriş

Detaylı

ÖZGÜR YAZILIMLAR İLE J2EE

ÖZGÜR YAZILIMLAR İLE J2EE ÖZGÜR YAZILIMLAR İLE J2EE Buğra Çakır bugra@ibrahimcakir.com Seminer İçeriği 1. İki ve üç katmanlı yazılım mimarileri 2. Java ve J2EE platformu 3. Özgür yazılımlar ile J2EE 4. Eclipse, Lomboz ve JBoss

Detaylı

Bağlı Açık Üniversite Verisi. Prof. Dr. Oğuz Dikenelli

Bağlı Açık Üniversite Verisi. Prof. Dr. Oğuz Dikenelli Bağlı Açık Üniversite Verisi Prof. Dr. Oğuz Dikenelli İçerik Gereksinim Bağlı Veri Bağlı Açık Veri Uygulamaları Ege Üniversitesi Açık Veri Prototipi Tartışma Üniversite Bilgi Ağı Kütüphane Basılı/Elektronik

Detaylı

Film Arşiv Sistemi. Yazılım Tasarım Belgesi

Film Arşiv Sistemi. Yazılım Tasarım Belgesi 1. Sürüm Tarihçesi Film Arşiv Sitesi Yazılım Tasarım Belgesi Sürüm Tarih Yazarlar Açıklamalar 1.0 28.12.2010 Rana ALGAN Elif BONCUK Bu belge sistemin tasarım detaylarını içerir. 2. Giriş 2.1 Amaç ve Kapsam

Detaylı

Dersin Konusu ve Amaçları: Ders P lanı: Bölüm 1: Bilgi Teknolojilerinde Temel Kavramlar

Dersin Konusu ve Amaçları: Ders P lanı: Bölüm 1: Bilgi Teknolojilerinde Temel Kavramlar Bilgi Teknolojileri ve Uygulamalarına Giriş Dersin Konusu ve Amaçları: Bu dersin amacı daha önce bilgisayar ve bilgi teknolojileri alanında herhangi bir bilgi ve/veya deneyime sahip olmayan öğrenciye bilgi

Detaylı

Türkiye Barolar Birliği internet sitesi

Türkiye Barolar Birliği internet sitesi Türkiye Barolar Birliği internet sitesi Türkiye Barolar Birliği internet sitesi, güncel teknolojinin sunduğu son imkânlarla, tamamen merkezi yönetim sistemine sahip dinamik ve geliştirilebilir bir sistem

Detaylı

FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ Yazılım Mühendisliği Bölümü

FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ Yazılım Mühendisliği Bölümü FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ Yazılım Mühendisliği Bölümü YMH114 - Yazılım Mühendisliğinin Temelleri Dersi Proje Uygulaması ve Dokümantasyonu AKILLI ŞEHİR UYGULAMALARININ İNCELENMESİ VE ÖRNEK

Detaylı

PHP I PHP I. E. Fatih Yetkin. 26 Eylül 2011

PHP I PHP I. E. Fatih Yetkin. 26 Eylül 2011 PHP I E. Fatih Yetkin 26 Eylül 2011 Outline Temel Tanımlar HTML e Giriş PHP ye Giriş MySQL ve PHP Temel Tanımlar Web Sunucu Nedir? Teknik detaylar bir kenara bırakılacak olursa, hazırlanan web sayfasını

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ı

OMNET++ 4.2.2. Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

OMNET++ 4.2.2. Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü Bilgisayar Mühendisliği Bölümü OMNET++ 4.2.2 Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları OMNET++ OMNET++ (Objective Modular Network Testbed in C++), nesneye yönelik (objectoriented)

Detaylı

Turquaz. Açık kodlu muhasebe yazılımı http://www.turquaz.com. Turquaz Proje Grubu

Turquaz. Açık kodlu muhasebe yazılımı http://www.turquaz.com. Turquaz Proje Grubu Turquaz Açık kodlu muhasebe yazılımı http://www.turquaz.com Turquaz Proje Grubu Konu Başlıkları 1. Turquaz Proje Grubu 2. Programın fikri 3. Geliştirme aşaması 4. Programın içeriği 5. Yapılacaklar 6. Dizayn

Detaylı

Programlama Yazılımı ile Web Sitesi Oluşturma

Programlama Yazılımı ile Web Sitesi Oluşturma Hafta- 2 Programlama Yazılımı ile Web Sitesi Oluşturma Programlama yazılımı, bir web projesi oluşturmak için alternatif birkaç yol sunar. Buyollardan bir tanesi ihtiyaca uygun olarak seçilebilir. Programlama

Detaylı

Java Programlama Giriş

Java Programlama Giriş Java Programlama Giriş 2013-2014 Bahar Dönemi Mehmet Akif Ersoy Üniversitesi Teknik Bilimler Meslek Yüksekokulu Burdur 2014 Muhammer İLKUÇAR 1 Neden Java Programlama Platformdan bağımsızdır

Detaylı

Yaz.Müh.Ders Notları #6 1

Yaz.Müh.Ders Notları #6 1 YAZILIM MÜHENDİSLİĞİ Prof.Dr. Oya Kalıpsız GİRİŞ 1 YAZILIM YETERLİLİK OLGUNLUK MODELİ Olgunluk Seviyeleri: Düzey 1. Başlangıç düzeyi: Yazılım gelişimi ile ilişkili süreçlerin tanımlanması için hiçbir sistematik

Detaylı

Windows Live ID ve parolanızı giriniz.

Windows Live ID ve parolanızı giriniz. Ücretsiz Deneme Hesabı Oluşturma ve Temel Özelliklerin Kullanım Kılavuzu Bilgi girilmesi gerekli alanlar Kişisel bilgi içeren alanlar http://www.windowsazure.com/tr-tr/pricing/free-trial/ adresine gidiniz

Detaylı

AJAX nedir? AJAX nasıl çalışır? AJAX. Tahir Emre KALAYCI. Sunucu Yazılım Teknolojileri

AJAX nedir? AJAX nasıl çalışır? AJAX. Tahir Emre KALAYCI. Sunucu Yazılım Teknolojileri nedir? Sunucu Yazılım Teknolojileri nedir? Gündem 1 nedir? 2 XML 3 nedir? nedir? : Asynchronous JavaScript and XML Yeni bir teknoloji değil, daha çok bir yöntembilim, teknik, tasarım deseni. RIA = Zengin

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ı

Web Uygulama Güvenliği Kontrol Listesi 2010

Web Uygulama Güvenliği Kontrol Listesi 2010 Web Uygulama Güvenliği Kontrol Listesi 2010 1 www.webguvenligi.org Web uygulama güvenliği kontrol listesi 2010, OWASP-Türkiye ve Web Güvenliği Topluluğu tarafından güvenli web uygulamalarında aktif olması

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ı

Web Tasarımının Temelleri

Web Tasarımının Temelleri 1. Hafta Web Tasarımının Temelleri Öğr. Gör. Murat YAZICI www.muratyazici.com Artvin Çoruh Üniversitesi, Artvin Meslek Yüksekokulu www.artvin.edu.tr Temel Kavramlar İnternet HTML WWW HTTP, HTTPS FTP Web

Detaylı

Mikro Ayarları. Mikro Programının kurulu olduğu veritabanı ve web servisi için bağlantı ayarlarının yapıldığı menüdür.

Mikro Ayarları. Mikro Programının kurulu olduğu veritabanı ve web servisi için bağlantı ayarlarının yapıldığı menüdür. Mikro Ayarları Mikro muhasebe sistemini kullanan müşterilemizin, muhasebe sistemleri ile E Ticaret sitesi arasındaki entegrasyon parametrelerini tanımladıkları menüdür. Bu menü altındaki alt menüler kullanılarak

Detaylı

Semantik Ağ ve Üst Veri Sistemleri İçin Yeni Nesil Veri Tabanı Yönetim Modeli: NoSQL. R. Orçun Madran Atılım Üniversitesi. www.madran.

Semantik Ağ ve Üst Veri Sistemleri İçin Yeni Nesil Veri Tabanı Yönetim Modeli: NoSQL. R. Orçun Madran Atılım Üniversitesi. www.madran. Semantik Ağ ve Üst Veri Sistemleri İçin Yeni Nesil Veri Tabanı Yönetim Modeli: NoSQL R. Orçun Madran Atılım Üniversitesi www.madran.net İçerik NoSQL Ne Değildir? Neden NoSQL? Ne Zaman NoSQL? NoSQL'in Tarihçesi.

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ı

Büyük, Dağıtık, Veri Yoğunluklu Uygulamalarda Programlama Paradigmaları

Büyük, Dağıtık, Veri Yoğunluklu Uygulamalarda Programlama Paradigmaları Büyük, Dağıtık, Veri Yoğunluklu Uygulamalarda Programlama Paradigmaları Güven Fidan AGMLAB Bilişim Teknolojileri 18/10/11 GRID ÇALIŞTAYI 2007 1 MapReduce Nedir? Büyük data kümelerini işlemek ve oluşturmak

Detaylı

ÖĞRENME FAALİYETİ 1 ÖĞRENME FAALİYETİ 1 1. FORMLAR

ÖĞRENME FAALİYETİ 1 ÖĞRENME FAALİYETİ 1 1. FORMLAR ÖĞRENME FAALİYETİ 1 AMAÇ ÖĞRENME FAALİYETİ 1 Uygun ortam sağlandığında web sayfaları için formlar oluşturabileceksiniz. ARAŞTIRMA Web sayfalarında formların kullanım amaçlarını ve nasıl kullanıldığını

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ı

Kültür Varlıklarının Web Otomasyonu

Kültür Varlıklarının Web Otomasyonu Kültür Varlıklarının Web Otomasyonu SUNUM İÇERİĞİ PROJE GEREKLİLİĞİ PROJE İHTİYAÇLARI SİSTEM TASARIMINA GÖRE TEKNOLOJİK ALT YAPI DÜZENLENEN SİSTEMİN GETİRDİĞİ AVANTAJLAR PROJE GEREKLİLİĞİ Taşınmaz kültür

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ı

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ı

ICATT ÇEVİRİ UYGULAMASI SİSTEM MİMARİSİ VE VERİTABANI TASARIMI

ICATT ÇEVİRİ UYGULAMASI SİSTEM MİMARİSİ VE VERİTABANI TASARIMI ICATT ÇEVİRİ UYGULAMASI SİSTEM MİMARİSİ VE VERİTABANI TASARIMI İÇİNDEKİLER 1. GİRİŞ 1.1. KAPSAM 1.2. SİSTEM ÖZETİ 1.3. DOKÜMAN ÖZETİ 2. ÇALIŞMA KONSEPTİ 2.1. Yeni Kullanıcı Oluşturmak 2.2. Şirket Bilgilerini

Detaylı

Kavramsal Tasarım. Veritabanlarına Giriş Dersi

Kavramsal Tasarım. Veritabanlarına Giriş Dersi Kavramsal Tasarım Veritabanlarına Giriş Dersi Kavramsal Modelleme Bu modeller, veritabanında tutulacak verilerin yüksek seviyede bir gösterimini ve açıklamasını verir. Varlık-İlişki (ER) Modeli, kavramsal

Detaylı

Vega Ayarları. Vega Programının kurulu olduğu veritabanı ve web servisi için bağlantı ayarlarının yapıldığı menüdür.

Vega Ayarları. Vega Programının kurulu olduğu veritabanı ve web servisi için bağlantı ayarlarının yapıldığı menüdür. Vega Ayarları Vega muhasebe sistemini kullanan müşterilemizin, muhasebe sistemleri ile E Ticaret sitesi arasındaki entegrasyon parametrelerini tanımladıkları menüdür. Bu menü altındaki alt menüler kullanılarak

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri

Detaylı

Laboratuar Notları #4

Laboratuar Notları #4 The European Union s Making the Labour Market more Inclusive III programme For North Cyprus Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals Module

Detaylı

Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız? İÇİNDEKİLER VII İÇİNDEKİLER 1 GİRİŞ 1 Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız? 4 Kaynak Kodu 5 2 MERHABA DÜNYA 7 Android Nedir?

Detaylı

e-fatura UYGULAMASI (Entegrasyon Kılavuzu) Şubat 2010 ANKARA e-fatura Uygulaması (Entegrasyon Kılavuzu) Şubat 2010 Versiyon : 1.

e-fatura UYGULAMASI (Entegrasyon Kılavuzu) Şubat 2010 ANKARA e-fatura Uygulaması (Entegrasyon Kılavuzu) Şubat 2010 Versiyon : 1. e-fatura UYGULAMASI (Entegrasyon Kılavuzu) Şubat 2010 ANKARA Versiyon : 1.0 1/17 GELİR İDARESİ BAŞKANLIĞI Uygulama ve Veri Yönetimi Daire Başkanlığı Versiyon : 1.0 2/17 Tanımlar ve Kısaltmalar...4 1 Giriş...7

Detaylı

1. GİRİŞ Kılavuzun amacı. Bu bölümde;

1. GİRİŞ Kılavuzun amacı. Bu bölümde; 1. GİRİŞ Bu bölümde; Kılavuzun amacı EViews Yardım EViews Temelleri ve Nesneleri EViews ta Matematiksel İfadeler EViews Ana Ekranındaki Alanlar 1.1. Kılavuzun amacı Ekonometri A. H. Studenmund tarafından

Detaylı

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların bilgilerini saklamalarına, program yüklemelerine izin

Detaylı

JavaScript & DOM XML & JSON

JavaScript & DOM XML & JSON JavaScript & DOM XML & JSON Ele alınacak başlıklar JavaScript Dili DOM (Document Object Model) JavaScript ve OO Programlama XML ve JSON JavaScript Kısım 1 Gelişim JavaScript, 1995 yılında Netscape tarafından

Detaylı

Müzik Verileri İçin XML Tabanlı Diller

Müzik Verileri İçin XML Tabanlı Diller Müzik Verileri İçin XML Tabanlı Diller İlker KALAYCI, M. Serdar KORUKOĞLU Ege Üniversitesi Bilgisayar Mühendisliği Bölümü 2009 Akademik Bilişim '09-Harran Üniversitesi 1 İçerik Giriş MIDI Özellikleri XML

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ı

SBE16 / Akıllı Metropoller Ekim 2016 / İSTANBUL

SBE16 / Akıllı Metropoller Ekim 2016 / İSTANBUL SBE16 / Akıllı Metropoller 13-15 Ekim 2016 / İSTANBUL TAKDİM PLANI Teknolojik Gelişim ve 3 Boyuta Geçiş : 2B gösterim tekniği haritacılığın doğuşundan beri kullanılmaktadır. Bu temsil şekli yerleşmiş alışkanlıklar

Detaylı

MOBIL UYGULAMA GELIŞTIRME

MOBIL UYGULAMA GELIŞTIRME MOBIL UYGULAMA GELIŞTIRME PELIN YILDIRIM FATMA BOZYIĞIT YZM 3214 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Bu Derste Android Nedir ve Uygulama Temelleri Android Uygulama Bileşenleri

Detaylı

1 GİRİŞ 1 Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

1 GİRİŞ 1 Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız? İÇİNDEKİLER V İÇİNDEKİLER 1 GİRİŞ 1 Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız? 4 Kaynak Kodu 4 2 MERHABA DÜNYA 7 Android Nedir?

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ı

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ı

Ontoloji Tabanlı Bir Kitap Sorgulama Sistemi Gerçekleştirimi

Ontoloji Tabanlı Bir Kitap Sorgulama Sistemi Gerçekleştirimi Ontoloji Tabanlı Bir Kitap Sorgulama Sistemi Gerçekleştirimi Ege Üniversitesi, Bilgisayar Mühendisliği Bölümü, 35100, Bornova, İzmir aysegul.alaybeyoglu @ege.edu.tr, aybars.ugur @ege.edu.tr Özet: Bu bildiride,

Detaylı

TÜİK e-vt. Web Servis Kılavuzu

TÜİK e-vt. Web Servis Kılavuzu TÜİK e-vt Web Servis Kılavuzu Mayıs 2015 ANKARA Versiyon: 1.2 1/12 Versiyon Yayım Tarihi Eklenen/Silinen/Değişen Bölüm 1.0 20.02.2014 ---- Kılavuzun ilk sürümü. 1.1 17.04.2014 Sayfa 13 Hata Kodu Tablosu

Detaylı

XML'in Temelleri. XML veri tanimlamayi saglayan ve verilerin alisverisinde kullanilacak standart bir format olarak kullanilan bir dildir.

XML'in Temelleri. XML veri tanimlamayi saglayan ve verilerin alisverisinde kullanilacak standart bir format olarak kullanilan bir dildir. XML'in Temelleri I. XML'IN TEMELLERI XML veri tanimlamayi saglayan ve verilerin alisverisinde kullanilacak standart bir format olarak kullanilan bir dildir. XML'in üstünlükleri sunlardir: -Genisleyebilir.

Detaylı

RESTFUL WEB SERVĠSLERĠ ĠLE ONTOLOJĠ SORGULAMA ABDULHAMĠT MABOÇOĞLU YÜKSEK LĠSANS TEZĠ BĠLGĠSAYAR MÜHENDĠSLĠĞĠ

RESTFUL WEB SERVĠSLERĠ ĠLE ONTOLOJĠ SORGULAMA ABDULHAMĠT MABOÇOĞLU YÜKSEK LĠSANS TEZĠ BĠLGĠSAYAR MÜHENDĠSLĠĞĠ RESTFUL WEB SERVĠSLERĠ ĠLE ONTOLOJĠ SORGULAMA ABDULHAMĠT MABOÇOĞLU YÜKSEK LĠSANS TEZĠ BĠLGĠSAYAR MÜHENDĠSLĠĞĠ TOBB EKONOMĠ VE TEKNOLOJĠ ÜNĠVERSĠTESĠ FEN BĠLĠMLERĠ ENSTĠTÜSÜ EYLÜL 2010 ANKARA Fen Bilimleri

Detaylı

Önsöz. İçindekiler Algoritma Algoritma Nasıl Hazırlanır? Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular

Önsöz. İçindekiler Algoritma Algoritma Nasıl Hazırlanır? Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular Önsöz Giriş İçindekiler V VII IX 1.1. Algoritma 1.1.1. Algoritma Nasıl Hazırlanır? 1.1.2. Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular 2.1. Programın Akış Yönü 19 2.2. Başlama

Detaylı

E-fatura Yenilikler. E-fatura uygulaması ile ilgili çeşitli yenilikler 8.0.4 seti ile birlikte yayınlandı:

E-fatura Yenilikler. E-fatura uygulaması ile ilgili çeşitli yenilikler 8.0.4 seti ile birlikte yayınlandı: E-fatura Yenilikler Amaç ve Fayda E-fatura uygulaması ile ilgili çeşitli yenilikler 8.0.4 seti ile birlikte yayınlandı: Gelen e-faturaların alış faturasının yanı sıra genel dekont olarak da kaydedilmesi

Detaylı

İLİŞKİSEL VERİTABANLARI

İLİŞKİSEL VERİTABANLARI İLİŞKİSEL VERİTABANLARI Veritabanı Nedir? Veritabanı (database) en basit şekliyle verilerin belirli bir düzene göre tutulduğu, depolandığı bir sistemdir. İlişkisel Veritabanı Nedir? İlişkisel veritabanlarındaki

Detaylı