Skip to content

A relation says whether it happens or holds - #593

Merged
WaylandYang merged 2 commits into
devfrom
feat/a-relation-says-when-it-holds
Sep 10, 2026
Merged

A relation says whether it happens or holds#593
WaylandYang merged 2 commits into
devfrom
feat/a-relation-says-when-it-holds

Conversation

@WaylandYang

Copy link
Copy Markdown
Contributor

实现 0007 的一处补漏,状态行已更新;不动 0031,是让它真正落到语料长出来的关系上。

问题

冷启动按票数建关系时,temporal 写死 state,注释给的理由是「它只在 functional 为真时驱动时态引擎,而这条路永不自动设那一位,所以没有行为后果」。这个理由在 0031(#486)之后已经不成立Validity::under 现在按谓词的 temporal 规整每一次写入,读出侧 world_axis 也按它折算。于是语料自己长出来的每一个关系都是状态:

Meridian invested Kestrel 2025-05-09   →   从那天起一直在投

时间轴上读出来就是这样。而它是发生过的一件事。实测一个库里 43 个关系全是 state,一个 event 都没有——这条线画着(0031),没人往里填。

改法

答案本来就在手边。提案那一步问模型要的 JSON 里早就有 "temporal":"state|event|eternal",冷启动拿着同一份提案建类、建属性、做 map_to,唯独关系这一档把它丢了。现在按 key 查,再按同组 forms 查(计数取的规范 key 是组里事实最多的说法,模型提案挑的未必是同一个)。

采纳与否仍只由票数决定(0007 的原则不变),模型只回答「这个关系是哪一种」——那是计数答不了的意义问题,跟 fold_by_meaning 保留模型的理由一样。

查不到、或模型编了第四个值,一律 state。三者里它最保守:不会像 event 那样把 valid_to 收成一个点——错判成 event 比错判成 state 贵。

端到端

隔离库、不种任何谓词、六篇语料冷启动:

按票数采纳关系 key=invested_in docs=2 facts=2 moved=2 … temporal="event"
invested_in | relation | event | 2 facts
valuation   | attribute | state | 3 facts

两条设计说明

采纳不重规整时间。 这两条事实写入时谓词还不存在,valid_to 存的是 NULL;采纳只补 predicate_id。读出侧 world_axis读时查谓词的 temporal:

存: valid_from 2025-05-02, valid_to NULL
读: 2025-05-02 → 2025-05-03    ← 一天的格子

0022/0031 把「读形状」收在 world_axis 一处,写侧再加一个规整就是第二个解释者,还要原地改账本行。不加。

已有库不用迁。同一条读时查的性质意味着:在本体页把 invested 从 state 改成 event,它已有的每一行立刻按点读。

明确没做的(下一刀)

  • OWL 导入写死 'state'create_relation_types_bulk)。OWL 里没有这个信息,1521 个 schema.org 属性无从判;这是包作为冷启动(0008)时最大的一块,要么让模型在导入时分一遍,要么在本体页批量改。
  • 属性一律 state。属性的模型是「值从某刻起成立、直到被取代」,state 是对的;不改。
  • 抽取提示词一旦本体里有了 event 关系,自动带 [event] 标记告诉模型只写一个日期(0031 已有)。

测试

proposed_temporal 的单测钉住:按 key、按 forms、大小写、不认识的值回落 state、空提案回落 state。fmt / clippy / 232 个单测全绿。

🤖 Generated with Claude Code

WaylandYang and others added 2 commits September 10, 2026 18:43
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com>
@WaylandYang
WaylandYang merged commit 2838296 into dev Sep 10, 2026
4 checks passed
@WaylandYang
WaylandYang deleted the feat/a-relation-says-when-it-holds branch September 10, 2026 11:07
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.

1 participant