# US 10,769,209 B1 · Apparatus and method for template driven data extraction in a semi-structured document database

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,769,209 B1
- Document ID: US10769209B1
- Status: Granted
- Kind: B1
- Application number: 15/406,650
- Filed: 2017-01-13
- Granted: 2020-09-08
- Earliest claimed: 2017-01-13
- Assignees: MarkLogic Corporation
- Applicants: MarkLogic Corporation
- Inventors: Fayez Saliba; Christopher Lindblad
- Web page: https://patentgrep.com/patent/US10769209B1

## CPC

- G06F 16/81: Indexing, e.g. XML tags; Data structures therefor; Storage structures
- G06F 16/8373: {Query execution}
- G06F 16/84: Mapping; Conversion
- G06F 16/86: {Mapping to a database}
- G06F 16/93: Document management systems
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An apparatus has a processor and a memory connected to the processor. The memory stores instructions executed by the processor to ingest and store a semi-structured document within a database. A template is suggested based upon an evaluation of the semi-structured document. The template includes a context specification of a template path that corresponds to a path within the semi-structured document. The template further includes an index specification characterizing data to be extracted from the semi-structured document. A template selection is received. The template selection is executed to form an index entry for the semi-structured document within an index.

## Claims

### Claim 1

An apparatus, comprising:
a processor implemented by hardware; and
a memory connected to the processor, the memory storing instructions executed by the processor to:
ingest and store a semi-structured document within a database;
suggest a template based upon an evaluation of the semi-structured document, wherein
the template includes a context specification defining a template context that corresponds to a context within the semi-structured document, and
the template further includes an index specification characterizing data to be extracted from the semi-structured document;
receive a template selection of the suggested template;
execute the template selection to form an index entry of a respective query format for the semi-structured document within an index, of the database, that supports multiple query formats, including relational query format and triple (subject-predicate-object) query format;
receive a query in at least one of the multiple query formats; and
resolve the query in the at least one of the multiple query formats against the index.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the index is a columnar index.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein the index is a geospatial index.

### Claim 4 (depends on 1)

The apparatus of claim 1, wherein the index is a range index.

### Claim 5 (depends on 1)

The apparatus of claim 1, wherein the index is a field index.

### Claim 6 (depends on 1)

The apparatus of claim 1, further comprising instructions executed by the processor to:
receive a first template selection with a first context specification and a first index specification, and
receive a second template selection with a second context specification and a second index specification.

### Claim 7 (depends on 6)

The apparatus of claim 6, further comprising instructions executed by the processor to execute the first template selection to form a first index entry for the semi-structured document within the index and execute the second template selection to form a second index entry for the semi-structured document within the index.

### Claim 8 (depends on 1)

The apparatus of claim 1, wherein the template includes a transformation specification characterizing operations to be performed on the data extracted from the semi-structured document.

### Claim 9 (depends on 1)

The apparatus of claim 1, wherein the template includes a child template with a nested context specification relative to the context specification.

### Claim 10 (depends on 9)

The apparatus of claim 9, wherein the child template has a nested child template.

### Claim 11 (depends on 1)

The apparatus of claim 1, wherein the index entry is a triple data entry with a subject including a predefined element and an appended element extracted from the semi-structured document, a predicate with a predefined element and an object with the data extracted from the semi-structured document.

### Claim 12 (depends on 1)

The apparatus of claim 1, wherein the index entry is a triple data entry including a pre-defined subject, predicate and object.

### Claim 13 (depends on 1)

The apparatus of claim 1, wherein the index entry is a triple data entry including a dynamically formed subject, predicate and object extracted from the semi-structured document.

### Claim 14 (depends on 1)

The apparatus of claim 1, wherein the index entry is a triple data entry with data appended to the data extracted from the semi-structured document.

### Claim 15 (depends on 1)

The apparatus of claim 1, wherein the index entry is a triple data entry with transformed data from the semi-structured document.
