Computer-implemented method, data structure, and apparatus for providing and / or storing knowledge graph change history

The system efficiently tracks and manages change histories in knowledge graphs using RDF-Star triplets, addressing the lack of such capabilities in conventional systems by enabling precise restoration and retrieval of previous versions and accurate responses.

JP2025169933APending Publication Date: 2025-11-14ROBERT BOSCH GMBH
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025076616
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-05-03
Filing Date
2025-05-02
Publication Date
2025-11-14

AI Technical Summary

Technical Problem

Conventional knowledge graph systems lack efficient methods to track and manage change histories, including who made changes, when they were made, and how, which hinders the ability to restore previous versions and provide accurate responses from different points in time.

Method used

A system is proposed that stores change histories in a second knowledge graph using RDF-Star triplets, allowing for the tracking of changes at a fine granularity, including who made the changes, when, and how, without requiring decompression, and enables efficient retrieval of older versions.

Benefits of technology

This approach allows for precise tracking and retrieval of change histories, enabling the restoration of previous knowledge graph versions and providing accurate responses from different points in time, with improved efficiency and reduced computational resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025169933000001_ABST
    Figure 2025169933000001_ABST
Patent Text Reader

Abstract

To provide a computer-implemented method, a data structure, and an apparatus (120) for providing and / or storing change history of a first knowledge graph (102).SOLUTION: An apparatus (120) includes at least one memory (112), particularly a non-volatile memory. A second knowledge graph (104) including at least part of a first knowledge graph (102) is stored in the at least one memory (112). The second knowledge graph (104) includes change history. The change history includes at least one triplet including the triplet of the first knowledge graph (102) as a subject. At least one triplet includes a predicate and an object, and the predicate and the object link the triplet of the first knowledge graph (102) with a subgraph of the second knowledge graph (104) that includes information about changes made in the first knowledge graph (102), in particular an RDF graph of the second knowledge graph.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] Conventional technology The present invention relates to computer-implemented methods, data structures and apparatus for providing and / or storing change histories of knowledge graphs. [Background technology]

[0002] Knowledge graphs are used in databases to store information about a subject area, and can provide responses to queries with the information stored in the knowledge graph at the time of the query.

[0003] The change history, including one or more changes to the information stored in the knowledge graph, can be stored, for example, in a Resource Description Framework database, or RDF database, for the knowledge graph. An example of an RDF database is Ontotext GraphDB Documentation Release 10.6.2., 26 March 2024, available at https: / / graphdb.ontotext.com / documentation / 10.6 / pdf / GraphDB.pdf. [Prior art documents] [Non-patent literature]

[0004] [Non-Patent Document 1] Ontotext GraphDB Documentation Release 10.6.2., 26 March 2024 (available at https: / / graphdb.ontotext.com / documentation / 10.6 / pdf / GraphDB.pdf) Summary of the Invention [Means for solving the problem]

[0005] Disclosure of the Invention The subject matter of the independent claims allows the history of changes to be tracked.

[0006] For example, the change history includes information indicating how the information stored in the knowledge graph has changed over time.

[0007] For example, the change history includes information indicating who or what caused a change to the information stored in the knowledge graph, or when or how a change to the information stored in the knowledge graph was caused.

[0008] These change histories make it possible to restore previous versions of the knowledge graph, starting from the version of the knowledge graph that exists after the information stored in the knowledge graph has been changed.

[0009] The change history allows a knowledge graph that is up to date at a given point in time to provide a response that includes information from a time before that point in time, i.e., information from the past.

[0010] Any version of the Knowledge Graph at an earlier point in time can be recovered from a Knowledge Graph that exists at a later point in time. The change history of older versions of the Knowledge Graph can also be calculated or used in a similar manner by adding a time to the change history query so that only changes up to that point in time are considered and propagated.

[0011] The change history can provide origin information, i.e., information about who or what caused a change to the information stored in the knowledge graph, or when or how a change to the information stored in the knowledge graph was caused.

[0012] The change history allows changes to information in the knowledge graph to be canceled or repaired, or to be integrated with information already stored in the knowledge graph.

[0013] The change history can provide knowledge graph-based database information at different points in time when determining responses to queries.

[0014] A knowledge graph stores information as triplets. A triplet includes, for example, two nodes and one edge of the knowledge graph, particularly in the form of node-predicate-node, where the edge is a predicate. A triplet includes, for example, a node, a predicate, and a literal, particularly in the form of node-predicate-literal, where the literal includes, for example, a truth value, i.e., true or false, a text, or a data value. A node is, for example, an instance, a class, or a property.

[0015] The change history allows for the complete tracking of all changes made in the knowledge graph down to the smallest granularity, i.e., changes in individual triplets.

[0016] An apparatus is proposed for providing and / or storing a change history of a first knowledge graph, the apparatus comprising at least one, particularly non-volatile, memory in which a second knowledge graph is stored, the second knowledge graph comprising at least a part of the first knowledge graph, the change history comprising at least one triplet comprising a triplet of the first knowledge graph as a subject, the at least one triplet comprising a predicate and an object, where the predicate and the object link the triplet of the first knowledge graph with a subgraph of the second knowledge graph, in particular an RDF graph of the second knowledge graph, comprising information about changes made in the first knowledge graph. The second knowledge graph stores at least a part of the first knowledge graph and the change history. This means that, unlike storing the change history in a file or a repository or a database table, evaluation of the change history is possible without a change of format. The first knowledge graph and the second knowledge graph store the change history in triplets, i.e., without compression, i.e., evaluation of the change history does not require decompression, as would be required for backup to compressed files in a database.

[0017] Preferably, the information is configured to indicate how the information stored in the first knowledge graph has changed over time, or by whom or what caused the change in the information stored in the first knowledge graph, or when or how the change in the information stored in the first knowledge graph was caused.

[0018] Preferably, the first knowledge graph comprises information from the domains of physics, chemistry, medicine, biology, in particular information about a technical system, preferably a factory or a building or a vehicle or a sensor or a digital imaging system or a computer network or a heating system and / or a cooling system, in particular representing information about a digital twin of the factory or a building or a vehicle or a sensor or a digital imaging system or a computer network or a heating system and / or a cooling system.

[0019] For example, the device is configured such that multiple triplets changed by the change are contained in the subject of each triplet in the change history, and each triplet in the change history has the same object and the same predicate.

[0020] For example, the apparatus may include a computing device configured to receive and store changes in a second knowledge graph, the device configured to determine information dependent on the received changes or the type of change or the time of receipt of the changes to store in the second knowledge graph as part of the change history. The computing device captures changes to the first knowledge graph, for example, from communications with the first knowledge graph. The computing device may be configured to capture information about changes to the change history similarly from communications with the knowledge graph, or to add information itself dependent on the changes or the type of change or the time of receipt of the changes.

[0021] The computing device is configured to receive a query for a change, in particular a SPARQL-Star query, and the device is configured to determine a response to the query depending on the query using a second knowledge graph, and the computing device is configured to send a response including information about the change or information about cancellation of the change, where the information about the change can be configured to indicate how the information stored in the first knowledge graph has changed over time, or who or what caused the change to the information stored in the first knowledge graph, or when or how the change to the first knowledge graph was caused.

[0022] The device can be configured to determine at least one triplet, in particular one or more triplets containing information. Triplets from the change history correspond to changed triplets that represent the change. This makes information from triplets from the change history available for all elements from the triplet, i.e., with minimal granularity. Each individual change in the first knowledge graph can be extracted from the second knowledge graph. Triplets that have changed due to a change form, for example, the subject of a triplet that contains at least part of the information and has the same predicate. The object is, for example, a node of a subgraph. The subgraph describes, for example, part of the information.

[0023] The change in the first knowledge graph can be configured to include removing a triplet from the first knowledge graph or adding a triplet to the first knowledge graph, or the change in the first knowledge graph can be configured to include updating a triplet in the first knowledge graph, particularly by replacing the triplet with another triplet.

[0024] In a method for providing and / or storing a change history of a first knowledge graph, a second knowledge graph is provided that comprises at least a part of the first knowledge graph, the second knowledge graph comprising the change history, the change history comprising at least one triplet comprising a triplet of the first knowledge graph as a subject, the at least one triplet comprising a predicate and an object, the predicate and the object being configured to link the triplet of the first knowledge graph with a subgraph of the second knowledge graph, in particular an RDF graph of the second knowledge graph, that comprises information about changes made in the first knowledge graph.

[0025] A change history is provided, the information being configurable to indicate how the information stored in the first knowledge graph has changed over time, or who or what caused a change to the information stored in the first knowledge graph, or when or how a change to the information stored in the first knowledge graph was caused.

[0026] The first knowledge graph comprises information from the domains of physics, chemistry, medicine, biology, in particular information about technical systems, preferably factories or buildings or vehicles or sensors or digital imaging systems or computer networks or heating and / or cooling systems, and in particular can be configured to represent information about digital twins of factories or buildings or vehicles or sensors or digital imaging systems or computer networks or heating and / or cooling systems.

[0027] The multiple triplets that are changed by the change can be contained in the subject of each triplet in the change history, and each triplet in the change history can be configured to have the same object and the same predicate.

[0028] a change to a first knowledge graph is received and the change is stored in a second knowledge graph; information about the change to the second knowledge graph is received or the information is determined depending on the received change or the type of change or the time of receipt of the change and stored as part of the change history of the second knowledge graph; and / or a query about the change to the first knowledge graph is received and a response to the query is determined using the second knowledge graph depending on the query and the response includes information about the change or information about cancellation of the change, wherein the information about the change can be configured to indicate how the information stored in the first knowledge graph has changed over time, or who or what caused the change to the information stored in the first knowledge graph, or when or how the change to the information stored in the first knowledge graph was caused.

[0029] It can be configured that at least one triplet, in particular one or more triplets containing information, are determined.

[0030] The change in the first knowledge graph can be configured to include removing a triplet from the first knowledge graph or adding a triplet to the first knowledge graph, or the change in the first knowledge graph can be configured to include updating a triplet in the first knowledge graph, in particular by replacing the triplet with another triplet.

[0031] A data structure, in particular a computer-implemented data structure, for providing and / or storing the change history of a first knowledge graph can be configured to include at least one data field for a second knowledge graph, in particular for a triplet of the second knowledge graph, wherein the second knowledge graph includes the change history, wherein the change history includes at least one triplet with a triplet of the first knowledge graph as a subject, wherein the at least one triplet includes a predicate and an object, wherein the predicate and object link the triplet of the first knowledge graph with a subgraph of the second knowledge graph, in particular an RDF graph of the second knowledge graph, which includes information about the changes made in the first knowledge graph.

[0032] Further advantageous embodiments emerge from the following description and drawings. [Brief explanation of the drawings]

[0033] [Figure 1] FIG. 1 is a schematic diagram illustrating a database structure. [Figure 2] 1 is a flowchart illustrating steps of a method for providing and / or storing a change history of a knowledge graph. [Figure 3] FIG. 2 is a schematic diagram illustrating a data structure. DETAILED DESCRIPTION OF THE INVENTION

[0034] A schematic diagram of a database structure 100 is shown in FIG.

[0035] The database structure 100 includes a first knowledge graph 102 and a second knowledge graph 104. The database structure 100 is available, in this example, via an application executable on, for example, a client 106 or a server 108.

[0036] The first knowledge graph 102 may include information about a factory or a building or a vehicle or a sensor or a digital imaging system or a computer network or a heating system and / or a cooling system.

[0037] For example, the first knowledge graph 102 represents information about the digital twin of a factory or a building or a vehicle or a sensor or a digital imaging system or a computer network or a heating system and / or a cooling system.

[0038] In this example, database structure 100 includes a computing device 110 .

[0039] In this example, the first knowledge graph 102 and the second knowledge graph 104 are stored in at least one memory 112. The first knowledge graph 102 and the second knowledge graph 104 can be stored in different memories.

[0040] The first knowledge graph 102, in this example, is stored in a first dataset 114. The second knowledge graph 104, in this example, is stored in a second dataset 116. Upon initialization of the database structure 100, an initial first knowledge graph 102 and an initial second knowledge graph 104 can be configured to be provided, where the second knowledge graph 104 includes the first knowledge graph 102. The initial second knowledge graph 104, in this example, completely includes the initial first knowledge graph 102.

[0041] The second knowledge graph 104 further includes a change history.

[0042] The computing device 110 is configured to determine the change history.

[0043] The computing device 110 includes, for example, a software architecture and modules configured to determine the second knowledge graph 104 and the change history.

[0044] In this example, computing device 110 is configured to communicate with at least one memory 112 , client 106 and / or server 108 via respective communication connections 118 .

[0045] In this example, a computing device 110 is configured to receive a query for information from a first knowledge graph 102 and to determine and transmit a response to the query to the first knowledge graph 102. In this example, the computing device 110 is configured to determine the response to the query to the first knowledge graph 102 based on information stored in the first knowledge graph 102. The information is stored in the first knowledge graph 102 in the form of triplets. The response to the query, in this example, includes multiple triplets, or facts. The query, in this example, defines a subject, object, or predicate of at least one triplet retrieved as a response.

[0046] The computing device 110 is configured to receive a modification query for the first knowledge graph 102 and, depending on the modification query, modify information stored in the first knowledge graph 102. The modification query, in this example, defines a subject, an object, or a predicate of at least one triplet to be modified. The modification query, for example, defines how the subject, object, or predicate of the at least one triplet to be modified should be modified.

[0047] For example, computing device 110 may be configured to receive a query to add, remove, or modify information, i.e., a query to remove and add information. For example, computing device 110 may be configured to add information in response to an add query. For example, computing device 110 may be configured to remove information in response to a remove query. For example, computing device 110 may be configured to remove information and add other information in response to a modify query. In this example, the add or remove query defines a subject, object, or predicate of at least one triplet to be added or removed. The add query may, for example, define a subject, object, or predicate of at least one triplet to be added.

[0048] The apparatus 120 for providing and / or storing a change history of the first knowledge graph 102 is configured to receive a query for information from the second knowledge graph 104 and to determine and send a response to the query to the second knowledge graph 104. The apparatus 120 is configured to determine the response depending on information stored in the second knowledge graph 104. The apparatus 120 is configured to receive a query from the client 106 or the server 108 and to send a response to the client 106 and / or the server 108.

[0049] The device 120 is configured to receive a query about changes to the first knowledge graph 102 and, depending on the query about changes, modify information stored in the second knowledge graph 104. The device 120 is configured to receive a query about changes from the client 106 or the server 108.

[0050] For example, device 120 may be configured to receive a query to add, remove, or modify information, i.e., a query to remove and add. For example, device 120 may be configured to add information depending on the query to add. For example, device 120 may be configured to remove information depending on the query to remove. For example, device 120 may be configured to remove information and add other information depending on the query to modify.

[0051] The information is stored in the second knowledge graph 104 in the form of triplets.

[0052] The device 120 is configured to process, for example, queries to the second knowledge graph 104 and responses from the second knowledge graph 104, as well as queries to the first knowledge graph 102 and responses to the first knowledge graph 102, in a manner similar to that described for the computing device 110.

[0053] In this example, the device 120 is configured to modify the second knowledge graph 104 such that the second knowledge graph 104 includes the first knowledge graph 102 as modified by the modification query. The first knowledge graph 102 is a subset of the second knowledge graph 104 in this example. In this example, additional meta-information is provided within each triplet in the second knowledge graph 104. Furthermore, in this example, all triplets that were present in the first knowledge graph 102 up to that point in time are present in the second knowledge graph 104.

[0054] The first knowledge graph 102 included in the second knowledge graph 104 or the portion of the first knowledge graph 102 included in the second knowledge graph 104 is a subset of the first knowledge graph 102. After modifying the first knowledge graph 102, the second knowledge graph 104 includes at least a portion of the first knowledge graph 102 before the modification. In this example, after the modification, the modified first knowledge graph 102 is completely included in the second knowledge graph 104.

[0055] The second knowledge graph 104 further includes a change history. In this example, the change history includes triplets of the initial first knowledge graph 102 that were removed from the first knowledge graph 102 due to the change to the first knowledge graph 102. The change history further includes one triplet for each triplet that was removed from the first knowledge graph 102 and each triplet that was added to the first knowledge graph 102 in the change or that was changed in the change, where each triplet includes or contains information about the change.

[0056] The information may indicate, for example, how the information stored in the first knowledge graph 102 has changed over time.

[0057] The information may indicate, for example, who or what caused a change to the information stored in the first knowledge graph 102.

[0058] The information may indicate, for example, when or how a change to the information stored in the first knowledge graph 102 was caused.

[0059] The device 120 is configured to receive or determine change query information in response to a change query of the first knowledge graph 102. The device 120 is configured to store the change query information in the change history of the second knowledge graph 104. The change query information indicates, for example, who or what caused a change to the information stored in the first knowledge graph 102, or when or how a change to the information stored in the first knowledge graph 102 was caused. The device 120 is configured to receive the change query information from the client 106 or the server 108.

[0060] In this example, the device 120 includes the computing device 110 and the second knowledge graph 104. The device 120 can be configured to include the first knowledge graph 102. The device 120 can be configured to include at least one storage device 112.

[0061] The device 120 can be configured to include a client 106 and / or a server 108 .

[0062] In this example, the computing device 110 is configured to receive a modification query and information about the modification query, and modify the second knowledge graph 104 depending on the query and the information about the query.

[0063] In this example, the computing device 110 is configured to receive a query to the second knowledge graph 104 and to determine and transmit a response to the query to the second knowledge graph 104.

[0064] In this example, the computing device 110 is configured to determine a response dependent on information stored in the second knowledge graph 104. A query to the second knowledge graph 104 may relate to information from the first knowledge graph 102 or information from the change history.

[0065] Here, it is possible to search for information that was once stored in the first Knowledge Graph 102 at an earlier point in time but is no longer included at that time, because it is stored historically in the second Knowledge Graph 104. The search here can relate not only to its origin, but also to any other data, i.e., triplets.

[0066] In one example implementation, the information stored in the second knowledge graph 104 is implemented as a collection of RDF triplets and RDF-Star triplets, for example, each query or each response is implemented according to the SPARQL-Star query language.

[0067] The query to the second knowledge graph 104 is a SPARQL query or a SPARQL-Star query, in particular a SPARQL-Star / Update query, a SPARQL-Star / SELECT, a SPARQL / SELECT or a SPARQL-Star / CONSTRUCT query.

[0068] In this example, SPARQL queries are used for both knowledge graphs, but the first knowledge graph 102 uses SPARQL queries exclusively, and the second knowledge graph 104 uses SPARQL-Star queries primarily, and in some cases, SPARQL queries.

[0069] A specific example of a query to the first knowledge graph 102: -For changes, SPARQL / Update DELETE / INSERT WHERE, SPARQL / Update DELETE DATA, SPARQL / Update INSERT DATA -SPARQL / CONSTRUCT queries to calculate the delta of changes.

[0070] A specific example of a query to the second knowledge graph 104: -SPARQL-Star / Update INSERT DATA for changes -SPARQL-Star / SELECT or SPARQL / SELECT for querying change history - SPARQL-Star / CONSTRUCT or SPARQL-Star / Update DELETE / INSERT WHERE to restore older versions.

[0071] The first knowledge graph 102, in this example, includes triplets that represent information stored in the first knowledge graph 102. The second knowledge graph 104 includes triplets that represent triplets from the first knowledge graph 102, as well as additional RDF triplets and RDF-Star triplets that represent change history.

[0072] The change history includes, for example, information indicating how the information stored in the first knowledge graph 102 has changed over time.

[0073] The change history includes, for example, information indicating who or what caused a change to the information stored in the first knowledge graph 102.

[0074] The change history includes, for example, information indicating when or how a change to the information stored in the first knowledge graph 102 was caused.

[0075] In one example, device 120, particularly computing device 110, is configured to receive and process SPARQL queries using an ontology.

[0076] The device 120, in particular the computing device 110, can be configured to receive a SPARQL query for performing a change in the first knowledge graph 102, if the query is a SPARQL / Update DELETE DATA and / or INSERT DATA query, and to forward the query without modification to the first knowledge graph 102 for performing the change in the first knowledge graph 102.

[0077] The device 120, in particular the computing device 110, is configured to determine RDF-Star triplets and / or RDF triplets from the second knowledge graph 104, for example relying on an ontology and a SPARQL query.

[0078] The device 120, in particular the computing device 110, is configured to execute a query to the second knowledge graph 104, for example relying on the ontology and the SPARQL query, and the second knowledge graph 104 is configured to send one or more triplets from the second knowledge graph 104 in response to the SPARQL query.

[0079] The ontology is an extension of the one described in Belhajjame, K.; Cheney, J.; Corsar, D.; Garijo, D.; Soiland-Reyes, S.; Zednik, S.; Zhao, J. PROV-O: The PROV Ontology. W3C recommendation (2013), https: / / www.w3.org / TR / prov-o / .

[0080] The ontology includes the main classes "prov:Entity", "prov:Activity", and "prov:Agent" defined by PROV-O. The ontology includes the object properties "prov:wasGeneratedBy", "prov:wasInvalidatedBy", and "prov:wasAssociatedWith" defined by PROV-O. The ontology includes the datatype properties "prov:generatedAtTime" and "prov:invalidatedAtTime" defined by PROV-O.

[0081] With this extension, the class “prov:Entity” is divided into the following three new classes compared to PROV-O:

[0082] “provs:TripleChangeSet”: The class “provs:TripleChangeSet” is a direct subclass of the class “prov:Entity.” The class “provs:TripleChangeSet” is a class of a set of triplets from the first knowledge graph 102 that have changed due to a change.

[0083] “provs:TripleGenerationSet”: The class “provs:TripleGenerationSet” is a subclass of the class “provs:TripleChangeSet.” The class “provs:TripleGenerationSet” is a class of a set of triplets inserted by a change in the first knowledge graph 102.

[0084] “provs:TripleInvalidationSet”: The class “provs:TripleInvalidationSet” is a subclass of the class “provs:TripleChangeSet.” The class “provs:TripleInvalidationSet” is a class of a set of multiple triplets that have been removed by a change to the first knowledge graph 102.

[0085] The extension here includes a new object property "provs:belongsTo" compared to PROV-O.

[0086] The object property "provs:belongsTo" is supported by RDF-Star, i.e., the object property "provs:belongsTo" can be used to annotate a modified triplet with an instance of the class "provs:TripleGenerationSet" or an instance of the class "provs:TripleInvalidationSet" in the second knowledge graph 104 that contains information about the modification. In this example, "TripleGenerationSet" or "TripleInvalidationSet" are the objects and the modified triplet is the subject.

[0087] Optionally, the extension here can store a class "provs:Query" containing the SPARQL / Update query that caused the change as information about the change in the second knowledge graph 104. An instance of the class "provs:Query" contains, for example, the SPARQL / Update query as text.

[0088] The change information is contained in an RDF triplet and an RDF-Star triplet in this example. An RDF-Star triplet contains a subject, a predicate and an object. An RDF-Star triplet has the property that the subject or object itself can also be a triplet. Here, the triplet in the subject of the RDF-Star triplet is used. The ontology provides a vocabulary suitable for describing changes in one RDF triplet or RDF-Star triplet or in multiple RDF triplets or RDF-Star triplets.

[0089] An exemplary SPARQL / Update query includes, for example, as subqueries, a SPARQL / Update DELETE DATA query and a SPARQL / Update INSERT DATA query, i.e.:

number

[0090] The subquery "DELETE DATA" removes from the first knowledge graph 102 the triplet where the instance "ACU_0b9aff9c" maps the value "false" to the data type property "isReleased".

[0091] The subquery "INSERT DATA" adds to the first knowledge graph 102 a triplet, namely the triplet where the instance "ACU_0b9aff9c" maps the value "true" to the data type "isReleased".

[0092] The subquery “INSERT DATA” adds a second triplet to the first knowledge graph 102, i.e., the instance “ACU_0b9aff9c” has the value

number

[0093] Device 120, particularly computing device 110, can be configured to receive a SPARQL query and convert it into a SPARQL-Star query using a transformation. Device 120, particularly computing device 110, can be configured to apply the SPARQL-Star query to second knowledge graph 104.

[0094] Based on RDF-Star triplets and a particular chosen ontology representation, it requires less memory space compared to RDF reification, but meta-information about a triplet must be expressed as follows, because meta-information about a triplet cannot be expressed using RDF:

number

[0095] In one example, when storing changes or change history, data is only written to the second knowledge graph 104 without previously reading data from the second knowledge graph 104, finding data in the second knowledge graph 104, or matching data with existing data in the second knowledge graph. The high efficiency in storing changes and change history of the second knowledge graph 104 comes from only writing data there without previously reading / finding data there and without matching data with existing data. The formed SPARQL-Star / INSERT DATA query explicitly includes, so to speak, all RDF-Star triplets, and only needs to be added to the second knowledge graph 104 without any read operations and without modifying existing triplets.

[0096] When retrieving the change history, the data structure chosen makes it easier and faster to retrieve than using SPARQL with an RDF reification.

[0097] This allows older versions of the first knowledge graph 102 to be determined more quickly and with fewer computational resources compared to RDF reification and SPARQL.

[0098] The transformation itself is then explained in the example of transforming a SPARQL / Update query into a SPARQL-Star / Update query.

[0099] As a result of the SPARQL-Star / Update query, the second knowledge graph 104 contains the removed triplet that was embedded in the first RDF-Star triplet, i.e., as the subject of the first RDF-Star triplet. The first RDF-Star triplet contains a predicate with the object property "provs:belongsTo" and contains an instance of the class "provs:TripleInvalidationSet" as its object. This means that the first RDF-Star triplet associates the removed triplet with an instance of the class "provs:TripleInvalidationSet" via the object property "provs:belongsTo".

[0100] A single change can remove and / or add multiple triplets, respectively. In this example, the change includes one deleted triplet and two added triplets. The first RDF-Star triplet is the deleted triplet, and the second and third RDF-Star triplets are the added triplets. As a result of the SPARQL-Star / Update query, the second knowledge graph 104 includes the two added triplets that were embedded in the second or third RDF-Star triplet, i.e., as subjects of the second or third RDF-Star triplet. The second and third RDF-Star triplets include predicates with the object property "provs:belongsTo" and contain instances of the class "provs:TripleGenerationSet" as objects. This means that the second RDF-Star triplet and the third RDF-Star triplet associate the two added triplets via the object property "provs:belongsTo" with the same instance of the class "provs:TripleGenerationSet".

[0101] The second knowledge graph 104 may contain other triplets that describe the changes. In the following example, the first three triplets are RDF-Star triplets, and all other triplets are standard RDF triplets.

[0102]

number

[0103] In this example, an instance of the PROV-O class "prov:Agent" is the creator of the change, and an instance of the PROV-O class "prov:Activity" represents the activity that caused the change. In this example, the PROV-O data type property "prov:invalidatedAtTime" represents the time of removal, "prov:wasInvalidatedBy" represents the activity that caused the removal, "prov:generatedAtTime" represents the time of creation, "prov:wasGeneratedBy" represents the activity that caused the creation, and "prov:wasAssociatedWith" represents the creator of the activity. The "Agent Name" can identify a human or an application.

[0104] In this example, the change history RDF triplet and the RDF-Star triplet contain information about each incremental change made in the first knowledge graph 102.

[0105] In this example, the second knowledge graph 104 includes at least one RDF-Star triplet for each triplet from the first knowledge graph 102 to which information about the change is attached.

[0106] It is possible for multiple RDF-Star triplets with the same object and the same predicate to exist in the second knowledge graph 104, annotating simultaneously modified triplets with the same modification, for example, an RDF-Star triplet in an object is an instance that defines the origin of the triplet by another RDF triplet.

[0107] The result of converting the example SPARQL / Update query into an example SPARQL-Star / Update query is:

number

[0108] In this example, 2834417e represents a unique identifier that is attached as a postfix to each new instance to ensure that there is no other instance in the second knowledge graph 104 with which this instance conflicts.

[0109] An example of the instance identifier is s:TripleInvalidationSet_2834417e in prefix notation. The prefix "s" is a placeholder for a URL, e.g., http: / / www.bosch,com / semantics#, so that the instance identifier actually represents the URL http: / / www.bosch,com / semantics#TripleInvalidationSet_2834417e.

[0110] The transformation uses a predefined SPARQL-Star template, which in this example defines the structure and possible content of a SPARQL-Star / Update query.

[0111] The two subqueries (DELETE DATA, INSERT DATA) can be obtained as a single INSERT DATA SPARQL-Star query, as already mentioned above.

[0112] Optionally, a transformation of a SPARQL DELETE INSERT WHERE query having a WHERE clause that determines triplets from the first knowledge graph 102 can be provided. The DELETE or INSERT clause of the query can delete or insert these clauses in the triplet of the WHERE clause. For example, the transformation provides a first additional SPARQL CONSTRUCT query that determines a triplet to be removed, e.g., configured to remove the triplet computed by the first additional SPARQL CONSTRUCT query. For example, the transformation provides a second additional SPARQL-Star CONSTRUCT query that determines a triplet to be added, e.g., configured to add the triplet computed by the second additional SPARQL-Star CONSTRUCT query.

[0113] The device 120, particularly the computing device 110, can be configured to evaluate the change history. For example, the device 120, particularly the computing device 110, is configured to apply a change history query to the second knowledge graph 104. Because the changed triplets from the first knowledge graph 102 are stored in the second knowledge graph 104 as subjects of RDF-Star triplets, the subject, object, and / or predicate of the changed triplets can be directly searched. For example, the query includes the subject, predicate, and object of the triplets to be searched.

[0114] For example, the query includes the subject and predicate of one retrieved triplet and placeholders for the objects of one or more retrieved triplets. For example, the query includes the subject of one retrieved triplet and placeholders for the predicates and objects of one or more retrieved triplets. For example, the query includes the object and predicate of one retrieved triplet and placeholders for the subjects of one or more retrieved triplets. For example, the query includes the object of one retrieved triplet and placeholders for the predicates and subjects of one or more retrieved triplets. For example, the query includes the subject and object of one retrieved triplet and placeholders for the predicates of one or more retrieved triplets. For example, the query includes the predicate of one retrieved triplet and placeholders for the subjects and objects of one or more retrieved triplets.

[0115] An exemplary SPARQL-Star / SELECT query includes a mapping of placeholders to search patterns, such as:

number

[0116] The query defines a search for instances of provs:TripleGenerationSet (?tripleChangeSet rdf:type provs:TripleGenerationSet.), provs:TripleInvalidationSet (?tripleChangeSet rdf:type provs:TripleInvalidationSet.), combined with other conditions.

[0117] In this way, the query retrieves changes as they are anchored in the second knowledge graph 104 through these two types of instances, thereby retrieving changes with different constraints, for example, given a specific lower or upper time threshold.

[0118] In a search pattern, FILTER defines a condition, and BIND associates a string value, for example, "CREATED" or "DELETED", with the variable ?action in the search pattern. That is, in the query response, for each triplet, it is clear that it is an added triplet based on the string value "CREATED". A deleted triplet can take the value "DELETED" for the variable ?action.

[0119] In the search pattern, ?time represents a placeholder for the time of change, ?subject represents a placeholder for the subject of the retrieved triplet, ?pred represents a placeholder for the predicate of the retrieved triplet, ?agentLabel represents a placeholder for the creator, and ?activityLabel represents a placeholder for the activity that caused the change.

[0120] An example sort query after the change point of triplets from the first knowledge graph 102 in descending order is, for example:

number

[0121] SPARQL-Star CONSTRUCT queries can be used to restore the first knowledge graph 102 at a configurable point in time. An example query is:

number

[0122] In a query, ?PastDataTime represents a placeholder for a configurable point in time.

[0123] The filter "Filter(?timeOfGeneration<=?pastDateTime)" allows to search only for triplets (provs:TripleGenerationSet) formed before a given time.

[0124] The FILTER NOT EXISTS block ensures that triplets that were formed before the given time but then deleted again before the given time are filtered out, since they no longer actually exist at the given time.

[0125] The general logic of these queries is as follows: all triplets formed before a given time are searched for, then triplets that were deleted again before the given time are filtered out.

[0126] FIG. 2 shows a flow chart including steps of a method for providing and / or storing a change history of the first knowledge graph 102.

[0127] The method includes step 202 .

[0128] In step 202, a second knowledge graph 104 is provided.

[0129] The first knowledge graph 102 and the second knowledge graph 104 can be configured to be commonly provided at the first execution of step 202 after the start of the method or at initialization. The second knowledge graph 104 includes at least a portion of the first knowledge graph 102.

[0130] The second knowledge graph 104 includes a change history.

[0131] The first knowledge graph 102 includes, for example, triplets that represent information stored in the first knowledge graph 102. The second knowledge graph 104 is provided using, for example, RDF triplets and RDF-Star triplets that represent change history.

[0132] configurable to execute a SPARQL-Start / Update query against the second knowledge graph 104, the query comprising: For example, using information with a timestamp, i.e., information about the copy time, i.e., information about when the changes to the first knowledge graph 102 were made; with information about the author, i.e., who caused the change in the information stored in the first knowledge graph 102; with information about the reason for the change, i.e., what caused the change in the information stored in the first knowledge graph 102; A triplet from the first knowledge graph 102 is annotated once.

[0133] The creator is, for example, a person or an application. The information about the creator is, for example, the name of the person or application. The reason is, for example, an event such as an initial setup. The information about the reason is, for example, the name of the event.

[0134] Upon first execution or initialization of step 202, the change history may be empty.

[0135] Then, step 204 is executed.

[0136] In step 204, it is checked whether a query has been received.

[0137] If no query is received, step 204 is executed.

[0138] When a query is received, it is checked whether the query corresponds to an answer about a change to the first knowledge graph 102 or whether it is a change to be made in the first knowledge graph 102.

[0139] If the query corresponds to a change to be performed in the first knowledge graph 102, step 206 is performed.

[0140] If the query pertains to information about changes in the first knowledge graph 102, step 208 is performed.

[0141] In step 206, changes and change history of the second knowledge graph 104 are formed, where the changes are made according to the query of changes of the first knowledge graph 102. This means that in the second knowledge graph 104, a copy of the changes of the first knowledge graph 102 is provided incrementally.

[0142] In step 206, a change history is provided.

[0143] In step 206, information about changes to be made or made in the first knowledge graph 102, for example in accordance with the query about changes to the first knowledge graph 102, is stored in the second knowledge graph 104 as part of the change history.

[0144] For example, for a changed triplet that represents a change in the first knowledge graph 102, at least one RDF-Star triplet that represents information about the change is determined.

[0145] An RDF-Star triplet is formed containing the changed triplet in the subject. The RDF-Star triplet associates the changed triplet with an instance that defines the change via another triplet (the object of the triplet, an instance of class provs:TripleGenerationSet or provs:TripleInvalidationSet).

[0146] The RDF-Star triplet contains the modified triplet.

[0147] For example, RDF triplets and RDF-Star triplets containing information about changes made in the first knowledge graph 102 are determined.

[0148] For example, an RDF-Star triplet is determined that links the changed triplets with instances in the object (instances of class provs:TripleGenerationSet or provs:TripleInvalidationSet), each of which defines a change history via another RDF triplet.

[0149] For example, for multiple triplets that have been changed, an RDF triplet and an RDF-Star triplet that contain information about the changes are determined.

[0150] Information about the change can be configured to be received along with the query in step 204. For example, the query about the change to the first knowledge graph 102 may include how the information stored in the first knowledge graph 102 should be changed, or who or what caused the change to the information stored in the first knowledge graph 102, or when or how the change to the information stored in the first knowledge graph 102 was caused.

[0151] The information about the changes can be configured to be determined depending on the changes received in the query at step 204 .

[0152] For example, when a change is received that includes the removal of a triplet from the first knowledge graph 102, information about the change representing the removal of the triplet from the first knowledge graph 102 is determined.

[0153] For example, when a change is received that includes the addition of a triplet to the first knowledge graph 102, information about the change representing the addition of the triplet to the first knowledge graph 102 is determined.

[0154] The modification of the first knowledge graph 102 may include updating a triplet, in particular replacing a triplet with another triplet.

[0155] For example, when a change is received that includes the replacement of a triplet from the first knowledge graph 102 with another triplet, information about the change that represents the replacement, i.e., the removal of one triplet from the first knowledge graph 102 and the addition of another triplet to the first knowledge graph 102, is determined.

[0156] For example, the information about the change can be configured to determine the type of change or the time of receipt of the change, i.e., the time of receipt of the query in step 204. RDF triplets and RDF-Star triplets indicate, for example, how the information stored in the first knowledge graph 102 has changed over time.

[0157] The RDF-Star triplet is linked to an object, which in turn stores change information as an RDF triplet.

[0158] The type of change may indicate, for example, that one triplet is added or removed, or that one triplet is replaced by another triplet.

[0159] The RDF triplet indicates, for example, who or what caused a change in the information stored in the first knowledge graph.

[0160] The RPF triplet indicates, for example, when, i.e., at what point in time, or how, i.e., by, for example, the client 106 or the server 108, a change to the information stored in the first knowledge graph 102 was caused.

[0161] In step 208, a response to a query about changes in the first knowledge graph 102 is determined using the second knowledge graph 104 and depending on the query.

[0162] In step 208, the response is sent.

[0163] The response may include, for example, information about the change or information for responding to the change.

[0164] The information about changes indicates, for example, how the information stored in the first knowledge graph 102 has changed over time.

[0165] The information about the change may indicate, for example, who or what caused the change to the information stored in the first knowledge graph 102.

[0166] The information about the change indicates, for example, when or how the information stored in the first knowledge graph 102 was changed.

[0167] For example, for a change to the first knowledge graph 102, an RDF triplet and an RDF-Star triplet that represent information about the change are determined.

[0168] That is, a number of triplets are determined which together represent the change. An RDF-Star triplet forms the link of changed triplets to the change (an instance of class provs:TripleGenerationSet or provs:TripleInvalidationSet). An RDF triplet represents a change.

[0169] RDF-Star triplets are found, for example, by including the modified triplet in the subject.

[0170] The RDF triplets indicate, for example, how the information stored in the first knowledge graph 102 has changed over time.

[0171] The RDF triplet indicates, for example, who or what caused a change in the information stored in the first knowledge graph.

[0172] The RDF triplet indicates, for example, when or how a change to the information stored in the first knowledge graph 102 was caused.

[0173] The modification of the first knowledge graph 102 may include removing or adding triplets to the first knowledge graph 102.

[0174] The modification of the first knowledge graph 102 may include updating a triplet, in particular replacing that triplet with another triplet.

[0175] The change history includes, for example, information indicating how the information stored in the first knowledge graph 102 has changed over time.

[0176] The change history includes, for example, information indicating who or what caused a change to the information stored in the first knowledge graph 102.

[0177] The change history includes, for example, information indicating when or how the information stored in the first knowledge graph was changed.

[0178] FIG. 3 shows a schematic representation of a particular computer-implemented data structure 300 for providing and / or storing the change history of the first knowledge graph 102 .

[0179] The data structure 300 includes at least one data field 302 for the second knowledge graph 104 .

[0180] In this example, the data structure includes data fields 302 for the triplets of the second knowledge graph 104 .

[0181] This means that the data structure 300 includes a data field 302 for a triplet of the first knowledge graph 102 stored in the second knowledge graph 104 and additionally a data field 304 for a triplet representing the change history, i.e., information about the change. The data structure 300 includes a data field 302 for an RDF-Star triplet containing the changed triplet as a subject, and the data field 302 is linked to an object. The data structure 300 includes, for example, a data field 302 for at least one triplet of the change history containing a triplet of the first knowledge graph 102 as a subject. The at least one triplet includes a predicate and an object of the change history. The predicate and object of the at least one triplet of the change history connects the triplet of the first knowledge graph 102 with a subgraph of the second knowledge graph 104. The subgraph contains information about the changes made in the first knowledge graph 102. In this example, the subgraph is an RDF graph. The RDF graph contains the RDF triplets and RDF-Star triplets described above.

[0182] The data fields 302 differ, for example, in that the data fields 302 for the triplets of the first knowledge graph 102 and the data fields 302 for the change history, i.e., the data fields 302 for the RDF-Star triplets linked to information about the changes, are characterized differently within each data field 302 itself or within the data structure 300.

[0183] This means that the data structure 300 includes a data field 302 for the change history.

[0184] The change history includes at least one triplet that includes a triplet of the first knowledge graph 102 as a subject. The at least one triplet includes a predicate and an object. The predicate and object of the at least one triplet of the change history connects the triplet of the first knowledge graph 102 with a subgraph of the second knowledge graph 104. The subgraph includes information about the changes made in the first knowledge graph 102. In this example, the subgraph is an RDF graph. The RDF graph includes the RDF triplets and RDF-Start triplets described above.

Claims

1. An apparatus (120) for providing and / or storing a change history of a first knowledge graph (102), comprising: The device (120) comprises at least one memory (112), in particular a non-volatile memory, in which a second knowledge graph (104) is stored, the second knowledge graph (104) comprising at least a part of the first knowledge graph (102), the second knowledge graph (104) includes a change history, the change history including at least one triplet including a triplet of the first knowledge graph (102) as a subject, the at least one triplet including a predicate and an object; the descriptive term and the object link a triplet of the first knowledge graph (102) with a subgraph of the second knowledge graph (104), in particular an RDF graph of the second knowledge graph, containing information about changes made in the first knowledge graph (102); 1. An apparatus (120) comprising:

2. 2. The apparatus (120) of claim 1, wherein the information indicates how the information stored in the first knowledge graph (102) has changed over time, or who or what caused a change in the information stored in the first knowledge graph (102), or when or how a change in the information stored in the first knowledge graph (102) was caused.

3. the first knowledge graph (102) comprises information from the domains of physics, chemistry, medicine, biology, in particular information about technical systems, preferably factories or buildings or vehicles or sensors or digital imaging systems or computer networks or heating and / or cooling systems, in particular representing information about the digital twin of a factory or building or vehicle or sensor or digital imaging system or computer network or heating and / or cooling system, 3. The apparatus (120) of claim 1 or 2.

4. A plurality of triplets related to changes in the first knowledge graph (102) are contained in the subject of each triplet in the change history; each triplet of the change history has the same object and the same predicate; An apparatus (120) according to any one of claims 1 to 3.

5. the device (120) includes a computing device (110) configured to receive and store changes in the second knowledge graph (104); the device (120) is configured to receive information or determine the information depending on the received changes or the type of the changes or the time of receipt of the changes, and store the information in the second knowledge graph (104) as part of the change history; 5. The apparatus (120) of any one of claims 1 to 4.

6. The computing device (110) is configured to receive a query for modification, in particular a SPARQL-Star query; the device (120) is configured to determine a response to a query using the second knowledge graph (104) in dependence on the query; the computing device (110) is configured to send a response including information about the change or information about canceling the change; The information about the changes indicates how the information stored in the first knowledge graph (102) has changed over time, or who or what caused the change in the information stored in the first knowledge graph (102), or when or how the change in the first knowledge graph (102) was caused.

6. The apparatus (120) of any one of claims 1 to 5.

7. The change in the first knowledge graph (102) includes removing a triplet from the first knowledge graph or adding a triplet to the first knowledge graph (102), or The changes in the first knowledge graph (102) include updating a triplet of the first knowledge graph (102), in particular by replacing the triplet with another triplet.

7. The apparatus (120) of any one of claims 1 to 6.

8. 1. A method for providing and / or storing a change history of a first knowledge graph (102), comprising: A second knowledge graph (104) is provided (202) that includes at least a portion of the first knowledge graph (102); the second knowledge graph (104) includes a change history, the change history including at least one triplet including a triplet of the first knowledge graph (102) as a subject; the at least one triplet includes a predicate and an object; the descriptive term and the object link a triplet of the first knowledge graph (102) with a subgraph of the second knowledge graph (104), in particular an RDF graph of the second knowledge graph, containing information about changes made in the first knowledge graph (102); A method characterized by:

9. The change history is provided (206); The information indicates how the information stored in the first knowledge graph (102) has changed over time, or who or what caused the change in the information stored in the first knowledge graph (102), or when or how the change in the information stored in the first knowledge graph (102) was caused. The method of claim 8.

10. the first knowledge graph (102) comprises information from the domains of physics, chemistry, medicine, biology, in particular information about technical systems, preferably factories or buildings or vehicles or sensors or digital imaging systems or computer networks or heating and / or cooling systems, in particular representing information about the digital twin of a factory or building or vehicle or sensor or digital imaging system or computer network or heating and / or cooling system, 10. The method according to claim 8 or 9.

11. A plurality of triplets changed by the change are contained in the subject of each triplet in the change history, each triplet of the change history has the same object and the same predicate; 11. The method according to any one of claims 8 to 10.

12. Changes to the first knowledge graph (102) are received (204) and the changes are stored (206) in the second knowledge graph (104); Information about changes in the second knowledge graph (104) is received (204), or determined depending on the changes received or the type of change or the time of receipt of the change, and the information is stored (206) as part of the change history of the second knowledge graph (104); and / or A query about a change in the first knowledge graph (102) is received (204), a response to the query is determined using the second knowledge graph (104) depending on the query, and a response is sent (208) including information about the change or information about canceling the change; The information about the changes indicates how the information stored in the first knowledge graph (102) has changed over time, or who or what caused the change in the information stored in the first knowledge graph (102), or when or how the change in the information stored in the first knowledge graph (102) was caused.

12. The method according to any one of claims 8 to 11.

13. The change in the first knowledge graph (102) includes removing a triplet from the first knowledge graph or adding a triplet to the first knowledge graph (102), or The changes in the first knowledge graph (102) include updating a triplet of the first knowledge graph (102), in particular by replacing the triplet with another triplet.

13. The method according to any one of claims 8 to 12.

14. A data structure (300), in particular a computer-implemented data structure, for providing and / or storing a change history of a first knowledge graph (102), comprising: the data structure (300) includes at least one data field (302) for a second knowledge graph (104) that includes at least a portion of the first knowledge graph (102), in particular for a triplet of the second knowledge graph (104); the second knowledge graph (104) includes a change history, the change history including at least one triplet including a triplet of the first knowledge graph (102) as a subject; the at least one triplet includes a predicate and an object; the descriptive term and the object link a triplet of the first knowledge graph (102) with a subgraph of the second knowledge graph (104), in particular an RDF graph of the second knowledge graph, containing information about changes made in the first knowledge graph (102); A data structure (300) comprising: