isaacus 0.9.1__py3-none-any.whl → 0.10.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1258 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+
8
+ __all__ = [
9
+ "EnrichmentResponse",
10
+ "Result",
11
+ "ResultDocument",
12
+ "ResultDocumentCrossreference",
13
+ "ResultDocumentCrossreferenceSpan",
14
+ "ResultDocumentDate",
15
+ "ResultDocumentDateMention",
16
+ "ResultDocumentEmail",
17
+ "ResultDocumentEmailMention",
18
+ "ResultDocumentExternalDocument",
19
+ "ResultDocumentExternalDocumentMention",
20
+ "ResultDocumentExternalDocumentName",
21
+ "ResultDocumentExternalDocumentPinpoint",
22
+ "ResultDocumentHeading",
23
+ "ResultDocumentIDNumber",
24
+ "ResultDocumentIDNumberMention",
25
+ "ResultDocumentJunk",
26
+ "ResultDocumentLocation",
27
+ "ResultDocumentLocationMention",
28
+ "ResultDocumentLocationName",
29
+ "ResultDocumentPerson",
30
+ "ResultDocumentPersonMention",
31
+ "ResultDocumentPersonName",
32
+ "ResultDocumentPhoneNumber",
33
+ "ResultDocumentPhoneNumberMention",
34
+ "ResultDocumentQuote",
35
+ "ResultDocumentQuoteSpan",
36
+ "ResultDocumentSegment",
37
+ "ResultDocumentSegmentCode",
38
+ "ResultDocumentSegmentSpan",
39
+ "ResultDocumentSegmentTitle",
40
+ "ResultDocumentSegmentTypeName",
41
+ "ResultDocumentSubtitle",
42
+ "ResultDocumentTerm",
43
+ "ResultDocumentTermMeaning",
44
+ "ResultDocumentTermMention",
45
+ "ResultDocumentTermName",
46
+ "ResultDocumentTitle",
47
+ "ResultDocumentWebsite",
48
+ "ResultDocumentWebsiteMention",
49
+ "Usage",
50
+ ]
51
+
52
+
53
+ class ResultDocumentCrossreferenceSpan(BaseModel):
54
+ """The span of the segment within the document's text."""
55
+
56
+ end: int
57
+
58
+ start: int
59
+
60
+
61
+ class ResultDocumentCrossreference(BaseModel):
62
+ """A cross-reference within the document pointing to one or more segments."""
63
+
64
+ end: str
65
+ """
66
+ The unique identifier of the latest segment in the span of segments being
67
+ cross-referenced with ties broken in favor of the least-nested (i.e., largest)
68
+ segment. If the cross-reference points to a single segment, `start` and `end`
69
+ will be identical.
70
+ """
71
+
72
+ span: ResultDocumentCrossreferenceSpan
73
+ """The span of the segment within the document's text."""
74
+
75
+ start: str
76
+ """
77
+ The unique identifier of the earliest segment in the span of segments being
78
+ cross-referenced with ties broken in favor of the least-nested (i.e., largest)
79
+ segment. If the cross-reference points to a single segment, `start` and `end`
80
+ will be identical.
81
+ """
82
+
83
+
84
+ class ResultDocumentDateMention(BaseModel):
85
+ """A zero-based, half-open span into the Unicode code point space of input text.
86
+
87
+ All spans are globally laminar and well-nested similar to XML—it is impossible for any two spans to partially overlap; they can only be disjoint, adjacent, or wholly nested. Spans of the exact same type (e.g., segments) will never be duplicated.
88
+
89
+ A span cannot be empty and will never start or end at whitespace.
90
+
91
+ Note that, when using programming languages other than Python (which uses zero-based, half-open, Unicode code point-spaced string indexing), indices may need to be translated accordingly (for example, JavaScript slices into UTF-16 code units instead of Unicode code points).
92
+ """
93
+
94
+ end: int
95
+
96
+ start: int
97
+
98
+
99
+ class ResultDocumentDate(BaseModel):
100
+ """
101
+ A date identified in a document belonging to one of the following types: `creation`, `signature`, `effective`, `expiry`, `delivery`, `renewal`, `payment`, `birth`, or `death`.
102
+
103
+ Only Gregorian dates between the years 1000 and 9999 (inclusive) fitting into one of the supported date types are extractable.
104
+ """
105
+
106
+ mentions: List[ResultDocumentDateMention]
107
+ """
108
+ An array of one or more spans within the document's text where the date is
109
+ mentioned.
110
+ """
111
+
112
+ person: Optional[str] = None
113
+ """
114
+ A unique identifier for a legal person in the format `per:{index}` where
115
+ `{index}` is a non-negative incrementing integer starting from zero.
116
+ """
117
+
118
+ type: Literal["creation", "signature", "effective", "expiry", "delivery", "renewal", "payment", "birth", "death"]
119
+ """
120
+ The type of the date, being one of `creation`, `signature`, `effective`,
121
+ `expiry`, `delivery`, `renewal`, `payment`, `birth`, or `death`. If a date is
122
+ mentioned in a document that does not fit into a supported type, it will not be
123
+ extracted.
124
+
125
+ `creation` denotes the date the document was created. There may only be one
126
+ `creation` date per document.
127
+
128
+ `signature` denotes the date the document was signed.
129
+
130
+ `effective` denotes the date when the document or a part thereof comes into
131
+ effect (e.g., commencement or enactment dates).
132
+
133
+ `expiry` denotes the date when the document or a part thereof is no longer in
134
+ effect.
135
+
136
+ `delivery` denotes the date when goods or services are to be delivered under the
137
+ document.
138
+
139
+ `renewal` denotes the date when one or more of the document's terms are to be
140
+ renewed.
141
+
142
+ `payment` denotes the date when payment is to be made under the document.
143
+
144
+ `birth` denotes the birth date of a natural person or establishment (e.g.,
145
+ incorporation) date of a non-natural legal person identified in the document.
146
+ There can only be one `birth` date linked to a single person and all `birth`
147
+ dates must be linked to a person. A person's `birth` date will never be after
148
+ their `death` date.
149
+
150
+ `death` denotes the death date of a natural person or dissolution date of a
151
+ non-natural legal person identified in the document. There can only be one
152
+ `death` date linked to a single person and all `death` dates must be linked to a
153
+ person. A person's `death` date will never be before their `birth` date.
154
+ """
155
+
156
+ value: str
157
+ """The date in ISO 8601 format (YYYY-MM-DD)."""
158
+
159
+
160
+ class ResultDocumentEmailMention(BaseModel):
161
+ """A zero-based, half-open span into the Unicode code point space of input text.
162
+
163
+ All spans are globally laminar and well-nested similar to XML—it is impossible for any two spans to partially overlap; they can only be disjoint, adjacent, or wholly nested. Spans of the exact same type (e.g., segments) will never be duplicated.
164
+
165
+ A span cannot be empty and will never start or end at whitespace.
166
+
167
+ Note that, when using programming languages other than Python (which uses zero-based, half-open, Unicode code point-spaced string indexing), indices may need to be translated accordingly (for example, JavaScript slices into UTF-16 code units instead of Unicode code points).
168
+ """
169
+
170
+ end: int
171
+
172
+ start: int
173
+
174
+
175
+ class ResultDocumentEmail(BaseModel):
176
+ """An email address identified in a document belonging to a legal person.
177
+
178
+ If an email address was mentioned in the document but is not attributable to a legal person, it will not be extracted.
179
+ """
180
+
181
+ address: str
182
+ """The normalized email address."""
183
+
184
+ mentions: List[ResultDocumentEmailMention]
185
+ """
186
+ An array of one or more spans within the document's text where the email address
187
+ is mentioned.
188
+ """
189
+
190
+ person: str
191
+ """The unique identifier of the person that this email address belongs to."""
192
+
193
+
194
+ class ResultDocumentExternalDocumentMention(BaseModel):
195
+ """A zero-based, half-open span into the Unicode code point space of input text.
196
+
197
+ All spans are globally laminar and well-nested similar to XML—it is impossible for any two spans to partially overlap; they can only be disjoint, adjacent, or wholly nested. Spans of the exact same type (e.g., segments) will never be duplicated.
198
+
199
+ A span cannot be empty and will never start or end at whitespace.
200
+
201
+ Note that, when using programming languages other than Python (which uses zero-based, half-open, Unicode code point-spaced string indexing), indices may need to be translated accordingly (for example, JavaScript slices into UTF-16 code units instead of Unicode code points).
202
+ """
203
+
204
+ end: int
205
+
206
+ start: int
207
+
208
+
209
+ class ResultDocumentExternalDocumentName(BaseModel):
210
+ """The span of the segment within the document's text."""
211
+
212
+ end: int
213
+
214
+ start: int
215
+
216
+
217
+ class ResultDocumentExternalDocumentPinpoint(BaseModel):
218
+ """A zero-based, half-open span into the Unicode code point space of input text.
219
+
220
+ All spans are globally laminar and well-nested similar to XML—it is impossible for any two spans to partially overlap; they can only be disjoint, adjacent, or wholly nested. Spans of the exact same type (e.g., segments) will never be duplicated.
221
+
222
+ A span cannot be empty and will never start or end at whitespace.
223
+
224
+ Note that, when using programming languages other than Python (which uses zero-based, half-open, Unicode code point-spaced string indexing), indices may need to be translated accordingly (for example, JavaScript slices into UTF-16 code units instead of Unicode code points).
225
+ """
226
+
227
+ end: int
228
+
229
+ start: int
230
+
231
+
232
+ class ResultDocumentExternalDocument(BaseModel):
233
+ """A document identified within another document."""
234
+
235
+ id: str
236
+ """
237
+ The unique identifier of the external document in the format `exd:{index}` where
238
+ `{index}` is a non-negative incrementing integer starting from zero.
239
+ """
240
+
241
+ jurisdiction: Optional[str] = None
242
+ """
243
+ A jurisdiction code representing a country (via an initial country code) and,
244
+ optionally, a subdivision within that country (via a subsequent subdivision code
245
+ prefixed by a hyphen).
246
+
247
+ All 249 ISO 3166-1 alpha-2 country codes are representable in addition to
248
+ special `INT` and `EU` codes for international and European Union law,
249
+ respectively.
250
+
251
+ All 5,046 ISO 3166-2 codes are also representable in addition to a special `FED`
252
+ code for federal law.
253
+ """
254
+
255
+ mentions: List[ResultDocumentExternalDocumentMention]
256
+ """
257
+ An array of one or more spans within the document's text where the external
258
+ document is mentioned by name, for example, 'the US Constitution' in 'the Second
259
+ Amendment to the US Constitution protects freedom of speech'.
260
+ """
261
+
262
+ name: ResultDocumentExternalDocumentName
263
+ """The span of the segment within the document's text."""
264
+
265
+ pinpoints: List[ResultDocumentExternalDocumentPinpoint]
266
+ """
267
+ An array of spans within the document's text where specific parts of the
268
+ external document are referenced, for example, 'Section 2' in 'as defined in
269
+ Section 2 of the US Constitution'.
270
+ """
271
+
272
+ reception: Literal["positive", "mixed", "negative", "neutral"]
273
+ """
274
+ The sentiment of the document towards the external document, being one of
275
+ `positive`, `mixed`, `negative`, or `neutral`.
276
+
277
+ `positive` indicates that the document expresses a favorable view of the
278
+ external document whether by endorsing or approving it.
279
+
280
+ `mixed` indicates that the document expresses both favorable and unfavorable
281
+ views of the external document, for example, by affirming parts of it and
282
+ disapproving others.
283
+
284
+ `negative` indicates that the document expresses an unfavorable view of the
285
+ external document whether by criticizing, repealing, overruling, or explicitly
286
+ contradicting it.
287
+
288
+ `neutral` indicates that the document references the external document without
289
+ expressing any particular sentiment towards it.
290
+ """
291
+
292
+ type: Literal["statute", "regulation", "decision", "contract", "other"]
293
+ """
294
+ The type of the external document, being one of `statute`, `regulation`,
295
+ `decision`, `contract`, or `other`.
296
+
297
+ `statute` denotes primary legislation such as acts, bills, codes, and
298
+ constitutions.
299
+
300
+ `regulation` denotes secondary legislation such as rules, statutory instruments,
301
+ and ordinances.
302
+
303
+ `decision` denotes judicial or quasi-judicial decisions such as court judgments,
304
+ judicial opinions, and tribunal rulings.
305
+
306
+ `other` is used for all other types of legal documents that do not fit into any
307
+ of the predefined types.
308
+ """
309
+
310
+
311
+ class ResultDocumentHeading(BaseModel):
312
+ """A zero-based, half-open span into the Unicode code point space of input text.
313
+
314
+ All spans are globally laminar and well-nested similar to XML—it is impossible for any two spans to partially overlap; they can only be disjoint, adjacent, or wholly nested. Spans of the exact same type (e.g., segments) will never be duplicated.
315
+
316
+ A span cannot be empty and will never start or end at whitespace.
317
+
318
+ Note that, when using programming languages other than Python (which uses zero-based, half-open, Unicode code point-spaced string indexing), indices may need to be translated accordingly (for example, JavaScript slices into UTF-16 code units instead of Unicode code points).
319
+ """
320
+
321
+ end: int
322
+
323
+ start: int
324
+
325
+
326
+ class ResultDocumentIDNumberMention(BaseModel):
327
+ """A zero-based, half-open span into the Unicode code point space of input text.
328
+
329
+ All spans are globally laminar and well-nested similar to XML—it is impossible for any two spans to partially overlap; they can only be disjoint, adjacent, or wholly nested. Spans of the exact same type (e.g., segments) will never be duplicated.
330
+
331
+ A span cannot be empty and will never start or end at whitespace.
332
+
333
+ Note that, when using programming languages other than Python (which uses zero-based, half-open, Unicode code point-spaced string indexing), indices may need to be translated accordingly (for example, JavaScript slices into UTF-16 code units instead of Unicode code points).
334
+ """
335
+
336
+ end: int
337
+
338
+ start: int
339
+
340
+
341
+ class ResultDocumentIDNumber(BaseModel):
342
+ """An identification number mentioned in a document belonging to a legal person.
343
+
344
+ If an identification number was mentioned in the document but is not attributable to a legal person, it will not be extracted.
345
+ """
346
+
347
+ mentions: List[ResultDocumentIDNumberMention]
348
+ """
349
+ An array of one or more spans within the document's text where the
350
+ identification number is mentioned.
351
+ """
352
+
353
+ number: str
354
+ """The identification number."""
355
+
356
+ person: str
357
+ """The unique identifier of the person that this identification number belongs to."""
358
+
359
+
360
+ class ResultDocumentJunk(BaseModel):
361
+ """A zero-based, half-open span into the Unicode code point space of input text.
362
+
363
+ All spans are globally laminar and well-nested similar to XML—it is impossible for any two spans to partially overlap; they can only be disjoint, adjacent, or wholly nested. Spans of the exact same type (e.g., segments) will never be duplicated.
364
+
365
+ A span cannot be empty and will never start or end at whitespace.
366
+
367
+ Note that, when using programming languages other than Python (which uses zero-based, half-open, Unicode code point-spaced string indexing), indices may need to be translated accordingly (for example, JavaScript slices into UTF-16 code units instead of Unicode code points).
368
+ """
369
+
370
+ end: int
371
+
372
+ start: int
373
+
374
+
375
+ class ResultDocumentLocationMention(BaseModel):
376
+ """A zero-based, half-open span into the Unicode code point space of input text.
377
+
378
+ All spans are globally laminar and well-nested similar to XML—it is impossible for any two spans to partially overlap; they can only be disjoint, adjacent, or wholly nested. Spans of the exact same type (e.g., segments) will never be duplicated.
379
+
380
+ A span cannot be empty and will never start or end at whitespace.
381
+
382
+ Note that, when using programming languages other than Python (which uses zero-based, half-open, Unicode code point-spaced string indexing), indices may need to be translated accordingly (for example, JavaScript slices into UTF-16 code units instead of Unicode code points).
383
+ """
384
+
385
+ end: int
386
+
387
+ start: int
388
+
389
+
390
+ class ResultDocumentLocationName(BaseModel):
391
+ """The span of the segment within the document's text."""
392
+
393
+ end: int
394
+
395
+ start: int
396
+
397
+
398
+ class ResultDocumentLocation(BaseModel):
399
+ """A location identified within a document."""
400
+
401
+ id: str
402
+ """
403
+ The unique identifier of the location in the format `loc:{index}` where
404
+ `{index}` is a non-negative incrementing integer starting from zero.
405
+ """
406
+
407
+ mentions: List[ResultDocumentLocationMention]
408
+ """
409
+ An array of one or more spans within the document's text where the location is
410
+ mentioned.
411
+ """
412
+
413
+ name: ResultDocumentLocationName
414
+ """The span of the segment within the document's text."""
415
+
416
+ parent: Optional[str] = None
417
+ """
418
+ A unique identifier for a location in the format `loc:{index}` where `{index}`
419
+ is a non-negative incrementing integer starting from zero.
420
+ """
421
+
422
+ type: Literal["country", "state", "city", "address", "other"]
423
+ """
424
+ The type of the location, being one of `country`, `state`, `city`, `address`, or
425
+ `other`.
426
+ """
427
+
428
+
429
+ class ResultDocumentPersonMention(BaseModel):
430
+ """A zero-based, half-open span into the Unicode code point space of input text.
431
+
432
+ All spans are globally laminar and well-nested similar to XML—it is impossible for any two spans to partially overlap; they can only be disjoint, adjacent, or wholly nested. Spans of the exact same type (e.g., segments) will never be duplicated.
433
+
434
+ A span cannot be empty and will never start or end at whitespace.
435
+
436
+ Note that, when using programming languages other than Python (which uses zero-based, half-open, Unicode code point-spaced string indexing), indices may need to be translated accordingly (for example, JavaScript slices into UTF-16 code units instead of Unicode code points).
437
+ """
438
+
439
+ end: int
440
+
441
+ start: int
442
+
443
+
444
+ class ResultDocumentPersonName(BaseModel):
445
+ """The span of the segment within the document's text."""
446
+
447
+ end: int
448
+
449
+ start: int
450
+
451
+
452
+ class ResultDocumentPerson(BaseModel):
453
+ """A legal person identified in a document."""
454
+
455
+ id: str
456
+ """
457
+ The unique identifier of the person in the format `per:{index}` where `{index}`
458
+ is a non-negative incrementing integer starting from zero.
459
+ """
460
+
461
+ mentions: List[ResultDocumentPersonMention]
462
+ """
463
+ An array of one or more spans within the document's text where the person is
464
+ mentioned.
465
+ """
466
+
467
+ name: ResultDocumentPersonName
468
+ """The span of the segment within the document's text."""
469
+
470
+ parent: Optional[str] = None
471
+ """
472
+ A unique identifier for a legal person in the format `per:{index}` where
473
+ `{index}` is a non-negative incrementing integer starting from zero.
474
+ """
475
+
476
+ residence: Optional[str] = None
477
+ """
478
+ A unique identifier for a location in the format `loc:{index}` where `{index}`
479
+ is a non-negative incrementing integer starting from zero.
480
+ """
481
+
482
+ role: Literal[
483
+ "plaintiff",
484
+ "petitioner",
485
+ "applicant",
486
+ "appellant",
487
+ "appellee",
488
+ "claimant",
489
+ "complainant",
490
+ "defendant",
491
+ "respondent",
492
+ "prior_authority",
493
+ "prosecutor",
494
+ "defense_counsel",
495
+ "amicus",
496
+ "intervener",
497
+ "borrower",
498
+ "lender",
499
+ "guarantor",
500
+ "lessee",
501
+ "lessor",
502
+ "employer",
503
+ "employee",
504
+ "licensor",
505
+ "licensee",
506
+ "franchisor",
507
+ "franchisee",
508
+ "buyer",
509
+ "seller",
510
+ "contractor",
511
+ "shareholder",
512
+ "joint_venturer",
513
+ "investor",
514
+ "insurer",
515
+ "insured",
516
+ "enacting_authority",
517
+ "empowered_authority",
518
+ "settlor",
519
+ "trustee",
520
+ "beneficiary",
521
+ "debater",
522
+ "director",
523
+ "governing_jurisdiction",
524
+ "clerk",
525
+ "witness",
526
+ "other",
527
+ "non_party",
528
+ ]
529
+ """The role of the person in relation to the subject of the document.
530
+
531
+ The following roles are currently supported: | | | | ------------------------ |
532
+ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
533
+ | | `plaintiff` | A party initiating the case that is the subject of the
534
+ document. | | `petitioner` | A party initiating the petition that is the subject
535
+ of the document. | | `applicant` | A party initiating the application that is
536
+ the subject of the document. | | `appellant` | A party appealing the decision
537
+ that is the subject of the document. | | `appellee` | A party responding to the
538
+ appeal that is the subject of the document if they are explicitly referred to as
539
+ an 'appellee'. | | `claimant` | A party making a claim in the case that is the
540
+ subject of the document. | | `complainant` | A party making a complaint in the
541
+ case that is the subject of the document. | | `defendant` | A party defending
542
+ against the case that is the subject of the document. | | `respondent` | A party
543
+ responding to the petition, appeal, or application that is the subject of the
544
+ document. | | `prior_authority` | An authority (e.g., judge, tribunal, court)
545
+ that made a prior decision in the case that is the subject of the document. Both
546
+ individual judges and courts should be annotated with this role where
547
+ applicable. This is not to be used for authorities cited as precedent, only for
548
+ those that made prior decisions in the same case. | | `prosecutor` | A lawyer
549
+ prosecuting the case that is the subject of the document. | | `defense_counsel`
550
+ | A lawyer defending the case that is the subject of the document. | | `amicus`
551
+ | A party filing an amicus curiae brief in the case that is the subject of the
552
+ document. | | `intervener` | A party attempting to or that has intervened in the
553
+ case that is the subject of the document. | | `borrower` | A party borrowing
554
+ money or other assets under the agreement that is the subject of the document,
555
+ including 'mortgagors' and 'debtors'. | | `lender` | A party lending money or
556
+ other assets under the agreement that is the subject of the document, including
557
+ 'mortgagees' and 'creditors'. | | `guarantor` | A party guaranteeing obligations
558
+ under the agreement that is the subject of the document, including 'sureties'. |
559
+ | `lessee` | A party leasing goods or services under the agreement that is the
560
+ subject of the document, including 'tenants'. | | `lessor` | A party leasing
561
+ goods or services under the agreement that is the subject of the document,
562
+ including 'landlords'. | | `employer` | A party employing personnel under the
563
+ agreement that is the subject of the document. | | `employee` | A party employed
564
+ under the agreement that is the subject of the document. | | `licensor` | A
565
+ party licensing intellectual property or other rights under the agreement that
566
+ are the subject of the document. | | `licensee` | A party licensed to use
567
+ intellectual property or other rights under the agreement that are the subject
568
+ of the document. | | `franchisor` | A party granting a franchise under the
569
+ agreement that is the subject of the document. | | `franchisee` | A party
570
+ granted a franchise under the agreement that is the subject of the document. | |
571
+ `buyer` | A party purchasing goods or services under the agreement that is the
572
+ subject of the document, including 'purchasers', 'customers', and 'clients'. | |
573
+ `seller` | A party selling or providing goods or services under the agreement
574
+ that is the subject of the document, including 'Vendors', 'Suppliers', and
575
+ 'Service Providers' (where such parties are actually providing goods or services
576
+ under the agreement). | | `contractor` | A party contracted to perform work or
577
+ services under the agreement that is the subject of the document, including
578
+ 'consultants'. | | `shareholder` | A party holding shares or equity under the
579
+ agreement that is the subject of the document. | | `joint_venturer` | A party
580
+ participating in a joint venture under the agreement that is the subject of the
581
+ document. | | `investor` | A party investing money or assets under the agreement
582
+ that is the subject of the document. | | `insurer` | A party providing insurance
583
+ under the agreement that is the subject of the document. | | `insured` | A party
584
+ insured under the agreement that is the subject of the document. | | `settlor` |
585
+ A party establishing the trust that is the subject of the document. | |
586
+ `trustee` | A party managing the trust that is the subject of the document. | |
587
+ `beneficiary` | A party benefiting from the trust that is the subject of the
588
+ document. | | `enacting_authority` | An authority (e.g., legislature, regulator,
589
+ Minister/Secretary, President/Prime Minister, tribunal, court, judge) giving
590
+ legal effect to or authorizing the document. All relevant individuals and bodies
591
+ should be annotated with this role where applicable. | | `empowered_authority` |
592
+ An authority (e.g., government agency, regulator, Minister/Secretary,
593
+ President/Prime Minister, tribunal, court) empowered by the document to carry
594
+ out functions or duties. | | `debater` | A person participating in the debate
595
+ that is the subject of the document. | | `governing_jurisdiction` | The
596
+ jurisdiction whose laws govern the document. | | `director` | A director or
597
+ other officer of a corporate legal person mentioned in the document. | | `clerk`
598
+ | A clerk, notary, or other official certifying, witnessing, filing, recording,
599
+ registering, or otherwise administering the document. | | `witness` | A witness
600
+ witnessing the signing of the document, or whose testimony is part of the case
601
+ that is the subject of the document. | | `other` | A party to the case,
602
+ agreement, legislation, or regulation that is the subject of the document that
603
+ does not fit into any of the other roles. | | `non_party` | A legal person
604
+ mentioned in the document that is not a party to the case, agreement,
605
+ legislation, or regulation that is the subject of the document. |
606
+ """
607
+
608
+ type: Literal["natural", "corporate", "politic"]
609
+ """
610
+ The legal entity type of the person, being one of `natural`, `corporate`, or
611
+ `politic`.
612
+
613
+ `natural` denotes a human being in their capacity as a natural legal person,
614
+ including when representing unincorporated entities such as partnerships and
615
+ trusts.
616
+
617
+ `corporate` denotes a body corporate such as a company, incorporated
618
+ partnership, or statutory corporation.
619
+
620
+ `politic` denotes a body politic such as a court, state, government, or
621
+ intergovernmental organization.
622
+ """
623
+
624
+
625
+ class ResultDocumentPhoneNumberMention(BaseModel):
626
+ """A zero-based, half-open span into the Unicode code point space of input text.
627
+
628
+ All spans are globally laminar and well-nested similar to XML—it is impossible for any two spans to partially overlap; they can only be disjoint, adjacent, or wholly nested. Spans of the exact same type (e.g., segments) will never be duplicated.
629
+
630
+ A span cannot be empty and will never start or end at whitespace.
631
+
632
+ Note that, when using programming languages other than Python (which uses zero-based, half-open, Unicode code point-spaced string indexing), indices may need to be translated accordingly (for example, JavaScript slices into UTF-16 code units instead of Unicode code points).
633
+ """
634
+
635
+ end: int
636
+
637
+ start: int
638
+
639
+
640
+ class ResultDocumentPhoneNumber(BaseModel):
641
+ """A valid phone number identified in a document belonging to a legal person.
642
+
643
+ If a phone number was mentioned in the document but is not valid, possible, or attributable to a legal person, it will not be extracted.
644
+ """
645
+
646
+ mentions: List[ResultDocumentPhoneNumberMention]
647
+ """
648
+ An array of one or more spans within the document's text where the phone number
649
+ is mentioned.
650
+ """
651
+
652
+ number: str
653
+ """
654
+ The normalized phone number in E.123 international notation conforming with
655
+ local conventions on the use of spaces and hyphens as separators.
656
+ """
657
+
658
+ person: str
659
+ """The unique identifier of the person that this phone number belongs to."""
660
+
661
+
662
+ class ResultDocumentQuoteSpan(BaseModel):
663
+ """The span of the segment within the document's text."""
664
+
665
+ end: int
666
+
667
+ start: int
668
+
669
+
670
+ class ResultDocumentQuote(BaseModel):
671
+ """A quotation within a document."""
672
+
673
+ amending: bool
674
+ """
675
+ Whether the quote is being used to amend or modify content, typically in other
676
+ documents.
677
+ """
678
+
679
+ source_document: Optional[str] = None
680
+ """
681
+ A unique identifier for an external document in the format `exd:{index}` where
682
+ `{index}` is a non-negative incrementing integer starting from zero.
683
+ """
684
+
685
+ source_person: Optional[str] = None
686
+ """
687
+ A unique identifier for a legal person in the format `per:{index}` where
688
+ `{index}` is a non-negative incrementing integer starting from zero.
689
+ """
690
+
691
+ source_segment: Optional[str] = None
692
+ """
693
+ A unique identifier for a segment in the format `seg:{index}` where `{index}` is
694
+ a non-negative incrementing integer starting from zero.
695
+ """
696
+
697
+ span: ResultDocumentQuoteSpan
698
+ """The span of the segment within the document's text."""
699
+
700
+
701
+ class ResultDocumentSegmentCode(BaseModel):
702
+ """A zero-based, half-open span into the Unicode code point space of input text.
703
+
704
+ All spans are globally laminar and well-nested similar to XML—it is impossible for any two spans to partially overlap; they can only be disjoint, adjacent, or wholly nested. Spans of the exact same type (e.g., segments) will never be duplicated.
705
+
706
+ A span cannot be empty and will never start or end at whitespace.
707
+
708
+ Note that, when using programming languages other than Python (which uses zero-based, half-open, Unicode code point-spaced string indexing), indices may need to be translated accordingly (for example, JavaScript slices into UTF-16 code units instead of Unicode code points).
709
+ """
710
+
711
+ end: int
712
+
713
+ start: int
714
+
715
+
716
+ class ResultDocumentSegmentSpan(BaseModel):
717
+ """The span of the segment within the document's text."""
718
+
719
+ end: int
720
+
721
+ start: int
722
+
723
+
724
+ class ResultDocumentSegmentTitle(BaseModel):
725
+ """A zero-based, half-open span into the Unicode code point space of input text.
726
+
727
+ All spans are globally laminar and well-nested similar to XML—it is impossible for any two spans to partially overlap; they can only be disjoint, adjacent, or wholly nested. Spans of the exact same type (e.g., segments) will never be duplicated.
728
+
729
+ A span cannot be empty and will never start or end at whitespace.
730
+
731
+ Note that, when using programming languages other than Python (which uses zero-based, half-open, Unicode code point-spaced string indexing), indices may need to be translated accordingly (for example, JavaScript slices into UTF-16 code units instead of Unicode code points).
732
+ """
733
+
734
+ end: int
735
+
736
+ start: int
737
+
738
+
739
+ class ResultDocumentSegmentTypeName(BaseModel):
740
+ """A zero-based, half-open span into the Unicode code point space of input text.
741
+
742
+ All spans are globally laminar and well-nested similar to XML—it is impossible for any two spans to partially overlap; they can only be disjoint, adjacent, or wholly nested. Spans of the exact same type (e.g., segments) will never be duplicated.
743
+
744
+ A span cannot be empty and will never start or end at whitespace.
745
+
746
+ Note that, when using programming languages other than Python (which uses zero-based, half-open, Unicode code point-spaced string indexing), indices may need to be translated accordingly (for example, JavaScript slices into UTF-16 code units instead of Unicode code points).
747
+ """
748
+
749
+ end: int
750
+
751
+ start: int
752
+
753
+
754
+ class ResultDocumentSegment(BaseModel):
755
+ """
756
+ A segment within the document representing a structurally distinct portion of the document's content.
757
+ """
758
+
759
+ id: str
760
+ """
761
+ The unique identifier of the segment in the format `seg:{index}` where `{index}`
762
+ is a non-negative incrementing integer starting from zero.
763
+ """
764
+
765
+ category: Literal["front_matter", "scope", "main", "annotation", "back_matter", "other"]
766
+ """
767
+ The functional 'category' of the segment within the document, being one of
768
+ `front_matter`, `scope`, `main`, `annotation`, `back_matter`, or `other`.
769
+
770
+ `front_matter` denotes non-operative contextualizing content occurring at the
771
+ start of a document such as a preamble or recitals.
772
+
773
+ `scope` denotes operative content defining the application or interpretation of
774
+ a document such as definition sections and governing law clauses.
775
+
776
+ `main` denotes operative, non-scopal content.
777
+
778
+ `annotation` denotes non-operative annotative content providing explanatory or
779
+ referential information such as commentary, footnotes, and endnotes.
780
+
781
+ `back_matter` denotes non-operative contextualizing content occurring at the end
782
+ of a document such as authority statements.
783
+
784
+ `other` denotes content that does not fit into any of the other categories.
785
+ """
786
+
787
+ code: Optional[ResultDocumentSegmentCode] = None
788
+ """A zero-based, half-open span into the Unicode code point space of input text.
789
+
790
+ All spans are globally laminar and well-nested similar to XML—it is impossible
791
+ for any two spans to partially overlap; they can only be disjoint, adjacent, or
792
+ wholly nested. Spans of the exact same type (e.g., segments) will never be
793
+ duplicated.
794
+
795
+ A span cannot be empty and will never start or end at whitespace.
796
+
797
+ Note that, when using programming languages other than Python (which uses
798
+ zero-based, half-open, Unicode code point-spaced string indexing), indices may
799
+ need to be translated accordingly (for example, JavaScript slices into UTF-16
800
+ code units instead of Unicode code points).
801
+ """
802
+
803
+ kind: Literal["container", "unit", "item", "figure"]
804
+ """
805
+ The structural 'kind' of the segment, being one of `container`, `unit`, `item`,
806
+ or `figure`.
807
+
808
+ A `container` is a structural or semantic grouping of content such as a chapter.
809
+ It can contain segments of any kind or none at all.
810
+
811
+ A `unit` is a single syntactically independent unit of text such as a paragraph.
812
+ It can only contain `item`s and `figure`s.
813
+
814
+ An `item` is a syntactically subordinate unit of text such as an item in a
815
+ run-in list. It can only contain other `item`s. Note that an `item` is
816
+ conceptually distinct from a list item—it is perfectly possible to encounter
817
+ list items that are syntactically independent of their surrounding items just as
818
+ it is possible to encounter dependent clauses that do not appear as part of a
819
+ list.
820
+
821
+ A `figure` is a visually structured or tabular unit of content such as a
822
+ diagram, equation, or table. It cannot contain segments.
823
+ """
824
+
825
+ parent: Optional[str] = None
826
+ """
827
+ A unique identifier for a segment in the format `seg:{index}` where `{index}` is
828
+ a non-negative incrementing integer starting from zero.
829
+ """
830
+
831
+ span: ResultDocumentSegmentSpan
832
+ """The span of the segment within the document's text."""
833
+
834
+ title: Optional[ResultDocumentSegmentTitle] = None
835
+ """A zero-based, half-open span into the Unicode code point space of input text.
836
+
837
+ All spans are globally laminar and well-nested similar to XML—it is impossible
838
+ for any two spans to partially overlap; they can only be disjoint, adjacent, or
839
+ wholly nested. Spans of the exact same type (e.g., segments) will never be
840
+ duplicated.
841
+
842
+ A span cannot be empty and will never start or end at whitespace.
843
+
844
+ Note that, when using programming languages other than Python (which uses
845
+ zero-based, half-open, Unicode code point-spaced string indexing), indices may
846
+ need to be translated accordingly (for example, JavaScript slices into UTF-16
847
+ code units instead of Unicode code points).
848
+ """
849
+
850
+ type: Optional[
851
+ Literal[
852
+ "title",
853
+ "book",
854
+ "part",
855
+ "chapter",
856
+ "subchapter",
857
+ "division",
858
+ "subdivision",
859
+ "subpart",
860
+ "subtitle",
861
+ "table_of_contents",
862
+ "article",
863
+ "section",
864
+ "regulation",
865
+ "rule",
866
+ "clause",
867
+ "paragraph",
868
+ "subarticle",
869
+ "subsection",
870
+ "subregulation",
871
+ "subrule",
872
+ "subclause",
873
+ "subparagraph",
874
+ "item",
875
+ "subitem",
876
+ "point",
877
+ "indent",
878
+ "schedule",
879
+ "annex",
880
+ "appendix",
881
+ "exhibit",
882
+ "recital",
883
+ "signature",
884
+ "note",
885
+ "figure",
886
+ "table",
887
+ "formula",
888
+ ]
889
+ ] = None
890
+ """
891
+ The addressable 'type' of the segment within the document's referential scheme
892
+ and hierarchy, whether defined explicitly (e.g., by headings, such as
893
+ 'Section 2. Definitions'), implicitly (e.g., by way of reference, such as 'as
894
+ defined in Section 2'), or by convention (e.g., [42] in a judgment often denotes
895
+ a `paragraph`, independent provisions in statute are often `section`s, etc.). If
896
+ the type is not known or not applicable, it will be set to `null`.
897
+
898
+ Note that, although many segment types may coincide with syntactic constructs,
899
+ they should be thought of purely as distinct formal citable units. Most
900
+ paragraphs (in the syntactic sense) will not have the `paragraph` type, for
901
+ example. That type is reserved for segments that would formally be cited as a
902
+ 'Paragraph' within the document's referential scheme.
903
+
904
+ The following types are currently supported: `title`, `book`, `part`, `chapter`,
905
+ `subchapter`, `division`, `subdivision`, `subpart`, `subtitle`,
906
+ `table_of_contents`, `article`, `section`, `regulation`, `rule`, `clause`,
907
+ `paragraph`, `subarticle`, `subsection`, `subregulation`, `subrule`,
908
+ `subclause`, `subparagraph`, `item`, `subitem`, `point`, `indent`, `schedule`,
909
+ `annex`, `appendix`, `exhibit`, `recital`, `signature`, `note`, `figure`,
910
+ `table`, and `formula`.
911
+
912
+ The `title`, `book`, `part`, `chapter`, `subchapter`, `division`, `subdivision`,
913
+ `subpart`, `subtitle`, and `table_of_contents` types are exclusive to the
914
+ `container` kind.
915
+
916
+ The `figure` kind only supports the `figure`, `table`, and `formula` types, all
917
+ of which are exclusive to it.
918
+ """
919
+
920
+ type_name: Optional[ResultDocumentSegmentTypeName] = None
921
+ """A zero-based, half-open span into the Unicode code point space of input text.
922
+
923
+ All spans are globally laminar and well-nested similar to XML—it is impossible
924
+ for any two spans to partially overlap; they can only be disjoint, adjacent, or
925
+ wholly nested. Spans of the exact same type (e.g., segments) will never be
926
+ duplicated.
927
+
928
+ A span cannot be empty and will never start or end at whitespace.
929
+
930
+ Note that, when using programming languages other than Python (which uses
931
+ zero-based, half-open, Unicode code point-spaced string indexing), indices may
932
+ need to be translated accordingly (for example, JavaScript slices into UTF-16
933
+ code units instead of Unicode code points).
934
+ """
935
+
936
+
937
+ class ResultDocumentSubtitle(BaseModel):
938
+ """A zero-based, half-open span into the Unicode code point space of input text.
939
+
940
+ All spans are globally laminar and well-nested similar to XML—it is impossible for any two spans to partially overlap; they can only be disjoint, adjacent, or wholly nested. Spans of the exact same type (e.g., segments) will never be duplicated.
941
+
942
+ A span cannot be empty and will never start or end at whitespace.
943
+
944
+ Note that, when using programming languages other than Python (which uses zero-based, half-open, Unicode code point-spaced string indexing), indices may need to be translated accordingly (for example, JavaScript slices into UTF-16 code units instead of Unicode code points).
945
+ """
946
+
947
+ end: int
948
+
949
+ start: int
950
+
951
+
952
+ class ResultDocumentTermMeaning(BaseModel):
953
+ """The span of the segment within the document's text."""
954
+
955
+ end: int
956
+
957
+ start: int
958
+
959
+
960
+ class ResultDocumentTermMention(BaseModel):
961
+ """A zero-based, half-open span into the Unicode code point space of input text.
962
+
963
+ All spans are globally laminar and well-nested similar to XML—it is impossible for any two spans to partially overlap; they can only be disjoint, adjacent, or wholly nested. Spans of the exact same type (e.g., segments) will never be duplicated.
964
+
965
+ A span cannot be empty and will never start or end at whitespace.
966
+
967
+ Note that, when using programming languages other than Python (which uses zero-based, half-open, Unicode code point-spaced string indexing), indices may need to be translated accordingly (for example, JavaScript slices into UTF-16 code units instead of Unicode code points).
968
+ """
969
+
970
+ end: int
971
+
972
+ start: int
973
+
974
+
975
+ class ResultDocumentTermName(BaseModel):
976
+ """The span of the segment within the document's text."""
977
+
978
+ end: int
979
+
980
+ start: int
981
+
982
+
983
+ class ResultDocumentTerm(BaseModel):
984
+ """A term assigned a definite meaning within a document."""
985
+
986
+ id: str
987
+ """
988
+ The unique identifier of the term in the format `term:{index}` where `{index}`
989
+ is a non-negative incrementing integer starting from zero.
990
+ """
991
+
992
+ meaning: ResultDocumentTermMeaning
993
+ """The span of the segment within the document's text."""
994
+
995
+ mentions: List[ResultDocumentTermMention]
996
+ """
997
+ An array of spans within the document's text where the term is mentioned outside
998
+ of its definition.
999
+
1000
+ It is possible for the term to have no mentions if, outside of its definition,
1001
+ it is never referred to in the document.
1002
+ """
1003
+
1004
+ name: ResultDocumentTermName
1005
+ """The span of the segment within the document's text."""
1006
+
1007
+
1008
+ class ResultDocumentTitle(BaseModel):
1009
+ """A zero-based, half-open span into the Unicode code point space of input text.
1010
+
1011
+ All spans are globally laminar and well-nested similar to XML—it is impossible for any two spans to partially overlap; they can only be disjoint, adjacent, or wholly nested. Spans of the exact same type (e.g., segments) will never be duplicated.
1012
+
1013
+ A span cannot be empty and will never start or end at whitespace.
1014
+
1015
+ Note that, when using programming languages other than Python (which uses zero-based, half-open, Unicode code point-spaced string indexing), indices may need to be translated accordingly (for example, JavaScript slices into UTF-16 code units instead of Unicode code points).
1016
+ """
1017
+
1018
+ end: int
1019
+
1020
+ start: int
1021
+
1022
+
1023
+ class ResultDocumentWebsiteMention(BaseModel):
1024
+ """A zero-based, half-open span into the Unicode code point space of input text.
1025
+
1026
+ All spans are globally laminar and well-nested similar to XML—it is impossible for any two spans to partially overlap; they can only be disjoint, adjacent, or wholly nested. Spans of the exact same type (e.g., segments) will never be duplicated.
1027
+
1028
+ A span cannot be empty and will never start or end at whitespace.
1029
+
1030
+ Note that, when using programming languages other than Python (which uses zero-based, half-open, Unicode code point-spaced string indexing), indices may need to be translated accordingly (for example, JavaScript slices into UTF-16 code units instead of Unicode code points).
1031
+ """
1032
+
1033
+ end: int
1034
+
1035
+ start: int
1036
+
1037
+
1038
+ class ResultDocumentWebsite(BaseModel):
1039
+ """A website identified in a document belonging to a legal person.
1040
+
1041
+ If a website was mentioned in the document but is not attributable to a legal person, it will not be extracted.
1042
+ """
1043
+
1044
+ mentions: List[ResultDocumentWebsiteMention]
1045
+ """
1046
+ An array of one or more spans within the document's text where the website is
1047
+ mentioned (including paths and slugs which are not part of the website's
1048
+ normalized URL).
1049
+ """
1050
+
1051
+ person: str
1052
+ """The unique identifier of the person that this website belongs to."""
1053
+
1054
+ url: str
1055
+ """The normalized URL of the website in the form `https://{host}/`."""
1056
+
1057
+
1058
+ class ResultDocument(BaseModel):
1059
+ """The enriched document."""
1060
+
1061
+ crossreferences: List[ResultDocumentCrossreference]
1062
+ """
1063
+ An array of cross-references within the document pointing to a single segment or
1064
+ a span of segments.
1065
+ """
1066
+
1067
+ dates: List[ResultDocumentDate]
1068
+ """
1069
+ An array of dates identified in the document belonging to one of the following
1070
+ types: `creation`, `signature`, `effective`, `expiry`, `delivery`, `renewal`,
1071
+ `payment`, `birth`, or `death`.
1072
+
1073
+ Only Gregorian dates between the years 1000 and 9999 (inclusive) fitting into
1074
+ one of the supported date types are extractable.
1075
+ """
1076
+
1077
+ emails: List[ResultDocumentEmail]
1078
+ """
1079
+ An array of email addresses identified in the document belonging to legal
1080
+ persons.
1081
+
1082
+ Email addresses mentioned in the document that are not attributable to legal
1083
+ persons will not be extracted.
1084
+ """
1085
+
1086
+ external_documents: List[ResultDocumentExternalDocument]
1087
+ """An array of documents identified within the document."""
1088
+
1089
+ headings: List[ResultDocumentHeading]
1090
+ """An array of spans within the document's text constituting headings."""
1091
+
1092
+ id_numbers: List[ResultDocumentIDNumber]
1093
+ """
1094
+ An array of identification numbers identified in the document belonging to legal
1095
+ persons.
1096
+
1097
+ Identification numbers mentioned in the document that are not attributable to
1098
+ legal persons will not be extracted.
1099
+ """
1100
+
1101
+ junk: List[ResultDocumentJunk]
1102
+ """
1103
+ An array of spans within the document's text constituting non-operative,
1104
+ non-substantive 'junk' content such as headers, footers, page numbers, and OCR
1105
+ artifacts.
1106
+ """
1107
+
1108
+ jurisdiction: Optional[str] = None
1109
+ """
1110
+ A jurisdiction code representing a country (via an initial country code) and,
1111
+ optionally, a subdivision within that country (via a subsequent subdivision code
1112
+ prefixed by a hyphen).
1113
+
1114
+ All 249 ISO 3166-1 alpha-2 country codes are representable in addition to
1115
+ special `INT` and `EU` codes for international and European Union law,
1116
+ respectively.
1117
+
1118
+ All 5,046 ISO 3166-2 codes are also representable in addition to a special `FED`
1119
+ code for federal law.
1120
+ """
1121
+
1122
+ locations: List[ResultDocumentLocation]
1123
+ """An array of locations identified in the document."""
1124
+
1125
+ persons: List[ResultDocumentPerson]
1126
+ """An array of legal persons identified in the document."""
1127
+
1128
+ phone_numbers: List[ResultDocumentPhoneNumber]
1129
+ """
1130
+ An array of valid phone numbers identified in the document belonging to legal
1131
+ persons.
1132
+
1133
+ Phone numbers mentioned in the document that are not valid, possible, or
1134
+ attributable to legal persons will not be extracted.
1135
+ """
1136
+
1137
+ quotes: List[ResultDocumentQuote]
1138
+ """An array of quotations within the document."""
1139
+
1140
+ segments: List[ResultDocumentSegment]
1141
+ """
1142
+ An array of segments within the document representing structurally distinct
1143
+ portions of its content.
1144
+ """
1145
+
1146
+ subtitle: Optional[ResultDocumentSubtitle] = None
1147
+ """A zero-based, half-open span into the Unicode code point space of input text.
1148
+
1149
+ All spans are globally laminar and well-nested similar to XML—it is impossible
1150
+ for any two spans to partially overlap; they can only be disjoint, adjacent, or
1151
+ wholly nested. Spans of the exact same type (e.g., segments) will never be
1152
+ duplicated.
1153
+
1154
+ A span cannot be empty and will never start or end at whitespace.
1155
+
1156
+ Note that, when using programming languages other than Python (which uses
1157
+ zero-based, half-open, Unicode code point-spaced string indexing), indices may
1158
+ need to be translated accordingly (for example, JavaScript slices into UTF-16
1159
+ code units instead of Unicode code points).
1160
+ """
1161
+
1162
+ terms: List[ResultDocumentTerm]
1163
+ """An array of terms assigned definite meanings within the document."""
1164
+
1165
+ title: Optional[ResultDocumentTitle] = None
1166
+ """A zero-based, half-open span into the Unicode code point space of input text.
1167
+
1168
+ All spans are globally laminar and well-nested similar to XML—it is impossible
1169
+ for any two spans to partially overlap; they can only be disjoint, adjacent, or
1170
+ wholly nested. Spans of the exact same type (e.g., segments) will never be
1171
+ duplicated.
1172
+
1173
+ A span cannot be empty and will never start or end at whitespace.
1174
+
1175
+ Note that, when using programming languages other than Python (which uses
1176
+ zero-based, half-open, Unicode code point-spaced string indexing), indices may
1177
+ need to be translated accordingly (for example, JavaScript slices into UTF-16
1178
+ code units instead of Unicode code points).
1179
+ """
1180
+
1181
+ type: Literal["statute", "regulation", "decision", "contract", "other"]
1182
+ """
1183
+ The type of the document, being one of `statute`, `regulation`, `decision`,
1184
+ `contract`, or `other`.
1185
+
1186
+ `statute` denotes primary legislation such as acts, bills, codes, and
1187
+ constitutions.
1188
+
1189
+ `regulation` denotes secondary legislation such as rules, statutory instruments,
1190
+ and ordinances.
1191
+
1192
+ `decision` denotes judicial or quasi-judicial decisions such as court judgments,
1193
+ judicial opinions, and tribunal rulings.
1194
+
1195
+ `other` is used for all other types of legal documents that do not fit into any
1196
+ of the predefined types.
1197
+ """
1198
+
1199
+ version: Literal["ilgs@1"]
1200
+
1201
+ websites: List[ResultDocumentWebsite]
1202
+ """An array of websites identified in the document belonging to legal persons.
1203
+
1204
+ Websites mentioned in the document that are not attributable to legal persons
1205
+ will not be extracted.
1206
+ """
1207
+
1208
+
1209
+ class Result(BaseModel):
1210
+ """An enriched document alongside its index in the input array of texts."""
1211
+
1212
+ document: ResultDocument
1213
+ """The enriched document."""
1214
+
1215
+ index: int
1216
+ """
1217
+ The index of this document in the input array of texts, starting at `0` (and,
1218
+ therefore, ending at the number of inputs minus `1`).
1219
+ """
1220
+
1221
+
1222
+ class Usage(BaseModel):
1223
+ """Statistics about the usage of resources in the process of enriching the input."""
1224
+
1225
+ input_tokens: int
1226
+ """The total number of tokens inputted to the model."""
1227
+
1228
+
1229
+ class EnrichmentResponse(BaseModel):
1230
+ results: List[Result]
1231
+ """
1232
+ The input documents enriched into version 1.0.0 of the Isaacus Legal Graph
1233
+ Schema (IGLS).
1234
+
1235
+ All spans in an enriched document graph are indexed into the Unicode code point
1236
+ space of a source document. Access to source documents is thus required to
1237
+ resolve spans into text.
1238
+
1239
+ The start and end indices of spans are zero-based (i.e., the first Unicode code
1240
+ point in the document is at index 0) and half-open (i.e., the end index is
1241
+ exclusive).
1242
+
1243
+ All spans are globally laminar and well-nested similar to XML—it is impossible
1244
+ for any two spans to partially overlap; they can only be disjoint, adjacent, or
1245
+ wholly nested.
1246
+
1247
+ Spans of the exact same type (e.g., segments) will never be duplicated.
1248
+
1249
+ Spans cannot be empty and will never start or end at whitespace.
1250
+
1251
+ When using programming languages other than Python (which uses zero-based,
1252
+ half-open, Unicode code point-spaced string indexing), indices may need to be
1253
+ translated accordingly (for example, JavaScript slices into UTF-16 code units
1254
+ instead of Unicode code points).
1255
+ """
1256
+
1257
+ usage: Usage
1258
+ """Statistics about the usage of resources in the process of enriching the input."""