Tuesday, December 21, 2010

Chatting with Antonio de Morga in OpenSimulator

What are chatter robots?

Chatter robots (Chatbots) are computer programs that simulate a natural conversation with a machine. It applies low level artificial intelligence implementation basically using pattern matching.

Files with the list of patterns and responses are written by a botmaster. It is in XML format wherein the tags are predefined, in this case according to the Artificial Intelligence Markup Language (AIML).

It is less sophisticated than natural language processing using cognitive architectures, but is lighter on a server.

In my project I am using the Radegast Metaverse client which has an ALICE bot plugin.

Here are some screenshots of the conversation in OpenSimulator using the Imprudence viewer.

conversation between my avatar and de Morga in public chat

conversation appearing as bubbles in imprudence

de Morga's views about Aetas clearly shows bias. Will the students recognize it?
Bubbles have a limit to the amount of text displayed unlike the default chat list.  The bot's responses would have to formatted for this display.

In the public chat, you have to address the bot by first name in order for it to respond. In the private message box, no name is necessary.

PM with the chatbot

right click on bot's avatar and select Send IM in pie menu
How the chat is listed in the Radegast viewer. Radegast may also be used by people who do not have the computer hardware to run a 3d viewer like Imprudence.

Radegast listing of the chat, unfortunately picking up messages from unconfigured Sloodle objects

Below is a snippet of  the modified history.aiml file listing. The brain is yet to be finished.

<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Free software &copy; 2001-2003 ALICE A.I. Foundation. -->
<!-- This program is open source code released under -->
<!-- the terms of the GNU General Public License     -->
<!-- as published by the Free Software Foundation.   -->
<!-- Complies with AIML 1.01 Tag Set Specification -->
<!-- as adopted by the ALICE A.I. Foundation.  -->
<!-- Annotated Version updated September 2003 -->

<category><pattern>DO YOU KNOW HISTORY</pattern>
<template><srai>WHAT IS HISTORY</srai></template></category>

<category><pattern>EXPLAIN HISTORY</pattern>
<template>History is a narrative of important events. It is a record of the deeds of great men.</template></category>

<template>I am very interested in history, too. What period do you like?</template></category>

<category><pattern>TELL ME ABOUT HISTORY</pattern>
<template><srai>WHAT IS HISTORY </srai></template></category>

<category><pattern>WHAT IS HISTORY</pattern>
<template>History: the course of political, economic and military events over time, from the Dawn of Man to 1609.</template></category>

<template>1609 is the year I published my book Sucesos de las islas Filipinas.</template></category>

<category><pattern>WHAT IS SUCESOS</pattern><template>Sucesos means events.

<category><pattern>WHAT KIND OF HISTORY *</pattern><template>I like to talk about the history of the Philippines.</template></category>

<category><pattern>_ ITA</pattern>
<category><pattern>_ AGTA</pattern>
<category><pattern>_ NEGRITO</pattern>
<category><pattern>_ ITAS</pattern>
<category><pattern>_ AGTAS</pattern>
<category><pattern>_ NEGRITOS</pattern>
<category><pattern>_ AETAS</pattern>

<li>In various parts of this island of Luzon are found a number of natives black in color. Both men and women have woolly hair, and their stature is not very great, although they are strong and robust.</li>
<li>These people are barbarians, and have but little capacity. They possess no fixed houses or settlements, but wander in bands and hordes through the mountains and rough country, changing from one site to another according to the season.</li>
<li>They support themselves in certain clearings, and by planting rice, which they do temporarily, and by means of the game that they bring down with their bows, in the use of which they are very skilful and certain.</li> They live also on honey from the mountains, and roots produced by the ground.
<li>They are a barbarous people, in whom one cannot place confidence.</li>
<li>They are much given to killing and to attacking the settlements of the other natives, in which they commit many depredations; and there is nothing that can be done to stop them, or to subdue or pacify them, although this is always attempted by fair or foul means, as opportunity and necessity demand.</li>



Aimless, D. (2002). A tutorial for adding knowledge to your robot. Available at http://www.pandorabots.com/pandora/pics/aimless/tutorial.htm.

Ringate, T. (2001). AIML primer. Available at http://www.alicebot.org/documentation/aiml-primer.html.

Wallace, R.S. (n.d.). AIML overview. Available at http://www.pandorabots.com/pandora/pics./wallaceaimltutorial.html.

Friday, December 17, 2010

History from textbooks and history in a virtual world

Building the virtual library made me realize certain things about teaching history in a virtual world such as OpenSimulator.

This first is that in building a library of virtual books one has to consider the role of the player. The student as student would have access to all sources of information. If the game world has a Spanish era theme then even books published after that era will be available to the student. On the other hand the student as role player would have different virtual books available to them depending on what roles they play. If they play the role of a 19th century student then they would have access to censored books because at the time the friars were censoring publication.  Social class played will also be a factor in what books one possess. Ilustrados like Jose Rizal would have a private library. The new labor/white collar class of Andres Bonifacio will also have book collections. The general masses probably only has access to religious books like the Pasyon and popular literature like poems, romances etc. Underground or revolutionary material will not appear in libraries but would generaly be hidden. We can generalize this condition to all sources of information even word of mouth because the Spaniards have spies and according to some historians the abuse of the confession.

Place would then be related to sources of information. Censored books in school, private libraries in bahay na bato, religious material in bahay kubo, and propaganda/revolutionary material in hiding places.

The way history is unfolded to the student in a virtual world differs then to that in a textbook. The textbook (taught in lock step method) follows a linear path. The focus is on plot and characters or if in a social scientific way on concepts. The student is given a digest of the readings of the historian. This provides a god like knowledge of history wherein the student is witness to the public and private events. The actions, motivations, and musings of historical actors.

In a virtual world, parallel narratives may occur. And players may not know what is happening in the next room, or the next region. A good network will allow players to be updated with what is going on in the other room. He/she can chat with other players and find out what is happening in world.

And like in the real world, players who are not in the right place at the right time in the network will find themselves baffled when the game map (or the world) is changed or updated by the devs. The ground may literally be pulled under their feet as new terraforms are built. In real life ordinary people unconcerned with historical changes go through their ordinary business then they wake up next day without a job, a house and a pension. History (events beyond their comprehension and control) whacks them in the face.

Jesus said, "You know how to interpret the appearance of the sky, but you cannot interpret the signs of the times."

Wednesday, December 15, 2010

Making dead historians come alive as chatbots in OpenSimulator 1

One of the fundamental design problems of educational games is the embedding of school content that would not disrupt the game play. To embed history content in my Philippine History game project I am going to explore the use of chatbot avatars. My plan is to use the Radegast Metaverse client for this purpose. OpenSimulator does have code for NPCbots but it does not work in the current ( version and I don't want to rollback my server.

I am going to try to create three chatbots for my demo of the concept. Three historians from the Spanish Colonial era, namely Antonio de Morga, Francisco Baranera, and Jose Burniol. De Morga was a liuetenant general of the Philippines in the 1595-1598. He wrote the book Sucesos de las Islas Filipinas (1609) wherein he wrote about early colonial rule of the Philippines and more importantly a description of our ancestors at the time in a chapter. Rizal annotated and republished his work in the 1800s.

Baranera and Burniol are Jesuit priests who wrote history textbooks for Ateneo Municipal. Baranera wrote Compedio de la Historia de Filipinas (1884) while Burniol wrote A History of the Philippines for Class Use (1912). The former was during a time when Spain ruled the Phillipines while the latter was after Spain's defeat by the Americans.

From my reading of Rizal's curriculum in Ateneo and UST, it appears that Philippine history is taught only in Secondary school i.e. Ateneo Municipal and not in the university.

Why do I find it interesting to sample old history books (and by Spaniards even)? Well I grew up with history textbooks written by Filipinos. And most of these books were from a nationalist perspective. Almost all of them start justifying the need for a new history book written by Filipinos and for Filipinos. But I was wondering why? What was wrong with the histories written by the colonizers. What was this bias and prejudice that I heard so much about in these books? Just like any sources in history, these books are products of their time. I think students will benefit a lot from comparing these books from different periods of Spanish rule of the Philippines, with those from the American era, and the era of the Republic. It would be great to see how the historical context affect the histories themselves. What is the difference between a winner's history from a loser's perspective? What is the difference between Baranera and Burniol? I think there are  more questions about history and historiography that we can generate through a comparative approach to the study of Philippine history books.

Of course reading one history book is difficult enough, why not bring all the authors in class and interview them about their histories? This is what I will use chatter bots for. To achieve this plan, the first step is to create an avatar. Here is my interpretation of de Morga.

compare with a painting of de Morga....:-)

Unfortunately I do not have paintings of Baranera and Burniol, so I'll just use some generic (to me at least) European looking teachers for them.

Next post will be about how the chat went... I'll need to hit the books and work on aiml files.

virtual 3d 19th century school building

This prim object requires assembly. It is made up of object parts due to the difficulty of linking too many prims. It is divided into rooms, patios, roof, stairs and furniture. It is basically a bahay na bato with the lower floor whitewashed or plastered. For the second floor I reused the bahay na bato prims.

side view

front view

Download and load in OpenSimulator

http://www.mediafire.com/file/4i12x160qvaet9z/school19thcent.iar (2.98 MB)

Copyright Roel Cantada 2010

Monday, December 13, 2010

Biblioteca for Open Simulator

There is nothing surprising in these prim objects. Just a lot of shelves.

What is more important are the virtual books. Or the prim boxes with texture of the title pages of freely available online books. The boxes contain a script that open a browser to the website where the books can be read or downloaded.

I used Touch_Url-loader_1232.lsl script from http://www.free-lsl-scripts.com/freescripts.plx?ID=1208. It is licensed under GNU GPL.

Most of the books were published during the Spanish colonial rule over the Philippines. Some are from later periods, that look back at the Spanish colonial era. It is not possible to use prim flip books at this time for these books are very thick.

Preparing a list of books this way is satisfying for exploration by the user (reminded me of going to a real library; i can almost smell the musky books), but tedious for the designer. The books have to be manually built, textured, named, and scripted one by one. I currently have more than 160 links to books about and from the Spanish colonial era. The screenshot above shows only 12. And I have not ordered them properly in any way.

The idea of having a single notecard giver just provide a list of links to the books does not appeal to me, and seems to waste the value of the virtual experience.

Btw. This would be a good place to put a Sloodle metagloss. I'll look into that next time.

Sunday, December 12, 2010

Saturday, December 11, 2010

Virtual 19th century classroom for Open Simulator

I'm building a prim 19th century school for my Philippine History game project. Here is the virtual classroom. One can write on the blackboard using chat. I used Justin Clark-Casey's Grafitti board 0.0.2 script for the board. It comes bundled in Opensim and is available under the BSD License. It can be found in Inventory->OpenSim Library->OpenSim Specific Scripts->GrafittiBoard.

I plan to create another classroom using Sloodle objects. The board will be a Sloodle presenter and there would be quiz chairs.  I will release all items the when the entire school is complete.

Thursday, December 9, 2010

Prim globe for Open Simulator

Here are two globes that I will use in my virtual 19th century classroom. They appear to be ubiquitous in reference photos. The first globe is for decorative purposes only as I could not get the texture map to properly align with the UV texture of the prim. The second is anachronistic for the 19th century as it is a current day political map. I would need to find a 19th century map of the world compatible with the cc-by-sa license later on.


http://www.mediafire.com/file/1wn56qsu7cdfd12/globo_ccbysaph.iar  (349.04 KB)
Copyright Roel Cantada 2010

Political World Map.jpg retrieved from 

Wednesday, December 8, 2010

Prim steamship for Open Simulator

This prim steamship has 271 prims. It's very rough as I could not get the curved shapes to fit together properly. There is no furnishing and there is very little detail. This ship will not sail, because I could not get boat scripts to work in Open Simulator. It will remain anchored in a port in world.

In relation to teaching the history of the Philippines in the 19th century, I think the steamship is not only useful for discussing technology and transportation but social classes as well. Passengers in steamships are divided into 1st, 2nd and 3rd classes. Each having different amenities.

Doing research on steamships made me realize how little I know about ships and its history. For instance I used to think that these vessels used paddle wheels even in the late 19th century. I found out that they already used propellers. This prim steamship is not accurate. I could not fully comprehend the ship plans I have, and I could not find enough reference on the layout of the interior.

Btw. the word bapor came from the Spanish word vapor, which means steam. In fact there were vapor tranvias in Manila, and the tren can also be considered a bapor.


http://www.mediafire.com/file/cmhxkcmx9cm24j8/bapor_ccbysaph.iar (593.46)

Copyright Roel Cantada 2010

Monday, December 6, 2010

WorldForge's virtual world on Cyphesis server

Here are some screenshots of the demo Mason game in Ubuntu Lucid amd64. Mason is a game developed by The WorldForge Project. An older version of the server and client is in the Ubuntu repository. Install ember and cyphesis-cpp packages via Synaptic package manager. You would also need postgresql for the database backend.

Cyphesis is the server and Ember is the client. If you install the Lucid packages you will also need to consider this bug https://bugs.launchpad.net/ubuntu/+source/ember/+bug/678405, a missing package dependency called ogre-plugins-cgprogrammanager.

Have fun :-).

Wednesday, November 24, 2010

Open Ryzom on Ubuntu amd 64 Lucid

I've been looking at other 3D worlds this past few days.

I managed to build the ryzom server on Ubuntu GNU/Linux and used the official Ryzom client for GNU/Linux to connect to it. I did not succeed in running the client from source.When I click on the Ryzom link on the applications menu a dialog box states the ff.

Could not launch 'Ryzom'
Failed to execute child process "/usr/local/bin/ryzom_client" (No such file or directory)

So I opened a terminal and  typed ryzom_client but it merely said:

nel_drv_opengl not found

The ryzom official linux client worked but it's menu bar dissappears when the window is moved. The in game menus are at times unresponsive and sometimes freezes. But all in all this is a promising free software.

Ryzom is a full pleged mmorpg. I had never played the game before, but when the world rezzed I 'm impressed. For me the most important visual effect is the animated movement of the avatar. I think it has the same flexibility as the OpenSim avatar. The environment also has a strong visual impact. I think this would be a good platform to create history games. But the code is massive and would require a lot of study. The compiled code is around 11 gigabytes, and the official client is around 6 gig. 

I think this is a project the free software community should support.

Saturday, November 20, 2010

Beginning a prim steamship

Prim casco (19th century river boat)

This flat bottomed boat was quite common in 19th century Pasig river in Manila. It was used to transport goods across the river and along the canals that led to warehouses.

Too bad I couldn't get boat scripts to work properly. When I drop the script on the boat itself it would not move. It probably have something to do with parts of the boat exceeding 10m. When I use a test cube it functions, but when I stand up the cube sinks to the bottom. There must be something wrong with my setting of physics or the lsl script. I would need more study on boats in OpenSim to get this to work.


http://www.mediafire.com/file/x88pmzr2iru6a00/casco_ccbysaph.iar (408.47 kb)

http://www.mediafire.com/file/ssbnjku478l4go0/casco_xml.zip (408.79 kb)

Copyright Roel Cantada 2010

Friday, November 19, 2010

Prim basilica release

This prim basilica for OpenSim has 1,390 prims. It's bell tower has 90 prims. I am releasing it as an oar file because the basilica is so big it will occupy an entire region/sim.

The basilica has no sculptures and no furniture. The bell tower has no bell. That's because I'm already exhausted doing this build.


Copyright Roel Cantada 2010

Thursday, November 18, 2010

Some lessons learned in building big prim objects

The basilica prim object has 1,390 prims. I grouped the prims into the parts of the basilica. Facade, dome, nave, aisle, etc. Unfortunately I found out that I was short on sim space at the back and I have to move the entire basilica forward.

My immediate reaction was to link the entire basilica into one object and move it by hand. That worked, but when I have to edit it I could unlink individual prims probably because of nested children. So I unlinked it all again. It took a very long time and resulted in the entire basilica exploding, with 1,390 parts strewn all over the place.  I was shocked.

Fortunately I have an oar back up and reloaded from the previous edit. Here are some of the lessons I've learned (which are probably obvious to professional builder).

  1. Always backup with an oar or iar.
  2. Don't link big builds into one object, it will take forever to copy into the inventory.
  3. When moving parts of a big build use build math. That is use + or - the value on the build input boxes rather than manually moving parts. It's a precise way to move stuff around.
  4. Use a test prim when using build math. Test first how much value is needed to move norht, south, etc.
  5. Use prims as a ruler to measure stuff. You can divide it by build math / to get equal parts.
  6. After using build math always select another prim to deselect the edited object. I frequently want to move my avatar to another place, forgetting that when I press the up/down arrow keys the value in the build menu goes up and down instead of the avatar moving.
  7. Frequent editing mistakes are forgetting to enable/disable stretch both sides, and edit link parts.

Measuring prim for the basilica's bell tower. The cork screw sculpty are stairs.

Thursday, November 11, 2010

Mesh objects in Opensim Dev

I tested the "mesh object" feature in OpenSim development version that allows the importation of collada (.dae) mesh files.  I used meshes from Big Buck Bunny and the third stage of the Sintel mesh as test; without decimation. I did removed subsurf subdivision in the Sintel mesh due to its size.  It was exported using Blender 2.49b as collada1.4 dae files.  Here is a screenshot of the result.

It's still very early in development but hopefully by next year we'd have a stable mesh system. The viewer used is the Second Life ® Mesh Viewer for Linux.

Big Buck Bunny characters are copyright of Blender Foundation | www.blender.org  and are licensed under Creative Commons Attribution 3.0. Sintel character is copyright of Blender Foundation | www.sintel.org and is similarly licensed under Creative Commons Attribution 3.0.



Wednesday, November 10, 2010

Creative Commons License
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.