Ask a free-text question about a place
emem_askAnswer a free-text question about a real-world location in one call. Signed satellite, elevation, water and built-up receipts support the answer. The tool sends the place and the question through the locate, recall and algorithm chain on the server, and returns one packaged envelope.
When to use: Call this when the question is about a specific place and the answer must carry its evidence. Send the question as q, with place, cell or lat+lng. Over MCP a point answer is a projection. It has answer, receipt (cite receipt.fact_cids), place_resolved, routed_to, facts_summary, algorithm_outcomes_summary, spatial_trace and scene_url. It has model_answer if you sent model, and _projection, which names what the projection removed. POST /v1/ask has more: caveats, topic_routing, reasoning, and inventory with include:["inventory"]. A routed_to other than answer comes back complete. The answer gives a current value. For how X changed, use emem_intent did_change or emem_diff.
Example arguments: {"q":"is this neighbourhood flood-prone for a flat purchase","place":"Ashok Nagar, Ranchi"}
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | User's natural-language question about the place (e.g. "is this neighbourhood flood-prone"). | |
| lat | No | WGS-84 latitude (paired with `lng`; alternative to `place` / `cell`). | |
| lng | No | WGS-84 longitude (paired with `lat`). | |
| cell | No | cell64 string (alternative to `place`, use when you have one from a prior emem_locate / emem_recall response). Provide this OR `place` OR `lat`+`lng`. | |
| model | No | Optional. Compose an EXTRA prose answer with a named model, returned as `model_answer` beside the deterministic `answer`. It does not replace it: `answer` is synthesised from the structured fields and never calls a model, so every number in it traces to a fact_cid, and asking for a model must not turn a checkable answer into an unchecked one. `model_answer` carries provenance.class = model_output. Name it by base_model (`nvidia/Cosmos3-Edge`), by family (`cosmos3_edge`, `gemma`), or by any fragment naming exactly one of them (`cosmos`); a fragment matching several is refused and names them; an unroutable name is refused with the list of routable ones, and a routable model whose service is not answering is refused as busy or down rather than silently substituted. Cosmos is refused while its host has no GPU. | |
| place | No | Free-text place name (e.g. "Mount Fuji", "Ashok Nagar, Ranchi"). REQUIRED unless `cell` or `lat`+`lng` is provided. Extract the noun phrase from the user's turn; the responder geocodes via OSM Nominatim. | |
| query | No | Alias for `q`. | |
| include | No | Opt-in REST envelope sections. `reasoning` drops `algorithms_for_question`; add `algorithms` to keep it. The MCP projection ignores these. | |
| verbose | No | REST only: true adds per-algorithm formulas, band metadata and long prose. The MCP projection is small (about 7 KB) either way; the REST envelope is larger. | |
| question | No | Alias for `q`. | |
| include_image | No | Bundle a Sentinel-2 RGB scene URL for the resolved cell. Adds ~1-2 s on first call. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cell | No | The cell64 the question resolved to: emem's address for the place. | |
| _means | No | ||
| answer | No | The prose answer. Also in the content block, which carries the MCP projection; POST /v1/ask has the full envelope. | |
| schema | Yes | ||
| question | No | The question as asked. | |
| spatial_trace | Yes | A spatial memory trace: what this responder has measured at this place, as primitives a model can reason over rather than a picture a person looks at. |