RDF grundguide del 1: Definition av klasser och attribut med RDF-Schema

Resource Description Framework (RDF) är en öppen standard av W3C för att beskriva digitala resurser med semantisk innebörd. Data som beskrivs med RDF format kan utbytas och återanvändas med bibehållen begreppsförståelse för resurser mellan verksamheter, branscher och länder. Detta är den första artikel i en serie av guider för att komma igång med att beskriva data med semantisk betydelse. Läsaren rekommenderas ta del av W3C guide RDF 1.1 Primer som ger en bra överblick av vad RDF ramverket innehåller. Första artikeln beskriver hur resurser definieras med RDF-Schema. Nästa artikel presenterar en semantisk modell och förklarar hur resurser från Wikidata och andra källor länkas samman för att berika och skapa kontext för dataset.

RDF-Schema (RDFS)

RDF Standarden beskriver digital resurser genom att definera och använda klasser och attribut. RDF-Schema (RDFS) är ett exempel av flera språk som erbjuder notationsregler för att beskrivning av resurser med semantisk innebörd genom att skapa vokabulär och taxonomier av närbesläktade koncept. Gemensamt för alla språk följer RDF standarden är de beskriver resurser i form av påstående som består av subjekt, predikat, objekt och utgör en triplett. Alla resurser i RDF identifieras med hjälp av IRI (international resource identifier) vilket är en generalisering av URI. Dett möjliggör att resurser / tripletter kan länkas samman globalt eftersom IRI/URI ugör grunden av HTTP protokollet för att identifiera webbresurser. Det finns andra språk som möjliggöra mer avancerade klassificeringssystem i form av ontologier som kan beskriva regler, temporala och dynamiska förhållanden mellan resurser, som exempelvis OWL 2 (Web Ontology Language).

RDF Format

För att definiera påståenden i RDF finns det ett antal olika format som fyller olika funktioner. Formatet Turtle (.ttl) är en syntax som har förkortningar, prefix och är enklare att läsa för människor och används i artikelserien om inget annat anges. Andra format i Turtle familjen är mer kompakt och optimerade format för maskinell bearbetning, exempelvis N-Triples, Q-Quads.

Klasser och attribut i RDFS

Klasser (rdfs:Class) används för att klassificera resurser. En instans av en rdfs:Class definieras med hjälp av predikatet rdf:type. Exempelvis kan vi definiera att Artist är en klass och att Picasso är en instans av klassen Artist. Notera att ex, rdf och rdfs är IRI prefix och är förkortningar istället för att skriva ut hela sökvägen för till resurser (https://www.clearbyte.org/example/Artist).

ex:Artist rdf:type rdfs:Class . 
ex:Picasso rdf:type ex:Artist .

Attribut (rdfs:Property) används för att tillföra attribut till klasser. I exemplet ovan tillförs attritbuten (predikat) ex:name och ex:created. Namn beskrivs av en textsträng (literal) “Pablo Picasso” och skapare (ex:creatorOf) av ett objekt i form av en instans av klassen ex:Guernica. Notera att både namn och skapare är objekt i påståendet om Picasso, där namn är en textsträng och skapare ett objekt som är ett eget subjekt i ett annat påstående. Detta kan vara i samma modell eller om vi exempelvis vill använda resurser från Wikidata (Wikipedia) för definition av målningen Guernica med hjälp av ett IRI prefix till resursen wd:Q175036 (https://www.wikidata.org/wiki/Q175036). Turtle formatet erbjuder förkortning av rdf:type i form av bokstaven a vilket gör syntaxen kortare och enklare att läsa.

ex:name a rdfs:Property .
ex:creatorOf a rdfs:Property .

ex:Picasso a ex:Artist ;
    ex:name “Pablo Picasso”;
    ex:creatorOf ex:Guernica.

Predikat länkar samman subjektet och objektet i ett påstående vilket formar grunden till en graf. Subjekt och objekt kan ses som noder och predikatet som en meningsfull länk vilket beskriver förhållandet mellan noderna.

Notera att definition av attribut (Property) brukar börja med liten bokstav och klasser med stor. 

Domain & Range

För att semantisk beskriva och härleda förhållanden mellan subjekt och objekt används rdfs:domain och rdfs:range. Predikatet rdfs:domain deklarerar att en egenskap tillhör en eller flera klasser. Exempelvis kan vi definiera att egenskapen P tillhör klassen D.

P rdfs:domain D .

ex:hasMother rdfs:domain ex:Person ; 
ex:frank ex:hasMother ex:frances .

Exemplet härleder implicit att ex:frank även tillhör klassen ex:Person eftersom ex:hasMother tillhör klassen ex:Person.

Predikatet rdfs:range deklarerar att en egenskap tillhör en eller flera instanser av klasser. Exempelvis kan vi definiera att egenskapen P tillhör instansen av klassen R.

P rdfs:range R .

Skillnaden mellan domain och range, är att den första deklarerar att en egenskap tillhör ett domän av en eller flera klasser. Och att range deklarerar att en egenskapen tillhör en eller flera instanser av klasser. Följande påstående åskådliggöra skillnaden. Exemplet definierar två klasser, bok och person, och attributet författare. Attributet author tillhör domänområdet Book. Vid instansiering av en bok tilldelas objektet ett namn på författaren som tillhör klassen Person. Range översatt till svenska är urval eller räckvidd och syftar till attributets tillhörighet vid instansiering.

ex:Book a rdfs:Class .
ex:Person a rdfs:Class .
ex:author a rdf:Property .

ex:author rdfs:domain ex:Book .
ex:author rdfs:range ex:Person .

Exemplet nedanför deklarerar att instanser av egenskapen ex:motherTo tillhör både klasserna Female och Person.

ex:motherTo rdfs:range ex:Female . 
ex:motherTo rdfs:range ex:Person .

Följande påstående beskriver att Eva är moder till Pete och implicit även kvinna och person.

ex:Eva ex:motherTo ex:Pete .

Definitioner av attribut med hjälp av rdfs:range kan också användas för att  beskriva datatypen som exempelvis heltal, decimaltal med mera om det inte är normalfallet textsträng.

ex:age rdf:type rdf:Property . 
ex:age rdfs:range xsd:integer .

Möjligheten att deklarera attributs tillhörighet till specifik klassa (domain) eller ett urval (range) av instansers av klasser gör att det går att dra slutsatser (inference) tack vare implicita samband mellan resurser. Genom att härleda implicit samband mellan resurser möjliggör logiska resonemang vilket är en central del av RDF ramverket. Nästa RDF grundguide presenterar en semantisk datamodell som beskriver klasser och attribut av målare och tavlor, och länkar in relaterade beskrivningar från Wikidata som också använder RDF standarden för att beskriva resurser.

Semantisk teknologi och integrerade digitala samhällstjänster

Behöver din verksamhet bygga förmågor att skapa integrerade digitala samhällstjänster för att exekvera affärslogisk och sömlös utbyta dataset mellan samhällsviktiga sektorer. Kontakta oss på info[at]clearbyte.org och läs mer om Clear Byte’s fokusområden.

Lämna ett svar