# 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 ```yaml 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 ```bash 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