Skip to content

fix: dbpaDatetimePrecision を @schema:unitCode 相当に訂正し、README 例示を unitCode へ - #20

Merged
nagata-yoshiteru merged 2 commits into
mainfrom
claude/issue-18-20260725_062825
Jul 25, 2026
Merged

fix: dbpaDatetimePrecision を @schema:unitCode 相当に訂正し、README 例示を unitCode へ#20
nagata-yoshiteru merged 2 commits into
mainfrom
claude/issue-18-20260725_062825

Conversation

@nagata-yoshiteru

Copy link
Copy Markdown
Member

概要

Issue #18 の残りの DoD のうち、dbpaDatetimePrecision のコメント訂正と README 例示の訂正を行います。

dbp-dbpa-compressor の実装調査(Issue #18 のコメント)により、dbp:dbpaDatetimePrecision に入る値は ANN / DAY / SEC / C26 などの UN/CEFACT Common Code(UNECE Rec 20)であることが確定したため、定義側コメントを訂正します。

変更内容

  • dbp_schema.proto / dbp_schema.ja.proto L255: @schema:unitText と同等の文字列@schema:unitCode と同等の UNECE Recommendation 20 のコード
  • dbp-schema.jsonld / dbp-schema.ja.jsonld L1634: 同文言で rdfs:comment を訂正(ProtoToJsonld.py の生成結果と一致する最小手編集、JSON パース検証済み)
  • README.md L147 / L168 / L408 / L429: "schema:unitText": "DD""schema:unitCode": "DD"

フィールド名・型・番号は変更していないため、proto のワイヤ互換性は破壊しません(コメントのみ)。

確認したうえで修正不要と判断

  • dbp_schema.sqlRealWorldDataStructureProperty テーブルは存在せず、DataFieldType は既に正しい。CompressionHint.dbpaDatetimePrecision(L393)はコメント自体が無い。
  • dbdiagram-oss_exported_data.json:該当コメント無し。

残タスク(本 PR 対象外)

  • dbp_schema.pb.go L1885 / src/dbp_schema.rs L511 に古いコメントが残ります(生成物)。Rust / Go の再生成は別途対応のご指示に従い、本 PR では触れていません。
  • dbp:dbpaTimestampUnitText は他 repo との同時変更が必要なため別 Issue 推奨。

Refs #18

Generated with Claude Code

claude Bot and others added 2 commits July 25, 2026 06:30
…ode へ

dbp-dbpa-compressor の実装調査(Issue #18 のコメント)により、
dbp:dbpaDatetimePrecision に入る値は ANN / DAY / SEC / C26 などの
UN/CEFACT Common Code(UNECE Rec 20)であることが確定したため、
「@Schema:unitText と同等の文字列」という定義側コメントを
「@Schema:unitCode と同等の UNECE Recommendation 20 のコード」に訂正。

- dbp_schema.proto / dbp_schema.ja.proto L255 のコメント訂正
- dbp-schema.jsonld / dbp-schema.ja.jsonld の rdfs:comment を同文言に訂正
  (ProtoToJsonld.py の生成結果と一致する最小手編集、JSON パース検証済み)
- README.md の例示 4 箇所 "schema:unitText": "DD" を "schema:unitCode": "DD" に訂正

Refs #18

Co-authored-by: Yoshietru Nagata <nagata-yoshiteru@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 25, 2026 06:34

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@claude

claude Bot commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Claude finished @nagata-yoshiteru's task —— View job


レビュー結果

  • 差分の取得と確認
  • proto / jsonld / 生成物の整合性チェック
  • README 例示の妥当性チェック
  • 残存する古い記述の洗い出し
  • レビュー結果の投稿

全体として正確で最小限の良い変更です。ワイヤ互換性の破壊はなく、生成物との整合も取れています。マージ可能と判断しますが、1 点だけ PR 説明の訂正をお願いしたいのと、いくつか提案があります。


✅ 検証できたこと

1. proto コメント → JSON-LD の生成整合性(重要)

ProtoToJsonld.py:231 は property のコメントを ' '.join(line[6:])(行を空白 split した 7 要素目以降)で取得します。手で同じトークン分割をたどった結果、両言語とも rdfs:comment は再生成結果と完全一致しました。

ソース 生成されるコメント
dbp_schema.proto:255 Minimum unit when the data field is of datetime type (UNECE Recommendation 20 code, equivalent to @schema:unitCode)
dbp-schema.jsonld:1634 同上 ✅
dbp_schema.ja.proto:255 データフィールドが日付時刻型な場合の、最小単位 (@schema:unitCode と同等の UNECE Recommendation 20 のコードが入る)
dbp-schema.ja.jsonld:1634 同上 ✅

2. 重複プロパティの扱いも問題なし

dbpaDatetimePrecisionRealWorldDataStructurePropertydbp_schema.proto:255)と CompressionHintdbp_schema.proto:583)の 2 箇所に存在します。ProtoToJsonld.py:224-228 は既出プロパティに対しては addParentClass のみ行いコメントを上書きしないため、先に現れる L255 側のコメントが採用されます。今回の手編集はこの挙動と一致しており、再生成しても差分は出ません。

3. その他

  • コメントのみの変更でフィールド名 / 型 / 番号は不変 → proto ワイヤ互換性 ✅
  • dbp_schema.pb.go:1885 / src/dbp_schema.rs:511 も同文言に更新済み ✅(後述の指摘 1 参照)
  • README の "DD" は UN/CEFACT Rec 20 の degree (unit of angle) の Common Code なので、schema:unitCode の値として妥当 ✅
  • dbp_schema.sql(実体は DBML 形式)L365-366 / L393、dbdiagram-oss_exported_data.json に該当コメントが無いことを確認 → PR 説明の「修正不要」判断は正しいです ✅

🔴 指摘 1(要対応・PR 説明のみ)

PR 説明の「残タスク(本 PR 対象外)」に

dbp_schema.pb.go L1885 / src/dbp_schema.rs L511 に古いコメントが残ります

とありますが、本 PR の 2 つ目のコミット b93d81e「update Rust / proto」で両方とも既に更新されています(diff にも含まれています)。コード側は正しい状態なので修正は不要ですが、マージログが誤解を招くため PR 説明の更新をお願いします。


💡 提案(任意)

提案 A: README は unitTextunitCode を両方載せる方が親切

現状は schema:unitTextschema:unitCode置き換えていますが、RealWorldDataStructureProperty には両フィールドが存在します(dbp_schema.proto:240-241)。Issue #18 の主題そのものが両者の使い分けなので、例示で並べて見せた方が意図が伝わります。

"rdfs:comment": "Geographic coordinate representing north-south position",
"schema:unitText": "",
"schema:unitCode": "DD",

置き換えのみだと、README を見て JSON-LD を生成する側が unitText を出さなくなり、まだ unitText を読んでいる消費側で情報が落ちる懸念もあります。

提案 B: proto コメントに具体値を併記

Issue #18dbp-dbpa-compressor 実装調査で ANN / DAY / SEC / C26 という具体値が判明しているので、コメントに含めると自己文書化されます。

// Minimum unit when the data field is of datetime type (UNECE Recommendation 20 code, equivalent to @schema:unitCode; e.g. ANN / DAY / SEC / C26)

※ 変更する場合は .ja.proto と両 .jsonld の 4 ファイル同時更新が必要です(rdfs:comment の生成元のため)。

提案 C: コメント文言が CompressionHint 側にも適用される点

JSON-LD ではプロパティノードが 1 つなので、この rdfs:comment(「データフィールドが日付時刻型な場合の」)は CompressionHint.dbpaDatetimePrecisiondbp_schema.proto:583schema:domainIncludes に両クラスが入る)の説明も兼ねることになります。既存の挙動であり本 PR の退行ではありませんが、気になるようであれば「日付時刻型データフィールドの最小単位」のように主語を弱めると両ドメインで自然に読めます。

提案 D(別 PR 推奨): コメントが無いフィールドの補完

CompressionHint.dbpaDatetimePrecisiondbp_schema.proto:583)と DataFieldType.dbpaTimestampUnitText(同 L554)にはコメントがありません。生成結果には影響しません(先勝ちのため)が、.proto 単体を読む人には不親切です。

提案 E: dbpaTimestampUnitText の別 Issue 化

他 repo との同時変更が必要という判断に同意します。名前が UnitText なのに実態がコード値である可能性があり、Issue #18 と同種の混乱を招くため、別 Issue での整理が適切です。


テスト / 検証について

本リポジトリにテストスイートは無く、検証手段は再生成による差分確認になります。この実行環境では権限制約により python ProtoToJsonld.py(schema.org 21.0 の取得にネットワークが必要)・cargo buildprotoc を実行できませんでしたため、上記の整合性確認はパーサのトークン分割を手動でシミュレートして行っています。

マージ前に一度 python ProtoToJsonld.py を実行し、意図した 1 行以外に差分が出ないことをご確認いただけると確実です。


| Branch: claude/issue-18-20260725_062825

@nagata-yoshiteru
nagata-yoshiteru merged commit cc89244 into main Jul 25, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants