US20200401591A1 - Dissimilar query engine - Google Patents

Dissimilar query engine Download PDF

Info

Publication number
US20200401591A1
US20200401591A1 US16/905,513 US202016905513A US2020401591A1 US 20200401591 A1 US20200401591 A1 US 20200401591A1 US 202016905513 A US202016905513 A US 202016905513A US 2020401591 A1 US2020401591 A1 US 2020401591A1
Authority
US
United States
Prior art keywords
query
query language
uniform
pair
language
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
US16/905,513
Inventor
Vinod Ashok Bhoite
Gourab Ghosh
Maiyank Pal
Hemlata Tiwari
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tyco Fire and Security GmbH
Original Assignee
Johnson Controls Technology Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Johnson Controls Technology Co filed Critical Johnson Controls Technology Co
Priority to US16/905,513 priority Critical patent/US20200401591A1/en
Publication of US20200401591A1 publication Critical patent/US20200401591A1/en
Assigned to JOHNSON CONTROLS TECHNOLOGY COMPANY reassignment JOHNSON CONTROLS TECHNOLOGY COMPANY ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: Ghosh, Gourab, TIWARI, Hemlata, Pal, Maiyank, Bhoite, Vinod Ashok
Assigned to Johnson Controls Tyco IP Holdings LLP reassignment Johnson Controls Tyco IP Holdings LLP NUNC PRO TUNC ASSIGNMENT (SEE DOCUMENT FOR DETAILS). Assignors: JOHNSON CONTROLS TECHNOLOGY COMPANY
Assigned to TYCO FIRE & SECURITY GMBH reassignment TYCO FIRE & SECURITY GMBH ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: Johnson Controls Tyco IP Holdings LLP
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24522Translation of natural language queries to structured queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Definitions

  • the configuration script handler is configured to receive an initialization request indicating at least one pair of query languages.
  • the configuration script handler is configured to transmit to a configuration scripts module a request to retrieve the pair of query language configuration scripts.
  • the uniform query language compiler is configured to communicate with one or more tertiary modules.
  • the tertiary module includes a business logic module.
  • Another embodiment of the present disclosure is a method of translating a first query language to a second query language.
  • the method includes inputting a first query to a uniform query language compiler using the first query language, transmitting a first fetch request from the uniform query language compiler to a configuration script handler, translating the first query language to a uniform query language to generate a uniform query, transmitting the uniform query to a uniform query language interpreter, transmitting a second fetch request from the uniform query language interpreter to the configuration script handler, and translating the uniform query to the second query language to generate a second query.
  • transmitting the first fetch request further includes transmitting a first compiled script from the configuration script handler to the uniform query language compiler.
  • transmitting the second fetch request further includes transmitting a second compiled script from the configuration script handler to the uniform query language
  • the method further includes transmitting an initialization request including a pair of query languages, transmitting a fetch request, retrieving a pair of query language configuration scripts, compiling the pair of query language configuration scripts, creating a pair of translation instances associated with the pair of query languages, and storing the pair of translation instances.
  • the configuration script handler is configured to receive an initialization request from an initialization module, the initialization request indicating at least one pair of query languages.
  • the configuration script handler is configured to communicate with the configuration scripts module to retrieve at least one pair of query language configuration scripts associated with a pair of query languages.
  • Yet another embodiment relates to a query system including one or more computer-readable storage media having instructions stored thereon and one or more processors configured to execute the instructions to retrieve at least one pair of query language configuration scripts, translate the first query language to a uniform query language using the at least one pair of query language configuration scripts, and translate the uniform query language to the second query language using the at least one pair of query language configuration scripts.
  • FIG. 1 is a block diagram of a query system, according to some embodiments.
  • FIG. 3 is a flowchart illustrating a method of initialization, according to some embodiments.
  • FIG. 4 is a flowchart illustrating a method of translating query languages, according to some embodiments.
  • a query system including a dissimilar query engine includes a configuration script handler, a uniform query language compiler, and a uniform query language interpreter, according to some embodiments.
  • the dissimilar query engine is configured to receive a first query language from a client-side interface and translate the first query language to a second query language used by a server-side system.
  • the query system includes a configuration scripts module.
  • the dissimilar query engine is configured to communicate with a tertiary layer that includes external modules.
  • Various embodiments of the present disclosure may be utilized for query handling relating to building management.
  • the systems and methods of the present disclosure may be used to handle queries relating to building operation analytics, such as energy consumption, device usage, occupancy, etc.
  • a client-side user interface may submit a query to a web server in a first language, and the web server may in turn query a database to obtain the data necessary to respond to the query.
  • the query engine may translate the query from a first language to a uniform language, and then translate to a second language to query the database.
  • the present systems and methods could be used in a variety of other building management contexts, such as for handling security data, translating communications between building equipment/devices using different query languages, etc.
  • the present systems and methods can be utilized in applications outside the building context as well. All such implementations are contemplated within the scope of the present disclosure.
  • FIG. 1 a query system 100 is shown, according to some embodiments. While not illustrated, the various components and functions shown and described with respect to FIG. 1 can be implemented using instructions stored on one or more computer-readable storage media (e.g., RAM, ROM, solid state storage, optical storage, etc.) executable by one or more processors (e.g., FPGA, ASIC, general purpose computing processors, etc.). Further, the components and operations shown and described with respect to FIG. 2 and the operations shown and described with respect to FIGS. 3 and 4 could also be implemented using instructions stored on one or more computer-readable storage media executed by one or more processors.
  • processors e.g., FPGA, ASIC, general purpose computing processors, etc.
  • Query system 100 is shown to include an initialization module 102 , a first layer 104 , a dissimilar query engine 106 , a second layer 108 , a tertiary layer 110 , and a configuration scripts module 112 , according to some embodiments.
  • query system 100 is configured to translate a first query language received from first layer 104 to a uniform query language using dissimilar query engine 106 .
  • query system 100 is configured to translate a uniform query language to a second query language transmitted to second layer 108 using dissimilar query engine 106 .
  • initialization module 102 transmits a request to initialize service of query system 100 .
  • initialization module 102 may transmit a request to dissimilar query engine 106 to compile desired query languages for use in query system 100 . The method of initialization is described in greater detail below.
  • First layer 104 is shown to include a client-side query 114 , according to some embodiments.
  • client-side query 114 is received from a user interface accessed by a user. For example, a user may transmit client-side query 114 using an energy management dashboard displayed on a screen of a computer.
  • client-side query 114 is a request to retrieve data from a database located in second layer 108 .
  • client-side query 114 is a request to retrieve data from a server located in second layer 108 .
  • Client-side query 114 is shown to communicate with second layer 108 via dissimilar query engine 106 .
  • client-side query 114 involves a first query language (e.g., URL, etc.).
  • Dissimilar query engine 106 is shown to include configuration script handler 116 , uniform query language compiler 118 , and uniform query language interpreter 120 , according to some embodiments.
  • query system 100 may include additional dissimilar query engines 106 .
  • dissimilar query engine 106 is configured to translate a first query language to a uniform query language.
  • dissimilar query engine 106 is configured to translate a uniform query language to a second query language.
  • configuration script handler 116 is shown to communicate with initialization module 102 , configuration scripts module 112 , uniform query language compiler 118 , and uniform query language interpreter 120 , according to some embodiments.
  • Uniform query language compiler is shown to communicate with tertiary layer 110 , client-side query 114 , configuration script handler 116 , and uniform query language interpreter 120 , according to some embodiments.
  • Uniform query language interpreter is shown to communicate with configuration script handler 116 , uniform query language compiler 118 , and second layer 108 , according to some embodiments.
  • the functions of dissimilar query engine 106 , configuration script handler 116 , uniform query language compiler 118 , and uniform query language interpreter 120 are described in greater detail below.
  • Second layer 108 is shown to include a server-side query 122 , according to some embodiments.
  • server-side query 122 involves a second query language that is different than a first query language utilized by client-side query 114 .
  • server-side query 122 retrieves data from a database located in second layer 108 .
  • server-side query 122 retrieves data from a server located in second layer 108 .
  • Server-side query 122 is shown to communicate with first layer 104 via dissimilar query engine 106 , according to some embodiments.
  • Tertiary layer 110 is shown to include an external module 124 , according to some embodiments.
  • external module 124 communicates with uniform query language compiler 118 .
  • external module 124 is configured to receive a uniform query language from uniform query language compiler 118 .
  • external module 124 can include business logic modules (e.g., authenticate, validate, verify, modify, etc.)
  • external module 124 is configured to transmit a modified uniform query to dissimilar query engine 106 .
  • external module 124 may receive a uniform query to validate, verify, and modify the uniform query such that external module 124 transmits a modified uniform query (e.g., simpler, etc.) to dissimilar query engine 106 .
  • Configuration scripts module 112 is shown to include a configuration scripts store 126 and a compiled configuration scripts 128 , according to some embodiments.
  • compiled configuration scripts 128 communicates with configuration scripts store 126 to retrieve a query language configuration script.
  • configuration scripts store 126 stores scripts configured to interpret query languages (e.g., URL, oData, SQL, etc.).
  • configuration scripts module 112 is involved with a request to initialize service transmitted by initialization module 102 .
  • configuration scripts store 126 may transmit a pair of query language configuration scripts to configuration script handler 116 .
  • compiled configuration scripts 128 stores compiled scripts (e.g., a first query language translated to a uniform query language, a uniform query language translated to a second query language, etc.).
  • Dissimilar query engine 106 is shown to include configuration script handler 116 , uniform query language compiler 118 , and uniform query language interpreter 120 , according to some embodiments.
  • dissimilar query engine 106 is configured to translate a first query language received from client-side query 114 to a uniform query language.
  • dissimilar query engine 106 is configured to translate a uniform query language to a second query language utilized by server-side query 122 .
  • uniform query language compiler 118 receives a first query of a first query language from client-side query 114 . In some embodiments, uniform query language compiler 118 transmits a first fetch request to receive a first compiled script from configuration script handler 116 . In some embodiments, uniform query language compiler 118 receives a compiled script from configuration script handler 116 . For example, uniform query language compiler 118 receives a compiled script from configuration script handler 116 in order to translate a first query language to a uniform query language. In some embodiments, uniform query language compiler 118 receives a request to initialize service from initialization module 102 . In some embodiments, uniform query language compiler 118 transmits a translated query of a uniform query language to uniform query language interpreter 120 .
  • configuration script handler 116 receives an identification of a pair of query languages (e.g., a first query language utilized by client-side query 114 and a second query language utilized by server-side query 122 ). In some embodiments, configuration script handler 116 communicates with configuration scripts module 112 to receive a pair of query language configuration scripts. In some embodiments, configuration script handler 116 transmits a compiled first query language to a uniform query language configuration script to uniform query language compiler 118 . In some embodiments, configuration script handler 116 transmits a compiled uniform query language to a second query language configuration script to uniform query language interpreter 120 .
  • a pair of query languages e.g., a first query language utilized by client-side query 114 and a second query language utilized by server-side query 122 .
  • configuration script handler 116 communicates with configuration scripts module 112 to receive a pair of query language configuration scripts. In some embodiments, configuration script handler 116 transmits a compiled first query language to a uniform
  • uniform query language interpreter 120 transmits a second fetch request to configuration script handler 116 to receive a second compiled script. In some embodiments, uniform query language interpreter 120 receives a compiled uniform query language to a second query language configuration script from configuration script handler 116 . In some embodiments, uniform query language interpreter receives a translated query of a uniform query language from uniform query language compiler. In some embodiments, uniform query language interpreter 120 translates a query of a uniform query language to a second query language. In some embodiments, uniform query language interpreter 120 transmits a query of a second query language to server-side query 122 .
  • Process 300 includes step 302 , according to some embodiments.
  • step 302 involves transmitting an initialization request.
  • initialization module 102 transmits the initialization request involved in step 302 .
  • the initialization request is received by configuration script handler 116 .
  • the initialization request transmitted in step 302 includes a pair of query languages (e.g., a first query language utilized by client-side query 114 and a second query language utilized by server-side query 122 ).
  • process 300 involves step 304 .
  • step 304 involves transmitting a fetch request.
  • configuration script handler 116 transmits the fetch request to configuration scripts module 112 .
  • the fetch request transmitted in step 304 is configured to identify a pair of query languages.
  • process 300 involves step 306 .
  • step 306 involves fetching a pair of scripts.
  • configuration scripts module 112 fetches a pair of scripts from configuration scripts store 126 .
  • process 300 involves step 308 .
  • step 308 involves compiling the scripts fetched in step 306 .
  • compiling the scripts involves translating a query language.
  • a first query language is translated to a uniform query language and a uniform query language is translated to a second query language.
  • process 300 involves step 310 .
  • step 310 involves creating translation instances utilized by uniform query language compiler 118 and uniform query language interpreter 120 .
  • an instance of translating a first query language to a uniform query language may be created for uniform query language compiler 118
  • an instance of translating a uniform query language to a second query language may be created for uniform query language interpreter 120 .
  • process 300 involves step 312 .
  • step 312 involves storing compiled scripts in compiled configuration scripts 128 .
  • process 400 involves step 404 .
  • step 404 involves transmitting a first fetch request.
  • step 414 involves uniform query language compiler 118 transmitting a first fetch request.
  • step 404 involves transmitting a first fetch request to configuration script handler 116 .
  • the first fetch request transmitted in step 404 involves a request to compile a first query language to a uniform query language.
  • process 400 involves step 406 .
  • step 406 involves compiling a first query language to a uniform query language.
  • configuration script handler 116 compiles the first query language to a uniform query language in step 406 .
  • process 400 involves step 408 .
  • step 408 involves transmitting the compiled script involved in step 406 to uniform query language compiler 118 .
  • step 408 involves translating a first query language to a uniform query language using the compiled script involved in step 406 .
  • step 408 involves transmitting the compiled query language involved in step 406 to external module 124 .
  • process 400 involves step 410 .
  • step 410 involves transmitting a second fetch request.
  • step 410 involves uniform query language interpreter 120 transmitting a second fetch request.
  • step 410 involves transmitting a second fetch request to configuration script handler 116 .
  • the second fetch request transmitted in step 410 involves a request to compile a uniform query language to a second query language.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

A dissimilar query engine is configured to translate a query including a first query language to a second query language. One dissimilar query engine includes a configuration script handler configured to retrieve at least one pair of query language configuration scripts, a uniform query language compiler configured to translate the first query language to a uniform query language using the at least one pair of query language configuration scripts, and a uniform query language interpreter configured to translate the uniform query language to the second query language using the at least one pair of query language configuration scripts.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • The present application claims priority to and the benefit of U.S. Provisional Patent Application No. 62/863,584, filed Jun. 19, 2019, which is incorporated herein by reference in its entirety.
  • BACKGROUND
  • The present disclosure relates generally to query systems. The present disclosure relates more specifically to a query system that can translate a first query language to a second query language.
  • SUMMARY
  • One embodiment of the present disclosure is a dissimilar query engine configured to translate a query including a first query language to a second query language. The dissimilar query engine includes one or more computer-readable storage media having instructions stored thereon that, upon execution by one or more processors, cause the one or more processors to implement a configuration script handler configured to retrieve at least one pair of query language configuration scripts, a uniform query language compiler configured to translate the first query language to a uniform query language using the at least one pair of query language configuration scripts, and a uniform query language interpreter configured to translate the uniform query language to the second query language using the at least one pair of query language configuration scripts.
  • In some embodiments, the configuration script handler is configured to receive an initialization request indicating at least one pair of query languages.
  • In some embodiments, the at least one pair of query language configuration scripts is associated with the first query language and the second query language.
  • In some embodiments, the configuration script handling is configured to retrieve the at least one pair of query language configuration scripts from a configuration scripts module including a configuration scripts store module configured to store a plurality of query language configuration scripts, and a compiled configuration scripts module configured to store a plurality of pairs of query language configuration scripts.
  • In some embodiments, the configuration script handler is configured to transmit to a configuration scripts module a request to retrieve the pair of query language configuration scripts.
  • In some embodiments, the uniform query language compiler is configured to communicate with one or more tertiary modules.
  • In some embodiments, the tertiary module includes a business logic module.
  • Another embodiment of the present disclosure is a method of translating a first query language to a second query language. The method includes inputting a first query to a uniform query language compiler using the first query language, transmitting a first fetch request from the uniform query language compiler to a configuration script handler, translating the first query language to a uniform query language to generate a uniform query, transmitting the uniform query to a uniform query language interpreter, transmitting a second fetch request from the uniform query language interpreter to the configuration script handler, and translating the uniform query to the second query language to generate a second query.
  • In some embodiments, the method further includes transmitting the uniform query to an external module.
  • In some embodiments, transmitting the uniform query to the external module further includes processing the uniform query with a business logic module.
  • In some embodiments, inputting the first query further includes inputting the first query by a user.
  • In some embodiments, transmitting the first fetch request further includes transmitting a first compiled script from the configuration script handler to the uniform query language compiler.
  • In some embodiments, transmitting the second fetch request further includes transmitting a second compiled script from the configuration script handler to the uniform query language
  • In some embodiments, translating the uniform query to the second query language further includes translating the second query to a server-side query.
  • In some embodiments, the method further includes transmitting an initialization request including a pair of query languages, transmitting a fetch request, retrieving a pair of query language configuration scripts, compiling the pair of query language configuration scripts, creating a pair of translation instances associated with the pair of query languages, and storing the pair of translation instances.
  • Yet another embodiment of the present disclosure is a query system. The system includes a dissimilar query engine configured to interpret a first query language associated with a first query and communicate with a second query language. The dissimilar query engine includes a configuration script handler, a uniform query language compiler configured to translate the first query language to a uniform query language, and a uniform query language interpreter configured to translate the uniform query language to the second query language, and a configuration scripts module including a configuration scripts store module, and a compiled configuration scripts module.
  • In some embodiments, the configuration script handler is configured to receive an initialization request from an initialization module, the initialization request indicating at least one pair of query languages.
  • In some embodiments, the configuration script handler is configured to communicate with the configuration scripts module to retrieve at least one pair of query language configuration scripts associated with a pair of query languages.
  • In some embodiments, the configuration script handler is configured to transmit to the configuration scripts module a request to retrieve at least one pair of query language configuration scripts.
  • In some embodiments, the uniform query language compiler is configured to communicate with one or more tertiary modules, wherein the one or more tertiary modules include at least a business logic module.
  • Yet another embodiment relates to a query system including one or more computer-readable storage media having instructions stored thereon and one or more processors configured to execute the instructions to retrieve at least one pair of query language configuration scripts, translate the first query language to a uniform query language using the at least one pair of query language configuration scripts, and translate the uniform query language to the second query language using the at least one pair of query language configuration scripts.
  • In some embodiments, the one or more processors are configured to receive an initialization request indicating at least one pair of query languages.
  • In some embodiments, the at least one pair of query language configuration scripts are associated with a pair of query languages.
  • In some embodiments, the one or more processors are configured to transmit a request to retrieve the at least one pair of query language configuration scripts.
  • In some embodiments, the instructions are configured to implement a business logic module.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Various objects, aspects, features, and advantages of the disclosure will become more apparent and better understood by referring to the detailed description taken in conjunction with the accompanying drawings, in which like reference characters identify corresponding elements throughout. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements.
  • FIG. 1 is a block diagram of a query system, according to some embodiments.
  • FIG. 2 is a block diagram of a dissimilar query engine, according to some embodiments.
  • FIG. 3 is a flowchart illustrating a method of initialization, according to some embodiments.
  • FIG. 4 is a flowchart illustrating a method of translating query languages, according to some embodiments.
  • DETAILED DESCRIPTION
  • Overview
  • Referring generally to the FIGURES, a query system including a dissimilar query engine is shown, according to some embodiments. In some embodiments, the dissimilar query engine includes a configuration script handler, a uniform query language compiler, and a uniform query language interpreter, according to some embodiments. In some embodiments, the dissimilar query engine is configured to receive a first query language from a client-side interface and translate the first query language to a second query language used by a server-side system. In some embodiments, the query system includes a configuration scripts module. In some embodiments, the dissimilar query engine is configured to communicate with a tertiary layer that includes external modules.
  • Various embodiments of the present disclosure may be utilized for query handling relating to building management. For example, in some embodiments, the systems and methods of the present disclosure may be used to handle queries relating to building operation analytics, such as energy consumption, device usage, occupancy, etc. In some such example, a client-side user interface may submit a query to a web server in a first language, and the web server may in turn query a database to obtain the data necessary to respond to the query. The query engine may translate the query from a first language to a uniform language, and then translate to a second language to query the database. It should be understood that the present systems and methods could be used in a variety of other building management contexts, such as for handling security data, translating communications between building equipment/devices using different query languages, etc. Further, the present systems and methods can be utilized in applications outside the building context as well. All such implementations are contemplated within the scope of the present disclosure.
  • Query System
  • Referring now to FIG. 1, a query system 100 is shown, according to some embodiments. While not illustrated, the various components and functions shown and described with respect to FIG. 1 can be implemented using instructions stored on one or more computer-readable storage media (e.g., RAM, ROM, solid state storage, optical storage, etc.) executable by one or more processors (e.g., FPGA, ASIC, general purpose computing processors, etc.). Further, the components and operations shown and described with respect to FIG. 2 and the operations shown and described with respect to FIGS. 3 and 4 could also be implemented using instructions stored on one or more computer-readable storage media executed by one or more processors.
  • Query system 100 is shown to include an initialization module 102, a first layer 104, a dissimilar query engine 106, a second layer 108, a tertiary layer 110, and a configuration scripts module 112, according to some embodiments. In some embodiments, query system 100 is configured to translate a first query language received from first layer 104 to a uniform query language using dissimilar query engine 106. In some embodiments, query system 100 is configured to translate a uniform query language to a second query language transmitted to second layer 108 using dissimilar query engine 106. In some embodiments, initialization module 102 transmits a request to initialize service of query system 100. For example, initialization module 102 may transmit a request to dissimilar query engine 106 to compile desired query languages for use in query system 100. The method of initialization is described in greater detail below.
  • First layer 104 is shown to include a client-side query 114, according to some embodiments. In some embodiments, client-side query 114 is received from a user interface accessed by a user. For example, a user may transmit client-side query 114 using an energy management dashboard displayed on a screen of a computer. In some embodiments, client-side query 114 is a request to retrieve data from a database located in second layer 108. In some embodiments, client-side query 114 is a request to retrieve data from a server located in second layer 108. Client-side query 114 is shown to communicate with second layer 108 via dissimilar query engine 106. In some embodiments, client-side query 114 involves a first query language (e.g., URL, etc.).
  • Dissimilar query engine 106 is shown to include configuration script handler 116, uniform query language compiler 118, and uniform query language interpreter 120, according to some embodiments. In some embodiments, query system 100 may include additional dissimilar query engines 106. In some embodiments, dissimilar query engine 106 is configured to translate a first query language to a uniform query language. In some embodiments, dissimilar query engine 106 is configured to translate a uniform query language to a second query language. In some embodiments, configuration script handler 116 is shown to communicate with initialization module 102, configuration scripts module 112, uniform query language compiler 118, and uniform query language interpreter 120, according to some embodiments. Uniform query language compiler is shown to communicate with tertiary layer 110, client-side query 114, configuration script handler 116, and uniform query language interpreter 120, according to some embodiments. Uniform query language interpreter is shown to communicate with configuration script handler 116, uniform query language compiler 118, and second layer 108, according to some embodiments. The functions of dissimilar query engine 106, configuration script handler 116, uniform query language compiler 118, and uniform query language interpreter 120 are described in greater detail below.
  • Second layer 108 is shown to include a server-side query 122, according to some embodiments. In some embodiments, server-side query 122 involves a second query language that is different than a first query language utilized by client-side query 114. In some embodiments, server-side query 122 retrieves data from a database located in second layer 108. In some embodiments, server-side query 122 retrieves data from a server located in second layer 108. Server-side query 122 is shown to communicate with first layer 104 via dissimilar query engine 106, according to some embodiments.
  • Tertiary layer 110 is shown to include an external module 124, according to some embodiments. In some embodiments, external module 124 communicates with uniform query language compiler 118. In some embodiments, external module 124 is configured to receive a uniform query language from uniform query language compiler 118. In some embodiments, external module 124 can include business logic modules (e.g., authenticate, validate, verify, modify, etc.) In some embodiments, external module 124 is configured to transmit a modified uniform query to dissimilar query engine 106. For example, external module 124 may receive a uniform query to validate, verify, and modify the uniform query such that external module 124 transmits a modified uniform query (e.g., simpler, etc.) to dissimilar query engine 106.
  • Configuration scripts module 112 is shown to include a configuration scripts store 126 and a compiled configuration scripts 128, according to some embodiments. In some embodiments, compiled configuration scripts 128 communicates with configuration scripts store 126 to retrieve a query language configuration script. In some embodiments, configuration scripts store 126 stores scripts configured to interpret query languages (e.g., URL, oData, SQL, etc.). In some embodiments, configuration scripts module 112 is involved with a request to initialize service transmitted by initialization module 102. For example, configuration scripts store 126 may transmit a pair of query language configuration scripts to configuration script handler 116. In some embodiments, compiled configuration scripts 128 stores compiled scripts (e.g., a first query language translated to a uniform query language, a uniform query language translated to a second query language, etc.).
  • Dissimilar Query Engine
  • Referring now to FIG. 2, a detailed view 200 of dissimilar query engine 106 is shown, according to some embodiments. Dissimilar query engine 106 is shown to include configuration script handler 116, uniform query language compiler 118, and uniform query language interpreter 120, according to some embodiments. In some embodiments, dissimilar query engine 106 is configured to translate a first query language received from client-side query 114 to a uniform query language. In some embodiments, dissimilar query engine 106 is configured to translate a uniform query language to a second query language utilized by server-side query 122.
  • In some embodiments, uniform query language compiler 118 receives a first query of a first query language from client-side query 114. In some embodiments, uniform query language compiler 118 transmits a first fetch request to receive a first compiled script from configuration script handler 116. In some embodiments, uniform query language compiler 118 receives a compiled script from configuration script handler 116. For example, uniform query language compiler 118 receives a compiled script from configuration script handler 116 in order to translate a first query language to a uniform query language. In some embodiments, uniform query language compiler 118 receives a request to initialize service from initialization module 102. In some embodiments, uniform query language compiler 118 transmits a translated query of a uniform query language to uniform query language interpreter 120.
  • In some embodiments, configuration script handler 116 receives an identification of a pair of query languages (e.g., a first query language utilized by client-side query 114 and a second query language utilized by server-side query 122). In some embodiments, configuration script handler 116 communicates with configuration scripts module 112 to receive a pair of query language configuration scripts. In some embodiments, configuration script handler 116 transmits a compiled first query language to a uniform query language configuration script to uniform query language compiler 118. In some embodiments, configuration script handler 116 transmits a compiled uniform query language to a second query language configuration script to uniform query language interpreter 120.
  • In some embodiments, uniform query language interpreter 120 transmits a second fetch request to configuration script handler 116 to receive a second compiled script. In some embodiments, uniform query language interpreter 120 receives a compiled uniform query language to a second query language configuration script from configuration script handler 116. In some embodiments, uniform query language interpreter receives a translated query of a uniform query language from uniform query language compiler. In some embodiments, uniform query language interpreter 120 translates a query of a uniform query language to a second query language. In some embodiments, uniform query language interpreter 120 transmits a query of a second query language to server-side query 122.
  • Method of Initialization
  • Referring now to FIG. 3, a process 300 for initializing service of query system 100 is shown, according to some embodiments. Process 300 includes step 302, according to some embodiments. In some embodiments, step 302 involves transmitting an initialization request. In some embodiments, initialization module 102 transmits the initialization request involved in step 302. In some embodiments, the initialization request is received by configuration script handler 116. In some embodiments, the initialization request transmitted in step 302 includes a pair of query languages (e.g., a first query language utilized by client-side query 114 and a second query language utilized by server-side query 122).
  • In some embodiments, process 300 involves step 304. In some embodiments, step 304 involves transmitting a fetch request. In some embodiments, configuration script handler 116 transmits the fetch request to configuration scripts module 112. In some embodiments, the fetch request transmitted in step 304 is configured to identify a pair of query languages. In some embodiments, process 300 involves step 306. In some embodiments, step 306 involves fetching a pair of scripts. In some embodiments, configuration scripts module 112 fetches a pair of scripts from configuration scripts store 126.
  • In some embodiments, process 300 involves step 308. In some embodiments, step 308 involves compiling the scripts fetched in step 306. In some embodiments, compiling the scripts involves translating a query language. For example, a first query language is translated to a uniform query language and a uniform query language is translated to a second query language. In some embodiments, process 300 involves step 310. In some embodiments, step 310 involves creating translation instances utilized by uniform query language compiler 118 and uniform query language interpreter 120. For example, an instance of translating a first query language to a uniform query language may be created for uniform query language compiler 118, and an instance of translating a uniform query language to a second query language may be created for uniform query language interpreter 120. In some embodiments, process 300 involves step 312. In some embodiments, step 312 involves storing compiled scripts in compiled configuration scripts 128.
  • Method of Translating Query Languages
  • Referring now to FIG. 4, a process 400 for translating query languages is shown, according to some embodiments. In some embodiments, process 400 involves step 402. In some embodiments, step 402 involves receiving a first query. In some embodiments, receiving a first query involves receiving a query from client-side query 114. For example, client-side query 114 may transmit a query to retrieve data associated with a particular air handling unit. In some embodiments, uniform query language compiler 118 receives the first query involved in step 402.
  • In some embodiments, process 400 involves step 404. In some embodiments, step 404 involves transmitting a first fetch request. In some embodiments, step 414 involves uniform query language compiler 118 transmitting a first fetch request. In some embodiments, step 404 involves transmitting a first fetch request to configuration script handler 116. In some embodiments, the first fetch request transmitted in step 404 involves a request to compile a first query language to a uniform query language.
  • In some embodiments, process 400 involves step 406. In some embodiments, step 406 involves compiling a first query language to a uniform query language. In some embodiments, configuration script handler 116 compiles the first query language to a uniform query language in step 406. In some embodiments, process 400 involves step 408. In some embodiments, step 408 involves transmitting the compiled script involved in step 406 to uniform query language compiler 118. In some embodiments, step 408 involves translating a first query language to a uniform query language using the compiled script involved in step 406. In some embodiments, step 408 involves transmitting the compiled query language involved in step 406 to external module 124. For example, a compiled query language may be transmitted to an authentication module located in external module 124 in order to authenticate the credentials of the first query. In some embodiments, step 406 further involves transmitting an authenticated script from external module 124 to uniform query language compiler 118.
  • In some embodiments, process 400 involves step 410. In some embodiments, step 410 involves transmitting a second fetch request. In some embodiments, step 410 involves uniform query language interpreter 120 transmitting a second fetch request. In some embodiments, step 410 involves transmitting a second fetch request to configuration script handler 116. In some embodiments, the second fetch request transmitted in step 410 involves a request to compile a uniform query language to a second query language.
  • In some embodiments, process 400 involves step 412. In some embodiments, step 412 involves translating a uniform query language to a second query language. In some embodiments, step 412 involves transmitting the compiled script to uniform query language interpreter 120. In some embodiments, step 412 involves using the compiled script to translate a uniform query language to a second query language. In some embodiments, step 412 involves transmitting the translated query to server-side query 122.
  • Configuration of Exemplary Embodiments
  • As utilized herein, the terms “approximately,” “about,” “substantially,” and similar terms are intended to have a broad meaning in harmony with the common and accepted usage by those of ordinary skill in the art to which the subject matter of this disclosure pertains. It should be understood by those of skill in the art who review this disclosure that these terms are intended to allow a description of certain features described and claimed without restricting the scope of these features to the precise numerical ranges provided. Accordingly, these terms should be interpreted as indicating that insubstantial or inconsequential modifications or alterations of the subject matter described and claimed are considered to be within the scope of the invention as recited in the appended claims.
  • It should be noted that the terms “exemplary” and “example” as used herein to describe various embodiments is intended to indicate that such embodiments are possible examples, representations, and/or illustrations of possible embodiments (and such term is not intended to connote that such embodiments are necessarily extraordinary or superlative examples).
  • The terms “coupled,” “connected,” and the like, as used herein, mean the joining of two members directly or indirectly to one another. Such joining may be stationary (e.g., permanent, etc.) or moveable (e.g., removable, releasable, etc.). Such joining may be achieved with the two members or the two members and any additional intermediate members being integrally formed as a single unitary body with one another or with the two members or the two members and any additional intermediate members being attached to one another.
  • References herein to the positions of elements (e.g., “top,” “bottom,” “above,” “below,” “between,” etc.) are merely used to describe the orientation of various elements in the figures. It should be noted that the orientation of various elements may differ according to other exemplary embodiments, and that such variations are intended to be encompassed by the present disclosure.
  • Also, the term “or” is used in its inclusive sense (and not in its exclusive sense) so that when used, for example, to connect a list of elements, the term “or” means one, some, or all of the elements in the list. Conjunctive language such as the phrase “at least one of X, Y, and Z,” unless specifically stated otherwise, is otherwise understood with the context as used in general to convey that an item, term, etc. may be either X, Y, Z, X and Y, X and Z, Y and Z, or X, Y, and Z (i.e., any combination of X, Y, and Z). Thus, such conjunctive language is not generally intended to imply that certain embodiments require at least one of X, at least one of Y, and at least one of Z to each be present, unless otherwise indicated.
  • The construction and arrangement of the systems and methods as shown in the various exemplary embodiments are illustrative only. Although only a few embodiments have been described in detail in this disclosure, many modifications are possible (e.g., variations in sizes, dimensions, structures, shapes and proportions of the various elements, values of parameters, mounting arrangements, use of materials, colors, orientations, etc.). For example, the position of elements may be reversed or otherwise varied and the nature or number of discrete elements or positions may be altered or varied. Accordingly, all such modifications are intended to be included within the scope of the present disclosure. The order or sequence of any process or method steps may be varied or re-sequenced according to alternative embodiments. Other substitutions, modifications, changes, and omissions may be made in the design, operating conditions and arrangement of the exemplary embodiments without departing from the scope of the present disclosure.
  • Although the figures show a specific order of method steps, the order of the steps may differ from what is depicted. Also two or more steps may be performed concurrently or with partial concurrence. Such variation will depend on the software and hardware systems chosen and on designer choice. All such variations are within the scope of the disclosure. Likewise, software implementations could be accomplished with standard programming techniques with rule based logic and other logic to accomplish the various connection steps, processing steps, comparison steps and decision steps.

Claims (20)

What is claimed is:
1. A dissimilar query engine configured to translate a query comprising a first query language to a second query language, the dissimilar query engine comprising one or more computer-readable storage media having instructions stored thereon that, upon execution by one or more processors, cause the one or more processors to implement:
a configuration script handler configured to retrieve at least one pair of query language configuration scripts;
a uniform query language compiler configured to translate the first query language to a uniform query language using the at least one pair of query language configuration scripts; and
a uniform query language interpreter configured to translate the uniform query language to the second query language using the at least one pair of query language configuration scripts.
2. The dissimilar query engine of claim 1, wherein the configuration script handler is configured to receive an initialization request indicating at least one pair of query languages.
3. The dissimilar query engine of claim 1, wherein the at least one pair of query language configuration scripts is associated with the first query language and the second query language.
4. The dissimilar query engine of claim 3, wherein the configuration script handling is configured to retrieve the at least one pair of query language configuration scripts from a configuration scripts module comprising:
a configuration scripts store module configured to store a plurality of query language configuration scripts; and
a compiled configuration scripts module configured to store a plurality of pairs of query language configuration scripts.
5. The dissimilar query engine of claim 1, wherein the configuration script handler is configured to transmit to a configuration scripts module a request to retrieve the pair of query language configuration scripts.
6. The dissimilar query engine of claim 1, wherein the uniform query language compiler is configured to communicate with one or more tertiary modules.
7. The dissimilar query engine of claim 6, wherein one of the one or more the tertiary modules comprises a business logic module.
8. A method of translating a first query language to a second query language, comprising:
inputting a first query to a uniform query language compiler using the first query language;
transmitting a first fetch request from the uniform query language compiler to a configuration script handler;
translating the first query language to a uniform query language to generate a uniform query;
transmitting the uniform query to a uniform query language interpreter;
transmitting a second fetch request from the uniform query language interpreter to the configuration script handler; and
translating the uniform query to the second query language to generate a second query.
9. The method of claim 8 further comprising transmitting the uniform query to an external module.
10. The method of claim 9, wherein transmitting the uniform query to the external module further comprises processing the uniform query with a business logic module.
11. The method of claim 8, wherein inputting the first query further comprises inputting the first query by a user.
12. The method of claim 8, wherein transmitting the first fetch request further comprises transmitting a first compiled script from the configuration script handler to the uniform query language compiler.
13. The method of claim 8, wherein transmitting the second fetch request further comprises transmitting a second compiled script from the configuration script handler to the uniform query language interpreter.
14. The method of claim 8, wherein translating the uniform query to the second query language further comprises translating the second query to a server-side query.
15. The method of claim 8, further comprising:
transmitting an initialization request comprising a pair of query languages;
transmitting a fetch request;
retrieving a pair of query language configuration scripts;
compiling the pair of query language configuration scripts;
creating a pair of translation instances associated with the pair of query languages; and
storing the pair of translation instances.
16. A query system comprising:
one or more computer-readable storage media having instructions stored thereon; and
one or more processors configured to execute the instructions to:
retrieve at least one pair of query language configuration scripts;
translate the first query language to a uniform query language using the at least one pair of query language configuration scripts; and
translate the uniform query language to the second query language using the at least one pair of query language configuration scripts.
17. The query system of claim 16, wherein the one or more processors are configured to receive an initialization request indicating at least one pair of query languages.
18. The query system of claim 16, wherein the at least one pair of query language configuration scripts are associated with a pair of query languages.
19. The query system of claim 16, wherein the one or more processors are configured to transmit a request to retrieve the at least one pair of query language configuration scripts.
20. The query system of claim 16, wherein the instructions are configured to implement a business logic module.
US16/905,513 2019-06-19 2020-06-18 Dissimilar query engine Pending US20200401591A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/905,513 US20200401591A1 (en) 2019-06-19 2020-06-18 Dissimilar query engine

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962863584P 2019-06-19 2019-06-19
US16/905,513 US20200401591A1 (en) 2019-06-19 2020-06-18 Dissimilar query engine

Publications (1)

Publication Number Publication Date
US20200401591A1 true US20200401591A1 (en) 2020-12-24

Family

ID=74038504

Family Applications (1)

Application Number Title Priority Date Filing Date
US16/905,513 Pending US20200401591A1 (en) 2019-06-19 2020-06-18 Dissimilar query engine

Country Status (1)

Country Link
US (1) US20200401591A1 (en)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963934A (en) * 1997-06-30 1999-10-05 International Business Machines Corporation Intelligent compilation of scripting language for query processing systems
US20080077560A1 (en) * 2006-09-22 2008-03-27 Comi Gabriel D Systems, methods, and language for selection and retrieval of information from databases
US20130263099A1 (en) * 2008-10-03 2013-10-03 Microsoft Corporation Common intermediate representation for data scripting language
US8954418B2 (en) * 2010-05-14 2015-02-10 Sap Se Performing complex operations in a database using a semantic layer
US20160034529A1 (en) * 2014-07-29 2016-02-04 Metanautix, Inc. Systems and methods for a distributed query execution engine
US10452650B1 (en) * 2016-09-08 2019-10-22 Google Llc Data querying
US20200073987A1 (en) * 2018-09-04 2020-03-05 Salesforce.Com, Inc. Technologies for runtime selection of query execution engines
US20200327130A1 (en) * 2019-04-11 2020-10-15 Sas Institute Inc. Database Server Embedded Process and Code Accelerator

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963934A (en) * 1997-06-30 1999-10-05 International Business Machines Corporation Intelligent compilation of scripting language for query processing systems
US20080077560A1 (en) * 2006-09-22 2008-03-27 Comi Gabriel D Systems, methods, and language for selection and retrieval of information from databases
US20130263099A1 (en) * 2008-10-03 2013-10-03 Microsoft Corporation Common intermediate representation for data scripting language
US8954418B2 (en) * 2010-05-14 2015-02-10 Sap Se Performing complex operations in a database using a semantic layer
US20160034529A1 (en) * 2014-07-29 2016-02-04 Metanautix, Inc. Systems and methods for a distributed query execution engine
US10176236B2 (en) * 2014-07-29 2019-01-08 Microsoft Technology Licensing, Llc Systems and methods for a distributed query execution engine
US10452650B1 (en) * 2016-09-08 2019-10-22 Google Llc Data querying
US20200004744A1 (en) * 2016-09-08 2020-01-02 Google Llc Data querying
US20200073987A1 (en) * 2018-09-04 2020-03-05 Salesforce.Com, Inc. Technologies for runtime selection of query execution engines
US20200327130A1 (en) * 2019-04-11 2020-10-15 Sas Institute Inc. Database Server Embedded Process and Code Accelerator

Similar Documents

Publication Publication Date Title
US20180321989A1 (en) Late Connection Binding for Bots
US20120089676A1 (en) Live data form viewing and updating system
US20130081109A1 (en) Multi-Tenant Agile Database Connector
US9002813B2 (en) Execution plan preparation in application server
US11368447B2 (en) Oauth2 SAML token service
US20150215348A1 (en) Virtual identity of a user based on disparate identity services
US10701053B2 (en) Authentication and approval control system for distributed ledger platform
US20200302126A1 (en) Dynamic translation
CN106844040B (en) Job submitting method, system and server
US8756205B2 (en) System and method for rule-based data object matching
US20190108163A1 (en) Database expansion system, equipment, and method of expanding database
US20120078877A1 (en) Multi-source searching in a data driven application
US20150379677A1 (en) Radiation image inspection system and method based on b/s architecture
US20150006346A1 (en) Account engine with modular services and access channels
US20180113686A1 (en) Automatically Determining Data Dependencies to Facilitate Code Execution
US10650161B2 (en) Data protection management system compliant identification handling
US20220027429A1 (en) Dynamically determining a server for enrollment with management system
US20200401591A1 (en) Dissimilar query engine
CN110764760A (en) Method, apparatus, computer system, and medium for drawing process flow diagrams
US9547508B2 (en) Universal database driver
US10176153B1 (en) Generating custom markup content to deter robots
CN113342845B (en) Data synchronization method, computer device and readable storage medium
US20150106353A1 (en) Data Federation Query Suggestion
CA2904244C (en) Method, apparatus and system for generating software
US10402243B2 (en) Input analysis for dynamic data object definitions

Legal Events

Date Code Title Description
STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

AS Assignment

Owner name: JOHNSON CONTROLS TECHNOLOGY COMPANY, MICHIGAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BHOITE, VINOD ASHOK;GHOSH, GOURAB;PAL, MAIYANK;AND OTHERS;SIGNING DATES FROM 20200913 TO 20210208;REEL/FRAME:055194/0346

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

AS Assignment

Owner name: JOHNSON CONTROLS TYCO IP HOLDINGS LLP, WISCONSIN

Free format text: NUNC PRO TUNC ASSIGNMENT;ASSIGNOR:JOHNSON CONTROLS TECHNOLOGY COMPANY;REEL/FRAME:058959/0764

Effective date: 20210806

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: ADVISORY ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

AS Assignment

Owner name: TYCO FIRE & SECURITY GMBH, SWITZERLAND

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:JOHNSON CONTROLS TYCO IP HOLDINGS LLP;REEL/FRAME:067056/0552

Effective date: 20240201