tag:crieit.net,2005:https://crieit.net/tags/%E3%82%AA%E3%83%B3%E3%83%88%E3%83%AD%E3%82%B8%E3%83%BC/feed 「オントロジー」の記事 - Crieit Crieitでタグ「オントロジー」に投稿された最近の記事 2019-05-28T22:17:20+09:00 https://crieit.net/tags/%E3%82%AA%E3%83%B3%E3%83%88%E3%83%AD%E3%82%B8%E3%83%BC/feed tag:crieit.net,2005:PublicArticle/15036 2019-05-28T22:17:20+09:00 2019-05-28T22:17:20+09:00 https://crieit.net/posts/ER ER図を作るのにオントロジーエディタを使ってみた <p>DBを再設計する必要がありまして。<br /> ちょうどいいER図作成ツールないかなーと思ってxmindとか使い始めてみたのですが、あまりしっくりとこなかったので以前使っていたツール(<strong>オントロジーエディタ</strong>)に戻ってみました。</p> <h1 id="オントロジーって何?"><a href="#%E3%82%AA%E3%83%B3%E3%83%88%E3%83%AD%E3%82%B8%E3%83%BC%E3%81%A3%E3%81%A6%E4%BD%95%EF%BC%9F">オントロジーって何?</a></h1> <p>オントロジー(英: ontology)は、哲学用語で存在論のこと。<br /> ここでは学術的な説明は要約しかしませんので、<a target="_blank" rel="nofollow noopener" href="https://ja.wikipedia.org/wiki/オントロジー_%28情報科学%29#オントロジの構成要素">オントロジの構成要素</a>←このあたりを読んでいただくと情報系の方は「あぁ!」って納得していただけるかもしれません。</p> <h2 id="概念"><a href="#%E6%A6%82%E5%BF%B5">概念</a></h2> <p>プログラミング言語でいうところの<strong>クラス</strong>に相当するものです。</p> <h2 id="is-a 関係"><a href="#is-a+%E9%96%A2%E4%BF%82">is-a 関係</a></h2> <p>上位概念と下位概念を結ぶリンクです。基本的に<strong>継承関係</strong>です。</p> <h2 id="part-of(p/o)、attribute-of(a/o)"><a href="#part-of%28p%2Fo%29%E3%80%81attribute-of%28a%2Fo%29">part-of(p/o)、attribute-of(a/o)</a></h2> <p>概念(クラス)が持つプロパティやメンバーと捉えていただくとよいかもしれません。</p> <h2 id="クラス制約"><a href="#%E3%82%AF%E3%83%A9%E3%82%B9%E5%88%B6%E7%B4%84">クラス制約</a></h2> <p>多くのプログラミング言語には型が存在します。</p> <h1 id="では作ってみましょう"><a href="#%E3%81%A7%E3%81%AF%E4%BD%9C%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%82%87%E3%81%86">では作ってみましょう</a></h1> <p><a href="https://crieit.now.sh/upload_images/b08b548caec5795ad40e35af9c85f4c95ced2ff6a7848.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/b08b548caec5795ad40e35af9c85f4c95ced2ff6a7848.png?mw=700" alt="image" /></a></p> <p>一例として「野球リーグ管理システム」のDB設計をするためにいくつか必要な情報を列挙してみます。</p> <h2 id="野球リーグ"><a href="#%E9%87%8E%E7%90%83%E3%83%AA%E3%83%BC%E3%82%B0">野球リーグ</a></h2> <ul> <li>野球リーグはたくさんのチームを持っています(<strong>p/o</strong>)。</li> <li>野球リーグにはシーズンという属性があります(<strong>a/o</strong>)。</li> </ul> <h2 id="チーム"><a href="#%E3%83%81%E3%83%BC%E3%83%A0">チーム</a></h2> <ul> <li>チームにはたくさんの選手がいます。(p/o)</li> <li>(書いていませんが監督やマネージャーがいるかもしれません...)</li> </ul> <h2 id="試合"><a href="#%E8%A9%A6%E5%90%88">試合</a></h2> <ul> <li>試合にはチームの勝敗がそれぞれあります。</li> <li>試合には得点があります。(a/o)</li> <li>勝ったチームには勝ち投手がいます。(選手のクラス制約があります。)</li> </ul> <h2 id="選手"><a href="#%E9%81%B8%E6%89%8B">選手</a></h2> <ul> <li>選手は人間です。(<strong>is-a</strong>)</li> <li>人間にIDはありません(笑)。システム的にIDを振ります。</li> </ul> <h2 id="シーズン"><a href="#%E3%82%B7%E3%83%BC%E3%82%BA%E3%83%B3">シーズン</a></h2> <ul> <li>シーズンとは時間を区切った期間です。(図のis-aは誤植です。)</li> </ul> <h1 id="おわりに"><a href="#%E3%81%8A%E3%82%8F%E3%82%8A%E3%81%AB">おわりに</a></h1> <p>このような学術的なツールを使って書くこともできますよ、という話でした。学問って改めて振り返るとこういう形で使われているんだーという学びがありますね。</p> <h1 id="参考リンク"><a href="#%E5%8F%82%E8%80%83%E3%83%AA%E3%83%B3%E3%82%AF">参考リンク</a></h1> <p><a target="_blank" rel="nofollow noopener" href="http://www.hozo.jp/index_jp.html">オントロジーエディタ「法造」</a></p> ckoshien