Files
boc/iom
Bernt 48ea61cdcc docs: add quixzoom-auth-core product to AAMOS
- Product documentation in docs/products/
- Updated MEMORY.md with product info
- quiXzoom Auth Core as AAMOS Identity product
2026-07-14 09:58:53 +00:00
..

Infrastructure Object Model (IOM)

Universellt språk för fysisk infrastruktur — från observation till kunskapsgraf. Status: MVP klar | 2026-06-26


Sammanfattning

IOM är en tio-lagers modell för att representera, identifiera, observera och analysera fysisk infrastruktur. Byggd för quiXzoom Fas 1.


Arkitektur

iom/
├── core/                    # Lager 1-2: Taxonomi + GOID
│   ├── iom_taxonomy.json   # Komplett taxonomi (5 domäner)
│   ├── goid_generator.py   # GOID-generering och validering
│   └── test_goid.py        # Enhetstester (16/16 passerar)
│
├── observation/            # Lager 6: Observationer
│   ├── observation_models.py   # Pydantic-modeller
│   └── observation_store.py    # PostgreSQL + PostGIS
│
├── defect/                 # Lager 7: Felklassificering
│   └── defect_codes.py     # 50+ felkoder, hierarki, AI-nyckelord
│
├── risk/                   # Lager 8: Riskmodell
│   └── risk_model.py       # 10 objekttyper, vikter, beräkning
│
├── ledger/                 # Integration aamos-ledger
│   └── iom_ledger_mapping.py   # BAS-konton, avskrivningar
│
└── api/                    # API
    └── main.py             # FastAPI, alla endpoints

Lager 1: Taxonomi

5 domäner, 10 system, 30+ objekttyper:

Domän Beskrivning
BYG Byggnad (fasader, tak, fönster)
BEL Belysning (gatlyktor, trafiksignaler)
COM Kommersiellt (butiksfronter, reklam)
TRN Transport (vägar, broar, parkeringar)
ENE Energi (laddstationer, transformatorer)

Lager 2: GOID

Format: [DOM]-[SYS]-[SUB]-[OBJ]-[SEQ]

Exempel: BYG-FAC-WIN-GLA-0001

  • Permanent, unikt, oföränderligt
  • Validering och parsning
  • 16/16 tester passerar

Lager 6: Observationer

observation:
  id: "OBS-2026-0012847"
  object_goid: "BYG-FAC-WIN-GLA-2847"
  findings:
    - type: "dirt_accumulation"
      code: "2100"
      confidence: 0.94
  media:
    - type: "image"
      url: "..."
      geotag: {lat: 59.3293, lng: 18.0686}
  ai_analysis:
    overall_condition: 3
    recommended_action: "schedule_cleaning"

Lager 7: Felkoder

50+ koder i hierarki:

2000 — Ytskada
├── 2100 — Nedsmutsning
├── 2200 — Färgförändring
├── 2300 — Ytskada
└── 2400 — Klotter

3000 — Strukturell skada
├── 3100 — Spricka
├── 3200 — Deformation
└── 3300 — Materialförlust
  • Flerspråkig (sv/en)
  • AI-nyckelord för auto-klassificering
  • Sök och föreslå

Lager 8: Riskmodell

6 dimensioner, viktat per objekttyp:

Objekttyp Säkerhet Ekonomi Drift Estetik
Bro 40% 15% 20% 10%
Fönster 20% 15% 10% 35%
Laddstation 45% 15% 15% 10%

Ledger-integration

  • BAS-konton: 1220, 1230, 6110, 7830, 7970
  • Händelser: installation, underhåll, avskrivning, nedskrivning
  • Kontradiktionsrapportering

API Endpoints

Endpoint Beskrivning
POST /goid/generate Generera GOID
GET /goid/validate/{goid} Validera GOID
GET /taxonomy/domains Lista domäner
POST /observations Skapa observation
GET /defects Lista felkoder
POST /risk/calculate Beräkna risk
POST /ledger/installation Bokför installation

Tester

cd iom/core && python3 test_goid.py
# 16/16 tester passerar

Nästa steg

  1. Sätt upp PostgreSQL + PostGIS
  2. Kör API:t (uvicorn api.main:app)
  3. Integration med quiXzoom app
  4. AI-klassificeringspipeline
  5. Digital tvilling (Lager 10)

Dokumentation

  • INFRASTRUCTURE_OBJECT_MODEL.md — Komplett spec
  • IOM_LEDGER_INTEGRATION.md — Ledger-integration
  • IOM_PRIORITY_ROADMAP.md — Prioritering
  • IOM_IMPLEMENTATION_PLAN.md — Implementationsplan