読者です 読者をやめる 読者になる 読者になる

iwao's diary

小林巌生のブログ

ヨコハマ・アート・LODとGettyLODをマッチングさせてみた

(2016/04/13追記あり)
SPARQL Advent Calendar 2015用に書きました。
この界隈であれば、ヨコハマ・アート・LODプロジェクトについて知っている方も多いとは思う。ヨコハマ・アート・LODとは、公益財団法人横浜市芸術文化振興財団とぼくが中心となって推進している横浜の芸術文化情報のLOD化をするプロジェクトだ。これまで、イベント情報や施設情報、横浜美術館大佛次郎記念館の目録情報などを含む7万点以上のデータをLOD化してきた。(くわしくは、ヨコハマ・アート・LODのウェブページを参照)そのプロジェクトで最近取り組んでいるのが、作家情報のGettyLODとのリンキングである。
 
Getty財団はご存知だろうか。
世界でも有数の美術品コレクションを誇る財団でアメリカにロサンゼルスに本拠地がある。今年夏にロサンゼルスに行った際には叶わなかったが、広大な敷地に広がる優美な美術館には一度訪れて見たいものである。(ロサンゼルスからアナハイムへのUberで、運転手がデートで行ったとかで、ハイウェイの渋滞中に自慢げにスマホの写真をみせつけてきたが、まぁ、カリフォルニアの青い空のもと、白銀の建物が眩しく写っており、羨ましいかぎりであった、、)
 
 
このGetty財団だが、コレクションの量と質もさることながら、予てよりデジタルアーカイブの整備と公開を積極的に進めており、昨年あたりから、構造化データの一部をLODとして公開しはじめている。そういうわけで、美術関係者以外にも、オープンデータ界隈(Open GLAM界隈)でも話題となっているのだ。そして、もっとも最近ではUnion List of Artist Names (ULAN)と呼ばれる作家情報に関するデータセットを公開。すでに公開済みであった、シソーラスや地名などに加えて、作家情報という具体的なインスタンスが公開されたことはインパクトが大きい。
 
Gettyのリリースを引用
Getty Union List of Artist Names (ULAN) Released as Linked Open Data
 
We’re delighted to announce that the Getty Research Institute has released the Union List of Artist Names (ULAN)® as Linked Open Data (LOD). The Getty is committed to making our knowledge resources freely available to all, and this is another important milestone in that ongoing effort.
 
ULAN®, along with the other Getty vocabularies, is created and maintained by the Research Institute and used by art researchers all over the world. It is the third set to be released as Linked Open Data and follows the releases of the Art & Architecture Thesaurus (AAT)® and the Getty Thesaurus of Geographic Names (TGN)®. All three vocabularies are now available at vocab.getty.edu, free to download, share, and modify under an Open Data Commons Attribution License (ODC BY 1.0).
 
We hope that making our vocabularies available to the research community as Linked Open Data will have a transformative effect on the discipline of art history in general, and digital art history in particular.

http://blogs.getty.edu/iris/getty-union-list-of-artist-names-ulan-linked-open-data/

 

ということで、ヨコハマ・アート・LODでも横浜美術館の目録データセットの中で作家データを扱っているので、これはぜひ、リンクしてみよう。そもそも、ご覧いただければわかるように、横浜美術館の作家データはとても情報量が少なく、名前、生年、没年くらいしかない。これだと、ちょっと寂し過ぎる。一方、GettyのULANは多言語による作家名の表記、バイオグラフィなども大変充実している。これが、LODとして利用できるというだから、使わない手はない。
 
さて、肝心のデータだが、ULANのデータモデルについてはドキュメントが用意されているのでそちらを参照していただきたい。
 
スタート地点としては、このコンセプトモデルとなる。
ULANに先行して整備されてきた、AATやTGNに対しても積極的リンクしてあり、まさに、Linked Dataとなっている。

f:id:waonah:20151216105953p:plain

個別のインスタンスは、もちろんURIから取得できる。
例示があったので、それをそのまま引用してみる。
ULAN: Albrecht Dürer
Human-readable full record: http://vocab.getty.edu/page/ulan/500115493
Human-readable hierarchy view: http://vocab.getty.edu/hier/ulan/500115493

 さらに、SPARQLエンドポイントも用意されており、基本的にはこちらから必要なデータをクエリして取得することになる、

GettyのSPARQLエンドポイントは取得するファイルタイプごとに接尾辞で区別されている。
CSVの場合は、
JSONの場合は、

 となる。

ウェブブラウザから操作できるGUIも用意されているが、なんだか同じクエリを投げても結果が返ってきたり、こなかったり、安定しないので注意が必要。ターミナルやプログラムの中からクエリを投げることをお勧めする。
 
今回は、ヨコハマ・アート・LODの作家リソースとULANの作家リソースを突合せする。
必要となるプロパティ、作家名、出生地リソース、出生地ラベル、出生年、説明文を抜き出す。
ヨコハマ・アート・LODのデータセットから作家名を一件ずつ抜き出して、クエリのフィルタ部分に代入してやり、返ってきた結果を評価してマッチングしていく方針。
実際のクエリはこんな感じ。一部、SPARQL1.1の仕様であるプロパティパスを利用して記述を簡略化してある。
select distinct ?artist ?artistLabel ?artistAltlabel ?place ?placeLabel ?birthYear ?description
where {
  ?artist rdf:type gvp:PersonConcept ;
          foaf:focus/gvp:biographyPreferred ?bio ;
          xl:prefLabel/gvp:term ?artistLabel ;
          xl:altLabel/gvp:term ?artistAltlabel .
 
  ?bio schema:birthPlace ?birthPlace ;
       gvp:estStart ?birthYear ;
       schema:description ?description .
 
  ?place foaf:focus ?birthPlace ;
         xl:prefLabel/gvp:term ?placeLabel .
  FILTER (regex(xsd:string(?artistAltlabel), ‘isamu noguchi’, i))  
}
LIMIT 100

結果はこんな感じ。

(場所のラベルに対して、言語タグでフィルタすれば、件数を減らすことができるはず。) 
 
artistartistLabelartistAltlabelplaceplaceLabelbirthYeardescription
ulan:500008602 Noguchi, Isamu Isamu Noguchi tgn:7023900 Los Angeles@en 1904 American sculptor and designer, 1904-1988
ulan:500008602 Noguchi, Isamu Isamu Noguchi tgn:7023900 Los Ángeles@es 1904 American sculptor and designer, 1904-1988
 
今回はULANが作家名の別表記(xl:altLabel)を十分にもっているので、それを頼って完全一致でやっている。結果、投入した作家データ1243件中269件がマッチした。ここからは、学芸員の方の力も借りて目検してもらうつもりだ。課題としては、投入したデータの作家名表記にカッコ書きが含まれていたり、複数の作家による協同などもあった、また、字形の違い(漢字)も今回は考慮していない。おそらく、双方に関連するリソースが十分にあれば、別の方法でマッチングをはかることもできるとは思うが、今回の条件ではこのくらいが限度か?
こうした作業を経て感じたのは、データをLODとして公開利用することを前提とした場合にはそれなりに、外部データとの連係を意識したデータ整備が必要であるということだ。まぁ、まいどのことながら改めて考えさせられた結果となった。
ちなみに、あきらかに同じ人物であろうところ、生年が1年違うデータなどが複数存在していた。どちらかのミスか、解釈の違いかだとは思うが、そうしたところも双方のデータを活かしたまま、リンクで解決できてしまうのもLODの大きな魅力だと思う。
 
2016/04/13追記
SPARQL界の大御所からtwitter経由でクエリ内でregexは使うなとご指摘いただいた。

lcase使ったほうがefficientだということで、次のとおりににやってみると、たしかに、多少レスポンスの速度は上がった。
 

select distinct ?artist ?artistLabel ?artistAltlabel ?place ?placeLabel ?birthYear ?description
where {
?artist rdf:type gvp:PersonConcept ;
foaf:focus/gvp:biographyPreferred ?bio ;
xl:prefLabel/gvp:term ?artistLabel ;
xl:altLabel/gvp:term ?artistAltlabel .

?bio schema:birthPlace ?birthPlace ;
gvp:estStart ?birthYear ;
schema:description ?description .

?place foaf:focus ?birthPlace ;
xl:prefLabel/gvp:term ?placeLabel .
FILTER (lcase(str(?artistAltlabel)) = "isamu noguchi")
}
LIMIT 100