XML RDF'si
RDF Belge Örneği
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:si="https://www.w3schools.com/rdf/">
<rdf:Description rdf:about="https://www.w3schools.com">
<si:title>W3Schools</si:title>
<si:author>Jan Egil Refsnes</si:author>
</rdf:Description>
</rdf:RDF>
RDF nedir?
- RDF , Kaynak Tanımlama Çerçevesi anlamına gelir
- RDF, web'deki kaynakları tanımlamak için bir çerçevedir.
- RDF, bilgisayarlar tarafından okunacak ve anlaşılacak şekilde tasarlanmıştır
- RDF, insanlara gösterilmek üzere tasarlanmamıştır
- RDF, XML'de yazılmıştır
- RDF, W3C'nin Semantik Web Etkinliğinin bir parçasıdır
- RDF, 10'dan itibaren bir W3C Tavsiyesidir. Şubat 2004
RDF - Kullanım Örnekleri
- Fiyat ve stok durumu gibi alışveriş öğelerinin özelliklerini açıklama
- Web etkinlikleri için zaman çizelgelerini tanımlama
- Web sayfaları hakkındaki bilgileri (içerik, yazar, oluşturulma ve değiştirilme tarihi) açıklama
- Web resimleri için içeriği ve derecelendirmeyi tanımlama
- Arama motorları için içeriğin açıklanması
- Elektronik kütüphaneleri tanımlama
RDF, Bilgisayarlar Tarafından Okunmak İçin Tasarlanmıştır
RDF, bilgisayar uygulamaları tarafından okunabilmesi ve anlaşılabilmesi için bilgileri tanımlamanın ortak bir yolunu sağlamak üzere tasarlanmıştır.
RDF açıklamaları web'de görüntülenmek üzere tasarlanmamıştır.
RDF, XML'de Yazılmıştır
RDF belgeleri XML ile yazılır. RDF tarafından kullanılan XML diline RDF/XML adı verilir.
XML kullanılarak, RDF bilgileri, farklı işletim sistemleri ve uygulama dilleri kullanan farklı bilgisayar türleri arasında kolayca değiş tokuş edilebilir.
RDF ve "Semantik Web"
RDF dili, W3C'nin Semantik Web Etkinliğinin bir parçasıdır. W3C'nin "Semantik Web Vizyonu" şu durumlarda bir gelecek:
- Web bilgilerinin kesin anlamı vardır
- Web bilgileri bilgisayarlar tarafından anlaşılabilir ve işlenebilir
- Bilgisayarlar web'deki bilgileri entegre edebilir
RDF, kaynakları tanımlamak için Web tanımlayıcılarını (URI'ler) kullanır.
RDF, özellikleri ve özellik değerleriyle kaynakları tanımlar.
RDF Kaynağı, Mülkü ve Mülk Değeri
RDF, Web tanımlayıcılarını (URI'ler) kullanarak şeyleri tanımlar ve özellikleri ve özellik değerleriyle kaynakları tanımlar.
Kaynak, Mülk ve Mülk değerinin açıklaması:
- Kaynak , "https://www.w3schools.com/rdf" gibi bir URI'ye sahip olabilecek herhangi bir şeydir .
- Mülk , "yazar" veya "ana sayfa" gibi bir adı olan bir Kaynaktır .
- Mülk değeri , "Jan Egil Refsnes" veya "https://www.w3schools.com" gibi bir Mülkün değeridir (bir mülk değerinin başka bir kaynak olabileceğini unutmayın)
Aşağıdaki RDF belgesi, "https://www.w3schools.com/rdf" kaynağını açıklayabilir:
<?xml version="1.0"?>
<RDF>
<Description about="https://www.w3schools.com/rdf">
<author>Jan Egil Refsnes</author>
<homepage>https://www.w3schools.com</homepage>
</Description>
</RDF>
Yukarıdaki örnek basitleştirilmiştir. Ad alanları atlanmıştır.
ATY Beyanları
Bir Kaynak, bir Özellik ve bir Özellik değerinin birleşimi bir Bildirimi oluşturur (bir İfadenin konusu, yüklemi ve nesnesi olarak bilinir ).
Daha iyi anlamak için bazı örnek ifadelere bakalım:
Açıklama: "https://www.w3schools.com/rdf'nin yazarı Jan Egil Refsnes'dir".
- Yukarıdaki açıklamanın konusu: https://www.w3schools.com/rdf
- yüklem şudur: yazar
- Konu: Jan Egil Refsnes
Açıklama: "https://www.w3schools.com/rdf'nin ana sayfası https://www.w3schools.com'dur".
- Yukarıdaki açıklamanın konusu: https://www.w3schools.com/rdf
- Yüklem şudur: ana sayfa
- Nesne şudur: https://www.w3schools.com
ATY Örneği
İşte bir CD listesinden iki kayıt:
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 |
Aşağıda bir RDF belgesinden birkaç satır verilmiştir:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
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:Description>
<rdf:Description
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:Description>
.
.
.
</rdf:RDF>
RDF belgesinin ilk satırı XML bildirimidir. XML bildirimini, RDF belgelerinin kök öğesi izler: <rdf:RDF> .
xmlns:rdf ad alanı, rdf önekine sahip öğelerin "http://www.w3.org/1999/02/22-rdf-syntax-ns#" ad alanından olduğunu belirtir .
xmlns:cd ad alanı , cd önekine sahip öğelerin "http://www.recshop.fake/cd#" ad alanından olduğunu belirtir.
<rdf:Description> öğesi , rdf:about özniteliği tarafından tanımlanan kaynağın açıklamasını içerir .
Öğeler: <cd:artist>, <cd:country>, <cd:company>, vb. kaynağın özellikleridir.
RDF Çevrimiçi Doğrulayıcı
W3C'nin RDF Doğrulama Hizmeti , RDF öğrenirken yararlıdır. Burada RDF dosyalarıyla deney yapabilirsiniz.
Çevrimiçi RDF Doğrulayıcı, RDF belgenizi ayrıştırır, sözdiziminizi kontrol eder ve RDF belgenizin tablo ve grafik görünümlerini oluşturur.
Aşağıdaki örneği kopyalayıp W3C'nin RDF doğrulayıcısına yapıştırın:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:si="https://www.w3schools.com/rdf/">
<rdf:Description rdf:about="https://www.w3schools.com">
<si:title>W3Schools.com</si:title>
<si:author>Jan Egil Refsnes</si:author>
</rdf:Description>
</rdf:RDF>
Yukarıdaki örneği ayrıştırdığınızda, sonuç aşağıdaki gibi görünecektir .
RDF Elemanları
RDF'nin ana öğeleri, bir kaynağı tanımlayan kök öğe, <RDF> ve <Description> öğesidir.
<rdf:RDF> Öğesi
<rdf:RDF>, bir RDF belgesinin kök öğesidir. XML belgesini bir RDF belgesi olarak tanımlar. Ayrıca RDF ad alanına bir başvuru içerir:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
...Description goes here...
</rdf:RDF>
<rdf:Description> Öğesi
<rdf:Description> öğesi, about niteliğine sahip bir kaynağı tanımlar.
<rdf:Description> öğesi, kaynağı tanımlayan öğeleri içerir:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
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:Description>
</rdf:RDF>
Öğeler, sanatçı, ülke, şirket, fiyat ve yıl http://www.recshop.fake/cd# ad alanında tanımlanmıştır. Bu ad alanı RDF'nin dışındadır (ve RDF'nin bir parçası değildir). RDF yalnızca çerçeveyi tanımlar. Öğeler, sanatçı, ülke, şirket, fiyat ve yıl başka biri tarafından tanımlanmalıdır (şirket, kuruluş, kişi vb.).
Nitelik Olarak Özellikler
Özellik öğeleri ayrıca nitelikler olarak da tanımlanabilir (elemanlar yerine):
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque"
cd:artist="Bob Dylan" cd:country="USA"
cd:company="Columbia" cd:price="10.90"
cd:year="1985" />
</rdf:RDF>
Kaynak Olarak Mülkler
Özellik öğeleri kaynaklar olarak da tanımlanabilir:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
<cd:artist rdf:resource="http://www.recshop.fake/cd/dylan" />
...
...
</rdf:Description>
</rdf:RDF>
Yukarıdaki örnekte, mülk sanatçısının bir değeri yoktur, ancak sanatçı hakkında bilgi içeren bir kaynağa referans vardır.
ATY Konteynerleri
RDF kapları, bir grup şeyi tanımlamak için kullanılır.
Grupları tanımlamak için aşağıdaki RDF öğeleri kullanılır: <Bag>, <Seq> ve <Alt>.
<rdf:Bag> Öğesi
<rdf:Bag> öğesi, belirli bir sırada olması gerekmeyen bir değerler listesini tanımlamak için kullanılır.
<rdf:Bag> öğesi yinelenen değerler içerebilir.
Örnek
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
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>
</rdf:Description>
</rdf:RDF>
<rdf:Seq> Öğesi
<rdf:Seq> öğesi, sıralı bir değerler listesini tanımlamak için kullanılır (Örneğin, alfabetik sırayla).
<rdf:Seq> öğesi yinelenen değerler içerebilir.
Örnek
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
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>
</rdf:Description>
</rdf:RDF>
<rdf:Alt> Öğesi
<rdf:Alt> öğesi, alternatif değerlerin bir listesini tanımlamak için kullanılır (kullanıcı değerlerden yalnızca birini seçebilir).
Örnek
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
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>
</rdf:Description>
</rdf:RDF>
RDF Şartları
Yukarıdaki örneklerde, konteyner elemanlarını tanımlarken "değerler listesi"nden bahsetmiştik. RDF'de bu "değerler listesi" üyeler olarak adlandırılır.
Yani, aşağıdakilere sahibiz:
- Bir kap, şeyleri içeren bir kaynaktır.
- İçerilen şeylere üye denir (değer listesi değil)
ATY Koleksiyonları
RDF koleksiyonları, YALNIZCA belirtilen üyeleri içerebilen grupları tanımlar.
rdf:parseType="Collection" Özelliği
Önceki bölümde görüldüğü gibi, bir kapsayıcı, içeren kaynakların üye olduğunu söyler - diğer üyelere izin verilmediğini söylemez.
RDF koleksiyonları, YALNIZCA belirtilen üyeleri içerebilen grupları tanımlamak için kullanılır.
Bir koleksiyon, rdf:parseType="Collection" özniteliği ile tanımlanır.
Örnek
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://recshop.fake/cd#">
<rdf:Description
rdf:about="http://recshop.fake/cd/Beatles">
<cd:artist rdf:parseType="Collection">
<rdf:Description rdf:about="http://recshop.fake/cd/Beatles/George"/>
<rdf:Description rdf:about="http://recshop.fake/cd/Beatles/John"/>
<rdf:Description rdf:about="http://recshop.fake/cd/Beatles/Paul"/>
<rdf:Description rdf:about="http://recshop.fake/cd/Beatles/Ringo"/>
</cd:artist>
</rdf:Description>
</rdf:RDF>
RDF Şeması ve Uygulama Sınıfları
RDF Şeması (RDFS), RDF'nin bir uzantısıdır.
RDF, kaynakları sınıflar, özellikler ve değerlerle tanımlar.
Ek olarak, RDF'nin uygulamaya özel sınıfları ve özellikleri tanımlamanın bir yoluna da ihtiyacı vardır. Uygulamaya özel sınıflar ve özellikler, RDF uzantıları kullanılarak tanımlanmalıdır.
Böyle bir uzantı, RDF Şeması'dır.
RDF Şeması (RDFS)
RDF Şeması, uygulamaya özel gerçek sınıflar ve özellikler sağlamaz.
Bunun yerine RDF Schema, uygulamaya özel sınıfları ve özellikleri tanımlamak için çerçeve sağlar.
Classes in RDF Schema are much like classes in object oriented programming languages. This allows resources to be defined as instances of classes, and subclasses of classes.
RDFS Example
The following example demonstrates some of the RDFS facilities:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://www.animals.fake/animals#">
<rdf:Description rdf:ID="animal">
<rdf:type
rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
</rdf:Description>
<rdf:Description rdf:ID="horse">
<rdf:type
rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="#animal"/>
</rdf:Description>
</rdf:RDF>
In the example above, the resource "horse" is a subclass of the class "animal".
Example Abbreviated
Since an RDFS class is an RDF resource we can abbreviate the example above by using rdfs:Class instead of rdf:Description, and drop the rdf:type information:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
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>
</rdf:RDF>
That's it!
The Dublin Core
The Dublin Core Metadata Initiative (DCMI) has created some predefined properties for describing documents.
RDF is metadata (data about data). RDF is used to describe information resources.
The Dublin Core is a set of predefined properties for describing documents.
The first Dublin Core properties were defined at the Metadata Workshop in Dublin, Ohio in 1995 and is currently maintained by the Dublin Core Metadata Initiative.
Property | Definition |
---|---|
Contributor | An entity responsible for making contributions to the content of the resource |
Coverage | The extent or scope of the content of the resource |
Creator | An entity primarily responsible for making the content of the resource |
Format | The physical or digital manifestation of the resource |
Date | A date of an event in the lifecycle of the resource |
Description | An account of the content of the resource |
Identifier | An unambiguous reference to the resource within a given context |
Language | A language of the intellectual content of the resource |
Publisher | An entity responsible for making the resource available |
Relation | A reference to a related resource |
Rights | Information about rights held in and over the resource |
Source | A Reference to a resource from which the present resource is derived |
Subject | A topic of the content of the resource |
Title | A name given to the resource |
Type | The nature or genre of the content of the resource |
A quick look at the table above indicates that RDF is ideal for representing Dublin Core information.
RDF Example
The following example demonstrates the use of some of the Dublin Core properties in an RDF document:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc= "http://purl.org/dc/elements/1.1/">
<rdf:Description rdf:about="https://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>
</rdf:Description>
</rdf:RDF>
RDF Reference
The RDF namespace (xmlns:rdf) is: http://www.w3.org/1999/02/22-rdf-syntax-ns#
The RDFS namespace (xmlns:rdfs ) is: http://www.w3.org/2000/01/rdf-schema#
The recommended file extension for RDF files is .rdf. However, the extension .xml is often used to provide compatibility with old xml parsers.
The MIME type should be "application/rdf+xml".
RDFS / RDF Classes
Element | Class of | Subclass of |
---|---|---|
rdfs:Class | All classes | |
rdfs:Datatype | Data types | Class |
rdfs:Resource | All resources | Class |
rdfs:Container | Containers | Resource |
rdfs:Literal | Literal values (text and numbers) | Resource |
rdf:List | Lists | Resource |
rdf:Property | Properties | Resource |
rdf:Statement | Statements | Resource |
rdf:Alt | Containers of alternatives | Container |
rdf:Bag | Unordered containers | Container |
rdf:Seq | Ordered containers | Container |
rdfs:ContainerMembershipProperty | Container membership properties | Property |
rdf:XMLLiteral | XML literal values | Literal |
RDFS / RDF Properties
Element | Domain | Range | Description |
---|---|---|---|
rdfs:domain | Property | Class | The domain of the resource |
rdfs:range | Property | Class | The range of the resource |
rdfs:subPropertyOf | Property | Property | The property is a sub property of a property |
rdfs:subClassOf | Class | Class | The resource is a subclass of a class |
rdfs:comment | Resource | Literal | The human readable description of the resource |
rdfs:label | Resource | Literal | The human readable label (name) of the resource |
rdfs:isDefinedBy | Resource | Resource | The definition of the resource |
rdfs:seeAlso | Resource | Resource | The additional information about the resource |
rdfs:member | Resource | Resource | The member of the resource |
rdf:first | List | Resource | |
rdf:rest | List | List | |
rdf:subject | Statement | Resource | The subject of the resource in an RDF Statement |
rdf:predicate | Statement | Resource | The predicate of the resource in an RDF Statement |
rdf:object | Statement | Resource | The object of the resource in an RDF Statement |
rdf:value | Resource | Resource | The property used for values |
rdf:type | Resource | Class | The resource is an instance of a class |
RDF Attributes
Attribute | Description |
---|---|
rdf:about | Defines the resource being described |
rdf:Description | Container for the description of a resource |
rdf:resource | Defines a resource to identify a property |
rdf:datatype | Defines the data type of an element |
rdf:ID | Defines the ID of an element |
rdf:li | Defines a list |
rdf:_n | Defines a node |
rdf:nodeID | Defines the ID of an element node |
rdf:parseType | Defines how an element should be parsed |
rdf:RDF | The root of an RDF document |
xml:base | Defines the XML base |
xml:lang | Defines the language of the element content |