Sources
OpenStreetMap, Open Data Euskadi and official GTFS with licence and date.
Versioned urban datasets, bilingual geographic search, a production semantic service and a reproducible benchmark. The goal is not to answer every time: it is to answer with evidence and abstain when evidence is missing.
ARCHITECTURE
Every result follows a traceable chain. Visual clients and agents reuse the same domain logic.
OpenStreetMap, Open Data Euskadi and official GTFS with licence and date.
Reproducible pipelines, schemas, quality, coverage and freshness.
High-precision keywords; e5-large only when semantics are needed; structured geo search.
FastAPI on a VPS, explanations, reranking, rate limits and attribution.
Web, mobile app, API and five MCP tools on one source of truth.
ES / EU BENCHMARK
The golden corpus evaluates hit@1, attributes, radius and abstention. The 54 held-out cases never select descriptions or thresholds.
| Retriever | dev ES | held-out ES | dev EU | held-out EU |
|---|---|---|---|---|
| baseline · keywords + geo | 74% | 60% | 71% | 62% |
| hybrid · MiniLM-L12 | 80% | 60% | 76% | 66% |
| hybrid · mpnet-base | 79% | 64% | 73% | 66% |
| hybrid · multilingual-e5-large | 76% | 73% | 71% | 71% |
Production · multilingual-e5-large · 1,024 dimensions · τ 0.80 · tie 0.01 · v2 evaluation dated 5 August 2026.
19 answerable:false cases penalise a system that invents a category.
Queries were checked with Itzuli; parity is measured, not assumed.
Semantic category classification followed by geographic attribute and distance search.
Every run records model, τ, tie-window, split and metrics in versioned JSON.
PRODUCTION
The service loads layers in memory and exposes search, hike planning, accessibility, isochrones, freshness and data quality. e5-large runs on CPU through ONNX; keywords avoid semantic work when it is unnecessary.
DATASETS
Release v0.2 contains 22 layers and 27,515 POIs. The hiking vertical crosses 2,825 peaks with 9 networks: 1,700 have a stop within 2 km as the crow flies; the real walking route is computed separately.
MCP FOR AGENTS
The server is registered as io.github.r3tr0eth/emap and runs over stdio or Streamable HTTP. Every response keeps attribution and the do not pretend principle.
search_placesES / EU search with geographic context and abstention.
nearby_poisNearby services by layer, distance and source.
explain_placeMunicipality, neighbourhood and verifiable facts around a point.
plan_routeTransit, walk, bike and car routes through owned OSRM / OTP.
plan_hikePeak, access, stop, outward and return journey when verifiable.
ETHICS AND SCALE
Labs has a hard rule: infrastructure, never people. It never ingests crime, income, demographics, origin or social proxies. Uneven OSM coverage is declared; neighbourhood indices identify service deficits rather than labelling places good or bad.