| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Demo: Modelling Cost of Travel Paths Between Towns
www.xdb2.com/Example/Ex112.asp demos how to represent things needed to
calculate the cost of traveling between any two towns via multiple
paths. The example allows the path between any two towns to be uni or
bi-directional. The example allows the specification of travel cost
during any time period of each weekday.
More specifically, the example represents the following things: Four towns named a, b, c, d (imagine them forming a square). There are paths from a to b, b to c, c to d and d to a. There are also opposite paths from a to d, d to c, c to b and b to a. In addition, there are two uni-directional cross paths, one from a to c and the second from b to d. The cost of travel from town a to town b on Monday between 00:00 and 24:00 is 1.00.
The script below stores above things:
// Create towns a, b, c, d
CREATE2 *town.cls = thing; CREATE2 *a.cls = town; CREATE2 *b.cls = town; CREATE2 *c.cls = town; CREATE2 *d.cls = town;
// Create directional verb "to"
// which leads to lower level (aka creature)
CREATE2 *goto.cls = verb;
CREATE2 goto.vbType = cr;
// Create a square shaped graph
// Note: outer paths are bi-dir
CREATE2 a.goto = b;
CREATE2 b.goto = a;
CREATE2 b.goto = c;
CREATE2 c.goto = b;
CREATE2 c.goto = d;
CREATE2 d.to = c;
CREATE2 d.goto = a;
CREATE2 a.goto = d;
// Note: inner cross paths are uni-dir
CREATE2 a.goto = c;
CREATE2 b.goto = d;
// Create weekdays
CREATE2 *weekday.cls = thing;
// Create start time of day (inclusive)
CREATE2 *start.cls = thing;
// Create end time of day (exclusive)
CREATE2 *end.cls = thing;
// Create costs
CREATE2 *cost.cls = thing;
// Create it cost 1.00 to go from town a to town b
// on monday between 00:00 and 24:00
CREATE2 (a.goto=b).weekday = +monday; CREATE2 ((a.goto=b).weekday=monday).start = +00:00; CREATE2 (((a.goto=b).weekday=monday).start=00:00).end = +24:00; CREATE2 ((((a.goto=b).weekday=monday).start=00:00).end=24:00).cost =+1.00; Received on Sun Nov 07 2004 - 20:07:49 CST
![]() |
![]() |