> For the complete documentation index, see [llms.txt](https://livlog-llc.gitbook.io/engineering-handbook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://livlog-llc.gitbook.io/engineering-handbook/di-er-bu-ji-shu-ling-yu/13-data.md).

# 13. データ

リブログのプロダクトでは、会話、作業記録、記事、地名、道、駅、木材、季語、山、湧き水、写真、日付、位置情報など、多様なデータが中心的な役割を持ちます。

RDBだけを前提にせず、MongoDB、公開・再利用しやすいファイル、外部API、写真サービスもデータ基盤の一部として扱います。

## データ活用の考え方

* 出典、取得日、利用条件を確認する
* 加工・補正・削除した内容を記録する
* 検索、地図、記事、AIなど複数の用途で再利用できる形にする
* 更新方法と最終更新日を把握する
* 保存形式と公開形式を必要に応じて分ける
* 個人情報、秘密情報、位置情報の公開範囲を確認する

## RDB

MariaDBまたはMySQLを、ユーザー状態、会話・作業記録、記事、地点、木材、旅程、検索・集計などの構造化データに利用します。

DBアクセスには、ActiveObjects、SQL2o、Doma、JDBCなどをプロダクトごとに使い分けています。データを変更するときは、既存スキーマ、制約、文字コード、タイムゾーン、移行手順を確認します。

## ドキュメントDB

CotoGotoとMATATAVIではMongoDBを利用し、CotoGotoではMorphiaも利用しています。

RDBとMongoDBを併用するプロダクトでは、どちらを正とするか、データの同期や削除をどの処理が担当するかを明確にします。

## ファイル形式

静的サイト、データ交換、バッチ入力、設定、記事には、次の形式を利用します。

* JSON
* GeoJSON
* CSV
* YAML
* Markdown
* KML
* 画像ファイル / WebP

ファイルには、可能な範囲で生成元、生成手順、文字コード、項目定義、座標系、更新日を記録します。

## 位置情報・オープンデータ

地図系のプロダクトでは、緯度経度、地点名、住所、説明文、写真、ルートなどを扱います。国土数値情報や自治体オープンデータ、交通・駅・位置情報APIなども利用します。

GeoJSONは、Leafletなどでの地図表示とデータ再利用の両方に利用します。データ取得元の座標系が異なる場合は変換方法を記録し、地点の重複、欠損、精度も確認します。

オープンデータを利用する場合は、次を残します。

* 提供元と原典URL
* 取得日と対象バージョン
* 加工・結合・補正した項目
* 利用条件と表示が必要なクレジット
* 更新方法と再生成手順

## 写真・メディアデータ

写真は、Flickr、PhotoPrism、Amazon S3などから取得・保存し、画像本体に加えて次のメタデータを扱います。

* タイトル、説明、代替テキスト
* 撮影日時
* 緯度経度
* 出典、作者、利用条件
* サムネイルと画像サイズ

外部サービスのIDやURLだけを保存する場合は、削除や非公開化によって参照できなくなる可能性を考慮します。

## AI生成データ

AIで文章、画像、分類、説明文を生成する場合は、生成結果をそのまま正解として扱いません。

* 生成に使った入力と参照データを追跡できるようにする
* 必要な項目を構造化し、保存前に検証する
* 事実確認と人間による確認の要否を決める
* AI生成であることの表示が必要か確認する
* 著作権、個人情報、利用条件を確認する
* 再生成時に既存データを上書きするか決める

## 今後の課題

* データ出典と更新日の一覧整備
* DBスキーマとデータモデルの可視化
* GeoJSON、CSV、画像メタデータの管理ルール整理
* 複数プロダクトで再利用するデータの責任範囲整理
* AI生成データの検証、履歴、再生成ルール整備
* バックアップと削除手順の明確化


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://livlog-llc.gitbook.io/engineering-handbook/di-er-bu-ji-shu-ling-yu/13-data.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
