If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.


From MoodleDocs

Warning: This page is no longer in use. The information contained on the page should NOT be seen as relevant or reliable.

Topicmaps Web Service Client

Topicmaps with Moodle
Project state Pilot studies
Tracker issue
Assignee Malte Reißig

The Mapping Moodle Plugin for DeepaMehta 4 is an alternative and web-based user interface integrating materials of moodle courses into personal views, allowing participants to map course information in collaboration, while with "mapping" we refer to free placement of items on an infinite canvas to create structured and (geometrically) stable views, or so called Topicmaps.

The idea behind Topicmaps (in DeepaMehta) is that they can represent actual working contexts of the user, wich often consists of many different items from different sources.

In DeepaMehta learning materials from all moodle courses become part of one semantic network. This allows users to express new relations between any set of items and thus create visible and navigatable paths for yourself and fellow users.

Additionally, this UI allows users to read materials (such as PDFs) directly on demand at the right side of the screen while maintaining a visual working context on the left side of the screen.

The DeepaMehta user interface is situation-centered UI, in contrast to application- or document-centered UIs. Furthermore DeepaMehta is a software platform and you can find out more about it on the DeepaMehta project page.

You can check out Topicmaps with moodle live on the "Mathematics for Chemists 1" course in our pilot installation. Just be aware that all changes and views you create there are not persistent and details of course materials cannot be displayed in public.

Pilot Studies

In our first scenario we will set the focus to the following research questions and plan to start working with a group of 5-10 engineering students:

  • Usefulness and acceptance of Topicmaps as a tool to follow-up and prepare lecture contents (regarding new terminology, existing working materials and personal notes)
  • Usefulness and acceptance of Topicmaps in supporting the exchange and dialogue among learners
  • Usefulness and acceptance of the Topicmaps UI to actively read working materials

Additionally, we are interested in the following research questions regarding the use of this UI for teachers and instructors but do not (yet) have gathered enough participants.

  • Usefulness and acceptance of Topicmaps as graphical organizers to visually facilitate preparation and follow-up of lecture contents
  • Support of the accompanying lecture online-communications (e.g. blogposts) through open, embedded and interactive Topicmaps (as explorable graphical indexes and "advance organizers" of working materials)
  • Use and benefit of structured visualizations for so called "instruction design"
  • Use and benefit of Topicmaps as presentable units

With an initially rather broad scope of research we will be happy to hear about yours for additional user studies.

If this sounds interesting to you please get in touch with us via the moodle community sites.


The web service client is based on DeepaMehta 4 and can be interactively configured to access moodle either via HTTPS or HTTP.

Technically DeepaMehta 4 is made of

Server-side: Java, Neo4j, Felix (OSGi), Jetty, Lucene, Jersey, Thymeleaf (optional), Jetty WebSocket (optional), Karaf (optional).

Client-side: Javascript, jQuery, jQuery-UI, HTML5 Canvas, CKEditor, OpenLayers (optional), D3.js (optional).

Moodle Web Service Definition

A Moodle installation (2.4.1+) is needed with an active "Web Services"-Plugin and the following service definition set up:

The "External Service"-Configuration needs to allow requests to the following 3 functions:

  • 'core_enrol_get_users_courses'
  • 'core_course_get_contents'
  • 'core_webservice_get_site_info'

The "External service" must also have the option "Can download files" checked, the option "Required capability" set to "No required capability". The data-interchange format must be set to "JSON".

Additonally users must have the capability to "Use REST protocol" and "Create a web service token" to access their "Security Key".

When your moodle installation is set-up users will find their key under "My profile settings" -> "Security Keys" to pass this on to their DeepaMehta "User Account"-Topic.


The application model consists of "Courses", "Sections" and "Items" while "Moodle Items" are referring to more or less everything (e.g. a Plugin). All details of "Moodle Items" of type "Page", "URL" or "File" can be read directly from within the DeepaMehta UI while details of other "Moodle Items" are referenced with a "View in Moodle"-Button.

In short, what this DeepaMehta 4 plugin adds to moodle is mapping, tagging, voting and freely associating of materials in one big topical network spanning across courses.

The current version of this web service client comes with the following "synchronization" functionality:

  • Securely edit and store a Moodle "Security Key" for each "User Account" in DeepaMehta 4
  • Query the Moodle Web Service (a) for each "User" independently and (b) according to the users capabilities (permissions) set in Moodle.
  • Create "Moodle Courses" (ID, Names) each "User" (equipped with a "Security Key") is participating in.
  • Update "Moodle Courses", e.g. if the name of the course changed.
  • Create "Moodle Sections" (ID, Names, Order, Moodle Items) for each "Moodle Course"
  • Update "Moodle Sections", e.g. if the name or the description of the section changed.
  • Create "Moodle Items" (ID, Name, Desription, Module Type, Href, License, Author)
  • Update "Moodle Items", if the item was edited in Moodle (based on the "Last Modified"-Timestamp in Moodle).

This functionality for indexing new or updating existing items runs

  • whenever a user (who has a valid "Security Key") logs in and
  • for every "Moodle course" which the administrators (or editors) have assigned a "Tag" (which then is assigned to every "Moodle Item" indexed via the course). Other courses are not synchronized.

Through using DeepaMehta 4 all "Moodle Items" can be freely associated with each other and associated with all other items in your DeepaMehta working envrionment (e.g. Person, Note, Book, Quote, Web Resource, Institution, E-Mail etc.).


The software is released under the terms of the GNU General Public License in Version 3.0, 2007.

Source Code

The development was made possible through the academic reform project "eduZEN" at the Technical University of Berlin.

Source-Code: Github Repository