var smallFry = new Baby(); smallFry.DueDate = new DateTime(2012,06,04); smallFry.Sex = Sex.Male; //TODO: fill this in: smallFry.Name = ""; this.Craving = Food.Cereal; this.Mood = Feelings.Excited; Hubs.Mood = this.Mood;So, as a quick exercise, I decided to convert the same knowledge into BKO:
due-date-of |baby: smallFry> => |date: 2012-06-04> sex-of |baby: smallFry> => |gender: male> name-of |baby: smallFry> => |> craving |me> => |food: cereal> mood-of |me> => |feelings: excited> mood-of husband-of |me> => mood-of |me>Some notes:
1) BKO doesn't need "new SomeObject". context.learn() takes care of that if it is a ket it hasn't seen before (in this case |baby: smallFry> and |me>)
2) the BKO representation is "uniform". They all take the form of:
OP KET => SUPERPOSITION
3) there are some interesting similarities between object oriented and bko, as should be clear from the example. Though BKO is more "dynamic". In object-orientated, if you want your objects to support new methods you have to dig into the relevant class(es). In BKO this is never an issue.