Retrieval, model driven and artificial intelligence enabled search
By introducing multiple operators to the system to communicate with the interface layer and database shard, the problem that traditional systems are difficult to efficiently query across multiple data types is solved, efficient and accurate data search and query are achieved, and system performance and scalability are improved.
Patent Information
- Application Number
- CN202280096081.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2022-06-24
- Publication Date
- 2025-03-07
AI Technical Summary
Traditional systems have difficulty in queries across multiple data types, especially when dealing with large-scale, complex structured, semi-structured or unstructured data, the query process is time-consuming and difficult to accurately find all possible data items related to search queries.
Multiple operators (retrieval operators, user-limited function (UDF) operators and artificial intelligence (AI) operators) are used to communicate with multiple shards of the interface layer and database, generate a result set, respond to user search queries, and query and sort through data structures such as hash tables, vector embeddings, feature embeddings, or key-value indexes.
It realizes efficient search and query across multiple data types, improves the performance and scalability of processing large-scale data, and can accurately return data items related to search queries, improving user experience.
Smart Images

Figure CN119585725A_ABST
Abstract
Description
Technical Field
[0001] In traditional systems, data is stored separately based on data type, making it difficult to query across multiple data types. Due to the volume, complexity, and multiple modalities of the data, this query process across multiple types of data can be time consuming. For example, today there are more than 33 exabytes of geospatial data (e.g., satellite raster scans, aerial / cosmological imagery, 3D point clouds, elevation maps, and grids). Various database types attempt to work with large amounts of structured, semi-structured, or unstructured data sets, but these databases rarely operate efficiently or provide search results that accurately find all possible data items related to the search query. BRIEF DESCRIPTION OF THE DRAWINGS
[0002] According to one or more various examples, the present disclosure is described in detail with reference to the following drawings. The drawings are provided for illustration purposes only and depict only typical examples.
[0003] Figure 1 An example system with computing nodes according to various examples is shown.
[0004] Figure 2 An example system with computing nodes for processing received search queries according to various examples is shown.
[0005] Figure 3 An example system is shown having a retrieval operator in communication with an interface layer and multiple shards of a database, a user defined function (UDF) operator, and an artificial intelligence (AI) operator for processing a received search query according to various examples.
[0006] Figure 4 An example system with a retrieval operator, a UDF operator, and an artificial intelligence (AI) operator communicating with an interface layer and multiple shards of a database for generating a result set according to various examples is shown.
[0007] Figure 5 Example implementations of UDF operators and search queries according to various examples are shown.
[0008] Figure 6 Example computing components are shown that may be used according to various examples.
[0009] Figure 7 are example computing components that can be used to implement various features of the examples described in this disclosure.
[0010] The drawings are not exhaustive and do not limit the disclosure to the precise forms disclosed. DETAILED DESCRIPTION
[0011] The system and method of the present disclosure may include multiple operators for simultaneously searching and retrieving various types of data in a result set. The operators may include a retrieval operator, a user defined function (UDF) operator, and an artificial intelligence (AI) operator that communicates with an interface layer and multiple shards of a data structure for generating a result set.
[0012] Data may be searched in response to receiving a search query from a user. The search query may request one or more data items of various data types, including structured, semi-structured, or unstructured data. The search query may correspond to a specific query language (e.g., SPARQL query language, etc.). The system may connect various data sets stored in one or more data repositories to an interface layer. The interface layer may interact with retrieval operators, UDF operators, and AI operators to access data stored with multiple shards of a data repository or data structure to determine which data satisfies one or more conditions corresponding to each operator. Using a retrieval operator, a condition may be associated with data corresponding to a data attribute of a search query. Using a UDF operator, a condition may be associated with data exceeding a similarity score. The similarity score may be determined by a user or may be a default value. In some examples, a similarity score may represent a probability, ranking, or other similarity value. Using an AI operator, the condition may be associated with data matched to an attribute of a search query, which uses one or more artificial intelligence models to determine a match. Data that satisfies a condition, exceeds a similarity score, or is returned as a match may be merged into a result set. The result set can take the form of a hash table, vector, key-value index, or feature embedding provided to a user interface. In some examples, a hash table can include a data structure for structured and unstructured types of data that can map keys to values. In some examples, a hash table can use a hash function to calculate an array that sorts the data results according to the data type or other attributes.
[0013] Improvements to the technology are provided throughout the application submitted. For example, the performance and scalability of supercomputer products with general-purpose processors using high-performance interconnects can be improved. Examples can include enhancements to traditional data stores (e.g., graph databases) that can improve the performance of database operations. These operations can enable users to compare terms found as part of a search query to apply sorting or ranking to search results. The original strings of these terms can be stored in a dictionary, which can be implemented as a distributed hash table that expands the strings to all processes. This distribution of terms leads to improved efficiency in processing and retrieving different data types (e.g., lack of multiple queries) at the same time.
[0014] Figure 1An example system with computing nodes according to various examples is shown. System 100 includes multiple resources replicated across multiple computing nodes or images 112 (illustrated as a first computing node 112A, a second computing node 112B, and a third computing node 112C). These resources may include, for example, a deserializer 128, an operator 130, and a scheduler 132. Access to multiple resources can be provided through front end 110.
[0015] The system 100 may include one or more data stores 102 distributed across computing nodes or images 112. Components of the data store 102 may include, for example, a dictionary 118, an intermediate result array 120, hash tables and other auxiliary data structures 122, and a database 124. A storage file system 114 may be used to house the database 124 as well as user space, checkpoints, and other data.
[0016] One or more data repositories 102 may include one or more types of data structures for storing structured and unstructured data, including an in-memory semantic graph database. Other types of databases may be implemented without departing from the scope of the present disclosure. One or more data repositories 102 may be designed to scale to hundreds of nodes and tens of thousands of processes to support interactive queries of large data sets (approximately 100 trillion bytes). The data is stored in various implementations to store N triples / N quads of ingested data sets. For example, the ingested data set 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 represented as a labeled directed graph. The RDF format may correspond to a quadruple 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 may be uploaded to a data store:
[0017]
[0018] One or more data repositories 102 may include a network of possible connections. Vertices or nodes generally refer to entities (e.g., data, people, businesses, etc.), and the connections between entities are edges. One or more data repositories 102 may be used to identify entities that are connected to other entities. Typically, local processing may be used to process small amounts of data around a computing node 112. Other tasks may involve evaluating edges / connections on a more holistic basis (e.g., in an entire data store or graph analysis).
[0019] The system 100 can generate a semantic graph using one or more data repositories 102. A semantic graph can include a collection of such triples with subjects and objects representing vertices, and predicates representing edges between vertices. A semantic graph database differs from a relational database in that the underlying data structure is a graph, rather than a set of structured tables in a data store.
[0020] The generation of the semantic graph can be implemented by a backend query engine running across compute nodes 112, where inputs are distributed across compute nodes 112 and each node generates a subset of the semantic graph. The final semantic graph is built by synchronizing the subsets across compute nodes 112 to remove duplication.
[0021] In various examples, the one or more data stores 102 may include two main components: a dictionary and a query engine. The dictionary 118 is responsible for building the data store, which is ingested from a high-performance parallel file system (e.g., The process of taking raw N triple / N quad files from a file system) and converting them into an internal representation used by the data repository 102. The dictionary 118 stores unique RDF strings from the N triples / N quads and provides a mapping between unique strings and integer identifiers used internally by the query engine for the quads. The query engine can be implemented to process search queries, update requests, or provide a number of built-in graph algorithms (e.g., centrality measures, page ranks, or connectivity analysis) that can be applied to query data and help return search results as a result set to the user.
[0022] Dictionary 118 may include a mapping of RDF strings to integer identifiers, and may use, for example, a distributed hash table to implement storage of internal quads. Each computing node used by the backend query engine may access or store a subset of the complete hash table. In some examples, computing node 112 may access hash table data stored by any other computing node. During query execution, the intermediate results of each step may be stored in an intermediate result array (IRA), which may be distributed across computing nodes 112.
[0023] The front end 110 of the 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 the system 100. The front end 110 provides an interface through which a user can interact with the system, such as by submitting a query and receiving results back from the query. The system 100 can be implemented on hardware that can be built on a partitioned global address space that allows the system to treat independent processes, nodes, and images as their own entities, but can use a communication library to subdivide data and share data across images, which can be different from the dictionary 118. The communication library can be used for remote processing to exchange data and coordinate operations. The system 100 can be configured to run thousands of computing images 112 in a coordinated manner, where all computing images can run independently on their own subsets and then synchronize when the results of the communication library need to be used.
[0024] Figure 2 An example system with computing nodes for processing search queries according to various examples is shown. For example, Figure 2 The system 200 may correspond to Figure 1 system 100. In addition, Figure 1 The front end 110, computing nodes 112 and one or more data storage repositories 102 may correspond to Figure 1 The front end 212 , computing nodes 214 and data storage repository 220 .
[0025] System 200 may receive a search query from a user device 210, which may submit the search query via a front end implemented as one or more of the interfaces discussed herein. The search query may be converted by front end 212 (e.g., using the SPARQL query language format) and submitted to compute nodes 214, which perform various operations on the data to determine a set of search results that may be applied. In some examples, the interface layer may enable communication and control between front end 212 and the stored data (e.g., such as Figure 3 200). The computing nodes 214 may receive the search query and execute one or more operators 218 to perform query operations on the data items stored in the data repository 220. The operators 218 included in this example are SCAN, JOIN, MERGE, OPTIONAL, UNION, FILTER, and BIND, but other operations may also be used. These operations may be used to traverse the data in the various data repositories 220 in different ways to implement the search query.
[0026] Figure 3An example system according to various examples is shown, including a retrieval operator, a user defined function (UDF) operator, and an artificial intelligence (AI) operator that communicate with an interface layer and multiple shards of a database for processing a search query. For example, Figure 3 The system 300 and the front end 304 may correspond to Figure 1 system 100 and front end 110 .
[0027] In this illustration, a search query 300 may be submitted from a user device to a front end 304 of the system 300. An illustrative search query is provided herein:
[0028] select different?protB?sim_orig?seqB?seq
[0029] in{
[0030] ?Protein core: protein;
[0031] Core: Mnemonic “SPIKE SARS2”;
[0032] Core: Sequence? Isomers.
[0033] ? isomer rdf:value? seq.
[0034] ? Target component cco: Target component xref ? protB.
[0035] ? Does target cco:hasTargetComponent exist? targetcmpt.
[0036] ? Assay cco:hasTarget? target.
[0037] ?protB a core: protein;
[0038] Core: Sequence? Subtype B;
[0039] up: Recommend a name? Yes.
[0040] ? Recommended: fullName? name.
[0041] ? isomerB rdf:value? seqB
[0042] Front end 304 may pass attributes of search query 302 across multiple operators including retrieval operator 310, UDF operator 312, or AI operator 314. Using these operators, system 300 may simultaneously access and analyze multiple data sets of various data types.
[0043] The retrieval operator 310, UDF operator 312 or AI operator 314 can query across multiple interface layers 318 (illustrated as first interface layer 318A, second interface layer 318B, third interface layer 318C, fourth interface layer 318D, fifth interface layer 318E, sixth interface layer 318F and seventh interface layer 318G). The interface layer 318 can be implemented as a hash table, vector embedding, feature embedding, key-value index embedding or other data structure. The interface layer 318 can include all structured data and unstructured data sets returned from the shard 316, as described herein.
[0044] The shards 316 (shown as the first shard 316A, the second shard 316B, the third shard 316C, the fourth shard 316D, the fifth shard 316E, the sixth shard 316F and the seventh shard 316G) can correspond to partitions of a data repository, wherein the data repository includes structured data or unstructured data. Each data set can include multiple shards 316, wherein each shard 316 can correspond to a data partition in the data repository. For all data sets, the interface layer can connect all data sets to a hash table or other data structure. The hash table can be queried with a retrieval operator 310, a UDF operator 312 or an AI operator 314. The retrieval operator 310 can query a semantic graph or a data repository based on a dictionary search, and the dictionary search determines whether a data item includes a desired attribute or operating feature. For example, a data item may have attributes such as date, size and aperture. The retrieval operator 310 can determine whether an attribute exists and return a data item including the requested attribute.
[0045] Operators 310, 312, and 314 can query all shards through interface layer 318 to provide search results across multiple data types to the user. These data types can include graphs, sequences, molecules, videos, images, text, and any other data types. Interface layer 318 facilitates providing a single data set to the user in response to search query 302.
[0046] The retrieval operator 310 is configured to identify one or more attributes of a data item in the data repository that correspond to the attributes requested in the search query 302 .
[0047] The UDF operator 312 uses predefined or dynamic user-defined functions to generate comparisons between two or more data items. These functions can be written by users to apply domain-specific knowledge to query result sets. The graph database can provide generic functions that users can rewrite with their own functions, and the graph database can be loaded into memory when the program is initiated. The graph database can define functions so that parameters can be passed to user functions, and allow users to return information to the graph database to evaluate expressions for operators. The information returned to the graph database by the user-defined function can enable domain-specific functions to sort or filter search results. In various examples, the system can be configured so that users can add user-defined functions to perform custom searches / queries.
[0048] The front end 304, via the UDF operator 312, may also be configured to allow custom functions to be generated within a query expression to enable domain-specific operations on data as part of a search query. This is a feature that may allow a user to define, express, and perform domain-specific mathematical operations to evaluate and rank search results (e.g., when the function is not supported in the SPARQL query language). Such graph operations may be implemented as custom functions defined by a uniform resource identifier (URI) in the expression. This capability may be configured to allow users to define their own functions. Illustrative calls to these user-defined functions may include, for example:
[0049]
[0050] The UDF operator 312 can determine the similarity between two data items based on a user-defined function. The similarity can take the form of a similarity score, which can be applied in response to a search query or based on the relationship between two data items in a data repository. The similarity score can be determined based on a numerical, geometric, combinatorial or string matching algorithm using a distributed method. The user-defined function operator can set a threshold similarity score, which can indicate which data items 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. The similarity threshold can be matched or exceeded to return the data item to the user. Using this example, a data item with a similarity score of 0.9 will be returned to the user, while a data item with a similarity score of 0.5 will not exceed the threshold and therefore will not be part of the search results. The user-defined function operator can create a search result set to return to the user based on the data item that matches or exceeds the similarity score. The UDF operator 312 can create new attributes for the data item based on these similarity scores. These new attributes may be useful for future queries via the retrieval operator 310 or the AI operator 314 .
[0051] The AI operator 314 may use multiple AI models to receive one or more data items as input to the AI model and generate an output. The output is compared to the attributes of the search query to determine whether the output from the AI model matches the data item. The AI model predicts relationships between data items and determines a match based on one or more conditions associated with each model. As an illustrative example, one AI model may determine whether a cat is in an image, while an unrelated model may determine whether the article discusses a disease associated with cats. These two data items associated with the image and the article may be considered a match for a search query associated with "cat".
[0052] These matches can also include cross-modal predictions, such as image-text relationships, video-image relationships, etc. The use of multiple models by AI operators 314 helps provide search results that are approximately matched, rather than just exact matches. These AI models can be pre-trained to determine a set of search results from one or more search queries, where the search results include determined relationships or patterns. AI operators 314 determine whether a data item is a match for each applicable AI model, and provide any matching data items to the front end 304 as part of the search results.
[0053] The AI operator 314 can also be configured to create new attributes of the data item based on the match or prediction. These new attributes can also be used to facilitate future queries through the retrieval operator 310 or the UDF operator 312.
[0054] The search results from each operator 310, 312 and 314 can be provided to the interface layer 318. The interface layer 318 can implement one or more functions on the returned data. As shown, the interface layer 318 can implement a set of binding functions to scan, connect and merge data sets of structured and unstructured data into a searchable format at the interface layer 318. Illustrative binding functions are provided herein.
[0055] {
[0056] bind(arq:user_func('ssw',?seq,?seqB) as?sim_orig)
[0057] filter(?sim_orig>=0.184)
[0058] }
[0059] ? Target component cco: Target component xref ? protB.
[0060] ? Does target cco:hasTargetComponent exist? targetcmpt.
[0061] ?assay cco:hasTarget?target;
[0062] cco: Assay type? Analysis type.
[0063] ? protB up organism? taxon.
[0064] ? Taxon Core: Scientific Name ? sciName.
[0065] {
[0066] bind(arq:user_func('dtba',?smiles,?seq)as?dtba)
[0067] filter(?dtba>=6.5)
[0068] }
[0069] Sort descending (?sim_orig) desc (?dtba)
[0070] Figure 4 An example system is shown with a retrieval operator, a UDF operator, and an AI operator communicating with an interface layer and multiple shards of a database for generating a result set according to various examples. In this example, Figure 3 The operators 310, 312 and 314, the interface layer 318 and the slice 316 of the system 300 are Figure 4 is repeated to return result set 408.
[0071] Tables 402, 404, and 406 are also provided to store temporary data. For example, the retrieval operator 310 can execute machine-readable instructions to generate a yes / no determination. These instructions can determine whether the data item has a specific attribute described herein. These search results can be stored in a table or data set 402 to become part of the result set 408. In another example, the UDF operator 312 can record the similarity score in the table 404, which can be added to the result set 408. In another example, the AI operator 314 can execute machine-readable instructions to generate a yes / no determination. As described herein, these instructions can determine the output based on the matches received from multiple AI models. These search results can be stored in the table 406 to be returned as part of the result set 408.
[0072] Result set 408 may include one or more data structures in various formats for storing data tables 402, 404, and 406. Result set 408 may be returned to the user as a single data set or in other predetermined formats (e.g., defined by a user profile or other customizable options to optimize the user experience). In some examples, result set 408 may be stored in Figure 3The data repository of the system 300 includes structured data and unstructured data, wherein the data can be returned in response to future search queries.
[0073] Figure 5 An example implementation of a UDF operator and a search query according to various examples is shown. Figure 2 The UDF scheduler 518 is provided in the context of the system 200, the computing nodes 214, the operators 218, and the data repository 220. Other parts of the system 200 are removed to simplify the description herein.
[0074] Search query 510 may be submitted to system 200, and operator 218 may determine applicable data from data repository 220, as described herein. In this example, search query 510 includes a request for data associated with the SARS2 spike protein, and the search query includes a mnemonic, which in this example is 'SPIKE SARS2'. This portion of search query 510 also identifies a protein sequence of a condition of interest, in this case a virus.
[0075] The search query 510 also includes one or more binding sequences 522, 524. The binding sequences 522, 524 in the search query 510 trigger the UDF scheduler 518 to connect the structured data and the unstructured data set. The data can be used as a result set (e.g., Figure 4 The result set 408 in the example is provided and provided to a user interface accessible by a user device operated by a user. As described above, the result set may include feature embedding, vector embedding, and key-value index embedding, or other data structure components.
[0076] Figure 6 An example computing component 600 is shown that can be used to simultaneously retrieve various types of data in a result set according to one example of the disclosed technology. The computing component 600 can be, for example, a server computer, a controller, or any other similar computing component capable of processing data. Figure 6In an example implementation of , computing component 600 includes a hardware processor 602 and a machine-readable storage medium 604. Hardware processor 602 can be one or more central processing units (CPUs), semiconductor-based microprocessors, and / or other hardware devices suitable for retrieving and executing instructions stored in machine-readable storage medium 604. Hardware processor 602 can extract, decode, and execute instructions such as instructions 606 to 618, and can simultaneously retrieve various types of data in a result set. In addition or alternatively to retrieving and executing instructions, hardware processor 602 may include one or more electronic circuits, including functional electronic components for executing one or more instructions, such as field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), or other electronic circuits.
[0077] A machine-readable storage medium, such as machine-readable storage medium 604, may be any electronic, magnetic, optical, or other physical storage device that includes or stores executable instructions. Thus, machine-readable storage medium 604 may be, for example, a random access memory (RAM), a non-volatile RAM (NVRAM), an electronically erasable programmable read-only memory, a memory (EEPROM), a storage device, an optical disk, or the like. In some examples, machine-readable storage medium 604 may be a non-transitory storage medium, where the term "non-transitory" does not include transient propagating signals. As described in detail below, machine-readable storage medium 604 may be encoded with executable instructions, such as instructions 606 to 618.
[0078] Hardware processor 602 may execute instructions 606 to receive a search query associated with one or more structured and unstructured data sets. These structured and unstructured data sets may be divided into multiple shards, as described above (see, e.g., Figure 3 Fragment 316).
[0079] The hardware processor 602 can execute instructions 608 to connect multiple structured data and unstructured data sets to the interface layer (see, e.g. Figure 3 The interface layer 318 of FIG. 310 may be implemented using a hash table, vector embedding, key-value index embedding, or feature embedding. As described above, the interface layer may provide a front end (e.g., Figure 2 The front end 212) and the back end computing nodes (e.g., Figure 2 The data can be connected according to the binding sequence provided in the search query and then by the scheduler (e.g., Figure 5 The UDF scheduler 518) executes the binding sequence.
[0080] Hardware processor 602 may execute instructions 610 to initiate a search of multiple structured and unstructured data sets by providing a search query to a front end or interface layer. As described above, the interface layer may provide access to a data repository using retrieval operators, UDF operators, and AI operators (see, e.g., operators 310, 312, and 314). These operators may access multiple shards associated with the data repository (e.g., Figure 3 Fragment 316).
[0081] The hardware processor 602 can execute instructions 612 to determine whether one or more data items in the interface layer meet the conditions associated with the retrieval operator. As described above, a retrieval operator such as operator 310 can query the interface layer 318 based on a dictionary search that determines whether a data item includes a desired attribute or operating feature. The retrieval operator 310 can determine whether an attribute exists and return a data item including the requested attribute. These data items can become part of a result set that can be returned to a user.
[0082] The hardware processor 602 may execute instructions 614 to determine whether the data exceeds a similarity score associated with the UDF operator. As described above, the UDF operator may determine the similarity between two data items based on a user-defined function. The similarity score is determined based on a numerical, geometric, combinatorial, or string matching algorithm using a distributed approach. The UDF operator may set a threshold similarity score that may indicate which data items are returned to the user in response to the search query. The user-defined function operator may create a search result set to return to the user based on data items that match or exceed the similarity score.
[0083] The hardware processor 602 may execute instructions 616 to determine whether the data item is returned as a match from the AI operator. As described above, the AI operator may use one or more artificial intelligence models to determine whether the data item matches. The models predict relationships between data items and determine matches based on one or more conditions associated with each model. These matches may also include cross-modal predictions. The AI operator determines whether the data item is a match for each applicable artificial intelligence model and provides all matching data items to the user as part of a result set.
[0084] The hardware processor 602 may execute instructions 618 to merge data that meets the conditions, exceeds the similarity score, or is returned as a match into a result set. These search results may be stored as a table to be returned to the user device. The result set may include a data structure (e.g., a hash table) of data received from the retrieval operator, UDF operator, and AI operator. The result set may be stored in a data repository of structured data and unstructured data and may be returned for future queries. The hardware processor 602 may execute instructions 620 to return the data set to the user in the form of the data structure.
[0085] Figure 7 A block diagram of an example computer system 700 is shown in which various examples described herein may be implemented. The computer system 700 includes a bus 702 or other communication mechanism for communicating information, coupled to the bus 702 are one or more hardware processors 704 for processing information. The hardware processor 704 may be, for example, one or more general purpose microprocessors.
[0086] The computer system 700 also includes a main memory 706, such as a random access memory (RAM), cache, and / or other dynamic storage device, coupled to the bus 702 for storing information and instructions executed by the processor 704. The main memory 706 may also be used to store temporary variables or other intermediate information during execution of instructions executed by the processor 704. When stored in a storage medium accessible to the processor 704, these instructions cause the computer system 700 to function as a special-purpose machine customized to perform the operations specified in the instructions.
[0087] The computer system 700 also includes a read only memory (ROM) 708 or other static storage device coupled to the bus 702 for storing static information and instructions for the processor 704. A storage device 710, such as a magnetic disk, optical disk, or USB thumb drive (flash drive), is provided and coupled to the bus 702 for storing information and instructions.
[0088] The computer system 700 may be coupled to a display 712, such as a liquid crystal display (LCD) (or touch screen), via the bus 702 for displaying information to a computer user. An input device 714, including alphanumeric and other keys, is coupled to the bus 702 for communicating information and command selections to the processor 704. Another type of user input device is a cursor controller 716, such as a mouse, trackball, or cursor direction keys, for communicating direction information and command selections to the processor 704, and for controlling cursor movement on the display 712. In some examples, the same direction information and command selections as cursor control may be achieved by receiving touches on a touch screen without a cursor.
[0089] The computing system 700 may include a user interface module that implements a GUI, which may be stored in a mass storage device as executable software code executed by the computing device. This and other modules may include, for example, components such as software components, object-oriented software components, class components, and task components, processes, functions, properties, procedures, subroutines, program code segments, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables.
[0090] In general, the words "component", "engine", "system", "database", "data repository", etc. used herein may refer to logic embodied in hardware or firmware, or to a collection of software instructions, possibly with entry and exit points, written in a programming language such as Java, C or C++. Software components may be compiled and linked into executable programs installed in dynamic link libraries, or may be written in interpreted programming languages such as BASIC, Perl or Python. It should be understood that software components may be called from other components or from themselves, and / or may be called in response to retrieved events or interrupts. Software components configured for execution on a computing device may be provided on a computer-readable medium, such as an optical disc, a digital video disc, a flash drive, a disk, or any other tangible medium, or as a digital download (and may be initially stored in a compressed or installable format that requires installation, decompression or decryption prior to execution). Such software code may be stored in part or in whole on a memory device of an executing computing device for execution by the computing device. Software instructions may be embedded in firmware, such as an EPROM. It will also be appreciated that hardware components may include connected logic units, such as gates and flip-flops, and / or may include programmable units, such as programmable gate arrays or processors.
[0091] The computer system 700 can implement the techniques described herein using custom hardwired logic, one or more ASICs or FPGAs, firmware, and / or program logic that is combined with the computer system to make the computer system 700 a special purpose machine or program it. According to one example, the techniques herein are performed by the computer system 700 in response to the processor 704 executing one or more sequences of one or more instructions contained in the main memory 706. These instructions can be read into the main memory 706. From another storage medium, such as a storage device 710. Execution of the sequence of instructions contained in the main memory 706 causes the processor 706 to perform the processing steps described herein. In alternative examples, hardwired circuits can be used in place of software instructions or in combination with software instructions.
[0092] The term "non-transitory medium" and similar terms used herein refer to any medium that stores 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 disks, such as storage device 710. Volatile media include dynamic memory, such as main memory 706. Common forms of non-transitory media include, for example, floppy disks, flexible disks, hard disks, solid-state drives, tapes or any other magnetic data storage media, CD-ROMs, any other optical data storage media, any physical media with a pattern of holes, RAM, PROM and EPROM, FLASH-EPROM, NVRAM, any other memory chip or cassette tape and network versions thereof.
[0093] Non-transient media are distinct from transmission media, but can be used in conjunction with transmission media. Transmission media participate in the transmission of information between non-transient media. For example, transmission media include coaxial cables, copper wires, and optical fibers, 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 communications.
[0094] Computer system 700 also includes a network interface 718 coupled to bus 702. Network interface 718 provides bidirectional data communication coupled to one or more network links connected to one or more local networks. 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 data communication connections to corresponding types of telephone lines. As another example, network interface 718 can be a local area network (LAN) card to provide data communication connections to compatible LANs (or WAN components communicating with WAN). Wireless links can also be implemented. In any such implementation, network interface 718 sends and receives electrical, electromagnetic or optical signals carrying digital data streams representing various types of information.
[0095] A network link typically provides data communication to other data devices through one or more networks. For example, a network link may provide a connection to a host computer or to data equipment operated by an Internet Service Provider (ISP) through a local network. The ISP, in turn, provides data communication services through the global packet data communication network now commonly referred to as the "Internet." Both the local 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 the signals through the network interface 718 are example forms of transmission media that carry digital data to and from the computer system 700.
[0096] Computer system 700 can send messages and receive data, including program code, through the network(s), network links, and network interface 718. In the Internet example, a server may send the application's request code through the Internet, an ISP, a local network, and network interface 718.
[0097] The received code may be executed by processor 704 as it is received, and / or stored in storage device 710 or other non-volatile storage for later execution.
[0098] Each process, method and algorithm described in the foregoing section may be embodied in a code component executed by one or more computer systems or a computer processor including computer hardware, and may be fully or partially automated by it. One or more computer systems or computer processors may also operate to support the execution of related operations in a "cloud computing" environment or as "software as a service" (SaaS). The process and algorithm may be implemented in part or in whole in a dedicated circuit. The various features and processes described above may be used independently of each other, or may be combined in various ways. Different combinations and sub-combinations are intended to fall within the scope of the present disclosure, and certain methods or process blocks may be omitted in some implementations. The methods and processes described herein are also not limited to any particular order, and the blocks or states associated therewith may be executed in other appropriate orders, or may be executed in parallel or in some other manner. Blocks or states may be added to or removed from the disclosed examples. The performance of certain operations or processes may be distributed between computer systems or computer processors, not only residing in a single machine, but also deployed on multiple machines.
[0099] As used herein, any form of hardware, software or combination thereof can be utilized to realize circuit.For example, one or more processors, controllers, ASIC, PLA, PAL, CPLD, FPGA, logic components, software routines or other mechanisms can be realized to constitute circuit.In implementation, various circuits described herein can be realized as discrete circuits, or described functions and features can be shared between one or more circuits in part or in whole.Even if various features or functional elements can be described or declared as separated circuits separately, these features and functions can be shared between one or more common circuits, and such description should not require or imply that separated circuits are needed to realize such features or functions.When using software to realize circuit in whole or in part, such software can be realized to operate together with a computing or processing system (such as, computer system 700) that can perform the function described therein.
[0100] As used herein, the term "or" may be interpreted in an inclusive or exclusive sense. In addition, descriptions of resources, operations, or structures in the singular should not be understood to exclude the plural. Conditional language such as "may," "can," "might," or "could," among others, is generally intended to convey that certain examples include certain features, elements, and / or steps, and other examples do not include certain features, elements, and / or steps, unless otherwise expressly stated or otherwise understood in the context of use.
[0101] Unless expressly stated otherwise, the terms and phrases used in this document and variations thereof should be construed as open ended and not restrictive. Adjectives such as "conventional," "traditional," "normal," "standard," "known," and terms of similar meaning should not be construed to limit the items described to those available in a given time period or at a given time, but should be understood to encompass conventional, traditional, normal, or standard technologies available or known at any time now or in the future. In some cases, the presence of expansive words and phrases such as "one or more," "at least," "but not limited to," or other similar phrases should not be construed to mean that a narrower context is intended or required where such expansive phrases may not be present.
Claims
1. A computing device, comprising: Memory; as well as one or more processors configured to execute machine-readable instructions stored in the memory for: receiving a search query associated with a plurality of structured and unstructured data sets; connecting the plurality of structured and unstructured data sets into an interface layer, the interface layer being implemented using a hash table, vector embedding, key-value index embedding, or feature embedding; initiating a search of the plurality of structured and unstructured data sets by providing the search query to the interface layer, wherein the search of the plurality of structured and unstructured data sets uses retrieval operators, user defined function (UDF) operators, and artificial intelligence (AI) operators submitted to the interface layer; determining whether one or more data items in the interface layer satisfy a condition associated with the retrieval operator; determining whether one or more data items within the interface layer exceed a similarity score associated with the UDF operator; determining whether one or more data items within the interface layer are returned as matches from the AI operator, wherein the AI operator provides the matches from one or more AI models; merging the one or more data items satisfying the condition associated with the retrieval operator, the one or more data items exceeding the similarity score associated with the UDF operator, and the one or more data items returned as matches from the AI operator into a result set; and The result set is returned in response to the search query.
2. The computing device of claim 1, wherein the plurality of structured and unstructured data sets comprises a semantic graph database in memory.
3. The computing device of claim 1, wherein the plurality of structured and unstructured data sets are divided into a plurality of shards.
4. The computing device of claim 1 , wherein determining whether one or more data items within the interface layer satisfy the condition associated with the retrieval operator comprises: Attributes associated with the condition are determined and one or more data items including the attributes are returned. 5 . The computing device of claim 1 , wherein the similarity score is determined based on a numerical, geometric, combinatorial, or string matching algorithm using a distributed approach. 6 . The computing device of claim 1 , wherein the UDF operator comprises one or more user-defined functions that determine the similarity score.
7. The computing device of claim 1, wherein the matching from the AI operator comprises cross-modal prediction.
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 retrieval operator.
9. The computing device of claim 1, wherein the search query is written using the SPARQL query language.
10. A computer-implemented method comprising: receiving, at the computing device, a search query associated with a plurality of structured and unstructured data sets; connecting the plurality of structured and unstructured data sets into an interface layer at the computing device, wherein the interface layer is implemented using a hash table, vector embedding, key-value index embedding, or feature embedding; initiating a search of the plurality of structured and unstructured data sets at the computing device by providing the search query to the interface layer, wherein the search of the plurality of structured and unstructured data sets uses retrieval operators, user defined function (UDF) operators, and artificial intelligence (AI) operators submitted to the interface layer; determining whether one or more data items within the interface layer satisfy a condition associated with the retrieval operator; determining whether one or more data items within the interface layer exceed a similarity score associated with the UDF operator; determining whether one or more data items within the interface layer are returned as matches from the AI operator, wherein the AI operator provides the matches from one or more AI models; At the computing device, merging into a result set the one or more data items satisfying the condition associated with the retrieval operator, the one or more data items exceeding the similarity score associated with the UDF operator, and the one or more data items returned as a match from the AI operator; as well as The result set is returned at a computing device in response to the search query.
11. The method of claim 10, wherein the plurality of structured and unstructured data sets comprises an in-memory semantic graph database.
12. The method of claim 10, wherein the plurality of structured and unstructured data sets are divided into a plurality of shards.
13. The method of claim 10, wherein determining whether one or more data items within the interface layer satisfy the condition associated with the retrieval operator comprises: Attributes associated with the condition are determined and one or more data items including the attributes are returned.
14. The method of claim 10, wherein the similarity score is determined based on a numerical, geometric, combinatorial, or string matching algorithm using a distributed approach.
15. The method of claim 10, wherein the UDF operator comprises one or more user-defined functions that determine the similarity score.
16. The method of claim 10, wherein the matching from the AI operator comprises cross-modal prediction.
17. The method of claim 10, wherein the result set comprises a subset of a semantic graph that satisfies the condition associated with the retrieval operator.
18. The method of claim 10, wherein the search query is written using the 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 a plurality of structured and unstructured data sets; connecting the plurality of structured and unstructured data sets to an interface layer, wherein the interface layer is implemented using a hash table, vector embedding, key-value index embedding, or feature embedding; initiating a search of the plurality of structured and unstructured data sets by providing the search query to the interface layer, wherein the search of the plurality of structured and unstructured data sets uses retrieval operators, user defined function (UDF) operators, and artificial intelligence (AI) operators submitted to the interface layer; determining whether one or more data items within the interface layer satisfy a condition associated with the retrieval operator; determining whether one or more data items within the interface layer exceed a similarity score associated with the UDF operator; determining whether one or more data items within the interface layer are returned as matches from the AI operator, wherein the AI operator provides the matches from one or more AI models; merging the one or more data items satisfying the condition associated with the retrieval operator, the one or more data items exceeding the similarity score associated with the UDF operator, and the one or more data items returned as matches from the AI operator into a result set; and The result set is returned in response to the search query.
20. The non-transitory computer-readable storage medium of claim 19, wherein the plurality of structured and unstructured data sets comprises a semantic graph database in memory.
Citation Information
Cited By
Semantic search for retrieval-augmented generation
US20260178555A1