知识表示基础:实体、关系与三元组
一、实体(Entity)的直观理解
实体是知识图谱中「可被指称、可被区分」的事物。现实世界里的人、地点、组织、作品、事件、概念、时间点等,只要需要在图中单独讨论、并与其他事物建立关系,就可以建模为一个实体。例如:爱因斯坦、北京、谷歌公司、《相对论》、1921 年、诺贝尔物理学奖,各自是一个实体。
实体的几个要点:可标识——每个实体要有稳定、唯一的标识(在 RDF 里常是 URI/IRI),避免「此北京」和「彼北京」混淆;可类型化——实体通常属于某类(人、城市、公司、事件等),类型影响可连哪些关系、可有哪些属性;可有多条关系——同一实体会参与多条三元组,既是某些关系的主体,也可以是另一些关系的客体,从而处在图的「交叉路口」。
二、关系(Relation)的直观理解
关系描述「两个实体之间以何种方式关联」,在图中对应一条有向边,边上带有类型(谓词)。例如「爱因斯坦 –创立→ 相对论」「普林斯顿 –位于→ 美国」:前者是「人–创立–理论」,后者是「地点–位于–国家」。关系的方向很重要——「A 创立 B」和「B 创立 A」含义相反,图中用从 A 指向 B 的箭头表示。
关系通常有定义域与值域的约束:如「创立」的主体多为「人」或「组织」,客体多为「理论」「作品」「公司」等。这些约束由 Schema 或本体定义,既帮助人在建模时少犯错误,也为后续推理(如类型检查、推理规则)提供依据。同一对实体之间可以有多条不同关系:例如「北京」与「中国」之间可以有「是…首都」「位于」「属于」等,各自是一条边。
三、三元组(Subject–Predicate–Object)模型
知识图谱中最小的表达单位是三元组(Triple):由主体(Subject)、谓词(Predicate)、客体(Object)三部分构成,表示「主体与客体之间存在谓词所描述的关系」。习惯写成 (S, P, O) 或「S –P→ O」:S 和 O 是实体(或 O 有时为字面量,见下节),P 是关系的类型。
例如:(爱因斯坦, 创立, 相对论)、(北京, 是…首都, 中国)、(爱因斯坦, 获奖年份, 1921)。前两条的客体都是实体;第三条的客体是字面量「1921」,表示实体的某个属性值。一张知识图谱在逻辑上就是三元组的集合;把这些三元组画出来,节点即实体,边即关系,就得到我们熟悉的图视图。
读作:主体「爱因斯坦」与客体「相对论」之间存在谓词「创立」所描述的关系。
四、属性与关系的区别
在建模时经常要区分属性(Attribute)和关系(Relation)。
- 关系:连接两个实体,客体是图中的另一个节点,例如「爱因斯坦 –任教→ 普林斯顿」。关系可以继续延伸(普林斯顿 –位于→ 美国),形成多跳。
- 属性:描述实体自身的某个「值」,客体通常是字面量(数字、字符串、日期等),不再作为图中的节点参与其他关系。例如「爱因斯坦 –出生年份→ 1879」「北京 –人口→ 2188万」。
何时用属性、何时用关系?若这个「值」需要在图中被引用、被推理、或与别的实体并列讨论,往往建模成实体并用关系连接;若只是描述性信息、不参与图上的遍历,用属性即可。例如「获奖年份」若只用于展示,可以存成属性 1921;若要做「同年获奖的人」这类查询,把「1921年」也做成实体、用「获奖年份」关系连到「爱因斯坦」和「玻尔」更合适。
属性(实体 → 字面量)
客体是值:数字、字符串、日期。不参与图上的多跳。例:爱因斯坦 –出生年份→ 1879;北京 –人口→ 2188万。
关系(实体 → 实体)
客体是图中另一实体,可继续延伸。例:爱因斯坦 –任教→ 普林斯顿 –位于→ 美国。
五、多跳与路径
单条三元组只表达「一步」关系。现实问题往往需要多步:从实体 A 经关系 R1 到实体 B,再经 R2 到实体 C,形成一条路径。例如「爱因斯坦 –任教→ 普林斯顿 –位于→ 美国」:两跳得到「爱因斯坦在美国的任教机构所在国」。多跳是知识图谱相比「单表查询」的核心优势——在关系库里需要多次 JOIN,在图里就是沿边遍历。
路径可以形式化为一串交替的实体与关系:E1 –R1→ E2 –R2→ E3 –R3→ …。查询时常用「从某实体出发、沿某类边、走若干步、到达某类实体」的模式;推理时也会利用「若存在路径 A→…→B,则可能蕴含某种结论」。后续章节会讲 SPARQL 中的属性路径、图上的最短路径与模式匹配,本质上都是在利用多跳与路径。
一句话: 实体是可标识、可类型化的事物;关系是实体间的有向、带类型的边。三元组 (S, P, O)是知识的最小单位,图即三元组集合的直观表示。属性是实体到字面量的描述,关系是实体到实体、可多跳延伸。多跳路径由多条三元组首尾相接形成,是图上查询与推理的基础。
六、小结
实体是可指称、可类型化的事物,对应图中的节点。关系是实体间的有向边,带谓词类型,可有定义域与值域。三元组 (S, P, O)表示「S 与 O 之间存在 P 关系」,是知识图谱的最小单元;图即三元组集合。属性连接实体与字面量,关系连接实体与实体,后者支持多跳。多跳与路径由多条三元组首尾相接形成,是复杂查询与推理的载体。下一章我们从图论视角看知识图谱:节点、边、有向/无向、度、路径与连通分量,把「图」的数学语言与知识表示对齐。