Generation of hierarchical chemical compound library identifiers

The system addresses inconsistencies in spectral data libraries by using an annotation ranking schema to prioritize and cross-check annotation types, ensuring consistent identifier generation and accurate compound analysis across different annotation types.

JP2026047283APending Publication Date: 2026-03-13HIGHCHEM SRO
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-08-28
Publication Date
2026-03-13

AI Technical Summary

Technical Problem

Existing spectral data libraries face challenges in generating and retrieving metadata identifiers that are consistent across different annotation types, leading to inconsistencies and conflicting data when searching for similarities, differences, and relationships between compounds.

Method used

A system that utilizes an annotation ranking schema to prioritize and cross-check different annotation types, ensuring consistency in identifier generation and enabling searches across various annotation types without conflicts.

Benefits of technology

This approach ensures that identifiers for the same compound are consistent, allowing for efficient and accurate retrieval of data based on multiple annotation types, improving the precision and efficiency of compound analysis in spectral data libraries.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026047283000001_ABST
    Figure 2026047283000001_ABST
Patent Text Reader

Abstract

The embodiments described herein relate to a process for generating annotation-accessible library spectral content. [Solution] The system may include a memory for storing computer executable components and a processor for executing them. The computer executable component may include an identification component for identifying chemical compound data describing chemical compounds, and a generation component for generating identifiers from chemical compound data based on the annotation type of the compound data, compared with an annotation ranking schema.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Spectral data networks or libraries can be used for various purposes, including determining similarities, differences, and / or relationships between different spectral contents for different compounds, whether the compounds are molecules or more complex. Search queries targeting such spectral data often utilize metadata such as identifiers that describe, reference, and / or correspond to annotations for different library spectral contents.

Brief Description of the Drawings

[0002] Embodiments will be readily understood by the following detailed description in conjunction with the accompanying drawings. For ease of this specification, like reference numerals denote like structural elements. Embodiments are shown in the figures of the accompanying drawings by way of example and not as a limitation. [Figure 1] A block diagram of an exemplary scientific instrument for performing one or more operations according to one or more embodiments described herein is shown. [Figure 2] A flowchart of an exemplary method of performing operations using the scientific instrument of FIG. 1 according to one or more embodiments described herein is shown. [Figure 3] A graphical user interface (GUI) that can be used for one or more executions of the methods described herein according to one or more embodiments described herein is shown. [Figure 4] A block diagram of an exemplary computing device that can perform one or more of the methods disclosed herein according to one or more embodiments described herein is shown. [Figure 5] A block diagram of an example of a non-limiting system that can facilitate a process for generating library spectral content identifiers according to one or more embodiments described herein is shown. [Figure 6]A block diagram of another example of a non-limiting system that can facilitate the process for generating library spectral content identifiers according to one or more embodiments described herein is shown. [Figure 7] Figure 6 shows a flowchart of an identifier generation workflow that can be performed by the non-limiting system according to one or more embodiments described herein. [Figure 8] Figure 6 shows a flowchart of an identifier generation data flow that can be performed by the non-limiting system according to one or more embodiments described herein. [Figure 9] Figure 6 shows an exemplary annotation ranking schema that can be used by the non-limiting system according to one or more embodiments described herein. [Figure 10] The flowcharts of one or more processes that can be performed by the identifier generation system of Figure 5, according to one or more embodiments described herein, are shown. [Figure 11] Figure 6 shows another flowchart of one or more processes that can be performed by the identifier generation system according to one or more embodiments described herein. [Figure 12] The following is a continuation of the flowchart in Figure 11 showing one or more processes that can be performed by the identifier generation system of Figure 6 according to one or more embodiments described herein. [Figure 13] A block diagram is shown of an exemplary scientific instrument system capable of performing one or more of the methods described herein, according to one or more embodiments described herein. [Figure 14] A block diagram of an exemplary operating environment that can incorporate embodiments of the subject matter described herein is shown. [Figure 15] This schematic block diagram illustrates a computing environment capable of at least partially interacting with and / or implementing the subjects described herein. [Overview of the Initiative] [Means for solving the problem]

[0003] The following is an overview to provide a basic understanding of one or more embodiments described herein. This overview is not intended to identify major or important elements and / or to describe the scope of any particular embodiment or claim. Its sole purpose is to present the concepts in a simplified form as a prelude to the more detailed descriptions presented below. In one or more embodiments, the systems, computer implementations, apparatus, and / or computer program products described herein can provide a plug-and-play process for generating identifiers and / or updating a library data store with such identifiers, at least in part, based on an annotation ranking schema.

[0004] According to one embodiment, the system may include a memory for storing computer executable components and a processor for executing the computer executable components. The computer executable components may include an identification component for identifying chemical compound data describing chemical compounds and a generation component for generating identifiers from the chemical compound data based on the annotation type of the compound data, compared with an annotation ranking schema.

[0005] According to another embodiment, a computer implementation method may include: identifying chemical compound data describing chemical compounds by a system operably coupled to a processor; and generating identifiers from the chemical compound data based on the annotation type of the compound data, compared with an annotation ranking schema.

[0006] In yet another embodiment, a computer program product facilitates the process of generating chemical compound identifiers based on various annotation types, and program instructions executable by the processor cause the processor to identify chemical compound data describing chemical compounds, and to generate identifiers from the chemical compound data based on the annotation type of the compound data, by comparing it with an annotation ranking schema.

[0007] One or more embodiments described herein can be used with various annotation types, including various texts, codes, and / or metadata. In fact, an advantage of one or more embodiments described herein is that such various annotation types can be distinguished in order to generate one or more identifiers.

[0008] In one or more embodiments, the annotation ranking schema used to prioritize different annotation types for the same compound or the spectrum of a compound can be customized at any appropriate time to adjust the ranking data used to provide rankings for various annotation types of input compound data (e.g., inputs to the non-limiting systems described herein).

[0009] One or more embodiments described herein can be implemented in, in relation to, and / or coupled to, a scientific imaging device.

[0010] One or more embodiments described herein can be applied on a plug-and-play basis to various architectures of existing spectral libraries and / or spectral data library data stores. That is, one or more embodiments described herein can generate identifiers for compounds (including the spectra corresponding to the compounds) regardless of the data structure of the spectral library and / or library data store.

[0011] One or more embodiments described herein can provide consistency in the content of identifiers generated for the same compound but based on different annotation types. That is, one or more identifiers generated for the same compound can be consistent in such a way that they do not contradict each other (e.g., describing the compound as having contradictory properties). This can be facilitated by using annotation ranking schemas and various cross-checks and / or comparisons performed by one or more embodiments described herein.

[0012] One or more embodiments described herein can be used to generate identifiers so that a library updated with identifiers can be searched in an annotation type-independent manner. That is, information can be returned in response to queries based on different annotation types (e.g., multiple annotation types) for the same compound. Thus, a search using one annotation type can return data from another annotation type that has already been cross-checked for consistency and / or labeled for ranking based on an annotation ranking schema. [Modes for carrying out the invention]

[0013] The following detailed description is illustrative and not intended to limit the embodiments and / or the application or use of the embodiments. Furthermore, it is not intended to be bound by the expressions or implied information presented in the preceding sections on the summary of the invention or the embodiments for carrying out the invention. Here, one or more embodiments are described with reference to the drawings, and similar reference numbers are used throughout to refer to similar elements. The following description includes many specific details for illustrative purposes in order to provide a more thorough understanding of one or more embodiments. However, it is clear that in various cases one or more embodiments can be practiced without these specific details.

[0014] Various operations can be described sequentially as several separate actions or operations in order to best aid in understanding the subject matter disclosed herein. However, the order in which they are described should not be construed to mean that these operations are necessarily order-dependent. In particular, these operations may be performed in an order different from the order in which they are described. The operations described may be performed in an order different from the order shown in the embodiments. In other embodiments, various additional operations may be performed and / or the operations described may be omitted.

[0015] Referring here to the subject of library spectral content, such content can be generated, used, and retrieved for a variety of purposes, and most importantly, it can include the identification of identity, similarity, difference, and / or relationship corresponding to one or more compounds (and / or the spectra of compounds) based on a library of such spectral content. For example, this can enable the understanding and / or analysis of mass spectrometry / mass spectrometry (MS / MS) data (e.g., those related to the fragmentation of chemical substances). In existing frameworks, the use of such library spectral content is accompanied by difficulties in generating and retrieving metadata used to identify, label, and / or otherwise describe compound data in library data stores.

[0016] For example, in an existing framework, library data is generated based on a specific annotation type and updated in the library. Therefore, since the library can have various data based on various annotation types, it can have metadata identifiers based on such various annotation types. Since these identifiers are not cross-checked with each other for consistency, as a result, the library can have identifiers that are related to the same compound but do not match each other. That is, the contents of the annotation types for the same compound may not match each other. In fact, the mutual comparison of contents based on different annotation types is not considered. Regarding the use of any specific one or more annotation types, no guidelines and / or priorities are considered. As a result, when searching such a library, identifiers with conflicting contents can be returned, and thus conflicting data can be returned.

[0017] To remedy one or more deficiencies of such existing frameworks, one or more embodiments are described herein that can increase the precision and efficiency of the generation and use of identifiers with prioritization and cross-checking. Generally, one or more embodiments described herein can use a novel system that provides for the generation and use of various annotation types across different identifiers for the same and / or different compounds in a library data store without consistency issues among the identifiers generated by one or more embodiments described herein. In this way, queries to such libraries can be returned for one or more annotation types regardless of the annotation type associated with the query and / or the annotation type associated with the library data of the library. Therefore, the mutual reference of similarities, differences, and / or relationships among the compounds (including the spectra of the compounds) of such libraries can be facilitated and performed easily and efficiently.

[0018] That is, one or more embodiments described herein provide a system for cross-checking the consistency of the content underlying aspects of compound data based on different annotation types, an annotation ranking schema for prioritizing different annotation types regardless of the content, determining the priority of identifiers based on the annotation ranking schema, cross-checking a library identifier already present in a library of the same compounds as the generated identifiers for the content of these identifiers for mutual consistency, and generating identifiers using the use of an annotation ranking schema to resolve one or more consistency conflicts between the identifiers.

[0019] One or more advantages can include the ability to distinguish such various annotation types to generate one or more identifiers, the ability to customize an annotation ranking schema to adjust the ranking data used to provide rankings for the various annotation types of input compound data (e.g., input to the non-limiting systems described herein), and / or the plug-and-play based application of the embodiments described herein to various architectures of existing spectral libraries and / or library data stores of spectral data. That is, one or more embodiments described herein can generate identifiers for compounds (including spectra corresponding to the compounds) regardless of the data structure of the spectral library and / or library data store. Further, one or more embodiments described herein can be implemented within, in relation to, and / or in conjunction with a scientific imaging device.

[0020] The following discussion moves to a general discussion of one or more scientific instrument systems disclosed herein, as well as related methods, computing devices, and / or computer-readable media. For example, in one or more embodiments, a system may comprise a memory for storing computer-executable components, and a processor for executing the computer-executable components stored in the memory. The computer-executable components may comprise an identification component for identifying chemical compound data describing chemical compounds, and a generation component for generating identifiers from the chemical compound data based on the annotation type of the compound data compared with an annotation ranking schema.

[0021] One or more embodiments disclosed herein can achieve improved performance compared to existing approaches, as described above. For example, by applying various annotation types to library spectral content identifier metadata, various identifiers consistent with one another can be generated for the same compound, combined with various cross-checks for content consistency and annotation ranking schemas. That is, the content of identifiers can be consistent with one another, and the priority of using such content can be based on the use of an annotation ranking schema. Using this schema, it is possible to merge or replace identifiers with existing library identifiers, determine the priority of identifier generation, and / or resolve inconsistencies between identifiers.

[0022] Accordingly, the embodiments disclosed herein can provide improvements to scientific instrument technology (e.g., improvements to computer technology supporting such scientific instruments, among other improvements) that can be used for compound analysis in various fields including but not limited to optics, signal processing, spectroscopic analysis, and / or nuclear magnetic resonance (NMR).

[0023] Various embodiments of the disclosed herein can improve upon existing approaches to achieve the technical advantages of generating highly informative and / or accurate information identifiers and querying libraries. Specifically, one or more embodiments described herein can provide the generation of identifiers for compound data based on various annotation types, including various texts, codes, and / or metadata. In fact, the advantage of one or more embodiments described herein is that such various annotation types can be distinguished in order to generate one or more identifiers. Based on this, one or more embodiments described herein can be used to generate identifiers so that a library updated with identifiers can be searched in an annotation type-dependent manner. That is, information can be returned in response to queries based on different annotation types (e.g., multiple annotation types) for the same compound. Thus, a search using one annotation type can return data from another annotation type that has already been cross-checked for consistency and / or labeled for ranking based on an annotation ranking schema. These can be useful processes for various industries, such as material analysis, product manufacturing, and quality control. Accordingly, embodiments disclosed herein can provide improvements to scientific instrument technology (for example, improvements to computer technology that supports such scientific instruments, among other improvements).

[0024] Such technical advantages are, as described above, unattainable by conventional and / or existing approaches, and all user entities in a system including such embodiments can benefit from these advantages (for example, by supporting user entities in performing technical tasks such as returning one or more compound queries through a library data store with consistent and ranked identifier metadata).

[0025] Accordingly, the technical features of the embodiments disclosed herein (e.g., generation, analysis, and use of data identifiers using various annotation types for library data stores) are clearly not conventional in the field of materials analysis, as well as in the fields of optics, signal processing, spectroscopic analysis, and / or NMR (not limited to these).

[0026] As will be further discussed herein, various aspects of the embodiments disclosed herein can improve the functionality of the computer itself. That is, the computer and / or user interface features disclosed herein can, instead of merely including the collection and / or comparison of information, change the behavior of computer analysis of material compounds by applying new analytical and technical techniques. For example, since identifiers are generated based on various annotation types and corresponding annotation ranking schemas, comparisons for deciding whether or not to update the library can become more efficient and accurate over time. That is, as more library content is added by the embodiments described herein, a larger amount of accurate comparison data is generated for use in searches, queries, and / or other comparisons performed against the various cross-checks used by one or more embodiments described herein to generate identifiers for spectral content in the first instance. Thus, one or more non-limiting systems described herein that have an identifier generation system can improve themselves.

[0027] Accordingly, this disclosure introduces functionality that neither existing computing devices nor humans have been able to perform. Rather, such existing computing devices are not effective in analyzing computer data / metadata that defines multiple compounds or the spectra of multiple compounds, and / or generating computer-usable metadata identifiers for computer-based retrieval of library data stored in storage devices, but one or more embodiments described herein can provide this process. Given the time, energy, and / or data loss involved, operation within the scope of existing approaches is not practical.

[0028] Accordingly, embodiments of the present disclosure can serve any of a number of technical purposes, such as controlling a particular technical system or process, determining how to control a machine from measured values, enhancing or analyzing digital audio, images, or video, separating material sources in mixed signals, generating data for reliable and / or efficient transmission or storage, providing estimates and confidence intervals for material samples, or providing high-speed processing of sensor data. In particular, the present disclosure provides technical solutions to technical problems including, but not limited to, hologram correction, image / signal blurring, application of combined blurring techniques, and / or subsequent image reconstruction, thereby enabling faster, more thorough, and / or more efficient processing of the generated images, and consequently, the material samples or other target compositions being imaged.

[0029] Accordingly, embodiments disclosed herein provide improvements to material analysis techniques (for example, improvements to computer techniques that support material analysis, among other improvements).

[0030] Where used herein, the phrase “based on” should be understood to mean “at least partially based on” unless otherwise specified.

[0031] As used herein, the term “component” may refer to an atomic element, a molecular element, a phase of an atom or molecular element, or a combination thereof.

[0032] As used herein, the term “compound” can refer to a single material, multiple materials, a composition, a sample, a solution, a product, and so on.

[0033] As used herein, the term “data” may include metadata.

[0034] As used herein, the terms “entity,” “request entity,” and “user entity” may refer to machines, devices, components, hardware, software, smart devices, stakeholders, organizations, individuals, and / or human beings.

[0035] Here, one or more embodiments are described with reference to the drawings, and similar reference numbers are used throughout to refer to similar drawing elements. The following description includes many specific details for illustrative purposes to provide a more thorough understanding of one or more embodiments. However, it is clear that in various cases one or more embodiments can be practiced without these specific details.

[0036] Furthermore, it should be understood that the embodiments shown in one or more drawings described herein are for illustrative purposes only, and therefore the architecture of the embodiments is not limited to the systems, devices, and / or components shown therein, nor is it limited to any particular order, connection, and / or combination of the systems, devices, and / or components shown therein.

[0037] Here, referring in particular to one or more drawings, first to Figure 1, a block diagram of a scientific instrument module 100 for performing material analysis operations using an identifier generation and / or update process is shown according to various embodiments described herein. The scientific instrument module 100 can be implemented by circuits (e.g., including electrical and / or optical components), such as programmed computing devices. The logic of the scientific instrument module 100 can be contained in a single computing device or distributed across multiple computing devices communicating with each other as needed. Examples of computing devices in which the scientific instrument module 100 can be implemented alone or in combination are discussed herein with reference to computing device 400 in Figure 4, and examples of interconnected computing devices in which the scientific instrument module 100 can be implemented across one or more computing devices are described herein with reference to scientific instrument system 1300 in Figure 13.

[0038] The scientific instrument module 100 may comprise a first logic 102, a second logic 104, a third logic 106, and a fourth logic 108. As used herein, the term “logic” can comprise a device that performs a set of operations associated with the logic. For example, any of the logic elements included in module 100 may be implemented by one or more computing devices programmed with instructions that cause one or more processing devices of a computing device to perform a set of operations associated with the logic. In certain embodiments, the logic element may include one or more non-transient computer-readable media having instructions that cause one or more computing devices to perform a set of operations associated with the logic when executed by one or more processing devices of the computing device. As used herein, the term “module” can refer to a set of one or more logic elements that together perform a module and associated functions. Different logic elements within a module may take the same form or different forms. For example, some logic within a module may be implemented by programmed general-purpose processing devices, while other logic within a module may be implemented by application-specific integrated circuits (ASICs). In another example, different logic elements within a module may be associated with different sets of instructions that are executed by one or more processing devices. A module may omit one or more of the logic elements shown in the relevant drawings, for example, if a module performs a subset of the operations discussed herein by reference to that module, the module may include a subset of the logic elements shown in the relevant drawings.

[0039] The first logic 102 can receive, retrieve, locate, download, request, measure, and / or determine chemical compound data and / or their annotation types. That is, the first logic 102 can retrieve data being processed in identifier generation and / or spectral library updates, and data for subsequent use.

[0040] The second logic 104 can perform a prioritization process by generally prioritizing various annotations of various aspects of chemical compound data based on the annotation ranking schema. In other words, the second logic 104 can use the output of the first logic 102 as a trigger for the second logic 104.

[0041] The third logic 106 can generate identifiers based on the prioritization of the second logic 104. That is, the third logic 106 can execute using the output of the second logic 104.

[0042] The fourth logic 108 can perform one or more comparisons between the generated identifier and the library identifier to determine how and / or whether to update the library data store containing the library identifier. That is, the fourth logic 108 can generate an update decision based on the execution of the third logic 106.

[0043] Figure 2 shows a flowchart of Method 200, which performs an operation by the scientific instrument module 100, in various embodiments. The operation of Method 200 can be illustrated by referring to specific embodiments disclosed herein (e.g., the scientific instrument module 100 discussed herein with reference to Figure 1, the GUI 300 discussed herein with reference to Figure 3, the computing device 400 discussed herein with reference to Figure 4, and / or the scientific instrument system 1300 discussed herein with reference to Figure 13), but Method 200 can be used in any appropriate setting to perform any appropriate operation. The operations are illustrated in Figure 2, each once and in a specific order, but these operations can be appropriately rearranged and / or repeated as desired (e.g., different operations to be performed can be appropriately executed in parallel).

[0044] In 202, a first operation can be performed. For example, the first logic 102 of module 100 can perform the first operation 202. The first operation 202 may include receiving, searching, locating, downloading, requesting, measuring, and / or otherwise determining chemical compound data and / or its annotation type.

[0045] In 204, a second operation can be performed. For example, the second logic 104 of module 100 can perform the second operation 204. The second operation 204 may include comparing one or more annotation types of identified chemical compound data with an annotation ranking schema that contains ranking data for various annotation types.

[0046] In 206, a third operation can be performed. For example, the third logic 106 of module 100 can perform a third operation 206. The third operation 206 may include generating an identifier based on the comparison in the second operation 204.

[0047] In 208, a fourth operation can be performed. For example, the fourth logic 108 of module 100 can perform the fourth operation 208. The fourth operation 208 may include performing one or more comparisons between the generated identifier and one or more library identifiers 637 in a library data store which is to be updated with and / or with chemical compound data.

[0048] The scientific instrument methods disclosed herein may include interactions with a user entity (e.g., via a user-local computing device 1320, discussed herein with reference to Figure 13). These interactions may include providing the user entity with information (e.g., information about the operation of a scientific instrument such as the scientific instrument 1310 in Figure 13, information about a sample being analyzed, or information about other tests or measurements performed by the scientific instrument, information obtained from a local or remote database, or other information), or providing the user entity with the option to input commands (e.g., to control the operation of a scientific instrument such as the scientific instrument 1310 in Figure 13, or to control the analysis of data generated by the scientific instrument), queries (e.g., to a local or remote database), or other information. In some embodiments, these interactions may be performed through a graphical user interface (GUI) including a visual display on a display device (e.g., a display device 410, discussed herein with reference to Figure 4), which provides output to the user entity and / or prompts input to the user entity (e.g., via one or more input devices such as a keyboard, mouse, trackpad, or touchscreen, included in another I / O device 412, discussed herein with reference to Figure 4). The scientific instrument system 1300 disclosed herein may include any appropriate GUI for interaction with the subject.

[0049] Next, referring to Figure 3, an exemplary GUI 300 is shown that can be used when performing one or more of the methods described herein according to various embodiments described herein. As described above, the GUI 300 can be provided on a display device (e.g., display device 410, as discussed herein, referring to Figure 4) of a computing device (e.g., computing device 400, as discussed herein, referring to Figure 4) of a scientific instrument system (e.g., scientific instrument system 1300, as discussed herein, referring to Figure 13), and a user entity can interact with the GUI 300 using any suitable input device (e.g., any of the input devices included in other I / O devices 412, as discussed herein, referring to Figure 4), and input techniques (e.g., cursor movement, motion capture, face recognition, gesture detection, speech recognition, button activation).

[0050] The GUI300 may include a data display area 302, a data analysis area 304, a scientific instrument control area 306, and a settings area 308. The specific number and arrangement of areas shown in Figure 3 are illustrative only, and any number and arrangement of areas containing any desired features may be included in the GUI300.

[0051] The data display area 302 can display data generated by a scientific instrument (for example, the scientific instrument 1310 discussed herein, with reference to Figure 13). For example, the data display area 302 can display one or more output results (which may include, but are not limited to, one or more spectra, one or more annotation rankings, one or more aspects of chemical compound data, a visualization of an annotation ranking schema, etc.).

[0052] The data analysis area 304 can display the results of data analysis (e.g., the results of analyzing the data shown in the data display area 302 and / or other data). For example, the data analysis area 304 can display one or more of the output results of a query (e.g., chemical compounds) (e.g., classifications that define chemical compounds). In one or more cases, the data analysis area 304 can display a list, flowchart, or other schematic diagram of acquisition actions to be performed and / or recommended for an experiment. In one or more embodiments, the data display area 302 and the data analysis area 304 can be combined within the GUI 300 (e.g., to include data output from scientific instruments and some analysis of the data in a common graph or area).

[0053] The scientific instrument control area 306 may include options that allow a user entity to control a scientific instrument (for example, the scientific instrument 1310 discussed herein, with reference to Figure 13). For example, the scientific instrument control area 306 may include one or more controls for customizing the cloud visual, for example, based on the GUI 900 of Figure 9, discussed below.

[0054] The configuration area 308 may include options that allow user entities to control the features and functions of GUI 300 (and / or other GUIs) and / or perform common computing operations relating to the data display area 302 and the data analysis area 304 (for example, saving data on a storage device, such as the storage device 404 discussed herein, see Figure 4, sending data to another user entity, labeling data, etc.). For example, the configuration area 308 may include one or more options for changing the color, fill, or format of an illustration (for example, the illustrations in any aspect of Figures 7-9, and / or other actual, representative, and / or schematic images described later).

[0055] As described above, the scientific instrument module 100 can be implemented by one or more computing devices. Accordingly, the discussion now moves to Figure 4, which shows a block diagram of a computing device 400 capable of performing some or all of the scientific instrument methods disclosed herein in various embodiments. In one or more embodiments, the scientific instrument module 100 can be implemented by a single computing device 400 or by multiple computing devices 400. Furthermore, as will be discussed later, the computing device 400 (or multiple computing devices 400) implementing the scientific instrument module 100 can be part of one or more of the scientific instrument 1310, user-local computing device 1320, service-local computing device 1330, or remote computing device 1340 in Figure 13.

[0056] The computing device 400 in Figure 4 is shown as having multiple components, but one or more of these components can be omitted or duplicated to suit the application and configuration. As shown, these components may include one or more of the following, as will be described later: a processor 402, a storage device 404, an interface device 406, a battery / power circuit 408, a display device 410, and other input / output (I / O) devices 412.

[0057] In one or more embodiments, one or more components of the computing device 400 may be mounted on one or more motherboards and housed in a chassis (e.g., made of plastic, metal, and / or other materials). In one or more embodiments, some of these components may be manufactured on a single system-on-a-chip (SoC) (e.g., the SoC may include one or more processors 402 and one or more storage devices 404). Furthermore, in one or more embodiments, the computing device 400 may omit one or more of the components shown in Figure 4. In one or more embodiments, the computing device 400 may include interface circuits (not shown) for coupling to one or more components using any suitable interface (e.g., Universal Serial Bus (USB) interface, High Definition Multimedia Interface (HDMI®), Controller Area Network (CAN) interface, Serial Peripheral Interface (SPI), Ethernet interface, wireless interface, or any other suitable interface). For example, the computing device 400 may omit the display device 410, but may include display device interface circuits (e.g., connectors and driver circuits) to which the display device 410 can be coupled.

[0058] The computing device 400 may include a processor 402 (for example, one or more processing devices). As used herein, the term “processing device” can refer to any device or part of a device that processes electronic data from registers and / or memory and converts that electronic data into other electronic data that can be stored in registers and / or memory. The processor 402 may include one or more digital signal processors (DSPs), application-specific integrated circuits (ASICs), central processing units (CPUs), graphics processing units (GPUs), cryptographic processors (dedicated processors that execute cryptographic algorithms in hardware), server processors, or any other suitable processing devices.

[0059] The computing device 400 may include a storage device 404 (e.g., one or more storage devices). The storage device 404 may include one or more memory devices, such as random access memory (RAM) (e.g., static RAM (SRAM) devices, magnetic RAM (MRAM) devices, dynamic RAM (DRAM) devices, resistive RAM (RRAM) devices, or conductive bridge RAM (CBRAM) devices), hard drive-based memory devices, solid-state memory devices, network drives, cloud drives, or any combination of memory devices. In one or more embodiments, the storage device 404 may include memory that shares a die with the processor 402. In such embodiments, the memory may be used as cache memory and may include, for example, embedded dynamic random access memory (eDRAM) or spin-transfer torque magnetic random access memory (STT-MRAM). In one or more embodiments, the storage device 404 may include a non-temporary computer-readable medium having instructions that cause the computing device 400 to perform any suitable method or part of any of the methods disclosed herein when executed by one or more processing devices (e.g., the processor 402).

[0060] The computer device 400 may include an interface device 406 (for example, one or more interface devices 406). The interface device 406 may include one or more communication chips, connectors, and / or other hardware and software to manage communication between the computing device 400 and other computing devices. For example, the interface device 406 may include a circuit that manages wireless communication to transfer data to and from the computing device 400. The term “wireless” and its derivatives can be used to describe circuits, devices, systems, methods, techniques, communication channels, etc., that can communicate data through the use of modulated electromagnetic radiation over a non-solid medium. The term does not mean that the devices in question are completely free of wiring, although in one or more embodiments the devices in question may be completely free of wiring. The circuitry included in the interface device 406 for managing wireless communication may implement any of several wireless standards or clinical trial protocols, including but not limited to Wi-Fi (IEEE 802.11 family), IEEE standards including the IEEE 802.16 standard (e.g., IEEE 802.16-2005 Amendment), Long-Term Evolution (LTE) projects with any modifications, updates, and / or revisions (e.g., Advanced LTE project, Ultra-Mobile Broadband (UMB) project (also known as "3GPP®2")), etc. In one or more embodiments, the circuitry included in the interface device 406 for managing wireless communication may operate according to a Global System for Mobile Communications (GSM), General-Purpose Packet Radio Service (GPRS), Universal Mobile Telecommunications System (UMTS), High-Speed ​​Packet Access (HSPA), Evolved HSPA (E-HSPA), or LTE network.In one or more embodiments, the circuitry included in the interface device 406 for managing wireless communication may operate according to GSM Evolutionary Fast Data Rate (EDGE), GSM EDGE Radio Access Network (GERAN), Universal Terrestrial Radio Access Network (UTRN), or Evolutionary UTRAN (E-UTRAN). In one or more embodiments, the circuitry included in the interface device 406 for managing wireless communication may operate according to Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Digital Enhanced Cordless Communications (DECT), Evolutionary Data Optimization (EV-DO) and its derivatives, as well as any other radio clinical trial protocols designated as 3G, 4G, 5G, and beyond. In one or more embodiments, the interface device 406 may include one or more antennas (e.g., one or more antenna arrays) for receiving and / or transmitting wireless communication.

[0061] In one or more embodiments, the interface device 406 may include circuits for managing wired communications, such as electrical, optical, or other appropriate communication protocols. For example, the interface device 406 may include circuits that support communications according to Ethernet technology. In one or more embodiments, the interface device 406 may support both wireless and wired communications, and / or multiple wired communication protocols and / or multiple wireless communication protocols. For example, a first set of circuits in the interface device 406 may be dedicated to short-range wireless communications such as Wi-Fi or Bluetooth, and a second set of circuits in the interface device 406 may be dedicated to long-range wireless communications such as Global Positioning System (GPS), EDGE, GPRS, CDMA, WiMAX, LTE, or EV-DO. In one or more embodiments, a first set of circuits in the interface device 406 may be dedicated to wireless communications, and a second set of circuits in the interface device 406 may be dedicated to wired communications.

[0062] The computing device 400 may include a battery / power circuit 408. The battery / power circuit 408 may include one or more energy storage devices (e.g., batteries or capacitors) and / or circuits for coupling components of the computing device 400 to an energy source separate from the computing device 400 (e.g., AC line power).

[0063] The computing device 400 may include a display device 410 (for example, multiple display devices). The display device 410 may include any visual indicator such as a head-up display, computer monitor, projector, touchscreen display, liquid crystal display (LCD), light-emitting diode display, or flat panel display.

[0064] The computing device 400 may include other input / output (I / O) devices 412. These other I / O devices 412 may include, for example, one or more audio output devices (e.g., speakers, headsets, earphones, alarms, etc.), one or more audio input devices (e.g., microphones or microphone arrays), location devices (e.g., GPS devices that communicate with a satellite-based system to receive the location of the computing device 400, as known in the art), audio codecs, video codecs, printers, sensors (e.g., thermocouples or other temperature sensors, humidity sensors, pressure sensors, vibration sensors, accelerometers, gyroscopes, etc.), image capture devices such as cameras, keyboards, cursor control devices (e.g., mice, styluses, trackballs, or touchpads), barcode readers, quick response (QR) code readers, or radio frequency identification (RFID) readers.

[0065] The computing device 400 may have any suitable form factor for its use and configuration, such as a handheld or mobile computing device (e.g., cell phone, smartphone, mobile internet device, tablet computer, laptop computer, netbook computer, ultrabook computer, personal digital assistant (PDA), ultramobile personal computer, etc.), a desktop computing device or server computing device, or other network computing component.

[0066] Referring here to Figures 5 and 6, in one or more embodiments, the non-limiting systems 500 and / or 600 shown in Figures 5 and 6, and / or their systems, may further include one or more computers and / or computing-based elements described herein with reference to a computing environment (e.g., computing environment 1500 shown in Figure 15). In one or more described embodiments, the computers and / or computing-based elements may be used in connection with the implementation of one or more of the systems, devices, components, and / or computer implementation operations shown and / or described herein in relation to Figures 5 and / or 6, and / or other drawings described herein.

[0067] Referring first to Figure 5, this drawing shows a block diagram of an example of a non-limiting system 500 which may include an identifier generation system 502. The identifier generation system 502 typically includes metadata for describing compound data and can facilitate the generation of identifiers based on one of the various annotation types used by identifiers in a library data store.

[0068] In one or more embodiments, the identifier generation system 502 can be included, at least in part, in the computing device 400.

[0069] It should be noted that the identifier generation system 502 is described only briefly in order to provide an introduction to a more complex and / or more scalable identifier generation system 602, as shown in Figure 6. That is, further details regarding the processes that can be performed by one or more embodiments described herein are shown below for the non-limiting system 600 in Figure 6.

[0070] Referring further to Figure 5, the identifier generation system 502 may comprise at least a memory 504, a bus 505, a processor 506, an identification component 510, a prioritization component 512, and / or a generation component 516. The processor 506 may be the same as the processor 402, may be included in the processor 402, or may be different from it. The memory 504 may be the same as the storage device 404, may be included in the storage device 404, or may be different from it.

[0071] Using the above components, the identifier generation system 502 can facilitate the process of determining the annotation type of input compound data, prioritizing the annotation types based on the annotation ranking schema, and generating identifiers based on the results of the annotation ranking schema using the compound data and annotation type data.

[0072] Generally, the identification component 510 can identify compound data 532 that describes a chemical compound 531 and is based on a specific annotation type 534. The annotation type can be one of several annotation types typically used by user entities and / or used by the library data store, where it is desired that the compound data 532 be updated in the library data store and / or cross-referenced with library data in the library data store.

[0073] The prioritization component 512 can generally determine whether the annotation type 534 of the compound data 532 correlates with the annotation type of a given annotation ranking schema 540. The annotation ranking schema 540 can be used to determine the priority of one annotation type compared to one or more other annotation types 534.

[0074] The generation component 516 can generally generate identifiers 544 from chemical compound data 532 based on the annotation type 534 of the chemical compound data 532, compared to the annotation ranking schema 540. The identifiers 544 and / or their metadata can be used (but not limited to) to describe different chemical compound data 532, to identify such chemical compound data 532 in response to queries, and / or to store such chemical compound data 532 classificatively and / or hierarchically in a library data store.

[0075] As a result of these components, the content of identifiers 544 in the same library data store can be consistent with each other, and the priority of using such content can be based on the use of annotation ranking schema 540. This schema 540 can be used to merge or replace existing library identifiers, determine the priority of identifier generation, and / or resolve inconsistencies between identifiers.

[0076] The identification component 510, the prioritizing component 512, and / or the generating component 516 can be operably coupled to a processor 506 which can be operably coupled to memory 504. A bus 505 can provide the operable coupling. The processor 506 can facilitate the execution of the identification component 510, the prioritizing component 512, and / or the generating component 516. The identification component 510, the prioritizing component 512, and / or the generating component 516 can be stored in memory 504.

[0077] In general, the non-limiting system 500 can provide communication between the identifier generation system 502, the library data store, and / or any device related to user entities using any suitable communication method (e.g., electronic, telecommunicative, internet, infrared, fiber, etc.).

[0078] As an overview of the components and their functions described above, we now briefly refer to Figure 10, which shows a flowchart of an example of a non-limiting method 1000 that can facilitate the process of identifier generation and subsequent updating of library content based on the identifiers. Although the non-limiting method 1000 is described in relation to the non-limiting system 500 in Figure 5, the non-limiting method 1000 may also be applicable to other systems described herein (e.g., the non-limiting system 600 in Figure 6). Repeated descriptions of similar elements and / or processes used in each embodiment have been omitted for brevity.

[0079] In 1002, a non-limiting method 1000 may include identifying chemical compound data (e.g., chemical compound data 532) describing a chemical compound (e.g., chemical compound 531) by a system (e.g., identification component 510) operably coupled to a processor.

[0080] In step 1004, the non-limiting method 1000 may include determining whether the system (e.g., the prioritization component 512) can determine whether the annotation type of the chemical compound data (e.g., annotation type 534) is included in a specified annotation ranking schema (e.g., annotation ranking schema 540) and / or can be compared to the specified annotation ranking schema. If not, the non-limiting method 1100 may return to step 1002. If applicable, the non-limiting method may proceed to step 1006.

[0081] In 1006, a non-limiting method 1000 may include a system (e.g., a generating component 516) generating identifiers (e.g., identifiers 544) based on the annotation type of compound data compared with an annotation ranking schema.

[0082] Next, referring to Figure 6, a non-limiting system 600 is shown, which may include an identifier generation system 602 and a library data store (DS) 635. Repeated descriptions of similar elements and / or processes used in each embodiment are omitted for brevity. The description of the embodiment in Figure 5 may be applicable to the embodiment in Figure 6. Similarly, the description of the embodiment in Figure 6 may be applicable to the embodiment in Figure 5.

[0083] Generally, the identifier generation system 602 can facilitate the generation of identifiers 644 that have metadata for describing compound data 632 and are based on one of various annotation types 634A (e.g., category, element, etc.) that can be used by identifiers 637 in the library data store 635.

[0084] In one or more embodiments, the identifier generation system 602 may be included in at least part of the computing device 400.

[0085] One or more communications between one or more components of a non-limiting system 600 may be provided by wired and / or wireless means, including, but not limited to, using a cellular network, a local area network (WAN) (e.g., the Internet), and / or a local area network (LAN). Suitable wired or wireless technologies to support communications include, but not limited to, Wireless Fidelity (Wi-Fi), Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), Worldwide Interoperability for Microwave Access (WiMAX), Enhanced General Packet Radio Services (Enhanced GPRS), Third Generation Partnership Project (3GPP) Long-Term Evolution (LTE), Third Generation Partnership Project 2 (3GPP2) Ultra Mobile Broadband (U This may include MB), High Speed ​​Packet Access (HSA), Zigbee and other 802.XX radio technologies and / or legacy telecommunications technologies, BLUETOOTH®, Session Initiation Protocol (SIP), ZIGBEE®, RF4CE Protocol, WirelessHART Protocol, 6LoWPAN (IPv6 over Low Power Wireless Area Network), Z-Wave, Advanced and / or Adaptive Network Technology (ANT), Ultra Wideband (UWB) Standard Protocol and / or other dedicated and / or non-dedicated communications protocols.

[0086] The identifier generation system 602 can be associated with a cloud computing environment (for example, the cloud computing environment 1500 in Figure 15) and, for example, can be accessed through it.

[0087] The identifier generation system 602 may comprise multiple components. These components may include memory 604, a processor 606, a bus 605, an identification component 610, a prioritization component 612, a selection component 614, a generation component 616, a comparison component 618, an update component 620, and / or an execution component 622. Using these components, the identifier generation system 602 can generate identifiers 644 based on various annotation types 634A, decide whether to merge or update identifiers 644 into the library data store 635, and / or resolve inconsistencies between identifiers 644 and 637 based on the annotation ranking schema 640.

[0088] Next, we move the discussion to the processor 606, memory 604, and bus 605 of the identifier generation system 602. For example, in one or more embodiments, the identifier generation system 602 may comprise a processor 606 (e.g., a computer processing unit, a microprocessor, a classical processor, and / or a similar processor). In one or more embodiments, the components associated with the identifier generation system 602 may comprise one or more computer and / or machine-readable, writable, and / or executable components, and / or instructions executable by the processor 606, to provide the execution of one or more processes defined by such components and / or instructions, as described herein with reference to or without reference to one or more drawings of one or more embodiments. In one or more embodiments, the processor 606 may comprise an identification component 610, a prioritizing component 612, a selection component 614, a generation component 616, a comparison component 618, an update component 620, and / or an execution component 622.

[0089] In one or more embodiments, the identifier generation system 602 may include a computer-readable memory 604 that can be operably connected to the processor 606. The memory 604 can store computer-executable instructions that, when executed by the processor 606, cause the processor 606 and / or one or more other components of the identifier generation system 602 (e.g., an identification component 610, a prioritizing component 612, a selection component 614, a generation component 616, a comparison component 618, an update component 620, and / or an execution component 622) to perform one or more actions. In one or more embodiments, the memory 604 can store computer-executable components (e.g., an identification component 610, a prioritizing component 612, a selection component 614, a generation component 616, a comparison component 618, an update component 620, and / or an execution component 622).

[0090] The identifier generation systems 602 and / or components described herein can be coupled to each other electrically, electrically, operably, optically, and / or otherwise via a bus 605 so as to be communicative with each other. The bus 605 may comprise one or more of the following types of buses: a memory bus, a memory controller, a peripheral bus, an external bus, a local bus, and / or one or more bus architectures. One or more examples of these buses 605 can be used.

[0091] In one or more embodiments, the identifier generation system 602 can be coupled to one or more external systems (e.g., an electrical output generation system not shown, one or more output targets, and / or output target controllers), sources, and / or devices (e.g., computing devices, communication devices, and / or similar devices) for example via a network (e.g., in a communicative, electrically, operationally, optically, and / or similar functions). In one or more embodiments, one or more components of the identifier generation system 602 and / or a non-limiting system 600 can reside in the cloud and / or locally in a local computing environment (e.g., a specified location).

[0092] In addition to the processor 606 and / or memory 604 described above, the identifier generation system 602 may include one or more computer and / or machine-readable, writable, and / or executable components and / or instructions that, when executed by such components and / or instructions, can provide the execution of one or more actions defined by such components and / or instructions.

[0093] Next, we move the discussion to additional components of the identifier generation system 602 (e.g., the identification component 610, the prioritization component 612, the selection component 614, the generation component 616, the comparison component 618, the update component 620, and / or the execution component 622). Generally, the identifier generation system 602 can perform a set of processes that can be separated into various steps, including, but are not limited to, generating identifiers 644 based on various annotation types 634A, deciding whether to merge or update identifiers 644 into the library data store 635, and / or resolving inconsistencies between identifiers 644, 637 based on the annotation ranking schema 640.

[0094] Firstly, it should be noted that in one or more embodiments, the identification component 610, prioritizing component 612, selection component 614, generation component 616, comparison component 618, update component 620, and / or execution component 622 can be implemented independently without one or more other components among the identification component 610, prioritizing component 612, selection component 614, generation component 616, comparison component 618, update component 620, and / or execution component 622. Additionally and / or alternatively, the identification component 610, prioritization component 612, selection component 614, generation component 616, comparison component 618, update component 620, and / or execution component 622 may be included in the high-level analysis component 603, and one or more of the following functions of the identification component 610, prioritization component 612, selection component 614, generation component 616, comparison component 618, update component 620, and / or execution component 622 may be implemented by the high-level analysis component 603. The Identification Component 610, Prioritization Component 612, Selection Component 614, Generation Component 616, Comparison Component 618, Update Component 620, and / or Execution Component 622 can be omitted by the High-Level Analysis Component 603 performing one or more of the functions described below of the omitted Identification Component 610, Prioritization Component 612, Selection Component 614, Generation Component 616, Comparison Component 618, Update Component 620, and / or Execution Component 622.

[0095] First, an identification component 610 is referenced, which typically describes a chemical compound 631 and allows for the retrieval (e.g., acquisition, location, identification, request, download, etc.) of chemical compound data 632 based on a specific annotation type 634A. Annotation type 634A can be one of several annotation types 634A typically used by user entities and / or used by the library data store 635, where it is desired that the compound data 532 be updated in the library data store 635 and / or cross-referenced with library data 636 in the library data store 635.

[0096] In other words, the chemical compound data 632 can be based on and / or included in the chemical compound input 630 to the identifier generation system 602. Such chemical compound input 630 can include any suitable format, text, and / or code. The chemical compound input 630 can include the generation of identifiers 644, updating the library data store 635 along with the chemical compound data 632, and / or requesting queries to the library data store 635.

[0097] Such a library data store 635 can be located in any suitable location (e.g., inside and / or outside the identifier generation system 602 and / or the non-limiting system 600). The library data store 635 can be communicatively coupled to the non-limiting system 600. The library data store 635 may contain library data 636 using metadata of a library identifier 637, including library identifier content 638. The library identifier 637 can be based on any suitable annotation type, such as, but is not limited to, a set of various annotation types including Mol String, International Chemical Identifier (Inchi), Simplified Molecular Input Line Entry System (SMILES), PubChem, Union of Pure and Applied Chemistry (UPAC) name, formula, InchiKey, Chemical Abstract Service (CAS), monoisotopic mass, and / or average mass. The library data store 635 can use any suitable data, metadata, text, code, etc., as well as any suitable method of organizing the data in and / or stored therein.

[0098] Here, in addition to still referring to Figure 6, and referring to Figure 7, after uploading the chemical compound input 630 containing the chemical compound data 632 (in step 702 of the identifier generation workflow 700), the identification component 610 can determine the annotation type 634A of the chemical compound data 632 based on a comparison with historical data, metadata of the chemical compound data 632, and / or descriptions of one or more annotation types. In one or more cases, this may include determining various aspects 633 of the chemical compound data 632 as having various different annotation types 634A, for example, multiple different annotation types 634A as described above (e.g., Mol String, Inchi, SMILES, UPAC name, formula, InchiKey, CAS, monoisotopic mass, and / or average mass). That is, the identification component 510 can generally map the chemical compound data 632 based on its metadata corresponding to various annotation types (e.g., step 704 of the identifier generation workflow 700).

[0099] The prioritization component 612 can generally determine whether the annotation type 634 of the chemical compound data 632 correlates with the annotation type of a given annotation ranking schema 640. The annotation ranking schema 640 can be used to determine the priority of one annotation type 634A compared to one or more other annotation types 634A. For example, the chemical compound data 632 may contain pairs 633 of aspects, each based on different annotation types 634A1 and 634A2. These annotation types 634A1 and 634A2 can be compared to the annotation ranking schema 900, as shown in Figure 9, or any other suitable annotation ranking schema 640. Based on the format of the annotation type 634A, its previous identification, and / or its metadata, the prioritization component 612 can generate an annotation ranking 642 to hierarchically prioritize the annotation types 634A1 and 634A2.

[0100] For example, a brief reference to the annotation ranking schema 900 shown in Figure 9 reveals that the Mol String annotation type can be ranked higher than the Inchi annotation type or the SMILES annotation type. In another example, the Inchi annotation type 634A2 can be ranked higher than the CAS annotation type 634A1.

[0101] It should be noted that the annotation ranking schema 640 can be specified, uploaded, downloaded, retrieved, and / or customized by any appropriate administrator entity using any appropriate computing device that can be communicatively coupled to the non-restrictive system 600. In one or more cases, the annotation ranking schema can thus be customized to adjust the underlying ranking data of the schema 640 used to provide annotation rankings 642 for various annotation types 634A of input compound data 632, among other uses, at any appropriate time.

[0102] Based on the determination of the annotation ranking 642, the selection component 614 determines the first aspect 633 of several aspects, based on the fact that each annotation type 634A is the highest-ranking annotation type 634A among various annotation types 634A based on the annotation ranking schema 640, and can be used for the generated primary identifier 644.

[0103] The generation component 616 can generally generate identifiers 644 from chemical compound data 632 based on the annotation type 634 of the chemical compound data 632, compared to the annotation ranking schema 640. The identifiers 644 and / or their metadata can be used (but not limited to) to describe different chemical compound data 632, to identify such chemical compound data 632 in response to queries, and / or to store such chemical compound data 632 classificatively and / or hierarchically in a library data store (e.g., library data store 635).

[0104] After the generation of the primary identifier 644, and / or at least in part parallel thereto, one or more other secondary identifiers 644 can be generated by the generation component 616 based on other aspects 633 of compound data 632 for the same compound 631, and these secondary identifiers 644 can be based on different annotation types 634A other than the annotation type 634A of the primary identifier 644.

[0105] In one or more cases, before generating a secondary identifier or before generating a primary identifier 644, or at least partially in parallel with any of these processes, the prioritizing component 612 may perform a cross-check of the content 634C associated with an aspect 633 to further guide the generation performed by the generation component 616. For example, the prioritizing component 612 may compare the content 634C of one aspect 633 (e.g., contained within, associated with, and / or corresponding to) with the content 634C of another aspect 633. The content 634C may include metadata describing a chemical compound 631. In one or more cases, such content 634C may match each other; that is, the content 634C may describe the same and / or different properties and / or other aspects of the chemical compound 631 in the same or different ways. In one or more other cases, such content 634C may contradict each other. In other words, content 634C may describe the same properties and / or other aspects of chemical compound 631 in a contradictory manner (for example, if one content 634C is more accurate than another, or if it is theoretically more accurate).

[0106] In one or more embodiments, such a decision may be made based on input to the non-limited system 600 by a user entity using historical data, a data store of chemical compound information, and / or any suitable computing device that can be communicatively coupled to the non-limited system 600.

[0107] If the content 634C is consistent, the identifier generation system 602 may proceed to generate primary and secondary identifiers 644 for each aspect 633 based on the annotation ranking schema 640, as described above and / or below.

[0108] If the content 634C is inconsistent, the identifier generation system 602 may proceed, as described above and / or below, to generate primary and secondary identifiers 644 for only a portion of each aspect 633 based on the annotation ranking schema 640. That is, the annotation ranking schema 640 can be used to resolve consistency inconsistencies, so that the content 634C associated with a higher-ranking annotation type 634A (according to the annotation ranking schema 640) can be retained, and other content 634C associated with a lower-ranking annotation type 634A is not used in the generation of any identifier 644. That is, the prioritization component 612 can generate such a decision. In this way, the annotation ranking schema 640 can be used to determine that the content 634C associated with a higher ranking 642 is consistent, and the content 634C associated with a lower ranking 642 is inconsistent.

[0109] In one or more embodiments, such a decision can be made using the annotation ranking schema 640 rather than being directly based on the content.

[0110] In other words, the annotation ranking schema 640 can be used to resolve consistency inconsistencies more directly, allowing content 634C associated with higher-ranking annotation types 634A (according to the annotation ranking schema 640) to be retained, while other content 634C associated with lower-ranking annotation types 634A is not used to generate any identifier 644. That is, the prioritization component 612 can generate such a decision. In this way, the annotation ranking schema 640 can be used to determine that content 634C associated with higher-ranking 642 is consistent, and content 634C associated with lower-ranking 642 is inconsistent.

[0111] Referencing the generation component 616 again, the generation performed may include writing data and / or metadata to one or more files associated with the chemical compound data aspect 633 for which annotation type 634 corresponds. Identifier 644 may typically include metadata that labels aspect 633 as corresponding to annotation type 634A and / or ranking 642. Thus, when a system (such as a processor associated with library data store 635) retrieves data containing identifier 644, the metadata of identifier 644 can be used to properly read aspect 633 according to annotation type 634A. Similarly, the metadata of identifier 644 can be used to determine the priority of data returned based on ranking 642, compared to ranking 642 for another aspect 633.

[0112] As described herein, the metadata of identifier 644 generated by the non-restrictive system 600 can be used regardless of annotation type 634A, based on a variety of cross-checks and / or validations that can be performed by the identifier generation system 602.

[0113] For example, in step 706 of the identifier generation workflow 700, the comparison component 618 can generally determine the status 707S of each generated identifier. Statuses 707S can be merged, created, and / or invalidated. This decision can be made by the comparison component 618 at least in part on the use of library data 636 in the library data store 635 that is to be updated and on actual comparison with it.

[0114] For example, in one or more cases, the comparison component 618 can compare a first identifier 644 (e.g., a primary identifier 644, and / or an identifier based on the highest ranking that is analyzed first) with a library identifier 637 for the same chemical compound 631.

[0115] In other words, the comparison component 618 can determine whether identifier 644 contains a different annotation type 634A than that of library identifier 637. If identifiers 644 and 637 do not have the same annotation type 634A, it can be determined, for example, by searching library data store 635 and / or its metadata list, whether any library identifier 637 for chemical compound 631 in library data store 635 has the same annotation type 634A as identifier 644. If no match is found, identifier 644 can be marked by the comparison component 618 with a merge status.

[0116] Additionally and / or alternatively, the comparison component 618 may determine whether the content 634C of identifier 644 matches the library identifier 637 for the same chemical compound 631 (e.g., the highest-ranking library identifier 637 for the same chemical compound 631) using the process described above, which is performed by the prioritizing component 212, but instead, this is performed by the comparison component 618 and / or by the prioritizing component 212 assisting the comparison component 618. If identifiers 644 and 637 are consistent, the merge status can be used and / or maintained for identifier 644. If identifiers 644 and 637 are inconsistent, the comparison component 618 may make a decision based on rule-based criteria, for example, submitted and / or specified by the user entity. For example, the highest-ranking identifiers 644 and 637 may be used in some cases and not in others. In other words, the lower-ranking identifier 644 can be not used and marked with invalid status 707S, or the lower-ranking identifier 637 can be removed or marked with invalid status 707S, and the upper-ranking identifier 644 can be marked with merge status 707S or retained.

[0117] Additionally and / or alternatively, the comparison component 618 can determine whether identifier 644 is higher than library identifier 637 according to ranking 642 and / or annotation ranking schema 640. The highest ranking 642 can be used to resolve any consistency inconsistencies, as described above.

[0118] In short, the comparison component 618 can perform a first subcomparison of the forms of annotation type 634A and the second annotation type 634A, a second subcomparison of the ranking of annotation type 634A and the second annotation type 634A compared to the annotation ranking schema 640 (e.g., annotation ranking 642), or a first comparison that includes both. That is, based on a first decision that resolves a first comparison between annotation type 634A corresponding to identifier 644 and the second annotation type 634A corresponding to library identifier 637, the comparison component 618 can decide whether to update the library data store 635 with identifier 644. Similarly, the comparison component 618 can also decide whether to update the library data store 635 with identifier 644, based on a second decision that resolves a second comparison of consistency between the first content of identifier 644 (e.g., identifier content 646) and the second content of library identifier 637 (e.g., library identifier content 638).

[0119] Additionally and / or alternatively, if library identifier 637 is not found by comparison component 618 accessing library database 635 with respect to chemical compound 631, identifier 644 may be marked with creation status 707S.

[0120] It should be noted that, after one or more comparisons as described above have been performed on the primary identifier 644, and / or after such comparisons have been performed at least partially in parallel with the one or more comparisons described above, such one or more comparisons can be performed on other secondary identifiers 644 generated for the same compound.

[0121] Note that any two or more of the above different comparisons can be performed at least partially in parallel with each other, for example by comparison component 618. In contrast, conflicts can be resolved in any appropriate and / or specified order.

[0122] Note that in one or more cases, two or more comparisons can be performed at least partially in parallel with each other, and such two or more comparisons may be against the same identifier 644 being compared with different library identifiers 637, and / or against different identifiers 644 being compared with the same or different library identifiers 637.

[0123] Based on the assignment and / or generation of status 707S, any sorting of identifiers 644 by status 707S (e.g., within the category of the same chemical compound 631) can be performed by the comparison component 618 in step 708. Additionally and / or alternatively, optional filtering from identifiers 644 having invalid status 707S can be performed by the comparison component 618 in step 708.

[0124] In step 710, based on a comparison having merge or update status 707S, and / or based on a decision by the comparison component 618 to perform the update 642, the update component 620 may perform such an update 642 of the library data store 635, along with the chemical compound data 631 and, more specifically, with one or more compared identifiers 644.

[0125] Next, refer to the execution component 622, which can generally generate a response 692 to a query 690, or a response 692 to an inquiry contained in the chemical compound input 630, for example, query 690 / input 630 including a query for a decision on chemical compound 631. Such a query may include, for example, determining the classification, relationships, chemical family, closest spectrum, identification, similarity, differences, etc., of chemical compound 631 against library data 636, but is not limited to the following. For example, the execution component 622 may identify the classification of chemical compound 631 based on one or more identifiers 644 added to the library data store 635 as library identifiers 637. For example, the execution component 622 may, in response to query 690 / input 630, return multiple identifiers 644 generated for the same chemical compound 631 based on the annotation ranking schema 640 (e.g., generate a query response 692). In other words, these multiple identifiers 644 are consistent with one another and, while having different annotation types 634A, can be returned or analyzed for the same query 690 / input 630.

[0126] Next, referring to Figure 8, the identifier generation data flow 800 is described as a first summary of the description of one or more embodiments provided above. For example, the first step 608 may include validation of input chemical compound data 632 by the identification component 610. The identification component 610 may further perform one or more cross-check validations of various aspects 633 of the chemical compound data 632 against each other in step 804. Furthermore, one or more rankings 642 may be generated by the prioritization component 612 based on the annotation ranking schema 640. In step 806, the generation component 616 may generate one or more identifiers 644. In step 808, the comparison component 618 may perform one or more of the various comparisons described above using the library data store 635 (e.g., library ds). In step 810, the update component 620 may update the library data store 635 based on the compound 631, various statuses 707S, and determine a task ID for logging one or more merge errors and / or one or more completed actions.

[0127] For example, in substep 812, the update component 620 can check for one or more errors that may have occurred as a result of update 642. Such errors may include the loss of existing identifiers 637 or library data 636, or unreadable and / or unreturnable data and / or metadata.

[0128] In substep 814, any one or more errors can be resolved using the post-merge update 642.

[0129] As an overview of the components and / or their functions described above, Figures 11 and 12 now show a flowchart of an example

[0130] In 1102, a non-limiting method 1100 may include a system (e.g., an identification component 610) identifying chemical compound data (e.g., chemical compound data 632) that describes a chemical compound (e.g., chemical compound 631).

[0131] In 1104, a non-limiting method 1100 may include the system (e.g., identification component 610) identifying multiple aspects (e.g., aspect 633) of chemical compound data having various annotation types (e.g., annotation type 634A).

[0132] In 1106, a non-limiting method 1100 may include a system (e.g., a prioritizing component 612) comparing content associated with multiple aspects (e.g., content 634C) with respect to each other and determining the consistency of the content with respect to each other.

[0133] In 1108, a non-restrictive method 1100 may include a system (e.g., a prioritization component 612) prioritizing multiple aspects according to various annotation types compared to an annotation ranking schema (e.g., an annotation ranking schema 640).

[0134] In 1110, a non-restrictive method 1100 may include the system (e.g., selection component 614) selecting, based on an annotation ranking schema, a first aspect having an annotation type from among several aspects, on the basis that the annotation type is the highest-ranking annotation type among various annotation types, for use for an identifier (e.g., identifier 644).

[0135] In 1112, a non-limiting method 1100 may include a system (e.g., a generating component 616) generating identifiers from chemical compound data based on the annotation type of the compound data compared to an annotation ranking schema.

[0136] In 1114, a non-limiting method 1100 may include the system (e.g., a generating component 616) generating a second identifier (e.g., identifier 644) based on a second annotation type that ranks lower among various annotation types compared to an annotation ranking schema, wherein the second content of the second identifier (e.g., identifier content 646) and the content of the identifier (e.g., identifier content 646) consistently describe the same properties of the chemical compound.

[0137] In 1116, a non-limiting method 1100 may include, by means of a system (e.g., a comparison component 618), comparing an identifier with a library identifier (e.g., a library identifier 637) of a chemical compound in a library data store (e.g., a library data store 635).

[0138] In step 1118, the non-limiting method 1100 may include the system (e.g., comparison component 618) determining whether an identifier is higher in rank than a library identifier or whether it contains a different annotation type than a library identifier. If not, the non-limiting method 1100 may return to the next generated identifier (e.g., a second identifier) ​​and, if fully examined (e.g., the full set of generated identifiers), return to step 1102 for identification of additional chemical compound data. If "yes", the non-limiting method 1100 may proceed to step 1120.

[0139] In 1120, non-limiting methods 1100 may include the system (e.g., update component 620) performing a first subcomparison of the forms of an annotation type and a second annotation type, a second subcomparison of the rankings of the annotation type and the second annotation type (e.g., annotation ranking 642) against an annotation ranking schema, or a first comparison that includes both.

[0140] In 1122, a non-limiting method 1100 may include a system (e.g., an update component 620) deciding whether to update the library datastore with an identifier based on a first decision that resolves a first comparison between an annotation type corresponding to an identifier and a second annotation type corresponding to a library identifier.

[0141] In 1124, the non-limiting method 1100 may also include the system (e.g., update component 620) deciding whether to update the library datastore with an identifier, also based on a second decision that resolves a second comparison of consistency between the first content of the identifier (e.g., identifier content 646) and the second content of the library identifier (e.g., library identifier content 638).

[0142] In 1126, a non-limiting method 1100 may include updating a library data store containing library identifiers for chemical compounds, which include chemical compounds, with a chemical compound identifier (e.g., update 642) by the system (e.g., update component 620).

[0143] In 1128, a non-limiting method 1100 may include the system (e.g., execution component 622) instructing a library data store to issue a query (e.g., query 690) corresponding to a chemical compound, and for the same query, returning a number of identifiers (e.g., query response 692) containing identifiers generated for the same chemical compound based on an annotation ranking schema.

[0144] Additional Overview For the sake of brevity, the computer implementation and non-computer implementation methods described herein are illustrated and / or described as a series of operations. It should be understood that this specification is not limited to the illustrated and / or described operations or their order. For example, operations may be performed in other orders, simultaneously, or in conjunction with other operations not described herein. Furthermore, not all shown actions can be used to implement computer implementation and non-computer implementation methodologies in accordance with the described subject matter. In addition, computer implementation and non-computer implementation methodologies can alternatively be represented as a series of interrelated states via state diagrams or events. Furthermore, the computer implementation methodologies described below and throughout this specification may be stored in a product for carrying and transferring the computer implementation methodologies to a computer. The term "product" as used herein is intended to encompass computer programs accessible from any computer-readable device or storage medium.

[0145] With respect to systems and / or devices, interactions between one or more components are described herein (and / or further described). Such systems and / or components may include a specified component or subcomponent, one or more of the specified components and / or subcomponents, and / or additional components. Subcomponents may be implemented as components that are communicatively coupled to other components rather than being contained within a parent component. One or more components and / or subcomponents may be combined into a single component that provides aggregate functionality. Components may interact with one or more other components that are not specifically described herein for brevity but are known to those skilled in the art.

[0146] In summary, one or more systems, computer program products, and / or computer implementations provided herein relate to a process for generating annotation-accessible library spectral content (e.g., library data 636). A system (e.g., identifier generation systems 502, 602) may comprise a memory (e.g., memory 504, 604) for storing computer executable components and a processor (e.g., processor 506, 606) for executing the computer executable components. A computer executable component may include an identification component (e.g., identification components 510, 610) that identifies chemical compound data (e.g., chemical compound data 532, 632) describing chemical compounds (e.g., chemical compounds 531, 631), and a generation component (e.g., generation components 516, 616) that generates identifiers (e.g., identifiers 544, 644) from the chemical compound data based on the annotation type (e.g., annotation type 534, 634A) of the compound data compared with an annotation ranking schema (e.g., annotation ranking schema 540, 640).

[0147] One or more embodiments described herein can utilize a novel system that provides the generation and use of various annotation types across different identifiers for the same and / or different compounds in a library data store without consistency issues between identifiers generated by the one or more embodiments described herein. In this way, queries against such a library can be returned for one or more annotation types, regardless of the annotation type associated with the query and / or the annotation type associated with the library data of the library. Thus, cross-referencing of similarities, differences, and / or relationships between compounds (including the spectra of compounds) in such a library can be easily and efficiently facilitated and performed.

[0148] In fact, in view of one or more embodiments described herein, a practical application of one or more systems, computer implementations, and / or computer program products described herein may be the ability to provide consistency in the content of identifiers generated for the same compound but based on different annotation types. That is, one or more identifiers generated for the same compound may be consistent, for example, in such a way that they do not contradict each other (e.g., describing the compound as having contradictory properties). This can be easily achieved by using annotation ranking schemas and various cross-checks and / or comparisons performed by one or more embodiments described herein. In other words, compared to existing frameworks that cannot provide this ability and do not consider other annotation types when generating identifiers, one or more embodiments described herein can provide novel library search capabilities that were previously unavailable.

[0149] These are useful and practical applications of computers, thus enhancing (e.g., improving and / or optimizing) the output of compound analysis and / or spectral analysis. Overall, such computerized tools can constitute concrete and tangible technological improvements in the field of materials analysis, more specifically in materials analysis that uses a network of library spectral contents for the purpose of cross-referencing similarities, differences, and / or relationships between different library spectral contents.

[0150] Furthermore, one or more embodiments described herein can be used in real-world systems based on the disclosed teachings. For example, one or more embodiments described herein can provide the generation of identifiers for compound data based on various annotation types, including various texts, codes, and / or metadata. In fact, an advantage of one or more embodiments described herein is that such various annotation types can be distinguished in order to generate one or more identifiers. Based on this, one or more embodiments described herein can be used to generate identifiers so that a library updated with identifiers can be searched in a manner dependent on the annotation type. That is, for the same compound, information can be returned in response to queries based on different annotation types (e.g., multiple annotation types). Thus, a search using one annotation type can return data from another annotation type that has already been cross-checked for consistency and / or labeled for ranking based on an annotation ranking schema. These can be useful processes for various industries, such as material analysis, product manufacturing, and quality control. Accordingly, the embodiments disclosed herein can provide improvements to scientific instrument technology (e.g., improvements to computer technology that supports such scientific instruments, among other improvements).

[0151] Furthermore, in one or more cases, the embodiments described herein can be improved upon. In fact, since identifiers are generated based on various annotation types and corresponding annotation ranking schemas, the comparisons for deciding whether or not to update the library can become more efficient and accurate over time. That is, as more library content is added by the embodiments described herein, a larger amount of accurate comparison data is generated for use in searches, queries, and / or other comparisons performed against the various cross-checks used by one or more embodiments described herein to generate identifiers for spectral content in the initial instance.

[0152] In addition, in one or more embodiments, the annotation ranking schema used to prioritize different annotation types for the same compound or the spectrum of a compound can be customized at any appropriate time to adjust the ranking data used to provide rankings for various annotation types of input compound data (e.g., inputs to the non-limiting systems described herein).

[0153] One or more embodiments described herein can be implemented in, in relation to, and / or coupled to, a scientific imaging device.

[0154] One or more embodiments described herein can be applied on a plug-and-play basis to various architectures of existing spectral libraries and / or spectral data library data stores. That is, one or more embodiments described herein can generate identifiers for compounds (including the spectra corresponding to the compounds) regardless of the data structure of the spectral library and / or library data store.

[0155] Furthermore, one or more embodiments described herein can achieve a certain level of scale of operation. For example, two or more aspects of compound data for the same compound, or two or more sets of compound data for different compounds, can be analyzed and their identifiers can be generated at least partially in parallel with each other. In one or more cases, therefore, one library, or two or more libraries, can be updated at least partially in parallel with each other and / or updated in parallel with the generation of one or more identifiers for one or more compound datasets.

[0156] With respect to systems and / or devices, interactions between one or more components are described herein (and / or further described). Such systems and / or components may include a specified component or subcomponent, one or more of the specified components and / or subcomponents, and / or additional components. A subcomponent may be implemented as a component that is communicatively coupled to other components, rather than being contained within a parent component. One or more components and / or subcomponents may be combined into a single component that provides aggregate functionality. A component may interact with one or more other components that are not specifically described herein for brevity but are known to those skilled in the art.

[0157] One or more embodiments described herein can, in one or more embodiments, be essentially and / or closely linked to computer technology and cannot be implemented outside of a computing environment. For example, one or more processes performed by one or more embodiments described herein can provide more efficient and more feasible execution of programs and / or program instructions (e.g., for chemical compound analysis) using annotation types (e.g., computerized and / or computer code annotation types) compared with existing systems and / or techniques for library spectral content generation. Systems, computer implementations, and / or computer program products that provide execution of these processes are extremely useful in the field of materials analysis, for example, for determining one or more chemical counterparts (e.g., chemical properties, relationships, and / or classifications) to one or more compound queries, and cannot be similarly implemented in a perceptible manner outside of a computing environment.

[0158] One or more embodiments described herein can use hardware and / or software to solve problems that are highly technical, not abstract, and that cannot be performed by humans as a set of mental actions. For example, neither one person nor even thousands of people can efficiently, accurately, and / or effectively analyze computer data / metadata that defines multiple compounds or the spectra of multiple compounds, and / or generate computer-usable metadata identifiers for computer-based retrieval of library data stored in a storage device, but one or more embodiments described herein can provide this process. Furthermore, neither the human mind nor a person using pen and paper can perform one or more of these processes as the one or more embodiments described herein do.

[0159] In one or more embodiments, one or more processes described herein can be performed by one or more dedicated computers (e.g., dedicated processing units, dedicated classical computers, and / or other types of dedicated computers) to perform defined tasks relating to one or more of the technologies described above. One or more embodiments and / or components described herein can be used to solve new problems arising from advances in the technologies mentioned above, cloud computing systems, computer architectures, and / or the use of other technologies.

[0160] One or more embodiments described herein may be fully operable to perform one or more other functions (e.g., full power-on, full operation, and / or another function) while also performing one or more of the operations described herein.

[0161] To provide an additional overview, a list of embodiments and their features is provided below.

[0162] A system comprising: a memory for storing computer executable components; and a processor for executing the computer executable components stored in the memory, wherein the computer executable components include: an identification component for identifying chemical compound data describing chemical compounds; and a generation component for generating identifiers from the chemical compound data based on the annotation type of the compound data, compared with an annotation ranking schema.

[0163] The system as described in the preceding paragraph, wherein the identification component identifies multiple aspects of the chemical compound data having various annotation types, including the annotation type, and the computer executable component further comprises a selection component that, based on the annotation ranking schema, selects a first aspect having the annotation type from the multiple aspects for use as the identifier, based on the fact that the annotation type is the highest-ranking annotation type among the various annotation types.

[0164] The system as described in any of the preceding paragraphs, wherein the computer executable component further comprises a prioritization component that prioritizes the multiple aspects according to the various annotation types compared to the annotation ranking schema.

[0165] The generating component further generates a second identifier based on a second annotation type that ranks lower among the various annotation types compared to the annotation ranking schema, and the second content of the second identifier and the content of the identifier are a system of descriptions of any of the preceding paragraphs that consistently describe the same properties of the chemical compound.

[0166] The system according to any of the preceding paragraphs, further comprising: an update component that updates a library data store containing library identifiers of chemical compounds, including the chemical compound, with the identifiers of the chemical compound; and an execution component that directs a query corresponding to the chemical compound to the library data store and, for the same query, returns a plurality of identifiers, including the identifiers generated for the same chemical compound, based on the annotation ranking schema.

[0167] The system according to any of the preceding paragraphs, further comprising: a comparison component that compares the identifier with a library identifier of the chemical compound in a library data store; and an update component that determines whether to update the library data store with the identifier based on a first decision that resolves a first comparison between the annotation type corresponding to the identifier and a second annotation type corresponding to the library identifier.

[0168] The system described in any of the preceding paragraphs, wherein the first comparison includes a first subcomparison of the forms of the annotation type and the second annotation type, a second subcomparison of the rankings of the annotation type and the second annotation type compared to the annotation ranking schema, or both.

[0169] The system according to any of the preceding paragraphs, wherein the update component further determines whether to update the library data store together with the identifier, also based on a second determination that resolves a second comparison of consistency between the first content of the identifier and the second content of the library identifier.

[0170] A computer implementation method comprising: identifying chemical compound data describing a chemical compound by a system operably coupled to a processor; and generating an identifier from the chemical compound data based on the annotation type of the compound data by the system in comparison with an annotation ranking schema.

[0171] A computer implementation method according to any of the preceding paragraphs, further comprising: the system identifying a plurality of aspects of the chemical compound data having various annotation types, including the annotation type; and the system selecting, based on the annotation ranking schema, a first aspect having the annotation type from among the plurality of aspects, on the basis that the annotation type is the highest-ranking annotation type among the various annotation types, for use as the identifier.

[0172] A computer implementation method according to any of the preceding paragraphs, further comprising prioritizing the multiple aspects according to the various annotation types in comparison to the annotation ranking schema, using the system.

[0173] The computer implementation method described in any of the preceding paragraphs further includes generating a second identifier based on a second annotation type that ranks lower among the various annotation types compared to the annotation ranking schema, wherein the second content of the second identifier and the content of the identifier consistently describe the same properties of the chemical compound.

[0174] A computer implementation method according to any of the preceding paragraphs, further comprising: updating a library data store containing library identifiers of chemical compounds, including the chemical compound, with the identifier of the chemical compound; and directing a query corresponding to the chemical compound to the library data store, and for the same query, returning a plurality of identifiers, including the identifier generated for the same chemical compound based on the annotation ranking schema.

[0175] A computer implementation method according to any of the preceding paragraphs, further comprising: the system comparing the identifier with a library identifier of the chemical compound in a library data store; and the system determining whether to update the library data store with the identifier based on a first determination that resolves a first comparison between the annotation type corresponding to the identifier and a second annotation type corresponding to the library identifier, wherein the first comparison includes a first subcomparison of the forms of the annotation type and the second annotation type, a second subcomparison of the ranking of the annotation type and the second annotation type compared to the annotation ranking schema, or both.

[0176] The computer implementation method according to any of the preceding paragraphs further includes determining whether to update the library data store with the identifier, based on a second determination that resolves a second comparison of consistency between the first content of the identifier and the second content of the library identifier.

[0177] A computer program product that facilitates the process of generating chemical compound identifiers based on various annotation types, the computer program product comprising a computer-readable storage medium having program instructions embodied thereby, and the program instructions executable by a processor, wherein the program instructions cause the process to cause the processor to identify chemical compound data describing chemical compounds, and cause the processor to generate identifiers from the chemical compound data based on the annotation type of the chemical compound data by comparing it with an annotation ranking schema.

[0178] The computer program product described in any of the preceding paragraphs, wherein the program instructions are further executable by the processor to cause the processor to identify a plurality of aspects of the chemical compound data having various annotation types, including the annotation type, and to cause the processor to select, based on the annotation ranking schema, a first aspect having the annotation type from the plurality of aspects for use as the identifier, on the basis that the annotation type is the highest-ranking annotation type among the various annotation types.

[0179] The computer program product described in any of the preceding paragraphs, wherein the program instructions are further executable by the processor to cause the processor to prioritize the plurality of aspects according to the various annotation types in comparison with the annotation ranking schema.

[0180] The computer program product described in any of the preceding paragraphs, wherein the program instruction is further executable by the processor to cause the processor to generate a second identifier based on a second annotation type that ranks lower among the various annotation types compared to the annotation ranking schema, and the second content of the second identifier and the content of the identifier consistently describe the same properties of the chemical compound.

[0181] The computer program product described in any of the preceding paragraphs, wherein the program instruction is further executable by the processor to cause the processor to update a library data store containing library identifiers of chemical compounds, including the chemical compound, with the identifiers of the chemical compound; cause the processor to direct a query corresponding to the chemical compound to the library data store; and for the same query, cause the processor to return a plurality of identifiers, including the identifiers generated for the same chemical compound based on the annotation ranking schema.

[0182] Description of scientific instrument systems Next, with reference to Figure 13, a detailed description of additional context relating to one or more embodiments of the scientific instrument modules or methods disclosed herein is provided. One or more computing devices implementing any of the scientific instrument modules or methods disclosed herein may be part of a scientific instrument system. Figure 13 shows a block diagram of an exemplary scientific instrument system 1300 that can perform one or more of the scientific instrument methods or other methods disclosed herein according to various embodiments described herein. The scientific instrument modules and methods disclosed herein (e.g., scientific instrument module 100 in Figure 1 and method 200 in Figure 2) may be implemented by one or more of the scientific instrument 1310, user-local computing device 1320, service-local computing device 1330, and / or remote computing device 1340 of the scientific instrument system 1300.

[0183] Any of the scientific instrument 1310, user local computing device 1320, service local computing device 1330, and / or remote computing device 1340 may include any embodiment of the computing device 400 discussed herein with reference to Figure 4, and any of the scientific instrument 1310, user local computing device 1320, service local computing device 1330, and / or remote computing device 1340 may take any suitable one or more of the embodiments of the computing device 400 discussed herein with reference to Figure 4.

[0184] One or more of the scientific instrument 1310, user local computing device 1320, service local computing device 1330, and / or remote computing device 1340 may include a processing device 1302, a storage device 1304, and / or an interface device 1306. The processing device 1302 can take any suitable form, including any form of the processor 402 discussed herein with reference to Figure 4. The processing device 1302 included in different scientific instruments 1310, user local computing device 1320, service local computing device 1330, and / or remote computing device 1340 may take the same or different forms. The storage device 1304 can take any suitable form, including any form of the storage device 404 discussed herein with reference to Figure 4. The storage device 1304 included in different scientific instruments 1310, user local computing device 1320, service local computing device 1330, and / or remote computing device 1340 may take the same or different forms. Interface device 1306 can take any suitable form, including any form of interface device 406 discussed herein with reference to Figure 4. Interface device 1306 included in different scientific instruments 1310, user local computing devices 1320, service local computing devices 1330, and / or remote computing devices 1340 can take the same or different forms.

[0185] The scientific instrument 1310, the user local computing device 1320, the service local computing device 1330, and / or the remote computing device 1340 can communicate with other elements of the scientific instrument system 1300 via a communication path 1308. The communication path 1308 can be communicatively coupled to interface devices 1306 of different elements of the scientific instrument system 1300, as illustrated, and can be a wired or wireless communication path (following any of the communication techniques discussed herein, for example, with reference to interface device 406 of computing device 400 in Figure 4). The particular scientific instrument system 1300 shown in Figure 13 includes communication paths between each pair of scientific instruments 1310, user local computing device 1320, service local computing device 1330, and remote computing device 1340, but this “fully connected” implementation is merely illustrative, and various aspects of the communication path 1308 may be omitted in various embodiments. For example, in one or more embodiments, the service local computing device 1330 can omit the direct communication path 1308 between its interface device 1306 and the interface device 1306 of the scientific instrument 1310, but can instead communicate with the scientific instrument 1310 via the communication path 1308 between the service local computing device 1330 and the user local computing device 1320 and / or the communication path 1308 between the user local computing device 1320 and the scientific instrument 1310.

[0186] Scientific instrument 1310 may include any suitable scientific instrument (e.g., separation or MS instrument, or other instrument that enables material analysis).

[0187] The user-local computing device 1320 can be a computing device local to the user of the scientific instrument 1310 (for example, conforming to any embodiment of the computing device 400 discussed herein). In one or more embodiments, the user-local computing device 1320 may also be, but not necessarily, local to the scientific instrument 1310. For example, a user-local computing device 1320 associated with a user entity's home, office, or other building may be remote from the scientific instrument 1310, but still be able to communicate with the scientific instrument 1310, so that the user entity can use the user-local computing device 1320 to control the scientific instrument 1310 and / or access data from it. In one or more embodiments, the user-local computing device 1320 may be a laptop, smartphone, or tablet device. In one or more embodiments, the user-local computing device 1320 may be a portable computing device. In one or more embodiments, the user-local computing device 1320 may be deployed in the field.

[0188] The service local computing device 1330 may be a computing device local to an entity that services the scientific instrument 1310 (for example, according to any embodiment of the computing device 400 discussed herein). For example, the service local computing device 1330 may be local to the manufacturer of the scientific instrument 1310 or to a third-party service company. In one or more embodiments, the service local computing device 1330 may communicate with the scientific instrument 1310, the user local computing device 1320, and / or the remote computing device 1340 (for example, via a direct communication path 1308 or via a plurality of “indirect” communication paths 1308, as described above) to receive data regarding the operation of the scientific instrument 1310, the user local computing device 1320, and / or the remote computing device 1340 (for example, the results of a self-test by the scientific instrument 1310, calibration coefficients used by the scientific instrument 1310, measurements of sensors associated with the scientific instrument 1310, etc.). In one or more embodiments, the service local computing device 1330 can communicate with the scientific instrument 1310, the user local computing device 1320, and / or the remote computing device 1340 (for example, via a direct communication path 1308, as described above, or via a plurality of “indirect” communication paths 1308) to send data to the scientific instrument 1310, the user local computing device 1320, and / or the remote computing device 1340 (for example, to update programmed instructions (e.g., firmware) in the scientific instrument 1310, to initiate the execution of a test or calibration sequence in the scientific instrument 1310, or to update programmed instructions (e.g., software) in the user local computing device 1320 or the remote computing device 1340).A user entity of the scientific instrument 1310 can use the scientific instrument 1310 or the user local computing device 1320 to communicate with the service local computing device 1330 to report problems with the scientific instrument 1310 or the user local computing device 1320, request a technician visit to improve the operation of the scientific instrument 1310, order consumables or replacement parts associated with the scientific instrument 1310, or perform other purposes.

[0189] The remote computing device 1340 may be a computing device (for example, according to any embodiment of the computing device 400 discussed herein) that is remote from the scientific instrument 1310 and / or from the user local computing device 1320. In one or more embodiments, the remote computing device 1340 may be located in a data center or other large-scale server environment. In one or more embodiments, the remote computing device 1340 may include network-attached storage (for example, as part of the storage device 1304). The remote computing device 1340 can store data generated by the scientific instrument 1310, perform analysis of the data generated by the scientific instrument 1310 (for example, according to programmed instructions), facilitate communication between the user local computing device 1320 and the scientific instrument 1310, and / or facilitate communication between the service local computing device 1330 and the scientific instrument 1310.

[0190] In one or more embodiments, one or more elements of the scientific instrument system 1300 shown in Figure 13 may be omitted. Furthermore, in one or more embodiments, there may be multiple variations of the elements of the scientific instrument system 1300 in Figure 13. For example, the scientific instrument system 1300 may include multiple user-local computing devices 1320 (e.g., different user-local computing devices 1320 associated with different user entities or different locations). In another example, the scientific instrument system 1300 may include multiple scientific instruments 1310, all communicating with a service-local computing device 1330 and / or remote computing device 1340. In such embodiments, the service-local computing device 1330 may monitor these multiple scientific instruments 1310, and the service-local computing device 1330 may "broadcast" updates or other information to the multiple scientific instruments 1310 simultaneously. Different scientific instruments 1310 within the scientific instrument system 1300 may be located close to each other (e.g., in the same room) or far apart from each other (e.g., on different floors of a building, in different buildings, in different cities, etc.). In one or more embodiments, the scientific instrument 1310 may be connected to an Internet of Things (IoT) stack that enables command and control of the scientific instrument 1310 via web-based applications, virtual or augmented reality applications, mobile applications, and / or desktop applications. Any of these applications may be accessible to a user entity operating a user-local computing device 1320 that communicates with the scientific instrument 1310 via an intervening remote computing device 1340. In one or more embodiments, the scientific instrument 1310 may be sold by the manufacturer as part of a local scientific instrument computing unit 1312, together with one or more associated user-local computing devices 1320.

[0191] In one or more embodiments, different scientific instruments 1310 included in the scientific instrument system 1300 may be different types of scientific instruments 1310, for example, one scientific instrument 1310 may be an EDS device, while another scientific instrument 1310 may be an analytical device that analyzes the results of the EDS device. In some such embodiments, a remote computing device 1340 and / or a user-local computing device 1320 may combine data from different types of scientific instruments 1310 included in the scientific instrument system 1300.

[0192] Examples of operating environments Figure 14 is a schematic block diagram of an operating environment 1400 in which the described subjects can interact. The operating environment 1400 comprises one or more remote components 1410. The remote components 1410 can be hardware and / or software (e.g., threads, processes, computing devices). In one or more embodiments, the remote components 1410 can be distributed computing systems and are connected to programs that use local autoscaling components and / or resources of the distributed computing systems via a communication framework 1440. The communication framework 1440 can comprise wired network devices, wireless network devices, mobile devices, wearable devices, wireless access network devices, gateway devices, femtocell devices, servers, and the like.

[0193] The operating environment 1400 also includes one or more local components 1420. These local components 1420 can be hardware and / or software (e.g., threads, processes, computing devices). In one or more embodiments, the local components 1420 may include programs that communicate with / use auto-scaling components and / or remote resources 1410 and 1420, etc., connected to a remotely located distributed computing system via a communication framework 1440.

[0194] One possible communication between remote component(s) 1410 and local component(s) 1420 may take the form of data packets adapted for transmission between two or more computer processes. Another possible communication between remote component(s) 1410 and local component(s) 1420 may take the form of circuit-switched data adapted for transmission between two or more computer processes within a radio time slot. The operating environment 1400 includes a communication framework 1440 that can be used to facilitate communication between remote component(s) 1410 and local component(s) 1420, and may include an air interface, such as an interface to a UMTS network over an LTE network. The remote component(s) 1410 may be operably connected to one or more remote data stores 1450 (e.g., hard drives, solid-state drives, subscriber identification module (SIM) cards, electronic SIMs (eSIMs), device memory, etc.) that can be used to store information on the remote component(s) 1410 side of the communication framework 1440. Similarly, a local component(s) 1420 can be operablely connected to one or more local datastores 1430 that can be used to store information on the local component(s) 1420 side of the communication framework 1440.

[0195] Examples of computing environments To provide additional context to the various embodiments described herein, Figure 15 and the following discussion are intended to provide a brief general description of a suitable computing environment 1500 in which various embodiments of the embodiments described herein can be implemented. Although the embodiments are described above in the general context of computer executable instructions that can be run on one or more computers, those skilled in the art will recognize that the embodiments can also be implemented in combination with other program modules and / or as a combination of hardware and software.

[0196] Generally, a program module includes routines, programs, components, and data structures that perform tasks or implement abstract data types. Furthermore, this method can be implemented in other computer system configurations (including single-processor or multi-processor computer systems, minicomputers, mainframe computers, Internet of Things (IoT) devices, distributed computing systems, as well as personal computers, handheld computing devices, microprocessor-based or programmable consumer electronics), each of which can be operablely coupled to one or more related devices.

[0197] The embodiments described herein can also be practiced in a distributed computing environment in which specific tasks are performed by remote processing devices linked over a communication network. In a distributed computing environment, program modules can be located on both local and remote memory storage devices.

[0198] Computing devices typically include various media, which may include computer-readable storage media, machine-readable storage media, and / or communication media, and these two terms are used separately herein as follows: Computer-readable storage media or machine-readable storage media can be any available storage media accessible to a computer, and include both volatile and non-volatile media, and removable and non-removable media. By example, but not by limitation, computer-readable storage media or machine-readable storage media can be implemented in relation to any method or technique for storing information (e.g., computer-readable instructions or machine-readable instructions, program modules, structured data, or unstructured data).

[0199] Computer-readable storage media include, but are not limited to, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, compact disk read-only memory (CD-ROM), digital versatile discs (DVD), Blu-ray discs (BD) or other optical disc storage devices, magnetic cassettes, magnetic tapes, magnetic disk storage devices or other magnetic storage devices, solid-state drives or other solid-state storage devices, or other tangible and / or non-temporary media that can be used to store desired information. In this regard, the terms “tangible” or “non-temporary” as used herein to apply to storage, memory, or computer-readable media exclude only the transient signals themselves that propagate as modifiers, and do not waive any rights to all standard storage, memory, or computer-readable media that do not merely propagate transient signals themselves.

[0200] A computer-readable recording medium can be accessed by one or more local or remote computing devices, for example, via access requests, queries, or other data acquisition protocols, and various actions can be performed with respect to the information stored on that medium.

[0201] Communication media typically include any information distribution or transmission medium that embodies computer-readable instructions, data structures, program modules, or other structured or unstructured data in data signals, such as modulated data signals, such as carrier waves or other transmission mechanisms. The term “modulated data signal” or “signal” means a signal having one or more of its characteristics that are set or modified to encode information into one or more signals. Communication media include, but are not limited to, wired media (e.g., wired networks or direct wired connections) and wireless media (e.g., acoustic, RF, infrared, and other wireless media).

[0202] Referring further to Figure 15, an exemplary computing environment 1500 that can implement one or more embodiments described herein includes a computer 1502, which includes a processing unit 1504, system memory 1506, and a system bus 1508. The system bus 1508 connects system components (including, but not limited to, system memory 1506) to the processing unit 1504. The processing unit 1504 can be any of a variety of commercially available processors. Dual microprocessors and other multiprocessor architectures can also be used as the processing unit 1504.

[0203] The system bus 1508 can be one of several types of bus structures that can be further interconnected to a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of the various commercially available bus architectures. The system memory 1506 includes ROM 1510 and RAM 1512. The basic input / output system (BIOS) can be stored in non-volatile memory (e.g., ROM, erasable programmable read-only memory (EPROM), EEPROM), and the BIOS includes basic routines that help transfer information between elements within the computer 1502, for example, during startup. RAM 1512 may also include high-speed RAM (e.g., static RAM) for caching data.

[0204] Computer 1502 may further include an internal hard disk drive (HDD) 1514 (e.g., EIDE, SATA) and may include one or more external storage devices 1516 (e.g., a magnetic floppy disk drive (FDD) 1516, a memory stick or flash drive reader, a memory card reader, etc.). Although the internal HDD 1514 is shown to be located within computer 1502, the internal HDD 1514 may also be configured for external use within a suitable chassis (not shown). In addition, although not shown in computing environment 1500, a solid-state drive (SSD) may be used in addition to or instead of the HDD 1514.

[0205] Other internal or external storage may include at least one other storage device 1520 having a storage medium 1522 (e.g., a solid-state storage device, a non-volatile memory device, and / or an optical disc drive that can read from and write to removable media (e.g., CD-ROM discs, DVDs, BDs, etc.)). External storage 1516 can be facilitated by a network virtual machine. The HDD 1514, external storage device 1516, and storage device (e.g., drive) 1520 can be connected to the system bus 1508 by an HDD interface 1524, an external storage interface 1526, and a drive interface 1528, respectively.

[0206] Drives and their associated computer-readable storage media provide non-volatile storage such as data, data structures, and computer-executable instructions. In the case of computer 1502, drives and storage media are capable of storing arbitrary data in an appropriate digital format. While the above description of computer-readable storage media refers to each type of storage device, other types of computer-readable storage media, whether currently existing or to be developed in the future, can also be used in the exemplary operating environment, and furthermore, any such storage media may contain computer-executable instructions for performing the methods described herein.

[0207] Numerous program modules can be stored in the drive and RAM 1512 (including the operating system 1530, one or more application programs 1532, other program modules 1534, and program data 1536). The operating system, applications, modules, and / or data, in whole or in part, can also be cached in RAM 1512. The systems and methods described herein can be implemented using various commercially available operating systems or combinations of operating systems.

[0208] Computer 1502 may optionally include emulation techniques. For example, a hypervisor (not shown) or other intermediary may emulate a hardware environment for operating system 1530, and the emulated hardware may optionally differ from the hardware shown in Figure 15. In such embodiments, operating system 1530 may comprise one VM from a plurality of virtual machines (VMs) hosted on computer 1502. Furthermore, operating system 1530 may provide a runtime environment (e.g., the Java runtime environment or the .NET framework) to application 1532. The runtime environment is a consistent execution environment that enables application 1532 to run on any operating system that includes the runtime environment. Similarly, operating system 1530 may support containers, and application 1532 may take the form of a container, which is a lightweight, standalone executable software package containing, for example, code, runtime, system tools, system libraries, and configuration for the application.

[0209] Furthermore, computer 1502 can enable security modules such as a Trusted Processing Module (TPM). For example, with a TPM, the boot component hashs the next boot component in a timed manner and waits for the result to match a secure value before loading the next boot component. This process can be performed at any layer of computer 1502's code execution stack, for example, at the application run level or the operating system (OS) kernel level, thereby providing security at any level of code execution.

[0210] User entities can input commands and information to the computer 1502 through one or more wired / wireless input devices, such as a keyboard 1538, a touchscreen 1540, and a pointing device, such as a mouse 1542. Other input devices (not shown) may include microphones, infrared (IR) remotes, radio frequency (RF) remotes, or other remotes, joysticks, virtual reality controllers and / or virtual reality headsets, gamepads, stylus pens, image input devices such as cameras, gesture sensor input devices, visual-motion sensor input devices, emotion or face detection devices, and biometric input devices such as fingerprint or iris scanners. These and other input devices are often connected to the processing unit 1504 through an input device interface 1544, which can be coupled to the system bus 1508, but can also be connected through other interfaces such as parallel ports, IEEE 1394 serial ports, game ports, USB ports, IR interfaces, and BLUETOOTH® interfaces.

[0211] Monitor 1546 or other types of display devices can also be connected to the system bus 1508 via an interface such as a video adapter 1548. In addition to the monitor 1546, the computer typically includes other peripheral output devices (not shown), such as speakers and printers.

[0212] Computer 1502 can operate in a network environment by logically connecting to one or more remote computers, such as remote computer 1550, via wired and / or wireless communication. The remote computer 1550 can be a workstation, server computer, router, personal computer, portable computer, microprocessor-based entertainment device, peer device, or other common network node, typically including many or all of the elements described with respect to computer 1502, but for brevity, only the memory / storage device 1552 is shown. The logical connections shown include wired / wireless connections to a local area network (LAN) 1554 and / or larger networks, such as a wide area network (WAN) 1556. Such LAN and WAN networking environments are common in offices and enterprises, facilitating enterprise-scale computer networks such as intranets, all of which can connect to global communication networks such as the Internet.

[0213] When used in a LAN networking environment, computer 1502 can connect to local network 1554 via a wired and / or wireless network interface or adapter 1558. Adapter 1558 can facilitate wired or wireless communication with LAN 1554, and LAN 1554 may also include a wireless access point (AP) placed on it to communicate with adapter 1558 in wireless mode.

[0214] When used in a WAN networking environment, computer 1502 may include a modem 1560 or connect to a communication server on WAN 1556 via other means for establishing communication on WAN 1556, such as the Internet. The modem 1560 may be an internal or external wired or wireless device and may connect to the system bus 1508 via an input device interface 1544. In a network environment, the program module or a portion thereof shown in relation to computer 1502 may be stored in the remote memory / storage device 1552. The network connection shown is an example, and other means for establishing a communication link between computers may also be used.

[0215] When used in either a LAN or WAN networking environment, computer 1502 can access a cloud storage system or other network-based storage system in addition to, or instead of, the external storage device 1516 described above. Generally, the connection between computer 1502 and the cloud storage system can be established via LAN 1554 or WAN 1556, for example, by adapter 1558 or modem 1560, respectively. When computer 1502 is connected to the relevant cloud storage system, the external storage interface 1526 can manage the storage provided by the cloud storage system, similar to other types of external storage, with the help of adapter 1558 and / or modem 1560. For example, the external storage interface 1526 can be configured to provide access to the cloud storage sources as if those sources were physically connected to computer 1502.

[0216] Computer 1502 may be capable of communicating with any wireless device or entity configured to operate within a wireless network (e.g., printers, scanners, desktops, and / or portable computers, portable data assistants, communications satellites, any equipment or location associated with wirelessly discoverable tags (e.g., kiosks, newsstands, store shelves, etc.), and telephones). This may include Wireless Fidelity (Wi-Fi) and Bluetooth® wireless technologies. Thus, the communication may be a defined structure, such as an existing network, or simply ad-hoc communication between at least two devices.

[0217] Additional Information The embodiments described herein may, at any possible level of technical detail of integration, cover one or more systems, methods, apparatus, and / or computer program products. A computer program product may include a computer-readable storage medium (or medium) having computer-readable program instructions for causing a processor to execute aspects of one or more embodiments described herein. The computer-readable storage medium may be a tangible device capable of holding and storing instructions for use by an instruction execution device. The computer-readable storage medium may, for example, be an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a superconducting storage device, and / or any suitable combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media may include portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital multipurpose disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punch cards or grooved raised structures having instructions recorded thereon, and / or any suitable combination thereof. Computer-readable storage media as used herein should not be construed as transient signals themselves, such as radio waves and / or other freely propagating electromagnetic waves, electromagnetic waves propagating in waveguides and / or other transmission media (e.g., optical pulses passing through optical fiber cables), and / or electrical signals transmitted through wires.

[0218] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device and / or to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface within each computing / processing device receives computer-readable program instructions from the network and transfers the computer-readable program instructions for storage in a computer-readable storage medium within each computing / processing device. The computer-readable program instructions for performing the operation of one or more embodiments described herein may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, and / or source code and / or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk and C++, and / or procedural programming languages ​​such as the "C" programming language and / or similar programming languages. Computer-readable program instructions can be executed entirely on a computer, partially on a computer, as a standalone software package, partially on a computer and / or partially on a remote computer, or fully on a remote computer and / or on a server.In the latter scenario, the remote computer can connect to the computer through any type of network, including a local area network (LAN) and / or a wide area network (WAN), and / or the connection can be made to an external computer (for example, via the Internet using an Internet service provider). In one or more embodiments, for example, electronic circuits including programmable logic circuits, field-programmable gate arrays (FPGAs) and / or programmable logic arrays (PLAs) can execute computer-readable program instructions by personalizing the electronic circuits using state information of computer-readable program instructions in order to perform aspects of one or more embodiments described herein.

[0219] Aspects of one or more embodiments described herein are described with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to one or more embodiments described herein. It will be understood that each block in a flowchart and / or block diagram, and combinations of blocks in a flowchart and / or block diagram, can be implemented by computer-readable program instructions. Computer-readable program instructions can be provided to the processor of a general-purpose computer, a dedicated computer, and / or other programmable data processing device to produce a machine, thereby enabling instructions executed via the processor of a computer or other programmable data processing device to create means for implementing the functions / actions specified in one or more blocks of a flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that can instruct a computer, a programmable data processing device, and / or other device to function in a particular way, thereby enabling the computer-readable storage medium storing the instructions to contain a product containing instructions that can implement the aspects of the functions / actions specified in one or more blocks of a flowchart and / or block diagram. Furthermore, computer-readable program instructions can be loaded into a computer, other programmable data processing devices, and / or other devices to generate a computer implementation process by having a series of actions executed on the computer, other programmable devices, and / or other devices, thereby enabling the instructions executed on the computer, other programmable devices, and / or other devices to implement the functions / actions specified in one or more blocks of a flowchart and / or block diagram.

[0220] The flowcharts and block diagrams in the drawings illustrate the architecture, functionality, and / or operation of possible implementations of systems, computer-implementable methods, and / or computer program products according to one or more embodiments described herein. In this regard, each block in a flowchart or block diagram may represent a module, segment, and / or a portion of instructions containing one or more executable instructions for implementing a specified logical function. In one or more alternative embodiments, the functions described within a block may be performed in an order different from the order shown in the drawings. For example, two blocks shown consecutively may be executed substantially simultaneously, and / or blocks may be executed in reverse order depending on the functionality involved. It should also be noted that each block in a block diagram and / or flowchart, and / or any combination of blocks in a block diagram and / or flowchart, may be implemented by a dedicated hardware-based system capable of performing a specified function and / or action, and / or one or more combinations of dedicated hardware and / or computer instructions.

[0221] While the subject matter described herein is presented in the general context of computer executable instructions for computer program products executed on a computer, those skilled in the art will recognize that one or more embodiments described herein can also be implemented at least partially in parallel with one or more other program modules. Generally, a program module includes routines, programs, components, and / or data structures that perform a specific task and / or implement a specific abstract data type. Furthermore, the computer implementation methods described above can be practiced in single-processor computer systems and / or multi-processor computer systems, minicomputing devices, mainframe computers, and other computer system configurations including computers, handheld computing devices (e.g., PDAs, telephones), and / or microprocessor-based or programmable consumer and / or industrial electronic equipment. The embodiments shown can also be practiced in a distributed computing environment in which tasks are performed by remote processing devices linked over a communication network. However, one or more embodiments (if not all) of the one or more embodiments described herein can be practiced in a standalone computer. In a distributed computing environment, program modules can be located in both local and remote memory storage devices.

[0222] As used in this application, the terms “component,” “system,” “platform,” and / or “interface” may refer to and / or include computer-related entities or entities relating to operable machines having one or more specific functionalities. Entities described herein may be hardware, a combination of hardware and software, software, or running software. For example, a component may be, but is not limited to, a process running on a processor, a processor, an object, an executable file, an execution thread, a program, and / or a computer. For example, both an application running on a server and the server itself may be components. One or more components may reside within a process and / or an execution thread, and components may be localized on one computer or distributed across two or more computers. In another example, each component may run from various computer-readable media having various data structures stored therein. Components may communicate via local and / or remote processes, for example, according to signals containing one or more data packets (e.g., data from one component interacting with a local system, another component in a distributed system, and / or other systems via a network such as the Internet). As another example, a component can be a device having specific functionality provided by mechanical parts operated by electrical or electronic circuits, which are operated by software and / or firmware applications run by a processor. In such a case, the processor can be located inside and / or outside the device and can run at least part of the software and / or firmware applications.As yet another example, a component may be a device that provides specific functionality through electronic components without mechanical parts, and the electronic components may include a processor and / or other means for running software and / or firmware that at least partially grants the functionality of the electronic components. In one embodiment, a component may be emulated via a virtual machine, for example, within a cloud computing system.

[0223] In addition, the term “or” is intended to mean an inclusive “or,” not an exclusive “or.” That is, unless otherwise specified or evident from the context, “X uses A or B” is intended to mean all natural inclusive substitutions. That is, “X uses A or B” is satisfied in any of the cases mentioned above, whether X uses A, X uses B, or X uses both A and B. Furthermore, the articles “a” and “an” used herein and in the accompanying drawings should generally be interpreted as meaning “one or more,” unless otherwise specified or evident from the context. Where used herein, the terms “example” and / or “exemplary” are used to mean serving as an example, case, or illustration. To avoid doubt, the subject matter described herein is not limited by such examples. In addition, any aspect or design described herein as “example” and / or “exemplary” is not necessarily construed as being preferable or advantageous to other aspects or designs, nor is it intended to exclude equivalent exemplary structures and techniques known to those skilled in the art.

[0224] As used herein, the term “processor” can refer to substantially any computing processing unit and / or device, including, but not limited to, single-core processors, single processors with software multithreading capability, multi-core processors, multi-core processors with software multithreading capability, multi-core processors with hardware multithreading technology, parallel platforms, and / or parallel platforms with distributed shared memory. Furthermore, a processor can refer to integrated circuits, application-specific integrated circuits (ASICs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs), programmable logic controllers (PLCs), composite programmable logic devices (CPLs), discrete gate or transistor logic, discrete hardware components, and / or any combination thereof designed to perform the functions described herein. Furthermore, a processor can utilize nanoscale architectures, such as molecular-based transistors, switches, and / or gates, to optimize space utilization and / or enhance the performance of associated equipment, but is not limited to these. A processor can be implemented as a combination of computing processing units.

[0225] In this specification, terms such as “store,” “storage,” “datastore,” “data storage,” and “database,” and substantially any other information storage component relating to the operation and functionality of a component, are used to refer to entities embodied in “memory component,” “memory,” or components that contain memory. The memory and / or memory components described herein may be either volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. Non-volatile memory may include, but is not limited to, read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable ROM (EEPROM), flash memory, and / or non-volatile random access memory (RAM) (e.g., ferroelectric RAM (FeRAM)). Volatile memory may include RAM that can function as external cache memory, for example. As examples, not limitations, RAM may be available in many forms, including synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), extended SDRAM (ESDRAM), sync-link DRAM (SLDRAM), direct RAMbus RAM (DRRAM), direct RAMbus dynamic RAM (DRDRAM), and / or RAMbus dynamic RAM (RDRAM). Furthermore, the memory components of the systems and / or computer implementations described herein are intended to include, but are not limited to, these and / or any other suitable types of memory.

[0226] The foregoing includes only examples of systems and computer implementations. Naturally, it is impossible to describe every conceivable combination of components and / or computer implementations for the purpose of illustrating one or more embodiments, but those skilled in the art will recognize that many more combinations and / or rearrangements of one or more embodiments are possible. Furthermore, to the extent that terms such as “includes,” “has,” and “possesses” are used in the detailed description, claims, appendices, and / or drawings, such terms are intended to be as comprehensive as the term “comprising,” since “comprising” is used as a transitional term in the claims.

[0227] In describing various embodiments, expressions such as "one embodiment," "various embodiments," "one or more embodiments," and / or "several embodiments" may be used, each of which may refer to one or more embodiments, whether identical or distinct.

[0228] The descriptions of various embodiments are presented for illustrative purposes only and are not intended to be exhaustive or to limit the embodiments described herein. Many changes and modifications will be apparent to those skilled in the art without departing from the scope and spirit of the embodiments described herein. The terms used herein have been selected to best interpret the principles of the embodiments, their practical applications and / or the technical improvements to the art found in the market, and / or to enable those skilled in the art to understand the embodiments described herein.

Claims

1. It is a system, Memory that stores computer executable components, The system comprises a processor that executes the computer executable component stored in the memory, and the computer executable component is An identification component that identifies chemical compound data describing chemical compounds, A system comprising: a generation component that generates identifiers from chemical compound data based on the annotation type of the chemical compound data, compared with an annotation ranking schema.

2. The identification component identifies multiple aspects of the chemical compound data having various annotation types, including the annotation type. The system according to claim 1, wherein the computer executable component further comprises a selection component that, based on the annotation ranking schema, selects a first aspect having the annotation type from among a plurality of aspects for use as the identifier, based on the fact that the annotation type is the highest-ranking annotation type among the various annotation types.

3. The aforementioned computer executable component is The system according to claim 2, further comprising a prioritization component for prioritizing the plurality of aspects according to the various annotation types, compared to the annotation ranking schema.

4. The generation component further generates a second identifier based on a second annotation type that ranks low among the various annotation types, compared with the annotation ranking schema. The system according to claim 2, wherein the second content of the second identifier and the content of the identifier consistently describe the same properties of the chemical compound.

5. The aforementioned computer executable component is An update component that updates a library data store containing a library identifier for a chemical compound, which includes the aforementioned chemical compound, with the aforementioned identifier for the chemical compound, The system according to claim 1, further comprising: an execution component that directs a query corresponding to the chemical compound to the library data store, and returns, for the same query, a plurality of identifiers including the identifier generated for the same chemical compound based on the annotation ranking schema.

6. The aforementioned computer executable component is A comparison component that compares the identifier with the library identifier of the chemical compound in the library data store, The system according to claim 1, further comprising: an update component that determines whether to update the library data store with the identifier based on a first decision that resolves a first comparison between the annotation type corresponding to the identifier and a second annotation type corresponding to the library identifier.

7. The system according to claim 6, wherein the first comparison includes a first subcomparison of the forms of the annotation type and the second annotation type, a second subcomparison of the rankings of the annotation type and the second annotation type compared to the annotation ranking schema, or both.

8. The system according to claim 6, wherein the update component further determines whether to update the library data store with the identifier, also based on a second determination that resolves a second comparison of the consistency of the first content of the identifier and the second content of the library identifier.

9. A computer implementation method, A system operablely coupled to a processor identifies chemical compound data describing chemical compounds, A computer implementation method comprising: generating identifiers from chemical compound data based on the annotation type of the compound data compared with an annotation ranking schema, using the system described above.

10. The system identifies multiple aspects of the chemical compound data having various annotation types, including the annotation type, The computer implementation method according to claim 9, further comprising the system selecting a first aspect having the annotation type from among the plurality of aspects for use as the identifier, based on the annotation ranking schema, on the basis that the annotation type is the highest-ranking annotation type among the various annotation types.

11. The computer implementation method according to claim 10, further comprising prioritizing the plurality of aspects according to the various annotation types in comparison with the annotation ranking schema using the system.

12. The system further includes generating a second identifier based on a second annotation type that ranks lower among the various annotation types compared to the annotation ranking schema, The computer implementation method according to claim 10, wherein the second content of the second identifier and the content of the identifier consistently describe the same properties of the chemical compound.

13. The system updates the library data store containing the library identifier of the chemical compound, which includes the chemical compound, with the identifier of the chemical compound. The computer implementation method according to claim 9, further comprising: the system directing a query corresponding to the chemical compound to the library data store; and, in response to the same query, returning a plurality of identifiers including the identifier generated for the same chemical compound based on the annotation ranking schema.

14. The system compares the identifier with the library identifier of the chemical compound in the library data store, The system further includes determining whether to update the library data store with the identifier based on a first decision that resolves a first comparison between the annotation type corresponding to the identifier and a second annotation type corresponding to the library identifier, The computer implementation method according to claim 9, wherein the first comparison includes a first subcomparison of the forms of the annotation type and the second annotation type, a second subcomparison of the rankings of the annotation type and the second annotation type compared to the annotation ranking schema, or both.

15. The computer implementation method according to claim 14, further comprising determining whether to update the previous library data store with the identifier, based on a second determination that resolves a second comparison of the consistency of the first content of the identifier and the second content of the library identifier, by the system.

16. A computer program product that facilitates the process of generating chemical compound identifiers based on various annotation types, the computer program product comprising a computer-readable storage medium having program instructions embodied thereby, and the program instructions executable by a processor, the program instructions are transmitted to the processor, The aforementioned processor identifies chemical compound data that describes a chemical compound. A computer program product that uses the aforementioned processor to generate identifiers from the chemical compound data based on the annotation type of the chemical compound data, compared with an annotation ranking schema.

17. The aforementioned program instruction is given to the processor, The processor identifies multiple aspects of the chemical compound data having various annotation types, including the annotation type. The computer program product according to claim 16, wherein the processor is further capable of causing the processor to select a first aspect having the annotation type from among the plurality of aspects for use as the identifier, based on the annotation ranking schema, on the basis that the annotation type is the highest-ranking annotation type among the various annotation types.

18. The aforementioned program instruction is given to the processor, The computer program product according to claim 17, further executable by the processor to cause the processor to prioritize the plurality of aspects according to the various annotation types in comparison with the annotation ranking schema.

19. The aforementioned program instruction is given to the processor, The processor may further execute to generate a second identifier based on a second annotation type that ranks lower among the various annotation types compared to the annotation ranking schema. The computer program product according to claim 17, wherein the second content of the second identifier and the content of the identifier consistently describe the same properties of the chemical compound.

20. The aforementioned program instruction is given to the processor, The processor causes the library data store containing the library identifier of the chemical compound, which includes the chemical compound, to be updated with the identifier of the chemical compound. The computer program product according to claim 16, wherein the processor is further capable of directing queries corresponding to the chemical compound to the library data store, and for the same query, causing the system to return a plurality of identifiers, including the identifier generated for the same chemical compound based on the annotation ranking schema.