ATLAS_
DocsAPIGitHub

Explore

Atlas Explore orchestrates multi-domain queries, aggregating results from planets, images, missions, and entities for a given topic, and links them into a traversable knowledge graph.

How Explore Works

  • Receives a query (e.g., "mars").
  • Executes planet, image, mission, and entity searches concurrently across all providers.
  • Resolves and merges results into a unified response.
  • Builds a knowledge graph connecting the resolved planet/moons/missions/images/entities via name matching.
  • Returns a summary, images, missions, entities, and the graph.

The Knowledge Graph

graph.nodes is a flat list of typed nodes; graph.edges connects them by relation. graph.centralNodeId points at the planet node the query resolved to, if any.

Node types: planet, moon, mission, image, entity

Relations:

RelationDirectionMeaning
orbitsmoon → planetThe moon orbits the planet
targetsmission → planetThe mission's target mentions the planet
depictsimage → planet/moon/mission/entityThe image's title/description mentions the node
referencesentity → planet/missionThe search entity's name/identifiers match the node

Node linking is done by name/token matching (same approach EntityResolver uses for search results), not a stored graph database — it's rebuilt fresh from the domain data on every request.

Asteroids aren't included as graph nodes yet: no provider currently supports asteroid lookup by name, so there's no reliable way to link a free-text query to a specific asteroid.

Example

Request:

curl "http://localhost:3000/explore/mars"

Response:

{
  "query": "mars",
  "summary": "Exploration overview for 'mars': Mars. Has 2 moons (Phobos, Deimos). Targeted by 2 missions (...). Appears in 5 images.",
  "images": [/* ... */],
  "missions": [/* ... */],
  "related": [/* ... */],
  "graph": {
    "nodes": [
      { "id": "planet:mars", "type": "planet", "label": "Mars", "sources": ["Le Système Solaire"], "data": { /* ... */ } },
      { "id": "moon:phobos", "type": "moon", "label": "Phobos", "sources": ["Le Système Solaire"], "data": { /* ... */ } }
    ],
    "edges": [
      { "from": "moon:phobos", "to": "planet:mars", "relation": "orbits" }
    ],
    "centralNodeId": "planet:mars"
  }
}

Notes

  • Explore is deterministic and does not use AI/ML — the summary and graph edges are both derived from name matching, not a language model.
  • All results are attributed to their source providers.
  • Useful for dashboards, educational apps, and assistants.