edgeryders / discourse-annotator

A text annotation and analysis application for Discourse. Made with Annotator.js and Ruby on Rails.
https://edgeryders.eu/t/6811
Other
4 stars 0 forks source link

Discourse Annotator

(aka Open Ethnographer)

1. Overview

2. Features

3. Architecture

1. Overview

Discourse Annotator is a text annotation application for Discourse. Discourse is currently the best and most widely used open source web forum software.

Discourse Annotator is free software, written in Ruby and based on Annotator and our fork of the now-archived Annotator Store software.

Since we developed and use Discourse Annotator for our online ethnography offerings, we also call this software "Open Ethnographer". It has more general usecases though, so the official name is Discourse Annotator.

For additional (though outdated) documentation, see README.annotator-store.md.

2. Features

3. Architecture

Annotation library. Our solution to create annotations on selected text (or image or video portions) is an open source JavaScript library called Annotator (also often called Annotator.JS). Unfortunately, this software is no longer maintained, so we are looking to replace it with an alternative, possibly RecogitoJS.

Rails engines. Discourse Annotator includes two (!) Rails engines. The Annotator storage backend, which we forked from itskingori/annotator_store-gem, is the first. Administrate, a rapid generator for admin backends, is the second. Though unusual, we did not experience issues combining two Rails engines in this way.

Packaging format. Discourse Annotator is not packaged as a regular Discourse plugin, but rather as a Ruby gem that you can add to your Discourse repository. This means, you need to fork the official Discourse software in order to install Discourse Annotator. See our fork edgeryders/discourse for an example. We chose this packaging format because of the extensive nature of Discourse Annotator, including many Ruby on Rails generated backend pages that are not usually part of plugins.

Adaptation to other host software. Due to the Rails engines and gem packaging format, Discourse Annotator is a relatively self-contained Ruby application that can relatively easily be adapted to create annotations for content in other applications than Discourse. However, it needs access to the database of that application, so it will have to be a self-hosted application. Cloud applications of which you don't have the source code available will not work for this purpose. If these cloud applications provide a plugin interface, you would have to use that to create an annotation solution; if not, there is no clean software architecture for building an annotation solution, because the analysis of third-party HTML is much too fragile for anchoring annotations.