卒業研究発表のテーマ案

#数学オントロジー

・人間らしい誤りを入れる
　初心者らしいや、得意な人らしい記述をオントロジーで表現する。それを目標に、一般的な知識を打ち込む練習を先に行う。

センター試験レベルの数学の問題で間違った問題や、解けなかった問題に対し、その間違い方などから、なんでわかっていないのかを分析し、個々それぞれに適当な知識や演習を課して、解けるようにするシステム。授業に取り入れれるようなレベルを目指す。

人工知能には、人間にとってなにが難しい問題なのかがわからない。人間は定理を頭に入れてたとしても解けるかどうかは別。なので、オントロジーを学習者をもとに形成する。そうすれば、人間っぽいオントロジーができるのかと期待。
この結果から、数学ができることが人間力を測るのにほんとにつかえるのかを調べられたらうれしい。

研究していくなかで、取り扱う数学の問題のレベル（センター試験数学、高校数学、中学数学）や形式（マーク式や記述式）は臨機応変に対応しようと考えている。

数学を研究に取り入れようとした理由は、将来自分は数学の教員になるつもりなので、生徒がどうして解けないのかを考えることは、これからの課題になると考え、興味があったためである。

#STAR WARS

・ウィキデータの整理

第2の研究テーマ案はスターウォーズを題材とした研究。スターウォーズのデータをまとめている[ウィキペディア](https://ja.wikipedia.org/wiki/%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%BB%E3%82%A6%E3%82%A9%E3%83%BC%E3%82%BA%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA)や、[スターウォーズの鉄人](http://www.starwars.jp/)、[ウーキーペディア](https://starwars.fandom.com/ja/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8)などを使い、何かしたいと考えているが、まだ具体案は決まっていない。

#曖昧な単語たち
形式推論




#RDF(Resource Description Framework)
　しばらくはスターウォーズの英語か日本語のデータをRDFのオントロジーに変換して簡単なQAシステムをつくることを目的として、数学の知識グラフを作成するための練習とする。そのためには、まずRDFがなんなのかわかんなかったので、自分なりに検索しイメージを掴んだ。
RDFは主語、述語、目的語の3つの要素の組み合わせによってさまざまな構造データのつながりを表現するものである。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553131/32735e7a-4e24-5cd5-5711-ee4edfd4162d.png)


この知識グラフを作成するためのツールに少しだけ、ほんの少しだけさわったことのある「法造」を使うか、スターウォーズのデータを*LOD（Linked Open Date)*として公開しているところをさがす。

LODの探し方も扱い方も、これから渾身の努力を続ける覚悟である。

参考文献：Webの全てをデータベースにするLinked Open Data（LOD）とクエリ言語SPARQLの基礎(https://www.atmarkit.co.jp/ait/articles/1408/12/news006.html)

###目的変更
簡単なQAシステム　⇒　ファンが記述したLODの検証　
使用するツールは法造で決定
データを触れるように、そしてPythonも触れるように
わかんないことをリンクを添付するなどして書き出す

#法造

法造をインストールし、[法造-オントロジーエディタ](http://www.hozo.jp/oe5_manual_jp.pdf)と、AIツール実践フォーラム2019で配られた法造の資料を使い、基本的な操作方法を学んだ。


###is-a関係
揚げ物 *is-a* 料理　
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553131/f503a946-1c2a-77b9-cc25-240fb5e27b90.png)

###part-of関係
part-of(p/o)関係は、部分(部品)となる概念

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553131/a6e5a5e5-8a9a-8576-5bfa-56b6d3325fcb.png)

###継承・特殊化
２つの概念間に一般－特殊関係（is-a 関係）がある場合、上位概念から属性情報（スロット情報）をインポートして、その定義内容を詳細化（＝スロットの継承・特殊化）

揚げ物の衣は衣でも、フライの衣はパン粉、唐揚げの衣は唐揚げ粉、天ぷらの衣は天ぷら粉といった違いがあり、継承・特殊化されたスロットが多いほどより詳細な定義を得ることができる。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553131/ac73890b-1ddc-ae08-62d4-27700258548d.png)



#今後の課題

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553131/6cd98ed5-725c-ea40-d802-40359ecb2315.png)

[法造-オントロジーエディタ](http://www.hozo.jp/oe5_manual_jp.pdf)を熟読し、演習しながら使い方を学ぶ。


　研究論文探し
　数学基礎論
　誰かが作ったやつと比べる

#STAR WARSの知識記述
知的種族の名前とその、出身地と言語を調べながら打ち込み。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553131/1204a783-8a6b-c36e-191d-7b17200ed55d.png)

知識の情報源は自分が一番詳しいサイトであると思っている[スターウォーズの鉄人](http://www.starwars.jp/)から抽出

知識をかかないと始まらないぜ

#[アキネータ](https://keieikanrikaikei.com/akinator/)

Akinator（アキネーター）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553131/7a045adb-57ec-c98a-c5dc-bfbf53481a67.png)

>Akinator（アキネーター）とは、実在または架空の人物・キャラクターを絞込み推測しながら特定するプログラムエンジンです。20個程度の質問に対して選択肢からひとつ選んでいくだけで、あなたが今、頭に思い浮かべた人（場合によってはモノ）を当てるゲームです。Elokence社の”Limule”と呼ばれるプログラムを利用しており、絞込みに該当しなかった人物についても回答者が補足し加えてゆく事でデータベースを日々増やしており、学習し続けることでより少ない質問で回答を導き出すようになっています。残念ながら、アルゴリズムは公開されておりません。
いわゆる、データベース型人工知能とも呼べるものです。
引用元：https://keieikanrikaikei.com/akinator/

これのすごいと思う所は、知識量はもちろんだが、答えを絞り込むための質問をどのようにして選出しているのかが不思議。



法造のオントロジーは上書き保存がされてなくて消えてしまった( ﾉД`)ｼｸｼｸ…
書き直し中。ショックを通り過ぎている


#[DYDRA](https://dydra.com/login)

データの作成と平行に、できたデータをどうやって使うのかを調べた。
すると偶然「法造」エディタをつかって、いちからアニメオントロジーを作成している同志に出会い、ついに私に心のよりどころができた。ひとまずこの人がひいたレールの上を渡ることにする。[「アニメオントロジー」](http://dbym4820.hatenablog.com/entry/2019/05/12/154530)


そこで使われていたツールがDydra(ディドゥラ：おそらくhydraをもじったものかなと推測)と呼ばれるもので、さっそくパソコンに入れてみようと思ったところ向こうからの招待コードが送信されるまで1日ぐらいかかるらしいので、今は返信待ちの状況。

どこかの頭の切れる天才プログラマーなら"Dydraをダウンロードする。"
としか書かないであろう部分も、下画像のように何から何まで説明してくれるので、脳筋野郎の自分にもわかりやすくてとても助かります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553131/44a21f37-d963-69b8-4ca4-756854a9e464.png)


法造のデータ作成のほうは少し記述の方向性を変えることにした。
これまではスターウォーズ全体の知識を体とすると、自分が記述していた部分は足の薬指の爪の部分のようなものだったので、足の爪の前に体の骨組みから記述することにした。

「法造」の作成した途中データを「ファイル」→「エキスポート」→「RDF(S)」すると
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553131/5e35c64a-0167-1e46-7a31-ec1af54dd271.png)
が得られて、そのデータをDYDRAにいれると

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553131/7dd24a0e-b4cd-067a-ffaf-ae5119289a4a.png)

このようになり、なんとか実行できたものの、このプログラムを好きなようにいじるには知識が必要みたいで、「[RDF用クエリ言語SPARQL](http://www.asahi-net.or.jp/~ax2s-kmtn/internet/rdf/rdf-sparql-query.html)」を読もうと思う。あんまり気が進まないけど。きっと奥村さんがわかりやすく教えてくれるであろう。

#Wikidateの[Query Servic](ehttps://query.wikidata.org/)

SPARQLの勉強会を終えて、本来はSPARQL言語の勉強をするつもりであったが、WikidateのサービスでSPARQLの記述の仕方のサンプルがたくさんあることを知ったので、そのサンプルを真似していきながら徐々に使い方に慣れていくことにした。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553131/9a4123aa-cb09-4eb6-4af5-ac11388264dc.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553131/746e08bf-585c-b292-39cb-a31917516acc.png)


SPARQLの使い方を表面的にしったので、DYDRAに取り込んでみた。扱うデータはより詳細なデータで動作確認をしたかったため、古崎先生が授業でサンプルとしてあげている「料理」のデータを使った。
(この段階で、DYDRAはローカルデータを扱うには便利なものなんだということを認識。)

勉強会の時に奥村さんたちと一緒にDYDRAでのSPARQLの扱い方をいろいろ試したのだが、結論から言うと納得いく結果にはならなかった。

１.SPARQLで検索をかける際に、法造内で自動的にそれぞれに割り振られているIDを探すのに手間がかかる。(もうすでに忘れてしまっているぐらい)
２.番号を見つけてwikidateの例に習って打ち込んでみるも欲しい結果が得られない。

前回の勉強会でこれらの問題点を見つけることができたので、ひとまず自分で取り組んだうえで、その後もう一度勉強会を開いて助言をいただきたいと思ってる。