Creativity Sharing and
Entrepreneurial Support

Dixiter

License : CC0
本アプリケーションは、仏Libellud社のカードゲームDixit (ディクシット) を、プレーするロボットをLODを使って実現します。 このアプリケーションでは、ユーザのカードをカメラから読み込み、そのカードに関連するキーワードからSPARQLクエリを生成します。 また、生成したSPARQLクエリを使ってLOD4ALLに問い合せ、ゲームでの核となる文(sentence)を作成したり、sentenceからカードを推測したりします。 デモビデオ(字幕あり)を以下に埋め込みました(2016-02-01)
Update: Mar 19, 2016

Movie detail
ディクシットのルールはこちらを参照ください。
ディクシット 動画でルール・ゲーム紹介byゆかいなさかな
Update: Mar 14, 2016 (hiro kobashi)
Movie detail
Update: Feb 1, 2016 (hiro kobashi)
Movie detail
Update: Feb 1, 2016 (hiro kobashi)
Movie detail
Update: Feb 1, 2016 (hiro kobashi)
Text detail
【エントリー部門】 アプリケーション部門 【応募者属性】 社会人/インターン 【応募者名】 チーム名 kobaski@UK - Pablo Molina Gonzalez (Intern) - Hiro Kobashi 【エントリー作品のURL】 https://www.hayesendroad.net/dixiter (Google Chromeで動作確認しています) (証明書エラーは無視ください) Dixitのカードがないと楽しく遊べないので、念の為にVideoもアップロードしておきます。(字幕あり) - Tell: https://youtu.be/wOS1Rl95JLA - Choose: https://youtu.be/YGgPSwkQyqk - Guess: https://youtu.be/JVzS8k9gJqs 【エントリー作品の権利指定】 クリエイティブ・コモンズ・ライセンス 【利用しているオープンデータ】 - DBPedia - Wikidata 【利用しているパートナーリソース】 LOD4ALL: 株式会社富士通研究所 【エントリー作品の詳細説明】 本アプリケーションはDixitをPlayするロボットをLODを使って実現するものです。 Dixitは仏Libellud社のカードゲームであり、2008年に登場以来、数多くの賞 を受賞しています。ゲームのルールは以下のようにとても簡単で、子供でも遊 ぶことができるものです。 1. 参加者がDixitのカードを山札から一枚ずつ、計6枚取得します 2. 参加者の一人が親(Storytellerと言います)となり、手持ちのカードの中か ら一枚を選んで、それを表す文(sentence)を言い、そのカードを場に伏せ て出します 3. Storyteller以外の参加者は、Storytellerが言ったsentenceに近いカード を手持ちのカードから選んで、場に同様に伏せて出します 4. Storytellerは出されたカードをシャッフルしてから表を向けます 5. Storyteller以外の参加者は、場にあるカードの中からStorytellerのカー ドを推測し、投票します 6. 投票結果により、次のように加点されていきます - 「全員がStorytellerに投票」もしくは「全員がStoryteller以外に投票」 の場合: - Storyteller以外の人、全員に 2 点 - 上記以外: - StorytellerとStorytellerのカードを選んだ人に 3点 - 特別加点: - 自身のカードに投票があった場合: 1点*投票数 このターンを繰り返し、誰かが30点に達するか山札がなくなるまで続け、獲得 点数を競います。 このゲームの面白いところは、 「あるカードに関して、"そこそこ外れたsentence"を中心にゲームが進む」 ところです。 例えばStep 2では、Storytellerはあまりにも具体的なsentenceを選んではい けません。なぜなら他の参加者が、全員自分のカードに投票してしまい、得点 を得られないからです。一方、全然関係の無いsentenceも選べません。これも 同様に得点の対象外だからです。Storytellerは少なくとも1人の人にカードを 選んでもらえるようなsentenceを言わなければならないのです。 またStep 3やStep 5では、それぞれ手持ちのカードもしくは場にあるカードか ら、Storytellerの言ったsentenceをもとに、一枚のカードを選択しなければ なりません。Step 3では、そのsentenceに近いカードを場に出すことで、他の 参加者の投票ミスによる加点を狙います。Step 5では、sentenceから Storytellerのカードに投票することで、得点を得ることができます。 この応募アプリケーションDixiterは - LODを使ってそこそこ外れたsentenceを選ぶ - LODを使ってsentenceからカードを選ぶ ことを実現しています。 次に、それぞれの実現方式について簡単に説明をします。 ### LODを使ってそこそこ外れたsentenceを選ぶ この局面では、Storytellerは場に出したカードのためのsentenceを選ぶこと が求められます。先に述べたように、そのsentenceはカードの内容からそこそ こ外れたものである必要があります。 これをDixiterでは、LODを使って以下のようにそこそこ外れたsentenceを選び ます。 1. カードにExactにマッチするKeywordsを幾つか選択 2. そのKeywordsに関するResourceをLOD4ALLから取得 3. 取得したResourceを起点に、例えば rdfs:seeAlso などを複数回辿るクエ リをLOD4ALLに問い合せ、その先の rdfs:label を取得 4. 取得した rdfs:label から1つの rdfs:labelを選び、sentenceとする ここの肝は「rdfs:seeAlso などを複数回辿る」ことにより、Dixiterは、もと もとExactなキーワードであったものを、ある程度暈すところです。これによ り元の意味をある程度保ちつつ、sentenceを外れさせることを実現しています。 また、rfs:seeAlso以外にもskos:relatedやdbo:followsなども有効です。 ### LODを使ってsentenceからカードを選ぶ この局面では、Storyteller以外の人が - Storytellerが言ったsentenceに近いカードを手持ちのカードから選択 - 場にあるカードの中からStorytellerのカードを推測 を求められます。 このためにDixiterは、以下のようにして、カードを選択・推測します 1. 対象となっているカード1枚1枚に関して、「LODを使ってそこそこ外れた sentenceを選ぶ」と同じ動作でsentencesを抜き出す 2. Sentencesの中にStorytellerのものがあれば、それと紐付いているカード を選択 3. なければ、カードに関連したsentenceとStorytellerのsentenceをwordに分 解し、word2vecのVectorで近さを評価して、Storytellerのsentenceに近い wordを持っているカードを選択 このような手順でDixiterは、LODを使ってStorytellerの思考を辿ろうと試み ます。 以上のようにして、DixiterはLODを使って動作しています。
Update: Feb 1, 2016 (hiro kobashi)

Grant Information

Suggested fund information for realizing the idea.

Comments