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.


Tartalomjegyzék


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

  1. 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;
  2. az O-ban szereplő ontológiák, összevéve, típussal látnak el minden egyedazonosítót;
  3. 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.



Valid XHTML 1.0! Valid CSS!