<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Cafe TI - pra perder o sono. &#187; Inteligencia Artificial e Robótica</title>
	<atom:link href="http://cafe-ti.blog.br/categorias/futuro/inteligencia-artificial-e-robotica/feed" rel="self" type="application/rss+xml" />
	<link>http://cafe-ti.blog.br</link>
	<description>Informação de PESSOAS para PESSOAS!</description>
	<lastBuildDate>Thu, 17 Jun 2010 23:26:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Tutorial de AIML &#8211; Parte 1</title>
		<link>http://cafe-ti.blog.br/26~tutorial-de-aiml-parte-1.html</link>
		<comments>http://cafe-ti.blog.br/26~tutorial-de-aiml-parte-1.html#comments</comments>
		<pubDate>Fri, 05 Oct 2007 18:45:44 +0000</pubDate>
		<dc:creator>Alberto</dc:creator>
				<category><![CDATA[Inteligencia Artificial e Robótica]]></category>

		<guid isPermaLink="false">http://cafe-ti.blog.br/wordpress/26~tutorial-de-aiml-parte-1.html</guid>
		<description><![CDATA[Ol&#225;, pessoal. Este &#233; meu primeiro artigo no Caf&#233;-TI, e para estrear, decidi falar sobre um assunto que considero muito legal, &#250;til, e que &#233; pouco falado mesmo na internet. &#201; t&#227;o importante que at&#233; parei de assistir Adult Swim pra escreve-lo. Bom, vamos l&#225;. Quem aqui nunca brincou com aquele rob&#244; da Petrobr&#225;s, o [...]


Sem artigos relacionados.]]></description>
			<content:encoded><![CDATA[<p><font face="DejaVu Sans, sans-serif">Ol&aacute;, pessoal. Este &eacute; meu primeiro artigo no Caf&eacute;-TI, e para estrear, decidi falar sobre um assunto que considero muito legal, &uacute;til, e que &eacute; pouco falado mesmo na internet. &Eacute; t&atilde;o importante que at&eacute; parei de assistir Adult Swim pra escreve-lo.</p>
<p>Bom, vamos l&aacute;.</p>
<p>Quem aqui nunca brincou com aquele rob&ocirc; da Petrobr&aacute;s, o Ed? Se voc&ecirc; nunca experimentou, d&aacute; uma olhada em http://www.inbot.com.br/ed/popup.htm .<br />
Bem feito, n&atilde;o?</p>
<p>Pena que o c&oacute;digo dele &eacute; fechado. Ele foi escrito em linguagem BDL (Bot Description Language), uma linguagem criada pela Insite, para desenvolver personagens com inteligencia artificial, segundo o pr&oacute;prio rob&ocirc; Ed.<br />
Ali&aacute;s, pergunte sobre Open Source pra ele e ele vai mudar de assunto. hehe.</p>
<p>Mas nosso tutorial &eacute; sobre AIML (Artificial Intelligence Markup Language), uma linguagem para a cria&ccedil;&atilde;o de personagens inteligentes, assim como a BDL, s&oacute; que&#8230; de gra&ccedil;a.</p>
<p>Como o pretendido &eacute; termos uma s&eacute;rie de artigos sobre AIML e AI, vou explicando a hist&oacute;ria da AI e do AIML, um pouco por cada artigo, para n&atilde;o ficar muito te&oacute;rico e chato.</p>
<p>Agora vamos come&ccedil;ar de verdade.</p>
<p>Parte I. Entendendo o conceito</p>
<p>AIML, assim como o HTML e XML, &eacute; formada por tags.<br />
As quatro tags-chave do AIML s&atilde;o:</p>
<p>a. &lt;aiml&gt; &#8211; &eacute; a tag que vai aparecer na primeira linha do seu arquivo, para iniciar o arquivo aiml</p>
<p>b. &lt;category&gt; &#8211; &eacute; a tag que marca a &ldquo;unidade de conhecimento&rdquo; em uma base de conhecimento do rob&ocirc; (no exemplo voc&ecirc; vai entender melhor).</p>
<p>c. &lt;pattern&gt; &#8211; &eacute; usada para definir padr&otilde;es, que ser&atilde;o identificadas pelo software que roda o AIML. Por exemplo, o usu&aacute;rio digita &ldquo;Oi, tudo bem?&rdquo;, em um chat com um rob&ocirc;. A&iacute;, o software vai procurar o padr&atilde;o mais parecido com &ldquo;oi tudo bem?&rdquo; e vai retornar a resposta que est&aacute; no &lt;template&gt;.</p>
<p>d. &lt;template&gt; &#8211; cont&eacute;m a resposta para o usu&aacute;rio.</p>
<p>
Parte 2. Meu primeiro bot</p>
<p>Existem diversas ferramentas de c&oacute;digo aberto para voc&ecirc; integrar com seu bot. A que eu escolhi para fazer este primeiro tutorial, &eacute; o Program E, feito em PHP e usa um pequeno banco de dados MySQL. Ele pode ser baixado por aqui:<br />
http://sourceforge.net/project/showfiles.php?group_id=43190</p>
<p>Para instala-lo, basta seguir estes passos:</p>
<p>a. descompactar seus arquivos em alguma pasta do seu servidor Apache. Eu criei uma pasta chamada &ldquo;proge&rdquo;, de Program E.</p>
<p>b. editar o arquivo proge/src/admin/dbprefs.php (as linhas que devem ser editadas est&atilde;o no fim do arquivo)</p>
<p>c. criar uma base de dados no MySQL</p>
<p>d. dar permiss&otilde;es de escrita na pasta proge/src/admin</p>
<p>E por enquanto &eacute; s&oacute;.</p>
<p>Agora vamos criar nosso primeiro bot.<br />
Entre no diret&oacute;rio raiz do seu Program E, e entre na pasta AIML.<br />
Crie um arquivo qualquer com extens&atilde;o .aiml, por exemplo &ldquo;primeiro.aiml&rdquo;.<br />
Abra ele com o editor de sua preferencia. Eu usei o Kwrite.</p>
<p>Para nosso tutorial ficar mais did&aacute;tico, por favor, delete todos os arquivos da pasta proge/aiml. Lembre-se de que voc&ecirc; precisa editar o arquivo dbprefs.php para definir o diret&oacute;rio dos arquivos aiml e as configura&ccedil;&otilde;es do banco de dados. N&atilde;o se esque&ccedil;a tamb&eacute;m que as linhas que devem ser editadas est&atilde;o no fim do arquivo.</p>
<p>Agora vamos programar um pouco.<br />
Todo arquivo AIML inicia com a tag:</p>
<p>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt; &#8211; definie a vers&atilde;o do XML e o conjunto de caracteres que ser&aacute; usado, neste caso, UTF-8.</p>
<p>&nbsp;&lt;aiml version=&quot;1.0&quot;&gt; &#8211; marca o in&iacute;cio do c&oacute;digo AIML e define a vers&atilde;o do AIML.</p>
<p>
Agora um pouquinho mais de c&oacute;digo:</p>
<p>&lt;category&gt; &#8211; abre/cria a categoria.<br />
&nbsp;&lt;pattern&gt;ol&aacute;&lt;/pattern&gt; &#8211; o usu&aacute;rio diz &ldquo;ol&aacute;&rdquo;.<br />
&nbsp;&lt;template&gt;Oi!&lt;/template&gt; &#8211; o rob&ocirc; responde &ldquo;oi!&rdquo;.<br />
&nbsp;&lt;/category&gt; &#8211; finaliza a categoria.</p>
<p>Vamos um pouco mais longe agora:</p>
<p>&lt;category&gt; &#8211; abre/cria outra categoria<br />
&nbsp;&lt;pattern&gt;*&lt;/pattern&gt; &#8211; o usu&aacute;rio digita qualquer coisa.<br />
&nbsp;&lt;template&gt; &#8211; abre o template<br />
&nbsp;&lt;random&gt; &#8211; o rob&ocirc; escolher&aacute; uma dessas frases para responder, randomicamente:<br />
&nbsp;&lt;li&gt;Fale alguma coisa&#8230;&lt;/li&gt;<br />
&nbsp;&lt;li&gt;Se voc&ecirc; quer conversar sobre nada, voc&ecirc; est&aacute; no lugar certo!&lt;/li&gt;<br />
&nbsp;&lt;li&gt;Espero que esteja gostando do tutorial.&lt;/li&gt;<br />
&nbsp;&lt;li&gt;Estou transbordando de amor por Julia Roboberts hoje.&lt;/li&gt;<br />
&nbsp;&lt;/random&gt; &#8211; finaliza o random<br />
&nbsp;&lt;/template&gt; &#8211; finaliza o template<br />
&nbsp;&lt;/category&gt; &#8211; finaliza a categoria</p>
<p>Para finalizar, feche o arquivo com:</p>
<p>&lt;/aiml&gt;</p>
<p>
Pronto.</p>
<p>O c&oacute;digo completo e formatado para voc&ecirc; dar copy paste (n&atilde;o recomendo dar copy/paste, pois digitar o c&oacute;digo ajuda a memorizar):<br />
</font><font face="Courier New"><br />
</font></p>
<table width="532" height="496" cellspacing="1" cellpadding="1" border="0">
<tbody>
<tr>
<td bgcolor="#cccccc"><font face="Courier New" color="#000000">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;<br />
            &nbsp;&lt;aiml version=&quot;1.0&quot;&gt;<br />
            &nbsp;&nbsp; &lt;category&gt;<br />
            &nbsp;&nbsp;&nbsp;&nbsp; &lt;pattern&gt;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ol&aacute;<br />
            &nbsp;&nbsp;&nbsp;&nbsp; &lt;/pattern&gt;<br />
            &nbsp;&nbsp;&nbsp;&nbsp; &lt;template&gt;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Oi!<br />
            &nbsp;&nbsp;&nbsp;&nbsp; &lt;/template&gt;<br />
            &nbsp;&nbsp; &lt;/category&gt;<br />
            &nbsp;&nbsp; &lt;category&gt;<br />
            &nbsp;&nbsp;&nbsp;&nbsp; &lt;pattern&gt;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *<br />
            &nbsp;&nbsp;&nbsp;&nbsp; &lt;/pattern&gt;<br />
            &nbsp;&nbsp;&nbsp;&nbsp; &lt;template&gt;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;random&gt;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fale alguma coisa&#8230;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/li&gt;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Se voc&ecirc; quer conversar sobre nada, voc&ecirc; est&aacute; no lugar certo!<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/li&gt;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Espero que esteja gostando do tutorial.<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/li&gt;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Estou transbordando de amor por Julia Roboberts hoje.<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/li&gt;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/random&gt;<br />
            &nbsp;&nbsp;&nbsp;&nbsp; &lt;/template&gt;<br />
            &nbsp;&nbsp; &lt;/category&gt;<br />
            &nbsp;&lt;/aiml&gt;</font></td>
</tr>
</tbody>
</table>
<p>Parte 3. Executando o bot</p>
<p>Agora, abra o seu navegador, inicie seu servidor Apache e o MySQL, caso estejam desligados, e digite na barra de endere&ccedil;os do navegador:<br />
<font color="#0000ff">http://localhost/proge/src/admin/botloader.php</font></p>
<p>Se seu PHP estiver no Safe-Mode, abra o link<br />
<font color="#0000ff">http://localhost/proge/src/admin/botloaderinc.php<br />
</font><br />
Como s&oacute; tem um arquivo, com duas categorias, a p&aacute;gina ir&aacute; carregar muito r&aacute;pido e exibir&aacute; a seguinte tela:</p>
<p>Agora clique em &ldquo;Click here to talk to the bot&rdquo;, e voc&ecirc; pode testar o bot.<br />
Digite qualquer coisa, e ele vai responder uma das frases random que voc&ecirc; definiu.<br />
Se voc&ecirc; digitar &ldquo;ol&aacute;&rdquo;, ele vai te responder &ldquo;Oi!&rdquo;.<br />
Agora, com o pouquinho que voc&ecirc; aprendeu aqui, j&aacute; d&aacute; pra voc&ecirc; &ldquo;rechear&rdquo; seu bot com um pouco mais de conhecimento.<br />
No pr&oacute;ximo epis&oacute;dio:<br />
Vamos aprender a mecher com as tags &lt;THAT&gt; e &lt;TOPIC&gt;, que servem como uma &ldquo;mem&oacute;ria&rdquo; para o rob&ocirc;, ou seja, far&aacute; o rob&ocirc; lembrar de certos pontos da conversa com o usu&aacute;rio, o que faz a conversa ser muito mais interessante.</p>
<p>
At&eacute; a pr&oacute;xima!</p>
<p><map name='google_ad_map_26_fdb3949422165265'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/26?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_26_fdb3949422165265' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=26&amp;url= http%3A%2F%2Fcafe-ti.blog.br%2F26%7Etutorial-de-aiml-parte-1.html' /></p>

<p>Sem artigos relacionados.</p>]]></content:encoded>
			<wfw:commentRss>http://cafe-ti.blog.br/26~tutorial-de-aiml-parte-1.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
