方志数据本体框架 V1.0

一、五条设计原则(先立法,后建模)

#原则含义违反的后果
1溯源优先任何一条结构化事实,必须绑定原文出处(志书版本+卷/篇+页+原文摘录)。无溯源的数据不入库数据不可信→卖不出价;”信史”是方志相对其他数据源的唯一垄断优势,溯源就是它的凭证
2双时间轴每条事实区分事件时间(事情发生在何时)与记录时间(哪一年的志书这样记载)。二者都建模清代志书对明代事件的记载、新旧志书对同一事件的不同记载,无法区分→数据不可考证
3允许不确定每个字段可携带不确定度标注(存疑/异说/约数),宁可标”不确定”不可强行确定AI抽取必然有错;不建模不确定性,一次数据事故就毁掉”权威”人设
4对齐不重造地名对齐CHGIS+现行行政区划代码,时间对齐GB/T 7408,元数据对齐江苏著录规范/DC。自己只做别人没做的知识层重造轮子→数据成孤岛→永远无法与学术、政务数据流通
5事件为中心六类实体中,事件(Event)是原子核心——灾害、建置变更、工程、任免、物产记录都是事件,实体通过事件相互关联若按”实体档案卡”建模(人物一张卡、地名一张卡),得到的是百科全书;按事件建模,得到的才是时间序列数据集——后者才有买家

二、总体架构:三层模型

┌────────────────────────────────────────────────────────┐
│ L2 资产层(对外销售的产品形态)                            │
│   垂直数据集(水灾事件库/建置沿革库/人物库…)               │
│   = L1知识层按主题视图打包 + 授权/许可元数据                │
├────────────────────────────────────────────────────────┤
│ L1 知识层(核心资产,私有)                                │
│   六类实体 + 关系 + 事实(五元组)+ 溯源 + 置信度            │
│   存储:图数据库(关系网络)+ 关系库(结构化查询)双写       │
├────────────────────────────────────────────────────────┤
│ L0 文献层(对甲方交付的形态,兼容现有全部标准)              │
│   原版图像 → OCR双层PDF → 篇章树(编章节目)→ 段落切片       │
│   元数据对齐:江苏著录规范 / 成都DB5101 / 湖南规范           │
└────────────────────────────────────────────────────────┘

关键机制:L0与L1之间通过”锚点”连接。 L1中每条事实的溯源对象,精确指向L0的段落切片ID。这一条连接同时满足三个需求:甲方要的”点击答案看原文”(C端体验)、买家要的”可考证”(数据定价)、你内部要的”抽取质量回溯”(质检)。锚点是整个体系的承重墙,先建它。

三、L1核心:六类实体的字段定义

3.1 事件 Event(原子核心,最先做)

字段类型必填说明
event_idURI全局唯一,规则:fz:event:{志书代码}:{序号}
event_type受控词表一级分类:自然灾害/建置沿革/工程营造/政事/军事/经济生产/文教/人物活动/物产记录…(词表见附件A,约60个二级类目)
title文本规范化事件名,如”1998年XX江特大洪水”
time_start / time_end时间对象支持精确日期、模糊时间(”是年秋”→季节粒度)、朝代纪年(”万历十四年”→含换算公历+换算置信度)
time_granularity枚举年/季/月/日/约,如实记录原文精度,不伪造精度
place_id→地点实体事发地(多级:流域→县→乡镇→具体地点)
actors[]→人物/机构实体参与方,带角色(受灾方/主持者/施工方…)
measures{}结构化指标组按事件类型挂载不同指标模板:水灾→水位/流量/受灾面积/死亡人数/经济损失;建置→变更类型(析置/省并/改名/升格)/上级政区/治所;工程→长度/造价/工期
description_raw文本原文摘录(溯源锚点绑定处)
provenance_id→溯源对象见3.7
confidence0—1 + 等级AI抽取置信度 + 人工复核等级(未检/初检/专家定稿)
statements_conflict[]数组异说登记:不同志书对同一事件的矛盾记载,不裁决、并存呈现(这本身是学术价值)

指标模板(measure schema)是数据集定价的核心。 每类事件的指标表由资深编辑依据历代志书实际记载能力设计——例如水灾指标只设志书中真实会出现的字段,不照搬现代水文标准。这是”方志编辑知识”转化为”数据结构”的地方,也是通用软件公司做不了的地方。

3.2 地点 Place

字段说明
place_id全局唯一URI
names[]历史名称集合(正名+别名+俗名),每个名称带有效时间区间
place_type政区(省/府/州/县/乡/村)/ 自然地理(山川湖河)/ 人文地点(城池、衙署、学校、桥梁、寺观)
chgis_id对齐CHGIS地名ID(可空,逐步补)
gb2260_code对应现行行政区划代码(建立古今对照,这是政务客户的刚需)
location经纬度(点)或GeoJSON(面),带定位精度与定位依据
evolution[]沿革链:[时间区间, 隶属上级place_id, 事件event_id]——每次变更都指向引发它的事件实体

3.3 人物 Person

字段说明
person_idURI
names[]姓名/字/号/谥/曾用名,各带时间区间
bio_dates生卒年(支持”约””不详”),朝代纪年+公历换算
identity_tags受控词表:官员/乡贤/艺文/革命人物/科技…(对齐志书”人物传”类目)
office_holds[]任职记录:[机构, 职务, 起讫时间, 溯源]——任职本身就是事件,双写
place_links[]籍贯/寓居/活动地 → place_id
disambiguation同名消歧字段(生卒+籍贯+事迹指纹),同名不同人是人物库最大质量风险,必须建模

3.4 机构 Organization

字段说明
org_idURI
names[]历用名称(带时间区间)——”教育局→文教局→教育局”这类机构改名沿革是政务查询高频需求
org_type政权机构/学校/企业/社团/宗教场所/军事单位
existence设立—撤销/延续 时间区间,设立与撤销各关联event_id
hierarchy[]隶属关系链(带时间区间)——隶属关系随政区变化而变,必须时态化
location驻地 → place_id(可多次迁移,带时间区间)

3.5 指标观测 IndicatorObservation(时序数据的载体)

志书中大量”某年粮食总产X万斤”类记载,不属于事件,单独建一类观测值实体

字段说明
obs_idURI
indicator_id受控指标词表(粮食产量/人口/耕地面积/税收/降雨量/物价…约200项起步)
value + unit数值+单位,原文单位与现代单位双存(”万斤”照录,换算”吨”另存,换算规则登记)
time / place观测时点与地域范围
scope_note统计口径备注(志书口径与现代统计口径的差异说明——数据能否用于建模,全看这个字段是否诚实)
provenance_id溯源

这一类实体直接决定你能否卖给研究机构”某流域1949—2005年粮食产量时间序列”这样的数据集产品。

3.6 文献 Work(L0的元数据壳)

志书/年鉴/旧志本身作为实体:版本、纂修者、成书年代、断限(记述起止年)、篇目树、数字化状态。对齐江苏《地方志著录元数据规范》字段,L0交付物的元数据直接从这里导出——一份维护,两处使用。

3.7 溯源对象 Provenance(承重墙,独立成类)

provenance = {
  work_id      哪部志书(→Work实体,含版本)
  section_path 篇目路径(卷三·水利志·防汛)
  page         页码(对应扫描图像ID)
  chunk_id     L0段落切片ID(精确锚点)
  raw_text     原文摘录(≤200字)
  extractor    抽取方式(人工/AI模型名+版本)
  reviewed_by  复核人 + 复核时间
}

每条事实(L1任何实体的任何字段)都指向一个provenance对象。没有provenance的字段不允许入库——这是入库校验的硬规则。

四、关系体系(L1的边)

只定义12种核心关系,克制为上(关系爆炸是本体工程第一死因):

关系连接时态
发生于 occurred_atEvent→Place自带时间洪水发生于XX县
参与涉及 involvedEvent↔Person/Org带角色某人主持修堤
引发 causedEvent→Event水灾引发赈济
建置变更 alteredEvent→Place/Org析置事件改变县界
隶属 belongs_toPlace/Org→Place/Org✔ 区间XX乡隶属XX县(1958—1984)
曾用名 former_namePlace/Org自关联✔ 区间名称沿革链
任职 holds_officePerson→Org✔ 区间任知县
籍贯/活动地 linked_placePerson→Place寓居
观测于 observed_atObservation→Place+Time内嵌
见于记载 attested_in任何实体→Work溯源的关系化表达
异说 conflicts_withEvent↔Event矛盾记载互联
同指 same_as跨库实体对齐CHGIS、对齐其他志书同一实体

所有带✔的关系必须有 valid_from / valid_to 字段。 时态是历史数据与普通数据的根本区别,CHGIS的核心价值就在于此,必须全盘继承。

五、时间建模细则(最容易出错的地方)

  1. 时间对象统一结构{原文表述, 纪年类型(公历/朝代年号/民国/干支), 换算公历值, 换算方式(自动/人工), 换算置信度, 粒度}
  2. 模糊时间如实降粒度:”是年秋”→存为当年9月±,粒度=季,禁止伪造成精确日期
  3. 朝代纪年换算表内置为受控资源(万历十四年→1586,多来源交叉验证);
  4. 区间开放语义:valid_to为空=延续至今;”不详”是合法值,不同于空值。

六、与现有标准的对齐映射(验收与流通的两张通行证)

你的层对齐对象方式
L0元数据江苏《地方志著录元数据规范》、成都DB5101/T 221、湖南加工规范Work实体字段与其一一映射,导出即合规
L0加工流程各省数字化加工规范加工合同直接引用其条款,降低投标响应成本
L1地点CHGIS地名辞典(tgaz.fudan.edu.cn,有开放API)place.chgis_id + same_as关系
L1地点GB/T 2260行政区划代码place.gb2260_code
L1时间GB/T 7408日期表示公历值字段格式
L1概念模型CIDOC-CRM(国际文化遗产本体)写一份轻量映射文档(Event≈E5, Actor≈E39/E74…),这张映射表是未来发论文、申标准、谈国际合作的接口

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理