Annotation Web Service API – use it for standardizing your annotations
The annotation is essentially the association of some metadata with some other object, called target data. The target data can be everything, starting with a table in a database, a file or document, or virtually any type of information. The annotation also has a wide range of meanings, so that it can be either a link to another table in a database or another database, a comment for a document, or the classical sticky note that is put on the fridge’s door. The annotations a very important when working with great amount of data, the scientists and the legal specialists extensively use the annotations.
In order to arrive to a manageable and useful API, due to the great variety of the types of annotations, the design of the API must be narrowed. To do this, first the goals of the annotation system must be enumerated, and afterwards create the data model of the annotations and create the API itself.
The most important goal of the Annotation Web Service API is to be able to activate an annotation for virtually any type of digital information, regardless of its type, size or content. In such a way, there would be possible to use a single API for annotating both the legal documents and briefs and also the results of scientific experiments. The timestamps must be tied not with the name, timestamps or other secondary data of a file, but directly with the contents of the file, so that even if you change the name of the file and copy it to your coworker, he must be able to see the annotations tied with it. In order to accomplish this, there must be created a model where the annotations are stored separately from the target data objects and their identity would be identified regardless of their meta-information.
There are also several other design goals that would be included in the Annotation Web Service API, such as the “sticky note paradigm” implementation, access control and the bidirectional access between the annotations and the target data. Also, another goal of the developers would be maximum configuration, flexibility and extensibility by the implementers.

