reference:
format: "ORGF 1.0.0"
syntax: "YAML|UTF-8 without BOM"
sections_fixed:
orgformat: "string|required"
reference: "section|optional"
meta: "section|required"
model: "section|optional"
root: "block|required"
hierarchy: "root.children[*].children[*]..."
meta:
title: "string|max250|optional"
author: "string|max250|optional"
rights_holder: "string|max250|optional"
copyright: "string|max500|optional"
license: "string|max120|optional"
created: "string|optional|YYYY-MM-DD/ISO 8601"
updated: "string|optional|YYYY-MM-DD/ISO 8601"
status: "draft/final/archived|optional"
model:
name: "string|max250|optional"
desc: "string|max1000|optional"
value_label: "string|max80|optional|one_value_type_per_model"
value_unit: "string|max40|optional|one_value_unit_per_model"
block:
name: "string|max250|optional|empty_allowed"
desc: "string|max500|optional"
value: "number|optional|own_value_only"
pic: "section|optional"
pic.set: "emoji/lucide/feather/simple-icons/iconify|required_if_pic"
pic.name: "string|required_if_pic"
tags: "array[string|max80]|optional|default:[]"
hidden: "boolean|optional|default:false"
branch_orientation: "auto/horizontal/vertical|optional|default:auto"
style:
fill: "default/#HEX|optional|default:default"
contour: "default/solid/dashed/dotted/double|optional|default:default"
contour_width: "default/regular/bold|optional|default:default"
relation:
line: "default/solid/dashed/dotted|optional|default:default"
line_width: "default/regular/bold|optional|default:default"
color: "default/#HEX|optional|default:default"
children: "array[block]|optional|default:[]"
authoring_rules:
- "one_file=one_model"
- "hierarchy=children"
- "no_id_parent_order"
- "empty_blocks_allowed"
- "tags=plain_classifiers_not_key_value"
- "desc=short_human_note_not_data_dump"
- "style_relation=custom_overrides_only"
- "tag_colors_not_stored_in_orgf"
- "value_one_type_per_model"
- "value_one_unit_per_model"
- "value_on_block_is_own_value_only"
- "value_totals_are_computed_not_stored"
- "reference_if_present=complete_unmodified_canonical_copy_published_for_declared_orgformat_version_at_https://github.com/orgformat/orgf/releases"
- "hidden=true_on_a_block_requires_hidden=true_on_every_descendant"
normalization:
unknown_fields: remark
invalid_values: default
over_limit: truncate
invalid_yaml: reject
invalid_structure: reject
normalization_rules:
- "missing_optional=default"
- "unknown_fields=remark"
- "invalid_values=default"
- "over_limit=truncate"
- "normalization=view_only_not_source_mutation"
- "hidden_branch_inconsistency=remark_not_reject"
- "normalization_propagates_hidden=true_to_all_descendants"
ORGF
面向组织结构和任何层级模型的开放数据格式
一种通用的开放格式,用于描述层级模型、其中的卡片和标签。它还支持模型级的 value 指标和单位,以实现一致的数字化分析。
核心原则
用于描述、分享和集成层级模型的开放格式
ORGF 让模型保持可移植和可理解,使其能够在人、工具和系统之间流动,而不被锁定在某一个界面中。
通用性
适用于任何层级的一套逻辑
对组织结构、目录、分类器、参考数据、知识树和其他嵌套模型使用同一格式,无需领域专属的必填字段。
可读性
人们能读懂的 YAML 文件
模型不依赖界面也保持可理解:可打开、检查并编辑它,将其作为结构的有意义描述。
透明性
没有隐藏 ID 的结构
层级通过 children 直接表达,没有对模型作者隐藏的技术标识符或父级关系。
集成
跨越单一界面交换数据
与其他团队共享模型,将其用于数据到图表的工作流,并把 ORGF 集成到自己的系统和处理器中。
数值
覆盖整个层级的一种 value 模型
为卡片设置数值并为模型设置单位;总计从结构中计算,以实现一致分析。
独立性
可自由使用和开发
ORGF 不绑定特定编辑器、云服务或供应商平台。您可以使用、扩展它,并围绕它构建自己的 IT 解决方案。
模型作者定义其许可证
ORGF 是开放且可自由使用的格式。特定模型的权利、许可证和使用条件由作者在模型元数据中声明。