From 02c789c9bf71c02942a8731e36be5776ae68165f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 19 Aug 2025 01:20:07 +0000 Subject: [PATCH 1/3] Initial plan From 23650122b45efa89b17f0e1f433764b00bdcb0c7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 19 Aug 2025 01:30:40 +0000 Subject: [PATCH 2/3] Convert Angular app to Jekyll static site Co-authored-by: cubap <1119165+cubap@users.noreply.github.com> --- _config.yml | 10 ++ _layouts/default.html | 75 +++++++++++ about.md | 54 ++++++++ annotation.md | 53 ++++++++ api.md | 180 ++++++++++++++++++++++++++ connect.md | 29 +++++ future.md | 171 ++++++++++++++++++++++++ index.html | 293 ++++++++++++++++++++++++++++-------------- tools.md | 236 ++++++++++++++++++++++++++++++++++ 9 files changed, 1007 insertions(+), 94 deletions(-) create mode 100644 _layouts/default.html create mode 100644 about.md create mode 100644 annotation.md create mode 100644 api.md create mode 100644 connect.md create mode 100644 future.md create mode 100644 tools.md diff --git a/_config.yml b/_config.yml index 2d25996..122ac12 100644 --- a/_config.yml +++ b/_config.yml @@ -1 +1,11 @@ baseurl: /rerum +markdown: kramdown +highlighter: rouge +plugins: + - jekyll-relative-links +relative_links: + enabled: true + collections: true +include: + - CONTRIBUTING.md + - readme.md diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..6c6ab69 --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,75 @@ + + + + + {% if page.title %}{{ page.title }} - {% endif %}RERUM + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + logo + + reconditorium eximium rerum universalium mutabiliumque +

+ rerum +

+
+
+ + {{ content }} + +
+ + + \ No newline at end of file diff --git a/about.md b/about.md new file mode 100644 index 0000000..072f780 --- /dev/null +++ b/about.md @@ -0,0 +1,54 @@ +--- +layout: default +title: About +--- + +
+

RERUM was born in the + Walter J. Ong, S.J. Center for Digital Humanities at Saint Louis + University and is funded and maintained by the Research Computing Group. + Parts of this site are designed for developers and programmers while + others may be easy to share with researchers and investigators + who need a good place to put some data and insist on openness.

+

Our goal is to raise the quality of and participation in open academic + data by lowering the effort and cost of initializing a solution for + data storage and management while making interoperability, standards + compliance, and attribution automatic.

+

There is no express warranty or license on either the data or these + services, but on our word, this site will not die and the locations will + not change without notification to participants. Each tool will allow + you to walk away with all your data, exactly as stored.

+ logo +

Contact

+
+

+ research.computing@slu.edu, + or follow our projects + + + online. +

+
+ +

+ We make an effort to stay interesting on our blog + and invite you to make comments or ask questions there. It is not always about + Rerum, but the topics reliably orbit the digital humanities, research software + and architecture, open data, and our work. +

+
+

+ We're happy to Skype, Chat, Meet, Fuze, GoToMeeting, Messenger, Zoom, + Duo, Slack, Jitsi, Imo, Twiddla or whatever flavor you prefer. Visit us in person: +

+
+ Research Computing Group
+ DuBourg Hall Room 443
+ 221 N Grand Blvd,
+ St. Louis, MO 63103 USA
+
+
+

+ or catch us at the next conference. +

+
\ No newline at end of file diff --git a/annotation.md b/annotation.md new file mode 100644 index 0000000..a727454 --- /dev/null +++ b/annotation.md @@ -0,0 +1,53 @@ +--- +layout: default +title: The Annotation Story +--- + +
+

+ The Story of Annotation +

+

+ Web Annotation + The Open Annotation Collaboration broke important ground on + 08 February 2013, specifying an interoperable framework + for creating associations between related resources, annotations, + using a methodology that conforms to the Architecture of the World + Wide Web. + + + The next year, SharedCanvas (now within IIIF), demonstrated + how simply OAC (now + Web Annotation) + could be extended to point to complex objects. +

+

+ Pointing (instead of directly encoding) annotations and + annotation-like objects + provides benefits for scholarship by separating the resource from + the annotation, allowing for more granular and irregular resources, + and creating a clearer history of the academic conversation. + By separating the resource (text, image, etc.) from the + annotation, the original digitized resource remains pristine and + can be located anywhere in the world. Selectors remove the need + for every reference to be to a complete resource while also + allowing a scholar to make a very specific annotation on a + smaller range of the original resource, whether or not it + has native segmentation within it. Finally, every annotation + can be individually attributed to the asserting scholar and + software, which encourages walking back through the + revisions in support of ambiguity, non-destructive reuse, and + controversy. +

+

+ There has been a frenzy in recent years to annotate everything—a + call to apply Web Annotations to websites, pdfs, and digital images. + The International Image Interoperability Framework + has magnified the possibilities of annotation by including them as + a part of the abstract containers they define as surrogates for real + and complex objects. Though Rerum supports all types of annotations, + it is these IIIF applications that are our primary motivator. +

+
\ No newline at end of file diff --git a/api.md b/api.md new file mode 100644 index 0000000..0aab4c5 --- /dev/null +++ b/api.md @@ -0,0 +1,180 @@ +--- +layout: default +title: API Documentation +--- + +
+ +

+ To limit the possibility of abuse without putting too many obstacles up, + writing to the annotation store is restricted to servers (no CORS) who have + registered themselves. The full plans for RERUM can be found + elsewhere on the site. +

+

+ The current public RERUM service is hosted on + a virtual server at Saint Louis University and is maintained by the Research Computing Group. + It is written in NodeJS and connects to a cloud hosted MongoDB, with all requests currently over + HTTP. +

+

+ All read requests (GET) are open by default. To write to RERUM, Follow + these simple steps: +

+
+

RERUM Objects

+

+ The following object types are + currently encouraged in RERUM, though anything can be accepted: +

+
Annotations:
+

+ Annotationhttp://www.w3.org/ns/oa#Annotation +

+
Manifests:
+

+ Manifesthttp://iiif.io/api/presentation/3#Manifest +

+
Canvases:
+

+ Canvashttp://iiif.io/api/presentation/3#Canvas +

+
List Objects:
+

+ Annotation Collectionhttp://www.w3.org/ns/activitystreams#AnnotationCollection +

+

+ Annotation Pagehttp://www.w3.org/ns/activitystreams#AnnotationPage +

+

+ Rangehttps://iiif.io/api/presentation/3#Range +

+

+ Aggregationhttp://www.openarchives.org/ore/1.0/datamodel#Aggregation +

+
Plaintext Resources:
+

+ Content Literalshttp://www.w3.org/2011/content#chars +

+
Agents:
+

+ Agenthttp://xmlns.com/foaf/spec/#term_Agent +

+

+ Personhttp://xmlns.com/foaf/spec/#term_Person +

+

+ Grouphttp://xmlns.com/foaf/spec/#term_Group +

+

+ Organizationhttp://xmlns.com/foaf/spec/#term_Organization +

+

+ Projecthttp://xmlns.com/foaf/spec/#term_Project +

+
+

API

+
+

Version 1

store.rerum.io/v1 + link +

All the following interactions will take place between + the server running RERUM and the application server. Direct connection from client script + to the RERUM server is not allowed. Please note that all + examples are pointing at the development version of the RERUM API, not the + production version. Only point to the production version once you have + tested with the development version.

+ +

If you would like to see an example of a web application leveraging the RERUM API visit the + testbed at https://tinydev.rerum.io or the GitHub codebase for TinyThings.

+ +

To have simple CRUD ability from client script without using a back end proxy, you can + use our public test endpoints. Note: Your data will be public and could be removed at any time. This is for + testing only + and will not be attributed to you in any way.

+ + +

GET

+ +

Single object by id

+ + + + + + + + + + + + + + + + +
PatternsPayloadsResponses
/id/_idempty200 {JSON}
+ + + +

Example: https://devstore.rerum.io/v1/id/11111

+ +

History tree before this version

+ + + + + + + + + + + + + + + + +
PatternsPayloadsResponses
/history/_idempty200 [{JSON}]
+ + + +

As objects in RERUM are altered, the previous state is retained in + a history tree. Requests return ancestors of this object on it's + branch. The objects in the array are listed in inorder traversal but + ignoring other branches.

+ +

Example: https://devstore.rerum.io/v1/history/11111

+ + + + +
+
\ No newline at end of file diff --git a/connect.md b/connect.md new file mode 100644 index 0000000..1c2a527 --- /dev/null +++ b/connect.md @@ -0,0 +1,29 @@ +--- +layout: default +title: Connect to RERUM +--- + +
+

Connecting to RERUM

+ +

+ To limit the possibility of abuse without putting too many obstacles up, + writing to the annotation store is restricted to servers (no CORS) who have + registered themselves. The full plans for RERUM can be found + elsewhere on the site. +

+

+ The current public RERUM service is hosted on + a virtual server at Saint Louis University and maintained by the Research Computing Group. + It is a NodeJS Express App that connects to a cloud hosted MongoDB, with all requests currently over + HTTP. +

+

+ All read requests (GET) are open by default. To write to RERUM, you must register to acquire tokens. One set of tokens represents one unique application. You may need to register for multiple sets of tokens if you have multiple unique applications. It may be + helpful to see the sample implementation of Tiny Things + () +

+ Register to use RERUM + Read the RERUM API + Host your own RERUM +
\ No newline at end of file diff --git a/future.md b/future.md new file mode 100644 index 0000000..fd4293a --- /dev/null +++ b/future.md @@ -0,0 +1,171 @@ +--- +layout: default +title: The Future +--- + +
+

The Future

+
+ + Server + + + API + + + Standards + + + Components + +
+

+ The development efforts around RERUM fall into four categories: + server, API, standards, and tools. +

+

Server

+

+ The server for our public RERUM API service is hosted at SLU on RHEL servers running NodeJS + and connecting to a MongoDB Atlas cluster + (), + but nothing prevents the same server APIs from being implemented + in other configurations so that users may easily initialize their own + RERUM to which others may connect. +

+

+ We have toyed with projects using Java, NodeJS and Google Datastore. Azure, AWS and others may be developed as well. + Database flavors may be changed for different instances to optimize + the transactions in RERUM or increase its adoption. There are SQL and noSQL + or even flat file structures that may be best suited to certain resource types. + As our community grows, we will look for more popular coverage of stacks and containers. +

+

+ The current authentication implements Auth0 + service to generate API Keys and public Agents within + RERUM. Further, RERUM currently trusts registered servers and always will. + These server applications will make the appropriate creator-type assertions + about the individual responsibility for each object. +

+

+ RERUM functionality as an authenticator has been used for internal and external applications + using the RERUM API and ecosystem tools. In addition to an instance of + the Auth0 user management, the public user Agent provides a + connection between various user profiles and be used as an aggregating value for + attribution. It is not a goal of the Rerum ecosystem to ever become a general authenticator. +

+

+ Finally, packaging of the RERUM software will require attention. Bundlers + may allow for custom configurations or just a simplified build for developers + who wish to host their own instance. When these installs proliferate as hoped, + it will also become important to spec out how they may identify each other to + complete the graph and allow for broader queries and interconnections across + the Internet. +

+ + Top + + +

API

+

+ All instances of RERUM repositories must allow for at least the core API documented at + https://store.rerum.io/v1/API.html. + Version 0 is currently deprecated suffering from several unconventional structures + and a somewhat complex object structure. Version 1, currently in open release, + standardizes the object structure, establishes versioning, and removes the model + requirement from the objects saved. Also, v1 prefers JSON-LD 1.1 for all transactions. + Designed, but not yet encoded anywhere, are extensions that provide smart services + for IIIF, Web Annotation, and collections. Version 2, still unimagined, should + focus on extending the search capabilities and accommodate interconnected + RERUM services. +

+

+ Services focusing on specific collections or queries, such as geographic regions, + image resources, or annotation collections will be developed as funded by individual + projects and are not currently scoped or prioritized in any specific order. + Contributors are encouraged to build candidates for Rerum API extensions that serve + scholarly, scientific, and cultural communities. +

+ + Top + + +

Standards

+

+ RERUM would not be productive without the hard work of the Web Annotation + W3C Group and the International Image Interoperability Framework. We + believe this is the beginning of the story and the Web Annotation model for annotation + as description, connection, attribution, selection, aggregation, and more + should be extended to audio, video, text, and other data formats where annotation + and selection are improved with the implementation of an abstract digital + surrogate. Through the democratization and productive use of annotation, + this service intends to encourage the use of existing standards and the careful + extension and development for better coverage of new areas of scholarship. +

+

+ While it would be nice for RERUM to automatically know what is new and hot, + the real world often requires a lot of refactoring of old data and logical + polyfills to allow for the gears of convention to match teeth with the cutting + edge. In addition to regularly updating to include equivalents or converters + for terms and formats that may rise and fall, the plan is to include many + management tools as well for the regular validation, batch editing, and + perhaps wholesale conversion of annotations. +

+ + Top + + +

Components

+

+ In service to the mission, tools must be supported and referenced which make + object creation easier, more accurate, and with which more encoding is possible + than may be the minimum required for the motivating task. Here at rerum.io, + we intend to maintain annotated references to external tools as well as producing + tools ourselves. +

+

+ Use cases or requests for new tools can be submitted on the Rerum repository + as issues + . + Individual repositories will be generated for each tool. +

+

+ Collection tools are designed for users who would curate a set of digital objects + from a variety of online resources. The goal is to produce a public user interface + that appears cohesive and polished while providing deep investigation and recombination. + Importantly, this must respect intellectual property and be non-destructive. +

+

+ Manifest tools are very important for smaller institutions and individuals. + The focus in this area will be to create or reference tools that allow for + viewing, creation, editing, and validation of Manifest objects. + Our tools are web applications and services, but there is space for contributions of + specific scripts shims and plug-ins for other applications. All tools hosted + here will include the option to save your objects to RERUM by default. +

+

+ Annotation tools must be included and will become more various and specialized + as RERUM matures. The specific challenge of a good annotation tool is not its + ability to encode the standard Web Annotation format, but its ability to identify its + audience and encourage the user to make scholarly decisions without technical + effort or improper encoding. Cropping a Canvas image annotation + is a very discrete act from marking illustrations, though most of the interactions + are similar. Transcription is high on the list, but any image + annotation is supportable. Managing annotations is also a challenge and complete + interfaces will be required to sensibly aggregate the records within RERUM for + the users who use them. Traversing relationships and history will be a priority + after simple queries are well-managed. Finally, viewing annotations out of + context can be challenging, so small visualizations as well as code snippets + in various front-end languages will be provided. +

+

+ Integration is not really a tool, but will become a list of tools within which + resources from RERUM can be imported or referenced. These short links may provide + the opportunity to begin a project in FromThePage using the connected Manifest + or open an annotation management tool within a Collection at the Wellcome Library. + Eventually, there will be a playground for users to interact with data objects + in a sandbox environment and try out different tools in a shareable way. +

+ + Top + +
\ No newline at end of file diff --git a/index.html b/index.html index c9b4175..9562fa9 100644 --- a/index.html +++ b/index.html @@ -1,96 +1,201 @@ - - - - - RERUM - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - logo - - reconditorium eximium rerum universalium mutabiliumque -

- rerum -

+--- +layout: default +title: Home +--- + +
+ +
+
+

Free for All

+

+ This is an open and free repository for all sorts of digital things. Digital anchors for real world objects and encoded assertions + from real people are stored here without prejudice. Our mission is to eliminate the obstacles preventing technological solutions + to scholarly questions allowing small institutions or independent researchers to start work with minimal resources. + The natural state of digitized knowledge should be interoperable, accessible, encoded, and open. +

+
+
+
+ + The Annotation Story + + +

+ + Learn more about digitizing the + scholarly conversations. +

+
+
+ + Connect To RERUM + + +

+ + Connect your application to + the repository. +

+
+
+
+
+ + Research Computing Group + + +

+ + Meet the team aligning open standards and + idiosyncratic scholarship. +

+
+
+ + The Future + + +

+ + Preview and suggest + what comes next. +

+
+
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - + +
+
+

The Roots of Rerum

+

+ Rerum (Latin: "of things") is a conveniently ambiguous umbrella term we use to identify the + things (tools, schemata, databases) that are functional or philosophical kin. The + LUCA + concept for them all is a set of principles that guides the development of this ecosystem: +

+
+
+ Annotation is everywhere
+
+ Scholarly assertions, descriptive annotations, measurements, and notes often + mistaken for metadata + are vertices for standards. These declarations should be stored as atoms, + especially when they are simple to constellate for user applications. +
+
+ Attribution is essential
+
+ Productive communication between researchers requires + reliable attribution. + With attributed annotations, collaboration becomes natural, and even complex concerns + such as authorization are just acts of filtering. +
+
+ Format is ephemeral
+
+ No one can predict the Next Great Format, but know some obstacles to migration + can be avoided. + The simpler it is to abandon, the more likely a format will remain accessible. +
+
+ Knowledge is controversy
+
+ Statements of fact are reference material until challenged. + The collisions of theories, evidence, and educated conjecture or theses enlivens research. + Recording both the state and the history + of the conversation serves knowledge. +
+
+ Research is decentralized
+
+ Experts are distributed across institutions. The most influential + investigators move around, as people do. The complex conventions around + citation and rights + make clear the challenge of maintaining attribution and + encouraging distribution. +
+
+
+
+
+
+

The Leaves of Rerum

+

+ The Rerum ecosystem includes several distinct categories of tools and services: +

+
+
+ RERUM +
+
+ is any application instance that runs a repository with the Rerum API. +
+
Rerum API
+
+ collects the set of HTTP(S) endpoints used by client servers to run operations within a RERUM service. +
+
RERUM Server
+
+ is a complete web service. Our existing stack is RHEL-MongoDB-NodeJS. +
+
Rerum Components
+
+ are the applications, tools, and Web Components that are designed for the Rerum API. +
+
Rerum Inbox
+
+ is the Rerum LDN Inbox announcements reference implementation. + It does not utilize the same datastore or API as RERUM, but is a functional and philosophical sibling. +
+
+
+
+
+
+

Our Subdominions

+

+ In support of the ecosystem above, these are the places you will find Rerum: +

+
+
www.rerum.io
+
+ The main website for all things in the Rerum ecosystem +
+
store.rerum.io
+
+ The current release of the RERUM service (v1) with an + open sandbox for developers at + devstore.rerum.io +
+
tiny.rerum.io
+
+ A minimum RERUM implementation for bootstrapping new applications quickly +
+
deer.rerum.io
+
+ A framework for designers to use RERUM with simple HTML +
+
geo.rerum.io
+
+ A web interface demonstrating GeoJSON-LD annotations in RERUM +
+
inbox.rerum.io (inbox-docs.rerum.io)
+
+ The habitat for all Rerum LDN Inbox announcements (and its documentation and demos) +
+
+
+
+ diff --git a/tools.md b/tools.md new file mode 100644 index 0000000..88b846d --- /dev/null +++ b/tools.md @@ -0,0 +1,236 @@ +--- +layout: default +title: Tools +--- + +
+
+ +

RERUM Components

+

+ These tools are designed to create or manage resources on RERUM or to + be used as modules away from rerum.io. As they are generated, additional + resources (Web Components, simple libraries, etc.) will also be included + here. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameVersionTagsNotes
+ Manifest Transcription Reader + + 0.4 + + viewerreadermanuscriptstranscriptioniiif + + Simple reading of Manifest annotations, metadata, and images. +
+ Transcription Search Tool + + 0.3 + + viewerreadermanuscriptstranscriptioniiif + + View and filter Manifest annotations and images by letter or phrase. +
+ Manifest from Images + + 0.6 + + creatoriiifimagesmanifestprezi-2 + + Create a new Manifest from a list of image URLs. +
+ Edit a Manifest + + 0.2 + + archivededitorannotatormanuscriptsiiif + + Minor editing of existing Manifests and save changes. +
+ Canvas Annotator + + 0.1 + + student projectannotatorcanvasimagesiiif + + An undergraduate project in OngCDH to create a simple Canvas annotation tool. +
+ TPWN + + 0.0.1 + + archivedtranscribermanuscriptsmanifestiiifproof-of-concept + + A very early proof-of-concept of a completely stand-alone front-end based on T-PEN for 3.0 planning. +
+ Validators + + 0.5 + + IIIFJSONRERUMvalidationprezi-2 + + Various validation tools for data types involved with RERUM. +
+

Community Tools

+

+ These applications are not part of RERUM, but allow + for the use, distribution, or viewing of RERUM resources. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameVersionTagsNotes
+ Mirador + + 3.1.1 + + viewerannotatormanuscriptsiiifbrowser + + The official viewer for the IIIF standard and sc:Manifest objects. +
+ Universal Viewer + + 3.1.1 + + viewermanuscriptsmapsiiifbrowserpdf + + A flexible viewer designed for viewing anything, including IIIF. +
+ IIIF Concordance + + 0.2 + + viewerreadermanuscriptstranscriptioniiif + + Filter and sort words from a transcription of a IIIF Manifest. +
+ TPEN + + 2.8 + + transcriberannotatormanuscriptsiiifbrowser + + The only line-by-line transcription tool that is OAC and IIIF compliant in an open environment. +
+ Mirador Twig + + 2.x + + viewermanuscriptsiiif + + The fork for OngCDH which supports non-IIIF images. +
+ ReForm + + 0.8 + + sequencesannotatormanuscriptscanvasiiifoacmetadata + + A developing project for rearranging or combining manuscripts. +
+
+
\ No newline at end of file From 7e37488f405a30dd7f25021841cf1bd57814a3c3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 19 Aug 2025 01:32:10 +0000 Subject: [PATCH 3/3] Add permalinks for clean URLs Co-authored-by: cubap <1119165+cubap@users.noreply.github.com> --- about.md | 1 + annotation.md | 1 + api.md | 1 + connect.md | 1 + future.md | 1 + index.html | 1 + tools.md | 1 + 7 files changed, 7 insertions(+) diff --git a/about.md b/about.md index 072f780..b9b83aa 100644 --- a/about.md +++ b/about.md @@ -1,6 +1,7 @@ --- layout: default title: About +permalink: /about/ ---
diff --git a/annotation.md b/annotation.md index a727454..018762c 100644 --- a/annotation.md +++ b/annotation.md @@ -1,6 +1,7 @@ --- layout: default title: The Annotation Story +permalink: /annotation/ ---
diff --git a/api.md b/api.md index 0aab4c5..e0c5926 100644 --- a/api.md +++ b/api.md @@ -1,6 +1,7 @@ --- layout: default title: API Documentation +permalink: /api/ ---
diff --git a/connect.md b/connect.md index 1c2a527..b98fce4 100644 --- a/connect.md +++ b/connect.md @@ -1,6 +1,7 @@ --- layout: default title: Connect to RERUM +permalink: /connect/ ---
diff --git a/future.md b/future.md index fd4293a..3be1d1e 100644 --- a/future.md +++ b/future.md @@ -1,6 +1,7 @@ --- layout: default title: The Future +permalink: /future/ ---
diff --git a/index.html b/index.html index 9562fa9..f5c9928 100644 --- a/index.html +++ b/index.html @@ -1,6 +1,7 @@ --- layout: default title: Home +permalink: / ---
diff --git a/tools.md b/tools.md index 88b846d..fd10859 100644 --- a/tools.md +++ b/tools.md @@ -1,6 +1,7 @@ --- layout: default title: Tools +permalink: /tools/ ---