#
Graph Design Patterns
#
Graph Design Patterns
This page collects practical graph modeling patterns that tend to work well for Curiosity Workspace applications.
#
Pattern: Entity-centric navigation
Design around “hub” entities users care about:
- customer, product, ticket, document, case
Ensure each hub has:
- stable key
- meaningful outgoing edges
- a small set of high-signal properties (for display/search)
#
Pattern: Relationship as first-class signal
If users frequently ask “show items related to X”, model that as an edge:
Ticket -> ForCustomer -> CustomerDocument -> Mentions -> EntityCase -> HasStatus -> Status
This enables:
- fast traversal and exploration
- graph-constrained search
- related facets
#
Pattern: Attributes as nodes (selectively)
Convert a property into a node when you need:
- cross-type filtering (shared status taxonomy)
- navigation (“click status to see all items”)
- metadata on the attribute (owner, definition, lifecycle)
Don’t overuse this: many attributes are best kept as properties.
#
Pattern: Mention → resolve → link
When important concepts appear inside text:
- extract mentions via NLP
- resolve to canonical entities (or create entities)
- link into the graph
This pattern turns unstructured text into navigable structure.
#
Pattern: Graph + search together
Search retrieves candidates; the graph provides context:
- use search to find starting nodes
- use graph traversal for “next clicks” and constrained neighborhoods
- use facets and related facets to keep results meaningful
#
Next steps
- Apply graph patterns to ingestion: Schema Design
- Optimize graph-constrained retrieval: Search Optimization