Reference-, model-driven and artificial intelligence-powered search

The system addresses inefficiencies in querying diverse data types by using a combination of operators and AI to generate accurate and efficient search results across multiple data types, enhancing performance and scalability in supercomputer environments.

DE112022006763T5Pending Publication Date: 2025-01-09HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE112022006763
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Filing Date
2022-06-24
Publication Date
2025-01-09

AI Technical Summary

Technical Problem

Traditional systems face challenges in efficiently querying large volumes of geospatial data across multiple data types due to their separation by data type, leading to time-consuming processes and inaccurate search results.

Method used

A system utilizing a reference operator, user-defined function operator, and artificial intelligence operator in conjunction with a boundary layer and multiple shards of a database to process search queries, enabling simultaneous retrieval of structured, semi-structured, and unstructured data types, employing similarity values and AI models to determine matches.

Benefits of technology

Enhances search efficiency and accuracy by merging data types into a unified result set, improving performance and scalability, particularly in supercomputer environments, and supporting interactive querying of large datasets.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

The systems and procedures disclosed herein can include a variety of operators to simultaneously search for and retrieve different data types within a result set. These operators can include a reference operator, a user-defined function operator (UDF operator), and an artificial intelligence operator (Kl operator) in communication with a boundary layer and multiple shards of a database to generate the result set.
Need to check novelty before this filing date? Find Prior Art

Description

background

[0001] In traditional systems, data is stored separately based on data type, making it difficult to query across multiple data types. The query process across multiple data types can be time-consuming due to the volume, complexity, and multiple modalities of the data. For example, there are now over 33 exabytes of geospatial data (e.g., satellite raster scans, aerial / cosmological imagery, 3D point clouds, survey maps, and meshes). Various database types attempt to handle large sets of structured, semi-structured, or unstructured data, but these databases rarely operate efficiently or provide search results that accurately find all possible data elements related to the search query. Brief description of the drawings

[0002] The present revelation is described in detail in accordance with one or more different examples relating to the following figures. The figures are provided for illustrative purposes only and merely represent typical examples. Fig. Figure 1 illustrates an example system with computation nodes in accordance with various examples. Fig. Figure 2 illustrates an example system with compute nodes for processing the received search query in accordance with various examples. Fig. Figure 3 illustrates an example system with a reference operator, user-defined function operator (UDF operator), an artificial intelligence operator (Kl operator) communicating with a boundary layer and multiple shards of a database to process the received search query in accordance with various examples. Fig. Figure 4 illustrates an example system with a reference operator, UDF operator and KL operator communicating with a boundary layer and several shards of a database to generate the result set in accordance with various examples. Fig. Figure 5 illustrates an example implementation of the UDF operator and the search query in accordance with various examples. Fig. Figure 6 illustrates a sample calculation component that can be used in accordance with various examples. Fig. 7 is a sample computing component that can be used to implement various features of the examples described in the present disclosure.

[0003] The figures are not exhaustive and do not limit the present revelation exactly to the revealed form. Detailed description

[0004] The systems and procedures disclosed herein can include a variety of operators to simultaneously search for and reference different data types within a result set. These operators can include a reference operator, a user-defined function operator (UDF operator), and an artificial intelligence operator (Kl operator) in communication with a boundary layer and multiple shards of a data structure to generate the result set.

[0005] Data can be retrieved in response to a user's search query. The search query can request one or more data elements of various data types, including structured, semi-structured, or unstructured data. The search query can conform to a specific query language (e.g., SPARQL). The system can combine different datasets stored in one or more data stores into a boundary layer. This boundary layer can interact with a reference operator, a user-defined function (UDF) operator, and a logical operator (KL) to access the stored data across multiple shards of a data store or data structure. The goal is to determine which data items satisfy one or more conditions corresponding to each operator. The reference operator allows the condition to be linked to the data matching a data attribute of the search query.The UDF operator allows the condition to be linked to the requirement that the data exceed a similarity value. This similarity value can be user-defined or a default value. In some examples, the similarity value might represent a probability, an order, or another similarity metric. The AI ​​operator allows the condition to be linked to the requirement that the data match an attribute of the search query, which uses one or more artificial intelligence models to determine a match. The data that meets a condition, exceeds a similarity value, or is returned as matches can be combined into the result set. The result set can take the form of a hash table, a vector, a key-value index, or feature embeddings presented to a user interface.In some examples, the hash table can include a data structure for structured and unstructured data types that can map keys to values. In some examples, the hash table can use a hash function to calculate an array that sorts the data results according to data type or other attributes.

[0006] Technological improvements are provided across the submitted application. For example, improvements to the performance and scalability of supercomputer products with general-purpose processors can be made using a high-performance intermediary connection. Examples may include improvements to conventional data storage (e.g., graph databases) that can improve the performance of database operations. These operations can allow users to compare expressions found as part of a search query to apply ordering or ranking to the search results. These raw strings for these expressions can be stored in a directory that can be implemented as a distributed hash table, propagating the strings across all processes. This distribution of expressions results in increased efficiency in processing and retrieving different data types simultaneously (e.g.,(without multiple queries).

[0007] Fig. Figure 1 illustrates an example system with compute nodes in accordance with various examples. System 100 includes a variety of resources that are replicated across multiple compute nodes or images 112 (illustrated as the first compute node 112A, second compute node 112B, and third compute node 112C). These resources can include, for example, deserializers 128, operators 130, and dispatchers 132. Access to the variety of resources can be provided by frontend 110.

[0008] System 100 can comprise one or more data stores 102 distributed across compute nodes or images 112. The components of the data stores 102 can include, for example, directories 118, intermediate result arrays 120, hash tables and other auxiliary data structures 122, and databases 124. Storage file systems 114 can be used to host databases 124 as well as user spaces, checkpoints, and other data.

[0009] One or more data stores 102 can include one or more types of data structures for storing structured and unstructured data, including an in-memory semantic graph database. Other database types may be implemented without altering the scope of this disclosure. One or more data stores 102 can be designed to scale to hundreds of nodes and tens of thousands of processes to support interactive querying of large datasets (~100 terabytes). The data stores take datasets of N triples / N quads through various implementations. For example, the takeover of the datasets may be based on a Resource Description Framework (RDF) format and may also accept one or more search queries using the SPARQL query language. The RDF format may be expressed as a labeled, directed graph.The RDF format can correspond to a quad format, consisting of four fields: subject, predicate, object, and graph, or a triple format with fewer fields. For example, the following is a simplified version of an example RDF triple that could be loaded into the data store:

[0010] One or more data stores 102 can contain a network of possible connections. Vertices or nodes generally refer to entities (e.g., data, people, businesses, etc.), and connections between entities are edges. One or more data stores 102 can be used to identify entities that are connected to other entities. Generally, local processing can be used to process small amounts of data around compute nodes 112. Other tasks may involve evaluating edges / connections on a more holistic basis (e.g., in a whole-data store or graph analysis).

[0011] One or more data stores can be used to generate a semantic graph through System 100. The semantic graph can include a collection of such triples with subjects and objects representing vertices, and predicates representing edges between the vertices. Semantic graph databases differ from relational databases in that the underlying data structure is a graph rather than a structured set of tables in a data store.

[0012] The semantic graph can be generated by the backend query engine, which runs across compute node 112. Input is distributed across these nodes, with each node generating a subset of the semantic graph. The final semantic graph is then constructed by synchronizing these subsets across the compute nodes to remove duplicates.

[0013] In various examples, one or more data stores 102 can include two main components: the directory and the query engine. Directory 118 is responsible for building the data store, which is the process of taking raw N triples / N quads files from a parallel high-performance file system (e.g., Lustre® File System) and transforming them for the internal representation used by the data stores 102. Directory 118 stores the unique RDF strings of the N triples / N quads and provides a mapping between the unique strings and the integer identifiers used internally by the query engine for the quads. The query engine can be implemented to process the search query, update requests, or execute a number of built-in graph algorithms (e.g.,to provide centrality measurements, PageRank or connectivity analysis) that are applied to query data and help return search results to the user as a result set.

[0014] Directory 118 can contain a mapping of RDF strings to integer identifiers, and the storage of the internal quads is implemented, for example, using distributed hash tables. Each compute node used by the backend query engine can access or store a subset of the complete hash table. In some examples, compute node 112 can access the hash table data held by any of the other compute nodes. During query execution, the intermediate results of each step can be stored in an intermediate results array (IRA), which can be distributed across compute node 112.

[0015] Frontend 110 of System 100 can receive one or more search queries from a user via an application programming interface (API), a browser / editor, or other component to access System 100. Frontend 110 provides an interface through which a user can interact with the system, for example, by submitting queries and receiving results. System 100 can be implemented on hardware that may be built on a partitioned global address space. This allows the system to treat independent processes, nodes, and images as their own entities, but it can partition and share data across images using a communication directory that is distinct from directory 118. The communication directory can be used by remote processes to exchange data and coordinate operations.System 100 can be configured to run thousands of computational images 112 in a coordinated manner, with each running independently on its own subset and then being synchronized later when needed for results using the communication directory.

[0016] Fig. Figure 2 illustrates an example system with compute nodes for processing the search query in accordance with various examples. For example, System 200 of Fig. 2 System 100 of Fig. 1. Additionally, frontend 110, compute node 112 and one or more data stores 102 can be of Fig. 1 Frontend 212, Computing node 214 and Data storage 220 of Fig. 1 corresponds.

[0017] System 200 can receive a search query from user device 210, which can then submit the search query through the frontend, implemented as one or more of the interfaces discussed herein. The search query can be transformed by the frontend 212 (e.g., using the SARQL query language format) and passed to compute nodes 214, which perform various operations on the data to obtain an applicable search result set. In some examples, a boundary layer can provide communication and control between the frontend 212 and the stored data (e.g., separated into shards, as in Fig. Figure 3 illustrates this. Compute nodes 214 can receive the search query and execute one or more operators 218 to perform the query operations on the data elements stored in data stores 220. In this example, the operators 218 included are SCAN, JOIN, MERGE, OPTIONAL, UNION, FILTER, and BIND, although other operations can be used. These operations can be used to traverse the data in different data stores 120 in different ways to satisfy a search query.

[0018] Fig. Figure 3 illustrates an example system with a reference operator, user-defined function operator (UDF operator), and artificial intelligence operator (Kl operator) communicating with a boundary layer and multiple shards of a database to process the search query in accordance with various examples. For instance, System 300 and Frontend 304 can be used by Fig. 3 System 100 or Frontend 110 of Fig. 1 corresponds.

[0019] In this illustration, a search query 300 can be submitted from a user device to frontend 304 of system 300. An illustrative search query is provided here: `select distinct ?protB ?sim_orig ?seqB ?seq where { ?protein a core:Protein ; core:mnemonic 'SPIKE_SARS2' ; core:sequence ?isoform . ?isoform rdf:value ?seq . ?targetcmpt cco:targetCmptXref ?protB . ?target cco:hasTargetComponent ?targetcmpt . ?assay cco:hasTarget ?target . ?protB a core:Protein ; core:sequence ?isoformB ; up:recommendedName ?recommended .` ?recommended up:fullName ?name . ?isoformB rdf:value ?seqB .

[0020] Frontend 304 can pass the attributes of search query 302 via several operators, including the reference operator 310, UDF operator 312, or AI operator 314. Using these operators, System 300 can access and analyze a large number of data sets of different data types simultaneously.

[0021] Reference operator 310, UDF operator 312, and KL operator 314 can query across a variety of boundary layers 318 (illustrated as first boundary layer 318A, second boundary layer 318B, third boundary layer 318C, fourth boundary layer 318D, fifth boundary layer 318E, sixth boundary layer 318F, and seventh boundary layer 318G). Boundary layer 318 can be implemented as a hash table, vector embeddings, feature embeddings, key-value index embeddings, or any other data structure. Boundary layer 318 can include all sets of structured and unstructured data returned by shards 316 as described herein.

[0022] Shard 316 (illustrated as first shard 316A, second shard 316B, third shard 316C, fourth shard 316D, fifth shard 316E, sixth shard 316F, and seventh shard 316G) can correspond to a partition of a data store, where the data store contains structured or unstructured data. Each data record can comprise a multitude of shards 316, with each shard 316 corresponding to a partition of data in the data store. For all data records, the boundary layer can combine all data records into a hash table or other data structure. The hash table can be queried using a reference operator 310, a UDF operator 312, and an AI operator 314. Reference operator 310 can query the semantic graph or data store based on a directory search that determines whether data elements include a desired attribute or operational property. For example, a data element might have attributes such as date, size, and aperture.The reference operator 310 can determine if an attribute exists and return a data element that includes the requested attributes.

[0023] Operators 310, 312, and 314 can query all shards through boundary layer 318 to provide search results to the user that span multiple data types. These data types can include graphs, sequences, molecules, video, images, text, and any other data type. Boundary layer 318 makes it easier to provide the user with a single data record in response to a search query 302.

[0024] Reference operator 310 is configured to identify one or more attributes of data elements in the data store that would match the attributes requested in search query 302.

[0025] UDF operator 312 uses predefined or dynamic user-defined functions to generate a comparison between two or more data elements. These functions can be written by the user to apply domain-specific knowledge to the query result set. The graph database can provide a generic function that users can override with their own function, which the graph database can load into memory when the program starts. The graph database can define the function to allow it to pass parameters to the user function and to allow users to return information to the graph database to evaluate an expression for an operator. The information returned by the user function to the graph database can allow the domain-specific function to rank or filter search results.In various examples, the system can be configured so that the user can add user-defined functions to perform individual searches / queries.

[0026] Frontend 304 can also be configured via UDF 312 to allow the creation of custom functions within query expressions, enabling domain-specific operations on data as part of the search query. This feature allows users to define, express, and execute domain-specific mathematical operations to evaluate and rank search results (e.g., when the function is not otherwise supported in the SPARQL query language). Such graph operations can be implemented as custom functions defined by the Uniform Resource Identifier (URI) in expressions. This capability can be configured to allow users to define their own function. An illustrative call to these user-defined functions might include the following:

[0027] The UDF operator 312 can determine the similarity between two data elements based on user-defined functions. This similarity can take the form of a similarity value, which can be applied in response to a search query or based on the relationship between two data elements within the data store. The similarity value can be determined using distributed methods based on numerical, geometric, combinatorial, or string-matching algorithms. The user-defined function operator can set a similarity threshold value, which can specify which data elements are returned to the user in response to the search query. For example, the user-defined function operator can set a similarity threshold of 0.8. This similarity threshold can be met or exceeded to return the data element to the user.Using this example, a data item with a similarity value of 0.9 would be returned to the user, while a data item with a similarity value of 0.5 would not exceed the threshold and therefore would not be included in the search results. The user-defined function operator (UDF) can create a set of search results based on the data items that meet or exceed the similarity value to be returned to the user. UDF operator 312 can create new attributes for data items based on these similarity values. These new attributes can then be used in future queries via reference operator 310 or clairvoyance operator 314.

[0028] AI Operator 314 can use a variety of AI models to receive one or more data items as input and produce an output. This output is then compared to attributes of the search query to determine if the AI ​​model's output matches the data items. The AI ​​models predict relationships between data items and determine a match based on one or more conditions associated with each model. For example, one AI model might determine if a cat is in an image, while a separate model might determine if the article discusses diseases associated with cats. Both of these data items—images and articles—can be considered a match to the search query associated with "cats."

[0029] These matches can also include predictions across modalities, such as image-text relationships, video-image relationships, and so on. AI Operator 314's use of multiple models helps provide search results that are close matches rather than just exact matches. These AI models can be pre-trained to identify a search result set from one or more search queries where the results contain a identified relationship or structure. AI Operator 314 determines whether data elements are a match for each applicable AI model and provides any matching data elements to Frontend 304 as part of the search results.

[0030] AI operator 314 can also be configured to create new attributes for data elements based on matches or predictions. These new attributes can also contribute to future queries using reference operator 310 or UDF operator 312.

[0031] The search results from each of operators 310, 312, and 314 can be provided to boundary layer 318. Boundary layer 318 can implement one or more functions on the returned data. As illustrated, boundary layer 318 can implement a set of binding functions to sample, combine, and merge the structured and unstructured data sets into a searchable format at boundary layer 318. An illustrative binding function is provided here: { bind(arq:user_func('ssw', ?seq, ?seqB) as ?sim_orig) filter(?sim_orig >= 0.184)} ?targetcmpt cco:targetCmptXref ?protB . ?target cco:hasTargetComponent ?targetcmpt . ?assay cco:hasTarget ?target ; cco:assayType ?assayType . ?protB up:organism ?taxon . ?taxon core:scientificName ?sciName . { bind(arq:user_func('dtba', ?smiles, ?seq) as ?dtba) filter(?dtba >= 6.5)} order by desc(?sim_orig) desc(?dtba)

[0032] Fig. Figure 4 illustrates an example system with a reference operator, UDF operator, and KL operator communicating with a boundary layer and several shards of a database to generate the result set, in accordance with various examples. In this example, operators 310, 312, and 314, boundary layers 318, and shards 316 of system 300 are used. Fig. 3 in Fig. 4 repeated to return result set 408.

[0033] Tables 402, 404, and 406 are also provided for storing temporary data. For example, Reference Operator 310 can execute machine-readable instructions to generate yes / no determinations. These instructions can determine whether a data item has a particular attribute as described herein. These search results can be stored in a table or record 402 to become part of the result set 408. In another example, UDF Operator 312 can record similarity values ​​in a table 404 to be added to result set 408. In yet another example, AI Operator 314 can execute machine-readable instructions to generate yes / no determinations. These instructions can determine the output based on the matches received from a variety of AI models as described herein. These search results can be stored in Table 406 to be returned as part of the result set 408.

[0034] Result set 408 can include one or more data structures in various formats for storing data tables 402, 404, and 406. Result set 408 can be returned to the user as a single record or in other predefined formats (e.g., through a user profile or other customizable options to optimize the user experience). In some examples, result set 408 can be stored in a System 300 data store. Fig. 3. It is stored, encompassing structured and unstructured data, where the data can be returned in response to future search queries.

[0035] Fig. Figure 5 illustrates a sample implementation of the UDF operator and search query in accordance with various examples. In this illustration, UDF dispatcher 518 is located in the context of system 200, compute node 214, operators 218, and data stores 220. Fig. 2. Other sections of System 200 are omitted for the sake of simplicity in this explanation.

[0036] Search query 510 can be directed to system 200, and operators 218 can retrieve applicable data from data stores 220 as described herein. In this example, search query 510 includes a request for data associated with a SARS2 spike protein, and the search query includes a mnemonic, which in this example is "SPIKE_SARS2". This section of search query 510 also identifies the protein sequence for the condition of interest, which in this case is a virus.

[0037] Search query 510 also includes one or more binding sequences 522, 524. The binding sequences 522, 524 in search query 510 trigger UDF dispatcher 518, which combines sets of structured and unstructured data. The data can be returned as a result set (e.g., result set 408 in...). Fig. 4) be provided and made available to a user interface accessible to a user device operated by a user. As described previously, the result set may include feature embeddings, vector embeddings, key-value index embeddings, or other data structure components.

[0038] Fig. Figure 6 illustrates an example computing component 600 that can be used to obtain different data types in a result set simultaneously, in accordance with an example of the disclosed technology. Computing component 600 can be, for example, a server computer, a control unit, or any other similar computing component capable of processing data. In the example implementation of Fig. The computing component 600 includes a hardware processor 602 and machine-readable storage medium 604. The hardware processor 602 can be one or more central processing units (CPUs), semiconductor-based microprocessors, and / or other hardware devices capable of retrieving and executing instructions stored on the machine-readable storage medium 604. The hardware processor 602 can retrieve, decode, and execute instructions, such as instructions 606-618, to retrieve different data types in a result set simultaneously.Alternatively or additionally, to receive and execute instructions, the 602 hardware processor may include one or more electronic circuits that contain electronic components for performing the functionality of one or more instructions, such as a field programmable gate array (FPGA), application specific integrated circuit (ASIC), or other electronic circuits.

[0039] A machine-readable storage medium, such as machine-readable storage medium 604, can be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. Therefore, machine-readable storage medium 604 can be, for example, random-access memory (RAM), non-volatile RAM (NVRAM), electrically erasable programmable read-only memory (EEPROM), a storage device, an optical disc, and the like. In some examples, machine-readable storage medium 604 can be a non-transient storage medium, where the term "non-transient" does not include transiently propagating signals. As detailed below, machine-readable storage medium 604 can be encoded with executable instructions, for example, instructions 606-618.

[0040] Hardware processor 602 can execute instruction 606 to receive a search query associated with one or more sets of structured and unstructured data. These sets of structured and unstructured data can be partitioned into a variety of shards, as described earlier (see, for example, shard 316 of...). Fig. 3).

[0041] Hardware processor 602 can execute instruction 608 to combine the multitude of sets of structured and unstructured data into a boundary layer (see, for example, boundary layer 318 of...). Fig. 3), where the boundary layer is implemented using a hash table, vector embeddings, key-value index embeddings, or feature embeddings. As previously described, the boundary layer can provide communication and control to the frontend (e.g., frontend 212 of Fig. 2) and the backend compute nodes (e.g. compute node 214 of Fig. 2) Provide. The data can be combined in accordance with binding sequences provided in the search query, which is then processed by the dispatcher (e.g., UDF dispatcher 518 of Fig. 5) be carried out.

[0042] Hardware processor 602 can execute instruction 610 to initiate a search of the multitude of sets of structured and unstructured data by providing the search query to the front end, or interface. As previously described, this interface layer can provide access to the data stores using a reference operator, UDF operator, and AI operator (see, for example, operators 310, 312, and 314). These operators can access the multitude of shards associated with the data stores (e.g., shard 316 of Fig. 3).

[0043] Hardware processor 602 can execute instruction 612 to determine whether one or more data elements within the boundary layer satisfy a condition associated with the reference operator. As previously described, the reference operator, like operator 310, can query boundary layer 318 based on a directory search that determines whether data elements include a desired attribute or operational property. Reference operator 310 can determine whether an attribute exists and return a data element that includes the requested attributes. These data elements can become part of the result set that can be returned to the user.

[0044] Hardware processor 602 can execute instruction 614 to determine whether data exceeds a similarity value associated with the UDF operator. As previously described, the UDF operator can determine the similarity between two data items based on user-defined functions. The similarity value can be determined using numerical, geometric, combinatorial, or string matching algorithms with distributed methods. The UDF operator can set a threshold similarity value that determines whether data items are returned to the user in response to the search query. The user-defined function operator can then generate a set of search results based on the data items that meet or exceed the similarity value to be returned to the user.

[0045] Hardware processor 602 can execute instruction 616 to determine whether data elements are returned as matches by the AI ​​operator. As described earlier, the AI ​​operator can use one or more artificial intelligence models to determine whether data elements are a match. The models predict relationships between data elements and determine a match based on one or more conditions associated with each model. These matches can also include predictions across modalities. The AI ​​operator determines whether data elements are a match for each applicable artificial intelligence model and provides all matching data elements to the user as part of the result set.

[0046] Hardware processor 602 can execute instruction 618 to merge data that meets a condition, exceeds a similarity value, or is returned as a match in a result set. These search results can be stored as a table to be returned to the user device. The result set can comprise a data structure (e.g., a hash table) of data received by the reference operator, UDF operator, and KL operator. The result set can be stored in the data store of structured and unstructured data for return in future queries. Hardware processor 602 can execute instruction 602 to return the data set to the user in the form of this data structure.

[0047] Fig.Figure 7 shows a block diagram of an example computer system 700, in which various examples described herein may be implemented. The computer system 700 includes a bus 702 or other communication mechanism for communicating information, wherein one or more hardware processors 704 are coupled to the bus 702 for processing information. The hardware processor(s) 704 may, for example, be one or more general-purpose microprocessors.

[0048] The Computer System 700 also includes a main memory 706, such as random-access memory (RAM), buffer memory, and / or other dynamic storage devices, coupled to bus 702 for storing information and instructions to be executed by processor 704. Main memory 706 can also be used to store temporary variables or other intermediate information during the execution of instructions to be carried out by processor 704. Such instructions, when stored on storage media available to processor 704, make Computer System 700 a special-purpose machine, customized to perform the operations specified in the instructions.

[0049] The Computer System 700 further includes a Read Only Memory (ROM) 708 or other static storage device coupled to bus 702 for storing static information and instructions for processor 740. A storage device 710, such as a magnetic disk, optical disk, or USB flash drive, etc., is provided and coupled to bus 702 for storing information and instructions.

[0050] The Computer System 700 can be coupled via Bus 702 to a Display 712, such as a Liquid Crystal Display (LCD) (or touchscreen), for displaying information to a computer user. An input device 714, including alphanumeric and other keys, is coupled via Bus 702 for communicating information and command selections to Processor 704. Another type of user input device is Pointer Control 716, such as a mouse, trackball, or pointer direction keys, for communicating directional information and command selections to Processor 704 and for controlling pointer movement on Display 712. In some examples, the same directional information and command selections can be implemented as pointer control by receiving touch inputs on a touchscreen without a pointer.

[0051] The Computing System 700 can include a user interface module to implement a GUI, which can be stored on a mass storage device as executable software code that is executed by the computing device(s). This and other modules can include components such as software components, object-oriented software components, class components and task components, processes, functions, attributes, procedures, subroutines, program code segments, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables.

[0052] In general, the terms "component," "engine," "system," "database," "data store," and the like, as used herein, can refer to logic embedded in hardware or firmware, or to a collection of software instructions that may have inputs and outputs written in a programming language such as Java, C, or C++. A software component may be compiled and combined into an executable program installed in a dynamic link library, or written in an interpreted programming language such as BASIC, Perl, or Python. It is desirable for software components to be callable by other components or by themselves, and / or to be invoked in response to detected events or interrupts.Software components configured to run on computing devices may be provided on a computer-readable medium, such as a compact disc, digital video disc, flash drive, magnetic storage medium, or any other tangible medium, or as a digital download (and may initially be stored in a compressed or installable format that requires installation, decompression, or decryption before execution). Such software code may be stored partially or entirely on a storage device of the executing computing device for execution by the computing device. Software instructions may be embedded in firmware, such as an EPROM. It is further desirable that hardware components may consist of interconnected logic units, such as gates and flip-flops, and / or programmable units, such as programmable gate arrays or processors.

[0053] The Computer System 700 can implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware, and / or program logic which, in combination with the Computer System, cause or program the Computer System 700 to be a special-purpose machine. According to one example, the techniques described herein are performed by Computer System 700 in response to Processor(s) 704 executing one or more sequences of one or more instructions contained in Main Memory 706. Such instructions may be read into Main Memory 706 from another storage medium, such as Storage Device 710. Execution of the sequences of instructions contained in Main Memory 706 causes Processor(s) 706 to perform the process steps described herein.In alternative examples, hardwired circuits can be used instead of, or in combination with, software instructions.

[0054] The term “non-transitory media” and similar terms as used herein refer to any media that store data and / or instructions that cause a machine to operate in a specific manner. Such non-transitory media may include non-volatile media and / or volatile media. Non-volatile media include, for example, optical or magnetic storage media, such as Storage Device 710. Volatile media include dynamic storage, such as Main Memory 706.Conventional forms of non-transitory media include, for example, a floppy disk, a flexible storage medium, a hard disk, a solid-state drive, magnetic tape or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with hole structures, a RAM, a PROM and EMPROM, a FLASH-EPROM, NVRAM, any other memory chip or connector and network-connected versions thereof.

[0055] Nontransitory media differ from, but can be used in conjunction with, transmission media. Transmission media are involved in transferring information between nontransitory media. For example, transmission media include coaxial cables, copper wire, and fiber optics, including the wires that comprise bus 702. Transmission media can also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communication.

[0056] The Computer System 700 also includes network interface 718 coupled to bus 702. Network interface 718 provides a two-way data communication connection with one or more network links connected to one or more local area networks (LANs). For example, network interface 718 can be an Integrated Services Digital Network (ISDN) card, a cable modem, a satellite modem, or a modem to provide a data communication connection with a suitable telephone line type. As another example, network interface 718 can be a local area network (LAN) card to provide a data communication connection with a compatible LAN (or a WAN component to communicate with a WAN). Wireless links can also be implemented.In such an implementation, network interface 718 sends and receives electrical, electromagnetic, or optical signals carrying digital data streams representing various types of information.

[0057] A network link typically provides data communication through one or more networks to other data devices. For example, a network link can provide a connection through a local area network to a host computer or data equipment operated by an Internet service provider (ISP). The ISP, in turn, provides data communication services through the worldwide packet data communication network, commonly referred to today as the "Internet." Both a local area network and the Internet use electrical, electromagnetic, or optical signals that carry digital data streams. The signals through the various networks and the signals on the network link and through network interface 718, which carry the digital data to and from computer system 700, are examples of transmission media.

[0058] Computer system 700 can send messages and receive data, including program code, through the network(s), network link, and network interface 718. In the Internet example, a server can transmit requested code for an application program through the Internet, the ISP, the local network, and network interface 718.

[0059] The received code can be executed by processor 704 as received, and / or stored in memory device 710 or other non-volatile memory for later execution.

[0060] Each of the processes, procedures, and algorithms described in the preceding sections can be embedded in code components and may be fully or partially automated. These components are executed by one or more computer systems or processors, encompassing computer hardware. The one or more computer systems or processors may also operate in a cloud computing environment or as a Software as a Service (SaaS) offering to support the performance of the relevant operations. The processes and algorithms may be partially or fully implemented in application-specific circuits. The various features and processes described above can be used independently or combined in various ways.Different combinations and subcombinations are said to fall within the scope of disclosure, and certain procedure and process blocks may be omitted in some implementations. The procedures and processes described herein are also not limited to any particular sequence, and the associated blocks and states may be performed in other suitable sequences, or may be performed in parallel or in some other way. Blocks and states may be added to or removed from the disclosed examples. The performance of certain operations or processes may be distributed among computer systems or computer processors, which may reside not only within a single machine but may be deployed across a number of machines.

[0061] As used herein, a circuit can be implemented using any form of hardware, software, or a combination thereof. For example, one or more processors, control units, ASICs, PLAs, PALs, CPLDs, FPGAs, logic components, software routines, or other mechanisms can be implemented to form a circuit. In an implementation, the various circuits described herein can be implemented as discrete circuits, or the described functions and features can be shared, in whole or in part, among one or more circuits.Although different features or elements of a functionality may be described individually or claimed as separate circuits, these features and functionality may be shared among one or more common circuits, and therefore the description does not require or imply that separate circuits are needed to implement such features or functionality. Where a circuit is implemented wholly or partly using software, such software may be implemented to operate with a computing or processing system capable of implementing the functionality described therein, such as Computer System 700.

[0062] As used herein, the expression "or" can be interpreted in either an inclusive or exclusive sense. Furthermore, the singular description of resources, operations, or structures should not be understood to exclude the plural. Conditional language, such as "may," "could," "should," or "ought to," unless specifically stated otherwise or understood differently within the context used, is generally intended to convey that certain examples include certain features, elements, and / or steps, while other examples do not.

[0063] Unless explicitly stated otherwise, expressions and phrases and variations thereof used in this document should be understood as permissive rather than limiting. Adjectives such as "conventional," "usual," "normal," "standard," "known," and expressions of similar meaning should not be interpreted as limiting the described element to a given period of time or to an element available at a given time, but should instead be read as including conventional, usual, normal, or standard technologies that may be available today or at any time in the future. The presence of expansive words and phrases such as "one or more," "at least," "not limited to," or other similar phrases should not, in some instances, be interpreted as meaning that the narrower case is intended or required in instances where such expansive phrases are absent.

Claims

[1] Computing device comprising: a memory; and one or more processors configured to execute machine-readable instructions stored in the memory to: Receiving a search query associated with multiple sets of structured and unstructured data; Combining the plurality of sets of structured and unstructured data into a boundary layer, the boundary layer being implemented using a hash table, vector embeddings, key-value index embeddings, or feature embeddings; initiating a search of the plurality of sets of structured and unstructured data by providing the search query at the boundary layer, wherein the search of the plurality of sets of structured and unstructured data utilizes a reference operator, a user-defined function operator (UDF operator), and an artificial intelligence operator (AI operator) submitted at the boundary layer; Determine whether one or more data elements within the boundary layer satisfy a condition associated with the reference operator; Determine whether one or more data elements within the boundary layer exceed a similarity value associated with the UDF operator; Determining whether one or more data elements within the boundary layer are returned as matches by the AI operator, wherein the AI operator provides the matches from one or more AI models; Combining the one or more data items that satisfy the condition associated with the reference operator, the one or more data items that exceed the similarity value associated with the UDF operator, and the one or more data items returned as matches by the AI operator into a result set; and Return the result set in response to the search query. [2] The computing device of claim 1, wherein the plurality of sets of structured and unstructured data comprises an in-memory semantic graph database. [3] The computing device of claim 1, wherein the plurality of sets of structured and unstructured data are partitioned into a plurality of shards. [4] The computing device of claim 1, wherein determining whether one or more data elements within the boundary layer satisfy the condition associated with the reference operator comprises determining an attribute associated with the condition, and returning one or more data elements comprising the attribute. [5] The computing device of claim 1, wherein the similarity value is determined based on numerical, geometric, combinatorial or string matching algorithms using distributed methods. [6] The computing device of claim 1, wherein the UDF operator comprises one or more user-defined functions that determine the similarity value. [7] The computing device of claim 1, wherein the matches from the AI operator comprise predictions across modalities. [8] The computing device of claim 1, wherein the result set comprises a subset of a semantic graph that satisfies the condition associated with the reference operator. [9] The computing device of claim 1, wherein the search query is written in a SPARQL query language. [10] Computer-implemented method comprising: Receiving, at a computing device, a search query associated with a plurality of sets of structured and unstructured data; combining, at the computing device, the plurality of sets of structured and unstructured data into a boundary layer, the boundary layer being implemented using a hash table, vector embeddings, key-value index embeddings, or feature embeddings; initiating, at the computing device, a search of the plurality of sets of structured and unstructured data by providing the search query at the boundary layer, wherein the search of the plurality of sets of structured and unstructured data utilizes a reference operator, a user-defined function (UDF) operator, and an artificial intelligence (KI) operator submitted at the boundary layer; Determine whether one or more data elements within the boundary layer satisfy a condition associated with the reference operator; Determine whether one or more data elements within the boundary layer exceed a similarity value associated with the UDF operator; Determining whether one or more data elements within the boundary layer are returned as matches by the AI operator, wherein the AI operator provides the matches from one or more AI models; Combining, at the computing device, the one or more data items that satisfy the condition associated with the relatedness operator, the one or more data items that exceed the similarity value associated with the UDF operator, and the one or more data items returned as matches by the AI operator into a result set; and Returning, at the computing device, the result set in response to the search query. [11] The method of claim 10, wherein the plurality of sets of structured and unstructured data comprises an in-memory semantic graph database. [12] The method of claim 10, wherein the plurality of sets of structured and unstructured data are partitioned into a plurality of shards. [13] The method of claim 10, wherein determining whether one or more data elements within the boundary layer satisfy the condition associated with the reference operator comprises determining an attribute associated with the condition, and returning one or more data elements comprising the attribute. [14] The method of claim 10, wherein the similarity value is determined based on numerical, geometric, combinatorial or string matching algorithms using distributed methods. [15] The method of claim 10, wherein the UDF operator comprises one or more user-defined functions that determine the similarity value. [16] The method of claim 10, wherein the matches from the AI operator comprise predictions across modalities. [17] The method of claim 10, wherein the result set comprises a subset of a semantic graph that satisfies the condition associated with the reference operator. [18] The method of claim 10, wherein the search query is written in a SPARQL query language. [19] A non-transitory computer-readable storage medium storing a plurality of instructions executable by one or more processors, the plurality of instructions, when executed by the one or more processors, causing the one or more processors to: Receiving a search query associated with multiple sets of structured and unstructured data; Combining the plurality of sets of structured and unstructured data into a boundary layer, the boundary layer being implemented using a hash table, vector embeddings, key-value index embeddings, or feature embeddings; initiating a search of the plurality of sets of structured and unstructured data by providing the search query at the boundary layer, wherein the search of the plurality of sets of structured and unstructured data utilizes a reference operator, a user-defined function (UDF) operator, and an artificial intelligence (AI) operator submitted at the boundary layer; Determine whether one or more data elements within the boundary layer satisfy a condition associated with the reference operator; Determine whether one or more data elements within the boundary layer exceed a similarity value associated with the UDF operator; Determining whether one or more data elements within the boundary layer are returned as matches by the AI operator, wherein the AI operator provides the matches from one or more AI models; Combining the one or more data items that satisfy the condition associated with the reference operator, the one or more data items that exceed the similarity value associated with the UDF operator, and the one or more data items returned as matches by the AI operator into a result set; and Return the result set in response to the search query. [20] The non-transitory computer-readable storage medium of claim 19, wherein the plurality of sets of structured and unstructured data comprises an in-memory semantic graph database.