Add-in Data Persistence via Document Properties

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data storage methods in document-based software applications, such as Microsoft Word, are inefficient and prone to errors, including slow performance, data corruption, and compatibility issues across different applications, especially when using fields or XML for storing supplemental data.

Innovation Solution

An add-in module with rich item stores and a data store that allows for in-memory storage and retrieval of data, using bookmarks to maintain associations within the document, enabling efficient storage and retrieval of formatted text, images, and other data types without modifying the visible content, and supporting serialization and deserialization processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If fields or XML are used to store supplemental data in documents, then data can be stored during one editing session and retrieved in subsequent sessions, but the insertion process becomes extremely slow and can take a minute or more for a thousand fields

Engineering Contradiction:
Improvedata persistenceVSAvoidinsertion speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the data storage function from the visible document body by using document properties and metadata areas instead of inserting fields or XML into the document content. This separates the supplemental data storage from the main document editing flow, allowing fast property assignment without slow field insertion operations.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces document properties as an intermediary layer between the add-in and the document content. Instead of directly inserting fields into the document body, the add-in stores data in document properties which act as a mediator, providing both persistence and fast access without interfering with the visible document content.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If fields are inserted into the document body to store supplemental data, then data can be associated with document content, but the fields may become disconnected from the associated text if the text is moved

Engineering Contradiction:
Improvedata associationVSAvoiddocument editing flexibility
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent segments the document into two independent parts: the visible document content and the supplemental data stored in document properties. This segmentation allows the document content to be freely moved and edited without affecting the supplemental data, as the data is not physically tied to specific text locations but rather stored independently in document properties.

Inventive Principle:
Principle #1Segmentation

3Reliability

If fields are used to store formatted text, then supplemental data can be stored, but the stored text may be inadvertently altered when formatting is applied to surrounding text

Engineering Contradiction:
Improvedata storageVSAvoidformatting accuracy
Core Design Contradiction:
ReliabilityVSManufacturing precision

Solution Approach 1:

The patent extracts formatted text from the visible document body and stores it in document properties instead of using fields in the document content. This extraction protects the formatted text from being inadvertently altered by formatting operations applied to surrounding text, as the data resides in a separate namespace that is not affected by document formatting changes.

Inventive Principle:
Principle #2Taking out (Extraction)

4Adaptability or versatility

If multiple add-in applications simultaneously modify document contents, then additional functionality is provided, but performance problems occur including dramatic slowdowns, alteration or corruption of document contents, or crashing

Engineering Contradiction:
Improveadd-in functionalityVSAvoiddocument integrity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent uses document properties as an intermediary storage mechanism that multiple add-ins can access simultaneously without conflicting with each other. Each add-in can store its supplemental data in the document properties namespace without interfering with other add-ins' data or the main document content, preventing corruption and crashes that occur when multiple add-ins directly modify document content.

Inventive Principle:
Principle #24Intermediary (Mediator)

5Loss of information

If field codes are displayed to show supplemental data, then users can see stored information, but users may edit them by hand resulting in loss of data or corruption

Engineering Contradiction:
Improvedata visibilityVSAvoiddata protection
Core Design Contradiction:
Loss of informationVSReliability

Solution Approach 1:

The patent extracts supplemental data from the visible document content and stores it in document properties, which do not display field codes in the document body. This extraction prevents users from seeing and inadvertently editing field codes, as the data is stored in a non-visible namespace that cannot be directly edited by users through normal document editing operations.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10261980B2Method and system for persisting add-in data in documents
Publication Date: 2019.04.16 FREEDOM SOLUTIONS GROUP LLC
  • US10261980B2 patent drawing
  • US10261980B2 patent drawing
  • US10261980B2 patent drawing

AI summary

A method and system for storing data used by an add-in application in, or associated with, a document. Document-based applications, such as Microsoft® Word and Corel® WordPerfect®, can be functionally enhanced with third-party add-ins. Present methods of storing data in a document body can slow down the document-based application processing significantly as the document grows large and the data associated with the add-in or document application also grows. Other current methods use auxiliary files, which means that the auxiliary files must be kept with the document. The presented method and system enable efficient add-in storage in a document, without substantial slow-down in performance or interference with the user's ability to manipulate the document. Because data is stored within the document itself, the document can be shared without losing data used by the add-in application.