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

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 complete IntentRequest.

    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

duration.name

"… for one hour"

AMAZON.DURATION

{
    "name": "duration.name", 
    "value": "PT1H"
}

object.audience.name

"… suitable for families"

{
    "name": "object.audience.name", 
    "value": "suitable for families"
}

object.author.name

"…search for nick offerman's"

AMAZON.Person

{
    "name": "object.author.name", 
    "value": "nick offerman's"
}

object.bookNumber

"… one"

AMAZON.NUMBER

{
    "name": "object.bookNumber", 
    "value": "1"
}

object.brand.type

"… audible"

{
    "name": "object.brand.type", 
    "value": "audible"
}

object.contentSource.owner.name

"… on my"

AMAZON.Person

{
    "name": "object.contentSource.owner.name", 
    "value": "my"
}

object.contentSource

"… on audible"

AMAZON.Service

{
    "name": "object.contentSource", 
    "value": "audible"
}

object.datePublished.type

"…alexa what year"

{
    "name": "object.datePublished.type", 
    "value": "year"
}

object.genre

"…search for romance"

AMAZON.Genre

{
    "name": "object.genre", 
    "value": "romance"
}

object.hasPart.type

"…what page"

{
    "name": "object.hasPart.type", 
    "value": "page"
}

object.inLanguage.type

"… in french"

{
    "name": "object.inLanguage.type", 
    "value": "french"
}

object.name

"…stop reading the hobbit"

AMAZON.Book

{
    "name": "object.name", 
    "value": "the hobbit"
}

object.numberOfSections.type

"…how many pages"

{
    "name": "object.numberOfSections.type", 
    "value": "pages"
}

object.numberOfSections

"…six"

AMAZON.NUMBER

{
    "name": "object.numberOfSections", 
    "value": "6"
}

object.owner.name

"…when is my"

AMAZON.Person

{
    "name": "object.owner.name", 
    "value": "my"
}

object.partOfBookSeries.name

"…play harry potter"

AMAZON.BookSeries

{
    "name": "object.partOfBookSeries.name", 
    "value": "harry potter"
}

object.partOfSeries.name

"… in the silence of the lambs"

AMAZON.BookSeries

{
    "name": "object.partOfSeries.name", 
    "value": "silence of the lambs"
}

object.partOfSeries.type

"… series"

{
    "name": "object.partOfSeries.type", 
    "value": "series"
}

object.readBy.name

"… narrated by stephen fry"

AMAZON.Person

{
    "name": "object.readBy.name", 
    "value": "stephen fry"
}

object.select

"… next"

{
    "name": "object.select", 
    "value": "next"
}

object.sort

"… i just added"

{
    "name": "object.sort", 
    "value": "just added"
}

object.translator.name

"…please take katherine woods's"

{
    "name": "object.translator.name", 
    "value": "katherine woods's"
}

object.type

"… book"

{
    "name": "object.type", 
    "value": "book"
}

object.type

"… works"

AMAZON.CreativeWorkType

{
    "name": "object.type", 
    "value": "works"
}

object.version.type

"… version"

{
    "name": "object.version.type", 
    "value": "version"
}

rating.bestRating

"… out of five"

AMAZON.NUMBER

{
    "name": "rating.bestRating", 
    "value": "5"
}

rating.ratingValue

"… three"

AMAZON.NUMBER

{
    "name": "rating.ratingValue", 
    "value": "3"
}

rating.ratingValueUnit

"… stars"

{
    "name": "rating.ratingValueUnit", 
    "value": "stars"
}

sourceCollection.name

"… from my favorites"

{
    "name": "sourceCollection.name", 
    "value": "favorites"
}

sourceCollection.owner.name

"…take my"

AMAZON.Person

{
    "name": "sourceCollection.owner.name", 
    "value": "my"
}

sourceCollection.type

"… reading list"

{
    "name": "sourceCollection.type", 
    "value": "reading list"
}

targetCollection.audience.name

"… of children's books"

{
    "name": "targetCollection.audience.name", 
    "value": "children's books"
}

targetCollection.name

"… favorite book"

{
    "name": "targetCollection.name", 
    "value": "favorite book"
}

targetCollection.owner.name

"…add to my"

AMAZON.Person

{
    "name": "targetCollection.owner.name", 
    "value": "my"
}

targetCollection.type

"… reading list"

{
    "name": "targetCollection.type", 
    "value": "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:

Learn more about building your voice interface:

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.


Was this page helpful?

Last updated: Nov 28, 2023