Advanced Module : Knowledge Representation
• Reference: EMCL-A-KR
• Courses:
KRRS - Knowledge Representation and Reasoning Systems
SP - Stream Processing
CGT - Computational Game Theory
• Requirements:
To obtain the 12 crs of the module, students should obtain 6 crs in the KRRS course and 6 crs in one of the other two courses.
• Description:
This module addresses aspects of knowledge and data systems, with an emphasis on (but not limited to) logic-related approaches for representing and processing knowledge. It includes foundations, regarding both semantics and computation, representation formalisms and reasoning methods, tools, and application areas.
More specifically, the foundational side addresses predicate logic for knowledge representation, logic for databases, knowledge base design, and specific issues like update and change of knowledge. Important representation formalisms for the agenda are logic programs with negation, ontology languages, action languages, and logic-based agents, which are considered with their mathematical properties. Regarding inference, methods like deduction, common-sense reasoning (abduction, hypothetical reasoning etc), or non-monotonic reasoning in general are addressed. On the practical side, tools and methods for problem solving such as Answer Set Programming or SAT/Quantified Boolean Formula solving are covered. Areas like Multi-Agent Systems, Information Systems or the Web serve to embed the theoretical concepts into applications.
The main objective is that upon completion of this module, students have a detailed understanding of how knowledge is formalized and processed in Artificial Intelligence using logic-related approaches, and of problems and issues that have to be respected. They furthermore will have acquired skills in designing, formally specifying, and realizing techniques of knowledge representation and reasoning.

-------------------------------------
KRRS - Knowledge Representation and Reasoning Systems
• Reference: 11539
• Semester: Autumn
• Web Page:
• Lecturers: Carlos Damásio
• Description:

At the end of this course, students should know the main languages ​​for knowledge representation used in artificial intelligence, as well as algorithms and systems that enable them to develop applications that take advantage of the represented knowledge. They should also realize the advantages of using some of these languages ​​in modelling Data Bases and Information Systems.
-------------------------------------
SP - Stream Processing
• Reference: 11562
• Semester: Autumn
• Web Page: http://ssdi.di.fct.unl.pt/vid/
• Lecturers: José Júlio Alferes and Sérgio Duarte
• Description:

In recent years there has been a huge increase in the amount of information that is being continuously generated (e.g. by financial systems, telecom and utilities networks, sensor networks). Making use of this very rich information requires applications of increasing complexity operating on these streams of data, for which the existing store-and-process information management system are not appropriate. Instead one needs systems that, in (quasi) real time, are able to process data streams, relate them, detect patterns, and react to detected patterns.
Current developments in building such systems have witnessed a significant success in diverse application areas, such as traffic analysis, intrusion and fraud detection (both in financial systems and utilities networks), algorithmic trading, etc. In this course we will study the fundamentals, languages and systems for building application that process streams of data. The course starts by focusing on general purpose distributed realtime stream processing systems, covering both the key system aspects and proposed programming models. It then tackles structured data models for dealing with streams, and the relation of these models with the model of relational databases (thus combining streaming data with stored data), covering languages and systems that extend those that exist for SQL. Finally, students will learn how to detect complex patterns in data streams, and experiment with existing system.

-------------------------------------
CGT - Computational Game Theory
• Reference: 11564
• Semester: Spring
• Web Page:
• Lecturers: João Leite
• Description:

There has been a recent renewed interest in Game Theory in many areas of Computer Science, notably when confronted with settings where self-interested parties interact. Notable examples can be found in electronic marketplaces, e.g., Google’s sponsored search auctions and electricity trading markets, and networked computer systems. In the AI community, Game Theory has emerged as one of the dominant formalisms for studying strategic and cooperative interaction in systems of autonomous agents. To act optimally in such scenarios, agents must take into account how other agents are likely to act. Game Theory provides the mathematical foundations to study such systems, namely by providing various solution concepts, which prescribe how agents ought to act when other agents’ actions are bound to affect their utilities.
This course will cover the basic concepts of Game Theory and Mechanism Design, with an emphasis on their computational/algorithmic aspects. The aims of the course are: a) To introduce the student to the notion of game, its various solution concepts, and other basic notions and tools of game theory, as well as the main application areas in which they apply; b) To formalise the notion of strategic thinking and rational choice using the tools of game theory, and to provide insights into adopting game theory in modelling applications; c) To establish the links between game theory, computer science and economics, with an emphasis on the computation aspects, and d) To introduce contemporary topics in the intersection of game theory, computer science and economics.