【雑記】クイズをデータとして扱う試み

1.概要

 これはとある課題を提出する過程で検討した、クイズをデータとして扱うにはどうすれば良いかについて整理したものである。課題の本題ではないため多少荒いところもあるが、同様の検討をする上での参考となれば幸いである。

2.情報形式整理

 クイズの題材に対してどのような情報形式を経てクイズにすればデータとして扱いやすいかを整理した。

⓪(参考)クイズ問題文

 読むうえで最終的に出来あがるクイズ問題文があった方が理解しやすいと思うので記載する。

問題:国旗には2つの頭を持つスカンデルベクの鷲が描かれている、ヨーロッパの国はどこでしょう?
答え:アルバニア

①事実情報

 アルバニアをクイズの答えとしたい場合、アルバニアに関する情報を集めたものが必要となる。ここでは簡潔に、以下のような情報だけ集めた。
アルバニアはヨーロッパにある国で、国旗の図柄は🇦🇱である。中央の鷲はスカンデルベクの鷲と呼ばれている。

②事実整形情報(JSON)

 事実をJSON形式でまとめたもの。また、今後の利活用のために出来る限り規格化された形で整理するのが望ましい。ここでは国旗を旗章学に沿って整理した。

{
  "アルバニア(国)": {
    "地域""ヨーロッパ",
    "国旗": {
      "カントン"null,
      "チャージ": {
        "エンブレム": {
          "位置""中央",
          "鷲": {
            "呼称""スカンデルベクの鷲",
            "特徴""双頭",
            "色""黒"
          }
        }
      },
      "フィールド": {
        "色""赤"
      },
      "フライ"null,
      "ホイスト"null,
      "レングス""XX",
      "ウィドス""XX",
      "パターン"null
    }
  }
}

③事実整形情報_抽出(JSON)

 ②からクイズの問題文にしたい要素を抽出したもの。今回は鷲の図柄や名前から国を問いたいため、下記のように整理した。
 なお、あらゆる国旗について②の規格化された形で整理されていれば、この段階で同じ構造を持つ国旗が他にないことを確かめることで一意制約(答えが一つに限定できているか)を機械的に判断することができる。

{
  "アルバニア(国)": {
    "地域""ヨーロッパ",
    "国旗": {
      "チャージ": {
        "エンブレム": {
          "鷲": {
            "呼称""スカンデルベクの鷲",
            "特徴""双頭"
          }
        }
      }
    }
  }
}

④事実整形情報_クイズ表現(JSON)

 ③の情報をクイズの表現としてどのように扱うかを定めて整理したもの。例えば、旗章学の用語(チャージのエンブレム)は使わずデザインという一言でまとめたり、双頭を2つの頭を持つと言い換えたりしている。

{
  "国": {
    "地域""ヨーロッパ",
    "国旗": {
      "デザイン": {
        "鷲": {
          "呼称""スカンデルベクの鷲",
          "特徴""2つの頭を持つ"
        }
      }
    }
  }
}

⑤情報形(JSON)

 ④をクイズとして成文化するために整形したもの。
 以下のルールで④に要素を追加していく。
・ORDER
 ・TRUE(デフォルト)
  その要素を下位の階層で後ろから修飾する。
 ・FALSE
  その要素を下位の階層で前ろから修飾する。
・VANISH
 ・TRUE(デフォルト)
  その要素を最終的なクイズ問題文から消す。
 ・FALSE
  その要素を最終的なクイズ問題文で使用する。
・SEQUENCE
 上位階層を修飾する要素が2つ以上ある場合、修飾する順番を定義する。
 番号が小さいほうが前から修飾し、デフォルトは0。
・ELEMENT
 上記の情報を付加するために、要素の実態を表すための表現。

{
  "国": {
    "ORDER"false,
    "VANISH"false,
    "地域": {
      "ORDER"true,
      "VANISH"false,
      "SEQUENCE"1,
      "ELEMENT""ヨーロッパ"
    },
    "国旗": {
      "ORDER"true,
      "VANISH"false,
      "SEQUENCE"0,
      "デザイン": {
        "ORDER"true,
        "VANISH"true,
        "鷲": {
          "ORDER"false,
          "VANISH"true,
          "呼称": {
            "ORDER"true,
            "VANISH"false,
            "SEQUENCE"1,
            "ELEMENT""スカンデルベクの鷲"
          },
          "特徴": {
            "ORDER"true,
            "VANISH"false,
            "SEQUENCE"0,
            "ELEMENT""2つの頭を持つ"
          }
        }
      }
    }
  }
}

⑥具体形

 ⑤をルールに従ってクイズ文として並べたもの。
 この際日本語として自然につながるように間を埋める必要がある。<>で表記している。
 また、最終的にクイズの問題文として残さない部分(VANISH: TRUE)は[]で表記している。

{国旗<には>{[デザイン<として>]{2つの頭を持つ}{スカンデルベクの鷲}[<と呼ばれる>鷲]<が描かれている>、}}{ヨーロッパ<の>}国<はどこでしょう>?

⑦クイズ問題文

 ⑥から余計なものを消したもの。

国旗には2つの頭を持つスカンデルベクの鷲が描かれている、ヨーロッパの国はどこでしょう?

参考

 一意制約制限の確認例としてアルバニアの国旗とセルビアの国旗の事実整形情報例を記載する。

アルバニアの国旗

{
  "国旗": {
    "カントン"null,
    "チャージ": {
      "エンブレム": {
        "位置""中央",
        "鷲": {
          "呼称""スカンデルベクの鷲",
          "特徴""双頭",
          "色""黒"
        }
      }
    },
    "フィールド": {
      "色""赤"
    },
    "フライ"null,
    "ホイスト"null,
    "レングス""XX",
    "ウィドス""XX",
    "パターン"null
  }
}

セルビアの国旗

{
  "国旗": {
    "カントン"null,
    "チャージ": {
      "エンブレム": {
        "位置""中央左",
        "鷲": {
          "特徴""双頭",
          "色""白"
        }
      }
    },
    "フィールド": {
      "形""盾",
      "色""赤"
    },
    "フライ"null,
    "ホイスト"null,
    "レングス":"XX",
    "ウィドス":"XX",
    "パターン": {
      "Fesses": {
        "色1""赤",
        "色2""青",
        "色3""白"
      }
    }
  }
}

この記事が気に入ったらサポートをしてみませんか?