「教科書の中の源氏物語LOD」を使ってみる
概要
「教科書の中の源氏物語LOD」を使ってみましたので、備忘録です。
以下のように説明されています。
教科書の中の源氏物語LODは、高等学校古典分野の戦後検定教科書における『源氏物語』掲載データをLOD化したものである。
「教科書の中の源氏物語LOD」を作成および公開してくださった関係者の皆様に感謝いたします。
SPARQLエンドポイントの作成
今回はDyDraを使用します。また、以下の記事を参考に、Pythonで登録しました。
DYDRA_ENDPOINT=https://dydra.com/ut-digital-archives/genji_u/sparql
DYDRA_API_KEY=xxxxx
from dydra_py.api import DydraClient
endpoint, api_key = DydraClient.load_env("../.env")
client = DydraClient(endpoint, api_key)
# genjimaki_listの登録
client.import_by_file("./data/genjimaki_list_ttl.txt", "turtle")
# genjitext_listの登録
client.import_by_file("./data/genjitext_list_ttl.txt", "turtle")
注意点として、RDF内のURIについて、http://linkdata.org/resource/rdf1s10294i#
とhttps://linkdata.org/resource/rdf1s10294i#
が一部混在しておりました。今回は、http://linkdata.org/resource/rdf1s10294i#
に統一する置換処理を施したのち、SPARQLエンドポイントに登録しました。
Snorqlによる確認
構築したSPARQLエンドポイントに対して問い合わせを行うSnorqlを作成しました。
例えば以下では、桐壺巻が使用されている教科書がschema:workExample
で関連付けられています。
また以下では、教科書「高等古文 3」に掲載されている巻がdct:hasPart
で関連づけられています。
Yasguiを用いた可視化
さらに、Yasguiを用いた可視化も試みました。Yasguiについては、以下も参考にしてください。
教科書毎の巻数のカウント
PREFIX dct: <http://purl.org/dc/terms/>
SELECT ?textTitle ?publisher (count(?volume) as ?count) ?text
WHERE {
?text dct:hasPart ?volume;
dct:title ?textTitle;
dct:publisher ?publisher
}
GROUP BY ?text ?textTitle ?publisher
ORDER BY desc(?count)
巻毎の教科書数のカウント
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX schema: <http://schema.org/>
SELECT ?chapterTitle (count(?text) as ?count)
WHERE {
?chapter schema:workExample ?text;
dct:title ?chapterTitle
}
GROUP BY ?chapterTitle
ORDER BY desc(?count)
「桐壺」が最も多く含まれていることが分かります。
検定年毎の教科書数
PREFIX jp-textbook: <https://w3id.org/jp-textbook/>
SELECT (str(?year) as ?year) (count(?year) as ?count)
WHERE {
?text jp-textbook:authorizedYear ?year .
}
GROUP BY ?year
ORDER BY asc(?year)
X軸には、抜けている年がある点にご注意ください。
出版社と教科書の関係
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX schema: <http://schema.org/>
construct {
?book dct:publisher ?publisherURI .
?book dct:title ?title .
}
WHERE {
?work schema:workExample ?book;
<https://dcmi.github.io/bibo/#:number> 1 .
?book dct:publisher ?publisher;
dct:title ?title .
BIND(IRI(CONCAT("http://example.org/", STR(?publisher))) AS ?publisherURI)
}
桐壺巻が掲載されている教科書に限定しています。
より有効な可視化方法があるかと思いますが、出版社毎の教科書の一覧を確認できます。
まとめ
RDFデータの内容について、誤った理解をしている点もあるかもしれませんが、「教科書の中の源氏物語LOD」および各種LOD関連ツールの利用にあたり、参考になりましたら幸いです。
Discussion