Yazan : İsmet BAHADIR

Özet

Bu doküman Graph ve RDF veritabanları hakkında genel bilgi sunmaktadır. Doküman 4 kısımda hazırlanmıştır. İlk kısımda Graph veritabanları ve tanımları açıklanmış, ikinci kısımda RDF veri tabanları açıklanmış, üçüncü kısımda Graph veritabanlarına örnekler verilmiş ve kısa açıklamalar ile resmi web siteleri sunulmuş ve son bölümde de RDF veritabanlarına örnekler verilmiş ve kısa açıklamalar ile resmi web siteleri sunulmuştur.

  1. Graph Veritabanları

Bir graph veritabanı düğümler, kenarlar ve özelliklerle beraber graph yapılarını kullanarak veriyi sunar ve saklar. Tanımsal olarak bir graph veritabanı, indissiz yakınlık (index-free adjacency) sağlayan bir veri saklama sistemidir. Bu tanıma göre, her öğe (element) yakın olduğu öğeye doğrudan bir işaretçi (direct pointer) içerir ve indis aramaları (lookup) gereksizdir. Herhangi bir graph tutabilen genel graph veritabanları, “ağ veritabanları” ve “triplestores” gibi özelleştirilmiş graph veri tabanlarından farklıdır.

Graph veritabanları graph teorisine dayalıdır ve düğümler, özellikler ve kenarlar içerirler. Düğümler, nesneye yönelik programcıların aşina olduğu objelere çok benzemektedir.

Düğümler insan, iş, hesap gibi takip edilmek istenen varlıkları (entity) temsil eder. Özellikler, düğümlerle ilişkili olan bilgilerdir. Örneğin, eğer “wikipedia” düğümlerden biriyse, “web sitesi” veya “referans materyali” gibi özelliklere bağlanabileceği gibi düğümün hangi özelliklerinin veritabanı ile uyumlu olacağına bağlı olarak, “‘w’ ile başlayan kelimeler” gibi özelliklere de bağlanabilir.

Kenarlar düğümleri düğümlere veya düğümleri özelliklere bağlayan çizgilerdir ve iki taraf arasındaki ilişkiyi temsil eder. Önemli bilginin çoğu kenarlarda tutulur. Birisi düğümlerin, özelliklerin ve kenarların bağlantılarını incelediği zaman anlamlı örüntüler ortaya çıkar. [1]

2. RDF Veritabanları

Aslen bir “metadata” veri modeli olarak tasarlanan RDF (Resource Description Framework), World Wide Web Consortium (W3C) spesifikasyonlarının bir ailesidir. Web kaynakları içerisinde uygulanmış olan bilginin, çeşitli sözdizimi formatlarını kullanarak modellenmesi veya kavramsal olarak tanımlanması için kullanılan bir metot olagelmiştir.

RDF veri modeli, varlık-ilişki veya sınıf-diyagramları gibi klasik kavramsal modelleme yaklaşımlarına benzemektedir çünkü kaynaklar hakkında özne-yüklem-nesne ifadesi formunda değerlendirme yapma fikrine dayanmıştır. Bu ifadeler RDF terminolojisinde “Triples” olarak yer almaktadır. Özne kaynağı, yüklem kaynağın özelliklerini ifade eder ve nesne ile özne arasında bir ilişkiyi ifade eder. Örneğin, RDF’te “Gökyüzü mavi renktedir” kavramını “triple” kullanarak temsil etmenin bir yolu: “gökyüzü”nü ifade eden bir özne, “renktedir”i ifade eden bir yüklem ve “mavi”yi ifade eden bir nesnedir. Dolayısıyla RDF, nesne tabanlı tasarımdaki klasik gösterim olan varlık-özellik-değer modelinde kullanılan nesneleri, öznelerle yer değiştirir; nesne (gökyüzü), özellik (renk) ve değer (mavi). RDF birçok serileştirme biçimine (örneğin; dosya biçimi) sahip bir soyut modeldir ve dolayısıyla a bir kaynağın veya triple’ın kodlanması, biçimden biçime farklılıklar göstermektedir.

Bir RDF ifadeleri koleksiyonu özünde etiketli, yönlü (directed) bir çoklu-graph’tır. Bu yüzden RDF-tabanlı veri modeli doğal olarak belirli türdeki bilgi temsiline (knowledge representation), ilişkisel model veya diğer ontolojik modellerden daha uyumludur. Ancak pratikte RDF verisi genellikle ilişkisel veritabanı veya Triplestores (eğer her bir RDF triple’ı için bağlam da persist ediliyorsa Quadstores) adı verilen yerel temsillerle persist edilir. RDFS ve OWL’nin gösterdiği gibi, ek ontoji dilleri RDF kullanılarak inşa edilebilir. [2]

3. Graph Veritabanı Projeleri

Aşağıdaki listede iyi bilinen birçok graph veritabanı projesi listelenmiştir:

  • AllegroGraph – ölçeklenebilir, yüksek performanslı RDF ve graph veritabanı
  • Bigdata – yüksek derecede ölçeklenebilir RDF/Graph veritabanı, bir düğümde +10milyar kenar veya çok yüksek çıktı için kümelenmiş deployment
  • CloudGraph – graph ve anahtar/değer çiftlerini veri saklamak için kullanan, disk ve hafıza tabanlı, tam işlemli (transactional) .NET graph veritabanı
  • Cytoscape – açık-kaynak kodlu platform, open-source platform, biyo-enformatiğin sonucu
  • DEX – Sparsity Technologies’ten yüksek performanslı bir graph veritabanı
  • Filament – graph persistence çatısı ve seyirsel sorgu tarzına dayalı birleşmiş araç kutuları
  • GiraffeDB – karmaşık semantikleri etkin ve erişilebilir bir yolla temsil edebilen, .NET framework 4.0 için güçlü bir grap veritabanı sistemi
  • GraphBase – biçimlendirilebilir, dağıtık, yüksek performanslı ve zengin araç setli graph deposu
  • HyperGraphDB – genelleştirilmiş hipergraph’ların desteklendiği, kenarların diğer kenarı işaret ettiği, açık-kaynak kodlu grap veritabanı an open-source (LGPL) graph database supporting
  • InfiniteGraph – yüksek ölçeklenebilirlik dağıtık, bulut-uyumlu esnek lisanslara sahip ticari ürün
  • Neo4j – açık-kaynak kodlu ve ücretli graph veritabanı
  • OpenLink
    Virtuoso – yüksek performanslı RDF graph veritabanı sunucusu, yerel gömülü durum olarak deploy edilebilir, tek-durum ağ sunucusu veya çok büyük derecede ölçeklenebilir sıfır-paylaşım ağ kümesi durumu
  • OrientDB – yüksek performans, açık-kaynak kodlu, doküman-graph veritabanı

4. RDF Veritabanı Projeleri

  • Oracle Database Semantic Technologies – hem bedava hem de ücretli sürüm, ileri-zincirli muhakeme (forward-chaining reasoning), ölçeklenebilir
  • BigData RDF Database – hem bedava hem de ücretli sürüm, yatay ölçeklenebilir, transaction destekli, yüksek G/Ç oranları, SPARQL ve RDFS
  • OWLIM – hem bedava hem de ücretli sürüm, Java ile geliştirilmiş yerel RDF motoru, Sesame ve Jena, RDFS ve OWL 2RL, en iyi ölçekleme, yükleme ve değerlendirme performansı
  • 4Store – bedava, ölçeklenebilir, güvenli, hızlı, güçlü
  • Mulgara – açık-kaynak kodlu, ölçeklenebilir, tamamen Java
  • ViziQuer – SPARQL endpoint ontolojisini taramaya ve SPARQL sorguları oluşturmaya yarayan bir araç
  • SemWebCentral – açık-kaynak kodlu semantik web araçları
  • Virtuoso Universal Server – RDF veri yönetimi için SPARQL uyumlu platform, SQL-RDF entegrasyonu ve RDF tabanlı bağlı-veri deployment’ı
  • ROWLEX – RDF dokümanlarını kolayca yaratmak ve göstermek için kullanılan .NET kütüphanesi ve araç kutusu, RDF tripler’larının seviyesini soyutlar ve programlama işini OWL sınıflarına ve özelliklerine yükseltir.
  • StrixDB: bir RDF graph deposu, SPARQL, httpd olarak kullanılabilir

Kaynakça

[1] http://en.wikipedia.org/wiki/Graph_database

[2] http://en.wikipedia.org/wiki/Resource_Description_Framework

Yorumlar

  1. mehmet

    hocam merhaba,welch powel renklendirme algoritması ile sınav programı yapacagım nasıl bir yol izleyebilirim,yardımcı olabilir misiniz?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir