ORGF

面向组织结构和任何层级模型的开放数据格式

一种通用的开放格式,用于描述层级模型、其中的卡片和标签。它还支持模型级的 value 指标和单位,以实现一致的数字化分析。

格式规范

ORGF 源代码是开放的。

在 GitHub 上打开
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 让模型保持可移植和可理解,使其能够在人、工具和系统之间流动,而不被锁定在某一个界面中。

通用性

适用于任何层级的一套逻辑

对组织结构、目录、分类器、参考数据、知识树和其他嵌套模型使用同一格式,无需领域专属的必填字段。

可读性

人们能读懂的 YAML 文件

模型不依赖界面也保持可理解:可打开、检查并编辑它,将其作为结构的有意义描述。

透明性

没有隐藏 ID 的结构

层级通过 children 直接表达,没有对模型作者隐藏的技术标识符或父级关系。

集成

跨越单一界面交换数据

与其他团队共享模型,将其用于数据到图表的工作流,并把 ORGF 集成到自己的系统和处理器中。

数值

覆盖整个层级的一种 value 模型

为卡片设置数值并为模型设置单位;总计从结构中计算,以实现一致分析。

独立性

可自由使用和开发

ORGF 不绑定特定编辑器、云服务或供应商平台。您可以使用、扩展它,并围绕它构建自己的 IT 解决方案。

模型作者定义其许可证

ORGF 是开放且可自由使用的格式。特定模型的权利、许可证和使用条件由作者在模型元数据中声明。