Book Intents
Introduction
A book. These intents let users ask for actions related to books, such as finding books, adding books to reading lists, and rating books.
This document provides a quick reference to the Book
intents and corresponding slots. For details around how these intents are specified, see Understanding the Structure of the Built-in Intent Library.
Intent Signature
Use the intent signature as the intent
name in your intent schema. This example shows a schema with two Book
intents:
{
"intents": [
{
"name": "AMAZON.ChooseAction<object@Book,sourceCollection@ReadingList>"
},
{
"name": "AMAZON.ChooseAction<object@Book>"
}
]
}
For more about the components of this signature, see Understanding the Structure of the Built-in Intent Library.
To see the full JSON format for intents, see Interaction Model Schema. You can also use the developer console user interface to add the intents and then see the JSON code in the JSON Editor.
Book
intents can be used in English (US) skills. They are not available for English (UK) or German skills.Book Intents
The following table summarizes the available Book
intents and the set of slots that may be included. For each intent, the sections below the table show:
- A sample utterance that would invoke the intent.
- The JSON you include in your intent schema if you want to use the intent.
-
An example of the
IntentRequest
sent to your skill for the provided sample utterance, illustrating the slots that may be included. For brevity, these samples leave out the full set of properties that are normally part of a completeIntentRequest
.Note that if your interaction model includes multiple intents with similar utterances, your results may vary from these examples.
For definitions of the slots used in these intents, see Book Slots.
Intent Signature | Example Utterance | Possible Slots |
---|---|---|
AMAZON.AddAction<object@Book,targetCollection@ReadingList> |
"add all of shakespeare's works to my summer reading list" | targetCollection.owner.name object.inLanguage.type targetCollection.name targetCollection.audience.name object.genre object.partOfSeries.name object.type object.name object.audience.name object.sort object.author.name targetCollection.type |
AMAZON.ChooseAction<object@Book,sourceCollection@ReadingList> |
"select the last book on the reading list" | object.type object.select sourceCollection.type |
AMAZON.ChooseAction<object@Book> |
"choose moby dick" | object.type object.name object.select object.author.name |
AMAZON.DeleteAction<object@Book,sourceCollection@ReadingList> |
"remove all of the audiobooks from my favorites list" | object.owner.name object.version.type object.inLanguage.type object.select object.genre object.type object.name sourceCollection.owner.name sourceCollection.type sourceCollection.name object.sort object.translator.name object.author.name |
AMAZON.PlaybackAction<object@Book> |
"play the start of lord of the rings book one" | object.owner.name object.select object.contentSource object.partOfSeries.name object.type object.name object.bookNumber object.brand.type object.partOfBookSeries.name object.sort object.author.name |
AMAZON.RateAction<object@Book> |
"can you rate cloud atlas five stars" | rating.ratingValueUnit object.select object.partOfSeries.name object.type object.name rating.ratingValue object.partOfSeries.type rating.bestRating |
AMAZON.RestartAction<object@Book> |
"begin the book again" | object.owner.name object.type object.name object.select object.author.name |
AMAZON.ResumeAction<object@Book> |
"continue playing my audiobook to kill a mockingbird" | object.owner.name object.contentSource.owner.name object.contentSource object.type object.name object.bookNumber object.brand.type |
AMAZON.SearchAction<object@Book> |
"what books are on my audible" | object.owner.name object.genre object.contentSource object.type object.name sourceCollection.owner.name object.sort object.author.name object.readBy.name |
AMAZON.SearchAction<object@Book[datePublished]> |
"alexa what year was this book published" | object.datePublished.type object.type |
AMAZON.SearchAction<object@Book[numberOfSections]> |
"what page are we on in the book" | object.numberOfSections object.type object.hasPart.type object.numberOfSections.type |
AMAZON.SearchAction<object@Book[position]> |
"where am i in the book" | object.type |
AMAZON.StopAction<object@Book> |
"i don't want to read matilda anymore" | object.owner.name object.type object.name |
AMAZON.SuspendAction<object@Book> |
"pause this audiobook for one hour" | object.owner.name object.type duration.name |
AddAction<object@Book,targetCollection@ReadingList>
User: add all of shakespeare's works to my summer reading list
Intent Schema:
{
"intents": [
{
"name": "AMAZON.AddAction<object@Book,targetCollection@ReadingList>"
}
]
}
Request:
{
"request": {
"type": "IntentRequest",
"locale": "en-US",
"intent": {
"name": "AMAZON.AddAction<object@Book,targetCollection@ReadingList>",
"slots": {
"object.author.name": {
"name": "object.author.name",
"value": "shakespeare's"
},
"object.type": {
"name": "object.type",
"value": "works"
},
"targetCollection.owner.name": {
"name": "targetCollection.owner.name",
"value": "my"
},
"targetCollection.name": {
"name": "targetCollection.name",
"value": "summer reading"
},
"targetCollection.type": {
"name": "targetCollection.type",
"value": "list"
}
}
}
}
}
ChooseAction<object@Book,sourceCollection@ReadingList>
User: select the last book on the reading list
Intent Schema:
{
"intents": [
{
"name": "AMAZON.ChooseAction<object@Book,sourceCollection@ReadingList>"
}
]
}
Request:
{
"request": {
"type": "IntentRequest",
"locale": "en-US",
"intent": {
"name": "AMAZON.ChooseAction<object@Book,sourceCollection@ReadingList>",
"slots": {
"object.select": {
"name": "object.select",
"value": "last"
},
"object.type": {
"name": "object.type",
"value": "book"
},
"sourceCollection.type": {
"name": "sourceCollection.type",
"value": "reading list"
}
}
}
}
}
ChooseAction<object@Book>
User: choose moby dick
Intent Schema:
{
"intents": [
{
"name": "AMAZON.ChooseAction<object@Book>"
}
]
}
Request:
{
"request": {
"type": "IntentRequest",
"locale": "en-US",
"intent": {
"name": "AMAZON.ChooseAction<object@Book>",
"slots": {
"object.name": {
"name": "object.name",
"value": "moby dick"
}
}
}
}
}
DeleteAction<object@Book,sourceCollection@ReadingList>
User: remove all of the audiobooks from my favorites list
Intent Schema:
{
"intents": [
{
"name": "AMAZON.DeleteAction<object@Book,sourceCollection@ReadingList>"
}
]
}
Request:
{
"request": {
"type": "IntentRequest",
"locale": "en-US",
"intent": {
"name": "AMAZON.DeleteAction<object@Book,sourceCollection@ReadingList>",
"slots": {
"object.select": {
"name": "object.select",
"value": "all"
},
"object.type": {
"name": "object.type",
"value": "audiobooks"
},
"sourceCollection.owner.name": {
"name": "sourceCollection.owner.name",
"value": "my"
},
"sourceCollection.type": {
"name": "sourceCollection.type",
"value": "favorites list"
}
}
}
}
}
PlaybackAction<object@Book>
User: play the start of lord of the rings book one
Intent Schema:
{
"intents": [
{
"name": "AMAZON.PlaybackAction<object@Book>"
}
]
}
Request:
{
"request": {
"type": "IntentRequest",
"locale": "en-US",
"intent": {
"name": "AMAZON.PlaybackAction<object@Book>",
"slots": {
"object.select": {
"name": "object.select",
"value": "start"
},
"object.name": {
"name": "object.name",
"value": "lord of the rings"
},
"object.type": {
"name": "object.type",
"value": "book"
},
"object.bookNumber": {
"name": "object.bookNumber",
"value": "1"
}
}
}
}
}
RateAction<object@Book>
User: can you rate cloud atlas five stars
Intent Schema:
{
"intents": [
{
"name": "AMAZON.RateAction<object@Book>"
}
]
}
Request:
{
"request": {
"type": "IntentRequest",
"locale": "en-US",
"intent": {
"name": "AMAZON.RateAction<object@Book>",
"slots": {
"object.name": {
"name": "object.name",
"value": "cloud atlas"
},
"rating.ratingValue": {
"name": "rating.ratingValue",
"value": "5"
},
"rating.ratingValueUnit": {
"name": "rating.ratingValueUnit",
"value": "stars"
}
}
}
}
}
RestartAction<object@Book>
User: begin the book again
Intent Schema:
{
"intents": [
{
"name": "AMAZON.RestartAction<object@Book>"
}
]
}
Request:
{
"request": {
"type": "IntentRequest",
"locale": "en-US",
"intent": {
"name": "AMAZON.RestartAction<object@Book>",
"slots": {
"object.type": {
"name": "object.type",
"value": "book"
}
}
}
}
}
ResumeAction<object@Book>
User: continue playing my audiobook to kill a mockingbird
Intent Schema:
{
"intents": [
{
"name": "AMAZON.ResumeAction<object@Book>"
}
]
}
Request:
{
"request": {
"type": "IntentRequest",
"locale": "en-US",
"intent": {
"name": "AMAZON.ResumeAction<object@Book>",
"slots": {
"object.owner.name": {
"name": "object.owner.name",
"value": "my"
},
"object.type": {
"name": "object.type",
"value": "audiobook"
},
"object.name": {
"name": "object.name",
"value": "to kill a mockingbird"
}
}
}
}
}
SearchAction<object@Book>
User: what books are on my audible
Intent Schema:
{
"intents": [
{
"name": "AMAZON.SearchAction<object@Book>"
}
]
}
Request:
{
"request": {
"type": "IntentRequest",
"locale": "en-US",
"intent": {
"name": "AMAZON.SearchAction<object@Book>",
"slots": {
"object.type": {
"name": "object.type",
"value": "books"
},
"object.contentSource": {
"name": "object.contentSource",
"value": "audible"
}
}
}
}
}
SearchAction<object@Book[datePublished]>
User: alexa what year was this book published
Intent Schema:
{
"intents": [
{
"name": "AMAZON.SearchAction<object@Book[datePublished]>"
}
]
}
Request:
{
"request": {
"type": "IntentRequest",
"locale": "en-US",
"intent": {
"name": "AMAZON.SearchAction<object@Book[datePublished]>",
"slots": {
"object.datePublished.type": {
"name": "object.datePublished.type",
"value": "year"
},
"object.type": {
"name": "object.type",
"value": "book"
}
}
}
}
}
SearchAction<object@Book[numberOfSections]>
User: what page are we on in the book
Intent Schema:
{
"intents": [
{
"name": "AMAZON.SearchAction<object@Book[numberOfSections]>"
}
]
}
Request:
{
"request": {
"type": "IntentRequest",
"locale": "en-US",
"intent": {
"name": "AMAZON.SearchAction<object@Book[numberOfSections]>",
"slots": {
"object.hasPart.type": {
"name": "object.hasPart.type",
"value": "page"
},
"object.type": {
"name": "object.type",
"value": "book"
}
}
}
}
}
SearchAction<object@Book[position]>
User: where am i in the book
Intent Schema:
{
"intents": [
{
"name": "AMAZON.SearchAction<object@Book[position]>"
}
]
}
Request:
{
"request": {
"type": "IntentRequest",
"locale": "en-US",
"intent": {
"name": "AMAZON.SearchAction<object@Book[position]>",
"slots": {
"object.type": {
"name": "object.type",
"value": "book"
}
}
}
}
}
StopAction<object@Book>
User: i don't want to read matilda anymore
Intent Schema:
{
"intents": [
{
"name": "AMAZON.StopAction<object@Book>"
}
]
}
Request:
{
"request": {
"type": "IntentRequest",
"locale": "en-US",
"intent": {
"name": "AMAZON.StopAction<object@Book>",
"slots": {
"object.name": {
"name": "object.name",
"value": "matilda"
}
}
}
}
}
SuspendAction<object@Book>
User: pause this audiobook for one hour
Intent Schema:
{
"intents": [
{
"name": "AMAZON.SuspendAction<object@Book>"
}
]
}
Request:
{
"request": {
"type": "IntentRequest",
"locale": "en-US",
"intent": {
"name": "AMAZON.SuspendAction<object@Book>",
"slots": {
"object.type": {
"name": "object.type",
"value": "audiobook"
},
"duration.name": {
"name": "duration.name",
"value": "PT1H"
}
}
}
}
}
Book Slots
The Book
intents can return slot values to your skill. You do not include these slots in your intent schema – they are generated automatically from the intent signature.
Note that not all available slots are returned from every intent. See the table in Book Intents to see which slots are applicable to each intent.
The following table shows the slots the Book
intents can return. For each slot, the table includes:
- The slot name.
- An example utterance for the slot.
- The JSON that would be sent to your skill for the sample utterance.
- If applicable, the name of the slot type used by the slot. You can see details about slot types in the Slot Type Reference.
Slot Name | Utterance | Slot Values |
---|---|---|
|
"… for one hour" |
|
|
"… suitable for families" |
|
|
"…search for nick offerman's" |
|
|
"… one" |
|
|
"… audible" |
|
|
"… on my" |
|
|
"… on audible" |
|
|
"…alexa what year" |
|
|
"…search for romance" |
|
|
"…what page" |
|
|
"… in french" |
|
|
"…stop reading the hobbit" |
|
|
"…how many pages" |
|
|
"…six" |
|
|
"…when is my" |
|
|
"…play harry potter" |
|
|
"… in the silence of the lambs" |
|
|
"… series" |
|
|
"… narrated by stephen fry" |
|
|
"… next" |
|
|
"… i just added" |
|
|
"…please take katherine woods's" |
|
|
"… book" |
|
|
"… works" |
|
|
"… version" |
|
|
"… out of five" |
|
|
"… three" |
|
|
"… stars" |
|
|
"… from my favorites" |
|
|
"…take my" |
|
|
"… reading list" |
|
|
"… of children's books" |
|
|
"… favorite book" |
|
|
"…add to my" |
|
|
"… reading list" |
|
Built-in Intent Library Documentation
Book
is used in the following built-in intent library category:
Navigate to all built-in intents in the Built-in Intent Library.
See all available slot types in the Slot Type Reference.
Learn more about using the built-in intent library:
- Understanding the Structure of the Built-in Intent Library
- Implementing the Built-in Intents
- Standard Built-in Intents
Learn more about building your voice interface:
- Choose the Invocation Name for a Custom Skill
- Create the Interaction Model for Your Skill
- Best Practices for Sample Utterances and Custom Slot Type Values
- Interaction Model Schema
- Alexa Design Guide
The built-in intent library incorporates material from Schema.org, which is licensed under the Creative Commons Attribution-ShareAlike License (version 3.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://creativecommons.org/licenses/by-sa/3.0/. For questions, please contact us.
Last updated: Nov 28, 2023