Development of the NDL Kotenseki OCR-Lite Next.js Version

Overview @yuta1984 developed a “WebAssembly-based web port of NDL Kotenseki OCR-Lite”: https://github.com/yuta1984/ndlkotenocr-lite-web Using the above repository as a reference, I created a Next.js version: https://nkol.vercel.app/ja/ In addition, the following features have been added: IIIF manifest file input form TEI/XML file download functionality Creation of an ODD file for the output format Usage As an example, we use the Tale of Genji from the Kyushu University Library: https://catalog.lib.kyushu-u.ac.jp/image/manifest/1/820/411193.json After entering the manifest file and clicking the “Load” button, a list of images is displayed as shown below: ...

September 1, 2025 · 3 min · Nakamura

Omeka S Theme Updates and Module Modifications

Overview I had the opportunity to work with Omeka S at the following workshop. This time, I introduce the modifications made to themes and modules based on feedback received from participants during the exercise. https://dh.nihu.jp/news/post/dihuco_20250724 Universal Viewer Module The Universal Viewer module introduces Universal Viewer into Omeka S. https://gitlab.com/Daniel-KM/Omeka-S-module-UniversalViewer One of the features provided by this module is the ability to display Universal Viewer on the item list page as shown below. ...

August 30, 2025 · 2 min · Nakamura

"Image Collection Management" Tool Usage Guide

概要 I created an “Image Collection Management” tool for easily trying out IIIF features. https://pocket.webcatplus.jp https://pocket.webcatplus.jp/ This article introduces how to use this tool. Collection Management Creating a Collection Click the “New Collection” button on the dashboard Enter the required information: Collection name (required): Give it a descriptive name Description (optional): Describe the collection contents Visibility setting: Choose public/private Click “Create” Editing a Collection Click the “…” menu on the collection you want to edit from the collection list Select “Edit” Update the information and click “Save” Deleting a Collection Click the “…” menu on the collection you want to delete from the collection list Select “Delete” Click “Delete” in the confirmation dialog Note: Deleting a collection will also delete all items it contains ...

August 22, 2025 · 3 min · Nakamura

Researching How to Use Omeka S

Overview This is a memo on methods for researching how to use Omeka S. How to Research Official Manual The official manual is the most comprehensive and reflects the most up-to-date content. https://omeka.org/s/docs/user-manual/ Chat With Copilot As a method for searching in natural language, you can use “Chat With Copilot.” Access the following repository: https://github.com/omeka/omeka-s-enduser Then click “Chat With Copilot.” You can ask questions in the chat interface shown below. ...

August 10, 2025 · 1 min · Nakamura

Next.js x Search UI x Fuse.js Search Application

Overview This article explains the technical architecture and implementation of a search application combining Next.js, Elastic Search UI, and Fuse.js. The created site is available here. https://nsf-psi.vercel.app/ja/ The GitHub repository is here. https://github.com/nakamura196/nsf Sample data uses the “Bird’s-eye View of the Main Campus and Faculty of Agriculture Buildings, Tokyo Imperial University (Graduate School of Agricultural and Life Sciences / Faculty of Agriculture, The University of Tokyo).” https://da.dl.itc.u-tokyo.ac.jp/portal/assets/187cc82d-11e6-9912-9dd4-b4cca9b10970 The following was generated by AI. ...

July 25, 2025 · 3 min · Nakamura

Trying Text Annotation with Recogito

Overview I had the opportunity to try text annotation using Recogito, so this is a personal note for future reference. Recogito is available at the following link. https://recogito.pelagios.org/ It is described as follows. Semantic Annotation without the pointy brackets. Recogito is an annotation tool for texts and images - not just for Digital Humanities scholars. Sample Data We will use the following resource published by the National Diet Library as an example. ...

July 24, 2025 · 8 min · Nakamura

Trying Out Transkribus

Overview I had the opportunity to try text annotation using Transkribus, so this is a memo of my experience. Transkribus is available at the following link. https://www.transkribus.org/ It is described as follows: Transkribus enables you to automatically recognise text easily, edit seamlessly, collaborate effortlessly, and even train your custom AI for digitizing and interpreting historical documents of any form. References The following was very helpful as a Japanese-language explanation of Transkribus. ...

July 24, 2025 · 26 min · Nakamura

Trying grlc (git repository linked data API constructor)

Overview The GitHub repository for grlc is as follows. https://github.com/CLARIAH/grlc It is described as follows. grlc, the git repository linked data API constructor, automatically builds Web APIs using shared SPARQL queries. I tried out this tool, so here are my notes. The API endpoint created targeting the Japan Search SPARQL Endpoint is as follows. https://grlc.io/api-git/nakamura196/grlc-jps Background While researching Odeuropa, I found this tool mentioned on the following page. https://odeuropa.eu/nosebooks/ ...

July 24, 2025 · 3 min · Nakamura

Added Route Registration Feature to "Rekichizu x Next.js"

Overview “Rekichizu x Next.js” is a web application built with Rekichizu and Next.js. I have added a route registration feature to this web application, which I will introduce here. Feature Introduction Access the top page and click the “Manage My Routes” button. You will be prompted to log in, so click the “Login” button in the upper right corner. After logging in, a list screen like the following will be displayed. ...

July 23, 2025 · 4 min · Nakamura

Trying DToC: Dynamic Table of Contexts

Overview I had an opportunity to try DToC: Dynamic Table of Contexts, so this is a memorandum. https://www.leaf-vre.org/docs/features/dtoc The machine-translated description is as follows: It brings innovation to electronic reading by combining the power of semantic markup with book navigation features. The traditional overview functions of printed books – the table of contents and keyword index – are dynamically integrated with full-text search and tag-based indexing features, creating a new reading experience. ...

July 16, 2025 · 5 min · Nakamura

Handling Insufficient Disk Space in Ontotext GraphDB Desktop Edition

Overview When using the desktop edition of Ontotext GraphDB, https://www.ontotext.com/products/graphdb/ I encountered a situation where data imports and other operations could not be performed due to insufficient disk space: File not loaded; Insufficient disk space to start a transaction for repository ‘xxx’ due to: The repository ‘abc’ is critically low on free disk space with 4.6% (xxx GB) free left This article introduces one temporary workaround for this issue. ...

July 16, 2025 · 2 min · Nakamura

Creating TEI/XML Files from IIIF Manifest Files Using NDL Kotenseki OCR-Lite

Overview This article introduces a Gradio app that creates TEI/XML files from IIIF manifest files using NDL Kotenseki OCR-Lite. It can be accessed at the following URL: https://nakamura196-ndlkotenocr-lite-iiif.hf.space/ Background This is a continuation of the following articles: Previously, two separate apps were needed, but with this update, the entire conversion process can be completed within a single Gradio app. Additionally, issues such as difficulty tracking progress when processing manifest files with many image pages, and the inability to copy processing results, have been fixed. ...

June 12, 2025 · 1 min · Nakamura

Part 2: Creating Annotated IIIF Manifest Files and TEI/XML Files Using NDL Classical Book OCR-Lite

Overview In the following article, I introduced how to create annotated IIIF manifest files and TEI/XML files using NDL Classical Book OCR-Lite. Since the explanation above was insufficient in many areas, I will re-introduce how to use it. Supplement Along with writing this article, the following improvements were made. Process 1: Creating IIIF Manifest Files Added support for IIIF Presentation API v3. Process 2: Creating TEI/XML Files Added a form that accepts string input, considering the connection with Process 1. Usage Process 1: Creating IIIF Manifest Files Access the following. ...

June 6, 2025 · 2 min · Nakamura

Registering Resources (Items and Images) in Omeka S Using an MCP Server

Overview As part of learning about MCP servers, I created an MCP server that registers resources (items and images) in Omeka S. https://github.com/nakamura196/omeka-s-mcp-sample Related Articles I referenced the following articles. https://zenn.dev/himara2/articles/14eb2260c4f0e4 https://zenn.dev/meson_tech_blog/articles/simple-mcp-server Setup I will leave the details of how to use the MCP server with Claude Desktop to other articles. Add configuration like the following. { } " } m c " } p o , S m " " ] " } e e c a , e r k o r " n " " " v a m g < v O O O e " m s a " M M M r : a " b : E E E s n : s K K K " { d o { A A A : " [ l _ _ _ : u A K K { t P E E " e I Y Y p _ _ _ _ y p U I C t a R D R h t L E E o h " N D n > : T E " / I N , o " T T m < Y I e O " A k m : L a e " _ k " : s a < _ O " m S M < c E O p U K M _ R A E s L _ K a > K A m / E _ p a Y K l p _ E e i I Y / " D _ s , E C e N R r T E v I D e T E r Y N / > T o " I m , A e L k > a " _ s e r v e r . p y " As a result, the tools are registered as shown below. ...

June 5, 2025 · 4 min · Nakamura

Applying Filters to created and changed Fields in Drupal's JSON:API

Overview This is a memo on how to apply filters to created and changed fields in Drupal’s JSON:API. Background The following was used as a reference. https://www.drupal.org/docs/core-modules-and-themes/core-modules/jsonapi-module/filtering For example, when trying to filter only items updated on or after June 2, the following query did not work correctly. ?filter[a-label][condition][path]=changed&filter[a-label][condition][operator]=%3E%3D&filter[a-label][condition][value]=2025-06-02 Correct Method The following article was helpful. https://www.reddit.com/r/drupal/comments/1bdvu61/json_api_drupal_filter_on_date/ Note that timestamp fields (like created or changed) currently must use a timestamp for filtering: ...

June 3, 2025 · 1 min · Nakamura

DTS Viewer Update: Pagination Support

Overview This is a note about adding pagination support to the DTS (Distributed Text Services) viewer. https://dts-viewer.vercel.app/ja/ Background When providing a large number of resources through DTS, it appears that the view property is used to present pagination information, as shown below. https://distributed-text-services.github.io/specifications/versions/unstable/#collection-endpoint { } " " " " " " " " " } " ] " } @ d @ @ c t t t d , m , v c t i t o o o i u e " i o s d y l t t t b m . e n V " p l a a l l " " ] b . w " " " " " " t e e e l l e i p t e . " @ @ f p n l e r : " c P C " n u i r " : i t i r e a x s t a h : C b t " d y r e x s t i " : i r i o l l { : { " p s v t t " o l o e l " r i e " : e t i " " : n e " n n d L e s " l [ " " o : : " t C " t r e " h : a " : : u " : t o : s e t : e n / s " " h r l " n t r [ g a " " " / / t " e l " : " r { " " p P / : a a t 1 s e / : e : : i a a p p p - _ c a 1 s / g p " i i s a d t p , 1 [ " d i i / / : l e i i 0 d " f t n a d d / p _ o / 0 e É r s a d p t t / h p n d 0 c " / t t i s s d a o " t 0 P o , c i s / / i " i , s , o l o o d c c s , l / i e " l n c t o o t u c l v l " o s l l r s o u N a e , l / l l i " l s a l c l c e e b , l " t u t e o c c u e , i e i c l t t t c o " o t l i i e t n n i e o o d i a : / o c n n - o l ? n t / / t n e " i / i ? ? e / L d ? o i i x { d e = i n d d t ? e t l d / = = - i s t e = ? l l s d r t l i e e e , C e t e d t t r p h s r t = t t v a a e t l r r i g r d s r e e e c e t e _ e t s s e , e d s t _ _ s n s P e _ r d d . a " o _ d e e e g v , i p e s _ _ i } l o _ _ p p t " " u i p d o o h , h s l o e i i u t " u i _ l l b t } s l p u u . p & u o s s i s p s i & & o : a & l p p / / g p u a a s / e a s g g p v = g & e e e i 1 e p = = c a 9 = a 2 5 i f " 1 g 0 0 f . , " e " 0 i o , = , " c r 1 a g 8 t / " i v , o i n a s f / / c 1 o 6 n 7 t 8 e 7 x 4 t 5 / 8 1 5 - " a ] l , p h a 1 . j s o n " , I updated the DTS Viewer to support the view property described above. ...

June 2, 2025 · 5 min · Nakamura

Creating a CSV File Containing a List of Image URLs from a IIIF Manifest File

Overview This is a note about creating an app that generates a CSV file containing a list of image URLs from a IIIF manifest file. You can access it from the following. https://iiif-demo-next.vercel.app/csv-converter Usage We will use “Koigenshimonogatari, Volume 1” from the National Diet Library collection as the target. https://dl.ndl.go.jp/api/iiif/3437686/manifest.json Enter the manifest file URL in the form below and press the “Download CSV” button. As a result, a CSV file containing URL and size information is downloaded as follows. ...

May 27, 2025 · 114 min · Nakamura

Improvements to the Polygon Annotation Support Tool for IIIF Images

Overview I made improvements to “IIIF Annotator,” a polygon annotation support tool for IIIF images. Specifically, I worked on the following three points: Support for manifest files that do not use an Image Server Export function for IIIF manifest files with annotations Export function for TEI/XML files The following sections explain these improvements. Background The following article explained the reasons for creating a new annotation tool. The features added this time are also available in other tools, but were implemented for improved convenience. ...

May 20, 2025 · 4 min · Nakamura

Developing a DTS (Distributed Text Services) Viewer

Overview I developed a viewer for DTS (Distributed Text Services), so this is a memo about it. You can try it at the following URL. https://dts-viewer.vercel.app/ja/ Background The official page for DTS (Distributed Text Services) is below. https://distributed-text-services.github.io/specifications/ I also covered it in the following article. This time, I developed a viewer that partially conforms to this DTS specification. Usage The following is the top page. Enter a DTS URL in the form. Examples are provided at the bottom of the page. Technically, it uses the Entry point. ...

May 11, 2025 · 2 min · Nakamura

Handling CORS for Express Deployed on Vercel Using vercel.json

Overview This is a memo on how to handle CORS for Express deployed on Vercel using vercel.json. Background I implemented CORS handling for the program introduced in the following article. The following was used as a reference. https://vercel.com/guides/how-to-enable-cors Method The solution is as follows. While there may be other approaches, adding headers resolved the issue. https://github.com/nakamura196/dts-typescript/commit/4c28f66b2af68950656dcb812f3e941d1b9b5feb { } " " ] " ] " ] " ] v b , r , r , h e u { } e { } e { } e { } r i w d a s l " " r " " i " " " d " " ] i d s u i s d r s d p e s h o s r s t o e e o e e r o e { { { } { } n " c e e u s c u s r s u a , " : " " s r t t r t m " r d " " " " " " : : : " c i s c i a : c e k k k v k v [ : e n " e n n e r e e e a e a 2 " " " a : " a e [ " s y y y l y l , s @ [ : t : t n : " " " " u " u r v i [ i t : : : : e : e c e " " " " " " / r n n : / [ " " " : " : i c a " " " a A A A A n e p : , : t p c c c " c " d l i r i c c c G c X e / / " " u / e e e E e - x n d / / e ( s s s T s C . o t s a . s s s , s S t d s r p * - - - O - R s e ( c i ) C C C P C F " " . / " o o o T o - , i d , n n n I n T ) n t t t t O t o " d s r r r N r k , e " o o o S o e x , l l l , l n . - - - P - , t A A A A A s l l l T l X " l l l C l - o o o H o R w w w , w e - - - D - q C O M E H u r r e L e e e i t E a s d g h T d t e i o E e e n n d , r d t " s P s - i , " O " W a , S , i l " T t s v , h " a P , , l U u T A " e " c v " c a : e l p u " t e * , " " : A } c " , c t e r p u t e - " V e } r , s i o n , C o n t e n t - L e n g t h , C o n t e n t - M D 5 , C o n t e n t - T y p e , D a t e , X - A p i - V e r s i o n " Summary I hope this serves as a helpful reference. ...

April 24, 2025 · 4 min · Nakamura