560 likes | 694 Views
22 mei. Opdracht 1. Kies een interessant domein. Beantwoord een aantal vragen (30%): Geef 3-5 voorbeelden van objecten, types en relaties in het domein. Welk kennisvoorstellingformalisme ga je gebruiken om kennis uit het domein voor te stellen? Waarom? …
E N D
22 mei Opdracht 1 • Kies een interessant domein. • Beantwoord een aantal vragen (30%): • Geef 3-5 voorbeelden van objecten, types en relaties in het domein. • Welk kennisvoorstellingformalisme ga je gebruiken om kennis uit het domein voor te stellen? Waarom? • … • Bouw een kennisbank en een (aantal van) redeneermodule(s) (70%)
O W O L E L Kennisvoorstellingen basisredeneren
Voorstellen Vorige keer Wat verwachten we van een representatie- formalisme? Vandaag: twee representatie- formalismen
Vragen van de kennisingenieur (herhaling) • Woordenschat • Wat zijn de belangrijke objecten? • Wat zijn de typen en de eigenschappen van deze objecten? • Wat zijn de relaties tussen verschillende objecten? • Expliciete kennis • Basisfeiten over de individuele objecten • Algemene feiten over meerdere objecten • Impliciete kennis
Vandaag: Web Onthology Language en Eerste orde logica
17 april Huiswerk 0 • Andere kennisvoorstellingformalismen! • Kies en bespreek één van de volgende: semantic networks, frames and scripts, UML, production rules • Wat zijn de sterke en de zwakke kanten?
Representatieformalisme 1: OWL Web Ontology Language
Ontologie? • leer van de algemene eigenschappen van de dingen • Wiki: een datamodel die een verzameling begrippen binnen een bepaald domein en relaties tussen deze begrippen voorstelt :
Vlugge Vraag Is dat een ontologie? • Ja • Nee Carolus Linnaeus, “Systema Naturae” (1735)
Internet 1989 1998 2004 Meer en meer semantische aspecten komen aan bod…
OWL is de standaardmanier om Internet-kennis voor te stellen
Internet kennisvoorstelling Ontologieën Basis
URI • URI – unieke naam: • URI naam schema:schemaspecifiek deel • http://www.google.com/ • hetzelfde + fragment • http://www.win.tue.nl/~aserebre/2IF03/#md • een relatief URI (met of zonder fragment) • #md • op http://www.win.tue.nl/~aserebre/2IF03/ is identiek met de vorige
17 april Huiswerk 1 • XPath is een andere manier om naar delen van een XML document te verwijzen. • Schrijf een rapportje over XPath. • Begin hier: http://www.w3.org/TR/xpath • Kijk ook naar een paper van Maarten Marx. • Hoe zou je XPath gebruiken bij het bouwen van een kennissysteem?
Naamruimtes Kortschrift die aangeeft dat namen tov een URI worden begrepen: L NH Bergen xmlns l=“http://limburg.nl/” xmlns nh=“http://noord-holland.nl/”
XML – eXtensible Markup Language <?xml version="1.0" encoding="ISO-8859-1" ?> <!-- Voorbeeld --> - <ontbijtkaart> - <gerecht> <naam>Belgische Wafels</naam> <prijs>5.00€</prijs> <calorieën>650</calorieën> </gerecht> - <gerecht> <naam>Wentelteefjes</naam> <prijs>4.50€</prijs> <calorieën>600</calorieën> </gerecht> </ontbijtkaart> Declaratie Element Inhoud
Vlugge Vraag • XML is een veralgemening van HTML • Ja • Nee
XMLS Datatypes • XMLS – XML schema • XMLS levert concrete datatypes • Ingebouwde types: • xsd:int, xsd:date, xsd:string, xsd:boolean, … • Manieren om nieuwe types aan te maken: <xsd:simpleType name="Temperature"> <xsd:restriction base="xsd:double"> <xsd:minExclusive value="-273.15"/> </xsd:restriction> </xsd:simpleType>
http://www.literature.org/plays/RomeoAndJuliet http://www.literature.org/relations/author http://www.literature.org/relations/first_published http://www.literature.org/authors/Shakespeare 1597 RDF – Resource Description Framework • RDF drietal • <Resource,Eigenschap,Resource> • <Resource,Eigenschap,Waarde> RDF graaf
RDF/XML– XML voorstelling van RDF <rdf:RDF xmlns:litrel=“http://www.literature.org/relations/”> <rdf:Description rdf:about=“http://www.literature.org/plays/RomeoAndJuliet”> <litrel:first_published>1597</litrel:first_published> <litrel:author rdf:resource:=“http://www.literature.org/authors/Shakespeare’’/> </rdf:Description> … </rdf:RDF>
RDF/XML– Lidmaatschap <rdf:Description rdf:about=“http://www.literature.org/plays/RomeoAndJuliet”> <rdf:type rdf:resource:=“http://www.literature.org/plays/tragedy’’/> </rdf:Description> Kortschrift …xmlns:plays = “http://www.literature.org/plays/tragedy/” … <plays:tragedy rdf:about=“http://www.literature.org/plays/RomeoAndJuliet”>
RDF/XML– Nieuwe resources <rdf:Description rdf:ID=“http://www.literature.org/plays/Othello”> <rdf:type rdf:resource:=“http://www.literature.org/plays/tragedy’’/> </rdf:Description>
Vlugge Vraag • Welke deel van de kennis kan uitgedrukt worden met behulp van RDF? • Algemene feiten over meerdere objecten • Basisfeiten over de individuele objecten
RDFS – RDF Schema – Klassen en Eigenschappen Klassen Eigenschappen = Binaire relaties <rdfs:Class rdf:ID="Motorvoertuig“/> <rdf:Property rdf:ID=“ingeschrevenIn”/>
RDFS – RDF Schema – v • Klassen: Vrachtwagen v Motorvoertuig • <rdfs:subClassOf rdf:resource=“Motorvoertuig"/> • Eigenschappen: IsVaderVan v IsVoorouderVan • <rdfs:subPropertyOf rdf:resource=“IsVoorouderVan"/> • Eigenschappen en klassen: • <rdf:Property rdf:ID=“ingeschrevenIn"> <rdfs:domain rdf:resource="#Motorvoertuig"/> <rdfs:range rdf:resource="#Land"/> </rdf:Property>
Vlugge Vraag <rdf:Property rdf:ID=“EigenschapE”> <rdf:subPropertyOf rdf:resource=“#EigenschapF”> </rdf:Property> Dan • het bereik van EigenschapE komt overeen met het bereik van EigenschapF. • het domein van EigenschapE komt overeen met het domein van EigenschapF. • A en B zijn waar. • nog A nog B is waar.
OWL <?xml version=“1.0”?> <rdf:RDF naamruimtes> <owl:Ontology rdf:about = “”> • vroegere versies, opmerkingen, … </owl:Ontology> Stellingen over klassen, eigenschappen, … </rdf:RDF>
OWL • rdf:Class wordt vervangen door owl:Class • <owl:Class rdf:ID=“GeschiktVoorConsuptie" /> • owl:equivalentClass, owl:disjointWith, … • rdf:Property • wordt vervangen door o.a. owl:ObjectProperty en owl:DatatypeProperty • owl:FunctionalProperty, owl:inverseOf, …
OWL – Jan, Piet, Joris en Corneel <owl:Class rdf:ID=“man“/> <owl:ObjectProperty rdf:ID=“heeft"> <rdfs:domain rdf:resource=“#mens" /> <rdfs:range rdf:resource=“http://www.w3.org/2002/07/owl#Thing" /> </owl:ObjectProperty> <owl:Class rdf:ID=“meevaarder”> <rdfs:subClassOf rdf:resource = “#man”> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#heeft" /> <owl:hasValue rdf:resource="#baard" /> </owl:Restriction> </rdfs:subClassOf> </owl:Class>
OWL – talen • Afhankelijk van de gebruikte elementen: Meer – later. Lite DL Full
Vlugge Vraag Welke stelling is juist? • owl:maxCardinality kan uitgedrukt worden in eerste orde logica met = . • rdf:resource="&owl;SymmetricProperty“ kan nietuitgedrukt worden in eerste orde logica met =.
OWL talen zijn subtalen van de eerste orde logica
Representatieformalisme 2: Eerste orde logica
Objecten Typen Relaties Constanten Predikaten Vlugge Vraag Hoe gaan we het in logica vertalen? ?
Samenvatting man(Jan). man(Piet). man(Joris). man(Corneel). meevaarder(Jan). meevaarder(Piet). meevaarder(Joris). meevaarder(Corneel). “zij varen mee” Impliciete kennis Komt bekend voor? meevaarder(x) man(x) meevaarder(x) heeft(x,baard) heeft(Jan,baard). heeft(Piet,baard). heeft(Joris,baard). heeft(Corneel,baard). “al die willen…” “die hebben baarden”
Samenvatting man(Jan). man(Piet). man(Joris). man(Corneel). meevaarder(Jan). meevaarder(Piet). meevaarder(Joris). meevaarder(Corneel). Feiten meevaarder(x) man(x) meevaarder(x) heeft(x,baard) heeft(Jan,baard). heeft(Piet,baard). heeft(Joris,baard). heeft(Corneel,baard). Regels
Feiten en regels • Feiten • Gaan meestal over individuele objecten en eigenschappen • “Jan is een man” • Regels • Gaan meestal over types en relaties • “Ieder meevaarder is een man”
Structuur van de lessen OWL Uitbreidingen van OWL Voorstellen EOL LP Inleiding Redeneren Basis Uitbreidingen Verwerven Gebruiken
Redeneren Redeneren Verkrijgen van de nieuwe kennis vanuit de bestaande
Logisch redeneren: ²en ` • ² volgt (semantic entailment) • ² als zodra de formules van waar zijn, is ook waar. • {x >1, x < 4, x2N} ² x is een priemgetal • ` bewijsbaar • ` : er is een (mechanische) procedure die kan bewijzen als gegeven is • Bewijsprocedure: • zeg “bewezen” voor ieder en
²en ` • Voor de meeste systemen • Als ` dan ² • Controleren of ² vereist na te gaan alle situaties dat waar is • Er zijn soms oneindig veel! • Daarom controleer of ` • Voor logisch programmeren: • . ` dan en slechts dan als²
Bottom Up a.k.a. Forward chaining Top Down a.k.a. Backward chaining Nieuwe kennis Bestaande kennis: feiten en regels Twee voorbeelden van `
` ? µ 2 Bottom up nee ja nee ja `
{meevaarder(Jan) }` heeft(Jan,baard)? ` ? meevaarder(Jan). meevaarder(x) man(x) meevaarder(x) heeft(x,baard) • meevaarder(Jan). • Iteratie 1. Regel: meevaarder(x) heeft(x,baard). meevaarder(Jan),dusvoeg heeft(Jan,baard) toe aan . Regel: meevaarder(x) man(x). meevaarder(Jan),dusvoeg man(Jan) toe aan • {heeft(Jan,baard), man(Jan)} µ{meevaarder(Jan) } ? Nee! • Iteratie 2. Regel: meevaarder(x) heeft(x,baard). meevaarder(Jan),dusvoeg heeft(Jan,baard) toe aan . Regel: meevaarder(x) man(x). meevaarder(Jan),dusvoeg man(Jan) toe aan • {heeft(Jan,baard), man(Jan)} µ{meevaarder(Jan), heeft(Jan,baard), man(Jan)}? Ja! • heeft(Jan,baard) 2 {heeft(Jan,baard), man(Jan)}? Ja! • Dus {meevaarder(Jan) }` heeft(Jan,baard) Hoe komen we van naar ? • Begin met de . • Gebruik een regel waarvan zijn lichaam deel uitmaakt van de beschikbare kennis. • Voeg het hoofd van deze regel toe aan . • Ga terug naar stap 2.
heeft(Piet,baard) meevaarder(x) heeft(x,baard) meevaarder(Piet) meevaarder(Piet) Top-down meevaarder(Jan). meevaarder(Piet). meevaarder(x) man(x) meevaarder(x) heeft(x,baard) Top-down • Begin met de te verkrijgen kennis (doel). • Gebruik een regel waarvan zijn hoofd deel uitmaakt van de te verkrijgen kennis. • Voeg hetlichaam van deze regel toe en ga naar stap 2. • Doel:heeft(Piet,baard). • Regel: meevaarder(x) heeft(x,baard). heeft(x,baard)maakt deel uit van het doelvoor x = Pietdus voeg meevaarder(Piet)toe. • meevaarder(Piet)dus stop.
Vlugge Vraag Groep A: Bottom-up. Hoeveel iteraties hebben jullie nodig om te bewijzen dat Victor vliegt? Groep B: Top-down Hoeveel stappen hebben jullie nodig om tot te komen vanuit vliegt(victor)? • x.(vogel(x) vliegt(x)). • vogel(victor)