Titulo Estágio
Construção de um Motor de Inferência para Lógica de Markov em Java
Área Tecnológica
Web Semântica
Local do Estágio
DEI
Enquadramento
Lógica de Markov é uma nova linguagem lógica capaz de lidar eficientemente com incerteza e complexidade. A incerteza é representada por modelos gráfico-probabilisticos, enquanto a complexidade é representada por lógica. A ideia base é simples: anotar fórmulas lógicas com pesos que representem a sua incerteza, e construir modelos gráfico-probabilisticos com essa informação. Esses modelos permitem não só efectuar inferência probabilística sobre as fórmulas, mas também aprender automaticamente a incerteza das fórmulas, e até as próprias fórmulas.
O motor de inferência para lógica de Markov mais utilizado é o Alchemy , desenvolvido pela Universidade de Washington. Esse motor é desenvolvido em C++, e providencia um conjunto de capacidades que excedem em muito a lógica de Markov. No entanto, este motor apresenta alguns problemas: primeiro, só corre nativamente em ambientes UNIX, tendo de se usar emulação por cygwin para funcionar em Windows; segundo, sendo desenvolvido em C++, a sua integração em aplicações Java ou Python é complexa.
Objetivo
O objectivo deste estágio é desenvolver um motor de inferência para Lógica de Markov em Java. Este motor, ao contrário do Alchemy, funcionara principalmente numa interface programática, tendo apenas os algoritmos de inferência e aprendizagem mais essenciais. O objectivo final será a sua integração no sistema Incerto , um motor de raciocínio probabilístico para a Web Semântica, desenvolvido pelo grupo CMS do CISUC.
O motor a desenvolver será disponibilizado em open-source, sendo espectável a sua utilização por equipas de investigação de todo o mundo. O aluno será também incentivado a publicar os resultados do seu trabalho numa conferência internacional na área.
Plano de Trabalhos - Semestre 1
Estudo de Bibliografia
Plano de Trabalhos - Semestre 2
Implementação
Condições
O estágio não é remunerado. O local de trabalho é no LIA – DEI.
Observações
Requisitos: Bons conhecimentos de Java. Conhecimentos básicos de lógica e estatística. Conhecimentos de Inglês.
Condições Preferenciais: Experiência no desenvolvimento de código para alto desempenho. Participação em concursos de programação ou similares.
Observações
Bibliografia Base
P. Domingos, S. Kok, D. Lowd, H. Poon, M. Richardson, and P. Singla, “Markov Logic,” Probabilistic Inductive Logic Programming, 2008, pp. 92-117.
M. Genesereth, Logical Foundations of Artificial Intelligence, Morgan Kaufmann Publishers, 1987.
S. Russell and P. Norvig, Artificial Intelligence: A Modern Approach (2nd Edition), Prentice Hall, 2002.
[1] http://alchemy.cs.washington.edu/
[1] http://www.cygwin.com/
[1] http://code.google.com/p/incerto
Orientador
Paulo Jorge de Sousa Gomes
pgomes@dei.uc.pt 📩