(Ez a fordítás a W3C Magyar Irodájának megbízásából,
az
Informatikai és Hírközlési Minisztérium
támogatásával készült)
Kérjük, kövesse figyelemmel a dokumentum eredeti angol nyelvű változatára vonatkozó hibajegyzéket, mert ez normatív korrekciókat is tartalmazhat.
A dokumentumról további fordítások is rendelkezésre állnak.
Copyright © 2004 W3C ® (MIT, ERCIM , Keio), Minden jog fenntartva. Alkalmazandók a W3C felelősségi, védjegyoltalmi, dokumentumhasználati és szoftverlicenc előírásai.
Az Erőforrás Leíró Keretrendszer (Resource Description Framework – RDF) egy általános adatleíró nyelv a weben történő információábrázolás céljára. Ez a specifikáció azt mutatja be, hogy miként használjuk az RDF-et RDF szókészletek leírására. Erre a célra a specifikáció definiál egy saját, beépített szókészletet, de emellett definiál egy másik beépített szókészletet is, amely eredetileg az "RDF modell és szintaxis specifikáció" (RDF Model and Syntax Specification) dokumentumban szerepelt.
Ezt a dokumentumot a W3C Tagjai és más érdekelt résztvevők ellenőrizték, és az Igazgató W3C Ajánlásként hitelesítette. Az Ajánlás elkészítésével a W3C célja és szerepe az, hogy ráirányítsa a figyelmet a specifikációra, és elősegítse annak széles körű alkalmazását. Ez megnöveli a Web használhatóságát, és javítja a weben történő együttműködést.
Ez a dokumentum egyike annak a hat dokumentumnak (Bevezetés, Fogalmak, Szintaxis, Szemantika, Szókészlet és Tesztsorozat), amelyek együttesen felváltják az eredeti Resource Description Framework specifikációkat: az RDF Model and Syntax (1999 Recommendation) és az RDF Schema (2000 Recommendation) című dokumentumokat. A jelen dokumentumot az RDF Core Working Group (RDF-mag Munkacsoport) dolgozta ki a W3C Szemantikus Web Munkaprogramja keretében, és 2004. február 10. dátummal publikálta. (Lásd a Munkaprogram-nyilatkozatot és a Munkacsoport alapszabályát).
Az Előzetes Ajánlástervezet munkaanyaga óta a jelen Ajánlás megszületéséig a dokumentumon végrehajtott módosításokat a változtatási napló.
A Munkacsoport szívesen fogadja az olvasóközönség észrevételeit a www-rdf-comments@w3.org (archive) címén; az idevágó technológiák általános vitáját pedig a www-rdf-interest@w3.org (archive) címén folytatja.
Rendelkezésre áll egy konszignáció az ismert alkalmazásokról.
A W3C listát vezet továbbá azokról a felfedett szabadalmi igényekről is, amelyek ehhez a munkához kapcsolódnak.
Ez a szekció a dokumentumnak a publikáláskor érvényes státusát rögzíti. Más dokumentumok hatálytalaníthatják ezt a dokumentumot. A legújabb W3C publikációk listája, valamint e technikai riport utolsó kiadása megtalálható a W3C technikai riportok indexében, a http://www.w3.org/TR/ alatt.
1. Bevezetés
2. Osztályok
2.1 rdfs:Resource (Erőforrás)
2.2 rdfs:Class (Osztály)
2.3 rdfs:Literal (Literál)
2.4 rdfs:Datatype (Adattípus)
2.5 rdf:XMLLiteral (XML-literál)
2.6 rdf:Property (Tulajdonság)
3. Tulajdonságok
3.1 rdfs:range ("értéktartománya")
3.2 rdfs:domain ("érvényességi köre")
3.3 rdf:type ("típusa")
3.4 rdfs:subClassOf ("alosztálya ~nak")
3.5 rdfs:subPropertyOf ("altulajdonsága ~nak")
3.6 rdfs:label ("címkéje")
3.7 rdfs:comment ("kommentárja")
4. Az érvényességi kör- és értéktartomány-korlátozó szókészlet
használata (Informatív)
5. Az egyéb szókészletek
5.1 Konténerosztályok és tulajdonságok
5.1.1 rdfs:Container (Konténer)
5.1.2 rdf:Bag (Zsák)
5.1.3 rdf:Seq (Sorozat)
5.1.4 rdf:Alt (Alternatíva-csoport)
5.1.5 rdfs:ContainerMembershipProperty (Konténertagság-tulajdonság)
5.1.6 rdfs:member ("tag")5.2 RDF Kollekciók
5.2.1 rdf:List (Lista)
5.2.2 rdf:first ("első eleme")
5.2.3 rdf:rest ("maradék része")
5.2.4 rdf:nil (üres lista)
5.3 A tárgyiasító szókészlet
5.3.1 rdf:Statement (Kijelentés)
5.3.2 rdf:subject ("alanya")
5.3.3 rdf:predicate ("állítmánya")
5.3.4 rdf:object ("tárgya")
5.4 Kisegítő tulajdonságok
5.4.1 rdfs:seeAlso ("lásd továbbá")
5.4.2 rdfs:isDefinedBy ("definiálja")
5.4.3 rdf:value ("értéke")
6. Az RDF Séma összefoglalása (Informatív)
6.1 RDF osztályok
6.2 RDF tulajdonságok
7. A hivatkozások listája
7.1 Normatív hivatkozások
7.2 Informatív hivatkozások
8. Köszönetnyilvánítás
A. függelék: Az RDF Séma RDF/XML-ben
Az Erőforrás Leíró Keretrendszer (Resource Description Framework – RDF) egy általános adatleíró nyelv a weben történő információábrázolás céljára.
Ez a specifikáció annak a dokumentumcsoportnak a része, mely az RDF specifikációját alkotja (a többi dokumentum közvetve elérhető az [RDF-BEVEZETÉS] az [RDF-SZINTAXIS], az [RDF-FOGALMAK], az [RDF-SZEMANTIKA], és az [RDF-TESZTEK] hiperlinkeken keresztül). A jelen specifikáció használatának informatív bemutatását és példákkal történő illusztrációját az olvasó megtalálhatja az [RDF-BEVEZETÉS] dokumentum RDF séma fejezetében.
Ez a specifikáció az RDF Sémát, az RDF szókészlet-leíró nyelvét ismerteti. Ezt több társdokumentum egészíti ki, amelyek ismertetik az RDF XML-ben történő kódolását [RDF-SZINTAXIS], az RDF matematikai alapjait [RDF-SZEMANTIKA], valamint alapfogalmait és absztrakt szintaxisát [RDF-FOGALMAK]. Az RDF bevezető tankönyve [RDF-BEVEZETÉS] pedig informális bevezetéssel és példákkal segíti az olvasót a jelen dokumentumban specifikált fogalmak megértésében.
Ez dokumentum az RDF szókészlet-leíró nyelv közérthető ismertetését nyújtja azok számára, akik a nyelv formális szemantikai specifikációját [lásd: RDF-SZEMANTIKA] esetleg ijesztőnek találják. Ez a dokumentum tehát lényegében duplikálja az RDF szemantikai specifikációjának anyagát. Azokon a pontokon, ahol a két specifikáció esetleg eltér egymástól, mindig az RDF Szemantikát kell irányadónak tekinteni.
Az RDF tulajdonságokat az erőforrások attribútumainak tekinthetjük, és ebben az értelemben ezek megfelelnek a hagyományos attribútum-érték pároknak. Emellett az RDF tulajdonságok az erőforrások közötti viszonyokat is ábrázolhatják.
Az RDF azonban nem bocsát rendelkezésünkre mechanizmusokat sem az ilyen attribútumok, sem az ilyen viszonyok ábrázolására. Ez már az RDF szókészlet-leíró nyelv, az RDF Séma feladata. Az RDF Séma beépített osztályokat és tulajdonságokat definiál, amelyek azután további (felhasználói leíró) osztályok, tulajdonságok és egyéb erőforrások definiálására használhatók.
Ez a dokumentum nem specifikál szókészletet az efféle felhasználói leíró tulajdonságokból, mint pl. a "szerzője" (könyvek leírásánál). Ehelyett olyan mechanizmusokat specifikál, amelyekkel megnevezhetjük és leírhatjuk az erőforrások tulajdonságait és osztályait.
Az RDF szókészlet-leíró nyelve, az RDF Séma, nem más mint az RDF szemantikai bővítménye (ahogyan azt az [RDF-SZEMANTIKA] definiálja). Ez a nyelv olyan mechanizmusokat specifikál, amelyekkel leírhatjuk az egymással kapcsolatban álló erőforrások csoportjait, és az ilyen erőforrások közötti viszonyokat. Az RDF Séma szókészleteket RDF-ben írjuk, azokkal a kifejezésekkel, amelyeket ebben a dokumentumban ismertetünk. Ezekkel a kifejezésekkel meghatározhatjuk bármilyen erőforrás jellemzőit, pl. egy tulajdonság érvényességi körét és értéktartományát is.
Az RDF szókészlet-leíró nyelv osztály- és tulajdonságfogalma némileg
hasonló az olyan objektumorientált programozási nyelvek típus-rendszeréhez,
mint pl. a Java. Az RDF abban különbözik sok ilyen rendszertől, hogy
ahelyett, hogy az osztályokat definiálná azokkal a tulajdonságokkal,
amelyek az egyedeit jellemzik, inkább a tulajdonságokat definiálja
azokkal az erőforrás-osztályokkal, amelyekre ezek a tulajdonságok
vonatkoznak. A jelen specifikációban leírt érvényességi
kör és értéktartomány mechanizmusoknak éppen ez a
szerepe. Például definiálhatnánk a "szerzője" (eg:author
)
tulajdonságot úgy, hogy annak érvényességi köre a Dokumentum
(eg:Document
), értéktartománya pedig a Személy
(eg:Person
) osztály lenne. Ugyanakkor, egy klasszikus
objektumorientált rendszerben tipikusan egy Könyv (eg:Book
)
osztályt definiálnánk, egy olyan attribútummal, mint "szerzője"
(eg:author
), amelynek a típusa Személy (eg:Person
).
Ha az RDF módszerét használjuk, később, bárki könnyen definiálhat további
tulajdonságokat, pl. ilyen érvényességi körrel, mint
eg:Document
, vagy ilyen értéktartománnyal, mint
eg:Person
. Ezt megtehetjük anélkül, hogy újradefiniálnánk
ezeknek az osztályoknak az eredeti definícióját. Az RDF tulajdonság-centrikus
közelítésének az egyik előnye az, hogy bárki számára lehetővé teszi egy
erőforrás leírásának a bővítését – s ez nem más, mint a Web egyik
architekturális alapelve [BERNERS-LEE98].
Ez a specifikáció nem próbálja meg felsorolni a szókészlet-leírások összes lehetséges formáját, amelyek hasznosak az RDF osztályok és tulajdonságok jelentésének ábrázolásában. Az RDF szókészlet-leíró stratégiája ugyanis annak elismerésén alapszik, hogy sokféle technika lehetséges, amellyel az osztályok és tulajdonságok jelentése leírható. A gazdagabb szókészlet- vagy ontológia-leíró nyelvek (mint pl. a DAML+OIL, vagy a W3C [OWL] nyelv), vagy a következtetési szabály-leíró nyelvek és más formalizmusok (pl. temporális logikák) mindegyike hozzásegíthet bennünket ahhoz, hogy értelmes általánosításokat fogalmazhassunk meg a weben tárolt adatokról. Az RDF szókészletek tervezői már az RDF szókészlet-leíró nyelv 1.0 verziójának az eszköztárával is készíthetnek és indíthatnak Szemantikus Web alkalmazásokat, de közben kutathatják az olyan gazdagabb leíró nyelvek lehetőségeit is, amelyeknek az RDF-ével közös az általános közelítésük.
Az a nyelv, amelyet ebben a specifikációban definiálunk, olyan RDF
erőforrások gyűjteményéből áll, amelyekkel az alkalmazás-specifikus
szókészletekben leírhatjuk más erőforrások tulajdonságait (ilyen leírható
erőforrások maguk a tulajdonságok is). A központi szókészletet egy olyan
névtérben definiáljuk, amelyet informálisan csak 'rdfs' névtérnek hívunk. Ezt
a névteret a http://www.w3.org/2000/01/rdf-schema# URI hivatkozással
azonosítjuk, és az rdfs:
prefixet asszociáljuk hozzá. Ez a
specifikáció használja az rdf:
névtér-prefixet is a
http://www.w3.org/1999/02/22-rdf-syntax-ns# RDF
névtérre történő hivatkozásra.
Az egyszerűség és az olvashatóság érdekében ez a specifikáció az URI hivatkozások rövidített formáját használja. Ezeket a prefix:suffix formátumban megadott rövidített hivatkozásokat olyan teljes URI hivatkozásokként kell értelmezni, ahol a prefixhez asszociált URI karakterláncának a végéhez toldjuk a suffix karakterláncát.
Az erőforrások csoportokra oszthatók, amelyeket osztályoknak hívunk. Az osztály tagjait az osztály egyedeinek vagy példányainak nevezzük. Az osztályok maguk is lehetnek erőforrások. Ezeket RDF URI hivatkozásokkal azonosítjuk, és RDF tulajdonságok segítségével írjuk le. Az rdf:type tulajdonságot használhatjuk annak deklarálására, hogy egy erőforrás melyik osztálynak (RDF "típusnak") az egyede.
Az RDF megkülönbözteti az osztály fogalmát az egyedeiből álló halmaz fogalmától. Minden osztályhoz egyedek egy halmaza tartozik, amelyet az osztály kiterjedésének (extension) nevezünk. Két osztálynak lehet azonos az egyedhalmaza, ezek mégis lehetnek különböző osztályok. Például az adóhivatal osztályként definiálhatja azoknak az embereknek a csoportját, akik mondjuk e dokumentum szerkesztőjével azonos területen laknak. A postahivatal pedig definiálhat egy másik osztályt, mely olyan embereket csoportosít, akiknek az irányítószáma azonos e dokumentum szerzőjének az irányítószámával. Könnyen előfordulhat, hogy ennek a két osztálynak azonosak a tagjai, és mégis lehetnek eltérő tulajdonságaik. Minimum abban a tulajdonságában eltérő a két osztály, hogy az egyiket az adóhivatalban, a másikat pedig a postahivatalban definiálták, tehát fogalmilag (azaz intenzionális értelemben) különböző osztályokról van szó (amelyeknek az azonosítója is különböző).
Egy osztály lehet tagja a saját osztálykiterjedésének (extenzionálisan értelmezett tagság), és lehet egyede is sajátmagának (intenzionálisan értelmezett tagság).
Az erőforrásoknak az csoportja, amely az RDF Séma osztályaiból áll, maga
is egy osztály, amelynek a neve
.rdfs:Class
Ha egy C osztály
alosztálya egy C' osztálynak, akkor C minden egyede C'-nek is
egyede. Az rdfs:subClassOf
tulajdonságot használhatjuk annak kijelentésére, hogy egyik osztály egy
másiknak az alosztálya. A főosztály kifejezést az alosztály
inverzének tekintjük. Ha most úgy fogalmazunk, hogy a C' osztály
főosztálya a C osztálynak, akkor is igaz marad, hogy C minden egyede
C'-nek is egyede.
Az RDF alapfogalmai és absztrakt szintaxisa című specifikáció [RDF-FOGALMAK] definiál egy olyan fogalmat, hogy RDF adattípus (RDF datatype). Az adattípusok is osztályok. Egy adattípus-osztály egyedei az adattípus értékterének a tagjai.
Minden, ami RDF-fel leírható, erőforrásnak (resource) tekinthető,
és minden erőforrás az rdfs:Resource
tagja. Ez tehát a "minden
dolgok" osztálya. Minden más osztály alosztálya
ennek az osztálynak. Maga az rdfs:Resource
pedig az rdfs:Class
(RDF nyelvtani osztály)
egyede.
Ez azon erőforrások osztálya, amelyek RDF osztályok. Az
rdfs:Class
maga is az rdfs:Class
egyede.
Az rdfs:Literal
osztály a literális (tehát
betű szerint kiírt, és nem névvel hivatkozott) értékek osztálya, amelynek
tagjai karakterláncok vagy számértékek stb. Példa lehet az RDF literálra a
tulajdonságok szöveges (karakterlánccal megadott) értéke. A literálok
lehetnek típusnélküliek és
tipizáltak. A
tipizált literál az Adattípus (Datatype) osztály egyede. Ez a specifikáció
nem definiálja a típus nélküli literálok osztályát.
Az rdfs:Literal
az rdfs:Class
osztály tagja, és az rdfs:Resource
osztály alosztálya.
Az rdfs:Datatype
az adattípusok osztálya. Ennek az osztálynak
minden egyede megfelel az adattípusok RDF
modelljének, amit az [RDF-FOGALMAK]
dokumentum specifikál. Az rdfs:Datatype
egyede is és alosztálya is az rdfs:Class
osztálynak. Az
rdfs:Datatype
az rdfs:Literal
alosztálya.
Az rdf:XMLLiteral
osztály az XML-literál
értékek osztálya. Az rdf:XMLLiteral
az
rdfs:Datatype
egyede, és az rdfs:Literal
alosztálya.
Az rdf:Property
az RDF tulajdonságok osztálya, és az rdfs:Class
egyede.
"Az RDF alapfogalmai és absztrakt szintaxisa" című specifikáció [RDF-FOGALMAK] úgy írja le az RDF tulajdonság fogalmát, mint kapcsolatot (viszonyt) egy alany szerepű erőforrás és egy tárgy szerepű erőforrás között.
Ez a specifikáció
definiálja az altulajdonság (subproperty) fogalmát. Az RDF Séma rdfs:subPropertyOf
("altulajdonsága
~nak") tulajdonságát annak kijelentésére használhatjuk, hogy egyik
tulajdonság altulajdonsága egy másiknak. Ha a P tulajdonság altulajdonsága a
P' tulajdonságnak, akkor az összes olyan alany-tárgy erőforrás-párt, amelyet
a P tulajdonság kapcsol egymáshoz, a P' tulajdonság is egymáshoz kapcsolja.
Néha használjuk a főtulajdonság (super-property) kifejezést is mint
az altulajdonság fordítottját. Ha a P' tulajdonság főtulajdonsága a P
tulajdonságnak, akkor minden olyan erőforrás-párt, amelyet P egymáshoz
kapcsol, a P' is egymáshoz kapcsolja. Ez a specifikáció nem definiál olyan
csúcstulajdonságot, amely minden tulajdonságnak főtulajdonsága lenne.
Megjegyzés: Azok az alapvető nyelvi eszközök, amelyeket
az "érvényességi köre" (rdfs:domain
) és
az "értéktartománya" (
) RDF tulajdonságok
nyújtanak számunkra a tulajdonságok korlátozására, nem teszik lehetővé, hogy
közvetlenül jelezzük, hogy egy ilyen korlátozást globálisnak, vagy csupán
lokálisnak tekintünk-e (vagyis, hogy az minden osztályra, vagy csak egy adott
osztályra vonatkozik. Az alapértelmezés a globális). A lokális
hatályúság jelzésére elvileg kombinálhatnánk az rdfs:range
rdfs:domain
és az rdfs:range
használatát az
alosztály-hierarchiák alkalmazásával, ami nehézkesen bár, de valahogy
megoldaná a problémát. A lokális hatály deklarációjának közvetlen támogatását
azonban csak az olyan, gazdagabb web-ontologia nyelvektől
várhatjuk el, mint pl. az [OWL].
Az rdfs:range
tulajdonság az rdf:Property
osztály egyede, és annak
kijelentésére használjuk, hogy egy tulajdonság értékei csak a megadott
osztály(ok) egyedeiből kerülhetnek ki.
Pl. az alábbi formátumú triplet:
P rdfs:range C
(P "értéktartománya" C)
azt jelenti, hogy P az rdf:Property
osztály egyede, és hogy C
az rdfs:Class
osztály egyede, valamint,
hogy egy olyan majdani tripletben, amelynek a P tulajdonság lesz az
állítmánya, csak olyan erőforrás lehet a tárgy, amely a C osztálynak az
egyede.
Amikor P-nek egynél több rdfs:range tulajdonságot adunk meg, akkor a
majdani P állítmányú triplet tárgya csak olyan erőforrás lehet, mely
az rdfs:range
többszöri alkalmazásával megnevezett
összes osztálynak egyede (más szóval: a megadott osztályok
egyedeiből képezett halmazmetszet tagja).
Az rdfs:range
tulajdonságot önmagára vonatkoztatva is
megadhatjuk, és ilyenkor az rdfs:range
rdfs:range-e az
rdfs:Class
, ami azt jelenti, hogy az
rdfs:range
tulajdonság tárgya csakis valamilyen osztály
lehet (az rdfs:Class
egyede).
Az rdfs:range
tulajdonságot tulajdonságokra
alkalmazzuk. Ezt RDF-ben az "érvényességi köre" (rdfs:domain
) tulajdonság segítségével így
jelentjük ki: az rdfs:range
"érvényességi köre" az rdf:Property
osztály. Ez a kijelentés
azt mondja, hogy minden olyan erőforrás, amelynek tulajdonsága az
rdfs:range
, az rdf:Property
osztály egyede.
Az rdfs:domain
tulajdonság az rdf:Property
osztály egyede, és annak
kijelentésére használjuk, hogy egy adott tulajdonság csak azokra az
erőforrásokra alkalmazható, amelyek egy vagy több megadott osztálynak az
egyedei.
Pl. az alábbi formátumú triplet:
P rdfs:domain C
(P "érvényességi köre" C)
azt jelenti, hogy P az rdf:Property
osztály egyede, és hogy C
az rdfs:Class
osztály egyede, valamint,
hogy egy olyan majdani tripletben, amelynek az állítmánya a P tulajdonság
lesz, csak olyan erőforrás lehet az alany, amely a C osztálynak az egyede.
Amikor P-nek egynél több rdfs:domain tulajdonságot adunk meg, akkor a
majdani P állítmányú triplet alanya csak olyan erőforrás lehet, mely
az rdfs:domain
többszöri alkalmazásával megnevezett
összes osztálynak egyede (más szóval: a megadott osztályok
egyedeiből képzett halmazmetszet tagja).
Az rdfs:domain
tulajdonságot önmagára vonatkoztatva is
megadhatjuk, és ilyenkor az rdfs:domain
rdfs:domain-je
az rdf:Property
osztály, ami azt
jelenti, hogy az rdfs:domain
tulajdonság alanya csakis
valamilyen tulajdonság lehet (az rdfs:Property
osztály egyede).
Az rdfs:domain
tulajdonság értéktartománya (rdfs:range
-e) az rdfs:Class
. Ez azt jelenti, hogy a tulajdonságok
csak osztályokra (az rdfs:Class
osztály egyedeire) vonatkozhatnak.
Az rdf:type
tulajdonság az rdf:Property
osztály egyede, és annak
kijelentésére használjuk, hogy egy erőforrás melyik osztálynak az egyede.
Pl. az alábbi formátumú triplet:
R rdf:type C
(R "típusa" C)
azt mondja, hogy C az rdfs:Class
egyede, valamint, hogy az R erőforrás a C osztály egyede (más szóval: az R
egy C típusú/osztályú erőforrás)
Az rdf:type
tulajdonság érvényességi köre az rdfs:Resource osztály, értéktartománya pedig az rdfs:Class
osztály.
Az "alosztálya ~nak" (rdfs:subClassOf
) tulajdonság az
rdf:Property
egyede, és annak
kijelentésére használjuk, hogy az egyik osztály minden egyede egy másik
osztálynak is egyede.
Pl. az alábbi formátumú triplet:
C1 rdfs:subClassOf C2
(C1 "alosztálya ~nak" C2) [olvasd: C1 alosztálya C2-nek – a ford.]
azt mondja, hogy C1 és C2 egyaránt az rdfs:Class
egyede, és hogy C1 alosztálya C2-nek. Az rdfs:subClassOf
tulajdonság tranzitív.
Az rdfs:subClassOf
tulajdonság érvényességi köre és
értéktartománya egyaránt az rdfs:Class
osztály.
Az rdfs:subPropertyOf
tulajdonság a rdf:Property
osztály egyede, és annak
kijelentésére használjuk, hogy minden olyan erőforrás-pár amelyik
összekapcsolható az egyik tulajdonság segítségével, az összekapcsolható egy
másik segítségével is.
Pl. az alábbi formátumú triplet:
P1 rdfs:subPropertyOf P2
P1 "altulajdonsága ~nak" P2 [olvasd: P1 altulajdonsága P2-nek – a ford.]
azt mondja, hogy P1 és P2 az rdf:Property
osztály egyede, és P1 altulajdonsága P2-nek. Az
rdfs:subPropertyOf
tulajdonság tranzitív.
Az rdfs:subPropertyOf
tulajdonság érvényességi köre és
értéktartománya egyaránt az rdf:Property
osztály.
Az rdfs:label
tulajdonság az rdf:Property
osztály egyede, és arra
használjuk, hogy megadjuk vele egy erőforrás nevének ember által olvasható
változatát.
Pl. az alábbi formátumú triplet:
R rdfs:label L
(R "címkéje" L)
azt mondja, hogy L az R erőforrás ember által olvasható címkéje.
Az rdfs:label
érvényességi köre az rdfs:Resource
osztály, értéktartománya pedig
az rdfs:Literal
osztály.
A többnyelvű címkék írását az RDF literálok nyelvcímkéző (language tagging) funkciója támogatja.
Az rdfs:comment
az rdf:Property
osztály egyede, és arra
használjuk, hogy megadjuk vele egy erőforrás ember által olvasható
leírását.
Pl. az alábbi formátumú triplet:
R rdfs:comment L
R "kommentárja" L
azt mondja, hogy az L literál az R erőforrás ember által olvasható leírása.
Az rdfs:comment
tulajdonság érvényességi köre rdfs:Resource
osztály, értéktartománya pedig
az rdfs:Literal
osztály.
Egy szöveges kommentár segíthet tisztázni az RDF osztályok és tulajdonságok jelentését. Az ilyen közbeszúrt dokumentáció jól kiegészíti mind a formális leírások (ontológiák és szabályleíró nyelvek) kódját, mind pedig az informális leírások (dokumentációk, példák és teszt-szcenáriók) szövegét. Különböző dokumentációs formákat kombinálhatunk annak érdekében, hogy az általunk leírt szókészletek szándékolt jelentését minél pontosabban leírhassuk. Mivel az RDF szókészleteket RDF gráfok formájában fejezzük ki, a más névterekben definiált szókészletek beépítésével a dokumentációnk is gazdagodhat.
A többnyelvű dokumentálást támogatja az RDF literálok nyelvcímkéző (language tagging) funkciója.
Ez a specifikáció bevezet egy RDF szókészletet az osztályok és tulajdonságok értelmes használatának leírására az RDF adatokban. A fejezetünk címében megnevezett szókészlet pl. korlátozásokat fogalmaz meg arra vonatkozólag, hogy milyen típusú értékek alkalmazhatók bizonyos tulajdonságokra, vagy hogy mely osztályokra lehet értelmesen alkalmazni ezeket a tulajdonságokat.
Az RDF Szókészlet Leíró Nyelv rendelkezésünkre bocsátja ugyan a szükséges mechanizmusokat az ilyen információk leírására, de nem mondja meg, hogy egy alkalmazásnak kell-e, és ha igen, hogyan kell használnia ezeket a mechanizmusokat. Például egy szókészlet kijelentheti az értéktartomány megadásával, hogy a "szerző" tulajdonság értéke csak a Személy osztály egyedei esetére értelmes, de azt nem mondja meg, hogy egy alkalmazásnak kell-e, és ha igen, akkor hogyan kell feldolgoznia ezt az értéktartomány-információt. Feltehető, hogy különböző alkalmazások különbözőképpen fogják használni ezt az információt. Például az adatellenőrző eszközök arra használhatják, hogy felismerjenek egy hibát a segítségével valamilyen adathalmazban; egy interaktív szerkesztőprogram elfogadható tulajdonságértékeket ajánlhat fel a korlátozás ismeretében, a következtető alkalmazások pedig újabb információkat próbálhatnak meg levezetni az egyedi adatokból a megadott korlátozás alapján.
Az RDF szókészletek leírhatnak viszonyokat több, egymástól függetlenül kifejlesztett szókészlet erőforrásai között is. Minthogy URI hivatkozásokat használunk az osztályok és tulajdonságok weben történő azonosítására, kreálhatunk olyan új tulajdonságokat is, amelyek érvényességi köre vagy értéktartománya olyan osztály, amelyet egy másik névtérben definiáltak.
Ebben a fejezetben olyan további osztályokat, tulajdonságokat, illetve nyelvi konstrukciókat definiálunk, amelyek lehetővé teszik pl. adatcsoportok, listák és RDF kijelentések ábrázolását, valamint az RDF szókészlet-leírások alkalmazását a weben.
Az RDF konténerei olyan erőforrások, amelyek adatcsoportokat ábrázolnak. Az RDF konténerekhez egy jó bevezetést, és benne példákat találhatunk az [RDF-BEVEZETÉS] dokumentumban (az RDF bevezető tankönyvében). Ugyanaz az erőforrás egynél többször is előfordulhat egy konténerben. Eltérően a fizikai valóságban ismert tartalmazásfogalomtól, itt egy konténer önmagát is tartalmazhatja.
Az RDF három különböző típusú konténert definiál. Noha a formális szemantika [RDF-SZEMANTIKA] szempontjából a három konténerosztály teljesen ugyanaz, a különböző osztályok megadása informálisan többletinformációt jelenthet az egyes alkalmazások számára. Az rdf:Bag (zsák) osztály használata azt jelenti, hogy a konténer tartalma rendezetlen. Az rdf:Seq (sorozat) osztály megadásával azt jelezzük, hogy a konténerben lévő elemek sorrendje nem közömbös, és hogy ez azonos a konténertagság-tulajdonságaik numerikus sorrendjével. Az rdf:Alt (alternatíva-csoport) osztályú konténer tipikus alkalmazása az, hogy a tagjaiból az egyik tetszőlegesen kiválasztható.
Egy konténer tulajdonsága nem szükségszerűen azonos a tagjai összességének a tulajdonságával (pl. ha a tyúkólnak van egy olyan tulajdonsága, hogy fából készült, az még nem jelenti azt, hogy benne lévő tyúkok is fából készültek).
Az RDF konténereket az alábbi osztályokkal és tulajdonságokkal definiáljuk:
Az rdfs:Container
osztály az RDF konténerosztályok (rdf:Bag
, rdf:Seq
, rdf:Alt
) főosztálya.
Az rdf:Bag
osztály a Zsák típusú RDF konténerek osztálya, és
az rdfs:Container
osztály alosztálya. Bár formálisan ez nem különbözik egy
rdf:Seq
vagy rdf:Alt
osztálytól, konvencionálisan ezt használjuk
arra a célra, hogy jelezzük az emberi olvasó számára, hogy a konténer
rendezetlen.
Az rdf:Seq
osztály a Sorozat típusú RDF konténerek osztálya,
és az rdfs:Container
osztály alosztálya. Bár formálisan ez nem különbözik egy
rdf:Bag
vagy rdf:Alt
osztálytól, konvencionálisan ezt használjuk
arra a célra, hogy jelezzük az emberi olvasó számára, hogy a konténerben a
tagok sorrendje szignifikáns, és az megegyezik a konténertagság-tulajdonságaik
numerikus sorrendjével.
Az rdf:Alt
osztály az Alternatíva-csoport típusú RDF
konténerek osztálya, és az rdfs:Container
osztály alosztálya. Bár formálisan ez nem különbözik egy
rdf:Seq
vagy rdf:Bag
osztálytól, konvencionálisan ezt használjuk
arra a célra, hogy jelezzük az emberi olvasó számára, hogy a tipikus
feldolgozása az, hogy egyet tetszőlegesen kiválaszthatunk a tagjai közül. Az
ilyen konténer elsőnek megadott tagját (az rdf:_1
konténertagság-tulajdonság értékét) alapértelmezett választásnak
tekintjük.
Az rdfs:ContainerMembershipProperty
osztály egyedei az
rdf:_1, rdf:_2, rdf:_3 ...
tulajdonságok, amelyekkel azt
adhatjuk meg, hogy egy erőforrás valamelyik konténer tagja. Az
rdfs:ContainerMembershipProperty
osztály az rdf:Property
osztály alosztálya. Az
rdfs:ContainerMembershipProperty
osztály minden egyede az
rdfs:member
osztály alosztálya (lásd alább, az 5.1.6. szekcióban).
Ha adott egy K konténer, akkor az alábbi formátumú triplet:
K rdf:_nnn O
(K "nnn-edik tagja" O)
(ahol nnn egy 0-nál nagyobb egész szám decimális ábrázolása, vezető nullák nélkül), azt mondja, hogy az O objektum a C konténer (nnn-edik) tagja.
A konténertagság-tulajdonságok olyan erőforrásokra alkalmazhatók, amelyek nem konténerek.
Az rdfs:member
az rdf:Property
osztály egyede, továbbá
főtulajdonsága minden konténertagság-tulajdonságnak (azaz: minden
konténertagság-tulajdonság "altulajdonsága"
viszonyban van az rdfs:member
tulajdonsággal).
Az rdfs:member
érvényességi köre és
értéktartománya egyaránt az rdfs:Resource
osztály.
Az RDF konténerek nyitottak abban az értelemben, hogy az alapvető RDF specifikációk nem definiálnak olyan mechanizmusokat, amelyekkel ki lehetne jelenteni, hogy egy konténer tagjainak a száma tovább nem bővíthető. Az RDF kollekciós szókészletében lévő osztályok és tulajdonságok azonban már leírhatnak zárt kollekciókat (azaz olyan kollekciókat, amelyekben az elemek számát azok első deklarálása véglegesen rögzíti). Az olvasó egy informális bevezetést és példákat találhat erről a témáról az "RDF bevezető tankönyve" című dokumentum kollekciók szekciójában.
A kollekciót az elemeinek a listaszerű felsorolásával ábrázoljuk. Ez az ábrázolás ismerős lehet azok számára, akik ismerik a Lisp nyelvet, vagy más hasonló listafeldolgozó programnyelveket. Az RDF/XML szintaxis specifikációja [RDF-SZINTAXIS] ismertet egy rövidített írásmódot a kollekciók ábrázolására.
Megjegyzés: Az RDF Séma nem köti ki, hogy csak egyetlen első eleme lehet egy listaszerű struktúrának, és azt sem, hogy egyáltalán legyen egy első eleme.
Az rdf:List
osztály az rdfs:Class
egyede, amelyet listák és
listaszerű struktúrák leírásának felépítéséhez használhatunk.
Az rdf:first
tulajdonság az rdf:Property
osztály egyede, és ezt a
tulajdonságot listák, és listaszerű struktúrák leírásához használjuk.
Pl. az alábbi formátumú triplet:
L rdf:first O
(L "első eleme" O)
azt mondja, hogy az "első eleme" viszony áll fenn L és O között, vagyis, hogy az L lista első eleme az O objektum.
Az rdf:first
tulajdonság érvényességi
köre az rdf:List
osztály, az értéktartománya pedig az rdfs:Resource
osztály.
Az rdf:rest
tulajdonság az rdf:Property
osztály egyede, és ezt a
tulajdonságot listák, és listaszerű struktúrák leírásához használjuk.
Pl. az alábbi formátumú triplet:
L rdf:rest O
(L "maradék része" O)
azt mondja, hogy a "maradék része" viszony áll fenn L és O között, vagyis, hogy az L lista további elemét vagy elemeit (azaz a lista maradék részét) az O objektum tartalmazza (mely objektum lehet egy egyelemű lista, egy többelemű lista, vagy egy zéró elemű, azaz üres lista).
Az rdf:rest
érvényességi köre és értéktartománya egyaránt az rdf:List
osztály.
Az rdf:nil
erőforrás az rdf:List
osztály egyede, amelyet egy üres lista,
vagy egy üreslista-szerű struktúra ábrázolására használunk.
Pl. az alábbi formátumú triplet:
L rdf:rest rdf:nil
(L "maradék része" üres lista)
azt mondja, hogy az L lista az rdf:List
egyede, és hogy L-nek csupán egy eleme
van, amelyet előzőleg az rdf:first
tulajdonság segítségével definiáltunk.
Az eredeti RDF Modell és Szintaxis Specifikáció [RDFMS] dokumentum definiált egy olyan szókészletet, amellyel leírhatunk egy kijelentést anélkül, hogy megtennénk ezt a kijelentést. (Ez tehát egy olyan szókészlet, amellyel kijelentéseket tehetünk más RDF kijelentésekről). Az [RDFMS] nem adott meg formális szemantikát ehhez a szókészlethez, azonban az az informális definíció is, amelyet ebben a dokumentumban megadtak, valamelyest inkonzisztens volt. A jelenlegi RDF specifikáció sem rendel normatív formális definíciót ehhez a szókészlethez. Alább ismertetjük azonban ennek a szókészletnek a szándékolt jelentését, s ez megmagyarázza az [RDFMS] definíció szándékait is. A tárgyiasító szókészletről egyébként egy példákkal illusztrált bevezetőt találhat az olvasó "Az RDF bevezető tankönyve" című dokumentumban [RDF-BEVEZETÉS].
Az rdf:Statement
osztály az rdfs:Class
egyede, és feladata az RDF
kijelentések osztályának ábrázolása. Az RDF kijelentés egy olyan tőmondat,
amelyet egy RDF triplet
szimbolizál. Az RDF kijelentés alanya az rdfs:Resource
egyede, amelyet a triplet alanya
azonosít. Az RDF kijelentés állítmánya az rdf:Property
egyede, és ezt a triplet
állítmány része azonosítja. A kijelentés tárgya pedig az rdfs:Resource
egyede, és ennek azonosítása a
triplet tárgy részével történik. Az rdf:Statement
osztály az
rdf:predicate
, az rdf:subject
, és az rdf:object
tulajdonságok "érvényességi köre". Az
rdf:Statement
osztály különböző egyedeiben (azaz a különböző RDF
kijelentésekben) azonos lehet az rdf:predicate
, rdf:subject
és rdf:object
tulajdonságok értéke.
Az rdf:subject
tulajdonság az rdf:Property
osztály egyede, és a
kijelentés alanyának a megnevezésére szolgál.
Pl. az alábbi formátumú triplet:
S rdf:subject R
(S "alanya" R)
azt mondja ki, hogy az S kijelentés az rdf:Statement
egyede, és ennek a
kijelentésnek az alanya az R erőforrás.
Az rdf:subject
érvényességi köre az rdf:Statement
osztály, értéktartománya pedig az rdfs:Resource
osztály.
Az rdf:predicate
tulajdonság az rdf:Property
osztály egyede, és a
kijelentés állítmányának a megnevezésére szolgál.
Pl. az alábbi formátumú triplet:
S rdf:predicate P
(S "állítmánya" P)
azt mondja ki, hogy az S kijelentés az rdf:Statement
egyede, és hogy a P tulajdonság
az rdf:Property
osztály egyede,
valamint, hogy az S kijelentés állítmánya a P
tulajdonság.
Az rdf:predicate
érvényességi köre
az rdf:Statement
osztály, értéktartománya pedig az rdfs:Resource
osztály.
Az rdf:object
tulajdonság az rdf:Property
osztály egyede, és a
kijelentés tárgyának a megnevezésére szolgál.
Pl. az alábbi formátumú triplet:
S rdf:object O
(S "tárgya" O)
azt mondja ki, hogy az S kijelentés az rdf:Statement
egyede, és ennek a
kijelentésnek a tárgya az O objektum.
Az rdf:object
érvényességi köre az
rdf:Statement
osztály, értéktartománya pedig az rdfs:Resource
osztály.
Az alább ismertetett kisegítő osztályokat és tulajdonságokat definiálták az RDF-mag névterében.
Az rdfs:seeAlso
tulajdonság az rdf:Property
osztály egyede, amelyet egy
olyan erőforrás megnevezésére használunk, mely további információt nyújthat
az alanyként megadott erőforrásról.
Pl. az alábbi formátumú triplet:
S rdfs:seeAlso O
(S "lásd továbbá" O)
azt mondja, hogy az O objektum további információt nyújthat az S erőforrásról. Lehet, hogy az O ábrázolása esetleg visszakereshető a weben, de ez nem követelmény. Amikor egy ilyen ábrázolás visszakereshető, akkor sincs semmilyen korlátozás kikötve a formátumára.
Az rdfs:seeAlso
érvényességi köre
és értéktartománya egyaránt az rdfs:Resource
osztály.
Az rdfs:isDefinedBy
tulajdonság az rdf:Property
osztály egyede, és egy
olyan erőforrás megnevezésére szolgál, mely az alanyként megadott erőforrást
definiálja. Ezt a tulajdonságot tipikusan (de nem kizárólag) egy olyan RDF
szókészletnek a megnevezésére használhatjuk, amelyben az alany helyén
megadott erőforrást definiálták.
Pl. az alábbi formátumú triplet:
S rdfs:isDefinedBy O
(S "definiálja" O)
azt mondja, hogy az O oobjektum definiálja az S erőforrást. Lehet, hogy az
O ábrázolása esetleg visszakereshető a weben, de ez nem követelmény. Amikor
egy ilyen ábrázolás visszakereshető, semmilyen korlátozás nincs kikötve ennek
a formátumára. Az rdfs:isDefinedBy
az rdfs:seeAlso
tulajdonság altulajdonsága.
Az rdfs:isDefinedBy
érvényességi
köre és értéktartománya egyaránt az rdfs:Resource
osztály.
Az rdf:value
tulajdonság az rdf:Property
osztály egyede, és
strukturált értékek leírására használhatjuk.
Az rdf:value
tulajdonságnak nincsen saját jelentése. Ez a
szókészletnek egy olyan kifejezése, amelyet olyan speciális célokra
deklaráltak, mint amilyent pl. az [RDF-BEVEZETÉS] dokumentum 21. példája illusztrál.
Annak ellenére, hogy az rdf:value
tulajdonságnak nincs formális
definíciója, mégis célszerű volt beépíteni a szókészletbe, hogy ösztönözze
egy közös idióma használatát a 21. példához hasonló
feladatok megoldásában (a példát környező leírás jól illusztrálja egy ilyen
kifejezés szükségességét).
Az rdf:value
érvényességi köre és
értéktartománya egyaránt az rdfs:Resource
osztály.
Az alábbi táblázat egy áttekintést nyújt az RDF szókészletéről. Ez egyesítve ábrázolja a korábbi RDF Modell és Szintaxis Specifikáció által definiált, és az RDF Séma által újonnan bevezetett osztályokat és tulajdonságokat.
Az osztály neve | magyarázata |
---|---|
rdfs:Resource (Erőforrás) | Minden erőforrás közös osztálya. |
rdfs:Literal (Literál) | A literális értékek osztálya (pl. karakterláncok és egész számok). |
rdf:XMLLiteral (XML-literál) | Az XML kódrészletek literális ábrázolásainak osztálya. |
rdfs:Class (Osztály) | Az osztályok osztálya. |
rdf:Property (Tulajdonság) | Az RDF tulajdonságok osztálya. |
rdfs:Datatype (Adattípus) | Az RDF adattípusok osztálya. |
rdf:Statement (Kijelentés) | Az RDF kijelentések osztálya. |
rdf:Bag (Zsák) | A rendezetlen konténerek osztálya. |
rdf:Seq (Sorozat) | A rendezett konténerek osztálya. |
rdf:Alt (Alternatíva-csoport) | Az alternatívákat tartalmazó konténerek osztálya. |
rdfs:Container (Konténer) | Az összes RDF konténertípus osztálya. |
rdfs:ContainerMembershipProperty
(Konténertagság-tulajdonság) |
A Konténertagság-tulajdonságok (rdf:_1, rdf:_2, ...) osztálya, mely tulajdonságok mindegyike a "tagja" (member) tulajdonság altulajdonsága. |
rdf:List (Lista) | Az RDF Listák osztálya. |
A tulajdonság neve | magyarázata | érvényességi köre |
értéktarto- mánya |
---|---|---|---|
rdf:type (típusa) |
Az alany egy osztály egyede. | rdfs:Resource | rdfs:Class |
rdfs:subClassOf (alosztálya ~nak) |
Az alany egy osztály alosztálya. | rdfs:Class | rdfs:Class |
rdfs:subPropertyOf (altulajdonsága ~nak) |
Az alany egy tulajdonság altulajdonsága. | rdf:Property | rdf:Property |
rdfs:domain (érvényességi köre) |
Az alany (tulajdonság) érvényességi köre. | rdf:Property | rdfs:Class |
rdfs:range (értéktartománya) |
Az alany (tulajdonság) értéktartománya. | rdf:Property | rdfs:Class |
rdfs:label (címkéje) |
Az alany (erőforrás) ember által olvasható neve. | rdfs:Resource | rdfs:Literal |
rdfs:comment (kommentárja) |
Az alany (erőforrás) ember által olvasható magyarázata. | rdfs:Resource | rdfs:Literal |
rdfs:member (tagja) |
Az alany (erőforrás) tagja/eleme. | rdfs:Resource | rdfs:Resource |
rdf:first (első eleme) |
Az alany (RDF lista) első eleme. | rdf:List | rdfs:Resource |
rdf:rest (maradék része) |
Az alany (RDF lista) első eleme utáni maradék része. | rdf:List | rdf:List |
rdfs:seeAlso (lásd továbbá) |
További információ az alanyról (erőforrásról). | rdfs:Resource | rdfs:Resource |
rdfs:isDefinedBy (definiálja) |
Az alanyt (erőforrást) definiáló másik erőforrás. | rdfs:Resource | rdfs:Resource |
rdf:value (értéke) |
Idiomatikus tulajdonság olyan strukturált értékek leírásához, amilyent pl. "Az RDF bevezető tankönyve" egy példája mutat. | rdfs:Resource | rdfs:Resource |
rdf:subject (alanya) |
Az alany (RDF kijelentés) alanya. | rdf:Statement | rdfs:Resource |
rdf:predicate (állítmánya) |
Az alany (RDF kijelentés) állítmánya. | rdf:Statement | rdfs:Resource |
rdf:object (tárgya) |
Az alany (RDF kijelentés) tárgya. | rdf:Statement | rdfs:Resource |
A fenti két táblázatban felsorolt osztályok és tulajdonságok mellett az
RDF használja még az rdf:_1, rdf:_2
, rdf:_3
... stb.
nevű tulajdonságokat is, melyek mindegyike az rdfs:member
altulajdonsága, és az rdfs:ContainerMembershipProperty
(Konténertagság-tulajdonság) osztály egyede. Az rdf:List
(Lista)
osztálynak van egy speciális egyede, rdf:nil
, amely egy üres
listát reprezentál.
Az RDF Séma konstrukcióját eredetileg az RDF Séma Munkacsoport (RDF Schema Working Group) dolgozta ki 1997-2000 között. A jelenlegi specifikáció nagyrészt ennek a konstrukciónak a szerkesztési tisztázása, mely az RDF-mag Munkacsoport (RDF Core Working Group) tagjainak, valamint az RDF érdekcsoport (RDF Interest Group) tagjainak kemény munkáját dicséri.
David Singer, az IBM munkatársa vezette az eredeti RDF Séma Munkacsoportot e specifikáció készítésének legnagyobb részében; köszönjük David-nek ezt az erőfeszítést, az IBM-nek pedig azt, hogy támogatta őt, és minket is ebben a nagy vállalkozásban. Különös köszönet illeti Andrew Layman-t e dokumentum korai változatain végzett szerkesztői munkájáért.
Az eredeti RDF Séma Munkacsoport tagjai voltak:
Nick Arnett (Verity), Dan Brickley (ILRT / University of Bristol), Walter Chang (Adobe), Sailesh Chutani (Oracle), Ron Daniel (DATAFUSION), Charles Frankston (Microsoft), Joe Lapp (webMethods Inc.), Patrick Gannon (CommerceNet), RV Guha (Epinions, previously of Netscape Communications), Tom Hill (Apple Computer), Renato Iannella (DSTC), Sandeep Jain (Oracle), Kevin Jones, (InterMind), Emiko Kezuka (Digital Vision Laboratories), Ora Lassila (Nokia Research Center), Andrew Layman (Microsoft), John McCarthy (Lawrence Berkeley National Laboratory), Michael Mealling (Network Solutions), Norbert Mikula (DataChannel), Eric Miller (OCLC), Frank Olken (Lawrence Berkeley National Laboratory), Sri Raghavan (Digital/Compaq), Lisa Rein (webMethods Inc.), Tsuyoshi Sakata (Digital Vision Laboratories), Leon Shklar (Pencom Web Works), David Singer (IBM), Wei (William) Song (SISU), Neel Sundaresan (IBM), Ralph Swick (W3C), Naohiko Uramoto (IBM), Charles Wicksteed (Reuters Ltd.), Misha Wolf (Reuters Ltd.)
Az alábbiakban felvázoljuk azokat a fontosabb változtatásokat, amelyeket ezen a dokumentumon a végső munkaanyag elkészítése óta (2003. Január 23.), az ajánlás elkészültéig végrehajtottunk (lásd a végső munkaanyag problémakövető dokumentumában a jelen dokumentummal kapcsolatban felmerült specifikus kérdéseket és problémákat). A változtatások felsorolása a későbbiektől a korábbiak felé halad.
Eltávolítottuk azt, az ajánlást megelőző változatban elhelyezett figyelmeztetést, hogy a Munkacsoport esetleg úgy dönthet, hogy megváltoztatja a névtér-URI-t az ajánlás kiadása előtt.
Az alábbiakban RDF/XML szintaxissal adjuk meg az RDF szókészlet és az RDFS szókészlet RDFS leírását. Ebben szerepelnek olyan definíciók, amelyek leírják azokat az RDF erőforrásokat, amelyeket eredetileg az 1999-ben megjelent "RDF Model and Syntax Specification" vezetett be. Szerepelnek benne továbbá az olyan erőforrások definíciói is, amelyek az "RDF Core Schema" (RDF-mag Séma) szókészletben jelentek meg először.
Ez az anyag hozzáférhető egy külön RDF/XML dokumentum formájában is. De ez sem szükségszerűen egyezik meg azzal a tartalommal, amelyet az RDF névtér-URI illetve az RDFS névtér-URI által megadott webhelyek tartalmaznak, minthogy ez utóbbiak az idők folyamán tovább fejlődnek.
<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:owl="http://www.w3.org/2002/07/owl#"> <owl:Ontology rdf:about="http://www.w3.org/2000/01/rdf-schema#"/> <rdfs:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#Resource"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/> <rdfs:label>Resource</rdfs:label> <rdfs:comment>The class resource, everything.</rdfs:comment> </rdfs:Class> <rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#type"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/> <rdfs:label>type</rdfs:label> <rdfs:comment>The subject is an instance of a class.</rdfs:comment> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/> <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdf:Property> <rdfs:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#Class"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/> <rdfs:label>Class</rdfs:label> <rdfs:comment>The class of classes.</rdfs:comment> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdfs:Class> <rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#subClassOf"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/> <rdfs:label>subClassOf</rdfs:label> <rdfs:comment>The subject is a subclass of a class.</rdfs:comment> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/> <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/> </rdf:Property> <rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#subPropertyOf"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/> <rdfs:label>subPropertyOf</rdfs:label> <rdfs:comment>The subject is a subproperty of a property.</rdfs:comment> <rdfs:range rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/> <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/> </rdf:Property> <rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/> <rdfs:label>Property</rdfs:label> <rdfs:comment>The class of RDF properties.</rdfs:comment> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdfs:Class> <rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#comment"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/> <rdfs:label>comment</rdfs:label> <rdfs:comment>A description of the subject resource.</rdfs:comment> <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/> </rdf:Property> <rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#label"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/> <rdfs:label>label</rdfs:label> <rdfs:comment>A human-readable name for the subject.</rdfs:comment> <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/> </rdf:Property> <rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#domain"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/> <rdfs:label>domain</rdfs:label> <rdfs:comment>A domain of the subject property.</rdfs:comment> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/> <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/> </rdf:Property> <rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#range"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/> <rdfs:label>range</rdfs:label> <rdfs:comment>A range of the subject property.</rdfs:comment> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/> <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/> </rdf:Property> <rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#seeAlso"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/> <rdfs:label>seeAlso</rdfs:label> <rdfs:comment>Further information about the subject resource.</rdfs:comment> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdf:Property> <rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#isDefinedBy"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/> <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#seeAlso"/> <rdfs:label>isDefinedBy</rdfs:label> <rdfs:comment>The defininition of the subject resource.</rdfs:comment> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdf:Property> <rdfs:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#Literal"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/> <rdfs:label>Literal</rdfs:label> <rdfs:comment>The class of literal values, eg. textual strings and integers.</rdfs:comment> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdfs:Class> <rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/> <rdfs:label>Statement</rdfs:label> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> <rdfs:comment>The class of RDF statements.</rdfs:comment> </rdfs:Class> <rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#subject"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/> <rdfs:label>subject</rdfs:label> <rdfs:comment>The subject of the subject RDF statement.</rdfs:comment> <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdf:Property> <rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/> <rdfs:label>predicate</rdfs:label> <rdfs:comment>The predicate of the subject RDF statement.</rdfs:comment> <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdf:Property> <rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#object"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/> <rdfs:label>object</rdfs:label> <rdfs:comment>The object of the subject RDF statement.</rdfs:comment> <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdf:Property> <rdfs:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#Container"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/> <rdfs:label>Container</rdfs:label> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> <rdfs:comment>The class of RDF containers.</rdfs:comment> </rdfs:Class> <rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/> <rdfs:label>Bag</rdfs:label> <rdfs:comment>The class of unordered containers.</rdfs:comment> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Container"/> </rdfs:Class> <rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/> <rdfs:label>Seq</rdfs:label> <rdfs:comment>The class of ordered containers.</rdfs:comment> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Container"/> </rdfs:Class> <rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/> <rdfs:label>Alt</rdfs:label> <rdfs:comment>The class of containers of alternatives.</rdfs:comment> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Container"/> </rdfs:Class> <rdfs:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#ContainerMembershipProperty"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/> <rdfs:label>ContainerMembershipProperty</rdfs:label> <rdfs:comment>The class of container membership properties, rdf:_1, rdf:_2, ..., all of which are sub-properties of 'member'.</rdfs:comment> <rdfs:subClassOf rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/> </rdfs:Class> <rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#member"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/> <rdfs:label>member</rdfs:label> <rdfs:comment>A member of the subject resource.</rdfs:comment> <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdf:Property> <rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#value"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/> <rdfs:label>value</rdfs:label> <rdfs:comment>Idiomatic property used for structured values.</rdfs:comment> <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdf:Property> <!-- the following are new additions, Nov 2002 --> <rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#List"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/> <rdfs:label>List</rdfs:label> <rdfs:comment>The class of RDF Lists.</rdfs:comment> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/></rdfs:Class> <rdf:List rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/> <rdfs:label>nil</rdfs:label> <rdfs:comment>The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it.</rdfs:comment> </rdf:List> <rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#first"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/> <rdfs:label>first</rdfs:label> <rdfs:comment>The first item in the subject RDF list.</rdfs:comment> <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List"/> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdf:Property> <rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#rest"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/> <rdfs:label>rest</rdfs:label> <rdfs:comment>The rest of the subject RDF list after the first item.</rdfs:comment> <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List"/> <rdfs:range rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List"/> </rdf:Property> <rdfs:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#Datatype"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/> <rdfs:label>Datatype</rdfs:label> <rdfs:comment>The class of RDF datatypes.</rdfs:comment> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/> </rdfs:Class> <rdfs:Datatype rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral"> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/> <rdfs:label>XMLLiteral</rdfs:label> <rdfs:comment>The class of XML literal values.</rdfs:comment> </rdfs:Datatype> <rdf:Description rdf:about="http://www.w3.org/2000/01/rdf-schema#"> <rdfs:seeAlso rdf:resource="http://www.w3.org/2000/01/rdf-schema-more"/> </rdf:Description> </rdf:RDF> |