|
Home Contents: |
7.3.7 Conflict-actIntroductionHere we give some examples of ontology-driven searches. Example
//
// CONFLICT ACT EXAMPLE
//
// Based on Henrik Scharfe's formalization of the Gideon-story
// from Judges 6-8 in the Bible.
//
// Ulrik Petersen
// Created: September 13, 2003
// Last update: September 13, 2003
// Type hierarchy
Entity > Physical.
Physical > Object, Collection, Process.
Object > Rock, Person, Winepress.
Collection > People_group, Men.
Process > Act.
Act > Conflict_act.
Conflict_act > Kill, Pursue.
// Catalog of instances
Men = Ephraim.
Person = Oreb, Zeeb.
Rock = Rock_of_Oreb.
Winepress = Winepress_of_Zeeb.
People_group = Midian.
// The men of Ephraim killed Oreb at the Rock of Oreb.
jud7(verse25b,
[Kill]-
-agnt->[Men : Ephraim],
-ptnt->[Person : Oreb],
-loc->[Rock: Rock_of_Oreb]).
// The men of Ephraim killed Zeeb in the winepress of Zeeb.
jud7(verse25c,
[Kill]-
-agnt->[Men : Ephraim],
-ptnt->[Person : Zeeb],
-loc->[Winepress: Winepress_of_Zeeb]).
// The mean of Ephraim pursued Midian.
jud7(verse25d,
[Pursue]-
-agnt->[Men : Ephraim],
-ptnt->[People_group : Midian]).
// Rules
// Connect Chapter 7 together into one predicate
judges(7, v, G) :- jud7(v, G).
// Conflict act
// returns agent (s1), action (a), and ptnt (s2) of conflict-acts.
conflict(c,v,s1,a,s2) :-
judges(c,v,g), // Get the chapter, verse, and graph
subsume([Conflict_act]-
-agnt->[Entity],
-ptnt->[Entity], g), // Make sure there is a conflict-act in g
branchOfCG([Conflict_act]-agnt->[r : s1],g), // Get the agnt (s1)
branchOfCG([Conflict_act]-ptnt->[s : s2],g), // Get the patient (s2)
branchOfCG([a]-agnt->[r : s1], g), // Get the conlict-act
isSubType(a, Conflict_act). // Make sure it is a conflict-act
UsageIf we ask the query: ?- conflict(c,v,s1,a,s2). We get the following answer:
{c = 7, v = verse25b, s1 = Ephraim, a = Kill, s2 = Oreb}
{c = 7, v = verse25c, s1 = Ephraim, a = Kill, s2 = Zeeb}
{c = 7, v = verse25d, s1 = Ephraim, a = Pursue, s2 = Midian}
PrevLite: 7.3.6 concOfCG NextLite: 7.3.8 Reusing predicates Prev: 7.3.6 concOfCG Up: 7.3 Examples Next: 7.3.8 Reusing predicates |