Apache Ossie本体概念详解:一文看懂EntityType与ValueType的本质区别
Apache Ossie本体概念详解一文看懂EntityType与ValueType的本质区别【免费下载链接】ossieApache Ossie, industry wide specification effort to standardize how we exchange semantic metadata across analytics, AI and BI platforms, providing a vendor neutral, single source of truth for semantic data项目地址: https://gitcode.com/GitHub_Trending/osi1/ossieApache Ossie 是一个面向数据分析、AI 与 BI 生态的开源语义元数据交换标准前称 OSI其本体Ontology规范中最容易混淆的两个核心概念就是EntityType实体类型与ValueType值类型。本文面向新手用一个生活化的例子加一张对比表帮你快速分清两者的本质区别不再在建模时选错类型。如上图所示本体Ontological Layer位于 Apache Ossie 三层架构的最上层负责描述业务里有哪些概念、概念之间如何关联而 EntityType 与 ValueType 正是定义这些概念的两种基本方式。一句话区别是对象还是数据先记住这个判断标准 EntityType现实世界中独立存在的东西不能直接用值引用必须借助其他信息来定位。例如一个人要凭身份证号或邮箱地址才能找到他。ValueType一种带了业务语义的数据类型。例如身份证号本质是一个字符串或整数但被赋予了必须恰好九位数字这类额外含义。规范原文的表述见 ontology/ontology.mdAn entity type is a concept that represents real-world objects that must be referenced using other information. A value type is a concept that represents instances of some data type with additional semantics.在 JSON Schema 中每个概念concept的type字段只有两个合法取值EntityType和ValueType见 ontology/ontology.json二选一没有第三种。EntityType现实世界的对象EntityType 描述的是业务里的名词性主角人、公司、机场、航班……它们有几个鲜明特征必须有识别关系identify_by实体对象不能凭空引用要通过一个或多个识别关系来定位。比如Airport用 IATA 三字码code识别Aircraft用tailnum尾号识别。只能继承其他 EntityType每个实体类型隐式继承内置概念Any最通用的实体类型。可以拥有关系relationships实体之间通过关系连接比如航班在某机场出发。以仓库中的航班示例 examples/flights.yaml 为例Airport就是一个典型的 EntityType- concept: Airport type: EntityType identify_by: [ code ] # 通过 AirportCode 唯一识别 relationships: - name: code roles: - concept: AirportCode # 识别关系指向一个 ValueType multiplicity: OneToOne注意Airport用identify_by: [code]声明我要靠 code 这个关系找到你而 code 的另一端AirportCode恰恰是一个 ValueType——这就是两类概念如何协作的典型模式。ValueType带业务语义的数据ValueType 描述的是值但它比数据库里的裸类型String、Integer多了一层业务含义必须直接或间接继承内置值类型Integer、String、Date、Decimal等见 ontology/ontology.md 的内置概念列表。可以用 requires 加约束把业务规则写进类型本身。还是看航班示例- concept: DegreesLatitude type: ValueType extends: [ Decimal ] requires: [ DegreesLatitude 90, DegreesLatitude -90 ] - concept: CancelationCode type: ValueType extends: [ String ] requires: [ CancelationCode A OR CancelationCode B ... ]DegreesLatitude纬度值只是Decimal但被约束在 -90 到 90 之间CancelationCode只是String但只允许 A/B/C/D 四个取值。同样的裸数据一旦挂上 ValueType业务含义、校验规则就随之确定了——这正是单一事实来源的价值所在。EntityType 与 ValueType 对比速查表对比维度EntityType实体类型ValueType值类型本质现实世界的独立对象带业务语义的数据类型类比实体 / 对象类型数据类型 / 域Domain如何引用必须通过identify_by识别关系间接引用值本身即可传递和引用继承规则只能继承其他 EntityType隐式继承Any必须直接或间接继承内置值类型典型字段identify_by、relationshipsextends、requires示例Airport、Flight、CarrierAirportCode、Delay、Distance新手建模三步判断法写 YAML 时拿不准选哪个按顺序问自己三个问题 ✅它是一个东西还是一个值会在现实中被指向、有生命周期机场、航班、客户→ EntityType只是某个属性取的值价格、日期、编码→ ValueType。引用它需要钥匙吗需要先拿 ID 再找对象→ EntityType记得写identify_by。它是某内置类型的业务子集吗是如只允许 A/B/C/D 的字符串→ ValueType用extendsrequires表达。一个实用经验实体的身份往往就是某个 ValueType。Aircraft靠TailNr识别、Route靠RouteId识别——识别关系OneToOne是连接两类概念的桥梁。深入阅读规范与源码在哪里想动手验证或二次开发建议按这个顺序阅读 本体规范全文概念、关系、识别关系、约束与推导ontology/ontology.md机器可读的 JSON Schema校验概念类型是否合法ontology/ontology.json完整示例TPC-DS 语义模型 examples/tpcds_semantic_model.yaml、本体示例 examples/flights.yamlPython 参考实现中的ConceptType枚举与Concept模型converters/ontology/src/ossie_ontology/model.py核心规范文档逻辑层与表达式语言core-spec/spec.md小结EntityType 是谁现实对象靠识别关系定位彼此用关系连成业务网络ValueType 是什么值内置数据类型的业务化子集用extends定血统、用requires定规则两者通过识别关系identify_by OneToOne握手共同构成 Apache Ossie 本体层的概念世界。理解了这个区别你就能读懂任意一份 Ossie 本体文件也为后续学习关系多重度ManyToOne/OneToOne、推导表达式derived_by打下基础。【免费下载链接】ossieApache Ossie, industry wide specification effort to standardize how we exchange semantic metadata across analytics, AI and BI platforms, providing a vendor neutral, single source of truth for semantic data项目地址: https://gitcode.com/GitHub_Trending/osi1/ossie创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

正交表构造方法PPT课件:有限域、贪心算法与Python批量生成

正交表构造方法PPT课件:有限域、贪心算法与Python批量生成

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 22:01:30 阅读更多 →
MATLAB实现CDMA基带仿真:Walsh正交性与PN码扩频

MATLAB实现CDMA基带仿真:Walsh正交性与PN码扩频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 22:01:43 阅读更多 →
Rivet Actors 全栈实战:用 Hono 后端与 React 前端构建类型安全的实时应用

Rivet Actors 全栈实战:用 Hono 后端与 React 前端构建类型安全的实时应用

Rivet Actors 全栈实战:用 Hono 后端与 React 前端构建类型安全的实时应用 【免费下载链接】actors Rivet Actors are the primitive for stateful workloads. Built for AI agents, collaborative apps, and durable execution. 项目地址: https://gitcode.com/G…

2026/9/19 22:02:03 阅读更多 →

最新新闻

Laravel学习路径:从PHP基础到高级开发实战

Laravel学习路径:从PHP基础到高级开发实战

1. Laravel 学习路径全解析作为一名使用 Laravel 开发过 20 项目的 PHP 工程师,我经常被问到"如何系统学习 Laravel"。今天我就把自己多年积累的学习路线和经验分享给大家,这是一条经过实战验证的有效路径。Laravel 作为目前最流行的 PHP 框架…

2026/9/19 22:01:54 阅读更多 →
深入解析 ik_llama.cpp PR 446:MMVQ 内核中隐藏的 MoE 崩溃 bug 修复

深入解析 ik_llama.cpp PR 446:MMVQ 内核中隐藏的 MoE 崩溃 bug 修复

人工智能大模型推理引擎本地部署模型量化模型优化 【免费下载链接】ik_llama.cpp llama.cpp fork with additional SOTA quants and improved performance 项目地址: https://gitcode.com/GitHub_Trending/ik/ik_llama.cpp 点击查看 免费下载 本文基于 ik_llama.cp…

2026/9/19 22:01:54 阅读更多 →
AI全栈开发实战:从技术选型到RAG/Agent工程化

AI全栈开发实战:从技术选型到RAG/Agent工程化

从去年开始,我明显感觉到一个趋势:AI全栈开发这个词,正在从概念走向每一个技术团队的日常。以前说全栈,指的是前端、后端、数据库、运维这一条链路;现在说AI全栈,多出来的不是一个“调接口”的AI层&#xf…

2026/9/19 22:01:54 阅读更多 →
styled-components 实战指南:从安装、动态样式到 RSC 主题的一体化 React 样式方案

styled-components 实战指南:从安装、动态样式到 RSC 主题的一体化 React 样式方案

styled-components 实战指南:从安装、动态样式到 RSC 主题的一体化 React 样式方案 【免费下载链接】styled-components Fast, expressive styling for React. Server components, client components, streaming SSR, React Native—one API. 项目地址: https://g…

2026/9/19 22:01:54 阅读更多 →
基于MATLAB的阵列信号处理建模与仿真:从ULA到MUSIC

基于MATLAB的阵列信号处理建模与仿真:从ULA到MUSIC

简介:基于MATLAB的阵列信号处理模型构建与仿真方法PDF文档,是一份面向通信、雷达、声纳等领域研究者的技术参考文献,重点解决阵列信号处理中模型建立、算法实现与仿真验证的工程问题。资源共1个PDF文件,压缩包体积约232KB&#xf…

2026/9/19 22:01:53 阅读更多 →
ROS2国产化迁移与Nav2导航实战:DDS调优、3D雷达配置及龙芯平台适配

ROS2国产化迁移与Nav2导航实战:DDS调优、3D雷达配置及龙芯平台适配

1. 机器人操作系统与国产化-ROS2生态全景1.1 为什么ROS2是机器人开发的分水岭2017年底,当第一个ROS2正式版Ardent Apalone发布时,很多做机器人开发的老兵其实是不太买账的。毕竟ROS1用了快十年,生态成熟、教程遍地、社区活跃,你突…

2026/9/19 22:00:53 阅读更多 →

日新闻

BP神经网络时序预测:滑窗长度与多窗口平均策略

BP神经网络时序预测:滑窗长度与多窗口平均策略

简介:面向机器学习、深度学习与数据建模学习者的一份完整研究文献,聚焦BP神经网络在农业产量预测中的应用。文档以1980—2018年全国棉花产量为样本,系统讲解数据归一化处理、激活函数原理、多层神经网络结构搭建及训练流程,展示敏…

2026/9/19 0:00:30 阅读更多 →
Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

上个月调一个Deformable DETR模型,在单卡上要跑将近两天。第二天早上我下意识打开终端翻日志,发现loss从凌晨两点就开始往上爬,一路从0.8涨到1.35,整整六个小时没人发现。那六个小时的训练不仅白跑,还霸占着卡——等于…

2026/9/19 0:00:30 阅读更多 →
OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南 【免费下载链接】opencloud 🌤️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign. 项目地址: htt…

2026/9/19 0:00:30 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/19 3:59:36 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/19 3:53:08 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/19 4:02:43 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →