Ontologiat: standardeja, työkaluja Prof. Eero Hyvönen Helsingin yliopisto ja Tietotekniikan tutkimuslaitos HIIT Semantic Computing Research Group http://cs.helsinki.fi/group/seco/ 20-Jan-03 1 Sisältö WWW tänään Tulevaisuuden WWW: ontologiat Semantic Web -visio Tasot ja standardit Työkaluja 20-Jan-03 Eero Hyvönen 2
WWW tänään 20-Jan-03 3 WWW:n perusta URI osoitteet: resurssit Sivustot, dokumentit, kuvat jne. HTML-kieli WWW-sivujen julkaiseminen Hyperlinkit HTTP ym. protokollat Hyperteksti Sähköposti Keskusteluryhmät 20-Jan-03 Eero Hyvönen 4
WWW tänään: palvelut ja tiedonhaku Toiminnalliset palvelut Pankit, kaupat, virastot jne. Tiedonhaun palvelut Hakukoneet (Google, AltaVista jne.) Portaalit, hakemistot Yahoo! jne. Kallis ja hankala ylläpito Arkistot, museot, kirjastot jne. Tietokannat eri sovelluksissa 20-Jan-03 Eero Hyvönen 5 Toiminnalliset palvelut: ongelmia Yhteisten sanastojen ja standardien puute Tiedot: esim. eri yritysten tuotekatalogit Prosessit: esim. ostoprosessin kuvaaminen Järjestelmien monimutkaisuus ja kalleus Esim. EDIFACT Toimintojen/palveluiden monimutkaisuus Esim. liikematkan osapalveluiden yhdistäminen 20-Jan-03 Eero Hyvönen 6
Tiedonhaku: ongelmia Laadun mittaaminen Recall: Kuinka monta % relevanteista löytyy Precision: Kuinka monta % löytyneistä relevantteja Relevance: Vastaako tulos haluttua Suomessa sanamuodot ja -johdokset ongelmana öiden -> yö Esim. yhdestä verbistä n. miljoona muotoa/johdosta 20-Jan-03 Eero Hyvönen 7 Hakusana voi esiintyä epärelevantissa dokumentissa "This page is not about politics" Synonyymien tunnistaminen Venus =/= Aamutähti =/= Iltatähti => low recall Homonyymien tunnistaminen Nokia -> firman ja kaupungin nimi => low precision 20-Jan-03 Eero Hyvönen 8
Yleistermien käyttö vaikeaa Esim: Pohjoismaat -> Suomi, Ruotsi,... Käyttäjän tunnettava eritystermit Monisanaisten käsitteiden käyttö Esimerkiksi broadband integrated services digital network, kolmivaihekilowattituntimittari Relevanssi Haun tuloksena yleensä paljon osumia Dokumenttien järjestys "hyvyyden" mukaan vrt. Googlen innovaatio 20-Jan-03 Eero Hyvönen 9 Implisiittinen tieto Savu-sanalla ei välttämättä löydy tulesta kertovaa sivua Hajautunut tieto Esim. hae tutkimusryhmään kuuluvien julkaisut Haetaanko tietoja vai näiden välisiä suhteita Henkilöt, jotka ovat säveltäneet sinfonian 20-Jan-03 Eero Hyvönen 10
Kehityksen este Webissä? WWW-palvelu kone auttaa ihmistä Edellyttää sisältöjen koneellista "ymmärtämistä" WWW:n sisällöt ovat ihmislukijaa varten HTML, PDF, JPEG, Kone ei ymmärrä WWW:n sisältöjä Hakukoneet, ostoagentit, verkkomönkijät jne. Periaatteessa kaikki WWW-sovellukset => Perustavaa laatua oleva ristiriita 20-Jan-03 Eero Hyvönen 11 Miten Webistä tulee älykkäämpi? 1. Älykkäämmät sovellukset Sisältö pysyy samana Koneesta tehdään ihmismäisempi 2. Älykkäämmin esitetty sisältö Sisältö helpommin ymmärrettäväksi Kone pysyy tyhmempänä Käytännössä molempia tapoja tarvitaan Yhä älykkäämmät järjestelmät käsittelevät yhä älykkäämmin esitettyjä tietoja 20-Jan-03 Eero Hyvönen 12
Ratkaisumalli 1: Älykkäämmät sovellukset Kielen automaattisen tulkinnan vaikeus Dokumenttien vapaamuotoisuus Sisällön semantiikka Ei-tekstuaaliset sisällöt Kuva, ääni, musiikki, video, ohjelmisto, Miten tulkita algoritmisesti? Tulkintaan ei riitä itse dokumentti Tarvitaan konteksti, common sense Tekoälyn perusvaikeuksia, ihmiselle helppoa! Suuria tieteellisteknisiä haasteita 20-Jan-03 Eero Hyvönen 13 Ratkaisumalli 2: Älykkäämmin esitetty sisältö Semantic Webin lähtökohta Talletetaan tieto niin, että tyhmempikin sen ymmärtää! Ihminen tulee konetta vastaan Kone voi auttaa ihmistä itsensä auttamisessa Kiihkeä kehitystyö käynnistynyt W3C:n Semantic Web Activity 2001 W3C:n Web Services Activity 2002 20-Jan-03 Eero Hyvönen 14
1G WWW: Webin sukupolvia WWW-sivut ihmisen tulkittavaksi HTML-kieli 2G WWW: Rakenteet ihmisen/koneen tulkittavaksi XML-kieli 3G WWW: Semantic Web Merkitykset ihmisen/koneen käytettäväksi RDF(S)-kieli => Uusi perusta älykkäille WWW-palveluille Kansainvälinen yhteistyö (W3C, ISO, FIPA, ym. ) 20-Jan-03 Eero Hyvönen 15 Semantic Web: Technology push Trust level Digital signature, annotations,... Logic level KIF, RuleML,... Ontology level RDFS, OWL,... Metadata level RDF, RDFS, Topic Maps,... Structure level XML, XML DTD/ Schema, XSL,... Internet level Unicode, URI,... Planning CPR, SPAR, PDDL, Processes BPML, WPDL, PSL, Services UDDI, WSDL, DAML-S, Transactions XML/EDI, KQML, Communication TCP/IP, HTTP, SOAP,... Laajennettu Tim Berners-Leen (W3C) teknologiakakku 20-Jan-03 Eero Hyvönen 16
Semantic Web Standardeja 20-Jan-03 17 Merkkauskielet SGML HTML ja XHTML XML standardiperhe Metadata RDF ja RDF(S) Topic Maps Ontologiakielet RDF(S) ja OWL Standardeja 20-Jan-03 Eero Hyvönen 18
Tiedon esitys: merkkauskielet (markup languages) 20-Jan-03 19 Merkkauskielten idea Ympäristöriippumattomia standardeja dokumenttien luomiseen hallitsemiseen siirtämiseen Dokumentit tekstitiedostoja Avoin yksinkertainen formaatti Käytössä kaikilla HW/SW-alustoilla Helppo muokata, tallentaa, lukea, siirtää Käytettävissä tulevaisuudessakin 20-Jan-03 Eero Hyvönen 20
Ideana erottaa rakenne, sisältö ja ulkoasu Kuvataan rakenne yleisesti merkkauksilla (ohjelmoija) Esim. HTML: <H1> Otsikko </H1> Kuvataan sisältö (ohjelmoija) Esim. XML: <OSOITE> Tietotie 3 </OSOITE> Ulkoasusta päättää lukija (selain) Esim. PC, kännykkä tms. 20-Jan-03 Eero Hyvönen 21 Käytännössä työnjako menee helposti sekaisin Esim. tekstin korostus tai koko on selaimen asia: <EM> Korostettu teksti </EM> Loogisesti oikein; ei oteta kantaa siihen miten korostus tehdään <I> Korostettu teksti (kursiivi) </I> Loogisesti väärin, jos ajatuksena on vain korostaa tekstiä 20-Jan-03 Eero Hyvönen 22
HTML Hyper Text Markup Language WWW-sivujen kirjoittamiskieli Kaikkien selaimien tukema Tuettu versio kuitenkin vaihtelee! Esim. HTML:n uudet ominaisuudet, Java-tuki jne. Selaimet voivat näyttää sivuja hieman eri lailla Esim. puutteellisten kuvausten oletusarvoiset täydentämiset, fonttivalikoimat jne. Sivut on siksi aina hyvä testata eri selaimilla! 20-Jan-03 Eero Hyvönen 23 Structure level 20-Jan-03 24
SGML Standard Generalized Markup Language Metakieli, jonka avulla voidaan määritellä merkkauskieliä Data Type Definition (DTD) -määrittelyt Monimutkainen ISO standardi 1986 Esimerkiksi HTML on yksi SGML:n määrittely 20-Jan-03 Eero Hyvönen 25 XML Extensible Markup Language SGML:n yksinkertaisempi osajoukko (20%) XML korvannut käytännössä SGML:n Voidaan määritellä sovelluskohtaisia markupkieliä <HENKILO> <NIMI> Onni Opiskelija </NIMI> <PUHELIN> 123456 </PUHELIN> </HENKILO> 20-Jan-03 Eero Hyvönen 26
Uuden kielen syntaksin määrittely DTD-kuvaus: oma määrittelykieli XML Schema: määrittely XML-perustaisesti Ulkoasu: extensible Style Language (XSL) XSLT: muunokset, esim. HTML-sivuksi XSL-FO: oma layout-kieli 20-Jan-03 Eero Hyvönen 27 XML-esimerkki (DTD) <?xml version="1.0"?> <!DOCTYPE CONTACTS [ <!ELEMENT CONTACTS (CONTACT+)> <!ELEMENT CONTACT (NAME, PHONE+, ADDRESS, IMG?)> <!ELEMENT NAME (#PCDATA)> <!ELEMENT PHONE (#PCDATA)> <!ATTLIST PHONE type (home work gsm) "work"> <!ELEMENT ADDRESS (#PCDATA)> <!ELEMENT IMG EMPTY> <!ATTLIST IMG src CDATA #REQUIRED> <!ENTITY Uni "University of Helsinki"> ]> <CONTACTS> <CONTACT> <NAME>Mika Klemettinen</NAME> <PHONE type="work">191 44159</PHONE> <PHONE type="gsm">050-54 78 595</PHONE> <ADDRESS>&Uni;</ADDRESS> <IMG src="mika.jpg"/> </CONTACT> </CONTACTS> 20-Jan-03 Eero Hyvönen 28
Miksi XML? Samalle sisällölle eri ulkoasuja Eri laitteet (PC, kännykkä, ) Eri sovellukset (WWW-sivu, painettu kirja, ) Sisällön/rakenteen hyödyntäminen Esim. parempi osumatarkkuus hakukoneissa Laadun kontrollointi Syntaksin tarkistus mahdollista 20-Jan-03 Eero Hyvönen 29 XML on Webin perusta jatkossa Tietojen koodaus avoimessa muodossa Runsaasti standardeja eri aloille Avoimet rajapinnat Java ym. kieliin Ohjelmallinen sivujen käsittely 20-Jan-03 Eero Hyvönen 30
Merkkauskielten merkitys Muodostavat WWW:n perustan Helppokäyttöisiä näyttäviä sivuja käyttäjille Helppoja tehdä toteuttajan näkökulmista Avoimet yhteiset standardit Valmistajariippumattomuus Stabiilisuus tiedostoformaattien muutoksia vastaan Sivut ovat yksinkertaisia tekstitiedostoja Sovellusaluekohtaiset standardikielet 20-Jan-03 Eero Hyvönen 31 Standardointi WWW-kehityksen yleiskoordinointi WWW Consortium (www.w3.org) Valmistajien, operaattoreinen jne. yhteistyöelin Laatii WWW-suosituksia Sovellusaluekohtaiset organisaatiot ISO: Eri alat paitsi sähkö/elektroniikka IEC, CEN, UN/CEFACT, OASIS, Loputtomasti työryhmiä eri aloilla 20-Jan-03 Eero Hyvönen 32
Metadata level 20-Jan-03 33 Why XML is not "semantic"? <ADDRESS> <NAME>Onni Ohjelmoija</NAME> <TELEPHONE> 123 456 </TELEPHONE> </ADDRESS > <OSOITE> <NIMI>Onni Ohjelmoija</NIMI> <PUHELIN> 123 456 </PUHELIN> </OSOITE> < > < > </ > < > </ > </ > Semantics by the human, not the machine 20-Jan-03 Eero Hyvönen 34
What is semantic The idea of semantics in linguistics and logic: the meaning to objects is given on another level in a language On this level, the objects can be represented and reasoned about 20-Jan-03 Eero Hyvönen 35 Semantic metadata Simple semantic descriptions on the Web Like bibliographical metadata in the libraries Metadata about WWW resources Logical definitions of the terminology Most prominent Semantic Web -standards W3C: RDF(S) ISO: Topic Map, XTM 20-Jan-03 Eero Hyvönen 36
RDF(S) RDF Resource Description Framework (1999) General framework for describing web resources Specification: Model & syntax Relational model, not a syntax like XML RDF Schema (2000) For defining RDF- vocabularies Object-oriented descriptions for WWW languages Class hierarchies, inheritance, constraints (Class/subClass/type) 20-Jan-03 Eero Hyvönen 37 RDF Model Idea: metadata about WWW resources (URIs) Object-Attribute-Value triples "Helsinki"-"is located in"-"finland" <http://www.helsinki.fi, Location, http://www.finland.fi> Reification Hierarchical statements about statements 20-Jan-03 Eero Hyvönen 38
RDF Syntax XML-based (other serializations exist, too!) " The WWW-paper "Using RDF " was written by John Smith, concerns RDF, Metadata and Semantic Web", and was created on Jan 1, 2000" <?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/"> <rdf:description rdf:about = "http://www.helsinki.fi/john.smith/paper.html"> <DC:Title>Using RDF to describe web resources</dc:title> <DC:Creator>John Smith</DC:Creator> <DC:Date>2001-01-01</DC:Date> <DC:Subject>RDF, Metadata, Semantic Web</DC:Subject> </rdf:description> </rdf:rdf> 20-Jan-03 Eero Hyvönen 39 Corresponding RDF model (graph) 20-Jan-03 Eero Hyvönen 40
Creating RDF descriptions RDF is a language for the machine, not for enduser (like HTML) RDF-generation: From databases (hidden web) From document metadata E.g. PDF From higher level languages E.g. DAML+OIL, OWL ontology languages By metadata editors E.g. RDFPic 20-Jan-03 Eero Hyvönen 41 Why RDF is needed? Generalizing the underlying model XML model is a tree RDF model is a graph The arcs in graph do not have ordering (like in a tree) External metadata descriptions possible Graphs can be merged Looks like a tiny detail but is an important step General "framework, not domain specific 20-Jan-03 Eero Hyvönen 42
Ontology level 20-Jan-03 43 What is an ontology? A branch of philosophy studying existence of things in the broadest sense. In IT: formal, explicit definition of commonly agreed concepts Formal: well-defined Explicit: also the machine can use it Commonly agreed: makes communication possible Concepts: supports many natural languages Defines the objects in the application domain and their names used Enables human-machine and machine-machine communication 20-Jan-03 Eero Hyvönen 44
Ontologies in practice General thesauri E.g. WordNet, YSA Models of the world E.g. CYC Specific professional terminologies E.g. RosettaNet Dictionaries Classification systems E.g. products/services UN/SPSC, e@class, E.g. Dewey Decimal, UDK, ICONCLASS, Object-oriented models E.g. in programming, AI systems 20-Jan-03 Eero Hyvönen 45 WHAT IS NEW? PROGRAMMING Object-oriented modeling ARTIFICIAL INTELLIGENCE Description logic semantics XML-syntax, e.g., RDF(S) WWW-TECHNOLOGIES 20-Jan-03 Eero Hyvönen 46
RDF Schema (RDFS): basic constructs Basic idea very simple Hierarchical classes (subclassof) Define concepts (e.g. Book ) Class instances (type) Define particular objects (e.g. Bible as a Book) Properties Inheritance along class hierarchy (e.g. Book author ) Properties form class hierarchies, too Global constraints on properties Domain->Range 20-Jan-03 Eero Hyvönen 47 Using RDFS Two usages Minimal ontology language For defining vocabularies for RDF applications Metalanguage for defining other ontologylanguages XML XML Schema vs. RDF - RDF Schema 20-Jan-03 Eero Hyvönen 48
20-Jan-03 Eero Hyvönen 49 (Maedche 2002) Defining the ontology/vocabulary 20-Jan-03 Eero Hyvönen 50 (Maedche, 2002)
Application ontology 20-Jan-03 Eero Hyvönen 51 (Maedche, 2002) Example of RDF instance data (defined in terms of the ontology) 20-Jan-03 Eero Hyvönen 52
Lexicon ontology 20-Jan-03 Eero Hyvönen 53 Entry in the lexicon 20-Jan-03 Eero Hyvönen 54
Class vs. instance (individual) confusion Class = set of individuals in the domain Subclass vs. instance relation May seem but is not an arbitrary choice Example: Class Grape = All species of grapes What is CabernetSauvignon? Instance of Grape Subclass of Grape 20-Jan-03 Eero Hyvönen 55 Level of representation Class may be an instance of another (meta)class Example: Class Grape = All species of grapes CabernetSauvignonGrape could be a species instance CabernetSauvignonGrape could be the class of actual C. S. grapes 20-Jan-03 Eero Hyvönen 56
Ontology languages based on description logic Next level above RDF(S) Based on formal logic Inference, consistency Subsumption: find objects satisfying a description Subset of predicate logic Optimized for subsumbtion relation & decidability Human-friendly syntax RDF(S) is produced by the machine USA: DAML EU: OIL W3C synthesis: OWL 20-Jan-03 Eero Hyvönen 57 OIL: An extension of RDF(S) 20-Jan-03 Eero Hyvönen 58
class-def animal class-def plant EXAMPLE OF AN subclass-of NOT animal OIL ONTOLOGY class-def tree subclass-of plant class-def branch slot-constraint is-part-of has-value tree class-def leaf slot-constraint is-part-of has-value branch class-def defined carnivore subclass-of animal slot-constraint eats value-type animal class-def defined herbivore subclass-of animal slot-constraint eats value-type plant OR (slot-constraint is-part-of has-value plant) class-def herbivore subclass-of NOT carnivore class-def giraffe subclass-of animal slot-constraint eats value-type leaf class-def lion subclass-of animal slot-constraint eats value-type herbivore class-def tasty-plant subclass-of plant slot-constraint eaten-by has-value herbivore, carnivore 20-Jan-03 Eero Hyvönen 59 OWL Web Ontology Language W3C Recommendation under development Based directly on OIL and DAML Why OWL? Specific procedural semantics -> general declarative semantics Generic tools for cross-domain applications Open standard 20-Jan-03 Eero Hyvönen 60
Three different versions of OWL OWL Lite Classifications + simple constraints - e.g., cardinality 0 or 1 - OWL DL (description logic) - Complex classes - unionof, intersectionof,compmentof - Enumerated and disjoint classes - oneof, disjointwith - Classes defined on particular property values - hasvalue - OWL Full - Classes as instances - Free cardinality 20-Jan-03 Eero Hyvönen 61 OWL example Local property value contraints (not possible in RDFS) - Maker of Wine must be a Winery; maker of chairs smthg else Importing food-ontology <owl:class rdf:id="wine"> <rdfs:subclassof rdf:resource= "&food;potableliquid" />... <rdfs:subclassof> <owl:restriction> <owl:onproperty rdf:resource="#hasmaker" /> <owl:allvaluesfrom rdf:resource="#winery" /> </owl:restriction> </rdfs:subclassof>... </owl:class> 20-Jan-03 Eero Hyvönen 62
Class definitions OWL vs. RDFS Lattice hierarchy of concepts between classes Thing, Nothing Logical combinations of anonymous classes unionof, intersectionof, complementof Equality Property restrictions Quantification & class based -constraints allvaluesfrom, somevaluesfrom Cardinality Value restrictions: hasvalue Property types Transitive, Symmetric, Functional, Inverse, Equal 20-Jan-03 Eero Hyvönen 63 Semantic Web Työkaluja 20-Jan-03 64
Työkaluja Sisällön tuottajan työkaluja Ontologiaeditorit Annotointivälineet Metodologiat Ohjelmoijan työkaluja Ohjelmointikielet WWW-kielet ja välineet Tietokanta- ja -varastovälineet Metodologiat Loppukäyttäjän työkaluja Sovellukset 20-Jan-03 Eero Hyvönen 65 Protégé-2000 Graafinen editori ei-ohjelmoijille Luokkamäärittelyt Ominaisuusmäärittelyt Instanssimäärittelyt Yleisen ontologian perusteella voi generoida esityksiä eri kielillä HTML sivusto Plain RDF(S), RDF(S), Protegen oma namespace Itse määriteltyjä esityksiä (back-end) voi lisätä 20-Jan-03 Eero Hyvönen 66
Tekstiiliontologia, Protege-2000:lla tehty (Suvi Kettula) 20-Jan-03 Eero Hyvönen 67 Jena: eräs ohjelmointiväline Hewlett-Packard Laboratories open source Java-perustainen RDF-varaston hallintarutiinit Lisääminen, poistaminen, muuttaminen Tietovarastojen yhdistäminen Tietokantaan tallettaminen RDQL-kyselykieli 20-Jan-03 Eero Hyvönen 68