Sistemas Inteligentes

Slides:



Advertisements
Apresentações semelhantes
Software Básico Silvio Fernandes
Advertisements

Introdução a Algoritmos
Engenharia de Software
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
Raphael Gatti Thomás Bryan
Engenharia de Software
Engenharia de Requisitos
Engenharia de Software
Diagrama de Classes.
Engenharia de Software
Orientação por Objectos > Modelo de Processo OO > Identificação de Classe e Objectos Aula 12.
Engenharia de Dados Mini-Curso Introdução à Web Semântica
INTRODUÇÃO A INFORMÁTICA
Resolução.
Teste em Esquemas de Dados Maria Cláudia Figueiredo Pereira Emer Universidade Federal do Paraná Departamento de Informática Seminário.
Desenvolvimento de Ontologia 101
Técnicas de Representação de Conhecimento
Professora: Aline Vasconcelos
Agentes Baseados em Conhecimento
Técnicas de Apoio ao Processo de Engenharia de Requisitos
Introdução a Teoria da Classificação
Introdução à Modelagem Conceitual 1. Conceitos Básicos
Inteligência Artificial Aplicada a Controle e Automação (DAS 6607)
Aula 4 Nomes, Vinculações, Tipos e Escopos
Análise e Projeto de Sistemas
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Classes e objetos Modelagem
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação Orientada a Objetos
Análise de Casos de Uso Alexandre Motnteiro.
Prof. Alfredo Parteli Gomes
Frameworks - Introdução
Sistemas Inteligentes Ontologia e Protegé
Sistemas Inteligentes
Aluno: Mário Monteiro Orientador: Sérgio Soares 1.
Cap 2 – Processo de Software
Análise e Projeto de Sistemas Levantamento de Requisitos
Taxonomia Profa. Lillian Alvares,
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Fase de Elaboração: Fluxo de Análise Análise de Sistemas de Software Prof. Rodrigo Ribeiro.
Engenharia do Conhecimento Ernesto Trajano Jacques Robin CIn-UFPE.
Prof. Alexandre Vasconcelos
Engenharia do Conhecimento
Engenharia do Conhecimento
Agentes Baseados em Regras de Produção
1.
Introdução e Fundamentos Engenharia de Requisitos
Projeto de Banco de Dados
Sistemas Especialistas
Sistemas Inteligentes
Técnicas e Projeto de Sistemas
Engenharia do Conhecimento
Agentes Cognitivos Adaptativos Aula: Ontologias – Uma breve introdução Aula original de Fred Freitas e Patrícia Tedesco Revisada por Flávia Barros 1.
Marcio de Carvalho Victorino
Sistemas Baseados em Conhecimento
Ontologias Profa. Lillian Alvares
Princípios de Análise e Projeto Orientados a Objetos com UML
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
Agenda GERÊNCIA DE PROJETOS PMI – Project Management Institute
Sistemas Inteligentes Aula: Sistemas Baseados em Conhecimento 1.
Métodos Formais.
REVISÃO Prof. Mário Dantas
1 Engenharia do Conhecimento Patrícia Tedesco Revisada por Flávia Barros.
METHONTOLOGY Sandro Rautenberg
Introdução aos Agentes Inteligentes
Projeto de Banco de Dados
Engenharia de Software Orientada a Objetos
Inteligência Artificial Nadilma C. V. N. Pereira Aula 5– Sistemas Especialistas.
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
Análise e Projeto de Sistemas Análise & modelagem conceitual Prof. Edjandir Corrêa Costa
Transcrição da apresentação:

Sistemas Inteligentes Aula: Engenharia de Conhecimento e Ontologias

Plano da aula Engenharia de Conhecimento Ontologias Conceitos básicos Etapas Ontologias Elementos de uma ontologia Tipos de Ontologias Usos das Ontologias Como projetar/desenvolver uma ontologia

Um Pouco de História... No início, a IA estava preocupada em desenvolver Formalismos para representar conhecimento Mecanismos de inferência Formas de operacionalizar os SBCs Mas... Como garantir a escalabilidade desses sistemas?

Engenharia do Conhecimento - EC

Engenharia do Conhecimento - EC Área de pesquisa preocupada com desenvolver Métodos, Linguagens e Ferramentas adequados para o desenvolvimento de sistemas BC Foco principal: como adquirir e analisar conhecimento como validar e manter uma Base de Conhecimento Construção da Base de Conhecimento Processo de acumular, transferir e transformar alguma fonte de conhecimento para um computador

EC - Definições Engenheiro de conhecimento Expertise Guia a aquisição, a criação da representação do conhecimento especializado, a implementação e o refinamento do SBC Expertise conhecimento especializado adquirido por longo treinamento, leitura e experiência Especialista (Expert ) Quem possui conhecimento especializado , experiência e métodos, e a habilidade de aplicá-los para dar “conselhos” e resolver problemas

Desenvolvimento de SBCs

Etapas de desenvolvimento de SBCs Nível de Conhecimento AQUISIÇÃO Linguagem natural Linguagens de representação do conhecimento Nível Lógico FORMALIZAÇÃO Nível de Implementação Linguagens de programação IMPLEMENTAÇÃO BC REFINAMENTO

Etapas do desenvolvimento de SBCs 1. Aquisição (elicitação) do conhecimento Identificação do conhecimento a adquirir Registro do conhecimento em linguagem natural ou usando alguma notação gráfica

Etapas do desenvolvimento de SBCs 2. Formalização da BC Nível semi-formal via Notação textual estruturada padrão (XML) Notação gráfica padrão (UML) Ontologias Objetivo: validação com especialista Nível formal Via linguagens formais (e.g., LPO) Notação sem ambigüidade com Objetivo: verificação de consistência

Etapas do desenvolvimento de SBCs 3. Implementação da BC Uso (ou criação) de um sistema (máquina de inferência) capaz de ler a BC e realizar dedução usando linguagens de programação Implementação da Interface Teste de protótipo 4. Validação e Refinamento Validação Refinamento

Etapas de desenvolvimento de SBCs Veremos a seguir Aquisição do conhecimento Formalização do conhecimento Ontologias Nível “semi”-formal

Aquisição do Conhecimento O gargalo na construção dos SBCs

Aquisição do Conhecimento Principais fases da aquisição Identificar características do problema Do domínio da aplicação Isolar e representar os conceitos principais e suas relações através de uma Ontologia, por exemplo Identificar inferências sobre estes conceitos (regras) O conhecimento pode originar-se de várias fontes: especialistas, livros e documentos, filmes, etc.

Gargalo na Aquisição do Conhecimento A maior parte do conhecimento está na cabeça dos especialistas... Especialistas têm muito conhecimento empírico Difícil de ser capturado e representado formalmente são “caros” mas não sabem de tudo! têm dificuldade de verbalizar sob pressão usam vocabulário próprio (jargão) Podem expressar conhecimento incorreto e incompleto

Como minimizar o gargalo da Aquisição? Métodos de aquisição Três categorias Manual Semi-automático Automático

Método de Aquisição Manual Entrevistas estruturadas ou não estruturadas Tracking methods análise de protocolos e observação especialista Base de conhecimento Engenheiro de documentação codificação Explicitação

Métodos de Aquisição Semi-automática Baseado em ferramentas de ajuda ao especialista e ao engenheiro de conhecimento Repertory grid analysis especialista Ferramentas interativas de entrevista Base de conhecimento Engenheiro de conhecimento

Métodos de Aquisição Automática Aprendizado de máquina Machine learning Casos e exemplos Indução automática Regras

Formalização do conhecimento Ontologias

Conhecimento Há diferentes tipos de especialistas e de expertise e há vários usos para conhecimentos semelhantes Reusabilidade é a chave! A Base de Conhecimento é a parte mais cara de um SBC Necessidade de reuso em domínios com grande número de conceitos e relações (ex: Medicina) Solução: Ontologias!

Ontologias Em CC e IA Na prática, são Corpo de conhecimento declarativo sobre um dado domínio, assunto ou área de conhecimento Na prática, são hierarquias de conceitos (classes) com suas relações, restrições, axiomas e terminologia associada Servem para estruturar e compartilhar o conhecimento disponível sobre um dado domínio

Ontologias Exemplo: publicações e eventos científicos

Relacionamentos na Ontologia sobre pesquisa científica

Definições de Ontologia (cont.) “Uma ontologia é uma especificação explícita e formal de uma conceitualização compartilhada” [Studer et al 98] Especificação explícita: definições declarativas de conceitos, instâncias, relações, restrições e axiomas Formal: declarativamente definida, sendo compreensível e manipulável para agentes e sistemas Conceitualização: modelo abstrato de uma área de conhecimento ou de um universo limitado de discurso Compartilhada: conhecimento consensual, seja uma terminologia comum da área modelada, ou acordada entre os desenvolvedores dos agentes que se comunicam Especifi= não tem info hiding

Afinal, pra que servem as ontologias? Servem para estruturar e compartilhar o conhecimento disponível sobre um dado domínio: Para compartilhar conhecimento comum – conceitos e vocabulário Entre pessoas Entre agentes de software

Onde Aplicar Ontologias? Recuperação de informações, Sistemas de Integração de Informação, Gestão de conhecimento, Processamento da linguagem natural, Comércio eletrônico, Sistemas multiagentes...

Elementos de uma Ontologia

Elementos de uma Ontologia Conjunto de conceitos Entidades Relações (que podem ser hierárquicas ou não) Instâncias de Conceitos Restrições Regras

Conjunto de Conceitos Entidades Cada entidade tem um nome associado Cada entidade é definida por conjunto de pares atributo-valor E.g., Automóvel (tem-motor=sim; num-rodas=4)

Conjunto de Conceitos Relações Podem ser hierárquicas ou não E.g., is-a, part-of, mae-de, etc... Triciclo is-a Ciclo

Conjunto de Conceitos Instâncias de Conceitos Definição de entidades e relações específicas (indivíduos) E.g., meu-triciclo (num-rodas=3, cor=rosa) Relação: meu-triciclo is-a triciclo Correspondem aos fatos de uma base de conhecimento

Restrições Impõem restrições sobre valores possíveis dos atributos dos conceitos E.g., num-rodas Valor numérico, entre 2 e 4.

Regras Permitem inferência automática (dedução) de instâncias de conceitos a partir de outras instâncias E.g., Se veículoTipo=ciclo E num-rodas=3 E motor=não Então veículo=Triciclo Correspondem às regras da base de conhecimento

Tipos de Ontologias Ontologias de topo (upper ontologies) Ontologias centrais ou genéricas de domínio (core ontologies) Ontologias de Aplicação (específicas)

Ontologias de topo (upper ontologies) Modelos dos objetos comuns que são geralmente aplicáveis a uma grande variedade de ontologias de domínio. Tipicamente contém um glossário central que permite descrever termos em vários domínios. Ex.: “todas as árvores são plantas” Exemplos de upper ontologies padrão são: Dublin Core, GFO, OpenCyc/ResearchCyc, SUMO e DOLCE.

Ontologias centrais ou genéricas de domínio (core ontologies) Definem os ramos de estudo de uma área e/ou conceitos mais genéricos e abstratos desta área Serve de base para a construção de ontologias de ramos mais específicos de um domínio

Ontologias centrais ou genéricas de domínio (core ontologies) Ex: a ontologia central de direito [Valente & Breuker 96] Conhecimentos meta-legal, definicional, causal, normativo, de responsabilidade, reativos, criativo, de agências legais, reação legal, comportamentos permitidos, etc Servirá para criar ontologias de direito tributário, de família e outras...

Ontologias de Aplicação Ontologias de ramos mais específicos de um domínio Procuram solucionar um problema específico de um domínio Utilizam termos de uma ontologia de domínio Ex: Ontologia para identificar doenças do coração, a partir de uma ontologia de domínio de cardiologia Ontologias de tarefas descrevem tarefas de um domínio - como processos, planos, metas, escalonamentos, etc -, com uma visão mais funcional, embora declarativa, de um domínio.

Como projetar uma ontologia Exemplos retirados do tutorial - Ontology Development 101: A Guide to Creating Your First Ontology (Noy and McGuinness)

Desenvolvimento de Ontologias [Noy &McGuiness 2001] Determinar o Domínio e o Escopo da Ontologia Reutilizar Ontologias Existentes Levantar termos importantes Definir classes e sua hierarquia Definir propriedades das classes Restrições das Propriedades Criação de instâncias

1. Determinar o Domínio e o Escopo da Ontologia Qual o domínio que será coberto ? Representação de vinhos e comidas Onde a ontologia será utilizada ? Que perguntas serão respondidas Sugerir boas combinações de vinhos e comidas E.g., “Cabernet Sauvignon” é adequado com frutos do mar ?

2. Reutilizar Ontologias Existentes Verificar se alguém já criou a ontologia É possível refinar ou estender ontologias existentes Muitas fontes disponíveis na Internet – vamos perguntar ao Google? Repositórios: TONES, DAML,... Linguagens para representação de ontologias: RDF, OWL,....

3. Levantar termos importantes Quais são os termos que serão abordados na ontologia ? Quais propriedades esses termos possuem ? Enumerar todos esses termos: Vinho; Tipo de Uva; Fabricante; Região de origem; Coloração (branco, tinto, rosé) Tipo de comidas (peixes, grelhados, massas)

4. Definir classes e sua hierarquia Termos do passo 03, selecionar somente aqueles que representam entidades (conceitos) Desconsiderar propriedades (por enquanto) Esboçar hierarquia Abordagem “Top-Down” ou “Bottom-up” Classes disjuntas (Vinho Branco, Tinto, Rosé)

4. Definir classes e sua hierarquia Como detectar erros na hierarquia de classes (cont.): Classes com somente uma subclasse pode ser um problema Classes com muitas subclasses também

4. Definir classes e sua hierarquia Quando introduzir uma nova classe ? Propriedades diferentes Restrições diferentes Participa em relações diferentes Nova classe ou nova propriedade ? i.e. Tipo de Vinho Instância ou classe ? Depende da aplicação Tipo de vinho (“Sterling Vineyards Merlot”) pode ser instância ou classe. Qual o escopo ? Não especializar além do que sua aplicação precisa

4. Definir classes e sua hierarquia Como detectar erros na hierarquia de classes: Verificar inclusão de classes singulares e coletivas (“vinho” como subclasse de “vinhos”) Distinguir entre classes e seu nomes (sinônimos representam a mesma classe) Ciclos (A subclasse de B e B subclasse de A) Classes irmãs devem estar no mesmo nível (Chardonay e Vinhos Brancos não devem estar no mesmo nível, pois não são irmãs)

5. Definir as propriedades das classes – também conhecidas por “slots” A partir da lista de termos do passo 03, selecionar aqueles que representam propriedades. Propriedades são adicionadas à classe mais genérica

6. Definir as restrições das propriedades Tipo da propriedade String, número, boleano, instancias, etc... Domínio classes em que a propriedade está presente Valores permitidos classes permitidas na propriedade Cardinalidade

7. Criar as instâncias! É necessário escolher uma classe, criar uma instância e preencher os valores das propriedades Enfim se tem a Base de Conhecimento

Cuidado com os nomes... Evitar erros e confusões Maiúsculas ou Minúsculas ? Classes (maiúsculas) Propriedades (minúsculas) Plural ou singular ? Padronizar prefixos e sufixos “has-” (has-maker) e “-of” (producer-of) Evitar abreviações

Exercicio Definir domínio e construir uma ontologia Editor: Protege