概要

IIIF Georeference Viewerにおいて、地理空間データの相互運用性を向上させるため、Linked Places Format (LPF) に準拠したデータ構造をサポートしました。本記事では、LPFの概要と実装の詳細について説明します。

Linked Places Format (LPF) とは

Linked Places Format は、Pelagios Network が策定した地名辞典データの相互運用フォーマットです。GeoJSONを拡張し、Linked Data (JSON-LD) の概念を取り入れることで、異なるデータセット間での場所情報の共有・連携を可能にします。

LPFの特徴

  1. JSON-LD互換 : @id@context を使用したセマンティックWeb対応
  2. GeoJSON拡張 : 標準的なGeoJSON構造を維持しつつ、メタデータを追加
  3. リンク機能 : 外部データセットへの参照を links 配列で表現
  4. 時間情報 : when プロパティによる時間的な情報の記述

公式仕様

従来のフォーマットとの比較

従来のフォーマット(metadata オブジェクト)

{}""}"}"}tp,g,myr"e""e"""""porotctiltuxepemyoadaary"esepod"bglw:rotera:es"htur"dtl":""iry:ia""::Fec"n"h:"ese:"a:t[h"a"CPtt""t5t:o{oe{pt9uois:p3r{rn"/s6edt:/":,"s"e]/6,",[x",/3:1a,m43ma4[9pp,6.ls967e.796.a602op,,3rp11g.378/g852po41,lo"7a.]3cg5el.//71d12J53d1"X2,X3Q3E]A8dWSptgt8",

従来のフォーマットでは、metadata オブジェクト内に全てのメタデータを格納していました。これはシンプルですが、以下の課題がありました:

  • 標準的なフォーマットではないため、他のツールとの相互運用性が低い
  • Linked Dataとしての活用が困難
  • 外部リソースへのリンクの種類(同一、類似など)を表現できない

新しい推奨フォーマット(LPF準拠)

{}"""}"]"}t@p,l,gyir""""i{}{}e""pdorttxn,otce"peiayk""""myo":estgwstitiepo:rolsh"ydydter"tue"":peper"d"hir"::eneny:iFtec:["t"t"netse[":i:i:"aap"C""5ffPtts:o9"i"i{oeu:o3peceisr/{r6rrlrn"e/d",i"o"t:"es]6m:s:",x"",3ae,[a:,4r"M"1m4yhah3p[,Tttt9l69otct.e67pphp7.96is":6o0,c:,/2r,1O//3g3f/w1/78"mw8p54,aw2l1"p.,a7swc].i3e,ak5spi./pd7d.a1egt5noa1ko.2i.o3-gr3jlg]i//kdekJnedtnXisXthQyiE/tAQs81ud2"W3,S4p5t6g"t8"

フォーマット設計の詳細

@id の配置場所

GeoJSON標準 (RFC 7946) とLinked Places Formatでは、識別子の配置場所が異なります:

フォーマットキー場所用途
GeoJSON標準idFeature直下ファイル内での単純なID
Linked Places Format@idFeature直下RDF/Linked DataとしてのURI識別子

LPFの公式サンプルを確認すると、@id はFeature直下に配置されています:

{}"""]t@fyce{}poaent"""}""tu@tp,l:eriyr"ixedpotn"ts"epikF"":"etse:::rl"a"te:t"[h"i"uhtFe:[rttes.etpa"".Cp:t:A.os/ub]l:/r{il/mene/y"gcrg,dtaaoiwzno..ngo("irU,tgKh/)up"bluasceersc/opn_t1e2n3t4.5c"o,m/LinkedPasts/linked-places/master/linkedplaces-context-v1.1.jsonld",

title の配置場所

LPFでは titleproperties 内に配置されます。これはGISソフト(QGISなど)で読み込まれた際に、属性データとして情報が保持されるようにするための設計です。

links はFeature直下に配置され、外部リソースへの参照を表現します。各リンクは typeidentifier を持ちます:

"]li{{{{n""""kttttsyyyy"pppp:eeee""""[::::""""ecpsxlreaoiecsmAtealMMrsaayottT"cco,hhp""i",,ciOd""feii"ndd,teeinn"fttiiiidefferiin"eet:rri""f"::ihet""rthh"ptt:stt:pp"/::h//te/txspaoosmcm:pae/lbg/e.ae.gznoe..rtowgtri/ygkr./ieeppldleauadt/cieteadgs."no}3r79g08/14w17i9"k4}i4,/".}.,."},

リンクタイプの種類

タイプ説明用途例
exactMatch完全に同一のリソースGetty TGN, GeoNames
closeMatch類似するリソース他の地名辞典
primaryTopicOfこの場所についてのWebページWikipedia, Google Maps
subjectOfこの場所に言及するドキュメント歴史文献
seeAlso関連するリソース関連情報

実装の詳細

型定義の更新

i}i}nnttit["lp}g}m}ceydex@ir;e;e;orper:inorttx[otctiltux[mfenfRdRkpeiaykmyoLadaarykpa:tase"esestgweepoed?bglweocictc?c?roRlshyterga:es?hysesfero:o:tuee??:r:datl?:?:atiimmirc?::yicas?::bFreFnmsmFeco:s:sny?t:ssleiregeteesemsstta::rststean:a]nrna:Cmsttr{rtistrtrstgt:didtoetrriiem{ntriri/u;sueneu{onriinnsegrininurtradgdrrdinngg:t;ingngseren:;:edengg];ang;g]eLiyLsdg[;:ndg[;:Sin{;@li::;]ua;]enegiin;amt;atk.;dnknmnbantgk[ueyeyi{.as]mt;ro;n,t;ba[bgaed]js"ttra[e.co[t]ctlpt]a;tsoo;slpi(eensMvltaeepitlvrlceolh(lp"Les,i(runLtp"kiippeneordksrietmPdealdraPyclfTeaooscrpeiFsbcoaOrFcfmok"arw,tmaar"/tde)sxJaSccOotNmM-paLatDtcihcb"oimlpiattyi)ble)

ID解決の優先順位

新旧両方のフォーマットをサポートするため、IDは以下の優先順位で解決されます:

ci}i}offni}}fcIs(fl(eoDt!fefa!amf(elebftppepasaeeuorartetlarseteuuteadudr{ru.b:ereeerllfef..eae@i.iii.bsinindd:le/dedealud)d==pbs(IIre=eLd{dp`olDP)rfp)fiF=eeees){dar{apfetttl>efuiuaaireryitnese.due_..trd$tps(eI{irG[ditoe";tlpo@eeeJimrSdI(tO"niN]de)e)sx?>>.+tpfmire1etoa}tlpt_aeeu$drr{atefti.eaeia.fsdtle.uaairbtdeeuIlr>fneed(.maemetxetutar+ade)da.1atp}tar`a.o;?ip.delra>tbieels?.id"";feature.metadata?.id;

ポップアップ表示の更新

cccccccli}}ooooefnnnnnnntlelcssIststslssl(i.liottDtitatittildn`jsnm:tgnniik<oekpmpdldsdkdlknssaisoer@iei:isieskpHniHntois:ss:sgsltt(fteapdpppppaHama'mndslplrlflctylr(lt(a(araoaeaymLglsLt=LyoypyayUli=ee=/PaPIpTeTtLrntgpFfFdeirauil=kd=)a`a/=e)rttgrnsi";c<npa=tlisek=.s_yaerft>iee.s'lpbUseufes=lm;ellrtparies=.i=enaalaMeteda.tpntgyn)raru.ttparkfatLkgptrp(uirgosedhi"{e.ierGrtospaantve.oeelps(tt>kh=usmpo[es(.Luasr"e)eeJ".tPr.0.e_trS@(taFeu)mfbatOii)g).ra=ldiNdtsll{p"aae)")l>>i;($nts]en({ka>>mmkll"eesiimmtmtnnheeaeakkr{tftmdtd:.e({}aeaeaaaifm};dadttdt[ad=e;ataaaaa]ne"ttutd.t.;yn$aaraatau)t{d.e.ta.rilai.lagtl=fetdia.sa>igadblg(ea)(ea(srclb;}ye"U(l>rm;)$l)e){}tl"ai>d)n$ak{t.tat(.y"ipddee;}t<a/ial>"`)}</a>`;

MapGL用のGeoJSON変換

c}o)ncccccccr};csoooe;otnnnnnnnttp}g}mssIststslsusuyr,epgttDtitatitrtrpoiltluotcoe:tgnlnepdaairmyonompdldsdkd:l:e:bgnlepoejer@iei:isie{resk:ternstois:ss:smg'tdl:sr:dtoapdpppppeaFii::lyisndslplrlfltceesde:'n/Fa(araoaeaayaspdidgPapet=LyoypyaydUt:lisia{otaaaPIpTeTtLaruaspscientfFdeirauitlr{yplpynseu=e)rttgrnaeIlalUt:sra=tlisek.='dayar'/eft>iee.su,,yTyl,[Mseufes=lrmTaLfaaries=.i=leigiep=teda.tpnttsnaGu.ttparkf(al,ktLfrp(uirgosedesu.eerGrtospaa,,rva.oeelps(tteutmpo[es(.Lua.eueeJ".tPr).grtrS@(taFeueeatOii)g).rosdiNdtsllm.ae)")l>iemts]entaa>>mkrpesymmtm?eeae'.f{tftmdt;ce{}aeaeaaoa};dadttd[ot;ataaaa]rututd.t;draraataie.e.ta.n:i.lagtadia.satadblgen(ea(ssylb?)e.(l[=m0>)e[]t]{a;d)a't;0a,.ifde;ature.geometry?.coordinates?.[1]0]

後方互換性

既存のデータを壊さないよう、従来の metadata オブジェクト形式も引き続きサポートしています。新旧フォーマットが混在していても正しく動作します:

{}""]tfye{}{}pa,et"""}""""""}"ut@p,lgtpgm:ryir""ieyree""epdortnopootlu"se"peikmepmaarF"":estse"eedble::rol"t:rtae"a"tue:rtrtl:t["hir"y"iya"uFtec:["Fe"":"retse{:es::heap"C""a""tCts:ot{t:{{tou:oy"u"plr/{rptr{tsle/deye"y:e"es"p"rp/c,x":e,ee/ta:"s".im":o:.op[pu.nl1"r"r""""e0iPcP,,.0moeoo,aiCirrnong2ytot/0T"r"p0o,d,l]psa,i"""ccc:ceOoosfo[o/"r3rn,d0dei0iw"n,n-iaafdt4toee0erns0smt"]"ai:}:tf,"i[[,e11r34"90:..00",,ht33t56p..s00:]]/}}/,..."}],

LPFを採用するメリット

1. 相互運用性の向上

LPFは地名辞典(gazetteer)間でのデータ交換を目的として設計されています。以下のようなプロジェクトとの連携が容易になります:

2. Linked Data対応

@id を使用することで、各場所をURIで一意に識別でき、Linked Dataとして活用できます。これにより:

  • RDFへの変換が容易
  • SPARQLでのクエリが可能
  • セマンティックWebへの統合

3. リンク関係の明示

links 配列により、外部リソースとの関係性を明示的に表現できます:

  • exactMatch : 「この場所はGetty TGNのこのエントリと同一」
  • closeMatch : 「この場所はWikidataのこのエンティティと類似」
  • primaryTopicOf : 「この場所についてはWikipediaのこの記事を参照」

4. GISツールとの互換性

titletagsproperties 内に配置することで、QGISなどのGISツールで読み込んだ際に属性テーブルとして表示されます。

今後の展望

時間情報のサポート

LPFでは when プロパティで時間的な情報を記述できます:

{}""}"}@p,wir"h"]dotet"pini{:et"m"rl:es"testhi"{pate:artsntp""s"::":/:/{{e"["xianm"p:le".1o8r7g7/"p}l,ac"eesn/do"l:d-{b"uiinl"d:in"g1"9,23"}}

将来的には、この時間情報を活用した時系列表示機能の追加を検討しています。

FeatureCollection レベルの @context

完全なLPF対応として、FeatureCollectionレベルでの @context 指定もサポート予定です:

{}"""}"]"}t@p,l,gyir""""i{}{}e""pdorttxn,otce"peiayk""""myo":estgwstitiepo:rolsh"ydydter"tue"":peper"d"hir"::eneny:iFtec:["t"t"netse[":i:i:"aap"C""5ffPtts:o9"i"i{oeu:o3peceisr/{r6rrlrn"e/d",i"o"t:"es]6m:s:",x"",3ae,[a:,4r"M"1m4yhah3p[,Tttt9l69otct.e67pphp7.96is":6o0,c:,/2r,1O//3g3f/w1/78"mw8p54,aw2l1"p.,a7swc].i3e,ak5spi./pd7d.a1egt5noa1ko.2i.o3-gr3jlg]i//kdekJnedtnXisXthQyiE/tAQs81ud2"W3,S4p5t6g"t8"

0

まとめ

Linked Places Formatの採用により、IIIF Georeference Viewerは地理空間データの相互運用性を大幅に向上させました。既存のデータとの後方互換性を維持しつつ、Linked Dataの概念を取り入れることで、より豊かなメタデータ表現と外部リソースとの連携が可能になりました。

歴史地理情報の研究や、デジタルアーカイブプロジェクトにおいて、異なるデータセット間での場所情報の共有・参照が容易になることを期待しています。

参考資料