ホーム 記事一覧 ブック DH週間トピックス 検索 このサイトについて
English

最新の記事

App Storeのスクリーンショット生成をPython+UIテストで完全自動化する

App Storeのスクリーンショット生成をPython+UIテストで完全自動化する

TL;DR XCUITestでiPhone・iPadシミュレータのスクリーンショットを日英両言語で自動撮影 PythonのPillowでグラデーション背景+デバイスフレーム+テキストオーバーレイのマーケティング画像を生成 xcrun simctl io recordVideoでデモ動画も録画 App Store Connect APIで自動アップロード すべてをシェルスクリプト1本で実行可能 はじめに iOSアプリのApp Storeスクリーンショットは、iPhone 6.7インチ、iPad 12.9インチの各サイズを日英2言語分用意すると、それだけで12枚以上の画像を作る必要があります。 アプリを更新するたびに手作業でスクリーンショットを撮り直し、FigmaやPhotoshopでマーケティング画像を作り、App Store Connectに1枚ずつアップロードするのは手間がかかります。 本記事では、撮影 → 画像生成 → アップロードの全工程をコマンド一発で実行できるパイプラインの構築方法を解説します。 全体構成 capture_screenshots.sh ├── Step 1: シミュレータの準備(起動 + テスト画像追加) ├── Step 2: XCUITestでスクリーンショット撮影(JA/EN × iPhone/iPad) ├── Step 3: sipsでApple規定サイズにリサイズ ├── Step 4: Pillow でマーケティング画像を生成 ├── Step 5: xcrun simctl io でデモ動画を録画 └── Step 6: App Store Connect APIでアップロード Step 1: XCUITestでスクリーンショットを撮影する テストコードの設計 UIテスト用のテストクラスを作成します。ポイントは以下の3つです。 テスト画像の自動読み込み: TEST_IMAGE_PATH環境変数で画像パスを渡し、PHPickerを経由せずに画像を直接ロードします 言語切り替え: xcodebuild -testLanguageで設定された言語を-AppleLanguagesとしてアプリに渡します レビューダイアログの抑制: 起動引数で不要なダイアログを抑制します final class ScreenshotTests: XCTestCase { private var app: XCUIApplication! private let screenshotDir = ProcessInfo.processInfo.environment["SCREENSHOT_DIR"] ?? "/tmp/myapp_screenshots" override func setUpWithError() throws { continueAfterFailure = false app = XCUIApplication() // オンボーディングをスキップ、レビューダイアログを抑制 app.launchArguments += ["-hasCompletedOnboarding", "YES"] // テスト言語をアプリの言語設定に反映 let preferredLang = Locale.preferredLanguages.first ?? "ja" let langCode = preferredLang.components(separatedBy: "-").first ?? "ja" app.launchArguments += ["-AppleLanguages", "(\(langCode))", "-AppleLocale", langCode] // テスト用画像パスを環境変数で渡す app.launchEnvironment["TEST_IMAGE_PATH"] = "/path/to/test_sample.jpg" try FileManager.default.createDirectory( atPath: screenshotDir, withIntermediateDirectories: true ) } func testCaptureScreenshots() throws { app.launch() // 処理完了を待機 let backButton = app.buttons["back_button"] XCTAssertTrue(backButton.waitForExistence(timeout: 300)) sleep(2) // メイン画面のスクリーンショット saveScreenshot(name: "04_result") // 他の画面に遷移してスクリーンショットを撮る // ... backButton.tap() sleep(1) saveScreenshot(name: "01_camera") } private func saveScreenshot(name: String) { let screenshot = app.windows.firstMatch.screenshot() let attachment = XCTAttachment(screenshot: screenshot) attachment.name = name attachment.lifetime = .keepAlways add(attachment) let path = "\(screenshotDir)/\(name).png" try? screenshot.pngRepresentation.write(to: URL(fileURLWithPath: path)) } } saveScreenshotメソッドは、XCTestのXCTAttachmentとしてテスト結果に添付すると同時に、指定ディレクトリにPNGファイルとして保存します。ファイル名のプレフィックス(01_, 04_等)は、後のマーケティング画像生成で優先順位を制御するために使います。 ...

LoRAによる書名からのNDC(日本十進分類法)自動分類の試み

LoRAによる書名からのNDC(日本十進分類法)自動分類の試み

ノートブック: Google Colab で開く / GitHub TL;DR 国立国会図書館サーチAPI(SRU)を用いて617件の書誌データを収集 llm-jp-3-1.8b に LoRA(全パラメータの0.67%)を適用し、書名からNDC第1次区分への分類を学習 学習前 22.0% → 学習後 78.0%(+56ポイント) LoRAはドメイン知識の注入ではなく、タスク遂行のための振る舞いを獲得させる手法 NDC(日本十進分類法)とは 日本の図書館で広く使われている書籍の分類体系です。すべての本に0〜9の第1次区分(類目)が割り当てられます。 NDC ジャンル 0 総記(百科事典・情報学など) 1 哲学・宗教 2 歴史・地理 3 社会科学(法律・経済・教育) 4 自然科学(数学・物理・医学) 5 技術・工学 6 産業(農業・商業・運輸) 7 芸術・スポーツ 8 言語 9 文学 図書館において資料の整理(目録作成)時にNDCコードを付与する作業は、主題分析の専門的知識を要する業務です。書名のみから大まかな分類を自動推定できるモデルがあれば、分類作業の初期スクリーニングとして有用です。 LoRAとは何か LoRA(Low-Rank Adaptation)は、大規模言語モデルを効率的にファインチューニングするための手法です。 通常のファインチューニングではモデルの全パラメータ(18億個など)を更新しますが、LoRAでは元のモデルを凍結し、Attention層に小さな「アダプター」行列を挿入してそこだけを学習させます。 モデル本体 (18億パラメータ) → 凍結(更新対象外) ↓ LoRAアダプター (数百万パラメータ) → 学習対象 今回の設定では全パラメータの約0.67%(12,582,912 / 1,880,197,120)だけを学習対象にしています。これにより、GPUメモリの消費を抑えつつ、タスク特化の性能を得ることができます。 Step 1. 国立国会図書館サーチAPIからデータ取得 国立国会図書館サーチのSRU APIは誰でも無料で利用可能です。各NDCカテゴリから最大80件ずつ取得し、タイトル文字数(3〜80文字)によるフィルタリング後に合計617件の書誌データを収集しました。カテゴリごとの取得件数は以下の通りで、均等ではありません。 NDC カテゴリ 取得件数 0 総記 65件 1 哲学 67件 2 歴史 73件 3 社会科学 59件 4 自然科学 52件 5 技術・工学 63件 6 産業 65件 7 芸術・スポーツ 57件 8 言語 67件 9 文学 49件 なお、APIの特性上、取得される書誌には書名が極めて短いものや内容が判別しにくいものも含まれるため、学習データの品質には一定のノイズが存在します。 ...

researchmapの科研費と業績の紐付けをPlaywrightで自動化した

researchmapの科研費と業績の紐付けをPlaywrightで自動化した

はじめに researchmap は、日本の研究者が業績を管理・公開するためのプラットフォームです。論文や講演などの業績を登録するだけでなく、科研費(共同研究・競争的資金等の研究課題)との紐付けを行うことで、研究課題ごとの成果一覧を集約できます。 この紐付けについて、APIやCSVインポートでの一括設定ができないか調べたところ、調査した限りでは現時点ではWeb UIからの手動操作に限られるようでした。そこで、Playwrightによる自動化を試みました。 紐付けの方法を調べる researchmapでは、業績データの一括登録はJSONLやCSVファイルのインポートで可能です。一方、科研費と業績の紐付けについては、調査した限り、一括インポートでは設定できないようでした。 API設計書での確認 researchmap v2 API設計書を確認すると、以下のフィールドはすべて「更新不可」と記載されています。 research_projects(科研費)側: rm:published_paper_id(紐づいた論文の業績ID)→ 更新不可 rm:presentation_id(紐づいた講演の業績ID)→ 更新不可 rm:work_id(紐づいたWorksの業績ID)→ 更新不可 業績(論文・講演等)側: rm:research_project_id(紐づいた科研費ID)→ 更新不可 実際に検証 念のため、JSOLNインポートで identifiers.research_project_id を指定して検証しました。 {"insert":{"type":"presentations","id":"52101757"},"merge":{"identifiers":{"research_project_id":["51361068"]}}} 結果:インポート自体は「完了」と表示されましたが、紐付けは反映されませんでした。このフィールドは無視されるようです。 Web UIでは可能 一方、researchmapのWeb UI(編集画面)では、業績ごとに「共同研究・競争的資金等の研究課題」のプルダウンから科研費を選択して紐付けることができます。 この操作は1件ずつ手動で行う必要があり、件数が多いと手間がかかります。 Playwrightで自動化する Web UIでの手動操作を、Playwrightを使って自動化するPythonスクリプトを作成しました。 仕組み .env ファイルからresearchmapのログイン情報を読み込み Playwrightでブラウザを起動し、自動ログイン 各業績の編集ページ(/{slug}/{type}/{id}/edit)に移動 selectize.jsで実装されたプルダウンから、対象の科研費を自動選択 「決定」ボタンをクリックして保存 既に紐付け済みの業績は自動スキップ 編集画面のHTML構造 researchmapの編集画面では、科研費のプルダウンはselectize.jsで実装されています。 <select name="data[PublishedPapersIndex][_source][identifiers][research_project_id][]" class="form-control selectized" multiple="multiple" style="display: none;"> <option value="50040755" selected="selected">TEIを中心とした高度な歴史テキスト構築</option> </select> 実際の <select> は非表示で、selectize.jsが生成するカスタムUIで操作します。Playwrightでは以下のようにselectize入力をクリックし、ドロップダウンからオプションを選択します。 # selectize の入力エリアをクリックしてドロップダウンを開く selectize_input = page.locator(f'#{selectize_id}-selectized') await selectize_input.click() # ドロップダウンから該当の科研費を選択 option = page.locator(f'.selectize-dropdown .option[data-value="{project_id}"]') await option.click() # 「決定」ボタンで保存 submit = page.locator('button[name="save"][type="submit"]') await submit.click() 紐付け設定ファイル 紐付け対象はJSONファイルで管理します。 ...

Cantaloupe IIIFサーバーのキャッシュ最適化で画像配信を最大7.6倍高速化した

Cantaloupe IIIFサーバーのキャッシュ最適化で画像配信を最大7.6倍高速化した

はじめに IIIFに対応した画像サーバーであるCantaloupeを、S3をソースとしたDocker環境で運用しています。IIIFビューア(Mirador, OpenSeadragonなど)では、ズームやパンの操作のたびに数十〜数百のタイルリクエストが同時に発生します。 今回、キャッシュ設定の見直しとパラメータチューニングにより、タイル配信速度を最大7.6倍高速化できたので、その手法と効果を共有します。 環境 サーバー: AWS EC2(2 vCPU, 7.6GB RAM) Cantaloupe: islandora/cantaloupe:2.0.10(Cantaloupe 5.0.7ベース) 画像ソース: Amazon S3(S3Source) テスト画像: 25167×12483px のTIFF画像(512×512タイル) リバースプロキシ: Traefik v3.2 構成: Docker Compose 問題:デフォルト設定ではキャッシュが無効 islandora/cantaloupe イメージのデフォルト設定を調査したところ、以下の状態でした。 キャッシュ種別 デフォルト 説明 Derivative Cache(加工済み画像) 無効 同じリクエストでも毎回画像変換が発生 Source Cache(元画像のローカルコピー) 有効(FilesystemCache) S3から取得した元画像をローカルに保持 Info Cache(画像メタデータ) 有効(メモリ内) 画像の寸法・タイル情報を保持 Client Cache(HTTPヘッダ) 有効(max-age 30日) ブラウザ側のキャッシュ制御 最大の問題は Derivative Cache が無効であることです。IIIFビューアが同じタイルを再度リクエストした場合でも、毎回 S3 → ダウンロード → 画像変換 → レスポンス という処理が走ります。 ベンチマーク方法 単純なタイル一括テスト まず基本的な性能測定として、以下の条件で一括タイルベンチマークを行いました。 タイル数: 91タイル(zoom level 4、scaleFactor=4の全タイル) 同時接続数: 10(ブラウザの一般的な同時接続数) ツール: curl + xargs -Pによる並列リクエスト # タイルURLを生成し、10並列で同時リクエスト xargs -a tile_urls.txt -P 10 -I {} \ curl -s -o /dev/null -w "%{time_total}\n" "{}" Miradorシミュレーション 単純なタイル一括テストに加え、IIIFビューア(Mirador)の実際の操作フローを再現したベンチマークも行いました。Miradorでは、ユーザーが画像を開くと以下のリクエストが短時間に発生します。 ...

ContentfulでPublishボタンが押せない原因と解決方法 — ロケール設定の落とし穴

ContentfulでPublishボタンが押せない原因と解決方法 — ロケール設定の落とし穴

はじめに Contentfulで多言語サイトを構築中、運用担当者から「新規ページを作成してもPublishボタンがアクティブにならない」という報告を受けました。既存ページの更新は問題なくできるのに、新規作成だけができないという状況です。 本記事では、原因の特定プロセスと解決方法を紹介します。 環境 Contentful(ヘッドレスCMS) ロケール: 日本語(ja、デフォルト)+ 英語(en) Next.js + Contentful Delivery API でフロントエンドを構築 症状 新規にPageエントリーを作成し、必要な情報をすべて入力しても Publishボタンがグレーアウト してクリックできない 既存ページの更新(タイトルや本文の変更)は問題なくPublishできる Draft保存は正常に動作する 原因の切り分け 1. コンテンツタイプのバリデーションを確認 まず、pageコンテンツタイプのフィールド定義を確認しました。 title: Symbol, required: true, localized: true slug: Symbol, required: true, localized: false body: RichText, required: false, localized: true bodyMarkdown: Text, required: false, localized: true titleとslugが必須ですが、どちらも入力済み。slugのバリデーション(^[a-z0-9]+(?:-[a-z0-9]+)*$)にも違反していませんでした。 2. ユーザー権限を確認 Management APIでスペースメンバーシップを確認しました。 curl -s -H "Authorization: Bearer $TOKEN" \ "https://api.contentful.com/spaces/$SPACE_ID/space_memberships" 報告者はAdmin権限を持っており、権限の問題ではありませんでした。 3. APIから直接Publishを試行 — 原因特定 UIでは原因がわからなかったため、Management APIから直接Publishを試みました。 これが決め手になりました。 curl -s -X PUT \ -H "Authorization: Bearer $TOKEN" \ -H "X-Contentful-Version: 13" \ "https://api.contentful.com/spaces/$SPACE_ID/environments/master/entries/$ENTRY_ID/published" レスポンス: ...

Claude Codeで6件のGitHub Issueを並行対応:worktreeとagentの活用

Claude Codeで6件のGitHub Issueを並行対応:worktreeとagentの活用

はじめに TEI/XMLで構造化された歴史史料をWeb上で閲覧できるビューアを、Nuxt 2 + Vue 2 + Vuetifyで開発しています。このプロジェクトに報告された6件のGitHub Issueに対して、Claude Codeのworktree機能とagentを活用して並行対応した記録を紹介します。 対応したIssue一覧 グループ Issue数 内容 優先度 A 3件 テキストビューワの入れ子要素の表示不具合 高 B 1件 凡例ページのインデント未反映 中 C 1件 分析ページのリンク切れ 高 D 1件 キーワード検索のクラッシュ 高 アプローチ:worktree × 並行agent Claude Codeには、git worktreeを使って独立した作業環境で複数のagentを並行実行する機能があります。今回は上記4グループに対して、4つのagentを同時に起動しました。 各agentがworktreeで独立して作業するため、互いに干渉せず並行して修正を進められます。 Agent 1: fix/nested-tags → グループA(3件、同一の根本原因) Agent 2: fix/legend-indent → グループB Agent 3: fix/analytics-links → グループC Agent 4: fix/keyword-search → グループD 各Issueの修正内容 グループD:検索プラグインのクラッシュ 原因: 検索プラグイン内で、環境変数から読み込む設定値がundefinedのため、検索実行時にTypeErrorでクラッシュしていました。 修正: 1行のnullガード追加で解決しました。最もシンプルな修正でしたが、agentが原因を正確に特定してくれました。 グループA:入れ子要素の表示不具合 3件のIssueは一見別々の問題に見えましたが、すべて共通の根本原因を持っていました。 原因: TEI XMLの前処理スクリプトが、入れ子構造の要素を正しく変換していませんでした。具体的には、テキスト範囲を示すアンカーペアを要素に変換する処理で、入れ子になった内側の要素がフィルタリングで除外されていたため、テキストやクリック可能な注釈が失われていました。 修正: 前処理スクリプトに3つの変更を加えました。 ...

schema.org 構造化データで Google Search Console のインデックス問題を改善する

schema.org 構造化データで Google Search Console のインデックス問題を改善する

はじめに Digital Literary Map of Japan(日本のデジタル文学地図)の開発において、Google Search Console で「クロール済み - インデックス未登録」のページが391件報告されていました。Google がページをクロールしているにもかかわらず、インデックスに登録しないのはなぜでしょうか。 その対策の一つとして、schema.org 構造化データの導入を行いました。本記事では、構造化データとは何か、どのように実装したか、そしてどのような効果が期待できるかを解説します。 構造化データとは Web ページには通常、HTML で書かれたコンテンツがあります。人間はそれを見て「これは場所の情報だ」「これは住所だ」と理解できますが、検索エンジンのクローラーにとっては、すべてが単なるテキストの羅列にすぎません。 構造化データは、ページのコンテンツが何を意味するのかを、機械可読な形式で検索エンジンに伝える仕組みです。schema.org という標準的な語彙を用い、JSON-LD(JSON for Linking Data)形式で HTML に埋め込みます。 たとえば、「明石」という文学名所のページを考えてみましょう。HTML だけでは、Google は「明石」が場所なのか、人名なのか、作品名なのかを確実に判断できません。構造化データを追加すると、「これは日本の兵庫県にある緯度34.64、経度134.99の場所で、歌枕として知られている」という情報を明示的に伝えられます。 JSON-LD の基本構造 構造化データは HTML の <script type="application/ld+json"> タグ内に記述します。 <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Place", "name": "明石", "alternateName": "Akashi", "geo": { "@type": "GeoCoordinates", "latitude": 34.649312, "longitude": 134.992637 } } </script> 各プロパティの意味は以下のとおりです。 @context : 語彙の定義元です。常に https://schema.org を指定します @type : データの種類です。Place、WebSite、Dataset など、schema.org で定義された型を指定します その他のプロパティ : 型に応じた具体的な情報を記述します 実際に導入した構造化データの種類 1. Place(場所)- 文学名所の詳細ページ 文学名所の各ページ(約300件 × 日英2言語)に、Place 型の構造化データを追加しました。 ...

CATMA:テキストアノテーション・分析プラットフォームの活用ガイド

CATMA:テキストアノテーション・分析プラットフォームの活用ガイド

はじめに デジタル・ヒューマニティーズ(DH)の研究において、テキスト分析は最も基本的かつ重要な手法の一つです。文学作品や歴史文書の構造的な分析を行うには、テキストに体系的なアノテーション(注釈付け)を施し、それを定量的に分析できる環境が必要です。 CATMA(Computer Assisted Text Markup and Analysis)は、ハンブルク大学の forTextLab が開発したWebベースのテキストアノテーション・分析プラットフォームです。プログラミングの知識がなくても、直感的な操作でテキストにタグを付け、分析を行うことができます。 CATMAの主な特徴 1. カスタムタグセット CATMAの最大の特長は、研究者が自由にタグセット(Tagset)を定義できることです。既存のマークアップ体系に縛られることなく、自分の研究目的に合わせたアノテーションスキーマを設計できます。 例えば、文学研究であれば「語り手の視点」「比喩表現」「登場人物の感情」といった独自のカテゴリを作成し、テキスト中の該当箇所にタグを付与できます。タグには階層構造を持たせることも可能で、大分類から小分類まで体系的に整理できます。 2. 協調作業への対応 CATMAはWebベースのプラットフォームであるため、複数の研究者が同じプロジェクトで共同作業を行えます。各研究者が独立してアノテーションを行い、それらを比較・統合することで、アノテーションの一致度(Inter-Annotator Agreement)を評価することも可能です。 これは特に、主観的な解釈が入りやすい人文学のテキスト分析において重要な機能です。複数の視点からのアノテーションを比較することで、分析の信頼性を高めることができます。 3. テキスト分析機能 アノテーションを施したテキストに対して、CATMAは様々な分析機能を提供します。 頻度分析: タグの出現頻度を集計し、テキスト全体の傾向を把握 分布分析: タグがテキスト内のどの位置に出現するかを視覚化 KWIC(Key Word in Context): 特定のキーワードやタグの前後の文脈を一覧表示 クエリ機能: 複数のタグやキーワードを組み合わせた高度な検索 4. GitLabベースのプロジェクト管理 CATMAの内部ではGitLabを利用してプロジェクトデータを管理しています。これにより、アノテーションの変更履歴が自動的に記録され、過去のバージョンに戻すことも可能です。研究のプロセスを透明に保つことができ、再現性の高い研究を実現できます。 実際の活用例 文学研究への応用 近代文学のナラティブ分析にCATMAを使用する例を考えてみましょう。小説テキストをアップロードし、「直接話法」「間接話法」「自由間接話法」といったタグセットを作成します。テキスト中の該当箇所にタグを付けていくことで、作品全体における語りの手法の分布を定量的に把握できます。 歴史文書の分析 歴史的な書簡や公文書の分析にも活用できます。「人名」「地名」「日付」「出来事」といったエンティティタグを定義し、文書中の情報を構造化することで、人物間の関係性や出来事の時系列を整理できます。 コーパス言語学 大量のテキストデータに対して一貫したアノテーションを施すことで、言語学的な分析の基盤を構築できます。品詞タグや統語構造のタグを適用し、言語使用のパターンを分析するといった使い方が可能です。 始め方 CATMAはWebブラウザからアクセスして利用できます。 CATMA公式サイトにアクセスし、アカウントを作成 新しいプロジェクトを作成し、分析対象のテキストをアップロード タグセットを定義(既存のテンプレートを利用することも可能) テキスト上でアノテーション作業を開始 分析機能を使ってデータを可視化・集計 注意点とヒント テキストはプレーンテキスト形式(UTF-8)でアップロードするのが最も安定します 大規模なテキストを扱う場合は、適切な単位に分割してからアップロードすることを推奨します タグセットの設計は分析結果に大きく影響するため、事前に十分な検討を行うことが重要です 共同作業を行う場合は、タグ付けのガイドラインを事前に作成しておくと、アノテーションの一貫性が向上します まとめ CATMAは、プログラミングスキルを必要とせずに高度なテキストアノテーションと分析を実現できる強力なツールです。カスタマイズ可能なタグセット、協調作業への対応、GitLabベースのバージョン管理など、研究者のニーズに応える機能が充実しています。テキスト分析をDH研究に取り入れたい方にとって、最適な出発点となるでしょう。

Datawrapper:研究者・ジャーナリストのためのデータ可視化ツール

Datawrapper:研究者・ジャーナリストのためのデータ可視化ツール

はじめに デジタルヒューマニティーズ(DH)の研究において、データの可視化は分析結果を伝えるうえで欠かせない手段です。しかし、D3.jsやPythonのMatplotlibなどを用いた本格的な可視化には、プログラミングの知識が必要になります。 Datawrapper は、コーディング不要でプロフェッショナルなチャート・地図・表を作成できるツールです。ジャーナリストや研究者を主な対象としており、The Washington PostやThe Guardianなどの大手メディアでも採用されています。 Datawrapperの主な特徴 20種類以上のチャートタイプ Datawrapperは棒グラフ、折れ線グラフ、散布図といった基本的なチャートから、ドーナツチャート、エリアチャート、レンジプロットなど多様な可視化形式をサポートしています。データの性質に合わせて最適な表現方法を選択できます。 コロプレスマップ 地理データの可視化にも対応しています。コロプレスマップ(階級区分図)やシンボルマップを作成でき、世界各国や各地域の地図テンプレートが用意されています。DHの文脈では、文化財の分布や歴史的な人口推移の地図表現などに活用できます。 レスポンシブ&アクセシブル 作成したビジュアライゼーションは自動的にレスポンシブデザインとなり、スマートフォンやタブレットでも適切に表示されます。また、スクリーンリーダーへの対応やキーボードナビゲーションなど、アクセシビリティにも配慮されています。 簡単なデータ入力 CSVやExcelファイルの直接アップロードに加え、Google Sheetsとの連携にも対応しています。データをペーストするだけで自動的にパースされるため、手軽に利用を始められます。 DH研究での活用例 テキストマイニング結果の可視化 文学作品のテキストマイニングで得られた語彙頻度や共起関係のデータを、棒グラフやヒートマップとして可視化できます。時代ごとの語彙変化を折れ線グラフで表現するなど、分析結果の直感的な理解を助けます。 歴史地理データの地図表現 歴史的な貿易ルート、文化的影響の伝播、遺跡の分布など、地理情報を含むデータをインタラクティブな地図として表現できます。Datawrapperのマップ機能は、GISソフトウェアほどの高度な機能はありませんが、プレゼンテーションや論文用の地図作成には十分な機能を備えています。 アンケート・調査結果の共有 DH関連のアンケート調査やデジタルアーカイブの利用統計を、見やすいグラフや表として公開できます。埋め込みコードを取得してWebサイトに配置するだけで、インタラクティブなビジュアライゼーションを共有可能です。 基本的な使い方 データの準備: CSVやスプレッドシートにデータを整理します チャートタイプの選択: 目的に合ったチャートタイプを選びます データのアップロード: ファイルをアップロードするか、データを直接ペーストします カスタマイズ: 色、フォント、ラベル、注釈などを調整します 公開・埋め込み: 完成したビジュアライゼーションを公開し、埋め込みコードを取得します 料金プラン Datawrapperには無料プランが用意されており、月に10件までのチャートを作成できます。研究機関や教育機関向けの割引プランも提供されています。無料プランでも基本的なチャートタイプと機能は利用可能で、個人研究やプロトタイピングには十分です。 他のツールとの比較 特徴 Datawrapper Tableau Public Google Charts コーディング不要 ○ ○ × レスポンシブ ○ △ ○ アクセシビリティ ○ △ △ 地図機能 ○ ○ ○ 無料プラン ○ ○ ○ まとめ Datawrapperは、プログラミングの知識がなくても高品質なデータ可視化を実現できるツールです。DH研究においては、分析結果のプレゼンテーションやWebでの公開において特に威力を発揮します。レスポンシブでアクセシブルなビジュアライゼーションを手軽に作成したい研究者やジャーナリストにおすすめです。 参考リンク Datawrapper 公式サイト Datawrapper Academy(チュートリアル) Datawrapper ブログ

Flourish:インタラクティブなデータストーリーテリングプラットフォーム

Flourish:インタラクティブなデータストーリーテリングプラットフォーム

はじめに データ可視化は、情報を伝えるための強力な手段です。しかし、静的なグラフだけでは、時系列の変化や複雑なストーリーを効果的に伝えることが難しい場合があります。 Flourish は、アニメーションやインタラクションを活用したデータストーリーテリングを実現するプラットフォームです。レースチャート(バーチャートレース)やアニメーション地図など、動きのある可視化を簡単に作成できます。BBCやGoogle、世界銀行などの組織でも採用されており、無料プランも用意されています。 Flourishの主な特徴 30以上のテンプレート Flourishは30種類以上のビジュアライゼーションテンプレートを提供しています。棒グラフや折れ線グラフなどの基本チャートに加え、以下のような特徴的なテンプレートがあります。 バーチャートレース: 時系列データのランキング変動をアニメーションで表現 アニメーション地図: 地理データの時間的変化を動的に可視化 インタラクティブストーリー: スライド形式でデータを段階的に説明 ネットワーク図: ノードとエッジの関係性を可視化 サンキーダイアグラム: フローの流れを表現 3Dマップ: 立体的な地図表現 データストーリーテリング Flourishの「Story」機能を使うと、複数のビジュアライゼーションをスライドのように組み合わせて、データを段階的に説明するストーリーを作成できます。プレゼンテーションや記事の中で、読者を段階的にデータの理解へと導けます。 コーディング不要 すべてのビジュアライゼーションは、ブラウザ上のGUIで作成できます。データをスプレッドシート形式で入力・アップロードし、テンプレートを選択してカスタマイズするだけです。プログラミングの知識は一切不要です。 埋め込みと共有 作成したビジュアライゼーションは、iframeで任意のWebサイトに埋め込めます。また、直接リンクでの共有やSNSでの共有にも対応しています。 DH研究での活用例 歴史データのアニメーション可視化 バーチャートレースを使って、歴史的なデータの推移をアニメーションで表現できます。例えば、各時代の都市人口ランキングの変遷や、貿易額の推移などを動的に可視化することで、歴史の流れを直感的に理解できます。 文化的ネットワークの可視化 ネットワーク図テンプレートを使って、著者間の引用関係、文化的影響の伝播、知識人のネットワークなどを可視化できます。ノードの大きさやエッジの太さでデータの重みを表現でき、インタラクティブに探索できます。 デジタル展示のストーリーテリング 博物館や図書館のデジタル展示において、Flourishのストーリー機能を活用して、コレクションのデータを段階的に紹介する展示コンテンツを作成できます。来館者がスクロールやクリックで展示を探索するインタラクティブな体験を提供します。 テキスト分析結果のプレゼンテーション テキストマイニングや自然言語処理の分析結果を、多彩なチャートやアニメーションで効果的にプレゼンテーションできます。学会発表やワークショップでのインパクトのある発表資料を作成できます。 基本的な使い方 テンプレートの選択: 目的に合ったテンプレートを選びます データの入力: スプレッドシート形式でデータを入力するか、CSVファイルをアップロードします カスタマイズ: 色、フォント、ラベル、アニメーション速度などを調整します プレビュー: 作成したビジュアライゼーションをプレビューで確認します 公開: 公開してURLを取得するか、埋め込みコードを生成します 料金プラン Flourishには無料のPublicプランがあり、公開プロジェクトを無制限に作成できます。ただし、無料プランで作成したビジュアライゼーションはすべて公開されます。非公開のプロジェクトを作成するには有料プランが必要です。 Datawrapperとの違い 特徴 Flourish Datawrapper アニメーション ○ × ストーリーテリング ○ × テンプレート数 30+ 20+ レスポンシブ ○ ○ アクセシビリティ △ ○ 無料プラン ○(公開のみ) ○(月10件) Flourishはアニメーションやストーリーテリングに強みがあり、Datawrapperはアクセシビリティやシンプルさに優れています。目的に応じて使い分けるのが効果的です。 ...

FromThePage:クラウドソーシングで歴史文書を翻刻する

FromThePage:クラウドソーシングで歴史文書を翻刻する

はじめに FromThePage(フロム・ザ・ページ)は、歴史的文書のクラウドソーシング翻刻(トランスクリプション)に特化したウェブプラットフォームです。ボランティアの協力を得て、手書き文書や活字資料をテキストデータに変換する作業を効率的に管理できます。 米国議会図書館(Library of Congress)やスミソニアン協会(Smithsonian Institution)をはじめとする世界中の図書館・博物館・文書館で採用されており、デジタル・ヒューマニティーズ(DH)における文書デジタル化の中核ツールとなっています。 FromThePageの主な機能 クラウドソーシング翻刻 FromThePageの最大の特徴は、大規模な翻刻プロジェクトをクラウドソーシングで実施できる点です。 翻刻ワークフロー:翻刻→レビュー→承認の段階的なワークフロー リッチテキストエディタ:MarkdownやWikiマークアップに対応 バージョン管理:すべての編集履歴を保持 ボランティア管理:翻刻者の貢献度追跡、バッジシステム IIIF対応 FromThePageは、IIIF(International Image Interoperability Framework)に完全対応しています。 # IIIFマニフェストのインポート例 https://example.org/iiif/manifest/12345 IIIFマニフェストのインポート:外部のIIIF対応リポジトリから画像を直接取り込み Mirador統合:IIIF画像ビューアMiradorとのシームレスな連携 IIIF Content Search API:翻刻テキストをIIIF検索APIで公開 IIIFマニフェストのエクスポート:翻刻済みテキストを含むマニフェストの出力 構造化データ入力 単純な翻刻だけでなく、構造化されたデータの入力にも対応しています。 機能 説明 フィールドベース翻刻 カスタムフォームで構造化データを収集 メタデータ入力 文書のメタデータをフィールドごとに記録 スプレッドシート翻刻 表形式データの翻刻に特化 マークアップ翻刻 TEI-XMLなどのマークアップ付き翻刻 OCR連携 手動翻刻だけでなく、OCR(光学文字認識)との連携機能も備えています。 OCR前処理:OCRの出力結果を翻刻の初期テキストとして利用 OCR修正ワークフロー:ボランティアがOCR結果を修正 HTR対応:手書き文字認識(Handwritten Text Recognition)との連携 導入事例 米国議会図書館 Library of Congressは、By the People(旧Transcribe)プロジェクトでFromThePageを活用し、数万件の歴史的文書をボランティアの力で翻刻しています。大統領の手紙、南北戦争の記録、女性参政権運動の文書など、多様な資料が対象です。 スミソニアン協会 Smithsonian Transcription Centerでは、FromThePageを基盤に、博物館コレクションの翻刻プロジェクトを運営しています。自然史標本のラベル、日記、フィールドノートなどが翻刻されています。 その他の機関 ハンティントン図書館:中世写本の翻刻 テキサス州立図書館:歴史的法律文書の翻刻 各大学図書館:特殊コレクションのデジタル化 技術的な特徴 エクスポート形式 翻刻結果は、さまざまな形式でエクスポートできます。 TEI-XML:人文学テキストの標準的なマークアップ形式 Plain Text:プレーンテキスト HTML:ウェブ公開用 CSV:構造化データの表形式出力 IIIF Manifest:IIIF対応ビューアでの表示用 ALTO XML:ページレイアウト情報付きテキスト API # FromThePage APIの利用例 curl -H "Accept: application/json" \ https://fromthepage.com/api/v1/collections RESTful APIにより、翻刻データのプログラムによる取得が可能です。 ...

Gephi Lite:ブラウザで使えるネットワーク可視化ツール

Gephi Lite:ブラウザで使えるネットワーク可視化ツール

TL;DR Gephi Lite は、ネットワーク可視化ツールとして定評のあるGephiのブラウザ版である。インストール不要で、GEXFファイルを読み込むだけでForceAtlas2レイアウト、コミュニティ検出、各種統計量の計算が可能である。人物関係、引用ネットワーク、共起ネットワークなど、DH研究で頻出するネットワーク分析に最適なツールである。 Gephi Liteとは Gephiは2008年に公開されたオープンソースのネットワーク可視化・分析ソフトウェアであり、「ネットワークのPhotoshop」とも呼ばれるほど広く利用されている。Gephi Liteはそのブラウザ版として開発され、デスクトップアプリのインストールなしにネットワーク分析を行えるようになった。 主な特徴は以下の通りである。 ブラウザで動作:WebGLを活用し、大規模ネットワークもスムーズに描画 ForceAtlas2レイアウト:Gephiの代表的なレイアウトアルゴリズムをブラウザ上で実行可能 コミュニティ検出:Louvain法によるコミュニティ(クラスタ)の自動検出 統計量の計算:次数中心性、媒介中心性、PageRankなどのネットワーク指標を算出 GEXF対応:Gephiのネイティブ形式であるGEXFファイルの読み込み・書き出しに対応 使い方 1. データの準備 ネットワークデータをGEXF形式で準備する。GEXFはXMLベースのグラフ記述フォーマットで、ノード(頂点)とエッジ(辺)の情報を含む。Pythonのnetworkxライブラリなどでプログラマティックに生成することも可能である。 <?xml version="1.0" encoding="UTF-8"?> <gexf xmlns="http://gexf.net/1.3"> <graph defaultedgetype="undirected"> <nodes> <node id="1" label="Person A"/> <node id="2" label="Person B"/> </nodes> <edges> <edge source="1" target="2" weight="3"/> </edges> </graph> </gexf> 2. ファイルの読み込み Gephi Lite にアクセスし、GEXFファイルをアップロードする。読み込みが完了すると、ネットワークが画面上に表示される。 3. レイアウトの適用 ForceAtlas2を実行すると、ノード間の引力と斥力に基づいて自動的にレイアウトが最適化される。関連性の高いノード同士が近くに配置され、ネットワークの構造が視覚的に明確になる。 4. 分析と可視化 ノードサイズ:次数やPageRankに基づいてノードサイズを変更し、重要なノードを強調 ノード色:コミュニティ検出の結果に基づいて色分けし、クラスタ構造を明示 フィルタリング:次数やウェイトに基づくフィルタで、重要な関係のみを表示 DH研究における活用例 書簡ネットワーク分析 歴史的な人物間の書簡データから、差出人・受取人をノード、書簡をエッジとしたネットワークを構築できる。中心性の高い人物を特定することで、知的交流のハブとなった人物を発見できる。 引用ネットワーク分析 学術論文の引用関係をネットワークとして可視化し、研究分野の構造や影響力のある論文を特定できる。コミュニティ検出により、研究のサブフィールドの境界を明らかにすることもできる。 共起ネットワーク分析 テキストデータから抽出した共起関係をネットワークとして表現し、概念間の関係性を分析できる。Voyant Toolsなどで生成した共起データをGEXF形式に変換して読み込むことも可能である。 地理的ネットワーク 交易路や移動経路を地名ノードと経路エッジで表現し、歴史的な交通・物流ネットワークの構造を分析できる。 デスクトップ版Gephiとの比較 特徴 Gephi Lite Gephi(デスクトップ) インストール 不要 Java環境必要 大規模ネットワーク 中規模まで 大規模対応 プラグイン なし 豊富 レイアウト ForceAtlas2 多数対応 エクスポート GEXF、PNG GEXF、PDF、SVGなど 共有 URLで可能 ファイル共有 Gephi Liteは手軽さと共有のしやすさが魅力であるが、100万ノード超のような大規模ネットワークや高度なプラグイン機能が必要な場合はデスクトップ版が適している。 ...

Hypothes.is:W3C準拠のオープンソースWebアノテーションツール

Hypothes.is:W3C準拠のオープンソースWebアノテーションツール

はじめに テキストの精読と注釈付けは、人文学研究における基本的な営みです。デジタル時代において、この営みをWebの文脈で実現するツールが求められています。 Hypothes.is は、あらゆるWebページにハイライトやコメントを付けられるオープンソースのアノテーションツールです。W3C Web Annotation標準に準拠しており、教育・研究・ジャーナリズムなど幅広い分野で利用されています。BSDライセンスで公開されています。 Hypothes.isの主な特徴 W3C Web Annotation標準への準拠 Hypothes.isは、W3C(World Wide Web Consortium)が策定したWeb Annotation標準に準拠しています。これにより、アノテーションデータの相互運用性が確保され、他のツールやプラットフォームとのデータ交換が可能です。 あらゆるWebページへの注釈 ブラウザ拡張機能やブックマークレットを使って、任意のWebページにハイライトやコメントを追加できます。PDFファイルへのアノテーションにも対応しています。注釈はHypothes.isのサーバーに保存され、同じURLを閲覧する他のユーザーと共有できます。 グループ機能 プライベートグループを作成し、メンバー間でアノテーションを共有できます。ゼミや研究グループでの共同読解に最適です。公開・グループ限定・個人のみの3段階の公開範囲を設定できます。 オープンソースとAPI Hypothes.isはオープンソースプロジェクトであり、ソースコードがGitHubで公開されています。APIも提供されており、アノテーションデータのプログラマティックな取得・操作が可能です。 DH研究での活用例 共同テキスト読解 文学作品やhistorical documentsのデジタルテキストに対して、研究グループのメンバーがそれぞれ注釈を付け、議論できます。異なる解釈や気づきを共有することで、テキストの多角的な理解が深まります。 デジタルソースの批判的分析 Webで公開されている一次資料やデジタルアーカイブのコンテンツに対して、批判的な注釈を付けられます。資料の信頼性評価や文脈の補足など、研究上の知見をソース上に直接記録できます。 教育でのアクティブリーディング 大学の授業において、学生が教材のWebページやPDFに注釈を付けながら読む「アクティブリーディング」を促進できます。教員は学生の注釈を確認し、理解度の把握やフィードバックに活用できます。 学術論文へのオープンアノテーション オープンアクセスの学術論文に対して、研究コミュニティがオープンにコメントや質問を付けるピアレビューの仕組みとして活用されています。従来の査読プロセスを補完する新しい学術コミュニケーションの形です。 基本的な使い方 アカウント作成: hypothes.is でアカウントを作成します ブラウザ拡張機能のインストール: Chrome拡張機能をインストールするか、ブックマークレットを追加します Webページの閲覧: 注釈を付けたいページを開き、Hypothes.isを有効にします テキストの選択: ハイライトしたいテキストを選択し、注釈やハイライトを追加します 共有: 公開範囲を設定し、注釈を保存・共有します LMS連携 Hypothes.isは、主要なLMS(Learning Management System)との連携に対応しています。 Canvas: LTI連携による統合 Moodle: プラグインによる統合 Blackboard: LTI連携 これにより、教育機関のeラーニング環境にシームレスにアノテーション機能を組み込めます。 APIの活用 Hypothes.isのAPIを使うことで、アノテーションデータを活用した高度な分析が可能です。 GET https://api.hypothes.is/api/search?url=https://example.com 特定のURLに付けられたすべてのアノテーションを取得し、テキストマイニングやネットワーク分析に活用できます。Pythonなどのスクリプト言語から簡単にアクセスでき、大量のアノテーションデータの分析も可能です。 まとめ Hypothes.isは、Webをアノテーションのレイヤーで拡張するオープンソースツールです。W3C標準への準拠によりデータの相互運用性が確保され、教育から研究まで幅広い用途に対応します。DH研究において、テキストの共同読解やデジタルソースの分析に欠かせないツールです。 参考リンク Hypothes.is 公式サイト Hypothes.is API ドキュメント W3C Web Annotation

Internet Archive:世界最大のデジタルアーカイブを活用する

Internet Archive:世界最大のデジタルアーカイブを活用する

はじめに Internet Archive(インターネット・アーカイブ)は、1996年にBrewster Kahle(ブリュースター・ケール)によって設立された非営利団体が運営する、世界最大のデジタルアーカイブです。「すべての知識への普遍的なアクセス」をミッションに掲げ、ウェブページ、書籍、音声、映像、ソフトウェアなど、数百億件を超えるデジタル資料を無料で公開しています。 デジタル・ヒューマニティーズ(DH)の研究者にとって、Internet Archiveは一次資料へのアクセス、ウェブの歴史的変遷の分析、大規模なテキストコーパスの構築など、多様な研究活動を支える重要な基盤です。 Wayback Machine Internet Archiveの代表的なサービスであるWayback Machineは、1996年以降のウェブページのスナップショットを保存しており、現在8,000億ページ以上のアーカイブを保持しています。 主な機能 URL検索:特定のURLの過去のスナップショットを時系列で閲覧 カレンダービュー:年月日を指定して、その時点でのウェブページを表示 Save Page Now:任意のウェブページを即座にアーカイブに保存 CDX API:プログラムからアーカイブデータにアクセスするためのAPI DH研究では、ウェブサイトの変遷を追跡したり、消失したウェブコンテンツを復元したりする際にWayback Machineが活用されます。例えば、デジタルメディア研究やウェブ考古学の分野で重要なツールとなっています。 Open Library Open Libraryは、Internet Archiveが運営するオープンな図書カタログプロジェクトです。2,000万件以上の書誌レコードを保持し、そのうち数百万冊はオンラインで全文を閲覧できます。 特徴 Controlled Digital Lending(CDL):デジタル化された書籍を図書館のように貸出管理 全文検索:デジタル化された書籍の本文を横断的に検索 API:書誌データをJSON形式で取得可能 Open Libraryのカバー画像API:ISBNから書籍のカバー画像を取得 人文学研究において、著作権の切れた歴史的文献や学術書にアクセスする際に有用です。 コレクションとメディアアーカイブ Internet Archiveは書籍以外にも、多様なメディアコレクションを提供しています。 主なコレクション コレクション 内容 規模 Audio Archive 音楽、ポッドキャスト、ラジオ番組 1,500万件以上 Moving Image Archive 映画、テレビ番組、ニュース映像 700万件以上 Software Archive 歴史的なソフトウェア、ゲーム 80万件以上 Image Archive 写真、イラスト、地図 400万件以上 これらのコレクションは、メディア研究、文化史、デジタルアート研究などのDHプロジェクトで幅広く利用されています。 APIとプログラムによるアクセス Internet Archiveは、研究者向けにさまざまなAPIを提供しています。 主なAPI # Internet Archive Python ライブラリの使用例 import internetarchive # アイテムのメタデータを取得 item = internetarchive.get_item('example_item_id') print(item.metadata) # 検索 results = internetarchive.search_items('subject:japanese AND mediatype:texts') for result in results: print(result['identifier']) Search API:メタデータによるアイテム検索 Metadata API:個別アイテムの詳細メタデータ取得 Wayback CDX API:ウェブアーカイブのインデックス検索 S3-like API:アイテムのアップロード・ダウンロード Pythonライブラリ internetarchive を使えば、大規模なデータ収集や分析を効率的に行うことができます。 ...

Kepler.gl:大規模地理空間データを美しく可視化するオープンソースツール

Kepler.gl:大規模地理空間データを美しく可視化するオープンソースツール

はじめに 地理空間データの可視化は、デジタルヒューマニティーズ(DH)の研究において重要な手法の一つです。歴史的な出来事の分布、文化遺産の所在地、人口動態の変遷など、空間的な情報を視覚的に表現することで、新たな知見を得ることができます。 本記事では、Uber が開発したオープンソースの地理空間データ可視化ツール Kepler.gl を紹介します。 Kepler.gl とは Kepler.gl は、大規模な地理空間データセットを直感的かつ美しく可視化するために設計された Web ベースのツールです。2018 年に Uber のビジュアライゼーションチームによってオープンソースとして公開されました。MIT ライセンスで提供されており、誰でも自由に利用・改変が可能です。 WebGL を基盤とした描画エンジンにより、数百万ポイント規模のデータでもスムーズにレンダリングできる点が大きな特徴です。 主な機能 ヒートマップ データポイントの密度を色の濃淡で表現するヒートマップは、大量のデータの分布傾向を把握するのに適しています。例えば、歴史的な文書の発行地をヒートマップで表示することで、文化活動の集中地域を一目で確認できます。 3D マップ 高さ方向を使ったデータ表現も可能です。地域ごとの数量データを 3D の柱として表示するヘキサゴンビンや、建物の高さを反映した 3D 地図を作成できます。 時系列アニメーション タイムスタンプを持つデータをアニメーションとして再生できます。時間の経過に伴うデータの変化を動的に可視化することで、歴史的な事象の推移を直感的に理解できます。 多様なレイヤータイプ ポイント、アーク(弧)、ライン、ポリゴンなど、多彩なレイヤータイプをサポートしています。移動経路や貿易ルートの可視化にはアークレイヤーが、地域区分の表示にはポリゴンレイヤーが適しています。 対応データ形式 Kepler.gl は以下のデータ形式に対応しています。 CSV — 緯度・経度カラムを含む表形式データ GeoJSON — 地理空間データの標準フォーマット JSON — カスタムデータ形式 ブラウザ上にファイルをドラッグ&ドロップするだけで読み込めるため、プログラミングの知識がなくても利用を開始できます。 DH における活用例 歴史地図の作成 古地図のデータや歴史的イベントの発生地点をプロットし、時系列アニメーションで変遷を追うことができます。例えば、江戸時代の宿場町の分布や、近代化の過程での鉄道路線の拡大を可視化できます。 文化遺産のマッピング 博物館・図書館・文書館のコレクションに含まれる地理情報を可視化し、文化遺産の空間的な分布を分析できます。IIIF マニフェストに含まれるメタデータから座標を抽出し、Kepler.gl で表示するといったワークフローも考えられます。 テキストマイニングとの連携 テキストから抽出された地名を座標に変換(ジオコーディング)し、Kepler.gl で可視化することで、文学作品や歴史文書に登場する地名の空間的な関係を分析できます。 導入方法 Kepler.gl はブラウザ上で直接利用できる Web アプリ版(kepler.gl)が提供されています。データのアップロードから可視化、設定の保存までをブラウザ内で完結できます。 より高度な利用には、React コンポーネントとして自身のアプリケーションに組み込むことも可能です。npm パッケージとして提供されており、Jupyter Notebook 用のプラグインも存在します。 npm install kepler.gl まとめ Kepler.gl は、大規模な地理空間データを直感的に可視化できるパワフルなツールです。プログラミングの知識がなくてもブラウザ上で利用でき、CSV や GeoJSON を読み込むだけで美しいマップを作成できます。DH 研究における空間分析の入口として、ぜひ活用してみてください。 ...

Mirador:IIIF画像の比較・分析に最適なオープンソースビューア

Mirador:IIIF画像の比較・分析に最適なオープンソースビューア

はじめに デジタルヒューマニティーズの研究では、複数の資料を並べて比較検討することが頻繁に行われます。異なる写本を比較したり、修復前後の美術作品を並べて確認したりする場面では、高機能な画像ビューアが不可欠です。 本記事では、Stanford 大学と Harvard 大学が共同開発する IIIF 対応画像ビューア Mirador を紹介します。 Mirador とは Mirador は、IIIF(International Image Interoperability Framework)に対応した Web ベースの画像ビューアです。最大の特徴は、複数のウィンドウを同時に開いて画像を比較できるマルチウィンドウインターフェースです。 Apache 2.0 ライセンスで公開されており、学術機関を中心に世界中で広く利用されています。現在のバージョンは Mirador 3 で、React をベースとしたモダンなアーキテクチャで構築されています。 主な機能 マルチウィンドウ比較 Mirador のコア機能であるマルチウィンドウ表示により、複数の IIIF マニフェストから画像を同時に並べて比較できます。ウィンドウは自由にリサイズ・配置でき、研究者のワークスペースとして機能します。 アノテーション機能 IIIF のアノテーション仕様に対応しており、画像上に注釈を付けることができます。研究メモやタグ付けを画像に直接関連付けられるため、協調的な研究作業に適しています。 プラグインエコシステム Mirador 3 はプラグインアーキテクチャを採用しており、機能を拡張できます。代表的なプラグインには以下のようなものがあります。 mirador-image-tools — 画像の明るさ・コントラスト調整、反転、グレースケール変換 mirador-annotations — アノテーションの作成・編集 mirador-dl — 画像のダウンロード mirador-share — 共有リンクの生成 レイヤー表示 複数のレイヤーを重ねて表示する機能を備えており、例えば原本画像の上に翻刻テキストを重ねたり、異なる波長で撮影した画像を切り替えたりできます。 ドラッグ&ドロップ IIIF マニフェスト URL をドラッグ&ドロップでビューアに追加できます。異なる機関のコレクションから資料を集めて、一つのワークスペースで比較する作業が容易です。 導入方法 Mirador は npm パッケージとして提供されています。 npm install mirador React アプリケーションに組み込む場合は、以下のように設定します。 import Mirador from 'mirador'; const config = { id: 'mirador-viewer', windows: [{ manifestId: 'https://example.org/manifest.json' }] }; Mirador.viewer(config); DH における活用例 写本の比較研究 同じテキストの異なる写本を並べて表示し、文字の違いやレイアウトの差異を比較できます。中世ヨーロッパの写本研究や、日本の古典籍研究において効果的です。 ...

Observable:D3.js作者が作ったデータ可視化ノートブック

Observable:D3.js作者が作ったデータ可視化ノートブック

はじめに Observable(オブザーバブル)は、D3.jsの作者であるMike Bostock(マイク・ボストック)が開発した、JavaScriptベースのデータ分析・可視化ノートブックプラットフォームです。ブラウザ上でリアクティブなコードを記述し、インタラクティブなデータ可視化をすぐに作成できる環境を提供します。 デジタル・ヒューマニティーズ(DH)の分野では、研究データの探索的分析やインタラクティブな可視化の作成において、Observableが強力なツールとして注目されています。 Observableの特徴 リアクティブノートブック Observableのノートブックは、Jupyter Notebookに似た概念ですが、JavaScriptベースでリアクティブな実行モデルを採用しています。 リアクティブ実行:セルの値が変更されると、依存するセルが自動的に再実行される 即時プレビュー:コードを書くとリアルタイムで結果が表示される セル間の依存関係:変数を通じてセル間でデータを共有 インポート機能:他のノートブックからセルを再利用可能 // Observableのセル例 viewof year = Inputs.range([1900, 2025], {step: 1, value: 2000}) Observable Plot Observable Plotは、Observableチームが開発した高レベルの可視化ライブラリです。D3.jsの強力な機能を、より簡潔なAPIで利用できます。 // Observable Plotによるデータ可視化 Plot.plot({ marks: [ Plot.barY(data, {x: "category", y: "count", fill: "type"}), Plot.ruleY([0]) ], color: {legend: true} }) 主な特徴まとめ 特徴 説明 言語 JavaScript / TypeScript 可視化 Observable Plot, D3.js統合 データ入力 CSV, JSON, SQLite, API コラボレーション チーム共有、コメント機能 公開 ノートブックの公開・埋め込み ライセンス ISC License Observable Framework 2024年にリリースされたObservable Frameworkは、データアプリケーションを構築するための静的サイトジェネレーターです。 特徴 データローダー:Python、R、SQL、JavaScriptなど任意の言語でデータを前処理 Markdownベース:MarkdownファイルにJavaScriptコードを埋め込み 静的ビルド:ビルド時にデータを処理し、高速な静的サイトを生成 セルフホスティング:自分のサーバーやCDNにデプロイ可能 # Observable Frameworkの例 const data = await FileAttachment("data/research_data.csv").csv({typed: true}); Plot.plot({ marks: [Plot.dot(data, {x: "year", y: "value", stroke: "category"})] }) DHにおける活用方法 1. テキスト分析の可視化 文学作品の語彙分析、単語頻度の時系列変化、テキスト間の類似度マッピングなどを、インタラクティブな可視化として作成できます。 ...

Omeka:デジタルコレクションとオンライン展示のためのプラットフォーム

Omeka:デジタルコレクションとオンライン展示のためのプラットフォーム

TL;DR Omeka は、図書館・博物館・大学などの文化機関向けに設計されたオープンソースのWebプラットフォームである。デジタルコレクションの管理とオンライン展示の構築に特化しており、Omeka S(Linked Data対応の最新版)とOmeka Classic(シンプルな旧版)の2つのバージョンが存在する。GPLライセンスで提供されている。 Omekaとは OmekaはRoy Rosenzweig Center for History and New Media(RRCHNM、ジョージ・メイソン大学)が開発したWebパブリッシングプラットフォームである。「展示する」を意味するスワヒリ語に由来する名前の通り、デジタル資料の公開と展示に最適化されている。 世界中の数千の文化機関で採用されており、スミソニアン協会、米国議会図書館、フランス国立図書館などの大規模機関でも利用実績がある。 Omeka SとOmeka Classicの違い Omeka S(推奨) Linked Data対応:Dublin Core、Schema.org、FOAFなどのRDFボキャブラリーをネイティブサポート マルチサイト管理:一つのインストールで複数の独立したサイトを運用可能 モジュール式:必要な機能をモジュールとして追加できる拡張性の高いアーキテクチャ IIIF対応:IIIF Image API/Presentation APIとの統合が可能 API ファースト:RESTful APIを標準搭載し、外部システムとの連携が容易 Omeka Classic シンプルな構成:セットアップが簡単で、小規模プロジェクトに適している 豊富なプラグイン:長い歴史に基づく多数のプラグインが利用可能 テーマ:デザインテーマの切り替えが容易 新規プロジェクトではOmeka Sの利用が推奨される。 主要機能 アイテム管理 デジタル資料(画像、文書、音声、動画など)をアイテムとして登録し、Dublin Coreなどのメタデータスキーマに基づいて詳細な記述情報を付与できる。 オンライン展示 登録したアイテムを使って、テーマ別のオンライン展示(Exhibition)を構築できる。ストーリーラインに沿って資料を配置し、解説テキストを添えることで、学術的な文脈を伴ったデジタル展示が実現する。 コレクション管理 アイテムをコレクション(資料群)に分類し、階層的に管理できる。各コレクションにも独自のメタデータを付与可能である。 検索とブラウジング ファセット検索やタグブラウジングにより、利用者は直感的にコレクションを探索できる。全文検索機能も備えている。 セットアップ Omeka Sのインストールには、LAMP環境(Linux、Apache、MySQL、PHP)が必要である。 # 基本的な要件 # - PHP 7.4以上 # - MySQL 5.7以上 / MariaDB 10.2以上 # - Apache(mod_rewrite有効) # Composerでインストール composer create-project omeka/omeka-s また、Omeka.netではホスティングサービスも提供されており、サーバー管理なしで利用を開始することもできる。 ...

Palladio:人文学データの可視化プラットフォーム活用ガイド

Palladio:人文学データの可視化プラットフォーム活用ガイド

はじめに 歴史研究や人文学の研究において、人物の移動経路、書簡のネットワーク、出来事の時系列といったデータを視覚的に表現することは、新たな知見を得るための重要な手段です。しかし、GISソフトウェアやプログラミングによるデータ可視化は、多くの人文学研究者にとってハードルが高いものでした。 Palladio は、スタンフォード大学の Humanities+Design Lab が開発した、Webブラウザ上で動作するデータ可視化プラットフォームです。CSVファイルをアップロードするだけで、地図、グラフ、テーブル、タイムラインといった多角的なビューでデータを探索できます。 Palladioの主な機能 1. Map(地図ビュー) 座標データ(緯度・経度)を含むデータセットを読み込むと、ポイントデータやフローデータを地図上に表示できます。例えば、歴史上の人物の出生地と活動地を結ぶ線を描画したり、特定の時代における都市間の交易ルートを可視化したりすることが可能です。 ポイントのサイズを数値データに連動させたり、カテゴリごとに色分けしたりすることもできます。 2. Graph(ネットワークビュー) データ内の関係性をネットワークグラフとして表示します。例えば、書簡の送り手と受け手の関係をネットワークとして可視化することで、知識人のコミュニケーションパターンを分析できます。 ノードのサイズは接続数に応じて変化し、中心的な人物や組織を直感的に把握できます。 3. Table(テーブルビュー) データをテーブル形式で表示し、フィルタリングや並び替えを行えます。他のビューと連動しているため、地図上で特定の地域を選択した際に、その地域に関連するデータだけをテーブルに表示するといった操作が可能です。 4. Timeline(タイムラインビュー) 時間情報を持つデータを時系列で表示します。特定の期間にデータが集中しているかどうかを視覚的に確認でき、時代ごとの傾向を把握するのに役立ちます。 5. Faceted Filter(ファセットフィルター) すべてのビューに共通して、ファセットフィルターを適用できます。カテゴリや時間範囲でデータを絞り込み、特定の条件に合致するサブセットだけを表示することで、詳細な分析が可能になります。 データの準備 Palladioで利用するデータはCSV形式で準備します。以下のような列構成が典型的です。 名前,出生地,出生地緯度,出生地経度,活動地,活動地緯度,活動地経度,時代,分野 地図ビューを利用するには緯度・経度のデータが必要です。住所や地名から座標を取得するジオコーディングは、事前に別のツール(OpenCageやGoogle Geocoding APIなど)で行っておく必要があります。 実際の活用例 書簡ネットワークの分析 18世紀ヨーロッパの知識人の書簡データ(差出人、受取人、日付、場所)をPalladioに読み込むと、以下のような分析が可能になります。 地図ビュー: 書簡の発送地と受取地を線で結び、知的交流の地理的パターンを可視化 グラフビュー: 差出人と受取人のネットワークを表示し、中心的な人物を特定 タイムライン: 書簡の送受信頻度の時系列変化を確認 フィルター: 特定の期間や地域に絞って分析 歴史的移動の追跡 移民や難民の移動データ、探検家の旅程データなどを地図ビューで表示し、出発地と目的地の関係を俯瞰的に把握できます。 文化資源のマッピング 美術館のコレクションデータ(作品名、作者、制作地、制作年など)を読み込み、制作地の分布や作者間のネットワークを分析するといった活用も考えられます。 使い方の流れ Palladio公式サイトにアクセス 「Start」をクリックしてアプリケーションを起動 CSVファイルをドラッグ&ドロップまたはテキストを貼り付け データの型(テキスト、数値、座標、日付)を確認・設定 Map / Graph / Table / Timeline の各ビューでデータを探索 ファセットフィルターで条件を絞り込みながら分析 注意点 Palladioはデータの可視化・探索に特化しており、可視化結果の画像エクスポート機能は限定的です 大規模データ(数万行以上)ではブラウザのパフォーマンスが低下する場合があります データはブラウザ上で処理されるため、サーバーにアップロードされることはありません(プライバシーの観点で安心です) セッションを閉じるとデータは消えるため、プロジェクトの保存(JSON形式でエクスポート)を忘れないようにしましょう まとめ Palladioは、プログラミング不要で人文学データを多角的に可視化できる優れたツールです。CSV形式のデータさえ準備できれば、地図・ネットワーク・テーブル・タイムラインの各ビューを使って直感的にデータを探索できます。研究の初期段階でデータの全体像を把握したい場合や、パターンを発見したい場合に特に有効です。

RAWGraphs:ノーコードでデータを美しく可視化するDHツール

RAWGraphs:ノーコードでデータを美しく可視化するDHツール

TL;DR RAWGraphs はブラウザ上で動作するオープンソースのデータ可視化ツールである。CSV/TSVファイルをドラッグ&ドロップするだけで、30種類以上のチャートタイプからデータを可視化でき、SVGやPNG形式でエクスポートできる。プログラミング不要で、デジタル・ヒューマニティーズ(DH)研究におけるデータ分析の入口として最適なツールである。 RAWGraphsとは RAWGraphsは、イタリアのミラノ工科大学(Politecnico di Milano)の DensityDesign Lab が開発したオープンソースプロジェクトである。Apache 2.0ライセンスで公開されており、誰でも無料で利用できる。 主な特徴は以下の通りである。 完全ブラウザベース:インストール不要で、Webブラウザさえあれば即座に利用開始できる データプライバシー:データはサーバーに送信されず、すべてクライアントサイドで処理される 30種類以上のチャート:一般的な棒グラフや散布図に加え、Alluvial Diagram、Bumpchart、Sunburstなど高度なビジュアライゼーションにも対応 D3.jsベース:内部的にD3.jsを使用しており、生成されるSVGは高品質 使い方 RAWGraphsの利用は4ステップで完結する。 1. データの読み込み RAWGraphsの公式サイトにアクセスし、CSV/TSVファイルをドラッグ&ドロップするか、テキストエリアに直接ペーストする。Googleスプレッドシートからの読み込みや、JSONデータにも対応している。サンプルデータセットも用意されており、初めての利用でもすぐに試すことができる。 2. チャートタイプの選択 データの性質に応じて、適切なチャートタイプを選択する。カテゴリ別に整理されており、「Hierarchy」「Time Series」「Distributions」「Correlations」「Networks」などから目的に合ったものを選べる。 3. マッピング設定 データの各列をチャートの視覚要素(X軸、Y軸、色、サイズなど)にドラッグ&ドロップでマッピングする。この直感的な操作が RAWGraphs の最大の魅力である。 4. エクスポート 完成したビジュアライゼーションをSVG、PNG、またはJSON形式でダウンロードする。SVG形式であれば、Adobe IllustratorやInkscapeでさらに編集を加えることもできる。 DH研究における活用例 書誌データの可視化 図書館のOPACデータや書誌データベースから取得したCSVデータを使い、出版年代ごとの分野別出版数をStreamgraphやStacked Area Chartで可視化できる。時代ごとの学術トレンドの変遷を一目で把握するのに有効である。 歴史的ネットワークの可視化 手紙の差出人と受取人のデータから、Alluvial Diagramを作成すれば、知識人ネットワークの構造を視覚的に示すことができる。例えば、江戸時代の儒学者間の書簡ネットワークなどを分析する際に役立つ。 テキスト分析結果の表示 形態素解析やトピックモデリングの結果をCSV形式で出力し、RAWGraphsでTreemapやCircle Packingとして可視化すれば、テキストコーパスの語彙構造を直感的に理解できる。 文化財データの分析 博物館や美術館の所蔵品メタデータ(年代、地域、素材、技法など)を多次元的に可視化し、コレクションの特性を分析できる。Parallel Coordinatesを使えば、複数の属性を同時に比較できる。 他ツールとの比較 特徴 RAWGraphs Tableau Public Google Charts 料金 無料(OSS) 無料(制限あり) 無料 インストール 不要 要デスクトップアプリ 不要(API) プログラミング 不要 不要 JavaScript必要 チャート種類 30+ 非常に多い 30+ データプライバシー クライアント処理 クラウド クラウド カスタマイズ性 SVG編集可 高い コードで制御 RAWGraphsは「手軽にデータを可視化したいが、プログラミングは避けたい」という研究者に最も適している。より高度なインタラクティブ可視化が必要な場合はTableau PublicやD3.jsの直接利用を検討するとよい。 ...