We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
What is annomilli?
annomilli (uncomfortably pronounced anomaly) is a prototype annotation platform for archival catalogues. At its core annomilli demonstrates a functional annotation workflow for EAD 2002 XML catalogues disemminated through OAI-PMH endpoints.
annomilli is built using
Phoenix Framework
and uses Postgres for database.
How does annomilli work?
annomilli has been developed to work with an archival catalogue aggregator that can disseminate EAD 2002 XML files through an OAI endpoint. For this prototype, catmilli, an ArchivesSpace instance, functions both as the catalog aggregator and an OAI-PMH compliant EAD 2002 disseminator. On catmilli, folder level archival_objects have a corresponding "anno.milli" action button that takes the user to annotate the corresponding archival_object on annomilli. Example
What catalogs are available to annotate on annomilli?
At the time of public release in 2026, annomilli has pre-ingested EAD 2002 catalogues from catmilli (which include the catalogues at Archives at NCBS) and a select few open OAI endpoints that disseminate EAD 2002 catalogues. annomilli prototype only ingests the
non-numbered component elements
that are declared with the attribute
level="file"
Examples of EADs compatible with annomilli
Guide to the George Ellery Hale Papers
Examples of EADs incompatible with annomilli
Guide to the Papers of Albert Francis Hall (Massachusetts Institute of Technology)
1794 Madras Records (Indian Institute of Astrophysics)
The inability to ingest certain EADs is essentially a consequence of widely different implementations and adoptions of the EAD standard and also to ease the complexity of sourcing and parsing of EAD XML in the development of the annomilli prototype. To take the prototype concept forward, we would like to explore working with a wider set of EADs and other metadata representations like Dublin Core.
How to annotate archival records on annomilli?
While a visitor on annomilli can discover the ingested archival material through the search box on the home page, to create and submit annotation, a visitor needs to register as a user .
If you are interested in learning more the administrator workflow on annomilli, write to us at:
archives dash dev at ncbs dot res dot in
There are two ways to access the ingested archival records on annomilli:
1. anno.milli button on catmilli: Every file level archival object on catmilli will have an anno.milli button that takes you to the corresponding records. This button is implemented as a custom action button on ArchivesSpace:
AppConfig[:pui_page_custom_actions] << {
'record_type' => ['archival_object'], # the jsonmodel type to show for
'label' => 'anno.milli', # the I18n path for the action button
'icon' => 'fa-hand-o-up', # the font-awesome icon CSS class
'url_proc' =>
proc {
|record|
'https://anno.milli.link/annotation/display?archival_space=archives.ncbs.res.in&uri='
+record.uri
}
}
2. Search on annomilli: You can use the search box on the home/landing page to discover the ingested records on annomilli. Here's a search for "science"
As a registered user, you can find the annotation options under the section titled "Discover what others have to say about these collections.
annomilli offers four types of annotations --
1.
2.
3.
4.
All submitted annotations except Emotion annotations, are sent to the admin for approval. Once approved they are displayed in the section titled "Annotations for this File" on the record page. New approved subjects and names (that are not part of the LCSH or LCNAF drop-down) are automatically classified as Milli Local Knowledge (MLK)
Annotations approved by the admin also become exportable as EADs through this admin route
Each type of annotation is encoded during export as follows:
1.
<scopecontent id="annnomilli-id_6_user_id_1_timestamp_2026-05-01 11:15:22.000">
<head>annomilli-annotation</head>
<p>foxy and feathery</p>
</scopecontent>
2.
<subject
source="lcsh"
authfilenumber="annomilli-id_45_user_id_1_timestamp_2026-05-01 06:15:42.000"
id="http://id.loc.gov/authorities/subjects/sh94000402"
>
Fox art
</subject>
<subject
source="mlk"
authfilenumber="annomilli-id_48_user_id_2_timestamp_2026-05-01 08:55:14.000"
>
reynard
</subject>
3.
<persname
source="lcnaf"
authfilenumber="annomilli-id_6_user_id_1_timestamp_2026-05-05 10:07:18.000"
id="http://id.loc.gov/authorities/names/no2002012363"
>
D'Silva, Carl
</persname>
<geogname
source="mlk" authfilenumber="annomilli-id_4_user_id_1_timestamp_2026-05-01 06:37:52.000"
>
Panjim
</geogname>
4.
<subject
source="mlk-emotion"
authfilenumber="annomilli-id_14_user_id_1_timestamp_2026-05-01 11:15:55.000"
>
surprise-high
</subject>
This encoding allows us to keep encoding compatible with the EAD 2002. The decision to use certain attributes like
authfilenumber