This page contains the reference pages for all the Natural Language categories (NL categories) available for capsules and an explanation on what is required (with a video tutorial to help you understand these requirements) in order for a capsule to be allowed in an NL category.
For more information on what NL categories are, why you need to add them, and the use cases that are required, see Categorize Your Capsule in the Preparing for Release Developers' Guide, the NL Categories reference, and the capsule-categories
reference page.
Keep in mind that subscribing to an NL category for your capsule does not replace proper training for your capsule. You still need to handle the natural language scope of any NL categories that you enable support for. If your capsule doesn't support a particular utterance related to that NL category and that use case is not required, your capsule should at least tell the user it cannot support that action.
Even though we list example utterances for each use case, you should add utterances that not only make sense to the NL category's use case but are also appropriate to your capsule's content.
The list of use cases and their requirement levels are evolving and subject to change in a future date. Make sure your capsule is up to date with these use cases, or your capsule might be pulled from the Marketplace in the future.
These listed use cases are either for the en-US
or ko-KR
locales only.
The following table lists the NL categories that are currently supported. Click on an NL category to learn more about it, including example use cases for that NL category, example utterances that users are likely to say with that use case, and whether that particular use case is required.
Category names are case-sensitive. You must use the category name exactly as listed in the category
reference page.
Category | Marketplace Display Name | Supported Locales |
---|---|---|
Astrology | Astrology | en-US , ko-KR |
AudioBook | Audiobooks | en-US , ko-KR |
CoffeeOrder | Coffee Ordering | ko-KR |
CookingNRecipe | Recipes | en-US , ko-KR |
CurrencyConversion | Currency Conversion | ko-KR |
DeliveryNTakeout | Food Delivery | en-US , ko-KR |
Email | en-US , ko-KR | |
Events | Events | en-US |
FlightBooking | Flight Booking | en-US |
FlightInfo | Flight Status | en-US |
Flowers | Flowers | en-US |
Gifts | Gifts | en-US |
HomeServices | Home Services | en-US |
Hotels | Hotels | en-US , ko-KR |
JobSearch | Jobs | en-US |
LanguageLearning | Language Learning | en-US , ko-KR |
LocalBusinesses | Local Businesses | en-US |
Lottery | Lottery | en-US , ko-KR |
Meditation | Meditation | en-US |
MovieTickets | Movie Tickets | en-US , ko-KR |
News | News | en-US , ko-KR |
Podcast | Podcasts | en-US , ko-KR |
Radio | Radio | en-US , ko-KR |
RealEstate | Real Estate | en-US , ko-KR |
RestaurantSearch | Restaurants | en-US |
RideShare | Rideshares | en-US , ko-KR |
ShoppingList | Shopping Lists | en-US |
SleepSounds | Sleep Sounds | en-US |
SportsScore | Sports Scores | en-US |
StockInfo | Stock Quotes | en-US , ko-KR |
Translators | Translation | en-US , ko-KR |
Trivia | Trivia | en-US |
Videos | Videos | en-US |
Weather | Weather | en-US |
By subscribing to an NL category, any utterances that are related to the use cases of that NL category are directed to your capsule. This means that your capsule needs to satisfy the required use cases in that NL category.
If you do not handle the required use cases appropriately, your capsule will be rejected for the Marketplace.
The following video describes how to set up your capsule to use natural language categories.
If you want Bixby to still understand the full utterance, but are not currently able to handle the user's request, you can create a "No Action" set of models, which you can match to a dialog that informs the user of an issue, and then add a training example with that utterance that has the goal of that "No Action" model. For example, you can develop a RideShare
capsule, but cannot currently book a specific type of ride, like a taxi:
Create a "No Action" action model.
// BookTaxiNoAction.model.bxb
action (BookTaxiNoAction) {
description (A no-action for utterances that try to book taxis)
collect {
input (searchTerm) {
type (SearchTerm)
min (Optional) max (One)
}
}
output (BookTaxiNoActionResult)
}
Create a "No Action Result" concept model, for the output of that action:
// BookTaxiNoActionResult.model.bxb
text (BookTaxiNoActionResult) {
description (A 'no-action' result for booking taxis)
}
Create an associated JavaScript file that does nothing:
// BookTaxiNoAction.s.js
export function BookTaxiNoAction(input) {
return ''
}
Create a dialog and match it to the "No Action Result" model:
// BookTaxiNoActionResult.dialog.bxb
dialog (Result) {
match: BookTaxiNoActionResult
template("I can’t book a taxi right now, but I’m working on it.")
}
Add a training entry for the unsupported utterance (for example, "Book a taxi") and set the goal to the action (BookTaxiNoAction
). This is what the Aligned NL would look like:
[g:BookTaxiNoAction] Book a taxi
You should still annotate your training examples with appropriate information. For example, if there are dates or times in the utterance, you should import the viv.time
library capsule and annotate with DateTime
concepts.