\[
\begin{array}{l}
\left\{\begin{array}{lll}
reachable(x) &\leftarrow & start(x). \\
reachable(y) & \leftarrow & reachable(x) \wedge edge(x,y).
\end{array}\right\} \\
\forall x : reachable(x) \Rightarrow visit(x). \\
\left\{\begin{array}{lll}
visit(x) &\leftarrow & start(x). \\
visit(y) &\leftarrow & visit(x) \wedge selEdge(x,y).
\end{array}\right\} \\
\forall x~y : selEdge(x,y) \Rightarrow edge(x,y). \\
\{ totalTime(t) \leftarrow t = sum\{ x~y : selEdge(x,y) : time(x,y)\}. \} \\
\{ totalFuel(f) \leftarrow f = sum\{ x~y : selEdge(x,y) : fuel(x,y)\}. \} \\
\end{array}
\]
2. Pre and post processing MX
- Optimal workflow of MX depends on
- input structure S
- output vocabulary Vout
- dependencies between definitions
- $\dots$
- Extract
special cases
and solve them
efficiently
-
E.g. evaluate definitions depending on completely given information
$\Rightarrow$ Split MX workflow
2. Pre- and postprocessing MX (2)
Four cases:
-
Preprocess
-
Search
-
Postprocess
-
Forget
- Easy to express declaratively
$\Rightarrow$ Define these 4 concepts using $FO({ID})$
$\Rightarrow$ Calculate their model using ${IDP}$
Spanning Tree Example
\[\left\{\begin{array}{lll}
reachable(x) &\leftarrow & start(x). \\
reachable(y) & \leftarrow & reachable(x) \wedge edge(x,y). \\
visit(x) &\leftarrow & start(x). \\
visit(y) & \leftarrow & visit(x) \wedge selEdge(x,y).
\end{array}\right\}\]
$\forall x : reachable(x) \Rightarrow visit(x).$
$\dots$
3. Splitting definitionS
-
Previous tasks depend on definition structure
$\Rightarrow$ split definitions
Splitting Definitions
- Only allowed if no
dependency loops
are broken
\[\left\{\begin{array}{lll}
samedef(r,r). & & \\
samedef(r,r') & \leftarrow & in(r) = in(r') \wedge head(r) = head(r'). \\
samedef(r,r') & \leftarrow & in(r) = in(r') \wedge \\
& & dep(in(r), head(r),head(r')) \wedge \\
& & dep(in(r), head(r'),head(r)). \\
\end{array}\right\}\]
Conclusion
- Declarative approach works
- Declarative systems hard to develop + maintain
- For some tasks (optimization, analysis) development using bootstrapping is
fast
,
easy
, and sufficiently
efficient
Reference
Meta-level Representations in the IDP Knowledge Base System: Towards Bootstrapping Inference Engine Development
B. Bogaerts, J. Jansen, B. De Cat, G. Janssens, M. Bruynooghe and M. Denecker