860 likes | 1.15k Views
Semantika koolitus . Moodul 3 Ontoloogiate formaliseeri - mine ja realiseerimine. / koolituse koht , aeg , asutus / / koolitajad /. Tellija: Euroopa Liidu struktuurifondide programm “Infoühiskonna teadlikkuse tõstmine”. K oolitusmooduli eesmärk.
E N D
Semantikakoolitus. Moodul 3Ontoloogiateformaliseeri-mine jarealiseerimine /koolitusekoht, aeg, asutus/ /koolitajad/ Tellija: Euroopa Liidu struktuurifondide programm “Infoühiskonna teadlikkuse tõstmine”
Koolitusmooduli eesmärk • Anda ülevaade teadmiste esitamise viisidest ja ontoloogiate esitamise keeltest • Selgitada OWL keele konstruktsioone ja nende kasutamist ontoloogiate loomisel • Tutvustada ontoloogiate kvaliteedi hindamise aspekte • Realiseerida oma organisatsiooni valdkonna spetsiifika kirjeldamise ontoloogia OWL vormingus
Kuidas semantikat esitada ja mis on ontoloogiad? TEADMISTE ESITAMINE
Teadmiste esitamise viisid • Graafilised esitlused • Semantikavõrgud (semantic networks) • Teemakaardid (topic maps) • UML • RDF • Formaalsel loogikal baseerivad esitlused • Kirjeldusloogikad (OIL, DAML+OIL, OWL jne) • Reeglid (RuleML, Prolog jne) • Esimest järku loogika
Ontoloogiad • Ontoloogia filosoofias: õpetus olemisest kui sellisest • Formaalne ontoloogia: valdkonna mõistete ja nendevaheliste seoste formaalne käsitlus • Lihtne näide: • Töövõtjad töötavad organisatsioonidele • Töövõtjad annavad tööandjatele aru
Ontoloogiad arvutiteaduses • Ontoloogia on valdkonna konkreetne kirjeldus • Mõisted • Mõistete omadused ja atribuudid • Omaduste ja atribuutide kitsendused • Eksemplarid(pole alati kohustuslikud) • Ontoloogia defineerib • Ühise sõnavara • Ühise arusaama (konsensus sõnavara interpreteerimisel)
Ontoloogiate eesmärgid • Tagab tõrgeteta suhtlemise • Inimeste vahel (nii formaalsed kui mitteformaased) • Agentide (nii inimesed kui masinad) vahel (formaalsed ontoloogiad) • Rakendused • Andmete esitamine ja hoidmine (nt. andmebaasiskeemid) • Nii valdkonnasisene kui –ülene teadmiste vahetamine • Tarkvara-arendus • Andmeobjektide klassifitseerimine • Lepingute sõlmimine
Ontoloogiad veebis • Taksonoomiad • Yahoo! Categories, OpenDirectory Project • E-poodide kataloogid • Amazon.com jt tootekataloogid • Valdkonnaterminoloogiad • SNOMED Clinical Terms – kliinilise meditsiini terminoloogia • UNSPSC – UN toodete ja teenuste klassifikatsioon
Ontoloogiate repositooriumid • DAML ontology library • http://www.daml.org/ontologies • Ontolingua • http://ontolingua.stanford.edu • Protégé • http://protege.stanford.edu/ontologies.html • WebOnto • http://webonto.open.ac.uk • SHOE • http://www.cs.umd.edu/projects/plus/SHOE/onts/index.html
XML • eXtensible Markup Language • XML: • on struktureeritud andmete esitamise vahend • määrab, kuidas teksti struktuuri märgistada • on lihtne, hästi juurdunud ja stabiilne • on metakeel teiste keelte kirjeldamiseks • XML ei: • ole programmeerimiskeel • taga automaatset andmevahetust ega integratsiooni • ole andmemudel– vaid andmete esitamise süntaks
A: B: "foo" C: "bar" C: "lab" XML andmemudelina • XML 1.0 standard: • Pole konkreetset andmemudelit • Vaid trimmis ja kehtivate (vastavalt DTDle) dokumentide süntaks • Võimalikudandmemudelid: • nested containers (“kastid kastides") • märgistatud järjestatud puud (poolstruktureeritudandmemudel) • relatsioonilised, objekt-orienteeritud jms andmed A <A> <B>foo</B> <C>bar</C> <C>lab</C> </A> B C C "foo" "bar" "lab" Järjestatud “lapsed”
A B C a1 b1 c1 a2 b2 c2 a3 b3 c3 R tuple tuple tuple A A A B B B C C C a3 b3 c3 a1 b1 c1 a2 b2 c2 Relatsioonilised andmedja XML R R tuple A a1 /A B b1 /B C c1 /C /tuple tuple A a2 /A B b2 /B C c2 /C /tuple … /R
kinnisturaamat::getImmovableDetails() <complexType name="getRegisteredImmovableDetails"> <sequence> <element name=”registerPartNumber" type="string"/> <element name="onlyValidRecords" type="boolean"/> </sequence> </complexType> … <complexType name="CadastralUnit"> <sequence> <element maxOccurs=”5" minOccurs="0" name="address" type="tns:Address"/> <element name="area" nillable="true" type="string"/> <element name="areaUnit" nillable="true" type="string"/> <element name="cadastralRegisterNumber" nillable="true" type="string"/> <element name="createdOnPlanBasis" type="boolean"/> </sequence> </complexType> …
::objektiHind() <complexType name=”KinnisvaraObjekt"> <sequence> <element name=”registrikood” type="string"/> <element name=”kuupäev" type=”datetime"/> </sequence> </complexType> <complexType name=”Hind"> <sequence> <element name=”valuutaKood” type="string"/> <element name=”summa" type="float"/> </sequence> </complexType>
XML-i piirid (1) <complexType name=” KinnisvaraObjekt "> <sequence> <element name=”registrikood” type="string"/> <element name=”kuupäev" type=”datetime"/> </sequence> </complexType> Katastri- tunnus … <complexType name="CadastralUnit"> <sequence> <element maxOccurs=”5" minOccurs="0" name="address" type="tns:Address"/> <element name="area" nillable="true" type="string"/> <element name="areaUnit" nillable="true" type="string"/> <element name="cadastralRegisterNumber" nillable="true" type="string"/> <element name="createdOnPlanBasis" type="boolean"/> </sequence> </complexType> …
XML-i piirid (2) • Integratsiooniks ei piisa kui on olemas: • XML dokumendid • XML skeemid • nimeruumid • Kui pole: • skeemide dokumentatsiooni/semantikat • konsensust skeemide semantika suhtes
OWLi ajalugu ning iseärasused OWL keel
OWL keel • Ontology Web Language • XML-il baseeruv ontoloogiate kirjeldamise keel • W3C (World Wide Web Consortium) Recommendation alates 10. veebruar, 2004
OWLi ajalugu DAML OIL RDF RDFist mõjutatud DAML = DARPA Agent Markup Language OIL = Ontology Inference Layer DAML+OIL OWL OWL on W3C Recommendation
Ontoloogia näide OWLis <owl:Class rdf:ID=“Person” /> <owl:Class rdf:ID=“Man”> <rdfs:subClassOf rdf:resource=“#Person” /> <owl:disjointWith rdf:resource=“#Woman” /> </owl:Class> <owl:Class rdf:ID=“Woman”> <rdfs:subClassOf rdf:resource=“#Person” /> <owl:disjointWith rdf:resource=“#Man” /> </owl:Class> <owl:Class rdf:ID=“Father”> <rdfs:subClassOf rdf:resource=“Man” /> </owl:Class> <owl:Class rdf:ID=“Mother”> <rdfs:subClassOf rdf:resource=“Woman” /> </owl:Class> <owl:Class rdf:ID=“Parent”> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Father"/> <owl:Class rdf:about="#Mother"/> </owl:unionOf> </owl:Class> <owl:ObjectProperty rdf:ID=“hasChild"> <rdfs:domain rdf:resource="#Parent" /> <rdfs:range rdf:resource="#Person" /> </owl:ObjectProperty>
XML, RDF, RDFS ja OWL • XML • kirjeldab struktureeritud dokumentide süntaksi, kuid ei mingit semantikat • XML Schema • vahend XML dokumentide struktuuri defineerimiseks ja piiramiseks • RDF • raamistikressursside ja nendevaheliste seoste kirjeldamiseks ja vastava andmemudeli lihtsustatud semantika • RDF/XML • RDF väljendite esitlusviis XMLis • RDF Schema • RDF ressursside klasside ja omaduste kirjeldamise sõnastik ja semantika ülem-/alamklass seostele • OWL • keerulisemad seosed, piirangud, andmetüübid, kardinaalsus jms
Formaalne kirjeldamine Kirjeldusloogika
Kirjeldusloogika baasmõisted • Indiviididid/eksemplarid (nt johnja mary) • Mõisted (ntManja Woman) • Rollid (nt hasChild) • Interpretatsioon baseerub indiviidide hulkadel ja indiviididevahelistel seostel • Semantiliselt oluliseks baasühikuks on kirjeldus
Kirjelduste defineerimine (ALC keel) • KirjeldusCvõiDvõib olla: Abaasmõiste T (top) universaalmõiste (bottom) nullmõiste ¬C mõiste eitus C1∩D1 mõistete ühisosa C1UD1mõistete ühend R.Cuniversaalkvantor R.C eksistentsiaalkvantor
Kirjeldusloogika näide Kirjeldusloogika kirjeldus “Õnnelikust isast” (Näite autor Ian Horrocks, U Manchester, UK)
Veel näiteid (1) • baasmõiste • baasmõiste • defineeritud mõiste läbi ühisosa • … lisaks eitus • … eksistentsikvantoriga piirang
RDF • Resource Description Format (alatest aastast 1999) oli algselt veebiressursside jaoks mõeldud info esitamise raamistik • Baseerub ideel identifitseeridaobjekte URIdega (Uniform Resource Identifier), ning kirjeldada neid lihtsate omaduste ja nende väärtustega
RDF/XML struktuur (1) • [subjekt] [predikaat] [objekt] <?xml version="1.0"?> <rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# ...> <rdf:Description rdf:about="subjekt"> <predikaat>objekt</predikaat> </rdf:Description> </rdf:RDF> • [”Hamlet”] [r:autor] [”W. Shakespeare”] <?xml version="1.0"?> <rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# ...> <rdf:Description rdf:about="hamlet_object_uri"> <r:autor>"W. Shakespeare"</r:autor> </rdf:Description> </rdf:RDF>
RDF/XML struktuur (2) • [”Hamlet”] [r:autor] [”W. Shakespeare”] • [”Hamlet”] [r:aasta] [”1600”] • [”Hamlet”] [r:peategelane] [”Prints Hamlet”] <?xml version="1.0"?> <rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# ...> <rdf:Description rdf:about="hamlet_object_uri"> <r:autor>"W. Shakespeare"</r:autor> <r:aasta>“1600"</r:aasta> <r:peategelane>“Prints Hamlet"</r:peategelane> </rdf:Description> </rdf:RDF>
RDF/XML struktuur (3) [http://www.example.org/index.html] [exterms:creation-date] [“August 16, 1999”] [http://www.example.org/index.html][dc:language] [”English”] [http://www.example.org/index.html] [dc:creator] [http://www.example.org/staffid/85740] <?xml version="1.0"?> <rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:dc=http://purl.org/dc/elements/1.1/ xmlns:exterms="http://www.example.org/terms/"> <rdf:Description rdf:about="http://www.example.org/index.html"> <exterms:creation-date>August 16, 1999</exterms:creation-date> </rdf:Description> <rdf:Description rdf:about="http://www.example.org/index.html"> <dc:language>English</dc:language> </rdf:Description> <rdf:Description rdf:about="http://www.example.org/index.html"> <dc:creator rdf:resource="http://www.example.org/staffid/85740"/> </rdf:Description> </rdf:RDF>
Mida on vaja, et jõuda RDFist OWLini? RDF + ? = OWL
Klassid: rdfs:Resource rdfs:Class rdfs:Literal rdf:XMLLiteral rdfs:Datatype rdf:Property Omadused: rdfs:range rdfs:domainrdf:typerdfs:subClassOfrdfs:subPropertyOfrdfs:labelrdfs:comment Konteinerklassid ja omadused: rdfs:Containerrdf:Bag – unordered set rdf:Seq – ordered set rdf:Alt – set of choices rdfs:ContainerMembershipProperty rdfs:member RDF kollektsioonid rdf:List rdf:first rdf:rest rdf:nil Reification rdf:Statement rdf:subject rdf:predicate rdf:object Lisaomadused rdfs:seeAlso rdfs:isDefinedBy rdf:value RDF Schema sõnavara
OWL = RDFS + palju muud • OWLi eesmärk on sarnane RDFSile – pakkuda XML sõnavara klasside, nende omaduste ja seoste defineerimiseks • Kõiki RDF ja RDFS elemente/atribuute saab kasutada OWL dokumentides • OWL klassidvõimaldavad kirjeldada enamat kui RDFSklassid • Eristamaks RDFS ja OWL klasse, on OWLi raames defineeritud uus klass, owl:Class • Rikkalikuma keele tõttu saab OWLi abil kirjeldada keerulisemaid probleeme ning neid vastavaid tuletusmootoreid kasutades lahendada
Mis lisandub? • Piirangud omaduste kardinaalsusele, nttäht kuulub täpselt ühte galaktikasse • Piirangud omaduste kardinaalsuselevõi väärtustele vastavalt seotud klassile, nt kristlastel on tavaks, et abielus osaleb 2 isikut, samas kui moslemitel on vähem piiranguid • Saab määrata kas omadus ontransitiivne, nt, kui A hasAncestor B, ja B hasAncestor C, siis A hasAncestor C. • Klasside ekvivalentsus – määrab, etkahe erineva URIgaklassid kujutavad endast tegelikult sama klassi • Eksemplaride ekvivalentsus – määrab, etkahe erineva URIgaeksemplarid kujutavad endast tegelikult sama eksemplari • Võimalus kirjeldada uusi klasse kombineerides olemasolevaid (nt,ühendidjaühisosad) klasse, või öeldes, et teatud klasside ühisosa on tühi hulk(ükski eskemplar ei kuulu mõlemasse klassi samaaegselt) • jms
Full DL Lite OWLi kihid • OWL Lite • Lihtsaim ja madalaima arvutusliku keerukusega OWLi alamkeel • Peamiselt lihtsate taksonoomiate ja lihtsate piirangute kirjeldamiseks, nt kardinaalsuse jaoks vaid väärtused 0 ja 1 • OWL DL • Kõik OWL keele konstruktsioonidkoos teatud piirangutega • Baseerub kirjeldusloogikail (Description Logics) • Seega arvutuslikult decidable, täielik • Mittekooskõlalisuse kontroll • OWL Full • Kõrgeim arvutuslik keerukus • Arvutuslikult undecidable
OWL Lite (1) • Võrdlemine: • equivalentClass • equivalentProperty • sameAs • differentFrom • allDifferent • Omaduste kirjeldamine: • inverseOf • TransitiveProperty • SymmetricProperty • FunctionalProperty • InverseFunctionalProperty
OWL Lite (2) • Omaduste piirangud: • allValuesFrom • someValuesFrom • Klasside ühisosa: • intersectionOf
OWL Lite kokkuvõte • RDFS tunnused • owl:Class, rdfs:subClassOf , owl:Individual • rdf:Property, rdfs:subPropertyOf • rdfs:domain , rdfs:range • Võrdsus and võrratus • owl:sameClassAs , owl:samePropertyAs , owl:sameIndividualAs • owl:differentIndividualFrom • Piiratud kardinaalsus (hulga liikmete arv) • owl:minCardinality, owl:maxCardinality (piirang: 0 või 1) • owl:cardinality (piirang: 0 või 1) • Omaduste tunnused • owl:inverseOf , owl:TransitiveProperty , owl:SymmetricProperty • owl:FunctionalProperty, owl:InverseFunctionalProperty • owl:allValuesFrom, owl:someValuesFrom (piirang: universaal- ja eksistentsiaalkvantori rakenduspiirkond on lokaalne) • Andmetüübid • RDF Core järgi. • Päiseinfo • owl:imports , Dublin Core Metadata , owl:versionInfo
OWL-DL • DL tuleneb väljendist“Description Logic” • Maksimaalne osa OWList, mis veel tagab: • täielikkuse (kui probleemile on lahendus, siis see ka leitakse) • lahenduvuse (arvutused teostatakse lõpliku aja jooksul) • Sisaldabkõiki OWL keele konstruktsioone, kuid piirab selle kasutust • ntklass ei saa olla eksemplari ja omaduse rollis, omadus ei saa olla klassi ja eksemplari rollis
Klassiaksioomid: oneOf, dataRange disjointWith equivalentClass rdfs:subClassOf Hulgateoreetilised operatsioonid: unionOf intersectionOf complementOf Suvaline kardinaalsus: minCardinality maxCardinality cardinality Väärtuse info: hasValue OWL Full (lisandub OWL Lite osale)