Compressed RDF Graph Notation for Fast Triple Insertion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for compressing Resource Description Framework (RDF) tuples suffer from low performance, with maximum insertion rates of RDF triples per second on standard machines rarely exceeding 700,000, which is insufficient for the increasing size of graphs used in applications like CAD, CAE, and CAM, necessitating an improvement to reach at least 1 Million RDF tuples per second.

Innovation Solution

A method involving grouping RDF tuples by shared predicates, sorting them based on subject and object encoding, serializing the predicate index, and computing differences between consecutive tuples to encode these differences as variable-length integers, enhancing compression efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If existing compression methods are used for RDF tuples, then data can be stored and transferred, but the insertion rate remains below 700,000 triples per second, which is insufficient for large-scale graph applications

Engineering Contradiction:
Improveinsertion rate of RDF triplesVSAvoiddata transfer volume
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The RDF tuple is segmented into three independent components (subject, predicate, object), each encoded separately with dedicated dictionaries. This segmentation allows parallel processing of components and optimized compression for each element type, contributing to achieving 1 million triples per second insertion rate

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Dictionaries are pre-computed and stored for all possible subjects, predicates, and objects before compression. This preliminary action enables O(1) lookup during compression operations, eliminating the need for complex runtime computations and enabling high-speed compression at 1 million triples per second

Inventive Principle:
Principle #10Preliminary action

Solution Approach 3:

Encoded representations serve as intermediaries between the original RDF tuples and the compressed binary format. The encoding process transforms human-readable subjects, predicates, and objects into compact numeric codes that can be efficiently serialized, achieving both compression and high insertion rates

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of energy

If data is transferred in uncompressed format, then simplicity is maintained, but network resources and storage space are excessively consumed

Engineering Contradiction:
Improvenetwork resourcesVSAvoidcompression algorithm complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The data representation parameters are changed from text-based RDF formats to compact binary encodings. Each RDF component is transformed into numeric codes with specific bit-lengths based on dictionary sizes, achieving significant compression ratios while maintaining decompressibility through reversible encoding

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

Instead of transmitting or storing the full RDF tuple structure repeatedly, the invention transmits compact binary copies containing only the essential encoded components. The full semantic meaning is reconstructed at the receiving end by looking up codes in the corresponding dictionaries, reducing network and storage requirements

Inventive Principle:
Principle #26Copying

Data Source

PatentUS20250342210A1Compressed graph notation
Publication Date: 2025.11.06 DASSAULT SYSTEMES SA
  • US20250342210A1 patent drawing
  • US20250342210A1 patent drawing
  • US20250342210A1 patent drawing

AI summary

A method for compressing RDF tuples. The method including obtaining RDF tuples, obtaining a dictionary of indices, encoding for each RDF tuple the indices attributed to the subject and the object, grouping RDF tuples sharing the same predicate and for each group sorting the RDF tuples by considering the encoding of the subject and the object, and for each group of sorted RDF tuples, serializing the index of the shared predicate, serializing the encoding of the subject and the object of a first RDF tuple, and for each RDF tuple of the group of sorted RDF tuples subsequent to the first RDF tuple of the group, computing a difference between the encoding of the subject and the object of a current RDF tuple and the encoding of the subject and the object of a previous RDF tuple, and serializing the computed difference in a form of a variable-length integer.