1 / 56

Opdracht 1

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? …

Download Presentation

Opdracht 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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%)

  2. O W O L E L Kennisvoorstellingen basisredeneren

  3. Voorstellen Vorige keer Wat verwachten we van een representatie- formalisme? Vandaag: twee representatie- formalismen

  4. 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

  5. Vandaag: Web Onthology Language en Eerste orde logica

  6. 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?

  7. Representatieformalisme 1: OWL Web Ontology Language

  8. 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 :

  9. Vlugge Vraag Is dat een ontologie? • Ja • Nee Carolus Linnaeus, “Systema Naturae” (1735)

  10. Internet 1989 1998 2004 Meer en meer semantische aspecten komen aan bod…

  11. OWL is de standaardmanier om Internet-kennis voor te stellen

  12. Internet kennisvoorstelling

  13. Internet kennisvoorstelling Ontologieën Basis

  14. 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

  15. 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?

  16. 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/”

  17. 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

  18. Vlugge Vraag • XML is een veralgemening van HTML • Ja • Nee

  19. 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>

  20. 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

  21. 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>

  22. 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”>

  23. 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>

  24. Vlugge Vraag • Welke deel van de kennis kan uitgedrukt worden met behulp van RDF? • Algemene feiten over meerdere objecten • Basisfeiten over de individuele objecten

  25. RDFS – RDF Schema – Klassen en Eigenschappen Klassen Eigenschappen = Binaire relaties <rdfs:Class rdf:ID="Motorvoertuig“/> <rdf:Property rdf:ID=“ingeschrevenIn”/>

  26. 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>

  27. 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.

  28. Jan, Piet, Joris en Corneel

  29. OWL <?xml version=“1.0”?> <rdf:RDF naamruimtes> <owl:Ontology rdf:about = “”> • vroegere versies, opmerkingen, … </owl:Ontology> Stellingen over klassen, eigenschappen, … </rdf:RDF>

  30. 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, …

  31. 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>

  32. OWL – talen • Afhankelijk van de gebruikte elementen: Meer – later. Lite DL Full

  33. 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 =.

  34. OWL talen zijn subtalen van de eerste orde logica

  35. Representatieformalisme 2: Eerste orde logica

  36. Objecten Typen Relaties Constanten Predikaten Vlugge Vraag Hoe gaan we het in logica vertalen? ?

  37. Jan, Piet, Joris en Corneel

  38. 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”

  39. Logisch programmeren

  40. 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

  41. 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”

  42. Structuur van de lessen OWL Uitbreidingen van OWL Voorstellen EOL LP Inleiding Redeneren Basis Uitbreidingen Verwerven Gebruiken

  43. Redeneren Redeneren Verkrijgen van de nieuwe kennis vanuit de bestaande

  44. 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 

  45. ²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²

  46. Bottom Up a.k.a. Forward chaining Top Down a.k.a. Backward chaining Nieuwe kennis Bestaande kennis: feiten en regels Twee voorbeelden van `

  47.  ` ? µ 2 Bottom up nee ja nee   ja    `

  48. {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.

  49. 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.

  50. 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)

More Related