6-atom model

Ontology-as-Code là gì

Một ontology vận hành khai báo thực thể, quan hệ, hành vi, policy và event bằng YAML/LinkML, rồi quản trị như mã nguồn.

Định nghĩa ngắn

Ontology vận hành không chỉ mô tả dữ liệu

OSS kit định nghĩa ontology như tầng ngữ nghĩa vận hành: có danh từ nghiệp vụ, quan hệ, hành vi, policy và event. Khi thêm binding vào dữ liệu thật, mô hình này trở thành blueprint của một digital twin.

Điểm khác biệt với BI semantic layer là tầng kinetic. BI tập trung metric và dimension cho báo cáo; ontology vận hành còn khai báo hệ thống được làm gì và bị policy nào gác.

6 atom ontology modelOperationalOntologyObjectTypeSemanticAttributeTypeSemanticLinkTypeSemanticActionTypeKineticPolicyTypeKineticEventTypeKinetic
SVG text chỉ dùng tên atom tiếng Anh để tránh rủi ro lỗi dấu tiếng Việt trong ảnh.

6 atom

Semantic trước, kinetic sau

Ba atom đầu trả lời "thế giới gồm gì". Ba atom sau trả lời "thế giới làm gì, bị ràng buộc ra sao, và trạng thái đổi khi nào".

Semantic

ObjectType

Danh từ nghiệp vụ. Thực thể như Customer hoặc Loan, tương đương LinkML class.

Ví dụ: Customer, Loan.

Semantic

AttributeType

Thuộc tính. Slot mô tả object bằng kiểu cơ bản hoặc enum.

Ví dụ: Customer.tier, Loan.status.

Semantic

LinkType

Quan hệ. Slot có range trỏ sang class khác, ví dụ Customer -> Loan.

Ví dụ: Customer.loans.

Kinetic

ActionType

Hành động. Contract hành vi: làm gì, kiểm gì, sinh event gì.

Ví dụ: approveLoan.

Kinetic

PolicyType

Policy. Ràng buộc nghiệp vụ với enforcement block, warn hoặc audit.

Ví dụ: POL-001.

Kinetic

EventType

Sự kiện. Chuyển trạng thái có from_state, to_state và triggered_by.

Ví dụ: LoanApproved.

LinkML nền tảng

YAML có thể validate và sinh code

Kit dùng subset LinkML: class cho ObjectType, attributes cho thuộc tính, slot có range trỏ class cho LinkType, và annotations x_* cho metadata vận hành như binding, owner hoặc PII.

classes:
  Customer:
    description: Người vay.
    annotations:
      x_data_binding: "curated/customers"
      x_governance_owner: "growth-team"
      x_pii: "customer_id,full_name"
    attributes:
      customer_id: { identifier: true, range: string, required: true }
      tier: { range: TierEnum }
      loans:
        range: Loan
        multivalued: true
        inlined_as_list: false
Góc nhìnCách cũOntology-as-Code
ObjectERD hoặc data dictionary tách khỏi pipeline.ObjectType có owner, PII, enum và CI validate.
LinkForeign key và JOIN rải trong code hoặc sơ đồ vẽ tay.LinkType khai một lần, ER diagram và traceability sinh lại từ schema.
BehaviorLogic trong if-else, log ad-hoc, policy khó audit.ActionType, PolicyType, EventType là contract đọc được và validate được.