mirror of
https://github.com/NotXia/unibo-ai-notes.git
synced 2025-12-15 19:12:22 +01:00
263 lines
10 KiB
TeX
263 lines
10 KiB
TeX
\chapter{Ontologies}
|
|
|
|
\begin{description}
|
|
\item[Ontology] \marginnote{Ontology}
|
|
Formal (non-ambiguous) and explicit (obtainable through a finite sound procedure)
|
|
description of a domain.
|
|
|
|
\item[Category] \marginnote{Category}
|
|
Can be organized hierarchically on different levels of generality.
|
|
|
|
\item[Object] \marginnote{Object}
|
|
Belongs to one or more categories.
|
|
|
|
\item[Upper/general ontology] \marginnote{Upper/general ontology}
|
|
Ontology focused on the most general domain.
|
|
|
|
Properties:
|
|
\begin{itemize}
|
|
\item Should be applicable to almost any special domain.
|
|
\item Combining general concepts should not incur in inconsistences.
|
|
\end{itemize}
|
|
|
|
Approaches to create ontologies:
|
|
\begin{itemize}
|
|
\item Created by philosophers/logicians/researchers.
|
|
\item Automatic knowledge extraction from well-structured databases.
|
|
\item Created from text documents (e.g. web).
|
|
\item Crowd-sharing information.
|
|
\end{itemize}
|
|
\end{description}
|
|
|
|
|
|
\section{Categories}
|
|
\begin{description}
|
|
\item[Category] \marginnote{Category}
|
|
Used in human reasoning when the goal is category-driven (in contrast to specific-instance-driven).
|
|
|
|
In first order logic, categories can be represented through:
|
|
\begin{descriptionlist}
|
|
\item[Predicate] \marginnote{Predicate categories}
|
|
A predicate to tell if an object belongs to a category
|
|
(e.g. \texttt{Car(c1)} indicates that \texttt{c1} is a car).
|
|
|
|
\item[Reification] \marginnote{Reification}
|
|
Represent categories as objects as well (e.g. $\texttt{c1} \in \texttt{Car}$).
|
|
\end{descriptionlist}
|
|
\end{description}
|
|
|
|
\subsection{Reification properties and operations}
|
|
\begin{description}
|
|
\item[Membership] \marginnote{Membership}
|
|
Indicates if an object belongs to a category.
|
|
(e.g. $\texttt{c1} \in \texttt{Car}$).
|
|
|
|
\item[Subclass] \marginnote{Subclass}
|
|
Indicates if a category is a subcategory of another one.
|
|
(e.g. $\texttt{Car} \subset \texttt{Vehicle}$).
|
|
|
|
\item[Necessity] \marginnote{Necessity}
|
|
Members of a category enjoy some properties
|
|
(e.g. $(\text{x} \in \texttt{Car}) \Rightarrow \texttt{hasWheels(x)}$).
|
|
|
|
\item[Sufficiency] \marginnote{Sufficiency}
|
|
Sufficient conditions to be part of a category\\
|
|
(e.g. $\texttt{hasPlate(x)} \land \texttt{hasWheels(x)} \Rightarrow \texttt{x} \in \texttt{Car}$).
|
|
|
|
\item[Category-level properties] \marginnote{Category-level properties}
|
|
Category themselves can enjoy properties\\
|
|
(e.g. $\texttt{Car} \in \texttt{VehicleType}$)
|
|
|
|
\item[Disjointness] \marginnote{Disjointness}
|
|
Given a set of categories $S$, the categories in $S$ are disjoint iff they all have different objects:
|
|
\[ \texttt{disjoint($S$)} \iff (\forall c_1, c_2 \in S, c_1 \neq c_2 \Rightarrow c_1 \cap c_2 = \emptyset) \]
|
|
|
|
\item[Exhaustive decomposition] \marginnote{Exhaustive decomposition}
|
|
Given a category $c$ and a set of categories $S$, $S$ is an exhaustive decomposition of $c$ iff
|
|
any element in $c$ belongs to at least a category in $S$:
|
|
\[ \texttt{exhaustiveDecomposition($S$, $c$)} \iff (\forall o \in c \iff \exists c_2 \in S: o \in c_2) \]
|
|
|
|
\item[Partition] \marginnote{Partition}
|
|
Given a category $c$ and a set of categories $S$, $S$ is a partition of $c$ when:
|
|
\[ \texttt{partition($S$, $c$)} \iff \texttt{disjoint($S$)} \land \texttt{exhaustiveDecomposition($S$, $c$)} \]
|
|
\end{description}
|
|
|
|
|
|
\subsection{Physical composition}
|
|
Objects (meronyms) are part of a whole (holonym).
|
|
|
|
\begin{description}
|
|
\item[Part-of] \marginnote{Part-of}
|
|
If the objects have a structural relation (e.g. $\texttt{partOf(cylinder1, engine1)}$).
|
|
|
|
Properties:
|
|
\begin{descriptionlist}
|
|
\item[Transitivity] $\texttt{partOf(x, y)} \land \texttt{partOf(y, z)} \Rightarrow \texttt{partOf(x, z)}$
|
|
\item[Reflexivity] $\texttt{partOf(x, x)}$
|
|
\end{descriptionlist}
|
|
|
|
\item[Bunch-of] \marginnote{Bunch-of}
|
|
If the objects do not have a structural relation.
|
|
Useful to define a composition of countable objects
|
|
(e.g. $\texttt{bunchOf({nail1, nail3, nail4})}$).
|
|
\end{description}
|
|
|
|
|
|
\subsection{Measures}
|
|
|
|
A property of objects.
|
|
|
|
\begin{description}
|
|
\item[Quantitative measure] \marginnote{Quantitative measure}
|
|
Something that can be measured using a unit\\
|
|
(e.g. $\texttt{length(table1)} = \texttt{cm(80)}$).
|
|
|
|
Qualitative measures propagate when using \texttt{partOf} or \texttt{bunchOf}
|
|
(e.g. the weight of a car is the sum of its parts).
|
|
|
|
\item[Qualitative measure] \marginnote{Qualitative measure}
|
|
Something that can be measured using terms with a partial or total order relation
|
|
(e.g. $\{ \texttt{good}, \texttt{neutral}, \texttt{bad} \}$).
|
|
|
|
Qualitative measures do not propagate when using \texttt{partOf} or \texttt{bunchOf}.
|
|
|
|
\item[Fuzzy logic] \marginnote{Fuzzy logic}
|
|
Provides a semantics to qualitative measures (i.e. convert qualitative to quantitative).
|
|
\end{description}
|
|
|
|
|
|
\subsection{Things vs stuff}
|
|
|
|
\begin{description}
|
|
\item[Intrinsic property] \marginnote{Intrinsic property}
|
|
Related to the substance of the object. It is retained when the object is divided
|
|
(e.g. water boils at 100°C).
|
|
|
|
\item[Extrinsic property] \marginnote{Extrinsic property}
|
|
Related to the structure of the object. It is not retained when the object is divided
|
|
(e.g. the weight of an object changes when split).
|
|
|
|
\item[Substance] \marginnote{Substance}
|
|
Category of objects with only intrinsic properties.
|
|
|
|
\begin{description}
|
|
\item[Stuff] \marginnote{Stuff}
|
|
The most general substance category.
|
|
\end{description}
|
|
|
|
\item[Count noun] \marginnote{Count noun}
|
|
Category of objects with only extrinsic properties.
|
|
|
|
\begin{description}
|
|
\item[Things] \marginnote{Things}
|
|
The most general object category.
|
|
\end{description}
|
|
\end{description}
|
|
|
|
|
|
|
|
\section{Semantic networks}
|
|
\marginnote{Semantic networks}
|
|
Graphical representation of objects and categories connected through labelled links.
|
|
|
|
\begin{figure}[h]
|
|
\centering
|
|
\includegraphics[width=0.4\textwidth]{img/semantic_network.png}
|
|
\caption{Example of semantic network}
|
|
\end{figure}
|
|
|
|
\begin{description}
|
|
\item[Objects and categories] Represented using the same symbol.
|
|
|
|
\item[Links] Four different types of links:
|
|
\begin{itemize}
|
|
\item Relation between objects (e.g. \texttt{SisterOf}).
|
|
\item Property of a category (e.g. 2 \texttt{Legs}).
|
|
\item Is-a relation (e.g. \texttt{SubsetOf}).
|
|
\item Property of the members of a category (e.g. \texttt{HasMother}).
|
|
\end{itemize}
|
|
\end{description}
|
|
|
|
\begin{description}
|
|
\item[Single inheritance reasoning] \marginnote{Single inheritance reasoning}
|
|
Starting from an object, check if it has the queried property.
|
|
If not, iteratively move up to the category it belongs to and check for the property.
|
|
|
|
\item[Multiple inheritance reasoning] \marginnote{Multiple inheritance reasoning}
|
|
Reasoning is not possible as it is not clear which parent to choose.
|
|
\end{description}
|
|
|
|
\begin{description}
|
|
\item[Limitations]
|
|
Compared to first order logic, semantic networks do not have:
|
|
\begin{itemize}
|
|
\item Negations.
|
|
\item Universally and existentially quantified properties.
|
|
\item Disjunctions.
|
|
\item Nested function symbols.
|
|
\end{itemize}
|
|
|
|
Many semantic network systems allow to attach special procedures to handle special cases
|
|
that the standard inference algorithm cannot handle.
|
|
This approach is powerful but does not have a corresponding logical meaning.
|
|
|
|
\item[Advantages]
|
|
With semantic networks it is easy to attach default properties to categories and
|
|
override them on the objects (i.e. \texttt{Legs} of \texttt{John}).
|
|
\end{description}
|
|
|
|
|
|
|
|
\section{Frames}
|
|
\marginnote{Frames}
|
|
Knowledge that describes an object in terms of its properties.
|
|
Each frame has:
|
|
\begin{itemize}
|
|
\item An unique name
|
|
\item Properties represented as pairs \texttt{<slot - filler>}
|
|
\end{itemize}
|
|
|
|
\begin{example}
|
|
\phantom{}\\[-1em]
|
|
\begin{lstlisting}[mathescape=true, language={}]
|
|
(
|
|
toronto
|
|
<:Instance-Of City>
|
|
<:Province ontario>
|
|
<:Population 4.5M>
|
|
)
|
|
\end{lstlisting}
|
|
\end{example}
|
|
|
|
\begin{description}
|
|
\item[Prototype] \marginnote{Prototype}
|
|
Members of a category used as comparison metric to determine if another object belongs to the same class
|
|
(i.e. an object belongs to a category if it is similar enough to the prototypes of that category).
|
|
|
|
\item[Defeasible value] \marginnote{Defeasible value}
|
|
Value that is allowed to be different when comparing an object to a prototype.
|
|
|
|
\item[Facets] \marginnote{Facets}
|
|
Additional information contained in a slot for its filler (e.g. default value, type, domain).
|
|
|
|
\begin{description}
|
|
\item[Procedural information]
|
|
Fillers can be a procedure that can be activated by specific facets:
|
|
\begin{descriptionlist}
|
|
\item[\texttt{if-needed}] Looks for the value of the slot.
|
|
\item[\texttt{if-added}] Adds a value.
|
|
\item[\texttt{if-removed}] Removes a value.
|
|
\end{descriptionlist}
|
|
\begin{example}
|
|
\phantom{}\\[-1em]
|
|
\begin{lstlisting}[mathescape=true, language={}]
|
|
(
|
|
toronto
|
|
<:Instance-Of City>
|
|
<:Province ontario>
|
|
<:Population [if-needed QueryDB]>
|
|
)
|
|
\end{lstlisting}
|
|
\end{example}
|
|
\end{description}
|
|
\end{description} |