xref: /aosp_15_r20/external/libtextclassifier/native/annotator/entity-data.fbs (revision 993b0882672172b81d12fad7a7ac0c3e5c824a12)
1*993b0882SAndroid Build Coastguard Worker//
2*993b0882SAndroid Build Coastguard Worker// Copyright (C) 2018 The Android Open Source Project
3*993b0882SAndroid Build Coastguard Worker//
4*993b0882SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
5*993b0882SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
6*993b0882SAndroid Build Coastguard Worker// You may obtain a copy of the License at
7*993b0882SAndroid Build Coastguard Worker//
8*993b0882SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
9*993b0882SAndroid Build Coastguard Worker//
10*993b0882SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
11*993b0882SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
12*993b0882SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*993b0882SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
14*993b0882SAndroid Build Coastguard Worker// limitations under the License.
15*993b0882SAndroid Build Coastguard Worker//
16*993b0882SAndroid Build Coastguard Worker
17*993b0882SAndroid Build Coastguard Workernamespace libtextclassifier3.EntityData_.Datetime_;
18*993b0882SAndroid Build Coastguard Workerenum Granularity : int {
19*993b0882SAndroid Build Coastguard Worker  GRANULARITY_UNKNOWN = -1,
20*993b0882SAndroid Build Coastguard Worker  GRANULARITY_YEAR = 0,
21*993b0882SAndroid Build Coastguard Worker  GRANULARITY_MONTH = 1,
22*993b0882SAndroid Build Coastguard Worker  GRANULARITY_WEEK = 2,
23*993b0882SAndroid Build Coastguard Worker  GRANULARITY_DAY = 3,
24*993b0882SAndroid Build Coastguard Worker  GRANULARITY_HOUR = 4,
25*993b0882SAndroid Build Coastguard Worker  GRANULARITY_MINUTE = 5,
26*993b0882SAndroid Build Coastguard Worker  GRANULARITY_SECOND = 6,
27*993b0882SAndroid Build Coastguard Worker}
28*993b0882SAndroid Build Coastguard Worker
29*993b0882SAndroid Build Coastguard Workernamespace libtextclassifier3.EntityData_.Datetime_.DatetimeComponent_;
30*993b0882SAndroid Build Coastguard Workerenum ComponentType : int {
31*993b0882SAndroid Build Coastguard Worker  UNSPECIFIED = 0,
32*993b0882SAndroid Build Coastguard Worker  YEAR = 1,
33*993b0882SAndroid Build Coastguard Worker  MONTH = 2,
34*993b0882SAndroid Build Coastguard Worker  WEEK = 3,
35*993b0882SAndroid Build Coastguard Worker  DAY_OF_WEEK = 4,
36*993b0882SAndroid Build Coastguard Worker  DAY_OF_MONTH = 5,
37*993b0882SAndroid Build Coastguard Worker  HOUR = 6,
38*993b0882SAndroid Build Coastguard Worker  MINUTE = 7,
39*993b0882SAndroid Build Coastguard Worker  SECOND = 8,
40*993b0882SAndroid Build Coastguard Worker  MERIDIEM = 9,
41*993b0882SAndroid Build Coastguard Worker  ZONE_OFFSET = 10,
42*993b0882SAndroid Build Coastguard Worker  DST_OFFSET = 11,
43*993b0882SAndroid Build Coastguard Worker}
44*993b0882SAndroid Build Coastguard Worker
45*993b0882SAndroid Build Coastguard Worker// Enum to identify if the datetime component are relative or absolute.
46*993b0882SAndroid Build Coastguard Workernamespace libtextclassifier3.EntityData_.Datetime_.DatetimeComponent_;
47*993b0882SAndroid Build Coastguard Workerenum RelationType : int {
48*993b0882SAndroid Build Coastguard Worker  RELATION_UNSPECIFIED = 0,
49*993b0882SAndroid Build Coastguard Worker
50*993b0882SAndroid Build Coastguard Worker  // Absolute represents the datetime component that need no further
51*993b0882SAndroid Build Coastguard Worker  // calculation e.g. in a datetime span "21-03-2019" components
52*993b0882SAndroid Build Coastguard Worker  // year=2019, month=3 and day=21 is explicitly mentioned in the span
53*993b0882SAndroid Build Coastguard Worker  ABSOLUTE = 1,
54*993b0882SAndroid Build Coastguard Worker
55*993b0882SAndroid Build Coastguard Worker  // Identify datetime component where datetime expressions are relative.
56*993b0882SAndroid Build Coastguard Worker  // e.g. "three days ago", "2 days after March 1st", "next monday",
57*993b0882SAndroid Build Coastguard Worker  // "last Mondays".
58*993b0882SAndroid Build Coastguard Worker  RELATIVE = 2,
59*993b0882SAndroid Build Coastguard Worker}
60*993b0882SAndroid Build Coastguard Worker
61*993b0882SAndroid Build Coastguard Workernamespace libtextclassifier3.EntityData_.Datetime_;
62*993b0882SAndroid Build Coastguard Workertable DatetimeComponent {
63*993b0882SAndroid Build Coastguard Worker  component_type:DatetimeComponent_.ComponentType = UNSPECIFIED;
64*993b0882SAndroid Build Coastguard Worker  absolute_value:int;
65*993b0882SAndroid Build Coastguard Worker  relative_count:int;
66*993b0882SAndroid Build Coastguard Worker  relation_type:DatetimeComponent_.RelationType = RELATION_UNSPECIFIED;
67*993b0882SAndroid Build Coastguard Worker}
68*993b0882SAndroid Build Coastguard Worker
69*993b0882SAndroid Build Coastguard Workernamespace libtextclassifier3.EntityData_;
70*993b0882SAndroid Build Coastguard Workertable Datetime {
71*993b0882SAndroid Build Coastguard Worker  time_ms_utc:long;
72*993b0882SAndroid Build Coastguard Worker  granularity:Datetime_.Granularity = GRANULARITY_UNKNOWN;
73*993b0882SAndroid Build Coastguard Worker  datetime_component:[Datetime_.DatetimeComponent];
74*993b0882SAndroid Build Coastguard Worker}
75*993b0882SAndroid Build Coastguard Worker
76*993b0882SAndroid Build Coastguard Workernamespace libtextclassifier3.EntityData_.Contact_.AlternativeNameInfo_;
77*993b0882SAndroid Build Coastguard Workerenum AlternativeNameSource : int {
78*993b0882SAndroid Build Coastguard Worker  NONE = 0,
79*993b0882SAndroid Build Coastguard Worker  NAME_CORRECTION_LOG = 1,
80*993b0882SAndroid Build Coastguard Worker}
81*993b0882SAndroid Build Coastguard Worker
82*993b0882SAndroid Build Coastguard Workernamespace libtextclassifier3.EntityData_.Contact_;
83*993b0882SAndroid Build Coastguard Workertable AlternativeNameInfo {
84*993b0882SAndroid Build Coastguard Worker  name:string (shared);
85*993b0882SAndroid Build Coastguard Worker  source:AlternativeNameInfo_.AlternativeNameSource;
86*993b0882SAndroid Build Coastguard Worker}
87*993b0882SAndroid Build Coastguard Worker
88*993b0882SAndroid Build Coastguard Workernamespace libtextclassifier3.EntityData_;
89*993b0882SAndroid Build Coastguard Workertable Contact {
90*993b0882SAndroid Build Coastguard Worker  name:string (shared);
91*993b0882SAndroid Build Coastguard Worker  given_name:string (shared);
92*993b0882SAndroid Build Coastguard Worker  nickname:string (shared);
93*993b0882SAndroid Build Coastguard Worker  email_address:string (shared);
94*993b0882SAndroid Build Coastguard Worker  phone_number:string (shared);
95*993b0882SAndroid Build Coastguard Worker  contact_id:string (shared);
96*993b0882SAndroid Build Coastguard Worker  alternative_name_info:[Contact_.AlternativeNameInfo];
97*993b0882SAndroid Build Coastguard Worker}
98*993b0882SAndroid Build Coastguard Worker
99*993b0882SAndroid Build Coastguard Workernamespace libtextclassifier3.EntityData_;
100*993b0882SAndroid Build Coastguard Workertable App {
101*993b0882SAndroid Build Coastguard Worker  name:string (shared);
102*993b0882SAndroid Build Coastguard Worker  package_name:string (shared);
103*993b0882SAndroid Build Coastguard Worker}
104*993b0882SAndroid Build Coastguard Worker
105*993b0882SAndroid Build Coastguard Worker// The issuer/network of the payment card.
106*993b0882SAndroid Build Coastguard Workernamespace libtextclassifier3.EntityData_.PaymentCard_;
107*993b0882SAndroid Build Coastguard Workerenum CardNetwork : int {
108*993b0882SAndroid Build Coastguard Worker  UNKNOWN_CARD_NETWORK = 0,
109*993b0882SAndroid Build Coastguard Worker  AMEX = 1,
110*993b0882SAndroid Build Coastguard Worker  DINERS_CLUB = 2,
111*993b0882SAndroid Build Coastguard Worker  DISCOVER = 3,
112*993b0882SAndroid Build Coastguard Worker  INTER_PAYMENT = 4,
113*993b0882SAndroid Build Coastguard Worker  JCB = 5,
114*993b0882SAndroid Build Coastguard Worker  MAESTRO = 6,
115*993b0882SAndroid Build Coastguard Worker  MASTERCARD = 7,
116*993b0882SAndroid Build Coastguard Worker  MIR = 8,
117*993b0882SAndroid Build Coastguard Worker  TROY = 9,
118*993b0882SAndroid Build Coastguard Worker  UNIONPAY = 10,
119*993b0882SAndroid Build Coastguard Worker  VISA = 11,
120*993b0882SAndroid Build Coastguard Worker}
121*993b0882SAndroid Build Coastguard Worker
122*993b0882SAndroid Build Coastguard Worker// Details about a payment card.
123*993b0882SAndroid Build Coastguard Workernamespace libtextclassifier3.EntityData_;
124*993b0882SAndroid Build Coastguard Workertable PaymentCard {
125*993b0882SAndroid Build Coastguard Worker  card_network:PaymentCard_.CardNetwork;
126*993b0882SAndroid Build Coastguard Worker
127*993b0882SAndroid Build Coastguard Worker  // The card number.
128*993b0882SAndroid Build Coastguard Worker  card_number:string (shared);
129*993b0882SAndroid Build Coastguard Worker}
130*993b0882SAndroid Build Coastguard Worker
131*993b0882SAndroid Build Coastguard Worker// Details about a flight number.
132*993b0882SAndroid Build Coastguard Workernamespace libtextclassifier3.EntityData_;
133*993b0882SAndroid Build Coastguard Workertable Flight {
134*993b0882SAndroid Build Coastguard Worker  // The IATA or ICAO airline code of the flight number.
135*993b0882SAndroid Build Coastguard Worker  airline_code:string (shared);
136*993b0882SAndroid Build Coastguard Worker
137*993b0882SAndroid Build Coastguard Worker  // The flight number.
138*993b0882SAndroid Build Coastguard Worker  flight_number:string (shared);
139*993b0882SAndroid Build Coastguard Worker}
140*993b0882SAndroid Build Coastguard Worker
141*993b0882SAndroid Build Coastguard Worker// Details about an ISBN number.
142*993b0882SAndroid Build Coastguard Workernamespace libtextclassifier3.EntityData_;
143*993b0882SAndroid Build Coastguard Workertable Isbn {
144*993b0882SAndroid Build Coastguard Worker  // The (normalized) number.
145*993b0882SAndroid Build Coastguard Worker  number:string (shared);
146*993b0882SAndroid Build Coastguard Worker}
147*993b0882SAndroid Build Coastguard Worker
148*993b0882SAndroid Build Coastguard Worker// Details about an IBAN number.
149*993b0882SAndroid Build Coastguard Workernamespace libtextclassifier3.EntityData_;
150*993b0882SAndroid Build Coastguard Workertable Iban {
151*993b0882SAndroid Build Coastguard Worker  // The (normalized) number.
152*993b0882SAndroid Build Coastguard Worker  number:string (shared);
153*993b0882SAndroid Build Coastguard Worker
154*993b0882SAndroid Build Coastguard Worker  // The country code.
155*993b0882SAndroid Build Coastguard Worker  country_code:string (shared);
156*993b0882SAndroid Build Coastguard Worker}
157*993b0882SAndroid Build Coastguard Worker
158*993b0882SAndroid Build Coastguard Worker// The issuer/network of the package tracking number.
159*993b0882SAndroid Build Coastguard Workernamespace libtextclassifier3.EntityData_.ParcelTracking_;
160*993b0882SAndroid Build Coastguard Workerenum Carrier : int {
161*993b0882SAndroid Build Coastguard Worker  UNKNOWN_CARRIER = 0,
162*993b0882SAndroid Build Coastguard Worker  FEDEX = 1,
163*993b0882SAndroid Build Coastguard Worker  UPS = 2,
164*993b0882SAndroid Build Coastguard Worker  DHL = 3,
165*993b0882SAndroid Build Coastguard Worker  USPS = 4,
166*993b0882SAndroid Build Coastguard Worker  ONTRAC = 5,
167*993b0882SAndroid Build Coastguard Worker  LASERSHIP = 6,
168*993b0882SAndroid Build Coastguard Worker  ISRAEL_POST = 7,
169*993b0882SAndroid Build Coastguard Worker  SWISS_POST = 8,
170*993b0882SAndroid Build Coastguard Worker  MSC = 9,
171*993b0882SAndroid Build Coastguard Worker  AMAZON = 10,
172*993b0882SAndroid Build Coastguard Worker  I_PARCEL = 11,
173*993b0882SAndroid Build Coastguard Worker}
174*993b0882SAndroid Build Coastguard Worker
175*993b0882SAndroid Build Coastguard Worker// Details about a tracking number.
176*993b0882SAndroid Build Coastguard Workernamespace libtextclassifier3.EntityData_;
177*993b0882SAndroid Build Coastguard Workertable ParcelTracking {
178*993b0882SAndroid Build Coastguard Worker  carrier:ParcelTracking_.Carrier;
179*993b0882SAndroid Build Coastguard Worker  tracking_number:string (shared);
180*993b0882SAndroid Build Coastguard Worker}
181*993b0882SAndroid Build Coastguard Worker
182*993b0882SAndroid Build Coastguard Worker// Parsed money amount.
183*993b0882SAndroid Build Coastguard Workernamespace libtextclassifier3.EntityData_;
184*993b0882SAndroid Build Coastguard Workertable Money {
185*993b0882SAndroid Build Coastguard Worker  // String representation of currency, unnormalized.
186*993b0882SAndroid Build Coastguard Worker  unnormalized_currency:string (shared);
187*993b0882SAndroid Build Coastguard Worker
188*993b0882SAndroid Build Coastguard Worker  // Whole part of the amount (e.g. 123 from "CHF 123.45").
189*993b0882SAndroid Build Coastguard Worker  amount_whole_part:int;
190*993b0882SAndroid Build Coastguard Worker
191*993b0882SAndroid Build Coastguard Worker  // Decimal part of the amount (e.g. 45 from "CHF 123.45"). Will be
192*993b0882SAndroid Build Coastguard Worker  // deprecated, use nanos instead.
193*993b0882SAndroid Build Coastguard Worker  amount_decimal_part:int;
194*993b0882SAndroid Build Coastguard Worker
195*993b0882SAndroid Build Coastguard Worker  // Money amount (e.g. 123.45 from "CHF 123.45").
196*993b0882SAndroid Build Coastguard Worker  unnormalized_amount:string (shared);
197*993b0882SAndroid Build Coastguard Worker
198*993b0882SAndroid Build Coastguard Worker  // Number of nano (10^-9) units of the amount fractional part.
199*993b0882SAndroid Build Coastguard Worker  // The value must be between -999,999,999 and +999,999,999 inclusive.
200*993b0882SAndroid Build Coastguard Worker  // If `units` is positive, `nanos` must be positive or zero.
201*993b0882SAndroid Build Coastguard Worker  // If `units` is zero, `nanos` can be positive, zero, or negative.
202*993b0882SAndroid Build Coastguard Worker  // If `units` is negative, `nanos` must be negative or zero.
203*993b0882SAndroid Build Coastguard Worker  // For example $-1.75 is represented as `amount_whole_part`=-1 and
204*993b0882SAndroid Build Coastguard Worker  // `nanos`=-750,000,000.
205*993b0882SAndroid Build Coastguard Worker  nanos:int;
206*993b0882SAndroid Build Coastguard Worker
207*993b0882SAndroid Build Coastguard Worker  // Money quantity (e.g. k from "CHF 123.45k").
208*993b0882SAndroid Build Coastguard Worker  quantity:string (shared);
209*993b0882SAndroid Build Coastguard Worker}
210*993b0882SAndroid Build Coastguard Worker
211*993b0882SAndroid Build Coastguard Workernamespace libtextclassifier3.EntityData_.Translate_;
212*993b0882SAndroid Build Coastguard Workertable LanguagePredictionResult {
213*993b0882SAndroid Build Coastguard Worker  // BCP 47 tag for the language prediction result.
214*993b0882SAndroid Build Coastguard Worker  language_tag:string (shared);
215*993b0882SAndroid Build Coastguard Worker
216*993b0882SAndroid Build Coastguard Worker  // Confidence score for the language prediction result.
217*993b0882SAndroid Build Coastguard Worker  confidence_score:float;
218*993b0882SAndroid Build Coastguard Worker}
219*993b0882SAndroid Build Coastguard Worker
220*993b0882SAndroid Build Coastguard Worker// Details about detected foreign text.
221*993b0882SAndroid Build Coastguard Workernamespace libtextclassifier3.EntityData_;
222*993b0882SAndroid Build Coastguard Workertable Translate {
223*993b0882SAndroid Build Coastguard Worker  language_prediction_results:[Translate_.LanguagePredictionResult];
224*993b0882SAndroid Build Coastguard Worker}
225*993b0882SAndroid Build Coastguard Worker
226*993b0882SAndroid Build Coastguard Worker// Represents an entity annotated in text.
227*993b0882SAndroid Build Coastguard Workernamespace libtextclassifier3;
228*993b0882SAndroid Build Coastguard Workertable EntityData {
229*993b0882SAndroid Build Coastguard Worker  // Codepoint indices of the annotation, start is inclusive, end is
230*993b0882SAndroid Build Coastguard Worker  // exclusive.
231*993b0882SAndroid Build Coastguard Worker  start:int;
232*993b0882SAndroid Build Coastguard Worker
233*993b0882SAndroid Build Coastguard Worker  end:int;
234*993b0882SAndroid Build Coastguard Worker
235*993b0882SAndroid Build Coastguard Worker  // The entity type, as in the TextClassifier APIs.
236*993b0882SAndroid Build Coastguard Worker  type:string (shared);
237*993b0882SAndroid Build Coastguard Worker
238*993b0882SAndroid Build Coastguard Worker  datetime:EntityData_.Datetime;
239*993b0882SAndroid Build Coastguard Worker  reserved_5:int (deprecated);
240*993b0882SAndroid Build Coastguard Worker  contact:EntityData_.Contact;
241*993b0882SAndroid Build Coastguard Worker  app:EntityData_.App;
242*993b0882SAndroid Build Coastguard Worker  payment_card:EntityData_.PaymentCard;
243*993b0882SAndroid Build Coastguard Worker  flight:EntityData_.Flight;
244*993b0882SAndroid Build Coastguard Worker  isbn:EntityData_.Isbn;
245*993b0882SAndroid Build Coastguard Worker  iban:EntityData_.Iban;
246*993b0882SAndroid Build Coastguard Worker  parcel:EntityData_.ParcelTracking;
247*993b0882SAndroid Build Coastguard Worker  money:EntityData_.Money;
248*993b0882SAndroid Build Coastguard Worker  translate:EntityData_.Translate;
249*993b0882SAndroid Build Coastguard Worker}
250*993b0882SAndroid Build Coastguard Worker
251*993b0882SAndroid Build Coastguard Workerroot_type libtextclassifier3.EntityData;
252