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 4: Semantic Web Modül 4: Anlamsal Ağ Laboratuar Notları #4 A project implemented by CyberSoft Bilişim Teknolojileri Ltd. This project is funded by European Union. The contents of this publication are the sole responsibility of Cybersoft Bilişim Teknolojileri Ltd. and can in no way be taken to reflect the views of the European Union.
İçerik Bölüm 4: Resource Description Framework (RDF) 1. RDF Nedir?... 1 2. RDF in Yapıtaşları... 1 3. RDF in Ana Elemanları... 3 3.1. > Elementi... 3 3.2. > Elementi... 3 4. RDF Container Elementleri... 4 4.1 <rdf:bag> Elementi... 4 4.2 <rdf:seq> Elementi... 5 4.3 <rdf:alt> Elementi... 5 5. RDF Kolleksiyonları... 6 6. RDF Schema (RDFS)... 6 7. RDF Dublin Core Metadata Initiatives... 8
1. RDF Nedir? Kaynak Tanımlama Çerçevesi (Resource Description Framework (RDF)), web ortamındaki nesnelerin (kaynakların), kaynak özelliklerinin (title, author, modification date, content, ve copyright gibi) ve özellik değerlerinin tanımlanması fikrine dayanır. RDF, bilgiyi makinanın anlayabileceği bir biçimsel bir yolla ifade eder. RDF in amacı, kaynakların belirli bir yazılımın anlayabileceği bir şekilde, başka bir deyişle, veriye erişip veriyi kullanabileceği şekilde ifade edilmesini sağlayan kodlama ve çevirme mekanizmaları sağlamaktır.xml dilinde yazılmıştır. RDF in örnek kullanımları şunlardır: Alışveriş malzemelerinin fiyat ve stokta olup olmadığı gibi özelliklerinin tanımlanmasında Web sayfalarının içerik, yazar, yaratılma bilgileri vb. hakkında bilgiler verme Web ortamındaki fotoğrafların içeriği ve görülme sıklıgı hakkında bilgi verme Arama motorlarının içeriği hakkında bilgi verme 2. RDF in Yapıtaşları RDF ifadelerinde yer alan kaynak, özellik, değer üçlüleri RDF in temelini oluşturur. Kaynaklar (Resources): Üzerinde konuşulan her tür varlık bir kaynak olarak ele alınır. Mesela "http://www.info.com/rdf" Özellikler (Properties) : Özel türde kaynaklardır. "author" veya "homepage" gibi Değerler (Values): Kaynakların özelliklerinin aldığı değerlerdir. Basit veri türünde olabilecekleri gibi başka URI lerde değer olarak kullanılabilir. Dilek Beyaz veya http://www.info.com/rdf gibi Örnek 1: <?xml version= 1.0 encoding = UTF-16?> xmlns:rdf = http://www.w3c.org/1999/02/22-rdf-syntax-ns# xmlns:üniversitemodel= file://d:/um/universite-rdf-ns# > rdf:about = Ahmet Ali Süzen > <üniversitemodel:sorumlusu>yapay Zeka<üniversiteModel:sorumlusu> RDF Statement: RDF yapısında anlamlar RDF üçlüleri kullanılarak ifade edilir. Resource (subject), Property (predicate), ve Property (object) değerleri üçlüsüne Statement denir. Herbir statement bir özne, yüklem ve nesne (subject-predicate-object) birleşiminden oluşur. Bir RDF dökümanında, birtakım şeylerin (özneler=insanlar, web sayfaları,vb..) bazı özelliklerinin (property= -in kızkardeşi, -ın yazarı, vb..) sahip olduğu bazı değerler (başka bir insan, web sayfası, vb..) ifade edilebilir. Daha iyi anlamak için bir örnek inceleyelim: Örnek olarak "Gökyüzü mavi renge sahiptir." bilgisini RDF olarak gösterilişi, özellikle formatlanmış bir metin üçlüsü olark ifade edilebilir: özne "gökyüzü", yüklem "renge sahiptir" ve nesne "mavi". Diğer bir örnek ise 'New York, NY kısaltılmış posta koduna sahiptir.', 'New York' özne, 'kısaltılmış posta koduna sahiptir' yüklem, 'NY' ise nesne olarak kabul edilebilir. 1
Örnek 2. Title Artist Country Company Price Year Empire Burlesque Bob Dylan USA Columbia 10.90 1985 Hide your heart Bonnie Tyler UK CBS Records 9.90 1988 xmlns:cd="http://www.recshop.fake/cd#"> rdf:about="http://www.recshop.fake/cd/empire Burlesque"> <cd:artist>bob Dylan</cd:artist> <cd:country>usa</cd:country> <cd:company>columbia</cd:company> <cd:price>10.90</cd:price> <cd:year>1985</cd:year> rdf:about="http://www.recshop.fake/cd/hide your heart"> <cd:artist>bonnie Tyler</cd:artist> <cd:country>uk</cd:country> <cd:company>cbs Records</cd:company> <cd:price>9.90</cd:price> <cd:year>1988</cd:year>... RDF dökümanının ilk satırı XML tanımlamasıdır. XML tanımlamasından sonra RDF dökümanlarının root (kök) elementi olan > satırı gelir. The xmlns:rdf namespace, rdf ile başlayan prefix lerin http://www.w3.org/1999/02/22-rdfsyntax-ns# sayfasında tanımlandığını gösterir. 2
The xmlns:cd namespace, cd ile başlayan prefix lerin http://www.recshop.fake/cd# sayfasında tanımlandığını gösterir. The > elementi rdf:about attribute tarafından belirtilen kaynağın tanımlanması için kullanılır. <cd:artist>, <cd:country>, <cd:company> gibi elementler ise kaynağın özellikleridir. 3. RDF in Ana Elemanları RDF in ana elemanlar kök elementi olan <RDF> ve kaynak bilgisini içeren <Description> dır. 3.1 > Elementi > RDF dökümanının kök elementidir. XML dökümanının RDF dökümanı olacağını tanımlar. Aynı zamanda RDF namespace ini reference ını gösterir. >...Description burada olur... 3.2 The > Elementi > elementi kaynak hakkındaki bilgileri veren elementleri içerir. Örnek 3: xmlns:cd="http://www.recshop.fake/cd#"> rdf:about="http://www.recshop.fake/cd/empire Burlesque"> <cd:artist>bob Dylan</cd:artist> <cd:country>usa</cd:country> <cd:company>columbia</cd:company> <cd:price>10.90</cd:price> <cd:year>1985</cd:year> about elementi kaynak hakkındaki bilgileri içerir. artist, country, company, price, ve year elemetleri http://www.recshop.fake/cd# namespace inde tanımlanmıştırlar. 4. RDF Container Elementleri 3
RDF container leri grup şeklindeki elementleri tanımlamada kullanılır. Grup tanımlamada kullanılan RDF container elementleri şunlardır: <Bag>, <Seq>, ve <Alt>. 4.1 <rdf:bag> Elementi <rdf:bag> elementi sıralı olmayan değerlerin liste şeklinde tanımlanmasında kullanılır. <rdf:bag> elementi aynı değerden birden fazla içerebilir. Örnek 4: xmlns:cd="http://www.recshop.fake/cd#"> rdf:about="http://www.recshop.fake/cd/beatles"> <cd:artist> <rdf:bag> <rdf:li>john</rdf:li> <rdf:li>paul</rdf:li> <rdf:li>george</rdf:li> <rdf:li>ringo</rdf:li> </rdf:bag> </cd:artist> 4.2 <rdf:seq> Elementi <rdf:seq> elementi değerleri sıralı bir liste şeklinde (örneğin harf sırasına göre) tanımlanmasında kullanılır. <rdf:seq> elementi aynı değerden birden fazla içerebilir. Örnek 5: xmlns:cd="http://www.recshop.fake/cd#"> 4
rdf:about="http://www.recshop.fake/cd/beatles"> <cd:artist> <rdf:seq> <rdf:li>george</rdf:li> <rdf:li>john</rdf:li> <rdf:li>paul</rdf:li> <rdf:li>ringo</rdf:li> </rdf:seq> </cd:artist> 4.3 <rdf:alt> Elementi The <rdf:alt> elementi alternatifli değerler listesini tanımlamada kullanılır( kullanıcı sadece bir değer seçebilir). Örnek 6: xmlns:cd="http://www.recshop.fake/cd#"> rdf:about="http://www.recshop.fake/cd/beatles"> <cd:format> <rdf:alt> <rdf:li>cd</rdf:li> <rdf:li>record</rdf:li> <rdf:li>tape</rdf:li> </rdf:alt> </cd:format> Yukarıdaki container elementlerini tanımlarken değerler listesinden bahsetmiştik. RDF de bu değerler listesindeki her bir elemana member denir. Dolayısıyla, Bir container değerler içeren kaynaktır. Containerin içindeki her bir değere member denir. 5
5. RDF Kolleksiyonları (Collections) RDF kolleksiyonları SADECE belirli member leri içeren gruplara denir. RDF container le farkı şudur: RDF container ler başka member ler de içerebilirler ama RDF kolleksiyonları içeremezler. Bir RDF collection ı rdf:parsetype="collection" attribute ü ile tanımlanır. Örnek 7: xmlns:cd="http://recshop.fake/cd#"> rdf:about="http://recshop.fake/cd/beatles"> <cd:artist rdf:parsetype="collection"> rdf:about="http://recshop.fake/cd/beatles/george"/> rdf:about="http://recshop.fake/cd/beatles/john"/> rdf:about="http://recshop.fake/cd/beatles/paul"/> rdf:about="http://recshop.fake/cd/beatles/ringo"/> </cd:artist> 6. RDF Schema (RDFS) RDF Schema (RDFS) RDF in genişletilmiş halidir. RDF kaynakları sınıflar (classes), özellikler (properties) ve değerler (values) şeklinde tanımlar. Ancak bunlara ek olarak uygulamaya-özel (application-specif) sınıfların ve özelliklerin tanımlanması da gereklidir. İşte bu uygulamaya-özel sınıfların ve özelliklerin nımlanmasında RDF extensions ların (uzantınlarının) kullanılması gereklidir. Bu RDF uzantılarından bir tanesi de RDF Şemalarıdır. RDF Schema (RDFS) RDF Schema aslında uygulamaya-özel sınıflar ve özellikler içermezler, sadece bunlar için bir framework sağlarlar. RDF Schema lardaki sınıflar object-oriented programlama dillerindeki sınıflara benzerler. Bu özellik kaynakların sınıflar ve alt sınıflar şeklinde tanımlanmasını sağlar. RDFS Örneği: Aşağıdaki örnek RDFS in özelliklerini daha iyi anlamanızı sağlaycaktır: 6
Örnek 8: xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xml:base="http://www.animals.fake/animals#"> rdf:id="animal"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#class"/> rdf:id="horse"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#class"/> <rdfs:subclassof rdf:resource="#animal"/> Mesela, yukarıdaki örnekte "horse" kaynağı "animal" sınıfının alt sınıfıdır. Örnek 9: RDFS sınıfları da bir RDF kaynağıdır. Dolayısıyla yukarıdaki örneği rdf:description yerine rdfs:class kullanıp, rdf:type ı iptal ederek şu şekilde yazabiliriz: <?xml version= 1.0?> xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xml:base="http://www.animals.fake/animals#"> <rdfs:class rdf:id="animal" /> <rdfs:class rdf:id="horse"> <rdfs:subclassof rdf:resource="#animal"/> </rdfs:class> 7
7. RDF Dublin Core Metadata Initiative Dublin Core elektronik ortamdaki bilgi kaynaklarının tanımlanması için kullanılan bir meta veri standartıdır ve dökümanları tanımlamak için bazı önceden tanımlanmış özellikler yarattılar. Dublin Core meta veri kümesi aşağıdaki tabloda verilmiştir: Özellik Açıklama Contributor An entity responsible for making contributions to the content of the resource Coverage Creator Format Date Kaynakların içerik alanlarını (sınırlarını) tanımlar. An entity primarily responsible for making the content of the resource The physical or digital manifestation of the resource A date of an event in the lifecycle of the resource Description An account of the content of the resource Identifier Language Publisher Relation Rights Source Subject Title Type An unambiguous reference to the resource within a given context A language of the intellectual content of the resource An entity responsible for making the resource available A reference to a related resource Information about rights held in and over the resource A Reference to a resource from which the present resource is derived A topic of the content of the resource Kaynak adı Kaynak içerik tipi RDF Dublin Core Örneği: Aşağıdaki örnek Dublin Core property lerinin RDF dökümanında kullanımını göstermektedir: Örnek 10: 8
xmlns:dc= "http://purl.org/dc/elements/1.1/"> rdf:about="http://www.w3schools.com"> <dc:description>w3schools - Free tutorials</dc:description> <dc:publisher>refsnes Data as</dc:publisher> <dc:date>2008-09-01</dc:date> <dc:type>web Development</dc:type> <dc:format>text/html</dc:format> <dc:language>en</dc:language> 9