Topincs

Introduction

Hint: Watching this video will give you an idea of Topincs. The work on Topincs has not stopped since this video was made, so things look different in the latest version.

Topincs is a web database software. A web database is similar to a wiki but it stores information as data rather than text. In a wiki, users edit pages about topics using markup. In Topincs they complete forms. What they produce can be browsed and consumed by other users. But not only that. It can also be consumed by computer programs because it follows a certain structure, the schema. Forms do not have to be programmed, they are auto-generated from the schema.

Topincs is a software very general in nature. It can be applied whenever people are in the need of storing and retrieving information. To give you an idea of what you can do with Topincs, here is a list of successful use cases. Topincs is used for

Organisation and functionality

Hint: A store may not be located below another store, e.g. if you host a store at /movies/, it is not possible to host one at /movies/sciencefiction/.

Hint: Try it out online yourself.

Topincs calls its web databases stores. A Topincs installation can host any number of stores. A store is located at an URL, e.g. http://www.topincs.com/trial/movies/. This page is called the start page of a store and holds an index of all topics grouped by their type. New and recently used topics are listed separately. Every topic has its own page, e.g. the movie Dear Wendy. To the right you find a small menu which lets you edit the page or display it in a different format of which most are made for computers. The last one though, TXT, gives you a text version which you can copy into emails.

Editing in Topincs is done with forms. Form fields can be used to edit simple text, dates, durations, booleans, numbers, wiki markup or select boxes. A form for a certain topic type is auto-generated from the schema that you specify to Topincs. There is no manual programming work necessary unless you need to define compound constraints. Select boxes in Topincs give you by default the most likely options directly. If there is more options available, you can access them with the last entry, labeled More. If an entry does not exist you can create a new one by using the options right at the beginning, starting with New. Doing so suspends the current form and opens up a new form. The suspended form will come up again, once you commit or cancel the new current form. Select boxes can also be configured to hold all entries and to disable the New options.

Getting started

The hardest part of Topincs is installing it. It is set on top of Apache, MySQL and PHP. You can use any operating system for which these applications exist. For a production system it is recommended to use Linux.

Once you have your Topincs Server up and running you can create stores on the command line where you can also create users, backup and restore stores or import additional data.

Topic Maps?

Whenever a user completes a form in Topincs, he makes statements about a topic. Some of the statements belong to one topic only, and some connect two topics. In the technology that Topincs is based on, Topic Maps, the latter are called associations and are composed of roles. The prior are called names and occurrences. Don't let yourself be confused by those terms. Think of names and occurrences as properties. And names are special properties because humans use them for referral to a topic.

When you put a collection of topics and statements together, you have a topic map. Every Topincs Store is a topic map and assigns every single topic and statement, also called item, an URL which is called item identifier. On replication every item keeps its identifier so that it can stay in contact with its clones by using the HTTP protocol.

Programming

Topincs puts human users in the position to enter and retrieve data in less than a day. Five minutes on top of that and you have a virtual object-oriented programming interface to access and manipulate the data from PHP. Since data is not everything you can just wrap a domain class around your topic and have methods that perform some computation. There is three kinds of programming artifacts:

Hint: Context needs work! Developing a web application in Topincs takes longer than providing the web database as is.

With the help of these artifacts web applications can be developed with Topincs. Applications provide tailored views on the web database that can vary depending on the user group. They offer a tailored apporach to complement the generic apporach of a pure Topincs web database.

Context menus

Users have a deeper relationship with their domain than view and edit. They want to do things:

  • issues need to be resolved,
  • invoices need to be generated, and
  • reports need to be released or delayed

Hint: A topic type may have different context menus for different user groups.

To accommodate those needs Topincs introduces context menus. A context menu entry can either be a service connection or a dynamic link. The first one binds the topic in focus to an argument of a service. It is created by declaration. The latter needs a few lines of code to simply create a link within the web database and e.g. prefills a form with values derived from the context. Context menus are accessible on the page of a topic as well as on right-clicking links to the topic. Conditions may be specified under which entries of a context menu are inactive or hidden.

Tables

Sometimes it is necessary to bulk view and edit data. Tables are the perfect device for this purpose. They can be created quickly and are indexed on the start page.

Keyboard

The worst enemy of speedy data entry is the mouse. Topincs is designed to be usable without a mouse. All keyboard shortcuts start with Alt-Shift. By hitting Alt-Shift-Space you can access the start page. Alt-Shift-Ok submits a form and Alt-Shift-Backspace cancels it. For a list of available keyboard shortcuts in Topincs hit Alt-Shift-H. Not all browsers offer the same keyboard experience. Google Chrome is currently best, because it does a good job centering the focused form field.

Mobile devices

Topincs supports devices with iOS or Android for viewing and editing data. Support for other mobile devices can be added as long as they offer a standard conforming web browser. Using Topincs as a platform for your web databases or applications means that you have access and can manipulate your data anywhere.

Chronology

Apart from storing information items, Topincs keeps track when and by whom items were created and modified. In the menu of a topic page you can access the browse mode which lets you jump from topic to topic in chronological order. This is a great way to stay up to date.

Multilingual presentation

Hint: You can limit content negotiation to certain languages by using the store configuration parameter store.languages.

Encoding knowledge as data rather than text adds not only the possibility to have programs act as consumers and providers. Additionally it makes it easy to present the information in a Topincs store in various languages. The actual language used in a page is determined by content negotiation. Topincs offers a specialized user interface for translation to support the creation of multilingual content.

Further readings