<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="et">
	<id>http://www.lambda.ee/w/index.php?action=history&amp;feed=atom&amp;title=Teadmiste_formaliseerimine_2019</id>
	<title>Teadmiste formaliseerimine 2019 - Redigeerimiste ajalugu</title>
	<link rel="self" type="application/atom+xml" href="http://www.lambda.ee/w/index.php?action=history&amp;feed=atom&amp;title=Teadmiste_formaliseerimine_2019"/>
	<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Teadmiste_formaliseerimine_2019&amp;action=history"/>
	<updated>2026-11-07T00:58:15Z</updated>
	<subtitle>Selle lehekülje redigeerimiste ajalugu</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=Teadmiste_formaliseerimine_2019&amp;diff=16537&amp;oldid=prev</id>
		<title>Tammet: Uus lehekülg: &#039;&lt;table&gt; &lt;tr&gt; &lt;td&gt; teadmised  &lt;/td&gt; &lt;td&gt; Name: &lt;b&gt;Knowlege representation&lt;/b&gt;&lt;br&gt; Code: &lt;b&gt;ITI8700&lt;/b&gt;&lt;br&gt;&lt;!-- Link: http://www.lambda.ee/i...&#039;</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Teadmiste_formaliseerimine_2019&amp;diff=16537&amp;oldid=prev"/>
		<updated>2020-01-29T14:24:37Z</updated>

		<summary type="html">&lt;p&gt;Uus lehekülg: &amp;#039;&amp;lt;table&amp;gt; &amp;lt;tr&amp;gt; &amp;lt;td&amp;gt; &lt;a href=&quot;/wiki/Fail:Mephistophiles_small.gif&quot; title=&quot;Fail:Mephistophiles small.gif&quot;&gt; left|teadmised&lt;/a&gt;  &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; Name: &amp;lt;b&amp;gt;Knowlege representation&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt; Code: &amp;lt;b&amp;gt;ITI8700&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;!-- Link: http://www.lambda.ee/i...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Uus lehekülg&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
[[Pilt:Mephistophiles small.gif| left|teadmised]] &lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
Name: &amp;lt;b&amp;gt;Knowlege representation&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Code: &amp;lt;b&amp;gt;ITI8700&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;!--&lt;br /&gt;
Link: http://www.lambda.ee/index.php/Teadmiste_otsing,_formaliseerimine_ja_hoidmine  or http://www.lambda.ee/index/itv0060&amp;lt;br&amp;gt;--&amp;gt;&lt;br /&gt;
Lecturer: Tanel Tammet&amp;lt;br&amp;gt;&lt;br /&gt;
Labs: Evelin Halling and Tanel Tammet&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: tanel.tammet@ttu.ee, 6203457, TTÜ ICT-426&amp;lt;br&amp;gt;&lt;br /&gt;
Archives of previous years: [[Teadmiste otsing, formaliseerimine ja hoidmine|2015]]&lt;br /&gt;
[[itv0060 2014 arhiiv|2014]], [[itv0060 2013 arhiiv|2013]], [[itv0060 2012 arhiiv|2012]], [[itv0060 2011 arhiiv|2011]], [[itv0060 20010 arhiiv|2010]], [[itv0060 2009 arhiiv|2009]], [[itv0060 2008 arhiiv|2008]], [[itv0060 2007 arhiiv|2007]],   [[itv0060 2006 arhiiv|2006]], [http://cs.ttu.ee/kursused/wav4130/ older].&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NB! This is an archive from 2019, not actual course contents&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Exam results&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Siin on &amp;lt;b&amp;gt;lõpptulemus&amp;lt;/b&amp;gt; kolmanda eksami järel: [[Teadmiste formaliseerimine lõpptulemus 2019]] koos praktikumipunktide ja hindega. &lt;br /&gt;
&lt;br /&gt;
Milles seisnes vahepealne parandus: praktikumipunktide kokkuliitmisel oli kaks erinevat interpretatsiooni: kas kolmas praks on osa summast 0..40 või on ta puhas lisand esimese kahe praksi summale. Esialgne hinne tulenes esimesest interpretatsioonist, parandatud hinne teisest. Selle tulemusena mitmed hinded tõusid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Siin on koguseis teise eksami järel: [[Teadmiste formaliseerimine teine eksam 2019]] koos praktikumipunktide ja hetkeseisuks oleva hindega. Kui näed seal tabelis vigu, anna palun teada!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Viimane eksam toimub kolmapäeval, 12. juunil kell 12:00 IT majas ruumis ICT-A2.&lt;br /&gt;
&lt;br /&gt;
Siin on esimese eksami tulemused (praktikumipunkte ei ole lisatud):&lt;br /&gt;
[[Teadmiste formaliseerimine esimene eksam 2019]]&lt;br /&gt;
&lt;br /&gt;
Kellel alla 30 punkti, palun eksam uuesti teha. Igaühel on võimalik teha eksamit kaks korda.&lt;br /&gt;
&lt;br /&gt;
== Exam ==&lt;br /&gt;
&lt;br /&gt;
All exam times on Wednesdays at 12:00 (lecture timeslot):&lt;br /&gt;
&lt;br /&gt;
* 22 May 12:00 in the economics building SOC-211A&lt;br /&gt;
* 29 May 12:00 in the economics building SOC-213&lt;br /&gt;
* 12 June 12:00 in the IT building ICT-A2&lt;br /&gt;
&lt;br /&gt;
Exam is in written form, no materials can be used.&lt;br /&gt;
Exam will last 3 hours, but most likely you can finish in ca 1.5 hours.&lt;br /&gt;
&lt;br /&gt;
Here are notes as [[What will be asked in the ITI8700 exam]] including materials to study.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Labwork instead of the next lecture&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
24. April lecture time 12:00-13:30 will be used for labwork / consultation in the room ICT-411, followed by praktikum/konsultatsioon at 14:00 in the room ICT-121.&lt;br /&gt;
&lt;br /&gt;
NB! If you have any questions about the labwork, please be sure to attend the labs at 24. April.&lt;br /&gt;
&lt;br /&gt;
The deadline of the 2. and 3. parts of labwork are 15. May: you have to present your results during the labwork time.&lt;br /&gt;
&lt;br /&gt;
Kui on küsimusi praktikumi skoobi kohta (mis täpsemalt peab teises osas olema implementeeritud), &lt;br /&gt;
siis kindlasti osaleda 24.04 tomiuvates praktikumides kl. 12 või kl.14.&lt;br /&gt;
&lt;br /&gt;
No school at 1. May (public holiday).&lt;br /&gt;
&lt;br /&gt;
Also, have a look at the [http://lambda.ee/wiki/Teadmiste_formaliseerimine#Lecture_13:_seminar-kind_of_work_on_the_third_lab materials from the last lecture] including [http://lambda.ee/wiki/How_to_run_gkc_on_the_Wordnet_TPTP_version how to run gkc on wordnet]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Lecture by Priit Järv ==&lt;br /&gt;
&lt;br /&gt;
Priit Järv will give the lecture about vector representations on 13. Feb. Priit is teaching the current main AI course at  TTU and has been working on vector representations himself.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Time, place, result ==&lt;br /&gt;
&lt;br /&gt;
Lectures: Wednesdays 12:00-13:30 room U06A-229&amp;lt;br&amp;gt;&lt;br /&gt;
Practical work: Wednesdays 14:00-15:30, room ICT-121, ICT-122&amp;lt;br&amp;gt;&lt;br /&gt;
Practical work will give 40% and exam 60% of points underlying the final grade. &lt;br /&gt;
The exam will consist of several small excercises.&lt;br /&gt;
&lt;br /&gt;
The first practical work time on 30. January at 14:00 will be used as a secord conventional lecture of the day.&lt;br /&gt;
&lt;br /&gt;
Some of the last lecture times at the end of the course may be used as additional seminars/labs.&lt;br /&gt;
&lt;br /&gt;
== Assumed background ==&lt;br /&gt;
&lt;br /&gt;
You should have studied the course [http://lambda.ee/w/index.php?title=Tehisintellekti_ja_masin%C3%B5ppe_alused&amp;amp;oldid=15188 &amp;quot;Basics of AI and Machine Learning&amp;quot;] or get acquinted with the logic and probabilities parts of the course yourself.&lt;br /&gt;
&lt;br /&gt;
In particular, it is useful to read these course materials and exercises: [http://lambda.ee/w/images/8/81/Chapter08-abbrev.pdf logic AIMA book], [http://lambda.ee/w/images/a/a6/Chapter07-abbrev2.pdf wumpus world in AIMA book], [http://lambda.ee/w/images/8/80/Chapter13-abbrev2.pdf uncertainty in AIMA book], [http://lambda.ee/w/images/5/5b/Chapter1415-abbrev.pdf probability models in AIMA book],&lt;br /&gt;
[http://lambda.ee/wiki/Iti0210lab8 prolog lab], [http://lambda.ee/wiki/Iti0210lab9 bayes lab]&lt;br /&gt;
&lt;br /&gt;
== Focus ==&lt;br /&gt;
&lt;br /&gt;
The main focus of the course is on [https://en.wikipedia.org/wiki/Knowledge_representation knowledge representation and reasoning] (KR), on a spectrum from simple to very complex: representing and using knowledge in databases, sentences in natural language and commonsense knowledge. &lt;br /&gt;
&lt;br /&gt;
The overall goal of the labwork to understand issues facing a task of building a natural language question answering system a la [https://en.wikipedia.org/wiki/Watson_(computer) Watson] and to see and experiment with existing parts of the solution.&lt;br /&gt;
&lt;br /&gt;
The course contains the following blocks:&lt;br /&gt;
&lt;br /&gt;
* Background and basics. Representing and using simple facts and rules.&lt;br /&gt;
* Knowledge conveyed by natural sentences: both statistical methods like word2vec and logic-based methods.&lt;br /&gt;
* General-knowledge databases: wikidata, wordnet, yago, conceptnet, nell, cyc.&lt;br /&gt;
* Reasoners and question answering systems.&lt;br /&gt;
* Context, time, location, events, causality.&lt;br /&gt;
* Different kinds and dimensions of uncertain knowledge.&lt;br /&gt;
* Indexes and search.&lt;br /&gt;
&lt;br /&gt;
Check out [http://www.lisperati.com/tellstuff/ this description] of the whole KR area.&lt;br /&gt;
&lt;br /&gt;
== Books to use ==&lt;br /&gt;
&lt;br /&gt;
* Recommended for NLP: Speech and Language Processing by Dan Jurafsky and James H. Martin.  [https://github.com/rain1024/slp2-pdf/blob/master/complete-book-pdf/slp2.pdf here is the 2nd edition] and [https://web.stanford.edu/~jurafsky/slp3/ here the web page for the draft 3rd edition]&lt;br /&gt;
* Ca half of the course themes are covered in [http://www.sciencedirect.com/science/book/9781558609327 this book] with freely accessible pdf-s.&lt;br /&gt;
* The freely accesible pdf of the [http://ii.fmph.uniba.sk/kri/KRhandbook.pdf handbook if knowledge representation] gives a detailed and thorough coverage of the subject; far more than necessary for the course.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Interesting to browse: [http://www.aaai.org/Library/KR/kr12contents.php recent conference proceedings]&lt;br /&gt;
* Interesting to browse: [http://www.cse.buffalo.edu/~shapiro/Courses/CSE563/Slides/krrSlides.pdf course materials], [http://web.stanford.edu/class/cs227/ course materials]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Practical work ==&lt;br /&gt;
&lt;br /&gt;
There are three labs. They are all steps in a single project: build a simple natural-language question-answering system.&lt;br /&gt;
&lt;br /&gt;
The labs have to be presented to the course teachers and all students present at labwork time.&lt;br /&gt;
&lt;br /&gt;
The labs can be prepared alone or by teams of two people. The first lab task will be given on 6. February.&lt;br /&gt;
&lt;br /&gt;
First, read the explanation of the [[KR 2019 homework: overall task|overall task]]. The following labs are steps on the path to the end goal.&lt;br /&gt;
&lt;br /&gt;
=== NB! You have to register for the lab like this: ===&lt;br /&gt;
&lt;br /&gt;
First, go to&lt;br /&gt;
&lt;br /&gt;
https://ained.ttu.ee/&lt;br /&gt;
&lt;br /&gt;
Search for: ITI8700&lt;br /&gt;
&lt;br /&gt;
Log in with the &amp;quot;UNI ID&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Enroll on the course page found: Click &amp;quot;enrol me&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
Second, go to http://gitlab.cs.ttu.ee and log in&lt;br /&gt;
&lt;br /&gt;
Click on &amp;quot;Create a project&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Name of the project must be exactly that: iti8700-2019&lt;br /&gt;
&lt;br /&gt;
Visibility level: private&lt;br /&gt;
&lt;br /&gt;
Upload you code, presentation, examples etc you use for the&lt;br /&gt;
presentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First lab ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deadline: &amp;lt;b&amp;gt;14. March&amp;lt;/b&amp;gt; (after this there will be a penalty).&lt;br /&gt;
&lt;br /&gt;
If you manage to fullfill the task earlier, start doing the second lab.&lt;br /&gt;
&lt;br /&gt;
Please read about [[KR 2019 homework part 1: overall task|the task for the first lab]]&lt;br /&gt;
&lt;br /&gt;
=== Second lab ===&lt;br /&gt;
&lt;br /&gt;
Deadline &amp;lt;b&amp;gt;15. May&amp;lt;/b&amp;gt;. You have to give a presentation latest at 15. May labtime (better at 8. May).&lt;br /&gt;
&lt;br /&gt;
The task in the second lab is actually answering simple questions from the input text, using a small set of rules you write and a reasoner.&lt;br /&gt;
&lt;br /&gt;
Please start by experimenting with a real prover: look and run [[Reasoner examples with gkc]]&lt;br /&gt;
&lt;br /&gt;
We use the [https://github.com/tammet/gkc gkc] prover for examples (instructions are in the Reasoner examples ... page above) but you could also try out an old classic prover [https://www.mcs.anl.gov/research/projects/AR/otter/ Otter] which actually works OK on windows even though it is really old.&lt;br /&gt;
&lt;br /&gt;
Make sure to get the latest release of gkc from [https://github.com/tammet/gkc/releases gkc releases] (currently delta) and either download a binary or compile using instructions on the [https://github.com/tammet/gkc gkc github page]. The basic instructions are also on the [https://github.com/tammet/gkc gkc github page]. Also, see the few examples in the Examples folder.&lt;br /&gt;
&lt;br /&gt;
You can use a trivial NLP-to-reasoner parser in python [[nlp.py]] as a starting point.&lt;br /&gt;
&lt;br /&gt;
Have a look at the [http://lambda.ee/wiki/Teadmiste_formaliseerimine#Lecture_12:_seminar-kind_of_work_on_the_second_lab Lecture 12 materials].&lt;br /&gt;
&lt;br /&gt;
Interesting large question-answering datasets and challenge problems:&lt;br /&gt;
[https://rajpurkar.github.io/SQuAD-explorer/ Stanford SQUAD], [http://data.allenai.org/arc/ Allen institute arc2 challenge], [https://ai.google.com/research/NaturalQuestions Google natural questions], [https://openinnovationgateway.com/ai-nlp-challenge/challenge.php Fujitsu NLP challenge], [http://jmcauley.ucsd.edu/data/amazon/qa/ amazon qa dataset]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
The task in the second lab is to &lt;br /&gt;
* disambiguate ambivalent words like &amp;quot;it&amp;quot;, &amp;quot;he&amp;quot; and &lt;br /&gt;
* download, process and make usable some large data- and rulesets.&lt;br /&gt;
* experiment with a reasoner.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
See [[details for KR lab 2]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Third lab ===&lt;br /&gt;
&lt;br /&gt;
Deadline &amp;lt;b&amp;gt;15. May&amp;lt;/b&amp;gt;. You have to give a presentation latest at 15. May labtime (better at 8. May).&lt;br /&gt;
&lt;br /&gt;
The third lab is &amp;lt;b&amp;gt;optional&amp;lt;/b&amp;gt; and will simply give as many points as lab 1 or 2 towards the final result and the grade: practical work 60% and exam 40%.&lt;br /&gt;
&lt;br /&gt;
The task in the third lab is the open-world scenario of answering questions based on wikipedia and using large downloaded rule sets a la yago, wordnet etc with a reasoner. &lt;br /&gt;
&lt;br /&gt;
It is a plus to be able to give uncertain answers (likely, unlikely) and handle fuzzy properties like boy, girl, grownup, rich etc.&lt;br /&gt;
&lt;br /&gt;
Have a look at the [http://lambda.ee/wiki/Teadmiste_formaliseerimine#Lecture_13:_seminar-kind_of_work_on_the_third_lab Lecture 13 materials]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Lab ideas ===&lt;br /&gt;
&lt;br /&gt;
* [[KR lab idea by Priit Järv]]&lt;br /&gt;
&lt;br /&gt;
Student ideas are also welcome: have to agree with Tanel first.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lecture block 1: basics and representing simple facts. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Lectures 1 and 2: Overview of the course. Background and basics: SQL, logic, NLP ===&lt;br /&gt;
&lt;br /&gt;
Lecture materials:&lt;br /&gt;
* [[Media:Kr_lect_1b.ppt| intro, sql, logic, NLP]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Lecture 2: RDF and RDFS (and OWL) ===&lt;br /&gt;
&lt;br /&gt;
Lecture materials:&lt;br /&gt;
* [[Media:Kr_lect_2b.ppt| schemaless databases, RDF and RDFS]]&lt;br /&gt;
* [[Nosql links and notes]]&lt;br /&gt;
&lt;br /&gt;
== Lecture block 2: capturing meaning in natural language ==&lt;br /&gt;
&lt;br /&gt;
=== Lecture 3: Intro to homework and NLP ===&lt;br /&gt;
&lt;br /&gt;
Lecture materials:&lt;br /&gt;
* [[Media:Kr_lect_3a.pdf| nlp and watson]]&lt;br /&gt;
* Jurafsky and Martin book: [https://web.stanford.edu/~jurafsky/slp3/slides/convagents1.pdf conversational agents]&lt;br /&gt;
* start reading the Jurafsky and Martin book (see links above)&lt;br /&gt;
&lt;br /&gt;
=== Lecture 4: vector representation of words ===&lt;br /&gt;
&lt;br /&gt;
This lecture will be given by Priit Järv.&lt;br /&gt;
&lt;br /&gt;
Lecture materials:&lt;br /&gt;
* First, listen to [http://lineardigressions.com/episodes/2017/4/23/feature-processing-for-text-analytics text vectorization episode] from the [http://lineardigressions.com/ linear digressions] podcast.&lt;br /&gt;
* Second, listen to [http://lineardigressions.com/episodes/2018/12/30/re-release-word2vec word2vec episode] from the [http://lineardigressions.com/ linear digressions] podcast.&lt;br /&gt;
* Read the beginning (until you get tired ...) of the [https://web.stanford.edu/~jurafsky/slp3/6.pdf Vector Semantics chapter] from the Jurafsky &amp;amp; Martin book.&lt;br /&gt;
Useful additional materials from (roughly) easier to more complex:&lt;br /&gt;
* [https://medium.com/@jayeshbahire/introduction-to-word-vectors-ea1d4e4b84bf word vectors]: a short intro&lt;br /&gt;
* [https://web.stanford.edu/~jurafsky/slp3/slides/vector1.pptx vector semantics part I] presentation from the Jurafsky &amp;amp; Martin book for for chapter 6.&lt;br /&gt;
* [https://towardsdatascience.com/art-of-vector-representation-of-words-5e85c59fee5 vector representation]: a short tutorial with code examples.&lt;br /&gt;
&amp;lt;!--* [http://u.cs.biu.ac.il/~gonenhi/slides/WiDS_tutorial.pdf vector representation and word2vec]: a medium-sized tutorial presentation.--&amp;gt;&lt;br /&gt;
* [https://www.tensorflow.org/tutorials/representation/word2vec word2vec tutorial] from [https://www.tensorflow.org/ tensorflow]&lt;br /&gt;
* [https://web.stanford.edu/~jurafsky/slp3/slides/vector2.pptx vector semantics part II] presentation from the Jurafsky &amp;amp; Martin book for chapter 6.&lt;br /&gt;
&amp;lt;!--* [[Media:How_does_word2vec_work.pdf|How does word2vec work]] paper by David Meyer.&lt;br /&gt;
* [[Media:Word2vec_learning_explained.pdf|Word2vec learning explained]] paper by Xin Rong.--&amp;gt;&lt;br /&gt;
Probabilistic models:&lt;br /&gt;
* [https://www.youtube.com/watch?v=u7l5hhmdc0M LDA explanation by Jordan Boyd-Graber]&lt;br /&gt;
&lt;br /&gt;
Also interesting to read:&lt;br /&gt;
* [https://drive.google.com/file/d/0B8i61jl8OE3XdHRCSkV1VFNqTWc/edit Aetherial Symbols] by the  ultimate machine learning guru aka &amp;quot;godfather of machine learning&amp;quot; [https://en.wikipedia.org/wiki/Geoffrey_Hinton Geoffrey Hinton]&lt;br /&gt;
*[https://yurichev.com/blog/markov/ Autocomplete using Markov chains]&lt;br /&gt;
&lt;br /&gt;
== Lecture block 3 and start of 4: large common-sense knowledge bases and reasoning ==&lt;br /&gt;
&lt;br /&gt;
=== Lecture 5: First look into main large knowledge bases ===&lt;br /&gt;
&lt;br /&gt;
We will have a look at the goals, main content and differences between:&lt;br /&gt;
&lt;br /&gt;
* [https://wordnet.princeton.edu/ wordnet]&lt;br /&gt;
* [https://wiki.dbpedia.org/ dbpedia]&lt;br /&gt;
* [https://www.mpi-inf.mpg.de/departments/databases-and-information-systems/research/yago-naga/yago/ yago]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BabelNet babelnet]&lt;br /&gt;
* [http://conceptnet5.media.mit.edu/ conceptnet]&lt;br /&gt;
* nell in [https://en.wikipedia.org/wiki/Never-Ending_Language_Learning wiki] and [https://cacm.acm.org/magazines/2018/5/227193-never-ending-learning/fulltext a good paper]. The [http://rtw.ml.cmu.edu/ nell website] is currently down.&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Cyc cyc]&lt;br /&gt;
&lt;br /&gt;
=== Lecture 6: Big annotation systems and intro to rule reasoners ===&lt;br /&gt;
&lt;br /&gt;
First, big annotation systems:&lt;br /&gt;
* [https://developers.google.com/search/docs/guides/intro-structured-data Google structured data] on the webpage.&lt;br /&gt;
* [https://developers.facebook.com/docs/sharing/webmasters/ Facebook Open Graph markup] on the webpage.&lt;br /&gt;
&lt;br /&gt;
In connection, see also:&lt;br /&gt;
* [http://schema.org schema.org]: property markup vocabulary suggested by Google, Microsoft and others.&lt;br /&gt;
* [https://json-ld.org/ json-ld]: currently most popular rdf syntax (in json), also recommended by Google.&lt;br /&gt;
&lt;br /&gt;
Second, intro to rule reasoners:&lt;br /&gt;
* [[Media:Kr_lect_5a.pptx| Lecture material as ppt]] or as [[Media:Kr_lect_5a.pdf| pdf]]&lt;br /&gt;
&lt;br /&gt;
Additionally you may want to look at:&lt;br /&gt;
* [http://lambda.ee/w/images/0/06/Geoffreasoningnotes.pdf automated reasoning tutorial by Geoff]&lt;br /&gt;
&lt;br /&gt;
=== Lecture 7: rule reasoners ===&lt;br /&gt;
&lt;br /&gt;
Please have a look and run the same experiments yourself with the gkc prover:&lt;br /&gt;
&lt;br /&gt;
[[Reasoner examples with gkc]]&lt;br /&gt;
&lt;br /&gt;
We use the [https://github.com/tammet/gkc gkc] prover for examples (instructions are in the Reasoner examples ... page above) but you could also try out an old classic prover [https://www.mcs.anl.gov/research/projects/AR/otter/ Otter] which actually works OK on windows even though it is really old.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Use gkc prover version 0.1 alpha for experimentation:&lt;br /&gt;
* [[Media:gkc_01.zip]] gkc_01.exe for windows&lt;br /&gt;
* [https://github.com/tammet/gkc/releases gkc release for Linux]: download gkc_01 from assets.&lt;br /&gt;
* Read instructions for using gkc and examples [https://github.com/tammet/gkc/releases from the release]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* First order logic: classical stuff&lt;br /&gt;
&lt;br /&gt;
** [http://www.cs.unm.edu/~mccune/papers/robbins/ Otter solving an open problem in math]&lt;br /&gt;
** [http://www.math.md/files/qrs/v10-n1/v10-n1-(pp95-114).pdf using otter for algebra problems]&lt;br /&gt;
** [http://www.cs.miami.edu/~tptp/ TPTP problem set for first order logic formalizations]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/Zermelo%E2%80%93Fraenkel_set_theory set theory] and [http://www.cs.miami.edu/~tptp/cgi-bin/SeeTPTP?Category=Axioms&amp;amp;File=SET004-0.ax its axiomatization in logic] and [http://www.cs.miami.edu/~tptp/cgi-bin/SeeTPTP?Category=Problems&amp;amp;Domain=SET set theory problems in TPTP]&lt;br /&gt;
** [http://www.cs.miami.edu/~tptp/CASC/ CASC prover competition]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lecture 8: starting to parse natural language for interaction with rule reasoners ===&lt;br /&gt;
&lt;br /&gt;
We will start building a tiny question-answering tool, translating natural language to rule reasoner input.&lt;br /&gt;
&lt;br /&gt;
Our first, very simple goal: translate the text &amp;quot;John is a father of Pete. Pete is a father of Mark. Who is the father of Pete?&amp;quot; to &lt;br /&gt;
a rule reasoner input &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
father(john,pete).&lt;br /&gt;
father(pete,mark).&lt;br /&gt;
-father(X,pete) | ans(X).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then run the reasoner, fetch the ans(john) and give an answer &amp;quot;John is&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
You can use a trivial NLP-to-reasoner parser in python [[nlp.py]] as a starting point.&lt;br /&gt;
&lt;br /&gt;
We will then proceed to gradually make questions and sentences more complex and add rules to be able to answer them.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
We will have a look at potential tools for semantic parsing, from simpler to more complex:&lt;br /&gt;
* [https://github.com/Kitt-AI/parsetron parsetron]: a really simple and very limited tool to build your own parser.&lt;br /&gt;
* [https://github.com/wcmac/sippycup sippycup]: has a detailed [https://nbviewer.jupyter.org/github/wcmac/sippycup/tree/master/ tutorial/course] attached, check the [https://nbviewer.jupyter.org/github/wcmac/sippycup/blob/master/sippycup-unit-0.ipynb first lab] &lt;br /&gt;
* [https://github.com/mynlp/ccg2lambda ccg2lambda]: parses to classical logic strings, which are embedded in XML output.&lt;br /&gt;
&lt;br /&gt;
Other interesting things to look at:&lt;br /&gt;
* [https://framenet.icsi.berkeley.edu/fndrupal/ Framenet]: map meaning to form in English through the theory of Frame Semantics.&lt;br /&gt;
* [https://github.com/google/sling Sling]: Google project for getting facts from Wikipedia using Frame Semantics.&lt;br /&gt;
* [https://yale-lily.github.io/spider Spider]: Yale Semantic Parsing and Text-to-SQL Challenge.&lt;br /&gt;
* [https://github.com/salesforce/WikiSQL WikiSQL]: A Salesforce crowd-sourced dataset for developing NLP interfaces for relational databases.&lt;br /&gt;
* [https://github.com/allenai/allennlp Allennlp] from the [https://allenai.org/ Allen Institute for AI]. See also their [https://github.com/allenai/acl2018-semantic-parsing-tutorial semantic parsing tutorial].&lt;br /&gt;
&lt;br /&gt;
== Lecture block 5: context and uncertainty ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Lecture 9: intro to representing context and uncertainty ===&lt;br /&gt;
&lt;br /&gt;
Blocks world. &lt;br /&gt;
&lt;br /&gt;
* [http://www.ee.pdx.edu/~mperkows/May4/005.Ch11-planning.ppt Old intro: planning and blocks world]&lt;br /&gt;
&lt;br /&gt;
Some axiom sets:&lt;br /&gt;
* [[PLA001-0.ax]]&lt;br /&gt;
* [[PLA001-1.ax]]&lt;br /&gt;
&lt;br /&gt;
And some planning problems to solve from these axiom sets:&lt;br /&gt;
&lt;br /&gt;
* [[PLA004-1.p]]&lt;br /&gt;
* [[PLA005-1.p]]&lt;br /&gt;
* [[PLA019-1.p]]&lt;br /&gt;
&lt;br /&gt;
Also:&lt;br /&gt;
&lt;br /&gt;
[[blocks world axiom/query examples from lecture|Alternative axiomatization]] &lt;br /&gt;
&lt;br /&gt;
Next, starting uncertainty.&lt;br /&gt;
&lt;br /&gt;
We will first look at [http://en.wikipedia.org/wiki/Default_logic default logic].&lt;br /&gt;
&lt;br /&gt;
=== Lecture 10: various classical ideas for discrete reasoning with uncertainty ===&lt;br /&gt;
&lt;br /&gt;
We will look at some discrete ways:&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Default_logic default logic]: refresher from previous lecture.&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Circumscription_(logic) circumscription] &lt;br /&gt;
* Autoepistemic logic: long tutorial [[Media:Ijcai93.pdf|Ijcai93.pdf]]&lt;br /&gt;
&lt;br /&gt;
And start with numeric:&lt;br /&gt;
&lt;br /&gt;
* [[Media:Uncertain_prob_fuzzy.ppt‎|Uncertain_prob_fuzzy.ppt‎]] Intro to Bayesian and fuzzy reasoning.&lt;br /&gt;
* [[Notes about numerical confidence, popularity, etc measures]]&lt;br /&gt;
&lt;br /&gt;
=== Lecture 11: various classical ideas for numeric reasoning with uncertainty ===&lt;br /&gt;
&lt;br /&gt;
Classical numeric ways to reason about uncertainty:&lt;br /&gt;
&lt;br /&gt;
* [[Media:Uncertain_prob_fuzzy.ppt‎|Uncertain_prob_fuzzy.ppt‎]] Intro to both Bayesian and Fuzzy reasoning.&lt;br /&gt;
&lt;br /&gt;
Some newer approaches:&lt;br /&gt;
&lt;br /&gt;
* [[Media:Vienna_tanel_4.pdf|Vienna_tanel_4.pdf]] Additional examples and combining.&lt;br /&gt;
* [https://dtai.cs.kuleuven.be/problog/ Problog] start with a [https://dtai.cs.kuleuven.be/problog/tutorial.html tutorial]&lt;br /&gt;
&lt;br /&gt;
=== Lecture 12: seminar-kind of work on the second lab ===&lt;br /&gt;
&lt;br /&gt;
Background to start with:&lt;br /&gt;
* Take and unpack [https://github.com/tammet/gkc/releases/download/v0.1-gamma/gkc.zip gkc.zip] from [https://github.com/tammet/gkc/releases/tag/v0.1-gamma gkc release gamma]&lt;br /&gt;
&lt;br /&gt;
* Start with the example file p1.txt&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
father(john,pete).&lt;br /&gt;
&lt;br /&gt;
% either the first or a second or both facts are true:&lt;br /&gt;
father(pete,mark).&lt;br /&gt;
&lt;br /&gt;
% equivalent to (father(X,Y) &amp;amp; father(Y,Z)) =&amp;gt; grandfather(X,Z).&lt;br /&gt;
-father(X,Y) | -father(Y,Z) | grandfather(X,Z).&lt;br /&gt;
&lt;br /&gt;
-grandfather(john,X) | ans(X).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run &amp;lt;pre&amp;gt;gkc p1.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Start with the trivial NLP-to-reasoner parser in python [[nlp.py]] .&lt;br /&gt;
&lt;br /&gt;
* Our initial goal is to process the text &amp;quot;John is a father of Andrew. Andrew is a man. Who is the father of Andrew?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Reasoner example created by nlp.py]]&lt;br /&gt;
* [[Reasoner example with some rules for relatives]]&lt;br /&gt;
&lt;br /&gt;
And the examples with various ways to encode normal/abnormal cases (not really needed for lab):&lt;br /&gt;
* [[Reasoner example for being likely married]]: works out ok&lt;br /&gt;
* [[Reasoner example for birds]]: does not work out well&lt;br /&gt;
* [[Reasoner another example for birds]]: does not work out well&lt;br /&gt;
&lt;br /&gt;
Syntax and command line:&lt;br /&gt;
* gkc command line: [https://github.com/tammet/gkc gkc readme in github]: see also Examples folder for a few trivial examples.&lt;br /&gt;
* For simple clausal syntax see [https://www.mcs.anl.gov/research/projects/AR/otter/otter33.pdf  otter manual] clause syntax.&lt;br /&gt;
* For complex syntax options see [http://tptp.cs.miami.edu/TPTP/TR/TPTPTR.shtml TPTP manual]: seems to be sometimes down.&lt;br /&gt;
&lt;br /&gt;
=== Lecture 13: seminar-kind of work on the third lab ===&lt;br /&gt;
&lt;br /&gt;
Ways to get external data in addition to our own rules and data:&lt;br /&gt;
&lt;br /&gt;
* Raw data (hard to use): wikipedia, wikidata&lt;br /&gt;
* Processed raw data (a bit easier): dbpedia (processed wikipedia/wikidata)&lt;br /&gt;
* Well-formed and connected options (use one of these):&lt;br /&gt;
** [https://wordnet.princeton.edu/ wordnet]: exists in several versions, including an external [http://tptp.cs.miami.edu TPTP] version usable by the gkc reasoner, direct link to [http://tptp.cs.miami.edu/cgi-bin/SeeTPTP?Category=Axioms&amp;amp;File=NLP001+0.ax TPTP axiom NLP001+0.ax]&lt;br /&gt;
** [https://www.mpi-inf.mpg.de/departments/databases-and-information-systems/research/yago-naga/yago/ yago], connecting wikipedia with wordnet and geonames. Look at the [https://www.mpi-inf.mpg.de/departments/databases-and-information-systems/research/yago-naga/yago/downloads/ downloads section] SIMPLETAX and download [http://resources.mpi-inf.mpg.de/yago-naga/yago3.1/yagoSimpleTypes.tsv.7z yagoSimpleTypes] and [http://resources.mpi-inf.mpg.de/yago-naga/yago3.1/yagoSimpleTaxonomy.tsv.7z yagoSimpleTaxonomy].  You will need to write a program to filter and convert the yago datasets to the prover-understandable form. See [[some ideas for converting yago]].&lt;br /&gt;
&lt;br /&gt;
See [[how to run gkc on the Wordnet TPTP version]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Kursus]]&lt;/div&gt;</summary>
		<author><name>Tammet</name></author>
	</entry>
</feed>