Due: 12:30 p.m., Wednesday 18 January 2012.
Consider the language with constant symbols , and , predicate symbols , and , and the knowledge base that consists of the clauses:
How many interpretations are there where ?
Give a model of . You must specify and .
Give an interpretation with the same domain that isn’t a model of . You must specify and .
Give three atoms that are logical consequences of the knowledge base.
Give three atoms that are not logical consequences of the knowledge base.
How many models of are there where ?
For this question you should use AILog (see http://artint.info/code/ailog/ailog_man.html).
Consider the domain of house plumbing represented in the diagram of Figure 1.
In this example, constants , and denote cold water pipes. is the pipe coming in from the main water supply. Constants and represent hot water pipes (coming out from the hot water system). Constants , , and denote taps and , and denote drainage pipes. The constants denotes a shower, denotes a bath, denotes a sink, denotes a hot water system, and denotes the floor. Figure 1 is intended to give the denotation for the constant symbols.
Suppose we have as predicate symbols:
, where is true if pipe has mains pressure in it. is always pressurised. Other pipes are pressurised if they are connected to a pressurised pipe through an open tap.
, where is true if tap is on.
, where is true if tap is off.
, where is true if is wet.
, where is true if water is flowing through .
, where is true if is either a sink or a bath and has the plug in.
, where is true if is either a sink or a bath and doesn’t have the plug in.
The file plumbingbuggy.ailogcontains an AILog axiomatization for the case where tap is on, is on, is off, is off, is off, and is on. There is a plug in the sink, but not in the bath. (This has been formatted to be unreadable, but you don’t need to be able to read the program, or know how it is implemented, to be able to debug it.)
Unfortunately there is a bug in the program. We know this because we can prove that the floor is wet, even though it isn’t wet in the intended interpretation. Using AILog, your goal is to find a clause that is false in the intended interpretation, using just the intended interpretation of the symbols.
You need to hand in a trace of the AILog session, and show clearly which is the buggy rule.
In this question, you are to write a definite clause knowledge base for the design of custom video presentations.
Assume that the video is annotated using the relation
where is an identifier for the segment. (In a real application this will be enough information to extract the video segment). is the time of the segment (in seconds). is a list of topics covered by the video segment. An example of a video annotation is the database
Axiomatize a predicate
that is true if is a presentation whose total running time is less than or equal to seconds, such that all of the topics in the list are covered by a segment in the presentation. The aim of this predicate is to design presentations that cover a certain number of topics within a time limit.
For example, the query
Give the intended interpretation of all symbols used and demonstrate that you have tested your axiomatization (including finding all answers to your query) in ailog or Prolog. Explain briefly why each answer is correct.
Optional: (for those who have done logic programming before). Write a program that gives the best presentation. Note that this first requires a specification of when one presentation is better than another.
Assuming you have a good user interface and a way to actually view the presentations, list three things that the preceding program does not do that you may want in such a presentation system. (There is no correct answer for this part. You must be creative to get full marks).
How long did the assignment take? What did you learn? Was it reasonable? What suggestions do you have to improve the assignment?