| // |
| // Copyright (C) 2018 The Android Open Source Project |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| // |
| |
| namespace libtextclassifier3.EntityData_.Datetime_; |
| enum Granularity : int { |
| GRANULARITY_UNKNOWN = -1, |
| GRANULARITY_YEAR = 0, |
| GRANULARITY_MONTH = 1, |
| GRANULARITY_WEEK = 2, |
| GRANULARITY_DAY = 3, |
| GRANULARITY_HOUR = 4, |
| GRANULARITY_MINUTE = 5, |
| GRANULARITY_SECOND = 6, |
| } |
| |
| namespace libtextclassifier3.EntityData_.Datetime_.DatetimeComponent_; |
| enum ComponentType : int { |
| UNSPECIFIED = 0, |
| YEAR = 1, |
| MONTH = 2, |
| WEEK = 3, |
| DAY_OF_WEEK = 4, |
| DAY_OF_MONTH = 5, |
| HOUR = 6, |
| MINUTE = 7, |
| SECOND = 8, |
| MERIDIEM = 9, |
| ZONE_OFFSET = 10, |
| DST_OFFSET = 11, |
| } |
| |
| // Enum to identify if the datetime component are relative or absolute. |
| namespace libtextclassifier3.EntityData_.Datetime_.DatetimeComponent_; |
| enum RelationType : int { |
| RELATION_UNSPECIFIED = 0, |
| |
| // Absolute represents the datetime component that need no further |
| // calculation e.g. in a datetime span "21-03-2019" components |
| // year=2019, month=3 and day=21 is explicitly mentioned in the span |
| ABSOLUTE = 1, |
| |
| // Identify datetime component where datetime expressions are relative. |
| // e.g. "three days ago", "2 days after March 1st", "next monday", |
| // "last Mondays". |
| RELATIVE = 2, |
| } |
| |
| namespace libtextclassifier3.EntityData_.Datetime_; |
| table DatetimeComponent { |
| component_type:DatetimeComponent_.ComponentType = UNSPECIFIED; |
| absolute_value:int; |
| relative_count:int; |
| relation_type:DatetimeComponent_.RelationType = RELATION_UNSPECIFIED; |
| } |
| |
| namespace libtextclassifier3.EntityData_; |
| table Datetime { |
| time_ms_utc:long; |
| granularity:Datetime_.Granularity = GRANULARITY_UNKNOWN; |
| datetime_component:[Datetime_.DatetimeComponent]; |
| } |
| |
| namespace libtextclassifier3.EntityData_; |
| table Contact { |
| name:string (shared); |
| given_name:string (shared); |
| nickname:string (shared); |
| email_address:string (shared); |
| phone_number:string (shared); |
| contact_id:string (shared); |
| } |
| |
| namespace libtextclassifier3.EntityData_; |
| table App { |
| name:string (shared); |
| package_name:string (shared); |
| } |
| |
| // The issuer/network of the payment card. |
| namespace libtextclassifier3.EntityData_.PaymentCard_; |
| enum CardNetwork : int { |
| UNKNOWN_CARD_NETWORK = 0, |
| AMEX = 1, |
| DINERS_CLUB = 2, |
| DISCOVER = 3, |
| INTER_PAYMENT = 4, |
| JCB = 5, |
| MAESTRO = 6, |
| MASTERCARD = 7, |
| MIR = 8, |
| TROY = 9, |
| UNIONPAY = 10, |
| VISA = 11, |
| } |
| |
| // Details about a payment card. |
| namespace libtextclassifier3.EntityData_; |
| table PaymentCard { |
| card_network:PaymentCard_.CardNetwork; |
| |
| // The card number. |
| card_number:string (shared); |
| } |
| |
| // Details about a flight number. |
| namespace libtextclassifier3.EntityData_; |
| table Flight { |
| // The IATA or ICAO airline code of the flight number. |
| airline_code:string (shared); |
| |
| // The flight number. |
| flight_number:string (shared); |
| } |
| |
| // Details about an ISBN number. |
| namespace libtextclassifier3.EntityData_; |
| table Isbn { |
| // The (normalized) number. |
| number:string (shared); |
| } |
| |
| // Details about an IBAN number. |
| namespace libtextclassifier3.EntityData_; |
| table Iban { |
| // The (normalized) number. |
| number:string (shared); |
| |
| // The country code. |
| country_code:string (shared); |
| } |
| |
| // The issuer/network of the package tracking number. |
| namespace libtextclassifier3.EntityData_.ParcelTracking_; |
| enum Carrier : int { |
| UNKNOWN_CARRIER = 0, |
| FEDEX = 1, |
| UPS = 2, |
| DHL = 3, |
| USPS = 4, |
| ONTRAC = 5, |
| LASERSHIP = 6, |
| ISRAEL_POST = 7, |
| SWISS_POST = 8, |
| MSC = 9, |
| AMAZON = 10, |
| I_PARCEL = 11, |
| } |
| |
| // Details about a tracking number. |
| namespace libtextclassifier3.EntityData_; |
| table ParcelTracking { |
| carrier:ParcelTracking_.Carrier; |
| tracking_number:string (shared); |
| } |
| |
| // Parsed money amount. |
| namespace libtextclassifier3.EntityData_; |
| table Money { |
| // String representation of currency, unnormalized. |
| unnormalized_currency:string (shared); |
| |
| // Whole part of the amount (e.g. 123 from "CHF 123.45"). |
| amount_whole_part:int; |
| |
| // Decimal part of the amount (e.g. 45 from "CHF 123.45"). Will be |
| // deprecated, use nanos instead. |
| amount_decimal_part:int; |
| |
| // Money amount (e.g. 123.45 from "CHF 123.45"). |
| unnormalized_amount:string (shared); |
| |
| // Number of nano (10^-9) units of the amount fractional part. |
| // The value must be between -999,999,999 and +999,999,999 inclusive. |
| // If `units` is positive, `nanos` must be positive or zero. |
| // If `units` is zero, `nanos` can be positive, zero, or negative. |
| // If `units` is negative, `nanos` must be negative or zero. |
| // For example $-1.75 is represented as `amount_whole_part`=-1 and |
| // `nanos`=-750,000,000. |
| nanos:int; |
| |
| // Money quantity (e.g. k from "CHF 123.45k"). |
| quantity:string (shared); |
| } |
| |
| namespace libtextclassifier3.EntityData_.Translate_; |
| table LanguagePredictionResult { |
| // BCP 47 tag for the language prediction result. |
| language_tag:string (shared); |
| |
| // Confidence score for the language prediction result. |
| confidence_score:float; |
| } |
| |
| // Details about detected foreign text. |
| namespace libtextclassifier3.EntityData_; |
| table Translate { |
| language_prediction_results:[Translate_.LanguagePredictionResult]; |
| } |
| |
| // Represents an entity annotated in text. |
| namespace libtextclassifier3; |
| table EntityData { |
| // Codepoint indices of the annotation, start is inclusive, end is |
| // exclusive. |
| start:int; |
| |
| end:int; |
| |
| // The entity type, as in the TextClassifier APIs. |
| type:string (shared); |
| |
| datetime:EntityData_.Datetime; |
| reserved_5:int (deprecated); |
| contact:EntityData_.Contact; |
| app:EntityData_.App; |
| payment_card:EntityData_.PaymentCard; |
| flight:EntityData_.Flight; |
| isbn:EntityData_.Isbn; |
| iban:EntityData_.Iban; |
| parcel:EntityData_.ParcelTracking; |
| money:EntityData_.Money; |
| translate:EntityData_.Translate; |
| } |
| |
| root_type libtextclassifier3.EntityData; |