Loading...
 
(Cached)

Annotations

Context as of Tiki 18.x: Xavier had done (in Aug 2016) an extensive analysis of the Annotation type libs, and the best option was Annotator so we integrated it as a replacement to inline comments. But the project has stalled and it lacks one important feature: robust anchoring. There is some activity to move to an Apache project ("Apache Annotator") but no stable release as of January 2018.


Thus, annotatorjs.org was made optional in Tiki18, and will live in parallel to Inline comments until we figure out a better solution.


Annotations revamp


It's time to improve Tiki to

  1. Make Tiki inline comments much nicer visually
    • It should be clearer what the note is, and what is comment. Perhaps a call-out? Nicer colors...
  2. permit inline comments not just on Tiki content , but also images and embedded content (ex.: PDF)
  3. Permit annotations beyond text (ex.: drawing, and later audio)


We want:

  • Private annotations (perhaps we could have a new concept of private comments)
  • Public annotations
  • Not just on wiki pages

Synonyms

  • Sticky-notes
  • sidenotes
  • post-its
  • inline-comments
  • Comments on embedded content

Use cases

High priority

Nice to have

Brainstorming

Fragmentation

Libraries

Library review

Review by Xavier as of Aug 2016: Annotator library & project seems to shine brighter than the rest: http://annotatorjs.org , since:
  • it apparently allows annotating (through plugins) on images, video, text, and they claim in their website, PDF's
  • used by many organizations
  • previously funded by Shuttleworth Foundation and the Open Knowledge Foundation, so I presume that they have had good support to reach a decent feature set already.


Last commit is Nov 13, 2015 https://github.com/openannotation/annotator/commits/master so there is a little risk of slowdown of the project, but if it's the best, let's go for it

2016-08-30 Project enters Apache incubator: http://incubator.apache.org/projects/annotator.html

Pretty trackers

This is something that could tricky. The annotation should be associated to the tracker item and not the wiki page...

Anchoring


The most complex issue is to identify where the note must be displayed, since the note must not be stored in the source of the object, and since contents can change. "Intra-document anchoring" in a way designed to keep working despite changes is called Robust Anchoring.

We store the annotated text. When the user comes back, we need to display the note on that text only. We must ensure that the text is unique when it is selected. Otherwise, we must ask the user to select more content.
Alternatively, instead of storing only the text selected, we could also store some text preceding and following the annotated text. That would reduce the risk of confusing 2 instances of the annotated text.

No matter how smart anchoring will be, that strategy may fail. It is necessary to provide for the case where, following modifications, the content of the annotated text will have several occurrences in the object, or none. If no occurrence remains, we should display a dialog offering the user to delete the annotation or to keep it orphan. Orphan annotations should display at the bottom. If contents occur several times, we should display a warning that some annotations are not displayed correctly and display the contents of the annotation at each occurrence of the annotated text's content.

If a note which is displayed several times is deleted, what should be done? We must prevent the annotation from disappearing from the location where it really belongs after the user removes it because it displays somewhere it does not belong.

Currently, the whole paragraph containing the annotated text is highlighted.

This issue is complex. It would be useful to research the solutions chosen by other projects.

The documentation of the Annotator library does not indicate how it deals with anchoring, but it uses XPath. As Annotator was designed for annotating immutable documents, the current version (1) does not deal with modifications of the annotated document. A plugin was created for that. Version 2 changes anchoring, but is alpha and it remains to be seen how well it handles changes.

This topic has been the object of work from several organizations. See for example:
https://hypothes.is/robust-anchoring/
https://web.hypothes.is/blog/fuzzy-anchoring/
http://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/tr-2001-107.pdf
https://www.w3.org/2014/04/annotation/slides/RobustAnchoring.pdf

To ensure proper anchoring, we could add an anchor in the source using something like an ANAME plugin. This way, the comment could be stored outside of the annotated text, so it could remain private. This has the disadvantage of adding "noise" which editors will see in the source, though. And it requires users who add annotations to have permission to edit (unless adding annotations is considered as a special case bypassing edit permissions).

This could perhaps help (suggested by Jonny): https://github.com/tilgovi?utf8=✓&tab=repositories&q=dom-anchor&type=&language=

Moving commented text in 17.x breaks positioning badly

In my first tests in 17.0 with annotator 1.x inline comments, when you move the paragraph to the end of the document, the highlighted area with links to the comments stays at the source position and is not updated to the end where the real paragraph went. Pending to see how well annotator.js 2.x is, or if some extra annotatorjs plugin is needed to improve the situation.

Open Hub stats





2020 update

This research needs a refresh and be done in the context of Rubix ML

https://academic.oup.com/bib/article/doi/10.1093/bib/bbz130/5670958
https://github.com/paperai/pdfanno
https://github.com/webanno/webanno
https://inception-project.github.io/

Keywords

The following is a list of keywords that should serve as hubs for navigation within the Tiki development and should correspond to documentation keywords.

Each feature in Tiki has a wiki page which regroups all the bugs, requests for enhancements, etc. It is somewhat a form of wiki-based project management. You can also express your interest in a feature by adding it to your profile. You can also try out the Dynamic filter.

Accessibility (WAI & 508)
Accounting
Administration
Ajax
Articles & Submissions
Backlinks
Banner
Batch
BigBlueButton audio/video/chat/screensharing
Blog
Bookmark
Browser Compatibility
Calendar
Category
Chat
Comment
Communication Center
Consistency
Contacts Address book
Contact us
Content template
Contribution
Cookie
Copyright
Credits
Custom Home (and Group Home Page)
Database MySQL - MyISAM
Database MySQL - InnoDB
Date and Time
Debugger Console
Diagram
Directory (of hyperlinks)
Documentation link from Tiki to doc.tiki.org (Help System)
Docs
DogFood
Draw -superseded by Diagram
Dynamic Content
Preferences
Dynamic Variable
External Authentication
FAQ
Featured links
Feeds (RSS)
File Gallery
Forum
Friendship Network (Community)
Gantt
Group
Groupmail
Help
History
Hotword
HTML Page
i18n (Multilingual, l10n, Babelfish)
Image Gallery
Import-Export
Install
Integrator
Interoperability
Inter-User Messages
InterTiki
jQuery
Kaltura video management
Kanban
Karma
Live Support
Logs (system & action)
Lost edit protection
Mail-in
Map
Menu
Meta Tag
Missing features
Visual Mapping
Mobile
Mods
Modules
MultiTiki
MyTiki
Newsletter
Notepad
OS independence (Non-Linux, Windows/IIS, Mac, BSD)
Organic Groups (Self-managed Teams)
Packages
Payment
PDF
Performance Speed / Load / Compression / Cache
Permission
Poll
Profiles
Quiz
Rating
Realname
Report
Revision Approval
Scheduler
Score
Search engine optimization (SEO)
Search
Security
Semantic links
Share
Shopping Cart
Shoutbox
Site Identity
Slideshow
Smarty Template
Social Networking
Spam protection (Anti-bot CATPCHA)
Spellcheck
Spreadsheet
Staging and Approval
Stats
Survey
Syntax Highlighter (Codemirror)
Tablesorter
Tags
Task
Tell a Friend
Terms and Conditions
Theme
TikiTests
Federated Timesheets
Token Access
Toolbar (Quicktags)
Tours
Trackers
TRIM
User Administration
User Files
User Menu
Watch
Webmail and Groupmail
WebServices
Wiki History, page rename, etc
Wiki plugins extends basic syntax
Wiki syntax text area, parser, etc
Wiki structure (book and table of content)
Workspace and perspectives
WYSIWTSN
WYSIWYCA
WYSIWYG
XMLRPC
XMPP




Useful Tools