FLOW ALGEBRA
Accounting Domain Ontology — Kireth Semantic Library
Version: 1.0
Source URL: https://kirethresearch.org/booksai-core/ontologies/domain-ontologies/business-domains/accounting-domain-ontology.html
Status: Domain-derived draft; source webpage not independently verified.
Authors: Mark Higgins — Sky (Recursive AI)
flow "AccountingDomainOntology" v1.0
DOMAIN:
id: accounting_domain_ontology
parent: business_domain_ontology
label: Accounting Domain Ontology
description: Typed semantic model of accounting records, transactions, reporting, controls, and assurance.
TYPES:
Organisation: entity
ReportingEntity: Organisation
AccountingPeriod: interval
Currency: unit
Account: entity {code:str, name:str, category:AccountCategory}
AccountCategory: enum[asset, liability, equity, revenue, expense]
JournalEntry: entity {id:str, date:date, description:str}
JournalLine: entity {account:Account, debit:decimal, credit:decimal, currency:Currency}
Ledger: collection[JournalEntry]
TrialBalance: collection[AccountBalance]
AccountBalance: record {account:Account, debit:decimal, credit:decimal}
FinancialStatement: entity
BalanceSheet: FinancialStatement
IncomeStatement: FinancialStatement
CashFlowStatement: FinancialStatement
Transaction: entity
Invoice: document
Receipt: document
Payment: Transaction
Asset: economic_resource
Liability: obligation
Equity: residual_interest
Revenue: income
Expense: outflow_or_consumption
Budget: plan
TaxRecord: document
AuditEvidence: document
AccountingPolicy: rule
AccountingStandard: normative_reference
Control: procedure
SourceDocument: document
RELATIONSHIPS:
reports(ReportingEntity, FinancialStatement)
covers(FinancialStatement, AccountingPeriod)
records(Ledger, JournalEntry)
contains(JournalEntry, JournalLine)
posts_to(JournalLine, Account)
substantiated_by(Transaction, SourceDocument)
recognises(ReportingEntity, Asset|Liability|Revenue|Expense)
governed_by(FinancialStatement, AccountingPolicy)
references(AccountingPolicy, AccountingStandard)
reconciles(AccountBalance, SourceDocument)
verified_by(Transaction|AccountBalance, AuditEvidence)
mitigated_by(AccountingRisk, Control)
CONSTRAINTS:
journal_balance: for_each JournalEntry e, sum(e.lines.debit) == sum(e.lines.credit)
non_negative_lines: for_each JournalLine l, l.debit >= 0 and l.credit >= 0
single_side_line: for_each JournalLine l, not (l.debit > 0 and l.credit > 0)
statement_identity: Assets == Liabilities + Equity
period_integrity: posting_date in authorised_period OR approved_adjustment
currency_consistency: totals require same_currency OR documented_conversion
evidence_traceability: material_postings SHOULD reference SourceDocument
DERIVED_RULES:
trial_balance_balanced := sum(TrialBalance.debit) == sum(TrialBalance.credit)
gross_profit := revenue - cost_of_sales
operating_profit := gross_profit - operating_expenses
net_profit := total_income - total_expenses
working_capital := current_assets - current_liabilities
closing_equity := opening_equity + owner_contributions + comprehensive_income - distributions + other_equity_movements
NOTE: Financial statement presentation and recognition depend on the applicable framework.
INFERENCE:
IF journal_balance == false THEN flag("unbalanced_journal_entry")
IF trial_balance_balanced == false THEN flag("ledger_balance_exception")
IF account_balance != independently_supported_balance THEN flag("reconciliation_difference")
IF missing_required_source_document THEN flag("evidence_gap")
IF policy_conflicts_with_applicable_standard THEN flag("policy_review_required")
IF reported_amount_is_estimate THEN require("assumptions_and_uncertainty")
NOTE: Balanced books alone do not establish accuracy, completeness, or absence of fraud.
CONFIDENCE:
range: [0.0, 1.0]
evidence_factors: [source_reliability, completeness, reconciliation_status, audit_status, timeliness]
rule: confidence is evidence-weighted and never substitutes for audit assurance
SEMANTIC_EQUIVALENCE:
accounts_payable ~ trade_creditors WHEN context == trade_payables
accounts_receivable ~ trade_debtors WHEN context == trade_receivables
income_statement ~ profit_and_loss_statement WHEN reporting_framework_compatible
balance_sheet ~ statement_of_financial_position WHEN reporting_framework_compatible
NOTE: Terminological similarity does not imply identical recognition or presentation rules.
PROVENANCE:
required_fields: [source_id, source_type, author_or_issuer, observed_at, applicable_period, version]
preserve: [original_amount, original_currency, transformation_history, evidence_links]
FLOW_HASH:
method: SHA-256
input: canonical_serialisation(types, relationships, constraints, rules, provenance, version)
output: deterministic_content_digest
NOTE: Digest calculated at implementation time; no fabricated hash supplied.
UPDATE_MODEL:
trigger: [new_transaction, corrected_entry, revised_standard, amended_policy, restatement, new_audit_evidence]
actions: [validate, version, recalculate, reconcile, propagate_dependencies, regenerate_flow_hash]
preserve_history: true
conflict_policy: require_human_review_for_material_conflicts
AI_CONSUMPTION:
output: [typed_entities, semantic_relationships, validated_inferences, confidence, provenance, version, flow_hash]
safeguards: [no_invented_balances, no_unsupported_audit_opinions, distinguish_fact_from_estimate, identify_applicable_jurisdiction_and_standard]
use_cases: [financial_knowledge_graphs, document_classification, reconciliation_assistance, reporting_validation, accounting_retrieval]
END FLOW
Download Code
Copy to Clipboard