RDF-skema eller RDFS (akronym for Resource Description Framework ) er et udvideligt vidensrepræsentationssprog . Det tilhører familien af semantiske websprog udgivet af W3C . RDFS giver grundlæggende elementer til definitionen af ontologier eller ordforråd, der er beregnet til at strukturere RDF- ressourcer , hvor sidstnævnte kan lagres i relationsdatabaser kaldet triplestores og håndteres ved hjælp af forespørgsler i SPARQL- sprog .
Den første version af RDFS blev udgivet i Marts 1999offentliggøres som en anbefaling af W3C den10. februar 2004. Hovedkomponenterne i RDFS er integreret i et mere ekspressivt ontologisprog, OWL .
Et simpelt eksempel på rdfs: Class is foaf: Person in the FOAF vocabulary . En forekomst af foaf: Personklasse er en ressource, der er knyttet til klassen ved hjælp af et rdf: type-prædikat. Følgende formelle udtryk i RDFS oversætter sætningen til et naturligt sprog: 'John er en person'.
ex: Jean rdf: type foaf: Person
Definitionen af rdfs: Klassen er rekursiv. rdfs: Klassen er klassen for alle klasser.
For eksempel, 'Enhver er agent':
foaf: Person rdfs: subClassOf foaf: Agent
RDFS tydeliggør begrebet ejendom defineret af RDF ved at tillade at give en type eller en klasse til motivet og til objektet til tredobler. For at gøre dette, RO tilføjer begreberne "domæne", som svarer til definitionen domæne af en funktion på engelsk, og "området", sin ende sæt :
(P rdfs: domæne C angiver, at ressourcerne, der vedrører emnet for en triplet, hvis predikat er P, er forekomster af klasse C)
(P rdfs: område C indikerer, at ressourcerne, der vedrører objektet for en triplet, hvis predikat er P, er forekomster af klasse C)
For eksempel kunne vi udtrykke, at ejendommen "arbejder i" forbinder et emne, som er en person, med et objekt, der er en organisation.
ex: arbejde i rdfs: domæne foaf: Person
ex: arbejde i rdfs: række foaf: Organisation
Fra de tidligere erklæringer indebærer følgende erklæring nødvendigvis, at ex: John er en instans af foaf: Person, og ex: Societe_X en instans af foaf: Organisation
ex: Jean ex: arbejder i ex: Societe_X
Klassehierarkier understøtter arv af "domæne" og "rækkevidde" egenskaber.
RDFS leverer grundlæggende byggesten til strukturering af RDF-ressourcer. Den således opnåede graf betragtes som en velformet graf, hvis implikationssystemet (beskrevet i RDFS, OWL osv.) Respekteres.
For eksempel kan vi beskrive sætningerne 'Dog1 er et dyr', 'cat1 er en kat', 'zoologiske haver husdyr' og 'Zoo1 huser kat2':
ex:dog1 rdf:type ex:animal ex:cat1 rdf:type ex:cat zoo:host rdfs:range ex:animal ex:zoo1 zoo:host ex:cat2Men denne graf er ikke godt dannet, fordi systemet ikke kan gætte, at en kat er et dyr. Vi skal derfor tilføje 'Katte er dyr':
ex:cat rdfs:subClassOf ex:animalHer er det korrekte eksempel:
Klar | RDF-grafen |
---|---|
|
![]() |
I RDF / skildpadde | |
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix ex: <http://example.org/> . @prefix zoo: <http://example.org/zoo/> . ex:dog1 rdf:type ex:animal. ex:cat1 rdf:type ex:cat. ex:cat rdfs:subClassOf ex:animal. zoo:host rdfs:range ex:animal. ex:zoo1 zoo:host ex:cat2. |
Hvis din triplestore (eller RDF-database) implementerer RDF og RDFS- involveringssystemet , er følgende SPARQL- forespørgsel (nøgleordet a svarer til rdf: skriv SPARQL):
PREFIX ex: <http://example.org/> SELECT ?animal WHERE { ?animal a ex:animal . }Vil give følgende resultat med cat2, fordi typen ex: kat arver fra typen ex: dyr :
dyr |
---|
<http://eksempel.org/dog1> |
<http://eksempel.org/cat1> |
<http://eksempel.org/cat2> |