VSCodeとXSLTを用いたTEI/XMLのリアルタイムプレビュー

概要 VSCodeとXSLTを用いたTEI/XMLのリアルタイムプレビュー環境を試作したので、備忘録です。 挙動 動作例は以下です。TEI/XMLファイルを編集し、保存すると、ブラウザの表示内容が更新されます。 https://youtu.be/ZParCRUc5AY?si=-aHHi3bIZGWoJYnP 準備 以下の拡張機能をインストールします。 Live Server Trigger Task on Save TEI/XMLを保存した際に、Trigger Task on SaveによってXSLTを実行し、変換されたHTMLファイルをLive Serverで閲覧します。 リポジトリ サンプルコードを以下に格納しています。 https://github.com/nakamura196/tei-xml-xslt-vscode XSLTを行うにあたり、xslt3をインストールします。 g c n i d p t m t c e i l i n o - s n x t e m a l l h - l t x t s p l s t : - / / s g c i o t d h e u b . c o m / n a k a m u r a 1 9 6 / t e i - x m l - x s l t - v s c o d e settings.jsonとtasks.json .vscodeフォルダに、settings.jsonとtasks.jsonを格納しています。 ...

2025年1月15日 · 29 分 · Nakamura

校異源氏物語テキストDBのTEI/XMLからPDFを作成する

概要 校異源氏物語テキストDBは、『校異源氏物語』のテキストデータを公開するデータベースです。 https://kouigenjimonogatari.github.io/ 今回、本DBに以下のようなPDFファイルを追加しました。 https://kouigenjimonogatari.github.io/output/01/main.pdf 本記事は、上記のようなPDFファイルを、XSLTとTeXを使って作成します。 リポジトリのクローン 以下のように、リポジトリをクローンします。 g i t c l o n e - d e p t h 1 h t t p s : / / g i t h u b . c o m / k o u i g e n j i m o n o g a t a r i / k o u i g e n j i m o n o g a t a r i . g i t h u b . i o そして以下のコマンドにより、xslt3をインストールします。 ...

2025年1月14日 · 8 分 · Nakamura

Knight LabのTimelineJSやStoryMapJSをNext.jsから利用する

概要 Knight LabのTimelineJSやStoryMapJSをNext.jsから利用する方法のメモです。 背景 Knight LabのTimelineJSやStoryMapJSは、デジタルストーリーテリングのためのオープンソースツールです。 https://knightlab.northwestern.edu/ データ 以下で公開されている『渋沢栄一伝記資料』のテキストデータを利用します。 https://github.com/shibusawa-dlab/lab1 リポジトリ 以下で公開しています。 https://github.com/nakamura196/shibusawa ストーリーマップ 以下のようなコンポーネントを用意することで、Next.jsからも利用することができました。 https://github.com/nakamura196/shibusawa/blob/main/src/components/Storymap.tsx TypeScriptの利用にあたり、以下の型定義ファイルも作成しました。 https://github.com/nakamura196/shibusawa/blob/main/src/global.d.ts 以下のように表示することができました。 https://shibusawa.vercel.app/storymap/1868-08-02 タイムライン ストーリーマップ同様、タイムラインについても以下のようなコンポーネントを作成しました。 https://github.com/nakamura196/shibusawa/blob/main/src/components/Timeline.tsx 以下のように表示することができました。 https://shibusawa.vercel.app/timeline/1868 ただし、タイムラインについては、以下でES6 modules/webpackが公開されていることに後から気がつきました。こちらの使い方について、別途調査したいと思います。 https://www.npmjs.com/package/@knight-lab/timelinejs まとめ デジタル・ヒューマニティーズ(DH)の分野で広く活用されているTimelineJSやStoryMapJSについて、データの視覚化や物語の構築を行う際の参考になりましたら幸いです。 なお、これらのツールはプログラムを介さず、Googleスプレッドシートを入力として、可視化アプリを作成することもできます。こちらも参考になりましたら幸いです。 https://timeline.knightlab.com/ https://storymap.knightlab.com/

2024年11月7日 · 1 分 · Nakamura

XSLTを使ってIIIFとTEIの対照表示を実現する

概要 XSLTを使ってIIIFとTEIの対照表示を実現してみる機会がありましたので、備忘録です。 結果は以下からご確認いただけます。「校異源氏物語テキストDB」を利用しています。 https://kouigenjimonogatari.github.io/xml/xsl/01.xml 背景 TEI/XMLの可視化にあたって、これまでは、TEI XMLをHTMLに変換してブラウザ上で表示するためのJavaScriptライブラリであるCETEICeanを使うことが多かったです。 これらの取り組みではJavaScriptのフレームワークと合わせて、柔軟な開発が可能でした。 しかし、この方法ではTEI/XMLとは別に、ビューアのデプロイが必要であるなど、課題を感じる点もありました。 対策 そこで、XSLTを使ったIIIFとTEIの対照表示に取り組みました。以下のXSLファイルを用意しました。実装にあたっては、ChatGPTを利用しました。 https://github.com/kouigenjimonogatari/kouigenjimonogatari.github.io/blob/master/xsl/mirador.xsl そして、XMLファイルからは、以下のように参照します。相対パスとなっている点は、適宜読み替えてください。 < < < ? ? T < x x E t < m m I e f < l l i i t < < - x H l i t a v s m e e t i u e t l a D l t t r y n d e e l h s l s e s S e o i e = r c t > r o s " > > m 校 > n h h t 異 池 = e t > 源 田 " e t 氏 亀 1 t p 物 鑑 . : 語 < 0 t / ・ / " y / き a p w り u ? e w つ t > = w ぼ h " . < t t r e e t > x i i t - t / c l x . e s o > l r " g / h n r s e / f 1 = . " 0 . " . > / . . / x s l / m i r a d o r . x s l " ? > これにより、以下のようなXMLファイルをブラウザで表示すると、 ...

2024年11月2日 · 2 分 · Nakamura

LEAF WriterのEditor Toolbarをカスタマイズする

概要 LEAF Writerでは、画面上部にタグの挿入をサポートするボタンが提供されています。本記事では、その編集方法について紹介します。 結果、以下のように、<app><lem>あああ</lem><rdg>いいい</rdg></app>を挿入する機能を追加しました。 https://youtu.be/XMnRP7s2atw 編集 以下のファイルを編集します。 packages/cwrc-leafwriter/src/components/editorToolbar/index.tsx 以下のように、人名や地名のタグをサポートする機能が設定されています。例えば、以下では、organizationに関する記述をコメントアウトしています。 c o n { } { { } { } { } s , , , , t g h i o } t t t g c g d h i o t t c g d h i o t t c g d h i o t t r i c n , i o y r o r i i c n i y o r i i c n i y o r i i c n i y i o d o C i c c c s } t o p o l o s d o C t p l o s d o C t p l o s d o C t p t u e n l f o o o h ) l l e u o u a e n l l e o u a e n l l e o u a e n l l e e p : : i n n n o e p u ; e t : p r p b : : i e : r p b : : i e : r p b : : i e : m : c ( s s s w v o s : i : : : l c : : : l c : : : l c : s i ' k ! t t t C e s e p ' e i e k ' e i e k ' e i e k ' : ' s i : c o a n i S ' : b ' e ' d s n : ' i e ' d s n : ' i e ' d s n : ' i a R n o r p p n n t t e T u a n a : R t T c n a : R t T c n a : R t T c ( c e s n e o o t c S i l a ' t c t c e i a o t c e i a o t c e i a o M t a e t c s s e h o o e g A t t i t ! a t g n i t ! a t g n i t ! a t g n e i d r a t X Y x o u n c ' d o i t i i d y B t i i d y B t i i d y B n o o t = i t r r : t , d n o y o s o . = P u y o s o . = P u y o s o . = O u u n n T > n = = = M E c i ' n . n S n p > e t . n S n p > l t . n S n o > r t I ' l a e e l e { o T , ' p ' u l e r t p ' u l l a t o ' u l r g t t , y g { r c r r n : : n a , e , p y r w s o l , p y a w c o r , p y g w a o e , ' . o e e u p : g r p , s i o n a p , c i e n g p , a i n n m , c n c c ( c ' o ' t s o o n n ' c o e n ' ' a o n n i ' u t t t { o r s t , y o r n d ' , e r . d , , n r i d z , | r a . . n i X r p n t . o , . t i o i t z o a r i l t t b , u e . e i w c e c w z e a w t I e n e o a b e : c d c . o d o . a d t . i t n e f p i o p , o ( o w l ( n w t ( i w o e t r t n n o ' l ' n r o ' , r i ' o r n m ) . ; + e ' s d o p , i r p i o o n i ' ) c r , Y i r e t . l t n r . t , [ r u 3 . v . r e m a e . g i e ] e r 4 c } i m s r a c r c a c r t r ; u , d a o . i e . o n o . = u e r e i n t n ' t l i n t r n r r n ' a , ) a o z , a [ n t e ' , ) g , g r a g ; . n , , g g . t g g t e e m i e e , h r r a o r t i . . i n . B d a a n ' a o e d d , ) d u : d d , d n E E E d i n n n i s t t t n R i i i g e t t t C a y y y l d D D D i o i i i e n a a a n l l l l t y o o o R g g g e } ( ( ( c , ' ' ' t p p o ( e l r ) r a g ; s c a o e n n ' i ' ) z ) , a , t i o n ' ) , 結果、以下のように選択肢が限定されます。 ...

2024年10月31日 · 25 分 · Nakamura

LEAF WriterをNext.jsから使用する

概要 LEAF WriterをNext.jsから使用する方法について紹介します。 デモ 以下のURLからお試しいただけます。 https://leaf-writer-nextjs.vercel.app/ 以下が画面例です。ヘッダー部分がNext.jsを用いて追加した部分です。エディタ部分はLEAF Writerを使用しています。 ソースコードは以下でご確認いただけます。 https://github.com/nakamura196/leaf-writer-nextjs 使用方法 以下に記載があります。 https://gitlab.com/calincs/cwrc/leaf-writer/leaf-writer/-/tree/main/packages/cwrc-leafwriter?ref_type=heads 注意点として、div containerのidをleaf-writer-containerにする必要があります。これを行わない場合、スタイルが崩れることがわかりました。この点は、今後プルリクエストを送りたいと思います。 # c o c n o s n t s t c o c n o t n a t i a n i e n r e r = = d o d c o u c m u e m n e t n . t g . e g t e E t l E e l m e e m n e t n B t y B I y d I ( d ' ( # ' l # e l a e f a - f w - r w i r t i e t r e - r c ' o ) n ; t a i n e r ' ) ; まとめ LEAF Writerの応用にあたり、参考になりましたら幸いです。 ...

2024年10月29日 · 1 分 · Nakamura

Romaを使ってタグの属性に使用可能な値を限定する

概要 Romaを使ってタグの属性に使用可能な値を限定する方法に関する備忘録です。 背景 以下の記事で、タグに使用可能な属性を限定する方法を記載しました。 例えば、persNameタグには、key属性とtype属性のみを使用可能にする、といった具合です。 本記事では、さらに特定の属性で使用可能な値を限定します。例えば、type属性には、「右傍注」または「左傍注」のいずれかを設定する、といった具合です。 Romaでの設定 以下の記事を参考に、タグの属性の設定を行います。 ここでは、persNameタグにtype属性を設定済みとします。そして、以下のように、鉛筆アイコンをクリックします。 以下のように、属性に関する情報を編集するためのページに遷移します。ここで、「値」という項目において、「右傍注」「左傍注」といった値を登録します。合わせて、必要に応じて「説明」文も追加します。 Oxygen XML Editorでの表示例 rngファイルとしてダウンロードし、それをTEI/XMLからロードすることにより、Oxygen XML Editorでは以下のように表示されました。 LEAF Writerでの表示例 LEAF Writerでは、以下のように、セレクトボックスで選択肢が提示されました。 まとめ TEI/XMLの導入あたり、参考になりましたら幸いです。

2024年10月28日 · 1 分 · Nakamura

Romaを使ってプロジェクトに応じたタグに使用する属性を限定する

概要 Romaを使ってプロジェクトに応じたタグに使用する属性を限定する方法に関する備忘録です。 背景 以下の記事で、Romaを使ってプロジェクトに応じたタグを限定する方法を記載しました。 今回はこの延長で、各タグで使用する属性のカスタマイズを行います。 ユースケース ここでは、一例として、persNameで使用可能な属性を限定してみます。 デフォルト(tei_all.rng)をOxygen XML Editorで用いた際、以下のように、persNameタグで使用可能な属性として、多くの選択肢が提示されていることがわかります。 一方、本記事で説明するカスタマイズしたrngファイルを使用した場合、以下のように、5つの属性のみが利用可能となっていることがわかります。 このようにプロジェクト毎に使用可能なタグや属性を限定することで、入力者の負担軽減や、Validationの効率化が期待できます。 手順 以下の記事を参考に、Romaで新規にODDファイルを作成するか、既存のODDファイルを登録した状態から開始します。 そして、今回対象とするpersNameにチェックが入っていることを確認します。 次に、上記のpersNameのリンクをクリックすると、以下の画面に遷移します。 そして、属性をクリックします。このページにおいて、使用する属性を限定することができます。 以下では、少しわかりにくいですが、key属性は使用するものとして残しており、xml:lang属性は使用しないものとして除外している例です。 その他、新規の属性の作成や、 既存のものからインポート(用語が正しいか自身がありません)することもできました。 このカスタマイズ内容を保存できるように、ダウンロード > 「ODDとしてカスタマイズ」により、oddファイルをダウンロードしておきます。また、「RELAX NGスキーマ」などを選択して、実際にTEI/XMLで使用するファイルをダウンロードします。 詳細は以下を参考にしてください。 参考:説明文のカスタマイズ Roma RELAX NG スキーマ < d e / e l d f < e e i e m / f n l e e i e e < < < n < < < < < < l n m a r p t / r r r r r e e e n e : e a p e e e e e m m > a n d f t x < h a f f f f f p e m t o t m s a / t t n e c n e l c s s t n n n n n y t = n u a r n h x x < c e a a a a a / > " a m m n s : m m s n h r m m m m m > t m e e : r l l c o : n e e e e e e e n = x r u n n h r > = = = = = i = t " m n l s s : t u " " " " " _ " a t l g e : = a e l t t t t t p p t e n = x " s x e e e e e e e e i i s " x i h s t > i i i i i r r o _ = h m = t e u _ _ _ _ _ s s n m " t l " t r a a a a a a N N a h t n h p t l t t t t t a a x c t p s t : t t t t t m m m r t : : t / t s b c . . . . . e e l o p / s p / e y u o c g g g g " " n . : c : w s s t n a l l l l > > s p r h / w t t t n o o o o : h / e = / w = e t e o b b b b a r p l " w . " m h n n a a a a = a u a h w t s s i t i l l l l " s r x t w e t s . c . . . . h e l n t . i r o < a a a l a t S . g p w - i r < / l t t i n t e o . : 3 c n s s . t t n a p q c o / . . g c c c a r r k l : " l r o o - a h h t i i i y / c g p r r l l : : t b b n t . u g g e e n a r u u g i r n r / / n n a s i t t . c e r s l 2 n g d m s b e e a . l g . 0 s t a e e u . . t a a s o 0 / h r / r t x n t t x d t c 1 1 ( s > t e m " r t n s r l / . > . l / i r g d u c X 0 n t k i > b i . l c . I " o o e d u b o / t o n r y " t u r s u r c c m w " e t g c r g l o a h . e / h e u n l i c . n e d d t i c o a s m 1 s e e z h r n / a . d " x e r a c t 0 l t - t e " o r " / = s h s / m o s " p e p > p n i c t a " a " d h e c d / t = e i e a > i " m : ( t b t a * . e i e t [ ) l i r @ r i _ o c ) e t h n a p y i " l g r / _ e t e a d n s n n d 0 e n s a " n o - r > t t p ] e a e " @ d t r > c i s a b o N l y n a e s m n t / e d h 1 - a e . c r 0 a c " l i o > e n n ( n d t p d i e e a c n r r a t s - t o c e o n h s f a e l c o t k n h n - e i a p s m e o e r r e ) s l N m e 日 a o m 本 m r e 語 e e n に - t よ c る o b カ n e ス s l タ t o マ r n イ a g ズ i s で n , す t 。 - r [ u 1 l 4 e . - 2 2 . 3 1 " . > P e r s o n a l N a m e s ] < / a : d o c u m e n t a t i o n > LEAF Writer ...

2024年10月28日 · 5 分 · Nakamura

校異源氏物語テキストDBで公開するTEI/XMLファイルに対するDTS APIのGitHubリポジトリ

概要 以下の記事で紹介したAPIのGitHubリポジトリを公開しました。 リポジトリは以下です。 https://github.com/nakamura196/dts-typescript 不完全な点があるかと思いますが、参考になりましたら幸いです。 メモ vercelのrewrite 以下のように設定することで、/へのアクセスを/api/dtsにリダイレクトさせることができました。 { } " " ] " ] " ] v b , r , r e u e e r i w d s l { } r { } i { } i d i r o s t e n " e c " : " " s " " t " " " : s u " s d s s d p [ r s : o e " o e e 2 c e u s : u s r , " " [ r t r t m : : c i [ c i a e n e n n " " " a " a e s @ : t : t n r v i i t c e " " " / r n n : i c a " " " n e p : , : t d l i r e / / " " u x n d / / e . o t s a t d s r p s e ( c i " " . / , i d ) n t " d s , e " x , . t s " collectionのID コレクションのIDとして以下を使用しています。 ...

2024年9月4日 · 2 分 · Nakamura

校異源氏物語テキストDBで公開するTEI/XMLファイルに対するDTS APIを作成する

概要 校異源氏物語テキストDBで公開するTEI/XMLファイルに対するDTS(Distributed Text Services) APIを作成したので、備忘録です。 背景 校異源氏物語テキストDBは以下です。 https://kouigenjimonogatari.github.io/ TEI/XMLファイルを公開しています。 開発したDTS 開発したDTSは以下です。 https://dts-typescript.vercel.app/api/dts Express.jsをVercelに設置しています。 DTSは以下を参考にしてください。 MyCapytainライブラリ 以下の記事で、DTSをPythonから利用するライブラリを紹介しました。 本ライブラリを使用して、開発したDTSを利用してみます。 Create the resolver With the following line we create the resolver : f r r e o s m o l M v y e C r a p = y t H a t i t n p . D r t e s s R o e l s v o e l r v s e . r d ( t " s h . t a t p p i s _ : v / 1 / d i t m s p - o t r y t p e H s t c t r p i D p t t s . R v e e s r o c l e v l e . r a p p / a p i / d t s " ) Require metadata : let’s visit the catalog The following code is gonna find each text that is readable by Alpheios ...

2024年9月4日 · 20 分 · Nakamura

DTS(Distributed Text Services)を使ってみる

概要 DTS(Distributed Text Services)の使用方法を学ぶ機会があり、その備忘録です。 使用するAPI 以下で紹介されているAlpheios を使用します。 https://github.com/distributed-text-services/specifications/?tab=readme-ov-file#known-corpora-accessible-via-the-dts-api トップ https://texts.alpheios.net/api/dts collections, documents, navigationが使えることがわかります。 { } " " " " " " n @ @ c @ d a i t o c o v d y l o c i " p l n u g : e e t m a " c e e t " : t x n i i t t a " o " s n p E n : " " i n s : : / t " " d r : d " " t y t / / s P " s a a " o / / p p , i a E i i n p n / / t i t d d " / r t t , d y s s t P / s d n i o a c n c v o t u i l . m g l j e a e s n t c o t i t n " o i l n o d " n " , s , " , Collection Endpoint collections https://texts.alpheios.net/api/dts/collections ...

2024年9月4日 · 44 分 · Nakamura

DTSとCTSの関係

概要 DTS(Distributed Text Services)とCTS(Canonical Text Services protocol)の関係の調査結果です。 以下に記載がありました。 https://distributed-text-services.github.io/specifications/FAQ.html#what-is-the-relationship-between-dts-and-cts-are-they-redundant (機械翻訳)日本語訳 DTSとCTSの関係は何ですか?それらは重複していますか? DTS(Distributed Text Services)は、Canonical Text Services(CTS)プロトコルからインスピレーションを受け、その影響を受けて開発されました。CTSは、TEI形式でエンコードされた多くの古典的で正典的なテキストを、機械が処理可能な形でリンクドオープンデータとして提供することを可能にしました。しかし、CTS APIはCTS URN識別子システムに密接に結びついており、現代のコンテンツやパピルスや碑文などの他の形式の書き物で使用される引用システムには対応していません。また、このAPIはWeb APIに関する最新のコミュニティ標準にも準拠していません。 DTSはこれらの制限に対処し、さまざまなテキストにわたって標準化された、機械が処理可能な操作を可能にするために作成されました。DTSは、テキストコレクションを機械が処理可能なリンクドデータとして扱うためのハイパーメディア駆動のWebアプリケーションプログラミングインターフェース(API)を定義する、コミュニティ主導の取り組みです。DTS仕様は、コレクションの組織方法、参照に使用される永続的識別子の種類、メタデータに使用するオントロジー、テキスト自体の構造、APIの実装方法については規定していません。できる限り汎用的であり、コレクションのナビゲーション、テキスト内のナビゲーション、テキストコンテンツの取得のためのシンプルな操作を提供することを目指しています。DTSは、テキストコレクションを機械が処理可能なデータとして共有し、再利用するための標準的な方法を提供することを目指して、標準的で採用しやすい仕様を定義しています。 その他 参考までに、上記FAQの他の箇所の機械翻訳結果を掲載します。 DTSに関するよくある質問 DTSとは何ですか? DTSは、TEIドキュメントのコレクション向けのAPIです。 なぜTEIにコレクション用のAPIが必要なのですか? DTSは、クライアントがTEIドキュメントのコレクションと標準的な方法でやり取りできるようにします。標準APIにより、ユーザーは同じクライアントソフトウェアを使用して多くのテキストコレクションにアクセスできます。また、編集者は既存のクライアントが使用できる形でテキストコレクションを公開できるようになります。 DTSをダウンロードして使い始めるにはどうすればいいですか? ダウンロードできません。DTSはプログラム同士の通信方法を定義します。最終的にエンドユーザーがこのソフトウェアを使用します。ソフトウェア開発者向けにはDTSをサポートするライブラリがあり、それらはここにリストされています。 クライアントはこれらのドキュメントで何ができますか? クライアントがテキストデータでできることなら何でも可能です。例えば、このデータはユーザーが読める形で表示されたり、言語学的、文学的、談話的な特徴を分析したり、ユーザーがテキストに注釈を付けて有用なデータを作成できるツールで提示されたりします。 DTSは私のテキストをFAIRにするのに役立ちますか? はい!デジタルテキストコレクションの発行者は、DTS APIを使用して、そのテキストデータを見つけやすく(Findable)、アクセスしやすく(Accessible)、相互運用可能(Interoperable)で、再利用可能(Reusable)なFAIRな形にすることができます。 DTSは以下の方法でテキストデータのFAIRなデータプラクティスをサポートします: 発行者にテキストやコレクションに安定した永続的識別子を使用することを促す メタデータ記述のために標準的な語彙を使用することをサポート テキストコンテンツ自体とは別にメタデータを表現できるようにする 引用可能な単位に至るまで、テキストリソースの構造に関する情報への文書化された(が制約のない)アクセスを提供 テキストリソース間の関係を詳細に指定できるようにする DTSはどのようなAPIですか? DTSは、REST APIであり、Webブラウザのように機能します。クライアントソフトウェアがリクエストを送ると、サーバーはドキュメントを返します。クライアントはこのドキュメント内の情報を使用して、さらにリクエストを送ることができます。このAPIは、HTTPリクエストやレスポンスに含まれるドキュメントとヘッダーに基づいて完全に定義されています。つまり、DTSは言語に依存せず、デバッグが容易で、多くのユーザーに対してスケールすることができます。APIに詳しい人向けに言うと、DTSはピュアなハイパーメディア中心のREST APIで、HTTPの慣習に基づいて定義されています。 DTSは、ウェブサイトを作成するのと同じように構築されています。すべてが発見可能で、ユーザー(クライアント)が簡単に目的のものを見つけられるように整理されています。その上で、リンクされ共有されている語彙を使用し、データのウェブ全体で利用可能なものを活用しています。 Hydraとは何ですか?なぜHydraを使用するのですか? HydraはREST APIを構築するための良いフレームワークを提供します。私たちはゼロから始めるのではなく、標準を使用したかったのです。JSONとピュアなハイパーメディアベースのAPIのサポートが欲しかったため、Hydraを選びました。Hydraはコア機能を提供し、私たちのモデルに合わせてカスタマイズできる拡張性を提供します。(他の3つか4つのアプローチを試しましたが、Hydraが私たちのユースケースに最適でした。APIに関する宗教的な議論があることは承知していますが、これが私たちにとってうまく機能しました。) 私のテキストコレクションにDTS APIを実装すると、何が可能になりますか? DTS APIを実装することで、データの消費者は以下を簡単に取得できるようになります: コレクションメンバーのリスト 個々のコレクションアイテムに関するメタデータ テキスト内の引用可能なパッセージのリスト クライアントが定義したサイズ(例:10行ごとのグループ)で引用可能なパッセージのリスト ドキュメントの引用構造に関するメタデータ 引用階層の任意のレベルでの単一のテキストパッセージ 明確に定義された開始と終了のパッセージを含む範囲のテキストパッセージ 全体のテキスト DTSが必要とし、サポートする識別子スキームは何ですか? DTSは、URLパラメータとして安全に表現できる任意のコレクションおよびドキュメントの識別子スキームをサポートします。 DTSはネストされたコレクション(例:コレクションのコレクション)をサポートしますか? はい、サポートします。 DTSは複数レベルのテキスト引用階層をサポートしますか? はい、サポートします。 DTSはドキュメント内で異なるテキスト引用階層をサポートしますか? はい、サポートします。 私のテキストがTEI/XML形式で公開されていなくてもDTSを使用できますか? はい、部分的に使用できます。 ...

2024年9月4日 · 1 分 · Nakamura

MyCapytainライブラリを試す

概要 以下のMyCapytainライブラリを試します。 https://github.com/Capitains/MyCapytain 背景 以下の記事で、CTS(Canonical Text Service)を取り上げました。 以下のページにおいて、CITE, CTS, CapiTainSの説明がなされています。 https://brillpublishers.gitlab.io/documentation-cts/DTS_Guidelines.html The following document is about CITE, a system for the identification of texts and any other object. CTS is the name for the identification system itself. CapiTainS is the name for the software suite built around it. Before we go into details, we need to ask two questions: (機械翻訳)以下の文書は、CITE(テキストおよびその他のオブジェクトを識別するためのシステム)に関するものです。CTSは、この識別システム自体の名前です。CapiTainSは、その周りに構築されたソフトウェアスイートの名前です。詳細に入る前に、2つの質問をする必要があります。 さらに、今回使用するMyCapytainライブラリは以下のように説明されています。 MyCapytain is a python library which provides a large set of methods to interact with Text Services API such as the Canonical Text Services, the Distributed Text Services. It also provides a programming interface to exploit local textual resources developed according to the Capitains Guidelines. ...

2024年9月4日 · 22 分 · Nakamura

Canonical Text Serviceを試す

概要 Canonical Text Serviceは、以下のように説明されています。 The Canonical Text Services protocol defines interaction between a client and server providing identification of texts and retrieval of canonically cited passages of texts. (機械翻訳)Canonical Text Services (CTS) プロトコルは、テキストの識別と、正規に引用されたテキストの箇所の取得を提供するクライアントとサーバー間の相互作用を定義しています。 以下のサイトを参考にしています。 http://cts.informatik.uni-leipzig.de/Canonical_Text_Service.html 使用方法 以下を参考にしています。 https://github.com/cite-architecture/cts_spec/blob/master/md/specification.md GetCapabilities サーバーがサポートしているサービスを確認するためのリクエストです。 http://cts.informatik.uni-leipzig.de/pbc/cts/?request=GetCapabilities < G / e < < G t r r / e C e e < r t a q p T / e C p u l e < < < < < < T p a a e y x c c c c c t / e l p b s > t o o o o o e < < < < < < < < < < < < < < < < < < < < < t x y a i t I r r r r r x g e / e / e / e / e / e / e / e / e / e / e / e / e / e / e / e / e / e / e / e / e t > b l > n p p p p p t r d < < < < < < e d < < < < < < e d < < < < < < e d < < < < < < e d < < < < < < e d < < < < < < e d < < < < < < e d < < < < < < e d < < < < < < e d < < < < < e d < < < < < < e d < < < < < < e d < < < < < < e d < < < < < < e d < < < < < < e d < < < < < < e d < < < < < < e d < < < < < < e d < < < < < < e d < < < < < < e x I i i G v u u u u u g o i t l s p l c d i t l s p l c d i t l s p l c d i t l s p l c d i t l s p l c d i t l s p l c d i t l s p l c d i t l s p l c d i t l s p l c d i t l p l c d i t l s p l c d i t l s p l c d i t l s p l c d i t l s p l c d i t l s p l c d i t l s p l c d i t l s p l c d i t l s p l c d i t l s p l c d i t l s p l c d t n l t e e s s s s s r u t i i o u a o i t i i o u a o i t i i o u a o i t i i o u a o i t i i o u a o i t i i o u a o i t i i o u a o i t i i o u a o i t i i o u a o i t i i u a o i t i i o u a o i t i i o u a o i t i i o u a o i t i i o u a o i t i i o u a o i t i i o u a o i t i i o u a o i t i i o u a o i t i i o u a o i t i i o u a o i g v i i t n l s l n d o p i t c u b n n t i t c u b n n t i t c u b n n t i t c u b n n t i t c u b n n t i t c u b n n t i t c u b n n t i t c u b n n t i t c u b n n t i t c b n n t i t c u b n n t i t c u b n n t i t c u b n n t i t c u b n n t i t c u b n n t i t c u b n n t i t c u b n n t i t c u b n n t i t c u b n n t i t c u b n n t r e t e C t i o a a e u n o l e r l g t i o l e r l g t i o l e r l g t i o l e r l g t i o l e r l g t i o l e r l g t i o l e r l g t i o l e r l g t i o l e r l g t i o l e l g t i o l e r l g t i o l e r l g t i o l e r l g t i o l e r l g t i o l e r l g t i o l e r l g t i o l e r l g t i o l e r l g t i o l e r l g t i o l e r l g t i o n i s a o c u n m s p a n e n c i u e o n e n c i u e o n e n c i u e o n e n c i u e o n e n c i u e o n e n c i u e o n e n c i u e o n e n c i u e o n e n c i u e o n e n i u e o n e n c i u e o n e n c i u e o n e n c i u e o n e n c i u e o n e n c i u e o n e n c i u e o n e n c i u e o n e n c i u e o n e n c i u e o n e n c i u e o u t e p r e r g e c m > s e c a n n > s e c a n n > s e c a n n > s e c a n n > s e c a n n > s e c a n n > s e c a n n > s e c a n n > s e c a n n > s c a n n > s e c a n n > s e c a n n > s e c a n n > s e c a n n > s e c a n n > s e c a n n > s e c a n n > s e c a n n > s e c a n n > s e c a n n p o s x a y n c u > r u e u T e > a g t > u C e > a g t > u C e > a g t > u B e > a g t > u D e > a g t > u D e > a g t > u D e > a g t > u L e > a g t > u D e > a g t > u T e a g t > u K e > a g t > u P e > a g t > u T e > a g t > u T e > a g t > u T e > a g t > u T e > a g t > u T e > a g t > u С e > a g t > u T e > a g t > u U e > a g t > > r > m b s e a P i r > r h > h t e T r e > h t e T r z > h t e T r e > h t e T r i > h t e T r i > h t e T r i > h t e T r u > h t e T r i > h t e T r h > t e T r i > h t e T r y > h t e T r h > h t e T r h > h t e T r h > h t e T r h > h t e T r h > h t e T r и > h t e T r h > h t e T r k > h t e T y l i t e > g a p n b n e P t i > y n b P t i > y n e P t i > y n i P t i > y n e ´ t i > y n e P t i > y n e P t i > y n t P t i > y n e p t i > y n e P i > y n n P t i > y n h P t i > y n e P t i > y n e P t i > y n e P t i > y n e P t i > y n e P t i > y n н P t i > y n e P t i > y n r P t i > y > n l i > h e r t = i = u t o a p = u u t o c p = c u t o c p = b u t o c p = P t o d p = u t o d p = u t o d p = h u t o d p = u t o d p = u o e p = g u t o e p = ä u t o f p = u t o f p = u t o f p = u t o f p = u t o i p = u t o m p = о u t o r p = u t o t p = a u t o u p s i v P t > a i " b " B b p n r e " a b p n e e " h b p n e e " l b p n y e " B u p n e e " B b p n e e " B b p n e e " e b p n e e " B b p n e e " B b n n e " b p n n e " b p n i e " B b p n r e " B b p n r e " B b p n r e " B b p n t e " N b p n y e " д b p n u e " B b p n g e " i b p n k e = t e u t a l o u l u i l : D b > u n l : D b > u l : D s > u l : D m > u i b : D u > u i l : D u > u i l : D u > u r l : D u > u i l : D u > u i l D g > u J l : D g > u R l : D n > u i l : D a > u i l : D a > u i l : D a > u i l : D a > u e l : D a > u а l : D s > u i l : D l > u n l : D r > " i r b p r l n r e r b i / a < x r o i / a < x r B i / a < x r W i / a < x r b l / a < x r b i / a < x r b i / a < x r i / a < x r b i / a < x r b i a < x r a i / a < x r a i / a < x r b i / a < x r b i / a < x r b i / a < x r b i / a < x r w i / a < x r л i / a < x r b i / a < x r i i / a < x h e s l : b e > n < n l c / t / m n c / t / m n i c / t / m n i c / t / m n e i / t / m n e c / t / m n e c / t / m n 1 c / t / m n e c / t / m n l c t / m n m c / t / m n a c / t / m n l c / t / m n l c / t / m n l c / t / m n l c / t / m n c / t / m n ь c / t / m n l c / t / m n a c / t / m t s i i / , l T : / : e p e l l : A p e l l : b p e l l : l p e l l : l c p e l l : l p e l l : l p e l l : 5 p e l l : l p e l l : e e l l : e p e l l : m p e l l : e p e l l : e p e l l : e p e l l : e p e l l : T p e l l : н p e l l : e p e l l : n p e l l t < o c / c h c g c D a > a < c n D a > a < c l D a > a < c l D a > a < c a > a < c D a > a < c D a > a < c 4 D a > a < c D a > a < c D > a < c s D a > a < c a D a > a < c D a > a < c D a > a < c D a > a < c D a > a < c e D a > a < c ы D a > a < c D a > a < c D a > a < p / n p e B e t r t i o r 1 n / t g o r 1 n / t e o r 1 n / t i o r 1 n / t i D r 1 n / t i o r 1 n / t i o r 1 n / t 5 o r 1 n / t i o r 1 n / t i o 1 n / t o r 1 n / t t o r 1 n / t i o r 1 n / t i o r 1 n / t i o r 1 n / t i o r 1 n / t s o r 1 n / t й o r 1 n / t i o r 1 n / t V o r 2 n / : r = D a b i s o s n m a 8 g c s m a 9 g c s m a 6 g c s a m a 8 g c s n o a 8 g c s n m a 9 g c s n m a 5 g c s m a 5 g c s n m a 9 g c s n m 8 g c s V m a 6 g c s t m a 7 g c s n m a 7 g c s n m a 8 g c s n m a 9 g c s n m a 6 g c s t m a 8 g c s m a 8 g c s n m a 9 g c s e m a 0 g c / e " o r , b B : u : a l 6 u o : B a l 1 u o : K a l 1 u o : m a l 0 u o : m l 7 u o : a l 0 u o : a l 4 u o : ( a l 4 u o : a l 1 u o : a 9 u o : e a l 1 u o : u a l 7 u o : a l 4 u o : a l 8 u o : a l 1 u o : a l 4 u o : a a l 3 u o : п a l 7 u o : a l 0 u o : r a l 0 u o / q 5 m a c l i p p p A i l 5 a n p i i l 7 a n p r i l 3 a n p i l 4 a n p D a l 1 a n p D i l 5 a n p D i l 5 a n p L i l 5 a n p D i l 2 a n p E i 0 a n p r i l 1 a n p . i l 6 a n p F i l 4 a n p F i l 1 a n p F i l 0 a n p I i l 9 a n p m i l 5 a n p е i l 6 a n p T i l 5 a n p s i l 9 a n r u . a l e e b b n b r n e < g t b b n e < g t b a n e < g t b M n e < g t b e i e < g t b e n e < g t b e n e < g t b e n e < g t b e n e < g t b n n < g t b s n e < g t b n e < g t b r n e < g t b r n e < g t b r n e < g t b t n e < g t b e n e < g t b р n e < g t b a n e < g t b i n e < g t e e 0 i l s l c a c a < l / e e c l < l / e e c l < l / e e c o < l / e e c u n l / e e c u < l / e e c u < l / e e c t < l / e e c u < l / e e c g < e e c i < l / e e c V < l / e e c e < l / e e c e < l / e e c e < l / e e c a < l / e e c n < l / e e c е < l / e e c g < l / e e c o < l / e e l s . n e , C e : m : b / t p > n : i / t p > n : i / t p > n : r / t p > n : t < t p > n : t / t p > n : t / t p > n : z / t p > n : t / t p > n : l p > n : o / t p > n : e / t p > n : n / t p > n : n / t p > n : n / t p > n : l / t p > n : t / t p > n : в / t p > n : a / t p > n : n t p > n a t r < l c o b e b i l e u t b a l e u t b c l e u t b g l e u t b s / e u t b s l e u t b s l e u t b t l e u t b s l e u t b i l u t b n l e u t b r l e u t b c l e u t b c l e u t b c l e u t b i l e u t b l e u t b о l e u t b l l e u t b . l e u t x > c t y r c i > i c i x b T i i x b T i k i x b T i a i x b T i c l x b T i c i x b T i c i x b T i e i x b T i c i x b T i s i b T i i x b T i s i x b T i h i x b T i h i x b T i h i x b T i a i x b T i i i x b T i д i x b T i o i x b T i i x b T n . c e m p o b b < c t l y b ( c t l y b a c t l y b n c t l y b h i t l y b h c t l y b h c t l y b c t l y b h c t l y b h c l y b o c t l y b i c t l y b . c t l y b . c t l y b . c t l y b n c t l y b n c t l y b . c t l y b g c t l y b T c t l y g 1 o x , u r l l / e . i p l B e . i p l . e . i p l . e . i p l . c . i p l . e . i p l . e . i p l H e . i p l . e . i p l . e i p l f e . i p l o e . i p l e . i p l e . i p l e . i p l . e . i p l e . i p l e . i p l . e . i p l h e . i p . " r t d s p e e t n i c e e u n i c e e n i c e e n i c e e e i c e e n i c e e n i c e e a n i c e e n i c e e n c e e n i c e e n n i c e e D n i c e e K n i c e e L n i c e e n i c e e M n i c e e T n i c e e < n i c e e e n i c e o > p . e < u " . i s n a > . g s n a > . V s n a > . W s n a > . E n n a > . E s n a > . L s n a > . n s n a > . L s n a > . D s a > . t s n a > . s n a > . a s n a > . i s n a > . o s n a > . G s n a > . y s n a > . h s n a > . / s n a > . s n a > r u i u / s > p t e f t p n e f t p e e f t p i e f t p l s f t p l e f t p u e f t p d e f t p u e f t p a e t p h e f t p o e f t p v e f t p n e f t p u e f t p i e f t p a e f t p e e f t p t e f t p B e f t g s n , c a l > o i a a > o i a r > o i a l > o i a b e o i a b > o i a t > o i a ) > o i a t > o i a r > i a e > o i a f > o i a i > o i a g > o i a i > o i a o > o i a n > o i a > o i a i > o i a i > o i / l f e o c r e / o r / o r s / o r l / o r e > / o r e / o r h / o r . / o r h / o r b o r / o r / o r d / o r / o r s / o r v / o r m / o r S / o r t / o r b / o n i o n r o a > d n a V d n a i d n a i d n a r d n a r d n a e d n a d n a e d n a y n a C d n a 1 d n a d n a J d n a d n a a d n a a d n a y d n a l d n a l d n s c / g p n l a D l e a D l o a D l a a D l f a D l f a D l r a D l T a D l r a D l D l h a D l 7 a D l M a D l a a D l S a D l n a D l r a D l n a D l e a D l e a D / e d , u t l t a l r t a l n t a l m t a l e t a l e t a l t a l h t a l t a l T a l r t a l 7 t a l a t a l m t a l e t a l n t a l < t a l o t a l > t a l t a s n a f s a e a t e s a t e a t e a t e l a t e l a t e V a t e e a t e V a t e r t e i a t e 6 a t e r a t e e a t e g a t e i a t e / a t e d a t e a t e i a t t s t i n i l / e l i / e l o / e l M / e l d / e l d / e l e / e l / e l e / e l a e l s / e l . / e l t / e l s / e l o / e l / e l t / e l a / e l / e l n / e r e a n a n . > . o > . f > . o > . e > . e > . r > . B > . r > . n > . t > . > . i > . > . n > . D > . i > . l > . > . > u > / , m s a r c n r c r c r r d r r d r r d s r d i r d s r e s e i r f T r f n r f V r f d r i i r m t r r r t r u U r c < f e r e e ) e e 1 e y g e e e e e e i e e b e e i e n l n a e i h e r e r e e r e t o e y l e u B e g e k k e t / r > 1 b t b < t s 6 t m a t u V t u 1 t u o t u l t u o t g a g n t n e t a V t a r t a V t a d t a e t s i t l t r r t u c a 1 . r . / r . 1 r . n r . e r . 9 r . n r . e r . n r . t . r . r . e r . s r . e r . a r . > r . b r . r . a r r o , 6 n i b t i k 3 i m i e r i e 0 i l i l i l i d i k B i 1 B i d r i k i i l r i d t i 1 i s l i 1 i 2 n i e r i 9 o e u i e r < e o B e l s e l 5 e u e u i e u e a o i i e 7 i e a s e i o e o s e i i e 8 e y e e 9 e 0 i e / p t r v g t v a / v r i v b i v b . v t o v t n v t o v r n n b v 6 b v v i v n n v u i v o v 3 v n v 0 v 0 a v 1 u a u m e n l e l t e g b e e o e e e h n e h e h n e b . g l e 6 l e i o e g . e i o e d B e 5 e o i e 5 e 9 n e . s , n : d a e d i i d a l d r n d r T d e d e G d e d y < j e d : e d d n d j < d s n d a i d : d d n d : d : . d 0 s m i " : > c t n e f f h r 1 r e r 1 : / a < " m . a / s . t b " a " " < " o y q > v " v k l v 1 v e v e e v 1 5 v 1 r v 1 9 v " t m / v > i v a < v m t v e < v i b v > v l R v > v > / v u a u i > i a e i 8 i i l o i l i 5 4 i 5 m i 9 1 i > i e t i n i r / i e i i g i : i i i : u i i t i x r , e a a : > a 0 n a d n a d B a 4 5 a 4 a a 1 2 a t s i a a t t a s t a t a " a a a " s a a i a m c r " 4 e e i 5 . 5 n 2 . l : t F i i : l n i > > s t l e u t C C > C : W C r 1 C r b C : C l < C : C e " l C i C n t C " e C d t C V C C i C C l C n > s r a a a " e a 1 8 a 1 l a " T a e / a " T a > > e a n a : l a > > a : l a e a a a a a e a s , a n n n > l n 8 7 n 9 e n > h n t t n > h n > n n n " e n n " e n r n n n n n > n : t n o o o s o 7 1 o 0 o e o z i o e o o i o > > o o > > o s o o . o o o a g s n n n h n 1 . n 5 i n n t t n n n s n n n n i n n < n n n = l l i i i . i : i : n i B i e l i B i i h i i i i o i i / i i i " , a c c c < c " T c " c i c h e c i c c < c c c c n c c t c c c h u t a a a / a > h a > G a b a a > a b a a / a a a a . a a i a a a t k i l l l t l e l e l l l n l l l l t l l l l < l l t l l l t r o i r e d e i / l p < n T T T t T B T m T T : T T T t T T T T t T T e T T T : / s e e e l e i e a e i e " e i e e l e e e e i e e > e e e / c , x x x e x b x n x n x > x n x x e x x x x t x x x x x / o t t t > t l t < t t t t t > t t t t l t t t t t r r w e / G G e e p h S S S S S t S e S S e S S S S S S > S S S S S l u i e e e e i e i e r e e r e e e e e e e e e e e a s c r r r r n r t r m r r m r r r r r r r r r r r x l h v v v v v l v a v v a v v v v v v v v v v v n a i i i i G i e i n i i n i i i i i i i i i i i g n h c c c c e c > c . c c . c c c c c c c c c c c . g a e e e e r e e e e e e e e e e e e e e e o u v m L L r a e h h h h a h h u h h u h h h h h h h h h h h g g t t t t n t t t t t t t t t t t t t t t t t / e b t t t t , t t h t t h t t t t t t t t t t t n > e p p p p p p e p p e p p p p p p p p p p p s e : : : : E : : r : : r : : : : : : : : : : : / n / / / / l / / / / / / / / / / / / / / / c / / / / b / / v / / v / / / / / / / / / / / o a c c c c e c c e c c e c c c c c c c c c c c m s t t t t r t t r t t r t t t t t t t t t t t p s s s s s f s s s s s s s s s s s s s s s s s a i . . . . e . . i . . i . . . . . . . . . . . t g i i i i l i i o i i o i i i i i i i i i i i i n n n n n d n n n n n n n n n n n n n n n n n b e f f f f e f f f f f f f f f f f f f f f i d o o o o r o o o o o o o o o o o o o o o o o l r r r r r r f r r f r r r r r r r r r r r i 9 m m m m V m m m m m m m m m m m m m m m t 0 a a a a e a a 1 a a 1 a a a a a a a a a a a y 6 t t t t r t t 5 t t 9 t t t t t t t t t t t / i i i i s i i 4 i i 1 i i i i i i i i i i i a d k k k k i k k 5 k k 2 k k k k k k k k k k k n i . . . . o . . . . . . . . . . . . . . . . . n f u u u u n u u < u u < u u u u u u u u u u u o f n n n n n n / n n / n n n n n n n n n n n t e i i i i o i i t i i t i i i i i i i i i i i a r - - - - f - - i - - i - - - - - - - - - - - t e l l l l l l t l l t l l l l l l l l l l l i n e e e e 1 e e l e e l e e e e e e e e e e e o t i i i i 8 i i e i i e i i i i i i i i i i i n p p p p 7 p p > p p > p p p p p p p p p p p s I z z z z 1 z z z z z z z z z z z z z z z / S i i i i < i i i i i i i i i i i i i i i 1 O g g g g / g g g g g g g g g g g g g g g . - . . . . t . . . . . . . . . . . . . . . 0 6 d d d d i d d d d d d d d d d d d d d d " 3 e e e e t e e e e e e e e e e e e e e e 9 / / / / l / / / / / / / / / / / / / / / x - p p p p e p p p p p p p p p p p p p p p m 3 b b b b > b b b b b b b b b b b b b b b l c c c c c c c c c c c c c c c c c c c n c / / / / / / / / / / / / / / / / / / / s o c c c c c c c c c c c c c c c c c c c : d t t t t t t t t t t t t t t t t t t t t e s s s s s s s s s s s s s s s s s s s e s / / / / / / / / / / / / / / / / / / / i . < < < < < < < < < < < < < < < < < < < = / / / / / / / / / / / / / / / / / / / " T s s s s s s s s s s s s s s s s s s s h h o o o o o o o o o o o o o o o o o o o t i u u u u u u u u u u u u u u u u u u u t s r r r r r r r r r r r r r r r r r r r p c c c c c c c c c c c c c c c c c c c : C e e e e e e e e e e e e e e e e e e e / T > > > > > > > > > > > > > > > > > > > / S w w i w n . s t t e a i n - c c e . o c r o g n / t n a s i / n 1 s . 0 2 " 0 x b m i l b n l s e : d t c r = a " n h s t l t a p t : i / o / n p s u r f l r . o o m r g P / B d C c / t e h l a e t m e a n r t e s / a 1 v . a 1 i / l " a b x l m e l n a s s : t P i u = b " l h i t c t p D : o / m / a c i h n s . . < h / a c r o v r a p r u d s . d e e d s u c / r x i m p l t n i s o / n c > t s " > GetPassage 指定したURN(Uniform Resource Name)に基づいて、特定のテキストの一部を取得します。 ...

2024年9月4日 · 109 分 · Nakamura

画像ファイルに対してGoogle Cloud Visionを適用して、IIIFマニフェストおよびTEI/XMLファイルを作成する

概要 画像ファイルに対してGoogle Cloud Visionを適用して、IIIFマニフェストおよびTEI/XMLファイルを作成するライブラリを作成しました。 https://github.com/nakamura196/iiif_tei_py 本ライブラリの使用方法を説明します。 使用方法 以下で使い方などを確認できます。 https://nakamura196.github.io/iiif_tei_py/ ライブラリのインストール GitHubのリポジトリから、ライブラリをインストールします。 p i p i n s t a l l h t t p s : / / g i t h u b . c o m / n a k a m u r a 1 9 6 / i i i f _ t e i _ p y GCのサービスアカウントの作成 以下の記事などを参考に、GC(Google Cloud)のサービスアカウントキー(JSONファイル)をダウンロードします。 ...

2024年8月8日 · 37 分 · Nakamura

LEAF Writer: Miradorを追加する

概要 LEAF Writerのカスタマイズ方法に関する調査記録です。 https://gitlab.com/calincs/cwrc/leaf-writer/leaf-writer 今回は以下のように、Miradorを追加します。 方法 以下を参考にしてください。 https://gitlab.com/nakamura196/leaf-writer/-/commit/377438739cdeb0a7b770ee9d4b9fea86081179d8 修正が必要なファイルは以下です。 i i i i i } c } e m m m m n l x p p p p t a p t w a r r r r m $ c i c } p } r } p o o o @ o e t a a r s e e e e i p u g o r e o r r r t r r t r g i s a a a a r a r n n t t t t $ ` t t } t } i c c c } t s t t r t t t s t f r e ? t d d d d e a g r o s h h h h ( ) h h ) h ) o o o ; h e h h t - a i n : e I o o o o s d e e r t i i i i ` < ; i i c i t ; i i ; a n n n i w ] w } i t i i $ ' W i M c b t r i n n n n l o B n e r s s s s # d s s o f h s f t ( s s s d i , i , e s ( s s d j r g i e u I s : i l l l l i r r t S u . . . . $ i . . n i . e d t t t : n { } n s s . ) . . e f q i n r t d t f y y y y n I e I c c w i t a { v w w s ( s w ( o d , d i l m $ c f r u t o a I e : r W V t n a n r t r d a t p r r o ! . r ! p c $ m c t o l o d i i { p u a o e e r d i ? i r i w i t a - s k d o o i g t a i i i l s p i t r ) f a o h w o w e n r a r u m r r e o i : s n i e r d a t d t s e l r t = N r r d t t e u r t h o . a n n i s a : B t a g r l y r f t g t w i : g t i a : x l ( e a N e = e e . c o e i c f c i f s : d a - d e e t ' - f V s r ; e e t N r s n { r ` m a n " r r l c c r s e i s f i . e { r d o B n j u r f i t i r r e s a N a c u = = $ e m t $ . . o e e . . s n i e g i [ d O i r r t I q i o r e r n ; r t m a b e n a = { e I { e e g s s e w s d m s d M p s I e I i u ' m o w i g { : r e m l : k - f t p = d t v v ( s s v r D i t = , a e a n a n i e ; m e n ; i : e e n 1 a t w a = } h e e ' ) D e i o l U n n b s k d f r r g W n : - a o ; l r r r t ` i n n d o n t c e r { i : l t s e V y ' P ; r g s n n w s i i e a a ) s t t o r c t e u i f e a x i ' m r i ; t s e y n e b t n g t . . ( ( c e u ( r m = e f - n = e ; i o t r t x ; ; u e t t a i ' ' u t m ' . e = s a n c = w r p e i r t | t r I ? r p d l d m u e w e n $ t l e e n e a s r n i - e ; d ? i p } o o e r n r d t ( $ : s x u - r d ; g n l n , } b e " a c n n t i i ( d f e t = l 1 ; o { ; g i u _ ' u n d u t ; ( t t d o a m , - l ; r ; n l p i p t d s i m L b e o o c c a l M ; / ' e l a i b e ( t n e o o r r c ) s n i i W ; ; r i ' ` y g n a d I ) : . i i n r r @ e f ; ? l D t d y n f m f e a i t n V ? e o L e ) i r H i i e d t y t i = c o d ; t e T n l s @ o e p I e ' " u a ' i t M d e t t r r e d w f p m d , a u L ( . U y . ' s , e p a o e e l r E ` a r p v ; c r a c s n d s i n l * t i e i r t ` g s i t ' u z ; e [ t , s e i a ; e ' t ' ) c e m _ r c w p g ; i ) . c d e t ( r e t , b o . s e ' n a ' i r - r n s u s ) t g s p ( e w e : u b s . ) = a t c s r a b s , s " m - o l i k a a s c u { f e e n i t t b c r b b a a s f n e e t s r i o s c s l i t r l r o i b d c s ' i g / e i l b e y r i ) n ) n } m b u e ( ) i m ; t ; o : e u t ( ( ; b i / - n t e ( s e l n e I t e ; ) u ( e o x i c ( " - p i n t t = c ) ] u l f a h o > e ` n i V m a p s = ) s c i e t : t s > ; a i e h : f t w s 0 i { e - e t ; s b - a r o . o a n P r b r o s y r e o e l s , o s t s e i p t e a g @ s t o t n n t ) h m ( , m y e : ) e p { ) b n e i 0 ; o t s m ; d , c a y r g l : @ i e e t p f H y t U t T p - R : M e e L L s s 0 E c l ; l r i e i n r m p t i e t / g n - n h t e o t ) s - : l r = i e 0 > n d " t u > { / n < n d / o a d - n i u t v n - > s t a y f p e e - - c c a o l n l s , t i @ t t u y e p n e t s s c r i p t - e s l i n t / n o - u n s a f e - m e m b e r - a c c e s s 以下の箇所で、<facsimile sameAs="https://dl.ndl.go.jp/api/iiif/3437686/manifest.json">の情報を取得しています。 ...

2024年7月23日 · 9 分 · Nakamura

LEAF Writer: サンプルデータの追加方法

概要 LEAF Writerのカスタマイズ方法に関する調査記録です。 https://gitlab.com/calincs/cwrc/leaf-writer/leaf-writer 今回はサンプルデータの追加方法に関する備忘録です。以下のように、独自のサンプルデータを追加します。 方法 以下を参考にしてください。 https://gitlab.com/nakamura196/leaf-writer/-/commit/c4e98090c94874037980819c9672eea10814eedb samples.jsonの更新に加えて、必須ではありませんが、アイコンを追加するため、apps/commons/src/icons/index.tsxも更新する必要がありました。 結果 以下のように、サンプルデータからエディタ環境を開くことができました。 まとめ LEAF Writerの理解にあたり、参考になりましたら幸いです。

2024年6月29日 · 1 分 · Nakamura

LEAF Writer: Image Viewerの使い方

概要 LEAF Writerでは、以下のように、テキストと画像を並列表示する機能を提供します。画像のページをおくると、テキストも連動して動作する機能も提供されています。 このImage Viewer部分に画像を表示するための、TEI/XMLの記述例を紹介します。 方法 以下のように、pbタグを指定します。 https://github.com/kouigenjimonogatari/kouigenjimonogatari.github.io/blob/master/xml/lw/01.xml 具体的には、以下です。 < p b c o r r e s p = " # z o n e _ 0 0 0 5 " f a c s = " h t t p s : / / d l . n d l . g o . j p / a p i / i i i f / 3 4 3 7 6 8 6 / R 0 0 0 0 0 2 2 / 0 , 0 , 3 4 4 5 , 4 7 0 6 / f u l l / 0 / d e f a u l t . j p g " n = " 5 " / > pb要素のfacs属性に指定された画像が、Image Viewer部分に表示されるようでした。 ...

2024年6月29日 · 1 分 · Nakamura

LEAF Writer:CSSのカスタマイズ

概要 LEAF Writerのカスタマイズ方法に関する調査記録です。 https://gitlab.com/calincs/cwrc/leaf-writer/leaf-writer 今回はCSSによる見た目のカスタマイズ方法に関する備忘録です。これにより、以下のように、縦書き表示にする編集環境の用意などが可能になります。 以下は、カスタマイズ前の表示です。 方法 以下のように、スキーマファイルを指定します。 https://github.com/kouigenjimonogatari/kouigenjimonogatari.github.io/blob/master/xml/lw/01.xml 具体的には、以下です。 < ? x m l - s t y l e s h e e t t y p e = " t e x t / c s s " h r e f = " h t t p s : / / k o u i g e n j i m o n o g a t a r i . g i t h u b . i o / l w / t e i _ g e n j i . c s s " ? > LEAF Writerはこのスキーマファイルを読み込み、エディタ部分のスタイルを変更するようでした。 ...

2024年6月29日 · 1 分 · Nakamura

LEAF Writer:スキーマのカスタマイズ

概要 LEAF Writerのカスタマイズ方法に関する調査記録です。 https://gitlab.com/calincs/cwrc/leaf-writer/leaf-writer 今回はスキーマのカスタマイズ方法に関する備忘録です。以下のように、日本語訳などを表示することを目指します。 以下は、カスタマイズ前の表示です。以下のスキーマに基づき、多くの要素が英語の説明とともに表示されます。 https://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng 方法 以下のように、スキーマファイルを指定します。 https://github.com/kouigenjimonogatari/kouigenjimonogatari.github.io/blob/master/xml/lw/01.xml 具体的には、以下です。 < ? x m l - m o d e l h r e f = " h t t p s : / / k o u i g e n j i m o n o g a t a r i . g i t h u b . i o / l w / t e i _ g e n j i . r n g " t y p e = " a p p l i c a t i o n / x m l " s c h e m a t y p e n s = " h t t p : / / r e l a x n g . o r g / n s / s t r u c t u r e / 1 . 0 " ? > LEAF Writerはこのスキーマファイルを読み込み、validationや使用可能な要素の提示を行うようでした。 ...

2024年6月29日 · 2 分 · Nakamura