Apparatus and method for aligning scientific instrument metadata with semantic model
By processing and matching extended attribute characteristics in metadata, generating data triplets and removing error relationships, the problem of converting JSON metadata into knowledge graphs is solved, and automatic inference and accurate knowledge graphs are realized in low-quality metadata Generate, improving the understanding and interoperability of scientific instrument data.
Patent Information
- Application Number
- CN202410927433.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-07-11
- Filing Date
- 2024-07-11
- Publication Date
- 2025-01-14
AI Technical Summary
The prior art is difficult to automatically and effectively convert unstructured JSON metadata into knowledge graphs, especially in the presence of data quality problems such as errors, repetitions, inconsistencies and missing values, resulting in a degradation in the quality of the knowledge graphs.
By processing metadata to identify extended attributes, loading semantic models, matching extended attribute characteristics and data characteristics, generating data triples, removing error relationships in the output graph, converting them into a graphical user interface to display the knowledge graph.
It realizes automatic inference of element relationships in low-quality metadata, generates accurate knowledge graphs, and improves the understanding and interoperability of scientific instrument data.
Smart Images

Figure CN119311897A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application is a non-provisional application of U.S. Provisional Patent Application No. 63 / 513,076 filed on July 11, 2023 and claims the benefit of that provisional patent application, the contents of which are incorporated herein by reference. Technical Field
[0003] Various embodiments relate generally, but not exclusively, to scientific instruments and scientific instrument support devices, such as data processing and analysis systems for data generated by the scientific instruments. Summary of the invention
[0004] Scientific instruments include a complex arrangement of movable parts, sensors, input and output ports, energy sources and consumable parts. Scientific instrument operations often generate a large amount of data, which needs to be managed, interpreted and analyzed by various scientific instrument support devices. Since the data is often complex and comes from different sources (such as different scientific instruments and / or different sensors on each scientific instrument), metadata (such as additional data describing scientific instrument data) plays a vital role in organizing and understanding the scientific instrument data. For example, metadata can provide a unique identifier for a single instrument operation, making it possible to distinguish different data sets from different operations. This may be crucial for tracking and organizing the outputs from various different experiments. Metadata can also provide context about the conditions for collecting data. This can include information about the data and time of the experimental settings, instrument settings and / or operations. This context may be beneficial for correctly interpreting data. Metadata also helps to track the history and / or origin of data, for example, by tracking the data collection method, the instrument used, the software version used, the protocol followed and / or whether any post-collection data processing has been performed. This context can contribute to the quality control and verification of experimental data.
[0005] If data from different scientific instruments and / or different experimental runs need to be integrated, metadata can provide the necessary context to align or combine the data. In addition, metadata can help make individual data points or groups of data points discoverable to other researchers and therefore relevant and / or reusable. Metadata can also be used to track the quality of data from individual instruments, such as by tracking the precision, accuracy and / or calibration of the instrument. This can help users track anomalies using instruments and / or data generated by instruments. However, since data sets from scientific instruments are often highly complex, raw metadata is often difficult to understand. Converting metadata into a knowledge graph has various advantages that can help users better understand metadata. For example, raw metadata can be generated as raw unformatted text or formatted text, such as in JavaScript Object Notation (JSON) format. However, even when formatted, metadata is often 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 representation between the various components present in the metadata. This can make it easier to understand metadata, especially when dealing with complex and interconnected information (such metadata is related to scientific instruments and associated experimental runs).
[0006] Knowledge graphs can also show connections between different components of metadata that may not be obvious from traditional text data views. This can help users integrate and understand the links between different data sources, so users can perform more comprehensive analysis and more effectively integrate and / or fuse data from different sources. In addition, knowledge graphs can emphasize the meaning or semantics behind the components of metadata. Presenting metadata as knowledge graphs can help users gain a deeper understanding by contextualizing metadata and presenting metadata in a more natural and intuitive way. Knowledge graphs can also be well extended by a large amount of metadata and are flexible enough to integrate new types of metadata and / or changes in existing metadata schemes. Knowledge graphs can also support more complex types of analysis, such as inference and prediction, by using the relationships between the elements of the graph. This helps users not only understand the current state of metadata, but also predict future states and infer hidden patterns in data. Finally, knowledge graphs can be presented in standardized formats and languages, such as resource description frameworks (RDF) and web ontology languages (OWL). Therefore, converting metadata into knowledge graphs helps users transfer information contained in metadata between different platforms, thereby improving the interoperability of scientific instruments and scientific instrument support systems.
[0007] However, when metadata or even formatted metadata (such as JSON files) are converted into knowledge graphs, there are various technical challenges. For example, unlike databases with well-defined schemes, JSON documents can be highly variable and unstructured. This may make it difficult to map JSON metadata to knowledge graphs (because there may not be a standardized way to interpret and convert metadata). JSON data may also include a complex hierarchical structure with nested arrays and objects. This complexity is difficult to directly convert into a knowledge graph model because the knowledge graph model generally adopts a binary relationship. Knowledge graphs are also established based on the relationship between semantic understanding and data. However, JSON metadata does not inherently carry this semantic information and relationship. Mapping JSON metadata to knowledge graphs requires inference and generation of this information. In addition, JSON metadata may include errors, duplications, inconsistencies and / or missing values. These data quality issues may complicate the conversion process, and if not corrected, the quality of any resulting knowledge graph may be reduced. It is necessary to be able to automatically and effectively infer the relationship between elements (even in non-standard and low-quality metadata files) to effectively and accurately convert metadata into a technology for knowledge graphs. By solving these challenges, such technologies form a powerful tool for helping users understand a large amount of complex and interconnected data generated by various scientific instruments.
[0008] 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 include: processing metadata to identify extended attributes present in the metadata; loading one or more semantic models based on the media type annotation in the metadata; and querying the loaded one or more semantic models for corresponding extended attribute characteristics that match the extended attribute characteristics in the metadata. The instructions include: in response to finding the corresponding extended attribute characteristics in a selected semantic model among the one or more semantic models: matching each extended attribute characteristic in the metadata with one of the one or more corresponding data characteristics in the selected semantic model; aligning each corresponding data characteristic with a node on an output graph; generating relationships between nodes on the output graph based on object characteristics in the selected semantic model; testing relationships between nodes on the output graph; removing erroneous relationships from the output graph; and converting a graphical user interface to display the output graph to a user.
[0009] In other features, the instructions include: in response to not finding a matching extended attribute characteristic in the metadata: predicting a most likely semantic model from the one or more semantic models; and matching each extended attribute characteristic in the metadata with a possible data characteristic in the most likely semantic model. In other features, predicting the most likely semantic model from the one or more semantic models includes: calculating a distance between the extended attribute characteristic in the metadata and the extended attribute characteristic in each of the one or more semantic models; calculating a total match score for each of the one or more semantic models based on the calculated distance; and selecting the semantic model with the highest total match score as the most likely semantic model.
[0010] In other features, matching each extended attribute characteristic in the metadata with the possible data characteristic in the most probable semantic model includes: determining whether the extended attribute characteristic in the metadata and the possible extended attribute characteristic in the most probable semantic model have a matching score above a threshold; and in response to determining that the match between the extended attribute characteristic in the metadata and the possible extended attribute characteristic in the most probable semantic model is above the threshold, matching the extended attribute characteristic in the metadata with the possible extended attribute characteristic in the most probable semantic model.
[0011] In other features, matching each extended attribute property in the metadata with a corresponding data property in the corresponding data property 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 in response to determining that the 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 to an array, the associated extended attribute property corresponding to the value of the selected extended attribute property.
[0012] In other features, aligning each corresponding data property with the node on the output graph includes: selecting a data property and an associated extended attribute property combination from the array; and generating the node on the output graph, the node representing the selected data property and the extended attribute property combination. In other features, generating a relationship 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 corresponding to the selected node; selecting an object property and a range associated with the domain; checking whether there is a second node corresponding to the selected range; and in response 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.
[0013] In other features, generating a relationship between nodes on the output graph based on object properties in the semantic model includes: in response to determining that the second node does not exist, generating the second node on the output graph based on the range. In other features, 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 would disconnect any other node on the output graph; and in response to determining that removing the selected test node would not disconnect any other node on the output graph, marking the selected test node as an error. In other features, removing an error relationship from the output graph includes: removing the test node marked as an error from the output graph.
[0014] In other features, the instructions include: generating data triples based on the extended attribute characteristics in the metadata and corresponding data characteristics 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; generating a domain node based on the subject; generating a range node based on the object; and generating a link extending from the domain node to the range node based on the predicate.
[0015] In some examples, 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 the loaded one or more semantic models for corresponding extended attribute characteristics that match the extended attribute characteristics in the metadata. The method includes: in response to finding the corresponding extended attribute characteristics in a selected semantic model among the one or more semantic models: matching each extended attribute characteristic in the metadata with one of the one or more corresponding data characteristics in the selected semantic model; aligning each corresponding data characteristic with a node on an output graph; generating relationships between nodes on the output graph based on object characteristics in the selected semantic model; testing relationships between nodes on the output graph; removing erroneous relationships from the output graph; and converting a graphical user interface to display the output graph to a user.
[0016] In other features, the method includes: in response to not finding a matching extended attribute characteristic in the metadata: predicting a most likely semantic model from the one or more semantic models; and matching each extended attribute characteristic in the metadata with a possible data characteristic in the most likely semantic model. In other features, predicting the most likely semantic model from the one or more semantic models includes: calculating a distance between the extended attribute characteristic in the metadata and the extended attribute characteristic in each of the one or more semantic models; calculating a total match score for each of the one or more semantic models based on the calculated distance; and selecting the semantic model with the highest total match score as the most likely semantic model.
[0017] In other features, matching each extended attribute characteristic in the metadata with the possible data characteristic in the most probable semantic model includes: determining whether the extended attribute characteristic in the metadata and the possible extended attribute characteristic in the most probable semantic model have a matching score above a threshold; and in response to determining that the match between the extended attribute characteristic in the metadata and the possible extended attribute characteristic in the most probable semantic model is above the threshold, matching the extended attribute characteristic in the metadata with the possible extended attribute characteristic in the most probable semantic model.
[0018] In other features, matching each extended attribute property in the metadata with a corresponding data property in the corresponding data property 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 in response to determining that the 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 to an array, the associated extended attribute property corresponding to the value of the selected extended attribute property.
[0019] In other features, aligning each corresponding data property with the node on the output graph includes: selecting a data property and an associated extended attribute property combination from the array; and generating the node on the output graph, the node representing the selected data property and the extended attribute property combination. In other features, generating a relationship 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 corresponding to the selected node; selecting an object property and a range associated with the domain; checking whether there is a second node corresponding to the selected range; and in response 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.
[0020] In other features, generating a relationship between nodes on the output graph based on object properties in the semantic model includes: in response to determining that the second node does not exist, generating the second node on the output graph based on the range. In other features, 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 would disconnect any other node on the output graph; and in response to determining that removing the selected test node would not disconnect any other node on the output graph, marking the selected test node as an error.
[0021] In other features, removing error relationships from the output graph includes: removing test nodes marked as errors from the output graph. In other features, the method includes: generating data triples based on extended attribute characteristics in the metadata and corresponding data characteristics 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; 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, one or more non-transitory computer-readable media, the one or more non-transitory computer-readable media having instructions thereon, which, when executed by one or more processing devices of a scientific instrument support device, causes the scientific instrument support device to perform the method.
[0022] In some examples, 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 the following steps 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 the loaded one or more semantic models for corresponding extended attribute properties that match the extended attribute properties in the metadata; in response to finding the corresponding extended attribute properties in a selected semantic model among the one or more semantic models: matching each extended attribute property in the metadata with one of the one or more corresponding data properties in the selected semantic model; aligning each corresponding data property with 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 converting a graphical user interface to display the output graph to a user. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] The embodiments will be easily understood by the following detailed description in conjunction with the accompanying drawings. For ease of description, the same reference numerals designate the same structural elements. The embodiments are illustrated in the various figures of the accompanying drawings by way of example and not by way of limitation.
[0024] Figure 1 is a block diagram of an example scientific instrument support module for performing support operations according to various embodiments.
[0025] Figure 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.
[0026] FIG. 3A to FIG. 3C is a flow chart of an example process for automatically processing metadata, such as metadata generated by scientific instruments, to generate a knowledge graph.
[0027] Figure 4 is a flow chart of an example process for matching extended attribute properties from metadata with data properties in a semantic model.
[0028] FIG. 5A to FIG. 5B is a flow chart of an example process for aligning matched data features with nodes on an output knowledge graph.
[0029] Figure 6 is a flow chart of an example process for generating relationships between nodes based on object properties.
[0030] Figure 7 is a flow chart of an example process for predicting the most likely semantic model.
[0031] Figure 8 is a flow chart of an example process for matching extended attribute properties in metadata with corresponding data properties in a selected most probable semantic model.
[0032] Fig. 9 An example of a portion of metadata represented as text formatted in JavaScript Object Notation is shown.
[0033] Fig.10 An example of a portion of a semantic model represented as formatted text is shown.
[0034] Fig.11 An example of a portion of a semantic model represented as a table is shown.
[0035] Fig.12 An example of a portion of an object property represented as a table is shown.
[0036] Fig.13 shows a suitable method for generating Fig. 9 Example of data triples for the knowledge graph generated by example metadata.
[0037] Fig.14 Shows from Fig. 9A partial knowledge graph generated from example metadata.
[0038] Fig.15 Shows from Fig. 9 Example metadata generated knowledge graph.
[0039] Fig.16 is an example of a graphical user interface that may be used to perform some or all of the supporting methods disclosed herein, according to various embodiments.
[0040] Fig.17 is a block diagram of an example computing device that may perform some or all of the scientific instrument support methods disclosed herein, according to various embodiments.
[0041] Fig.18 is a block diagram of an example scientific instrument support system in which some or all of the scientific instrument support methods disclosed herein may be performed, according to various embodiments.
[0042] Fig.19 is an example of a graphical chart generated from a spectral trace of readings from a Raman spectrometer. DETAILED DESCRIPTION
[0043] The present invention discloses a scientific instrument support system and related methods, computing devices, and computer-readable media. For example, in some embodiments, the scientific instrument support device includes memory hardware configured to store instructions and processing hardware configured to execute the instructions. The instructions include: processing metadata to identify extended attributes present in the metadata; loading one or more semantic models based on the media type annotation in the metadata; querying the loaded one or more semantic models for corresponding extended attribute characteristics that match the extended attribute characteristics in the metadata; and in response to finding the corresponding extended attribute characteristics in the selected semantic model: matching each extended attribute characteristic in the metadata with one of the corresponding data characteristics in the selected semantic model; aligning each corresponding data characteristic with a node on an output graph; generating a relationship between nodes on the output graph based on object characteristics; testing the relationship between nodes; removing error relationships from the output graph; and converting a graphical user interface to display the output graph.
[0044] The scientific instrument support embodiments disclosed herein can achieve improved performance relative to conventional methods. For example, the techniques described in this specification automatically identify attributes and their associated values - even in unformatted or poorly formatted metadata. The techniques described in this specification also infer and generate semantic relationships between different attributes in metadata without requiring these relationships to be defined in the metadata itself. In addition, the techniques described in this specification automatically convert complex relationships between attributes in metadata into binary relationships (such as subject-predicate-object data triples) suitable for use in knowledge graphs. Finally, the techniques described in this specification automatically infer relationships from poorly formatted or incorrectly formatted metadata. By providing these improvements, the techniques described in this specification solve the technical problems associated with automatically converting metadata generated by scientific instruments into knowledge graphs suitable for output to graphical user interfaces. Thus, the embodiments disclosed herein provide improvements to scientific instrument technology (e.g., improvements in computer technology to support such scientific instruments, as well as other improvements).
[0045] In the following detailed description, reference is made to the accompanying drawings, which form a part of the detailed description, wherein the same reference numerals designate the same parts throughout, and in the accompanying drawings, practicable embodiments are shown by way of example. It should be understood that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present disclosure. Therefore, the following detailed description should not be considered to have a limiting meaning.
[0046] The various operations may be described as a plurality of discrete actions or operations in a manner that is most helpful for understanding the subject matter disclosed herein. However, the described order should not be interpreted as implying that these operations must rely on the order. Specifically, these operations may not be performed in the order presented. The described operations may be performed in an order different from the described embodiments. Various additional operations may be performed, and / or the described operations may be omitted in additional embodiments.
[0047] 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, B, and C). Although some elements may be referred to in the singular (e.g., "processing device"), any appropriate element may be represented by multiple instances of the 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 being performed by different processing devices.
[0048] This description uses the phrases "embodiment," "various embodiments," and "some embodiments," each of which may refer to one or more of the same or different embodiments. In addition, the terms "including," "comprising," "having," and the like as used with respect to the embodiments of the present disclosure are synonymous. When used to describe a range of sizes, the phrase "between X and Y" means a range that includes X and Y. As used herein, "means" may refer to any individual device, collection of devices, portion of a device, or collection of portions of a device. The drawings are not necessarily drawn to scale.
[0049] Figure 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 circuitry (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 appropriate. Fig.17 Examples of computing devices that may implement the scientific instrument support module 1000, either individually or in combination, are discussed in conjunction with computing device 17000 and are referenced herein. Fig.18 The scientific instrument support system 18000 discusses an example of a system of interconnected computing devices, where the scientific instrument support module 1000 can be implemented across one or more of these computing devices.
[0050] The scientific instrument support module 1000 may include a first logic component (which may be referred to as an instrument logic component 1002 in this article), a second logic component (which may be referred to as a knowledge graph logic component 1004 in this article), and a third logic component (which may be referred to as a user interface logic component 1006 in this article). As used herein, the term "logic component" may include a device that performs a set of operations associated with the logic component. For example, any of the logic elements included in the support module 1000 may be implemented by one or more computing devices, and the one or more computing devices are programmed with instructions to make one or more processing devices of the computing device perform an associated set of operations. In a specific embodiment, the logic element may include one or more non-transitory computer-readable media, and the one or more non-transitory computer-readable media have instructions thereon, which, when executed by one or more processing devices in one or more computing devices, cause the one or more computing devices to perform an associated set of operations. As used herein, the term "module" may refer to a collection of one or more logic elements, which together perform functions associated with the module. Different logic elements in the logic elements in the module may take the same form or may take different forms. For example, some of the logic components in a module may be implemented by a programmed general-purpose processing device, while other logic components in the module may be implemented by an application-specific integrated circuit (ASIC). As another example, different ones of the logic elements in a module may be associated with different instruction sets executed by one or more processing devices. A module may not include all of the logic elements depicted in the associated figures; for example, when the module is to perform a subset of the operations discussed herein with reference to the module, the module may include a subset of the logic elements depicted in the associated figures. Figures 2 to 15 Additional functionality of the instrument logic component 1002, the knowledge graph logic component 1004, and / or the user interface logic component 1006 is further described.
[0051] Figure 2 17000 is a block diagram illustrating example data objects that may be generated and / or used by logic elements of support module 1000. In various implementations, data repository 2002 and / or data repository 2004 are stored on a non-transitory computer-readable storage medium (such as an example of storage device 17004 of computing device 17000). Although data repository 2002 and data repository 2004 are stored on a non-transitory computer-readable storage medium, such as an example of storage device 17004 of computing device 17000, Figure 22002 includes metadata 2006 from scientific instrument operation. In some examples, instrument logic unit 1002 generates metadata 2006 based on scientific instrument operation, and the metadata 2006 generated is stored in data repository 2002. In some embodiments, metadata 2006 is stored as a text file. In various specific implementations, metadata 2006 is stored as a JSON file. In some embodiments, metadata 2006 includes information (such as text strings) of identification media type 2008 and one or more extended attributes. In some specific implementations, extended attributes may include file system features that enable users to associate computer files with metadata. For example, in the context of metadata generated by scientific instruments, extended attributes may refer to metadata that provides additional information about data files generated by these instruments. These extended attributes may be crucial to ensure that data can be correctly interpreted, analyzed and shared. In the context of files generated by scientific instruments, examples of extended attributes include calibration information, instrument settings, environmental conditions, operator information, sample information, units and scale, timestamps, and / or data processing history.
[0052] Examples of calibration information include information about the time when the scientific instrument was last calibrated and / or the calibration standards used. Examples of instrument settings include data about the settings used to generate 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 the personnel who conducted the experiment, handled the sample, and / or handled the scientific instrument. Examples of sample information include data about the sample being analyzed, such as the sample source, preparation method, and / or composition. Examples of units and scales include data about the measurement units and / or scales (such as linear scales, logarithmic scales, etc.) used by the scientific instrument. Examples of timestamps include sample analysis time and / or data processing and / or collection time. Examples of data processing history include data about any processing and / or conversion that has been applied to the data file generated by the scientific instrument.
[0053] In some examples, one or more extended attributes may include one or more key-value pairs, such as extended attribute property 2010 (which is the key) and extended attribute data value 2012 (which is the corresponding value). The key may be a string representing the name of the attribute, and the value may be a string specifying the value of the attribute. Figure 2Only two extended attributes are shown ([i] extended attribute property 2010 and extended attribute data value 2012, and [ii] extended attribute property 2014 and extended attribute data value 2016), but metadata 2006 may include any number of extended attributes.
[0054] In various specific implementations, the data repository 2004 includes a knowledge graph logic component 1004 for automatically parsing metadata 2006, extracting hidden semantic relationships between extended attributes in the metadata 2006, and generating data or annotations (such as a semantic model 2018 and / or an object property library 2038) of the knowledge graph based on the metadata 2006. Figure 2 Only a single semantic model 2018 and a single object property library 2038 data object are shown, but the data repository 2004 may include any number of semantic models and object property data objects. In addition, 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 merged into a single data object or data structure (collectively referred to as a semantic model). In various specific implementations, the semantic model 2018 may include data used by the knowledge graph logic component 1004 to parse the metadata 2006 and generate nodes of the knowledge graph. In some embodiments, the object property library 2038 may include data used by the knowledge graph logic component 1004 to link the generated nodes to each other.
[0055] For example, the semantic model 2018 includes a media type 2020 identifier and annotations for one or more extended attribute characteristics. In various examples, the annotations for each extended attribute characteristic include an identifier of the extended attribute characteristic itself (such as extended attribute characteristic 2022), a data attribute value associated with the extended attribute characteristic (such as data attribute 2024), an entity value (such as entity 2026), and an identification annotation (such as identification annotation 2028). In various specific implementations, the data attribute value corresponding to each extended attribute characteristic may include a standard attribute for generating a knowledge graph, the entity value corresponding to each extended attribute characteristic may include a node type used in the knowledge graph, and the identification annotation corresponding to each extended attribute characteristic may indicate a true value or a false value. Although Figure 2 Annotations for two extended attribute properties are illustrated ([i] data property 2024, entity 2026, and identification annotation 2028 corresponding to extended attribute property 2022, and [ii] data property 2032, entity 2034, and identification annotation 2036 corresponding to extended attribute property 2030), but the semantic model 2018 may include any number m of extended attributes and corresponding annotations for the m extended attributes.
[0056] 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 (such as data property 2024), a domain associated with the object property (such as domain 2044), and a range associated with the object property (such as range 2046). In some embodiments, each object property includes data for generating links in 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 Figure 2 Only domains and ranges are shown 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), but the object property library 2038 may include any number I of object properties and corresponding domains and ranges.
[0057] FIG. 3A to FIG. 3C 3000 is a flow chart 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 component 1004 loads metadata. For example, the knowledge graph logic component 1004 loads metadata 2006 from the data repository 2002. At 3004, the knowledge graph logic component 1004 initializes an output graph. At 3006, the knowledge graph logic component 1004 processes the loaded metadata 2006 to identify a media type. For example, the knowledge graph logic component 1004 parses the metadata 2006 and identifies the media type based on the media type 2008. At 3008, the knowledge graph logic component 1004 parses the metadata 2006 to identify extended attribute characteristics present in the metadata 2006. For example, the drawing logic component 3008 processes the metadata 2006 and identifies each of the n extended attribute characteristics 2010-2014 present in the metadata 2006. At 3010, the knowledge graph logic component 1004 loads the semantic model and object properties corresponding to the media type 2008 indicated in the metadata 2006. For example, the knowledge graph logic component 1004 loads the semantic model 2018 in response to the media type 2020 matching the media type 2008. In contrast, if the media type 2020 does not match the media type 2008, the knowledge graph logic component 1004 does not load the semantic model 2018. Similarly, in some examples, the knowledge graph logic component 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.
[0058] At 3012, the knowledge graph logic component 1004 queries the loaded semantic models and / or object properties for extended attribute properties that match the extended attributes present in the metadata 2006. For example, if the semantic model 2018 is loaded, the knowledge graph logic component 1004 determines whether any of the extended attribute properties 2022-2030 of the semantic model 2018 matches any of the extended attribute properties 2010-2014 of the metadata 2006. In response to finding matching extended attribute properties between the semantic model 2018 and the metadata 2006 ("yes" at decision box 3014), the knowledge graph logic component 1004 selects the semantic model with the matching extended attribute properties at 3016. At 3018, the knowledge graph logic component 1004 matches each extended attribute property from the metadata 3018 with the data properties in the selected semantic model 2018. For example, in response to the extended attribute property 2010 from the metadata 2006 matching the extended attribute property 2022 in the semantic model 2018, the knowledge graph logic component 1004 matches the extended attribute property 2010 with the data property 2024 (the data property corresponding to the matched extended attribute property from the semantic model). Figure 4 Additional details associated with matching extended attribute properties from metadata with data properties in a selected semantic model are further described.
[0059] At 3020, the knowledge graph logic component 1004 aligns the matched data features with the nodes on the output graph. For example, the knowledge graph logic component 1004 generates a data triple based on each of the matched data features, and draws a node on the knowledge graph based on the data triple. Additional details associated with aligning the matched data features with the nodes on the output graph will be further described in this specification with reference to Figure 5. At 3022, the knowledge graph logic component 1004 generates relationships between the nodes of the knowledge graph based on object properties (such as the object property library 2038). In various specific implementations, these relationships may include object properties from the object property library 2038 that are drawn as links between nodes on the knowledge graph. In various specific implementations, the domain of an object property indicates the node from which the object property starts, and the scope of the object property indicates the node from which the object property ends. Reference will be made to Figure 5 in this specification. Figure 6 Additional details associated with generating relationships between nodes based on object properties are further described.
[0060] At 3024, the knowledge graph logic component 1004 tests the relationship between the nodes, and if appropriate, removes the wrong relationship from the knowledge graph. For example, the knowledge graph logic component 1004 selects each node on the knowledge graph that does not match the extended attributes from metadata 2006. The knowledge graph logic component 1004 tests whether removing each node will disconnect any other node in the knowledge graph. In response to determining that removing a node will not disconnect any other node, the knowledge graph logic component 1004 removes the node. For example, the knowledge graph logic component 1004 removes all data triples associated with the node. At 3026, the knowledge graph logic component 1004 creates a standard feature that reflects data characteristics. For example, the knowledge graph logic component 1004 selects each data triple in the output graph generated using the data characteristics. The knowledge graph logic component 1004 checks whether the standard feature annotation is linked to the data characteristic. In response to determining that the standard feature annotation is linked, the knowledge graph logic component 1004 generates a new data triple in the output graph, the new data triple has the same domain and range as the original data triple, but the data feature is replaced by the standard feature. At 3028, the knowledge graph logic component 1004 and / or the user interface logic component 1006 outputs the knowledge graph to a graphical user interface.
[0061] In response to not finding a matching extended attribute feature between the semantic model 2018 and the metadata 2006 ("No" at decision box 3014), the knowledge graph logic component 1004 determines whether to enable fuzzy matching. In various specific implementations, fuzzy matching is the process of finding approximately equal strings. In some examples, fuzzy matching can be implemented through machine learning. In response to the knowledge graph logic component 1004 determining that fuzzy matching is not enabled ("No" at decision box 3030), the knowledge graph logic component 1004 and / or the user interface logic component 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 component 1004 determining that fuzzy matching is enabled ("Yes" at decision box 3030), the knowledge graph logic component 1004 predicts the most likely semantic model and selects the semantic model at 3034. Reference will be made to the semantic model in this specification. Figure 7 Additional details associated with predicting the most likely semantic model are further described. At 3036, the knowledge graph logic component 1004 matches each extended attribute feature in the metadata 2006 with a corresponding data feature in the selected semantic model. After matching each extended attribute feature with a corresponding data feature in the selected semantic model, at 3020, the knowledge graph logic component 1004 aligns the matched data features with nodes on the output graph.
[0062] Figure 44 is a flow chart of an example process 4000 for matching extended attribute characteristics from metadata with data characteristics in a semantic model. At 4002, the knowledge graph logic component 1004 selects an initial data characteristic from the selected semantic model. At 4004, the knowledge graph logic component 1004 selects an extended attribute characteristic from the semantic model associated with the selected data characteristic. For example, if the data characteristic 2024 is selected at 4002, the corresponding extended attribute characteristic 2022 is selected at 4004. At 4006, the knowledge graph logic component 1004 checks whether the value of the selected extended attribute characteristic exists in the metadata. For example, if the extended attribute characteristic 2022 is selected at 4004, the knowledge graph logic component 1004 checks whether any of the extended attribute characteristics 2010-2014 in the metadata 2006 matches the extended attribute characteristic 2022. In response to determining that the extended attribute properties from the semantic model are present in the metadata ("yes" at decision box 4008), the knowledge graph logic component 1004 adds the selected data properties and extended attribute properties to the array. For example, the knowledge graph logic component 1004 adds the data property 2024 and the extended attribute property 2022 to the array.
[0063] At decision box 4014, the knowledge graph logic component 1004 determines whether there is another unprocessed data feature in the selected semantic model. In response to determining that there is no extended attribute feature from the semantic model in the metadata ("No" at decision box 4008), the knowledge graph logic component 1004 records a warning message at 4012 and continues to determine whether there is another unprocessed data feature in the selected semantic model. In various specific implementations, the error message is displayed on a graphical user interface. In response to determining that there is another unprocessed data feature in the selected semantic model ("Yes" at decision box 4014), the knowledge graph logic component 1004 selects the next unprocessed data feature from the selected semantic model at 4016, and selects the extended attribute feature associated with the selected data feature at 4004. In response to determining that there is no other unprocessed data feature in the selected semantic model ("No" at decision box 4014), the knowledge graph logic component 1004 aligns the matched data feature with the node on the output graph at 3020.
[0064] FIG. 5A to FIG. 5B5 is a flowchart of an example process 5000 for aligning matched data features with nodes on an output knowledge graph. At 5002, the knowledge graph logic component 1004 selects an initial combination of data features and their associated extended attribute features from an array (such as the array generated at 4010). At 5004, the knowledge graph logic component 1004 selects an entity associated with the data feature from a semantic model. For example, if the selected combination of data features and extended attribute features includes data features 2024 and extended attribute features 2022, the knowledge graph logic component 1004 selects entity 2026 from the semantic model 2018. At 5006, the knowledge graph logic component 1004 checks whether the identification annotation is linked to the selected entity. For example, if entity 2026 is selected at 5004, the knowledge graph logic component 1004 checks whether the value of identification annotation 2028 is "TRUE". In response to the value of identification annotation 2028 being "TRUE", it can be considered that the identification annotation is linked to entity 2026. In contrast, in response to the value of the identification annotation 2028 being "FALSE", the identification annotation may be considered not to be linked to the entity 2026. In response to the identification annotation being linked to the selected entity ("Yes" at decision box 5010), the knowledge graph logic component 1004 generates a node in the output knowledge graph based on the selected entity at 5010, and determines whether there is another unprocessed combination of data properties and extended attribute properties in the array (at decision box 5012). In response to the identification annotation not being linked to the selected entity ("No" at decision box 5008), the knowledge graph logic component 1004 determines whether there is another unprocessed combination of data properties and extended attribute properties in the array (at decision box 5012).
[0065] In response to determining that there is another unprocessed combination of data characteristics and extended attribute characteristics in the array ("yes" at decision box 5012), the knowledge graph logic component 1004 selects the next combination of data characteristics and associated extended attribute characteristics from the array at 5014, and selects an entity associated with the data characteristics from the semantic model at 5004. In response to determining that there is no other unprocessed combination of data characteristics and extended attribute characteristics in the array ("no" at decision box 5012), the knowledge graph logic component 1004 selects an initial combination of data characteristics and associated extended attributes from the array that does not have a linked identification annotation at 5016. At 5018, the knowledge graph logic component 1004 checks whether the entity associated with the selected combination has been associated with a node of the knowledge graph. In response to determining that the entity has been identified with a node ("yes" at decision box 5020), the knowledge graph logic component 1004 links the entity to the identified node at 5022. At decision box 5024, the knowledge graph logic component 1004 checks whether there is another combination of data properties and associated extended attribute properties in the array that does not have the linked identification annotation. In response to determining that the entity has not been identified with a node ("No" at decision box 5020), the knowledge graph logic component 1004 generates a node in the output graph based on the entity at 5026, and determines whether there is another combination of data properties and associated extended attribute properties in the array that does not have the linked identification annotation at decision box 5024.
[0066] In response to determining that there is another combination of data properties and associated extended attribute properties that do not have a linked identification annotation in the array ("yes" at decision box 5024), the knowledge graph logic component 1004 selects the next combination of data properties and associated extended attributes that do not have a linked identification annotation at 5028, and checks whether the entity associated with the selected combination has been identified with a node at 5018. In response to determining that there is no another combination of data properties and associated extended attribute properties that do not have a linked identification annotation in the array ("no" at decision box 5024), the knowledge graph logic component 1004 generates a relationship between nodes based on object properties at 3022.
[0067] Figure 66000 is a flow chart of an example process for generating relationships between nodes based on object properties. At 6002, the knowledge graph logic component 1004 selects an initial node of the knowledge graph. At 6004, the knowledge graph logic component 1004 selects a domain from the object properties corresponding to the selected node. At 6006, the knowledge graph logic component 1004 selects the object property and the range associated with the selected domain. For example, if the domain 2044 is selected at 6004, the object property 2042 and the range 2046 are selected at 6006. At 6008, the knowledge graph logic component 1004 checks whether there is a secondary node corresponding to the range selected at 6006 in the knowledge graph. In response to determining that the secondary node exists ("yes" at decision box 6010), the knowledge graph logic component 1004 links the selected node and the identified secondary node according to the selected object property at 6012. For example, the selected node can be a starting point or a domain, the identified secondary node can be an end point or a range, and the object property can link the domain to the range. At 6014, the knowledge graph logic component 1004 determines whether all nodes in the knowledge graph are linked. In response to determining that there are no auxiliary nodes ("No" at 6010), the knowledge graph logic component 1004 generates a new node on the output graph according to the selected range at 6016, and determines whether all nodes in the knowledge graph are linked at 6014. In response to determining that all nodes have not yet been linked ("No" at decision box 6014), the knowledge graph logic component 1004 selects the next node at 6018 and selects the domain corresponding to the selected node from the object properties at 6004. In response to determining that all nodes have been linked ("Yes" at decision box 6014), the knowledge graph logic component 1004 tests the relationship between the nodes and removes the erroneous relationship from the knowledge graph at 3024.
[0068] Figure 77000 is a flowchart of an example process for predicting the most likely semantic model. At 7002, the knowledge graph logic component 1004 selects an initial extended attribute feature from metadata. At 7004, the drawing logic component 7004 calculates the Levenshtein distance between the selected extended attribute feature from metadata and each extended attribute feature in each semantic model. Levenshtein distance is a string metric for measuring the difference between two strings or text sequences. 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 change a second string to a first string). In some examples, if the first string has a length i and the second string has a length j, then the Levenshtein distance can be calculated by first initializing an i×j matrix. The i×j matrix is filled iteratively. For each cell, the deletion cost, insertion cost, and replacement cost can be calculated. The deletion cost can be calculated as the value of the cell to the left of the current cell plus one. The insertion cost can be calculated as the value of the cell above the current cell plus one. The replacement cost can be calculated as: (i) the value of the cell in the upper left corner plus one (if that cell is not equal to the current cell), or (ii) the value of the cell in the upper left corner (if that cell is equal to the current cell). The minimum of the deletion cost, insertion cost, and replacement cost is set to the value of the current cell. The final value of this i×j matrix (lower right corner) is the Levenshtein distance.
[0069] At 7006, the knowledge graph logic component 1004 stores the extended attribute characteristic with the maximum Levenshtein distance from the semantic model into the matrix. At 7008, the knowledge graph logic component 1004 determines whether there is another extended attribute characteristic in the metadata. In response to determining that there is another extended attribute characteristic in the metadata ("yes" at decision box 7008), the knowledge graph logic component 1004 selects the next extended attribute characteristic at 7014, and calculates the Levenshtein distance between the selected extended attribute characteristic from the metadata and each extended attribute characteristic in each semantic model at 7004. In response to determining that there is no other extended attribute in the metadata ("no" at decision box 7008), the knowledge graph logic component 1004 calculates the total match score of the extended attribute characteristic (from the metadata) and the extended attribute characteristic (in the matrix) at 7012 (for each semantic model that matches any extended attribute characteristic from the metadata). At 7014, the knowledge graph logic component 1004 selects the semantic model with the maximum total match score as the most likely semantic model.
[0070] Figure 88000 is a flowchart of an example process for matching extended attribute characteristics in metadata with corresponding data characteristics in a selected most likely semantic model. After the knowledge graph logic component 1004 selects the semantic model with the maximum total match score as the most likely semantic model at 7014, the knowledge graph logic component 1004 loads each extended attribute characteristic present in the selected semantic model into a first array at 8002. At 8004, the knowledge graph logic component 1004 sorts the first array so that the loaded extended attribute characteristics are sorted in descending order according to their matching scores (e.g., by referencing a matrix). At 8006, the knowledge graph logic component 1004 selects the initial extended attribute characteristics in the sorted first array. At 8008, the knowledge graph logic component 1004 determines whether the maximum match score from the matrix calculated at 7006 exceeds a threshold. In response to determining at 7006 that the maximum match score exceeds the first threshold, the knowledge graph logic component 1004 (i) selects an extended attribute characteristic [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 characteristic [from the metadata] and the extended attribute characteristic [from the semantic model] to the second array as matching characteristics. At 8012, the knowledge graph logic component 1004 determines whether there is another extended attribute characteristic in the sorted first array. In response to determining that there is another extended attribute characteristic in the first array ("yes" at decision box 8012), the knowledge graph logic component 1004 selects the next extended attribute characteristic from the sorted first array at 8014, and determines at 8008 whether the maximum match score from the matrix exceeds the threshold.
[0071] Fig. 9 An example of a portion of metadata represented as text formatted in JavaScript Object Notation (JSON) is shown. Fig. 9 In the example of , "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 corresponding extended attribute properties.
[0072] Fig.10 An example of a portion of a semantic model represented as formatted text is shown. Fig.11 An example of a portion of a semantic model represented as a table is shown. Fig.12 An example of a portion of an object property represented as a table is shown. Fig.13 shows a suitable method for generating Fig. 9 Example of data triples for the knowledge graph generated by example metadata. Fig.14 Shows from Fig. 9 Example metadata generated for the partial knowledge graph 14000. Fig.15 Shows from Fig. 9 The example metadata generated knowledge graph 15000. As previously referenced in process 3000 and FIG. 3A to FIG. 3C As described, the knowledge graph logic component 1004 parses Fig. 9 to determine the appropriate semantic model (e.g. Fig.11 ) and appropriate object properties (e.g., Fig.12 The knowledge graph logic component 1004 matches each extended attribute feature from the metadata with the data feature in the selected semantic model, and aligns the matched data feature with the node on the knowledge graph. Fig. 9 ) and the semantic model ( Fig.11 ), generate a data triplet for each matched data feature, and generate nodes 14002-14006 based on the data triplet. Nodes 14002-14006 are marked with the corresponding extended attribute data value of each matched extended attribute feature. For example, since the extended attribute property "sampleId" from the metadata matches the extended attribute property sampleId from the semantic model, the corresponding entity poc:sampleId is generated as node 14002 and marked with the corresponding extended attribute data value "20190202_041854" from the metadata. Similarly, since the extended attribute property "measurementId" matches the extended attribute property measurementId from the semantic model, the corresponding entity poc:Test is generated as node 14004 and marked with the corresponding extended attribute data value "20190202_041854" from the metadata. Finally, since the extended attribute property "deviceSn" matches the extended attribute property deviceSn from the metadata, the corresponding entity poc:RamanSpec is generated as node 14006 and is marked with the corresponding extended attribute data value "RAMAN1" from the metadata.
[0073] Then, the knowledge graph logic component 1004 selects the initial node 14002 from the knowledge graph 14000. The knowledge graph logic component 1004 selects the corresponding domain ( Fig.12 ). If the scope associated with the domain already exists as a node on the knowledge graph, the knowledge graph logic component 1004 links the domain and the existing scope with the object properties. If the scope does not yet exist as a node on the knowledge graph, the knowledge graph logic component 1004 adds the scope as a node and links the domain and the scope with the object properties. For example, since the scope poc:SamplingPoint does not yet exist as a node on the knowledge graph 14000, the knowledge graph logic component 1004 adds poc:SamplingPoint as a node 15002 on the knowledge graph 15000, and links the domain poc:Sample (node 14002) and the scope poc:SamplingPoint (node 15002) with the object property poc:sampledFrom as a link 15004 from the domain node 14002 to the scope node 15002. Since the scope poc:Test already exists as node 14004 on the knowledge graph 14000, the knowledge graph logic component 1004 links the domain poc:Sample (node 14002) and the scope poc:Test (node 14004) with the object property poc:testedIn as a link 15006 from the domain node 14002 to the scope node 14004. Similarly, since the scope poc:RamanSpectrometer already exists as node 14006 on the knowledge graph 14000, the knowledge graph logic component 1004 links the domain poc:Test (node 14004) and the scope poc:RamanSpectrometer (node 14006) with the object property poc:executedOn as a link 15008 from the domain node 14004 to the scope node 14006.
[0074] In some examples, the knowledge graph logic component 1004 first generates data triples (such as Fig.13 ), and then generate a knowledge graph (such as Fig.15 15000). As discussed previously, data triples may be represented in subject-predicate-object form. Thus, each data triple may include a subject (which is the entity about which the statement is about), a predicate (which represents a relationship or property connecting the subject and the object), and an object (which is another entity to which the subject is related or associated through the predicate). In some examples, the subject may be an entity or a node, the predicate may be an object property or link, and the object may be an entity or a node. In various implementations, the subject may form the domain of the statement, the object may form the scope, and the predicate may form a link extending from the domain to the scope.
[0075] For example, Fig.13 As shown, the expression "tfdata:Sample%20for%2020190202_041854a poc:Sample" represents a subject and is shown as node 14002 on the knowledge graph 15000. The nested expression "poc:testedIntfdata:Test%20of%2020190202_041854" forms an associated predicate (poc:testedIn—link 15006) and object (tfdata:Test%20of%2020190202_041854—node 14004) pair. Based on the expression, the knowledge graph logic component 1004 generates node 14002 based on the subject, generates node 14004 based on the object, and generates a link 15006 from node 14002 to node 14004 based on the predicate. Similarly, the knowledge graph logic component 1004 generates a node 15002 based on the object “tfdata:SAMPLING-POINT-1” and generates a link 15004 extending from the node 14002 to the node 15002 based on the predicate “poc:sampledFrom”. Similarly, the knowledge graph logic component 1004 generates a node 14006 based on the object “tfdata:RAMAN1” and generates a link 15008 based on the predicate “poc:executedOn”. The knowledge graph logic component 1004 links the subject node 14004 (tfdata:Test%20of%2020190202_041854a poc:Test) and the object node 14006 with the predicate link 15008.
[0076] The scientific instrument support methods disclosed herein may include interaction with a human user (e.g., via the referenced Fig.18 The user's local computing device 18020 discussed above. These interactions may include providing information to the user (e.g., about scientific instruments such as Fig.18 information about the operation of a scientific instrument (such as a scientific instrument 18010), information about samples analyzed or other tests or measurements performed by the scientific instrument, information retrieved from a local or remote database, or other information) or to provide input commands to a user (e.g., to control a scientific instrument such as Fig.18 In some embodiments, these interactions may be performed through a graphical user interface (GUI) that includes a display device (e.g., a graphical user interface such as a display device ... Fig.17A visual display on a display device 17010 discussed herein) that provides output to a user and / or prompts a user to provide input (e.g., via a display device 17010 discussed herein) Fig.17 Other I / O devices 17012 discussed include one or more input devices such as a keyboard, mouse, trackpad, or touch screen). The scientific instrument support system disclosed herein may include any suitable GUI for interacting with a user.
[0077] Fig.16 An example GUI 16000 is depicted that can be used to perform some or all of the supporting methods disclosed herein according to various embodiments. As described above, the GUI 16000 can be provided in a scientific instrument support system (e.g., as described herein with reference to Fig.18 A computing device (e.g., a scientific instrument support system 18000 as discussed herein) Fig.17 The display device of the computing device 17000 discussed herein (eg, Fig.17 The display device 17010 discussed herein) and the user may use any suitable input device (e.g., Fig.17 Any input devices (including those discussed in other I / O devices 17012 ) and input technologies (e.g., cursor movement, motion capture, facial recognition, gesture detection, voice recognition, button activation, etc.) interact with GUI 16000 .
[0078] 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 . Fig.16 The specific number and arrangement of regions depicted in the GUI 16000 are merely exemplary, and any number and arrangement of regions, including any desired features, may be included in the GUI 16000. The data display area 16002 may display data generated by a scientific instrument (e.g., Fig.18 The scientific instrument 18010 discussed above may include data generated by the scientific instrument 18010. 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 spectral traces of (x, y) readings 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 a Raman spectrometer may include the date and / or time of sampling, the source of the sampling (e.g., sampling point), the serial number of the instrument that made the measurement, an identifier associated with the operator of the instrument, an identifier associated with the project, and other appropriate metadata. In various embodiments, a graphical chart generated from data generated by scientific instrument 18010 is displayed in data display area 16002, such as Fig.19In various implementations, data display area 16002 may display a knowledge graph (such as knowledge graph 14000 and / or knowledge graph 15000) generated by knowledge graph logic component 1004 and / or user interface logic component 1006. In various implementations, data display area 16002 displays any error messages or logs generated by knowledge graph logic component 1004.
[0079] Data analysis region 16004 may display the results of the data analysis (e.g., the results of analyzing the data illustrated in data display region 16002 and / or other data). In some embodiments, data display region 16002 and data analysis region 16004 may be combined in GUI 16000 (e.g., including the data output from the scientific instrument and some analysis of the data in a common graphic or area). Scientific instrument control region 16006 may include a user interface that allows the user to control the scientific instrument (e.g., as described herein with reference to FIG. 16). Fig.18 The settings area 16008 may include options that allow the user to control the features and functions of the GUI 16000 (and / or other GUIs) and / or perform common computing operations with respect to the data display area 16002 and the data analysis area 16004 (e.g., saving data to a storage device (such as a computer system described herein) Fig.17 Discussed storage device 17004), sending data to another user, marking data, etc.).
[0080] As described above, the scientific instrument support module 1000 may be implemented by one or more computing devices. Fig.17 1 is a block diagram of a computing device 17000 that can 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 can be implemented by a single computing device 17000 or multiple computing devices 17000. In addition, as discussed below, the computing device 17000 (or multiple computing devices 17000) implementing the scientific instrument support module 1000 can be Fig.18 Part of one or more of scientific instrument 18010, user local computing device 18020, service local computing device 18030, or remote computing device 18040.
[0081] Fig.17The computing device 17000 is illustrated as having several components, but any one or more of these components may be omitted or duplicated for applications and settings. In some embodiments, some or all of the components included in the computing device 17000 may be attached to one or more motherboards and encapsulated in a housing (e.g., including plastic, metal, and / or other materials). In some embodiments, some of these components may be manufactured on a single system on a chip (SoC) (e.g., the SoC may include one or more processing devices 17002 and one or more storage devices 17004). Additionally, in various embodiments, the computing device 17000 may not include Fig.17 One or more of the illustrated components, 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., a connector and driver circuitry) to which display device 17010 may be coupled.
[0082] The computing device 17000 may include a 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 to convert the electronic data into other electronic data that can be stored in registers and / or memory. The 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 (specialized processors that execute cryptographic algorithms in hardware), server processors, or any other suitable processing devices.
[0083] 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 bridge 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 and may include, for example, an embedded dynamic random access memory (eDRAM) or a spin transfer torque magnetic random access memory (STT-MRAM). In some embodiments, the storage device 17004 may include a non-transitory computer-readable medium having instructions thereon that, when executed by one or more processing devices (e.g., processing device 17002), cause the computing device 17000 to perform any appropriate method or portion of the methods disclosed herein.
[0084] 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 for managing wireless communications for transmitting 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 can transmit data through a non-solid medium using modulated electromagnetic radiation. The term does not imply that the associated device does not contain any wires, although in some embodiments it may not contain any wires. The circuitry included in the interface device 17006 for managing wireless communications may implement any of several wireless standards or protocols, including but not limited to Institute of Electrical and Electronics Engineers (IEEE) standards, including Wi-Fi (IEEE 802.11 series), IEEE 802.16 standards (e.g., IEEE 802.16-2005 amendment), Long Term Evolution (LTE) project and any amendments, updates and / or revisions (e.g., Advanced LTE project, Ultra Mobile Broadband (UMB) project (also known as "3GPP2"), etc.). In some embodiments, the circuitry included in the interface device 17006 for managing wireless communications may operate according to a Global System for Mobile Communications (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 according to Enhanced Data GSM Evolution (EDGE), GSM The interface device 17006 may be configured to operate in accordance with an EDGE Radio Access Network (GERAN), a Universal Terrestrial Radio Access Network (UTRAN), or an 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 its derivatives, and any other wireless protocols designated as 3G, 4G, 5G, and higher versions. In some embodiments, the interface device 17006 may include one or more antennas (e.g., one or more antenna arrays) to receive and / or send wireless communications.
[0085] In some embodiments, interface device 17006 may include a circuit for managing wired communication, such as an electrical communication protocol, an optical communication protocol, or any other suitable communication protocol. For example, interface device 17006 may include a circuit supporting communication according to Ethernet technology. In some embodiments, interface device 17006 may support both wireless and wired communication, and / or may support multiple wired communication protocols and / or multiple wireless communication protocols. For example, a first group of circuits of interface device 17006 may be dedicated to shorter distance wireless communication such as Wi-Fi or Bluetooth, and a second group of circuits of interface device 17006 may be dedicated to longer distance wireless communication such as global positioning system (GPS), EDGE, GPRS, CDMA, WiMAX, LTE, EV-DO, etc. In some embodiments, a first group of circuits of interface device 17006 may be dedicated to wireless communication, and a second group of circuits of interface device 17006 may be dedicated to wired communication.
[0086] Computing device 17000 may include battery / power circuit 17008. Battery / power circuit 17008 may include one or more energy storage devices (e.g., batteries or capacitors) and / or circuits for coupling components of computing device 17000 to an energy source separate from computing device 17000 (e.g., AC line power).
[0087] The computing device 17000 may include a display device 17010 (eg, multiple display devices). The display device 17010 may include any visual indicator, 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.
[0088] The computing device 17000 may include other input / output (I / O) devices 17012. For example, the other I / O devices 17012 may include one or more audio output devices (e.g., speakers, headphones, earbuds, alarms, etc.), one or more audio input devices (e.g., microphones or microphone arrays), positioning devices (e.g., GPS devices that communicate with satellite-based systems to receive the location of the computing device 17000 as is known in the art), audio codecs, video codecs, printers, sensors (e.g., thermocouples or other temperature sensors, humidity sensors, pressure sensors, vibration sensors, accelerometers, gyroscopes, etc.), image capture devices such as cameras, keyboards, cursor control devices such as mice, stylus, trackballs, or touchpads, barcode readers, quick response (QR) code readers, or radio frequency identification (RFID) readers.
[0089] Computing device 17000 may have any suitable form factor suitable for its applications and settings, such as a handheld or mobile computing device (e.g., a cell phone, a smart phone, 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.
[0090] 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. Fig.18 18000 is a block diagram of an example 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., Figure 1 The Scientific Instrument Support Module 1000 and Figure 3 to Figure 8 Methods 3000 to 8000) may be implemented by one or more of the scientific instrument 18010 of the scientific instrument support system 18000, the user local computing device 18020, the service local computing device 18030, or the remote computing device 18040.
[0091] 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 the Fig.17 Any embodiment of the computing device 17000 discussed herein, and 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 be adopted as described herein. Fig.17 Any suitable implementation form of the implementations of computing device 17000 discussed.
[0092] 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 suitable form described herein. Fig.17 The processing device 17002 discussed above may be in the form of any processing device, and the processing device 18002 included in different devices 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 form or different forms. The storage device 18004 may take any suitable form, including those described herein. Fig.17The storage device 18004 discussed above may be in the form of any storage device, and the storage device 18004 included in different devices 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 form or different forms. The interface device 18006 may take any suitable form, including those described herein. Fig.17 The form of any of the interface devices 17006 discussed, and the interface devices 18006 included in different devices 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 form or different forms.
[0093] The scientific instrument 18010, the user local computing device 18020, the service local computing device 18030, and the remote computing device 18040 can communicate with other elements of the scientific instrument support system 18000 via a communication path 18008. The communication path 18008 can communicatively couple the interface device 18006 of different elements of the elements of the scientific instrument support system 18000, as shown, and can be a wired or wireless communication path (e.g., according to the present reference Fig.17 The interface device 17006 of the computing device 17000 may be any communication technology discussed in the communication technology section). Fig.18 The specific scientific instrument support system 18000 depicted in FIG. 1 includes a communication path between each pair of devices in the scientific instrument 18010, the user local computing device 18020, the service local computing device 18030, and the remote computing device 18040, but this "fully connected" implementation is merely illustrative, and in various embodiments, various communication paths in the communication paths 18008 may not exist. 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, but may communicate with the scientific instrument 18010 via the communication path 18008 between the service local computing device 18030 and the user local computing device 18020 and the communication path 18008 between the user local computing device 18020 and the scientific instrument 18010.
[0094] The user-local computing device 18020 can be a computing device local to the user of the scientific instrument 18010 (e.g., according to any of the embodiments of the computing device 17000 discussed herein). In some embodiments, the user-local computing device 18020 can also be local to the scientific instrument 18010, but this is not necessarily the case; for example, a user-local computing device 18020 in a user's home or office can be remote from the scientific instrument 18010, but in communication with the scientific instrument so that the user can 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 can be a laptop, a smartphone, or a tablet device. In some embodiments, the user-local computing device 18020 can be a portable computing device.
[0095] The service local computing device 18030 can be a computing device local to the entity serving the scientific instrument 18010 (e.g., according to any of the embodiments of the computing device 17000 discussed herein). For example, the service local computing device 18030 can be local to the manufacturer of the scientific instrument 18010 or to a third-party service company. In some embodiments, the service local computing device 18030 can 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., self-test results 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 via multiple "indirect" communication paths 18008, as described above) to send data to the scientific instrument 18010, the user local computing device 18020 and / or the remote computing device 18040 (e.g., thereby updating programming instructions (such as firmware) in the scientific instrument 18010 to initiate execution of a test or calibration sequence in the scientific instrument 18010, updating programming 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 utilize the scientific instrument 18010 or the user's local computing device 18020 to communicate with the service local computing device 18030 to report problems with the scientific instrument 18010 or the user's local computing device 18020, thereby requesting a technician visit to improve the operation of the scientific instrument 18010, order consumables or replacement parts associated with the scientific instrument 18010, or for other purposes.
[0096] Remote computing device 18040 can be a computing device remote from scientific instrument 18010 and / or user local computing device 18020 (e.g., according to any of the embodiments of computing device 17000 discussed herein). In some embodiments, remote computing device 18040 can be included in a data center or other large-scale server environment. In some embodiments, remote computing device 18040 can include a network attached storage device (e.g., as part of storage device 18004). Remote computing device 18040 can store data generated by scientific instrument 18010, perform analysis of data generated by scientific instrument 18010 (e.g., according to programming instructions), facilitate communication between user local computing device 18020 and scientific instrument 18010, and / or facilitate communication between service local computing device 18030 and scientific instrument 18010.
[0097] In some embodiments, there may be no Fig.18 One or more of the elements of the scientific instrument support system 18000 illustrated in FIG. In addition, in some embodiments, there may be Fig.18 18000. 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 located in different locations). As another example, the scientific instrument support system 18000 may include multiple scientific instruments 18010, all of which are in communication with the service local computing device 18030 and / or the remote computing device 18040; in such embodiments, the service local computing device 18030 may monitor these multiple scientific instruments 18010, and the service local computing device 18030 may cause updates or other information to be "broadcasted" to multiple scientific instruments 18010 simultaneously. Different scientific instruments 18010 in the scientific instrument support system 18000 may be close to each other (e.g., in the same room) or far away from each other (e.g., on different floors of a building, in different buildings, in different cities, etc.). In some embodiments, the scientific instrument 18010 may be connected to an Internet of Things (IoT) stack that allows command and control of the scientific instrument 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 instrument 18010 through an intermediary remote computing device 18040. In some embodiments, the scientific instrument 18010 may be sold by a manufacturer along with one or more associated user-local computing devices 18020 as part of a local scientific instrument computing unit 18012.
[0098] In some embodiments, different scientific instruments among 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's local computing device 18020 may combine data from different types of scientific instruments 18010 included in the scientific instrument support system 18000.
[0099] The following paragraphs provide various examples of the embodiments disclosed herein.
[0100] Embodiment 1 includes a scientific instrument support device, which includes memory hardware configured to store instructions and processing hardware configured to execute the instructions. The instructions include: processing metadata to identify extended attributes present in the metadata; loading one or more semantic models based on the media type annotation in the metadata; and querying the loaded one or more semantic models for corresponding extended attribute characteristics that match the extended attribute characteristics in the metadata. The instructions include: in response to finding the corresponding extended attribute characteristics in a selected semantic model among the one or more semantic models: matching each extended attribute characteristic in the metadata with one of the one or more corresponding data characteristics in the selected semantic model; aligning each corresponding data characteristic with a node on an output graph; generating relationships between nodes on the output graph based on object characteristics in the selected semantic model; testing relationships between nodes on the output graph; removing erroneous relationships from the output graph; and converting a graphical user interface to display the output graph to a user.
[0101] Embodiment 2 includes the subject matter described in embodiment 1, and further specifies that the instructions include: in response to no matching extended attribute characteristic being found in the metadata: predicting the most likely semantic model from the one or more semantic models; and matching each extended attribute characteristic in the metadata with a possible data characteristic in the most likely semantic model.
[0102] Embodiment 3 includes the subject matter described in Embodiment 2, and further specifies that predicting the most likely semantic model from the one or more semantic models includes: calculating the distance between the extended attribute characteristics in the metadata and the extended attribute characteristics in each of the one or more semantic models; calculating the total matching score of each of the one or more semantic models based on the calculated distance; and selecting the semantic model with the highest total matching score as the most likely semantic model.
[0103] Embodiment 4 includes the subject matter described in embodiment 2 or embodiment 3, and further specifies that matching each extended attribute characteristic in the metadata with the possible data characteristic in the most likely semantic model includes: determining whether the extended attribute characteristic in the metadata and the possible extended attribute characteristic in the most likely semantic model have a matching score higher than a threshold; and in response to determining that the match between the extended attribute characteristic in the metadata and the possible extended attribute characteristic in the most likely semantic model is higher than the threshold, matching the extended attribute characteristic in the metadata with the possible extended attribute characteristic in the most likely semantic model.
[0104] Embodiment 5 includes the subject matter according to any one of Embodiments 1 to 4, and further specifies that matching each extended attribute characteristic in the metadata with one of the corresponding data characteristics in the selected semantic model includes: selecting a data characteristic in the selected semantic model; selecting an extended attribute characteristic from the semantic model based on the selected data characteristic; determining whether a value of the selected extended attribute characteristic exists in the metadata; and in response to determining that the value of the selected extended attribute characteristic exists in the metadata, adding the selected data characteristic and the associated extended attribute characteristic from the metadata to an array, the associated extended attribute characteristic corresponding to the value of the selected extended attribute characteristic.
[0105] Embodiment 6 includes the subject matter described in embodiment 5, and further specifies that aligning each corresponding data characteristic with the node on the output graph includes: selecting a data characteristic and an associated extended attribute characteristic combination from the array; and generating the node on the output graph, the node representing the selected data characteristic and extended attribute characteristic combination.
[0106] Embodiment 7 includes the subject matter according to any one of Embodiments 1 to 6, and further specifies that generating a relationship between nodes on the output graph based on object properties 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 range associated with the domain; checking whether there is a second node corresponding to the selected range; and in response 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.
[0107] Embodiment 8 includes the subject matter described in Embodiment 7, and further specifies that generating the relationship between nodes on the output graph based on object properties in the semantic model includes: in response to determining that the second node does not exist, generating the second node on the output graph based on the range.
[0108] Embodiment 9 includes the subject matter according to any one of Embodiments 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 would disconnect any other node on the output graph; and in response to determining that removing the selected test node would not disconnect any other node on the output graph, marking the selected test node as an error.
[0109] Embodiment 10 includes the subject matter of embodiment 9, and further specifies that removing error relations from the output graph comprises removing test nodes marked as errors from the output graph.
[0110] Embodiment 11 includes the subject matter described in any one of Embodiments 1 to 10, and further specifies that the instructions include: generating data triples based on extended attribute characteristics in the metadata and corresponding data characteristics in the selected semantic model; and generating nodes and links on the output graph based on the data triples.
[0111] Embodiment 12 includes the subject matter described in embodiment 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.
[0112] Embodiment 13 includes a computer-implemented method for scientific instrument support. The method includes: processing metadata to identify extended attributes present in the metadata; loading one or more semantic models based on the media type annotation in the metadata; querying the loaded one or more semantic models for corresponding extended attribute characteristics that match the extended attribute characteristics in the metadata; and in response to finding the corresponding extended attribute characteristics in a selected semantic model in the one or more semantic models: matching each extended attribute characteristic in the metadata with one of the one or more corresponding data characteristics in the selected semantic model; aligning each corresponding data characteristic with a node on an output graph; generating relationships between nodes on the output graph based on object characteristics in the selected semantic model; testing relationships between nodes on the output graph; removing erroneous relationships from the output graph; and converting a graphical user interface to display the output graph to a user.
[0113] Embodiment 14 includes the subject matter according to embodiment 13, and further specifies that the method includes: in response to not finding a matching extended attribute characteristic in the metadata: predicting the most likely semantic model from the one or more semantic models; and matching each extended attribute characteristic in the metadata with a possible data characteristic in the most likely semantic model.
[0114] Embodiment 15 includes the subject matter described in Embodiment 14, and further specifies that predicting the most likely semantic model from the one or more semantic models includes: calculating the distance between the extended attribute characteristics in the metadata and the extended attribute characteristics in each of the one or more semantic models; calculating the total matching score of each of the one or more semantic models based on the calculated distance; and selecting the semantic model with the highest total matching score as the most likely semantic model.
[0115] Embodiment 16 includes the subject matter according to embodiment 14 or 15, and further specifies that matching each extended attribute characteristic in the metadata with the possible data characteristic in the most likely semantic model includes: determining whether the extended attribute characteristic in the metadata and the possible extended attribute characteristic in the most likely semantic model have a matching score higher than a threshold; and in response to determining that the match between the extended attribute characteristic in the metadata and the possible extended attribute characteristic in the most likely semantic model is higher than the threshold, matching the extended attribute characteristic in the metadata with the possible extended attribute characteristic in the most likely semantic model.
[0116] Embodiment 17 includes the subject matter according to any one of Embodiments 13 to 16, and further specifies that matching each extended attribute characteristic in the metadata with one of the corresponding data characteristics in the selected semantic model includes: selecting a data characteristic in the selected semantic model; selecting an extended attribute characteristic from the semantic model based on the selected data characteristic; determining whether a value of the selected extended attribute characteristic exists in the metadata; and in response to determining that the value of the selected extended attribute characteristic exists in the metadata, adding the selected data characteristic and the associated extended attribute characteristic from the metadata to an array, the associated extended attribute characteristic corresponding to the value of the selected extended attribute characteristic.
[0117] Embodiment 18 includes the subject matter described in embodiment 17, and further specifies that aligning each corresponding data characteristic with a node on the output graph includes: selecting a data characteristic and an associated extended attribute characteristic combination from the array; and generating the node on the output graph, the node representing the selected data characteristic and extended attribute characteristic combination.
[0118] Embodiment 19 includes the subject matter according to any one of Embodiments 13 to 18, and further specifies that generating a relationship between nodes on the output graph based on object properties 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 range associated with the domain; checking whether there is a second node corresponding to the selected range; and in response 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.
[0119] Embodiment 20 includes the subject matter described in embodiment 19, and further specifies that generating the relationship between nodes on the output graph based on object properties in the semantic model includes: in response to determining that the second node does not exist, generating the second node on the output graph based on the range.
[0120] Embodiment 21 includes the subject matter described in any one of Embodiments 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 would disconnect any other node on the output graph; and in response to determining that removing the selected test node would not disconnect any other node on the output graph, marking the selected test node as an error.
[0121] Embodiment 22 includes the subject matter of Embodiment 21, and further specifies that removing error relations from the output graph comprises removing test nodes marked as errors from the output graph.
[0122] Embodiment 23 includes the subject matter described in any one of Embodiments 13 to 22, and further specifies that the method includes: generating data triples based on extended attribute characteristics in the metadata and corresponding data characteristics in the selected semantic model; and generating nodes and links on the output graph based on the data triples.
[0123] Embodiment 24 includes the subject matter described in embodiment 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.
[0124] Embodiment 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 metadata to identify extended attributes present in the metadata; loading one or more semantic models based on the media type annotation in the metadata; querying the loaded one or more semantic models for corresponding extended attribute characteristics that match the extended attribute characteristics in the metadata; in response to finding the corresponding extended attribute characteristics in a selected semantic model among the one or more semantic models: matching each extended attribute characteristic in the metadata with a corresponding data characteristic in one or more corresponding data characteristics in the selected semantic model; aligning each corresponding data characteristic with a node on an output graph; generating relationships between nodes on the output graph based on object characteristics in the selected semantic model; testing relationships between nodes on the output graph; removing erroneous relationships from the output graph; and converting 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, and Processing hardware configured to execute the instructions, wherein the instructions include: processing the metadata to identify extended attributes present in the metadata, loading one or more semantic models based on the media type annotation in the metadata, querying the loaded one or more semantic models for corresponding extended attribute characteristics that match the extended attribute characteristics in the metadata, In response to finding a corresponding extended attribute property in a selected semantic model among the one or more semantic models: matching each extended attribute property in the metadata with one of the one or more corresponding data properties in the selected semantic model, Align each corresponding data feature with a node on the output graph, generating relationships between nodes on the output graph based on object properties in the selected semantic model, testing the relationships between nodes on the output graph, removing erroneous relations from the output graph, and The graphical user interface is transformed to display the output graph to the user.
2. The scientific instrument support device according to claim 1, wherein the instruction comprises: In response to not finding a matching extended attribute characteristic in the metadata: predicting a most likely semantic model from the one or more semantic models; as well as Each extended attribute property in the metadata is matched with a possible data property in the most probable semantic model.
3. The scientific instrument support device according to claim 2, wherein predicting the most likely semantic model from the one or more semantic models comprises: calculating a distance between the extended attribute characteristic in the metadata and the extended attribute characteristic in each of the one or more semantic models; calculating a total matching score for each of the one or more semantic models based on the calculated distance; as well as The semantic model with the highest overall matching score is selected as the most likely semantic model.
4. The scientific instrument support device according to claim 2, wherein matching each extended attribute characteristic in the metadata with the possible data characteristic in the most likely semantic model comprises: determining whether the extended attribute characteristic in the metadata and the possible extended attribute characteristic in the most likely semantic model have a matching score above a threshold; as well as In response to determining that a match between the extended attribute characteristics in the metadata and the possible extended attribute characteristics in the most probable semantic model is above the threshold, matching the extended attribute characteristics in the metadata with the possible extended attribute characteristics in the most probable semantic model.
5. The scientific instrument support device according to claim 1, wherein matching each extended attribute property in the metadata with one of the corresponding data properties in the selected semantic model comprises: Select data features 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; as well as In response to determining that the value of the selected extended attribute property is present in the metadata, the selected data property and an associated extended attribute property from the metadata are added to an array, the associated extended attribute property corresponding to the value of the selected extended attribute property.
6. The scientific instrument support device of claim 5, wherein aligning each corresponding data feature with the node on the output graph comprises: selecting a data property and an associated extended attribute property combination from the array; as well as The nodes on the output graph are generated, the nodes representing the selected data property and extended attribute property combination.
7. The scientific instrument support device according to claim 1, wherein generating the relationship between nodes on the output graph based on the object properties in the selected semantic model comprises: 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 scope associated with the domain; Check if there is a second node corresponding to the selected range; as well as In response to determining that the second node exists, a link extending from the first node to the second node is generated on the output graph based on the selected object property.
8. The scientific instrument support device according to claim 7, wherein generating the relationship between nodes on the output graph based on the object properties in the semantic model comprises: In response to determining that the second node does not exist, generating the second node on the output graph based on the range.
9. The scientific instrument support device according to claim 1, wherein testing the relationship between nodes on the output graph comprises: selecting a test node on the output graph; determining whether removing the selected test node would disconnect any other nodes on the output graph; as well as In response to determining that removing the selected test node would not disconnect any other nodes on the output graph, marking the selected test node as an error.
10. The scientific instrument support device according to claim 1, wherein the instruction comprises: generating a data triple based on the extended attribute characteristics in the metadata and the corresponding data characteristics in the selected semantic model; as well as Nodes and links are generated on the output graph based on the data triples.
11. A computer-implemented method for scientific instrument support, the method comprising: processing the metadata to identify extended attributes present in the metadata, Loading one or more semantic models based on the media type annotation in the metadata, querying the loaded one or more semantic models for corresponding extended attribute characteristics that match the extended attribute characteristics in the metadata, In response to finding a corresponding extended attribute property in a selected semantic model among the one or more semantic models: matching each extended attribute characteristic in the metadata with one of one or more corresponding data characteristics in the selected semantic model, aligning each corresponding data characteristic with a node on the output graph, generating relationships between nodes on the output graph based on object properties in the selected semantic model, testing the relationships between nodes on the output graph, removing erroneous relations from the output graph, and The graphical user interface is transformed to display the output graph to the user.
12. The method according to claim 11, further comprising: In response to not finding a matching extended attribute characteristic in the metadata: predicting a most likely semantic model from the one or more semantic models; as well as Each extended attribute property in the metadata is matched with a possible data property in the most probable semantic model.
13. The method of claim 12, wherein predicting the most likely semantic model from the one or more semantic models comprises: calculating a distance between the extended attribute characteristic in the metadata and the extended attribute characteristic in each of the one or more semantic models; calculating a total matching score for each of the one or more semantic models based on the calculated distance; as well as The semantic model with the highest overall matching score is selected as the most likely semantic model.
14. The method according to claim 12, wherein matching each extended attribute characteristic in the metadata with the possible data characteristic in the most likely semantic model comprises: determining whether the extended attribute characteristic in the metadata and the possible extended attribute characteristic in the most likely semantic model have a matching score above a threshold; as well as In response to determining that a match between the extended attribute characteristics in the metadata and the possible extended attribute characteristics in the most probable semantic model is above the threshold, matching the extended attribute characteristics in the metadata with the possible extended attribute characteristics in the most probable semantic model.
15. The method of claim 11, wherein matching each extended attribute property in the metadata with one of the corresponding data properties in the selected semantic model comprises: Select data features 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; as well as In response to determining that the value of the selected extended attribute property is present in the metadata, the selected data property and an associated extended attribute property from the metadata are added to an array, the associated extended attribute property corresponding to the value of the selected extended attribute property.
16. The method of claim 15, wherein aligning each corresponding data feature with the node on the output graph comprises: selecting a data property and an associated extended attribute property combination from the array; as well as The nodes on the output graph are generated, the nodes representing the selected data property and extended attribute property combination.
17. The method according to claim 11, wherein generating the relationship between nodes on the output graph based on the object properties in the selected semantic model comprises: 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 scope associated with the domain; Check if there is a second node corresponding to the selected range; as well as In response to determining that the second node exists, a link extending from the first node to the second node is generated on the output graph based on the selected object property.
18. The method according to claim 17, wherein generating the relationship between nodes on the output graph based on the object properties in the semantic model comprises: In response to determining that the second node does not exist, generating the second node on the output graph based on the range.
19. The method of claim 11, wherein testing the relationship between nodes on the output graph comprises: selecting a test node on the output graph; determining whether removing the selected test node would disconnect any other nodes on the output graph; as well as In response to determining that removing the selected test node would not disconnect any other nodes on the output graph, marking the selected test node as an error.
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 perform steps comprising: processing the metadata to identify extended attributes present in the metadata, Loading one or more semantic models based on the media type annotation in the metadata, querying the loaded one or more semantic models for corresponding extended attribute characteristics that match the extended attribute characteristics in the metadata, In response to finding a corresponding extended attribute property in a selected semantic model among 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, aligning each corresponding data property with a node on the output graph, generating relationships between nodes on the output graph based on object properties in the selected semantic model, testing the relationships between nodes on the output graph, removing erroneous relations from the output graph, and The graphical user interface is transformed to display the output graph to the user.