7d40cf95bf
- FastAPI Identify API (port 8081) - Neo4j propertygraf (64 noder, 80 kanter) - Ingest-pipeline (Python) - Byggscript + integrationstester - Docker Compose setup
Landvex Infrastructure Object Library (IOL)
Kunskapsgraf över visuellt identifierbar fysisk infrastruktur. Grafen är produkten. Allt annat — appar, API:er, dashboards — är gränssnitt mot grafen.
Struktur
projects/landvex/
├── 00-styrning/ # Validering, verifiering
├── 10-data/ # Master-data (JSON)
│ ├── lvx-klassposter-master-v3.json
│ ├── lvx-produktmodeller-*.json
│ ├── lvx-graf-kanter-v3.json
│ └── lvx-id-register.json
├── 20-automation/ # Ingest-pipeline
│ ├── ingest.py
│ └── intag/ # Kandidatposter per våg
├── 30-produkt/ # API-spec, demosvar
├── 40-strategi/ # Genome-strategi, IOL-spec
├── api/ # FastAPI Identify-API
├── db/ # Neo4j-laddning
├── scripts/ # Export, bygghjälp
├── arkiv/ # Ersatta versioner
└── build.sh # Master byggscript
Snabbstart
# Bygg & kör allt
./build.sh
# Endast API (förutsätter Neo4j)
docker compose up -d api
# Endast data-export
python3 scripts/export_csv.py
python3 db/load_to_neo4j.py
API
| Endpoint | Beskrivning |
|---|---|
GET /health |
Status + antal poster/kanter |
POST /v0/identify |
Bild → rankade kandidater |
GET /v0/objects/{lvx_id} |
Komplett post |
GET /v0/objects/{lvx_id}/succession |
Ersättningskedja |
GET /v0/search?q=... |
Fritextsök |
GET /v0/standards/{b}/objects |
Standard → objekt |
POST /v0/feedback |
Fel/okänt → bounty |
Data
- 64 noder (37 klasser + 27 modeller)
- 176 kanter (80 LVX-upplösta, 82 standard, 14 textnoder)
- 9 domäner: TRP, ELN, VAT, TEL, BYG, PRK, JVG, HMN, FLG
- Verifieringsnivåer: obekräftad → källbelagd → fältverifierad → tillverkarbekräftad
Arkitektur
Ingest Pipeline API Layer Graph DB
─────────────────────────────────────────────────────────
Kandidatposter → resolve/merge → Neo4j (propertygraf)
↓ ↓ ↓
Extraktion → Identify API → Query/Search
↓ ↓ ↓
Zoomer-bounties ← Feedback ← Succession
Regler
- Fakta bär alltid källa — inga påståenden utan proveniens
- Landvex-ID är permanent — namn ändras, ID aldrig
- Konfidens exponeras alltid — kunden ser aldrig osäkert som sanning
- Problem utan källa filtreras bort — vid API-serialisering