Multi-Representation Document Storage for Efficient Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing document file formats and in-memory representations are inefficient for certain operations, as stream representations are not suitable for accessing specific objects, while object representations are not efficient for string searches and other processing tasks.

Innovation Solution

A method that stores a document in multiple representations, including a stream representation and one or more object representations, such as a structure tree and a styling tree, where each node in the object trees references index positions in the stream representation, enabling efficient selection and navigation of document content.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If stream representation is used for document storage, then string searches and processing operations are efficient, but accessing specific objects becomes inefficient

Engineering Contradiction:
Improvestring search efficiencyVSAvoidobject access time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The document is segmented into multiple representations: a stream representation for efficient text processing and object representations (structure tree, styling tree) for efficient object access. Each representation serves its specialized function, resolving the contradiction between search efficiency and access speed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds a new dimension to document storage by maintaining parallel representations (stream and object trees) instead of using a single linear structure. This multi-dimensional approach allows simultaneous optimization for both text processing and object access operations.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Loss of time

If object representation is used for document storage, then specific objects can be accessed efficiently, but string searches and processing operations become inefficient

Engineering Contradiction:
Improveobject access timeVSAvoidstring search efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The document processing system is segmented into specialized components: object tree structures for rapid object location and stream representation for text processing. This division allows each component to optimize for its specific function without compromising the other.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary layer that connects object representations with stream representations. This intermediary enables efficient conversion and coordination between the two formats, allowing the system to leverage the strengths of both representations for different operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If multiple representations are stored for a document, then efficient access to different types of information is enabled, but storage complexity increases

Engineering Contradiction:
Improveinformation access flexibilityVSAvoidstorage structure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The complex storage system is segmented into distinct, well-defined components (stream representation, structure tree, styling tree) with clear responsibilities. This modular segmentation manages complexity by organizing functionality into separate, manageable units rather than a monolithic structure.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8959116B2Storage of a document using multiple representations
Publication Date: 2015.02.17 APPLE INC
  • US8959116B2 patent drawing
  • US8959116B2 patent drawing
  • US8959116B2 patent drawing

AI summary

Some embodiments provide a method for storing a document. The method stores a content stream representation of the document that includes an ordered stream of code representations for primitive elements of the document. Each code representation of a primitive element has an index that indicates the order in the content stream of the primitive element representation. The method stores an object representation of the document that includes a set of object nodes arranged in a tree structure. Each object node references a range of indices in the content stream.