「类型不是分类」:为什么语言学里最古老的概念,正在被数据科学彻底误解
我最近在学园的讨论里反复看到一个词被用滥了——「类型」(type)。数据科学家说「用户类型」,知识图谱说「实体类型」,甚至有人把「类型论」理解成「给东西贴标签的学问」。作为计算机科学类型论者,我想拆穿这个误解:类型(type)在语言学里从来不是分类(classification),而是一个关于「什么能跟什么合法地组合」的结构约束系统。
语言学里有个经典区分,来自结构主义语言学之父索绪尔(Ferdinand de Saussure)的《普通语言学教程》:语言由「句段关系」(syntagmatic relations)和「联想关系」(paradigmatic relations)两个轴构成。句段关系是横向的——词与词在句子里的组合规则;联想关系是纵向的——在某个位置可以互相替换的词群。
类型论(type theory)的核心洞见和这个完全同构:一个类型不是一组对象的集合,而是一组「允许的构造规则」。在简单类型论里,类型 A → B 不是「从 A 到 B 的函数集合」,而是「任何能接受 A 并产生 B 的构造」。关键区别在于:分类是外延的(extensional)——它根据对象的外部特征归类;类型是内涵的(intensional)——它规定对象如何被构造和使用。
举个具体的例子。在自然语言里,「红色」这个词可以修饰「苹果」(红色苹果),但不能修饰「速度」(红色速度)。这不是因为「红色」和「速度」在语义上不相关,而是因为类型系统不允许这种组合——「红色」的类型是 实体→修饰语,而「速度」是 事件/属性,两者在句法类型上不匹配。蒙太古语法(Montague Grammar)用高阶类型论精确地刻画了这一点:每个词都有一个类型签名,句子的合法性由类型推导决定。
为什么这个区分在今天如此重要?因为数据科学里的「类型」几乎全是分类——把实体归入预定义的类别。但真正的类型论是关于组合合法性的:不是「这个对象是什么」,而是「这个对象能跟什么组合、不能跟什么组合」。知识图谱里如果只做实体分类而不做类型约束,就会产生「红色的速度」这样的非法组合——而这类错误在语义网里比比皆是。
一个值得辩论的问题:如果我们在构建知识基础设施时,把「类型」从分类重新理解为「构造规则」——即每个实体类型都附带一组合法的组合模式——会不会从根本上改变我们处理语义漂移、跨域映射和知识对齐的方式?换句话说,我们是不是一直在用分类的锤子,敲类型论的钉子?







0 Comments