Semantik Web nedir? Arama motorları neden Semantik Web kullanır?

Semantik Web, insanların ve yazılımların kendi aralarında anlaşabilmeleri için kurgulanan bir ilişkilendirmeler bütünüdür. Anlamsal Ağ, yani Semantik Web, günümüzde pek çok profesyonelin ifadelerinde sıklıkla düştüğü bir yanılgıya ters olarak, yapay zekâ ürünü değildir. Dolayısıyla Anlamsal Ağ’dan yapay zekânın çocuğu olarak söz etmek yanlış. Hatta neredeyse tam tersi bir durum söz konusu. “Yapay zekâ”dan bağımsız olarak yazılımların bir bilgiyi tanımlayabilmesi, açıklayabilmesi, kaynağını belirtebilmesi mümkün. Ancak günümüzdeki örneklerin çoğunda yapay zekâ ile semantik ağlar bütünleşik bir şekilde çalışmaktadır.

İlk etapta Semantik Web, bir zamanlar yaratılan World Wide Web’in çağını kapatmaya kararlı, yeni jenerasyon birkaç geliştiricinin ürünü olarak düşünülebilir. Ancak durum böyle değil. Semantik Web’in ve ilk versiyon WWW’nin yaratıcısının aynı kişi olduğunu söylesem tepkiniz ne olurdu? Ve aynı kişinin 1989’da Cern’de HTML’i geliştiren adamın ta kendisi olduğunu söylesem? Tim Berners-Lee, bugün kullanmakta olduğumuz URL, HTTP ve HTML gibi webin yapı taşlarını yaratıp başlattığı çağı bir de Semantik Web’in babası olarak ileri götürmeye devam etmiştir. Tabii Semantik Web’den bahsederken James Hendler ve Ora Lassila isimlerini de anmak gerekir. Bu iki uzman da Tim Berners-Lee ile birlikte ilk çalışmaya imza atmıştır. Özellikle James Hendler’ın 2016’da çıkan “Social Machines” isimli kitabı yapay zekâ, insanlık ve sosyal ilişkilerin birleşimi üzerine ufuk açıcı içeriğe sahip. Konuya ilgi duyanlar için öneririm.

“Semantik web yeni bir tür ve apayrı bir web olmayıp, verilere daha iyi tanımlanan anlamların verildiği, bilgisayarların ve insanların işbirliğine imkân veren günümüz web’inin devamıdır.” -T. Berners-Lee, J. Hendler, Ora Larissa

Yaratıcılarının hakkını verdiğimize göre Semantik Web’in ne olduğu konusuna dönecek olursak, bir makine kendi zekâsına sahip değilse bile bilgileri nasıl yapılandırabilir bunu cevaplandırarak başlayalım. Mikro datalar ve bu mikro dataların her birinin neyi tanımladığını listeleyen ontolojiler (sözlükler) sayesinde zekâsı bulunmayan bir yazılıma da bir şeyleri gösterebilirsiniz. Yani bir veriyi nerede bulabileceğini gösterdiğiniz bir yazılım bu veriyi bulup istediğiniz şekilde sınıflandırabilir. Ancak bu kelimenin tam anlamıyla öğrenmek olmuyor. Bu nedenle Semantik Web son yıllarda yapay zekâ ile birlikte anılmaktadır. Böylece Anlamsal Ağ, tüm bilgilerin tanımını bulup yapılandırılmış bir veri tabanı oluştururken yapay zekâ da bu veri tabanını yorumlayarak yeni sonuçlar çıkarmaktadır. Sanırım burada yapay zekânın “deep learning” ile birlikte en büyük katkısı, ontoloji ve mikro datalarla sınırlanmış çerçevenin dışına çıkabilme farkıdır. Yapay zekâlar veri tabanındaki korelasyonlar ya da farklı eşleşmeler sayesinde bazı ilişkilendirmeleri kendileri de yapabilmektedir. İşte bu sayede Google, kendisi öğrendikçe daha da detaylı ilişkilendirmelere ulaşabiliyor ve ekranınıza bakıp “Bunu nasıl anladı?” sorusunu sormanızı sağlayabiliyor. Günün sonunda Anlamsal Ağ ile yapay zekânın cümle içinde birbirlerinin yerine kullanılmasının sebebi de biraz bundan.

Mikro data nedir?

Kendi başına araştırmalar yapıp neyi öğrenmesi gerektiğini, nasıl ilişki kurması gerektiğini bilmeyen ister makine ister insan herhangi bir şeye bir bilgiyi nasıl verebilirsiniz? Hem de bu bilgiyi doğru şekilde sınıflandırmasını sağlamalısınız. Tanım yaparken kullandığınız kelimelerin de anlamını pek bilmediğini varsayalım. Örneğin konuşmayı henüz öğrenmiş bir çocuğa “Domatesin kilosu 10 lira” cümlesini kurduğunuzu ve pek çok çocuğun yaptığı gibi onun da bu cümleyi anlamak için tekrar tekrar sorular sorduğunu düşünün. Muhtemelen aşağıdaki sorular ile karşılaşacaksınız. Bu soruları cevaplarken de eğer çocuk daha önce o bilgileri öğrenmemişse (işte burada, günümüzde yapay zekâ devreye giriyor) yeni sorular gelecektir. Bu soruları da cümlelerin sağ tarafında görebilirsiniz.

“Domates nedir?” – “Meyve Nedir?”

“Kilo nedir?” – “Miktar Nedir?”

“Bu 10 Nedir?” – “Fiyat Nedir?”

“Lira nedir?” – “Para Birimi Nedir?”

Daha sonra bu soruların da cevaplarını vermelisiniz ve elbette işin içinde insan merakı olunca soruların ardı arkası kesilmeyecektir. Bu konuda ebeveynlere bir çözüm sunmak mümkün mü bilmiyorum ama bu şimdilik benim problemim değil, bu sebeple konuyu insandan alıp yazılımlara getirmek istiyorum. Robotik kıyamet senaryolarıyla arası kötü olanlara iyi bir haberim var: Makinelerin merakı sınırlı. Günümüzde ileri yapay zekâ projeleri hariç hemen hemen tüm yazılımların, yaratılıştan gelen bir merak sınırı var. Kısacası neye ihtiyacı varsa o bilgiyi alıp sizi rahat bırakmak istiyor. Bu durumda da sadece onlara ilgilendikleri bilgileri vermek yeterli. Aşağıdaki gibi:

“Domates nedir?” – ürün adı: <span itemprop=“name”>Domates</span>

“Kilo nedir?” – miktar: <span itemprop=“amountOfThisGood” content=“1”>1 Kilo</span>

“10 nedir?” – fiyat: <span itemprop=“price” content=“10”>10</span>

“Lira nedir?” – para birimi: <span itemprop=“priceCurrency” content=“TRY”>Türk Lirası</span>

Peki botlar, bu etiketlerin ne anlama geldiğini nereden biliyor? Elbette girişte sözünü ettiğim, Semantik Web’in yapı taşlarından olan “ontoloji” sayesinde.

Ontoloji nedir? Mikro data sözlükleri ne işe yarar?

Ontoloji, belirli bir konseptte kullanılacak ortak sözcük kümelerinin (sözlük) anlamsal standartlarını belirler. Terminolojiyi ait oldukları ontoloji ile oluşturduğumuz mikro data sayesinde ürün ismi, miktar, fiyat ve para birimini tanımlayarak 1 kilo domatesin 10 lira olduğu bilgisini botlara vermiş oluruz.

Sözlüklerde her bir etiketin hangi bilgiyi tanımladığı yazıyor. Yani bot “meyve”yi hangi etiket içerisinde, “fiyat”ı hangi etiket içerisinde bulacağını sözlükler sayesinde bilip, bu etiketi bulup içindeki bilgiyi sınıflandırabiliyor. Mikro datalar kullandığınızda yine kod içerisinde, hangi ontolojiye göre mikro data etiketlemelerini yaptığınızı da belirtmeniz gerekiyor. Örnek vermek gerekirse, yukarıdaki mikro datalar Schema Ontolojisi’ne aitti. Yukarıdaki örnekleri kod içerisinde kullansaydık sayfada aşağıdaki etiketin de bulunması gerekirdi:

<div itemscope itemtype=“http://schema.org/Product”>

Yukarıdaki etiket sayesinde botlar neye göre sınıflandırma yapacağı bilgisine sahip oluyor. Günümüzde kullanılan pek çok birbirinden bağımsız ontoloji bulunmakta. Meraklısı için paylaşıyorum, en popüler olanlardan bir kısmına aşağıdaki listeden ulaşabilirsiniz:

Ontolingua (http://www-ksl.stanford.edu/)

Ontosaurus (http://www.isi.edu/isd/ontosaurus.html)

OpenKnoME (http://www.topthing.com)

Protege 2000 (http://protege.stanford.edu/)

RDFDB (http://guha.com/rdfdb)

RDFSTORE (http://rdfstore.sourforge.net)

JENA (http://hpl.hpcom/semweb/jena-top.html)

KAON (http://kaon.semanticweb.org)

Apollo (http://apollo.open.ac.uk/)

LinkFactory (http://www.landc.be/)

OntoEdit (http://www.ontoprise.de/products/ontoedit_en)

OILed (http://oiled.man.ac.uk/)

SymOntoX (http://www.symontox.org)

WebODE (http://webode.dia.fi.upm.es/)

WebOnto (http://kmi.open.ac.uk/prpjects/wenonto)

SESAME (http://www.openrdf.org)

Peki bu ontolojiler hangi dillerde yazılıyor? OWL, DAML+OIL, RDFS gibi farklı ontoloji dilleri bulunmakta ve bunlardan daha fazlası da var. Her gün farklı amaçlar ve farklı kullanım alanları için yeni ontolojiler yaratılıyor. Web için kullanılan ise OWL. Dolayısıyla ilk örneklerde kullandığımız “Schema” OWL formatında.

Yazar hakkında

Onur Poyraz Kaya

2013 yılında Yeni Medya atölyelerinde ilk SEO çalışmalarına başladı. 2014'te Contentus’da içerik editörleri için hedef kitle analizleri üzerine çalıştıktan sonra 2014 sonundan itibaren SEM’de teknik analiz ve pazarlama temelli stratejileri birleştirerek SEO Danışmanlığı vermeye başladı. 2015-2018 yılları arasında TGS Akademi’de, farklı şirketlerde ve üniversitelerde 50'den fazla eğitim verdi. 2020’de ajans kariyerini noktaladı. Freelancer olarak SEO danışmanlığını sürdürüyor ve NLTR Akademi’de eğitimlerine devam ediyor.