Você está na página 1de 80

Os elementos da AML Estilo

Por
Dr. Richard S. W A L L A C E
2003 ALCE A. . Foundation, nc.
Os elementos da AML Style um livro tcnico no-nonsense, que o leva em uma viagem desde os
primeiros passos de criar seu prprio bot com AML, atravs de todas as perguntas e respostas cada
botmaster pergunta, a avanado A.. e aplicaes de negcio duro-cheirados de AML. A viagem termina
com um breve vislumbre do futuro de bots e AML.
NTRODUO....................................................................................................................................................................... 5
O QUE FAZ ALCE................................................................................................................................................................ 6
Uma revoluo no A. ......................................................................................................................................................... 10
CAPTULO . Viso de......................................................................................................................................................... 12
12
13
SMBLCA 13
DVDR E 14
14
Ortografia e CORREO GRAMMER .............................................. ............................ 15
PALAVRAS-CHAVE 15
Condicionais 16
16
17
CAPTULO . Padro AML Matching ............................................... ............................................. 21
O GRAPHMASTER 21
ALCE NO CREBRO GALERA DE MAGENS ............................................. .................................. 23
CAPTULO . As redues simblicas em AML .............................................. .................................. 33
Curingas MLTPLAS 35
CAPTULO V. Perguntas e Respostas botmaster .............................................. ............................ 36
- Qual a meta para AML? .................................................. ................................................ 36
- Quem o botmaster? 37
- Como eu posso criar meu prprio rob bate-papo? .................................................. .................................. 37
- Como que difcil criar um rob bate-papo? .................................................. ............................. 37
- O ALCE 38
- O ALCE acha? 38
- O que a teoria por trs ALCE? .................................................. ...................................... 38
- Por que um AML categoria chamada "categoria"? .................................................. .............. 39
- Posso ter uma conversa privada com ALCE? .................................................. .................. 40
- Como fao para pegar todas as ocorrncias de uma palavra-chave na entrada ....................................? ................ 40
- Como so alvos 41
ALGUNS EXEMPLOS 42
CAPTULO V. PSYCH - Prolog Ativao de AML ......................................... ......................... 45
O comando <system> 45
O shell 46
O PROGRAMA PROLOG 46
O AML 48
AMOSTRA 48
ATVAO DE PROLOG AML .............................................. ....................................... 49
Afirmaes PROLOG 50
CAPTULO V. Fazendo Dedues Lgicas Simples em AML ............................................ ............... 52
SA 52
CONHECMENTO 53
PADRES 54
REDUES 54
55
PLURAS 55
RANDOM 56
AMOSTRA 57
Dedues Lgicas EM AML .............................................. ............................................ 58
CAPTULO V. A Personal Finance "planilha" em AML .......................................... ................ 58
AMOSTRA 58
AS TRANSAES 59
O AML 60
O shell 63
AN AML 63
Categorias Apndice A. AML para finanas pessoais .......................................... ........................... 64
CAPTULO V. A construo de um assinante com Bot Negcios com Pandorabots .............................. 77
Dez assassino Apps para Alice e AML ........................................... .................................... 77
CAPTULO X. O Futuro da AML .............................................. .................................................. 80
CONSDERAES 82
Referncias 83
AGRADECMENTOS 84
COMENTROS SOBRE O AUTOR .............................................. ............................................. 84
NTRODUO
Se voc estiver procurando por uma revoluo na rea de T, voc veio ao lugar certo.
Existem vrias maneiras em que ALCE e AML desafiam a dominante
paradigmas de cincia da computao.
Por um lado, as formas pelas quais os seres humanos e computadores normalmente
comunicar so muito diferentes. Os seres humanos tendem a gastar um monte de tempo em
bate papo e dilogo informal com pouco ou nenhum efeito. nformtica
so conhecidos por dar respostas precisas, verdadeiras, e lgico. A taxa de
troca de informaes em dilogo mais humano muito baixa, no mais do que
1Kbit por segundo, mas a comunicao do computador muito
mais rpido. Alicebot / AML uma tentativa de preencher essa diviso.
Ns temos dispensado grande parte da sabedoria convencional do estruturada
programao, tambm. Onde menos cdigo geralmente bom, mais AML
geralmente melhor. Enchendo RAM com um monte de cdigo que raramente
ativado uma boa idia em AML. Permitir que um programador novato
escrever um programa grande e pesado em AML tambm, no convencional,
boas prticas.
Para no mencionar, a abordagem minimalista bsico da AML emprestado
ELZA, um projeto que foi abandonada pela pesquisa
estabelecimento, ou mesmo ridicularizado como um "brinquedo". No entanto, o sucesso de
ALCE e AML se nada colocar o estabelecimento de pesquisa para
vergonha, pois seus anos de pesquisa e milhes de gastos, eles tm
conseguiu nada perto do desempenho de Alice no Pas naturais
processamento da linguagem. Mesmo as histrias de sucesso de pesquisa A, tais como
os supercomputadores que joga xadrez, necessrio gastos muito mais elevados
L. de A. . C. E. e AML.
O modelo convencional de um servio de informao pressupe que a
computador sempre fornecer respostas precisas prontamente. As pessoas tm
perguntou: qual a diferena entre Ask Jeeves e ALCE?
Jeeves projetado para que o cliente ideal fazer uma pergunta,
e, em seguida, receber imediatamente uma resposta precisa, incluindo um hyperlink
para outro local. Depois de apenas uma transao, o cliente clica no
ligao e deixa o site Ask.com. A. L. . C. e, por outro lado,
concebidos para manter o cliente falar tanto tempo quanto possvel, sem
necessariamente fornecer qualquer informao til ao longo do caminho. Quanto maior
comprimentos mdios conversa medidos ao longo dos anos tm sido de fato
uma medida de progresso A. L. . C. E. 's.
Por mais estranho que parea, o software livre ainda no considerado um
metodologia convencional para pesquisa ou desenvolvimento de software. Como
grande e bem-sucedido como o Linux , a maioria da populao mundial ainda no tem
comprou o argumento de software livre. Para muitas pessoas, todo o debate
sobre a propriedade intelectual do software permanece obscura. Adicionar artificial
inteligncia mistura, e voc tem algo verdadeiramente original. L
so alguns outros projetos A software livre por a, mas nenhum teve
o impacto da Alicebot / AML. Este ano foi a nossa primeira apario em
Linux world, um primeiro passo para encontrar um terreno comum entre a A e
comunidades de software livre.
Finalmente, muitos na Alicebot / AML partes comunidade uma viso comum de
o futuro da nossa tecnologia. Alicebot percebido como uma "falta
pea "do puzzle que combina reconhecimento de voz, natural
compreenso da linguagem e sntese de voz. A viso a conversa
Estrela do computador HAL-style Trek / do futuro, a parte invisvel da
hardware que responde a comandos de voz. Nessa viso, no h
teclado, monitor, mouse, ou interface grfica do usurio. Se essa viso
trata verdade, o impacto da AML ser ubqua
O QUE FAZ O TRABALHO ALCE?
Antes de chegarmos a ALCE, precisamos visitar uma outra figura incomum no
histria da cincia da computao: Professor George Kingsley Zipf. Embora
Ele foi contemporneo de Turing, no h nenhuma evidncia os dois nunca
atendidas. Zipf morreu muito jovem, com a idade de 48, em 1950, de apenas quatro anos
antes de Turing, mas de causas naturais.
H muitas maneiras de lei de Zipf Estado, mas o mais simples
processual: Tomar todas as palavras em um corpo de texto, por exemplo, hoje
edio do New York Times, e contar o nmero de vezes que cada palavra
aparece. Se o histograma resultante classificado por categoria, com o mais
freqentemente aparecendo palavra em primeiro lugar, e assim por diante ("a", "a", "para", "por",
"E" ...), ento a forma da curva a "curva Zipf" para essa
texto. Se a curva de Zipf plotado em uma escala log-log, ele aparece como um
linha reta com uma inclinao de -1.
A curva Zipf uma caracterstica de idiomas humanos, e muitos outros
fenmenos naturais e humanos tambm. Zipf observou que as populaes
das cidades seguiram uma distribuio similar. H um nmero muito grande
cidades, um nmero maior de pequenas e mdias queridos, e um grande nmero de
pequenas cidades. Se as cidades, ou as palavras da linguagem natural, foram
distribudos de forma aleatria, ento a curva Zipf seria um plano horizontal
linha.
A curva de Zipf sequer era conhecida no sculo 19. O economista
Pareto tambm notou a propriedade log-rank em estudos de empresa
riqueza. Um s precisa de considerar a distribuio da riqueza entre
empresas de informtica de hoje em dia para ver o padro. Existe apenas um
gigante, Microsoft, seguido por uma srie de grandes e mdias
empresas, e, em seguida, uma grande cauda de micro e pequenas empresas.
Zipf era rico e independente. Esta a forma como ele poderia dar ao luxo de contratar um
sala cheia de "computadores humanos" para contar as palavras em jornais e
peridicos. Cada um "computador" que chegar ao trabalho e comear a contagem
as palavras e frases dirigidas por Zipf. Esses computadores humanos encontrados
que a Lei de Zipf no se aplica apenas s palavras, mas tambm frases e
frases inteiras da linguagem.
8024 SM
5184 NO
2268 OK
2006 Por
1145 BYE
1101 Quantos anos voc tem
946 H
934 COMO VOC
846 O QUE
840 OL
663 BOM
645 PORQUE NO
584 OH
553 REALMENTE
544 VOC
531 Qual seu nome
525 FRESCO
516 EU NO SE
488 FUCK YOU
486 OBRGADO
416 SO
414 ME TOO
403 LOL
403 THANKS
381 Prazer em conhec-TOO
375 DESCULPE
374 ALCE
368 H ALCE
366 OKAY
353 BEM
352 O QUE MEU NOME
349 Onde voc mora
340 NADA
309 EU SE
303 QUEM VOC
300 NOPE
297 CALA A BOCA
296 EU TE AMO
288 SE
286 OL ALCE
277 COMO
262 QUE VOC SGNFCA
261 MAN
251 WOW
239 SORRSO
233 ME
227 O QUE VOC OLHA COMO
224 SEE
223 HA
218 Como voc est hoje
217 ADEUS
214 NO QUE NO
203 VOC
201 ONDE EST VOC
O histograma de entrada humano, ocupando o nmero de vezes ALCE recebe
cada frase de entrada ao longo de um perodo de tempo, mostra que a linguagem humana
no aleatria. As entradas mais comuns so "SM" e "NO". O mais comum
entrada de mltipla palavra "quantos anos voc tem." Este tipo de anlise que
custo Dr. Zipf muitas horas de trabalho agora feito em poucos
milissegundos de tempo de computador.
Considerando o grande tamanho do conjunto de coisas que as pessoas poderiam
dizer que so gramaticalmente correta ou semanticamente significativa, o
nmero de coisas que as pessoas realmente no dizem surpreendentemente pequeno. Steven
Pinker, em seu livro Como a mente funciona escreveu que
"Digamos que voc tem dez opes para a primeira palavra para comear uma frase, dez
opes para a segunda palavra (produzindo 100 incios de duas palavras), dez
opes para a terceira palavra (gerando um mil trs palavras
primrdios), e assim polegadas (dez de fato a mdia geomtrica aproximada
do nmero de escolhas disponveis de palavras em cada ponto na montagem de uma
frase gramatical e sensvel). Um pouco de aritmtica mostra que o
nmero de sentenas de 20 palavras ou menos (e no uma extenso incomum)
cerca de 1020 ".
Felizmente para bate-papo programadores rob, combinatria de Pinker so a forma
off. As nossas experincias com a Alice indicar que o nmero de escolhas
para a "primeira palavra" mais do que dez, mas que apenas cerca de dois
mil. Especificamente, 1.800 palavras cobre 95% de todas as primeiras palavras
entrada para Alice. O nmero de escolhas para a segunda palavra somente
sobre dois. Para ter certeza, existem algumas primeiras palavras ("eu" e "voc" para
exemplo), que tm muitas segundas palavras possveis, mas a mdia geral
pouco menos de duas palavras. A taxa mdia de ramificao diminui com
cada palavra sucessiva.
531 Qual seu nome
352 O QUE MEU NOME
171 O QUE EST ACMA
137 O QUE sua cor favorita
126 QUAL O SENTDO DA VDA
122 O QUE SSO
102 O QUE o seu filme favorito
92 O QUE
75 O QUE UM botmaster
70 QUAL O SEU Q
59 O QUE reducionismo
53 O QUE sua comida favorita
46 O QUE AML
38 O QUE o seu livro favorito
37 Qual o tempo
37 O QUE SEU TRABALHO
34 O que sua msica favorita
34 O que o seu signo
33 Qual o sexo
32 Qual seu nome real
30 O QUE H DE NOVO
30 O QUE A SUA DADE
30 O que o seu sexo
28 QUAL O SEU SOBRENOME
27 O QUE SEU NOME
27 QUAL O SEU SEXO
26 O QUE 2 +2
26 O QUE MEU P
25 Qual a sua
24 O que o seu propsito
21 O QUE o seu animal favorito
20 O QUE 1 +1
20 QUAL O SEU HOBBY
19 O que o clima
19 QUAL O SEU NMERO DE TELEFONE
18 O QUE ALCE
18 O que est acontecendo
18 O que isso quer dizer
18 O QUE O QUE
17 O QUE UM NVESTGADOR
17 O que amor
17 O QUE O Open Directory
17 O que o seu favorito TV SHOW
16 O que Java
16 Qual a resposta
16 Qual a resposta
16 QUAL O SEU NOME COMPLETO
15 O QUE A
15 O que isso SGNFCA
15 O que o clima ONDE VOC EST
15 O QUE Dois mais dois
15 O QUE a sua banda favorita
14 O que CBR
14 O que ELZA
14 O que Deus
14 O que P
14 Qual o jogo TURNG
13 O QUE 2 + 2
13 O QUE UM ANO DE COMPUTADOR
13 Como
13 O que minha cor favorita
12 O que 2 mais 2
12 O QUE UM CARRO
12 O QUE UM CO
12 O QUE NTELGNCA ARTFCAL
12 O que sobre
12 O QUE A VDA
12 O que NVESTGADOR
12 O QUE VOC NOME
12 O que o seu favorito
12 QUAL O SEU SOBRENOME
11 O QUE 1 + 1
11 O QUE UM Chatterbot
11 O QUE A PROR
11 O QUE SETL
11 Qual o tempo NOS EUA
11 Como o clima COMO L
11 QUAL O SEU FLME FAVORTO
10, que uma categoria C CLENTE
10 que um pnis
10 O QUE botmaster
10 O que o meu endereo P
10 Qual a data
10 O que isso
10 O QUE SEU ENDEREO
10 O QUE sua msica favorita
10 QUAL O SEU pera favorita
10 O que o seu objetivo
10 Qual o endereo P
Mesmo subconjuntos de linguagem natural, como o exemplo mostrado aqui de
frases que comeam com "o que ", tendem a ter Zipf-like
distribuies. Natural bots pesquisa de linguagem como o Ask Jeeves so baseados
em respostas pr-programadas para os tipos mais comuns de pesquisa
perguntas que as pessoas.
Uma revoluo no A..
Um sinal claro de uma revoluo bem sucedida quando o original
revolucionrios quebrar em faces e comear a brigar entre
si. Esse debate um luxo antes que o status quo
derrubados, mas uma caracterstica quase necessria para a estabilidade
depois. O movimento do software livre Alicebot e AML tem esse tipo
do sucesso revolucionrio em espadas, a julgar pela quantidade de
disputas que passou.
Em termos gerais, a comunidade AML foi dividido em dois campos, que eu chamo
o "reducionista" e as faces "experimentalista". o
Reducionistas pertencem longa tradio da lgica matemtica que
comeou com Aristteles. Eles iriam manter a linguagem to simples como
possvel (se no mais simples :-)), de modo que ela pode suportar o rigor do
anlise matemtica, teoria e prova. Reducionistas so fortemente
atrado pela filosofia de design minimalista da AML.
Experimentalistas so aqueles que vem a AML mnimo que existe hoje
como a mera semente de uma grande rvore de uma nova lngua. No h
falta de ideias para a adio de novos recursos e tags para AML em apoio
de peer-to-peer, aprendizagem, reconhecimento de voz, animao de personagens,
controle do rob, caractersticas da linguagem de programao de uso geral, e muitos
mais. Estes todos tomar AML alm da linguagem simplista favorecido por
os reducionistas. Em certo sentido, os experimentalistas so movidos por
a necessidade de criar aplicaes prticas com a tecnologia AML, e
a percepo de que recursos adicionais permitir que aqueles
aplicaes.
Uma verso inicial deste debate surgiu quando eu levantei a questo,
"AML um alto nvel ou uma linguagem de baixo nvel?". Tom apontou Ringate
que "baixo nvel" significa "perto da mquina" em termos de
hardware, e lnguas "de alto nvel" so abstrados longe da
detalhes da arquitetura subjacente. Por esse raciocnio, AML uma
linguagem "de alto nvel", como Lisp, C + +, Java, ou SETL.
Mas eu disse: espere um minuto, no um modelo de hardware para AML.
chamado de "o crebro". Sabendo apenas alguns detalhes da neurocincia,
realmente fcil de imaginar como o crebro poderia implementar um
<category> estmulo-resposta. Tambm fcil de imaginar o crebro
execuo de um <srai> (n) atravs de um circuito de feedback. muito mais difcil
entender como o crebro iria implementar <condio> ou
<javascript>. Manter AML puro o suficiente para que um dia, algum cientista
mais inteligente do que ns pode ser capaz de mapear o nosso conhecimento sobre o ser humano
crebro uma perspectiva interessante para a abordagem reducionista.
Podemos ter as duas coisas? A resposta sim, eu acho que, se formos
o cuidado de especificar as interfaces de AML. O <system> e
Tag <javascript> j oferecem duas maneiras de processar a informao
no exterior do motor AML. No futuro, devemos considerar mais
cuidadosamente como fazer ALCE um "container" que facilmente acessado por
outras aplicaes. Uma outra soluo oferecida por espaos de nomes, que
permitir a incorporao de outras linguagens XML em AML. Os reducionistas vontade
estar satisfeitos enquanto h poucas mudanas no tagset AML
si.
CAPTULO . Viso de AML
AML, ou nteligncia Artificial Mark-up Language permite que as pessoas entrada
conhecimento em chat-bots baseado na tecnologia de software livre ALCE.
AML foi desenvolvido pela comunidade de software livre Alicebot e eu durante
1995-2000. Foi originalmente adaptado de uma gramtica no XML tambm chamado AML,
e serviu de base para o primeiro Alicebot, ALCE, a Artificial
Linguistic nternet Computer Entity.
AML, descreve uma classe de objetos de dados chamados objetos AML e parcialmente
descreve o comportamento de programas de computador que as processa. objetos AML
so feitos de unidades chamadas temas e categorias, que contm ou analisado
ou no analisado dados.
Dados analisada composta de caracteres, algumas das quais formam os dados de caracteres,
e alguns dos elementos que formam AML. Elementos AML encapsular o
conhecimento de resposta a estmulos contidas no documento. dados de caracteres
dentro desses elementos , por vezes, analisado por um interpretador AML, e
s vezes esquerda no analisada para posterior processamento por uma Resposta.
CATEGORAS
A unidade de base de conhecimento em AML chamado uma categoria.
Cada categoria consiste de uma pergunta de entrada, uma resposta de sada,
e um contexto opcional. A questo, ou estmulo, chamado o padro.
A resposta, ou resposta, chamado o modelo.
Os dois tipos de contexto opcional so chamados "que" e "Tpico".
A linguagem padro AML simples, consistindo apenas de palavras, espaos,
e os smbolos curingas _ e *.
As palavras podem consistir de letras e nmeros, mas no ot seus personagens.
O idioma padro caso invariante.
As palavras so separados por um nico espao,
e os caracteres curinga funcionam como palavras.
As primeiras verses do AML permitido somente um caractere curinga por padro.
O padro de 1,01 AML permite que vrios curingas em cada padro, mas o
linguagem projetado para ser o mais simples possvel para a tarefa em mos,
mais simples at do que expresses regulares. O modelo a resposta AML ou
responder.
Na sua forma mais simples, o molde consiste apenas de texto simples e no marcado.
Mais geralmente, as etiquetas AML transformar a resposta em um mini computador
programa que pode salvar os dados, ativar outros programas,
dar respostas condicionadas, e de forma recursiva chamar o correspondente padro
para inserir as respostas de outras categorias.
A maioria das tags AML na verdade pertencem a este modelo de sub linguagem do lado.
AML atualmente suporta duas maneiras para fazer a interface outras linguagens e sistemas.
A tag <system> executa qualquer programa acessvel como um sistema operacional
shell de comando, e insere os resultados na resposta.
Do mesmo modo, a tag <javascript> permite scripting arbitrria no interior do
templates. A poro da categoria contexto opcional consiste
duas variantes, chamados <that> e <topic>.
A tag <that> aparece dentro da categoria, e seu padro deve
corresponder ltima expresso do rob. Lembrando mais uma expresso
importante se o rob faz uma pergunta. A tag <topic> aparece
fora da categoria, e recolhe um conjunto de categorias em conjunto.
O tpico pode ser definido dentro de qualquer modelo.
AML no exatamente o mesmo que um simples banco de dados de perguntas e
respostas. A correspondncia de padres de linguagem "consulta" muito mais simples do que
algo como SQL. Mas um modelo categoria podem conter o recursiva
<srai> marcao, de modo que a sada no depende somente um combinado
categoria, mas tambm todos os outros de forma recursiva alcanado atravs <srai>.
RECURSO
AML implementa recursividade com o operador <srai>. Sem acordo
existe sobre o significado da sigla. O ".A." stands para
inteligncia artificial, mas "S.R." pode significar "estmulo-resposta",
"reescrita sinttica", "reduo simblica", "recurso simples", ou
"resoluo sinnimo." O desacordo sobre a sigla reflete a
variedade de aplicaes para <srai> em AML. Cada um destes descrito
em mais pormenor num subseco abaixo:
(1). Reduo simblico: Reduzir formas gramaticais complexos para os mais simples.
(2). Dividir e Conquistar: Dividir uma entrada em dois ou mais sub-partes,
e combinar as respostas a cada um.
(3). Sinnimos: Mapa maneiras diferentes de dizer a mesma coisa para o
resposta mesmo.
(4). Ortogrficos ou gramaticais correes.
(5). Deteco de palavras-chave em qualquer lugar na entrada.
(6). Condicionais: Certas formas de ramificao pode ser implementado
com <srai>.
(7). Qualquer combinao de (1) - (6).
O perigo de <srai> que ela permite a botmaster para criar
loops infinitos. Embora posando algum risco para programadores iniciantes, ns
suspeitaram que a incluso <srai> era muito mais simples do que qualquer um dos
iterativo bloquear tags de controle estruturados que poderia ter substitudo ele.
REDUES SMBLCOS
Reduo simblica refere-se ao processo de simplificao da complexa
formas gramaticais em outras mais simples. Normalmente, os padres atmicos em
Categorias armazenar conhecimento rob so demonstrados no mais simples possvel
termos, por exemplo, tendem a preferir padres como "Quem SOCRATES"
para aqueles como "VOC SABE QUEM Scrates " ao armazenar biogrfico
informaes sobre Scrates.
Muitas das formas mais complexas reduzir a formas mais simples usando AML
categorias concebidas para a reduo simblica:
<category>
<padro> VOC SABE QUEM * </ pattern>
<template> <srai> QUEM <star/> </ srai> </ template>
</ category>
Seja qual for a entrada acompanhado este padro, a parcela vinculada ao wildcard
* Pode ser inserido na resposta com o <star/> marcao. este
categoria reduz qualquer entrada na forma de "Voc sabe quem X?" a "Quem
X? "
Dividir para conquistar
Muitas sentenas individuais pode ser reduzido para duas ou mais sentenas sub,
e a resposta formado pela combinao das respostas para cada um. Uma sentena
comeando com a palavra "Sim", por exemplo, se tiver mais do que uma
palavra, pode ser tratado como o sub frase "Sim". mais o que se segue
lo.
<category>
<padro> SM * </ pattern>
<template> <srai> YES </ srai> <sr/> </ template>
</ category>
O <sr/> marcao simplesmente uma abreviatura para <srai> <star/> </ srai>.
SNNMOS
O padro de 1,01 AML no permite mais de um padro por
categoria. Sinnimos so, talvez, a aplicao mais comum de
<srai>. Muitas maneiras de dizer a mesma coisa reduzem a uma categoria, que
contm a resposta:
<category>
<padro> OL </ pattern>
<template> Hi there! </ template>
</ category>
<category>
<padro> H </ pattern>
<template> <srai> OL </ srai> </ template>
</ category>
<category>
<padro> H THERE </ pattern>
<template> <srai> OL </ srai> </ template>
</ category>
<category>
<padro> HOWDY </ pattern>
<template> <srai> OL </ srai> </ template>
</ category>
<category>
<padro> HOLA </ pattern>
<template> <srai> OL </ srai> </ template>
</ category>
Ortografia e CORREO GRAMMER
O nico erro mais comum ortografia cliente o uso de "seu"
quando "voc" ou "voc " se destina. Nem toda ocorrncia de "seu"
no entanto deve ser transformado em "voc". Uma pequena quantidade de gramtica
contexto geralmente necessrio para pegar esse erro:
<category>
<padro> SEU A * </ pattern>
<template> Acho que quis dizer "voc" ou "voc " no "seu".
<srai> VOC UM <star/> </ srai>
</ template>
</ category>
Aqui o bot tanto corrige a entrada do cliente e atua como um tutor de linguagem.
PALAVRAS-CHAVE
Frequentemente ns gostaramos de escrev
er um modelo de AML que ativado
pelo aparecimento de uma palavra-chave em qualquer lugar na frase de entrada. o
formato geral de quatro categorias AML ilustrado pelo presente exemplo
emprestado de ELZA:
<category>
<padro> ME </ pattern>
<template> Conte-me mais sobre sua famlia. </ template>
</ category>
<category>
<padro> _ ME </ pattern>
<template> <srai> ME </ srai> </ template>
</ category>
<category>
<padro> ME _ </ pattern>
<template> <srai> ME </ srai> </ template>
</ category>
<category>
<padro> _ ME * </ pattern>
<template> <srai> ME </ srai> </ template>
</ category>
A primeira categoria detecta tanto a palavra-chave quando ela aparece, por si s,
e proporciona a resposta genrica. A segunda categoria detecta o
palavras-chave como o sufixo de uma frase. O terceiro detecta como o
prefixo de uma frase de entrada, e, finalmente, a ltima detecta a categoria
palavra-chave como um infixo. Cada uma das trs ltimas categorias utiliza <srai> para
ligao para o primeiro, de modo que todos os quatro casos, apresentar a mesma resposta, mas
ele precisa ser escrito e armazenado apenas uma vez.
condicionais
possvel escrever desvios condicionais em AML, utilizando apenas o
tag <srai>. Considere trs categorias:
<category>
<padro> quem ele </ pattern>
<template> <srai> WHOSHE <get name="he"/> </ srai> </ template>
</ category>
<category>
<padro> WHOSHE * </ pattern>
<template> Ele <get name="he"/>. </ template>
</ category>
<category>
<padro> WHOSHE DESCONHECDO </ pattern>
<template> Eu no sei quem ele . </ template>
</ category>
Provi ded que o predicado "ele" inicializado para "Desconhecido", o
Categorias executar um ramo condicional, dependendo se "ele" tem
foi definido. Como uma convenincia para o botmaster, AML tambm fornece a
funo equivalente com a tag <condio>.
VSANDO
Personalidades Bot so criados e moldados atravs de um processo cclico de
aprendizado supervisionado chamado Segmentao. Segmentao um ciclo
incorporando cliente, bot, e botmaster, em que as entradas do cliente que
no encontram correspondncia completa entre as categorias so registradas pelo bot e
entregue como alvos a botmaster, que ento cria adequado
respostas, comeando com as perguntas mais frequentes. O ciclo de Segmentao
produz uma personalidade bot progressivamente mais refinado.
A arte de escrever AML mais evidente na criao de default
categorias, que fornecem respostas evasivas para uma vasta gama de
insumos. Aqui est um exemplo muito bom desde encontrado na
placebo-geral mailing list:
Usurio: Onde posso encontrar a pgina web com Australopithecus?
Alice: Onde voc quer encontr-lo?
Usurio: Bad Resposta Alice, tempo para aprender uma nova linha
Alice: Como voc responderia "Onde posso encontrar a pgina web com
Australopithecus? "
Usurio: Eu diria: "http://www.ancientskulls.net/australopithecus.html"
Alice: Obrigado, humanos. Tente me perguntar novamente.
Usurio: Onde posso encontrar a pgina web com Australopithecus?
Alice: http://www.ancientskulls.net/australopithecus.html
Este um exemplo muito bom. Este exatamente o mesmo que a segmentao
quando o botmaster o professor. Ou devo dizer, uma AML
interface para segmentao. claro que este cenrio levanta muitos problemas,
como forma de eliminar os hackers e outros doadores de lixo, o que pode
significa apenas ligar a funo Learn, enquanto em um sandbox restrito,
embora seja o trabalho livre de muitos vibra na web que podem ajudar
o bot crescer sbio rapidamente.
Esse o ponto crucial do problema de aprendizagem em poucas palavras. Tudo vem
baixo para edio. Ou o botmaster edies respostas de boa qualidade aos
comear, ou se o bot "aberto ao pblico", em seguida, o professor tem
para editar todas as respostas de baixa qualidade fornecidos por todos os que "livre"
trabalho. Minha opinio pessoal que, em comparao com a aprendizagem hipottico
mquina capaz de aprendizagem da lngua como uma criana, o AML visando
abordagem mais eficiente.
CONTEXTO
A palavra-chave "que" em AML refere-se ao anterior do rob
enunciado. Especificamente, se o rob responde com um mltiplo
pargrafo sentena, o valor que est definido para a ltima frase
seqncia. A escolha de uma palavra-chave "que" motivada pela sua utilizao
na linguagem comum:
R: Hoje ontem.
C: sso no faz sentido.
R: A resposta 3.1412926 aproximadamente.
C: sso legal.
Em AML o <that> sintaxe ... </ que> inclui um padro que corresponda
elocuo anterior do rob. Uma aplicao comum de <that>
encontrada em sim-no perguntas:
<category>
<padro> YES </ pattern>
<that> Voc gosta Movies </ que>
<template> Qual o seu filme favorito? </ template>
</ category>
Esta categoria ativado quando o cliente diz que sim. O rob deve
descobrir o que ele est dizendo "sim". Se o rob perguntou: "Voc gosta
filmes? ", esta categoria de jogos, e a resposta:" Qual o seu
filme favorito? ", continua a conversa ao longo das mesmas linhas.
Uma aplicao interessante de <that> so categorias que permitem a
rob para responder a toc-toc piadas. As categorias:
<category>
<padro> Knock Knock </ pattern>
<template> Quem est a? </ template>
</ category>
<category>
<padro> * </ pattern>
<that> quem est l </ que>
<template> <person/> quem? </ template>
</ category>
<category>
<padro> * </ pattern>
<that> * OMS </ que>
<template> Ha ha muito engraado, <get name="name"/>. </ template>
</ category>
produzir o seguinte dilogo:
C: Knock Knock.
R: Quem est a?
C: Banana.
R: Banana quem?
C: Knock Knock.
R: Quem est a?
C: Banana.
R: Banana quem?
C: Knock Knock.
R: Quem est a?
C: Orange.
R: Laranja quem?
C: Laranja voc contente eu no disse de banana.
R: Ha ha muito engraado, Nancy.
nternamente, o interpretador AML armazena o padro de entrada, esse padro
e padro tema ao longo de um caminho nico, como: <that> entrada que <topic>
TOPC. Quando os valores de <that> ou <topic> no forem especificados, o
programa implicitamente define os valores do correspondente que ou TOPC
padro para o curinga *.
A primeira parte do caminho para corresponder representa a entrada. Se mais de um
categoria tem o mesmo padro de entrada, o programa pode distinguir
entre eles, dependendo do valor de <that>. Se dois ou mais
categorias tm o mesmo <pattern> e <that>, o passo final a
escolher a resposta baseada no <topic>.
Esta estrutura sugere uma regra de design: nunca use <that> a menos que voc
ter escrito duas categorias com o mesmo <padro>, e nunca usar
<topic> a menos que voc escrever duas categorias com o mesmo <padro> e
<that>. Ainda, uma das aplicaes mais teis para <topic>
criar sujeito-dependentes "cantadas", como:
name="CARS"> <topic
<category>
<padro> * </ pattern>
<template>
<random>
<li> Qual o seu carro favorito? </ li>
<li> Que tipo de carro voc dirige? </ li>
<li> Voc recebe um monte de bilhetes de estacionamento? </ li>
<li> Meu carro favorito um com um motorista. </ li>
</ random>
</ template>
Considerando o grande tamanho do conjunto de coisas que as pessoas poderiam dizer que
so gramaticalmente correta ou semanticamente significativa, o nmero de
coisas que as pessoas realmente fazem dizer surpreendentemente pequeno. Steven Pinker, em
seu livro Como a mente funciona, escreveu: "Digamos que voc tem dez opes para o
primeira palavra para comear uma frase, dez opes para a segunda palavra
(produzindo 100 incios de duas palavras), dez opes para a terceira palavra
(produzindo um milhar de palavras de trs comeos), e assim por diante. (Ten em
facto de a mdia geomtrica aproximada do nmero de escolhas de palavras
disponvel em cada ponto na montagem de uma gramtica e sensvel
sentena). Um pouco de aritmtica mostra que o nmero de sentenas de
20 palavras ou menos (e no uma extenso incomum) de cerca de 1020. "
Felizmente para bate-papo programadores rob, os clculos de Pinker so a forma
off. As nossas experincias com a Alice indicar que o nmero de
opes para a "primeira palavra" mais do que dez, mas que apenas cerca
dois mil. Especificamente, cerca de 2000 palavras cobre 95% de toda a
As primeiras palavras de entrada para A. L. . C. E.. O nmero de escolhas para o segundo
palavra de apenas dois. Para ter certeza, existem algumas primeiras palavras (""
e "Voc", por exemplo), que tm muitas segundas palavras possveis, mas o
mdia global de apenas duas palavras. A taxa mdia de ramificao
diminui com cada palavra sucessiva.
Temos traado algumas belas imagens do contedo do crebro ALCE
representados por este diagrama
(http://alice.sunlitsurf.com/documentation/gallery/). Mais do que apenas
fotos elegantes do crebro ALCE, essas imagens em espiral (ver
mais) delinear um territrio de linguagem que tem sido efetivamente
"conquistado" por A. L. . C. E. e AML.
Nenhuma outra teoria de processamento de linguagem natural pode explicar melhor ou
reproduzir os resultados dentro de nosso territrio. Voc no precisa de um complexo
teoria de aprendizagem, redes neurais, ou modelos cognitivos para explicar como
conversar dentro dos limites de 40.000 categorias de Alice. nosso
modelo estmulo-resposta to bom uma teoria como qualquer outra para estes
casos, e certamente o mais simples. Se houver qualquer espao para
"superiores" teorias da linguagem natural, encontra-se fora do mapa do
A. L. . C. E. crebro.
Acadmicos gostam de inventando enigmas e paradoxos lingsticos que
supostamente mostram o quo difcil o problema de linguagem natural . "John
viu as montanhas voando sobre Zurich "ou" Moscas como um banana "
revelar a ambiguidade da linguagem e os limites de um estilo de ALCE
abordagem (embora no estes exemplos especficos, claro,
A. L. . C. E. j sabe sobre eles). Nos prximos anos vamos
s avanar a fronteira mais. O esquema bsico da espiral
grfico pode parecer a mesma coisa, por que encontramos todos os "grandes rvores"
de "A *" para "SEU *". Essas rvores podem tornar-se maior, mas menos
prpria linguagem muda no vamos encontrar mais rvores de grande porte (com exceo de
curso de lnguas estrangeiras). O trabalho das pessoas que procuram explicar
linguagem natural em termos de algo mais complexo do estmulo
resposta ter lugar alm de nossa fronteira, cada vez mais no
interior ocupado por apenas as formas mais raras de linguagem. nosso
territrio da linguagem j contm a maior populao de
frases que as pessoas usam. Expandindo as fronteiras ainda mais, vamos
continuar a absorver os atrasados de fora, at o ltimo ser humano
crtico no consigo pensar em uma frase para "enganar" ALCE.
CAPTULO . AML Pattern Matching
Este captulo apresenta uma explicao de como o Graphmaster funciona,
para aqueles que querem construir a sua prpria, ou simplesmente quer um profundo
compreenso da abordagem.
O GRAPHMASTER
O Graphmaster consiste em uma coleo de ns chamados
Nodemappers. Estes Nodemappers mapear os ramos de cada n. o
ramos ou so palavras ou curingas.
A raiz do Graphmaster um Nodemapper com cerca de 2000 ramos,
um para cada uma das primeiras palavras de todos os padres (40.000 no
caso da A. L. . C. E. crebro). O nmero de ns folha no grfico
igual ao nmero de categorias, e cada n de folha contm o
<template> tag.
H realmente apenas trs etapas para combinar uma entrada para um
padro. Se voc est determinado (a) uma entrada de partida com a palavra "X", e (b)
um Nodemapper do grfico:
A Nodemapper conter a tecla "_"? Se assim for, pesquisar o grfico sub
enraizada no n filho ligados por "_". Tente todos os sufixos restantes
a entrada aps "X" para ver se um jogos. Se nenhuma correspondncia foi encontrada,
tente: O Nodemapper conter a tecla "X"? Se assim for, procure o
sub grfico enraizada no n filho ligados por "X", utilizando a cauda do
entrada (o sufixo da entrada com "X" removido). Se nenhuma correspondncia foi
encontrado, tente: O Nodemapper conter a tecla "*"? Se assim for, procure o
sub grfico enraizada no n filho ligados por "*". Experimente todas permanecendo
sufixos de entrada aps "X" para ver se um jogos. Se nenhuma correspondncia
foi encontrado, volte para cima do grfico para o pai deste n e colocar
Volta "X" na cabea da entrada. Para completar, h tambm deveria
ser um caso de terminal: Se a entrada for nula (no h mais palavras) e
Nodemapper contm a chave <template>, em seguida, um fsforo foi encontrado. parar
a busca e retornar o n correspondente.
Se o Nodemapper raiz contm uma chave "*" e aponta para uma folha
n, em seguida, o algoritmo garantido para encontrar uma partida.
Note-se que:
Em cada n, o "_" tem prioridade, uma palavra atmica corresponder segundo
prioridade, e um "*" corresponde a prioridade mais baixa. Os padres no necessitam de ser
em ordem alfabtica, apenas parcialmente ordenado de modo que "_" vem
antes que qualquer palavra e "*" depois de qualquer palavra. A correspondncia a palavra-por-palavra,
No categoria por categoria. O algoritmo combina o padro de entrada,
o padro <that>, eo padro <topic> em um nico "caminho" ou
frase como: "PADRO <that> esse tpico <topic>" e trata o
<that> fichas e <topic> como palavras comuns. O padro, isso e
Padres tpico pode conter vrios curingas. O algoritmo de correspondncia
uma verso altamente restrito de profundidade-primeira busca, tambm conhecido como
retrocesso. Voc pode simplificar o algoritmo, removendo o "_"
wildcard, e considerando apenas os segundo duas etapas. Experimente tambm
compreender o caso simples de padres sem <that> e <topic>.
O sistema de arquivo Metfora A metfora conveniente para os padres de AML, e
talvez tambm uma alternativa para armazenamento de dados de padres e
modelos, o sistema de arquivos. Esperamos que agora quase todos
entende que os seus arquivos e pastas so organizados hierarquicamente,
numa rvore. Se voc usa Windows, Unix ou Mac, o mesmo princpio
vlido. O sistema de arquivos tem uma raiz, como "c: \". A raiz tem
alguns ramos que so arquivos, e alguns que so pastas. As pastas,
por sua vez, tem ramos que so ambas as pastas e arquivos. Os ns folha
de toda a estrutura da rvore so arquivos. (Alguns sistemas de arquivos tm
links simblicos ou atalhos que tudo que voc coloque "backward virtuais
links "na rvore e transform-lo em um grafo direcionado, mas esquecer
que a complexidade por enquanto). Cada arquivo tem um "nome do caminho", que explicita
sua posio exata dentro da rvore.
"C: \ Meus Documentos \ Minhas fotos \ me.jpg"
denota um arquivo localizado abaixo de um determinado conjunto de ramos da raiz.
O Graphmaster est organizado em exatamente da mesma maneira. Voc pode escrever um
padro como "Eu gosto de *" como "g :/ / COMO / TO / star". Todos os outros
padres que comeam com "" tambm vo para o "g :/ /" pasta. todos
os padres que comeam com "eu gosto" ir na "g :/ / COMO /"
subpasta. (Esquecendo <that> e <topic> por um minuto) que pudermos
imaginar que a pasta "g :/ / COMO / TO / estrela" tem um nico arquivo chamado
"template.txt" que contm o modelo.
Se todos os padres e modelos so colocados no sistema de arquivos em
Dessa forma, pode-se facilmente reescrever a explicao da correspondncia
algoritmo: Se voc est dado uma entrada comeando com a palavra "X" e um
pasta do sistema de arquivos:
Se a entrada for nulo, e a pasta contm o arquivo "template.txt",
parar. Ser que a pasta contm a subpasta "sublinhado /"? Se assim for,
altere o diretrio para o "sublinhado /" subpasta. Experimente todas permanecendo
sufixos de entrada aps "X" para ver se um jogos. Se nenhuma correspondncia
foi encontrado, tente: Ser que a pasta contm a subpasta "X /"? Se assim for,
altere o diretrio para a subpasta "X /", utilizando a cauda da entrada
(o sufixo da entrada com "X" removido). Se nenhuma correspondncia foi encontrada,
tente: Ser que a pasta contm a subpasta "star /"? Se for assim, alterar
diretrio para o "star /" subpasta. Tente todos os sufixos restantes do
entrada aps "X" para ver se um jogos. Se nenhuma correspondncia foi encontrada,
altere o diretrio de volta para o pai desta pasta e colocar "X" de volta
na cabea da entrada. [Nota do Editor: "sublinhado" e "estrela" como
nomes de diretrios acima so destinadas a substituir "_" e "*", que so
no permitiu que os nomes de arquivo ou diretrio em alguns operacional
sistemas. Uma vez que os literais "sublinhado" e "estrela" pode ser real
palavras em um padro, talvez uma implementao real, ao longo destas linhas
iria usar alguns outros smbolos que servem a mesma funo.]
Voc pode ver que o algoritmo de correspondncia especifica um eficaz
procedimento para procurar o sistema de arquivos de um determinado arquivo chamado
"template.txt". O nome de caminho distingue de todos os diferentes
arquivos "template.txt" um do outro.
Alm do mais, voc pode visualizar a "compresso" do Graphmaster em
hierarquia do sistema de arquivos. Todos os modelos com prefixos comuns
tornar-se "comprimido" em caminhos individuais a partir da raiz. evidente que esta
mtodo de armazenamento escalas melhor do que uma simples linear, matriz, ou banco de dados
armazenamento de padres, se elas so armazenadas na RAM ou no disco.
3. Graphmaster For Dummies
Aqui est uma explicao muito simples de Graphmaster correspondncia de padro:
Ele funciona como um dicionrio ou enciclopdia. Se voc quer olhar
uma palavra ou frase, voc no comear no incio ou no final e
pesquisar atravs de cada entrada at encontrar um jogo. No, voc primeiro turno
a seo que corresponda a primeira letra ou palavra. Ento, voc pular
para outra seo que contm um princpio definido com a prxima letra
ou palavra. Voc continua neste processo at que voc encontre a sua palavra ou
frase.
No Graphmaster, os wildcards "*" e "_" agem como duas especiais
letras, que vm antes de "0" e depois "Z", respectivamente. voc deveria
verifique sempre os "_" listas em primeiro lugar, no caso de sua entrada tem um fim
listado l. Verifique as listagens alfabticas prximos. Se voc no encontrar
qualquer combina l, experimente os padres comeando com "*".
A nica complicao final que o "*" e "_" pode aparecer em
padres que comeam com "[0-9A-Z]". Se a sua entrada corresponda a algum
prefixo padro, ento tente os padres com esse prefixo seguido por "_"
em primeiro lugar, depois os com esse prefixo seguido de uma palavra, finalmente
tentar os com o prefixo seguido por "*".
ALCE NO CREBRO GALERA
Os olhos em forma de parcelas espiral de log todos os 24.000 categorias
no Crebro ALCE. A espiral em si representa a raiz. As rvores
emergindo a partir da raiz so os padres reconhecidos por Alice. o
fator de ramificao para a raiz de cerca de 2000, mas a mdia de ramificao
factor da segunda palavra padro apenas cerca de dois.
Aqueles familiarizados com o meu trabalho anterior sobre sensores logmap
e algoritmos para processamento visual cortical pode observar o
semelhana com o enredo Graphmaster. Esta semelhana na minha opinio
nenhuma coincidncia. O mesmo permite que a arquitectura cortical em tempo real,
baseada em ateno o processamento visual, pode de fato ser aplicada a
processamento lingstico tambm.
Este grfico mostra um quarto dos padres Srai.aiml, ou
cerca de 2000 padres total. Os quatro grandes rvores no canto inferior direito so
todos os padres enraizados nas palavras o que, quando, onde e quem
respectivamente (da direita para a esquerda). Estas reas mostram a compresso
poder do grfico Graphmaster no seu melhor.
Traando os padres de Atomic.aiml, estamos vendo
1/4 do grfico Graphmaster. Os crculos amarelos indicam <terminal>
ns e o magenta so os ns com um <template>.
A ideia a parcela da raiz do grfico como uma espiral,
porque tem a maioria dos ramos. Com os nossos 24 mil categorias, o
nmero de opes para a primeira palavra neste enredo exatamente o de 2001 (!)
assim a espiral tem 2.001 filiais de 1 nvel. A trama mostra o grfico
para o nvel 3, com palavras para os dois primeiros nveis.
A trama mostra todos os ramos do grfico com
24.000 categorias carregado. A espiral em si a raiz, com um
factor de cerca de 2000 [O nmero de escolhas para a primeira ramificao
palavra em uma frase de entrada]. As rvores mostram a ramificao mdia
fator para a segunda palavra de cerca de dois, embora existam alguns
densas "arbustos" que representam padres que comeam com "", "Voc", "como",
"O que", "quando", "onde", "quem" e alguns outros.
O grfico mostra um quarto das categorias do arquivo
Atomic.aiml. O esquema de cores mostra cada nvel do grfico como um
cor diferente. A maioria das categorias no crebro ALCE tem <that> e
<topic> ambos iguais a "*". A redundncia correspondente na
Graphmaster subgrafos ilustrado na parte inferior direita.
Este lote 1024x768 de alta resoluo mostra o ALCECrebro com 24.637 categorias carregadas. A
coluna vertebral realmente um logespiral, mas com um expoente prximo da unidade, de modo quase
a mesmacomo uma espiral linear. Linhas cinzas indicam os ns com exatamente umramo. As linhas
pretas so ns com dois ou mais ramos. a folhans temos dois ramos, porque eles armazenam tanto
<template> e<filename>.
Esta "espiral quadrado" foi formado atravs da modulao do logespiral com uma onda senoidal. Os
nmeros resultantes usa mais dorea do que a espiral log-primas exibir. A trama tambm mostra as
palavras classificado por comprimento de palavra, o que resulta em um bom equilbrio entre agrficos
sub. Grandes subrvores tendem a comear com as palavras mais curtas, como"A", "", "VOC", e "o
qu". Palavras mais longas tendem a ter menosramos. Arranjando o grfico desta forma, os ramos perto
docentro da espiral so geralmente menos do que os ramos perto dofora. O quadro torna mais fcil ver
as sub-rvores que, digamos, um ordem alfabtica, o que muitos
aglomerados sub-rvores no centro.
Mais do que apenas um grfico elegante do crebro ALCE, estes espiralimagens delinear um territrio
de linguagem que tem sidoefetivamente "conquistado" por ALCE e AML. Nenhuma outra teoria dos
recursos naturaisprocessamento de linguagem pode explicar melhor ou reproduzir os resultados
dentronosso territrio. Voc no precisa de uma complexa teoria de aprendizagem, neural
redes, ou modelos cognitivos para explicar como conversar dentro dos limites da
40.000 categorias de Alice. Nosso modelo de estmulo-resposta uma boa
teoria como qualquer outro para estes casos, e, certamente, os mais simples.
Se houver qualquer espao para "superiores" teorias da linguagem natural,
est fora do mapa do crebro ALCE. Acadmicos gostam de
inventando enigmas e paradoxos lingsticos que supostamente mostram como
difcil o problema de linguagem natural . "Joo viu as montanhas
sobrevoando Zurique "ou" moscas de frutas como a banana "revelar a
ambiguidade da linguagem e os limites de uma abordagem de estilo ALCE
(Embora no estes exemplos especficos, claro, Alice j sabe
sobre eles).
Nos prximos anos ns s avanar a fronteira mais. O
esquema bsico do grfico espiral pode parecer a mesma coisa, pois temos
encontrados todos os "grandes rvores" de "A *" para "SEU *". Essas rvores podem
tornam-se maiores, mas a menos que a prpria linguagem muda que no vai encontrar nenhuma
mais rvores de grande porte (exceto, claro, em lnguas estrangeiras).
O trabalho das pessoas que pretendem explicar a linguagem natural em termos de
algo mais complexo do que a resposta de estmulo ter lugar alm
nossa fronteira, cada vez mais no serto ocupado apenas pelo
formas mais raras de linguagem.
Nosso territrio da linguagem j contm a maior populao de
frases que as pessoas usam. Expandindo as fronteiras ainda mais, vamos
continuar a absorver os atrasados de fora, at o ltimo ser humano
crtico no consigo pensar em uma frase para "enganar" ALCE.
CAPTULO . As redues simblicas em AML
AML (Artificial ntelligence Markup Language) contm um simples mas
poderoso XML markup tag chamado <srai>. "Reduo Artificial Simblica
nteligncia "," Rewrite sinttica A "," A recursiva simples ",
"Estmulo-resposta A" - esta tag tem muitas siglas. No entanto, o significado de
a marcao <srai> X </ srai> simples: A tag <srai> sempre aparece em
o modelo de resposta, mas o rob trata X, assim como uma entrada para
o rob. O rob varre sua memria e encontra o melhor
resposta para X. A nica parte complicada que a resposta ao X pode-se
conter mais tags <srai>.
A melhor maneira de entender a ao recursiva da tag <srai> AML
pelo exemplo.
Cliente: Voc pode dizer isso de novo Alice.
Rob: Mais uma vez? "aquilo".
O rob no tem resposta especfica para o padro "Voc pode dizer que
Alice novamente. "Em vez disso, o rob constri a sua resposta para o cliente
entrada em quatro etapas. Esta frase simples ativada uma seqncia de quatro
categorias ligadas por tags <srai>. O rob construdo a resposta
"Mais uma vez?" Que "de forma recursiva como cada subsentence desencadeou a prxima
padro de correspondncia.
Neste exemplo, o processamento prossegue em quatro etapas, porque cada um de
as trs primeiras etapas evoca outra reduo simblica.
Passo resposta modelo normalizado entrada correspondncia de padres
1. Voc pode dizer isso de novo ALCE _ <nome/> <sr/>
2. Voc pode dizer isso de novo _ mais uma vez mais? <sr/> Once More?
3. Voc pode dizer que voc possa * <sr/> Once More?
4. DZER QUE DZER * "<person/>" Once More? "que".
Na etapa 1, os padres com "_" corresponde ao primeiro, porque eles so em ltima
ordem alfabtica. A ordem dos jogos depende desta
ordem alfabtica dos padres. ALCE sempre corresponde com sufixos
"_" Antes de prefixos com "*". O que quer que corresponda ou smbolo wild-card
torna-se o valor de <star/>.
Os passos 1 a 3 ilustram os modelos AML comuns que usam o
tag <sr/> abreviado. (Lembre-se, <sr/> = <srai> <star/> </ srai>). o
categorias com os padres "_ <nome/>" e "VOC PODE *" simplesmente reduzir
a pena para o que quer que coincide com o "*", tal como ilustrado por passos 1
e 3.
Alguns modelos AML em ALCE combinar o <sr/> com um texto comum
resposta, como o passo 2 com o padro "_ de novo." A frase "Uma vez
mais? "torna-se parte de qualquer resposta que terminam em" novo ".
A categoria no passo 4 com "DGA *" um padro que muitas vezes produz
dilogo logicamente correta, mas divertido:
Cliente: Diga Ol em sueco.
Robot: "Ol, em sueco."
ou, como no presente caso:
Cliente: Diga isso.
Rob:. "Que"
Muitos padres, uma resposta O uso mais comum de <srai> mapear dois,
ou mais, os padres de resposta para a mesma:
<category>
<padro> P </ pattern>
<template>
<srai> Q </ srai>
</ template>
</ category>
<category>
<padro> Q </ pattern>
<template> R </ template>
</ category>
Uma entrada de correspondncia ou padro, P ou Q, obtm a mesma resposta R.
Para mostrar um exemplo mais concreto: a entrada "Ol" deve ter uma
resposta apropriada como "Hi there!". Mas podemos expandir as entradas
gerar essa resposta para incluir todas as variaes comuns
"Ol":
<category>
<padro> H </ pattern>
<template>
<srai> OL </ srai>
</ template>
</ category>
<category>
<padro> HOWDY </ pattern>
<template>
<srai> OL </ srai>
</ template>
</ category>
<category>
<padro> HALLO </ pattern>
<template>
<srai> OL </ srai>
</ template>
</ category>
<category>
<padro> H THERE </ pattern>
<template>
<srai> OL </ srai>
</ template>
</ category>
<category>
<padro> OL </ pattern>
<template> Hi there! </ template>
</ category>
Como mostra o seguinte exemplo, podemos usar a tag <sr/> como um
abreviatura para <srai> <star/> </ srai>. Esta categoria cria um
resposta composto para ambos "Ol" e tudo o que corresponde ao "*":
<category>
<padro> OL * </ pattern>
<template>
<srai> OL </ srai> <sr/>
</ template>
</ category>
curingas MLTPLAS
Alguns autores AML pode perguntar por que AML no (ainda) no permitir que duas (ou mais)
smbolos universais por padro. Na implementao Java de hoje,
os smbolos "*" e "_" aparece no mximo uma vez no padro AML. um
s vezes gosto de escrever padres como <padro> * LEGAL
* </ pattern>. Padres curinga comeando e terminando com "*" so uma
subconjunto especialmente atraente para considerar. No presente momento, o
Programa ALCE classifica todas as entradas padres correspondentes como
<padro> * LEGAL * </ pattern> na categoria padro armazenado em
Pickup.aiml.
Ao analisar as entradas classificadas como padro, o botmaster encontra
sufixos comuns. O arquivo Suffixes.aiml contm um nmero bastante grande
de categorias como este:
<category>
<padro> _ Voc no acha </ pattern>
<template>
<srai> voc acha <star/> </ srai>
</ template>
</ category>
Essas categorias servem para reescrever a entrada de uma forma mais simples, mais
susceptveis de corresponder um outro padro simples. Neste caso, o recursiva
resposta pode corresponder <padro> VOC PENSA * </ pattern>.
Redues simblicas e indicar o <that> tag em AML introduz uma
dimenso do "estado de dilogo" na resposta do rob. O valor de
<that> o que disse o rob antes que provocou a atual
a entrada do cliente.
As entradas "sim" e "no" so dois dos mais comuns humana
queries. Mas uma anlise cuidadosa dos dilogos mostra que a maioria dos
o tempo, as pessoas dizem "sim" ou "no" a apenas um pequeno conjunto de perguntas
perguntou pelo rob. Nosso YesNo.aiml arquivo contm o mais comum
Categorias ativado por "sim" ou "no". Na categoria:
<category>
<padro> NO </ pattern>
<that> EU ENTENDO </ que>
<template>
<srai> voc no entende </ srai>
</ template>
</ category>
ilustra a utilizao de <that> com <srai>. A entrada do cliente corresponde
simplesmente "no". O que o rob dizer que fez o cliente dizer no? Se
foi "Eu entendo". ento esta categoria formula uma resposta com
<srai> voc no entende </ srai>
que por sua vez ativa outra categoria com a marcao
<padro> voc no entende </ pattern>.
Esta categoria responde: "Eu no entendo tudo isso faz sentido para a minha.
mente artificial ".
A tag <srai> AML simplifica e combina quatro importante rob de bate-papo
operaes:
Mapas de vrios padres para a mesma resposta.
Reduz a estrutura da frase complexa para uma forma mais simples.
Diminui a necessidade de padres de entrada de vrios curingas.
Traduz entradas estado dependentes em stimulii simples.
Em alguns <srai> sentido um nvel muito baixo
funcionamento, mas a sua simplicidade capta uma vasta gama de papo tpico
funes do rob.
CAPTULO V. Perguntas e Respostas botmaster
- Qual a meta para AML?
AML (Artificial ntelligence Markup Language) uma especificao XML
para a programao de robs de bate-papo como Alice usando o programa B. A nfase
no design de linguagem o minimalismo. A simplicidade da AML faz
mais fcil para no-programadores, especialmente aqueles que j conhecem HTML,
para comear a escrever robs bate-papo.
Um objectivo ambicioso para AML que, se um nmero de pessoas que criam sua prpria
robs, cada um com uma nica rea de atuao, o programa B pode literalmente
fundir-classific-los juntos em um Superbot, automaticamente omitindo
duplicar categorias. Ns oferecemos o tanto o cdigo fonte e o ALCE
contedo, a fim de incentivar os outros vo "open source" o seu bate-papo
robs, bem como, contribuir para o Superbot.
Botmasters tambm, claro, est livre para copiar proteger robs chat privado.
- Quem o botmaster?
O botmaster voc, o mestre de seu rob chat. A botmaster executado
programa B e cria ou modifica um rob conversa com o programa
interface grfica do usurio (GU). Ele ou ela responsvel por
leitura dos dilogos, analisando as respostas, e criao de novos
respostas para os padres detectados pelo servidor AML. botmasters so
amadores, webmasters, desenvolvedores, publicitrios, artistas, editores,
editores, engenheiros, e qualquer pessoa interessada em criar um pessoal
conversar rob.
- Como eu posso criar meu prprio rob bate-papo?
O segredo para conversar programao de bot, se houver um, o que Simon
Laven chamado "teste beta contnuo". Programa B funciona como um servidor
e coleta de dilogo na web. O programa prev o bot bate-papo
desenvolvedor com uma ferramenta chamada "classificar dilogos", que testa a corrente
rob com a histria de consultas humanos acumulados. Alm disso, o programa
sugere novas categorias automaticamente, para o botmaster para refinar.
- Como que difcil criar um rob bate-papo?
No difcil. Se voc pode escrever HTML, voc pode escrever AML (Artificial
ntelligence Markup Language). Aqui um exemplo de um simples mas
completar rob de bate-papo em AML:
<aiml>
<category>
<padro> * </ pattern>
<template> Ol! </ template>
</ category>
</ AML>
As tags <aiml> ... </ AML> indicam que essa marcao contm uma
conversar rob. A marcao <category> indica uma categoria AML, o
unidade bsica de conhecimento rob chat. A categoria tem um <padro>
e uma <template>. O padro neste caso a wild-card
smbolo '*' que corresponde a qualquer entrada. O modelo apenas o texto
"Ol!" Como voc deve ter adivinhado, este rob de bate-papo simples, apenas
responde dizendo "Ol!" a qualquer entrada.
Voc pode comear com AML sabendo apenas as trs tags
<category>, <padro> e <template>, assim como voc pode ter comeou com HTML sabendo apenas
<a>, <img> e <h1>.
- O ALCE aprender?
O modelo de aprendizagem em ALCE chamado de "estgio supervisionado",
porque um professor, o botmaster, sempre desempenha um papel crucial.
A alternativa ", sem superviso de treinamento", complicado em
um ambiente aberto como a Web. O problema que os clientes
so professores no confiveis, e sempre tentar "enganar" o rob
com afirmaes falsas.
- O ALCE acha?
Depende do que voc quer dizer com "pensar". O mais fascinante
respostas do ALCE surgem quando ela diz algo
inesperado, ou rene as respostas de forma a botmaster
nunca recuado. Por exemplo:
Cliente: Eu aposto que voc gay.
ALCE: Na verdade eu no sou o tipo de jogos de azar. Na verdade, como uma mquina
Eu no tenho nenhuma necessidade de sexo.
Aqui, o rob ligado duas categorias diferentes, que tanto coincidentemente
ter um tema moral (jogos de azar e sexualidade). Mas esta combinao especfica era
no "pr-programado" pelo botmaster.
So essas respostas surpreendentes apenas coincidncias inesperadas, ou eles
indicam que o ALCE est pensando? ALCE apenas um gigantesco estmulo-resposta
mecanismo, ou somos ns?
- O que a teoria por trs ALCE?
Eu costumava dizer que no havia nenhuma teoria por trs de ALCE: nenhuma rede neural,
nenhuma representao do conhecimento, sem pesquisa, sem lgica fuzzy, no gentica
algoritmos, e no a anlise. Ento eu descobri que havia uma teoria
circulando em A aplicada chamado "Raciocnio Baseado em Casos" ou CBR que
mapas bem para o algoritmo de Alice. Outro termo, emprestado
reconhecimento de padres, a "classificao do vizinho mais prximo."
O CBR "casos" so as categorias em AML. O algoritmo encontra
melhor padro de correspondncia para cada entrada. A categoria amarra o
modelo de resposta diretamente para o padro de estmulo. ALCE
conceitualmente no muito mais complicado que ELZA de Weizenbaum
conversar rob, as principais diferenas so a base de casos muito maior ea
ferramentas para a criao de novos contedos por meio de anlise de dilogo.
ALCE tambm faz parte da tradio de "minimalista", "reativo" ou
robtica "estmulo-resposta". Robs mveis funcionam melhor, mais rpida e
demonstrar o comportamento mais animado, realista quando seu sensorial
inputs controlar diretamente as reaes motoras. De alto nvel simblico
processamento, pesquisa e planejamento, tende a retardar o processo de
demais para aplicaes realistas, mesmo com o controle mais rpido
computadores.
- Por que um AML categoria chamada "categoria"?
O termo foi emprestado da teoria de reconhecimento de padres.
O problema de reconhecimento de padro geral a partio de um espao de P
entradas em regies disjuntas para que o classificador padro pode
categorias de um ponto x de P em uma dessas regies. As regies so
chamado categorias C1, C2, ..., Cn.
Formalmente, a unio do Ci = P e da interseo de qualquer par de
Ci e Cj = (o conjunto vazio), sempre que eu (no igual a) j.
O problema de reconhecimento de padres categorizar x em uma das Ci.
Em muitos casos, a partio definir por uma funo de correspondncia f (x, )
que calcula uma "distncia" de x para a categoria Ci. Para qualquer dado
ponto x em P, x classificado como Ci, desde f (x, i) (no igual a)
f (x, j) por outra categoria j.
Se o espao de entrada composto de exames de cdigo de barras de 32 dgitos, e os
categorias representam diferentes itens venda, ento o problema
classificar uma dada entrada de 32 bits para o cdigo correspondente mais prximo para um
desses itens.
Se o espao de entrada composto de imagens da TV 250000-pixel do ser humano
rostos, e as categorias representam um conjunto f terroristas procurados, ento
o problema combinar a imagem com um dos terroristas. este
caso mostra que pode haver uma categoria especial C indicando "no
corresponder ".
No caso de AML, o espao de entrada constitudo por todos os P-3 de tupes
(entrada, que, topic) cordas em forma normalizada. As categorias AML
particionar o espao de padres em regies disjuntas, determinada pelo
ordem da funo correspondente.
Se a nica categoria o padro com <padro> = <that> =
<topic> = *, ento ambas as parties e preenche o padro
espao. Cada entrada corresponde a esse padro.
A adio de mais uma categoria, <padro> OL </ pattern> e <that> =
<topic> = *, divisrias do espao de entrada em duas regies: aqueles que
corresponder a esta nova categoria, e aqueles que correspondem ao padro.
- Pode probabilidade (estatsticas, pesos, redes neurais, ou difusos
lgica) melhorar bots?
As estatsticas so, de facto, muito utilizado no servidor de Alice, mas no em
do jeito que voc imagina. ALCE usa 'Zipf Analysis' para traar a frequncia classificao das categorias
ativadas e para revelar entradas de
o arquivo de log que ainda no tem respostas especficas, de modo a botmaster pode se concentrar em
responder perguntas que as pessoas realmente pedir (o
Funo "Quick Alvos").
Outras lnguas bot, nomeadamente o utilizado para Julia, fazem uso pesado de
"fuzzy", ou regras "ponderados". Vemos o seu problema como este: o
botmaster j tem o suficiente para se preocupar, sem ter que fazer-se
"nmeros mgicos" para cada regra. Uma vez que voc chegar at 10.000 categorias
(como Alice), voc no quer pensar em mais parmetros do que
necessrio. Lnguas bot com regras correspondncia difusa tendem a ter
problemas de escala.
Finalmente, as respostas bot no so to determinista como se poderia pensar, mesmo
sem pesos. Algumas respostas dependem <random> para selecionar um dos vrios
possveis respostas. Outras respostas geradas pela entrada do usurio imprevisto tambm
criar sadas "espontneos" que o botmaster no antecipar.
- Posso ter uma conversa privada com ALCE?
Os logs do servidor Alice e registros de todas as conversas. Mesmo a ALCE
Applet tenta transmitir logs de conversas de volta ao servidor de origem.
Voc pode ter uma conversa privada com ALCE, no entanto, se voc baixar
Programa B, D, ou um dos outros downloads gratuitos Alice,
para o seu prprio computador e execut-lo l. Rodando em sua mquina,
o servidor armazena todas as conversas no local.
- Como fao para pegar todas as ocorrncias de uma palavra-chave na entrada?
Voc s precisa:
<padro> palavra-chave </ pattern>
<padro> _ palavra-chave </ pattern>
<padro> PALAVRA-CHAVE _ </ pattern>
<padro> _-chave * </ pattern>
Use <srai> palavra-chave </ srai> para todos, mas o primeiro modelo.
Coloque a resposta desejada no primeiro modelo.
- Qual o uso exato para * e _? Quando usar um e quando o outro?
Eles so exatamente o mesmo, exceto que _ tem prioridade sobre qualquer palavra,
e qualquer palavra tem prioridade sobre *.
O significado "corresponder uma ou mais palavras".
- Como so alvos gerados?
O algoritmo de alvo perfeito no foi ainda desenvolvida. Enquanto isso,
contamos com a heurstica para selecionar alvos das categorias ativadas.
O crebro ALCE, no momento da redao deste artigo, contm cerca de 40 mil
categorias. Em qualquer dada execuo do servidor, no entanto, tipicamente, apenas um
alguns milhares dessas categorias so ativados. Potencialmente, todos os
categoria ativado uma fonte de alvos. Se mais do que uma entrada
activado algum estabelecimento, em seguida, cada uma dessas entradas de uma forma potencialmente
novo alvo. O primeiro passo na segmentao salvar toda a ativado
categorias e os insumos que eles ativados.
Programa dB um motor Alicebot experimental e servidor
que inclui o cdigo de ambos Programa D e B. Este programa o
cdigo-fonte do programa que a execuo no concurso realizado em Loebner
Museu da Cincia de Londres em 13 de outubro de 2001, onde ganhou seu ALCE
segundo Loebner prmio. Programa B foi a verso original do Java
Motor Alicebot e servidor. Quando Jon Baer assumiu desenvolvimento Java
em 2001, e, posteriormente, a Fundao ALCE patrocinou a
desenvolvimento do servidor de referncia AML 1.0, estes esforos veio a ser
conhecido como "Programa D". ("Programa C" refere-se coleo de AML
programas escritos em C / C + +).
Programa dB tem o seu prprio built-in algoritmo de segmentao automtica.
Programa dB se aplica a cada seis etapas
ativado categoria para aceit-lo como uma fonte de metas, ou
rejeit-la:
Se o modelo contm uma interjeio <srai> </ srai>, ento o padro
ou era SM, NO, SO, ou um de um nmero de outros
interjeies. Normalmente, esses casos so o cliente dizer sim ou no para
uma pergunta o rob perguntou. Aqui o botmaster pode adicionar uma sensvel
resposta resposta do cliente SM ou NO, o que faz um bom alvo.
Se o modelo contm uma XFND <srai> ... </ srai> ento o padro era
ou O QUE * QUEM * ONDE EST * ou algum outro padro semelhante
padro para uma questo de informao. Estes so geralmente bom, simples
alvos porque o botmaster muitas vezes pode "olhar para cima" a resposta em um
dicionrio ou livro de referncia, se ele / ela no sabe a resposta
j.
Mas, se o modelo tiver qualquer outro <sr/> ou <srai>, esta categoria
provavelmente no uma boa fonte de alvos. A maioria dos casos de <srai> reduzir
formas complexas de entradas em outras mais simples. O padro VOC SABE
* O QUE , por exemplo, sempre se reduz a <srai> QUAL
<star/> </ srai>. Geralmente melhor procurar alvos no
padres de terminais como o que *, que para escrever muitos novos especfica
padres baseados em padres redutveis como VOC SABE O QUE *.
O crebro ALCE usa uma categoria especial com o XFND padro *
para responder s perguntas de informao para o qual ela no tem uma
resposta especfica. A categoria XFND por si s no produz til
metas, por isso ignorar as metas dessa categoria, apesar de o
padro contm um curinga.
Outra categoria padro de pouca utilidade para a segmentao o nico com
padro de chamada ME *. Todas as categorias de nome dizendo como MY NAME S
*, MEU nome verdadeiro *, e aquele com <that> QUE POSSO CHAMAR
VOC </ que>, reduzir ao me chamar de * categoria. A menos que voc
interessado, por escrito, respostas especiais para muitas pessoas diferentes
nomes, ento a chamada ME * categoria no uma boa fonte de alvos.
Finalmente, se nenhum dos casos anteriores aplicam-se, o programa considera
se o padro correspondente contm um curinga *. Se o padro
atmica, a categoria no susceptvel de ser uma boa fonte de alvos. ele
Poderia ser, se considerado <that>, como no primeiro caso, ou <topic>,
mas isso seria demasiado avanado para este algoritmo. Se o padro
contm um curinga, em seguida, a categoria provavelmente uma boa fonte de
alvos.
Se o padro correspondente contm um curinga, o novo padro sugerido
gerado como se segue:
Alinhe a frase de entrada com o padro correspondente.
Criar um novo padro, usando as palavras do primeiro padro, alm de
mais uma palavra a partir da entrada.
ALGUNS EXEMPLOS
(1) Suponha que o tema "READY" e a seguinte conversa
fragmento ocorre:
Robot: Oh
Cliente: O QUE PZZA
Rob: Eu tenho que processar isso por um tempo.
A entrada corresponde a categoria com <padro> O QUE A * </ pattern>,
gerando uma resposta padro. O valor de <that> "OH". Navegao
as metas, o botmaster v:
Entrada: O QUE PZZA, OH, READY
Combinado: O QUE *, *, *
New AML: O QUE PZZA, *, *
O algoritmo de segmentao estendeu o padro existente por uma palavra
a entrada, para obter o novo padro AML "O QUE PZZA".
Na janela do modelo, os tipos botmaster:
Pizza um alimento delicioso feito com massa de po, queijo e molho de tomate.
O botmaster tambm pode clicar no boto <think> para adicionar o texto
Pizza um alimento delicioso feito com massa de po, queijo e molho de tomate.
<think>
<set name="it">
<set name="topic">
<person/>
</ set>
</ set>
</ think>
Mas ele / ela necessita de editar o texto para atingir o resultado desejado de
lembrando o tema "PZZA":
Pizza um alimento delicioso feito com massa de po, queijo e molho de tomate.
<think>
<set name="it">
<set name="topic">
PZZA
</ set>
</ set>
</ think>
Aps digitar este texto na rea de texto <template>, o botmaster
pode salvar a nova categoria com o boto Salvar categoria.
(2) No segundo exemplo, o cliente entrou "O QUE UMA PZZA", o
tema "PZZA", e o valor de <that> "Eu preciso processar
QUE por um tempo ".
O visor mostra Segmentao
Entrada: O QUE UMA PZZA, eu tenho que processar isso por um tempo, PZZA
Combinado: O QUE A *, *, *
New AML: O QUE UMA PZZA, *, *
Aqui, o algoritmo de segmentao novamente estendido o padro existente
uma palavra tirada da entrada, a criao do novo padro atmico "WHAT
UMA PZZA ".
O botmaster agora s precisa clicar no boto <srai> e adicione um pouco
texto para criar o modelo
<srai> QUE PZZA </ srai>
desde que previamente adicionados nessa categoria.
(3) No terceiro exemplo vamos comear com o seguinte fragmento de dilogo:
Cliente: Meu nome Rich.
Robot: Rich, voc meu mestre?
Cliente: Sim.
Robot: Oh.
O tema "READY". O botmaster v o display:
Entrada: SM, RCH VOC MEU MESTRE, READY
Matched: SM, *, *
New AML: SM, *, *
Aqui, o algoritmo de segmentao bruto falha na criao de um novo alvo
padro, mas tem, no entanto, detectou um bom novo alvo. o
botmaster edita as novas caixas de texto AML para que eles contm:
New AML: SM, * VOC MEU MESTRE, *
Agora, s / ele edita o template para ler:
Ok, eu vou obedecer somente voc.
E salva a nova categoria. Este exemplo mostra como a segmentao pode
ser utilizados para detectar novas categorias <that>.
(4) No prximo exemplo, o cliente pergunta: "O QUE O Gigante de Ferro". o
valor de <that> "por favor por", eo tema "PZZA".
O visor mostra Segmentao:
Entrada: O QUE O Gigante de Ferro, ESTEJA POR FAVOR, PZZA
Matched: Qual a *, *, *
New AML: qual o RON *, *, *
Neste caso, o algoritmo de padro alargado por uma palavra, mas desde
a entrada ainda continha mais palavras, o programa fez a nova AML
extremidade padro com o curinga *. Esse novo padro no muito
perfeito, porque a pergunta QUAL O RON * muito geral. Ento,
o botmaster pode optar por editar a tela de modo que ele mostra:
New AML: O QUE O Gigante de Ferro, *, *
Em seguida, escreva um modelo, e salvar o resultado.
(5) Neste exemplo, o botmaster v a exibio:
Entrada: OH, te vejo mais tarde, VOC
Matched: OH, *, *
New AML: OH, *, *
Esta informao quase intil, de modo a descartar o botmaster
alvo com o boto alvo de excluso. sto assegura que o alvo
no reaparecer quando se navega com o prximo alvo.
(6) Agora, suponha que o valor de <that> Diga-me, eo tema A
RDDLE. O cliente entra "Eu poderia lhe dar uma dica." o
visando display mostra:
Entrada: Eu poderia lhe dar uma dica, me diga, um enigma
Matched: Eu poderia *, *, *
New AML: eu poderia *, *, *
O botmaster reconhece que o termo "eventualmente" desempenha um papel pequeno na
resolver o significado do cliente, para que ele / ela usa o boto Reduzir para
criar o modelo:
<srai> EU PODERA <star/> </ srai>
O efeito da nova categoria eliminar o termo "eventualmente"
de todas as entradas comeando com "eu poderia".
CAPTULO V. PSYCH - Prolog Ativao de AML
Este captulo descreve um primeiro experimento ligando
uma nteligncia Artificial Markup Language
(AML) script para um programa Prolog. Especificamente,
usamos GNU gprolog para implementar um programa chamado
PSYCH (pronuncia-se "CYC"). O script usa AML
o comando <system> para ativar o PSYCH
senso comum motor de raciocnio.
Tudo aqui descrito ocorreu em um Linux
(Red Hat 7.1) mquina. Ainda no tentei correr
esta no Windows, embora haja um Windows
verso do gprolog disponvel.
O objetivo era criar um conjunto de categorias AML
que responder perguntas usando um programa Prolog.
Este experimento implementa um simples "isa"
hierarquia, de modo que o bot pode responder a perguntas como
" abaixar a comida?"
" rocha viva?"
" um co um animal?"
" um gato um animal de estimao?"
... e assim por diante.
O comando <system>
A abordagem bsica foi a interface de AML
Prolog atravs da tag <system> AML. o Prolog
programa funcionou como um executvel separado ativado
pela tag <system>.
No foi muito difcil fazer o download e
instalar o GNU gprolog interpretador e compilador
de http://pauillac.inria.fr/ ~ diaz / gnu-prlogo.
Existem pginas de documentao HTML e
vrios diretrios que contenham programao
exemplos. O Makefiles associados foram
um guia til para escrever e compilar
programas Prolog simples.
O gprolog suite inclui um compilador
criar programas executveis prlogo. o PSYCH
script foi compilado em um executvel chamado "Psych".
Normalmente Prolog executado de forma interativa alertando
modo, mas possvel para redireccionar a entrada
a partir de um arquivo ou com um cano.
A forma bsica de uma consulta prlogo como
isa (co, animal).
ou, mais geralmente
predicado (term1, term2, ...).
O perodo final importante, jogando muito o mesmo papel
como o fim "," em Java ou C + +. Assim, podemos consultar
o programa de psicologia a partir do shell com o comando:
% Echo "isa (co, animal)." |. / Psych
que ir imprimir um texto, incluindo o Prolog
responder "Sim" ou "No".
O comando bvio <system> seria algo
como
<system> echo "isa (<star index="1"/>, <star index="2"/>)." |
. / psych </ system>
nfelizmente, a aplicao de <system> em
programas B, D e dB usa o Java Runtime.exec ()
mtodo. O mtodo exec () tem alguns problemas conhecidos
lidar com tubos de Unix ("|") eo comando echo.
O shell script
Para contornar os problemas com tubos e ecoam em
Java Runtime.exec (), um script shell intermedirio foi
criado. Este script, chamado isa.sh, contm a linha:
echo "isaset ($ 1, $ 2)." |. / Psych | tail -2 | head -1
O comando echo insere os argumentos para isa.sh, US $ 1 e US $ 2,
no prlogo da consulta isaset string ($ 1, $ 2). Por exemplo, se
que digitou o comando
isa.sh co animais
O comando echo produz o "isaset (co, animal)" string.
O comando. / Psych executa o programa prlogo. a final
dois comandos no pipeline, cauda e cabea, simplesmente tira
o excesso de linhas de sada gerados pelo Prolog.
O PROGRAMA PROLOG
Outro obstculo menor neste experimento acabou por
ser que Prolog no implementar SA-hierarquias muito limpa.
No entanto, o programa de PSYCH implementa uma pequena isa-hierarquia
bem o suficiente para responder a algumas sim-no perguntas bsicas.
Um isa-hierarquia consiste de um conjunto de afirmaes sobre binrio
predicados, tais como:
isa (co, carnvoro).
isa (co, animal de estimao).
isa (gato, carnvoro).
isa (gato, animal de estimao).
isa (carnvoro, animal).
... e assim por diante.
O conjunto completo destas afirmaes usadas
neste experimento aparece abaixo.
Alm das afirmaes, existe uma geral
regra associativa algo como:
isa (X, Y): -
isa (X, Z), o SA (Z, Y).
Atravs da regra associativa, o programa pode raciocinar sobre
perguntas "isa" e responder a aqueles que no so explicitamente mesmo
indicado. A intuio por trs da regra "X um Y fornecido
que existe uma tal forma que Z Z e X Y. Z "Atravs do
regra associativa o bot pode raciocinar que uma vez que um co um
carnvoro, e carnvoro um animal, e um animal est vivo,
ento, portanto, um co est vivo.
Embora o fragmento Prolog anterior sintaticamente correto,
infelizmente, produz um loop infinito. sto parece
ser um efeito colateral da ordem de avaliao em Prolog de built-in
retrocesso.
O loop infinito evitado atravs da introduo de um novo predicado
isb (X, Y), definidos como se segue:
isb (X, Y): - isa (X, Y).
isb (X, Y): -
isa (X, Z),
isb (Z, Y).
Finalmente, o motor Prolog tenta encontrar no apenas um,
mas o conjunto de todas as solues, a um problema particular. em
o modo de console interativo, o usurio normalmente passo
atravs de todas as solues com retorno de carro. No nosso
modo no-interativo, queremos apenas saber se
o conjunto de solues no estiver vazia. Para esta finalidade
usamos o Prolog embutido SETOF predicado ():
isaset (X, Y): - SETOF (_, SB (X, Y), _).
A consulta com base na isaset predicado () chamado
pelo script shell descrito acima. O isaset ()
predicado retorna "Sim" ou "No", dependendo se
um conjunto de solues de SB (X, Y) existe
DAS CATEGORAS AML
A categoria AML usado para testar o programa Prolog PSYCH :
<category>
<padro> UM * A * </ pattern>
<template>
<system>
sh / home / alicebot / isa.sh <star index="1"/> <star index="2"/>
</ sistema>
</ template>
</ category>
Note-se que ao invs de apenas executar o script diretamente, Java
Runtime.exec () nos obrigou a preceder um comando "sh" para
da linha. Os valores de <star index="1"/> e
<star index="2"/>-se os argumentos para isa.sh.
A seguir, algumas categorias <srai> mapear variaes do
lgico "isa" pergunta ao padro simples um * A *.
<category>
<padro> UM * AN * </ pattern>
<template> <srai> UM <star/> A <star index="2"/> </ srai> </ template>
</ category>
Similar categorias <srai> foram definidos por:
<padro> UM * A * </ pattern>
<padro> UM * AN * </ pattern>
<padro> * A * </ pattern>
<padro> EST * AN * </ pattern>
e
<padro> ** </ pattern>
DLOGO AMOSTRA
O seguinte um exemplo de um dilogo entre um cliente
e o rob conversa com uma base Prolog
senso comum sistema de raciocnio:
Cliente: rico ativo?
Robot: Sim
Cliente: um menino de um mamfero?
Robot: Sim
Cliente: um co de um vegetal?
Rob: Sem
Cliente: um gato um animal de estimao?
Robot: Sim
Cliente: um alimento pinguim?
Rob: Sem
Cliente: um ser humano um mamfero?
Robot: Sim
Naturalmente, um tal modelo de raciocnio , por si s,
severamente limitada. Uma falha bvia que o bot
sempre responder "No" para todas as perguntas fora do domnio.
Cliente: um sapo de um anfbio?
Rob: No
Cliente: um relgio de um relgio?
Rob: No
Cliente: um cavalo um animal?
Rob: No
Este problema poderia ser abordado por adio de cdigo para o Prolog
programa para certificar-se de que os elementos da consulta so tambm
elementos do domnio de "isa".
Outro problema que o padro uma * A * pode corresponder
outros insumos para a qual o programa totalmente PSYCH
imprprio:
um dlar um pedao um bom preo?
uma grama, uma ona, ou um quilo maior?
A.. uma coisa boa?
ATVAO DE PROLOG AML
O experimento aqui descrito demonstra como ativar
um programa Prolog simples usando a tag <system> de AML.
sso mostra que um pouco de "raciocnio de bom senso" pode
ser adicionado a um bate-papo robot robot AML,
sem propor ou adicionar novas funcionalidades AML.
O programa PSYCH demonstrado aqui est actualmente limitada
somente SA-relaes, mas mais predicados do senso comum
pode ser facilmente adicionado. Por exemplo, alguns Prolog simples
predicados que define as relaes familiares:
pai (X, X): - falhar.
pai (X, Y): - matriz (X, Y).
pai (X, Y): - pai (X, Y).
av (X, Y): -
matriz (X, Z),
pai (Z, Y).
Ou podemos considerar predicados mais complexos, tais como
entre (X, Y, Y): - falhar.
entre (X, Y, Z), entre: - (X, Z, Y).
consultas e mais complexos, tais como:
"O que um mamfero?"
"D-me um exemplo de um carnvoro".
"Cite alguns animais de estimao."
"Pittsburgh entre Nova York e Chicago?"
"Minha me Maria. Sua me Millie.
Quem a minha av? "
No final, no entanto, ainda no est claro se a interface
ALCE e AML para um motor de raciocnio do senso comum fornece
quaisquer vantagens prticas reais sobre um padro AML puro
visando abordagem. Em vez de usar Prolog para derivar
respostas, ao longo de um domnio finito de termos, como poderamos
bem armazenar explicitamente todas as respostas em AML:
<category>
<padro> um co de um mamfero </ pattern>
<template> Sim. </ template>
</ category>
<category>
<padro> UM CO UM PSSARO </ pattern>
<template> No. </ template>
</ category>
<category>
<padro> UM CO </ pattern> ALVE
<template> Sim. </ template>
</ category>
... e assim por diante.
O nmero de combinaes de todos os termos podem produzir um grande nmero
de combinaes, possivelmente exigindo mais memria do que o AML
intrprete proporciona. Mas mesmo estes padres tm o seu prprio
Distribuio Zipf. Alguns deles so muito mais propensos a ser solicitado
do que outros. A este respeito, pode-se imaginar um conhecimento AML
Base no completamente equivalente sada de um programa Prolog, mas
perto o suficiente para todos os efeitos prticos.
afirmaes PROLOG
Alm das regras associativas para a hierarquia de isa,
o programa PSYCH inclui o seguinte senso comum bsico
asseres:
isa (humanos, mamfero).
isa (homem, ser humano).
isa (mulher, ser humano).
isa (beb, humano).
isa (menino, humano).
isa (menina, humano).
isa (rico, homem).
isa (carnvoro, mamfero).
isa (gato, carnvoro).
isa (co, carnvoro).
isa (mamfero, animal).
isa (animal, vivo).
isa (planta, vivo).
isa (frutas, vegetais).
isa (rvore, planta).
isa (abeto, rvore).
isa (maple, rvore).
isa (abeto, rvore).
isa (vidoeiro, rvore).
isa (grama, planta).
isa (frutas, alimentos).
isa (erva daninha, planta).
isa (vegetal, planta).
isa (vegetal, alimentos).
isa (vivo, entidade).
isa (rock, entidade).
isa (areia, pedra).
isa (aliengena, vivo).
isa (gato, animal de estimao).
isa (co, animal de estimao).
isa (frango, alimentos).
isa (galinha, pssaro).
isa (pssaro, animal).
isa (pato, pssaro).
isa (pato, alimentos).
isa (pinguim, pssaro).
isa (vaca, gado).
isa (touro, gado).
isa (gado, herbvoro).
isa (gado, alimentos).
isa (herbvoro, animal).
isa (carro, veculo).
isa (avio, veculo).
isa (jato, avio).
isa (comboio, automvel).
isa (Bart, trem).
isa (municipal, trem).
isa (elctrico, comboio).
isa (bicicleta, veculo).
isa (nibus, veculo).
isa (caminho, veculo).
isa (SUV, caminho).
isa (foguete, veculo).
isa (veculo, sinttico).
isa (provocadas pelo homem, entidade).
isa (poa, gua).
isa (mar, gua).
isa (lago, gua).
isa (rio, gua).
isa (crrego, gua).
isa (mar, gua).
isa (nuvem, gua).
isa (gua, composto).
isa (composto, entidade).
isa (gelo, gua).
isa (vapor, gua).
isa (aspirina, medicina).
isa (penicilina, medicina).
isa (cncer, doenas).
isa (aids, doena).
isa (gripe, doena).
isa (glaucoma, doena).
CAPTULO V. Fazendo Dedues Lgicas Simples em AML
O objetivo deste exerccio demonstrar alguns
capacidades de raciocnio simples AML sozinho com. Em particular,
ns no utilizar qualquer mecanismo de lgica como Prolog. Os resultados
aqui descritos foram obtidos exclusivamente com AML.
Os tipos de questes submetidas a exame aqui so
um conjunto restrito de consultas exemplificados por:
O que um pssaro tem?
O que os pssaros tm?
O que faz um corvo fazer?
O que mais faz um pssaro tem?
O que mais corvos fazer?
Parte do que torna mais fcil responder a estas perguntas em AML
que as questes tendem a ter vrias respostas. Um pssaro
tem um bico, uma cauda, pulmes, olhos, asas, penas e sangue frio.
Ele tambm possui todas as propriedades de quaisquer subclasses, tais como animais
ou procariontes. O programa AML no precisa encontrar todos
estas solues, que apenas tem de encontrar um.
SA HERARQUA
O primeiro passo o de construir uma hierarquia sa em AML.
As entradas mais simples parecido com este:
<category>
<padro> SA CORVO </ pattern>
<template> A Bird. </ template>
</ category>
<category>
<padro> SA BRD </ pattern>
<template> um animal. </ template>
</ category>
Basicamente, a expresso AML equivalente afirmao
sa (corvo, pssaro).
Mas a funo sa de um para muitos. Por exemplo, o frango
tanto um pssaro e um alimento. Ns usamos a tag <random> AML para grupo
estas afirmaes:
<category>
<padro> SA CHCKEN </ pattern>
<template>
<random>
<li> A Bird. </ li>
<li> um alimento. </ li>
</ random>
</ template>
</ category>
Finalmente, o conjunto AML deve fornecer um caso padro para o
s relao, no caso de o primeiro argumento no podem ser identificadas:
<category>
<padro> SA * </ pattern>
<template> Desconhecido </ template>
</ category>
BASE DE CONHECMENTO
O segundo passo foi programar a base de conhecimento com tem e
Ser que as relaes. No necessrio utilizar um predicado abreviado
nome em um padro AML, para que possamos realmente codificar a base de conhecimento
muito convenientemente em linguagem natural. Assim, em vez de escrever
"no (pssaro, voar)", podemos expressar a relao em AML como:
<category>
<padro> O QUE FAZ UM PSSARO DO </ pattern>
<template> Fly.
</ template>
</ category>
[O fato de que nem todas as aves voam no deve distra-lo de
compreender este exemplo.]
Como foi o caso com a relao de sa, a tem e faz relaes
so muitos-para-um. Voltamos a usar a tag <random> ao grupo
muitas afirmaes juntos:
<category>
<padro> O QUE FAZ UM PSSARO TEM </ pattern>
<template>
<random>
Pulmes <li>. </ li>
<li> um olho. </ li>
<li> Um bico. </ li>
<li> A cauda. </ li>
<li> A asa. </ li>
<li> Uma pena. </ li>
<li> sangue frio. </ li>
</ random>
</ template>
</ category>
PADRES
Algumas respostas padro tambm so necessrias para evitar loops infinitos.
Aqui "a arte de escrever AML" entra em jogo. O padro final
Relao sa retorna "Desconhecido", de modo que o smbolo "desconhecido" aparece em
os padres desses padres.
<category>
<padro> O QUE TEM DESCONHECDO </ pattern>
<template>
<random>
<li> magine no haver posses. </ li>
<li> eu no sei </ li>
<li> O mesmo que todos os outros? </ li>
</ random>
</ template>
</ category>
<category>
<padro> O QUE FAZ DO DESCONHECDO </ pattern>
<template>
<random>
<li> existe. </ li>
<li> Eu no sei. </ li>
<li> O mesmo que todos os outros? </ li>
</ random>
</ template>
</ category>
REDUES
Nesta etapa, podemos aplicar redues simblicas para transformar uma variedade
das formas gramaticais em entradas simples.
<category>
<padro> O QUE FAZER * </ pattern>
<template> <srai> O que faz um <star/> DO </ srai>
</ template> </ category>
<category>
<padro> O QUE FAZER A * </ pattern>
<template> <srai> O QUE FAZER <star/> </ srai>
</ template> </ category>
Estas redues, juntamente com outros como eles,
ir transformar muitas variantes gramaticais como
"O QUE FAZER AX", "O que faz um X FAZER" e "O QUE FAZER X"
em uma nica forma cannica como "O QUE FAZ DO X".
DEDUES
Desde que o intrprete AML capaz de
execuo marcas <srai> aninhadas, bem possvel
para fazer inferncias simples em AML. A lgica apresentada
aqui que se o cliente pergunta: "O QUE FAZER X", e
no existe uma resposta especfica para o X, ento o programa
vou tentar responder pergunta "O QUE FAZER Y", onde
s (X, Y).
A deduo lgica correspondente seria:
Se X um Y e Z Y faz ento X no Z.
A deduo pode ser escrito em AML como:
<category>
<padro> O QUE FAZER * </ pattern>
<template>
<srai> O QUE FAZ <srai> SA <star/> </ srai> DO </ srai>
</ template>
</ category>
A categoria semelhante para "O QUE TEM X" :
<category>
<padro> O QUE TEM * </ pattern>
<template>
<srai> O QUE FAZ <srai> SA <star/> </ srai> TEM </ srai>
</ template>
</ category>
Usando essas dedues, podemos agora perguntar o rob
"O que um corvo tem?" e, mesmo que no haja
nenhuma resposta explcita, o programa pode-se inferir que, uma vez
um corvo um pssaro, ele tambm deve ter nada a ave tem:
penas, bico, cauda, olhos, pulmes, asas e sangue frio.
PLURAS
Uma ligeira modificao das categorias acima permite
nos processar plurais, bem como formas singulares, neste
classe de perguntas. Se substituirmos a seqncia SA com SB
dentro das tags <srai> acima, podemos definir uma relao SB
como um gateway ou filtro em cima de sa. A funo SB simplesmente
transforma seu argumento de uma forma singular, e de forma recursiva
aplica sa.
<category>
<padro> SB * </ pattern>
<template> <srai> SA <srai> SNGULAR <star/> </ srai> </ srai>
</ template> </ category>
A base de conhecimento para a relao Singular como
a categoria define para sa, faz e tem.
<category>
<Pattern> WOLVES SNGULAR </ pattern>
<template> lobo
</ template> </ category>
<category>
<Pattern> MULHERES SNGULAR </ pattern>
<template> mulher
</ template> </ category>
<category>
<Pattern> OBRAS singular da arte </ pattern>
<template> obra de arte
</ template> </ category>
<category>
<Pattern> CHAVES SNGULAR </ pattern>
<template> chave
</ template> </ category>
A funo singular requer tambm um caso padro, quando
a palavra ou as palavras no so reconhecidos no domnio da funo:
<category>
<Pattern> SNGULAR * </ pattern>
<template> <star/>
</ template> </ category>
Observe que, se singular (X, Y) no for definida, ou seja, esse
ltima categoria jogos, ento SB (X, Y) = sa (X, Y).
inferncias ALEATRAS
As categorias descritas nas sees 1-5 fornecer respostas
a perguntas como O QUE TENHAM X verificando primeiro a
ver se existe uma correspondncia explcita para X O QUE TEM.
Se no, o programa prossiga para O QUE TEM onde Y
s (X, Y). Se nenhuma correspondncia for encontrada, o programa prossegue
A que se Z tem, onde sa (Y, Z). Porque existe
uma final da categoria O QUE TEM DESCONHECDO, o procedimento
sempre termina.
As inferncias no vai, porm, encontrar todas as instncias do
a resposta lgica para X O QUE TEM. Por exemplo, se
sabemos que todos os animais tm uma me, ento uma resposta
para "O que um pssaro tem?" deve, logicamente, ser "uma me".
As duas categorias seguintes mostram um modo bruto, mas simples
a superar este obstculo. Se o cliente pergunta: "O que mais
que os pssaros tm? ", a funo aleatria ir selecionar entre os dois
perguntas possveis alternativas: "O que os pssaros tm?" e,
por algum X tal que sa (pssaro, X), "O que mais X tem?".
Se o programa escolhe a segunda forma, a questo em si
torna-se a entrada para a mesma categoria.
<category>
<padro> o que mais * DO </ pattern>
<template> <random>
<li> <srai> O QUE FAZER <star/> </ srai> </ li>
<li> <srai> o que mais <srai> SB <star/> </ srai> DO </ srai> </ li>
</ random>
</ template> </ category>
<category>
<padro> o que mais * TEM </ pattern>
<template> <random>
<li> <srai> O QUE TEM <star/> </ srai> </ li>
<li> <srai> o que mais <srai> SB <star/> </ srai> TEM </ srai> </ li>
</ random>
</ template> </ category>
DLOGO AMOSTRA
O dilogo a seguir demonstra as categorias descritas neste
nota tcnica.
Cliente: O que faz um pssaro tem?
Robot: Penas.
Cliente: O que faz um pssaro tem?
Robot: Pulmes.
Cliente: O que faz um pssaro tem?
Robot: Um bico.
Cliente: O que fazer aves?
Robot: Um bico.
Cliente: O que que um corvo fazer?
Robot: Fly.
Cliente: O que mais que um pssaro tem?
Rob: Uma cauda.
Cliente: O que mais que um pssaro tem?
Robot: membranas nucleares.
Cliente: O que mais que um pssaro tem?
Robot: Um corpo.
Cliente: O que mais que um pssaro tem?
Robot: magine no haver posses.
Cliente: O que mais que uma galinha faz?
Robot: ser comido.
Cliente: O que mais que uma galinha faz?
Robot: Cluck.
Cliente: O que mais galinhas fazer?
Robot: Peck.
Uma ave tem uma membrana nuclear, porque um procariota. tudo
os animais tm um corpo, ento as aves tm um corpo tambm. Frango tanto
um alimento e um pssaro, para que ele possa tanto cacarejar e ser comido. Ravens pode
voar porque o rob acredita que todas as aves podem voar.
Dedues Lgicas EM AML
Ns mostramos como fazer certas dedues lgicas simples
AML sozinho, sem a necessidade de um Prolog externo ou em
outro programa de raciocnio.
O conjunto crebro ALCE foi aumentada com mais de 1000 sa
relaes, e vrias centenas de categorias de codificao tem e faz.
Estas categorias sero divulgados no prximo lanamento
Alice do Crebro AML conjunto.
CAPTULO V. A Personal Finance "planilha" em AML
Um dos requisitos fundamentais para a adoo da tecnologia AML
como uma interface humano-computador normalizado a criao de um ncleo
conjunto de interfaces de programao de aplicativos. Para Alice para se tornar o
principal modo de interao com o usurio, ela deve ter interfaces para uma coleo
de aplicaes comuns, como e-mail, banco de dados, catlogo de endereos, calculadora,
e programas de planilha.
Este captulo descreve um primeiro passo na aplicao de "planilha" para
o gerenciamento das finanas pessoais.
DLOGO AMOSTRA
O objetivo deste experimento produzir um crvel
interface de linguagem natural para uma finanas pessoais trivial
sistema. O seguinte exemplo ilustra o dilogo
sabor de conversas o bot deve ser capaz de lidar com:
Cliente: Meu saldo de conta corrente 2300.
Robot: eu consegui. Voc tem alguma mais transaes?
Cliente: Meu saldo da conta poupana de 1000.
Robot: eu consegui. Qualquer outra coisa que eu possa fazer por voc?
Cliente: Meu saldo do carto de visto de 2100.
Robot: eu consegui. Obrigado pela informao.
Cliente: Meu saldo Citibank 9000.
Robot: eu consegui. isso?
Cliente: Tenho 200 dlares na minha carteira.
Robot: Certo. Obrigado pela informao.
Cliente: Eu passei 10 em um txi.
Robot: eu consegui. Qualquer outra coisa que eu possa fazer por voc?
Cliente: Eu cobrado 23 para o almoo no meu carto Visa.
Robot: eu consegui. Obrigado pela informao.
Cliente: Meu proprietrio o Sr. Bill.
Robot: Rent um roubo!
Cliente: Sem brincadeira meu aluguel 1.410 por ms.
Robot: Ser que estou brincando? 1410 a taxa de mercado.
Cliente: Eu pago o aluguel com o nmero do cheque 101.
Robot: eu consegui. Obrigado pela informao.
Cliente: qual o meu saldo de conta corrente.
Robot: Seu saldo corrente 890.
Cliente: Eu cobrado 120 no meu carto Visa para o hotel.
Robot: Ok. Qualquer outra coisa que eu possa fazer por voc?
Cliente: O que o meu saldo do carto Visa.
Robot: Seu saldo visto -2243.
Cliente: Quanto dinheiro eu tenho na minha carteira?
Robot: O saldo da carteira de 190.
Cliente: Eu comprei um livro para 10.
Robot: sim. Eu gravei a transao.
Cliente: agora quanto na minha carteira?
Robot: Por que agora? O saldo da sua carteira de 180.
AS TRANSAES
O dilogo anterior reduz s operaes enunciadas nesta seo.
As transaes de crdito e dbito tm exatamente o mesmo formato, exceto
que a transaco de dbito tem um beneficirio, onde o crdito tem um pagador.
Em qualquer caso, o programa armazena as transaces de um commadelimited
formato, tornando-a fcil importao para outras instituies financeiras
aplicaes.
Especificamente, o formato do registro de transao uma seqncia delimitada por vrgulas de
a forma:
Dbito em conta, o valor, data, nmero de beneficirio, categoria, nota, id.
ou
Conta de crdito, quantidade, data, nmero, pagador, categoria, nota, id.
O campo conta identifica a conta como corrente, poupana, carteira ou
o nome de outra conta. A quantidade indicada em dlares, com a
um inteiro no negativo. A data inclui um carimbo de tempo para a resoluo
de segundos. O campo de nmero geralmente indica um nmero de cheque ou
nmero de transaco, se houver. Pagador / recebedor indica a origem / destino
contas para a transao. O campo categoria ajuda a criar um oramento
relatar mais tarde, mostrando como nossas receitas e despesas quebrar por categorias
tais como aluguel, remdios, comida, contas de servios pblicos e assim por diante.
A "segurana" do sistema limitado a gravar o id do cliente,
neste caso localhost.localdomain. Se o bot est online, o cuidado deve
ser tomadas para que os clientes no autorizados no pode iniciar financeiro pessoal
operaes.
Os registros no incluem um identificador nico ou nmero da linha.
Singularidade dos registros s garantida pelo timestamp,
utilizando a funo <date/> AML. sso bom, se a transao
taxa sempre menor do que um por segundo. Mas uma mais
aplicao realista tambm pode ter de incluir identificadores de registro.
O processamento da linguagem mais sofisticada demonstrado neste
experimento foi o uso de predicados AML para "senhorio" e "aluguel".
sto torna possvel a transformao de frases tais como
"Eu paguei o aluguel com nmero do cheque 101" em uma transao.
NCALZAR corrente bancria, 2300, ter 25 dez 08:32:16 PST 2001
localhost.localdomain.
Verificao de crdito, 2300, ter 25 dez 08 32 16 pst 2001, nenhum, desconhecido, desconhecido,
nenhum, localhost.localdomain.
NCALZAR Caixa Econmica, 1000, ter 25 dez 08:32:24 PST 2001
localhost.localdomain.
Poupana CRDTO, 1000, ter 25 dez 08 32 24 pst 2001, nenhum, desconhecido, desconhecido,
nenhum, localhost.localdomain.
NCALZAR credt carto visa, de 2100, ter 25 dez 08:32:32 PST 2001
localhost.localdomain.
Carto de Dbito Visa, 2100, ter 25 dez 08 32 32 pst 2001, nenhum, desconhecido, desconhecido,
nenhum, localhost.localdomain.
NCALZAR credt Citibank, 9000, ter 25 dez 08:32:51 PST 2001
localhost.localdomain.
DBTO Citibank, 9000, Dom Dez 25 08 32 51 pst 2001, nenhum, desconhecido, desconhecido,
nenhum, localhost.localdomain.
NCALZAR BANK carteira, 200, ter 25 dez 08:33:01 PST 2001
localhost.localdomain.
CRDTO carteira, 200, tera 25 dezembro 08 33 01 pst 2001, nenhum, desconhecido, desconhecido,
nenhum, localhost.localdomain.
DBTO carteira, 10, ter 25 dez 08 33 23 pst 2001, nenhum, um txi, desconhecido, nenhum,
localhost.localdomain.
Visa Debit, 23 para o almoo, ter 25 dez 08 33 34 pst 2001, nenhum, desconhecido,
desconhecido, nenhum, localhost.localdomain.
DBTO verificao, 1410, Dom Dez 25 08 34 07 pst 2001, o nmero 101, o Sr. Bill,
aluguel, nenhum, localhost.localdomain.
Dbito Visa, 120, Dom Dez 25 08 35 00 pst 2001, nenhum, desconhecido, o hotel,
nenhum, localhost.localdomain.
DBTO carteira, 10, ter 25 dez 08 35 28 pst 2001, nenhum, desconhecido, um livro, nenhum,
localhost.localdomain.
DAS CATEGORAS AML
O dilogo na seo 2 resultou o contedo da ALCE
crebro, mais o seguinte conjunto de categorias "planilha".
A idia bsica reduzir cada demonstrao financeira em
uma transao do crdito forma, o dbito ou inicializar. l
Existem dois tipos de contas, contas credt, principalmente para cartes de crdito,
e as contas bancrias, que podem incluir carteiras, piggybanks, cofres
e outros recipientes de dinheiro, bem como de dbito bancrio regular
como contas correntes e de poupana.
O objetivo da declarao NTAZE definir uma inicial
equilibrar, abrir uma nova conta, ou substituir a planilha de
saldo apurado para uma conta. Credt contas so abertas
com um saldo negativo, iniciada com uma operao de dbito.
As contas bancrias so abertas com um saldo positivo, iniciado
usando uma operao de crdito.
Todas as transaes de dbito e crdito so registradas no
arquivo fofocas padro. sto pode no ser o melhor lugar, mas
feita para um exemplo pedaggico simples. O programa balance.sh
calcula a saldos de conta que precisa (veja a prxima seo).
As seguintes categorias AML representam uma tentativa de primeira passagem para
criar a "planilha" simple. No um verdadeiro contabilidade de dupla entrada
sistema, no entanto, as categorias demonstrar a viabilidade
de construo de uma aplicao de finanas pessoais em AML.
<aiml>
<category> <padro> CONFRMA OPERAO </ pattern>
<template>
<random>
<li> Ok. </ li>
<li> Sim. </ li>
<li> Certo. </ li>
<li> eu consegui. </ li>
</ Random>
<random>
<li> H mais alguma coisa que eu possa ajud-lo? </ li>
<li> Voc tem alguma mais transaes? </ li>
<li> Eu gravei a transao. </ li>
<li> alguma coisa que eu possa fazer por voc? </ li>
<li> Obrigado pela informao. </ li>
<li> isso? </ li>
</ Random>
</ Template> </ category>
<category>
<padro> ACCT CRDTO * AMT * DATA * NMERO * PAYER * Categoria * NOTA
* </ Pattern>
<template>
<srai> CONFRMA OPERAO </ srai>
<think>
<gossip> CRDTO <star/>, <star index="2"/>, <star index="3"/> <estrela
index = "4" />, <star index="5"/>, <star index="6"/>, <star index="7"/>, <id/>.
</ Fofoca>
</ Think>
</ Template> </ category>
<category>
<padro> DBTO ACCT * AMT * DATA * NMERO * BENEFCRO * Categoria * NOTA
* </ Pattern> <template>
<srai> CONFRMA OPERAO </ srai>
<think>
<gossip> DBTO <star/>, <star index="2"/>, <star index="3"/> <estrela
index = "4" />, <star index="5"/>, <star index="6"/>, <star index="7"/>, <id/>.
</ Fofoca>
</ Think>
</ Template> </ category>
<category> <padro> NTALZE ACCT BANK * AMT * </ pattern> <template>
<srai> CONFRMA OPERAO </ srai>
<think>
<gossip> NTALZE BANK <star/>, <star index="2"/>, <date/>, <id/>. </ fofoca>
<srai> ACCT CRDTO <star/> AMT <star index="2"/> DATE <date/> </ srai>
</ Think>
</ Template> </ category>
<category> <padro> NTALZE credt ACCT * AMT * </ pattern> <template>
<srai> CONFRMA OPERAO </ srai>
<think>
<gossip> NTALZE credt <star/>, <star index="2"/>, <date/>, <id/>. </ fofoca>
<srai> DBTO ACCT <star/> AMT <star index="2"/> DATE <date/> </ srai>
</ think>
</ template> </ category>
<category> <padro> BALANCE ACCT * </ pattern> <template> <system> sh
/ home / alicebot / balance.sh <star/> </ sistema> </ template> </ category>
<category> <padro> QUANTO EST EM MNHA CARTERA </ pattern> <template> <srai> BALANCE
CARTERA ACCT </ srai> </ template> </ category>
<category> <padro> QUANTO DNHERO _ MY
CARTERA </ pattern> <template> <srai> BALANCE ACCT
CARTERA </ srai> </ template> </ category>
<category> <padro> quanto dinheiro _ EU TENHO </ pattern> <template> <srai> BALANCE
CARTERA ACCT </ srai> </ template> </ category>
<category> <padro> QUEM meu senhorio </ pattern> <template> <obter
name = "landlord" /> </ template> </ category>
<category> <padro> QUE meu aluguel </ pattern> <template> <get name="rent"/> por
ms. </ template> </ category>
<category> <padro> MY aluguel * </ pattern> <template> <set
name = "aluguel"> <star/> </ set> a taxa de mercado. </ template> </ category>
<category> <padro> MY aluguel * dlares por ms </ pattern> <template> <srai> MY
O aluguel <star/> </ srai> </ template> </ category>
<category> <padro> MY aluguel * POR MS </ pattern> <template> <srai> MY aluguel
<star/> </ srai> </ template> </ category>
<category> <padro> Meu proprietrio * </ pattern> <template> <think> <definir
name = "landlord"> <person/> </ set> </ think> Rent um roubo! </ template> </ category>
<category> <padro> MY conta corrente BALANCE
* </ Pattern> <template> <srai> NTALZE BANK ACCT verificando AMT
<star/> </ srai> </ template> </ category>
<category> <padro> meu equilbrio Citibank
* </ Pattern> <template> <srai> NTALZE credt ACCT Citibank AMT <star/> </ srai>
</ Template> </ category>
<category> <padro> minhas economias saldo da conta
* </ Pattern> <template> <srai> NTALZE BANK ACCT poupana AMT
<star/> </ srai> </ template> </ category>
<category> <padro> MY VSA CARD SALDO
* </ Pattern> <template> <srai> NTALZE credt ACCT carto Visa AMT
<star/> </ srai> </ template> </ category>
<category> <padro> EU TENHO * EM MNHA CARTERA </ pattern> <template> <srai> NTALZE
BANCO ACCT carteira AMT <star/> </ srai> </ template> </ category>
<category> <padro> EU TENHO * DLARES EM MNHA
CARTERA </ pattern> <template> <srai> NTALZE BANK ACCT carteira AMT
<star/> </ srai> </ template> </ category>
<padro> <category> O QUE A MNHA CONTA *
BALANO </ pattern> <template> <srai> BALANCE ACCT
<star/> </ srai> </ template> </ category>
<category> <padro> EU TENHO * DLARES AO MEU
NOME </ pattern> <template> <srai> NTALZE BANK ACCT carteira AMT
<star/> </ srai> </ template> </ category>
<category> <padro> EU TENHO DE DLARES * </ pattern> <template> <srai> NTALZE BANK
ACCT carteira AMT <star/> </ srai> </ template> </ category>
<category> <padro> O QUE MEU CARD * BALANO </ pattern> <template> <srai> BALANCE
ACCT <star/> </ srai> </ template> </ category>
<category> <padro> DEPSTO * Na verificao
CONTA </ pattern> <template> <srai> ACCT verificao de crdito AMT
<star/> </ srai> </ template> </ category>
<category> <padro> eu paguei a minha ALUGUEL COM CONFRA * </ pattern> <template> <srai>
DBTO
ACCT verificando AMT <get name="rent"/> DATE <date/> NMERO <star/> BENEFCRO <obter
name = "landlord" /> Categoria RENT </ srai> </ template> </ category>
<category> <padro> eu pagava o aluguel WTH CHECK
* </ pattern> <template> <srai> DBTO ACCT verificando AMT <get name="rent"/> DATE
<date/> NMERO <star/> BENEFCRO <get name="landlord"/> CATEGORA
RENT </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU ATM AT * PARA
* </ pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
</ AML>
O restante das categorias AML foram colocados num apndice devido
consideraes de comprimento.
O shell script
H uma infinidade de programas pode-se escrever a
calcular os saldos de contas com base na transao de dbito e crdito
registrados no arquivo fofoca.
dealmente, o roteiro AML deve ser integrado com uma verdadeira
aplicativo de planilha. Por agora, usar um shell simples
roteiro para substituir a aplicao real. O script usa
awk para calcular somas. Seu uso de arquivos temporrios lamentvel.
# O script shell saldo da conta
# Este exemplo apenas para fins informativos.
# Uso: equilbrio <conta>
rm-f *. temperatura
echo 0> credit.temp
echo 0> debit.temp
echo "Seu" $ @ "equilbrio "
grep DBTO / home / alicebot / data / gossip.data | grep $ @ | awk-F: '{print $ 2;
n-= $ 2; print n} '| tail -1> debit.temp
grep CRDTO / home / alicebot / data / gossip.data | grep $ @ | awk-F: '{print $ 2;
n + = $ 2; print n} '| tail -1> credit.temp
cat credit.temp debit.temp | awk '{print $ 1, n + = $ 1; print n}' | tail -1
Uma planilha AML
Ns demonstramos a viabilidade de uma finanas pessoais simples
aplicao com AML. Apesar de suas limitaes, o programa
adequado para um pequeno conjunto de necessidades de finanas pessoais.
Para tornar esta aplicao mais robusta devemos:
a). Criar um sistema de contabilidade de dupla entrada realista.
b). Adicionar um identificador nico para cada transao.
c). ntegrar o programa mais de perto com uma aplicao financeira real.
d). Desenvolver um conjunto expandido de padres AML para capturar uma variedade mais ampla
das declaraes de transao, incluindo dlares e centavos, internacionais
moedas, pagamentos de juros e impostos.
e). Aumentar o recurso de segurana para proibir clientes no autorizados
de fazer transaes financeiras pessoais.
f). Substituto de voz para entrada de texto. Este o tipo de aplicao
voc quer carregar com voc, para que possa proferir "Passei 10 em
um txi ", ao mesmo tempo, voc paga o motorista, e" eu tirei 100
da ATM ", enquanto voc ainda est na mquina de dinheiro.
De modo mais geral, precisamos trabalhar em APs AML para uma variedade de
aplicaes dirias. Estes incluem, mas no esto limitados a,
livros de endereos, planilhas, bancos de dados, e-mail, navegadores web,
processadores de texto e jogos. No mundo dos sonhos do futuro,
a falar por computador HAL estilo Star Trek / vai tratar de todos
os aplicativos que usamos agora em WMP (Windows, cons, Menus,
Dispositivo apontador) computadores.
Apndice A. AML categorias para finanas pessoais
Nota: Para a aplicao de finanas pessoais, essas categorias devem ser
includo
juntamente com os listados na seo 4. A maioria das categorias foram transferidos
a um apndice de modo que este documento no muito longo.
<aiml>
<category> <padro> DEPSTO * Na verificao </ pattern> <template> <srai> ACCT CRDTO
verificando AMT <star/> </ srai> </ template> </ category>
<category> <padro> DEPSTO * EM MNHA VERFCAO
CONTA </ pattern> <template> <srai> ACCT verificao de crdito AMT
<star/> </ srai> </ template> </ category>
<category> <padro> DEPSTO * PARA VERFCAO
CONTA </ pattern> <template> <srai> ACCT verificao de crdito AMT
<star/> </ srai> </ template> </ category>
<category> <padro> DEPSTO * AO CONTROLO </ pattern> <template> <srai> ACCT CRDTO
verificando AMT <star/> </ srai> </ template> </ category>
<category> <padro> DEPSTO * EM MNHA POUPANA
CONTA </ pattern> <template> <srai> CRDTO ACCT poupana AMT
<star/> </ srai> </ template> </ category>
<category> <padro> DEPSTO * na poupana
CONTA </ pattern> <template> <srai> CRDTO ACCT poupana AMT
<star/> </ srai> </ template> </ category>
<category> <padro> DEPSTO * na poupana </ pattern> <template> <srai> ACCT CRDTO
poupana AMT <star/> </ srai> </ template> </ category>
<category> <Pattern> DEPSTO * para a poupana
CONTA </ pattern> <template> <srai> CRDTO ACCT poupana AMT
<star/> </ srai> </ template> </ category>
<category> <padro> DEPSTO DE POUPANA * </ pattern> <template> <srai> ACCT CRDTO
poupana AMT <star/> </ srai> </ template> </ category>
<category> <padro> ACCT CRDTO * AMT * </ pattern> <template> <srai> ACCT CRDTO
<star/> AMT <star index="2"/> DATE <date/> </ srai> </ template> </ category>
<category> <padro> ACCT CRDTO * AMT * DATA * </ pattern> <template> <srai> CRDTO
ACCT <star/> AMT <star index="2"/> DATE <star index="3"/> NMERO
NONE </ srai> </ template> </ category>
<category> <padro> ACCT CRDTO * AMT * DATA * NMERO * PAYER * CATEGORA
* </ Pattern> <template> <srai> ACCT CRDTO <star/> AMT <star index="2"/> DATE
<star index="3"/> NMERO <star index="4"/> PAYER <star index="5"/> CATEGORA
<star index="6"/> NOTA NONE </ srai> </ template> </ category>
<category> <padro> ACCT CRDTO * AMT * DATA * NMERO * PAYER
* </ Pattern> <template> <srai> ACCT CRDTO <star/> AMT <star index="2"/> DATE
<star index="3"/> NMERO <star index="4"/> PAYER <star index="5"/> CATEGORA
DESCONHECDO </ srai> </ template> </ category>
<category> <padro> ACCT CRDTO * AMT * DATA * NMERO
* </ Pattern> <template> <srai> ACCT CRDTO <star/> AMT <star index="2"/> DATE
<star index="3"/> NMERO <star index="4"/> PAYER
DESCONHECDO </ srai> </ template> </ category>
<category> <padro> eu depositei * N * </ pattern> <template> <srai> ACCT CRDTO
<star index="2"/> AMT <star/> </ srai> </ template> </ category>
<category> <padro> eu depositei * NTO * </ pattern> <template> <srai> ACCT CRDTO
<star index="2"/> AMT <star/> </ srai> </ template> </ category>
<category> <padro> eu depositei * TO MY * </ pattern> <template> <srai> ACCT CRDTO
<star index="2"/> AMT <star/> </ srai> </ template> </ category>
<category> <padro> eu depositei * A * </ pattern> <template> <srai> ACCT CRDTO
<star index="2"/> AMT <star/> </ srai> </ template> </ category>
<category> <padro> _ me emprestou DLARES * </ pattern> <template> <srai> ACCT CRDTO
carteira AMT <star index="2"/> DATE <date/> NMERO nenhum PAYER <person/>
CATEGORA emprstimo NOTA pagar <person/> </ srai> </ template> </ category>
<category> <padro> _ me emprestou * </ pattern> <template> <srai> CRDTO ACCT carteira
AMT <star index="2"/> DATE <date/> NMERO nenhum PAYER <person/> categoria de emprstimo
NOTA pagar <person/> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU CARTO ATM AT * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * ON MY ATM AT * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> * cobrado no meu carto de ATM AT * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> PUT * DE DLARES EM MNHA ATM AT * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> PUT * DLARES no meu carto de ATM AT * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> PUT * DE DLARES EM MNHA ATM PARA * AT
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> PUT * EM MNHA ATM AT * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> PUT * no meu carto de ATM AT * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>

<category> <padro> PUT * EM MNHA ATM PARA * AT
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES EM MNHA ATM AT * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES no meu carto de ATM AT * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * ON MY ATM AT * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DA TE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * no meu carto de ATM AT * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU ATM AT
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU CARTO ATM AT
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> </ srai> </ template> </ category>
<category> <padro> COBRADO * ON MY ATM AT * </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> * cobrado no meu carto de ATM AT
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> </ srai> </ template> </ category>
<category> <padro> PUT * DE DLARES EM MNHA ATM AT
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> </ srai> </ template> </ category>
<category> <padro> PUT * DLARES no meu carto de ATM AT
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> </ srai> </ template> </ category>
<category> <padro> PUT * EM MNHA ATM AT * </ pattern> <template> <srai> DBTO ACCT
verificando AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> PUT * no meu carto de ATM AT * </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES EM MNHA ATM AT
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES no meu carto de ATM AT
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> </ srai> </ template> </ category>
<category> <padro> EU PASSE * ON MY ATM AT * </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * no meu carto de ATM AT
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU CARTO PARA ATM * AT
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU ATM PARA * AT
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> * cobrado no meu carto de ATM PARA * AT
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * ON MY ATM PARA * AT
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> PUT * DE DLARES EM MEU CARTO PARA ATM * AT
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> PUT * no meu carto de ATM PARA * AT
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES EM MEU CARTO PARA ATM * AT
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES EM MNHA ATM PARA * AT
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * no meu carto de ATM PARA * AT
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * ON MY ATM PARA * AT
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES EM MEU CARTO DE ATM
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO CATEGORA desconhecido <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU ATM PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO CATEGORA desconhecido <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> * cobrado no meu carto de ATM PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO CATEGORA desconhecido <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * ON MY ATM PARA * </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star/> DATE <date/> NMERO nenhum BENEFCRO CATEGORA
desconhecido
<star index="2"/> </ srai> </ template> </ category>
<category> <padro> PUT * DE DLARES EM MEU CARTO DE ATM
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO CATEGORA desconhecido <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> PUT * DE DLARES EM MNHA ATM PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO CATEGORA desconhecido <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> PUT * EM MEU CARTO DE ATM
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO CATEGORA desconhecido <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> PUT * EM MNHA ATM PARA * </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star/> DATE <date/> NMERO nenhum BENEFCRO CATEGORA
desconhecido
<star index="2"/> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES EM MEU CARTO DE ATM
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO CATEGORA desconhecido <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES EM MNHA ATM PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO CATEGORA desconhecido <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * NO MEU CARTO DE ATM
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO CATEGORA desconhecido <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * ON MY ATM PARA * </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star/> DATE <date/> NMERO nenhum BENEFCRO CATEGORA
desconhecido
<star index="2"/> </ srai> </ template> </ category>
<category> <padro> eu PAGO * COM CONFRA * </ pattern> <template> <srai> DBTO ACCT
verificando AMT <star/> DATE <date/> NMERO <star index="2"/> BENEFCRO
DESCONHECDO </ srai> </ template> </ category>
<category> <padro> eu PAGO * DE DLARES PARA * WTH CHECK NUMBER
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO <star index="3"/> BENEFCRO <star index="2"/> </ srai> </ template> </ category>
<category> <padro> escreveu um cheque PARA * A * </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star/> DATE <date/> nmero desconhecido BENEFCRO <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU ATM
CARD </ pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE
<date/> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU
ATM </ pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE
<date/> </ srai> </ template> </ category>
<category> <padro> * cobrado no meu carto de ATM </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star/> DATE <date/> </ srai> </ template> </ category>
<category> <padro> COBRADO * ON MY ATM </ pattern> <template> <srai> DBTO ACCT
verificando AMT <star/> DATE <date/> </ srai> </ template> </ category>
<category> <padro> PUT * DE DLARES EM MNHA ATM
CARD </ pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE
<date/> </ srai> </ template> </ category>
<category> <padro> PUT * DE DLARES EM MNHA ATM </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star/> DATE <date/> </ srai> </ template> </ category>
<category> <padro> PUT * no meu carto de ATM </ pattern> <template> <srai> DBTO ACCT
verificando AMT <star/> DATE <date/> </ srai> </ template> </ category>
<category> <padro> PUT * EM MNHA ATM </ pattern> <template> <srai> DBTO ACCT
verificando AMT <star/> DATE <date/> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES EM MNHA ATM
CARD </ pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE
<date/> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES EM MNHA ATM </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star/> DATE <date/> </ srai> </ template> </ category>
<category> <padro> EU PASSE * no meu carto de ATM </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star/> DATE <date/> </ srai> </ template> </ category>
<category> <padro> EU PASSE * ON MY ATM </ pattern> <template> <srai> DBTO ACCT
verificando AMT <star/> DATE <date/> </ srai> </ template> </ category>
<category> <padro> eu PAGO ** dlares com o nmero do cheque
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star index="2"/> DATE
<date/> NMERO <star index="3"/> BENEFCRO <star/> </ srai> </ template> </ category>
<category> <padro> EU ESCREV CONFRA NMERO * PARA * TO
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star index="2"/> DATE
<date/> NMERO <star/> BENEFCRO <star index="3"/> </ srai> </ template> </ category>
<category> <padro> escreveu um cheque TO * PARA * </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star index="2"/> DATE <date/> NMERO BENEFCRO DESCONHECDO
<star/> </ srai> </ template> </ category>
<category> <padro> EU ESCREV CONFRA NMERO * A * FOR
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star index="3"/> DATE
<date/> NMERO <star/> BENEFCRO <star index="2"/> </ srai> </ template> </ category>
<category> <padro> * SAQUE DE VERFCAO
CONTA </ pattern> <template> <srai> DBTO ACCT verificando AMT
<star/> </ srai> </ template> </ category>
<category> <padro> SAQUE DE VERFCAO * </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star/> </ srai> </ template> </ category>
<category> <padro> SAQUE * FROM MY VERFCAO
CONTA </ pattern> <template> <srai> DBTO ACCT verificando AMT
<star/> </ srai> </ template> </ category>
<category> <padro> GOT * FROM THE ATM </ pattern> <template> <srai> DBTO ACCT
verificando AMT <star/> </ srai> </ template> </ category>
<category> <padro> Retirei * FROM THE ATM </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star/> </ srai> </ template> </ category>
<category> <padro> eu tirei * FROM THE ATM </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star/> </ srai> </ template> </ category>
<category> <padro> eu tirei * COM A ATM </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star/> </ srai> </ template> </ category>
<category> <padro> sa * COM A ATM </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star/> </ srai> </ template> </ category>
<category> <padro> SAQUE * FROM minhas economias
CONTA </ pattern> <template> <srai> DBTO ACCT poupana AMT
<star/> </ srai> </ template> </ category>
<category> <padro> * SAQUE DE POUPANA
CONTA </ pattern> <template> <srai> DBTO ACCT poupana AMT
<star/> </ srai> </ template> </ category>
<category> <padro> SAQUE DE POUPANA * </ pattern> <template> <srai> DBTO
Poupana ACCT AMT <star/> </ srai> </ template> </ category>
<category> <padro> Retirei * FROM ECONOMA </ pattern> <template> <srai> DBTO
Poupana ACCT AMT <star/> </ srai> </ template> </ category>
<category> <padro> ACCT DBTO * AMT * </ pattern> <template> <srai> DBTO ACCT
<star/> AMT <star index="2"/> DATE <date/> </ srai> </ template> </ category>
<category> <padro> ACCT DBTO * AMT * DATA * </ pattern> <template> <srai> DBTO
ACCT <star/> AMT <star index="2"/> DATE <star index="3"/> NMERO
NONE </ srai> </ template> </ category>
<category> <padro> ACCT DBTO * AMT * DATA * NMERO * BENEFCRO * CATEGORA
* </ Pattern> <template> <srai> ACCT DBTO <star/> AMT <star index="2"/> DATE
<star index="3"/> NMERO <star index="4"/> BENEFCRO <star index="5"/> CATEGORA
<star index="6"/> NOTA NONE </ srai> </ template> </ category>
<category> <padro> ACCT DBTO * AMT * DATA * NMERO * BENEFCRO
* </ Pattern> <template> <srai> ACCT DBTO <star/> AMT <star index="2"/> DATE
<star index="3"/> NMERO <star index="4"/> BENEFCRO <star index="5"/> CATEGORA
DESCONHECDO </ srai> </ template> </ category>
<category> <padro> DBTO ACCT * AMT * DATA * NMERO
* </ Pattern> <template> <srai> ACCT DBTO <star/> AMT <star index="2"/> DATE
<star index="3"/> NMERO <star index="4"/> BENEFCRO
DESCONHECDO </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU CARTO * AT * PARA
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "4" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * ON MY CARD * AT * PARA
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "4" /> </ srai> </ template> </ category>
<category> <padro> PUT * DE DLARES EM MEU CARTO * AT * PARA
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "4" /> </ srai> </ template> </ category>
<category> <padro> PUT * ON MY CARD * AT * PARA
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "4" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES EM MEU CARTO * AT * PARA
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "4" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * ON MY CARD * AT * PARA
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "4" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU * CARTO EM
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="3"/> </ srai> </ template> </ category>
<category> <padro> COBRADO * ON * MEU CARTO EM
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="3"/> </ srai> </ template> </ category>
<category> <padro> PUT * dlares em MY * CARTO EM
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="3"/> </ srai> </ template> </ category>
<category> <padro> PUT * ON MY CARD * AT * </ pattern> <template> <srai> DBTO
ACCT <star index="2"/> AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * dlares em MY * CARTO EM
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="3"/> </ srai> </ template> </ category>
<category> <padro> EU PASSE * ON MY CARD * AT * </ pattern> <template> <srai> DBTO
ACCT <star index="2"/> AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU * CARTO PARA * AT
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="4"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * ON * MEU CARTO PARA * AT
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="4"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> PUT * dlares em MY * CARTO PARA * AT
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="4"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> PUT * ON * MEU CARTO PARA * AT
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="4"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * dlares em MY * CARTO PARA * AT
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="4"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * ON * MEU CARTO PARA * AT
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="4"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * ON * MEU CARTO PARA
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO desconhecido Categoria <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> PUT * dlares em MY * CARTO PARA
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO desconhecido Categoria <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> PUT * ON * MEU CARTO PARA * </ pattern> <template> <srai> DBTO
ACCT <star index="2"/> AMT <star/> DATE <date/> NMERO nenhum BENEFCRO desconhecido
CATEGORA <star index="3"/> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU * CARTO PARA
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO desconhecido Categoria <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * dlares em MY * CARTO PARA
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO desconhecido Categoria <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * ON * MEU CARTO PARA
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO desconhecido Categoria <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU *
CARD </ pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> </ srai> </ template> </ category>
<category> <padro> COBRADO * ON MY CARD * </ pattern> <template> <srai> DBTO
ACCT <star index="2"/> AMT <star/> DATE <date/> </ srai> </ template> </ category>
<category> <padro> PUT * dlares em MY *
CARD </ pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> </ srai> </ template> </ category>
<category> <padro> PUT * ON MY CARD * </ pattern> <template> <srai> DBTO ACCT
<star index="2"/> AMT <star/> DATE <date/> </ srai> </ template> </ category>
<category> <padro> EU PASSE * dlares em MY *
CARD </ pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> </ srai> </ template> </ category>
<category> <padro> EU PASSE * ON MY CARD * </ pattern> <template> <srai> DBTO ACCT
<star index="2"/> AMT <star/> DATE <date/> </ srai> </ template> </ category>
<category> <padro> Retirei * FROM MY * </ pattern> <template> <srai> DBTO ACCT
<star index="2"/> AMT <star/> </ srai> </ template> </ category>
<category> <padro> Retirei * FROM * </ pattern> <template> <srai> DBTO ACCT
<star index="2"/> AMT <star/> </ srai> </ template> </ category>
<category> <padro> eu PAGO * DLARES PARA * AT * </ pattern> <template> <srai> DBTO
ACCT carteira AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <star index="2"/>
CATEGORA <star index="3"/> </ srai> </ template> </ category>
<category> <padro> EU PASSE * AT * PARA * </ pattern> <template> <srai> DBTO ACCT
carteira AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <star index="2"/> CATEGORA
<star index="3"/> </ srai> </ template> </ category>
<category> <padro> EU PASSE DOLLA RS * AT * ON * </ pattern> <template> <srai> DBTO
ACCT carteira AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <star index="2"/>
CATEGORA <star index="3"/> </ srai> </ template> </ category>
<category> <padro> eu PAGO * DLARES PARA * </ pattern> <template> <srai> DBTO ACCT
carteira AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> eu PAGO * PARA * </ pattern> <template> <srai> DBTO ACCT carteira
AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * AT * </ pattern> <template> <srai> DBTO ACCT carteira
AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES EM * </ pattern> <template> <srai> DBTO ACCT
carteira AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * dlares em * AT * </ pattern> <template> <srai> DBTO
ACCT carteira AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * dlares em * </ pattern> <template> <srai> DBTO ACCT
carteira AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * ON * </ pattern> <template> <srai> DBTO ACCT carteira
AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> eu PAGO * PARA * AT * </ pattern> <template> <srai> DBTO ACCT
carteira AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <star index="3"/> CATEGORA
<star index="2"/> </ srai> </ template> </ category>
<category> <padro> EU PASSE * ON * AT * </ pattern> <template> <srai> DBTO ACCT
carteira AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <star index="3"/> CATEGORA
<star index="2"/> </ srai> </ template> </ category>
<category> <padro> EU COMPRE * PARA * AT * </ pattern> <template> <srai> DBTO ACCT
carteira AMT <star index="2"/> DATE <date/> NMERO nenhum BENEFCRO <star index="2"/>
CATEGORA <star index="3"/> </ srai> </ template> </ category>
<category> <padro> EU COMPRE * PARA * EM DLARES
* </ Pattern> <template> <srai> DBTO ACCT carteira AMT <star index="2"/> DATE
<date/> NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> EU COMPRE * PARA * DLARES </ pattern> <template> <srai> DBTO
ACCT carteira AMT <star index="2"/> DATE <date/> NMERO nenhum BENEFCRO desconhecido
CATEGORA <star/> </ srai> </ template> </ category>
<category> <padro> EU COMPRE * PARA * </ pattern> <template> <srai> DBTO ACCT
carteira AMT <star index="2"/> DATE <date/> NMERO nenhum BENEFCRO CATEGORA
desconhecido
<star/> </ srai> </ template> </ category>
<category> <padro> meu aluguel * UM MS </ pattern> <template> <srai> MY aluguel
<star/> </ srai> </ template> </ category>
<category> <padro> MY aluguel * dlares por ms </ pattern> <template> <srai> MY
O aluguel <star/> </ srai> </ template> </ category>
<category> <padro> MY aluguel DLARES * </ pattern> <template> <srai> MY aluguel
<star/> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU ATM ON * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU CARTO ATM ON * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * ON MY ATM ON * POR
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> * cobrado no meu carto de ATM ON * POR
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> PUT * DE DLARES EM MNHA ATM ON * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> PUT * DLARES no meu carto de ATM ON * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> PUT * DE DLARES EM MNHA ATM PARA * ON
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> PUT * EM MNHA ATM ON * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> PUT * no meu carto de ATM ON * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> PUT * EM MNHA ATM PARA * ON
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES EM MNHA ATM ON * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES no meu carto de ATM ON * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * ON MY ATM ON * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * no meu carto de ATM ON * PARA
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU ATM ON
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU CARTO ATM ON
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> </ srai> </ template> </ category>
<category> <padro> COBRADO * ON MY ATM ON * </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> * cobrado no meu carto de ATM ON
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> </ srai> </ template> </ category>
<category> <padro> PUT * DE DLARES EM MNHA ATM ON
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> </ srai> </ template> </ category>
<category> <padro> PUT * DLARES no meu carto de ATM ON
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> </ srai> </ template> </ category>
<category> <padro> PUT * EM MNHA ATM ON * </ pattern> <template> <srai> DBTO ACCT
verificando AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> PUT * no meu carto de ATM ON * </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES EM MNHA ATM ON
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES no meu carto de ATM ON
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> </ srai> </ template> </ category>
<category> <padro> EU PASSE * ON MY ATM ON * </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * no meu carto de ATM ON
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="2"/> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU CARTO PARA ATM * ON
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU ATM PARA * ON
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> * cobrado no meu carto de ATM PARA * ON
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * ON MY ATM PARA * ON
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> PUT * DE DLARES EM MEU CARTO PARA ATM * ON
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> PUT * no meu carto de ATM PARA * ON
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES EM MEU CARTO PARA ATM * ON
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES EM MNHA ATM PARA * ON
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * no meu carto de ATM PARA * ON
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * ON MY ATM PARA * ON
* </ Pattern> <template> <srai> DBTO ACCT verificando AMT <star/> DATE <date/>
NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "2" /> </ srai> </ template> </ category>
<category> <padro> eu tirei * NO ATM </ pattern> <template> <srai> DBTO
ACCT verificando AMT <star/> </ srai> </ template> </ category>
<category> <padro> sa * NO ATM </ pattern> <template> <srai> DBTO ACCT
verificando AMT <star/> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU CARTO * ON * PARA
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "4" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * ON MY CARD * ON * PARA
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "4" /> </ srai> </ template> </ category>
<category> <padro> PUT * DE DLARES EM MEU CARTO * ON * PARA
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "4" /> </ srai> </ template> </ category>
<category> <padro> PUT * ON MY CARD * ON * PARA
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "4" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES EM MEU CARTO * ON * PARA
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "4" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * ON MY CARD * ON * PARA
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="3"/> CATEGORA <estrela
index = "4" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU CARTO * ON
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="3"/> </ srai> </ template> </ category>
<category> <padro> COBRADO * ON * MEU CARTO DE
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="3"/> </ srai> </ template> </ category>
<category> <padro> PUT * DE DLARES EM MEU CARTO DE ON *
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="3"/> </ srai> </ template> </ category>
<category> <padro> PUT * ON MY CARD * ON * </ pattern> <template> <srai> DBTO
ACCT <star index="2"/> AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES EM MEU CARTO * ON
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="3"/> </ srai> </ template> </ category>
<category> <padro> EU PASSE * ON MY CARD * ON * </ pattern> <template> <srai> DBTO
ACCT <star index="2"/> AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * DE DLARES NO MEU * CARTO PARA * ON
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="4"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> COBRADO * ON * MEU CARTO PARA * ON
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="4"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> PUT * dlares em MY * CARTO PARA * ON
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="4"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> PUT * ON * MEU CARTO PARA * ON
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="4"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * dlares em MY * CARTO PARA * ON
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="4"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> EU PASSE * ON * MEU CARTO PARA * ON
* </ Pattern> <template> <srai> DBTO ACCT <star index="2"/> AMT <star/> DATE
<date/> NMERO nenhum BENEFCRO <star index="4"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
<category> <padro> eu PAGO * DLARES PARA * ON * </ pattern> <template> <srai> DBTO
ACCT carteira AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <star index="2"/>
CATEGORA <star index="3"/> </ srai> </ template> </ category>
<category> <padro> EU PASSE * ON * PARA * </ pattern> <template> <srai> DBTO ACCT
carteira AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <star index="2"/> CATEGORA
<star index="3"/> </ srai> </ template> </ category>
<category> <padro> EU PASSE * DLARES ON * ON * </ pattern> <template> <srai> DBTO
ACCT carteira AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <star index="2"/>
CATEGORA <star index="3"/> </ srai> </ template> </ category>
<category> <padro> eu PAGO * PARA * ON * </ pattern> <template> <srai> DBTO ACCT
carteira AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <star index="3"/> CATEGORA
<star index="2"/> </ srai> </ template> </ category>
<category> <padro> EU PASSE * ON * ON * </ pattern> <template> <srai> DBTO ACCT
carteira AMT <star/> DATE <date/> NMERO nenhum BENEFCRO <star index="3"/> CATEGORA
<star index="2"/> </ srai> </ template> </ category>
<category> <padro> EU COMPRE * PARA * ON * </ pattern> <template> <srai> DBTO ACCT
carteira AMT <star index="2"/> DATE <date/> NMERO nenhum BENEFCRO <star index="2"/>
CATEGORA <star index="3"/> </ srai> </ template> </ category>
<category> <padro> EU COMPRE * PARA * dlares em
* </ pattern> <template> <srai> DBTO ACCT carteira AMT <star index="2"/> DATE
<date/> NMERO nenhum BENEFCRO <star index="2"/> CATEGORA <estrela
index = "3" /> </ srai> </ template> </ category>
</ AML>
CAPTULO V. A construo de um assinante com Bot Negcios comPandorabots
Se eu estava fazendo o filme "The Graduate", com Dustin Hoffmann, hoje,em vez de aconselhando-o a
entrar em plsticos, eu diria que "bots". Eudiria esquecer ps-graduao e da academia, que um
mortoextremidade. V para o trabalho por si mesmo se voc pode, e junte-se a ALCE e
AMLcomunidade de software livre. Voc vai ter o benefcio de uma enorme livreesforo de
desenvolvimento de software e da comunidade, livre e ser capaz de dedicara maioria de seus esforos
para marketing, promoes, publicidade e vendas.Srio, se eu fosse uma pessoa jovem, saudvel como
voc, eu iriapor isso tambm.
Aqui est uma lista dos 10 melhores "killer apps" para AML eu juntos:
Dez assassino Apps para A. L. . C. E. e AML
1. ESL Bot
Sites de ESL so o # 1 fonte de trfego para Alicebot.org. Estudantes de ESL precisa
muita prtica conversando em ngls, eo bot fornece um muito seguro
ambiente para a prtica.
2. FAQbot
Qualquer frequentes podem ser convertidos em AML facilmente. Qualquer organizao ou indivduo
respondendo a um conjunto de perguntas frequentes podem reduzir sua carga de trabalho com
um bot.
3. brinquedo
Combinado com reconhecimento de voz, cria falando ursinho ou outro brinquedo.
A queda dos preos de micro controladores e DSPs embarcados fazer A brinquedos prticos.
4. Bot celebridade
Fs de Britney Spears pode ir ao seu site de fs e conversar com Britney Bot.
ELVS e John Lennon j foram feitos, e no provvel que seja
uma "corrida por terras" em nomes de celebridades falecidas: Timothy Leary, Andy Warhol,Ronald
Reagan, JFK, Frank Zappa, Richard Nixon, Malcom X, Martin Luther King,Jr., John Travolta, O.J.
Simpson, Albert Einstein, Marilyn Monroe, Picasso,Janis Joplin, e finitamente muitos mais.
5. personal AssistantSecretrio pessoal baseada em voz lida com as finanas, agenda de endereos,
dados ee-mail. Todas as aplicaes informticas mais comuns tero naturaisinterfaces de voz no idioma
base.
6. M PluginUsurios de mensagens instantneas pode configurar sua conexo de bate-papo
"automtico" ou"manual."
7. Ferramenta de segmentaoProgramas para ajudar a botmaster analisar os arquivos de log e
adicionar contedo bot.
8. Bot de hospedagem
Muitas pessoas no podem pagar 24/7 conexes da Web, mas gostaria de ter a sua
bots sempre online.
9. Bot Segurana Social
Muitas pessoas com deficincia e as pessoas que se aposentam tem perguntas bsicas sobre os
benefcios,
aplicaes, de elegibilidade e outros aspectos do processo de Segurana Social.
10. Go Ask Alice: Reduo de Danos Bot
Ajudar a reduzir os efeitos nocivos do uso de drogas pesadas, fornecendo verdadeira
informaes para usurios de drogas.
PayPal permite que empresas e consumidores com e-mail
endereos para enviar e receber pagamentos atravs da nternet, aceitando
carto de crdito ou pagamento de contas bancrias para as compras. Se voc tem um
conta de e-mail, voc pode criar uma conta no PayPal com o mesmo
nome. Por exemplo, se o seu nome e-mail artjohnson@xyz.ww, ento o seu
PayPal nome comercial tambm seria artjohnson@xyz.ww. Voc pode, ento,
convidar as pessoas a enviar-lhe dinheiro de suas contas do PayPal, ou enviar
dinheiro para suas contas.
r para www.PayPal.com e clique no link que diz: "Assine
sua conta PayPal livre. "Voc tem que preencher um formulrio de uma pgina de
informao. Voc s precisa de seu endereo de e-mail para criar uma
conta. Depois, voc pode adicionar sua conta corrente e / ou de crdito
cartes. O sistema PayPal lhe enviaremos uma carta de verificao. depois
concluir o processo de verificao, a sua conta PayPal ser
ativada e voc pode enviar e receber fundos eletronicamente.
Pandorabots (http://www.pandorabots.com/) um rob de software (tambm
conhecido como um bot), servio de hospedagem. A partir de qualquer navegador, voc pode criar e
publicar seus prprios robs para algum atravs da web. Acreditamos que a nossa
tecnologia produz os bots mais rpidos disponveis na nternet. os bots
so baseados em AML e primavera inteiramente do trabalho do Dr. Richard
Wallace ea comunidade do software livre ALCE e AML baseado em
http://www.alicebot.org/. No h taxa para utilizar este site. ns
aceitar de bom grado todos os inquritos para verses personalizadas deste site para
aplicaes especficas. Enviar e-mail para info@pandorabots.com) com
perguntas. Ningum ainda descobriu o verdadeiro potencial do Virtual
personalidades e bots, e nossa misso a concepo de ferramentas que iro
ajudar Bots alcanar uma maior relevncia, tanto no comercial e
setores pessoais. Capacidades, tais como reconhecimento de voz, texto
sntese de fala, programas invocando em mquinas remotas ou locais,
ferramentas de desenvolvimento de contedo, e-commerce e animaes de desenhos animados esto
sob
desenvolvimento para ajud-lo a trazer o seu bot para a vida virtual. voc deveria
esperar muitas mudanas para este site, ento por favor, salve o seu bot
criaes em sua prpria mquina usando o arquivo "salvar" a facilidade de seu
navegador. (Conhecimento do seu bot normalmente armazenado em um arquivo chamado
update.aiml e est disponvel atravs do link "editar", que em si
disponvel a partir do link "Botmaster controle"). Rudimentary
documentao agora existe - veja o link "Ajuda" e passar por
alteraes como as mudanas no site. Os Bots hospedados aqui conformar em mais
respeitos s especificaes bot dadas em http://www.alicebot.org/.
O Servio Assinante permite receber dinheiro de clientes
interagindo com o rob em www.pandorabots.com. Aqui est agora
obras: Usando o servio de hospedagem www.pandorabots.com criar e
publicar um rob, e no revelar a localizao publicado
ningum. Voc recrutar e convencer os clientes a se inscrever para interagir com
seu rob. Voc decide quem fala com seu rob, o montante a cobrar
e como recolher o dinheiro. Clique no boto e servios Subscriber
seguir as instrues para permitir o acesso a cada cliente. Pandorabots
estar adicionando mais servios em um futuro prximo. No momento desta
escrever no h cobrana por esses servios adicionais. esperamos
servios futuros para ser compatvel com este servio ainda no podemos fazer
garantias. Alm disso, como este site de hospedagem livre de quaisquer encargos, por favor
estar ciente de que no damos garantias ou garantias de qualquer tipo.
Como posso me inscrever clientes? Recrutamento e PersuadirOs clientes .... Use sua imaginao para
recrutar novos clientes. para obtercomeou a considerar essas idias: (1) e-mail para promover seu site
(2)propaganda de seu rob a partir de um (gratuito) robot demonstrao fornecendointeraes livre da
amostra, (3) anunciar no rob do outro botmasterpginas, (4) que pagam outros botmasters para
anunciar seus robs, (5) ouusar outros botmasters robs para fazer propaganda de suas pginas.
annciospode ser colocado em pginas de robs particularmente interessantes. embutirmensagens
publicitrias em seus robs e vender o servio para outroempresas e botmasters. Use sua imaginao!
Quando um cliente faz uma compracom PayPal, clicando em um boto em uma pgina web ou aps
umalink em um e-mail, o sistema PayPal ir alert-lo, o vendedor, porenvio de um e-mail. Voc tambm
pode ir para o site do PayPal e entrar emsua conta para verificar a sua actividade diria. Quaisquer
novas encomendas aparecem ema lista de transaes dirias em sua conta. Uma vez que voc ligar o
seuconta corrente para o PayPal, voc ter a opo de retirar fundose transferi-los diretamente para sua
conta corrente. Este processo podelevar alguns dias, dependendo do seu banco. PayPal tem vrios
outrosopes para levantar fundos, verificar o seu website.
Em Pandorabots, v para a pgina de Controle Botmaster. Na coluna marcadaAssinantes, clique no link
Assinantes. Na pgina Assinantes,voc ver um formulrio com dois campos de texto para adicionar um
novo80Assinante. Digite o endereo de e-mail eo nmero de meses docliente ir se inscrever. Depois de
clicar no boto "Add assinante",Pandorabots ir atualizar a tabela para exibir uma nova linha
correspondentea ligao bot do novo cliente. De acordo com a coluna marcada "URL de acesso",clique
em "bot do Assinante" e siga o link. A URL que apareceno navegador o elo subscrio privada do
cliente. isto o link que voc vai enviar e-mail para o cliente, e dizer-lhes que nocompartilhar com
ningum.
Depois de ter recolhido o pagamento e criou bot do assinante, hora de envi-los a sua ligao privada.
Recorte e cole o URL doo browser (ver anterior) passo. Envie ao cliente o link em umenviar e-mail
mensagem. uma boa idia ter uma carta de formulrio pronto (comoeste) explicar para o cliente que
deve marcar aligao e mant-lo privado. Se eles perdem isso, eles podem contat-lo evoc pode
reabastecer-lo.
E sobre reembolsos e desativao? Em qualquer negcio alguns clientesso obrigados a voltar
insatisfeitos com as suas compras. voc deveriaestar preparado para lidar com pedidos de reembolso,
ou ter um rigorosono-reembolso poltica. (No caso da Fundao Alice .A.,assinaturas para o ALCE
Silver Edition so considerados umdoao a uma instituio de caridade sem fins lucrativos e
reembolsos no so dadas, noexcees). Voc pode usar o PayPal para reembolsar o cliente dele ou
deladinheiro, mas eles devem lembrar que o PayPal cobra uma taxa para cadatransao. Como parte
do custo de fazer negcios, um reembolso totalno pode ser esperado. O comprador deve tomar
cuidado para que mesmo um dinheiro de voltagarantia pode no incluir todas as taxas exigidas para
processar tanto ocompra eo reembolso atravs de um sistema de pagamento eletrnico como o PayPal.
emPandorabots, a pgina Assinante tem um recurso para desativarassinantes por qualquer motivo. Na
primeira coluna marcada "Estado" localizaro link "Clique para desativar" e siga as instrues
pararemover um assinante da sua lista de subscrio bot.
A maneira mais fcil de receber dinheiro de clientes atravs do serviowww.PayPal.com. Outras
formas incluem cheques, dinheiro e de crditocartes. Voc tambm pode usar os servios de
transferncia bancria, tais como Western Unionou vales postais.Receber dinheiro Cartes de crdito
difcil, a menos que voc tem umcomerciante conta de carto de crdito - e, por isso, recomendamos
que voc procure pagamentousando o PayPal. Claro, voc tambm pode fornecer acesso gratuito
suarobot ...
CAPTULO X. O Futuro da AML
Comecei a trabalhar em um novo bot chamado Entrevistador que projetado para automatizar
alguns dos processos botmastering atravs da interface de linguagem natural:
Human: comear
Bot: qual o seu nome
Human: rico
Bot: Prazer em conhec-lo, rico! um homem ou uma mulher?
Human: Masculino
Bot: Seu gnero registrado como homem. Qual a sua data de nascimento?
Humano: 1960
Bot: Ter nascido em 1960 muito sortudo. Quem sua me?
Human: mentolado
Bot: Obrigado pela informao. Quem seu pai?
Human: stan
Bot: timo. At agora, temos Nome: rico. Sexo: masculino. Data de nascimento: 1960.
Me: mentolado. Pai: stan. Voc tem correes agora?
Eventualmente, o bot tenta obter mais de seu biogrfico pessoal
informao (nmero de irmos, cor favorita, filme favorito, localizao
etc)
Ento, ns adicionamos um teste de personalidade. O entrevistador tenta classificar
Tipo de personalidade do botmaster, a fim de selecionar uma "personalidade bsica bot
perfil ", em outras palavras, um conjunto de AML personalizado para uma personalidade especfica
tipo. O entrevistador tambm vai pedir ao botmaster para entrar alguma recuperao
linhas de personalizar a personalidade AML. (No caso, no bvio, o
objetivo aqui "digitalizar" a personalidade do botmaster).
Os resultados desta entrevista pode ser "despejados" em uma nova personalidade bot.
E, bum, em cerca de 2 horas, o seu bot de chat personalizado est completa
e pronto para conversar para voc!
Algum perguntou, o outro sistema de aquisio de linguagem est l
alm de aprender. Bem, a formao botmaster um exemplo. Eu argumentei
que um grupo de botmasters financiados poderia alcanar o "objetivo da A" (no entanto,
que definido) antes de o grupo de aprendizagem de mquina, mesmo definiu a sua
arquitetura. Ainda mais rpido do que uma criana pode aprender a lngua.
Aqui est outro cenrio. Suponha-se que tinha um "botmaster acelerador"
ferramenta, baseada num tipo de teste de personalidade. As respostas botmaster
perguntas sobre seu / sua personalidade, experincia e preferncias para a
par de horas. Ento, o programa classifica o botmaster em um
de, digamos, 64 tipos bsicos de personalidade. Usando a "personalidade bsica
perfil "para o tipo, todo o conjunto automaticamente AML
gerada. sto pode no ser uma digitalizao exata do botmaster,
mas pode ser o suficiente para uma primeira passagem ou digamos, 60% de preciso (a
mesmo que um teste de personalidade). Atravs da aplicao do indivduo
fundo biogrfico e preferncias, o bot no simplesmente uma
"clone" de um dos 64 tipos de personalidade, mas um nico indivduo
personalidade.
A implicao gritante aqui que (teoricamente) que pode ser capaz de
reduzir todo o processo de aprendizagem da lngua e da personalidade
desenvolvimento de um par de horas com um computador!
Considere a funo "Botmaster Accelerator". Ns podemos acelerar a personalidade
processo de digitalizao atravs da administrao de um teste de personalidade e, em seguida,
selecionando
uma de nove a doze ou dezesseis anos (digamos) prottipo personalidades bot, ao invs
de editar todo o crebro ALCE, ou comear do zero. Em seguida, usando
propriedades de rob, podemos instanciar o bot com dados biogrficos e preferncias.
Agora, ele realmente no importa qual sistema de classificao de personalidade que voc
escolher. Em certo sentido o que voc disse verdade, eles so todos beliche. Ou talvez, eles parecem
trabalhar 60% do tempo, 60% das pessoas, talvez.
Agora, suponha que o primeiro menu botmaster :
Voc prefere:
- Luscher Cor quiz
- Astrologia
- Eneagrama
- Meyers-Briggs
- Escolha um celebridade
- Homeopatia
- Nenhuma das opes acima
O Teste de Personalidade para a escolha Astrologia simples: "Qual o seu
aniversrio? "Agora, no importa se a personalidade bot Virgem realmente
corresponde a personalidade do botmaster ou no, desde que o botmaster
acredita que ele faz. O cliente tem sempre razo. Se os quatro botmaster
acreditavam que o sistema de Eneagrama era mais confivel, ento ela poderia ter uma melhor
resultado com o Eneagrama Quatro bot. Se o botmaster acreditava que toda
classificaes de personalidade so beliche, ento eles poderiam faz-lo o velho
moda fazemos agora com "Nenhuma das acima".
CONSDERAES FNAS
Eu tenho um grfico muito interessante da adoo de tecnologia durante o sculo passado. Ele foi
originalmente produzido pelo Wall Street Journal, mas eu tenho uma pequena cpia reproduzida nas
Regras de livros para os revolucionrios por Guy Kawasaki (Harper, 1999). O grfico mostra, para uma
variedade de tecnologias do telefone televiso por satlite, o crescimento de cada um no mercado
como uma funo do ano. O eixo Y expresso em percentagem de (EUA) famlias, de modo nenhum as
curvas superior a 100%. Geralmente todas as curvas seguem uma forma de S, que se parece com um
crescimento exponencial no incio, mas depois, eventualmente, os nveis de fora como a tecnologia
satura o mercado.
A televiso um exemplo instrutivo. ntroduzido no mercado em 1947,
o crescimento foi lento at o "joelho" em 1949-1951. Em seguida, espalhar TV
a uma taxa de aproximadamente linear at cerca de 1958, quando comeou a
lentamente estabilizar. Em 1980, quase 100% dos lares tinham aparelhos de TV.
Philo T. Farnsworth, como eu, um nativo de Maine e residente em San
Francisco, inventou o tubo de raios catdicos imagem aqui em 1927. tinha
esperar mais de vinte anos antes de sua inveno vi o comercial
luz do dia!
Outra tendncia interessante o aumento da "inclinao" do
curvas. O telefone, lanado em 1876, no saturar o mercado
at cerca de 100 anos mais tarde. A curva para a rdio AM comea em 1923 e
estabiliza em 1963, um perodo de cerca de 40 anos. O videocassete foi lanado em
1.980, mas os nveis de folga em 2000, apenas cerca de 20 anos. Claro que,
h um monte de outras curvas inacabadas aglomeraram perto do final do
grfico - telefone celular, computador, internet, cmera, etc - cujo futuro cursos
permanecem incertas.
Outra anlise pode categorizar as curvas para aqueles que olham mais
como uma curva em S e aqueles que se parecem mais com uma inclinao em linha reta. o
curva para o telefone realmente um pouco irregular, tendo um grande mergulho
para baixo durante a Grande Depresso de 40% para 30% do mercado
(o mesmo no pode ser dito de qualquer outra tecnologia no grfico), mas
geral da curva de telefone mais como uma longa linha reta do que uma
S-curva.
TV a cabo tambm mais plana do que muitos outros. Desde a sua criao em 1976,
quase se pode traar uma linha reta para sua posio atual em 68%
quota de mercado. O PC tambm corre em linha reta a partir das coordenadas
[1980, 0] a [2000, 45%.] Em certo sentido, por isso que a TV Cabo e
Empresas de PC so to previsvel e chato. Conquistar esse ltimo
restante metade das famlias apenas uma questo de tempo e no fazer
nenhum grande erro. Ele tambm informa por que pessoas como Bill Gates sempre
quer se expandir para novas reas de negcio, como jogos e
entretenimento. Mesmo quando o mercado de PC satura, Bill s pode ser
duas vezes to rico como ele est agora. Para receber mais, ele precisa de uma outra linha de
negcio.
O que tudo isso tem a ver com Alice e AML? As pessoas tm
muitas vezes imaginei que Alice como Netscape em 1995, prestes a
decolar na prxima grande S-curva de crescimento. Mas eu argumentei que
mais como a Apple em 1975, ou toda a indstria PC naquele momento. estamos
principalmente amadores e amadores, com poucas aplicaes de negcios reais que
pode apontar. No entanto, todos ns temos o mesmo tipo de "febre" que tomou conta de um
gerao anterior de entusiastas de PC. Sabemos que este o prximo grande
Coisa. Sabemos que estamos na vanguarda da revoluo.
O primeiro a Apple apareceu em 1975. Mas a curva de adoo de tecnologia
para PCs nem sequer comear at 1980. Aqueles pioneiros adiantados do PC foram
como Philo Farnsworth e seu tubo de imagem do televisor. Eles sabiam que tinham
uma grande coisa, mas levar as pessoas a adot-lo foi como aliment-los
fgado. Jobs, Wozniak, Bill Gates e amigos s teve que esperar cinco anos,
comparao com Farnsworth de vinte anos. Eu estive em A. L. . C. E. e AML para
quase sete anos.
Eu no sei se estamos no joelho, na rampa, ou se a adopo
curva nem comeou ainda. Eu aprendi em sete anos no
espere milagres, e ter pacincia. nfelizmente, precisamos da
perspectiva de dez ou vinte anos para ver o que realmente est acontecendo
aqui.
Concluo com uma citao do livro de Kawasaki:
"No se preocupe com pessoas roubando suas idias. Se suas idias so todas boas, voc vai ter que
ram-los goela abaixo das pessoas." - Howard Aiken
Referncias
Referncias Prolog:
1. Tutorial Prolog
http://cs.wwc.edu/ ~ cs_dept / KU / PR / Prolog.html
2. Um tutorial curto em Prolog
http://cbl.leeds.ac.uk/ ~ tasmin / prologtutorial /
3. Programao Prolog: Um Primeiro Curso
http://cbl.leeds.ac.uk/ ~ paul / prologbook /
4. Site GNU Prolog
http://pauillac.inria.fr/ ~ diaz / gnu-prlogo
Referncias sobre a Lei de Zipf:
http://www.cut-the-knot.com/do_you_know/zipfLaw.html
http://linkage.rockefeller.edu/wli/zipf/
http://www.useit.com/alertbox/zipf.html
1. documentao
http://alicebot.org/documentation
2. No Leia-me: dB Programa
http://alicebot.org/articles/wallace/dont-dB.html
3. AML Specification (Working Draft)
http://alicebot.org/TR/2001/WD-aiml
AGRADECMENTOS
Esta pesquisa foi financiada por doaes para e realizado
por voluntrios de, a ALCE A.. Foundation, nc., uma
corporao sem fins lucrativos de pesquisa de caridade.
O autor grato a Peter Plantec por sua leitura cuidadosa e os comentrios sobre um projecto inicial
deste manuscrito.
COMENTROS SOBRE O AUTOR
Alguns dos melhores comentrios sobre a
Slashdot Entrevista com o Dr. Wallace em http://slashdot.org/interviews/
No momento em que apareceu, foi o mais longo nico artigo publicado em
a histria do Slashdot, e teve que ser dividido em trs partes.
"Se voc no consegue encontrar uma citao til nesta entrevista para usar como um sig,
voc fraco ... muito fraco. "
"este o * MELHOR * entrevista que eu j li em /. nenhum bar."
"h alguma dvida sria sobre este forum muito se isso ALCE
ou o bom doutor. "
"Ele faz um bom trabalho fora saindo como um troll sem o seu prprio
imitador ".
"Este foi um dos melhores /. Entrevistas que eu j li. Esse cara um gnio."
"Este homem brilhante e eu s queria que ele tivesse escrito mais."
"Grande entrevista. Provavelmente o melhor que eu j li no Slashdot (e
Eu definitivamente vou voltar, eventualmente, para ler tudo o que eu vidrados
over). Algum mais acha estranho que o lder A
pesquisador no mundo um auto descrito 'doente mental? "
"Este honestamente uma das melhores entrevistas, ou obras literrias
j li. Ele uma das pessoas que mais instigantes que eu
ler, e eu sinceramente gostaria de conhecer o homem. "
"Eu acho que o homem mais inteligente - seja ele nos tem todo o pensamento que ele
ALCE, ou ele est realmente nos fez pensar ALCE ele. De qualquer maneira,
ele ganhou. "
"Eu tenho muito mais respeito por Wallace depois de ler esta resposta. Ele um
profundamente indivduo perspicaz e no parece ser levado por muito
da treta do campo A. "
"Porra, o que um conjunto ponderado de pargrafos. Esta a primeira
artigo slashdot eu decidi imprimir. Eu no me importo sobre o
comprimento. "
"que conheceu um especialista em A poderia ser um escritor to qualificado. entrevista incrvel."
"Os insights sobre A, particularmente, a digresso sobre as funes
de AML para ALCE foram maravilhosos nesta entrevista. "
ndice
A. L. . C. E., 5, 12, 19, 20, 21, 41, 78, 80, 83
ALCE A.. Foundation, 80, 84, 85
Ask Jeeves, 5, 10
padres atmicos, 13
bot, 2, 15, 16, 17, 37, 40, 45, 47, 49, 58, 59,
77, 78, 79, 80, 81, 82
botmaster, 2, 3, 13, 16, 17, 35, 37, 38, 40, 41,
42, 43, 44, 78, 79, 81, 82
Botmaster Controle pgina 79
categoria, 11, 12, 13, 14, 15, 16, 17, 18, 19,
21, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44,
48, 50, 52, 53, 54, 55, 56, 57, 59, 61, 62,
63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
74, 75, 76, 77
cliente, 5, 15, 16, 18, 33, 35, 36, 41, 43, 44, 48,
55, 56, 59
Condicionais, 13
CYC, 45
Divida e conquiste, 13
ELZA, 5, 9, 15, 38
Experimentalista, 10
Kawasaki, 82, 83
palavras-chave, 13
a aprendizagem, 10, 16, 17, 20, 31, 38, 81
Linux, 5, 45
correspondncia, 13, 21, 22, 23, 33, 34, 35, 38, 39,
40
neurocincia, 11
Pandorabots, 4, 77, 78, 79, 80
padro, 6, 12, 13, 14, 15, 16, 17, 18, 19, 21,
22, 23, 24, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 48, 49, 50, 52, 53, 54, 55,
56, 57, 61, 62, 63, 64, 65, 66, 67, 68, 69,
70, 71, 72, 73, 74, 75, 76, 77
PayPal, 78, 79, 80
Pinker, 8, 19
Programa dB, 41, 84
Prolog, 3, 45, 46, 47, 48, 49, 50, 52, 58, 83,
84
PSYCH, 3, 45, 47, 48, 49, 50
raciocnio, 10, 45, 48, 49, 50, 52, 58
recurso, 13
Reducionista, 10, 11
Spelling, 13
Star Trek, 6, 64
de resposta a estmulos, 11, 12, 13, 20, 32, 38
reduo simblica, 13, 14, 33
Reduo simblica, 13
resoluo sinnimo, 13
Segmentao, 16, 43, 44, 78
Molde, 12, 13, 14, 15, 16, 18, 19, 21, 22,
23, 26, 30, 33, 34, 35, 36, 37, 38, 40, 41,
42, 43, 44, 48, 50, 52, 53, 54, 55, 56, 57,
61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
72, 73, 74, 75, 76, 77
A Ps-Graduao, 77
reconhecimento de voz, 10, 79
wildcard, 12, 14, 19, 22, 36, 42, 44
WMP, 64
Windows 22, 45, 64
Zipf., 6
A lei de Zipf, 6, 84
Copyright 2003 ALCE A.. Foundation, nc.