Notice# I have created a more accessible article explaining the workflow introduced in this article. Please also refer to the following.
Overview# I would like to introduce a prototype tool for creating annotated IIIF manifest files and TEI/XML files using NDL Klasseki OCR-Lite.
Creating Annotated IIIF Manifest Files# First, I created a Gradio app that takes an IIIF manifest file as input and outputs an annotated IIIF manifest file using NDL Klasseki OCR-Lite. It is published using Hugging Face Spaces.
https://nakamura196-ndlkotenocr-lite-iiif.hf.space/
As output, you get an annotated IIIF manifest file like the following.
{ } " " " " } " ] @ i t l , i c d y a " ] t { } { } o " p b n e , n : e e o " m " " " " " } " ] " ] " " " " " } " ] " ] t " l n 校 s i t w h l , i , a i t w h l , i , a e " : " e 異 " d y i e a " ] t { } n { } d y i e a " ] t { } n { } x h : " 源 : " p d i b n e n " p d i b n e n t t " : 氏 : e t g e o " m " " " ] o " " " ] : e t g e o " m " " " ] o " " " " t M { 物 [ " h h l n 1 s i t i t i t i " h h l n 2 s i t i t i t i : p a [ 語 " : " t " e " " d y t { } a d y t { } { } { } { } { } { } { } " : " t " e " " d y t { } a d y t s n . h : " : " : " p e t " p e , , , , , , h : " : " : " p e t " p e " : i t " : : : e m " " " " " } i : e m " " " " " } " " " " " } " " " " " } " " " " " } " " " " " } " " " " " } " " " " " } t " : : : e m " " " " " } i : e m h / f 巻 t C 6 { [ " s i t m t b o " s i t m t b i t m t b i t m t b i t m t b i t m t b i t m t b i t m t b t C 6 { [ " s i t m t b o " s t / e 一 p a 8 4 [ " : " d y o a o " " " " " " ] n " : " d y o a o " " d y o a o " " d y o a o " " d y o a o " " d y o a o " " d y o a o " " d y o a o " " p a 8 4 [ " : " d y o a o " " " " " " ] n " : " t d s " s n 9 7 h : " p t r d i t f w h s s h : " p t r d t v " p t r d t v " p t r d t v " p t r d t v " p t r d t v " p t r d t v " p t r d t v s n 9 7 h : " p t r d i t f w h s s h : p l t : 0 0 t " : e i g y d y o i e e { } " t " : e i g y y a : e i g y y a : e i g y y a : e i g y y a : e i g y y a : e i g y y a : e i g y y a : 0 0 t " : e i g y d y o i e e { } " t " : . " / a , 6 t A [ " v e " " p r d i r : t A [ " v e " p l " v e " p l " v e " p l " v e " p l " v e " p l " v e " p l " v e " p l / a , 6 t A [ " v e " " p r d i r : t A [ n , / s , p n " : a t : : e m t g v " " " p n " : a t : e u " : a t : e u " : a t : e u " : a t : e u " : a t : e u " : a t : e u " : a t : e u / s , p n " : a t : : e m t g v " " " p n ] / d d " s n h t " " a h h i i t p [ s n h t " " e h t " " e h t " " e h t " " e h t " " e h t " " e h t " " e d " s n h t " " a h h i i t p [ s n i l l , : t " i : { " : t " t c d y r : t " i : { : " t " i : { : " t " i : { : " t " i : { : " t " i : { : " t " i : { : " t " i : { : " l , : t " i : { " : t " t c d y r : i . . t t A o h " : " e " p o t t A o : t A o : t A o : t A o : t A o : t A o : t A o : . t t A o h " : " e " p o t i g n / a p n n " t " : : " : e f / a p n n " " p n n " " p n n " " p n n " " p n n " " p n n " " p n n " " n / a p n n " t " : : " : e f / a f o d d t s n " h t I 6 : " i d t s n " h T " s n " h T " s n " h T " s n " h T " s n " h T " s n " h T " s n " h T " d d t s n " h t I 6 : " i d t . . l l i : : t p m " 8 4 " : l l i : : t e 一 : : t e ○ : : t e 一 : : t e ス : : t e □ : : t e 〇 : : t e 同 l l i : : t p m " 8 4 " : l l i i j . . o t t s a i 9 7 [ h e . o t t x ・ t t x 〇 t t x 一 t t x 〇 t t x 琉 t t x 〇 t t x 校 . . o t t s a i 9 7 [ h e . o o p g n n / a " p : g m 0 0 t " " n n / a " p t 〇 / a " p t " / a " p t " / a " p t 〇 / a " p t 球 / a " p t 〇 / a " p t 異 g n n / a " p : g m 0 0 t " " n n / / o d P d t s s / e a , 6 t I : d P d t c s u ・ d t c s u d t c s u d t c s u 〇 d t c s u □ d t c s u 〇 d t c s u 源 o d P d t s s / e a , 6 t I : d P a a . l a l i c : / " g , p m l a l i o : a ・ l i o : a l i o : a l i o : a 六 l i o : a □ l i o : a 〇 l i o : a 氏 . l a l i c : / " g , p m l a p p j . g . o : / d , e s a " . g . o m / l ・ . o m / l . o m / l . o m / l 〇 . o m / l □ . o m / l 〇 . o m / l 物 j . g . o : / d , e s a " . g i i p g e n n p / l / : g l g e n n m / B ・ n n m / B n n m / B n n m / B 〇 n n m / B □ n n m / B 〇 n n m / B 巻 p g e n n p / l / : g l g e / / / o " d " a d . j / e e o " d " e d o ・ d " e d o d " e d o d " e d o 〇 d " e d o □ d " e d o 〇 d " e d o 一 / o " d " a d . j / e e o " p i a . , l , i l n p / S v . , l , n l d ・ l , n l d l , n l d l , n l d 一 l , n l d □ l , n l d 〇 l , n l d " a . , l , i l n p / S v . , r i p j . n . d e d e e j . t . y 一 . t . y . t . y . t . y 〇 . t . y □ . t . y 〇 . t . y p j . n . d e d e e j e i i p g t n l g l r l p g i n " 一 g i n " g i n " g i n " 〇 g i n " □ g i n " 〇 g i n " i p g t n l g l r l p s f / / o i d . " . v 2 / o n d , 一 o n d , o n d , o n d , 〇 o n d , □ o n d , 〇 o n d , / / o i d . " . v 2 / e / i a . n l g , n i " a . g l 一 . g l . g l . g l 〇 . g l □ . g l 〇 . g l i a . n l g , n i " a n 3 i p j g . o d c p j " . ・ j " . j " . j " . 〇 j " . □ j " . 〇 j " . i p j g . o d c p t 4 i i p " g . l e i p , g ・ p , g p , g p , g 〇 p , g □ p , g 〇 p , g i i p " g . l e i a 3 f / / , o j . 2 / / o ・ / o / o / o 〇 / o □ / o 〇 / o f / / , o j . 2 / t 7 / i a . p g " i a . ・ a . a . a . 一 a . □ a . 〇 a . / i a . p g " i i 6 3 i p j / o , i p j ・ p j p j p j 一 p j □ p j 〇 p j 3 i p j / o , i o 8 4 i i p a . i i p ・ i p i p i p 一 i p □ i p 〇 i p 4 i i p a . i n 6 3 f / / p j f / / ・ / / / / / / 〇 / / □ / / 〇 / / 3 f / / p j f / / 7 / i a i p / i a ・ i a i a i a 〇 i a " i a 〇 i a 7 / i a i p / 3 m 6 3 i p / / 3 i p ・ i p i p i p 〇 i p i p 〇 i p 6 3 i p / / 3 / a 8 4 i i i a 4 i i ・ i i i i i i 一 i i i i 〇 i i 8 4 i i i a 4 c n 6 3 f / i p 3 f / ・ f / f / f / 一 f / f / 〇 f / 6 3 f / i p 3 o i / 7 / i i i 7 / i ・ / i / i / i 一 / i / i 〇 / i / 7 / i i i 7 n f c 6 3 i f / 6 3 i ・ 3 i 3 i 3 i 一 3 i 3 i 一 3 i c 6 3 i f / 6 t e a 8 4 i / i 8 4 i ・ 4 i 4 i 4 i 〇 4 i 4 i 〇 4 i a 8 4 i / i 8 e s n 6 3 f 3 i 6 3 f ・ 3 f 3 f 3 f 〇 3 f 3 f 〇 3 f n 6 3 f 3 i 6 x t v / 7 / 4 i / 7 / ・ 7 / 7 / 7 / 〇 7 / 7 / 一 7 / v / 7 / 4 i / t . a c 6 3 3 f c 6 3 ・ 6 3 6 3 6 3 〇 6 3 6 3 〇 6 3 a c 6 3 3 f c . j s a 8 4 7 / a 8 4 ・ 8 4 8 4 8 4 〇 8 4 8 4 〇 8 4 s a 8 4 7 / a j s / n 6 3 6 3 n 6 3 ・ 6 3 6 3 6 3 〇 6 3 6 3 〇 6 3 / n 6 3 6 3 n s o 1 v / 7 8 4 v / 7 ・ / 7 / 7 / 7 〇 / 7 / 7 " / 7 2 v / 7 8 4 v o n " a c 6 6 3 a c 6 ・ c 6 c 6 c 6 〇 c 6 c 6 c 6 " a c 6 6 3 a n " , s a 8 / 7 s a 8 ・ a 8 a 8 a 8 〇 a 8 a 8 a 8 , s a 8 / 7 s " , / n 6 R 6 / n 6 ・ n 6 n 6 n 6 〇 n 6 n 6 n 6 / n 6 R 6 / , 1 v / 0 8 1 v / ・ v / v / v / 一 v / v / v / 2 v / 0 8 2 / a c 0 6 / a c ・ a c a c a c 一 a c a c a c / a c 0 6 / p s a 0 / a s a ・ s a s a s a ・ s a s a s a p s a 0 / a a / n 0 R n / n ・ / n / n / n 〇 / n / n / n a / n 0 R n g 1 v 0 0 n 1 v ・ 1 v 1 v 1 v 〇 1 v 1 v 1 v g 2 v 0 0 n e / a 0 0 o / a ・ / a / a / a ・ / a / a / a e / a 0 0 o " p s 1 0 s a s ・ a s a s a s ・ a s a s a s " p s 2 0 s , a / / 0 " n / ・ n / n / n / ・ n / n / n / , a / / 0 " g 1 f 0 , n 1 ・ n 1 n 1 n 1 ・ n 1 n 1 n 1 g 2 f 0 , e " u 0 o # ・ o # o # o # ・ o # o # o # e " u 0 / , l 1 s x ・ s x s x s x ・ s x s x s x / , l 2 i l " / y ・ / y / y / y ・ / y / y / y i l " m / , 0 w ・ 1 w 2 w 3 w の 4 w 5 w 6 w m / , a f " h ・ " h " h " h 〇 " h " h " h a f g u , = ・ , = , = , = 〇 , = , = , = g u e l 5 ・ 5 5 4 ・ 4 4 6 e l a l 2 ・ 2 0 3 ・ 3 2 9 a l n / 7 ・ 9 9 7 ・ 7 8 4 n / n 0 0 ・ 3 2 5 ・ 5 3 , n 0 o / , ・ , , , 一 , , 4 o / " d 2 ・ 2 3 3 ・ 2 2 9 " d , e 7 ・ 0 2 0 ・ 8 7 9 , e f 5 ・ 0 7 4 ・ 5 5 , f a , ・ 9 2 , " 3 6 3 a u 1 ・ , , 1 , , 1 u l 1 ・ 2 6 0 4 6 0 l t 4 ・ 1 3 3 5 3 , t . , ・ 8 , , , , 2 . j 9 ・ , 8 1 5 2 9 j p 3 ・ 4 0 4 2 5 9 p g 5 ・ 2 " 7 2 2 1 g " " ・ 4 , 5 " " " " , , ・ " " , , , , ・ , , " Creating TEI/XML Files# I created a library that takes the annotated IIIF manifest file obtained above as input and creates TEI/XML files.
https://www.npmjs.com/package/@nakamura196/iiif-to-tei
It can be used from the following configuration.
{ } " " " " " } " " " } n v d m s , a l d a e e a c " u i e " " m r s i r t t c p @ g e s c n i e h e e n l " i r " p s o n n a o : o i : t t r s d k b n p s " " e e a " " " t " " : : " n m : c : i i : : c u o o n " " i r " n " n d { e " " e a ^ v 1 " e c , I s 1 1 e . : x h S " 9 1 r 0 . o C : 6 . t . " j " 0 " 0 " s \ , { i . , " , " " i 2 , , E i " r f r - o t r o : - t n e o i " t : e s " t ^ 1 s . p 0 e . c 1 i " f , i e d \ " & & e x i t 1 " Place manifest files in the data/input folder and run the following to output TEI/XML files in the data/output folder.
c c c c c c i } c j } o o o o o o f o s ) n n n n n n n o ; i o i c s s s s s s C ( G s P n m r m o t t t t t t r ! f c e t r F c c f c p p n e f s o t o i o s o o o s { f p g i o a s . n j c l n n . n r r t s a l n u t . m s a s e e s c G s S w s t t I t o p t e e k o l o s s t o c e t a r o i I = h b u p x d l l n s . n o n v i l { { i I t u o i i e F f j s n } c e o e t e i F r = = _ t u s r . J i e o s t I s ) o r u e . s I f T e d _ t t S l S l a r o n t i i ; n a t X F l o I T o q r r i d p s y o O e c E n x i n n s t p M i o m I o T u e e r i u S n g N s h a D m t c c c t e u L l g e F T E i q q r t y c ( c a l i o l l t e ( F T e I r u u = n ( ` f = J h t O a n u u t o F f S ` u o i C e i i = d c o C i S ( a u l v d d e u i i y C n T o ( r r " i ( u r l g O j t i e e e i t l l n o c E = n ' e e . " r o t e e l N s = p z r I F X p e e c n t I v f ( ( / . e u p a s o o u e t m a m u ( v i C r e s ' ' d / c t u t b f n J t e a c l t = o e o o e r ' p g a d t p t e i . i F S t r g s u r n n q t ) a l t a o u _ d n s l i O = h e i = f p t s v u e ; t o a t r t d y e l N e = s m i a p i } e i r h b / a y _ i o t n e . i : i c l t u o r r ' ' i / d r u h c p i c n l o e h t n f t e } ) ) n o i i , t e ( = a i o e t e n n . F r e ( ; ; p u f r p p > r f n w r : v a j i c o r ' = u t ) { u i a s T v u e m o l o m @ t p i ) t n t { e o e I e t r e i e m } r r " u t r p h ( T r I , r t n , p ' e e ; t { e d u . f e t I u e ( ( l i f p q " d c i t j s i e F e r r o t e i r o u ; o u r o . ( r T . e u e t i o / i e r e d i r j o c p t i e f m i r s s c i n e s T o l p X : - i e n i t r ( a o E n a u m t i ( ' v o e i d n I v c t l $ o f ' t e r c n F D C e e _ ) { - - @ : y t p i a o r d ; p t / t n e : o u l t n t . i a e s o a x t r t e a v ( j r t i r - k i r $ y _ S ) e j s , h ' c t a s u { d y ; r s o . ; / e m t e o i n t o n p b i i u u r c e n a a n ' r } t , ( r D w t s d ) a ) p j ( a i h e e ; 1 ; u " s { t t . n x 9 t * o a h b a ' 6 _ . n ) a m ; / d j F ; . s e i i s i x e ( i r o l m n j i } n e l a s f ` " , ) m o - ) ) e n t ; ) ' ( F o ; u j i - t s l t f o e e 8 n ) i ' F } ' ) i ) ) l ; ; e , $ { . p j a s t o h n . ' b ) a s e n a . m x e m ( l o ' u ) t ; p u t F i l e ) } ` ) ; An example of the output TEI/XML file is as follows.
< < < < ? ? ? T / x x x E < < < T m m m I t / t / f / E l l l e < t e < t a < < f I - - x i f / e x b / e c s / s / a > v m m m H i < < < f i t o < < b x s u < < < < < < < < s u < s c e o o l e l t / p / s / i H > d d / d o t i r g z z z z z z z u r g u s r d d n a e i < t u < p o < s l e y i < < < < < < < d i d > m f r o o o o o o o r f r r i s e e s d D t t i b p u u m / o e a > v a a a a a a a i v y i a a n n n n n n n f a a f m i l l = e e l i t l > b r s < m u D d b b b b b b b v > l c p e e e e e e e a c p a i o " r s e t l i C l c D m / s r e e n > n e e h c e h c l n h h h > c S l e c o i e e s < m D c s r = t t t t t t t = i x x x x x x x e i e e = r r t > t e S a n c D s I i s e e c > " y y y y y y y " s s c m m m m m m m > s c > > " e e t m > t t v a e c d d I s D > 1 p p p p p p p 2 a a l l l l l l l a 1 f f p t 校 m i e t s > e n d c e " e e e e e e e " m m u : : : : : : : m u . = = : > 異 t o r i c n o e > s > = = = = = = = / e e r i i i i i i i e r 0 " " / 源 > n t o > t > n c " " " " " " " > A A l d d d d d d d A l " h h / 氏 S e n i h t > l l l l l l l s s = = = = = = = = s = t t w 物 t d S f t i i i i i i i i = = " " " " " " " " = " e t t w 語 m t i t f n n n n n n n " " h z z z z z z z " h n p p w . t f m e p i e e e e e e e h h t o o o o o o o h t c : : . > r t r s e " " " " " " " t t t n n n n n n n t t o / t 巻 o > > : r t t p e e e e e e e t p d / e 一 m / > c c c c c c c p p s - - - - - - - p s i w w i < / o o o o o o o s s : 0 0 0 0 0 0 0 s : n w w - / I d r r r r r r r : : - - - - - - - : g w w c t I l r r r r r r r / 0 1 2 3 4 5 6 = . . . i I . e e e e e e e d " " " " " " " d " t t o t F n s s s s s s s d d l d l U e e r l d p p p p p p p l l . u u u u u u u l . T i i g e M l = = = = = = = . . n l l l l l l l . n F - - / > a . " " " " " " " n n d x x x x x x x n d - c c n n g # # # # # # # d d l = = = = = = = d l 8 . . s i o z z z z z z z l l . " " " " " " " l . " o o / f . o o o o o o o . . g 5 5 5 4 4 4 6 . g ? r r 1 e j n n n n n n n g g o 2 2 0 3 3 2 9 g o > g g . s p e e e e e e e o o . 7 9 9 7 7 8 4 o . / 0 t / - - - - - - - . . j 0 3 2 5 5 3 " . j r r " < a 0 0 0 0 0 0 0 j j p " " " " " " j p e e > / p - - - - - - - p p u p l l p i 0 1 2 3 4 5 6 / a u u u u u u l a e e > / " " " " " " " a a p l l l l l l y a p a a i > > > > > > > p p i y y y y y y = p i s s i 一 ○ 一 ス □ 〇 同 i i = = = = = = " i e e i ・ 〇 一 〇 琉 〇 校 / i " " " " " " 4 i / / f 〇 < < 〇 球 〇 異 i i i 2 2 3 3 2 2 9 i i x x / ・ / / 〇 □ 〇 源 i i i 7 0 2 0 8 7 9 i i m m 3 ・ a a 六 □ 〇 氏 i i f 5 0 7 4 5 5 " i f l l 4 ・ b b 〇 □ 〇 物 f f " 9 2 " 3 6 f / / 3 ・ > > 〇 □ 〇 巻 / 3 " " " " l 3 t t 7 ・ 〇 □ 〇 一 3 3 4 l l r 3 4 e e 6 ・ 一 □ 〇 < 4 4 3 r l l r l l x 4 3 i i 8 一 〇 □ 〇 / 3 3 7 x r r x r r = 3 7 / / 6 一 〇 □ 〇 a 7 7 6 = x x = x x " 7 6 c c / 一 〇 □ 〇 b 6 6 8 " = = " = = 1 6 8 u u m 一 〇 □ 〇 > 8 8 6 5 " " 4 " " 0 8 6 s s a ・ 〇 □ 〇 6 6 3 5 5 4 4 4 0 6 t t n ・ 〇 □ 〇 / R 8 5 1 7 4 3 4 R o o i ・ 〇 □ 〇 m c 0 4 1 5 8 2 4 " c 0 m m f ・ 一 □ 〇 a a 0 " 1 5 " 0 6 a 0 / / e ・ 一 □ 〇 n n 0 " " " " l n 0 s s s ・ 一 □ 〇 i v 0 l l r v 0 c c t ・ 〇 □ 〇 f a 0 r l l r l l y a 0 h h . ・ 〇 < 〇 e s 0 y r r y r r = s 0 e e j ・ 〇 / 〇 s / 1 = y y = y y " / 2 m m s ・ 一 a 〇 t 1 / " = = " = = 3 2 / a a o ・ 一 b 〇 . " f 1 " " 1 " " 4 " f / / n ・ 一 > 〇 j u 2 2 3 7 3 3 9 u r r < ・ 一 一 s u l 1 4 3 7 3 0 0 u l e e / ・ 〇 〇 o l l 0 3 5 9 7 0 " l l l l i ・ 〇 〇 n x / " 3 2 " 5 8 / x / a a d ・ 〇 一 " = f / " " " " > = f x x n ・ 〇 〇 > " u > / / / " u n n o ・ 〇 〇 0 l > > > 0 l g g > ・ 〇 〇 " l " l / / ・ 〇 < / / t t ・ 〇 / u 0 u 0 e e ・ 〇 a l / l / i i ・ 〇 b y d y d _ _ ・ 一 > = e = e a a ・ 一 " f " f l l ・ ・ 0 a 0 a l l ・ 〇 " u " u . . ・ 〇 l l r r ・ ・ l t l t n n ・ ・ r . r . g g ・ ・ x j x j " " ・ ・ = p = p ・ ・ " g " g t t ・ ・ 6 " 6 " y y ・ ・ 8 / 8 / p p ・ の 9 > 9 > e e ・ 〇 0 0 = = ・ 〇 " " " " ・ ・ a a ・ ・ l l p p ・ ・ r r p p ・ ・ y y l l ・ 一 = = i i ・ ・ " " c c ・ ・ 4 4 a a ・ ・ 7 7 t t ・ < 0 0 i i ・ / 6 6 o o ・ a " " n n ・ b > > / / ・ > x x ・ m m ・ l l ・ " " ・ ・ s s ・ c c < h h / e e a m m b a a > t t y y p p e e n n s s = = " " h h t t t t p p : : / / r p e u l r a l x . n o g c . l o c r . g r n g s d s s t d r l u / c s t c u h r e e m / a 1 t . r 0 o " n ? " > ? > You can verify the output using Oxygen XML Editor as shown below.
Reference: Monorepo Development with Turborepo# For developing the npm package mentioned above, I used a monorepo with Turborepo.
The web app was developed using Next.js. It can be used from the following link.
https://iiif-tei-monorepo-web.vercel.app/
The API can be verified through Swagger UI at the following link.
https://iiif-tei-monorepo-web.vercel.app/api-docs
From Python, it can be used as follows.
i i f f @ c c m m r r d l l p p o o a a a o o m m t s s r r a s " i i b s " d d d t t t d c " n n a " e e e y a l C " c c s I " f f f r j p t a o C l l e I I e s i a s n o u u _ I I " A " s s c " C A R " p } i r _ " E A R " t e e q o n c s v n d d u F I _ " r " e e o " o r e " a f e m " x r e " r x x u n g l e v e e r T F i " g " l l n " n g t " y t a " e g t " y c c e a r e _ _ l o n s f f v v s u l o u k c s u : e e s i s t r i f : T t i : a . . e e : m o r C o " p p } r e u : p r C r # r # r # i r p r p r t m s O s m a E o t p a c r r a p n o a m t a n _ t a n o e e e f e t a t a s p e p i a c O I _ i p o t t n t s n d a i y r e y s n s C s P s C t i i o s t o g s p C T _ _ i n _ i i : v n o l s e l : v p h p a u h n u r s j s r i n e i t l E ( b _ v f f f o e = i n o " " " e q A o e o s j h } t e o r l e o e d r r e e s e t i o s m i i I s a b e r r e n r f s a i i b l u P a r n e s e , i c n s t c t r e a n q o m n o : i o e e s a r o o s s t { e : d n n a f e I d t s l o a m k s e k r t i u r n V O p s p l n n c l e s t m m t : e s [ c c s . s : e e f n d e e = r o a s r e e . a p o : t b e a t o f _ e _ _ _ d t " l l e _ t r d . = e ' o f . r f e r i e e s q J l t r i o : l : n , u _ e m I o C " o u u U m ( e R = c p r C u o r e r o s _ l s t u S u i t o o [ v r u n a I b o T : p d d r a s q e T o a s o t r a s e r u m s V u s e O e o n l b s e a l r d n I j n E t e e l k e u q E r n y = n = i p s l s a l . s N E n d s o t r p : l p i F e v I m i I F " e l e u I e v l { t 3 H s o p e t g = l t e t D r a a " = o r s i o f c e a o m a : _ f s e q e o e 0 T e n o r . u . x s e r l t " l ] i _ A = i e m t r X n n a c r , t s X u r a n T _ s n r g = r e g c . c o , a " F o b P n s a : s M i s g s o e t M e t d t P f e s o e e E e e R o r c a = = n a I a t t n i L f " e i p q p L s _ , - o e r t r s r t p e d ( D l l s p ( m o i I o e ] s m t u a p t e T e r a . ( e u r ( t q e f i a s F N A e b i = s a p f I n s s " i i e y a s s n y r _ s j r ' s l o ' i u E " c s e a o P _ a _ e n t e I t t = : l o s l y t . d p r s s e s u t r t o e r I t s l n I u s b f l i i s F o r _ e n t o l r p p e o t J o s u l . ( e n s r n , s e r e a " f f o t p i o { o " s ( a o i o o ' r a S n p c t g f i s t o v e c l s { , e n m t n b p : . p d a n s i : s t O ( o c . e " X . E r a A l : U e s s s o a i g j t b a : d g t n u N ) n e g t A m R x l n i R _ e t : b n o e i o a y ( t ' s s s e ( P l e c a i y e s L u l _ j i n c o p s l D , a ( e s t ' I ' q e s d n t r f o O e f s t n t e o i p ) ' ( d , u p t r ( l . b p c e s i _ a c p , ' e E e t e J " ) e . a j t t s . o u d t l e t r s i : S " : . r p e i t i n r ) [ i F r a r t o O " g s i c o t n s l s c a r i o E n N . t _ t n o o c . t a l o l r x ( , r b : a b l i r t s r s : c f r i a l T j u n , i e ' ' e " e " p s D [ E e d c o ) , , { p A s h ( e i C I c e l A n : e t P p t ' _ c o t _ u n / ' r i I o t / u t n X i d y j U r o n p ' r [ v M m e ] s n o n r s : ) l s e L a _ ) o k r e e / } t r g f n n _ a q : / / r t e a ' o m s u l a , O s c w s e { o p p , s n g e s s c i A t i s } : t t a / n i m t e . r l c y o i r r f ( h o ] n l : r D a e o n , s e o e i ) s v ] , r t l } t e ' a e " : r = ) i d ) 3 t l : 0 " N s 0 o : { 0 n s " e { t ) ) d r e ( t e a ) i } s l " t s ) r } : " ) # c # t e l r x I i E y c n e x : e i n a # m } t p # w p p t t m a e r i t r i p S n i i S t i a = l e i _ n a h E n l e t f " " " x t v f x t i I e @ i t m ( e o . c ( z I 3 t s c d y l " p w e f e I : h t o " p C r e r p " F e _ n : e = o e n i t E c T C o t " n s ( t i r l o o a b e " : c v u " e o r i T n c j x h l e l o ( n o e E v t e t t " i r t u t r n I e u c " t M e s t e a : t C r a t : p a n i t p i s l t l s n t o o u _ { i = " : i . n t x e e e f m h / f c f . m : } n r a { t / e o f i x l " t o n t d s n r l m ) ) ( m i p l t v o e l " f : . " e m " h m e n , r , t a s / d t m t n t i l _ a " p i i . f n w s f o i g r i " : e b f o o f , / s j . . m e / t e i j _ s e i c o p m t n i o t / / a c i b a a n o o f j h p p i b d - e e i i f j i t c r / / e e n e t e p i s c g i r i t t = - e i ( " m s f m s u o e / a u t n n 3 n c f o t 4 i c - r a 3 f e 8 e t 7 e s " p i 6 s s ) o o 8 t f - n 6 _ u a w / / o l s e 3 m b ! b / a j " f . c n e ) : v o i c e n f t r t e ) c e s e x t l t . . . j a j s p s o p o n " n " ) " , , Summary# I introduced the workflow of creating TEI/XML files from OCR text using NDL Klasseki OCR-Lite.
In the future, I would like to build a system that completes the process in a single app without going through multiple apps as described above.
There are various areas that need improvement, but I hope some parts serve as a useful reference.