ActiveAnno

Web-based responsive document annotation tool

View the Project on GitHub MaxMello/ActiveAnno

All Types

Name Summary
   
api.manage.AccuracyStatistics

Statistics about the accuracy and IAA

project.layout.elements.action.ActionElement

Intermediary interface which marks subtypes as elements altering the state of the application by setting some annotation value

api.manage.AnalyzedAnnotationResult

Analyzed individual annotation result

api.manage.AnalyzedDocument

A document with additional statistics like agreement and correctness

api.manage.AnalyzeProjectRequest

Request body for analyze endpoint

api.manage.AnalyzeProjectResponse

Analyze response with TopLevelStatistics and a list of AnalyzedDocuments

project.annotationschema.And
project.filter.And
api.annotate.dto.AnnotateProject

View data class - all properties relevant to annotate / curate a project in the frontend

document.annotation.Annotation

Base class for any annotation. An Annotation is defined as the actual value associated with an AnnotationDefinition. For example, a BooleanAnnotationDefinition will produce a single annotation of boolean type. This annotation might be created by a human annotator, or automatically generated or imported. Every Annotation needs to be associated with an annotation ID / key in a map or comparable structure

annotationdefinition.AnnotationDefinition

Base class for all AnnotationDefinitions. An AnnotationDefinition defines how an annotation is required to be created, e.g. on which target it is defined, is it optional, maximum length etc.

annotationdefinition.AnnotationDefinitionDAO
annotationdefinition.AnnotationDefinitionList

Wrapper class to prevent type erasure of AnnotationDefinition. This way, the JsonSubType info is preserved.

api.annotate.AnnotationDocument

Model for annotating a document for the frontend

api.annotate.AnnotationEnableConditionResult

A single EnableCondition applied result, indicating if an annotation is required or not.

annotationdefinition.generator.AnnotationGenerator

Base class for AnnotationGenerators. An annotation generator is responsible for automatically generating an annotation value, optionally with a probability attached, for a specific annotation definition. This can be used for statistical methods, simple if-else annotation (for example: if value in list of values, annotate with X), or for machine learning integration.

annotationdefinition.generator.AnnotationGeneratorDAO

DAO for AnnotationGenerators

annotationdefinition.AnnotationID
document.annotation.AnnotationMap
document.annotation.AnnotationResult

Data class representing a single annotation result by either an annotator, a curator or a merge of annotator responses by the policy logic.

document.annotation.AnnotationResultCreator

The AnnotationResultCreator represents by whom an AnnotationResult was created, which can be by humans (Annotator, Curator), a machine Generators, externally Import or through consensus of all the previous Consensus.

api.annotate.AnnotationResultCreatorDTO

Equivalent to AnnotationResultCreator but streamlined to a single displayName for the frontend

document.annotation.AnnotationResultID
api.annotate.dto.AnnotationResultStoreResponse

Return model for storing endpoints, letting the frontend know the data was stored successfully. If not, will return validationErrors

project.annotationschema.AnnotationSchema

Annotation schema as defined in the database (with ID references to AnnotationDefinitions and AnnotationGenerators.

project.annotationschema.AnnotationSchemaElement

Single element of the schema, mapping the ID of an AnnotationDefinition to data specific to this project and the Target of the annotation. different target definition for the same annotation

project.annotationschema.AnnotationsKey

Get some data from some annotations

project.annotationschema.AnnotationStepKey

Base class for subclasses that define how some data from a Document or GeneratedAnnotationData is extracted and used for EnableCondition or annotation generation.

(extensions in package common)
kotlin.Any
(extensions in package application)
io.ktor.application.Application
(extensions in package common)
io.ktor.application.ApplicationCall
application.ApplicationConfig

To have easy access to the configuration properties of the application, this class exists

project.annotationschema.AtomicEnableCondition

AtomicEnableConditions are defined in relation to a single referenceKey and do not include more complex conditions such as And or Or.

project.layout.elements.display.Base64Image

Element displaying a constant Base64 encoded image

project.layout.elements.display.Base64ImageMetaData

Display a meta data element that is a base64 encoded image

project.layout.elements.display.Bold

Wrapper element, all children’s text elements will be bold. Equivalent to an inline html element with fontWeight bold which will be applied to the children.

annotationdefinition.BooleanAnnotationDefinition

Annotation for a boolean input.

project.layout.elements.action.BooleanButtonGroup
project.layout.ButtonColor
project.layout.ButtonSize
annotationdefinition.CaseBehavior

How to handle differences in cases between tags?

api.annotate.CheckEnableConditionRequestBody

Data class to receive a check enable condition request

api.annotate.CheckEnableConditionResponse

Data class for the response body of the check enable condition request

annotationdefinition.ClosedNumberAnnotationDefinition

Annotation for a closed number with a min, max and required step. Necessary if you want to display annotation as a slider.

project.layout.elements.action.ClosedNumberSlider
project.layout.Column

A column is part of a row and has a width dependent of screen size. Every row should have at least one column.

project.layout.ColumnSizes

The UI defines 5 different screen size breakpoints, from smallest (xs) to largest (xl). The actual pixel breakpoints are defined by the UI. Column sizes should be in 1,12 range, 12 being the full width of the row, 1 being 1/12 width of the row. At least xs needs to be defined.

project.filter.ContainsAll

Equivalent to And connection between Contains conditions, exists as shorthand Example: { tags: { $all: ssl,security } } => { $and: {tags:ssl},{tags:security} }

(extensions in package common)
org.litote.kmongo.coroutine.CoroutineDatabase
application.Cors

Data class representing the CORS config

project.inputmapping.CreateIndex

Use this to define a non-text index with an order as well as an optional unique constraint

api.generators.DataForGeneratorRequest
project.filter.DateGreaterThanEquals

Filter based on a mapping a date string to timestamp and then performing GTE on the value provided.

project.filter.DateLessThanEquals

Filter based on a mapping a date string to timestamp and then performing LTE on the value provided. If the value is not existing, won’t return the document

project.layout.elements.display.DateMetaData

Convert some input date format (e.g. timestamp) to date format or do nothing if not a timestamp for a given meta data element

project.selection.DateRangeFilter

How should the date range filter work

(extensions in package common)
com.auth0.jwt.interfaces.DecodedJWT
project.layout.elements.action.DenormalizedActionElement
project.annotationschema.DenormalizedAnnotationSchema

Annotation schema as sent to the frontend / client, contains the actual models of AnnotationDefinition, AnnotationGenerator etc.

project.annotationschema.DenormalizedAnnotationSchemaElement

Equivalent to AnnotationSchemaElement but denormalized, meaning all ID references are replaced by the actual objects

project.layout.elements.action.DenormalizedBooleanButtonGroup
project.layout.elements.action.DenormalizedClosedNumberSlider
project.layout.elements.action.DenormalizedNumberRangeSlider
project.layout.elements.action.DenormalizedOpenNumberInput
project.layout.elements.action.DenormalizedOpenTagChipInput
project.layout.elements.action.DenormalizedOpenTextInput
project.layout.elements.action.DenormalizedTagSetButtonGroup
project.layout.elements.action.DenormalizedTagSetDropdown
annotationdefinition.generator.documenttarget.DetectedLanguageGenerator

AnnotationGenerator which detects the language using the “Lingua” library, storing the annotation under the defined key as the ISO 639-1 Code (in upper case). The “unknown” key from Lingua is defined as the string “UNKNOWN”

project.layout.elements.display.DisplayElement

Intermediate interface specify that an Element is non-interactive, allows for restrictions of classes to require Elements to be non-interactive

document.Document

The data class representing a document with some originalDocument, a unique id, optionally a restrictedProjectID (marking the document to belong only to that one project), and the projectAnnotationData holding all the annotations for every project related to the document.

document.DocumentDAO

This DAO provides all methods to interact with the document collection. It hides the collection and controls access to it via the public methods.

document.DocumentID

To make code more readable, define the ID of a document as a typealias on String

project.selection.DocumentSelection

Given annotators and curators the ability to further specify which documents are shown to them

project.selection.DocumentSelectionWithOptions

Equivalent to DocumentSelection but with aggregated options inside

api.manage.DocumentStatistics

Individual statistics for a document

annotationdefinition.target.DocumentTarget

Use this for annotations that should be created for the whole document.

document.annotation.DocumentTargetAnnotation

An annotation which is targeted on the whole document, not a specific part of it. For example, a class label “SPAM” or “NO SPAM” for the whole document.

project.inputmapping.DocumentText
project.layout.elements.display.DocumentTextElement

Element displaying the document text.

(extensions in package common)
kotlin.Double
project.annotationschema.EnableCondition

AnnotationSchemaElements can be conditional, defined by an EnableCondition. If an EnableCondition is null, that means it is always required. Else, the enable conditions execute method needs to return true for the element to be prompted.

project.filter.Equals

Use for direct equals or array contains

common.ErrorCode

Enum representing detailed errors which are more granular than just the http status code

project.export.Export

Export configuration for consuming the results of this service

project.export.ExportDocument
project.export.ExportFormat

What aspects for the document and results to export

document.annotation.ExportStatistics

Data class holding information about where and how often the annotations were exported.

application.FeaturesConfig
project.filter.FilterCondition

Light wrapper classes around MongoDB query elements. To use the FilterCondition as a parameter for MongoDB find, call buildQuery +on the FilterCondition object. Support for:

project.policy.FinalizeAnnotationPolicy
annotationdefinition.generator.FinalizeCondition

Condition system which decides if a generated annotation can be finalized automatically

document.annotation.FinalizedAnnotationResult

Data class representing a finalized annotation, which can be one or multiple annotations (referenced by their IDs). It also contains meta data about why the document was finalized, which policy was used, when the finalization happened, and statistics about how the annotations were exported.

api.manage.FinalizedAnnotationResultForAnalysis

Finalized annotation result used for the analze response

document.annotation.FinalizedReason

Sealed class with two options why a annotation can be finalized

common.ForbiddenException

Custom exception indicating the user is not authorized properly (missing role), will be used to return appropriate http error code

document.annotation.GeneratedAnnotationData

When a Project has any AnnotationGenerator defined through the AnnotationSchema, they will store their results here. Every time annotation generation is triggered, every generator will be executed again and a new instance of this class will be added to the ProjectAnnotationData

project.annotationschema.generator.GeneratedAnnotationResultHandling
project.annotationschema.generator.GeneratorSortingPolicy

How to handle sorting of documents for annotators when generated results is available

project.annotationschema.generator.GeneratorTiming
common.GoneException

Exception indicating that a resource is gone, will be used through StatusPages feature to return the proper status code when this exception is thrown

project.filter.GreaterThan
project.filter.GreaterThanEquals
project.annotationschema.generator.HandlingPolicy
project.annotationschema.generator.HandlingPolicyType
annotationdefinition.HierarchicalTagSetAnnotationDefinition

Annotation definition which requests the annotator to chose from a set of predefined TagSetOptions

common.HttpAuthentication

Inspiration: https://www.sparkpost.com/docs/tech-resources/webhook-authentication/

common.HttpErrorException

Base exception for HTTP errors, can optionally include a detailed http error

common.HttpErrorResponse

Data class to return on an http error, which can have a more detailed errorCode explaining the reason for the status code

(extensions in package common)
io.ktor.client.request.HttpRequestBuilder
project.layout.elements.display.Icon

Display a material icon

api.import.ImportDocumentResult

Return list of generated documentIDs in order of imported jsons from request body

api.import.ImportedAnnotationRequest

Request body to import annotations

project.filter.In
project.inputmapping.InputMapping

Mapping of originalDocument to documentData used in UI. Will be mapped based on this classes values. Additionally, provides the ability to define indices for faster queries in DB

document.annotation.InteractionLog

Data class representing log data from the interaction of the user with the document during annotation.

project.layout.elements.display.Italic

Wrapper element, all children’s text elements will be italic. Equivalent to an inline html element with italic font style which will be applied to the children.

(extensions in package common)
kotlin.collections.Iterable
(extensions in package common)
com.fasterxml.jackson.databind.JsonNode
application.JwtConfiguration

Data class representing the JTW configuration

application.JwtValidation

Data class representing the JWT validation configuration

project.filter.KeyExists
application.KtorHttpsConfig

Data class representing the HTTPS config for ktor

project.layout.Layout

Define the layout of how annotation interactions / inputs will be displayed in the UI.

project.layout.LayoutArea

Mapping of layout areas to list of rows containing UI elements

project.layout.LayoutAreaType

There are 4 different UI areas which are defined by this enum. All four areas can contain read-only/display elements, but not all are allowed to have all types of interaction elements.

project.layout.LayoutElement

Interface for all UI elements, uses json polymorphic deserialization to map into actual UI elements.

project.filter.LessThan
project.filter.LessThanEquals
(extensions in package api.manage)
kotlin.collections.List
api.annotate.dto.ListProject

View data class - all properties necessary to display project in list in the frontend

api.manage.dto.ManageListProject

View data class - all properties necessary to display project in list in the frontend for managers

api.manage.dto.ManageProject

View data class - all properties necessary to display and edit project from management perspective in frontend

(extensions in package annotationdefinition.generator.documenttarget)
kotlin.collections.Map
user.message.Message

A message is a text between two users, optionally relating to an AnnotationResult

user.message.MessageDAO

DAO for the Message model, controlling access to the message collection.

project.inputmapping.MetaData
project.layout.elements.display.MetaDataMapping

For a meta data element, use the value as a key to the mapping map and display a list of DisplayElements or the fallback if no value is found for the key

application.MongoConfig

Data class representing the MongoDB config

project.layout.elements.display.MonospaceFont

Wrapper element, all children’s text elements will use a monospace font. Equivalent to an inline html element with a monospace font which will be applied to the children.

(extensions in package common)
kotlin.collections.MutableList
(extensions in package api.annotate.dto)
kotlin.collections.MutableMap
(extensions in package common)
kotlin.collections.MutableMap
project.filter.Nor
project.annotationschema.Not
project.filter.Not
project.filter.NotEquals
project.filter.NotIn
annotationdefinition.NumberRangeAnnotationDefinition

A number range between min and max with step steps between. Results in two values, a lower and upper value.

project.layout.elements.action.NumberRangeSlider
(extensions in package common)
com.fasterxml.jackson.databind.node.ObjectNode
project.export.OnOverwrittenFinalizedAnnotationBehavior

Define behavior what to do when a finalizedAnnotation was defined, but a new one was set afterwards. This would not happen normally, but cannot be prevented for cases where an annotation is found via search to correct an earlier mistake. For this case, we need to define if we want to trigger web hooks again or not.

project.export.OnWebHookFailureBehavior

What to do when calling the WebHook failed

annotationdefinition.OpenNumberAnnotationDefinition

Annotation for an unrestricted number. Cannot be displayed as a slider, only number input.

project.layout.elements.action.OpenNumberInput

HTML Number input

annotationdefinition.OpenTagAnnotationDefinition

Tags annotation with the ability to add new tags from the user. Here, the tag is just a string / the value is the actual string

project.layout.elements.action.OpenTagChipInput

Chips element is a variable list of text inputs (tags) which can be extended, including an auto-complete feature with predefined answers.

annotationdefinition.OpenTextAnnotationDefinition

Annotation for some open text input

project.layout.elements.action.OpenTextInput

A multi line text input field

project.annotationschema.Or
project.filter.Or
project.sort.Order

Enum representing the order options, ASC and DESC

project.annotationschema.OriginalDocumentKey

Get some data from the originalDocument of a Document

api.pagesetup.Page

A Page represents a UI page of the frontend, optionally with a badgeCount to indicate how many interactions are waiting for the user

api.pagesetup.PageSetup

Model for frontend communication representing the PageSetup, controlling the layout and core data for the page setup of the frontend

api.manage.PercentWrapper

Wrap the percent by storing n, the absolute value as well as the calulcated percent value.

(extensions in package common)
io.ktor.util.pipeline.PipelineContext
project.policy.Policy

Data class defining policy of how to handle documents / annotations, especially how and when to finalize an annotation for a document and project.

project.policy.PolicyAction

Sealed class for the different actions that can be required to be taken for a document to get the annotation done properly

project.policy.PolicyFailureException
project.layout.elements.display.Popover

A popover element, providing the ability to hide information (no interactions!) befind a popover

project.layout.elements.display.PopoverContent

The PopoverContent are display elements which will be shown when the popover is visible

project.layout.elements.display.PopoverTarget

The PopoverTarget will be displayed into the parent context directly (for example some text, an icon or a combination)

project.layout.elements.display.PopoverTrigger

Two ways a popover can be triggered, by click or hover

api.annotate.dto.PostAnnotationResult

Data class for annotation and curation endpoints for receiving annotation results. Will be mapped into other data structures for storing.

project.Project

Complete model of a project. This model represents the database structure / is stored in mongoDB

document.ProjectAnnotationData

Data class representing all annotation data for a specific project.

project.ProjectDAO

DAO for the Project regulating access to the project collection

project.ProjectID
api.manage.ProjectStoreResponse

Response body for storing a Project with success info and validation errors

project.ProjectValidationError

A single validation error for a specific key of the ManageProject

project.filter.Regex
project.export.RestAuthentication
document.annotation.RestCall

Information about an export via rest call, mainly the route called, how often, and when.

project.export.RestConfig

What REST endpoints to activate and how to export them

(extensions in package api.admin)
io.ktor.routing.Route
(extensions in package api.annotate)
io.ktor.routing.Route
(extensions in package api.export)
io.ktor.routing.Route
(extensions in package api.generators)
io.ktor.routing.Route
(extensions in package api.import)
io.ktor.routing.Route
(extensions in package api.manage)
io.ktor.routing.Route
(extensions in package api.pagesetup)
io.ktor.routing.Route
(extensions in package api.search)
io.ktor.routing.Route
(extensions in package common)
io.ktor.routing.Route
project.layout.Row

Equivalent to a Row of UI layout systems like Bootstrap or Material UI

api.search.SearchRequest

Model representing a search request

api.search.SearchResultDocument

The SearchResultDocument is a view on a document with all useful data for display in the search result area in the frontend.

project.selection.SelectionType

How to select a subfilter

project.filter.Size
project.sort.Sort

Data class representing mongo DB sort

project.sort.SortElement

Single sort element with key and order

document.annotation.Span

A span is a single piece of a string, expressed by begin and end.

annotationdefinition.target.SpanGranularity

What is the allowed cutoff point for a span, a single character or only whole tokens?

annotationdefinition.target.SpanTarget

Use this for annotations that should be created for a specific span. Define characteristics of how the span should be set.

document.annotation.SpanTargetAnnotation

All annotation values for a single AnnotationDefinition on a span target are represented by a SpanTargetAnnotation. For example, a document might have spans of positive and negative sentiment. All annotations regarding sentiment would be stored in a single SpanTargetAnnotation, holding a list of annotations of which each defines the spans concering the annotation as well as the actual value, in this case POSITIVE or NEGATIVE sentiment.

document.annotation.SpanTargetSingleAnnotation

A SpanTargetSingleAnnotation maps a single annotation value to the spans (often only a single span) which the annotation value is associated with.

(extensions in package common)
kotlin.String
project.filter.StringEquals

Class to compare value inside document and value both as strings, using Mongos expr feature

project.selection.SubFilter

A SubFilter is one element by which a user can filter documents shown

project.selection.SubFilterOption

Option aggregated with count

project.selection.SubFilterQueryResult

For subfilter selection query to map the result

project.selection.SubFilterWithOptions

A subfilter but with options aggregated

annotationdefinition.TagSetAnnotationDefinition

Annotation definition which requests the annotator to chose from a set of predefined TagSetOptions

project.layout.elements.action.TagSetButtonGroup

A ButtonGroup is a collection of buttons which belong together. Based on the referenceAnnotation it can be single select or multi select.

annotationdefinition.generator.documenttarget.TagSetDocumentTargetGeneratorModel

Use this class for external ML models which are already trained and don’t need any training data

annotationdefinition.generator.documenttarget.TagSetDocumentTargetUpdatableGeneratorModel

Generic updatable AnnotationGenerator for TagSetAnnotationDefinition and DocumentTarget.

project.layout.elements.action.TagSetDropdown
annotationdefinition.target.Target

The target of an annotation can be the whole document or a specific offset of characters, a span.

annotationdefinition.target.TargetType

Enum class representing the two Target types, equivalent value to the JsonSubType of Target class

project.layout.elements.display.Text

Just display some static text

project.layout.elements.display.TextMetaData

Display the value of a meta data element based on the ID

api.manage.TimeWrapper

Wrap a time average with the n over which it was calculated

api.manage.TopLevelStatistics

Statistics calculated over all documents

annotationdefinition.generator.documenttarget.TrainingSampleWithLabels
common.UnauthorizedException

Custom exception indicating the user is not authenticated properly (missing / invalid auth token), will be used to return appropriate http error code

annotationdefinition.generator.UpdatableAnnotationGenerator

Base class for AnnotationGenerators which are updatable, for example ML models, as compared to static models like a statistics based generator

annotationdefinition.generator.UpdatableAnnotationGeneratorVersion
annotationdefinition.generator.UpdateResponse
annotationdefinition.generator.UpdateState
project.layout.elements.display.UrlImage

Element displaying an image provided by an URL

project.layout.elements.display.UrlImageMetaData

Display a meta data element that is an URL of an image

project.UsedAnnotateProject

Data class used to store the AnnotateProject used in the annotation process. For example, the selection is not part of this, because it can be very big and is generally unnecessary to store.

user.User

Data class representing a user. This model does not contain login information except the unique userIdentifier, and contains an optional userName and the lastAccessTimestamp

user.UserDAO

DAO for accessing the user collection

project.userroles.UserIdentifier
user.UserInfo

View on the User only containing the unique userIdentifier and the userName

project.userroles.UserRoles
api.annotate.dto.ValidationError

Single ValidationError w.r.t. an annotation definition + target

project.annotationschema.ValuesEqual
project.annotationschema.ValuesExist
project.annotationschema.ValuesIntersect
document.annotation.ValueToProbability

In some contexts, a value might have an associated probability. This is the case when annotations are imported or generated with a probability of how likely this annotation has the value.

project.export.WebHookConfig
document.annotation.WebHookExport

Information about a web hook export, containing the export URL, how often it was tries, if it was successful, and possible failure logs for debugging purposes (for example when the web hook returns a 401 unauthorized etc.)