目次
- はじめに
- 1. BFO とは ― 36 クラスしかない「分類の枠組み」
- 2. 最初の分岐 ― 続くもの(continuant)と起きるもの(occurrent)
- 3. 依存するか、コピーできるか
- 4. 傾向(disposition)と役割(role)― 取り除いたら物が変わるか
- 5. 判定フロー
- 6. 製造現場を切ってみた ― 6 つの実例
- 7. 機械が守ってくれる所、守ってくれない所
- 8. 製造業で何に効くのか ― このプロジェクトで実際に効いたこと
- 9. ハマりどころ集
- まとめ
- 参考
はじめに
製造業のナレッジグラフを、国際標準の上位オントロジー BFO と、その上に乗る製造業の業界標準 IOF(Industrial Ontology Foundry) で作ってみました。題材は、架空のダイカスト工場(10 台・合成データ)の設備状態を判定するデモアプリです。動いている様子は次の動画(https://youtu.be/p0MVkcYiYTg )で紹介しています。判定の仕組みは連載の最終回(#5 前後編)で詳しく扱います。
※Quality:720p以上で再生してください。
※動画の画面に出る「碧海軽合金株式会社 衣浦工場」は、デモのために作った架空の会社・工場です。実在の企業・工場とは関係ありません。
図: 題材にした架空のダイカストマシン(コールドチャンバー 500 t)。左が金型を締める型締装置、右が溶湯を押し込む射出装置。同じ型の 10 台が並ぶ工場を想定しています。
製造現場の知識は、設備台帳、QC工程表、作業標準書、異常処置基準書、是正処置報告書と、ばらばらの文書や表に分かれています。同じ「対策」という言葉が、ある表では「推奨される処置」、別の表では「実施した作業」を指していることもよくあります。BFO・IOF は、こうした知識を 1 つの共通の言葉でつなぐための土台です。この連載では、毎回「製造現場で何に効くのか」を、実際に効いた例で示します。
この連載は「やってみた」ではなく、ハマりどころ集として書きます。BFO・IOF の日本語の解説はほとんど無く、予備知識があっても引っかかる所がたくさんありました。
| # | 内容 |
|---|---|
| 1(本記事) | BFO 入門 ― 36 クラスで製造現場を切り分ける |
| 2 | IOF を手元で動かすまでの落とし穴(近日公開) |
| 3 | 製造業ナレッジグラフを IOF で設計する(近日公開) |
| 4 前編 | OWL で書けないもの【前編】単調論理と一意名仮定(近日公開) |
| 4 後編 | OWL で書けないもの【後編】開世界と「今の値」(近日公開) |
| 5 前編 | ナレッジグラフ × 判定特化モデル【前編】判定の設計と一致率(近日公開) |
| 5 後編 | ナレッジグラフ × 判定特化モデル【後編】不良を事前に当てられるか、結果で測る(近日公開) |
対象読者: RDB のテーブル設計は分かるが、オントロジーは初めての方。
この記事の学習目標
読み終えたとき、次の 3 つができることを目指します。
- BFO が何をしてくれて、何をしてくれないかを、RDB に例えて説明できる
- 製造現場の「もの」を、3 つの問い(全体があるか・コピーできるか・取り除いたら物が変わるか)で切り分けられる
- 推論器がどこまで守ってくれて、どこからは自分で決めるしかないかを説明できる
- BFO の区分が、製造現場のどんな困りごとに効くかを、例を挙げて説明できる
読み方
各章に 🏭 製造現場では の囲みを置き、その区分が現場で何に効くかを書きました。各章の最後には ✅ 確認問題 を置きました。答えは折りたたんであるので、考えてから開いてください。間違えた問題の章だけ読み直せば十分です。
用語の早見表(読みながら戻ってきてください)
| 用語 | ひとことで | 例 |
|---|---|---|
| オントロジー | 「何が存在し、どう分類され、どう関係するか」を機械が読める形で書いたもの | — |
| 上位オントロジー | どの分野にも共通する、いちばん抽象的な区分だけを決めたもの | BFO |
| クラス | ものの種類 | 「ダイカストマシン」 |
| 個体 | 1 つ 1 つの具体的なもの | 「2 号機(DCM-02)」 |
| 関係(プロパティ) | 個体と個体のつながり | 「2 号機は真空装置を部品として持つ」 |
| 推論器 | 書かれたきまりから、矛盾を探したり新しい事実を導いたりするプログラム | HermiT |
1. BFO とは ― 36 クラスしかない「分類の枠組み」
BFO(Basic Formal Ontology)は、ISO/IEC 21838-2 として規格化された上位オントロジーです。上位オントロジーと聞くと巨大な分類体系を想像しますが、実物(bfo-core.ttl)を数えると拍子抜けするほど小さいです。
| 種別 | 件数 |
|---|---|
| 名前付きクラス | 36 |
| オブジェクトプロパティ(関係) | 40 |
| 個体(具体的なもの) | 0 |
| 互いに排他と宣言されたクラスの組 | 26(7 章) |
さらに、製造業の言葉は 1 語も出てきません。
for w in equipment manufactur machine maintenance organization; do
echo "$w: $(grep -ic "$w" bfo-2020/21838-2/owl/bfo-core.ttl)"
done
# equipment: 0 / manufactur: 0 / machine: 0 / maintenance: 0 / organization: 0
BFO が持っているのは、object(物)、process(過程)、quality(性質)、disposition(傾向)、role(役割)といった**「存在の区分」だけ**です。「設備」「工程」「材料」を表すのは、上に乗るオントロジーの仕事です。
BFO は器ではなく、器の分類体系です。 RDB に例えると、テーブルそのものではなく「正規化の理論」に近い、スキーマのスキーマです。
このプロジェクトでは、次の 5 層で作りました。
| 層 | 中身 | RDB での対応 |
|---|---|---|
| BFO(36 クラス) | 存在の区分 | 正規化の理論・設計の作法 |
| IOF Core | 製造業共通の語彙(設備、組織、情報 …) | 業界標準のテーブル定義 |
| IOF ドメイン(保全など) | 領域別の語彙(保全の状態、故障モード …) | 同上 |
自作(tmk:) |
自分の現場の語彙(確認項目、因果の主張 …) | 自社拡張のテーブル |
| データ(A-Box) |
DCM-02(2 号機)、CAR-2026-019(是正処置報告)… |
行(レコード) |
🏭 製造現場では: IOF には、BFO の上に保全・生産計画・サプライチェーン・製品サービス・バイオ医薬のモジュールがあります。工場ごと・システムごとにばらばらだった「設備」「工程」「故障モード」といった言葉を、業界で共有できる定義に寄せられます。BFO はその定義どうしが矛盾しないための土台です。
2. 最初の分岐 ― 続くもの(continuant)と起きるもの(occurrent)
BFO はすべてのものを、最初に 2 つに分けます。
| 継続体(continuant) | 生起体(occurrent) | |
|---|---|---|
| BFO の説明 | 時間を通じて、同一性を保ったまま存在し続ける | 時間の中で展開する(またはその始まり・終わり) |
| 例 | 金型、ダイカストマシン、作業標準書 | 鋳造、段取り替え、ショット |
ハマりどころ: 日常語の「対策」は 2 つに割れる
よくある RDB 設計では、「対策」を 1 つのテーブルにまとめます。BFO では、これが 2 つに割れます。
| 推奨される対策 | 実施された対策 | |
|---|---|---|
| 例 | 「真空バルブは 30,000 ショットで交換すること」(設備台帳に書いてある) | 2 号機の真空バルブを実際に交換した作業 |
| 区分 | 情報(継続体) | 過程(生起体) |
この 2 つは、BFO では同じクラスにできません(continuant と occurrent は排他です)。IOF では、推奨の情報が実施の過程を定める(iof:prescribes)関係でつなぎます。
日本語の「〜している」「〜していく」にも引きずられないでください。「金型が摩耗している」は金型の状態(継続体の側)、「金型が摩耗していく」は過程(生起体の側)です。何を言いたいかで分かれます。
なぜ分けると嬉しいのか
「対策」を 1 つにまとめたままだと、「推奨されているのに、まだ実施されていない対策はどれか」という問いに答えにくくなります。2 つに分けておけば、推奨と実施を別々に問い合わせ(SPARQL)で取り出して突き合わせられます。区分を分けるのは哲学のためではなく、問いに答えられるようにするためです。
🏭 製造現場では: このプロジェクトでは、ガス巣(鋳造品の内部の空洞)という不良について「推奨される対策」(異常処置基準書・設備台帳)と「実際に実施された対策」(是正処置報告書)を分けて問い合わせられるようにしました。実際に問い合わせると、推奨されるのは「一次処置(真空度の確認など)」(異常処置基準書)と「真空バルブ交換」(設備台帳の交換基準)でした。一方、実施された対策には、**どちらにも載っていない「真空配管フィルタの清掃」**がありました(原因がフィルタの詰まりだった過去の事例)。基準書に無いのに効いた対策が一覧で見つかるので、基準書を改訂する候補を拾えます。
✅ 確認問題(2 章)
Q1. 次のうち、生起体(occurrent)はどれでしょう。
(a) ダイカストマシン (b) 段取り替え (c) 作業標準書 (d) ロット 1 本分の鋳造
答え
(b) と (d)。 どちらも始まりと終わりがあり、ある瞬間には途中までしかありません。(a) は物、(c) は情報で、どちらも継続体です。
Q2. 「設備台帳に書かれた『真空バルブは 30,000 ショットで交換する』」と「2 号機で実際に行った真空バルブ交換作業」を同じクラスにできないのはなぜでしょう。
答え
前者は情報(継続体)、後者は過程(生起体)だからです。BFO は継続体と生起体を排他と宣言しているので、同じクラスにすると推論器が矛盾として止めます。
3. 依存するか、コピーできるか
継続体は、さらに「何かに依存するか」で 3 つに分かれます。
| 区分 | 依存のしかた | 例 |
|---|---|---|
| 独立継続体(independent continuant) | 何にも依存しない | 金型、マシン、キャビティ(金型の中の空間) |
| 特定依存継続体(specifically dependent continuant) | ただ 1 つの担い手に張り付く。担い手が無くなれば消える | 金型の温度、真空バルブの摩耗しやすさ |
| 総称依存継続体(generically dependent continuant) | 担い手は要るが、どの担い手でもよい(コピーできる) | 作業標準書の内容、設計図、レシピ |
**決め手は「コピーできるか」**です。
- 作業標準書の内容は、別の紙にもファイルにも写せます → 総称依存(情報)
- その紙についた汚れは、その紙にしかありません → 特定依存(性質)
このプロジェクトでは、紙の原本と現場に掲示した写し(物が 2 つ)が、同じ「QC工程表の内容」(情報が 1 つ)を担う、というデータを推論器に通しました。矛盾は出ません。逆に「紙が組織を担う」と書き間違えると、推論器が矛盾として止めます。「担う」の相手は総称依存継続体(情報)でなければならず、組織は独立継続体で、BFO はこの 2 つを排他と宣言しているからです。
🏭 製造現場では: 文書管理でよくある「最新版の原本はどれか」「現場の掲示は古い版のままではないか」という問題は、内容(情報)と紙(物)を分けて初めて書けます。このプロジェクトでは文書の内容を個体にし、「この設備の判断基準と、それを定める文書は何か」を問い合わせで答えられるようにしました。その結果、消耗部品の交換周期を設備台帳と作業標準書の 2 つの文書が定めていた(二重管理)ことが分かりました。文字列の出典のままでは見えなかったことです。
✅ 確認問題(3 章)
Q3. 次のものは、独立・特定依存・総称依存のどれでしょう。
(a) 鋳造条件のレシピ(Rev.06) (b) 金型の今の温度 (c) 金型の中の空間(キャビティ)
答え
- (a) 総称依存: 別の装置にもファイルにも写せる情報です
- (b) 特定依存: その金型にしか無く、金型が無くなれば消えます
- (c) 独立: 空間は何にも依存しません。ただし物質ではないので「物」ではなく「場所(site)」です
Q4. 「コピーできるか」で分けると、何が嬉しいのでしょう。
答え
「同じ内容の写しが現場に 2 枚ある」「原本を捨てても内容は残る」が正しく書けます。紙と内容を 1 つのものにしてしまうと、写しが増えるたびに「内容」も増えてしまいます。
4. 傾向(disposition)と役割(role)― 取り除いたら物が変わるか
特定依存継続体のうち、何かの過程の中で初めて現れるものを、実現可能体(realizable entity)と呼びます。代表が傾向(disposition)と役割(role)です。
BFO の定義には、**別名(altLabel)**が付いています。この 2 行を並べると本質が見えます。
disposition : internally-grounded realizable entity (根拠が物の内側にある)
role : externally-grounded realizable entity (根拠が物の外側にある)
**決め手は「取り除いたとき、物が変わるか」**です。
| 問い | 傾向(disposition) | 役割(role) |
|---|---|---|
| 例 | 真空バルブのシールの摩耗しやすさ | 作業者が担う段取り作業者の役割 |
| 取り除くには? | 物を作り変える(バルブを交換する) | 辞令や担当を変えるだけ |
| 取り除いた後、物は? | 変わっている | 同じまま(その人の体は変わらない) |
| 根拠 | 材質・構造(内側) | 職務分掌の規程(外側) |
摩耗しやすさは、鋳造という過程の中で初めて「摩耗」として実現します。棚に置いたバルブは摩耗しません。役割も、段取り替えという過程の中で実現します。
🏭 製造現場では: 傾向と役割を分けると、保全の計画(部品の摩耗 → 交換)と人の配置(担当 → 辞令)を混ぜずに扱えます。また「権限は人ではなく役割に与える」という職務分掌の考え方が、そのまま書けます。人が異動しても、役割と、その役割が担う工程のつながり(このプロジェクトでは「段取り作業者 → 工程 51 段取り替え」など)は残るので、属人化を避けるのに役立ちます。
✅ 確認問題(4 章)
Q5. 次は傾向(disposition)と役割(role)のどちらでしょう。
(a) プランジャチップの「すり減りやすさ」 (b) ある課が担う「相談先」という立場 (c) 金型の「熱がこもりやすい」性質
答え
- (a) 傾向: 取り除くにはチップを交換するしかありません
- (b) 役割: 規程を変えれば別の課に移り、課の中身は変わりません
- (c) 傾向: 金型の形や冷却の構造が根拠です(内側)。直すには金型を作り変える必要があります
5. 判定フロー
ここまでの決め手を、迷ったときに順にたどれる形にまとめます。
Q1. 時間の中で展開するものか?(始まりと終わりがあり、時間的な部分を持つ)
YES → 生起体(occurrent)……… 過程(process)など
NO → 継続体(continuant)……… Q2 へ
Q2. 何かに依存せず、単独で存在できるか?
YES → 独立継続体 ……… Q3 へ
NO → 依存する ………… Q4 へ
Q3. 物質でできているか?
YES → 物質的なもの(material entity)。物(object)・物の集まり(object aggregate)など
NO → 物質でないもの。場所なら site
Q4. 複製(コピー)がありうるか?
YES → 総称依存継続体 = 情報・内容
NO → 特定依存継続体 ……… Q5 へ
Q5. それが現れるのに、別の過程が要るか?
NO → 性質(quality)
YES → 実現可能体 ……… Q6 へ
Q6. それを取り除いたとき、担い手は物理的に変わるか?
YES → 傾向(disposition)
NO → 役割(role)
解いてみよう: 「是正処置報告書に書かれた『原因: シール摩耗』」をたどる
| 問い | 考え方 | 答え |
|---|---|---|
| Q1 時間の中で展開するか? | 報告書の記述は、ある瞬間に全体がそこにある | いいえ → 継続体 |
| Q2 単独で存在できるか? | 記述は、紙かファイルが無いと存在できない | いいえ → 依存する |
| Q4 コピーできるか? | 別の紙にも写せる | はい → 総称依存(情報) |
ここで止まります。「シール摩耗」そのもの(バルブに内在する傾向)と、「原因はシール摩耗だ」という主張(情報)は、別のものだと分かります。この区別が、6 章の「因果の主張」につながります。
6. 製造現場を切ってみた ― 6 つの実例
このプロジェクトで実際に判断した例です。却下した候補が判断の中身です。
| もの | 採用した親 | 決め手 | 却下した候補 |
|---|---|---|---|
| キャビティ(金型の中の、溶湯が満たす空間) | site(場所) | 物質ではなく空間。境界が金型の面と一致する | 物の一部(fiat object part): キャビティは金属でできた部分ではない |
| 管理項目(鋳造圧力、型内真空度) | IOF の process characteristic(過程の属性) | 75 MPa は機械の性質ではなく、鋳造という過程の属性 | 性質(quality): 性質は物に内在する。「測れるもの=性質」ではない |
| 五感の手がかり(「型開きの音がいつもと違う」) | 情報 | 音は鳴り終われば消えるが、「違う音がした」という記録は残る(担い手の消滅テスト) | 性質: 音の高さそのものを扱いたいなら正しいが、扱いたいのは報告 |
| 因果の主張(「シール摩耗 → ガス巣」) | 情報(記述的な情報) | 因果を関係ではなく 1 個の主張にすると、仮説か確定か・出典・覆されたことを述べられる | 関係で書く: 仮説から確定への昇格が書けない(連載 #4 前編で詳しく) |
| 素因(真空バルブのシール摩耗) | 傾向(disposition) | 取り除くにはバルブを交換するしかない。担い手に内在する | 役割: 担当を変えても摩耗は消えない |
| 文書(QC工程表) | 情報(内容)。紙は物で、内容を担う | 内容はコピーできる。紙を捨てても内容は残る | 紙と内容を 1 つにする: 「同じ内容の写しが 2 枚」が書けない |
7. 機械が守ってくれる所、守ってくれない所
BFO には、「これらを同時に満たすものは無い」という排他の宣言が、2 つの書き方で入っています。
| 書き方 | 件数 | 中身 | 判定フローでは |
|---|---|---|---|
owl:disjointWith(2 つずつ) |
5 組 | 継続体 ⊥ 生起体 | Q1 |
| 物質的なもの ⊥ 物質でないもの | Q3 | ||
| 実現可能体 ⊥ 性質 | Q5 | ||
| 傾向 ⊥ 役割 | Q6 | ||
| 1 次元の時間領域 ⊥ 0 次元の時間領域 | (時間の扱い) | ||
owl:AllDisjointClasses(まとめて) |
5 グループ | 独立継続体・特定依存継続体・総称依存継続体 | Q2・Q4 |
| 空間領域・場所(site)・継続体の境界 | (空間の扱い) | ||
| 過程・過程の境界・時間領域・時空間領域 | (生起体の中) | ||
| 0〜3 次元の空間領域 | (空間の扱い) | ||
| 点・線・面の境界 | (空間の扱い) |
グループの中は互いに排他なので、組に直すと 5 グループで 21 組、合わせて 26 組です。判定フローの Q1〜Q6 の分岐は、どれも排他の宣言で守られています。
⚠️ ハマりどころ:
grep -c 'owl:disjointWith' bfo-core.ttlで数えると 5 と出ます。筆者も最初はこれで「排他は 5 組だけ」と思い込みました。owl:AllDisjointClassesで書かれた 5 グループを見落としていたのです。公理をgrepで数えるのは危険で、書き方が複数ある前提で調べる必要があります。
この宣言は読み物ではなく、推論器が機械的に検査するきまりです。たとえば、ある概念を傾向と役割の両方の子にしてみます。
ex:MoldWearTendency rdfs:subClassOf obo:BFO_0000016 , # disposition(傾向)
obo:BFO_0000023 . # role(役割)
推論器(HermiT)にかけると、こう止まります。
ERROR There are 1 unsatisfiable classes in the ontology.
ERROR unsatisfiable: https://example.org/demo/MoldWearTendency
「このクラスに当てはまるものは、1 つも存在できない」という判定です。目で見るレビューでは見落とす誤りを、機械が見つけてくれます。独立継続体と総称依存継続体(3 章の紙と内容)を両方親にしても、同じように止まります。
🏭 製造現場では: 設備マスタや部品マスタに、うっかり矛盾する分類が紛れ込むことがあります。排他のきまりがある所は、登録した時点で機械が止めてくれるので、マスタの品質管理に使えます。
裏返すと、守ってくれない所が 2 つあります。
- 宣言の無い組: たとえば物(object)と物の集まり(object aggregate)は排他と宣言されていないので、両方を親にしても矛盾になりません。「設備 1 台」と「設備の集まり(ライン)」の取り違えは、機械的には見つかりません。
- 間違った方を 1 つだけ選んだとき: 排他が検出するのは「両方に入れた」ことだけです。鋳造圧力を(過程の属性ではなく)性質(quality)の子にだけしても、矛盾は起きません。どの分岐を選ぶかは、自分で正しく決めるしかないのです。
8. 製造業で何に効くのか ― このプロジェクトで実際に効いたこと
ここまでの区分が、製造現場のどんな困りごとに効いたかをまとめます。いずれも、このプロジェクトで問い合わせ(SPARQL)を書いて、実際に答えが返ることを確かめたものです。
| 現場の困りごと | 効いた区分 | できるようになった問い |
|---|---|---|
| 推奨された対策が実施されたのか分からない | 継続体(情報)と生起体(過程)を分ける | 「この不良に推奨される対策と、実際に実施された対策は何か」 |
| 判断基準の出どころが分からない・文書が二重管理になっている | 情報(内容)を個体にする | 「この設備の判断基準と、それを定める文書は何か。定める文書の無い基準はどれか」 |
| 部品の交換と担当者の変更が同じ表で管理されている | 傾向と役割を分ける | 「この部品の摩耗が引き起こしうる不良は何か」と「この役割が担う工程はどれか」を別々に問える |
| 設備・工程・組織のつながりが部署ごとに別の表 | IOF の共通の語彙 | 「この設備が属する工程と、それを所管する組織は何か」 |
| マスタに矛盾する分類が紛れ込む | 排他のきまり(26 組) | 排他の 2 つに同時に入れると、登録した時点で推論器が矛盾を検出する |
⚠️ ただし、BFO・IOF を入れただけでこれらが解決するわけではありません。区分に沿ってデータを整える手間(このプロジェクトでは 14 種類の文書・表から、自作の語彙とあわせて約 1 万の事実(トリプル)を作りました)が要ります。その手間に見合うのは、「部署をまたいで同じ問いを繰り返し立てる」ような使い方のときです。
9. ハマりどころ集
① BFO のクラスに直接データを入れない
「上位オントロジーを導入する」と聞いて、DCM-01 を BFO の「物(object)」として直接書きたくなります。これは最初の典型的な誤りです。
IOF Core の実物を数えると、BFO を親にした所(rdfs:subClassOf)は 32 か所、BFO のクラスに直接データを書いた所(rdf:type)は 0 か所です。データは、BFO の子孫にあたる IOF や自作のクラスの個体として書きます。
② 「測れる=性質」ではない
鋳造圧力は数値で測れますが、BFO の性質(quality)ではありません。性質は物に内在するもので、鋳造圧力は鋳造という過程の属性です(6 章の管理項目)。
③ 日本語の解説書は「BFO の日本語版」ではない
日本語でオントロジー工学を学ぼうとすると、溝口理一郎氏の著作(YAMATO、Hozo)に行き着きます。ただしこれは BFO とは別系統で、役割の扱いなど具体的な判断が異なります。「同じものの日本語解説」として読むと混乱します。同じ問題に別の答えを出した例として読むと、BFO の選択がかえって際立ちます。
④ 紹介されがちなリンクが切れている
学習リソースとして紹介される industryportal.enit.fr/ontologies/IOF-CORE は、2026 年 10 月時点で 404 でした(ポータル自体は生きています)。また、IOF の用語の名前は https://spec.industrialontologies.org/ontology/construct/<名前> です。.../ontology/core/Core/ はオントロジー自体の名前で、用語の名前空間ではありません。ここを間違えると、読み込んでも何も解決しません(次回詳しく扱います)。
⑤ 推論器が黙っていても、正しいとは限らない
7 章のとおり、推論器が検査できるのは、宣言されたきまりの範囲だけです。きまりが無ければ何も言いません。 推論器が通ることは、設計が正しいことの必要条件であって、十分条件ではありません。
まとめ
- BFO は **36 クラスの「分類の枠組み」**です。製造業の語彙は持たず、上に IOF や自作の語彙を乗せて使います
- 切り分けの決め手は 3 つです
- ある瞬間に全体があるか → 継続体か生起体か
- コピーできるか → 情報(総称依存)か、担い手に張り付くもの(特定依存)か
- 取り除いたら物が変わるか → 傾向か役割か
- 機械(推論器)が守ってくれるのは、排他と宣言された 26 組に同時に入れたときだけです。どの分岐を選ぶかは自分で決め、却下した候補と理由を記録するのが大事です
- 製造現場では、推奨と実施の区別、文書の内容と紙の区別、部品の傾向と人の役割の区別が、部署をまたいだ問いに答える土台になります
✅ 理解度チェック(最後に)
学習目標に戻って、声に出して説明できるか確かめてください。
- 「BFO は器ではなく、器の分類体系」とはどういう意味か。RDB に例えると何に当たるか
- 「真空度」(過程の属性)、「真空度が 8.3 kPa だったという記録」(情報)、「真空バルブの摩耗しやすさ」(傾向)を、3 つの問いで切り分けられるか
- 傾向と役割の両方を親にしたクラスを推論器にかけると、何が起きるか。物と物の集まりの両方を親にした場合はどうか。鋳造圧力を性質の子にだけした場合はどうか
- 自分の職場で「同じ言葉が別のものを指している」例を 1 つ挙げ、BFO のどの区分で分けられるか説明できるか
3 の答え
傾向と役割は排他と宣言されているので、推論器は「当てはまるものが存在できないクラス(unsatisfiable)」として止めます。物と物の集まりは排他と宣言されていないので、何も言いません。鋳造圧力を性質の子にだけした場合も、排他の 2 つに同時に入れたわけではないので何も言いません。どちらも、誤りに自分で気づくしかありません。
手を動かして確かめる課題
読むだけより、実物を開くと定着します。所要時間は 15 分ほどです。
- BFO 2020 のリポジトリ(参考のリンク)から
21838-2/owl/bfo-core.ttlを取得する - 1 章のコマンドで、製造業の言葉が 0 件であることを確かめる
- ファイルの中で
dispositionとroleを探し、skos:altLabel(別名)を読み比べる。「internally-grounded」と「externally-grounded」の違いが、4 章の決め手と同じことを言っているか確かめる -
owl:disjointWithとowl:AllDisjointClassesの両方を検索し、7 章の 5 組と 5 グループがそろっているか数える。grep -c 'owl:disjointWith'だけだと 5 と出て、グループを見落とすことも確かめる
次回は 「IOF を手元で動かすまでの落とし穴」(近日公開)です。名前空間の取り違え、ネットにつながずに読み込む設定(catalog)、BFO の版の衝突を扱います。工場のネットワークから切り離した環境でも動かせるようにする方法でもあります。
参考
- BFO 2020(ISO/IEC 21838-2): 公式サイト https://basic-formal-ontology.org/ / GitHub https://github.com/BFO-ontology/BFO-2020 (CC BY 4.0)
- IOF(Industrial Ontology Foundry)オントロジー: 公式サイト https://www.industrialontologies.org/ / GitHub https://github.com/iofoundry/ontology (MIT License)
- ROBOT(オントロジーのコマンドラインツール。推論器 HermiT を同梱): https://robot.obolibrary.org/
本記事の題材(工場・設備・文書・データ、動画に出る会社名「碧海軽合金株式会社」・工場名「衣浦工場」)はすべて架空のもので、実在の企業・工場とは関係ありません。






