Clova Extensions Kit ビルトインスロットタイプを試す

# はじめに

ビルトインスロットタイプ一通り試してみました。
~~が、すみません。まだ未完成です。~~
~~CLOVA.ORDERだけ取得出来てません。。。~~取れました！
他の話し方でこれが取得できたよとかあれば教えてください！

## 種類

以下に記載されているものです。(2018.07時点)

[Clova Developer Center β - ドキュメント ビルトインスロットタイプ](https://clova-developers.line.me/guide/#/Design/Design_Guideline_For_Extension.md#BuiltinSlotType)

タイプ | 説明
:-- | :--
CLOVA.DATETIME | 日付、時刻
CLOVA.DURATION| 期間
CLOVA.MONEY| 数字＋通貨単位
CLOVA.NUMBER| 数字
CLOVA.RELATIVETIME| あいまいな時間
CLOVA.UNIT| 数字＋単位
CLOVA.ORDER| 順序
CLOVA.JP_ADDRESS_KEN| 都道府県
CLOVA.JP_ADDRESS_SHI| 市町村
CLOVA.JP_ADDRESS_KU| 行政区
CLOVA.WORLD_COUNTRY| 国
CLOVA.WORLD_CITY| 都市
CLOVA.CURRENCY| 通貨単位
CLOVA.OFFICIALDATE| 公休日

## 日付、時刻(CLOVA.DATETIME)

```json
"intent": {
  "name": "SlotDateTimeIntent",
  "slots": {
    "datetime": {
      "name": "datetime",
      "value": "2018-07-21",
      "valueType": "DATE"
    }
  }
}
```

発話 | 値種別 | スロット値 | 備考
:-- | :-- | :-- | :--
１週間前 | DATE | 2018-07-19 |
一昨々日 / 3日前 | DATE | 2018-07-23 |
一昨日 | DATE | 2018-07-24 |
昨日 | DATE | 2018-07-25 |
今日 | DATE | 2018-07-26 |
明日 | DATE | 2018-07-27 |
明後日 | DATE | 2018-07-28 |
明々後日 | DATE | 2018-07-29 |
弥明後日 | DATE | 2018-07-30 |
先々週 | DATE.INTERVAL | 2018-07-09/2018-07-15 |
先週 | DATE.INTERVAL | 2018-07-16/2018-07-22 |
今週 | DATE.INTERVAL | 2018-07-23/2018-07-29 |
来週 | DATE.INTERVAL | 2018-07-30/2018-08-05 |
再来週 | DATE.INTERVAL | 2018-08-06/2018-08-12 |
1日 | DATE | 2018-08-01 | 今日日付より前の日を指定すると次月になる
26日 | DATE | 2018-07-26 |
7月1日 | DATE | 2018-07-01 |
1分 | TIME | 11:01:00 | 10:02以降に指定すると１時間後になる
1分30秒 | TIME | 11:01:30 | 10:02以降に指定すると１時間後になる
午前9時 | TIME | 09:00:00 |
１時間前 | TIME | 13:12:45 | 
早朝 | TIME.INTERVAL | 00:00:00/03:00:00
朝 | TIME.INTERVAL | 06:00:00/09:00:00
昼 | TIME.INTERVAL | 11:00:00/13:00:00
夕方 | TIME.INTERVAL | 15:00:00/18:00:00
夜 | TIME.INTERVAL | 18:00:00/24:00:00
晩 | TIME.INTERVAL | 18:00:00/24:00:00
深夜 | TIME.INTERVAL | 00:00:00/03:00:00
夜明け | X | X
未明 | TIME.INTERVAL | 00:00:00/03:00:00
日中 | TIME.INTERVAL | 09:00:00/18:00:00


## 期間(CLOVA.DURATION)

```json
"intent": {
  "name": "SlotDurationIntent",
  "slots": {
    "duration": {
      "name": "duration",
      "value": "P1Y"
    }
  }
}
```

発話 | 値種別 | スロット値 | 備考
:-- | :--: | :-- | :--
1秒間 | - | PT1S |
1分間 | - | PT1M |
1時間 | - | PT1H |
1週間 | - | P1W |
1日間 | - | P1D |
1ヶ月 | - | P1M |
1年間 | - | P1Y |

[ISO 8601 継続時間](https://ja.wikipedia.org/wiki/ISO_8601#%E7%B6%99%E7%B6%9A%E6%99%82%E9%96%93)

## 数字＋通貨単位(CLOVA.MONEY)

```json
"intent": {
  "name": "SlotMoneyIntent",
  "slots": {
    "money": {
      "name": "money",
      "value": "4000"
    }
  }
}
```

発話 | 値種別 | スロット値 | 備考
:-- | :--: | :-- | :--
四千円 | - | 4000 |
1ドル | - | 1 |

## 数字(CLOVA.NUMBER)

```json
"intent": {
  "name": "SlotNumberIntent",
  "slots": {
    "number": {
      "name": "number",
      "value": "1"
    }
  }
}
```

発話 | 値種別 | スロット値 | 備考
:-- | :--: | :-- | :--
100 | - | 100 | 
百 | - | 100 |

## あいまいな時間(CLOVA.RELATIVETIME)

```json
"intent": {
  "name": "SlotRelativeTimeIntent",
  "slots": {
    "relativeTime": {
      "name": "relativeTime",
      "value": "PRESENT"
    }
  }
}
```

発話 | 値種別 | スロット値 | 備考
:-- | :--: | :-- | :--
これから / しばらく後 | - | FUTURE |
後で | - | X | 
前に | - | X | 
今 / 現在 | - | PRESENT　|
さっき / 過去 / この前 | - | PAST

## 数字＋単位(CLOVA.UNIT)

```json
"intent": {
  "name": "SlotUnitIntent",
  "slots": {
    "unit": {
      "name": "unit",
      "value": "113"
    }
  }
}
```

発話 | 値種別 | スロット値 | 備考
:-- | :--: | :-- | :--
113坪 | - | 113 |
100メガ | - | 100 |
25マイル | - | 25 |

## 順序(CLOVA.ORDER)

~~これはまったく取得できなかった。。。~~
取れました！(9/20)

```json
"intent": {
  "name": "SlotOrderIntent",
  "slots": {
    "order": {
      "name": "order",
      "value": "NEXT"
    }
  }
}
```

発話 | 値種別 | スロット値 | 備考
:-- | :--: | :-- | :--
次 | - | NEXT |
前 | - | BEFORE |
先頭 | X | X |
末尾 | X | X |
最初 | X | X | 
最後 | X | X | 
先 | X | X | 
後 | - | NEXT | 
後ろ | X | X | 
スキップ | X | X | 
大きい | X | X | 
小さい | X | X | 
高い | X | X | 
低い | X | X | 
同じ | X | X | 
等しい | X | X | 

## 都道府県(CLOVA.JP_ADDRESS_KEN)

```json
"intent": {
  "name": "SlotJpAddressKenIntent",
  "slots": {
    "jpAddressKen": {
      "name": "jpAddressKen",
      "value": "東京都"
    }
  }
}
```

発話 | 値種別 | スロット値 | 備考
:-- | :--: | :-- | :--
東京 / 東京都 | - | 東京都 |

## 市町村(CLOVA.JP_ADDRESS_SHI)

```json
"intent": {
  "name": "SlotJpAddressShiIntent",
  "slots": {
    "jpAddressShi": {
      "name": "jpAddressShi",
      "value": "武蔵野市"
    }
  }
}
```

発話 | 値種別 | スロット値 | 備考
:-- | :--: | :-- | :--
武蔵野 / 武蔵野市 | - | 武蔵野市 |
奥多摩 / 奥多摩町 | - | 奥多摩町 |

## 行政区(CLOVA.JP_ADDRESS_KU)

```json
"intent": {
  "name": "SlotJpAddressKuIntent",
  "slots": {
    "jpAddressKu": {
      "name": "jpAddressKu",
      "value": "東区"
    }
  }
}
```

発話 | 値種別 | スロット値 | 備考
:-- | :--: | :-- | :--
新宿区 | - | 新宿区 |
東区 | - | 東区 |
東 | - | null |

## 国(CLOVA.WORLD_COUNTRY)

```json
"intent": {
  "name": "SlotWorldCountryIntent",
  "slots": {
    "worldCountry": {
      "name": "worldCountry",
      "value": "JP"
    }
  }
}
```

発話 | 値種別 | スロット値 | 備考
:-- | :--: | :-- | :--
日本 | - | JP |
アメリカ | - | US |
カナダ | - | CA |

## 都市(CLOVA.WORLD_CITY)

```json
"intent": {
  "name": "SlotWorldCityIntent",
  "slots": {
    "worldCity": {
      "name": "worldCity",
      "value": "ローマ"
    }
  }
}
```

発話 | 値種別 | スロット値 | 備考
:-- | :--: | :-- | :--
東京 | - | 東京 | 
ワシントン | - | ワシントン |
ローマ | - | ローマ |

## 通貨単位(CLOVA.CURRENCY)

```json
"intent": {
  "name": "SlotCurrencyIntent",
  "slots": {
    "currency": {
      "name": "currency",
      "value": "JPN"
    }
  }
}
```

発話 | 値種別 | スロット値 | 備考
:-- | :--: | :-- | :--
円 | - | JPN | 
ドル | - | USD | 
ユーロ | - | EUR |

コード体系が何か調べてみたが、通貨コード(ISO 4217)ではない？？
通貨コードだと日本は「JPY」となっている。

https://ja.wikipedia.org/wiki/ISO_4217

## 公休日(CLOVA.OFFICIALDATE)

今年の日付(過ぎてるのは来年の)が取れると思ってた。。。

~~元旦と建国記念日は取れなかったです。~~
申し訳ないです。私が正式名称を間違えていました。取れました！

```json
"intent": {
  "name": "SlotOfficialDateIntent",
  "slots": {
    "officialDate": {
      "name": "officialDate",
      "value": "成人の日"
    }
  }
}
```

発話 | 値種別 | スロット値 | 備考
:-- | :--: | :-- | :--
~~元旦~~　元日 | - | 元日 | 
成人の日 | - | 成人の日 |
~~建国記念日~~ 建国記念の日 | - | 建国記念の日 |
春分の日 | - | 春分の日 |
昭和の日 | - | 昭和の日 |
憲法記念日 | - | 憲法記念日 |
みどりの日 | - | みどりの日 |
こどもの日 | - | こどもの日 |
海の日 | - | 海の日 |
山の日 | - | 山の日 |
敬老の日 | - | 敬老の日 |
秋分の日 | - | 秋分の日 |
体育の日 | - | 体育の日 |
文化の日 | - | 文化の日 |
勤労感謝の日 | - | 勤労感謝の日 |
天皇誕生日 | - | 天皇誕生日 |

## まとめ

~~お試しで作ったスキルの発話サンプルが充実していないことが理由かと思いますが取得できないものもあったので引き続きトライします。
シミュレータと実機両方が混在しているので、間違いがあるかもしれません。~~

一通りシミュレータで試した結果です。

本投稿のソースはこちら

[clova-extension-sample-all-slots - GitHub](https://github.com/daisukeArk/clova-extension-sample-all-slots)