Topic Map

A Topic Map organizes the pages of a Lepiter notebook into topics , which are grouped into a number of fields or “domains”. Each page may deal with several topics. Additional each page is of a particular kind , such as an Introduction , a Tutorial , or a FAQ .

To explore the topic map of the Glamorous Toolkit Book, inspect this snippet:

TopicMap default
  

In the Roadmap view we see a visualization of the top levels of the topic map, showing the database, and the different fields covered in the database. We can dive into fields by clicking on them.

If we click through the roadmap, we might arrive at the page What is Glamorous Toolkit? with a roadmap like this:

The breadcrumb of nodes highlighted in red indicates the path taken to arrive at the page, while the roadmap also shows other nearby nodes along the path.

The topic map is organized into numerous levels, which we see left-to-right in the roadmap visualization.

Database — The topic database is the topmost node in a topic map hierarchy, representing the Lepiter database holding the pages — in this case the GT book itself.

Fields — The topics in a database are partitioned into thematic fields (shown above in the roadmap).

Topics — A topic characterizes the subject matter of a number of notebook pages.

Kinds — Notebook pages contain different kinds of information.

Introduction — an introduction to a topic Media — a page containing links to external media, such as YouTube videos Tutorial — a step-by-step tutorial to a topic Case study — a detailed case study illustrating the topic in practice Documentation — more general documentation about a topic (not a tutorial per se) Pattern — a design pattern related to moldable development Examples — concrete examples illustrating a topic (not full case studies) FAQ — answers a frequently-asked question Definition — defines a term or component of GT Index — a page that mainly serves as an index to other pages related to a topic Tag — a page with little or no content, serving mainly as a tag for other related pages

Pages — A topic map page is a notebook page of a particular kind, dealing with a particular topic, in a given field. A page is always of a unique kind, but may cover numerous topics.

If we click on the Pages action of a page, we will see a different roadmap showing all the topics and fields of the page.

The topic map is stored in a JSON file that maps every page by its title to its kind and its topics . The file also lists the currently known kinds, and maps each field to its topics.

The JSON file must be periodically updated when pages are added or renamed. The inspector views of topic maps and of topic map page nodes offer views and actions to peform these updates.

Currently there exists only a topic map for the GT book. It can be explored by inspecting:

TopicMap default
  

Every Lepiter page in the GT book has a topic map node, which can be accessed via the hamburger menu, or the inspector menu. It can also be reached programmatically like this:

(LeDatabase gtBook pageNamed: 'Glamorous Toolkit') asPageNode
  

The Store on view of any node offers a Pharo snippet to regenerate the node. This can be useful to reproduce any node reached by clicking through numerous roadmaps.

The Tree Map view of the topic map breaks down the book into fields, topics and pages, with pages color-coded according to their kinds. Orange nodes, for example, are pages describing Patterns , while dark blue nodes are Tutorials .

The Topic Tree view shows an expandable tree view of the topic map.