DAG Database Storage via Path Table and Lexical Index

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional methods for representing and retrieving directed acyclic graph (DAG) structures in databases are inefficient, particularly for large knowledge structures, as they require navigation of adjacency lists, which can be slow for traversing and updating.

Innovation Solution

Encoding path information in a path table with text strings and generating a lexical index using a B-tree index, allowing for efficient retrieval and updating of DAGs, including the use of a dual representation with adjacency lists for improved performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If Adjacency Lists are used to represent DAG structures in databases, then insertion and update operations are efficient, but traversal and querying of large graphs become inefficient

Engineering Contradiction:
Improveinsertion efficiencyVSAvoidtraversal efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent segments the DAG representation into two complementary structures: Adjacency Lists for efficient local operations (insertion, update, deletion) and Materialized Paths for efficient global operations (traversal, querying). This segmentation allows each data structure to optimize for its specific operational strength, resolving the contradiction between insertion efficiency and traversal efficiency.

Inventive Principle:
Principle #1Segmentation

2Productivity

If Materialized Paths are used to represent tree structures, then subtree retrieval is efficient, but the method is restricted to strict tree structures and cannot handle generalized DAGs

Engineering Contradiction:
Improvesubtree retrieval efficiencyVSAvoidstructure flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent extends the Materialized Paths concept to work with generalized DAG structures by allowing path representations to capture multiple inheritance relationships. The dual representation system (combining Adjacency Lists and Materialized Paths) provides universal functionality that handles both strict trees and generalized DAGs, maintaining subtree retrieval efficiency while increasing structure flexibility.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Speed

If path information is encoded in text strings with lexical indexing, then retrieval operations become rapid, but storage complexity and update overhead increase

Engineering Contradiction:
Improveretrieval speedVSAvoidstorage complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-computing and storing materialized paths during the DAG construction phase. This allows retrieval operations to benefit from pre-processed path information stored in lexical indexes, achieving rapid query performance. The complexity of path computation is shifted to the construction phase rather than the retrieval phase.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7580918B2System and method of efficiently representing and searching directed acyclic graph structures in databases
Publication Date: 2009.08.25 ADOBE INC
  • US7580918B2 patent drawing
  • US7580918B2 patent drawing
  • US7580918B2 patent drawing

AI summary

The present disclosure includes systems and techniques relating to representation and retrieval of data structures in databases. In general, embodiments of the invention feature a computer program product and a method including storing a generalized directed acyclic graph (DAG) in a database, wherein the storing includes encoding path information of the generalized DAG in entries of a path table in the database, the encoding includes converting the path information into text strings, and the entries of the path table correspond to paths in the generalized DAG from nodes of the generalized DAG to a root node of the generalized DAG; triggering generation of a lexical index of the path table using the text strings, wherein the lexical index separately lists tokens included in the entries; and retrieving one or more portions of the generalized DAG from the database for in-memory operations.