You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
239 lines
6.1 KiB
239 lines
6.1 KiB
4 months ago
|
//
|
||
|
// 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;
|