Az OWL Web Ontológia Nyelv –
Szemantika és absztrakt szintaxis
4. fejezet: Leképezés RDF gráfokra
- Szerkesztők:
- Peter F.
Patel-Schneider, Bell Labs Research, Lucent Technologies
Ian Horrocks,
Department of Computer Science, University of Manchester
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.
4. Leképezés RDF gráfokra (Normatív)
A dokumentumnak ez a fejezete a 2. fejezetben
tárgyalt OWL DL és OWL Lite absztrakt szintaxis OWL adatcsere-szintaxisra
történő leképezését tartalmazza. Ez utóbbi szintaxis azonos az RDF/XML
szintaxissal [RDF
Szintaxis]. A leképezés (és a fordítottja) adja meg a normatív
viszonyt az absztrakt szintaxis és az adatcsere-szintaxis között. Az 5. fejezet és az A. függelék A.1 pontja kimutatja, hogy ez a
leképezés megőrzi az OWL DL ontológiák jelentését. A 4.2
szekció az OWL nyelv DL és Lite dialektusait olyan RDF gráfok formájában
definiálja, amelyeket absztrakt szintaxisú ontológiák leképezése útján
nyerünk.
Amint azt az [OWL
Referencia] dokumentum specifikálja, az OWL adatcsere-szintaxisa
azonos az RDF/XML szintaxissal [RDF
Szintaxis]. Egy OWL ontológia jelentését az RDF/XML-ben kizárólag
abból az RDF gráfból [RDF
Fogalmak] határozzuk meg, amelyet az RDF/XML dokumentum RDF típusú
szintaktikus elemzése eredményez. Így tehát, az egyik mód egy absztrakt
szintaxissal ábrázolt OWL ontológiának adatcsere-szintaxisra történő
lefordítására az lehet, hogy minden direktívájára megadunk egy olyan
transzformációt mely a neki megfelelő tripletek kollekcióját produkálja.
Minthogy az OWL Lite konstrukciói csupán speciális esetei a teljes absztrakt
szintaxis konstrukcióinak, ezért a transzformációkat csak a konstrukciók OWL
DL változataira adjuk meg.
Az OWL DL szemantikáját egy absztrakt szintaxison, valamint egy olyan
konkrét szintaxison keresztül definiáljuk, mely RDF gráfok egy részhalmazából
áll. Ezért szükséges a specifikus absztrakt szintaxisú ontológiákat
specifikus RDF/XML dokumentumokhoz, illetve az ezeknek megfelelő gráfokhoz
kötnünk. Ez a fejezet egy "több-a-többhöz" jellegű relációt definiál az
absztrakt szintaxisú ontológiák és az RDF gráfok között. Ezt
nemdeterminisztikus leképezési szabályok halmazával valósítja meg. Így tehát,
annak érdekében, hogy a szemantikát egy meghatározott RDF gráfra lehessen
alkalmazni, meg kell találni azt az absztrakt szintaxisú ontológiát, mely a
leképezési szabályok alapján megfelel ennek a gráfnak, majd a szemantikát
erre az absztrakt ontológiára kell alkalmazni. A leképezést úgy terveztük
meg, hogy az RDF gráfok bármelyike, amelyik megfelel egy adott absztrakt
ontológiának, azzal a jelentése is azonos legyen, és ugyanez érvényes
megfordítva is. Sőt, mivel ez az eljárás nem alkalmazható az olyan RDF
gráfokra, amelyek számára nincs megfelelő absztrakt szintaxisforma, a
leképezési szabályok implicit módon definiálnak egy olyan gráfhalmazt, mely
RDF/XML szintaxissal ábrázolja az OWL DL-t.
A tripleteknek az itt alkalmazott szintaxisa ugyanaz, mint amit az RDF
szemantikájánál használunk, azzal a különbséggel, hogy itt minősített nevek
(prefixes azonosítók) is engedélyezettek. Ahogyan azt az [RDF Szemantika] részletesen leírja,
az ilyen szintaxist úgy alakíthatjuk át szabványossá, hogy a minősített
neveket URI hivatkozásokká terjesztjük ki a szabványos RDF módon, vagyis úgy,
hogy a névtér nevét összeillesztjük a lokális névvel a szabványos OWL névtér
felhasználásával.
4.1. Fordítás RDF gráfokra
A Transzformálás tripletekre c. táblázat
tartalmazza azokat a transzformációs szabályokat, amelyek az absztrakt
szintaxist OWL adatcsere-szintaxisra képezik le. Néhány esetben, nevezetesen
a DifferentIndividuals konstrukciónál, több különböző
transzformációs szabályt adtunk meg. Ilyen esetekben bármelyik szabály
alkalmazható, s ez egy nemdeterminisztikus fordítást eredményez. Néhány más
esetben, nevezetesen az osztály- és tulajdonságaxiómáknál, vannak olyan
tripletek, amelyek vagy generálhatók, vagy nem. Ezeket opciókként kezeljük,
és [opt] jelzéssel látjuk el. Néhány esetben két triplet közül kell
valamelyiket generálni. Ezt a vagylagosságot úgy jelöljük, hogy a
tripletek közé OR operátort írunk. Ezek a nemdeterminisztikus leképezések azt
segítik elő, hogy több RDF gráfot generálhassunk.
A táblázat bal oszlopa az absztrakt
szintaxis elemeit mutatja (S); a középső oszlop adja meg a transzformációt
a megfelelő tripletekre (T(S)); míg a
jobb szélső oszlop az M(T(S)) transzformáció fő csomópontjának azonosítóját
tünteti fel az olyan szintaktikai konstrukcióknál, amelyek direktívák
elemeiként jelennek meg. Az ismétlődő komponenseket három ponttal jelöljük
(pl. description1 … descriptionn), mert ez
lehetővé teszi a transzformációk egyszerűbb specifikálását n minden
olyan értékére, amelyet a szintaxis megenged. Az absztrakt szintaxis
opcionális részei, amelyeket szögletes zárójelek között adunk meg, a
transzformációban is opcionálisak, tehát ott is így zárójelezzük őket. Itt
is, mint mindenütt, bármelyik beépített OWL adattípus,
beépített OWL osztály, beépített OWL
annotációtulajdonság és beépített OWL
ontológiatulajdonság axiómájában, illetve fordításában az első rdf:type triplet opcionális.
A táblázat egyes transzformációi teljes direktívákra, mások pedig
direktívák komponenseire vonatkoznak. De vannak olyan
transzformációk is, amelyek szekvenciákat fordítanak le, bár a
szekvenciák saját jogon nem elemei az absztrakt szintaxisnak. Az ilyen
transzformációkat csak azért alkalmazzuk, hogy néhány transzformációt
tömörebbé és könnyebben olvashatóvá tegyünk.
Sok direktíva esetében a transzformációs szabályok meghívják a direktíva
komponenseit lefordító, más transzformációs szabályokat. Amikor egy ilyen
komponens transzformációját egy triplet (akár opcionális triplet) alanyaként,
állítmányaként vagy tárgyaként használjuk, akkor a komponens transzformációja
a produkció részévé válik (de produkciónként csak egyszer). A meghívásnál a
meghívott transzformáció "fő csomópontját" nevezzük meg a tripletben.
Az üres csomópontok (bnodes) azonosítóit úgy kell tekintetnünk,
hogy ezek minden egyes transzformációra lokálisak, vagyis egy transzformációs
szabály minden egyes meghívásánál más-más azonosítót kell használnunk. A
névtelen ontológiák egy üres csomópontot, a névvel rendelkezők pedig a saját
nevüket kapják fő csomópontként; a táblázatban ezekre a csomópontokra mindkét
esetben az O szimbólummal hivatkozunk.
Transzformálás
tripletekre
Absztrakt szintaxis (és szekvenciák) - S |
Transzformáció - T(S) |
Fő csomópont M(T(S)) |
Ontology(O directive1 …
directiven) |
O rdf:type owl:Ontology .
T(directive1) … T(directiven) |
|
Ontology(directive1 …
directiven) |
O rdf:type owl:Ontology .
T(directive1) … T(directiven) |
|
Annotation(ontologyPropertyID URIreference) |
ontologyPropertyID rdf:type owl:OntologyProperty .
O ontologyPropertyID URIreference .
URIreference rdf:type owl:Ontology . |
|
Annotation(annotationPropertyID
URIreference) |
annotationPropertyID rdf:type owl:AnnotationProperty .
annotationPropertyID rdf:type rdf:Property . [opt]
O annotationPropertyID URIreference . |
|
Annotation(annotationPropertyID
dataLiteral) |
annotationPropertyID rdf:type owl:AnnotationProperty .
annotationPropertyID rdf:type rdf:Property . [opt]
O annotationPropertyID T(dataLiteral) . |
|
Annotation(annotationPropertyID individual) |
annotationPropertyID rdf:type owl:AnnotationProperty .
annotationPropertyID rdf:type rdf:Property . [opt]
O annotationPropertyID T(individual) . |
|
rdfs:Literal |
|
rdfs:Literal |
datatypeID |
datatypeID rdf:type rdfs:Datatype . |
datatypeID |
classID |
classID rdf:type owl:Class .
classID rdf:type rdfs:Class . [opt] |
classID |
individualID |
|
individualID |
datavaluedPropertyID |
datavaluedPropertyID rdf:type owl:DatatypeProperty .
datavaluedPropertyID rdf:type rdf:Property . [opt] |
datavalued-
PropertyID |
individualvaluedPropertyID |
individualvaluedPropertyID rdf:type
owl:ObjectProperty . [opt, ha van egy olyan triplet az ontológia
fordításában, mely az egyedértékű tulajdonság azonosítóját owl:InverseFunctionalProperty-nek, owl:TransitiveProperty-nek, vagy owl:SymmetricProperty-nek tipizálja].
individualvaluedPropertyID rdf:type rdf:Property . [opt] |
individualvalued-
PropertyID |
dataLiteral |
dataLiteral
|
dataLiteral |
Individual(iID annotation1 …
annotationm
type(type1)… type(typen)
value(pID1 v1) … value(pIDk vk)) |
iID T(annotation1) … iID
T(annotationm)
iID rdf:type T(type1) .
… iID rdf:type T(typen)
.
iID T(pID1) T(v1) . … iID
T(pIDk) T(vk) . |
iID |
Individual(annotation1 …
annotationm
type(type1)…type(typen)
value(pID1 v1) … value(pIDk vk))
(With at least one type.) |
_:x T(annotation1) … _:x
T(annotationm)
_:x rdf:type T(type1) .
… _:x rdf:type T(typen)
.
_:x T(pID1) T(v1) . … _:x
T(pIDk) T(vk) . |
_:x |
Individual(annotation1 …
annotationm
value(pID1 v1) … value(pIDk vk)) |
_:x T(annotation1)
… _:x T(annotationm)
_:x rdf:type owl:Thing .
_:x T(pID1) T(v1) . … _:x
T(pIDk) T(vk) . |
_:x |
SameIndividual(iID1 …
iIDn) |
iIDi owl:sameAs iIDi+1 .
1≤i<n
iIDi owl:sameAs iIDj . [opt]
1≤i≠j≤n |
|
DifferentIndividuals(iID1 …
iIDn) |
iIDi owl:differentFrom iIDj . OR
iIDj owl:differentFrom
iIDi . 1≤i<j≤n
iIDj owl:differentFrom
iIDi . [opt] 1≤i≠j≤n |
|
DifferentIndividuals(iID1 …
iIDn) |
_:x rdf:type owl:AllDifferent .
_:x owl:distinctMembers T(SEQ iID1
… iIDn) . |
|
Class(classID [Deprecated] partial
annotation1
… annotationm
description1
… descriptionn) |
classID rdf:type owl:Class .
classID rdf:type rdfs:Class . [opt]
[classID rdf:type owl:DeprecatedClass .]
classID T(annotation1) … classID
T(annotationm)
classID rdfs:subClassOf
T(description1) . …
classID rdfs:subClassOf
T(descriptionn) . |
|
Class(classID [Deprecated] complete
annotation1
… annotationm
description1
… descriptionn) |
classID rdf:type owl:Class .
classID rdf:type rdfs:Class . [opt]
[classID rdf:type owl:DeprecatedClass .]
classID T(annotation1) … classID
T(annotationm)
classID owl:intersectionOf T(SEQ
description1…descriptionn) . |
|
Class(classID [Deprecated] complete
annotation1
… annotationm
description) |
classID rdf:type owl:Class .
classID rdf:type rdfs:Class . [opt]
[classID rdf:type owl:DeprecatedClass .]
classID T(annotation1) … classID
T(annotationm)
classID owl:equivalentClass
T(description) .
|
|
Class(classID [Deprecated] complete
annotation1
… annotationm
unionOf(description1 …
descriptionn)) |
classID rdf:type owl:Class .
classID rdf:type rdfs:Class . [opt]
[classID rdf:type owl:DeprecatedClass .]
classID T(annotation1) … classID
T(annotationm)
classID owl:unionOf T(SEQ
description1…descriptionn) . |
|
Class(classID [Deprecated] complete
annotation1
… annotationm
complementOf(description)) |
classID rdf:type owl:Class .
classID rdf:type rdfs:Class . [opt]
[classID rdf:type owl:DeprecatedClass .]
classID T(annotation1) … classID
T(annotationm)
classID owl:complementOf T(description)
. |
|
EnumeratedClass(classID [Deprecated]
annotation1
… annotationm
iID1 …
iIDn) |
classID rdf:type owl:Class .
classID rdf:type rdfs:Class . [opt]
[classID rdf:type owl:DeprecatedClass .]
classID T(annotation1) … classID
T(annotationm) .
classID owl:oneOf T(SEQ
iID1…iIDn) . |
|
DisjointClasses(description1
… descriptionn) |
T(descriptioni) owl:disjointWith T(descriptionj) .
OR
T(descriptionj) owl:disjointWith T(descriptioni) .
1≤i<j≤n
T(descriptioni) owl:disjointWith T(descriptionj) .
[opt] 1≤i≠j≤n |
|
EquivalentClasses(description1
… descriptionn) |
T(descriptioni)
owl:equivalentClass T(descriptionj) .
minden <i,j>-re G-ben (ahol G az
{1,...,n}x{1,...,n} párok halmaza),
amelyet, ha irányítatlan gráfként értelmezünk, {1,...,n}-re egy
összefüggő gráfot kapunk.
|
|
SubClassOf(description1
description2) |
T(description1) rdfs:subClassOf T(description2)
. |
|
Datatype(datatypeID [Deprecated]
annotation1
… annotationm ) |
datatypeID rdf:type rdfs:Datatype .
datatypeID rdf:type rdfs:Class . [opt]
[datatypeID rdf:type owl:DeprecatedClass .]
datatypeID T(annotation1) … datatypeID
T(annotationm) |
|
unionOf(description1 …
descriptionn) |
_:x rdf:type owl:Class .
_:x rdf:type rdfs:Class . [opt]
_:x owl:unionOf T(SEQ
description1…descriptionn) . |
_:x |
intersectionOf(description1 …
descriptionn) |
_:x rdf:type owl:Class .
_:x rdf:type rdfs:Class . [opt]
_:x owl:intersectionOf T(SEQ
description1…descriptionn) . |
_:x |
complementOf(description) |
_:x rdf:type owl:Class .
_:x rdf:type rdfs:Class . [opt]
_:x owl:complementOf T(description) . |
_:x |
oneOf(iID1 …
iIDn) |
_:x rdf:type owl:Class .
_:x rdf:type rdfs:Class . [opt]
_:x owl:oneOf T(SEQ
iID1…iIDn) . |
_:x |
oneOf(v1 … vn) |
_:x rdf:type owl:DataRange .
_:x rdf:type rdfs:Class . [opt]
_:x owl:oneOf T(SEQ v1
… vn) . |
_:x |
restriction(ID component1 …
componentn)
(With at least two components) |
_:x rdf:type owl:Class .
_:x rdf:type rdfs:Class . [opt]
_:x owl:intersectionOf
T(SEQ(restriction(ID component1)
… restriction(ID componentn))) . |
_:x |
restriction(ID allValuesFrom(range)) |
_:x rdf:type owl:Restriction .
_:x rdf:type owl:Class . [opt]
_:x rdf:type rdfs:Class . [opt]
_:x owl:onProperty T(ID) .
_:x owl:allValuesFrom T(range) . |
_:x |
restriction(ID someValuesFrom(required)) |
_:x rdf:type owl:Restriction .
_:x rdf:type owl:Class . [opt]
_:x rdf:type rdfs:Class . [opt]
_:x owl:onProperty T(ID) .
_:x owl:someValuesFrom T(required) . |
_:x |
restriction(ID value(value)) |
_:x rdf:type owl:Restriction .
_:x rdf:type owl:Class . [opt]
_:x rdf:type rdfs:Class . [opt]
_:x owl:onProperty T(ID) .
_:x owl:hasValue T(value) . |
_:x |
restriction(ID minCardinality(min)) |
_:x rdf:type owl:Restriction .
_:x rdf:type owl:Class . [opt]
_:x rdf:type rdfs:Class . [opt]
_:x owl:onProperty T(ID) .
_:x owl:minCardinality "min"^^xsd:nonNegativeInteger . |
_:x |
restriction(ID maxCardinality(max)) |
_:x rdf:type owl:Restriction .
_:x rdf:type owl:Class . [opt]
_:x rdf:type rdfs:Class . [opt]
_:x owl:onProperty T(ID) .
_:x owl:maxCardinality "max"^^xsd:nonNegativeInteger . |
_:x |
restriction(ID cardinality(card)) |
_:x rdf:type owl:Restriction .
_:x rdf:type owl:Class . [opt]
_:x rdf:type rdfs:Class . [opt]
_:x owl:onProperty T(ID) .
_:x owl:cardinality "card"^^xsd:nonNegativeInteger . |
_:x |
DatatypeProperty(ID [Deprecated]
annotation1
… annotationm
super(super1)… super(supern)
domain(domain1)…
domain(domaink)
range(range1)…
range(rangeh)
[Functional]) |
ID rdf:type owl:DatatypeProperty .
ID rdf:type rdf:Property . [opt]
[ID rdf:type owl:DeprecatedProperty .]
ID T(annotation1) … ID T(annotationm)
ID rdfs:subPropertyOf
T(super1) . …
ID rdfs:subPropertyOf
T(supern) .
ID rdfs:domain T(domain1) .
…
ID rdfs:domain T(domaink) .
ID rdfs:range T(range1) .
…
ID rdfs:range T(rangeh) .
[ID rdf:type owl:FunctionalProperty . ] |
|
ObjectProperty(ID [Deprecated]
annotation1
… annotationm
super(super1)… super(supern)
domain(domain1)…
domain(domaink)
range(range1)…
range(rangeh)
[inverseOf(inverse)]
[Functional |
InverseFunctional |
Transitive])
[Symmetric] |
ID rdf:type owl:ObjectProperty .
[opt if one of the last three triples is included]
ID rdf:type rdf:Property . [opt]
[ID rdf:type owl:DeprecatedProperty .]
ID T(annotation1) … ID T(annotationm)
ID rdfs:subPropertyOf
T(super1) . …
ID rdfs:subPropertyOf
T(supern) .
ID rdfs:domain T(domain1) .
…
ID rdfs:domain T(domaink) .
ID rdfs:range T(range1) .
…
ID rdfs:range T(rangeh) .
[ID owl:inverseOf T(inverse) .]
[ID rdf:type owl:FunctionalProperty . ]
[ID rdf:type owl:InverseFunctionalProperty . ]
[ID rdf:type owl:TransitiveProperty . ]
[ID rdf:type owl:SymmetricProperty . ] |
|
AnnotationProperty(ID
annotation1
… annotationm) |
ID rdf:type owl:AnnotationProperty .
ID rdf:type rdf:Property . [opt]
ID T(annotation1) … ID
T(annotationm) |
|
OntologyProperty(ID
annotation1
… annotationm) |
ID rdf:type owl:OntologyProperty .
ID rdf:type rdf:Property . [opt]
ID T(annotation1) … ID
T(annotationm) |
|
EquivalentProperties(dvpID1 …
dvpIDn) |
T(dvpIDi) owl:equivalentProperty T(dvpIDi+1) .
1≤i<n |
|
SubPropertyOf(dvpID1
dvpID2) |
T(dvpID1) rdfs:subPropertyOf T(dvpID2) . |
|
EquivalentProperties(ivpID1 …
ivpIDn) |
T(ivpIDi) owl:equivalentProperty T(ivpIDi+1) .
1≤i<n |
|
SubPropertyOf(ivpID1
ivpID2) |
T(ivpID1) rdfs:subPropertyOf T(ivpID2) . |
|
annotation(annotationPropertyID
URIreference) |
annotationPropertyID URIreference .
annotationPropertyID rdf:type owl:AnnotationProperty .
annotationPropertyID rdf:type rdf:Property . [opt] |
|
annotation(annotationPropertyID
dataLiteral) |
annotationPropertyID T(dataLiteral) .
annotationPropertyID rdf:type owl:AnnotationProperty .
annotationPropertyID rdf:type rdf:Property . [opt] |
|
annotation(annotationPropertyID
individual) |
annotationPropertyID T(individual) .
annotationPropertyID rdf:type owl:AnnotationProperty .
annotationPropertyID rdf:type rdf:Property . [opt] |
|
SEQ |
|
rdf:nil |
SEQ
item1…itemn |
_:l1 rdf:type rdf:List .
[opt]
_:l1 rdf:first
T(item1) . _:l1 rdf:rest _:l2 .
…
_:ln rdf:type rdf:List . [opt]
_:ln rdf:first T(itemn) . _:ln
rdf:rest rdf:nil . |
_:l1 |
Ez a leképezés nem injektív, mivel több olyan különböző
ontológiát, amelyik nem pontosan a fentebb kikötött szókészletet használja,
egyenlő RDF gráfokra transzformálhat. Ez azonban csak olyan konstrukciók
esetében fordulhat lő, amelyeknek azonos a jelentése (pl. ahol több kisebb
DisjointClasses axiómának ugyanaz a hatása, mint egyetlen
nagyobbnak). Tehát szükség esetén lehetne definiálni akár egy kanonikus
inverz transzformációt is ezekre a gráfokra.
4.2. OWL DL és OWL Lite ontológiák
definiálása RDF gráf formában
Amikor OWL Lite és DL ontológiákat tervezünk közvetlenül RDF gráf
formában, óvatosan el kell kerülnünk bizonyos szókészletek használatát OWL
osztályok, tulajdonságok vagy egyedek specifikálására. Ha ezt nem tennénk,
akkor a beépített definíciók, vagy szókészletek használata (az RDF vagy az
OWL specifikációból) kiterjesztené az információt az OWL ontológiában. Az RDF
szókészletekből csak néhány tartozik ebbe a kategóriába, ugyanis több RDF
szókészlethez (mint pl. az rdf:subject), az RDF
specifikációk vagy nem társítanak jelentést, vagy csak csekély jelentést
társítanak, és ezért a használatuk nem jelent problémát mindaddig, amíg az
konzisztens a specifikált jelentéssel.
Definíció: A
nem engedélyezett szókészlet az RDF-ből:
rdf:type, rdf:Property, rdf:nil,
rdf:List, rdf:first,
rdf:rest, rdfs:domain, rdfs:range,
rdfs:Resource, rdfs:Datatype, rdfs:Class,
rdfs:subClassOf, rdfs:subPropertyOf, rdfs:member, rdfs:Container
és rdfs:ContainerMembershipProperty. A nem
engedélyezett szókészlet az OWL-ból: owl:AllDifferent, owl:allValuesFrom, owl:AnnotationProperty, owl:cardinality, owl:Class,
owl:complementOf, owl:DataRange, owl:DatatypeProperty, owl:DeprecatedClass, owl:DeprecatedProperty, owl:differentFrom, owl:disjointWith, owl:distinctMembers, owl:equivalentClass, owl:equivalentProperty, owl:FunctionalProperty, owl:hasValue, owl:intersectionOf, owl:InverseFunctionalProperty, owl:inverseOf, owl:maxCardinality, owl:minCardinality, owl:ObjectProperty, owl:oneOf, owl:onProperty,
owl:Ontology, owl:OntologyProperty, owl:Restriction, owl:sameAs, owl:someValuesFrom, owl:SymmetricProperty, owl:TransitiveProperty, és owl:unionOf. A
nem engedélyezett szókészletet annak a két
halmaznak az uniója adja, amelyek a nem
engedélyezett szókészlet az RDF-ből és a nem engedélyezett szókészlet az OWL-ból
című fenti felsorolásban szerepelnek.
Definíció: A csak osztályokat tartalmazó szókészlet:
rdf:Statement, rdf:Seq, rdf:Bag és rdf:Alt. A
csak adattípusokat tartalmazó szókészlet: a beépített OWL adattípusok. A csak
tulajdonságokat tartalmazó szókészlet: rdf:subject, rdf:predicate,
rdf:object, és az összes
containertagság-tulajdonság, azaz rdf:_1, rdf:_2, …
Definíció: OWL DL
ontológiák, axiómák és tények valamely absztrakt
szintaxisban megadott O kollekciója akkor szétválasztott szókészletű, ha
- az O-ban szereplő ontológiák, összevéve, minden URI hivatkozást csak
egyféle típusú azonosítóként használnak: vagy osztályazonosítóként, vagy
adattípus-azonosítóként, vagy egyedazononosítóként, vagy egyedértékű
tulajdonság azonosítójaként, vagy adatértékű tulajdonság azonosítójaként,
vagy annotációtulajdonság azonosítójaként, vagy ontológiatulajdonság
azonosítójaként, vagy egy ontológia azonosítójaként;
- az O-ban szereplő ontológiák, összevéve, típussal látnak el minden
egyedazonosítót;
- az O-ban szereplő ontológiák (kivéve amikor annotációk értékeként
jelennek meg), osztályazonosítóként kizárólag a csak osztályokat tartalmazó szókészlet
kifejezéseit használják; továbbá adattípusként kizárólag a csak adattípusokat tartalmazó
szókészlet kifejezéseit; adatérték-tartományként csak az rdfs:Literal kifejezést; adatértékű tulajdonságok,
egyedértékű tulajdonságok és annotációtulajdonságok azonosítójaként
kizárólag a csak tulajdonságokat
tartalmazó szókészlet kifejezéseit; osztályazonosítóként csak a beépített osztályok neveit;
adattípus-azonosítóként csak a beépített adattípusokat;
annotációtulajdonságok azonosítójaként csak a beépített
annotációtulajdonságokat; ontológiatulajdonságok azonosítójaként
pedig csak a beépített
ontológiatulajdonságokat használják; és egyetlenegyet sem használnak
a nem engedélyezett szókészlet
kifejezéseiből.
Definíció: Egy RDF gráf
akkor tekinthető RDF gráf formátumú OWL DL
ontológiának, ha az egyenlő (egy kis pihenésként lásd alább) egy olyan
gráffal, amelyet a fenti, Transzformálás tripletekre c.
táblázatban megadott transzformációk alapján állítunk elő olyan absztrakt
szintaxisú OWL DL ontológiák, axiómák és tények valamely O kollekciójáról,
amely szétválasztott szókészletre épül.
Abból a célból, hogy megállapíthassuk, hogy egy RDF gráf valóban egy OWL
ontológia RDF gráf formában: a kardinalitáskorlátozásoknál explicite
megengedett az olyan konstrukciók használata, mint "1"^^xsd:integer,
mindaddig, amíg az így kódolt adatérték egy nemnegatív egész szám.
Definíció: Egy RDF
gráf akkor tekinthető RDF gráf formátumú OWL Lite
ontológiának, ha az megfelel a fenti feltételeknek azzal a különbséggel, hogy
O ebben az esetben absztrakt szintaxisú OWL Lite ontológiák, axiómák és
tények kollekcióját jelenti.