{
  "package": "hyper-ontology/1",
  "designed_with": "Praxis",
  "implemented_with": "Hyper Ontology",
  "paper": {
    "title": "Factory Fire Watch: Read-Only Smart Fire Protection Monitoring for Every High-Risk Factory",
    "url": "https://muhammadumar89.github.io/codeninja-research/factory-fire-monitoring-saudi-arabia/",
    "doi": "10.5281/zenodo.23126565"
  },
  "sector": "heavy-industry-and-construction",
  "country": "Saudi Arabia",
  "scenario": "the operator is described by class, never by name; the design answers a public requirement in this sector",
  "source": "chapter 5 of the paper (5.1 objects and anchors, 5.2 human loop, 5.3 recorded form) and Figure 4 (typed links); properties and status vocabularies from the plan the paper was drawn from",
  "write_paths": [
    "read only into certified life-safety equipment: contacts, relays and PLC inputs, never a write path",
    "the model's own records: alert acknowledgement, escalation trail, audit log, monitoring rounds"
  ],
  "human_loop": "a monitoring officer acknowledges or escalates every safety-critical alert; the design monitors and never controls a panel, pump or tank",
  "objects": [
    {
      "id": "factory",
      "label": "High-risk factory",
      "kind": "site",
      "anchored_in": "the operator's factory register",
      "properties": [
        "Industrial city",
        "Risk classification",
        "Assigned LoRaWAN gateways",
        "Monitored point count"
      ],
      "status_vocabulary": [],
      "links": [
        {
          "to": "facp",
          "label": "hosts"
        }
      ]
    },
    {
      "id": "facp",
      "label": "Fire alarm control panel",
      "kind": "asset",
      "anchored_in": "the factory's fire alarm control panel",
      "properties": [
        "Make and model (mixed brand, per site survey)",
        "Interface type (relay, RS-485, addressable)",
        "Zone count",
        "General alarm status",
        "Fault and disabled states"
      ],
      "status_vocabulary": [
        "Normal",
        "Alarm",
        "Fault",
        "Disabled"
      ],
      "links": [
        {
          "to": "alarm_event",
          "label": "",
          "note": "drawn in Figure 4 from the panel to the safety-critical alert with its label hidden"
        }
      ]
    },
    {
      "id": "fire_pump",
      "label": "Fire pump",
      "kind": "asset",
      "anchored_in": "the pump controller",
      "properties": [
        "Pump role (main, jockey, diesel)",
        "Controller type",
        "Run status",
        "Fail-to-start signal",
        "Power availability"
      ],
      "status_vocabulary": [
        "Stopped",
        "Running",
        "Fault",
        "Fail to start"
      ],
      "links": [
        {
          "to": "fire_water_tank",
          "label": "supplies"
        }
      ]
    },
    {
      "id": "fire_water_tank",
      "label": "Fire water tank",
      "kind": "asset",
      "anchored_in": "site survey",
      "properties": [
        "Serving fire suppression reserve",
        "Capacity",
        "Measured level",
        "Configurable alert thresholds",
        "Obstruction flag"
      ],
      "status_vocabulary": [
        "Normal",
        "Low level",
        "High level",
        "Obstruction",
        "Sensor fault"
      ],
      "links": [
        {
          "to": "level_transmitter",
          "label": "instruments"
        }
      ]
    },
    {
      "id": "level_transmitter",
      "label": "Tank level transmitter",
      "kind": "asset",
      "anchored_in": "the operator's IoT platform",
      "properties": [
        "Measurement technology",
        "Installation point",
        "Last reading",
        "Heartbeat and stuck-value state",
        "Battery or supply state"
      ],
      "status_vocabulary": [
        "Healthy",
        "Stale reading",
        "Offline"
      ],
      "links": []
    },
    {
      "id": "energy_meter",
      "label": "Energy meter (CT set)",
      "kind": "asset",
      "anchored_in": "the operator's IoT platform",
      "properties": [
        "CT ratio",
        "Per-phase current",
        "KWh accumulation",
        "Monitored distribution board",
        "Supply quality"
      ],
      "status_vocabulary": [
        "Reporting",
        "Stale reading",
        "Offline"
      ],
      "links": []
    },
    {
      "id": "lorawan_gateway",
      "label": "LoRaWAN gateway",
      "kind": "asset",
      "anchored_in": "the operator's IoT platform",
      "properties": [
        "Placement (RF survey justified)",
        "Backhaul technology (4G, microwave, fibre, wired)",
        "Signal quality per sensor",
        "Firmware version",
        "Store-and-forward buffer state"
      ],
      "status_vocabulary": [
        "Online",
        "Degraded",
        "Offline"
      ],
      "links": []
    },
    {
      "id": "telemetry_point",
      "label": "Monitored point",
      "kind": "measure",
      "anchored_in": "the operator's IoT platform",
      "properties": [
        "Point type (water level, energy, pump, FACP)",
        "Source device",
        "Sampling cadence",
        "Alert threshold",
        "MQTT topic"
      ],
      "status_vocabulary": [],
      "links": [
        {
          "to": "factory",
          "label": "monitors"
        },
        {
          "to": "energy_meter",
          "label": "feeds"
        },
        {
          "to": "lorawan_gateway",
          "label": "carries"
        },
        {
          "to": "alarm_event",
          "label": "triggers"
        }
      ]
    },
    {
      "id": "alarm_event",
      "label": "Safety-critical alert",
      "kind": "event",
      "anchored_in": "the operator's IoT platform",
      "properties": [
        "Severity class (safety-critical highest priority)",
        "Source monitored point",
        "Raised timestamp",
        "Acknowledgement and actor",
        "Escalation trail"
      ],
      "status_vocabulary": [
        "Raised",
        "Acknowledged",
        "Escalated",
        "Closed"
      ],
      "links": [
        {
          "to": "audit_log",
          "label": "logged in"
        }
      ]
    },
    {
      "id": "audit_log",
      "label": "Audit log record",
      "kind": "record",
      "anchored_in": "the operator's IoT platform",
      "properties": [
        "Safety-critical alert references",
        "State transitions",
        "Actor and timestamp",
        "Configuration changes"
      ],
      "status_vocabulary": [],
      "links": []
    },
    {
      "id": "field_round",
      "label": "Periodic monitoring round",
      "kind": "record",
      "anchored_in": "the mobile monitoring tool",
      "properties": [
        "Factory",
        "Checklist items",
        "Readings captured",
        "Operator",
        "Sync state"
      ],
      "status_vocabulary": [
        "Open",
        "Submitted",
        "Synced"
      ],
      "links": [
        {
          "to": "factory",
          "label": "covers"
        }
      ]
    },
    {
      "id": "maintenance_visit",
      "label": "Preventive maintenance visit",
      "kind": "record",
      "anchored_in": "the maintenance schedule",
      "properties": [
        "Factory and equipment",
        "Schedule",
        "Corrective response SLA clock",
        "Spares consumed",
        "Completion evidence"
      ],
      "status_vocabulary": [
        "Scheduled",
        "Completed",
        "Overdue"
      ],
      "links": []
    },
    {
      "id": "technician",
      "label": "Technical personnel",
      "kind": "person",
      "anchored_in": "the operator's staff directory",
      "properties": [
        "Trained on this system",
        "Assigned factories",
        "Certification record"
      ],
      "status_vocabulary": [],
      "links": [
        {
          "to": "maintenance_visit",
          "label": "performs"
        }
      ]
    },
    {
      "id": "monitoring_officer",
      "label": "Monitoring officer",
      "kind": "actor",
      "anchored_in": "the operator's staff directory",
      "properties": [
        "Dashboard entitlements",
        "Alert acknowledgement authority",
        "Escalation list membership"
      ],
      "status_vocabulary": [],
      "links": [
        {
          "to": "alarm_event",
          "label": "acknowledges"
        }
      ]
    }
  ]
}
