Teadmiste formaliseerimine: erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
74. rida: 74. rida:
=== First lab ===
=== First lab ===


Please read about [[KR 2020 homework part 1: overall task|the task for the first lab]]. Deadline: 28. February. It is better to present it earlier to
Please read about [[KR 2020 homework part 1|the task for the first lab]]. Deadline: 28. February. It is better to present it earlier to
have more time for the following labs.
have more time for the following labs.



Redaktsioon: 31. jaanuar 2020, kell 08:33

teadmised
teadmised

Name: Knowlege representation
Code: ITI8700
Link: http://lambda.ee/Teadmiste_formaliseerimine
Lecturer: Tanel Tammet
Practice work: Priit Järv
Contact: tanel.tammet@ttu.ee, 6203457, TTÜ ICT-426
Archives of previous years: 2019.

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 introducin 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


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.

First, read the explanation of the overall task for the 2020 course overall task for the recent 2019 course. The following labs are steps on the path to the end goal.

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 actually answering simple questions using logic and a small set of rules you write and a reasoner.

We use a special commonsense reasoning branch of the gkc prover 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, not logic. Details and instructions will appear here later.

Block 1: knowledge in the SQL and document databases and hybrids.

Lecture: Overview of the course. Knowledge in SQL, Background and basics: SQL, logic, NLP

Lecture materials:

Lecture: RDF and RDFS (and OWL)

Lecture materials:

Block 2: simple facts and rules in symbolic AI and logic

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:

Lecture 6: Big annotation systems and intro to rule reasoners

First, big annotation systems:

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:

Lecture: vector representation of words

This lecture will be given by Priit Järv.

Lecture materials:

Useful additional materials from (roughly) easier to more complex:

Probabilistic models:

Also interesting to read:


Block 5: reasoners and symbolic question answering

Intro to rule reasoners:

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:

Alternative axiomatization

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:

Other interesting things to look at:

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:

And start with numeric:

Lecture: various classical ideas for numeric reasoning with uncertainty

Classical numeric ways to reason about uncertainty:

Some newer approaches:


Block 7: context, time, location, events, causality.