Erinevus lehekülje "Teadmispõhise tarkvaraarenduse meetodid / Methods of Knowledge Based Software Development 2017" redaktsioonide vahel

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti
 
(ei näidata 4 kasutaja 84 vahepealset redaktsiooni)
10. rida: 10. rida:
  
 
Lab assistant:
 
Lab assistant:
* Priit Järv, priit.jarv@ttu.ee
+
* Priit Järv, priit.jarv1@ttu.ee
 +
 
 +
 
 +
 
 +
<!--
 +
= <font color="red">NB! lab at Friday, 24 is un-supervised</font> =
 +
 
 +
Unfortunately, Tanel and Priit cannot attend this Friday: Juhan will open the door so you can conduct groupwork, just not supervised regarding lab3.
 +
-->
  
 
=Past editions=
 
=Past editions=
  
[[Teadmispõhise tarkvaraarenduse meetodid / Methods of Knowledge Based Software Development - 2015|2015]], : [[Teadmisp%C3%B5hise_tarkvaraarenduse_meetodid_/_Methods_of_Knowledge_Based_Software_Development_2016|2016]]
+
[[Teadmispõhise tarkvaraarenduse meetodid / Methods of Knowledge Based Software Development - 2015|2015]], [[Teadmisp%C3%B5hise_tarkvaraarenduse_meetodid_/_Methods_of_Knowledge_Based_Software_Development_2016|2016]]
  
 
=Time, place, result=
 
=Time, place, result=
20. rida: 28. rida:
 
* Lectures: Fridays 8:00-9:30, CYB-Veenus
 
* Lectures: Fridays 8:00-9:30, CYB-Veenus
 
* Labs: Fridays 14:00-15:30, ICT-121
 
* Labs: Fridays 14:00-15:30, ICT-121
 +
 +
=Exam=
 +
 +
* 5.01.2018
 +
* 19.01.2018
 +
* 22.01.2018
  
 
= Grading =
 
= Grading =
68. rida: 82. rida:
 
* [[meedia:Iti8600_2016_3.pdf|Beyond classical search]], [[meedia:Iti8600_2016_4.pdf|Constraint solving problems]]
 
* [[meedia:Iti8600_2016_3.pdf|Beyond classical search]], [[meedia:Iti8600_2016_4.pdf|Constraint solving problems]]
  
 +
* [[meedia:Iti8600_2015_5.pdf|Adversarial search (games, minimax, alpha-beta pruning) (OLD VERSION, but content is relevant)]]
  
 
== Knowledge representation ==
 
== Knowledge representation ==
  
Block structure:
 
  
==== Intro: SQL, logic and RDF. ====
+
[[Knowledge representation homework 2017]]: first phase of building a simple [https://en.wikipedia.org/wiki/Question_answering question answering system]
  
==== Natural language and restricted natural language ====
+
Useful in-depth material for reading as free pdf-s:
 +
* [http://www.sciencedirect.com/science/book/9781558609327 Knowledge Representation and Reasoning]
 +
* [http://ii.fmph.uniba.sk/kri/KRhandbook.pdf Handbook of Knowledge Representation]
 +
* Interesting to browse: [http://www.aaai.org/Library/KR/kr12contents.php recent conference proceedings]
 +
* Interesting to browse: [http://www.cse.buffalo.edu/~shapiro/Courses/CSE563/Slides/krrSlides.pdf course materials], [http://web.stanford.edu/class/cs227/ course materials], [http://www.dis.uniroma1.it/~rosati/krst/ course materials]
 +
* [http://cs.stanford.edu/~ermon/cs228/index.html course on probabilistic graphical models]
 +
* [http://research.google.com/pubs/NaturalLanguageProcessing.html Google natural language processing publications]
  
==== Natural language and representing uncertain knowledge ====
+
Three subthemes in four lectures:
 +
 
 +
==== Intro, SQL, logic, RDF  ====
 +
 
 +
Read these:
 +
* First the [[meedia:Kr_lect_1a.ppt|Lecture presentation]]
 +
* Second, the first half of the [https://www.w3.org/TR/2014/NOTE-rdf11-primer-20140624/ RDF primer]
 +
* It is also useful to understand [https://en.wikipedia.org/wiki/Uniform_Resource_Identifier what URI is]
 +
 
 +
Then read:
 +
* [[meedia:Kr_lect_2a.ppt|Second lecture presentation: RDFS and more]]
 +
* [https://en.wikipedia.org/wiki/Social_graph Facebook social graph]
 +
* [https://en.wikipedia.org/wiki/Facebook_Graph_Search Facebook Graph Search]
 +
* [https://en.wikipedia.org/wiki/Knowledge_Graph Google knowledge graph]
 +
* And explore [http://schema.org/ schema org] and [http://schema.org/docs/schemas.html schemas]
 +
 
 +
==== Natural language ====
 +
 
 +
* First the [[meedia:Kr_lect_3a.ppt|Lecture presentation]]
 +
 
 +
We have a separate page with useful [https://courses.cs.ttu.ee/pages/Useful_NLP_links_and_notes links and notes on NLP]
 +
 
 +
Also, try out and have a brief look at:
 +
* Try out a very good [https://gate.d5.mpi-inf.mpg.de/webaida/ NER tagger AIDA online]. See also [http://jhoff.de/wp-content/papercite-data/pdf/hoffart-2015wk.pdf the dissertation] explaining how AIDA is built.
 +
* Try out [http://smile-pos.appspot.com/ part-of-speech tagger]
 +
* Have a quick look at Google [https://research.googleblog.com/2016/05/announcing-syntaxnet-worlds-most.html syntaxnet]
 +
* Have a look at the excellent [http://www.nltk.org/book/ NLTK toolkit tutorial]
 +
* Have a look at a tutorial for [http://www.lsi.upc.edu/~ageno/anlp/semanticParsing.pdf semantic parsing]
 +
* Try out [http://text-processing.com/demo/sentiment/ sentiment analysis online]
 +
* Have a brief look at a [https://lct-master.org/files/MullenSentimentCourseSlides.pdf detailed sentiment analysis tutorial]
 +
 
 +
There is a large detailed page with [https://github.com/Kyubyong/nlp_tasks useful links on various NLP tasks].
  
 
==== Representing uncertain knowledge  ====
 
==== Representing uncertain knowledge  ====
  
 +
Lecture material:
 +
* [[Media:Kr_lect_4a.pptx| Main part of the uncertainty lecture: beginning and end]] or as [[Media:Kr_lect_4a.pdf| pdf]]
 +
* [[Media:Uncertain_prob_fuzzy.ppt|Probabilistic and fuzzy reasoning]] used during the middle part of the lecture.
 +
 +
Additional material:
 +
 +
* [http://en.wikipedia.org/wiki/Default_logic default logic Wikipedia on default logic]: must read to understand the subject better
 +
* Try out [http://tweetyproject.org/w/delp/index.html a small nonmonotonic reasoning example]
 +
* [[Media:Ijcai93.pdf|Formalizing belief and knowledge]] highly recommended, but not covered in the lecture.
 +
* [https://www.analyticsvidhya.com/blog/2016/06/bayesian-statistics-beginners-simple-english/ Bayesian inference] recommended if you want to understand Bayesian probabilistic inference
 +
* [http://plato.stanford.edu/entries/logic-nonmonotonic/ nonmonotonic logic]: long intro to main concepts
 +
 +
You may want to try out the [http://www.dlvsystem.com dlv system] for [https://en.wikipedia.org/wiki/Answer_set_programming answer set programming]: usable for implementing default logic.
  
 +
Just found a cool project with java libraries [http://tweetyproject.org/ for different kinds of KR and reasoners].
  
 
== Reasoning and deduction ==
 
== Reasoning and deduction ==
  
Block structure:
+
[[Automated reasoning homework 2017]]: second phase of building a simple [https://en.wikipedia.org/wiki/Question_answering question answering system]
 +
 
 +
<b>Deadline 1. december.</b>
 +
 
 +
<!--
 +
Homework defence deadline: 1. December. No presentations accepted after 8. December.
 +
-->
 +
 
 +
Useful books for reading:
 +
* T.Tamme, T.Tammet, R.Prank.  [http://dspace.utlib.ee/dspace/bitstream/handle/10062/24397/9985562313.pdf Loogika: mõtlemisest tõestamiseni. TÜ Kirjastus, 2002]
 +
* [http://www.cs.miami.edu/home/geoff/Courses/CSC648-12S/Content/ coursebook by Geoff] or older version as [http://www.lambda.ee/w/images/0/06/Geoffreasoningnotes.pdf pdf]
 +
 
 +
Test and compare simple propositional solver algorithms:
 +
* [http://logictools.org logictools.org]
 +
 
 +
Subthemes:
 +
 
 +
==== Machine reasoning with first order logic ====
 +
 
 +
[[Media:Kr_lect_5a.pptx| Lecture material as ppt]] or as [[Media:Kr_lect_5a.pdf| pdf]]
  
 +
Additional material:
  
==== First order logic solvers ====
+
<!-- * [http://logictools.org/predicate.html one page about predicate logic provers] -->
 +
<!-- * [[Media:Resolution_intro.ppt|into for prop case]] -->
 +
* [https://en.wikipedia.org/wiki/Resolution_%28logic%29 wiki intro to resolution]
 +
* Fields of [https://en.wikipedia.org/wiki/Automated_reasoning automated reasoning] and [https://en.wikipedia.org/wiki/Automated_theorem_proving automated theorem proving] in wikipedia.
 +
* [http://www.cs.miami.edu/home/geoff/Courses/CSC648-12S/Content/ coursebook by Geoff]
 +
<!-- * [[Media:Geoffreasoningnotes.pdf|a book by Geoff]] created from course notes: best content IMHO despite weird formatting. -->
 +
* [https://www.cs.unm.edu/~mccune/mace2/ Otter by McCune]: use it for experimenting.
 +
* [[tiny examples of problems for otter]]
 +
* [http://www.cs.miami.edu/~tptp/CASC/ CASC competition] and the [http://www.cs.miami.edu/~tptp/ TPTP problem library] and [http://www.cs.miami.edu/~tptp/cgi-bin/SeeTPTP?Category=Problems TPTP problem domains]
 +
<!--
 +
* [http://lambda.ee/wiki/Prax3:_t%C3%B5estajatega_eksperimenteerimine_2015 hints for Otter]
 +
* [http://lambda.ee/wiki/Prax4:_induktiivne_t%C3%B5estus_2015 inductive proof]
 +
-->
  
 
==== Propositional solvers ====
 
==== Propositional solvers ====
 +
 +
Main material consists of several parts:
 +
 +
* Read the intro - what is first order (FOL) , propositional (SAT) and satisfiability modulo theories (SMT) - and milestones from [[Media:nbjorner_smt.pptx| Nikolaj Bjorner's lecture]]
 +
* Read the explanation of the DPLL method from [[Media:dpll.ppt| the dpll lecture]] by Agostini and Giunchiglia.
 +
* Read the [http://logictools.org/propositional.html overview of basic propositional logc solving methods ]
 +
* Use http://logictools.org/ to experiment with random problems of various sizes and solver algorithms
 +
 +
Additionally you may want to look at:
 +
 +
* [https://en.wikipedia.org/wiki/DPLL_algorithm DPLL in wikipedia]
 +
* [http://www.satcompetition.org/ regular sat prover competition]
 +
* http://minisat.se/
 +
 +
==== Real and potential applications of reasoners ====
 +
 +
[[Media:Kr_lect_7a.pptx| Lecture material as ppt]] or as [[Media:Kr_lect_7a.pdf| pdf]]
 +
 +
Additionally you may want to look at (links from the presentation above):
 +
* First order logic: classical stuff
 +
** [http://www.cs.unm.edu/~mccune/papers/robbins/ Otter solving an open problem in math]
 +
** [http://www.math.md/files/qrs/v10-n1/v10-n1-(pp95-114).pdf using otter for algebra problems]
 +
** [http://www.cs.miami.edu/~tptp/ TPTP problem set for first order logic formalizations]
 +
** [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&File=SET004-0.ax its axiomatization in logic] and [http://www.cs.miami.edu/~tptp/cgi-bin/SeeTPTP?Category=Problems&Domain=SET set theory problems in TPTP]
 +
** [http://www.cs.miami.edu/~tptp/CASC/ CASC prover competition]
 +
 +
* Logic and NLP: several approaches
 +
** [https://nlp.stanford.edu/projects/natlog.shtml Natural logic for NLP at Stanford]
 +
** [https://www.google.ee/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwi50JeA0MXXAhUGQJoKHc7SB-4QFggwMAE&url=http%3A%2F%2Fresources.mpi-inf.mpg.de%2Fdepartments%2Frg1%2Fconferences%2Fdeduction08%2Fslides%2Fpelzer-bjoern.ppt&usg=AOvVaw062mOKPtvUioiuqURAvAjE logical reasoning and  NLP]
 +
** [https://www.google.ee/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwi50JeA0MXXAhUGQJoKHc7SB-4QFggpMAA&url=https%3A%2F%2Fwww.semanticscholar.org%2Fpaper%2FCombining-Theorem-Proving-with-Natural-Language-Pr-Pelzer-Gl%25C3%25B6ckner%2F023ef392512725aaee5b2a15ae0e73f6ee066168&usg=AOvVaw0VIrM_YDaRK_HjWpjY-Tgz combining theorem proving with NLP]
 +
** [http://www.nltk.org/howto/inference.html Inference in NLTK]
 +
 +
* Annotated examples of text and sentence derivable from text:
 +
** [https://nlp.stanford.edu/~wcmac/downloads/fracas.xml Classical FRACAS example set]
 +
** [https://tac.nist.gov/data/RTE/index.html Newer RTE example sets]
 +
** [https://rajpurkar.github.io/SQuAD-explorer/ Stanford Question Answering Dataset]
  
 
==== SMT solvers ====
 
==== SMT solvers ====
 +
 +
Juhan will give a lecture about SMT solvers and applications: the main family of tools for automated verification.
 +
 +
* [https://en.wikipedia.org/wiki/Satisfiability_modulo_theories Intro to SMT from wikipedia]
 +
* [http://fm.csl.sri.com/SSFT11/lecture1.pdf SMT tutorial slides] (8 first slides were shown in the lecture) [https://leodemoura.github.io/files/mit2011.pdf alternative slides]
 +
* [https://cs.ttu.ee/staff/juhan/z3 Z3 tutorial in Python, links to binaries etc] as compiled by Juhan Ernits.
 +
* The official binary releases of Z3 now include Java support. The example is available [https://github.com/Z3Prover/z3/tree/master/examples/java here].
 +
* The sample code built during the lecture is available in Moodle.
 +
 +
== Learning ==
 +
[[Media:Lecture_1_ML_MKBSD_2017.pdf|Lecture_1_ML_MKBSD_2017.pdf]]
 +
 +
[[Media:Lecture_2_ML_MKBSD_2017.pdf|Lecture_2_ML_MKBSD_2017.pdf]]
 +
 +
[[Media:ML_HomeAssignment_2017.pdf|ML_HomeAssignment_2017.pdf]] 
 +
 +
[[Media:Lecture_3_ML_MKBSD_2017.pdf|Lecture_3_ML_MKBSD_2017.pdf]]
 +
 +
[[Media:Lecture_4_ML_MKBSD_2017.pdf|Lecture_4_ML_MKBSD_2017.pdf]]
 +
<!--
 +
==== Interesting to try out: ====
 +
 +
*[http://www.dlvsystem.com dlv system] for [https://en.wikipedia.org/wiki/Answer_set_programming answer set programming]: usable for implementing default logic
 +
Things we looked at before:
 +
 +
* [[Media:Uncertain_prob_fuzzy.ppt‎|Uncertain_prob_fuzzy.ppt‎]] Intro to probabilistic and fuzzy logic.
 +
* [[Media:Vienna_tanel.pdf|Vienna_tanel_2.pdf]] Additional examples and combining.
 +
-->

Viimane redaktsioon: 4. jaanuar 2018, kell 14:43

Course code: ITI8600 (Ainekaart eesti keeles ITI8600)

Language: The default language of the course is English, but if all students understand Estonian, it will be in Estonian.

Lecturers:

  • Tanel Tammet, tanel.tammet@ttu.ee, 6203457, TTÜ ICT-426 (handles ÕIS registrations)
  • Juhan Ernits, juhan.ernits@ttu.ee, 6202326, TTÜ ICT-428
  • Sven Nõmm, sven.nomm@ttu.ee, TTÜ ICT-424

Lab assistant:

  • Priit Järv, priit.jarv1@ttu.ee



Past editions

2015, 2016

Time, place, result

  • Lectures: Fridays 8:00-9:30, CYB-Veenus
  • Labs: Fridays 14:00-15:30, ICT-121

Exam

  • 5.01.2018
  • 19.01.2018
  • 22.01.2018

Grading

The final grade will be based on 40% of points from homework assignments and 60% of the result of an exam.

There will be four homework assignments, one for each block. Assignments will give up to 10 points each. In order to successfully pass the course, at least three homeworks must be successfully defended.

Homeworks can be done alone or in pairs. Pairs will be formed randomly by the lecturers, separately for each homework. As said, you can always opt to do it alone.

Homework has to be presented during lab time to the lecturer on site: email submissions are not accepted. Both pair members must be present during presentation: in case one of them is not present, the homework of the missing person is not considered to be defended. It is also not guaranteed that both pair members get the same grade.

The homeworks have to be submitted to the university git and then defended: git details will be presented later by Juhan.

Homework deadline policy:

  • Defended code must be submitted for defence latest one date before the defence deadline (example: defence deadline 22. Sept, submission 21. Sept).
  • In case the homework is defended in time, you have one extra week to add missing details/improvements without losing points.
  • In case the homework is not defended in time, you have two extra weeks to defend it, but in this case you will get only half the points.
  • No homeworks are accepted after the two extra weeks after the deadline have passed.
  • In order to be accepted to exam you have to successfully defend at least three of the four homeworks.

Grades and additional homework info available at https://ained.ttu.ee

Materials for search algorithms

The search algorithms block was based on the following chapters from the book Artificial Intelligence, a Modern Approach, 3rd Edition, by Stewart Russell and Peter Norvig. (The book is available in TUT library as [1] and [2]):

  • Chapter 3: Solving problems by searching
  • Chapter 4: Beyond classical search
  • Chapter 5: Adversarial search
  • Chapter 6: Constraint satisfaction problems

In particular, it will be necessary to be able to choose best methods from the ones mentioned in those chapters for solving particular problems. In addition it is necessary to be able to charachterize the properties of these approaches in terms of relevant criteria (branching factor, time complexity, space complexity, completeness).

Course structure

The course will consist of four interconnected blocks covering crucial areas of the subject:

Search algorithms

Homework is available in Moodle. To log in you will need to use your TUT e-mail account in Office 365. You need to form groups yourself and create a repository named iti8600hw1 at Gitlab.cs.ttu.ee. The visibility needs to be "private" and the project should only be shared with the other group member. Access to staff will be granted automatically. Deadline of submission to Gtilab: September 29.

Knowledge representation

Knowledge representation homework 2017: first phase of building a simple question answering system

Useful in-depth material for reading as free pdf-s:

Three subthemes in four lectures:

Intro, SQL, logic, RDF

Read these:

Then read:

Natural language

We have a separate page with useful links and notes on NLP

Also, try out and have a brief look at:

There is a large detailed page with useful links on various NLP tasks.

Representing uncertain knowledge

Lecture material:

Additional material:

You may want to try out the dlv system for answer set programming: usable for implementing default logic.

Just found a cool project with java libraries for different kinds of KR and reasoners.

Reasoning and deduction

Automated reasoning homework 2017: second phase of building a simple question answering system

Deadline 1. december.


Useful books for reading:

Test and compare simple propositional solver algorithms:

Subthemes:

Machine reasoning with first order logic

Lecture material as ppt or as pdf

Additional material:

Propositional solvers

Main material consists of several parts:

Additionally you may want to look at:

Real and potential applications of reasoners

Lecture material as ppt or as pdf

Additionally you may want to look at (links from the presentation above):

SMT solvers

Juhan will give a lecture about SMT solvers and applications: the main family of tools for automated verification.

Learning

Lecture_1_ML_MKBSD_2017.pdf

Lecture_2_ML_MKBSD_2017.pdf

ML_HomeAssignment_2017.pdf

Lecture_3_ML_MKBSD_2017.pdf

Lecture_4_ML_MKBSD_2017.pdf