Large language model-driven design checks and reviews

A large language model addresses errors in well system technical plans by generating compliance reports that correct multiple constraints, enhancing efficiency and compliance in well construction.

FR3158378A1Pending Publication Date: 2025-07-18HALLIBURTON ENERGY SERVICES INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
FR2024013014
Authority / Receiving Office
FR · FR
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-16
Filing Date
2024-11-26
Publication Date
2025-07-18

AI Technical Summary

Technical Problem

The oil and gas industry faces challenges in identifying and correcting errors in technical plans for well systems due to the complexity and multi-disciplinary nature of the documents, leading to delays and non-compliance with legal and technical constraints during well construction.

Method used

A large language model (LLM) is trained to generate a compliance report by analyzing technical plans against compliance constraints, identifying errors, and proposing corrective actions, considering all relevant legal, industry, and internal constraints simultaneously.

Benefits of technology

This approach reduces time and effort in error correction, ensures compliance with multiple constraints, and identifies errors earlier in the process, facilitating smoother project execution.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A method of generating a compliance report, comprising receiving, by a report generator, a technical plan and a compliance constraint, processing the technical plan and the compliance constraint, generating the compliance report based on the processing, and providing the compliance report to a user.
Need to check novelty before this filing date? Find Prior Art

Description

Title of the invention: Large language model-driven design verifications and reviews

[0001] STATE OF THE ART

[0002] The oil and gas industry may use wellbores as fluid conduits to access subterranean deposits of various fluids and minerals that may include hydrocarbons. A drilling operation may be used to construct the fluid conduits that are capable of producing hydrocarbons disposed in subterranean formations. Wellbores may be constructed, in increments, as tapered sections, that extend sequentially into a subterranean formation. Brief description of the drawings

[0003] These drawings illustrate certain aspects of some examples of the present disclosure and should not be construed as limiting or defining the disclosure.

[0004] [Fig. 1] is a diagram of an exemplary drilling environment.

[0005] [Fig.2] is a diagram of an exemplary computing environment.

[0006] [Fig.3A] is a diagram of a computer system with a report generator and various components used by the report generator.

[0007] [Fig.3B] is a diagram of a training database and the data therein.

[0008] [Fig.3C] is a diagram of a compliance database and the data therein.

[0009] [Fig.3D] is a diagram of a compliance report.

[0010] [Fig.3E] is a diagram of a report generator and the components therein.

[0011] [Fig.4] is a flowchart of a method of driving a report generator using a training database.

[0012] [Fig.5] is a flowchart of a method of using a report generator to generate a compliance report.

[0013] [Fig.6] is a flowchart of a process of the internal components of a generator report when generating a compliance report.

[0014] [Fig.7] is a table of an exemplary compliance report. DETAILED DESCRIPTION

[0015] — General presentation and advantages —

[0016] Generally, the present application discloses one or more embodiments of methods and systems for generating a compliance report for a technical plan of a well system. In one or more embodiments, a large language model (LLM) can be trained and used to examine a technical plan (with tens, hundreds, or thousands of various documents), search for errors (e.g., typos, inconsistencies, nonconformities, etc.) in the documents, and generate a compliance report detailing these errors and proposing corrective actions. The design, construction, and operation of the well system thus benefits from thorough review and comprehensive remediation at the early stages of the larger project.

[0017] Generally, to extract hydrocarbons (e.g., oil and gas) from subterranean formations, a well system is designed and constructed to facilitate the capture of these resources. Prior to the construction of such a well system, a technical plan is developed that thoroughly details (almost) all aspects of the design, construction, and operation of the wells. Such a technical plan may include references to legal requirements, references to required standards, materials, procurement of materials, equipment, procurement of equipment, a list of personnel, and / or any other factors relevant to the well system.

[0018] Because of the extensive scope and detail required of the technical plan, it is generally necessary to invest a great deal of time, effort, and knowledge in preparing the various documents that make up the technical plan. These operations involve many participants whose technical expertise only partially overlaps, to the extent that a document cannot be fully reviewed by a single person involved in the project. It may therefore be difficult to identify errors in the technical plan, and even if identified, correcting such errors may not be straightforward.

[0019] For example, an attorney studying the engineering plan may identify that some of the materials required for construction are subject to export regulatory restrictions from the specified country for the supply of such materials. Therefore, the affected materials cannot be exported from the supply source to the well site. However, the attorney lacks the technical expertise to propose a correction that complies with existing engineering constraints. Alternatively, an application engineer proposes a material change that complies with imposed structural requirements and legal constraints. But the application engineer's proposed change renders part of the design noncompliant with an environmental standard imposed by the end user.An environmental specialist therefore proposes replacing non-compliant components with compliant components having the same function but operating differently from the non-compliant components. This proposal . meets all outstanding legal and technical constraints. Due to the extent of the proposed changes, the technical plan must be reviewed and approved again by a government agency that issues operating permits. The government agency's review of the project takes several months and is accompanied by an unacceptable delay in the execution plan, resulting in a failure to meet a time (and cost) constraint.

[0020] In this example, after spending considerable time (and expense) trying to satisfy the imposed constraints, it is determined that a recently enacted regulation (with which the attorney was unfamiliar) requires the government (of the country regulating the sourcing of the materials) to grant an exemption from the export restrictions if certain conditions are met. The project specified in the engineering plan meets these exemption requirements, and it is therefore anticipated that the exemption will be granted. During the initial review of the engineering plan, the attorney should have proposed amending the documents to reflect the applicability of the export restriction and the need for an exemption, and then should have added the procedure for obtaining the exemption to the list of documents required for the engineering plan.It was also found that the same materials (as originally proposed) can be supplied by another country with no export restrictions, at a cost 10% higher than the original source of supply (without exceeding budgetary constraints). The procurement specialist who originally proposed the source of supply was not aware that the supplier had changed the export country and therefore this specialist was not asked to study the technical plan and propose a solution.

[0021] Under conventional methods, effort and time are iteratively expended to correct errors in an engineering drawing. Moreover, errors may remain undetected until a problem later arises. For example, an engineering drawing may specify pipe diameters in some drawings that conflict with pipe diameters specified in the text for an associated component. Pipe fittings of different diameters are ordered from different suppliers. When the incompatible parts arrive for assembly, construction is halted until the correct parts can be obtained. It is only at this late stage (during construction) that the error (incompatible pipe diameters) is finally identified in the engineering drawing.

[0022] As disclosed in one or more embodiments herein, a large language model (LLM) may be trained to generate a "compliance report" capable of identifying errors in a technical plan (e.g., the existence export restrictions, incompatible pipe diameters, etc.), and to provide proposed corrective actions for these errors (e.g., waiver of export restrictions, ordering materials from a different source, correcting pipe diameter). During training and use of the LLM, the LLM can access a compliance database specifying all potentially relevant legal and technical constraints, including those applicable at the technical level. Thus, when "reviewing" the document, the LLM can consider all constraints, as a single entity, to propose a solution that simultaneously satisfies all specified compliance constraints (and not just the constraints concerning a single specialty).

[0023] — [Fig.l] —

[0024] [Fig.l] is a diagram of an exemplary drilling environment. The drilling environment 100 may include a platform 102 supporting a derrick 104 having a movable block 108 for raising and lowering a top drive 110 and a drill string 114. The top drive 110 supports and rotates the drill string 114 as it is lowered through the wellhead 112. A drill bit 124, located at the end of the drill string 114, may create a borehole 116. Each of these components is described below.

[0025] The platform 102 is a structure that may be used to support one or more other components of a drilling environment 100 (e.g., the derrick 104). The platform 102 may be designed and constructed with suitable materials (e.g., concrete) capable of resisting forces applied by other components (e.g., the weight and counterforces experienced by the derrick 104). In any embodiment, the platform 102 may be constructed to provide a uniform surface for drilling operations in the drilling environment 100.

[0026] The derrick 104 is a structure capable of supporting, containing, and / or facilitating the operation of one or more pieces of drilling equipment. In any embodiment, the derrick 104 may provide support for a crown block 106, the movable block 108, and / or any portion connected to (and including) the drill string 114. The derrick 104 may be constructed of any suitable material (e.g., steel) to provide the strength necessary to support these components.

[0027] The crown block 106 is comprised of one or more simple machines that may be rigidly attached to the derrick 104 and that include a set of pulleys (e.g., a "block"), threaded (e.g., "threaded") with a drilling cable (e.g., a steel cable), to provide a mechanical advantage. The crown block 106 may be disposed vertically above the movable block 108, with the movable block 108 being threaded with the same drilling cable.

[0028] The movable block 108 is comprised of one or more simple machines that may be rigidly attached to the derrick 104 and include a set of pulleys, threaded with a drill cable, to provide a mechanical advantage. The movable block 108 may be disposed vertically below the crown block 106, with the crown block 106 being threaded with the same drill cable. In any embodiment, the movable block 108 may be mechanically coupled to the drill string 114 (e.g., via the top drive 110) and allow the drill string (114 (and / or any component thereof) to be lifted from (and out of) the borehole 116. The crown block 106 and the movable block 108 may utilize a series of parallel pulleys (e.g.,, in a "hoist" arrangement) to provide a significant mechanical advantage, allowing the drill string to withstand greater loads (compared to a configuration employing non-parallel tension). The movable block 108 can move vertically (e.g., up and down) within the derrick 104 by extending and retracting the drill cable.

[0029] The top drive 110 is a machine that may be configured to rotate the drill string 114. The top drive 110 may be attached to the movable block 108 and configured to move vertically within the derrick 104 (e.g., with the movable block 108). In any embodiment, rotation of the drill string 114 (caused by the top drive 110) may enable the drill string 114 to drill the borehole 116. The top drive 110 may use one or more motors and gear mechanisms to cause rotations of the drill string 114. In any embodiment, a rotary drive table (not shown) and a drive rod (not shown) may be used in addition to, or instead of, the top drive 110.

[0030] The wellhead 112 is a machine that may include one or more pipelines, caps, and / or valves to provide pressure regulation of contents within the borehole 116 (e.g., when fluidly connected to a well (not shown)). In any embodiment, during drilling, the wellhead 112 may be provided with a blowout preventer (not shown) to prevent the flow of higher pressure fluids (in the borehole 116) from escaping to the surface in an uncontrolled manner. The wellhead 112 may be provided with other ports and / or sensors to monitor pressures within the borehole 116 and / or otherwise facilitate drilling operations.

[0031] The drill string 114 is a machine that may be used to drill the borehole 116 and / or collect data from the borehole 116 and the geological environment. The drill string 114 may include one or multiple drill pipes, one or more repeaters 120, and a bottom hole assembly 118. The drill string 114 may rotate (e.g., via the top drive 110) to form and deepen the borehole 116 (e.g., via the drill bit 124 and / or via one or more motors attached to the drill string 114).

[0032] The borehole 116 is a hole in the ground that may be formed by the drill string 114 (and one or more components thereof). The borehole 116 may be partially or completely cased with casing to protect the surrounding ground from the contents of the borehole 116 and, conversely, to protect the borehole 116 from the surrounding ground.

[0033] The downhole assembly 118 is a machine that may be provided with one or more tools for creating, structuring, and maintaining the borehole 116, as well as one or more tools for measuring the environment thereof (e.g., measurement while drilling (MWD) and logging while drilling (LWD)). In any embodiment, the downhole assembly 118 may be disposed at (or near) the end of the drill string 114 (e.g., in the lowest portion of the borehole 116).

[0034] Non-limiting examples of tools that may be included in the downhole assembly 118 are, in particular, a drill bit (e.g., the bit 124), casing tools (e.g., a displacement tool), a plugging tool, a mud motor, a drill collar (thick-walled steel pipes providing weight and rigidity to assist in the drilling process), actuators (and pistons attached thereto), a steering system, and any measurement tools (e.g., sensors, probes, particle generators, etc.).

[0035] The downhole assembly 118 may further include a telemetry subassembly for maintaining a communication link with the surface (e.g., with an information management system 201). Such telemetry communications may be used (i) to transfer tool measurement data from the downhole assembly 118 to surface receivers and / or (ii) to receive commands (from the surface) to the downhole assembly 118 (e.g., for operation of one or more tools in the downhole assembly 118).

[0036] Non-limiting examples of tool measurement data transfer techniques (to the surface) include pulse telemetry in the mud and acoustic through-wall signaling. For acoustic through-wall signaling, one or more repeaters 120 may detect, amplify, and retransmit signals from the downhole assembly 118 to the surface (e.g., to the information management system 201) and, conversely, from the surface (e.g., from the information management system 201) to the downhole assembly 118.

[0037] The repeater 120 is a device that can be used to receive and send signals from one component of the drilling environment 100 to another component of the drilling environment 100. In a non-limiting example, the repeater 120 can be used to receive a signal from the tool on the downhole assembly 118 and send that signal to the information management system 201. Two or more repeaters 120 can be used together, in series, so that a signal to / from the downhole assembly 118 can be relayed through the two or more repeaters 120 before reaching its destination.

[0038] The transducer 122 is a device that may be configured to convert non-digital data (e.g., vibrations, other analog data) into a digital form suitable for the information management system 201. In a non-limiting example, one or more transducers 122 may convert signals between a mechanical form and an electrical form, enabling the information management system 201 to receive the signals from a telemetry subassembly on the downhole assembly 118 and, conversely, transmit a downlink signal to the telemetry subassembly on the downhole assembly 118. In any embodiment, the transducer 122 may be located at the surface and / or at any portion of the drill string 114 (e.g., as part of the downhole assembly 118).

[0039] The drill bit 124 is a machine that may be used to cut, scrape, and / or grind (i.e., separate) materials in the ground (e.g., rocks, soil, clay, etc.). The drill bit 124 may be disposed at the forward-most point of the drill string 114 and the bottom hole assembly 118. In any embodiment, the drill bit 124 may include one or more cutting edges (e.g., hardened metal tips, surfaces, blades, protrusions, etc.) to form a geometry that facilitates the separation of materials from the ground and further the grinding of materials into smaller sizes. In any embodiment, the drill bit 124 may be rotated and forced into (i.e., pushed against) the ground material to cause the cutting, scraping, and grinding action.Rotations of the drill bit 124 may be caused by the top drive 110 and / or by one or more motors located on the drill string 114 (e.g., on the bottom hole assembly 118).

[0040] A pump 126 is a machine that can be used to circulate drilling fluid 128 from a reservoir, through a supply line, to the derrick 104, into the drill string 114), out of the drill string 124 (through ports, not shown), back up through the borehole 116 (around the drill string 114), and back into the reservoir. In any embodiment, any suitable pump 126 can be used (e.g., centrifugal, geared, etc.) being powered by any suitable means (e.g., electricity, fuel, etc.).

[0041] A drilling fluid 128 is a liquid that may be pumped through the drill string 114 and the borehole 116 to collect drill cuttings, debris, and / or other ground materials from the end of the borehole 116 (e.g., the volume most recently drilled by the drill bit 124). The drilling fluid 128 may further provide conduction cooling to the drill bit 124 (and / or the bottom hole assembly 118). In any embodiment, the drilling fluid 128 may be circulated by the pump 126 and filtered to remove unwanted debris.

[0042] The information management system 201 is a hardware computer system that may be operatively connected to the drill string 114 (and / or various other components of the drilling environment). In any embodiment, the information management system 201 may use any suitable form of wired and / or wireless communication to send or receive data to and / or from other components of the drilling environment 100. In any embodiment, the information management system 201 may receive a digital telemetry signal, demodulate the signal, display data (e.g., via a visual output device), and / or store the data. In any embodiment, the information management system 201 may send a signal (with data) to one or more other components of the drilling environment 100 (e.g., to control one or more tools on the downhole assembly 118).Further details of the information management system 201 are provided in the description of [Fig.2].

[0043] — [Fig.2] —

[0044] [Fig. 2] is a diagram of an exemplary computing environment. The computing environment 200 may include one or more information management systems 201 connected via a network 212. A resource manager 218 may aggregate and manage the allocation of computing resources (of one or more information management systems 201) into one or more computing resource pools 220. The one or more computing resource pools 220 may be allocated to various virtualized and / or logical components (e.g., one or more virtual machines 230, one or more virtual storage volumes 238, etc.). Each of these components is described below.

[0045] The information management system 201 is a hardware computing device that may be used to perform various steps, methods, and techniques disclosed herein (e.g., via the execution of software). In any embodiment, an information management system 201 may include one or more processors 202, a cache 204, a memory 206, a storage 208 and / or one or more peripheral devices 209. Two or more of these components may be operatively connected via a system bus (not shown) that provides a means for transferring data between these components. Although each component is shown and disclosed as an individual functional component, these individual components may be combined (or divided) into any component combination or configuration.

[0046] A system bus is a system of hardware connections (e.g., jacks, ports, wiring, conductive traces on a printed circuit board (PCB), etc.) used to send (and receive) data to (and from) each of the components connected thereto. In any embodiment, a system bus enables communication via an interface and protocol (e.g., interintegrated circuit (I2C), peripheral component interconnect (express) (PCI(e)), etc.) that may be commonly recognized by the components using the system bus. In any embodiment, a basic input / output system (BIOS) may be configured to transfer information between the components using the bus system (e.g., during initialization of the information management system 201).

[0047] In any embodiment, the information management system 201 may further include one or more internal physical interfaces (e.g., Serial Advanced Technology Attachment (SATA) ports, Peripheral Component Interconnect (PCI) ports, PCI express (PCIe) ports, Next Generation Form Factor (NGFF) ports, M.2 ports, etc.) and / or one or more external physical interfaces (e.g., Universal Serial Bus (USB) ports, Recommended Standard (RS) serial ports, audio-visual ports, etc.). One or more internal physical interfaces and one or more external physical interfaces may facilitate functional connection to one or more peripheral devices 209.

[0048] Non-limiting examples of the information management system 201 include a general-purpose computer (e.g., a personal computer, a desktop computer, a laptop computer, a tablet, a smartphone, etc.), a network device (e.g., a switch, a router, a multi-layer switch, etc.), a server (e.g., a blade server in a blade server chassis, a rack server in a rack, etc.), a controller (e.g., a programmable logic controller (PLC)), and / or any other type of computing device having the aforementioned capabilities. The information management system 201 may further be operatively connected to another information management system 201 via a network 212 in a distributed computing environment. As used herein, a "computing device" may be equivalent to an information management system.

[0049] A processor 202 is a hardware device that may take the form of an integrated circuit configured to process computer-executable instructions (e.g., software). The processor 202 may execute (e.g., read and process) computer-executable instructions stored in the cache 204, memory 206, and / or storage 208. The processor 202 may be a stand-alone computer system, including a system bus, memory, cache, and / or any other component of a computing device. The processor 202 may include multiple processors, such as a system having multiple physically separate processors in different sockets, or a system having multiple processor cores on a single physical chip. A multi-core processor may be symmetric or asymmetric. Multiple processors 202 and / or multiple processor cores may share resources (e.g., cache 204, memory 206) or may operate using independent resources.

[0050] Non-limiting examples of the processor 202 are in particular a general-purpose processor (e.g., a central processing unit (CPU), an application-specific integrated circuit (ASIC), a programmable gate array (PGA), a field-programmable gate array (FPGA), a digital signal processor (DSP), and any digital or analog circuit configured to perform operations based on input data (e.g., execute program instructions).

[0051] Cache memory 204 is one or more hardware devices capable of storing digital information (e.g., data) in a non-transitory medium. Cache memory 204 expressly excludes transient media (e.g., transient waves, energy, carrier signals, electromagnetic waves, signals themselves, etc.). Cache memory 204 may be considered "high-speed" in that it has comparatively faster read / write access than memory 206 and storage 208, and is therefore used by processor 202 to process data more quickly than data stored in memory 206 or storage 208. Processor 202 may therefore copy necessary data into cache memory 204 (from memory 206 and / or storage 208) for comparatively faster access when processing that data.In any embodiment, the cache memory 204 may be included within the processor 202 (e.g., as a subcomponent). In any embodiment, the cache memory 204 may be physically independent of the processor 202 but functionally linked thereto.

[0052] Memory 206 is one or more hardware devices capable of storing digital information (e.g., data) in a non-transitory medium. Memory 206 expressly excludes transient media (e.g., transient waves, energy, carrier signals, electromagnetic waves, signals themselves, etc.). In any embodiment, when accessing memory 206, software (executed by processor 202) may be able to read and write data at the smallest normally accessible data units (e.g., "bytes"). Specifically, memory 206 may include a unique physical address for each byte stored therein, thereby allowing data to be accessed and manipulated (read and written) by directing commands to a specific physical address associated with a byte of data (i.e., "random access"). Non-limiting examples of memory 206 include flash memory, random access memory (RAM), dynamic RAM (DRAM), static RAM (SRAM), resistive RAM (ReRAM), read-only memory (ROM), and electrically erasable programmable ROM (EEPROM). In any embodiment, memory 206 may be volatile or non-volatile.

[0053] Storage 208 is one or more hardware devices capable of storing digital information (e.g., data) in a non-transitory medium. Storage 208 expressly excludes transient media (e.g., transient waves, energy, carrier signals, electromagnetic waves, signals themselves, etc.). In any embodiment, the smallest unit of data readable from storage 208 may be a "block" (instead of a "byte"). Prior to reading and / or manipulating data on storage 208, one or more blocks may be copied to an intermediate storage medium (e.g., cache 204, memory 206) where the data may then be accessed in "bytes" (e.g., via random access). In any embodiment, data on storage 208 may be accessed in "bytes" (as in memory 206).Non-limiting examples of the storage 208 are particularly integrated circuit storage devices (e.g., solid state drive (SSD), non-volatile memory express (NVMe), flash memory, etc.), magnetic storage devices (e.g., hard disk drive (HDD), floppy disk, magnetic tape, floppy disk, cassettes, etc.), optical media (e.g., compact disc (CD), digital versatile disc (DVD), etc.), and printed media (e.g., barcode, quick response (QR) code, punch card, etc.).

[0054] As used herein, a "non-transitory computer-readable medium" is cache 204, memory 206, storage 208, and / or any other hardware device capable of non-transitory storing and / or carrying data.

[0055] A peripheral device 209 is a hardware device configured to send (and / or receive) data to (and / or from) the information management system 201 via one or more internal and / or external physical interfaces. Any peripheral device 209 may be categorized as one or more "types" of computing devices (e.g., an "input" device, an "output" device, a "communication" device, etc.). However, such categories are not exhaustive and are not mutually exclusive. Such categories are listed herein strictly to provide understandable groupings of the potential types of peripheral devices 209. As such, the peripheral device 209 may be an input device, an output device, a communication device, and / or any other optional computing component.

[0056] An input device is a hardware device that receives data into the information management system 201. In any embodiment, an input device may be a human interface device that facilitates user interaction by collecting data based on user inputs (e.g., a mouse, keyboard, camera, microphone, touchpad, touchscreen, fingerprint reader, gamepad, game pad, etc.). In any embodiment, an input device may collect data based on raw inputs, independent of any human interaction (e.g., a sensor, recording tool, audiovisual capture card, etc.). In any embodiment, an input device may be a drive for accessing data on a non-transitory computer-readable medium (e.g., a CD drive, floppy disk drive, tape drive, scanner, etc.).

[0057] An output device is a hardware device that sends data from the information management system 201. In any embodiment, an output device may be a human interface device that facilitates the provision of data to a user (e.g., a visual display monitor, speakers, a printer, a light, a haptic feedback device, etc.). In any embodiment, an output device may be a writing device to facilitate the storage of data on a non-transitory computer-readable medium (e.g., a CD drive, a floppy disk drive, a tape drive, a scanner, etc.).

[0058] A communication device is a hardware device capable of sending and / or receiving data with one or more other communication devices (e.g., connected to another information management system 201 via the network 212). A communication device may communicate via any suitable form of wired interface (e.g., Ethernet, fiber optic, serial communication, etc.) and / or wireless interface (e.g., Wi-Fi® (Institute of Electrical and Electronics Engineers (IEEE) 802.11), Bluetooth® (IEEE 802.15.1), etc.) and use one or more protocols for transmitting and receiving data (e.g., Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Internet Protocol (IP), Remote Direct Memory Access (RDMA), etc.).Non-limiting examples of a communication device are in particular a network interface card (NIC), a modem, an Ethernet card / adapter, and a Wi-Fi® card / adapter.

[0059] An optional computer component is any hardware device that functionally connects to the information management system 201 and augments the capabilities of the information management system 201. Non-limiting examples of an optional computing component include, in particular, a graphics processing unit (GPU), a data processing unit (DPU), and a docking station.

[0060] As used herein, "software" (e.g., "code," "algorithm," "application," "routine") is data in the form of computer-executable instructions. Processor 202 may execute (e.g., read and process) software to perform one or more functions. Non-limiting examples of functions include reading existing data, modifying existing data, generating new data, and utilizing capabilities of information management system 201 (e.g., reading existing data from memory 206, generating new data from the existing data, sending the generated data to a GPU for display on a monitor).Although software physically persists in cache 204, memory 206, and / or storage 208, one or more software instances may be depicted, in the figures, as an external component of any information management system 201 that interacts with one or more information management systems 201.

[0061] A network 212 is a collection of connected information management systems (e.g., 201, 201N) enabling the exchange of data and / or the sharing of computing resources therebetween. Non-limiting examples of the network 212 are in particular a local area network (LAN), a wide area network (WAN) (e.g., the Internet), a mobile network, any combination thereof, and any other type of network enabling data communication and resource sharing between computing devices operatively connected thereto. Those skilled in the art, having read the present detailed description, may realize that a network is a collection of operatively connected computing devices enabling communication between these computing devices.

[0062] As used herein, a "computing resource" refers to the functional capabilities (and / or portions of functional capabilities) of any component of the information management system 201. For example, a processor 202 may have "processor resources" that may be divided into processor time slices, each of which may be considered a "computing resource." Cache 204, memory 206, and storage 208 may each be categorized into their own type of "computing resource," as well as any smaller increments of storage therein (e.g., "bytes," "blocks"). In a non-limiting example, a single memory device 206 may be divided into separately allocable ranges of bytes.The storage capacity of the entire memory device 206 may be considered a "computing resource" and any subdivision (byte range) thereof may also be . considered a “computing resource.” In another non-limiting example, a network interface card may have a total throughput capacity that may be divided into bandwidth portions. The total throughput may be considered a “computing resource,” and any smaller bandwidth portions may also be considered a “computing resource.”

[0063] A resource manager 218 is a software instance that manages the allocation of computing resources. In any embodiment, the resource manager 218 is configured (i.e., programmed) to request one or more information management systems 201 to query the computing resources available therein and may aggregate these computing resources into one or more computing resource pools 220, depending on the type of computing resource. The resource manager 218 may use one or more databases (e.g., database 240) to track the availability, allocation, and / or usage of computing resources (e.g., as one or more computing resource pools 220).In any embodiment, the resource manager 218 may create, initialize, stop, and / or terminate one or more virtual machines 230, software containers, virtual storage volumes 238, and / or databases 240. Non-limiting examples of the resource manager 218 include, in particular, an orchestrator, a hypervisor, and / or a container manager.

[0064] A computing resource pool 220 is a data structure comprising one or more groups for specific types of computing resources (e.g., one or more processing pools 222, memory pools 226, storage pools 228, peripheral device pools 229, etc.). In any embodiment, the computing resource pool 220 is a data structure, created or managed by the resource manager 218, that tracks the various computing resources and information management systems 201 in the computing environment 200. The one or more computing resource pools 220 may take the form of a table, a file, and any other data structure capable of comprising the information relevant to computing resources.

[0065] The processing group 222 is a data structure that comprises an aggregation of the capabilities and / or functionality of one or more processors 202 in one or more information management systems 201. In any embodiment, the processing group 222 presents a unified virtual computing resource that can be allocated, by the resource manager 218, to any software (e.g., a virtual machine 230) and / or any virtual storage volume 238.

[0066] The memory group 226 is a data structure that comprises an aggregation of the capabilities and / or functionalities of one or more devices of memory 206 in one or more information management systems 201. In any embodiment, the memory pool 226 presents a unified virtual computing resource that can be allocated, by the resource manager 218, to any software (e.g., the virtual machine 230) and / or the virtual storage volume 238.

[0067] Storage pool 228 is a data structure that comprises an aggregation of the capabilities and / or functionality of one or more storage devices 208 in one or more information management systems 201. In any embodiment, storage pool 228 presents a unified virtual computing resource that can be allocated, by resource manager 218, to any software (e.g., virtual machine 230) and / or virtual storage volume 238.

[0068] The peripheral device group 229 is a data structure that comprises an aggregation of the capabilities and / or functionalities of one or more peripheral devices 209 in one or more information management systems 201. In any embodiment, the peripheral device group 229 presents a unified virtual computing resource that can be allocated, by the resource manager 218, to any software (e.g., the virtual machine 230) and / or the virtual storage volume 238.

[0069] A virtual machine 230 is a software instance that provides a virtual environment in which other software can be executed. In any embodiment, the virtual machine 230 may be created by the resource manager 218, where the resource manager 218 allocates a certain portion of computing resources (e.g., in one or more computing resource pools 220) to the virtual machine 230 to initialize and execute it. In any embodiment, in the virtual machine 230, the computing resources may be aggregated from one or more information management systems 201 (e.g., via one or more computing resource pools 220) and presented as unified "virtual" resources in the virtual machine 230 (e.g., one or more virtual processors, virtual memory, virtual storage, one or more virtual peripheral devices, etc.).Since one or more computing resource pools 220 are used to generate the virtual machine 230, the underlying hardware storing, executing, and processing operations (of the virtual machine 230) may be arranged in any number of information management systems 201.

[0070] A virtual storage volume 238 is a virtual space for storing data. In any embodiment, the virtual storage volume 238 may use any suitable means of one or more underlying devices for storing data (e.g., cache 204, memory 206, storage 208) via one or more computing resource pools 220. In any embodiment, the virtual storage volume 238 may be managed by the virtual machine 230, where the machine virtual 230 manages access (read / write), file system, redundancy and addressability of the data stored in it.

[0071] A database 240 is a data structure that stores information in relational tuplets and attributes. In any embodiment, the database 240 may be stored on a virtual storage volume 238 and / or directly on a single information management system 201. Non-limiting examples of the database 240 are particularly one or more tables each having one or more "rows" (e.g., one or more tuplets) and "columns" (e.g., one or more attributes), a file structured for storing tabular data (e.g., a comma-separated values (CSV) file, a tab-separated values (TSV) file, etc.), a relational database management system (RDBMS) (e.g., using Structured Query Language (SQL)), and / or any other data structure capable of storing data.

[0072] Those skilled in the art, having read the present detailed description, may realize that a computing environment 200 may not be actively functionally connected to one or more components of the drilling environment 100. In one or more embodiments, the computing environment 200 (and any components thereof) may be located elsewhere (e.g., in a data center, an office workspace, distributed across various locations, etc.). Such a computing environment 200 may indirectly receive data from one or more components of the drilling environment 100 (e.g., by accessing a database of previously stored data, by receiving data remotely over a wide area network, etc.).The drilling environment 100 and the computing environment 200 are just two examples of environments in which data described herein may be obtained, analyzed, processed and generated.

[0073] — [Fig.3A] —

[0074] [Fig.3A] is a diagram of a computer system with a report generator and various components used by the report generator.

[0075] A training database 342 is a database (e.g., a database 240) storing compliance constraints 352, technical plans 354, and compliance reports 350. In one or more embodiments, the training database 342 may be read, searched, queried, and / or otherwise accessed (to obtain data therefrom) by software executing in the computing environment 200 (e.g., a report generator 346). Additional details about the data in the training database 342 are provided in the description of [Fig. 3B].

[0076] A compliance database 344 is a database (e.g., database 240) storing legal compliance data 358, industry compliance data 360, and internal compliance data 362. In one or more embodiments, the compliance database 344 may be read, searched, queried, and / or otherwise accessed (to obtain data therefrom) by a component of the computing environment 200 (e.g., the report generator 346). Additional details about the data in the compliance database 344 are provided in the description of [Fig. 3C].

[0077] A report generator 346 is software that processes a technical plan 354 and compliance constraints 352 (as inputs) and generates a compliance report 350 (as output). In one or more embodiments, the report generator 346 may be a large language model (LLM) in the form of an artificial neural network trained using one or more machine learning and artificial intelligence methods. Additional details about the report generator 346 are provided in the description of [Fig.3E].

[0078] A computer-aided design (CAD) application 348 is software for creating, displaying, and / or manipulating digital models (i.e., stored as data). In one or more embodiments, a technical plan 354 includes proposed designs for a well system in file formats that are readable by a CAD application 348 (e.g., CAD file formats). The report generator 346 may operatively connect to a CAD application (e.g., via a CAD plug-in 388) to enable reading, review, and analysis of the CAD files of the technical plan 354.

[0079] A compliance report 350 is a data structure that includes compliance report entries 374 that specify errors present in the associated technical plan 354 and one or more proposed actions 378 to correct the identified errors. Additional details about the compliance report 350 are provided in the description of [Fig.3D].

[0080] — [Fig.3B] —

[0081] [Fig.3B] is a diagram of a training database and the data therein.

[0082] A compliance constraint 352 is data specifying compliance data (i.e., legal compliance data 358, industry compliance data 360, and / or internal compliance data 362) that is applicable to the associated technical plan 354 (and / or portions of the technical plan 354). Non-limiting examples of compliance constraints 352 are, in particular, an alphanumeric string uniquely referencing specific compliance data (e.g., “43 CFR §3160,” “ISO 14693”) and / or an identifier unique that can be used to identify the text of relevant compliance data (e.g., 921204.0828). In one or more embodiments, a compliance constraint may be associated with a specific document and / or portion of the technical plan 354 (e.g., ISO 11960 (“well casings and tubing”) may be associated with the design documents of the technical plan 354 relating to the proposed casing design).

[0083] The technical plan 354 is data comprising documents, drawings, and technical information for the proposed design of a well system. Non-limiting examples of data in the technical plan 354 are, in particular, design drawings, a service design document, a list of materials used for construction, supplier data (e.g., name, country, applicable legal compliance data 358), a list of equipment / machinery used during construction / operation, documentation of all equipment / machinery (e.g., specifications, manuals, manufacturer, date / location of manufacture, applicable industry compliance data 360), a list of personnel (e.g., names, employer, title, role, applicable legal compliance data 358), and / or any other documentation concerning the design, construction, and operation of a well system.In one or more embodiments, compliance constraints 352 may be included partially or completely in the technical plan 354.

[0084] — [Fig.3C] —

[0085] [Fig.3C] is a diagram of a compliance database and the data therein.

[0086] Legal compliance data 358 is data that includes requirements (and / or guidelines) specified by a government with respect to a line of business. Non-limiting examples of legal compliance data 358 are, in particular, laws, statutes, acts, ordinances, regulations, codes, mandates, edicts, decrees, judgments, opinions, interpretations and / or any other form of guidance provided by a government with respect to the associated line of business. Non-limiting examples of lines of business are, in particular, engineering design, construction, accounting, law, medicine and / or any good or service for which there may be government involvement. A line of business may be any subcategory of a broad line of business (e.g.,, building design, plumbing system design, fire suppression ("sprinkler") system design, etc.). In a specific non-limiting example, a business area might be "patent drawing requirements" (a subcategory of patent drafting, patent law, and law in general), where the . Legal compliance data 358 may include, in part, the text of 35 United States Code (USC) §113; 37 Code of Federal Regulations (CFR) §§1.81, 1.83, 1.84, 1.85; and Manual of Patent Examining Procedure (MPEP) §§608, 1825, 1606. In one or more embodiments, Legal compliance data 358 may reference and mandate compliance with Sector Compliance Data 360 (e.g., Texas' Local Government Code sec. 214.214 mandates compliance with the National Electrical Code (NEC)).

[0087] As used herein, the legal compliance data 358 may relate to the design of one or more well systems for the extraction of hydrocarbons (e.g., oil and gas). In such cases, the legal compliance data 358 may include relevant (for any government in the world) international (e.g., treaty), national (e.g., federal), regional (e.g., state), and local (e.g., municipal) requirements regarding well design, well construction, the hydrocarbon extraction process, and the transportation of hydrocarbons. In a non-limiting example, in the United States, federal requirements may include the National Environmental Policy Act (NEPA) (42 USC §4321 et seq.), the National Historic Preservation Act (NHPA) (16 USC §§470a-470w-6 et seq.), the Endangered Species Act (6 USC §1531-1544), Bureau of Land Management (BLM) regulations pursuant to 43 CFR §3160, and any associated regulations (or directives) (e.g., Titles 30, 36, and 43 of the CFR, written opinions, court judgments, etc.). State requirements may include, for example, Title 3 ("Oil and Gas") of the Texas' Natural Resources Code and any regulations promulgated thereunder. One skilled in the art may appreciate that the identification of applicable legal compliance data 358 is based on one or more regions and / or one or more jurisdictions for a well design (e.g., a well system proposed in Ragusa, Italy would use legal compliance data 358 from the city of Ragusa (local), the province of Ragusa (regional), Italy (national), and the European Union (EU) (international)).

[0088] The 360 industry compliance data is data that includes publicly available documents (e.g., industry standards, specifications, manuals, guidelines, published best practices, procedures, etc.) regarding practices in the associated industry (e.g., those defined by industry and standard-setting bodies, organizations, or associations). In a non-limiting example, for the financial accounting industry, the 360 industry compliance data may include the Generally Accepted Accounting Principles (GAAP) published in the Accounting Standard Codification (ASC) by the Financial Accounting Standards Board (FASB). In another example, for the construction and electrical systems industry, the 360 Industry Compliance Data may include the National Electrical Code (NEC) published by the National Fire Protection Association (NFPA). The 360 Industry Compliance Data may further include published technical documents, patents, and patent application publications.

[0089] As used herein, the 360 industry compliance data may relate to the design of one or more well systems for the extraction of hydrocarbons (e.g., oil and gas). In such cases, the 360 industry compliance data may include any publication of the American Petroleum Institute (API), the American National Standards Institute (ANSI), the International Organization for Standardization (ISO) (e.g., ISO 10423 "Wellhead & shaft equipment", ISO 14693 "Drilling equipment", etc.), the American Society for Testing and Materials (ASTM) (e.g., ASTM's "geotechnical engineering standards", "petroleum standards", etc.), and / or any other relevant organization.

[0090] The internal compliance data 362 is data that includes proprietary (e.g., non-public, trade secret, company-specific, internally developed, etc.) documents (e.g., standards, specifications, manuals, guidelines, procedures, etc.) regarding the practices of the associated industry. In one non-limiting example, the internal compliance data 362 may include detailed flowcharts and procedures for performing steps of an extended operation. In another non-limiting example, the internal compliance data 362 may include specifications that comprehensively incorporate all relevant legal compliance data 358 and all relevant industry compliance data 360 for a given operation into a single reference.The internal compliance data 362 may further include higher requirements that meet and exceed what is required by the legal compliance data 358 and the industry compliance data 360. The internal compliance data 362 may include documents developed by one professional organization and licensed to (or purchased by) another professional organization (e.g., manuals, support guides, and technical documents of licensed equipment and software). As used herein, the internal compliance data 362 may relate to the design of one or more well systems for the extraction of hydrocarbons (e.g., oil and gas). In such cases, the internal compliance data 362 may include documents for the design, construction, and operation of a well system.

[0091] — [Fig.3D] —

[0092] [Fig.3D] is a diagram of a compliance report. A compliance report 350 may include one or more compliance report entries 374 that are uniquely associated with a suspected error in an associated technical plan 354.

[0093] A compliance report entry 374 is a data structure within a compliance report 350 that may include information (e.g., a compliance entry identifier 376, a plan source 368, an error type 370, a compliance source 372, a proposed action 378) for a suspected error present in an associated technical plan 354. Non-limiting examples of a compliance report entry 374 include a tuple in a database, a row in a table (e.g., a spreadsheet), and a line in a text file. In one or more embodiments, a compliance report entry 374 may be uniquely identifiable by a compliance entry identifier 376 stored therein.

[0094] A compliance entry identifier 376 is an identifier uniquely associated with the unique compliance report entry 374 in which it is stored. Generally, an identifier is data that uniquely specifies other data. Non-limiting examples of an identifier include, but are not limited to, a label, an alphanumeric entry, a file name, and a row number in a table. An alphanumeric expression may be encoded using a standard protocol for alphanumeric characters (e.g., Unicode, American Standard Code for Information Interchange (ASCII), etc.). In one or more embodiments, an identifier may be an integer count (e.g., 1, 2, 3, 4, 5, etc.) or an index (e.g., 0, 1, 2, 3, etc.). One skilled in the art, having read this detailed description, may realize that an identifier may be any data that identifies an entry.In any embodiment, an identifier may be generated by one or more software components of the system and / or by a user of the system.

[0095] A plan source 368 is data comprising a location, content, and / or a reference to an error in a technical plan 354. In one or more embodiments, a plan source 368 may specify the specific document (e.g., file name, unique identifier, etc.) and the location within that document (e.g., page number, paragraph number, line, figure number, etc.) within a technical plan 354. In one or more embodiments, a plan source 368 may comprise a copy of the content of a technical plan 354 that includes the identified error (e.g., a text string, a portion of a figure).

[0096] An error type 370 is data regarding the type of an error identified in the associated technical plan 354. Non-limiting examples of an error type 370 are in particular (i) a “non-conformity” indicating a conflict between the contents of a required 352 conformance constraint and an aspect of a 354 technical plan, (ii) a “conflict” or “inconsistency” indicating a conflict of design criteria in the 354 technical plan, (iii) a “review” indicating non-conformity with a best practice or that further action is required (e.g., taking a permissible exception to a required standard).

[0097] A compliance source 372 is data comprising an identifier and / or content of the compliance data (any type of compliance database 344) that led to the identification of the error (e.g., "43 CFR §3160"). In one or more embodiments, a compliance source 372 may be a copy of the corresponding compliance constraint 352. In one or more embodiments, a compliance source 372 may comprise a copy of the content of the associated compliance data (e.g., a text string citing the compliance data).

[0098] A proposed action 378 is data specifying a proposed modification to a technical plan 354 to correct the error specified in the same compliance report entry 374. In one or more embodiments, a proposed action 378 is a string that provides a human-readable modification. In a non-limiting example, a proposed action 378 may be the alphanumeric string "needle material: SS316", where the technical plan 354 that specified the "needle material" is "SS304".

[0099] — [Fig.3E] —

[0100] [Fig.3E] is a diagram of a report generator and components therein. A report generator 346 may include one or more software components (e.g., subprocesses, etc.) to perform one or more corresponding functions of the report generator 346 more broadly. In one or more embodiments, one or more of the software components represented in the report generator 346 may be software entities (e.g., called and executed by the report generator 346).

[0101] A data classifier 382 is software that accepts assorted data (e.g., mixed file / data types) as input, parses the assorted data into individual data groups (e.g., files or parts of files), classifies the individual data groups, and provides the data group to the associated software entity for further processing.

[0102] A natural language processor 384 is software that can process natural language alphanumeric text (e.g., human-readable word structures, sentences, paragraphs, etc.) as input, "interpret" the provided text using a neural network, extract relevant data, and organize that relevant data for further analysis. In a non-limiting example, a natural language processor 384 may generate a data structure (e.g., an array) that includes a list of identified properties (attributes and values) of the provided input (e.g., country: United States, target depth: 4,000 feet, etc.). The provided data ("property") can therefore be more easily compared to the project constraints.

[0103] A computer vision engine 386 is software that can process and interpret visual information from image data provided as input. In one or more embodiments, the computer vision engine 386 may include algorithms and / or neural networks that are trained to replicate a human ability to recognize and understand images and videos. The computer vision engine 386 may utilize deep learning models that may be trained on datasets of visual content (e.g., image data in a training database 342), thereby enabling the computer vision engine 386 to identify patterns and features in the image data and extract relevant data for further analysis. In a non-limiting example, a computer vision engine 386 may generate a data structure (e.g.,, a table) that includes a list of identified properties (attributes and values) of the provided input (e.g., drilling mud: 70% water, drill pipe material: 4145H modified steel, etc.). The provided data (“property”) can therefore be more easily compared to the project constraints.

[0104] A computer-aided design (CAD) plug-in 388 is software for communicating with a CAD application 348. In one or more embodiments, the CAD plug-in 388 is an application programming interface used to initiate the reading and processing of CAD files. In one or more embodiments, the CAD plug-in 388 may initiate the generation of data (by the CAD application 348) that is independently readable by the report generator 346 (e.g., material lists for the natural language processor 384, a standard drawing for the computer vision engine 386). In one or more embodiments, the CAD plug-in 388 may initiate an analysis of CAD files (by the CAD application 348) to identify errors (in the CAD files) that require use of the CAD application 348 (e.g., interference detection, tolerances, etc.).In a non-limiting example, the CAD plug-in 388 may generate a data structure (e.g., a table) that includes a list of identified properties (attributes and values) of the provided input (e.g., weight: 85 Ibs, volume: 1.4 cubic ft, etc.). The provided data ("property") can therefore be more easily compared to the project constraints.

[0105] A conformance checker 390 is a software program that compares the outputs of the three software components (the natural language processor 384, the computer vision engine 386, the CAD plug-in 388) to each other and to the conformance data (the data in the conformance database 344) specified by the conformance constraints 352. The conformance checker 390 identifies errors (if any) when the analyzed technical drawing 354 does not satisfy the text of the specified conformance constraints 352 and generates a conformance report based on these errors.

[0106] — [Fig.4] —

[0107] [Fig. 4] is a flowchart of a method of training a report generator using a training database. All or part of the method shown may be performed by one or more components of the information management system 201 (see the description of [Fig. 2]), the report generator (see the description of [Fig. 3E]), or a user thereof. Although the various steps of this flowchart are presented and described in sequence, those skilled in the art (having read this detailed description) may realize that some or all of the steps may be performed in different orders, combined, or omitted, and some or all of the steps may be performed in parallel.

[0108] In step 400, the report generator 346 obtains data from the training database 342, including the technical plans 354, associated with the compliance constraints 352, and the associated compliance reports 350.

[0109] In step 402, the report generator 346 processes the data from the training database 342. Additional details of step 402 are provided in the description of [Fig.6] and the discussion of steps 604 to 608.

[0110] In step 410, the report generator 346 generates one or more compliance reports 350 based on the processing of the technical plans 354 and the compliance constraints 352 of the training database 342. The report generator 346 may provide the generated compliance report(s) 350 to a user of the system (e.g., by storing the compliance report(s) 350 in a location accessible by the user).

[0111] In step 412, the one or more compliance reports 350 are scored. In one or more embodiments, the one or more compliance reports 350 are scored based on an existence of common errors (e.g., compliance report entries 374) present in both the generated one or more compliance reports 350 and the corresponding compliance reports 350 obtained from the training database 342 (and associated with the analyzed technical plan 354 and the compliance constraints 352). If the report generator 346 successfully produces a compliance report 350 generated that includes all errors (e.g., compliance report entries 374) in the pre-existing compliance report 350, a higher rating is given to the generated compliance report 350 (as compared to a generated compliance report 350 that did not successfully identify all known errors). One skilled in the art, having read this detailed description, may appreciate that the rating given to a generated compliance report 350 may be correlated with the quantity and quality of errors identified (e.g., fewer errors and / or lower quality errors would result in a comparatively lower rating for a generated compliance report 350).

[0112] In one or more embodiments, a generated compliance report 350 that successfully identifies and includes valid errors (e.g., compliance report entries 374) that are not present in the existing compliance report 350 may receive an even higher rating. In one or more embodiments, a higher rating may be given to a generated compliance report 350, if the generated compliance report 350 includes a proposed action 378 that would successfully improve the identified error. Similarly, a lower rating may be given to a generated compliance report 350 if one or more proposed actions 378 thereof (i) do not correct the identified error and / or (ii) create further errors if implemented.

[0113] After scoring one or more generated compliance reports 350, the scores are provided to the report generator 346. Upon receiving the scores, the report generator 346 optimizes the one or more neural networks (underlying the LLM) to better identify and analyze errors in the technical plan 354. In one or more embodiments, an artificial intelligence (AI) model in an LLM is optimized based on the scored feedback (e.g., from one or more scored generated compliance reports 350) using a process called supervised learning. Initially, the model is trained on a dataset with labeled examples. Then, feedback is collected, often in the form of scores or evaluations, to estimate the performance of the model. Adjustments are made to the parameter and architecture of the model based on this feedback to improve its accuracy and overall performance.This iterative process continues until the desired level of performance is achieved. In one or more embodiments, supervised learning modifies a neural network through a process involving adjusting its weights and biases to minimize the difference between its predicted outputs (the generated compliance report(s) 350) and the actual target values provided in the training database 342 (the existing compliance report(s) 350). This is typically achieved through backpropagation and gradient descent. In one or more embodiments, the process of [Fig. 4] (the . steps 400, 402, 410 and 412) may be repeated until a satisfactory quality of the compliance report 350 is generated.

[0114] — [Fig.5] —

[0115] [Fig. 5] is a flowchart of a method of using a report generator to generate a compliance report. All or part of the illustrated method may be performed by one or more components of the information management system 201 (see the description of [Fig. 2]), the report generator (see the description of [Fig. 3E]), or a user thereof. Although the various steps of this flowchart are presented and described in sequence, those skilled in the art (having read this detailed description) may appreciate that some or all of the steps may be performed in different orders, combined, or omitted, and some or all of the steps may be performed in parallel.

[0116] At step 500, the report generator 346 obtains the technical plans 354 and associated compliance constraints 352. In one or more embodiments, the technical plans 354 and associated compliance constraints 352 may be provided by a user of the system (e.g., as an input) for analysis by the report generator 346. In one or more embodiments, the report generator 346 uses a trained model (e.g., using the process of [Fig. 4]) before receiving the technical plans 354 and associated compliance constraints 352 to generate the compliance report 350 for "real-world" use.

[0117] In step 502, the report generator 346 processes the technical plans 354 and the associated compliance constraints 352. Additional details on step 402 are provided in the description of [Fig.6] and the discussion of steps 604 to 608.

[0118] In step 510, the report generator 346 generates a compliance report 350 based on the processing of the technical plans 354 and the associated compliance constraints 352. The report generator 346 may provide the compliance report 350 to a user of the system (e.g., by storing the compliance report 350 in a location accessible by the user).

[0119] — [Fig.6] —

[0120] [Fig. 6] is a flowchart of a process of the internal components of a report generator when generating a compliance report. All or part of the process shown may be performed by one or more components of the information management system 201 (see the description of [Fig. 2]), the report generator (see the description of [Fig. 3E]), or a user thereof. Although the various steps of this flowchart are presented and described in sequence, one skilled in the art (having read this detailed description) may realize that some or all of the steps can be performed in different orders, combined, or omitted, and some or all of the steps can be performed in parallel.

[0121] In step 604, the report generator 346 receives the technical plans 354 and the associated compliance constraints 352. The report generator 346 uses the data classifier 382 to analyze, classify, sort and distribute the data groups of the technical plan 354 to the respective software entity.

[0122] In one or more embodiments, the data classifier 382 may identify distinct separable file portions based on their organization (e.g., separately provided files), extractable data groups within any file (e.g., a document with alphanumeric text and an attachment of images), incompressible compressed files (e.g., binary files, archive files, etc.) to analyze multiple distinct data types therein.

[0123] In one or more embodiments, the data classifier 382 may classify the data type based on metadata stored in the data (e.g., file type, headers, file extension, etc.), and / or known data organization standards (e.g., recognized patterns of data that are associated with a data type).

[0124] In one or more embodiments, the data classifier 382 may classify groups of data into one of three different types: (i) alphanumeric text, (ii) images, and (iii) CAD files. Based on the classification into these types, the data classifier 382 then transmits the group of data (e.g., calls a function) to the natural language processor 384, the computer vision engine 386, or the computer-aided design (CAD) plug-in 388, respectively.

[0125] At step 606, the report generator 346 uses the natural language processor 384, the computer vision engine 386, and / or the CAD plug-in 388 to process the data groups provided to the respective software entities. In one or more embodiments, each of the software entities analyzes the data groups to extract properties (attributes and values), which can be more easily compared to the compliance data. In a non-limiting example, a CAD drawing may have the file name "casing_connection.dwg" and include a technical drawing pointing to the interior side of the object indicating "0 = 4.5in." The report generator 346 sends this file to the associated CAD application 348 and retrieves a data structure including the individual string "0 = 4.5in." From this, the 346 report generator generates the attribute "tubing fitting inside diameter" and assigns the value "4.5in".

[0126] In one or more embodiments, the computer vision engine 386 may receive an image of alphanumeric text. In this case, the computer vision engine 386 is trained to identify that the document is text (and not initially an image), perform optical character recognition (OCR) to make the document readable as text, and then transmit the data to the natural language processor 384 for analysis.

[0127] In step 608, the report generator 346 compares the properties of the technical plan 354 to the properties of the compliance data to identify errors. For each identified error, a compliance report entry 374 is generated in the compliance report 350.

[0128] In one or more embodiments, the compliance checker 390 processes the identified compliance data to extract properties (attributes and values), which can be more easily compared to the properties of the technical plan 354. In a non-limiting example, the compliance checker 390 identifies that the compliance data includes a design constraint requiring the casing inner diameter to be at least 5.5in. The attribute "casing inner diameter" is therefore assigned the value ">5.5in. The compliance checker 390 thus determines that the previously generated technical property ("casing fitting inner diameter" with the value "4.5in") from the technical plan 354 does not satisfy the compliance property ("casing inner diameter" with the value ">5.5in").

[0129] The report generator 346 therefore generates a compliance report entry 374 that includes "casing_connection.dwg" (for plan source 368), "non-compliance" (for error type 370), the specified design constraint (for compliance source 372), and "increase casing connection diameter to 5.5in" (for proposed action 378).

[0130] — [Fig.7] —

[0131] [Fig.7] is a table of an exemplary compliance report.

[0132] As shown in the example of [Fig.7], the compliance report 350 includes four compliance report entries 374 (the bottom four rows). Each compliance report entry 374 includes a unique compliance entry identifier 376 (represented by "entry identifier 376"), a plan source 368, an error type 370, a compliance source 372, and a proposed action 378.

[0133] The first compliance report entry 374 has a compliance entry identifier 376 of "El". For this entry, the report generator 346 has identified that the document "site_plan.docx" (of the technical plan 354) specifies that the elevation of the construction site is "lOOft". The attribute "site elevation" is therefore generated and assigned the value "lOOft". The report generator 346 has identified that the document " topology.pdf” (from technical plan 354) includes an image with text indicating that the site elevation is “108ft.” Similarly, report generator 346 generated the attribute “site elevation” and assigned it the value “108ft.” Report generator 346 determines that one attribute (“site elevation”) is described as having two different values (100ft and 108ft). However, since no known requirements are violated and no technical issues are identified, the report generator assigns an error type 370 of “review,” does not provide a compliance source 372, and generates a proposed action 378 of “inconsistency review.”

[0134] The second compliance report entry 374 has a compliance entry identifier 376 of "E2". For this entry, the report generator 346 identified that row "0317" of the spreadsheet "Material_List.xlsx" (of the engineering drawing 354) lists the part "fitting" with an inside diameter (ID) of "6.0in" and with an outside diameter (OD) of "6.7in". Further, the report generator 346 identified that "site_plan.docx" (of the engineering drawing 354) lists "borehole" with a nominal diameter (Dnom) of "7.5in". The report generator 346 identifies that the minimum clearance around the fitting, in the borehole, is 0.4in (half the difference between the nominal diameter of the borehole and the outside diameter of the fitting).

[0135] Therefore, four technical properties are generated: (i) the attribute "casing inner diameter" with the value "6.0in", (ii) the attribute "casing outer diameter" with the value "6.7in", (iii) the attribute "nominal borehole diameter" with the value "7.5in" and (iv) the attribute "casing clearance" with the value "0.4in".

[0136] Report generator 346 then identifies that compliance constraints 352 list “43 CFR §3160 et seq.” as mandated regulations to be complied with. Additionally, 43 CFR §3164.1 references an order, published in the Federal Register (FR), at 53 FR 46798, requiring that “casing joints have a minimum clearance of 0.422in on all sides…”. Report generator 346 generates a compliance property with the attribute “minimum casing clearance” and a value of “0.422in.” Therefore, Report Generator 346 generates an error type 370 of "non-compliance," provides the reference to the regulation and the relevant portion of the order in Compliance Source 372, and generates a proposed action 378 stating in part "Replace fitting with ID=5.5in, OD=6.2in," which would leave a minimum clearance of 0.65in and thus satisfy the identified applicable regulation (43 CFR §3164.1).

[0137] The third compliance report entry 374 has a compliance entry identifier 376 of "E3". For this entry, the report generator 346 identified that the document "Order_draft.pdf" (from the technical plan 354) lists "element 1204” as a “fitting” with an inside diameter of 6.0in. Report generator 346 further identified that, in the CAD file “Casing.step” (from engineering drawing 354), the outside diameter of the casing is listed as 5.5in. Report generator 346 identifies that the selected fittings are not suitable for the selected casing (6.0in instead of 5.5in). Report generator 346 generates an error type 370 of “conflict,” does not generate a compliance source 372, and generates a proposed action 378 stating in part to “Replace fitting with ID=5.5in” (a fitting compatible with the selected casing). The proposed action 378 for the third conformance entry 374 also satisfies the error of the second conformance entry 374, thereby resolving both errors (e.g., failure to generate a proposed action 378 would cause an error elsewhere or be inconsistent with another proposed action 378).

[0138] The fourth compliance report entry 374 has a compliance entry identifier 376 of "E3". For this entry, the report generator 346 has identified that the document "Blowout.dwg" (of the engineering drawing 354) includes a drawing for "injection line valve" indicating a size of "1.625in". The report generator 346 further identifies that the compliance constraints 352 list "43 CFR §3170 et seq." as the mandated regulations to be met. The report generator 346 analyzes the relevant regulations and identifies that 43 CFR §3172.6(b)(l)(ii)(C) requires "1 injection line valve (2 in minimum)", where "2 in minimum" is interpreted to mean that any satisfactory "injection line valve" must be at least 2 in.Report Generator 346 therefore generates an error type 370 of "non-compliance," provides the reference to the regulation and the relevant portion of the order in compliance source 372, and generates a proposed action 378 stating in part that "The injection line valve is not the minimum size. Substitute the 2in injection line valve," which would comply with the applicable identified regulation (43 CFR §3172.6(b)(l)(ii)(C)).

[0139] — Solutions and improvements —

[0140] The above-described methods and systems are an improvement over current technology since the methods and systems described herein provide a large language model (LLM) trained to generate a "compliance report" capable of (i) identifying errors in a technical plan, and (ii) providing proposed corrective actions to those errors. During training and use of the LLM, the LLM may access a compliance database specifying all potentially relevant legal and technical constraints, including those applicable to the technical plan. Thus, when "reviewing" the document, the LLM may consider all constraints, as a single entity, to propose a solution that simultaneously satisfies all specified compliance constraints.

[0141] The time, effort, and costs associated with conventional methods are thus reduced. Specifically, the effort and time spent iteratively correcting errors in a technical plan are assumed by software to more quickly propose (potentially) multiple solutions. In addition, small errors that a human reviewer might not notice can be identified by the LLM and corrected earlier, allowing for smoother implementation of the technical plan.

[0142] — Declarations —

[0143] The systems and methods may include any of the various features disclosed herein, including one or more of the following statements.

[0144] Statement 1. A method of generating a compliance report, comprising receiving, by a report generator, a technical plan and a compliance constraint; processing the technical plan and the compliance constraint; generating the compliance report based on the processing; and providing the compliance report to a user.

[0145] Statement 2. The method of Statement 1, wherein processing the technical plan comprises comparing the technical plan to compliance data; and identifying an error in the technical plan.

[0146] Statement 3. The method of statement 2, wherein the compliance report comprises: a plan source, technical plan, associated with the error; and a compliance source, compliance data, associated with the error.

[0147] Statement 4. The method of statements 2 and 3, in which the conformance constraint specifies the conformance data.

[0148] Statement 5. The method of statements 1 to 4, wherein, after providing the compliance report to the user, the method further comprises: receiving a score associated with the compliance report; and updating a large language model based on the score.

[0149] Statement 6. The method of statements 1-5, wherein processing the technical plan comprises: parsing the technical plan into a plurality of data groups; and distributing each of the plurality of data groups to one selected from: a natural language processor; a computer vision engine; and a computer-aided design plug-in.

[0150] Statement 7. The method of statements 1 to 6, wherein a data group, among the plurality of data groups, is provided to the natural language processor, and wherein the natural language processor extracts a property from the data group.

[0151] Statement 8. The method of Statement 7, wherein the method further comprises: identifying compliance data associated with the property based on the compliance constraint; obtaining the compliance data from a compliance database; and comparing the property to the compliance data.

[0152] Statement 9. The method of statement 8, wherein, after comparing the property to the compliance data, the method further comprises: making a determination that the property does not satisfy the compliance data.

[0153] Statement 10. The method of statement 9, wherein, after making the determination, the method further comprises: generating a compliance report entry, in the compliance report, wherein the compliance report entry comprises: the property; and the compliance data.

[0154] Statement 11. The method of statement 10, wherein the compliance report entry further comprises: a proposed action, wherein the proposed action specifies a modification of the property.

[0155] Statement 12. The method of statement 11, wherein the compliance report input further comprises: a second proposed action, wherein the second proposed action specifies a second modification of the property.

[0156] Statement 13. The method of statements 6 to 12, wherein a data group, from among the plurality of data groups, is provided to the computer vision engine, and wherein the computer vision engine extracts a property from the data group.

[0157] Statement 14. The method of statements 6 to 13, wherein a data group, among the plurality of data groups, is provided to the computer-aided design plug-in, and wherein the computer-aided design plug-in extracts a property from the data group.

[0158] Statement 15. A system, comprising a memory storing instructions; a processor, wherein the processor is configured to execute the instructions, and wherein, when the processor executes the instructions, the processor performs a compliance report generation method, comprising: receiving a technical plan and a compliance constraint; processing the technical plan and the compliance constraint; generating the compliance report based on the processing; and providing the compliance report to a user.

[0159] Statement 16. The system of statement 15, wherein processing the technical plan comprises: parsing the technical plan into a plurality of data groups; and distributing each of the plurality of data groups to one selected from: a natural language processor; a computer vision engine; and a computer-aided design plug-in.

[0160] Statement 17. The system of statement 16, wherein a data group, from among the plurality of data groups, is provided to the natural language processor, and wherein the natural language processor extracts a property from the data group.

[0161] Statement 18. The system of statement 17, wherein the method further comprises: identifying compliance data associated with the property based on the compliance constraint; obtaining the compliance data from a compliance database; and comparing the property to the compliance data.

[0162] Statement 19. The system of statement 18, wherein, after comparing the property to the compliance data, the method further comprises: making a determination that the property does not satisfy the compliance data.

[0163] Statement 20. The system of statement 19, wherein, after making the determination, the method further comprises: generating a compliance report entry, in the compliance report, wherein the compliance report entry comprises: the property; and the compliance data.

[0164] —General Notes—

[0165] Since it is impracticable to disclose every conceivable embodiment of the technology described herein, the figures, examples, and description provided herein disclose only a limited number of potential embodiments. Those skilled in the art may appreciate that any number of potential variations or modifications may be made to the embodiments explicitly disclosed, and that such alternative embodiments remain within the scope of the expanded technology. Therefore, the scope should be limited only by the appended claims. Further, the compositions and methods are described in terms of "comprising," "containing," or "including" various components or steps; the compositions and methods may also "consist essentially of" or "consist of" the various components and steps.Certain technical details, known to those skilled in the art, may be omitted for the sake of conciseness and to avoid burdening the description of the innovative aspects.

[0166] For brevity, descriptions of similar name components may be omitted if a description of such a similar name component exists elsewhere in the application. Accordingly, any component described with respect to a specific figure may be equivalent to one or more similar name components shown or described in another figure, and each component incorporates the descriptions of each similarly named component provided in the application (unless otherwise indicated). A description of a component should be construed as an optional embodiment, which may be implemented in addition to, in connection with, or instead of an embodiment of a similarly named component described for another figure.

[0167] — Lexicographical notes —

[0168] Herein, adjectival ordinal numbers (e.g., first, second, third, etc.) are used to provide distinction between elements and do not create an order of elements. For example, a "first element" is distinct from a "second element," but the "first element" may come after (or before) the "second element" in an order of elements. Therefore, an order of elements exists only if an ordering terminology is expressly provided (e.g., "before," "between," "after," etc.) or a type of "order" is expressly provided (e.g., "chronological," "alphabetical," "by size," etc.). Furthermore, the use of ordinal numbers does not preclude the existence of other elements. For example, a "table with a first leg and a second leg" is any table with two or more legs (e.g., two legs, five legs, thirteen legs, etc.).A maximum quantity of elements exists only if explicit language is used to limit the upper bound (e.g., "two or fewer," "exactly five," "nine to twenty," etc.). Similarly, the singular use of an ordinal number does not imply the existence of another element. For example, a "first threshold" may be the only threshold and therefore does not require the existence of a "second threshold."

[0169] As used herein, the word "data" may be used as an "uncountable" singular noun and not as the plural form of the singular noun "data." Throughout the application, the term "data" is generally associated with a plural verb (e.g., "the data is changed"). However, the term "data" is not redefined to mean a single piece of digital information. Instead, as used herein, the term "data" means one or more pieces of digital information that are grouped together (physically or logically). In addition, the term "data" may be used as a plural noun if the context contemplates the existence of multiple "data" (e.g., "the two data are combined").

[0170] As used herein, the term "operable link" (or "operably connected") means the direct or indirect connection between devices enabling the transmission of data. For example, the term "operably connected" may refer to a direct link (e.g., a direct wired or wireless link between devices), or an indirect link (e.g., multiple wired and / or wirelessly between any number of other devices connecting the functionally connected devices).

Claims

Claims

1. A computer-implemented method of generating a compliance report, comprising: receiving, by a report generator, a technical plan comprising a proposed design for a well system and a compliance constraint comprising compliance data applicable to the associated technical plan; processing the technical plan and the compliance constraint, the processing of the technical plan comprising: comparing the technical plan to compliance data; and identifying an error in the technical plan; generating the compliance report based on the processing, the report comprising the identified error in the technical plan and a proposed modification to the technical plan to correct the identified error; and providing the compliance report to a user.

2. The computer-implemented method of claim 1, wherein the compliance report comprises: a plan source, the technical plan, associated with the error; and a compliance source, compliance data, associated with the error.

3. The computer-implemented method of claim 1, wherein, after providing the compliance report to the user, the method further comprises: receiving a rating associated with the compliance report; and updating a large language model based on the rating.

4. The computer-implemented method of claim 1, wherein processing the technical plan comprises: parsing the technical plan into a plurality of data groups; and distributing each of the plurality of data groups to one selected from the group consisting of: a natural language processor; a computer vision engine; and a computer-aided design plug-in.

5. The computer-implemented method of claim 4, wherein the method further comprises: extracting a property from a data group of the plurality of data groups; identifying compliance data associated with the property based on the compliance constraint; obtaining the compliance data from a compliance database; comparing the property to the compliance data; and making a determination that the property does not satisfy the compliance data.

6. The computer-implemented method of claim 5, wherein, after making the determination, the method further comprises: generating a compliance report entry, in the compliance report, wherein the compliance report entry includes: the property; and the compliance data.

7. The computer-implemented method of claim 6, wherein the compliance report input further comprises: a proposed action, wherein the proposed action specifies a modification of the property.

8. The computer-implemented method of claim 7, wherein the compliance report input further comprises: a second proposed action, wherein the second proposed action specifies a second modification of the property.

9. The computer-implemented method of claim 5, wherein the data group is provided to the computer vision engine, and wherein the computer vision engine extracts the property of the data group.

10. A system, comprising: a memory storing instructions; a processor, wherein the processor is configured to execute the instructions to perform a method of generating a compliance report, comprising: receiving a technical plan comprising a proposed design for a well system and a compliance constraint comprising compliance data applicable to the associated technical plan; processing the technical plan and the compliance constraint, the processing of the technical plan comprising: comparing the technical plan to compliance data; and identifying an error in the technical plan; generating the compliance report based on the processing, the report comprising the identified error in the technical plan and a proposed modification to the technical plan to correct the identified error; and providing the compliance report to a user.

11. The system of claim 10, wherein processing the technical plan comprises: parsing the technical plan into a plurality of data groups; and distributing each of the plurality of data groups to one selected from the group consisting of: a natural language processor; a computer vision engine; and a computer-aided design plug-in.

12. The system of claim 11, wherein one of the plurality of data groups is provided to the natural language processor, and wherein the natural language processor extracts a property from the data group.

13. The system of claim 12, wherein the method further comprises: identifying compliance data associated with the property based on the compliance constraint; obtaining the compliance data from a compliance database; comparing the property to the compliance data; and making a determination that the property does not satisfy the compliance data.

14. The system of claim 13, wherein, after making the determination, the method further comprises: generating a compliance report entry, in the compliance report, wherein the compliance report entry comprises: the property; and the compliance data.