Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

55
Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

description

31 Mayıs 2012 tarihinde UYMS'6 etkinliğinde Prof. Dr. Oğuz Dikenelli tarafından verilen eğitim semineri

Transcript of Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Page 1: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Page 2: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

İçerik● Gereksinim● Bağlı veri çözümü ● Bağlı verinin sorgulanması ● Bağlı veri uygulamalarının mimarisi ● Durum çalışmaları

Page 3: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Bilgiyi birçok değişik kaynakta arıyoruzBugün: Bir pazardaymış gibi

Page 4: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

… bazen çok fazla seçenek içinde ...

Page 5: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Yarın: Hazır sofra gibiBilgi bilgiyi yanında getirecek

Page 6: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Aradığımıza bir seferde ulaşamıyoruz

Page 7: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Beğenilen müzikler, takımlar ve katılınan etkinlikler bir

sosyal ağda bulunuyor

Dağınık verilere bir örnek

Page 8: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Ziyaret edilen mekanlar ile ilgili bilgiler bir başka sosyal ağda bulunuyor

Page 9: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

İki ayrı veri kaynağına bölünmüş veriler

Page 10: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Bir mekanda yer bildirimi yapmış olanların sevdiği

müzikler

Page 11: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

HTTP

URI

HTML

WWW mimarisinin bileşenleri üzerine...

Page 12: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Bir mekanda yer bildirimi yapmış olanların sevdiği

müzikler

http://seagent.ege.edu.tr/resource/Oguz

Page 13: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Benimle aynı takımı tutan aynı şehirdeki arkadaşlarımın bu

şehirde yer bildirimi yaptıkları mekanlar

http://seagent.ege.edu.tr/resource/Oguz

Page 14: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Benimle aynı takımı tutan aynı şehirdeki arkadaşlarımın bu

şehirde yer bildirimi yaptıkları mekanlar

http://seagent.ege.edu.tr/resource/Oguz

http://seagent.ege.edu.tr/resource/Izmir

http://seagent.ege.edu.tr/property/city

http://seagent.ege.edu.tr/property/location

Page 15: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Yeni veri kaynakları

Tek tanımlayıcıTek

tanımlayıcı

Page 16: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Yeni veri kaynakları

Tek tanımlayıcıTek

tanımlayıcı

Ortak dil

Page 17: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

İçerik✔ Gereksinim● Bağlı veri çözümü ● Bağlı verinin sorgulanması ● Bağlı veri uygulamalarının mimarisi ● Durum çalışmaları

Page 18: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Bağlı Veri Çözümü*

● Varlıkları tanımlamak için URI'ler kulanın (yalnızca sayfalar için değil)

● HTTP URI'ler kullanın ● Evrensel olarak tekil isimler, dağıtık aidiyet ● Erişilebilmeyi sağlar

● Verdiğiniz URI'ye erişmek istendiğinde gerekli bilgiyi RDF olarak verin

● Başka URI'lere RDF bağlantıları yapın● Böylece ilişkili veriye ulaşılabilsin

* http://www.w3.org/DesignIssues/LinkedData.html

Page 19: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

http://dbpedia.org/resource/İzmir_Clock_Tower

http://dbpedia.org/ontology/location

http://dbpedia.org/resource/İzmirhttp://www.itusozluk.com/image/izmir-saat-kulesi_225.jpg

Page 20: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

http://dbpedia.org/resource/İzmir

http://dbpedia.org/ontology/leaderName

http://dbpedia.org/resource/Aziz_Kocaoğluhttp://www.itusozluk.com/image/izmir-saat-kulesi_225.jpg

Page 21: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Temel Kavramlar*

● Kaynaklar ● Bilgi kaynakları: Sayfalar, belgeler, resimler,

videolar, … – Temsiller: HTML, RDF/XML, PDF, JPEG, …

● Bilgi-dışı kaynaklar: İnsanlar, ürünler, yerler, proteinler, konferanslar, …

● HTTP URI ● Bilgi kaynakları: HTTP 200 OK ● Bilgi dışı kaynaklar: HTTP 303 See Other

* http://linkeddatabook.com/editions/1.0/#htoc8

Page 22: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Bilgi Dışı Kaynakların Çözümlenmesi

http://dbpedia.org/resource/Izmir

http://dbpedia.org/data/Izmir

http://www4.wiwiss.fu-berlin.de/bizer/pub/linkeddatatutorial/deref-ont-uri-rdf.png

Page 23: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

RDF Veri Modeli● Varlıklar hakkındaki bilginin temsili ● RDF – Resource Description Framework

● Kaynak Tanımlama Çerçevesi ● Üçlüler

● Özne – Yüklem – Nesne ● Basit cümleler

– Oğuz | has the email address | [email protected] – Oğuz | is employed by | Ege University.

Page 24: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

RDF Veri Modeli ...

RDF/N3

RDF/XML

Page 25: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

RDF Veri Modeli ...

<http://etmen.ege.edu.tr/etmen/foaf/halac/foaf.rdf#tayfun> <http://xmlns.com/foaf/0.1/based_near>

<http://dbpedia.org/resource/İzmir>

Başka bir kaynağa işaret ediyor

Page 26: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

RDF Veri Modeli ...

<http://dbpedia.org/resource/İzmir> <http://dbpedia.org/ontology/country> <http://dbpedia.org/resource/Turkey>

geonames:311046owl:sameAs

Diğer kaynak çözümleniyor...

Page 27: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

RDF Veri Modeli ...

<http://dbpedia.org/resource/İzmir> <http://dbpedia.org/ontology/country> <http://dbpedia.org/resource/Turkey>

geonames:311046owl:sameAs

Aynı varlığın diğer tanımları bağlanmış

Page 28: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

RDF Veri Modeli ...

<http://dbpedia.org/resource/Ankara> <http://dbpedia.org/ontology/country> <http://dbpedia.org/resource/Turkey>

geonames:311046owl:sameAs

Gerektiğinde çözümlemeye devam edilerek yeni kaynaklara ulaşılıyor...

Page 29: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Bağlı Veri Yayınlama Yolları ● Statik RDF dosyaları ● Üçlü veritabanları ● İlişkisel veritabanlarının bağlı veri görünümünde

yayınlanması ● CVS, Excel, Bibtex gibi biçemler için RDF

dönüştürücüler kullanılması ● Mevcut uygulamalar ya da Web API'leri için

sarmalayıcılar gerçekleştirme

Page 30: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Bağlı Veri Yayınlama Yolları ...● Seçim

● Ne kadar veri yayınlayacaksınız? ● Şu anda var olan verinizi nasıl saklıyorsunuz?● Veriniz ne kadar sıklıkla değişiyor? ● …

Page 31: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

RDB2RDF

İlişkisel veritabanından RDF'e eşleme

Page 32: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

D2R Server

SPARQL to SQL

http://www4.wiwiss.fu-berlin.de/bizer/d2r-server/publishing/images/architecture.png

Page 33: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

ProductsID Name

1 HD Television2 Playstation3 iPhone4 LCD Monitor

http://seagent.ege.edu.tr/resource/2

http://seagent.ege.edu.tr/vocabulary/Producthttp://seagent.ege.edu.tr/vocabulary/name

Tablo-kavram eşlemesi

Saha-İlişki eşlemesi

Tanımlayıcı oluşturulması

map:ProductClassMap a d2rq:ClassMap; d2rq:uriPattern "http://seagent.ege.edu.tr/resource/@@Products.ID@@"; d2rq:class http://seagent.ege.edu.tr/vocabulary/Product; .map:ProductName a d2rq:PropertyBridge; d2rq:belongsToClassMap map:ProductClassMap; d2rq:property http://seagent.ege.edu.tr/vocabulary/name; d2rq:column "Products.Name"; .

Page 34: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Bağlı Veri Bulutu

http://richard.cyganiak.de/2007/10/lod/

Page 35: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

İçerik✔ Gereksinim✔ Bağlı veri çözümü ● Bağlı verinin sorgulanması ● Bağlı veri uygulamalarının mimarisi● Durum çalışmaları

Page 36: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Bağlı Veri Sorgu Dili● Bilinmeyen bağlantıların keşfi ● Üçlü desenleri

● Oğuz Dikenelli'nin çocuklarının isimleri nedir? seagent:Oguz family:child ?child

?child foaf:name ?name● Sorgu biçimleri

● SELECT ● ASK ● CONSTRUCT ● DESCRIBE

Page 37: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Stadyum kapasitesi 40 binden büyük olan bir takımda oynayan ve 10 milyondan fazla nüfusu

olan bir ülkede doğmuş olan kaleciler● Olivier Kahn is a Soccer Player

● ?who is a Soccer Player● Olivier Kahn is a ?what ● Olivier Kahn ?what Soccer Player

Bir üçlü için 3 farklı soru sorulabilir

Bunların bir araya getirilmesiyle daha karmaşık sorgular oluşturulabilir

Page 38: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

SPARQL Uç Noktaları SELECT * WHERE { SERVICE <http://dbpedia.org/sparql> { ?dbCity dbp-owl:country dbpedia:Turkey } SERVICE <http://linkedgeodata.org/sparql> { ?lgdCity owl:sameAs ?dbCity }}

sorgu

sonuç HTTP

Page 39: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Birleşik sorgulama ● Dağıtık veri kümelerinin bir arada sorgulanması ● Veri Kümesi Üst-verisi

● VOID – Vocabulary of Interlinked Datasets ● VOID Kayıtçıları

Page 40: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

İçerik✔ Gereksinim✔ Bağlı veri çözümü ✔ Bağlı verinin sorgulanması ● Bağlı veri uygulamalarının mimarisi ● Durum çalışmaları

Page 41: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Bağlı Veri Tüketimi ● Uygulama ihtiyaçları

● Bağlı veriye erişme– Okuma– Sorgulama– Arama (Sindice vb.)

● Kimlik çözümleme ● Sözlük eşleme ● Kaynak izleme ● Veri kalitesi değerlendirme

Page 42: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Bağlı Veri Tüketimi ...● Uygulama mimarisinin seçimindeki etkenler

● Kullanılacak veri kaynaklarının sayısı● Gereksinim duyulan veri tazeliği derecesi ● Kullanıcı etkileşimleri ve sorgular için gereksinim

duyulan yanıt zamanı ● Çalışma zamanında yeni veri kaynaklarının keşfinin

kapsamı

Page 43: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Tümleştirme Deseni

http://linkeddatabook.com/editions/1.0/images/Consumingarchitecture1_small.png

Page 44: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Canlı Çözümleme

Deseni

Page 45: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Sorgu Birleştirme

Deseni

Page 46: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Araç Kümesi ● RDF/OWL API● Sorgu motoru● SPARQL Sunucusu ● RDF Saklayıcı (Üçlü/Dörtlü Saklayıcı) ● RDB2RDF Sunucusu ● RDF Dönüştürücü ● Çıkarsama Motoru ● Toplayıcı ● Kimlik Çözümleyici● Sözlük Eşleyici ● …

Page 47: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

İçerik✔ Gereksinim✔ Bağlı veri çözümü ✔ Bağlı verinin sorgulanması ✔ Bağlı veri uygulamalarının mimarisi ● Durum çalışmaları

Page 48: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Avustralya E-Devlet

Dunny Directories

Farmers Market

UV Rating

Know Where You Live

Page 49: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

İngiltere E-Devlet

Numberhood

UK Roadworks

Pitchup.com

UK Pharmacy

● 8,400 kaynak● 210 uygulama

Page 50: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

ABD E-Devlet ● 445,287 kaynak● 172 kurum● 1,248 resmi uygulama● 236 vatandaş uygulaması

Fly On Time

National Obesity

Comparison Tool

Employement Market

Explorer

Page 51: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

BBC

● Programlar● Müzikler ● 2010 Dünya Kupası

Page 52: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

NY Times

Page 53: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

SAP

Page 54: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Sosyal Ağ Bağlayıcı

Page 55: Bağlı Veri Bulutu Üzerinde Yazılım Geliştirme

Sorular ???