TEI Publisherの以下のページでは、さまざまな可視化例が紹介されています。
https://teipublisher.com/exist/apps/tei-publisher/index.html?query=&collection=test&sort=title&field=text&start=1
以降、複数の記事にわたって、上記の可視化例を紹介します。
Letter #6 from Robert Graves to William Graves (at Oundle School) November 15, 1957# https://teipublisher.com/exist/apps/tei-publisher/test/graves6.xml
以下のように、地名や人名の一覧、および地図とともにテキストが表示されます。
以下のように説明されています。
A 20th century manuscript letter from Robert Graves where emphasis has been put on visualizing rich encoding of semantic information in the letter, in particular geographic and prosopographical data. The map is displayed with a pb-leaflet component.
機械翻訳
ロバート・グレイブスによる20世紀の写本書簡。書簡中の意味情報、特に地理的・韻律的データの豊富な符号化を視覚化することに重点が置かれている。地図はpb-leafletコンポーネントで表示される。
データ# XMLファイルの特徴です。
abstractタグの内容が上記の検索ページに表示されるようです。
以下のような記述があります。これらがファセット検索に使用されていました。
< t < < < < < < < < / e c c c c c c c c t x a a a a a a a a e t t t t t t t t t x C R R R R R R R R t l e e e e e e e e C a f f f f f f f f l s a s s s s s s s s s s > c c c c c c c c s h h h h h h h h > e e e e e e e e m m m m m m m m e e e e e e e e = = = = = = = = " " " " " " " " # # # # # # # # g f f f f f f p e o e e e e e e n r a a a a a r r m t t t t t i e " u u u u u o " r r r r r d t e e e e e " t a " " " " " a r t r g t t t t t a g e a a a a a r e t r r r r r g t = g g g g g e = " e e e e e t " # t t t t t = # m = = = = = " c a " " " " " # o n # # # # # m r u p p p m l o r s a e l a t d e c g r a p r e s r e s c " " r p i s o e / / n o p " n " > > " n t / " / d " > > e / n > c e " / > <particDesc>内に<listPerson>が記載されています。
< p a r t i c D e s c > < l i s t < < P p / p / e e p e p r r e r e s s < < < < r s < < < r o o p / b s n s o p ! n s n n e p i e o o n e - o o > r e r x t n r - t n x s < < r t e > x s e a a o > m N f s s h v > m N t > n s f l a o u N a R l a o R d : m r r a w l o : m o a 2 i e e n m h u b i e b b h < 0 d > n a e e e e d > e e i t s t = a m > n = r = R r s i u h " m e = " t " o c t t t r G e > " M G b o o l v C r > G 1 " G r e m G r e i e a W r 9 > r a r p r i > v n v i a 4 m a v t l a a I o t e l v 0 a v e e v n , r u s l e " l e s G t e . C r W i s > e s R r e s l a y i a < 1 < ' o a d P a n l m / 9 b v ( r u d E l < s 4 s e e e b 1 o d n i / u 0 e l r s y 8 b i p g a f r < x d t < 9 a u o l m o n / > e " / t 5 b s e i " r a b s > p h - l < t s > e m i t e e 1 y / h n e r r 9 t o a > t s s s 8 b i f P m h o N t 5 e t o e > n a u ) s l t e > m d t e h t b e e w > e r y > n a k , y t s n G B s o a r a e a w n e n r n d a d y p t l o a < L < e s t W i / t i a t n , t t r e o h l , r t n e e a e o > h t > v a C e u e u l r l t a i e i h u s . s o d < t r i o / , u n n o s e o m f t y t o e t h f > h e o t g G h r o e a d p < g h / r e t e r i a , t t l c e f r > i i g t a u i n r c d e s こちらには地名の一覧が記載されています。<geo>タグで、経緯度が記載されています。
< s e t t < i l n i g s D t < < e P p / p / s l l p l p c a a l a l > c c < < < < < a c < < < < a e e p p l / l / n c e p l / l / n c > l l o l o l o e l o l o l o e x a a c o c o t > x a c o c o t > m c c a < c a < < < < c e f l l g f W m c a < c a < < < < c e l e e t g a t s r r c a > o o i r o a l e t g a t s r r c a > : N N i e t i e e e o t D r c t o r r : N i e t i e e e o t G i a a o o i o t g g u i e m a e v . i a o o i o t g g u i r d m m n > o n t i i n o i s t r e G < d m n > o n t i i n o a = e e > 3 n l o o t n à e a s e / = e > 3 n l o o t n v " > > 9 > t e n n r > t d r r n " > 9 > t e n n r > e D D D . y m > > y i h y o m o C C . y m > > y s e e e 7 p e M B > s e a n a t a a 7 p e M B > ' i y i 4 e n a a S b a n e n n 4 e n a a S a a à 8 = t j l p a n o n s , > e e 8 = t j l p h " < < 4 " > o e a o u d t l l 4 " > o e a o > / / g D r a i s r t e E l l g D r a i u p p 2 e e c r n m t m e n u u 2 e e c r n s l l . o y a i < a h t u p g n n . o y a i < e a a 6 p a < c / l e e s l " < 6 p a < c / c c 4 o < c l r n i c i > / 4 o < c i e e 9 l r I o n c l s p 9 l r I o n N N 1 i s e s u c m a i h l 1 i s e s u a a 8 t e g l n o r i l f , a 8 t e g l n D m m < i t i a t a i l f c < i t i a t e e e / c t o n r s d e r s a e / c t o n r i > > g a l n d y t g s e n N g a l n d y a e l e > s > a e s d a e l e > s > < o " m < l n i v m o " m < / > > e / o o d e A e > > e / n n r v f r e r m > n r o t e i t n l e t e t > g l t h t o r > g e i l h s o i i > o a e o . k c o n g f i a n > e S I n n > p V t g i a a s e n n l t x i l i h p t s d d e a h h e y t e m l M r i o l e i S s s i d a e l s c i t r a a t e r n , l e s a d a r a n r a d o n d a f e f d s n t c e e T M i a a r r a t p n a l e , t m l i , h u o s s e n r o e t c k r r F a a n a v i n . o n e r a w g d s , I n e t t a w f a s W h i o n o i s r d a r c l h i o d d t l r s i a v w e text# 本文中での固有表現は、<name>タグが使用され、ref属性を使って、上記のリストで指定されたidを参照しています。また、type属性を使って、人名か地名を区別しています。
< t e x t < > b o d y < > p o b p o e p f n < < e a e d / s n c r a d a e s > t a l r = e < t u > " l d e t / W i a l e n G n t i > a . e e n < m 5 > e D a e 7 w > e b > . h a b : 1 e r r 1 n e > . = s W / 1 " t m s 5 1 < a . 9 < / l a 5 n a u . 7 a b t j - m b e p 1 e r > g 1 > " - r / 1 e > 5 f " = > " N # o G v r e a m v b e e s r W i 1 l 5 l , i a 1 m 9 " 5 7 t < y / p d e a = t " e p > e r s o n " > ODD# ログインが必要かと思いますが、ODDファイルは以下です。
https://teipublisher.com/exist/apps/tei-publisher/odd-editor.html?odd=graves.odd&root=/db/apps/tei-publisher/odd&output-root=/db/apps/tei-publisher/transform&output=transform&source=true
name - model [inline] @type=‘place’# 以下の部分で、イタリックのスタイル使用が定義されています。
確かに、以下のように記載されているYugはイタリックになっています。
f o r y o u r < n a m e r e f = " # Y u g o s l a v i a " t y p e = " p l a c e " > Y u g < / n a m e > v i s a .
name - model [webcomponent] @type=‘place’ and id(substring-after(@ref, ‘#’), root($parameters?root))/location/geo# 一方、上記のような記載がある項目があります。
まず、id(...から始まる部分の内容をGPT-4に教えてもらいました。
この文はXPathと呼ばれるクエリ言語の一部で、XML文書内の特定の要素や属性を選択するために使われます。具体的には、このXPath式は以下のような処理を行います:
id(substring-after(@ref, '#'), root($parameters?root)):この部分は、@ref属性からハッシュ記号(#)の後の部分を取り出し(substring-after関数を使用)、その結果をid関数に渡しています。id関数はXML文書内で指定されたIDを持つ要素を見つけ出します。この場合、root($parameters?root)はこの検索を行う文書のルート要素を指定しています。
/location/geo:見つかった要素の子要素の中でlocationという要素をさらに検索し、その子要素であるgeoを選択します。
総合すると、このXPath式は、特定の参照IDに基づいて特定の要素を見つけ、その要素のlocationおよびgeoという子要素を選択するために使用されます。これは、XML文書内の特定の地理的位置情報を取得するのに役立つかもしれません。
geoタグを持つ地名を参照している要素の場合、といった感じです。この場合は、以下のようにスタイルが定義されています。
c c o u l r o s r o : r : # 1 p 5 o 6 i 5 n c t 0 e ; r ;
以下の地名などに、このスタイルがあたっています。
また先のODDにおいて、以下のようにParametersが指定されています。
結果、htmlタグは以下のような記載になっていました。nameタグがpb-geolocationタグに変換されており、上記のXPath(もしくはXQuery?)に基づき、属性が設定されています。
< p C / b c l l l k s e d a p - l o a a e c m u n b g a n t b y r i r - e s g i e = o t a F g o s i t l " l = t l e l = t u = C l " i o o o " u d " a = l o q l c t d e C n " e n u o a e e = a F s t = e c t i = " n l c t " a i - " 3 o r e 1 t o n 2 9 F q o r 0 i n a . . l u l " 0 o m 6 7 o e l 0 n e 4 4 q " " " > 4 9 8 u > " 1 4 e 8 " " " . } t e i - c c n o u a l r m o s e r o 4 : r : { # 1 p 5 o 6 i 5 n c t 0 e ; r ;
テンプレート# 最後に、テンプレートを確認します。以下の当該ファイルがあります。
/db/apps/tei-publisher/templates/pages/letter.html
< < < h h / b / / t e h o b h m a e d o t l d < < < < < < < < < < < < < a y < < d m > > m m l l l l l t m l s s s / d > p / d y l e e i i i i i i e i c c t s > b p i > > t t n n n n n t t n r r y t - b v a a k k k k k l a k i i l b } p } # } . } a } a } p } . } y p < < - e p p e o b v c s s b t l a p a / p c c n r r r r r n r t t > d - i o i i - o e g b p a a l h a e e e e e d a e y v e n d d l c > e - p p g a a m l l l l l a m l t t i f w f m m h t p d j m e f m m m h e d w p e w h - d d - < < p e s r e = = = = = t e = y y { - e o 1 l a a e v e o i u a l i a a e v i i a a i e t i d o d a a / - > s s = " " " " " a = " p p p w n e x r i e n s s s r { e n x r i e p s d d f d i o s a c r p p a d = e " s s s s s - " s e e b t { x - g g r t i p t g x - - g g r b p t d l t g g p t u a p p p r " t v h h h h h t d t = = - { : : w i h f - t l i i : w w i h f - l h i e h h g l a m w - - < < < p a s = i o o o o o e e y " " v i n t l b i a f n i i n t l h a : n t : t l a - e e d h a / s / s / - w p " e r r r r r m s l m m i v 3 d : : o o o y y : 1 d d - : o i y g - : e y t n r r e p a e s e s h e l u w t t t t t p c e o o e a t w d n : - t t r w g : 1 : m 1 , : e t - a a p p c e c e e r a t p c c c c c l r s d d w r 0 h 8 v : y : c 0 0 h h i v : h 0 a 0 1 m l w d - < < p t < c t < < < c a - s f o u u u u u a i h u u - ( ; : p a f o ; : : g a l b 0 0 p 0 0 p n p i a e e h a a - i p / t i p a / a / t d l h - r t t t t t t p e l l h - x r a { r l n 1 h r a i l % % 0 b o l d y r r e p p h o b p i o b s a s a i e a " 8 t e t e e e e - 6 ( u e e t 0 3 4 t ( u g o ; 8 { ; % - n a = o - a p p e n - b o n - i s i s o r y / " " i i i i i = i t " " i p 0 1 - t l x e p 6 8 : - t h c p ; n e t " u d l d - - a v < - n v d < i d < < i n - o > / c c c c c " o " g b v 6 - o a ; n x 0 0 - o t k x a ; e d t a a e t t d c i p v > c i e p / d e p ! d > l u > c o o o o o c n s s h - w p p ; t t ; p p 1 p ; ; ; v = o t y r o o e l e b i l e b p e > b - e a t o n n n n n o " h r r t b ; x b i : x x 6 b { i " c f a o o o r a w - e a w c - b > - - > y > n " " " " " n r c c : a ; - v ; ; p - g p u o - u s l l > s p w s l v < - l p o t f c e = = s v e c x v a a m r t t l b b s i a > s i a i p v e b u e t t t t t i o f " " c e i ; e ; i t g e c e > o a a = d r = d s e b i a - t n y y y y y g n = p p a - e n e i e n e m t r r " = a " = s w - e f m > t p p p p p : t " b b l f w t w o s t - p = b " m c " = p w l a = e e e e e a e r - - c o - e - n : 1 n l " d d r t o v " s a > e p " = = = = = p n e c l ( n h r h p " a a h a a e i n n i p r r t w " " " " " p t s o e 1 t e ; e { b r t e t t a t a t e l c a - a i i i i i i - = o m a 0 ) i i - d r e a a a d l m e w a = m m p d m m m m m t " u p f 0 ; g g p a o = d - - c e e n 1 c " a i t a a a a a i G r o l v h h a t w " e t t r - = t " e d n p - h g g g g g t r c n e h t t g a = l r e e u v " - s o a k = e e e e e l a e e t ) ) e - " i " m m m i h b s " c m s e d / / / / / e v s n - - ; ; " t f b p p b e e o r > u e u y e x p p p p " e / t m e o : r l l s w a d c m = b = v - n n n n / s c s a 2 u m r i e a a " 1 d y = e " s " i i g g g g > ' s - p 2 n p c n v t t > " e " " n m c Y c c " " " " s b . 0 r l e c e e e r > d t o r O e o L / u j p e a - l a = = s " o 1 d i U - n h h h h e t n s x s t n u l " " r c " e b R w " r r r r t h d " ) o e a d s l l c v u " e _ i e e e e t e l ; l = r e = i i = a m o = G d h f f f f e m e d v " r " " b b " l e d v " O t r = = = = r e . a e p o r : : d u n d a l O h e " " " " " . j t d a w d e i i o e t = l e G , f r r r r / c s a = g " a v n n c = 1 " u t L = e e e e > s " - " e > t e c c u " " g e t E m " s s s s s t u s a a l l m s r = e _ i r o o o o " d e n : - l u u e h c a " r A n e u u u u / a m r p t s d d n o o v f " P i s r r r r > t p e b e " e e t r l e a I m o c c c c a l s - m " " 1 t u s c a _ u u e e e e - a o d p f " " m " e c K m r s s s s t t l o l i d d / n t c E - c / / / / e e v c a x a a x > - s s e Y s e i i i i m = e u t e t t p s u " s " c s m m m m p " d m e d a a a e b / s a / a a a a l p " e - = - - t p s > - z l i g g g g a a > n p " t t h a c t o e m e e e e t g t a f e e = r r o o = a s s s s e e " t i m m " a i k m 1 g / / / / = s / h x p p / t b e = , e f f f f " : > = e l l / o e n " s a a a a p l " d a a t r = = 1 i / v v v v a o t " t t e = " " 4 n f i i i i g a e e e i " t Y " i a c c c c e d m e - - H . r O t v o o o o s - p f p p e t a U s i i n n n n : c l f a a a e n R u a c - - - - l o a e t t d i s _ b l o 1 2 3 6 o m t c h h e - c M s - n 6 4 2 4 a p e t = = r c r A c s . . . . . d o s s " " / b i P r c i p p p p - n / = t t f " p B i a c n n n n c e d " e e i t O b l o g g g g o n r w m m l a i X e e " " " " " m t a a p p e p o _ = = / p s w t l l D p n A " 1 > s s s s o " e e a a e e " C l , i i i i n / r r t t s n C e z z z z e > . f e e c d e E t u e e e e n h a s s / - m S t s s s s s t t l / / t f i S e e = = = = s m l m t i o t _ r r " " " " " l " e o t o = T " - 1 2 3 6 / " > n o l t " O > s 6 4 2 4 > / u l e n l K < c x x x x > . b S o e E / a 1 2 3 6 h a t t t N p l 6 4 2 4 t r m e t " b a " " " " m . t s e / - b / / / / l h / = r > m l > > > > " t t " " a e / m i a p = > l t p w - y " l p a - e / e e i > s > " n t " d - / v - f > i f o e o r w o = = t " " n p s o b i t - n e l g s e l " a e f " s l > u e b t s - c m r a i p b " e > = " t r a n s c r i p t i o n " e m i t = " t r a n s c r i p t i o n " / > pb-viewやpb-leaflet-mapが使用されています。pb-viewの2つ目はtranscriptionをsubscribeして、letterをemitしています。またoddにgravesが指定されています。また、pb-leaflet-mapはletterをsubscribeしていることがわかります。
< s < < < < / e p / p ! s c b p b - e t < < - b < - - c i p a v < - / a l p / t o b s i p a s e b a i n - i e b i s i a - s o v d w - e i d f m i n c i e p w d e l a d > l e s a > e > e p e a w c r r > t > s l c a - a s i a = m m p = d s " a i " = s d n p - c " = o a k o v " c m s e n i p u e u y t e l m = b = e w a e " s " n 1 c n m c Y t " e t o r O - s 1 d i U b s " " e b R o r > " e _ d c o = G y = d v " O " " d a l O > d = l e G o " u t L c g e t E u r = e _ m a " r A e v f " P n e a I t s c a _ 1 " e c K " t c E s s e Y c u " s " o b / s l s > - z u c t o m r o o n i k m - b e = s e n " e = = 1 p " " 4 a t Y " r r O a a U s t n R u o s _ b r c M s = r A c " i P r . p B i t t O b e i X e i o _ = - n A " c " C l b C e " e E t m S t a i S e p t _ r p = T " e " O > n l K < d e E / - t N p f t " b o e / - o r > m t " a n p o w - t a - e i > s t = - " f a o p r p = e " n p d b - - f l o e o a t f n l o e t t e - s m " a p s " u > b s c r i b e = " t r a n s c r i p t i o n " e m i t = " t r a n s c r i p t i o n " / > 上記の関係を使って、TEI/XML中の経緯度を含む地名の情報をやりとりしていると思われます。
まとめ# 次回は、pb-viewやpb-leaflet-mapの内容について確認してみます。中途半端な記事で恐縮ですが、参考になる部分がありましたら幸いです。