欢迎光临
我们一直在努力

Palantir Study 13|Interface 等高级类型:四种抽象怎么选

恒川工业的 BA 在白板上画了一个 Facility,准备让 Plant 和 Warehouse 都“继承”它。开发人员只问了一句:“初版应用做在 Workshop,而 Interface 目前不受 Workshop 支持,这个抽象准备交付给谁?”

会议安静了下来。

抽象不是把相似字段圈在一起,也不是让模型显得高级。它必须为真实消费方消除重复,同时不能制造产品支持、权限和迁移上的新债务。

本篇要解决的问题

上一篇解决了对象身份:ERP M-1042、WMS MAT1042-SH 和供应商门户 P-8821 经过规则确认后,才共同指向 Material / MAT-0001042。

身份稳定以后,重复开始出现:Plant 和 Warehouse 都有名称与位置;多个对象都有风险等级和生效日期;520 EA 总被拆成数量和单位;同一物料编码规则在 Pipeline 和 Ontology 中重复校验。

这些问题分别该交给 Interface、Shared Property、Struct 还是 Value Type?又在什么时候应该坚持使用普通 Object Type 和 Property?

一句话定义:
Ontology
 的高级类型构件,是在已有 Object Type 与 Property 之上复用对象能力、属性元数据、复合值结构或字段语义的建模机制;它们减少的是被证实的重复,不是代替具体
业务对象

“高级类型系统”是本系列对四类构件的教学分组,不是 Palantir 对外提供的一个独立产品名称。

先放回 Palantir 架构:四个词并不在同一层

它们都服务于 Foundry 管理的 Ontology,但职责和生命周期不同。

Interface 与 Object Type 都是 Ontology type,但一个抽象、一个具体。Shared Property 与 Struct 解决 Property 层的问题。Value Type 能用于 Ontology,却与 Space 绑定。Palantir:Value types overview

构件

概念类型

上一级/基础

平级或最易混淆项

下游消费者

Interface

抽象 Ontology type

Ontology Language;interface properties、Link/Action constraints、metadata

具体 Object Type

实现它的 Object Types、Functions、Object Set、OSDK 等受支持入口

Shared Property

可跨 Object Type 使用的 Property

Property 元数据与各对象的数据映射

Local Property

多个 Object Types 与其建设者

Struct

Property base type

Dataset/Restricted View 中的单一 struct column

独立 Object Type、普通标量 Property

Ontology Property、Action、受支持应用与 Functions

Value Type

Space 关联的字段语义类型

primitive field type、metadata、constraints、版本和权限

primitive field type、Property

Builder pipelines、Ontology Properties 等同 Space 消费方

一张选择表:它们各自在复用什么

你真正想统一的东西

优先评估

不要误写成

多类对象共同具备的形状和可交互能力

Interface

父表、对象全集或共享数据源

多个属性的名称、描述、显示等 metadata

Shared Property

多对象共用同一份属性值

一个属性值内部不可分的多个字段

Struct

没有身份的“轻量 Object”

一个值的领域含义、格式和校验约束

Value Type

Property 或 Object Type 的替代品

只有一处使用、语义尚未稳定

普通 Object Type / Local Property

为未来想象预建抽象层

这四项并非成熟度阶梯。项目不会从 Local Property “升级”到 Struct,再升级成 Interface。它们回答的是四类不同问题。

Interface:统一的是对象能力,不是对象数据

接口(Interface)是一种抽象 Ontology type,用来描述 Object Type 应有的形状和能力。它可以包含 interface properties、Link Type constraints、Action Type constraints 与 metadata;一个 Object Type 可以实现多个 Interface。Interface 没有 backing dataset,不能直接实例化为 Object。Palantir:Interfaces overview

在恒川,具体对象仍然是:

  • Plant / PLANT-EAST,由 ERP/MES 主数据支撑;

  • Warehouse / WH-E01 与 Warehouse / WH-S02,由 WMS 支撑。

候选 Facility Interface 可以要求实现者提供 facilityName、location 等共同能力。它不产生一条名为 Facility-001 的记录,也不把 Plant 与 Warehouse 两份 datasource 合成一张表。

Interface 的价值出现在消费端。假设已确认两个工作流:TypeScript v2 Function 跨 Plant 与 Warehouse 检索供应节点;TypeScript OSDK 应用通过共同 API 展示设施。此时新增 ColdStorage Object Type 并实现 Facility,已有工作流可以少做一次按具体类型重构。

但若唯一消费方是初版 Workshop 页面,就不应为想象中的未来先建 Interface。按 2026-08-08 官方页面,当前支持面如下:

支持状态

应用/服务

当前边界

支持

Ontology Manager、Marketplace、TypeScript v2 Functions

可定义、编辑、实现、打包或在 TS v2 Functions 中使用

部分支持

Actions

可对实现 Interface 的对象做创建、修改、删除或 Link 操作;Interface Action Type constraints 仍为 beta

部分支持

Object Set Service

可按 Interface 搜索、排序;聚合和 Interface Link Type 支持仍在开发

部分支持

Ontology SDK

TypeScript 当前支持;Java 与 Python 支持仍在开发

尚未支持

Workshop、TypeScript v1 Functions、Python Functions

不能假设与具体 Object Type 相同的消费能力

这张表是带日期的产品事实,不是永久能力承诺。项目发布超过 30 天或目标 enrollment 不同时,应重新打开官方文档核验。

在 Ontology Manager 中,建设者会看到带虚线边框图标的 Interface,配置属性与约束,再由具体 Object Type 实现。运营用户看到的仍应是 Plant、Warehouse 及其业务操作。

Shared Property:统一 metadata,不统一值

共享属性(Shared Property)是可被多个 Object Type 使用的 Property。它让团队一致建模,并在一个位置集中维护 Property metadata;各 Object Type 背后的数据仍然分别存在。Palantir:Shared properties overview

恒川可评估 externalReference Shared Property:Plant 从 ERP 取得外部编码,Warehouse 从 WMS 取得外部编码。两边共用名称、描述和展示语义,但各自的值和 datasource 仍然独立。

Ontology Manager 为 Shared Property 提供独立管理页面,并用地球图标标识。集中维护意味着一次 metadata 修改可能影响多个 Object Type,因此必须有 Owner 和变更评审。

以下情况不值得共享:两个字段都叫“状态”,但一个表示仓库营业状态,另一个表示缺料处置状态。名字相同不等于业务语义相同。若硬合成一个 Shared Property,只会把差异藏进枚举和说明文字。

Struct:把多个字段作为一个复合值

结构体(Struct)是 Ontology Property 的一种 base type,用一个有 schema 的 Property 容纳多个字段。上游字段可以来自不同数据源,但在定义到 Ontology 前,必须先转换为单一 struct type column。Palantir:Structs overview

例如 AP-2048 的调拨量可以候选建为:

transferQuantity = { amount: 520, unit: "EA" }

当金额和币种、数量和单位在该场景中必须作为一个整体读取和编辑,Struct 比两个彼此可能错配的普通字段更清楚。但“放在一起显示”不是充分理由。

如果某个字段组合需要独立 Primary Key、Link、Action、权限或生命周期,它已经更像一个业务对象。例如一条可被批准、撤销和对账的调拨任务,不应藏进 Allocation Proposal 的 Struct,而应评估独立 Object Type。

Struct 还有几条不能绕过的当前限制:

  • 深度只有一层,不能嵌套,且至少包含一个字段;

  • 当前字段类型只支持官方清单中的 primitive types;

  • 数组中的 Struct 查询可能分别匹配不同元素的字段,不能想当然地按同一个元素成对命中;

  • 不支持 Object Storage v1,因此对象数据必须走支持 Struct 的 Object Storage v2 路径;

  • 当前只能从 Dataset 与 Restricted View 创建;OSDK 支持因语言而异,Functions 的参数和编辑能力也要按语言核验。

在产品里,建设者先在上游形成 struct column,再在 Ontology Manager 定义 Struct/Property 映射。当前 Action 可以创建或修改 Struct 值,Workshop 可以显示并把它作为变量使用,但这不等于所有入口都完整支持。

Value Type:统一“这个值是什么意思”

值类型(Value Type)是对 primitive field type 的语义包装,附加 metadata 与 constraints。Property 回答“哪个对象拥有哪个特征”,Value Type 回答“这个值属于什么领域类型、必须满足什么约束”。Palantir:Value types overview

恒川可为 canonical material ID 评估 MaterialId Value Type:底层仍是 STRING,但它明确表示跨系统归并后的物料身份,并可加入受控格式校验。Pipeline 字段和 Material.canonicalMaterialId Property 可以复用同一语义,不必每处依赖列名和说明猜测。

若 WarehouseCode 只在 Warehouse 一个 Property 上出现,Local Property 已经足够;同一语义进入多个 Pipeline、Object Type 或参数后,才评估 Value Type。

Value Type 与 Space 关联,只能在定义它的 Space 内使用;Default ontology 不可用。它还受权限和版本治理。“跨平台复用”不等于跨所有 Space 全局可见。Palantir:Value types overview

建设者定义 Value Type 后,可在 Builder pipeline 字段和 Ontology Property 上使用。变更约束前要检查版本兼容、既有数据与消费方。

四种错误抽象,怎样伤害缺料处置

错误做法

表面收益

恒川后果

正确判断

先建 Facility,再找用例

看起来统一

Workshop 无法按预期消费,团队又为 Plant/Warehouse 写两套逻辑

先列真实消费者与支持入口

把所有 status 设为 Shared Property

减少属性名

仓库营业、订单履行、缺料处置状态被混成一套枚举

只共享完全一致的业务语义和 metadata

把调拨任务做成 Struct

少建一个对象

无法独立授权、追踪 Action、失败与对账

有身份和生命周期就评估 Object Type

把 MaterialId 当全局 Value Type

似乎统一全集团

目标 Space 无法使用或版本升级破坏 Pipeline

先确认 Space、权限、版本和迁移范围

抽象还会进入函数签名、Action 参数、SDK、权限和发布包。提前抽象未必专业;先获得复用证据,才有资格抽象。

BA 工作台:Ontology Abstraction Decision Card

Ontology Abstraction Decision Card 是本系列的 BA 实施资产,不是 Palantir 官方固定模板。它用于方案设计和变更评审,要求每个抽象候选同时说明收益、消费者和反证条件。

卡片字段

Facility Interface 填写样例

候选构件

Interface:Facility

要消除的重复

Plant 与 Warehouse 的共同设施查询和 API 交互逻辑

具体实现者

Plant、Warehouse;均保留独立身份与 datasource

已确认消费者

TS v2 Function;TypeScript OSDK 应用

共同契约

facilityName、location;未来 Link/Action constraint 另行评审

产品支持核验

两个消费者当前可支持;Workshop 当前不支持,不能作为验收入口

Space / 权限

与目标 Ontology 同一治理范围;Interface 定义和 Object 数据权限分别验证

迁移代价

对齐 Property 语义、修改 Function/OSDK 类型、回归搜索与 Action

反证条件

只有一个消费者;两个类型的“位置”口径不同;初版只能用 Workshop

Owner

Ontology Product Owner;Plant 与 Warehouse 业务 Owner 联合签字

验收方式

两类对象均能被同一消费方读取;新增第三类实现者无需复制核心逻辑;具体类型功能不退化

当前决定

有条件采用:两个消费者完成 PoC 和权限测试后进入正式 Ontology

对其他三类候选,BA 可用同一张卡快速给出结论:

候选

复用证据

当前决定

上线前必须验收

externalReference Shared Property

Plant/Warehouse 共用相同 metadata,数据仍来自 ERP/WMS

可采用

两边语义一致;metadata 变更有 Owner 与影响分析

transferQuantity {amount, unit} Struct

520 与 EA 必须共同读取、编辑

条件采用

OSv2;上游单一 struct column;Action/Workshop/查询行为通过测试

MaterialId Value Type

Pipeline 与 Property 重复使用身份语义和格式校验

条件采用

同一 Space;非 Default ontology;权限、版本、存量数据兼容通过

一套可以直接执行的决策顺序

  • 先写消费者。 没有具体应用、Function、Action、Pipeline 或 SDK 消费者,不进入抽象评审。

  • 再写复用内容。 是对象能力、metadata、复合值,还是字段语义?只选一个主问题。

  • 核对产品路径。 检查目标 enrollment、Interface 支持矩阵、OSv2、Datasource、Space、语言 SDK 与 Function 版本。

  • 写出反证。 什么条件出现时应退回普通 Object Type 或 Local Property?

  • 做最小 PoC。 不只验证能创建,还要验证查询、Action、权限、版本和实际交付入口。

  • 确定 Owner。 抽象一旦被多个对象采用,修改不再是单团队私事。

  • 本系列建议“至少两个具体 Object Type、两个已确认消费者”后再评估 Interface。这是实施归纳,不是 Palantir 官方准入规则;它的目的,是让抽象由使用证据驱动。

    结论:抽象必须服务运行

    Interface 复用对象的形状和能力;Shared Property 复用 Property metadata;Struct 把多个字段组成一个 Property 值;Value Type 复用值的领域语义和约束。四者都不能自动共享对象数据,也不能代替对象身份、Link、Action 和权限设计。

    在恒川,Facility 是否成立,不取决于 Plant 和 Warehouse 看起来相似,而取决于是否有受支持的共同工作流。transferQuantity 是否成为 Struct,也不取决于页面排版,而取决于它是不是不可分的值,并能穿过 OSv2、数据源与消费入口的限制。

    模型现在已经能表达“谁、有什么特征、怎样复用”。但缺料处置还有一个更难的问题:availableQuantity=760 EA 是此刻状态、每日快照,还是一段时间序列?供应商承诺从 8 月 12 日改到 8 月 18 日,应该覆盖当前值,还是保留为业务事件和当时证据?

    本文依据 Palantir 公开资料、本地阅读笔记及实施研究整理,与 Palantir Technologies 无官方关联。“Ontology 高级类型系统”分组和 
    Ontology Abstraction Decision Card 不是 Palantir 官方独立产品或固定模板。产品能力与支持矩阵可能变化,请以官方文档和目标环境为准。

    赞(0)
    未经允许不得转载:171主机测评 » Palantir Study 13|Interface 等高级类型:四种抽象怎么选
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址