Till startsidan för Jonas Webresurs

Vad är RDF?

1. Inledning

Den här sidan tar upp en mer praktisk aspekt av Web 2.0, nämligen RDF. Sidan bygger vidare på resonemanget som jag fört på flera av de mer teoretiska sidorna, som du hittar från innehållsförteckningen. Läs mer »

Här skrapar jag lite på ytan. Mina källor och tips på vidareläsning återfinner du på den särskilda länksidan, avsnittet om RDF. Gå dit »

2. Vad är RDF?

"RDF" är en kortform för Resource Description Framework. Det är en XML-baserad standard (eller rekommendation) för att hantera metadata. Man använder alltså element precis som vanligt. Så här skriver W3C om RDF:

"It is particularly intended for representing metadata about Web resources, such as the title, author, and modification date of a Web page, copyright and licensing information about a Web document, or the availability schedule for some shared resource. (...) RDF is intended for situations in which this information needs to be processed by applications, rather than being only displayed to people." W3C RDF Primer (»)

RDF-standarden slogs fast av W3C så tidigt som 1999. Men 2004 hade man tänkt om och presenterade en helt ny standard. Eftersom genomarbetningen var så fundamental fick den nya standarden heta "RDF 1.0".

Idag ser standarden likadan ut, men den har börjat användas inom flera nya områden, bl.a RSS och FOAF, som jag berättar mer om på en särskild sida. Läs mer om RSS och FOAF här  »

RDF ingår i W3Cs "Semantic Web"-projekt. Med RDF kan man ange semantiskt innehåll på tre olika sätt: som subjekt, objekt och predikat. För att beskriva det språkliga innehållet i meningen:

"Jonas skriver om RDF"

delar man helt enkelt in den så, att "Jonas" är subjektet, den som gör något, "skriver om" är predikatet och "RDF" är objektet. Predikat är egenskaper i vid mening och står mellan subjektet (den som gör något) och objektet (det som är resultatet av det som görs).

"Min webbsida är jättefin"

Här är "min webbsida" subjektet, "är" predikatet och "jättefin" objektet.

"Stäng genast av din mobil!"

Subjektet är "din mobil", "stäng av" är predikatet och "genast" objektet. Som du ser motsvarar detta sätt att indela på inte riktigt den grammatiska och används ju också till helt andra saker.

Tankesättet bakom RDF är hämtat från logiken, närmare bestämt predikatlogiken. Den ingår i Sverige som en del av filosofin. Vill man veta mer kan man t.ex googla efter "predikatlogik".

Med RDF kan man peka ut vissa relevanta data, t.ex författaren till en artikel, vem en artikel handlar om, posterna i en kalender, varorna i en kundkorg (=subjekt). Man kan också tala om vilket ämne något avhandlar, hur något är beskrivet eller när något inträffar (=objekt). Man kan slutligen också ange olika slags relationer mellan den/det som beskrivs och hur denna/detta är beskrivet (=predikat).

Svårigheten med RDF är att det som beskrivs måste vara unikt, för att man skall kunna veta vilken sida det är. Här använder man dels URL/URI, som är adresseringssystemet på Internet, dels olika element.

Eftersom vi människor gärna blandar unika beskrivningar med generaliseringar är RDF inte alltid användbart. Med "unik beskrivning" menar jag när man pekar ut en enda sak eller individ, medan en generalisering pekar ut en grupp eller kategori:

(a) "Isa är en mycket söt gorilla" (pekar ut en individ)
(b) "Gorillaungar är mycket söta" (pekar ut alla gorillaungar)

RDF kan enklast hantera den första meningen (a), men får problem med den andra (b), eftersom den handlar om ett subjekt som inte går at peka ut så lätt. Motsvarande gäller självklart för objekt och predikat.

Tekniken är ännu i utvecklingsstadiet och man försöker begränsa vad man kan göra med RDF för att slippa fel med det semantiska innehållet.

3. Ett praktiskt exempel

Om du känner dig lite osäker på XML-syntaxen kan du börja med att läsa min introduktion till den här: ». Jag har använt mig av en fil som skapades av ICRA eller "Internet Content Rating Association" i syfte att berätta för söktjänsterna på nätet att min sajt inte innehåller något stötande material.

Filen har filändelsen .rdf och utgör påståenden (på engelska "statements"). Ett påstående består av ett subjekt, ett predikat och ett objekt.

Subjektet kallas ibland även för "resurs" (resource) och är i princip en webbadress, t.ex http://www.jonasweb.nu.

Predikatet kallas ibland för "egenskap" (property) och är enkelt uttryckt olika element i filen.

Slutligen har vi objektet eller "egenskapens värde" (property value). Det är t.ex det som brukar kallas attribut i elementen.

Tillsammans bildar de påståenden som "Jonas Ahlberg är författaren till dokumentet rdf.html" och "Dokumentet rdf.html finns på hemsidan http://www.jonasweb.nu".

Jag har i följande exempel med namnutrymmen. Läs mer om vad det är här ».

<?xml version="1.0" encoding="iso-8859-1"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<rdf:Description rdf:about="">
</rdf:Description>

</rdf:RDF>

Första raden anger att det är ett XML-dokument. <rdf:RDF> är rotelementet i ett RDF-dokument, precis som <html> är det i ett Html-dokument, och talar om att det är ett RDF-dokument. I samma element finns sedan xmlns:rdf som anger namnutrymmet.

<rdf:Description> är ett element som anger subjektet (statement) med rdf:about. Här är det tomt eftersom det innanför detta element finns fler element som ger längre beskrivningar (men jag har tagit bort dem här). Dessa element kan i sin tur vara definierade med andra namnutrymmen.

Avslutningarna </rdf:Description> och </rdf:RDF> måste vara med. Filen ligger sedan inte isolerad utan hämtas in till en webbsida med följande kod i head-elementet:

<link rel="meta" href="http://www.jonasweb.nu/labels.xml" type="application/rdf+xml" title="ICRA labels" />

Hela innehållet i RDF-filen ser ut så här:

<?xml version="1.0" encoding="iso-8859-1"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:label="http://www.w3.org/2004/12/q/contentlabel#"
xmlns:icra="http://www.icra.org/rdfs/vocabularyv03#">

<rdf:Description rdf:about="">
<dc:creator rdf:resource="http://www.icra.org" />
<dcterms:issued>2006-7-26</dcterms:issued>
<label:authorityFor>http://www.icra.org/rdfs/vocabularyv03# </label:authorityFor>
</rdf:Description>

<label:Ruleset>
<label:hasHostRestrictions>
<label:Hosts>
<label:hostRestriction>jonasweb.nu</label:hostRestriction>
</label:Hosts>
</label:hasHostRestrictions>
<label:hasDefaultLabel rdf:resource="#label_1" />
</label:Ruleset>

<label:ContentLabel rdf:ID="label_1">
<rdfs:comment>Label for all/most of website</rdfs:comment>
<icra:nz>1</icra:nz>
<icra:sz>1</icra:sz>
<icra:vz>1</icra:vz>
<icra:lz>1</icra:lz>
<icra:oz>1</icra:oz>
<icra:cz>1</icra:cz>
<rdfs:label>No nudity; No sexual material; No violence; No potentially offensive language; No potentially harmful activities; No user-generated content; </rdfs:label>
</label:ContentLabel>

</rdf:RDF>

På W3Schools finns en bra och mer djuplodande tutorial för den som vill veta mer. IRCA gör gratis etiketteringar av en sajt och på W3C kan man validera sitt RDF-dokument. Du hittar adresser till dessa tre på den särskilda länksidan. Gå dit »


Den här sidan är en del av Jonas Webresurs - www.jonasweb.nu - copyright © 1998-2011