Graph Database Inverse Functional Property Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graph databases, subject-predicate-object databases, and triplestores require clients to maintain complex mappings between their own identifiers and the database's internal identifiers for updating entities, leading to increased storage and processing burdens, as well as limitations in extending data models and processing capabilities.

Innovation Solution

A facility that allows clients to use their own identifiers, known as inverse functional properties, to update entities in graph databases, eliminating the need to track database-assigned identifiers, and maintaining a cross-reference table to map these identifiers to internal database IDs, enabling efficient entity management and reconciliation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If clients use database-assigned internal identifiers to update entities, then entity updates can be performed, but clients must maintain complex mappings between their own identifiers and database identifiers, increasing storage and processing burdens

Engineering Contradiction:
Improveentity update capabilityVSAvoididentifier mapping complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary mapping mechanism where the database server maintains a mapping between client-provided identifiers and internal database identifiers. This intermediary layer allows clients to use their own identifier system without directly managing the complex mapping to database internal identifiers, thereby reducing client-side complexity while maintaining reliable entity updates.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If clients maintain mappings between their identifiers and database identifiers, then entity updates are possible, but storage and processing resources are consumed

Engineering Contradiction:
Improveentity update capabilityVSAvoidstorage and processing resources
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts the identifier mapping functionality from the client side and relocates it to the database server side. By taking out the mapping maintenance burden from clients, the system reduces the storage and processing resources that clients must allocate, while the server handles the mapping operations centrally.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If the database uses internal identifiers, then entity management is efficient, but clients cannot use their native identifiers to update entities

Engineering Contradiction:
Improveentity management efficiencyVSAvoidclient identifier compatibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements a universal identifier system where the database accepts multiple types of identifiers (both internal database identifiers and client-native identifiers) for entity updates. The server-side mapping mechanism enables the system to handle different identifier types uniformly, maintaining internal management efficiency while providing adaptability to various client identifier systems.

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

Data Source

PatentUS10339130B2Diverse addressing of graph database entities by database applications
Publication Date: 2019.07.02 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10339130B2 patent drawing
  • US10339130B2 patent drawing
  • US10339130B2 patent drawing

AI summary

A facility for addressing nodes in a graph database is described. The facility receives from a first application a first indication that it treats a first property as a unique identifier, and receives from a second application distinct from the first application a second indication that it treats a second property distinct from the first property as a unique identifier. The facility receives from the first application a first update request for a distinguished entity, the distinguished entity identified in the first update request by its value for the first property. The facility performs the first update request with respect to the distinguished entity. The facility receives from the second application a second update request for the distinguished entity, the distinguished entity identified in the second update request by its value for the second property. The facility performs the second update request with respect to the distinguished entity.