Computing Library › Applications
Applications

Knowledge Graphs for Engineering Data

Representing components, requirements, analyses, and their relationships as a graph so complex questions can be answered by traversal.

Why a graph

Engineering knowledge is a web of relationships: this requirement drives that component, which is analyzed by this study, which depends on that assumption, which was measured by this test. Tables and documents store the pieces but hide the connections. A knowledge graph makes the relationships first-class, so questions that span many links can be answered by following edges.

The structure

Kronos motion — data assimilation

Questions a graph answers well

Consider: 'If this material property changed, which requirements are at risk?' In documents that means manually tracing references across files. In a graph it is a traversal: from the material, to the components that use it, to the analyses that depend on it, to the requirements those analyses support. Impact analysis, traceability, and consistency checking all become graph queries.

python
def impact(graph, changed_node):
    affected, frontier = set(), [changed_node]
    while frontier:
        n = frontier.pop()
        for m in graph.dependents(n):
            if m not in affected:
                affected.add(m); frontier.append(m)
    return affected

The maintenance burden

A knowledge graph is only useful if it stays accurate, and keeping edges current as the design evolves takes discipline. A stale graph gives confidently wrong answers. The practical approach is to derive as much of the graph as possible automatically from source-of-truth documents and analyses, rather than hand-maintaining it.

Kronos framing

Linking requirements, components, analyses, and their provenance in a graph supports traceability for design and licensing: from any design figure, one can traverse to the evidence and assumptions behind it, which is exactly what independent review requires.