Method for generating a knowledge graph based on cad drawings, and computer program and electronic device supporting the same
The method generates a knowledge graph from CAD drawings by parsing entities and defining nodes to address inefficiencies in understanding design intent and utilizing structural context, enhancing management and analysis capabilities.
Patent Information
- Application Number
- KR1020250197770
- Authority / Receiving Office
- KR · KR
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2025-12-12
- Publication Date
- 2026-10-30
- Estimated Expiration
- 2045-12-12
AI Technical Summary
Computer-aided design (CAD) drawings face challenges in intuitively understanding design intent due to complex positional and semantic connections between elements, and existing query and search functions are limited, making systematic utilization of structural context inefficient.
A method and computer program to generate a knowledge graph from CAD drawings by parsing entities, dividing the drawing into grid cells, and defining nodes to represent spatial and semantic relationships, enabling advanced utilization and analysis.
Facilitates systematic management and efficient retrieval of knowledge embedded in CAD drawings, supporting advanced utilization and analysis of structural similarities.
Smart Images

Figure 112025140877312-PAT00004_ABST
Abstract
Description
Technology Field
[0001] Various embodiments of the present disclosure relate to a method for generating a knowledge graph based on a CAD drawing, and a computer program and electronic device supporting the same. Background Technology
[0002] Computer-aided design (CAD) drawings, used in various manufacturing design fields, can represent objects (e.g., parts and / or assemblies) through a combination of geometric and annotation elements. However, since these elements are represented at the level of individual items within the CAD drawing, the design intent—which can be interpreted through the positional and / or semantic connections between the elements—can be difficult to understand intuitively. Furthermore, as the structure of the represented object becomes more complex and the scale more extensive, the efficiency of identifying specific elements within the CAD drawing for structural interpretation may decrease. In addition, the query, search, and / or review functions supported by CAD systems are often limited to manipulating individual elements or remain at the level of relatively simple attribute filters and / or string matching; consequently, systematically grasping and utilizing the structural context of the entire CAD drawing may still require significant time and effort.
[0003] The foregoing is provided as background technology for the purpose of aiding understanding of the present disclosure, and no claim or determination is made as to whether it can be applied as prior art related to the present disclosure. The problem to be solved
[0004] The present disclosure provides a method for generating a knowledge graph based on a CAD drawing to solve the above-mentioned problem.
[0005] The present disclosure provides a computer program that supports a method for generating a knowledge graph based on a CAD drawing to solve the above-mentioned problem.
[0006] The present disclosure provides an electronic device that supports a method for generating a knowledge graph based on a CAD drawing to solve the above-mentioned problem.
[0007] The technical problems that this disclosure aims to solve are not limited to those described above, and other unmentioned problems will be clearly understood by those skilled in the art from the various embodiments described below. means of solving the problem
[0008] The present disclosure may be implemented in various ways, including methods, electronic devices, and / or computer programs stored on computer-readable recording media.
[0009] A method for generating a knowledge graph based on a CAD drawing executed by at least one processor according to one embodiment of the present disclosure may include: a step of parsing a CAD drawing to extract a plurality of drawing entities included in the CAD drawing; a step of dividing an entire area of the CAD drawing into a plurality of grid cells based on a two-dimensional coordinate system representing the CAD drawing; a step of defining at least some of the plurality of drawing entities as entity nodes and defining each of the plurality of grid cells as a cell node; and a step of generating a knowledge graph that represents the CAD drawing as a graph structure based on at least one of a spatial relationship between an entity node and a cell node or a semantic relationship between a plurality of entity nodes.
[0010] According to one embodiment of the present disclosure, the step of extracting a plurality of drawing entities may include the step of extracting a drawing entity of a geometric series including at least one of a line, circle, arc, point, polyline, or spline from a CAD drawing, and the step of extracting a drawing entity of an annotation series including at least one of a dimension, dimension line, auxiliary line, leader line, symbol, text, or comment.
[0011] According to one embodiment of the present disclosure, the step of defining an entity node may include the step of storing at least one of a geometric attribute value or a representation attribute value of a corresponding drawing entity in the entity node as node attribute information.
[0012] According to one embodiment of the present disclosure, the step of defining a cell node may include the step of storing at least one of identification information or coordinate information of a corresponding grid cell in the cell node as node attribute information.
[0013] According to one embodiment of the present disclosure, the step of generating a knowledge graph may include, for each of a plurality of grid cells, identifying a drawing entity of a geometric series that is included in or intersects with the grid cell.
[0014] According to one embodiment of the present disclosure, the step of generating a knowledge graph may further include the step of generating a first subgraph that connects a cell node corresponding to a grid cell and an entity node corresponding to a drawing entity of a geometric series with an edge.
[0015] According to one embodiment of the present disclosure, the step of generating a knowledge graph may include, based on coordinate information of each of a plurality of drawing entities, identifying an adjacency relationship between a first drawing entity of an annotation series and a second drawing entity of an annotation series, identifying a connection relationship between the first drawing entity and a third drawing entity of a geometric series, and identifying an anchor relationship between the third drawing entity and a fourth drawing entity of a geometric series.
[0016] According to one embodiment of the present disclosure, the step of generating a knowledge graph may further include the step of generating a second subgraph that connects a first entity node corresponding to a second drawing entity and a second entity node corresponding to a third drawing entity with an edge.
[0017] According to one embodiment of the present disclosure, the step of generating a knowledge graph may further include the step of generating a second subgraph that connects a second entity node corresponding to a third drawing entity and a third entity node corresponding to a fourth drawing entity with an edge.
[0018] According to one embodiment of the present disclosure, the step of generating a knowledge graph may further include the step of generating a second subgraph that connects a first entity node corresponding to a second drawing entity and a third entity node corresponding to a fourth drawing entity with an edge.
[0019] According to one embodiment of the present disclosure, the step of generating a knowledge graph may further include the step of generating a second subgraph that connects at least some of a first entity node corresponding to a second drawing entity, a second entity node corresponding to a third drawing entity, and a third entity node corresponding to a fourth drawing entity with an edge.
[0020] According to one embodiment of the present disclosure, the step of generating a second subgraph may further include the step of incorporating a fourth entity node corresponding to a first drawing entity into the structure of the second subgraph as context information expressing the relationship between the second drawing entity and the third drawing entity.
[0021] According to one embodiment of the present disclosure, the step of generating a knowledge graph may include generating a first subgraph representing a spatial relationship between an entity node and a cell node, generating a second subgraph representing a semantic relationship between a plurality of entity nodes, and integrating the first subgraph and the second subgraph into a single graph structure to generate the knowledge graph.
[0022] According to one embodiment of the present disclosure, a computer program stored on a computer-readable recording medium may be provided for executing a method for generating a knowledge graph based on a CAD drawing on a computer.
[0023] An electronic device according to one embodiment of the present disclosure may include a memory for storing instructions and at least one processor.
[0024] According to one embodiment of the present disclosure, when instructions are executed by at least one processor, an electronic device can parse a CAD drawing to extract a plurality of drawing entities included in the CAD drawing, divide the entire area of the CAD drawing into a plurality of grid cells based on a two-dimensional coordinate system representing the CAD drawing, define at least some of the plurality of drawing entities as entity nodes, define each of the plurality of grid cells as a cell node, and generate a knowledge graph representing the CAD drawing in a graph structure based on at least one of the spatial relationship between the entity nodes and the cell nodes or the semantic relationship between the plurality of entity nodes. Effects of the invention
[0025] According to various embodiments of the present disclosure, a mechanism can be provided to support the systematic management of knowledge embedded in a drawing by structuring geometric drawing elements of a CAD drawing in conjunction with grid cells set in the said CAD drawing and structuring the semantic relationship between geometric drawing elements and annotation drawing elements.
[0026] According to various embodiments of the present disclosure, a mechanism may be provided that can support advanced utilization of CAD drawings, such as knowledge retrieval regarding said CAD drawings and / or analysis of structural similarities between different CAD drawings, based on the structuring of said CAD drawings.
[0027] The effects of the present disclosure are not limited to those mentioned above, and other unmentioned effects will be clearly understood by those skilled in the art from the description in the claims. Brief explanation of the drawing
[0028] Various embodiments of the present disclosure will be described with reference to the drawings below, and identical or similar reference numbers may be assigned to identical or corresponding components in connection with the description of the drawings. FIG. 1 is a drawing illustrating an exemplary electronic device in a network environment according to one embodiment of the present disclosure. FIG. 2 is a diagram illustrating, by way of example, a program included in the memory of an electronic device according to one embodiment of the present disclosure. FIG. 3 is a diagram illustrating an exemplary processing pipeline for generating a knowledge graph based on a CAD drawing according to one embodiment of the present disclosure. FIG. 4 is a diagram exemplarily illustrating the creation of a first subgraph according to one embodiment of the present disclosure. FIG. 5 is a diagram exemplarily illustrating the creation of a second subgraph according to one embodiment of the present disclosure. FIG. 6 is a diagram illustrating an exemplary user interface that supports knowledge graph-based question and answer according to one embodiment of the present disclosure. FIG. 7 is a diagram illustrating, exemplarily, a mapping between a plurality of subgraphs according to one embodiment of the present disclosure. FIG. 8 is a drawing that exemplarily illustrates a method for generating a knowledge graph based on a CAD drawing according to one embodiment of the present disclosure. Specific details for implementing the invention
[0029] Hereinafter, specific details for implementing the present disclosure will be described in detail with reference to the attached drawings. However, in the following description, specific descriptions regarding widely known functions or configurations will be omitted if there is a risk that the gist of the present disclosure may be unnecessarily obscured.
[0030] In the attached drawings, identical or corresponding components are assigned the same reference numerals. Additionally, in the description of the following embodiments, the description of identical or corresponding components may be omitted. However, even if a description of a component is omitted, it is not intended that such component is not included in any embodiment.
[0031] The advantages and features of the disclosed embodiments and the methods for achieving them will become clear by referring to the embodiments described below in conjunction with the accompanying drawings. However, the present disclosure is not limited to the embodiments disclosed below but may be implemented in various different forms, and the embodiments provided are merely to make the present disclosure complete and to fully inform those skilled in the art of the scope of the invention.
[0032] The terms used in this disclosure will be briefly explained, and the disclosed embodiments will be described in detail. The terms used in this disclosure have been selected to be as generally used as possible, taking into account their functions within the disclosure; however, these terms may vary depending on the intent of those skilled in the art, case law, the emergence of new technologies, etc. Additionally, in specific cases, terms may be selected at the applicant's discretion, and in such cases, their meanings will be described in detail in the relevant description of the invention. Therefore, the terms used in this disclosure should be defined not merely by their names, but based on their meanings and the content throughout this disclosure.
[0033] In this disclosure, singular expressions include plural expressions unless the context clearly specifies them as singular. Additionally, plural expressions include singular expressions unless the context clearly specifies them as plural. Throughout this disclosure, when a part is described as including a certain component, this means that, unless specifically stated otherwise, it does not exclude other components but may include additional components.
[0034] As used in this disclosure, the terms “module” or “part” refer to software or hardware components, and the “module” or “part” performs certain roles. However, the meaning of “module” or “part” is not limited to software or hardware. The “module” or “part” may be configured to reside in an addressable storage medium or configured to run on one or more processors. Accordingly, as an example, the “module” or “part” may include components such as software components, object-oriented software components, class components, and task components, and at least one of processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, or variables. The components and the functions provided within the “module” or “part” may be combined into a smaller number of components and “modules” or “parts,” or further separated into additional components and “modules” or “parts.”
[0035] According to one embodiment, a 'module' or 'part' may be implemented as a processor and memory. The term 'processor' should be broadly interpreted to include a general-purpose processor, a central processing unit (CPU), a microprocessor, a digital signal processor (DSP), a controller, a microcontroller, a state machine, etc. In some environments, the term 'processor' may refer to an application-specific integrated circuit (ASIC), a programmable logic device (PLD), a field programmable gate array (FPGA), etc. The term 'processor' may also refer to a combination of processing devices, such as, for example, a combination of a DSP and a microprocessor, a combination of multiple microprocessors, a combination of one or more microprocessors combined with a DSP core, or any other combination of such configurations. Additionally, the term 'memory' should be broadly interpreted to include any electronic component capable of storing electronic information. 'Memory' may refer to various types of processor-readable media, such as Random Access Memory (RAM), Read-Only Memory (ROM), Non-Volatile Random Access Memory (NVRAM), Programmable Read-Only Memory (PROM), Erasable-Programmable Read-Only Memory (EPROM), Electrically Erasable PROM (EEPROM), Flash Memory, Magnetic or Marked Data Storage Devices, Registers, etc. If a processor can read information from memory and / or write information to memory, the memory is said to be in an electronic communication state with the processor. Memory integrated into a processor is in an electronic communication state with the processor.
[0036] The terms 1, 2, A, B, (a), (b), etc. used in this disclosure are used merely to distinguish one component from another, and the essence, order, or sequence of said component is not limited by such terms.
[0037] Where in this disclosure it is stated that one component is 'connected,' 'coupled,' or 'connected' to another component, it should be understood that the component may be directly connected or connected to the other component, but that another component may also be 'connected,' 'coupled,' or 'connected' between each component.
[0038] As used in this disclosure, “comprising” and / or “comprising” does not exclude the presence or addition of one or more other components, steps, actions, and / or elements to the mentioned components, steps, actions, and / or elements.
[0039] FIG. 1 is a diagram illustrating an exemplary electronic device in a network environment according to one embodiment of the present disclosure. FIG. 2 is a diagram illustrating an exemplary program included in the memory of an electronic device according to one embodiment of the present disclosure.
[0040] Referring to FIG. 1, an electronic device (100) according to one embodiment may include various types of devices capable of storing, providing, and executing computer-executable programs and data related to a data processing service (e.g., a service that represents the positional and semantic relationships of drawing entities included in a CAD (computer-aided design) drawing as a structured knowledge graph). For example, the electronic device (100) may include at least one of a system device, a server device, a cloud service-based distributed computing device, or a mobile communication device.
[0041] In one embodiment, the electronic device (100) can communicate with at least one external electronic device (300) through a network (200). According to various embodiments, the network (200) may be configured, depending on the installation environment, as a wired network including at least one of Ethernet, a wired home network (power line communication), a telephone line communication device, or RS-serial communication, a mobile communication network, a wireless network including at least one of a WLAN (wireless LAN), Wi-Fi, Bluetooth, or ZigBee, or a combination of a wired network and a wireless network.
[0042] In the present disclosure, the communication method between the electronic device (100) and at least one external electronic device (300) is not limited and may include a communication method utilizing a communication network (e.g., mobile communication network, wired internet, wireless internet, broadcasting network and / or satellite network) that the network (200) can support, as well as a short-range wireless communication method between the electronic device (100) and at least one external electronic device (300).
[0043] In one embodiment, the electronic device (100) may include components related to the execution and / or provision of data processing services. For example, the electronic device (100) may include a memory (110), a display (120), a communication module (130), and at least one processor (140). According to various embodiments, some of the components described above in the electronic device (100) may be omitted, or other additional components may be included. In various embodiments, at least some of the components included in the electronic device (100) may be connected to each other via at least one of a bus, a general purpose input and output (GPIO), a serial peripheral interface (SPI), or a mobile industry processor interface (MIPI) to exchange signals, data, and / or information.
[0044] In one embodiment, the memory (110) may include a non-transient recording medium readable by any computer. According to one embodiment, the memory (110) may include a non-perishable permanent mass storage device comprising at least one of a read-only memory (ROM), a disk drive, a solid state drive (SSD), or a flash memory. Alternatively, such a non-perishable permanent mass storage device may be included in the electronic device (100) as a separate permanent storage device distinct from the memory (110).
[0045] In one embodiment, the memory (110) may store at least one of an operating system, at least one application program, or at least one program code. According to various embodiments, these software components may be loaded from a computer-readable recording medium distinct from the memory (110). In various embodiments, the recording medium may include at least one of a floppy drive, a disk, a tape DVD / CD-ROM drive, or a memory card that can be directly connected to the electronic device (100). Alternatively, the software components may be loaded into the memory (110) via a communication module (130). For example, at least one application program may be installed and loaded into the memory (110) based on files provided by a file distribution system via a network (200).
[0046] In one embodiment, the memory (110) may store instructions related to the functional operation of the components of the electronic device (100). For example, the memory (110) may store instructions that cause the components of the electronic device (100) to perform a defined functional operation when executed by at least one processor (140).
[0047] In one embodiment, the display (120) may be partially exposed to the outside of the electronic device (100) to visually provide various content. For example, the display (120) may output (or display) a program execution screen and / or a user interface by processing image information (or a driving signal corresponding to the image information) provided by at least one processor (140). According to various embodiments, the display (120) may be configured as a touchscreen display including a touch panel (or a touch sensing circuit), and the electronic device (100) may receive various types of touch user input through the touchscreen display.
[0048] In one embodiment, the communication module (130) may provide a configuration or function for the electronic device (100) to communicate with at least one external electronic device (300) through a network (200). For example, the communication module (130) may establish communication (or a communication channel) with at least one external electronic device (300) according to a defined communication protocol and perform the transmission and reception of signals, data and / or information through said communication.
[0049] According to one embodiment, the communication module (130) may include a wireless communication module (e.g., a cellular communication module, a short-range wireless communication module and / or a GNSS (global navigation satellite system) communication module) and a wired communication module (e.g., a LAN (local area network) communication module and / or a power line communication module). These wireless communication module and wired communication module may be composed of separate chips or integrated into a single chip.
[0050] In one embodiment, at least one processor (140) may be configured to execute instructions of a computer program provided by memory (110) and / or a communication module (130) by performing basic arithmetic, logic, and input / output operations. For example, at least one processor (140) may be configured to execute instructions received according to program code stored in memory (110) and / or instructions received from at least one external electronic device (300) through the communication module (130).
[0051] According to one embodiment, at least one processor (140) can execute a program to provide data processing services by processing instructions of a computer program. In one embodiment, at least one processor (140) can receive and process signals, data, and / or information transmitted from at least one external electronic device (300) through a communication module (130) while executing the program. Additionally, at least one processor (140) can store signals, data, and / or information generated while executing the program in a memory (110) or transmit them to at least one external electronic device (300) through the communication module (130).
[0052] Referring to FIGS. 1 and 2, a memory (110) of an electronic device (100) according to one embodiment may include a program (111) related to the creation and utilization of a knowledge graph that represents a CAD drawing in a graph structure. In the present disclosure, a CAD drawing may be referred to as drawing data generated by a CAD system and may include at least one of a native drawing file (e.g., DXF and / or DWG), an image rendered from a native drawing file, or an image scanned (or captured) from a native drawing file. Additionally, in the present disclosure, a knowledge graph may be referred to as a data representation (or knowledge representation) in a graph structure that is expressed by defining at least one of an entity node corresponding to a drawing entity extracted from a CAD drawing and a cell node corresponding to a grid cell set for the CAD drawing, or a semantic relationship between a plurality of entity nodes, as an edge.
[0053] In one embodiment, the program (111) may include a parsing module (111a), a grid cell generation module (111b), a graph generation module (111c), a graph question-answering module (111d), and a graph mapping module (111e). According to various embodiments, at least one of the plurality of modules (111a, 111b, 111c, 111d, and 111e) included in the program (111) may be implemented using software instructions, firmware, hardware logic, and / or an artificial neural network model (e.g., an embedding model based on a transformer architecture and / or a large-scale language model). According to various embodiments, at least some of the plurality of modules (111a, 111b, 111c, 111d, and 111e) in the program (111) may be omitted or integrated into a single module. Alternatively, the program (111) may additionally include modules of other functions not exemplified.
[0054] Hereinafter, functional operation of an electronic device (100) implemented by at least one processor (140) executing instructions of a computer program stored in (or loaded into) memory (110), for example, functional operation of an electronic device (100) performed by at least one processor (140) executing (or controlling) a plurality of modules (111a, 111b, 111c, 111d and 111e) of a program (111) may be described.
[0055] FIG. 3 is a diagram illustrating an exemplary processing pipeline for generating a knowledge graph based on a CAD drawing according to one embodiment of the present disclosure. FIG. 4 is a diagram illustrating an exemplary generation of a first subgraph according to one embodiment of the present disclosure. FIG. 5 is a diagram illustrating an exemplary generation of a second subgraph according to one embodiment of the present disclosure.
[0056] Referring to FIG. 3, an electronic device according to one embodiment (e.g., the electronic device (100) of FIG. 1) may execute a program (e.g., the program (111) of FIG. 2) to perform a series of processes for generating a knowledge graph from a CAD drawing. For example, the electronic device (100) may parse (410) a CAD drawing to extract a plurality of drawing entities included in the CAD drawing, and divide the entire area of the CAD drawing into a grid to generate a plurality of grid cells (430). Additionally, the electronic device (100) may define at least some of the extracted plurality of drawing entities and each of the plurality of grid cells as nodes (450), and generate a knowledge graph (470) that represents the CAD drawing in a graph structure based on spatial relationships and / or semantic relationships between the nodes.
[0057] In one embodiment, the electronic device (100) can parse a CAD drawing loaded by the program (111) using a parsing module of the program (111) (e.g., the parsing module (111a) of FIG. 2). In this regard, the electronic device (100) can parse the CAD drawing to extract low-level drawing entities included in the CAD drawing. For example, the electronic device (100) can extract geometric series drawing entities (e.g., lines, circles, arcs, points, polylines and / or splines) and annotation series drawing entities (e.g., dimensions, dimension lines, auxiliary lines, leader lines, symbols, text and / or comments) from the CAD drawing. Additionally, the electronic device (100) can obtain attribute information included in the attribute fields of the drawing entities from the CAD drawing (or from the CAD system). For example, the electronic device (100) may obtain geometric attribute values (e.g., start point coordinates, end point coordinates, direction vector, length, center point coordinates, diameter, radius, radius, start angle and / or end angle) and / or representation attribute values (e.g., color, layer, line type, line thickness, transparency and / or font style) for at least some of a plurality of drawing entities. According to various embodiments, the electronic device (100) may also calculate additional attribute values derived from the attribute information based on the attribute information of a specific drawing entity.
[0058] In one embodiment, the electronic device (100) may define at least some of the plurality of drawing entities extracted (or acquired) by parsing a CAD drawing as nodes. For example, the electronic device (100) may create entity nodes corresponding to each drawing entity of a geometric series and entity nodes corresponding to each drawing entity of an annotation series. According to one embodiment, the electronic device (100) may store attribute information of the drawing entity corresponding to the entity node (e.g., geometric attribute values and / or representation attribute values) as node attribute information in each of the plurality of entity nodes.
[0059] Referring to FIGS. 3 and 4, an electronic device (100) according to one embodiment may divide a CAD drawing (10) into a plurality of grid cells using a grid cell generation module of a program (111) (e.g., the grid cell generation module (111b) of FIG. 2). For example, the electronic device (100) may divide the entire area of the CAD drawing (10) into a plurality of grid cells having a first interval with respect to the X-axis and a second interval with respect to the Y-axis that is the same as or different from the first interval, based on a two-dimensional coordinate system representing the CAD drawing (10) (e.g., a global coordinate system of the model space set in the CAD drawing (10)). According to one embodiment, the electronic device (100) may define each of the plurality of grid cells as a cell node and store identification information (e.g., grid cell ID) for identifying the grid cell corresponding to each cell node and coordinate information of the grid cell as node attribute information. According to various embodiments, a plurality of grid cell division methods for a CAD drawing (10) (e.g., spacing and / or shape of grid cells) may be varied depending on the scale of the CAD drawing (10) and / or the density of the drawing entities.
[0060] According to one embodiment, the electronic device (100) can generate a first subgraph representing the spatial relationship between entity nodes and cell nodes using a graph generation module of the program (111) (e.g., the graph generation module (111c) of FIG. 2). For example, the electronic device (100) can generate a first subgraph representing the spatial relationship between entity nodes defined for geometric series drawing entities and cell nodes defined for a plurality of grid cells. In this regard, the electronic device (100) can identify drawing entities of a geometric series that are included in and / or intersect with each grid cell based on attribute information of entity nodes (e.g., geometric attribute values) and attribute information of cell nodes (e.g., coordinate information).
[0061] In one embodiment, when an electronic device (100) identifies a drawing entity of a geometric series that is contained in and / or intersected by a specific grid cell, it may create a first subgraph composed of a combination of a cell node, an entity node, and an edge by connecting a cell node defined for the grid cell and an entity node defined for the drawing entity with an edge. For example, the electronic device (100) may identify a first drawing entity (411) that is contained in and / or intersected by a first grid cell (431) and create a first subgraph composed of a combination of a first cell node corresponding to the first grid cell (431), a first entity node corresponding to the first drawing entity (411), and an edge (e.g., a contain edge and / or an intersect edge) representing the relationship between the first cell node and the first entity node. In another example, when a second drawing entity (413) and a third drawing entity (415) that are included in and / or intersect with a second grid cell (433) are identified, the electronic device (100) may generate a first subgraph consisting of a combination of a second cell node corresponding to the second grid cell (433), a second entity node corresponding to the second drawing entity (413), and an edge representing the relationship between the second cell node and the second entity node, and may generate a first subgraph consisting of a combination of a second cell node, a third entity node corresponding to the third drawing entity (415), and an edge representing the relationship between the second cell node and the third entity node. Alternatively, the electronic device (100) may generate a first subgraph consisting of a combination of a second cell node, a second entity node, a third entity node, and an edge representing the relationship between them.
[0062] Referring to FIGS. 3 and 5, an electronic device (100) according to one embodiment may generate a second subgraph representing semantic relationships between a plurality of entity nodes using a graph generation module (111c) of a program (111). For example, the electronic device (100) may generate a second subgraph representing semantic relationships between an entity node defined for a geometric series drawing entity and an entity node defined for an annotation series drawing entity. In this regard, the electronic device (100) may analyze the geometric connection relationships of drawing entities corresponding to the entity nodes based on attribute information (e.g., coordinate information) of the entity nodes. For example, the electronic device (100) can identify a geometric relationship in which one end of a fourth drawing entity (412) (e.g., dimension line, leader line and / or auxiliary line) is adjacent to a fifth drawing entity (414) (e.g., dimension, annotation, symbol and / or text) and the other end is connected to a sixth drawing entity (P) (e.g., point). Additionally, the electronic device (100) can identify an anchor relationship between the sixth drawing entity (P) and the seventh drawing entity (417) based on the characteristic that the sixth drawing entity (P) connected to the fourth drawing entity (412) is located (or overlaps) on the seventh drawing entity (417) (e.g., circle, line and / or arc). In this way, the electronic device (100) can identify semantic relationships between entity nodes corresponding to the drawing entities by identifying adjacency, connection, reference, and / or anchor relationships between the drawing entities based on attribute information of the entity nodes. For example, the electronic device (100) can identify a semantic relationship in which the fifth drawing entity (414) is referenced by the seventh drawing entity (417) by the fourth drawing entity (412) and the sixth drawing entity (P).
[0063] In one embodiment, the electronic device (100) may construct a second subgraph based on semantic relationships between identified entity nodes. For example, the electronic device (100) may generate a second-1 subgraph composed of a combination of an entity node corresponding to a fifth drawing entity (414) (e.g., dimension, annotation, symbol and / or text), an entity node corresponding to a seventh drawing entity (417) (e.g., circle, line and / or arc), and an edge (e.g., dimension-ref edge) representing the relationship between the entity nodes. Additionally, the electronic device (100) may generate a second-2 subgraph composed of a combination of an entity node corresponding to a sixth drawing entity (P) (e.g., point), an entity node corresponding to the seventh drawing entity (417), and an edge (e.g., incident edge) representing the relationship between the entity nodes. Additionally, the electronic device (100) can generate a second-third subgraph composed of a combination of an entity node corresponding to the fifth drawing entity (414), an entity node corresponding to the sixth drawing entity (P), and edges (e.g., ref-point edges) representing the relationship between the entity nodes.
[0064] According to various embodiments, the electronic device (100) may integrate the 2-1 subgraph, the 2-2 subgraph, and the 2-3 subgraph into a single subgraph. For example, the electronic device (100) may generate a single 2nd subgraph comprising an entity node corresponding to the 5th drawing entity (414), an entity node corresponding to the 6th drawing entity (P), an entity node corresponding to the 7th drawing entity (417), and a plurality of edges (e.g., dimension-ref edge, incident edge, and ref-point edge) representing the relationship between the entity nodes.
[0065] Based on the above description, the electronic device (100) may not represent the entity nodes of the fourth drawing entity (412) (e.g., dimension line, leader line, and / or auxiliary line) that are used auxiliaryly for displaying annotations (e.g., dimension, symbol, text, and / or comment) in the second subgraph generation operation as nodes in the second subgraph. For example, the entity node corresponding to the fourth drawing entity (412) may be implied (or absorbed) within the structure of the second subgraph as semantic context information expressing the relationship between the entity node corresponding to the fifth drawing entity (414) and the entity node corresponding to the sixth drawing entity (P).
[0066] According to various embodiments, the electronic device (100) may further generate various types of subgraphs not illustrated. For example, the electronic device (100) may generate a third subgraph representing the relationship between a plurality of entity nodes defined for a geometric series of drawing entities (e.g., a line and a line, a line and a circle, a line and an arc, a circle and a circle, a circle and an arc and / or an intersection relationship between an arc and an arc). Alternatively, the electronic device (100) may generate a fourth subgraph representing the relationship between a plurality of cell nodes defined for a grid cell (e.g., an adjacency relationship).
[0067] In one embodiment, the electronic device (100) can generate (470) a knowledge graph representing a CAD drawing using a plurality of subgraphs (e.g., a first subgraph, a second subgraph, a third subgraph and / or a fourth subgraph). For example, the electronic device (100) can generate the knowledge graph by modeling (or integrating) the plurality of subgraphs into a single graph structure using a graph generation module (111c) of the program (111). According to one embodiment, each of the plurality of nodes constituting the knowledge graph may include attribute information of a corresponding drawing entity or grid cell, and accordingly, each node may logically correspond to a location on the CAD drawing (or a two-dimensional coordinate system), a drawing entity, and / or a grid cell.
[0068] FIG. 6 is a diagram illustrating an exemplary user interface that supports knowledge graph-based question and answer according to one embodiment of the present disclosure.
[0069] Referring to FIG. 6, an electronic device according to one embodiment (e.g., the electronic device (100) of FIG. 1) can provide a question-and-answer service based on a knowledge graph corresponding to a CAD drawing by using a graph question-and-answer module (e.g., the graph question-and-answer module (111d) of FIG. 2) of a program (e.g., the program (111) of FIG. 2). For example, the electronic device (100) can receive a user query (21) through a user interface (20) associated with the program (111), and generate and output (or display) response information (23) for the user query (21) based on a knowledge graph generated for a CAD drawing associated with the user query (21).
[0070] According to one embodiment, the electronic device (100) can embed a user query (21) using a graph question-answering module (111d) (or a transformer architecture-based embedding model and / or large-scale language model included in the graph question-answering module (111d)) and identify a CAD drawing and a corresponding knowledge graph related to the user query (21) based on the similarity between the embedding vector and a pre-registered CAD drawing vector and / or knowledge graph vector. Additionally, the electronic device (100) can search for at least one reference node with high similarity to the embedding vector and at least one adjacent node connected within a specified hop from the identified knowledge graph, and identify a subgraph composed of the searched nodes and the edges connecting them. In one embodiment, the electronic device can collect attribute information of the nodes constituting the identified subgraph and generate natural language-based response information (23) describing the relationships expressed in the subgraph using the attribute information.
[0071] According to various embodiments, a knowledge graph generated in correspondence with a CAD drawing may include nodes related to standard specifications of the drawing entity (e.g., ISO (International Organization for Standardization), ASME (American Society of Mechanical Engineers) and / or JIS (Japanese Industrial Standards)) and / or nodes related to regulations regarding a specific drawing entity (e.g., regulations based on internal policies). In this regard, if there are standard specification nodes and / or regulation nodes connected by edges to reference nodes related to the embedding vector of the user query (21), the electronic device (100) may collect information contained in the standard specification nodes and / or regulation nodes and reflect it in the generation of natural language-based response information (23).
[0072] FIG. 7 is a diagram illustrating, exemplarily, a mapping between a plurality of subgraphs according to one embodiment of the present disclosure.
[0073] Referring to FIG. 7, an electronic device according to one embodiment (e.g., the electronic device (100) of FIG. 1) may provide a similarity mapping service for different CAD drawings by using a graph mapping module (e.g., the graph mapping module (111e) of FIG. 2) of a program (e.g., the program (111) of FIG. 2). In this regard, a first knowledge graph (471) corresponding to a first CAD drawing may include a fifth subgraph (472), and a second knowledge graph (473) corresponding to a second CAD drawing may include a sixth subgraph (474) corresponding to the fifth subgraph (472). For example, the fifth subgraph (472) may include two entity nodes (C) and two entity nodes (D) respectively connected thereto (e.g., an entity node having an attribute value of 350 ± 0.05 and an attribute value It may include an entity node having 400, and the sixth subgraph (474) may include a structure in which the types of entity nodes, the attribute values of entity nodes, and the edge connection relationships are the same as those of the fifth subgraph (472), but only the arrangement order of two entity nodes (D) having attribute values is different from that of the fifth subgraph (472).
[0074] In one embodiment, the electronic device (100) can use a graph mapping module (111e) to compare the type of entity node (e.g., geometric node or annotation node), the attribute value of the entity node (e.g., dimension), the type of edge, the connection structure of the edge, and / or the arrangement pattern of the entity node included in each of the fifth subgraph (472) and the sixth subgraph (474), and can quantify the similarity between the fifth subgraph (472) and the sixth subgraph (474) based on the comparison result. For example, the electronic device (100) can generate a similarity mapping result in which the arrangement patterns of two entity nodes (D) having attribute values in the fifth subgraph (472) and the sixth subgraph (474) are different but represent structurally equivalent or substantially identical dimension schemes in design intent. Alternatively, the electronic device (100) may store the correspondence relationship between the fifth subgraph (472) and the sixth subgraph (474) in a mapping table according to the similarity mapping result, or provide information regarding whether the fifth subgraph (472) and the sixth subgraph (474) are mutually interchangeable designs.
[0075] FIG. 8 is a drawing that exemplarily illustrates a method for generating a knowledge graph based on a CAD drawing according to one embodiment of the present disclosure.
[0076] The steps of the CAD drawing-based knowledge graph generation method (800) described in the embodiment of FIG. 8 may be performed sequentially or non-sequentially. For example, the order of execution of the steps described in the embodiment of FIG. 8 may be changed, some steps may be performed repeatedly, some steps may be omitted, or at least two steps may be performed in parallel.
[0077] At least some of the steps described in the embodiment of FIG. 8 may include the same or similar operations as the operation of the electronic device (e.g., the electronic device (100) of FIG. 1) described above through the drawings, and redundant descriptions of the same or similar operations may be omitted below.
[0078] Referring to FIG. 8, in step S810, an electronic device (100) according to one embodiment can parse a CAD drawing to extract a plurality of drawing entities included in the CAD drawing. For example, the electronic device (100) can use a parsing module (e.g., parsing module (111a) of FIG. 2) of a program (e.g., program (111) of FIG. 2) to extract geometric series drawing entities (e.g., lines, circles, arcs, points, polylines and / or splines) and annotation series drawing entities (e.g., dimensions, dimension lines, auxiliary lines, leader lines, symbols, text and / or comments) from a CAD drawing. Additionally, the electronic device (100) can obtain geometric attribute values (e.g., start point coordinates, end point coordinates, direction vector, length, center point coordinates, diameter, radius, radius, start angle and / or end angle) and / or representation attribute values (e.g., color, layer, line type, line thickness, transparency and / or font style) for at least some of a plurality of drawing entities from a CAD drawing.
[0079] In step S820, an electronic device (100) according to one embodiment may divide the entire area of a CAD drawing into a plurality of grid cells based on a two-dimensional coordinate system representing the CAD drawing (e.g., a global coordinate system of the model space set in the CAD drawing). For example, the electronic device (100) may divide the entire area of the CAD drawing into a plurality of grid cells having specified intervals for each of the X-axis and Y-axis based on the two-dimensional coordinate system of the CAD drawing using a grid cell generation module of the program (111) (e.g., a grid cell generation module (111b) of FIG. 2).
[0080] In step S830, an electronic device (100) according to one embodiment may define at least some of a plurality of drawing entities as entity nodes and define each of a plurality of grid cells as cell nodes. For example, the electronic device (100) may define each of the geometric series drawing entities extracted through parsing of a CAD drawing as an entity node, and define each of the annotation series drawing entities, excluding auxiliary lines, as an entity node. In this operation, the electronic device (100) may store attribute information of the drawing entity corresponding to the entity node (e.g., geometric attribute value and / or representation attribute value) as node attribute information in each of the plurality of entity nodes. Additionally, the electronic device (100) may define each of a plurality of grid cells set for the entire area of the CAD drawing as a cell node and store identification information (e.g., grid cell ID) for identifying the grid cell corresponding to each cell node and coordinate information of the grid cell as node attribute information.
[0081] In step S840, an electronic device (100) according to one embodiment can generate a knowledge graph that represents a CAD drawing in a graph structure based on at least one of a spatial relationship between an entity node and a cell node or a semantic relationship on a plurality of entity nodes.
[0082] In this regard, the electronic device (100) can identify drawing entities of a geometric series that are included in and / or intersect with each grid cell based on attribute information of entity nodes (e.g., geometric attribute values) and attribute information of cell nodes (e.g., coordinate information). In one embodiment, when the drawing entities of a geometric series that are included in and / or intersect with a specific grid cell are identified, the electronic device (100) can create a first subgraph consisting of a combination of cell nodes, entity nodes, and edges by connecting the cell nodes defined for the grid cells and the entity nodes defined for the drawing entities with edges.
[0083] Additionally, the electronic device (100) can analyze the geometric connection relationships of drawing entities corresponding to the entity nodes based on attribute information (e.g., coordinate information) of the entity nodes. For example, the electronic device (100) can identify semantic relationships between entity nodes corresponding to the drawing entities by identifying adjacency relationships, connection relationships, and / or anchor relationships between the drawing entities. In one embodiment, the electronic device (100) can construct a second subgraph based on the semantic relationships between the identified entity nodes. For example, the electronic device (100) can generate a second subgraph composed of a combination of multiple entity nodes and edges by connecting the entity nodes to each other with edges representing related semantic relationships.
[0084] According to one embodiment, the electronic device (100) can generate a knowledge graph representing a CAD drawing using a plurality of subgraphs. For example, the electronic device (100) can generate a knowledge graph by modeling (or integrating) a plurality of subgraphs into a single graph structure.
[0085] The method described above may be provided as a computer program stored on a computer-readable recording medium for execution on a computer. The medium may continuously store a program executable by a computer, or temporarily store it for execution or download. Additionally, the medium may be various recording or storage means in the form of a single or multiple hardware components combined, and may not be limited to a medium directly connected to a computer system but may exist distributed over a network. Examples of media may include magnetic media such as hard disks, floppy disks, and magnetic tapes; optical recording media such as CD-ROMs and DVDs; magneto-optical media such as floptical disks; and media configured to store program instructions, including ROM, RAM, and flash memory. Furthermore, other examples of media may include recording or storage media managed by app stores that distribute applications or sites and servers that supply or distribute various other software.
[0086] The methods, operations, or techniques of the present disclosure may be implemented by various means. For example, these techniques may be implemented in hardware, firmware, software, or a combination thereof.
[0087] Those skilled in the art will understand that the various exemplary logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate such interchangeability between hardware and software, various exemplary components, blocks, modules, circuits, and steps have been generally described above in terms of their functional aspects. Whether such functions are implemented in hardware or in software depends on the design requirements imposed on the specific application and the overall system. Those skilled in the art may implement the described functions in various ways for each specific application, but such implementations should not be construed as departing from the scope of the disclosure.
[0088] In a hardware implementation, the processing units used to perform the techniques may be implemented in one or more ASICs, DSPs, digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, electronic devices, other electronic units designed to perform the functions described in this disclosure, computers, or a combination thereof.
[0089] Accordingly, the various exemplary logic blocks, modules, and circuits described in connection with the present disclosure may be implemented or performed by any combination of general-purpose processors, DSPs, ASICs, FPGAs or other programmable logic devices, discrete gate or transistor logic, discrete hardware components, or those designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but alternatively, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices, for example, a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors coupled with a DSP core, or any other combination of configurations.
[0090] In firmware and / or software implementations, techniques may be implemented as instructions stored on a computer-readable medium such as random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, compact disc (CD), magnetic or marked data storage device, etc. The instructions may be executable by one or more processors, and may cause the processor(s) to perform specific aspects of the functions described in this disclosure.
[0091] When implemented in software, the techniques described above may be stored on a computer-readable medium as one or more instructions or code, or transmitted through a computer-readable medium. Computer-readable media include both computer storage media and communication media, including any medium that facilitates the transmission of a computer program from one place to another. Storage media may be any available media accessible by a computer. As a non-limiting example, such computer-readable media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium accessible by a computer that can be used to transfer or store desired program code in the form of instructions or data structures. Additionally, any connection is appropriately referred to as a computer-readable medium.
[0092] For example, if software is transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair cable, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, coaxial cable, fiber optic cable, twisted pair cable, digital subscriber line, or wireless technologies such as infrared, radio, and microwave are included within the definition of a medium. As used herein, disks and discs include CDs, laser discs, optical discs, DVDs (digital versatile discs), floppy disks, and Blu-ray discs, wherein disks usually play data magnetically, whereas discs play data optically using a laser. The above combinations should also be included within the scope of computer-readable media.
[0093] The software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, or any other known form of storage medium. An exemplary storage medium may be connected to a processor so that the processor can read information from the storage medium or write information to the storage medium. Alternatively, the storage medium may be integrated into the processor. The processor and the storage medium may exist within an ASIC. The ASIC may exist within a user terminal. Alternatively, the processor and the storage medium may exist as separate components within the user terminal.
[0094] Although the embodiments described above have been described as utilizing aspects of the subject matter disclosed herein in one or more standalone computer systems, the present disclosure is not limited thereto and may be implemented in conjunction with any computing environment, such as a network or a distributed computing environment. Furthermore, aspects of the subject matter in the present disclosure may be implemented in a plurality of processing chips or devices, and storage may be similarly affected across a plurality of devices. Such devices may include PCs, network servers, and portable devices.
[0095] Although the present disclosure has been described in relation to some embodiments, various modifications and changes may be made without departing from the scope of the present disclosure as understood by a person skilled in the art to which the invention of the present disclosure pertains. Furthermore, such modifications and changes should be considered to fall within the scope of the claims appended to the present disclosure. Explanation of the symbols
[0096] 10: CAD Drawings 20: User Interface 100: Electronic device 110: Memory 111: Program 111a: Parsing module 111b: Grid cell creation module 111c: Graph generation module 111d: Graph Q&A Module 111e: Graph Mapping Module
Claims
Claim 1 A method for generating a knowledge graph based on a computer-aided design (CAD) drawing executed by at least one processor, comprising: a step of parsing a CAD drawing to extract a plurality of drawing entities included in the CAD drawing; a step of dividing an entire area of the CAD drawing into a plurality of grid cells based on a two-dimensional coordinate system representing the CAD drawing; a step of defining at least some of the plurality of drawing entities as entity nodes and defining each of the plurality of grid cells as a cell node; and a step of generating a knowledge graph that represents the CAD drawing as a graph structure based on at least one of a spatial relationship between the entity nodes and the cell nodes or a semantic relationship between the plurality of entity nodes, wherein the step of generating the knowledge graph comprises, for each of the plurality of grid cells, a step of identifying a drawing entity of a geometric series that is included in or intersects with the grid cell; and a step of generating a first subgraph that connects the cell node corresponding to the grid cell and the entity node corresponding to the drawing entity of the geometric series with an edge. Claim 2 A method for generating a knowledge graph based on a CAD drawing according to claim 1, wherein the step of extracting a plurality of drawing entities comprises: a step of extracting a drawing entity of a geometric series including at least one of a line, circle, arc, point, polyline, or spline from the CAD drawing; and a step of extracting a drawing entity of an annotation series including at least one of a dimension, dimension line, auxiliary line, leader line, symbol, text, or annotation. Claim 3 A method for generating a knowledge graph based on a CAD drawing, wherein the step of defining the entity node comprises the step of storing at least one of the geometric attribute value or the representation attribute value of a corresponding drawing entity in the entity node as node attribute information. Claim 4 A method for generating a knowledge graph based on a CAD drawing, wherein the step of defining the cell node comprises the step of storing at least one of identification information or coordinate information of a corresponding grid cell in the cell node as node attribute information. Claim 5 delete Claim 6 delete Claim 7 A method for generating a CAD drawing-based knowledge graph according to claim 1, wherein the step of generating the knowledge graph comprises: identifying an adjacency relationship between a first drawing entity of an annotation series and a second drawing entity of an annotation series based on coordinate information of each of the plurality of drawing entities; identifying a connection relationship between the first drawing entity and a third drawing entity of a geometric series; and identifying an anchor relationship between the third drawing entity and a fourth drawing entity of a geometric series. Claim 8 A method for generating a CAD drawing-based knowledge graph according to claim 7, wherein the step of generating the knowledge graph further comprises the step of generating a second subgraph connecting a first entity node corresponding to the second drawing entity and a second entity node corresponding to the third drawing entity with an edge. Claim 9 A method for generating a CAD drawing-based knowledge graph according to claim 7, wherein the step of generating the knowledge graph further comprises the step of generating a second subgraph connecting a second entity node corresponding to the third drawing entity and a third entity node corresponding to the fourth drawing entity with an edge. Claim 10 A method for generating a knowledge graph based on a CAD drawing, wherein the step of generating the knowledge graph further comprises the step of generating a second subgraph connecting a first entity node corresponding to the second drawing entity and a third entity node corresponding to the fourth drawing entity with an edge. Claim 11 A method for generating a CAD drawing-based knowledge graph according to claim 7, wherein the step of generating the knowledge graph further comprises the step of generating a second subgraph connecting at least some of the first entity node corresponding to the second drawing entity, the second entity node corresponding to the third drawing entity, and the third entity node corresponding to the fourth drawing entity with an edge. Claim 12 A method for generating a knowledge graph based on a CAD drawing according to claim 11, wherein the step of generating the second subgraph further includes the step of incorporating a fourth entity node corresponding to the first drawing entity into the structure of the second subgraph as context information expressing the relationship between the second drawing entity and the third drawing entity. Claim 13 A method for generating a knowledge graph based on a CAD drawing according to claim 1, wherein the step of generating the knowledge graph comprises: generating a first subgraph representing a spatial relationship between the entity node and the cell node; generating a second subgraph representing a semantic relationship between the plurality of entity nodes; and integrating the first subgraph and the second subgraph into a single graph structure to generate the knowledge graph. Claim 14 A computer program stored on a computer-readable recording medium for executing a method for generating a knowledge graph based on a CAD drawing according to any one of paragraphs 1 through 4 and 7 through 13 on a computer. Claim 15 An electronic device comprising: a memory for storing instructions; and at least one processor, wherein, when the instructions are executed by the at least one processor, the electronic device parses a CAD drawing to extract a plurality of drawing entities included in the CAD drawing, divides the entire area of the CAD drawing into a plurality of grid cells based on a two-dimensional coordinate system representing the CAD drawing, defines at least some of the plurality of drawing entities as entity nodes, defines each of the plurality of grid cells as cell nodes, and generates a knowledge graph representing the CAD drawing in a graph structure based on at least one of a spatial relationship between the entity nodes and the cell nodes or a semantic relationship between the plurality of entity nodes, and, when the instructions are executed by the at least one processor, the electronic device identifies, for each of the plurality of grid cells, a drawing entity of a geometric series that is included in or intersects with the grid cell, and generates a first subgraph connecting the cell node corresponding to the grid cell and the entity node corresponding to the drawing entity of the geometric series with an edge.
Citation Information
Patent Citations
Geometry-based design data search tool
US12045284B2
Method for converting map data to dat forobject_related geographic information system
KR1020010037981A
Computing system for virtual sensor implementation using digital twin and method for realtime data collection thereof
KR1020200144998A
Geometry-based design data search tool
US20230205820A1
