Teadmiste formaliseerimine
![]() |
Name: Knowlege representation |
Time, place, result
Lectures: Friday 10:15-11:45 room ICT-315
Practical work: Friday 12:00-13:30 room ICT-315
Practical work will give 40% and exam 60% of points underlying the final grade.
The exam will consist of several small excercises.
The first practical work time on 31. January at 12:00 will be used for introducing the practice work. Some of the last lecture times at the end of the course may be used as additional seminars/labs.
Focus
The main focus of the course is on knowledge representation and reasoning (KR), a part of symbolic AI, on a spectrum from simple (representing and using knowledge in databases) to complex (meaning of sentences in natural language and commonsense knowledge).
The overall goal of the labwork to understand issues facing a task of building a natural language question answering system a la Watson and to see and experiment with existing parts of the solution.
The course contains the following blocks:
- Representing knowledge in the SQL and document databases and hybrids.
- Representing and using simple facts and rules in symbolic AI and logic.
- General-knowledge databases: wikidata, wordnet, yago, conceptnet, nell, cyc.
- Knowledge conveyed by natural sentences: both statistical methods like word2vec and logic-based methods.
- Reasoners and question answering systems.
- Confidence and relevance.
- Context, time, location, events, causality.
Check out this description of the whole KR area.
Books to use
- Ca half of the course themes are covered in this book with freely accessible pdf-s.
- The freely accessible pdf of the handbook of knowledge representation gives a detailed and thorough coverage of the subject; far more than necessary for the course.
- Recommended background for NLP: Speech and Language Processing by Dan Jurafsky and James H. Martin. here is the 2nd edition and here the web page for the draft 3rd edition
- Get the background about automated reasoning from the [[Media:Loogikaopik.pdf|book chapter pages 297-345] by Tanel Tammet and optionally more details from tge the set of course notes from Geoff Sutcliffe.
Observe that a noticeable part of the course contents are not covered by these books: use the course materials and links to papers, standards and tutorials provided.
Practical work
There are three labs. They are all steps in a single project: build a simple natural-language question-answering system about geography.
The labs have to be presented to the course teachers and all students present at labwork time.
The labs can be prepared alone or by teams of two people.
Each lab is evaluated independently and gives the same number of points.
NB! When you do not meet the lab deadline, you will be awarded half of the points for this lab.
First lab
Please read about the task for the first lab. Deadline: 28. February. It is better to present it earlier to have more time for the following labs.
Second lab
The task in the second lab is to
- write a small set of additonal, nontrivial rules for geography not present in Yago or Wordnet,
- actually answering simple questions using logic and rules with the help of a reasoner.
We use a special commonsense reasoning branch of the gkc reasoner (description in the GKC paper at page 538 for examples. Details and instructions will appear here later.
Third lab
Add a simple NLP component to the second lab to answer questions posed in natural language. I.e, the NLP component should convert a natural language query to logic usable by your system. Details and instructions will appear here later.
Block 1: knowledge in the SQL and document databases and hybrids.
Lecture: Intro and background
Lecture materials:
Lecture: RDF and RDFS (and OWL)
Lecture materials:
Block 2: simple facts and rules in symbolic AI and logic
To be filled.
Block 3: General-knowledge databases
Lecture: First look into main large knowledge bases
We will have a look at the goals, main content and differences between:
- wordnet
- dbpedia
- yago
- babelnet
- conceptnet
- nell in wiki and a good paper. The nell website is currently down.
- cyc
Lecture 6: Big annotation systems and intro to rule reasoners
First, big annotation systems:
- Google structured data on the webpage.
- Facebook Open Graph markup on the webpage.
In connection, see also:
- schema.org: property markup vocabulary suggested by Google, Microsoft and others.
- json-ld: currently most popular rdf syntax (in json), also recommended by Google.
Block 4: natural language and question answering
Lecture: Intro to homework and NLP
Lecture materials:
- nlp and watson
- Jurafsky and Martin book: conversational agents
- start reading the Jurafsky and Martin book (see links above)
Lecture: vector representation of words
This lecture will be given by Priit Järv.
Lecture materials:
- First, listen to text vectorization episode from the linear digressions podcast.
- Second, listen to word2vec episode from the linear digressions podcast.
- Read the beginning (until you get tired ...) of the Vector Semantics chapter from the Jurafsky & Martin book.
Useful additional materials from (roughly) easier to more complex:
- word vectors: a short intro
- vector semantics part I presentation from the Jurafsky & Martin book for for chapter 6.
- vector representation: a short tutorial with code examples.
- word2vec tutorial from tensorflow
- vector semantics part II presentation from the Jurafsky & Martin book for chapter 6.
Probabilistic models:
Also interesting to read:
- Aetherial Symbols by the ultimate machine learning guru aka "godfather of machine learning" Geoffrey Hinton
- Autocomplete using Markov chains
Block 5: reasoners and symbolic question answering
Intro to rule reasoners:
- Lecture material as ppt or as pdf
Additionally you may want to look at:
Please have a look and run the same experiments yourself with the gkc prover:
Blocks world.
Some axiom sets:
And some planning problems to solve from these axiom sets:
Also:
See how to run gkc on the Wordnet TPTP version
We use the gkc prover for examples (instructions are in the Reasoner examples ... page above) but you could also try out an old classic prover Otter which actually works OK on windows even though it is really old.
Some background links:
-->
Lecture: starting to parse natural language for interaction with rule reasoners
We will start building a tiny question-answering tool, translating natural language to rule reasoner input.
Our first, very simple goal: translate the text "John is a father of Pete. Pete is a father of Mark. Who is the father of Pete?" to a rule reasoner input
father(john,pete). father(pete,mark). -father(X,pete) | ans(X).
then run the reasoner, fetch the ans(john) and give an answer "John is".
You can use a trivial NLP-to-reasoner parser in python nlp.py as a starting point.
We will then proceed to gradually make questions and sentences more complex and add rules to be able to answer them.
In the final part of the course we will start looking at uncertain reasoning: right now we will only try to do simple strict reasoning.
We will have a look at potential tools for semantic parsing, from simpler to more complex:
- parsetron: a really simple and very limited tool to build your own parser.
- sippycup: has a detailed tutorial/course attached, check the first lab
- ccg2lambda: parses to classical logic strings, which are embedded in XML output.
Other interesting things to look at:
- Framenet: map meaning to form in English through the theory of Frame Semantics.
- Sling: Google project for getting facts from Wikipedia using Frame Semantics.
- Spider: Yale Semantic Parsing and Text-to-SQL Challenge.
- WikiSQL: A Salesforce crowd-sourced dataset for developing NLP interfaces for relational databases.
- Allennlp from the Allen Institute for AI. See also their semantic parsing tutorial.
Block 6: confidence and relevance
See also default logic.
Lecture: various classical ideas for discrete reasoning with uncertainty
We will look at some discrete ways:
- default logic: refresher from previous lecture.
- circumscription
- Autoepistemic logic: long tutorial Ijcai93.pdf
And start with numeric:
- Uncertain_prob_fuzzy.ppt Intro to Bayesian and fuzzy reasoning.
- Notes about numerical confidence, popularity, etc measures
Lecture: various classical ideas for numeric reasoning with uncertainty
Classical numeric ways to reason about uncertainty:
- Uncertain_prob_fuzzy.ppt Intro to both Bayesian and Fuzzy reasoning.
Some newer approaches:
- Vienna_tanel_4.pdf Additional examples and combining.
- Problog start with a tutorial
