Loading article…
知識表現、オントロジーコンポーネント、およびオブジェクト指向プログラミングや設計を含むオントロジーエンジニアリングにおいて、is-a ( is_aまたはis aとも表記される)は、抽象化(型、クラスなど)間の推定関係であり、あるクラスAが別のクラスBのサブクラスである(したがってBはAのスーパークラスである)。言い換えれば、 Aの仕様がBの仕様を暗示する場合、型Aは型Bのサブタイプである。つまり、Aの仕様を満たすオブジェクト(またはクラス)は、Bの仕様も満たす。なぜなら、Bの仕様はAよりも弱いからである。[ 1 ]
例えば、猫は動物「である」が、その逆は成り立たない。すべての猫は動物だが、すべての動物が猫であるとは限らない。すべての動物に共通する行動は動物クラスで定義され、猫にのみ共通する行動は猫クラスで定義される。猫クラスを動物クラスを「拡張」するものとして定義することで、すべての猫は動物用に定義された行動を「継承」し、猫用にその行動を明示的にコーディングする必要がなくなる。
is -a関係は、型 (クラス) 間のhas-a ( has_aまたはhas a ) 関係とは対照的です。has -a関係とis-a関係を混同することは、オブジェクトとその従属関係の現実世界の関係のモデル (コンピュータ プログラムなど) を設計する際によくある間違いです。is -a関係は、オブジェクト (インスタンス) と型 (クラス) 間のinstance-of関係とも対照的です。型とトークンの区別を参照してください。
関係性をまとめると次のようになります。