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 @@ + + +
+ +
+
+ reconditorium eximium rerum universalium mutabiliumque
+ 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.
+
+ + 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+ or catch us at the next conference. +
+
+
+ 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. +
++ 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: +
++ The following object types are + currently encouraged in RERUM, though anything can be accepted: +
+
+ Annotationhttp://www.w3.org/ns/oa#Annotation
+
+ Manifesthttp://iiif.io/api/presentation/3#Manifest
+
+ Canvashttp://iiif.io/api/presentation/3#Canvas
+
+ 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
+
+ Content Literalshttp://www.w3.org/2011/content#chars
+
+ 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
+
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.
+| Patterns | +Payloads | +Responses | +
|---|---|---|
/id/_id |
+ empty |
+ 200 {JSON} |
+
_id—the id of the object in
+ RERUM.{JSON}—The object
+ at _idExample: https://devstore.rerum.io/v1/id/11111
+ +| Patterns | +Payloads | +Responses | +
|---|---|---|
/history/_id |
+ empty |
+ 200 [{JSON}] |
+
_id—the id of the object in
+ RERUM.[{JSON}]—an array
+ of the resolved objects of all parent history objectsAs 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
+ + + + ++ 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 ++ The development efforts around RERUM fall into four categories: + server, API, standards, and tools. +
++ 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 + + ++ 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 + + ++ 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 + + ++ 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 + +
-
- reconditorium eximium rerum universalium mutabiliumque
- + 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. +
++ + Learn more about digitizing the + scholarly conversations. +
++ + Connect your application to + the repository. +
++ + Meet the team aligning open standards and + idiosyncratic scholarship. +
++ + Preview and suggest + what comes next. +
++ 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: +
++ The Rerum ecosystem includes several distinct categories of tools and services: +
++ In support of the ecosystem above, these are the places you will find Rerum: +
++ 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. +
+| Name | +Version | +Tags | +Notes | +
|---|---|---|---|
| + 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. + | +
+ These applications are not part of RERUM, but allow + for the use, distribution, or viewing of RERUM resources. +
+| Name | +Version | +Tags | +Notes | + + +
|---|---|---|---|
| + 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. + | +