Как определить словарный запас "кортежей" в Биксби? - PullRequest
1 голос
/ 28 января 2020

У меня есть перечисление, определяющее имена альтбрейнов (публикаций), например, так:

enum (AltBrainsNames) {
  description (AltBrainsNames)
  symbol (Inside the Helmet)
  symbol (Impeachment Sage)
  symbol (Iran Conflict Tracker)
  symbol (Historical Carbon Dioxide Emissions)
  symbol (Picard)
  symbol (Quotation Bank)
  symbol (US Elections)
}

С соответствующим файлом vocab.bxb для сопоставления вариаций имен с этими "официальными" именами.

Что я действительно хочу, так это чтобы Биксби передавал строковый идентификатор, соответствующий каждому символу (например, Impeachment Sage, impeachmentsage), чтобы этот идентификатор можно было использовать в качестве параметра в запросе к restdb. Какой простой способ установить эти кортежные отношения?

Фред

1 Ответ

2 голосов
/ 29 января 2020

Символом для вашей концепции enum может быть строковый идентификатор в вашей restDb. Вот один из примеров:

Измените существующее перечисление в соответствии с этим форматом

enum (AltBrainsNames) {
  description (AltBrainsNames Identifiers)
  symbol (insideTheHelmut) 
  symbol (impeachmentSage)
  symbol (iranConflictTracker)
  symbol (historicalCarbonDioxideEmissions)
  symbol (picard)
  symbol (quotationBank)
  symbol (USElections)
}

Ваш кортеж для подключения понятного имени к идентификатору.

structure (NameSelection) {

  property (name) {
    type (AltBrainsNames)
    min (Required) max (One)
  }

   property (title) {
    type (core.Text)
    min (Required) max (One)
    visibility (Private)
  }

}

Получить список имен

action (GetAltBrainsNames) {
  type(Constructor)
  output (NameSelection)
}

Предоставить список имен и предложить пользователю выбрать одно

action (MakeNameSelection) {
  type(Calculation)
  collect {

    input (selection) {
      type (NameSelection)
      min (Required) max (One)
      default-init {
        intent {
          goal: GetAltBrainsNames
        }
      }
    }
  }
  output (AltBrainsNames)
}

Ваш словарный запас может поддерживать пользователя, произносящего синонимы для символа

vocab (AltBrainsNames) {
"insideTheHelmut" { "insideTheHelmut" "inside the helmut" "helmut"}
"impeachmentSage" { "impeachmentSage" "impeachment sage" "impeachment" "sage"}
"iranConflictTracker" {"iranConflictTracker" "iran conflict tracker"} 
"historicalCarbonDioxideEmissions" { "historicalCarbonDioxideEmissions" "historical carbon dioxide emissions"}
"picard" { "picard"}  
"quotationBank" {"quotationBank" "quotation bank" "quotations"} 
"USElections" {"USElections" "us elections" }
}

enter image description here enter image description here enter image description here enter image description here

...