terça-feira, 20 de novembro de 2012

Case-based reasoning Part II

O texto é basedo no tutorial Recio-Garcia , Díaz-Agudo , González-Calero (2008).


Case-based reasoning (CBR) - Parte II

 

Em nível maior de generalidade, uma aplicação CBR pode ser descrita por ciclo composto dos seguintes 4 processos:

* RECUPERAR o mais comum dos casos ou caso.
* REUTILIZAR a informação e conhecimento no caso para solução de um problema.
* REVISAR a solução proposta.
* RETER parte da experiência provavél para ser útil na solução futura de um problema.

Um novo problema é solucionado pela recuperação de um ou mais casos experienciados anteriormente, reutilizando o caso, revisando a solução baseada na reutilização de casos anteriores, e retendo a nova experiência pela incorporação na base de conhecimento existente (base de casos). A figura 1 ilustra o ciclo.

Figura 1


Uma descrição inicial do problema define a consulta. Esse novo CASO é usado para RECUPERAR o caso a partir da coleção de casos anteriores.  O caso recuperado é combinado com um novo caso - por meio do REUSO - na solução de casos, ou seja, uma solução proposta  para o problema inicial. Por meio do processo de REVISÃO esta solução é testada com sucesso, por exemplo: ao ser aplicado em um ambiente do mundo real, ou avaliado por um professor, ou reparação de uma falha. Durante a RETENÇÃO (ou RECORDAR/RELEMBRAR), experiências úteis são retidas para futuros reusos, e a base de casos é atualizada por novos casos aprendidos, ou pela modificação de alguns casos existentes.

Como indicado na figura 1, o conhecimento geral usualmente desempenha uma parte neste ciclo, pelo apoio dos processos do CBR. Esse apoio pode ter um alcance muito fraco (ou nenhum) a muito forte, dependendo do tipo de método CBR. Por conhecimento geral, entendemos geral por conhecimento dependente do domínio, ao contrário do conhecimento específico embutidos nos casos. Por exemplo, no diagnóstico de um paciente pela recuperação e reuso do caso de pacientes anteriores, um modelo de anatomia junto com relacionamento causal entre estados patológicos pode constituir o conhecimento geral utilizado por um sistema CBR. Um conjunto de regras pode ter a mesma função.

O próximo tutorial do CBR tentarei disponibilizar o conceito aplicado. Usarei a biblioteca jColibri e implementarei algo. É possível que utilize ontologias nesse desenvolvimento.

terça-feira, 13 de novembro de 2012

TUTORIAL PROTÉGÉ - PARTE 4

baseado no guia prático para contruir ontologias OWL usando Protégé dos autores Horridge & Knublauch et al

PARTE 4: HIERARQUIA DE CLASSES

 É muito comum criar taxonomias ou classificações(hierarquias) com o fim de organizar a ontologia. Entenda bem , apenas a criação de uma taxonomia não significa que criamos uma ontologia. Muitos mais formalismos são necessários para expressar e descrever o mundo. Hoje falaremos apenas de como criar hierarquias no Protegé.

Há 2 formas de criar hierarquias. A primeira é ilustrada na Figura 1, na qual destacamos em vermelho os botões responsáveis pela criação das classes hierárquicas.

Figura 1

A outra forma é muito útil se você possui grande quantidade de classes para criar. Para fazer isso clique em TOOLS >> CREATE CLASS HIERARCHY. Uma janela deve ser aberta conforme ilustrada na figura 2.



Figura 2




Tenha em mente que tudo que estamos criando são relações matemáticas. A Figura 3 esclarece esse ponto de vista ilustrado como conjuntos:

Figura 3


No próximo tutorial falaremos sobre outras relações entre classes.

terça-feira, 6 de novembro de 2012

Case-based reasoning Part I

Intercalaremos os tutoriais do Protégé com os estudos sobre raciocínio baseado em casos (Case-based reasoning), que pode ser muito bem integrado a ontologias.

O texto é basedo no tutorial Recio-Garcia , Díaz-Agudo , González-Calero (2008).


Case-based reasoning (CBR) - Parte I


Raciocínio baseado em casos é um paradigma para resolução de problemas e aprendizagem. CBR é baseado na intuição que os problemas tendem a se repetir. Isso significa que novos problemas são frequentemente similares ao problemas encontrados anteriormente e , portanto, que soluções do passado podem ser usados na situação atual [12]. CBR está enrraizado no trabalho de Roger Schank sobre memória dinâmica e  o papel central que lembrando de episódios anteriores (casos) e scripts ( situações padrões) tem na resolução de problemas e aprendizagem [48].

CBR é particularmente aplicável a problemas onde casos anteriores estão acessíveis, mesmo quando o domínio não é suficientemente bem entendido para um profundo modelo do domínio. Helpdesk, disgnósticos ou sistemas de classificação tem sido as áreas mais bem sucedidas de aplicação, ou seja, para determinar falhas ou diagnosticar uma doença por meio de atributos observados, ou para determinar se ou não certos tratamentos ou reparos são necessários dado um conjunto de casos resolvidos no passado [54].

As tarefas centrais que todos os métodos CBR têm de lidar são[2]: "Identificar a atual situação do problema, encontrar no passado casos similares ao novo, nesse caso sugerir uma solução para o problema atual, avaliar a proposta da solução, e atualizar o sistema para aprendenter a partir desta experiência. Como isto é feito, qual parte do processo que é focado, quais tipos de problemas que acionam métodos, etc. múltiplas questões que variam consideravelmente".


No próximo post sobreCBR falaremos sobre o ciclo de vida. A intenção futura é desenvolver algo usando Jcolibri2.  See you some other day!!!

[12] E. by David Leake.
Case Based Reasoning. Experiences, Lessons and Future Directions. AAAI Press. MIT Press, USA, 1997.


[48] R. C. Schank.
Dynamic Memory. Cambridge Univ. Press, 1983.


[54] I. Watson.
Applying case-based reasoning: techniques for enterprise systems. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 1998.


[2] A. Aamodt and E. Plaza. Case-based reasoning: Foundational issues, methodological variations, and system approaches.
AI Communications, 7(i), 1994.

terça-feira, 30 de outubro de 2012

TUTORIAL PROTÉGÉ - PARTE 3

baseado no guia prático para construir ontologias OWL usando Protégé dos autores Horridge & Knublauch et al 

PARTE 3: CLASSES

As classes definem um grupo de indivíduos que partilham as mesmas propriedades. No Protégé a edição de classes é realizada usando a "Classes Tab", como mostrado na Figura 1. Toda ontologia contém uma classe chamada Thing. A classe Thing representa um conjunto de todos os indivíduos. Todas as classes são subclasses de Thing. Vamos adicionar a classe "Pizza" a nossa ontologia.

Figura 1 - Classes TAB

A Figura 2 ilustra a barra de ferramenta para trabalhar com adição/exclusão de classes.

Figura 2 - Barra de ferramenta


Adicione as classes PizzaTopping e PizzaBase. Embora não seja obrigatório , é recomendado que todas as classes devem iniciar com letra maícula e não deve conter espaços. Alternativamente pode ser usado underline "_" para unir palavras, por exemplo Pizza_Topping.

Depois de adicionar essas 3 classes na ontologia, precisamos dizer que as classes são DISJUNTAS, para que um indivíduo ( instâncias ou objetos) não possa ser instânciado por mais de uma das 3 classes. Para isso selecione a classe Pizza. Depois clique em Disjoint Pizza. A janela ilustrada na Figura 3 abrirá. Selecione PizzaBase e PizzaTopping e por final clique em OK.




Figura 3 - Disjoint Pizza


As classes OWL são consideradas "sobrepostas" (Como conjuntos que há interseção) Portanto não podemos assumir que um indíviduo não é um membro de uma classe particular simplesmente porque não tem sido afirmada como membro da classe. A fim de "separar" um grupo de classes deve explicitá-las como disjuntas. Isso assegura que um indivíduo é membro de apenas uma classe. Não faz sentido no mundo real um indivíduo pertencer a classe Pizza e PizzaBase.

Existe um atalho no protegé que torna mais rápido a criação de classes e a disjunção de clases. Clique no menu edita para " Remove ou Add Disjoint classe".


No próximo curso falaremos sobre hierarquia de classes, ou melhor criaremos uma taxonomia para nossa ontologia. Na literatura muitos autores denominam como ontologias lightweight.


terça-feira, 23 de outubro de 2012

TUTORIAL PROTÉGÉ - PARTE 2

Continuação do curso de protégé. Esse curso é baseado nas seguintes literaturas:
1) Revolutionizing Knowledge Discovery in the life sciences. Autores: Baher e Cheung. Ano: 2007
2) Handbook on Ontologies. Autores: Staab e Studer. Ano: 2009
3) A Pratical Guide To Building OWL Ontologies Using Protégé 4. Autores: Horridge e Matthew et al.

PARTE 2: Expressividade 

No curso anterior falamos sobre a aba "DL metrics" do Protégé. Essa aba exibe a expressividade DL (Lógica de Descrição) da ontologia. Por exemplo: A ontologia permite propriedades inversas da lógica de descrição? Mas o que é expressividade de uma linguagem? É a habilidade da linguagem exprimir ou descrever algo.
Muitas pessoas argumentam que o principal benefício de usar ontologias para modelar o conhecimento torna-se mais evidentes em aplicações baseadas em raciocínio. Inferir novos conhecimentos e extrair conclusões além das afirmações explícitas é um aspecto de aplicações "inteligentes". Entretanto, o poder do raciocínio depende da expressividade da representação do conhecimento formalizado.

À luz de um equilíbrio entre a expressividade alta e o custo computacional, destacamos a alta expressividade manifestada em linguagens baseadas em lógica de primeira ordem (FOL), OWL FULL etc. Enfatizamos também linguaguens que minimizam o custo computacional, tais como: OWL-Lite, OWL-DL e outras de lógica descritiva.
Qualquer avaliação de uma ontologia leva em consideração a expressividade da linguagem. Uma forma de avaliar é transformar a ontologia em uma linguagem canônica(Que segue a estrutura mais usual ou mais neutra na língua). A figura 1 ilustra essa transformação:

Figura 1

Voltemos ao Protégé que é o alvo do curso. No Protégé a janela DL metrics (Figura 2) exibe a expressividade. A medida que novos construtos são adicionados a ontologia , o Protégé atualiza o DL metrics. Cada letra do DL metrics possui um significado.

Figura 2


Por exemplo a letra F simboliza que está sendo utilizado propriedades funcionais na ontologia.

No próximo curso falaremos sobre criação de classes e classes disjuntas. see you soon!

terça-feira, 16 de outubro de 2012

TUTORIAL PROTÉGÉ - PARTE 1

Vamos iniciar um mini-curso de criação de ontologia utilizando o Protégé 4.2 como apoio. o mini-curso será baseado no guia prático para contruir ontologias OWL usando Protégé dos autores Horridge & Knublauch et al. Nesse tutorial trataremos do básico até ao avançado. As postagens não serão regulares, ou seja, pode ser que a próxima postagem seja de outro assunto e não consecutiva ao tutorial.

PARTE 1: Construindo uma ontologia OWL 

Neste tutorial descreveremos a criação de uma ontologia de Pizzas. Vamos usar a ontologia de Pizza porque encontramos muitos exemplos úteis, entretanto apresentaremos ao longo desse tutorial outros exemplos.

Exercício 1 : Criar uma nova ontoologia OWL
1-  Iniciar o Protégé 4.2;
2 - Escolha a opção "Create new OWL ontology";
3 - Substitua a IRI default pela http://www.semanticweb.org/ontologies/pizza.owl e clique no botão Continue;
4 - Selecione o caminho local do computador onde que salvar sua ontologia e depois clique em continue;

5 - Selecione o formato da sua ontologia RDF/XML;
6 - Clique no botão Finish;
7- Será aberta uma nova janela com uma aba chamada "Active Ontology".

--------------------------------INÍCIO NOTA EXPLICATIVA-----------------------------------------
Vamos entender melhor o que é IRI e o que é o formato RDF/XML.


A URI(Uniform Resource Identifier)  é um conjunto de caracteres usado para identificar um nome ou recurso. Essa identificação permite a interação com outros recursos da rede (ou da WWW) usando protocolo específicos.
Na internet o IRI (Internationalized Resource Identifier) é a generalização da URI. Enquanto URI é limitado ao subconjunto de caracteres ASCII, a IRI pode conter um conjunto de caracteres universais (Unicode/ISO 10646), incluindo Chinês ou Japonês, entre outros. Para ampliar seus conhecimentos em URI acessa a página da W3C (http://www.w3.org/International/O-URL-and-ident.html).

Existe bastante variabilidade de como os dados são formatados. Por exemplo, existe 6 trechos de códigos e todos significam a mesma coisa:

<!-- 1 -->
<foaf:Person rdf:ID="bob" foaf:name="Bob" />

<!-- 2 -->
<foaf:Person rdf:about="#bob">
  <foaf:name>Bob</foaf:name>
</foaf:Person>

<!-- 3 -->
<rdf:Description rdf:ID="bob" rdf:type="http://xmlns.com/foaf/0.1/Person">
  <foaf:name>Bob</foaf:name>
</rdf:Description>

<!-- 4 -->
<rdf:Description rdf:ID="bob" rdf:type="http://xmlns.com/foaf/0.1/Person" />
<rdf:Description rdf:about="#bob" foaf:name="Bob" />

<!-- 5 -->
<rdf:Description rdf:about="#bob" foaf:name="Bob">
  <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person" />
</rdf:Description>

<!-- 6 -->
<rdf:Description rdf:about="#bob">
  <foaf:name>Bob</foaf:name>
  <rdf:type>
    <rdf:Description rdf:about="http://xmlns.com/foaf/0.1/Person" />
  </rdf:type>
</rdf:Description>

Os formatos mais utilizados são:RDF/XML, OWL/XML e RDF/XML-ABBREV. O OWL/XML não pode ser serializado em um grafo. O formato RDF/XML-ABBREV é mais compacto e portanto menos eficaz que o formato RDF/XML format.
--------------------------------FIM DA NOTA EXPLICATIVA-----------------------------------------

Vamos usar em nossa ontologia o formato RDF/XML.

A seguinte tela ilustra o protégé com aba ativa "Active Ontology"


Clicando em annotations você adiciona um comentário explicativo a sua ontologia. Veja na tela seguinte:



A janela DL metrics mostra a expressidade de sua ontologia. No próximo curso continuaremos nessa janela. Explicaremos em mais detalhes o que é expressividade de uma ontologia e como é medido no protégé.

quarta-feira, 10 de outubro de 2012

METAS

NOVA METAS

Nós próximos artigos falarei mais sobre:

1) Raciocínio baseado em casos (case-based  reasoning) que usam ontologia. Para isso busquei o framework JColibri e vou implementar algo.

2) Lógica e raciocício lógico

3) Uso do protegé 4.2.

4) Recuperação da informação

Aguardem novidades em breve. Boas ideias são bem vindas.