Ontopia Runs on Raspberry Pi

I am pleased to report that I have had the Ontopia Topic Maps software running on my Raspberry Pi for the past week.  Ontopia is a suite of open source tools for building, maintaining and deploying Topic Maps-based applications. The Raspberry Pi is an ultra-affordable ARM GNU/Linux box based upon the work of the Raspberry Pi Foundation.  My experience in running the out-of-the-box Ontopia apps (Ontopoly topic map editor, Omnigator topic map browser, and Vizigator topic map vizualizer) has been terrific. Using the Raspberry Pi to run the Apache Tomcat  server that hosts the Ontopia software, response time is as good or better than I have experienced when hosting the Ontopia software on a cloud-based Linux server at my ISP.  Topic maps open quickly in all three applications and navigation from topic to topic within each application is downright snappy.

As you will see in my discussion of testing below, I have experienced good results with up to two simultaneous users.  So, my future test plans include testing with more simultaneous users and testing with the Ontopia RDBMS Backend installed.  Based upon the performance that I have experienced so far, I have high hopes.  Stay tuned for further reports.

Significance for Topic Maps Enthusiasts

We Topic Maps enthusiasts are always on the lookout for new people to join us.  Just this week, Patrick Durusau suggested in a blogpost that we might want to introduce semantic technologies to a younger (teen/preteen) audience. Given the success of the BrainBank Project in using topic maps technology with middle school students, I believe that this is a great idea. More important, I believe that the Raspberry Pi platform can deliver this younger audience.  Despite the fact that the Pi has attracted quite a bit of attention from affordable computing enthusiasts like me, the primary target audience for the Pi is students in grade school and high school.  Raspberry Pi fans (young and old) have begun having a series of monthly meetups called Raspberry Jams, “where you can meet other Pi-thusiasts, learn to use a Raspberry Pi, listen to talks and see demos, and generally get to muck around with some like-minded people.”  Jams include sessions on subjects as technical as Python and Linux.  To me, Raspberry Jams appear to be an ideal opportunity to show people how to get the Ontopia software running on their Pi, and to introduce them to the joys of Topic Mapping.

Significance for Raspberry Pi Enthusiasts

Topic Maps is a fun and highly-useful semantic data technology that is very accessible for new users (see The TAO of Topic Maps by Steve Pepper).  This approach to knowledge management will appeal to students, teachers and hobbyists alike. Topic Maps technology is based upon an international standard and it has a well-developed community of practitioners in Europe, the U.S., Asia, and throughout the world. This is a well-established semantic data technology with an established community that is positioned to engage with the Raspberry Pi community around the world.

It is also significant that we have demonstrated that a Tomcat-based application can be hosted on the Raspberry-Pi with appealing response time.  While I am not making the claim that the Pi is the ideal Tomcat host, I am expecting the Pi to be viable development platform and a decent host for low-volume Tomcat-based demonstration applications that Pi‑enthusiasts might create. More important, this demonstrates that the Pi is capable of supporting many more applications and technologies than we might yet have considered.  I find that very promising.

Testing Details

In my first test, I ran the client apps and server apps on two different machines. The out-of-the-box Ontopia applications are browser-based.  So, I set up the Raspberry Pi to act as the server for these applications.  In my first test, I configured the Pi as a headless Linux server and did all server control and browser-based testing using a Windows 7-based PC as the client. The client and server were connected via my Ethernet LAN.  I was easily able to start the Tomcat server using a remote terminal connection using Putty. As is my usual experience, the Ontopia apps ran quite well on the Chrome, Firefox, and IE browsers.  As I mentioned earlier, response time compared very favorably with that experienced running the same apps from a cloud-based Linux server at my ISP. Topic maps loaded in reasonable amount of time.  Once inside an application, the navigation from topic to topic was absolutely snappy.

In my second test, I ran both client and server apps on a single Raspberry Pi. I took the Raspberry Pi server out of the headless mode (added monitor, keyboard and mouse).  I started the X-based GUI.  I started the Tomcat server from a GUI-based terminal window.  Then, I proceeded to test the Ontopia apps using the three browsers available on my distribution of Raspian Linux:  Midori, Dillo and NetSurf.  Midori gave the best performance of the three; NetSurf gave the worst.  Even with Midori, there was a small increase in latency over my previous test (PC as client).  Nevertheless, the response time was acceptable and comparable to that experienced by scores of satisfied Topic Maps tutorial students who I have taught while they ran the Ontopia software on their PCs. This verified my hypothesis that the Raspberry Pi would serve as a viable platform for learning and experimenting with Topic Maps.

My third test combined the significant aspects of the first two.  I continued running both client and server applications on the Raspberry PI.  Simultaneously, I established a second connection to the Ontopia apps from the browser on my PC.  I was very pleased to see that response time was not perceptibly slower on the PC than it had been in the first test.  Yet it was competing in this third test for resources used by the client running on the Pi.  Response time on the Pi client remained the same as well.  This leads me to believe that any latency issues that I experienced when using the Ontopia apps entirely on the Pi are browser- related and not server-related or capacity-related.  As you will see in the technical details below, my server configuration included the soft-float version of Raspian Linux (this is a requirement of the Java distribution).  Perhaps this had an effect on browser performance.  Or, perhaps there was another cause.  I am very interested in what readers may have to report on this issue from their own Pi browser experience.

Test Machines Configurations

Headless Raspberry Pi Server

  1. Raspberry PI (Model B with 512MB RAM) 64MB/448MB GPU/ARM memory split
  2. Sandisk Extreme 32 GB SDHC Card (approximately 4.4GB utilized)
  3. Soft-float Debian “wheezy” (2012-08-08-wheezy-armel.zip)
  4. Oracle Java SE Development Kit 7u9 (jdk-7u6-linux-arm-sfp.tar.gz)
  5. Ontopia Topic Maps Software Version 5.2.2 (http://www.ontopia.net/)

Client and Server Raspberry Pi

  1. Raspberry PI (Model B with 512MB RAM) 64MB/448MB GPU/ARM memory split
  2. Sandisk Extreme 32 GB SDHC Card (approximately 4.4GB utilized)
  3. Soft-float Debian “wheezy” (2012-08-08-wheezy-armel.zip)
  4. Oracle Java SE Development Kit 7u9 (jdk-7u6-linux-arm-sfp.tar.gz)
  5. Ontopia Topic Maps Software Version 5.2.2 (http://www.ontopia.net/)
  6. Midori 0.4.3 browser
  7. Dillo 3.2 browser
  8. NetSurf 2.9 browser
  9. HDMI Montior
  10. Mouse
  11.  Keyboard

Windows PC Client

  1. Windows 7
  2. Google Chrome Version 23.0.1271.95 m
  3. Firefox Version 16.0.2
  4. Internet Explorer Version 9.0.10
  5. Putty Release 0.62
  6. WinSCP Version 4.3.7

Resources Helpful to This Project

  1. Raspberry Pi Foundation Web site
  2. Raspberry Pi Wiki on e-Linux
  3. how to enable 512MB on Raspberry Pi Forum
  4. Raspberry Pi – Installing Oracle Java Development Kit (JDK 1.7.0u6) by Robert Savage
  5. Raspberry Pi – how to get ssh and Tomcat running by Johan Norén
  6. How do I turn off my Raspberry Pi? on Raspberry Pi beta
  7. Raspberry Pi Headless by Glynn Roberts
  8. RaspberryPI at  element14 Community
  9. Ontopia Web site
  10. Ontopia Installation and Getting Started (/doc/install.html within the Ontopia software installation)