IP Library Granted Patent US 12711106
Granted Patent B2
US 12711106 · App. 18/972,932 · Granted Aug 18, 2026

Encoded data storage

Inventor: Giancarlo Frison (Mammendorf, DE)
Assignee: SAP SE
G06F16/182G06F3/0608G06F3/0655G06F3/0679
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12711106
App. No.
18/972,932
Granted
Aug 18, 2026
Kind
B2
Abstract

Various examples are directed to systems and methods of storing data in a computing system. An application may access argument data describing a first argument value. The application may access a first record from a node data structure using the first argument value, the first record from the node data structure describing a first argument identifier and a first node predicate position record from a node predicate position data structure using the first argument identifier. The application may access a first position predicate node record from a position predicate node data structure using the first predicate instance identifier and a second position identifier. The application may return first predicate instance data describing the first predicate instance, the first argument value at the first predicate instance position of the first predicate instance, and a second argument value at the second predicate instance position of the first predicate instance.

Claims (78)

1 . A computing system for storing data, the computing system comprising:

a database data storage comprising:

a node data structure comprising a plurality of node data structure records, a portion of the plurality of node data structure records relating respective argument values to respective argument identifiers;

a node predicate position data structure comprising a plurality of node predicate position data structure records, a portion of the plurality of node predicate position data structure records relating respective argument identifiers to respective predicate instance identifiers and respective predicate instance positions; and

a position predicate node data structure comprising a plurality of position predicate node data structure records, a portion of the plurality of position predicate node data structure records relating respective predicate instance identifiers, predicate position identifiers, and argument identifiers; and

at least one processor programmed to perform operations comprising:

accessing argument data describing a first argument value;

querying the node data structure using the first argument value to identify a first argument identifier associated with the first argument value using a first node data structure record from the portion of the plurality of node data structure records, the first node data structure record comprising the first argument value and the first argument identifier;

querying the node predicate position data structure using the first argument identifier to identify a first node predicate position record from the portion of the plurality of node predicate position data structure records, the first node predicate position record comprising a first predicate instance identifier and an indication of a first predicate instance position of a first predicate instance associated with the first predicate instance identifier;

querying the position predicate node data structure using the first predicate instance identifier and a second position identifier describing a second predicate instance position of the first predicate instance to identify a first position predicate node data structure record of the portion of the plurality of position predicate node data structure records, the first position predicate node data structure record comprising the first predicate instance identifier, the second position identifier, and a second argument identifier; and

returning, in response to the argument data, first predicate instance data describing the first predicate instance, the first argument value at the first predicate instance position of the first predicate instance, and a second argument value associated with the second argument identifier at the second predicate instance position of the first predicate instance.

2 . The computing system of claim 1 , the operations further comprising accessing a first arity record from an arity data structure using the first predicate instance identifier, the first arity record describing an arity of the first predicate instance associated with the first predicate instance identifier, the first predicate instance data comprising a number of arguments equivalent to the arity.

3 . The computing system of claim 1 , the operations further comprising:

querying the node predicate position data structure using the first argument identifier to identify a second node predicate position data structure record comprising a second predicate instance identifier and an indication of a first predicate instance position of a second predicate instance associated with the second predicate instance identifier;

querying the node predicate position data structure using the second predicate instance identifier and a second position identifier describing a second predicate instance position of the second predicate instance to identify a second node predicate position data structure record comprising a third argument identifier; and

returning, in response to the argument data, second predicate instance data describing the second predicate instance, the first argument value at the first predicate instance position of the second predicate instance, and a third argument value associated with the third argument identifier at the second predicate instance position of the second predicate instance.

4 . The computing system of claim 1 , the operations further comprising:

accessing predicate type data describing a first predicate type;

querying the node data structure using the first predicate type to identify a second node data structure record describing a first predicate type identifier;

querying the position predicate node data structure using a second predicate instance indicator describing a second predicate instance of the first predicate type and an indication of a first predicate instance position of the second predicate instance to identify a second position predicate node data structure record comprising a third argument identifier; and

returning, in response to the predicate type data, second predicate instance data describing the second predicate instance and a third argument value associated with the third argument identifier at the first predicate instance position of the second predicate instance.

5 . The computing system of claim 4 , the operations further comprising accessing a first arity record from an arity data structure using the second predicate instance indicator, the first arity record describing an arity of the second predicate instance, and the second predicate instance data describing a number of arguments corresponding to the arity of the second predicate instance.

6 . The computing system of claim 4 , the operations further comprising accessing a first maximum predicate instance record from a maximum predicate instance data structure using the first predicate type identifier, the first maximum predicate instance record indicating a number of instances of the first predicate type and a number of predicate instances described in response to the predicate type data corresponding to the number of instances of the first predicate type.

7 . The computing system of claim 1 , the operations further comprising:

accessing second predicate instance data describing a second predicate instance, the second predicate instance data comprising a first predicate type and a third argument value at a first predicate instance position of the second predicate instance;

writing, to an arity data structure, an arity record describing an arity of the second predicate instance;

writing, to the node data structure, a second node data structure record comprising the first predicate type and a first predicate type identifier;

writing, to the node data structure, a third node data structure record comprising the third argument value and a third argument identifier; and

writing, to the node predicate position data structure, a second node predicate position data structure record describing, a third argument identifier describing the third argument value, a second predicate instance identifier describing the second predicate instance, and an indicator of the first predicate instance position of the second predicate instance.

8 . The computing system of claim 1 , the operations further comprising:

accessing first query data, the first query data describing a first predicate type, a third argument value at a first predicate instance position, and a variable at a second predicate instance position;

generating a variable query edge matrix describing predicate instances of the first predicate type having the third argument value at the first predicate instance position; and

returning, in response to the first query data, a column of the variable query edge matrix corresponding to the second predicate instance position.

9 . The computing system of claim 1 , the operations further comprising:

accessing a first query data, the first query data describing a second predicate instance comprising a first predicate type, a third argument value at a first predicate instance position of the second predicate instance, and a fourth argument value at a second predicate instance position of the second predicate instance;

generating a variable query edge matrix describing predicate instances of the first predicate type having the third argument value at the first predicate instance position and the fourth argument value at the second predicate instance position;

determining that the variable query edge matrix describes at least one predicate instance of the first predicate type; and

returning, in response to the first query data, an indication that the second predicate instance is true.

10 . A method of storing data in a computing system, the method comprising:

accessing argument data describing a first argument value;

querying a node data structure using the first argument value to identify a first argument identifier associated with the first argument value using a first node data structure record from a node data structure, the first node data structure record comprising the first argument value and the first argument identifier;

querying a node predicate position data structure using the first argument identifier to identify a first node predicate position record from a node predicate position data structure, the first node predicate position record comprising a first predicate instance identifier and an indication of a first predicate instance position of a first predicate instance associated with the first predicate instance identifier;

querying a position predicate node data structure using the first predicate instance identifier and a second position identifier describing a second predicate instance position of the first predicate instance to identify a first position predicate node data structure record, the first position predicate node data structure record comprising the first predicate instance identifier, the second position identifier, and a second argument identifier; and

returning, in response to the argument data, first predicate instance data describing the first predicate instance, the first argument value at the first predicate instance position of the first predicate instance, and a second argument value associated with the second argument identifier at the second predicate instance position of the first predicate instance.

11 . The method of claim 10 , further comprising accessing a first arity record from an arity data structure using the first predicate instance identifier, the first arity record describing an arity of the first predicate instance associated with the first predicate instance identifier, the first predicate instance data comprising a number of arguments equivalent to the arity.

12 . The method of claim 10 , further comprising:

querying the node predicate position data structure using the first argument identifier to identify a second node predicate position data structure comprising a second predicate instance identifier and an indication of a first predicate instance position of a second predicate instance associated with the second predicate instance identifier;

querying a node predicate position data structure using the second predicate instance identifier and a second position identifier describing a second predicate instance position of the second predicate instance to identify a second node predicate position data structure record comprising a third argument identifier; and

returning, in response to the argument data, second predicate instance data describing the second predicate instance, the first argument value at the first predicate instance position of the second predicate instance, and a third argument value associated with the third argument identifier at the second predicate instance position of the second predicate instance.

13 . The method of claim 10 , further comprising:

accessing predicate type data describing a first predicate type;

querying the node data structure using the first predicate type to identify a second node data structure record describing a first predicate type identifier;

querying the position predicate node data structure using a second predicate instance indicator describing a second predicate instance of the first predicate type and an indication of a first predicate instance position of the second predicate instance to identify a second position predicate node data structure record comprising a third argument identifier; and

returning, in response to the predicate type data, second predicate instance data describing the second predicate instance and a third argument value associated with the third argument identifier at the first predicate instance position of the second predicate instance.

14 . The method of claim 13 , further comprising accessing a first arity record from an arity data structure using the second predicate instance indicator, the first arity record describing an arity of the second predicate instance, and the second predicate instance data describing a number of arguments corresponding to the arity of the second predicate instance.

15 . The method of claim 13 , further comprising accessing a first maximum predicate instance record from a maximum predicate instance data structure using the first predicate type identifier, the first maximum predicate instance record indicating a number of instances of the first predicate type, a number of predicate instances described in response to the predicate type data corresponding to the number of instances of the first predicate type.

16 . The method of claim 10 , further comprising:

accessing second predicate instance data describing a second predicate instance, the second predicate instance data comprising a first predicate type and a third argument value at a first predicate instance position of the second predicate instance;

writing, to an arity data structure, an arity record describing an arity of the second predicate instance;

writing, to the node data structure, a second node data structure record relating the first predicate type and a first predicate type identifier;

writing, to the node data structure, a third node data structure record relating the third argument value and a third argument identifier; and

writing, to the node predicate position data structure, a second node predicate position data structure record describing, a third argument identifier describing the third argument value, a second predicate instance identifier describing the second predicate instance, and an indicator of the first predicate instance position of the second predicate instance.

17 . The method of claim 10 , further comprising:

accessing first query data, the first query data describing a first predicate type, a third argument value at a first predicate instance position, and a variable at a second predicate instance position;

generating a variable query edge matrix describing predicate instances of the first predicate type having the third argument value at the first predicate instance position; and

returning, in response to the first query data, a column of the variable query edge matrix corresponding to the second predicate instance position.

18 . The method of claim 10 , further comprising:

accessing a first query data, the first query data describing a second predicate instance comprising a first predicate type, a third argument value at a first predicate instance position of the second predicate instance, and a fourth argument value at a second predicate instance position of the second predicate instance;

generating a variable query edge matrix describing predicate instances of the first predicate type having the third argument value at the first predicate instance position and the fourth argument value at the second predicate instance position;

determining that the variable query edge matrix describes at least one predicate instance of the first predicate type; and

returning, in response to the first query data, an indication that the second predicate instance is true.

19 . A non-transitory machine-readable medium comprising instructions thereon that, when executed by at least one processor, cause the at least one processor to perform operations comprising:

accessing argument data describing a first argument value;

querying a node data structure using the first argument value to identify a first argument identifier associated with the first argument value using a first node data structure record from a node data structure using the first argument value, the first node data structure record comprising the first argument value and the first argument identifier;

querying a node predicate position data structure using the first argument identifier to identify a first node predicate position record from a node predicate position data structure, the first node predicate position record comprising a first predicate instance identifier and an indication of a first predicate instance position of a first predicate instance associated with the first predicate instance identifier;

querying the position predicate node data structure using the first predicate instance identifier and a second position identifier describing a second predicate instance position of the first predicate instance to identify a first position predicate node data structure record, the first position predicate node data structure record comprising the first predicate instance identifier, and the second position identifier a second argument identifier; and

returning, in response to the argument data, first predicate instance data describing the first predicate instance, the first argument value at the first predicate instance position of the first predicate instance, and a second argument value associated with the second argument identifier at the second predicate instance position of the first predicate instance.

20 . The non-transitory machine-readable medium of claim 19 , the operations further comprising accessing a first arity record from an arity data structure using the first predicate instance identifier, the first arity record describing an arity of the first predicate instance associated with the first predicate instance identifier, the first predicate instance data comprising a number of arguments equivalent to the arity.