Topic maps engine for mobile platforms

As part of the PerfectLearn project I am building an on-device topic maps engine (ported to both Android and iOS). For testing purposes, I decided to import the King James Version (KJV) Bible into a PerfectLearn-compatible topic maps format which in turn can be exported to a SQLite file format for subsequent use by the on-device topic maps engine.

The video below shows the navigation of the KJV Bible starting at the “root” navigation topic and successively drilling down until finally reaching Genesis Chapter 1 and Genesis Chapter 2, respectively.

Codex Android app King James Version (KJV) Bible navigation. from Brett Kromkamp on Vimeo.

Both the Android and iOS versions of the topic maps engine will be compatible in terms of their models (that is, the data entities, including topics, occurrences, associations, base names, and metadata) and API (for example, putTopic, getTopic, getAssociation).

The topic maps engine has a low memory footprint, is thread-safe and has the full expressive power of topic maps including (but not limited to) scopes, multilingual support (that is, multilingual base names, occurrences, and metadata), and full text search.

Topic maps technology is an “enabler” in terms of what it allows you to build. Specifically, on-device topic map engines can form the basis of a wide range of different app types. Many app categories are perfect targets for both external and (especially) on-device topic map-based solutions, including (but not limited to):

Finally, (on-device) topic maps engines make for a compelling use case in Glassware.

Update (January 15, 2014): Some people have asked what makes an on-device topic maps engine compelling. Well, one of the most requested features of mobile apps is the ability to function without internet access. On-device topic map engines allow you to do exactly that without sacrificing any advanced capabilities. In addition:

  • In many (developing) countries, sporadic internet access allows people to download your app but not to actually interact with the app’s content / functionality in a consistent manner, resulting in a degraded user experience.
  • When (open) WiFi access is not available, expensive mobile data plans make off-line content delivery platforms attractive.

Furthermore, having an on-device topic maps engine does not imply that the content on the device would not be (periodically) updated. Ideally, an app determines (on startup) if it has network access and if it does it subsequently checks for new content. If new content is available, it downloads and updates the topic map store with the new content.

As a sidenote, if you watched the video you will have noticed that the navigation lists are unordered. That is because I have not implemented any sorting on the item objects, yet. Secondly, the retrieval of associations is sometimes quite slow which is due to the app running on an emulator (which are notoriously slow) in combination with some unoptimised code in the topic map engine.

Stay tuned for updates. Subscribe to the PerfectLearn newsletter.

One thought on “Topic maps engine for mobile platforms

Leave a Reply