// // 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;