Software license agreement
DATE : September 1st 2021
1. AGILE DATA DECISION LLC, having its registered office at 8061 Airport Blvd, Houston, 77061 Texas, USA, the "Licensor"; and
2. The company authorized by the Licensor to download, install and use the Software from the Licensor site, the “Licensee”.
1.1 In this Agreement, except to the extent expressly provided otherwise:
"Agreement" means this agreement including any Schedules, and any amendments to this Agreement from time to time;
"Business Day" means any weekday other than a bank or public holiday in the USA;
"Business Hours" means the hours of 09:00 to 17:00 CST (Central Time US and Canada) on a Business Day;
"Charges" means the amounts specified in License proposal sent by the Licensor to the Licensee and accepted by the Licensee in the Purchase Order issued by the Licensor to the Licensee.
"Documentation" means the documentation for the Software produced by the Licensor and delivered or made available by the Licensor to the Licensee;
"Effective Date" is the date when the Licensee downloads the Software from the Licensor site. This agreement takes effect at the Effective date.
"Intellectual Property Rights" means all intellectual property rights wherever in the world, whether registrable or unregistrable, registered or unregistered, including any application or right of application for such rights (and these "intellectual property rights" include copyright and related rights, database rights, confidential information, trade secrets, know-how, business names, trade names, trademarks, service marks, passing off rights, unfair competition rights, patents, petty patents, utility models, semi-conductor topography rights and rights in designs);
“Proposal” means the document sent by the Licensor to the Licensee notifying the Terms and Conditions of the Software and related services offering;
“Purchase Order” means the document sent by the Licensee to the Licensor notifying the acceptance of the Terms and Conditions of the Proposal and authorizing the Licensor to invoice the Charges related to the Software.
"Schedule" means any schedule attached to the main body of this Agreement;
"Software" means the software identified in Part 1 of Schedule 1 (Software License Particulars) and limited to the modules licensed by the Licensor to the Licensee in the proposal and agreed by the Licensee in the Purchase Order;
"Software Defect" means a defect, error or bug in the Software having an adverse effect on the appearance, operation, functionality or performance of the Software, but excluding any defect, error or bug caused by or arising as a result of:
(a) any act or omission of the Licensee or any person authorized by the Licensee to use the Software;
(b) any use of the Software contrary to the Documentation by the Licensee or any person authorized by the Licensee to use the Software;
(c) a failure of the Licensee to perform or observe any of its obligations in this Agreement; and/or
(d) an incompatibility between the Software and any other system, network, application, program, hardware or software not specified as compatible in the Software Specification;
"Software Specification" means the specification for the Software set out in Part 1 of Schedule 1 (Software License Particulars) and in the Documentation, as it may be varied by the written agreement of the parties from time to time.
"Term" means the term of this Agreement, commencing in accordance with Clause 3.1 and ending in accordance with Clause 3.2.
2.1 This document was created using a template from Docular (https://docular.net).
3.1 This Agreement shall come into force upon the Effective Date.
3.2 This Agreement shall continue in force indefinitely.
4. Supply of Software
4.1 The Licensor shall make the Software available for download by the Licensee during the whole of the period of 10 Business Days following the Effective Date, and shall provide to the Licensee such assistance in relation to the download of the Software as the Licensee may reasonably request.
5.1 The Licensor hereby grants to the Licensee from the Effective Date of the Software to the Licensee until the end of the Term a worldwide, non-exclusive license to:
(a) install a single instance of the Software according to the license limitation defined in the Licensor proposal and approved by the Licensee purchase Order;
(b) use a single instance of the Software in accordance with the Documentation;
(c) create, store and maintain back-up copies of the Software; and
(d) apply fixes and patches, install upgrade of the Software according to the terms of the maintenance agreement.
subject to the limitations and prohibitions set out and referred to in this Clause 5 and to the full payment of the License Charges.
5.2 The Licensee may not sub-license and must not purport to sub-license any rights granted under Clause
5.1 without the prior written consent of the Licensor.
5.3 The license granted by the Licensor to the Licensee is subject to the limitations regarding the number of installations set out in the License proposal issued by the Licensor to the Licensee and accepted by the Licensee in the Purchase Order issued to the Licensor.
5.4 The license granted by the Licensor to the Licensee is subject to limitations regarding the software modules as defined in the License proposal issued by the Licensor to the Licensee and accepted by the Licensee in the Purchase Order issued to the Licensor.
5.5 The license is granted in the Terms defined in Clause 3 after the payment of the Charges by the Licensee to the Licensor.
5.6 The Software may only be used by the officers and employees of the Licensee, and the officers and employees of the Licensee's agents, subcontractors and service providers.
5.7 The Software must be used by the Licensee for the purpose of its own benefit and therefore not be used to perform services to any third party.
5.8 Save to the extent expressly permitted by this Agreement or required by applicable law on a non-excludable basis, any license granted under this Clause 5 shall be subject to the following prohibitions:
(a) the Licensee must not sell, resell, rent, lease, loan, supply, publish, distribute or redistribute the Software;
(b) the Licensee must not alter, edit or adapt the Software; and
(c) the Licensee must not decompile, de-obfuscate or reverse engineer, or attempt to decompile, de-obfuscate or reverse engineer, the Software.
5.9 The Licensee shall be responsible for the security of copies of the Software supplied to the Licensee under this Agreement and shall use all reasonable endeavors (including all reasonable security measures) to ensure that access to such copies is restricted to persons authorized to use them under this Agreement.
6. No assignment of Intellectual Property Rights
6.1 Nothing in this Agreement shall operate to assign or transfer any Intellectual Property Rights from the Licensor to the Licensee, or from the Licensee to the Licensor.
7.1 The Licensee shall pay the Charges to the Licensor in accordance with this Agreement.
7.2 All amounts stated in relation to this Agreement are, unless the context requires otherwise, stated exclusive of any applicable value added taxes, which will be added to those amounts and payable by the Licensee to the Licensor.
7.3 The Licensor may elect to vary any element of the Charges by giving to the Licensee not less than 30 days' written notice of the variation expiring on providing that no such variation shall constitute a percentage increase in the relevant element of the Charges that exceeds by 2% the Producer Price Index in the USA over the same period.
8.1 The Licensor shall issue invoices for the Charges to the Licensee.
8.2 The Licensee must pay the Charges by Bank Transfer to the Licensor within the period of 30 days following the issue of an invoice.
9.1 The Licensor warrants to the Licensee that it has the legal right and authority to enter into this Agreement and to perform its obligations under this Agreement.
9.2 The Licensor warrants to the Licensee that:
(a) the Software as provided will conform in all respects with the Software Specification;
(b) the Software will be supplied free from viruses, worms, Trojan horses, ransomware, spyware, adware and other malicious software programs; and
(c) the Software shall incorporate security features reflecting the requirements of good industry practice.
9.3 The Licensor warrants to the Licensee that the Software, when used by the Licensee in accordance with this Agreement, will not breach any laws, statutes or regulations applicable under US law.
9.4 The Licensor warrants to the Licensee that the Software, when used by the Licensee in accordance with this Agreement, will not infringe the Intellectual Property Rights of any person in any jurisdiction and under any applicable law.
9.5 If the Licensor reasonably determines, or any third party alleges, that the use of the Software by the Licensee in accordance with this Agreement infringes any person's Intellectual Property Rights, the Licensor may at its own cost and expense modify the Software in such a way that it no longer infringes the relevant Intellectual Property Rights.
9.6 The Licensee warrants to the Licensor that it has the legal right and authority to enter into this Agreement and to perform its obligations under this Agreement.
9.7 All of the parties' warranties and representations in respect of the subject matter of this Agreement are expressly set out in this Agreement. To the maximum extent permitted by applicable law, no other warranties or representations concerning the subject matter of this Agreement will be implied into this Agreement or any related contract.
10. Acknowledgements and warranty limitations
10.1 The Licensee acknowledges that complex software is never wholly free from defects, errors and bugs; and subject to the other provisions of this Agreement, the Licensor gives no warranty or representation that the Software will be wholly free from defects, errors and bugs.
10.2 The Licensee acknowledges that complex software is never entirely free from security vulnerabilities; and subject to the other provisions of this Agreement, the Licensor gives no warranty or representation that the Software will be entirely secure.
10.3 The Licensee acknowledges that the Software is only designed to be compatible with that software specified as compatible in the Software Specification; and the Licensor does not warrant or represent that the Software will be compatible with any other software.
10.4 The Licensee acknowledges that the Licensor will not provide any legal, financial, accountancy or taxation advice under this Agreement or in relation to the Software; and, except to the extent expressly provided otherwise in this Agreement, the Licensor does not warrant or represent that the Software or the use of the Software by the Licensee will not give rise to any legal liability on the part of the Licensee or any other person.
11. Limitations and exclusions of liability
11.1 Nothing in this Agreement will:
(a) limit or exclude any liability for death or personal injury resulting from negligence;
(b) limit or exclude any liability for fraud or fraudulent misrepresentation;
(c) exclude any liabilities that may not be excluded under applicable law.
11.2 The limitations and exclusions of liability set out in this Clause 11 and elsewhere in this Agreement:
(a) are subject to Clause 11.1; and
(b) govern all liabilities arising under this Agreement or relating to the subject matter of this Agreement, including liabilities arising in contract, in tort (including negligence) and for breach of statutory duty, except to the extent expressly provided otherwise in this Agreement.
11.3 Neither party shall be liable to the other party in respect of any loss of profits or anticipated savings.
11.4 Neither party shall be liable to the other party in respect of any loss of revenue or income.
11.5 Neither party shall be liable to the other party in respect of any loss of use or production.
11.6 Neither party shall be liable to the other party in respect of any loss of business, contracts or opportunities.
11.7 Neither party shall be liable to the other party in respect of any loss or corruption of any data, database or software.
11.8 Neither party shall be liable to the other party in respect of any special, indirect or consequential loss or damage.
12.1 The License is granted by the Licensor to the Licensee according to the terms defined in Clause 3
12.2 The Licensee may terminate this Agreement by giving to the Licensor a written notice of termination not less than 30 days.
12.3 Either party may terminate this Agreement immediately by giving written notice of termination to the other party if:
(a) the other party commits any breach this Agreement, and the breach is not remediable;
(b) the other party commits a breach of this Agreement, and the breach is remediable but the other party fails to remedy the breach within the period of 30 days following the giving of a written notice to the other party requiring the breach to be remedied; or
(c) the other party persistently breaches this Agreement (irrespective of whether such breaches collectively constitute a material breach).
12.4 Subject to applicable law, either party may terminate this Agreement immediately by giving written notice of termination to the other party if:
(a) the other party:
(i) is dissolved;
(ii) ceases to conduct all (or substantially all) of its business;
(iii) is or becomes unable to pay its debts as they fall due;
(iv) is or becomes insolvent or is declared insolvent; or
(v) convenes a meeting or makes or proposes to make any arrangement or composition with its creditors;
(b) an administrator, administrative receiver, liquidator, receiver, trustee, manager or similar is appointed over any of the assets of the other party;
(c) an order is made for the winding up of the other party, or the other party passes a resolution for its winding up;
12.5 The Licensor may terminate this Agreement immediately by giving written notice to the Licensee if:
(a) any amount due to be paid by the Licensee to the Licensor under this Agreement is unpaid by the due date and remains unpaid upon the date that that written notice of termination is given; and
(b) the Licensor has given to the Licensee at least written notice, following the failure to pay, of its intention to terminate this Agreement.
13. Effects of termination
13.1 Upon the termination of this Agreement, all of the provisions of this Agreement shall cease to have effect, save that the following provisions of this Agreement shall survive and continue to have effect (in accordance with their express terms or otherwise indefinitely): Clauses 1, 8.2, 11, 13, 15 and 16].
13.2 Except to the extent expressly provided otherwise in this Agreement, the termination of this Agreement shall not affect the accrued rights of either party.
13.3 For the avoidance of doubt, the licenses of the Software in this Agreement shall terminate upon the termination of this Agreement; and, accordingly, the Licensee must immediately cease to use the Software upon the termination of this Agreement.
13.4 Within 10 Business Days following the termination of this Agreement, the Licensee shall:
(a) return to the Licensor or dispose of as the Licensor may instruct all media in its possession or control containing the Software; and
(b) irrevocably delete from all computer systems in its possession or control all copies of the Software, and if the Licensor so requests the Licensee shall procure that a director of the Licensee certifies to the Licensor, in a written document signed by that person and provided to the Licensor within 5 Business Days following the receipt of the Licensor's request, that the Licensee has fully complied with the requirements of this Clause 13.4.
14.1 Any notice from one party to the other party under this Agreement must be given by one of the following methods:
(a) delivered personally or sent by courier, in which case the notice shall be deemed to be received upon delivery; or
(b) sent by recorded signed-for post, in which case the notice shall be deemed to be received 2 Business Days following posting, providing that, if the stated time of deemed receipt is not within Business Hours, then the time of deemed receipt shall be when Business Hours next begin after the stated time.
14.2 The parties' contact details for notices under this Clause 14 are as follows:
(a) in the case of notices sent by the Licensee to the Licensor, the notice must be sent to the director of Agile Data Decisions LLC ; and
(b) in the case of notices sent by the Licensor to the Licensee, the notice must be sent to the Procurement Representative defined in the Purchase Order sent by the Licensee to the Licensor.
14.3 The addressee and contact details set out in Clause 14.2 may be updated from time to time by a party giving written notice of the update to the other party in accordance with this Clause 14.
15.1 No breach of any provision of this Agreement shall be waived except with the express written consent of the party not in breach.
15.2 If any provision of this Agreement is determined by any court or other competent authority to be unlawful and/or unenforceable, the other provisions of this Agreement will continue in effect. If any unlawful and/or unenforceable provision would be lawful or enforceable if part of it were deleted, that part will be deemed to be deleted, and the rest of the provision will continue in effect (unless that would contradict the clear intention of the parties, in which case the entirety of the relevant provision will be deemed to be deleted).
15.3 This Agreement may not be varied except by a written document signed by or on behalf of each of the parties.
15.4 Neither party may without the prior written consent of the other party assign, transfer, charge, license or otherwise deal in or dispose of any contractual rights or obligations under this Agreement.
15.5 This Agreement is made for the benefit of the parties, and is not intended to benefit any third party or be enforceable by any third party. The rights of the parties to terminate, rescind, or agree any amendment, waiver, variation or settlement under or relating to this Agreement are not subject to the consent of any third party.
15.6 Subject to Clause 11.1, this Agreement shall constitute the entire agreement between the parties in relation to the subject matter of this Agreement, and shall supersede all previous agreements, arrangements and understandings between the parties in respect of that subject matter.
15.7 This Agreement shall be governed by and construed in accordance with the law of Texas, USA
15.8 The courts of Texas, USA shall have exclusive jurisdiction to adjudicate any dispute arising under or in connection with this Agreement.
16.1 In this Agreement, a reference to a statute or statutory provision includes a reference to:
(a) that statute or statutory provision as modified, consolidated and/or re-enacted from time to time; and
(b) any subordinate legislation made under that statute or statutory provision.
16.2 The Clause headings do not affect the interpretation of this Agreement.
16.3 In this Agreement, general words shall not be given a restrictive interpretation by reason of being preceded or followed by words indicating a particular class of acts, matters or things.
By authorizing the Licensee to download the Software, the Licensor agree to be bound by the provisions of this License Agreement.
By installing the Software, the Licensee agree to be bound by the provisions of this License Agreement.
SCHEDULE 1 (SOFTWARE LICENCE PARTICULARS)
1. Specification of Software
1.1 iQC introduction
1.1.1 Development of iQC
AgileDD has developed iQC, a language-agnostic platform with full Unicode capability, that allows SMEs to conduct customization through a user-friendly graphical user interface (GUI) without requiring any computer programming. iQC enables the users to provide specific examples of the information relevant to them through the GUI, for example, they can tag textual patterns, names, locations, graphical patterns and numbers of interest in the documents. iQC then learns to identify the targets based on the context (surrounding text) where the tagged information occurs. For example, iQC can be trained to put multiple location entities specified in a document into several buckets such as surface latitude, surface longitude, country, block locations (geographical locations used in the mapping of oil and gas exploration sites), etc. iQC can learn to recognize entities from sentences (see Figure 2) or from semi-structured text patterns such as in Figure 1.
Figure 2 :Screenshot of iQC being used for an organic geochemistry document project
In the GUI, the users can:
Upload a set of initial training documents or segments of text such as PDF reports, MS Office documents, text files, etc. iQC starts learning from as little as 10 initial documents or training samples.
2. Define entities or attributes on the fly. Users may specify a “type” for the entities with several options such as free form, numbers, regular expressions, page or document level sentiment, or graphical objects (for deep learning object detection based training). Figure 3 shows an example of defining entities in the graphical user interface.
Figure 3 : News Entities can be defined with ease in iQC
3. Tag data or information of interest in the training documents using a GUI, for example, tag different types of dates of interest, graphical patterns, locations, numbers, titles, free form text, etc. User can validate and do other actions to provide feedback to the system, and the machine learns from actions performed by the user on their documents. Figure 4 shows an example of the user tagging in the user interface.
Figure 4 : User specifies a new entity value in the GUI and validates an extracted entity to make it an additional training value
4. Start a machine learning training with a press of a button to train models that learn to find relevant information, see Figure 5 below.
Figure 5 : The traning dashboard and the "Train" bouton
5. Once the models are trained, the user submits new documents or text to be processed automatically for the extraction of data or entities. Documents can be processed on a massive scale on a computing cluster (Figure 6).
Figure 6 : List of documents sets ready to be processed in a batch mode
iQC is a continuous learning system such that the user can review the results of automatic extraction and declare specific items as correct and incorrect, and iQC continuously learns from domain expert feedback.
1.1.2 Source-filter framework for document information extraction
iQC’s primary added-value in document-related information extraction tasks is how it extracts data in a context-aware method. iQC casts the problem of recognizing entities into a “source-filter” type model. The source or prior is a model that determines the probability of the string to be representing an entity, for example, a “latitude” in degrees. In the prior model, the numbers “10” or “eighty” would have a high prior while a string “cheesecake” would have a low prior. The filter is a machine learning models that models how relevant the context if of a particular string. For example, in “latitude 60 degrees”, the context model or “filter” would ideally generate a high probability for the entity “latitude”, but in the string “there was 60 mm rainfall”, the context filter would show a lower probability for the entity “latitude”. The multiplication of these probabilities determines the final score for each candidate to be representing a specific entity.
The context is evaluated in a manner that it is effective in context-aware data extraction from both sentences as well as semi-structured text patterns similar to Figure 1. Yet, the user does not have to manually specify the context since it is automatically learned from the tagged data in the training documents. This general context evaluation is achieved by building a rectangular context window around the candidate string, and calculating a fixed-length feature vector that encapsulates both the words and the layout of the words around the candidate strings. The concept of a context window has been described in more detail in the approved US patent on iQC technology . The fixed length feature vector is then used with machine learning regression or ranking to rank the different candidates for appropriate fit to a context-sensitive entity.
1.1.3 iQC Process
The general process of iQC can be displayed as below :
Figure 7 : General process to train text and graphic pattern detection and to apply them for an automatic detection.
The training process has to go through the following steps:
Pre-OCR (Optical Character Recognition): The documents are analyzed and paged.
OCR: The pages are OCR’ed using a choice of OCR systems such as Kofax or Microsoft OCR APIs, and the OCR output is mapped to an internal iQC format that preserves the layout of the text on the page. This is a key distinguishing features of iQC since more text analytics tools simply treat documents as a plain sequence of words with no spatial context.
Post-OCR: The pages of the input document are saved under 3 formats:
A paged PDF file is created containing the graphic and text view
The text is also saved in the iQC database
The page images are saved into JPEG files
Labelling: An operator labels the training document using a user graphic interface, where they can view the documents in the original as well as the OCR view that allows them to only see the OCR text and its layout. This view helps the operator visualize the OCR quality while they mark the metadata or entities. An example of this view can be seen in Figure 4 on the right side, and also in Figure 16 that shows an original document as well as the text layout view for that document.
The training documents and their associated labels are used to compute the machine learning and deep learning models.
For the detection or inference on new documents, the process follows the steps below:
PreOCR: same as above
OCR: same as above
Post OCR: same as above
Detection: The detections are done with the appropriate model. They are saved in the iQC database with their associated confidence score and pixel coordinates.
The values can be visualized in iQC interface including entities or metadata, graphical objects, table locations, and page classifications stored according to document name, document checksum, page number and table classification.
The detections can be exported on a rest API or as CSV formatted files that can be visualized and analyzed in business analysis tools or stored in structured database.
Figure 8: The detections done automatically by iQC are made available as jason record on a REST API
1.2 System requirement and performance
System requirements. iQC can run locally on a stand-alone Linux server (or a virtual machine on Microsoft Windows or Mac), or on a cluster of Linux compute nodes, and it provides APIs that can be called from secure mobile or other applications, if needed. Once trained, iQC can be applied on a single workstation to process relatively small volumes of documents or on a cluster of machines to extract data from thousands or millions of documents or pieces of text.
Compute Performance. On a single processor core, a standard letter page can be processed to extract 10 pieces of information in about 10 seconds. Therefore, a 10-page document will be processed in less than 2 minutes. Parallelization is implemented by submitting documents to different nodes in parallel. That means a single 20-core node may process 20 documents (10 pages each) in 2 minutes, and similarly, a 10-node cluster of Linux nodes with 20 processor cores each will process 200 documents in 2 minutes. These are ballpark estimates and processing can vary greatly with the types of documents and the amount and type of information that needs to be extracted. Training iQC on a set of documents required the same order of magnitude of compute time.
Accuracy. Information extraction accuracy is measured by Precision, Recall and F1-score. We have shown in several customer projects that iQC F1-score improves from an initial score of 40-50% to 85-95% as users provide more training to the system. On simpler tasks and documents, 100% F-score is achievable, but the F1-score is always going to depend on document quality and the complexity of the information that is extracted.
1.3 Modularity of the iQC platform
The iQC platform is proposed as a main module and two optional modules described below: