Skip to content

BFO refactor: component bears disposition; system derived via has_part#1

Open
Amosk21 wants to merge 4 commits intomainfrom
Component_Bearer
Open

BFO refactor: component bears disposition; system derived via has_part#1
Amosk21 wants to merge 4 commits intomainfrom
Component_Bearer

Conversation

@Amosk21
Copy link
Copy Markdown
Owner

@Amosk21 Amosk21 commented Jan 6, 2026

Internal refactor only: capability dispositions attach to component objects; system-level exposure is derived via has_part traversal (no change to external classification target).

Greptile Summary

Refactored ontology architecture to align with BFO best practices: capability dispositions now attach to HardwareComponent (Object) instances rather than directly to System (Object Aggregate), with system-level exposure derived via has_part traversal.

Key changes:

  • Introduced HardwareComponent class as subclass of bfo:0000030 (Object) that bears capability dispositions
  • Modified System class to aggregate components via bfo:0000051 (has_part) instead of directly bearing dispositions
  • Updated instance data: Sentinel_Camera_01 now correctly bears Sentinel_FaceID_Disposition and is part of Sentinel_ID_System
  • Added detect_latent_risk.sparql query implementing the new traversal pattern to detect biometric capabilities

Issues found:

  • Missing rdfs:label declarations for bfo:0000030 (Object) and bfo:0000050 (part of) in ARCO_core.ttl (style issue)

The refactor improves BFO compliance by ensuring dispositions inhere in material objects rather than aggregates, which is ontologically more correct.

Confidence Score: 4/5

  • Safe to merge with one minor style improvement recommended
  • The refactor is logically sound and improves BFO compliance. The architectural change correctly moves disposition bearers from aggregates to components. The SPARQL query properly implements the new traversal pattern. Only issue is missing rdfs:label declarations for consistency with existing code style.
  • ARCO_core.ttl needs minor label additions for consistency; otherwise no files require special attention

Important Files Changed

Filename Overview
03_TECHNICAL_CORE/ontology/ARCO_core.ttl Introduced HardwareComponent class as bearer of dispositions; refactored System to use has_part instead of bearer_of. Missing rdfs:label declarations for bfo:0000030 and bfo:0000050.
03_TECHNICAL_CORE/ontology/ARCO_instances_sentinel.ttl Updated instance data to reflect new component-based architecture; Sentinel_Camera_01 now correctly bears the disposition and is part of the system.
03_TECHNICAL_CORE/reasoning/detect_latent_risk.sparql New SPARQL query correctly implements traversal pattern (system → component → disposition) to detect biometric capabilities.

Sequence Diagram

sequenceDiagram
    participant Reg as RegulatoryContent<br/>(AnnexIII_Condition_Q1)
    participant Sys as System<br/>(Sentinel_ID_System)
    participant Comp as HardwareComponent<br/>(Sentinel_Camera_01)
    participant Disp as CapabilityDisposition<br/>(Sentinel_FaceID_Disposition)
    participant Proc as OperationalProcess<br/>(Surveillance_Run_001)
    
    Note over Reg: is_about (iao:0000136)
    Reg->>Disp: references BiometricIdentificationCapability class
    
    Note over Sys,Comp: has_part (bfo:0000051)
    Sys->>Comp: aggregates component
    
    Note over Comp,Disp: bearer_of (ro:0000053)
    Comp->>Disp: bears capability disposition
    
    Note over Proc: Operational realization
    Proc->>Sys: has_participant (ro:0000057)
    Proc->>Disp: realizes (bfo:0000055)
    
    Note over Sys,Disp: SPARQL query traversal:<br/>System → Component → Disposition
Loading

BFO refactor: add HardwareComponent and derive system exposure via has_part
BFO refactor: move disposition bearer from system to component
Add ASK query for component-bearer risk traversal
Copy link
Copy Markdown

@greptile-apps greptile-apps Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Additional Comments (1)

  1. 03_TECHNICAL_CORE/ontology/ARCO_core.ttl, line 82-95 (link)

    style: Missing rdfs:label declarations for newly introduced BFO terms: bfo:0000030 (Object) and bfo:0000050 (part of). These are used in the refactored code but lack the UI labels that other BFO terms have.

3 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

Amosk21 pushed a commit that referenced this pull request Mar 3, 2026
Grounds the ARCO value proposition in the #1 practitioner pain point:
Annex III classification must be formally defensible to regulators, not
just internally agreed upon. Uses remote biometric ID (financial services
onboarding) as the example system — real Annex III 1(a) use case,
immediately recognizable to bank compliance teams.

Covers Art. 6, 9, 11, 49 requirements and maps each to ARCO outputs.
No LLMs, no marketing copy — technical brief format for DPOs and counsel.

https://claude.ai/code/session_01PPu9eEMgVSdr9XsdiFzcJz
Amosk21 pushed a commit that referenced this pull request Mar 5, 2026
- Add cco:prescribes triple to AnnexIII_Condition_Q1 instance so the
  regulatory condition is a proper DirectiveICE that prescribes the
  regulated process type (not just iao:0000136 aboutness)
- Add check_regulatory_alignment.sparql: auditor traceability query
  confirming that the law and the provider's intended use spec both
  prescribe the same process type (the KPMG documentation alignment check)
- Register query in run_pipeline.py, wire into summary and all_pass

Also closes eu_ai_act_rules.md known issue #1: HighRisk_Determination_001
was already correctly typed as :HighRiskDetermination (stale issue).

All 8 checks pass: SHACL, Traceability, Latent risk, Intended use,
Annex III 1(a), Obligation, Reg. aligned, Entailment.

https://claude.ai/code/session_01YVJmx34fxvhMop6UBXZfRB
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant