Skip to content

作者名字入庫必須宣告:不再有預設切法(多字姓氏、姓名順序) #717

Description

@kiki830621

Part of #715

Problem

Original text:
「這邊也會需要任語言,如果沒有語言的話才用最簡單的方式切。 或者第二我覺得是不是根本不該有預設,她在input的時候必須要有語言,因為「語言必定符合某種語言名稱」這應該是一個library的rule」
— Source: 維護者(2026-10-02)

現況:入庫接受任何字串當作者——create_entry 的 authors 是 [String],一律包成 .literal(Sources/AkashicMCPKit/AkashicService.swift:2524)——匯出時再由 familyGiven 用預設切法猜。沒有宣告就走預設,而預設猜錯時不會有任何訊號。

維護者提出的兩個方向

規則 沒有宣告時
A 依名字的語言套用對應的切法 退回最簡單的切法(即現行行為)
B 不設預設:入庫時必須宣告 拒收

分析:語言是必要的標註,但單靠語言切不對

名字 語言標籤 為什麼語言決定不了
Wei Chen vs Chen Wei 兩者都是 zh-Latn 中文名的拉丁轉寫,姓在前或在後取決於出版物慣例,不取決於語言
Bertrand Teguia Tabuguia — 沒有語言規則推得出 Teguia Tabuguia 是兩個字的姓
Lou van den Dries nl van den 的處理因慣例而異:荷蘭排在 D,比利時排在 V
Pietro Di Gianantonio it 就算知道是義大利文,還要一張「哪些前綴屬於姓」的表;同類前綴在不同語言的處理相反

所以方向 B 要成立,入庫時宣告的內容必須包含結構,不能只有語言。

提案:方向 B 的具體化(待裁決)

每個新作者槽在入庫時必須帶:

  1. 結構:CSL 名字模型 family、given、non-dropping-particle、dropping-particle、suffix;或已支援的顯式逗號形 Family, Given(bug: 730 筆 person 的姓名在 .bib 輸出時顛倒——familyGiven 對已是 Family, Given 形的名字再重排一次 #377)
  2. 名字的語言標籤:BCP 47,含書寫系統子標籤(例如 zh-Hant、zh-Latn、it、nl)

其餘規則:

Type

enhancement

Expected

  • schema:Author 可帶結構化名字,與 .key/.organization/.literal 並存
  • 入庫規則:新作者槽未宣告 → 拒收
  • person 實體的 authorized 名字也能帶結構(目前 Sources/AkashicCore/Models.swift:1226 的 displayName 回傳字串,匯出時仍經 familyGiven,所以建 person 不會自動修好)
  • doctor 計數未宣告的作者槽
  • 回歸測試:上表四類名字

Clarity Surface(idd-clarify run 2026-10-02T06:08:28Z)

Type Source Question for you Status
ambiguity 「她在input的時候必須要有語言」 入庫時必須宣告的是語言、結構,還是兩者都要?(Wei Chen/Chen Wei 同為 zh-Latn) surfaced
missing-context 「既有字串作者不遷移」 未宣告結構的既有作者,匯出時要照舊猜、猜了但加警告,還是拒絕匯出? surfaced
ambiguity 「CSL 名字模型」 要完整採用 CSL 的五個名字欄位,還是先只做 family/given? surfaced

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions