Transcript
Page 2: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Introdução

• O que é o PowerLoom?• É o sucessor do sistema de representação

de conhecimento Loom. Ele é uma linguagem e um ambiente para a construção de aplicações inteligentes.

• http://www.isi.edu/isd/LOOM/PowerLoom/• Foi escrito em STELLA (Strongly Typed,

Lisp-like Language)

Page 3: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Programação

• Visão geral• Vocabulário• Conceitos básicos• Uma pequena aplicação

Page 4: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Visão Geral

• Comandos básicos do PowerLoom• Classes primitivas e definidas• Aprendendo a responder questões

probabilísticas por meio de redes neurais

• Um Exemplo Simples

Page 5: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Vocabulário

• Class• Tipos de dados• Slot• Cada slot é uma função polimórfica

(deffunction) ou relação binária (defrelation) que podem ser definidas

• Assert (afirmação)• Cria instâncias das classes

Page 6: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Os Fundamentos: definição simples, afirmação, recuperação, e retração• (in-package “STELLA”)

• Opcional e ignorada pelo PowerLoom. Apenas para dizer a interface do Emacs que pacote usar para este arquivo

Page 7: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Módulos

• (defmodule “/PL-KERNEL/PL-USER/BASICS”)• |MDL|/PL-KERNEL-KB/PL-USER/BASICS• Módulos são usados para separar espaços de

nomes (classes, funções)• PL-USER é o módulo padrão do PowerLoom.• Cada módulo pode ver todos os nomes e

objetos associados de todos os seus ancestrais.

• Um módulo pode herdar nomes e prover suas próprias definições para eles.

Page 8: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Herança Múltipla nos Módulos

• (defmodule "BASICS“ :includes ("PL-USER"))• |MDL|/PL-KERNEL-KB/PL-USER/

BASICS

Page 9: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Começando• (in-module “BASICS”)• Para começarmos a preencher o módulo

BASICS• (clear-module “BASICS”)• Remove qualquer informação

acumulada de execuções anteriores• (reset-features)• |i|(:EMIT-THINKING-DOTS :JUST-IN-TIME-

INFERENCE)• Reajustar as características para o

comportamento padrão

Page 10: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Selecionando o Dialeto

• (in-dialect KIF)• :KIF• Declara o dialeto de lógica

assumido pelo interpretador. Podem haver vários dialetos num mesmo arquivo.

Page 11: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Ajuda

• (help)Lista todos os comandos disponíveis

• (help comando)Ajuda sobre determinado comando

• (demo)Alguns tutoriais

Page 12: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Definindo Novos Tipos (Conceitos ou Classes)• (defconcept PERSON (?p):documentation "The class of human

beings.")PERSON• Diferenças entre classes e conceitos

são mínimas.

Page 13: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Definindo Relações e Funções

• (defrelation happy ((?p PERSON)))• HAPPY• (deffunction age ((?p PERSON)) :->

(?a INTEGER))• AGE

Page 14: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Fazendo Afirmações

• (assert (Person Fred))• (PERSON FRED)• (assert (Person Joe))• (PERSON JOE)

Page 15: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Examinando a Base de Conhecimento

• Há duas formas:• Fazendo perguntas com respostas

verdadeiro ou falso com o comando ask

• Recuperando as instâncias que satisfazem um predicado particular com retrieve

Page 16: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Perguntando à Base de Conhecimento

• (ask (happy Fred))• Nada aparece. Por que?• Não dizer nada é a fórmula que o

PowerLoom diz “eu não sei”.

Page 17: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Vamos dizer que Fred é feliz

• (assert (happy Fred))• (HAPPY FRED)• Colocamos o slot happy da classe

Person na instância Fred como verdadeiro.

• (ask (happy Fred))• TRUE

Page 18: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Retrieve

• (retrieve all (?x PERSON) TRUE)• (FRED JOE)• (retrieve all (?x PERSON))• Não é necessário escrever o TRUE• (retrieve all ?x (Person ?x))• Um pouco mais lento, pois retorna

todas as instâncias e filtra as que são da classes Person

Page 19: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Pegando apenas uma instância

• (retrieve (?x PERSON)) ou (retrieve 1 (?x PERSON))

• (FRED)• (retrieve)• (FRED JOE)

Page 20: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Definindo uma idade para Fred

• (assert (= (age Fred) 35))• (= (AGE FRED) 35)• Vamos perguntar se ele tem 35 anos?• (ask (= (age Fred) 35))• TRUE• Quantos anos Fred tem?• (retrieve (?x INTEGER) (= ?x (age Fred)))• (35)

Page 21: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Fred fez aniversário, vamos retirar sua idade

• (retract (= (age Fred) 35))• (= (AGE FRED) (AGE FRED))• |= (retrieve (?x INTEGER) (= ?x

(age Fred)))• (= (AGE FRED) (AGE FRED))• Não sabemos mais quantos anos

Fred tem.

Page 22: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Vamos por 36

• |= (assert (= (age Fred) 36))• (= (AGE FRED) 36)• |= (retrieve (?x INTEGER) (= ?x

(age Fred)))• (36)

Page 23: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Modificando diretamente

• Para funções com apenas um valor, é possível modificar diretamente.

• |= (assert (= (age Fred) 42))• (= (AGE FRED) 42)• |= (retrieve (?x INTEGER) (= ?x (age

Fred)))• (42)

Page 24: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Conhecendo tudo sobre Fred

• |= (all-facts-of Fred)• |i|((PERSON FRED) (HAPPY FRED)

(= (AGE FRED) 42))

Page 25: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Apagando todas as informações sobre Fred

• |= (retract-facts-of Fred)• |= (all-facts-of Fred)• |i|()

Page 26: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Argumentando com classes primitivas e definidas• Antes de trabalhar• |= (in-package "STELLA")• |= (defmodule "/PL-KERNEL/PL-USER/CLASSES")• |MDL|/PL-KERNEL-KB/PL-USER/CLASSES• |= (in-module "CLASSES")• |= (clear-module "CLASSES")• |= (reset-features)• |i|(:EMIT-THINKING-DOTS :JUST-IN-TIME-INFERENCE)• |= (in-dialect :KIF)• :KIF

Page 27: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Começando• |= (defconcept PERSON (?p) :documentation "The class of human beings.")• PERSON• |= (defrelation happy ((?p PERSON)))• HAPPY• |= (deffunction age ((?p PERSON)) :-> (?age

INTEGER))• AGE• |= (deffunction friends ((?p PERSON)) :-> (?ps

SET))• FRIENDS

Page 28: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Instâncias dos serviços armados

• |= (defconcept ARMED-SERVICE (?s) :documentation "The class of armed

services, for example, the US Navy.")• ARMED-SERVICE• |= (assert (Armed-Service US-Army))• (ARMED-SERVICE US-ARMY)• |= (assert (Armed-Service US-Navy))• (ARMED-SERVICE US-NAVY)• |= (assert (Armed-Service US-Airforce))• (ARMED-SERVICE US-AIRFORCE)

Page 29: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Criando uma subclasse• Uma subclasse de “Person”• Podemos também documentar slots

individuais.• |= (defconcept WARFIGHTER (?p PERSON)• :documentation "People involved in

military operations.")• WARFIGHTER• |= (deffunction service ((?p

WARFIGHTER)) :-> (?s ARMED-SERVICE)• :documentation "The armed service to

which a warfighter belongs.")• SERVICE

Page 30: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Outra subclasse de Person• Só é possível ser civil se não for militar• |= (defconcept CIVILIAN (?p PERSON) :documentation "People who are not warfighters." :<<=>> (and (PERSON ?p) (not (Warfighter ?p))))• CIVILIAN• |= (defconcept ARMY-PERSON (?p WARFIGHTER) :<<=>> (and (WARFIGHTER ?p) (= (service ?p) US-Army)))• ARMY-PERSON

Page 31: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Definindo NAVY-PERSON e Criando Algumas Instâncias• |= (defconcept NAVY-PERSON (?p WARFIGHTER) :<<=>> (and (WARFIGHTER ?p) (= (service ?p) US-Navy)))• NAVY-PERSON• |= (assert (Warfighter Buck))• (WARFIGHTER BUCK)• |= (assert (= (service Buck) US-Army))• (= (SERVICE BUCK) US-ARMY)• |= (assert (Person John))• (PERSON JOHN)

Page 32: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Podemos Usar um member-of para Compor a Lista de amigos

• |= (assert (member-of Buck (friends John)))

• (MEMBER-OF BUCK (FRIENDS JOHN))• |= (assert (member-of John (friends

Buck)))• (MEMBER-OF JOHN (FRIENDS BUCK))• |= (assert (Person Judy))• (PERSON JUDY)

Page 33: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Perguntando sobre Judy

• Como até agora nós só informamos que Judy é uma pessoa, as consultas seguintes não tem resposta.

• |= (ask (Warfighter Judy))• |= (ask (Civilian Judy))

Page 34: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Informando sobre Judy

• |= (assert (Warfighter Judy))• (WARFIGHTER JUDY)• |= (assert (= (service Judy) US-Navy))• (= (SERVICE JUDY) US-NAVY)• Mas NAVY-PERSON não era um

Warfighter com service = US-NAVY? Vamos perguntar se Judy é NAVY-PERSON?

• |= (ask (NAVY-PERSON Judy))• TRUE

Page 35: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Questões sobre Judy

• E se perguntarmos se ela é CIVILIAN?

• |= (ask (Civilian Judy))• Nada é respondido. Mas e se

perguntarmos a negativa?• |= (ask (not (Civilian Judy)))• TRUE

Page 36: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

E Se Fizermos o Oposto?

• |= (assert (Civilian Blimpy))• (CIVILIAN BLIMPY)• |= (ask (Civilian Blimpy))• TRUE• |= (ask (Warfighter Blimpy))• Nada é respondido• |= (ask (not (Warfighter Blimpy)))• TRUE

Page 37: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Vamos Declarar Outro Warfighter

• |= (assert (Warfighter Fred))• (WARFIGHTER FRED)• |= (assert (= (service Fred) US-

Airforce))• (= (SERVICE FRED) US-AIRFORCE)

Page 38: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Vamos Consultar as Instâncias• |= (retrieve all (?p PERSON))• (BUCK JUDY FRED BLIMPY JOHN)• |= (retrieve all (?w WARFIGHTER))• (BUCK JUDY FRED)• |= (retrieve all (?p PERSON) (not (Civilian ?p)))• (BUCK JUDY FRED)• |= (retrieve all (?p PERSON) (not (Warfighter ?p)))• (BLIMPY)• |= (retrieve all (?p CIVILIAN))• (BLIMPY)• |= (retrieve all (?w ARMY-PERSON))• (BUCK)• |= (retrieve all (?w NAVY-PERSON))• (JUDY)

Page 39: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Consultando as Instâncias de Duas Classes na Mesma Consulta

• |= (retrieve all (?w WARFIGHTER) (or (= (service ?w) US-Navy) (= (service ?w) US-Airforce)))• (JUDY FRED)• Ou assim:• |= (retrieve all (?w WARFIGHTER) (member-of (service ?w) (setof US-

Navy US-Airforce)))• (FRED JUDY)

Page 40: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Consultando Todas as Pessoas e seus amigos• |= (retrieve all ((?p PERSON) (?f

PERSON)) (member-of ?f (friends ?p)))

• ((BUCK JOHN) (JOHN BUCK))

Page 41: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Recuperando Todas as Forças Armadas em que Algum Membro Tenha Amigos• |= (retrieve all (?s ARMED-SERVICE)

(exists ((?p PERSON) (?w WARFIGHTER)) (and (member-of ?p (friends ?w)) (= (service ?w) ?s))))• (US-ARMY)

Page 42: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Aprendendo a Responder Questões Probabilísticas• |= (in-package "STELLA")• |= (defmodule

"/PL-KERNEL/PL-USER/LEARNING")• |MDL|/PL-KERNEL-KB/PL-USER/LEARNING• |= (in-module "/PL-KERNEL/PL-USER/LEARNING")• |= (reset-features)• |i|(:EMIT-THINKING-DOTS :JUST-IN-TIME-

INFERENCE)• |= (in-dialect KIF)• :KIF• |= (set-partial-match-mode :basic)

Page 43: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Alguns Conceitos Básicos e Relações• |= (defconcept person (?p thing))• PERSON• |= (defconcept gene (?g thing))• GENE• Relação de parentesco• |= (defrelation parent ((?x person) (?y person)))• PARENT• Relação de genótipo• |= (defrelation genotype ((?x person) (?y gene)))• GENOTYPE

Page 44: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Instanciando Algumas Pessoas

• |= (assert (person mary))• (PERSON MARY)• |= (assert (person joe))• (PERSON JOE)• |= (assert (person fred))• (PERSON FRED)• |= (assert (person martha))• (PERSON MARTHA)

Page 45: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Criando o Gene Ruivo e Alguns Parentes

• |= (assert (gene red-hair))• (GENE RED-HAIR)• Mary é parente de Joe, Fred e Martha• |= (assert (parent mary joe))• (PARENT MARY JOE)• |= (assert (parent mary fred))• (PARENT MARY FRED)• |= (assert (parent mary martha))• (PARENT MARY MARTHA)• Mary é ruiva• |= (assert (genotype mary red-hair))• (GENOTYPE MARY RED-HAIR)

Page 46: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Definindo uma regra

• Definindo uma regra que infere que uma criança tem um gene se algum dos pais tem o gene

• |= (assert (forall ((?x person) (?y person) (?g gene))

(=> (and (parent ?x ?y) (genotype ?x ?g)) (genotype ?y ?g))))• (forall (?x ?y ?g) (<= (GENOTYPE ?y ?g) (and (PARENT ?x ?y) (GENOTYPE ?x ?g))))

Page 47: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Perguntamos Agora se Joe e Fred São Ruivos

• |= (ask-partial (genotype joe red-hair))

• 1.0• Usando esta regra, nos

emparelhamos completamente e o resultado é 100%.

Page 48: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Agora Vamos Interpretar Como Probabilidade de Alguém ser ruivo• Mas nem sempre uma pessoa herda

um determinado gene. Suponhamos que isto aconteça 33% das vezes.

• Nós podemos dizer isto ao PowerLoom especificando exemplos de treinamento.

• |= (add-training-example (genotype joe red-hair) 0.33)

Page 49: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Trocando para Neural Network Mode

• O próximo passo é trocar o modo básico (:basic) para o neural network mode (:nn)

• No modelo de redes neurais, uma rede neural (neuronal) é criada para combinar as evidências com as regras.

• |= (set-partial-match-mode :nn)

Page 50: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Vamos Treinar Nossa Rede Neural• Os parâmetros abaixo são o número de

“epoch” para treinar e o número de exemplos de treino para usar.

• |= (train-neural-network 100 1)• Training Networks• Saving networks• Cycle 0 Error: 0.006835935230004309• Cycle 25 Error: 0.0015492401193553107• Cycle 50 Error: 2.1865990830721715E-4• Cycle 75 Error: 1.4931175184018652E-4• Note como o índice de erros cai a medida

que a rede aprende.

Page 51: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Vamos Perguntar Novamente se Joe é Ruivo

• |= (ask-partial (genotype joe red-hair))• 0.3299897041647006• Esta propriedade foi aprendida na forma

de uma regra geral, não apenas para Joe.

• Perguntando se Fred é ruivo, teremos a mesma resposta

• |= (ask-partial (genotype fred red-hair))• 0.3299897041647006

Page 52: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Vamos Tentar um Outro Jeito de Inferir Esta Probabilidade

• Primeiro, precisamos limpar os exemplos de teste e a rede neural que construímos

• |= (clear-training-examples)• |= (clear-all-neural-networks)• Agora, perguntando de Joe é ruivo

obteremos um valor aleatório, porque os pesos da rede são distribuídos aleatoriamente.

• |= (ask-partial (genotype joe red-hair))• 0.507659840996802

Page 53: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Vamos Ensinar Nossa Rede Através de Exemplos

• No caso anterior, nos demos ao PowerLoom um exemplo que especificava exatamente qual a probabilidade de uma pessoa ter um gene se algum de seus pais o tivesse.

• Um cenário mais comum, é o de querermos aprender esta probabilidade a partir de exemplos reais de pessoas. Podemos fazer isto, adicionando vários exemplos de teste, e dizendo quem é e quem não é ruivo.

Page 54: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Treinando a Rede

• Vamos assumir que Fred é ruivo, mas Joe e Martha não. Eles são todos filhos de Mary.

• |= (add-training-example (genotype joe red-hair) 0.0)

• |= (add-training-example (genotype fred red-hair) 1.0)

• |= (add-training-example (genotype martha red-hair) 0.0)

Page 55: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Chamando o Algoritmo de Aprendizado

• |= (train-neural-network 100 3)• Training Networks• Saving networks• Cycle 0 Error: 0.5039719708021958• Cycle 25 Error: 0.44175095571983003• Cycle 50 Error: 0.4447590165225422• Cycle 75 Error: 0.4450567667836845• Veja agora que o erro não chega perto de 0. A

causa disto é que a rede não pode analisar todos os exemplos corretamente. O melhor que ela pode fazer é escolher que o ponto com o menor número de erros para ser nossa desejada probabilidade.

Page 56: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Suponhamos que Mary Tenha Outra Filha

• |= (assert (person sue))• (PERSON SUE)• |= (assert (parent mary sue))• (PARENT MARY SUE)• Qual a probabilidade de ela ser Ruiva?• |= (ask-partial (genotype sue red-

hair))• 0.3367224041792676

Page 57: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Um Exemplo Simples

• (defconcept PROTEINA (?p):documentation "Classe das proteínas.")• (defconcept NUCLEOTIDEO (?n):documentation "Classe dos nucleotídeos.")• (defconcept CARBOHIDRATO (?c):documentation "Classe dos carboidratos

(acucar).")• (defconcept ENZIMA (?p PROTEINA)• :documentation "Enzimas sao proteínas que

facilitam reações.")

Page 58: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Criando Instâncias

• (defrelation cataliza ((?w ENZIMA) (?x CARBOHIDRATO) (?y NUCLEOTIDEO)))

• (defrelation sintetizada ((?p ENZIMA)))• (assert (CARBOHIDRATO ALFA-D-GLICOSE))• (assert (PROTEINA GLUT1))• (assert (NUCLEOTIDEO ATP))• (assert (ENZIMA HEXOQUINASE1))• (assert (ENZIMA HEXOQUINASE2))• (assert (ENZIMA HEXOQUINASE3))• (assert (ENZIMA GLUCOQUINASE))

Page 59: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Outras Instâncias

• (assert (SINTETIZADA HEXOQUINASE1))• (assert (SINTETIZADA HEXOQUINASE2))• (assert (SINTETIZADA GLUCOQUINASE))• (assert (CARBOHIDRATO ALFA-D-GLICOSE-6-

FOSFATO))• (assert (CARBOHIDRATO D-HEXOSE))• (assert (cataliza HEXOQUINASE1 ALFA-D-

GLICOSE ATP))• (assert (cataliza HEXOQUINASE2 ALFA-D-

GLICOSE ATP))• (assert (cataliza GLUCOQUINASE ALFA-D-

GLICOSE ATP))

Page 60: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Relações

• (defrelation produzida? ((?p ENZIMA)))• (assert (closed produzida?))• (assert (produzida? HEXOQUINASE1))• (assert (produzida? HEXOQUINASE2))• (assert (produzida? GLUCOQUINASE))

• (induce-inference-rules produzida? ENZIMA)

Page 61: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Processando• Processing check-types agenda...• Building classification rule with 7 clauses and 4

variables• Generating Training Examples• Generating Decision Rules• Starting rule induction with 3 positive and 1

negative examples• 3 positive examples left to be covered• Learning rule top down from signatures over 3

positives• Returning with 3 positives and 0 negatives

covered• No Positives Covered by((CATALIZA ?Y ?X2 ?X1))• 3 examples uncovered, switching to full query-

based induction

Page 62: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Resultado

• 3 positive examples left to be covered• Specializing• Covers 1 negs, and 3 pos• Current: (SINTETIZADA ?Y):

1.2451124629160195• Adding clause (SINTETIZADA ?Y)• Adding rule to cover 3 examples

• PowerLoom has induced the following rules

• (=> (AND (SINTETIZADA ?Y)) (PRODUZIDA? ?Y))

Page 63: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Resumo

• O que é o PowerLoom.• Vocabulário• Comandos básicos do PowerLoom• Classes primitivas e definidas• Aprendendo a responder questões

probabilísticas por meio de redes neurais

• Uma pequena aplicação

Page 65: PowerLoom Anderson Carlos D. Sanches anderson anderson@ime.usp.br

Obrigado

Anderson Carlos D. Sanches

[email protected]