Apparatus and method for matching scientific instrument metadata to semantic model

The technique addresses the challenge of converting JSON metadata into a knowledge graph by identifying attributes, loading semantic models, and generating relationships, resulting in a structured and intuitive representation for enhanced data integration and analysis.

JP2025013271APending Publication Date: 2025-01-24THERMO FINNIGAN LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024111152
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-07-11
Filing Date
2024-07-10
Publication Date
2025-01-24

AI Technical Summary

Technical Problem

Converting complex and unstructured JSON metadata from scientific instruments into a knowledge graph is challenging due to the lack of standardized interpretation methods, inherent semantic information, and data quality issues such as errors, duplicates, and missing values, which complicates the integration and analysis of vast amounts of interrelated data.

Method used

A technique that utilizes memory and processing hardware to identify extended attributes in metadata, load semantic models, match properties, generate relationships, and display a knowledge graph, while handling errors and inconsistencies to ensure accurate representation.

Benefits of technology

Facilitates the conversion of complex metadata into a visual and understandable knowledge graph, enhancing data integration, analysis, and interoperability of scientific instruments by providing a structured and intuitive representation of metadata.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025013271000001_ABST
    Figure 2025013271000001_ABST
Patent Text Reader

Abstract

To provide an apparatus and a method for matching scientific instrument metadata to a semantic model.SOLUTION: A scientific instrument support device including memory hardware for storing an instruction and processing hardware for executing the instruction performs, when the instruction is executed, steps of: processing metadata to identify an extended attribute present in the metadata; reading a semantic model based on a medium type annotation in the metadata; querying for matching the extended attribute property with the extended attribute property of the metadata in the semantic model; matching each extended attribute property in the metadata with a data property in a selected semantic model when the extended attribute property is discovered; matching each corresponding data property to a node on an output graph; generating a relationships between the nodes on the output graph based on an object property; and testing a relationship between the nodes, removing an erroneous relationship from the output graph, and transforming a GUI for displaying the output graph.SELECTED DRAWING: Figure 3A
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] Various embodiments relate generally, but not exclusively, to scientific instruments and scientific instrument support equipment, such as data processing and analysis systems for data generated by scientific instruments.

[0002] CROSS-REFERENCE TO RELATED APPLICATIONS This application is a non-provisional application of and claims the benefit of U.S. Provisional Patent Application No. 63 / 513,076, filed July 11, 2023, the entire contents of which are incorporated herein by reference. Summary of the Invention

[0003] Scientific instruments include a complex arrangement of moving components, sensors, input and output ports, energy sources, and consumable components. Running scientific instruments tends to generate vast amounts of data that must be managed, interpreted, and analyzed by various scientific instrument support devices. Because this data tends to be complex and originates from disparate sources (such as different scientific instruments and / or different sensors on each scientific instrument), metadata (such as additional data that describes the scientific instrument data) plays an important role in organizing and understanding this scientific instrument data. For example, metadata can provide a unique identifier for an individual instrument run, making it possible to distinguish different sets of data from different runs. This can be important for tracking and organizing output from various different experiments. Metadata can also provide context regarding the conditions under which the data was collected. This can include information about the experiment setup, instrument settings, and / or the data and time of the run. This context can be beneficial to accurately interpret the data. Metadata can also help trace the history and / or provenance of the data, for example, by tracking how the data was collected, what equipment was used, what software version was used, what protocols were followed, and / or whether any post-collection data processing was performed. This context can assist in quality control and validation of experimental data.

[0004] When data from different scientific instruments and / or different experimental runs need to be integrated, the metadata can provide the necessary context to match or combine the data. Furthermore, the metadata can help make individual data points or groups of data points discoverable and therefore relevant and / or reusable to other researchers. The metadata can also be used to track the quality of the data from individual instruments, such as by tracking the precision, accuracy, and / or calibration of the instruments. This can help users track anomalies in the instruments and / or data generated by the instruments. However, because data sets from scientific instruments are often very complex, the raw metadata is often difficult to understand. Converting the metadata into a knowledge graph can provide various benefits and help users to better understand the metadata. For example, the raw metadata can be generated as raw unformatted text or formatted text, such as in JavaScript Object Notation (JSON) format. However, even when formatted, the metadata tends to be dense and difficult for users to process quickly. By converting metadata into a visual representation in the form of a knowledge graph, users can quickly and intuitively see the visual relationship between the various components present in the metadata, making it much easier to understand the metadata, especially when dealing with complex, interrelated information (such as metadata about scientific instruments and associated experimental runs).

[0005] Knowledge graphs can also show connections between different components of metadata that may not be evident from a traditional textual data view. This can help users integrate and understand links between different data sources, so that users can perform more comprehensive analysis and more effectively integrate and / or fuse data from different sources. Additionally, knowledge graphs can highlight the meaning or semantics behind components of metadata. Presenting metadata as a knowledge graph can help users gain a deeper understanding by contextualizing the metadata and presenting it in a more natural and intuitive way. Knowledge graphs can also scale well to large amounts of metadata and are flexible enough to integrate new types of metadata and / or changes in existing metadata schemas. Knowledge graphs can also support more sophisticated types of analysis, such as inference and prediction, by using the relationships between elements of the graph. This helps users not only understand the current state of the metadata, but also predict future states and infer hidden patterns within the data. Finally, knowledge graphs may be presented in standardized formats and languages, such as the Resource Description Framework (RDF) and the Web Ontology Language (OWL). Hence, transforming metadata into a knowledge graph helps users transfer the information contained in the metadata across different platforms and enhances the interoperability of scientific instruments and scientific instrument support systems.

[0006] However, even with formatted metadata (such as JSON files), there are various technical challenges that exist when converting metadata into a knowledge graph. For example, unlike databases with well-defined schemas, JSON documents can be highly variable and unstructured. This can make it difficult to map JSON metadata into a knowledge graph (as there may not be a standardized way to interpret and convert the metadata). JSON data can also contain complex hierarchies with nested arrays and objects. This complexity is difficult to directly translate into a knowledge graph model, since the knowledge graph model generally assumes binary relationships. Knowledge graphs are also built based on semantic understanding and relationships between data. However, JSON metadata does not inherently convey this semantic information and relationships. In order to map JSON metadata into a knowledge graph, it is necessary to infer and generate this information. Furthermore, JSON metadata may contain errors, duplications, inconsistencies, and / or missing values. These data quality issues complicate the conversion process and, if uncorrected, can reduce the quality of any resulting knowledge graph. What is needed are techniques that can automatically and effectively infer relationships between elements (even in non-standard and low-quality metadata files) in order to effectively and accurately transform metadata into knowledge graphs. By addressing these challenges, such techniques form a powerful tool to help users make sense of the vast amounts of complex and interrelated data generated by various scientific instruments.

[0007] For example, in some embodiments, a scientific instrument support device includes memory hardware configured to store instructions and processing hardware configured to execute the instructions, the instructions including: processing the metadata to identify extended attributes present in the metadata; loading one or more semantic models based on a media type annotation in the metadata; and querying in the loaded one or more semantic models for corresponding extended attribute properties that match extended attribute properties in the metadata. The instructions include: upon finding a corresponding extended attribute property in a selected one of the one or more semantic models, matching each extended attribute property in the metadata with one of one or more corresponding data properties in the selected semantic model, matching each corresponding data property to a node on an output graph, generating relationships between nodes on the output graph based on object properties in the selected semantic model, testing relationships between nodes on the output graph, removing erroneous relationships from the output graph, and transforming a graphical user interface to display the output graph to a user.

[0008] In other features, the instructions include predicting a most likely semantic model from the one or more semantic models in response to no matching extended attribute properties being found in the metadata, and matching each extended attribute property in the metadata with an inferred data property in the most likely semantic model. In other features, predicting the most likely semantic model from the one or more semantic models includes calculating distances between the extended attribute properties in the metadata and the extended attribute properties in each of the one or more semantic models, calculating a sum of matching scores for each of the one or more semantic models based on the calculated distances, and selecting the semantic model with the highest sum of matching scores as the most likely semantic model. (This is the same as the claim, so do this last!!)

[0009] In other features, matching each extended attribute property in the metadata with an inferred data property in the most likely semantic model includes determining whether the extended attribute property in the metadata and the inferred extended attribute property in the most likely semantic model have a matching score above a threshold, and in response to determining that a match between the extended attribute property in the metadata and the inferred extended attribute property in the most likely semantic model is above the threshold, matching the extended attribute property in the metadata with the inferred extended attribute property in the most likely semantic model.

[0010] In other features, matching each extended attribute property in the metadata with one of the corresponding data properties in the selected semantic model includes selecting a data property in the selected semantic model; selecting an extended attribute property from the semantic model based on the selected data property; determining whether a value of the selected extended attribute property is present in the metadata; and, in response to determining that a value of the selected extended attribute property is present in the metadata, adding the selected data property and an associated extended attribute property from the metadata that corresponds to the value of the selected extended attribute property to an array.

[0011] In other features, matching each corresponding data property to a node on the output graph includes selecting a combination of the data property and associated extended attribute property from the array, and generating a node on the output graph that represents the combination of the selected data property and extended attribute property. In other features, generating relationships between nodes on the output graph based on object properties in the selected semantic model includes selecting a first node on the output graph, selecting a domain from the semantic model that corresponds to the selected node, selecting an object property and a range associated with the domain, determining whether a second node exists that corresponds to the selected range, and generating a link on the output graph extending from the first node to the second node based on the selected object property upon determining that the second node exists.

[0012] In other features, generating relationships between nodes on the output graph based on object properties in the semantic model includes generating a second node on the output graph based on a value range in response to determining that the second node does not exist. In other features, testing relationships between nodes on the output graph includes selecting a test node on the output graph, determining whether removing the selected test node leaves any other nodes on the output graph disconnected, and marking the selected test node as false in response to determining that removing the selected test node does not leave any other nodes on the output graph disconnected. In other features, removing the false relationships from the output graph includes removing the test nodes marked as false from the output graph.

[0013] In other features, the instructions include generating data triples based on the extended attribute properties in the metadata and corresponding data properties in the selected semantic model, and generating nodes and links on the output graph based on the data triples. In other features, each data triple includes a subject, a predicate, and an object, where a domain node is generated based on the subject, a range node is generated based on the object, and a link extending from the domain node to the range node is generated based on the predicate.

[0014] In some embodiments, a computer-implemented method for scientific instrument support includes processing metadata to identify extended attributes present in the metadata, loading one or more semantic models based on a media type annotation in the metadata, and querying in the loaded one or more semantic models for corresponding extended attribute properties that match extended attribute properties in the metadata. The method includes, upon finding a corresponding extended attribute property in a selected one of the one or more semantic models, matching each extended attribute property in the metadata with one of one or more corresponding data properties in the selected semantic model, matching each corresponding data property to a node on an output graph, generating relationships between nodes on the output graph based on object properties in the selected semantic model, testing relationships between nodes on the output graph, removing erroneous relationships from the output graph, and transforming a graphical user interface to display the output graph to a user.

[0015] In other features, the method includes predicting a most likely semantic model from the one or more semantic models in response to no matching extended attribute properties being found in the metadata, and matching each extended attribute property in the metadata with an inferred data property in the most likely semantic model. In other features, predicting the most likely semantic model from the one or more semantic models includes calculating distances between the extended attribute properties in the metadata and the extended attribute properties in each of the one or more semantic models, calculating a sum of matching scores for each of the one or more semantic models based on the calculated distances, and selecting the semantic model with the highest sum of matching scores as the most likely semantic model.

[0016] In other features, matching each extended attribute property in the metadata with an inferred data property in the most likely semantic model includes determining whether the extended attribute property in the metadata and the inferred extended attribute property in the most likely semantic model have a matching score above a threshold, and in response to determining that a match between the extended attribute property in the metadata and the inferred extended attribute property in the most likely semantic model is above the threshold, matching the extended attribute property in the metadata with the inferred extended attribute property in the most likely semantic model.

[0017] In other features, matching each extended attribute property in the metadata to one of the corresponding data properties in the selected semantic model includes selecting a data property in the selected semantic model; selecting an extended attribute property from the semantic model based on the selected data property; determining whether a value for the selected extended attribute property is present in the metadata; and, in response to determining that a value for the selected extended attribute property is present in the metadata, adding the selected data property and an associated extended attribute property from the metadata that corresponds to the value of the selected extended attribute property to an array.

[0018] In other features, matching each corresponding data property to a node on the output graph includes selecting a combination of the data property and associated extended attribute property from the array, and generating a node on the output graph that represents the combination of the selected data property and extended attribute property. In other features, generating relationships between nodes on the output graph based on object properties in the selected semantic model includes selecting a first node on the output graph, selecting a domain from the semantic model that corresponds to the selected node, selecting an object property and a range associated with the domain, determining whether a second node corresponding to the selected range exists, and generating a link on the output graph extending from the first node to the second node based on the selected object property upon determining that the second node exists.

[0019] In other features, generating relationships between nodes on the output graph based on object properties in the semantic model includes generating a second node on the output graph based on a value range in response to determining that the second node does not exist. In other features, testing relationships between nodes on the output graph includes selecting a test node on the output graph, determining whether removing the selected test node leaves any other nodes on the output graph disconnected, and marking the selected test node as false in response to determining that removing the selected test node does not leave any other nodes on the output graph disconnected.

[0020] In other features, removing the erroneous relations from the output graph includes removing test nodes marked as erroneous from the output graph. In other features, the method includes generating data triples based on the extended attribute properties in the metadata and corresponding data properties in the selected semantic model, and generating nodes and links on the output graph based on the data triples. In other features, each data triple includes a subject, a predicate, and an object, where a domain node is generated based on the subject, a range node is generated based on the object, and a link extending from the domain node to the range node is generated based on the predicate. In other features, the one or more non-transitory computer-readable media have instructions that, when executed by one or more processing devices of the scientific instrument support apparatus, cause the scientific instrument support apparatus to perform the method.

[0021] In some examples, one or more non-transitory computer-readable media have instructions that, when executed by one or more processors, cause the one or more processors to do the following: process the metadata to identify extended attributes present in the metadata; load one or more semantic models based on a media type annotation in the metadata; query, in the loaded one or more semantic models, for corresponding extended attribute properties that match extended attribute properties in the metadata; upon finding a corresponding extended attribute property in a selected one of the one or more semantic models, match each extended attribute property in the metadata with one of one or more corresponding data properties in the selected semantic model; match each corresponding data property to a node on an output graph; generate relationships between nodes on the output graph based on object properties in the selected semantic model; test relationships between nodes on the output graph; remove erroneous relationships from the output graph; and transform a graphical user interface to display the output graph to a user. [Brief description of the drawings]

[0022] The embodiments will be readily understood by the following detailed description taken in conjunction with the accompanying drawings, in which: To facilitate this description, like reference numerals refer to like structural elements, and the embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings, in which: [Figure 1] FIG. 2 is a block diagram of an exemplary scientific instrument support module for performing support operations, according to various embodiments. [Diagram 2] FIG. 2 is a block diagram illustrating example data objects that may be generated and / or used by logic elements of a scientific instrument support module. [Figure 3A]1 is a flowchart of an example process for automatically processing metadata, such as metadata generated by scientific instruments, to generate a knowledge graph. [Figure 3B] 1 is a flowchart of an example process for automatically processing metadata, such as metadata generated by scientific instruments, to generate a knowledge graph. [Figure 3C] 1 is a flowchart of an example process for automatically processing metadata, such as metadata generated by scientific instruments, to generate a knowledge graph. [Figure 4] 1 is a flowchart of an example process for matching extended attribute properties from metadata with data properties in a semantic model. [Figure 5A] 1 is a flowchart of an example process for matching matched data properties to nodes on an output knowledge graph. [Figure 5B] 1 is a flowchart of an example process for matching matched data properties to nodes on an output knowledge graph. [Figure 6] 1 is a flowchart of an example process for generating relationships between nodes based on object properties. [Figure 7] 1 is a flowchart of an example process for predicting a most likely semantic model. [Figure 8] 1 is a flowchart of an example process for matching extended attribute properties in metadata with corresponding data properties in a selected most probable semantic model. [Figure 9] Here is an example of some metadata, expressed as formatted text in JavaScript object notation: [Figure 10] Here is an example of a portion of a semantic model expressed as formatted text. [Figure 11]1 shows an example of a portion of a semantic model represented as a table. [Figure 12] 1 shows an example of some object properties represented as a table. [Figure 13] 10 shows an example of data triples suitable for generating a knowledge graph, generated from the example metadata of FIG. 9 . [Figure 14] 10 shows a partial knowledge graph generated from the example metadata of FIG. [Figure 15] 10 shows a knowledge graph generated from the example metadata of FIG. 9. [Figure 16] FIG. 1 is a diagram of an example of a graphical user interface that may be used to perform some or all of the assistance methods disclosed herein, according to various embodiments. [Figure 17] FIG. 1 is a block diagram of an example computing device that may perform some or all of the scientific instrument support methods disclosed herein, in accordance with various embodiments. [Figure 18] FIG. 1 is a block diagram of an example scientific instrument support system that may perform some or all of the scientific instrument support methods disclosed herein, in accordance with various embodiments. [Figure 19] 1 is an example of a graphical chart generated from a spectral trace of readings from a Raman spectrometer. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0023] Disclosed herein are scientific instrument support systems, as well as related methods, computing devices, and computer-readable media. For example, in some embodiments, a scientific instrument support apparatus includes memory hardware configured to store instructions and processing hardware configured to execute instructions. The instructions include processing the metadata to identify extended attributes present in the metadata, loading one or more semantic models based on a media type annotation in the metadata, querying in the loaded one or more semantic models for corresponding extended attribute properties that match extended attribute properties in the metadata, matching each extended attribute property in the metadata with one of the corresponding data properties in the selected semantic model upon finding a corresponding extended attribute property in the selected semantic model, matching each corresponding data property to a node on an output graph, generating relationships between nodes on the output graph based on object properties, testing the relationships between the nodes, removing erroneous relationships from the output graph, and transforming a graphical user interface to display the output graph.

[0024] The embodiments of scientific instrument support disclosed herein may achieve improved performance over conventional approaches. For example, the techniques described herein automatically identify attributes and their associated values, even in unformatted or poorly formatted metadata. The techniques described herein also infer and generate semantic relationships between different attributes in the metadata, without the relationships having to be defined in the metadata itself. Furthermore, the techniques described herein automatically convert complex relationships between attributes in the metadata into binary relations (such as subject-predicate-object data triples) suitable for use by a knowledge graph. Finally, the techniques described herein automatically infer relationships from poorly or incorrectly formatted metadata. By providing these improvements, the techniques described herein solve technical problems associated with automatically converting metadata generated by a scientific instrument into a knowledge graph suitable for output to a graphical user interface. Thus, the embodiments disclosed herein provide improvements to scientific instrument technology (e.g., improvements in computer technology supporting such scientific instruments, among others).

[0025] In the following detailed description, reference is made to the accompanying drawings which form a part of this specification, in which like numerals refer to like parts throughout and which show, by way of example, embodiments which may be implemented. Other embodiments may be utilized without departing from the scope of the present disclosure. It is to be understood that structural or logical changes may be made. Thus, the following detailed description is not to be taken in a limiting sense.

[0026] Various operations may be described in sequence as multiple separate actions or operations as is most helpful in understanding the technical subject matter disclosed herein. However, the order of description should not be construed as implying that these operations are necessarily order dependent. In particular, these operations may not be performed in the order presented. The operations described may be performed in a different order than in the described embodiment. Various additional operations may be performed and / or described operations may be omitted in additional embodiments.

[0027] For purposes of this disclosure, the phrases "A and / or B" and "A or B" mean (A), (B), or (A and B). For purposes of this disclosure, the phrases "A, B, and / or C" and "A, B, or C" mean (A), (B), (C), (A and B), (A and C), (B and C), or (A and B and C). Although some elements may be referred to in the singular (e.g., a "processing device"), any suitable element may be represented by multiple instances of that element. And vice versa. For example, a set of operations described as being performed by a processing device may be implemented with different ones of the operations performed by different processing devices.

[0028] This description uses the phrases "an embodiment," "various embodiments," and "several embodiments," each of which may refer to one or more of the same or different embodiments. Additionally, terms such as "comprising," "including," and "having" used with respect to embodiments of the present disclosure are synonymous. When used to describe a range of dimensions, the phrase "between X and Y" refers to a range that includes X and Y. As used herein, an "apparatus" may refer to any individual device, a collection of devices, a portion of a device, or a collection of portions of devices. The drawings are not necessarily drawn to scale.

[0029] FIG. 1 is a block diagram of a scientific instrument support module 1000 for performing support operations, according to various embodiments. The scientific instrument support module 1000 may be implemented by a circuit (e.g., including electrical and / or optical components) such as a programmed computing device. The logic of the scientific instrument support module 1000 may be included in a single computing device or may be distributed across multiple computing devices that communicate with each other, as needed. An example of a computing device that may implement the scientific instrument support module 1000, either alone or in combination, is described herein with reference to the computing device 17000 of FIG. 17, and an example of a system of interconnected computing devices in which the scientific instrument support module 1000 may be implemented across one or more of the computing devices is described herein with reference to the scientific instrument support system 18000 of FIG. 18.

[0030] The scientific instrument assistance module 1000 may include a first logic, which may be referred to herein as instrument logic 1002, a second logic, which may be referred to herein as knowledge graph logic 1004, and a third logic, which may be referred to herein as user interface logic 1006. As used herein, the term "logic" may include an apparatus that performs a set of operations associated with the logic. For example, any of the logic elements included in the assistance module 1000 may be implemented by one or more computing devices programmed with instructions to perform a set of operations associated with one or more processing devices of the computing devices. In certain embodiments, the logic elements may include one or more non-transitory computer-readable media having instructions. The instructions, when executed by one or more processing devices of the one or more computing devices, cause the one or more computing devices to perform the set of associated operations. As used herein, the term "module" may refer to a collection of one or more logic elements that together perform a function associated with the module. Different ones of the logic elements in a module may take the same form or different forms. For example, some logic in a module may be implemented by a programmed general-purpose processing device. Other logic in the module may be implemented by an application-specific integrated circuit (ASIC). In another embodiment, different ones of the logic elements in the module may be associated with different sets of instructions executed by one or more processing devices. A module may not include all of the logic elements illustrated in an associated figure, for example, a module may include a subset of the logic elements illustrated in an associated figure when the module performs a subset of the operations described herein with reference to the module. Additional functionality of the appliance logic 1002, the knowledge graph logic 1004, and / or the user interface logic 1006 are further described herein with reference to Figures 2-15.

[0031] FIG. 2 is a block diagram illustrating exemplary data objects that may be generated and / or used by logic elements of the assistance module 1000. In various implementations, the data store 2002 and / or the data store 2004 are stored on a non-transitory computer-readable storage medium, such as the example storage device 17004 of the computing device 17000. Although the data store 2002 and the data store 2004 are shown as two elements in FIG. 2, they may be stored on a single non-transitory computer-readable storage medium and / or distributed across multiple non-transitory computer-readable storage media. The data store 2002 includes metadata 2006 obtained from the execution of the scientific instrument. In some examples, the instrument logic 1002 generates the metadata 2006 based on the execution of the scientific instrument and stores the generated metadata 2006 in the data store 2002. In some embodiments, the metadata 2006 is stored as a text file. In various implementations, the metadata 2006 is stored as a JSON file. In some embodiments, metadata 2006 includes information such as a text string identifying a media type 2008 and one or more extended attributes. In some implementations, extended attributes may include file system features that allow a user to associate a computer file with metadata. For example, in the context of metadata generated by scientific instruments, extended attributes may refer to metadata that provides additional information about the data files generated by these instruments. These extended attributes may be important to ensure that the data can be properly interpreted, analyzed, and shared. Examples of extended attributes in the context of files generated by scientific instruments include calibration information, instrument settings, environmental conditions, operator information, sample information, units and scales, timestamps, and / or data processing history.

[0032] Examples of calibration information include when the scientific instrument was last calibrated and / or information about the calibration standards used. Examples of instrument settings include data about the settings used to generate the measurement data, such as gain, integration time, and / or any filters used. Examples of environmental conditions include data about temperature, pressure, and / or humidity. Examples of operator information include details about who performed the experiment, handled the sample, and / or handled the scientific instrument. Examples of sample information include data about the sample analyzed, such as its source, preparation method, and / or composition. Examples of units and scales include data about the measurement units and / or scales used by the scientific instrument (linear scale, logarithmic scale, etc.). Examples of timestamps include when the sample was analyzed and / or when the data was processed and / or collected. Examples of data processing history include data about any processing and / or transformations applied to the data files generated by the scientific instrument.

[0033] In some embodiments, one or more extended attributes may include one or more key-value pairs, such as an extended attribute property 2010 (which is the key) and an extended attribute data value 2012 (which is the corresponding value). The key may be a string that represents the name of the attribute. The value may be a string that specifies the value of the attribute. Although only two extended attributes are shown in Figure 2 ([i] extended attribute property 2010 and extended attribute data value 2012, and [ii] extended attribute property 2014 and extended attribute data value 2016), the metadata 2006 may include any number of extended attributes.

[0034] In various implementations, the data store 2004 includes data or annotations, such as the semantic model 2018 and / or the object property library 2038, that are used by the knowledge graph logic 1004 to automatically parse the metadata 2006, extract hidden semantic relationships between extended attributes in the metadata 2006, and generate a knowledge graph based on the metadata 2006. Although only a single semantic model 2018 and a single object property library 2038 data object are shown in FIG. 2, the data store 2004 may include any number of semantic model and object property data objects. Additionally, although the semantic model 2018 and the object property library 2038 are shown as two separate data objects, the semantic model 2018 and the object property library 2038 may be combined into a single data object or data structure (collectively referred to as a semantic model). In various implementations, the semantic model 2018 may include data that the knowledge graph logic 1004 uses to parse the metadata 2006 to generate nodes for the knowledge graph. In some implementations, the object property library 2038 may include data that the knowledge graph logic 1004 uses to link the generated nodes to each other.

[0035] For example, the semantic model 2018 includes a media type 2020 identifier and annotations for one or more extended attribute properties. In various embodiments, the annotation for each extended attribute property includes an identifier for the extended attribute property itself (e.g., extended attribute property 2022), a data property value associated with the extended attribute property (e.g., data property 2024), an entity value (e.g., entity 2026), and an identifying annotation (e.g., identifying annotation 2028). In various implementations, the data property value corresponding to each extended attribute property may include a standard property used to generate the knowledge graph. The entity value corresponding to each extended attribute property may include a type of node used in the knowledge graph. The identifying annotation corresponding to each extended attribute property may indicate a true or false value. Although FIG. 2 illustrates annotations for two extended attribute properties ([i] data property 2024, entity 2026, and identifying annotation 2028 corresponding to extended attribute property 2022, and [ii] data property 2032, entity 2034, and identifying annotation 2036 corresponding to extended attribute property 2030), semantic model 2018 may include any number m of extended attributes and corresponding annotations for the m extended attributes.

[0036] The object property library 2038 may include a media type 2040 identifier and annotations for one or more object properties. In various implementations, the annotations for each object property may include an identifier for the object property itself (e.g., data property 2024), a domain associated with the object property (e.g., domain 2044), and a range associated with the object property (e.g., range 2046). In some embodiments, each object property includes data used to generate links into the knowledge graph, and the domain and range values ​​associated with each object property value are used to determine the endpoints of the object property value. Although domains and ranges for only two object properties ([i] object property 2042 and associated domain 2044 and range 2046, and [ii] object property 2048 and associated domain 2050 and range 2052) are shown in FIG. 2, the object property library 2038 may include any number I of object properties and corresponding domains and ranges.

[0037] 3A-3C are a flowchart of an example process 3000 for automatically processing metadata, such as metadata generated by a scientific instrument, to generate a knowledge graph. At 3002, the knowledge graph logic 1004 reads metadata. For example, the knowledge graph logic 1004 reads metadata 2006 from the data store 2002. At 3004, the knowledge graph logic 1004 initializes an output graph. At 3006, the knowledge graph logic 1004 processes the read metadata 2006 to identify a media type. For example, the knowledge graph logic 1004 parses the metadata 2006 to identify a media type based on the media type 2008. At 3008, the knowledge graph logic 1004 parses the metadata 2006 to identify extended attribute properties present in the metadata 2006. For example, the graphing logic 3008 processes the metadata 2006 to identify each of the n extended attribute properties 2010-2014 present in the metadata 2006. At 3010, the knowledge graph logic 1004 loads a semantic model and object properties corresponding to the media type 2008 indicated in the metadata 2006. For example, the knowledge graph logic 1004 loads the semantic model 2018 in response to a media type 2020 that matches the media type 2008. Conversely, the knowledge graph logic 1004 does not load the semantic model 2018 if the media type 2020 does not match the media type 2008. Similarly, in some embodiments, the knowledge graph logic 1004 loads the object property library 2038 in response to the media type 2040 matching the media type 2008 and does not load the object property library 2038 in response to the media type 2040 not matching the media type 2008.

[0038] At 3012, the knowledge graph logic 1004 queries the loaded semantic model and / or object properties for extended attribute properties that match extended properties present in the metadata 2006. For example, if the semantic model 2018 is loaded, the knowledge graph logic 1004 determines whether any of the extended attribute properties 2022-2030 of the semantic model 2018 match any of the extended attribute properties 2010-2014 of the metadata 2006. Upon finding matching extended attribute properties between the semantic model 2018 and the metadata 2006 ("Yes" at decision block 3014), the knowledge graph logic 1004 selects at 3016 a semantic model that has matching extended attribute properties. At 3018, the knowledge graph logic 1004 matches each extended attribute property from the metadata 3018 with a data property in the selected semantic model 2018. For example, in response to an extended attribute property 2010 from the metadata 2006 being matched with an extended attribute property 2022 in the semantic model 2018, the knowledge graph logic 1004 matches the extended attribute property 2010 with a data property 2024 (the data property that corresponds to the matched extended attribute property from the semantic model). Additional details associated with matching extended attribute properties from the metadata with data properties in a selected semantic model are described further herein with reference to FIG.

[0039] At 3020, the knowledge graph logic 1004 matches the matched data properties to nodes on the output graph. For example, the knowledge graph logic 1004 generates data triples based on each of the matched data properties and plots nodes on the knowledge graph based on the data triples. Additional details associated with matching the matched data properties to nodes on the output graph are further described herein with reference to FIG. 5. At 3022, the knowledge graph logic 1004 generates relationships between nodes of the knowledge graph based on object properties, such as from the object property library 2038. In various implementations, the relationships may include object properties from the object property library 2038 plotted as links between nodes on the knowledge graph. In various implementations, the domain of the object property indicates the node where the object property begins, and the range of the object property indicates the node where the object property ends. Additional details associated with generating relationships between nodes based on object properties are further described herein with reference to FIG. 6.

[0040] At 3024, the knowledge graph logic 1004 tests the relationships between the nodes and removes erroneous relationships from the knowledge graph, if appropriate. For example, the knowledge graph logic 1004 selects each node on the knowledge graph that does not match an extended attribute from the metadata 2006. The knowledge graph logic 1004 tests whether removing each node leaves any other nodes in the knowledge graph disconnected. Upon determining that removing the node does not leave any other nodes disconnected, the knowledge graph logic 1004 removes the node. For example, the knowledge graph logic 1004 removes all data triples associated with the node. At 3026, the knowledge graph logic 1004 creates standard properties that mirror the data properties. For example, the knowledge graph logic 1004 selects each data triple in the output graph that was generated using the data properties. The knowledge graph logic 1004 checks whether a standard property annotation is linked to the data property. In response to determining that the standard property annotations are linked, the knowledge graph logic 1004 generates new data triples in the output graph that have the same domain and range as the original data triples, but with the standard properties instead of the data properties. At 3028, the knowledge graph logic 1004 and / or the user interface logic 1006 output the knowledge graph to a graphical user interface.

[0041] In response to no matching extended attribute properties being found between the semantic model 2018 and the metadata 2006 ("No" at decision block 3014), the knowledge graph logic 1004 determines whether fuzzy matching is enabled. In various implementations, fuzzy matching is a process of finding nearly equal strings. In some examples, fuzzy matching can be performed by machine learning. In response to the knowledge graph logic 1004 determining that fuzzy matching is not enabled ("No" at decision block 3030), the knowledge graph logic 1004 and / or the user interface logic 1006 return an error message to the graphical user interface (e.g., indicating that a matching semantic model cannot be found for the loaded metadata). In response to the knowledge graph logic 1004 determining that fuzzy matching is enabled ("Yes" at decision block 3030), in 3034, the knowledge graph logic 1004 predicts the most likely semantic model and selects the semantic model. Additional details associated with predicting the most likely semantic model are described further herein with reference to Figure 7. At 3036, the knowledge graph logic 1004 matches each extended attribute property in the metadata 2006 with a corresponding data property in the selected semantic model. After matching each extended attribute property with a corresponding data property in the selected semantic model, the knowledge graph logic 1004 aligns the matched data properties to nodes on the output graph at 3020.

[0042] FIG. 4 is a flow chart of an example process 4000 for matching extended attribute properties from metadata with data properties in a semantic model. At 4002, the knowledge graph logic 1004 selects an initial data property from a selected semantic model. At 4004, the knowledge graph logic 1004 selects an extended attribute property from the semantic model associated with the selected data property. For example, if the data property 2024 is selected at 4002, then the corresponding extended attribute property 2022 is selected at 4004. At 4006, the knowledge graph logic 1004 checks whether a value for the selected extended attribute property exists in the metadata. For example, if the extended attribute property 2022 is selected at 4004, then the knowledge graph logic 1004 checks whether any of the extended attribute properties 2010-2014 in the metadata 2006 matches the extended attribute property 2022. In response to determining that the extended attribute properties from the semantic model are present in the metadata ("Yes" at decision block 4008), the knowledge graph logic 1004 adds the selected data property and the extended attribute properties to the array. For example, the knowledge graph logic 1004 adds the data property 2024 and the extended attribute property 2022 to the array.

[0043] In decision block 4014, the knowledge graph logic 1004 determines whether another unprocessed data property exists in the selected semantic model. In response to determining that no extended attribute property from the semantic model exists in the metadata ("No" at decision block 4008), the knowledge graph logic 1004 logs a warning message in 4012 and proceeds to determine whether another unprocessed data property exists in the selected semantic model. In various implementations, the error message is displayed on a graphical user interface. In response to determining that another unprocessed data property exists in the selected semantic model ("Yes" at decision block 4014), the knowledge graph logic 1004 selects the next unprocessed data property from the selected semantic model in 4016 and selects the extended attribute property associated with the selected data property in 4004. Upon determining that no other unprocessed data properties exist in the selected semantic model ("No" at decision block 4014), the knowledge graph logic 1004 matches 3020 the matched data properties to nodes on the output graph.

[0044] 5A and 5B are a flowchart of an example process 5000 for matching matched data properties to nodes on an output knowledge graph. At 5002, the knowledge graph logic 1004 selects an initial combination of a data property and its associated extended attribute property from an array (such as the array generated at 4010). At 5004, the knowledge graph logic 1004 selects an entity associated with the data property from a semantic model. For example, if the selected combination of data property and extended attribute property includes a data property 2024 and an extended attribute property 2022, the knowledge graph logic 1004 selects an entity 2026 from the semantic model 2018. At 5006, the knowledge graph logic 1004 checks whether an identifying annotation is linked to the selected entity. For example, if the entity 2026 is selected at 5004, the knowledge graph logic 1004 checks whether an identifying annotation 2028 has a value of "TRUE". The identifying annotation 2028 may be considered to be linked to the entity 2026 in response to its value being "TRUE". Conversely, the identifying annotation 2028 may be considered not to be linked to the entity 2026 in response to its value being "FALSE". In response to the identifying annotation being linked to the selected entity ("YES" at decision block 5010), the knowledge graph logic 1004 generates a node in the output knowledge graph based on the selected entity at 5010 and determines whether another unprocessed combination of data properties and extended attribute properties exists in the array (at decision block 5012). In response to the identifying annotation not being linked to the selected entity ("NO" at decision block 5008), the knowledge graph logic 1004 determines whether another unprocessed combination of data properties and extended attribute properties exists in the array (at decision block 5012).

[0045] In response to determining that another unprocessed combination of data property and extended attribute property exists in the array ("Yes" at decision block 5012), the knowledge graph logic 1004 selects the next combination of data property and associated extended attribute property from the array at 5014 and selects an entity associated with the data property from the semantic model at 5004. In response to determining that another unprocessed combination of data property and extended attribute property does not exist in the array ("No" at decision block 5012), the knowledge graph logic 1004 selects the first combination of data property and associated extended attribute from the array that does not have a linked identifying annotation at 5016. In 5018, the knowledge graph logic 1004 checks whether the entity associated with the selected combination is already associated with a node in the knowledge graph. In response to determining that the entity is already identified in the node ("Yes" at decision block 5020), the knowledge graph logic 1004 links the entity to the identified node in 5022. In decision block 5024, the knowledge graph logic 1004 checks whether another combination of data properties and associated extended attribute properties not annotated for linked identification exists in the array. In response to determining that the entity is not yet identified in the node ("No" at decision block 5020), the knowledge graph logic 1004 generates a node in the output graph based on the entity in 5026 and determines in decision block 5024 whether another combination of data properties and associated extended attribute properties not annotated for linked identification exists in the array.

[0046] In response to determining that another combination of data properties and associated extended attribute properties without a linked identifying annotation exists in the array ("Yes" at decision block 5024), the knowledge graph logic 1004 selects 5028 a next combination of data properties and associated extended attributes without a linked identifying annotation and checks 5018 whether an entity associated with the selected combination is already identified in the node. In response to determining that another combination of data properties and associated extended attribute properties without a linked identifying annotation does not exist in the array ("No" at decision block 5024), the knowledge graph logic 1004 generates 3022 relationships between nodes based on object properties.

[0047] 6 is a flow chart of an example process 6000 for generating relationships between nodes based on object properties. At 6002, the knowledge graph logic 1004 selects an initial node of the knowledge graph. At 6004, the knowledge graph logic 1004 selects a domain from the object property corresponding to the selected node. At 6006, the knowledge graph logic 1004 selects an object property and a range associated with the selected domain. For example, if the domain 2044 is selected at 6004, then the object property 2042 and the range 2046 are selected at 6006. At 6008, the knowledge graph logic 1004 checks whether a secondary node exists in the knowledge graph that corresponds to the range selected at 6006. Upon determining that a secondary node exists ("Yes" at decision block 6010), the knowledge graph logic 1004 links the selected node to the identified secondary node at 6012 according to the selected object property. For example, the selected node may be an origin or a domain. The identified secondary node may be an end or a range. The object property may link the domain to the range. In 6014, the knowledge graph logic 1004 determines whether all nodes in the knowledge graph are linked. In response to determining that no secondary nodes exist ("No" at 6010), the knowledge graph logic 1004 generates a new node on the output graph in 6016 according to the selected range and determines in 6014 whether all nodes in the knowledge graph are linked. In response to determining that all nodes are not linked ("No" at decision block 6014), the knowledge graph logic 1004 selects the next node in 6018 and selects the domain from the object property corresponding to the selected node in 6004.Upon determining that all nodes are linked ("Yes" at decision block 6014), the knowledge graph logic 1004 tests 3024 the relationships between the nodes and removes erroneous relationships from the knowledge graph.

[0048] FIG. 7 is a flow chart of an example process 7000 for predicting a most likely semantic model. At 7002, the knowledge graph logic 1004 selects an initial extended attribute property from the metadata. At 7004, the graphing logic 7004 calculates the Levenshtein distance between the selected extended attribute property from the metadata and each extended attribute property in each semantic model. The Levenshtein distance is a string metric for measuring the difference between two strings or sequences of text. The Levenshtein distance may refer to the number of single character edits (such as insertions, deletions, or substitutions) required to change a first string to a second string (or vice versa). In some implementations, if the first string has length i and the second string has length j, the Levenshtein distance may be calculated by first initializing an i×j matrix. The i×j matrix is ​​populated iteratively. For each cell, the deletion cost, insertion cost, and substitution cost may be calculated. The deletion cost may be calculated as the value of the cell to the left of the current cell plus one. The insertion cost may be calculated as the value of the cell above the current cell plus one. The replacement cost may be calculated as (i) the value of the cell diagonally to the left plus one if it is not equal to the current cell, or (ii) the value of the cell diagonally to the left if it is equal to the current cell. The minimum of the deletion, insertion, and replacement costs is set as the value of the current cell. The last value of the i×j matrix (the value in the bottom right corner) is the Levenshtein distance.

[0049] In 7006, the knowledge graph logic 1004 stores the extended attribute property from the semantic model with the largest Levenshtein distance to the matrix. In 7008, the knowledge graph logic 1004 determines whether another extended attribute property is present in the metadata. In response to determining that another extended attribute property is present in the metadata ("Yes" at decision block 7008), the knowledge graph logic 1004 selects a next extended attribute property in 7014 and calculates the Levenshtein distance between the selected extended attribute property from the metadata and each extended attribute property in each semantic model in 7004. In response to determining that another extended attribute is not present in the metadata ("No" at decision block 7008), the knowledge graph logic 1004 calculates the sum of the matching scores for the extended attribute property (from the metadata) and the extended attribute property (in the matrix) (for each semantic model matched by any extended attribute property from the metadata) in 7012. At 7014, the knowledge graph logic 1004 selects the semantic model with the highest sum of matching scores as the most likely semantic model.

[0050] 8 is a flow chart of an example illustrative process 8000 for matching extended attribute properties in metadata with corresponding data properties in a selected most likely semantic model. After the knowledge graph logic 1004 selects the semantic model with the highest sum of matching scores as the most likely semantic model at 7014, the knowledge graph logic 1004 loads each extended attribute property present in the selected semantic model into a first array at 8002. At 8004, the knowledge graph logic 1004 orders the first array (e.g., by referencing a matrix) such that the loaded extended attribute properties are in descending order according to their matching scores. At 8006, the knowledge graph logic 1004 selects the first extended attribute property in the ordered first array. At 8008, the knowledge graph logic 1004 determines whether the highest matching score from the matrix calculated at 7006 exceeds a threshold. In response to determining that the maximum matching score exceeds a first threshold at 7006, the knowledge graph logic 1004 (i) selects an extended attribute property [from the semantic model] from the matrix, (ii) removes the selected extended attribute value [from the semantic model] from the first array, and (iii) saves the extended attribute property [from the metadata] and the extended attribute property [from the semantic model] in a second array as matched properties. In response to determining that another extended attribute property exists in the first array ("Yes" at decision block 8012), the knowledge graph logic 1004 selects a next extended attribute property from the first ordered array at 8014 and determines in 8008 whether the maximum matching score from the matrix exceeds a threshold.

[0051] FIG. 9 shows an example of a portion of metadata represented as text formatted in JavaScript Object Notation (JSON). In the example of FIG. 9, “mediaType”:“application / raman-spc” indicates that the media type is “application / raman-spc”. “sampleId”, “measurementId”, “testTime”, and “deviceSn” are extended attribute properties, and “20190202_041854”, “20190202_041854”, “2019-02-02T04:18:54Z”, and “RAMAN1” are extended attribute properties corresponding to the respective extended attribute properties.

[0052] FIG. 10 illustrates an example of a portion of a semantic model represented as formatted text. FIG. 11 illustrates an example of a portion of a semantic model represented as a table. FIG. 12 illustrates an example of a portion of object properties represented as a table. FIG. 13 illustrates an example of data triples suitable for generating a knowledge graph generated from the example metadata of FIG. 9. FIG. 14 illustrates a partial knowledge graph 14000 generated from the example metadata of FIG. 9. FIG. 15 illustrates a knowledge graph 15000 generated from the example metadata of FIG. 9. As described above with reference to process 3000 and FIGS. 3A-3C, knowledge graph logic 1004 parses the example metadata of FIG. 9 to determine a suitable semantic model (e.g., as represented in FIG. 11) and suitable object properties (e.g., as represented in FIG. 12). Knowledge graph logic 1004 matches each extended attribute property from the metadata with a data property in the selected semantic model and aligns the matched data properties to a node on the knowledge graph. For example, “sampleId”, “measurementId”, and “deviceSn” from the metadata (FIG. 9) are matched with data properties in the semantic model (FIG. 11), a data triple is generated for each matched data property, and nodes 14002-14006 are generated based on the data triples. Nodes 14002-14006 are labeled with the respective extended attribute data values ​​for each matched extended attribute property. For example, since the extended attribute property “sampleId” from the metadata matches the extended attribute property sampleId from the semantic model, a corresponding entity poc:sampleId is generated as node 14002 and labeled with the corresponding extended attribute data value “20190202_041854”.Similarly, a corresponding entity poc:Test is generated as node 14004 and labeled with the corresponding extended attribute data value “20190202_041854” from the metadata, as the extended attribute property “measurementId” matches with the extended attribute property measurementId from the semantic model. Finally, a corresponding entity poc:RamanSpec is generated as node 14006 and labeled with the corresponding extended attribute data value “RAMAN1” from the metadata, as the extended attribute property “deviceSn” matches with the extended attribute property deviceSn from the metadata.

[0053] The knowledge graph logic 1004 then selects the first node 14002 from the knowledge graph 14000. The knowledge graph logic 1004 selects the corresponding domain from the object properties (FIG. 12). If the range associated with the domain already exists as a node on the knowledge graph, the knowledge graph logic 1004 links the domain and the existing range with an object property. If the range does not already exist as a node on the knowledge graph, the knowledge graph logic 1004 adds the range as a node and links the domain and the range with an object property. For example, since the range poc:SamplingPoint does not yet exist as a node on the knowledge graph 14000, the knowledge graph logic 1004 adds poc:SamplingPoint as node 15002 on the knowledge graph 15000, and links the domain poc:Sample (node ​​14002) and the range poc:SamplingPoint (node ​​15002) with a link 15004 from the domain node 14002 to the range node 15002 using the object property poc:sampledFrom. Since the range poc:Test already exists on the knowledge graph 14000 as node 14004, the knowledge graph logic 1004 links the domain poc:Sample (node ​​14002) and the range poc:Test (node ​​14004) as a link 15006 from the domain node 14002 to the range node 14004 with the object property poc:testedIn. Similarly, since the range poc:RamanSpectrometer already exists on the knowledge graph 14000 as --node 14006, the knowledge graph logic 1004 links the domain poc:Test (node ​​14004) and the range poc:RamanSpectrometer (node ​​14006) as a link 15008 from the domain node 14004 to the range node 14006 with the object property poc:executedOn.

[0054] In some examples, the knowledge graph logic 1004 first generates data triples (such as the data triples shown in FIG. 13) and then generates a knowledge graph (such as the knowledge graph 15000 shown in FIG. 15). As mentioned above, the data triples can be expressed in a subject-predicate-object format. Thus, each data triple can include a subject (which is the entity the statement is directed to), a predicate (which represents a relationship or property connecting the subject and object), and an object (which is another entity with which the subject is related or associated via the predicate). In some examples, the subject can be an entity or a node. The predicate can be an object property or a link. The object can be an entity or a node. In various implementations, the subject can form the domain of the statement, the object can form the range, and the predicate can form the link extending from the domain to the range.

[0055] 13, the expression "tfdata:Sample%20for%2020190202_041854 a poc:Sample" represents a subject and is shown as node 14002 on the knowledge graph 15000. The nested expression "poc:testedIn tfdata:Test%20of%2020190202_041854" forms a pair of an associated predicate (poc:testedIn, link 15006) and an object (tfdata:Test%20of%2020190202_041854, node 14004). Based on this representation, the knowledge graph logic 1004 generates node 14002 based on the subject, node 14004 based on the object, and link 15006 from node 14002 to node 14004 based on the predicate. Similarly, the knowledge graph logic 1004 generates node 15002 based on the object "tfdata:SAMPLING-POINT-1" and link 15004 extending from node 14002 to node 15002 based on the predicate "poc:sampledFrom". Similarly, the knowledge graph logic 1004 generates node 14006 based on the object "tfdata:RAMAN1" and link 15008 based on the predicate "poc:executedOn". The knowledge graph logic 1004 links the subject node 14004 (tfdata:Test%20of%2020190202_041854 a poc:Test) and the object node 14006 with a predicate link 15008.

[0056] The scientific instrument assistance methods disclosed herein may include interactions with a human user (e.g., via a user local computing device 18020, described herein with reference to FIG. 18 ). These interactions may include providing information to the user (e.g., information regarding the operation of a scientific instrument such as the scientific instrument 18010 of FIG. 18 , information regarding a sample being analyzed or other tests or measurements performed by the scientific instrument, information obtained from a local or remote database, or other information), or providing options for the user to enter commands (e.g., to control the operation of a scientific instrument such as the scientific instrument 18010 of FIG. 18 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 occur through a graphical user interface (GUI) including a visual display on a display device (e.g., display device 17010, described herein with reference to FIG. 17) that provides output to the user and / or prompts the user to provide input (e.g., via one or more input devices, such as a keyboard, mouse, trackpad, or touch screen, included in other I / O devices 17012, described herein with reference to FIG. 17). The scientific instrument support system disclosed herein may include any suitable GUI for interaction with a user.

[0057] 16 illustrates an exemplary GUI 16000 that may be used in performing some or all of the assistance methods disclosed herein, according to various embodiments. As described above, the GUI 16000 may be provided on a display device (e.g., display device 17010, described herein with reference to FIG. 17) of a computing device (e.g., computing device 17000, described herein with reference to FIG. 17) of a scientific instrument assistance system (e.g., scientific instrument assistance system 18000, described herein with reference to FIG. 18). A user may interact with the GUI 16000 using any suitable input device (e.g., any of the input devices included in other I / O devices 17012, described herein with reference to FIG. 17) and input technique (e.g., cursor movement, motion capture, face recognition, gesture detection, voice recognition, button activation, etc.).

[0058] The GUI 16000 may include a data display area 16002, a data analysis area 16004, a scientific instrument control area 16006, and a settings area 16008. The particular number and arrangement of areas illustrated in FIG. 16 is merely illustrative, and the GUI 16000 may include any number and arrangement of areas, including any desired characteristics. The data display area 16002 may display data generated by a scientific instrument (e.g., a scientific instrument 18010, described herein with reference to FIG. 18). For example, the scientific instrument 18010 may include one or more spectrometers, such as one or more Raman spectrometers. The one or more Raman spectrometers may generate a spectral trace of readings (x,y) that may be visualized in a graphical chart. FIG. 19 is an example of a graphical chart generated from a spectral trace of readings from a Raman spectrometer. Metadata for the spectral trace readings generated by the Raman spectrometer may include the date and / or time the sample was taken, the source from which the sample was taken (e.g., sampling location), the serial number of the instrument making the measurement, an identifier associated with the instrument operator, an identifier associated with the project, and other suitable metadata. In various implementations, a graphical chart generated from the data generated by the scientific instrument 18010, such as the chart shown in FIG. 19, is displayed in the data display area 16002. In various implementations, the data display area 16002 can display a knowledge graph (such as knowledge graph 14000 and / or knowledge graph 15000) generated by the knowledge graph logic 1004 and / or the user interface logic 1006. In various implementations, the data display area 16002 displays any error messages or logs generated by the knowledge graph logic 1004.

[0059] The data analysis area 16004 can display the results of a data analysis (e.g., the results of analyzing the data illustrated in the data display area 16002 and / or other data). In some embodiments, the data display area 16002 and the data analysis area 16004 can be combined in the GUI 16000 (e.g., to include data output from the scientific instruments and some analysis of the data in a common graph or area). The scientific instrument control area 16006 can include options that allow a user to control the scientific instruments (e.g., the scientific instruments 18010 described herein with reference to FIG. 18 ). The settings area 16008 can include options that allow a user to control the features and functions of the GUI 16000 (and / or other GUIs) and / or perform common computing operations related to the data display area 16002 and the data analysis area 16004 (e.g., saving the data on a storage device, such as the storage device 17004 described herein with reference to FIG. 17 , sending the data to another user, labeling the data, etc.).

[0060] As described above, the scientific instrument support module 1000 may be implemented by one or more computing devices. FIG. 17 is a block diagram of a computing device 17000 that may perform some or all of the scientific instrument support methods disclosed herein, according to various embodiments. In some embodiments, the scientific instrument support module 1000 may be implemented by a single computing device 17000 or by multiple computing devices 17000. Furthermore, as described below, the computing device 17000 (or multiple computing devices 17000) implementing the scientific instrument support module 1000 may be part of one or more of the scientific instrument 18010, user local computing device 18020, service local computing device 18030, or remote computing device 18040 of FIG. 18.

[0061] Although the computing device 17000 of FIG. 17 is illustrated as having several components, any one or more of these components may be omitted or duplicated as appropriate for the application and setting. In some embodiments, some or all of the components included in the computing device 17000 may be mounted on one or more motherboards and encased in a housing (e.g., comprising plastic, metal, and / or other materials). In some embodiments, some of these components may be fabricated on a single system-on-a-chip (SoC) (e.g., a SoC may include one or more processing devices 17002 and one or more storage devices 17004). Additionally, in various embodiments, computing device 17000 may not include one or more of the components illustrated in FIG. 17, but may include interface circuitry (not shown) for coupling to one or more components using any suitable interface (e.g., a Universal Serial Bus (USB) interface, a High-Definition Multimedia Interface (HDMI) interface, a Controller Area Network (CAN) interface, a Serial Peripheral Interface (SPI) interface, an Ethernet interface, a wireless interface, or any other suitable interface). For example, computing device 17000 may not include display device 17010, but may include display device interface circuitry (e.g., connectors and driver circuits) to which display device 17010 may be coupled.

[0062] Computing device 17000 may include processing device 17002 (e.g., one or more processing devices). As used herein, the term "processing device" may refer to any device or portion of a device that processes electronic data from registers and / or memory and converts the electronic data into other electronic data that may be stored in registers and / or memory. Processing device 17002 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.

[0063] The computing device 17000 may include a storage device 17004 (e.g., one or more storage devices). The storage device 17004 may include one or more memory devices, such as a random access memory (RAM) (e.g., a static RAM (SRAM) device, a magnetic RAM (MRAM) device, a dynamic RAM (DRAM) device, a resistive RAM (RRAM) device, or a conductive-bridging RAM (CBRAM) device), a hard drive-based memory device, a solid-state memory device, a network drive, a cloud drive, or any combination of memory devices. In some embodiments, the storage device 17004 may include a memory that shares a die with the processing device 17002. In such embodiments, the memory may be used as a cache memory. For example, it may include an embedded dynamic random access memory (eDRAM) or a spin transfer torque magnetic random access memory (STT-MRAM). In some embodiments, storage device 17004 may include a non-transitory computer-readable medium having instructions that, when executed by one or more processing devices (e.g., processing device 17002), cause computing device 17000 to perform any suitable one or portions of the methods disclosed herein.

[0064] The computing device 17000 may include an interface device 17006 (e.g., one or more interface devices 17006). The interface device 17006 may include one or more communication chips, connectors, and / or other hardware and software to manage communications between the computing device 17000 and other computing devices. For example, the interface device 17006 may include circuitry to manage wireless communications to transfer data to and from the computing device 17000. The term "wireless" and its derivatives may be used to describe circuits, devices, systems, methods, techniques, communication channels, etc. that may communicate data through the use of modulated electromagnetic radiation over a non-solid medium. This term does not imply that the associated device does not include any wiring, although in some embodiments it may not. The circuitry included in the interface device 17006 for managing wireless communications may implement any of a number of wireless standards or protocols, including, but not limited to, Wi-Fi (registered trademark) (IEEE 802.11 system), Institute for Electrical and Electronic Engineers (IEEE) standards including the IEEE 802.16 standard (e.g., the IEEE 802.16-2005 amendment), the Long-Term Evolution (LTE) project with any amendments, updates, and / or revisions (e.g., the Advanced LTE project, the Ultra Mobile Broadband (UMB) project (also referred to as "3GPP (registered trademark) 2"), etc.).In some embodiments, the circuitry included in the interface device 17006 for managing wireless communications may operate in accordance with a Global System for Mobile (GSM), General Packet Radio Service (GPRS), Universal Mobile Telecommunications System (UMTS), High Speed ​​Packet Access (HSPA), Evolved HSPA (E-HSPA), or LTE network. In some embodiments, the circuitry included in the interface device 17006 for managing wireless communications may operate in accordance with an Enhanced Data for GSM Evolution (EDGE), GSM EDGE Radio Access Network (GERAN), Universal Terrestrial Radio Access Network (UTRAN), or Evolved UTRAN (E-UTRAN). In some embodiments, the circuitry included in the interface device 17006 for managing wireless communications may operate in accordance with Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Digital Enhanced Cordless Telecommunications (DECT), Evolution-Data Optimized (EV-DO), and derivatives thereof, as well as any other wireless protocols designated as 3G, 4G, 5G, and beyond. In some embodiments, the interface device 17006 may include one or more antennas (e.g., one or more antenna arrays) for receiving and / or transmitting wireless communications.

[0065] In some embodiments, the interface device 17006 may include circuitry for managing wired communications, such as electrical, optical, or any other suitable communications protocol. For example, the interface device 17006 may include circuitry supporting communications according to Ethernet technology. In some embodiments, the interface device 17006 may support both wireless and wired communications. And / or may support multiple wired and / or wireless communications protocols. For example, a first set of circuits of the interface device 17006 may be dedicated to short-range wireless communications, such as Wi-Fi or Bluetooth, and a second set of circuits of the interface device 17006 may be dedicated to long-range wireless communications, such as global positioning system (GPS), EDGE, GPRS, CDMA, WiMAX, LTE, EV-DO, etc. In some embodiments, the first set of circuits of the interface device 17006 may be dedicated to wireless communications. The second set of circuits of the interface device 17006 may be dedicated to wired communications.

[0066] Computing device 17000 may include battery / power circuitry 17008. Battery / power circuitry 17008 may include one or more energy storage devices (e.g., batteries or capacitors) and / or circuitry for coupling components of computing device 17000 to an energy source (e.g., AC line power) separate from computing device 17000.

[0067] Computing device 17000 may include a display device 17010 (e.g., multiple display devices). Display device 17010 may include any visual display, such as a head-up display, a computer monitor, a projector, a touch screen display, a liquid crystal display (LCD), a light emitting diode display, or a flat panel display.

[0068] Computing device 17000 may include other input / output (I / O) devices 17012. Other I / O devices 17012 may include, for example, one or more audio output devices (e.g., a speaker, a headset, an earpiece, an alarm, etc.), one or more audio input devices (e.g., a microphone or microphone array), a location device (e.g., a GPS device that communicates with a satellite-based system to receive the location of computing device 17000, as known in the art), an audio codec, a video codec, a printer, sensors (e.g., a thermocouple or other temperature sensor, a humidity sensor, a pressure sensor, a vibration sensor, an accelerometer, a gyroscope, etc.), an image capture device such as a camera, a keyboard, a cursor control device (e.g., a mouse, a stylus, a trackball, or a touchpad, etc.), a barcode reader, a Quick Response (QR) code reader, or a radio frequency identification (RFID) reader.

[0069] Computing device 17000 may have any form factor suitable for its application and configuration, such as a handheld or mobile computing device (e.g., a mobile phone, a smartphone, a mobile Internet device, a tablet computer, a laptop computer, a netbook computer, an ultrabook computer, a personal digital assistant (PDA), an ultra-mobile personal computer, etc.), a desktop computing device, or a server computing device or other networked computing component.

[0070] One or more computing devices implementing any of the scientific instrument support modules or methods disclosed herein may be part of a scientific instrument support system. Figure 18 is a block diagram of an exemplary scientific instrument support system 18000 in which some or all of the scientific instrument support methods disclosed herein may be performed, according to various embodiments. The scientific instrument support modules and methods disclosed herein (e.g., the scientific instrument support module 1000 of Figure 1 and the methods 3000-8000 of Figures 3-8) may be implemented by one or more of the scientific instruments 18010, the user local computing device 18020, the service local computing device 18030, or the remote computing device 18040 of the scientific instrument support system 18000.

[0071] Any of the scientific instrument 18010, the user local computing device 18020, the service local computing device 18030, or the remote computing device 18040 may include any of the embodiments of the computing device 17000 described herein with reference to Figure 17. Any of the scientific instrument 18010, the user local computing device 18020, the service local computing device 18030, or the remote computing device 18040 may take the form of any suitable of the embodiments of the computing device 17000 described herein with reference to Figure 17.

[0072] The scientific instrument 18010, the user local computing device 18020, the service local computing device 18030, or the remote computing device 18040 may each include a processing device 18002, a storage device 18004, and an interface device 18006. The processing device 18002 may take any suitable form, including any form of the processing device 17002 described herein with reference to FIG. 17. The processing devices 18002 included in different ones of the scientific instrument 18010, the user local computing device 18020, the service local computing device 18030, or the remote computing device 18040 may take the same or different forms. The storage device 18004 may take any suitable form, including any form of the storage device 18004 described herein with reference to FIG. The storage devices 18004 included in different ones of the scientific instruments 18010, the user local computing device 18020, the service local computing device 18030, or the remote computing device 18040 may take the same form or different forms. The interface device 18006 may take any suitable form, including any form of the interface device 17006 described herein with reference to Figure 17. The interface devices 18006 included in different ones of the scientific instruments 18010, the user local computing device 18020, the service local computing device 18030, or the remote computing device 18040 may take the same form or different forms.

[0073] The scientific instruments 18010, the user local computing device 18020, the service local computing device 18030, and the remote computing device 18040 may communicate with other elements of the scientific instrument support system 18000 via communication paths 18008. The communication paths 18008 may be wired or wireless communication paths that may be communicatively coupled to the interface devices 18006 of the different elements of the scientific instrument support system 18000 as shown (e.g., according to any of the communication techniques described herein with reference to the interface device 17006 of the computing device 17000 of FIG. 17). Although the particular scientific instrument support system 18000 illustrated in FIG. 18 includes communication paths between each pair of the scientific instruments 18010, the user local computing device 18020, the service local computing device 18030, and the remote computing device 18040, this "fully connected" implementation is merely illustrative and in various embodiments, various ones of the communication paths 18008 may not be present. For example, in some embodiments, the service local computing device 18030 may not have a direct communication path 18008 between its interface device 18006 and the interface device 18006 of the scientific instrument 18010, and instead may communicate with the scientific instrument 18010 via a communication path 18008 between the service local computing device 18030 and the user local computing device 18020, and a communication path 18008 between the user local computing device 18020 and the scientific instrument 18010.

[0074] The user local computing device 18020 may be a computing device (e.g., according to any of the embodiments of the computing device 17000 described herein) that is proximate to a user of the scientific instrument 18010. In some embodiments, the user local computing device 18020 may also be proximate to the scientific instrument 18010, but need not be. For example, a user local computing device 18020 in a user's home or office may be remote from the scientific instrument 18010, but communicate with it. As a result, the user may use the user local computing device 18020 to control and / or access data from the scientific instrument 18010. In some embodiments, the user local computing device 18020 may be a laptop, smartphone, or tablet device. In some embodiments, the user local computing device 18020 may be a portable computing device.

[0075] The service local computing device 18030 may be a computing device (e.g., according to any of the embodiments of computing device 17000 described herein) proximate to an entity that provides a service to the scientific instrument 18010. For example, the service local computing device 18030 may be proximate to the manufacturer of the scientific instrument 18010 or a third party service company. In some embodiments, the service local computing device 18030 may communicate with the scientific instrument 18010, the user local computing device 18020, and / or the remote computing device 18040 (e.g., via a direct communication path 18008 or via multiple "indirect" communication paths 18008, as described above) to receive data regarding the operation of the scientific instrument 18010, the user local computing device 18020, and / or the remote computing device 18040 (e.g., results of self-diagnostic tests of the scientific instrument 18010, calibration coefficients used by the scientific instrument 18010, measurements of sensors associated with the scientific instrument 18010, etc.). In some embodiments, the service local computing device 18030 may communicate with the scientific instrument 18010, the user local computing device 18020, and / or the remote computing device 18040 (e.g., via a direct communication path 18008 or multiple "indirect" communication paths 18008, as described above) to transmit data to the scientific instrument 18010, the user local computing device 18020, and / or the remote computing device 18040 (e.g., to update programmed instructions, such as firmware, in the scientific instrument 18010, to initiate performing a test or calibration sequence on the scientific instrument 18010, to update programmed instructions, such as software, in the user local computing device 18020 or the remote computing device 18040, etc.).A user of the scientific instrument 18010 may use the scientific instrument 18010 or the user local computing device 18020 to communicate with the service local computing device 18030 to report problems with the scientific instrument 18010 or the user local computing device 18020, to request a technician visit to improve the operation of the scientific instrument 18010, to order consumable or replacement parts associated with the scientific instrument 18010, or for other purposes.

[0076] The remote computing device 18040 may be a computing device (e.g., according to any of the embodiments of computing device 17000 described herein) that is located remotely from the scientific instrument 18010 and / or from the user local computing device 18020. In some embodiments, the remote computing device 18040 may be included in a data center or other large-scale server environment. In some embodiments, the remote computing device 18040 may include network-attached storage (e.g., as part of the storage device 18004). The remote computing device 18040 may store data generated by the scientific instrument 18010, perform analysis of data generated by the scientific instrument 18010 (e.g., according to programmed instructions), facilitate communications between the user local computing device 18020 and the scientific instrument 18010, and / or facilitate communications between the service local computing device 18030 and the scientific instrument 18010.

[0077] In some embodiments, one or more of the elements of the scientific instrument support system 18000 illustrated in FIG. 18 may not be present. Furthermore, in some embodiments, there may be multiples of various of the elements of the scientific instrument support system 18000 of FIG. 18. For example, the scientific instrument support system 18000 may include multiple user local computing devices 18020 (e.g., different user local computing devices 18020 associated with different users or at different locations). In another example, the scientific instrument support system 18000 may include multiple scientific instruments 18010, all in communication with a servicing local computing device 18030 and / or a remote computing device 18040. In such an embodiment, the servicing local computing device 18030 may monitor these multiple scientific instruments 18010. The servicing local computing device 18030 may trigger updates or other information to be "broadcast" to multiple scientific instruments 18010 at the same time. Different ones of the scientific instruments 18010 in the scientific instrument support system 18000 may be located near each other (e.g., in the same room) or far from each other (e.g., on different floors of a building, in different buildings, in different cities, etc.). In some embodiments, the scientific instruments 18010 may be connected to an Internet-of-Things (IoT) stack that allows command and control of the scientific instruments 18010 through web-based applications, virtual or augmented reality applications, mobile applications, and / or desktop applications. Any of these applications may be accessed by a user operating a user local computing device 18020 that communicates with the scientific instruments 18010 through an intervening remote computing device 18040. In some embodiments, the scientific instruments 18010 may be sold by a manufacturer together with one or more associated user local computing devices 18020 as part of a local scientific instrument computing unit 18012.

[0078] In some embodiments, different ones of the scientific instruments 18010 included in the scientific instrument support system 18000 may be different types of scientific instruments 18010. In some such embodiments, the remote computing device 18040 and / or the user local computing device 18020 may combine data from different types of scientific instruments 18010 included in the scientific instrument support system 18000.

[0079] The following paragraphs provide various examples of the embodiments disclosed herein.

[0080] Example 1 includes a scientific instrument support device including memory hardware configured to store instructions and processing hardware configured to execute instructions, the instructions including: processing the metadata to identify extended attributes present in the metadata; loading one or more semantic models based on a media type annotation in the metadata; and querying in the loaded one or more semantic models for corresponding extended attribute properties that match extended attribute properties in the metadata. The instructions include: upon finding a corresponding extended attribute property in a selected one of the one or more semantic models, matching each extended attribute property in the metadata with one of one or more corresponding data properties in the selected semantic model, matching each corresponding data property to a node on an output graph, generating relationships between nodes on the output graph based on object properties in the selected semantic model, testing relationships between nodes on the output graph, removing erroneous relationships from the output graph, and transforming a graphical user interface to display the output graph to a user.

[0081] Example 2 includes the technical matter of Example 1 and further specifies that the instructions include predicting a most likely semantic model from one or more semantic models upon failure to find a matching extended attribute property in the metadata, and matching each extended attribute property in the metadata with an estimated data property in the most likely semantic model.

[0082] Example 3 includes the technical matter of Example 2, and further specifies that predicting a most likely semantic model from one or more semantic models includes calculating a distance between an extended attribute property in the metadata and an extended attribute property in each of the one or more semantic models, calculating a sum of matching scores for each of the one or more semantic models based on the calculated distance, and selecting the semantic model with the highest sum of matching scores as the most likely semantic model.

[0083] Example 4 includes the technical matter of Example 2 or Example 3, and further specifies that matching each extended attribute property in the metadata with an estimated data property in the most likely semantic model includes determining whether the extended attribute property in the metadata and the estimated extended attribute property in the most likely semantic model have a matching score above a threshold, and matching the extended attribute property in the metadata with the estimated extended attribute property in the most likely semantic model upon determining that the matching between the extended attribute property in the metadata and the estimated extended attribute property in the most likely semantic model exceeds the threshold.

[0084] Example 5 includes the technical subject matter of any one of Examples 1 to 4, and further specifies that matching each extended attribute property in the metadata with one of the corresponding data properties in the selected semantic model includes selecting a data property in the selected semantic model, selecting an extended attribute property from the semantic model based on the selected data property, determining whether a value of the selected extended attribute property exists in the metadata, and upon determining that a value of the selected extended attribute property exists in the metadata, adding the selected data property and an associated extended attribute property from the metadata corresponding to the value of the selected extended attribute property to an array.

[0085] Example 6 includes the technical matter of Example 5 and further specifies that matching each corresponding data property to a node on the output graph includes selecting a combination of the data property and the associated extended attribute property from the array, and generating a node on the output graph that represents the combination of the selected data property and the extended attribute property.

[0086] Example 7 includes the technical subject matter of any one of Examples 1 to 6, and further specifies that generating a relationship between nodes on the output graph based on an object property in a selected semantic model includes selecting a first node on the output graph, selecting a domain from the semantic model corresponding to the selected node, selecting an object property and a value range associated with the domain, checking whether a second node corresponding to the selected value range exists, and upon determining that the second node exists, generating a link on the output graph extending from the first node to the second node based on the selected object property.

[0087] Example 8 includes the technical matter of Example 7 and further specifies that generating a relationship between nodes on the output graph based on object properties in the semantic model includes generating a second node on the output graph based on a value range upon determining that the second node does not exist.

[0088] Example 9 includes the technical subject matter of any one of Examples 1 to 8, and further specifies that testing the relationship between nodes on the output graph includes selecting a test node on the output graph, determining whether removing the selected test node leaves any other nodes on the output graph disconnected, and marking the selected test node as erroneous upon determining that removing the selected test node does not leave any other nodes on the output graph disconnected.

[0089] Example 10 includes the technical matter of Example 9, and further specifies that removing the erroneous relations from the output graph includes removing test nodes marked as erroneous from the output graph.

[0090] Example 11 includes the technical matter of any one of Examples 1 to 10, and further specifies that the instructions include generating data triples based on extended attribute properties in the metadata and corresponding data properties in the selected semantic model, and generating nodes and links on the output graph based on the data triples.

[0091] Example 12 includes the technical matter of Example 11 and further specifies that each data triple includes a subject, a predicate, and an object, a domain node is generated based on the subject, a range node is generated based on the object, and a link extending from the domain node to the range node is generated based on the predicate.

[0092] Example 13 includes a computer-implemented method for scientific instrument support, the method including: processing metadata to identify extended attributes present in the metadata, loading one or more semantic models based on a media type annotation in the metadata, querying in the loaded one or more semantic models for corresponding extended attribute properties that match extended attribute properties in the metadata, matching each extended attribute property in the metadata with one of one or more corresponding data properties in the selected semantic model upon finding a corresponding extended attribute property in a selected one of the one or more semantic models, matching each corresponding data property to a node on an output graph, generating relationships between nodes on the output graph based on object properties in the selected semantic model, testing relationships between nodes on the output graph, removing erroneous relationships from the output graph, and transforming a graphical user interface to display the output graph to a user.

[0093] Example 14 includes the technical matter of Example 13, and further specifies that the method includes predicting a most likely semantic model from one or more semantic models upon finding no matching extended attribute property in the metadata, and matching each extended attribute property in the metadata with an estimated data property in the most likely semantic model.

[0094] Example 15 includes the technical matter of Example 14, and further specifies that predicting a most likely semantic model from one or more semantic models includes calculating a distance between an extended attribute property in the metadata and an extended attribute property in each of the one or more semantic models, calculating a sum of matching scores for each of the one or more semantic models based on the calculated distance, and selecting the semantic model with the highest sum of matching scores as the most likely semantic model.

[0095] Example 16 includes the technical matter of Example 14 or Example 15, and further specifies that matching each extended attribute property in the metadata with an estimated data property in the most likely semantic model includes determining whether the extended attribute property in the metadata and the estimated extended attribute property in the most likely semantic model have a matching score that exceeds a threshold, and matching the extended attribute property in the metadata with the estimated extended attribute property in the most likely semantic model upon determining that the matching between the extended attribute property in the metadata and the estimated extended attribute property in the most likely semantic model exceeds the threshold.

[0096] Example 17 includes the technical subject matter of any one of Examples 13 to 16, and further specifies that matching each extended attribute property in the metadata with one of the corresponding data properties in the selected semantic model includes selecting a data property in the selected semantic model, selecting an extended attribute property from the semantic model based on the selected data property, determining whether a value of the selected extended attribute property exists in the metadata, and upon determining that a value of the selected extended attribute property exists in the metadata, adding the selected data property and an associated extended attribute property from the metadata corresponding to the value of the selected extended attribute property to an array.

[0097] Example 18 includes the technical matter of Example 17, and further specifies that matching each corresponding data property to a node on the output graph includes selecting a combination of the data property and the associated extended attribute property from the array, and generating a node on the output graph representing the combination of the selected data property and the extended attribute property.

[0098] Example 19 includes the technical subject matter of any one of Examples 13 to 18, and further specifies that generating a relationship between nodes on the output graph based on an object property in a selected semantic model includes selecting a first node on the output graph, selecting a domain from the semantic model corresponding to the selected node, selecting an object property and a value range associated with the domain, checking whether a second node corresponding to the selected value range exists, and upon determining that the second node exists, generating a link on the output graph extending from the first node to the second node based on the selected object property.

[0099] Example 20 includes the technical matter of Example 19 and further specifies that generating relationships between nodes on the output graph based on object properties in the semantic model includes generating a second node on the output graph based on a value range upon determining that the second node does not exist.

[0100] Example 21 includes the technical matter of any one of Examples 13 to 20, and further specifies that testing the relationship between nodes on the output graph includes selecting a test node on the output graph, determining whether removing the selected test node leaves any other nodes on the output graph disconnected, and marking the selected test node as erroneous upon determining that removing the selected test node does not leave any other nodes on the output graph disconnected.

[0101] Example 22 includes the technical matter of Example 21, and further specifies that removing the erroneous relations from the output graph includes removing test nodes marked as erroneous from the output graph.

[0102] Example 23 includes the technical matter of any one of Examples 13 to 22, and further specifies that the method includes generating data triples based on extended attribute properties in the metadata and corresponding data properties in the selected semantic model, and generating nodes and links on the output graph based on the data triples.

[0103] Example 24 includes the technical matter of Example 23, and further specifies that each data triple includes a subject, a predicate, and an object, a domain node is generated based on the subject, a range node is generated based on the object, and a link extending from the domain node to the range node is generated based on the predicate.

[0104] Example 25 includes one or more non-transitory computer-readable media having instructions that, when executed by one or more processors, cause the one or more processors to perform steps including processing the metadata to identify extended attributes present in the metadata; loading one or more semantic models based on a media type annotation in the metadata; querying in the loaded one or more semantic models for corresponding extended attribute properties that match extended attribute properties in the metadata; upon finding a corresponding extended attribute property in a selected semantic model of the one or more semantic models, matching each extended attribute property in the metadata with one of one or more corresponding data properties in the selected semantic model; matching each corresponding data property to a node on an output graph; generating relationships between nodes on the output graph based on object properties in the selected semantic model; testing relationships between nodes on the output graph; removing erroneous relationships from the output graph; and transforming a graphical user interface to display the output graph to a user.

Claims

1. A scientific instrument support device, comprising: memory hardware configured to store instructions; processing hardware configured to execute the instructions; When the instructions are executed, the device: processing the metadata to identify extended attributes present in the metadata; loading one or more semantic models based on a media type annotation in the metadata; querying the one or more loaded semantic models for corresponding extended attribute properties that match extended attribute properties in the metadata; In response to finding a corresponding extended attribute property in a selected one of the one or more semantic models, matching each extended attribute property in the metadata with one of one or more corresponding data properties in the selected semantic model; Matching each corresponding data property to a node on the output graph; generating relationships between nodes on the output graph based on object properties in the selected semantic model; testing relationships between nodes on the output graph; removing erroneous relationships from the output graph; and modifying a graphical user interface to display the output graph to a user; An apparatus for carrying out the above.

2. When the instructions are executed, the device: In response to not finding a matching extended attribute property in the metadata, predicting a most likely semantic model from the one or more semantic models; matching each extended attribute property in the metadata with an inferred data property in the most probable semantic model; The apparatus of claim 1 , further comprising:

3. predicting the most likely semantic model from the one or more semantic models; calculating a distance between extended attribute properties in the metadata and extended attribute properties in each of the one or more semantic models; calculating a sum of matching scores for each of the one or more semantic models based on the calculated distances; selecting the semantic model with the highest sum of matching scores as the most likely semantic model; The apparatus of claim 2 , comprising:

4. Matching each extended attribute property in the metadata with the inferred data property in the most probable semantic model; determining whether the extended attribute properties in the metadata and the inferred extended attribute properties in the most likely semantic model have a matching score above a threshold; in response to determining that the match between the extended attribute properties in the metadata and the inferred extended attribute properties in the most probable semantic model exceeds the threshold, matching the extended attribute properties in the metadata with the inferred extended attribute properties in the most probable semantic model; The apparatus of claim 2 , comprising:

5. Matching each extended attribute property in the metadata with one of the corresponding data properties in the selected semantic model; selecting a data property within the selected semantic model; selecting an extended attribute property from the semantic model based on the selected data property; determining whether a value for the selected extended attribute property is present in the metadata; responsive to determining that the value of the selected extended attribute property is present in the metadata, adding the selected data property and an associated extended attribute property from the metadata that corresponds to the value of the selected extended attribute property to an array; The apparatus of claim 1 , comprising:

6. Matching each corresponding data property to the node on the output graph selecting a combination of data property and associated extended attribute property from the array; generating the nodes on the output graph that represent combinations of selected data properties and extended attribute properties; The apparatus of claim 5 , comprising:

7. generating relationships between nodes on the output graph based on object properties in the selected semantic model; selecting a first node on the output graph; selecting a domain from the semantic model that corresponds to the selected node; selecting object properties and ranges associated with the domain; determining whether there is a second node corresponding to the selected range; Responsive to determining that the second node exists, generating a link on the output graph extending from the first node to the second node based on the selected object property; The apparatus of claim 1 , comprising:

8. generating relationships between nodes on the output graph based on object properties in the semantic model; generating the second node on the output graph based on the range in response to determining that the second node does not exist; The apparatus of claim 7 , comprising:

9. Testing relationships between nodes on the output graph selecting a test node on the output graph; determining whether removing the selected test node leaves any other nodes on the output graph disconnected; marking the selected test node as erroneous in response to determining that removing the selected test node does not leave any other nodes on the output graph disconnected; The apparatus of claim 1 , comprising:

10. When the instructions are executed, the device: generating data triples based on extended attribute properties in the metadata and corresponding data properties in the selected semantic model; generating nodes and links on the output graph based on the data triples; The apparatus of claim 1 , further comprising:

11. 1. A computer-implemented method for scientific instrumentation, comprising: processing the metadata to identify extended attributes present in the metadata; loading one or more semantic models based on a media type annotation in the metadata; querying the one or more loaded semantic models for corresponding extended attribute properties that match extended attribute properties in the metadata; In response to finding a corresponding extended attribute property in a selected one of the one or more semantic models, matching each extended attribute property in the metadata with one of one or more corresponding data properties in the selected semantic model; Matching each corresponding data property to a node on the output graph; generating relationships between nodes on the output graph based on object properties in the selected semantic model; testing relationships between nodes on the output graph; removing erroneous relationships from the output graph; and modifying a graphical user interface to display the output graph to a user; A method comprising:

12. In response to not finding a matching extended attribute property in the metadata, predicting a most likely semantic model from the one or more semantic models; matching each extended attribute property in the metadata with an inferred data property in the most probable semantic model; The method of claim 11 further comprising:

13. predicting the most likely semantic model from the one or more semantic models; calculating a distance between extended attribute properties in the metadata and extended attribute properties in each of the one or more semantic models; calculating a sum of matching scores for each of the one or more semantic models based on the calculated distances; selecting the semantic model with the highest sum of matching scores as the most likely semantic model; The method of claim 12, comprising:

14. Matching each extended attribute property in the metadata with the inferred data property in the most probable semantic model; determining whether the extended attribute properties in the metadata and the inferred extended attribute properties in the most likely semantic model have a matching score above a threshold; in response to determining that the match between the extended attribute properties in the metadata and the inferred extended attribute properties in the most probable semantic model exceeds the threshold, matching the extended attribute properties in the metadata with the inferred extended attribute properties in the most probable semantic model; The method of claim 12, comprising:

15. Matching each extended attribute property in the metadata with one of the corresponding data properties in the selected semantic model; selecting a data property within the selected semantic model; selecting an extended attribute property from the semantic model based on the selected data property; determining whether a value for the selected extended attribute property is present in the metadata; responsive to determining that the value of the selected extended attribute property is present in the metadata, adding the selected data property and an associated extended attribute property from the metadata that corresponds to the value of the selected extended attribute property to an array; The method of claim 11 , comprising:

16. Matching each corresponding data property to the node on the output graph selecting a combination of data property and associated extended attribute property from the array; generating the nodes on the output graph that represent combinations of selected data properties and extended attribute properties; 16. The method of claim 15, comprising:

17. generating relationships between nodes on the output graph based on object properties in the selected semantic model; selecting a first node on the output graph; selecting a domain from the semantic model that corresponds to the selected node; selecting object properties and ranges associated with the domain; determining whether there is a second node corresponding to the selected range; Responsive to determining that the second node exists, generating a link on the output graph extending from the first node to the second node based on the selected object property; The method of claim 11 , comprising:

18. generating relationships between nodes on the output graph based on object properties in the semantic model; generating the second node on the output graph based on the range in response to determining that the second node does not exist; 20. The method of claim 17, comprising:

19. Testing relationships between nodes on the output graph selecting a test node on the output graph; determining whether removing the selected test node leaves any other nodes on the output graph disconnected; marking the selected test node as erroneous in response to determining that removing the selected test node does not leave any other nodes on the output graph disconnected; The method of claim 11 , comprising:

20. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to: processing the metadata to identify extended attributes present in the metadata; loading one or more semantic models based on a media type annotation in the metadata; querying the one or more loaded semantic models for corresponding extended attribute properties that match extended attribute properties in the metadata; In response to finding a corresponding extended attribute property in a selected one of the one or more semantic models, matching each extended attribute property in the metadata with one of one or more corresponding data properties in the selected semantic model; Matching each corresponding data property to a node on the output graph; generating relationships between nodes on the output graph based on object properties in the selected semantic model; testing relationships between nodes on the output graph; removing erroneous relationships from the output graph; and modifying a graphical user interface to display the output graph to a user; causing the steps to be performed, Non-transitory computer-readable medium.