Teadmiste formaliseerimine: erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
176. rida: 176. rida:


* Official w3c [https://www.w3.org/TR/rdf11-primer/ rdf and rdfs primer] <font color="red">E2</font>
* Official w3c [https://www.w3.org/TR/rdf11-primer/ rdf and rdfs primer] <font color="red">E2</font>
* Official w3c [https://www.w3.org/TR/2012/REC-owl2-primer-20121211/ owl primer] but it is better to look at this [https://www.semantic-web-book.org/w/images/b/b0/KI09-OWL-Rules-1.pdf intro presentation]
* Official w3c [https://www.w3.org/TR/2012/REC-owl2-primer-20121211/ owl primer] but it is better to look at this [https://www.semantic-web-book.org/w/images/b/b0/KI09-OWL-Rules-1.pdf intro presentation] and continue with [https://www.semantic-web-book.org/w/images/5/5e/KI09-OWL-Rules-2.pdf the owl rules presentation]


More resources:
More resources:

Redaktsioon: 11. veebruar 2021, kell 13:08

teadmised
teadmised

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


Time, place, result

Lectures: Thursday 14:00-15:30 initially online, later (if all goes well) room U06-229
Practical work: Thursday 16:00-17:30 initially online, later (if all goes well) same room U06-229
Practical work will give 40%, weekly tasks 10% and exam 50% of points underlying the final grade. The exam will consist of several small excercises.

To finish the course successfully, you need to

  • successfully pass all the practical works
  • receive at least 1/3 of the max points at exam
  • get practice work + weekly tasks + exam at least 50% points altogehter.

Links and web pages for lectures, practice, grades

Please join the teams site for the course, for this you may need the team code: ifm14d1

The links to saved lecture videos are visible among the materials of corresponding lectures below.

NB! In case you run into trouble (cannot join or no sound etc) please write via fb messenger or email tanel.tammet at taltech.ee.

There is also a site for grades registration code 4bFHBTrq. For some time there will be no grades there.

Weekly tasks

These are small tasks you have to report weekly, either by email or by uploading your material.

Teise nädala ülesanne (4. veebruari loengu järel) on eksperimenteerida veidi logictools.org saidiga ja teha ise läbi loengus toodud näited SQL data ja päringute esitamisest loogikas.

Konkreetselt tee järgmist:

  • Eksperimenteeri veidi logictools.org "simple examples" valikuboksi näidetega basic ... equality, loe nende selgitusi ja püüa aru saada tõestustest.
  • Loe seejuures predikaatloogika väikest seletust about lehel kuni lausearvutuseni (seda pole enam otse vaja lugeda).
  • Kirjuta ise valmis näide vastavalt kursuse materjali Background: sql, logic, NLP lehekülgedele 20-22, kus on toodud ühe client tabeliga ja client ning cars tabelitega näide sql päringute teisendamisest loogikasse (üks lihtne select ja üks join). Tee need näited reaalselt valmis nii, et logictools.org sööb nad sisse ja annab ootuspärase vastuse. Seejuures on sul vaja kasutada $ans predikaati, nagu "answers" näites toodud. Kui tahad mitut vastust (ei ole kohustuslik), siis vaata ka "multiple answers" näidet.
  • Saada näite-sisendid ja genereeritud tõestused õppejõule emailiga. Kui jääd nendega hätta, siis kirjuta, mida proovisid, too oma näite tekst ja selgita, mille juures hätta jäid (see on ka arvestatav tulemus). Kirjuta aadressile tanel.tammet at taltech.ee ja pane pealkirja sisse mh sõna "formaliseerimine", et kirja kergesti üles leiaks.

NB!

  • Negatiivset arvu sa logictoolsi vaikimisi süntaksiga otse sisestada ei saa: -200 interpreteeritakse kui loogilise eituse rakendamist 200-le. Kaks head võimalust negatiivse arvu sisestamiseks on kas kirjutada 0-200 või $difference(0,200).
  • Väiksem-tingimuse jaoks vaata complex examples valikuboksis "arithmetic" näidet.

Practical work

There are three labs. They are all steps in a single project: build a simple natural-language question-answering system a la Watson.

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 or three 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.

The first lab is already updated for 2021. The second and third labs down here are examples from 2020 and will be updated in February.

First lab

Please read about the task for the first lab.

Second lab: example from 2020, will be updated

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.

See Details of the KR second lab in 2020

Third lab: example from 2020, will be updated

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 and the full system should be able to answer the questions.

See Details of the KR third lab in 2020

Contents

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 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.
  • More about 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 book chapter pages 297-345 by Tanel Tammet and optionally more details from tge the set of course notes from Geoff Sutcliffe.
  • You may want to get a small intro to Prolog by reading the first 100 pages of a classic Art of Prolog book: pdf is freely downloadable under the "Open Access" tab. It is not strictly necessary for the course (we will not be using Prolog) but it surely helps. Besides, the book is interesting, quite easy to read and works out a lot of interesting examples.


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.

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

Lecture: Intro and background, 28. Jan

The first lecture should be visible here.

Lecture materials:

Lecture: Nosql, json and rdf in databases. 4. Feb

The lecture should be visible here.

Lecture materials:

as logic"

These materials will be taken up in the next lecture:

See also

The small homework will be about trying out small things in logic: please try out logictools from "basics" to "equality" in simple examples selectbox.

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

Lecture: simple rules in rdfs, logic and owl. 11. Feb

Have a brief a look of these, no need to read thoroughly:

More resources:

Lecture: rules in logic with provers to answer questions, 18. Feb

These should be looked at in parallel:

Lecture: what the reasoner does, 25. Feb

We will look in detail into the same presentation:

and will explain details of the second practice work.

Block 3: General-knowledge databases

Lecture: looking into main large knowledge bases. 6. March

E2: you can search/investigate what kind of data is available and you can find out actual data from these databases with some work, by surfing on the web pages of the systems.

We will have a look at the goals, main content and differences between:

Lecture 6: Big annotation systems. 13. March.

First, big annotation systems:

Importantly, see also:

Block 4: natural language and question answering

Lecture 7: Intro to NLP. 20 March and the following self-study week

A lot of reading this week. The main material is in the following chapters 25 and 26 of the Jurafsky and Manning book, the rest is relevant overviews/background. Lecture materials for the week:

Not obligatory, but highly recommended:

Lecture 8: vector representation of words. 27 March and the following self-study week

Now, you may have had a course on NLP and machine learning, in which case you should already know a lot about vector semantics. If so, consider yourself lucky :) and just skim through the following materials to check whether there are any new things or old friends for you. If not so, consider yourself extra lucky: you have come to the core of machine-learning-based NLP, and this is both pretty cool and quite understandable at the same time! Most of the machine-learning-based NLP is built on top of the ideas of vector representation of words.

Obligatory study materials:

Additional supporting non-obligatory materials from (roughly) easier to more complex:


Also interesting to look and read:

Block 5: More about semantic parsing. symbolic question answering and reasoners

Lecture 9: supporting materials for the third practical work: 3. April and the following week.

Please first listen and read in this order:

You may want to have a look at the AllenAI tutorial

Additionally you may want to read some papers about semantic parsing:

  • Read a paper about building a semantic parser in a relatively simple way.
  • Another paper about semantic parsing

There is an interesting specific method for semantic parsing, called AMR, worth having a brief look into:

There is a very good fairly deep NLP-and-commonsense series of podcasts and other interesting stuff from the Allen Institute for AI:


Lecture 10: planning, frame problem, open/closed world and the blocks world: 17 april and the following week

This week is about planning and the frame problem. The standard example for these is a blocks world: some blocks are on the table and the robot arm can lift single blocks and put them on other blocks or on the table. The arm cannot lift several blocks or a tower of blocks. Then, given a position of blocks at initial situation, can the robot arm create a required new position of blocks? Can we get the steps required? For getting the steps we use the $ans predicate.

One hard issue arising is that how do we know that doing some action like lifting a block does not create side effects like stumbling existing towers, moving other blocks etc? This issue is called the frame problem and it has no easy solutions.

Importantly, the frame problem arises since normal first order logic has

  • the open world assumption E1 (must read): if we do not have (and cannot derive) a positive fact like P(a) and neither a negative fact like -P(a), we assume we simply do not know which holds.

Prolog and databases operate under the

  • closed world assumption E1 (must read): if we do not have (and cannot derive) a positive fact like P(a), we automatically assume that -P(a) must be true. For example, Prolog "negation" really means "cannot prove". One consequence of this assumption is that we cannot represent real negation and disjunction in an OK manner (Prolog does not contain these) and cannot satisfactorily speak about "true", "false" and "unknown". See also negation as failure in prolog


Please look at and read these materials about the frame problem:

These two readings are optional:

  • frame problem at the Stanford Encyclopedia of philosophy: not obligatory, but a good read to get a better understanding.
  • another classic about frame problem: read this only if you became really really interested about the whole issue: it goes quite deep, although it is not especially technical.

Next, importantly, you should experiment yourself with gkc and both of the following files. Please copy and read the files and understand the encoding. At the end of the files are several queries to experiment with: instructions are also there.

In both of them the predicate holds(X,Y) is used to describe something X about the blocks world (like, one block is on another or robot holds some block) and the second argument Y describes the state we have arrived to via robot actions from the original state (like, picked up a block in the initial state and then did put the block down on top of another).

To get a simple visualization of the blocks world, have a look at


NB!Please email me tanel.tammet at taltech.ee a short description of (a) with which of the queries in the files were you successful and how long did they approximately take, (b) what queries did you invent yourself and what happened with these. Please put a word "formaliseerimine" into the email subject so I can easily find them.


Block 6: confidence and relevance

Lecture 11: reasoning with uncertainty: discrete reasoning options: 24 april and the following week

Almost all the knowledge we have is uncertain: there are many exceptions to a rule or a fact/rule holds with some vague probability. Notice that, in contrast, typical databases in companies contain facts with very high certainty, but they do not contain rule or commonsense knowledge: the latter is built into brittle software code of systems using these databases.

We will consider two different ways to tackle uncertainty:

  • Discrete methods: no numbers used. Instead, uncertainty is described as exceptions or beliefs of people.
  • Numeric methods: uncertainty is estimated with probability-like numbers of various kinds.

NB! Both of these ways are hard to actually implement, neither have they been understood very well, despite an immense amount of research and papers. For example, typical machine learning methods operate with extremely vague probability-like numbers and do not attempt to put these numbers into a real properly-theoretical-and-correct probabilities framework.

This week is devoted to discrete methods: we will focus on numeric methods next week.

Roughly said, there are three kinds of discrete methods:

  • Exceptions to rules. The main method is called default logic. E1 Read carefully!. Another, less popular method is circumscription (skim through, careful reading not needed). The main classical example for default logic is "birds normally fly": bird(X) & [we fail to prove -flies(X)] => flies(X). In other words, a rule is blocked, if we manage to prove that a negation of the rule-derived fact can be proved. Say we have
    • bird(tweety)
    • penguin(pengu)
    • (bird(X) & [we fail to prove -flies(X)]) => flies(X)
    • penguin(X) => -flies(X)
Then we can derive -flies(pengu) and flies(tweety) but we cannot derive flies(pengu), since it is blocked by -flies(pengu) which we could derive. In the wikipedia page above the "justification P" really means "we fail to prove -P".
Et asjadest paremini aru saada, vaata lisaks veidi põhjalikumat eranditega järeldamise tutoriali E2
Esimest järku loogikas ei ole üldjuhul võimalik välja rehkendada, et mingi asi ei ole järelduv. Lausearvutuses samas on. Sestap on olemas selline tore valdkond nagu answer set programming, E2 kus esimest järku muutujatega valem teisendatakse lausearvutuseks, tekitades muutujatega reeglitest hästi palju konstante sisaldavaid reegleid. Siis muutuvad blokkerite arvutamised võimalikuks. Samas ei ole see lausearvutuseks-teisendamine mittetriviaalsetel juhtudel võimalik. Üks paremaid süsteeme seal on DLV (DLV wikis), vaata tutorialit ja DLV manuaali Chapter 4. Queries: siin on näha erinevaid default reasoningu variante.
Teine oluline küsimus eranditega reeglite puhul on nende prioriteedid: kui kaks reeglit üksteist blokivad, kas mõnel peaks olema kõrgem prioriteet? Näiteks, "materiaalsed asjad üldiselt ei lenda", "linnud on materiaalsed asjad", "linnud üldiselt lendavad", "pingiviinid on linnud", "pingviinid üldiselt ei lenda". Siin paistab, et taksonoomias allpool olevaid asju kirjeldavad reeglid võiks olla kõrgema prioriteediga kui ülalpool asju kirjeldavad reeglid. Samas "Nixoni kolmnurga" näites "vabariiklased ei ole patsifistid", "kveekerid on patsifistid", "Nixon korraga vabariiklane ja kveeker" oleks loomulik mõelda, et esimesed kaks default reeglit Nixoni jaoks blokeeruvadki ja me ei saa järelda, et Nixon on patsifist, ega ka seda, et ta ei ole patsifist. Prioriteetide teema kohta võib vaadata täeindavalt seda artiklit või seda sarnast artiklit.
  • Describing beliefs of various actors. This builds upon modal logic (see intro presentation E2 to understand the basics) and the main method is (auto)epistemic logic: the logic for encoding who knows or believes what. See the long tutorial as an easily read text E1 and additionally tutorial slides Ijcai93.pdf by the same authors to accompany the long text. Read carefully, starting with the long text and also looking at slides at the side.
  • Multi-valued logics with belief degrees (a la "very unlikely", "very likely") at different intervals. We will not look into these: we'll investigate the numeric methods instead. Have a very brief look at the wikipedia.

NB! None of these methods are really used in any kinds of practical systems: they are hard to efficiently implement and they are not understood well enough in practical settings.

Lecture 12: numeric reasoning with uncertainty: 8 May and the following week

The main material for reading is an overview-followed-in-depth by the lecturer Numeric uncertainty: (E1 up to and including the chapter 4, see also E2 tags inside)

  • Read carefully up to and including the chapter 4 "Different ways to encode confidences in logic" and have a quick look at all the wikipedia links.
  • Skim through the later parts and look only into these subchapters which you found interesting.

Next, skim through the arXiv preprint of the recent paper:

Next, have a brief look at a good example system doing some specific kinds of probability reasoning:

Finally some additional possibly helpful material considering some parts of the main Numeric uncertainty material.



Teadmiste formaliseerimise eksamiülesanded 20 mai 2020 Teadmiste formaliseerimise eksamiülesanded 27 mai 2020