khammurabi 0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/khammurabi-0.2/docs/classes/Array.html +563 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000004.html +21 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000005.html +18 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000006.html +27 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000007.html +23 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000008.html +29 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000009.html +47 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000010.html +19 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000011.html +22 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000012.html +22 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000013.html +22 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000014.html +16 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000015.html +20 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000016.html +29 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000017.html +25 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000018.html +16 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000019.html +16 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000020.html +16 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000021.html +16 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000022.html +16 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000023.html +16 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000024.html +16 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000025.html +16 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000026.html +16 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000027.html +16 -0
- data/khammurabi-0.2/docs/classes/Array.src/M000028.html +16 -0
- data/khammurabi-0.2/docs/classes/FalseClass.html +139 -0
- data/khammurabi-0.2/docs/classes/FalseClass.src/M000003.html +16 -0
- data/khammurabi-0.2/docs/classes/Fixnum.html +139 -0
- data/khammurabi-0.2/docs/classes/Fixnum.src/M000041.html +22 -0
- data/khammurabi-0.2/docs/classes/Hash.html +163 -0
- data/khammurabi-0.2/docs/classes/Hash.src/M000001.html +28 -0
- data/khammurabi-0.2/docs/classes/Hash.src/M000002.html +22 -0
- data/khammurabi-0.2/docs/classes/Hostilities.html +187 -0
- data/khammurabi-0.2/docs/classes/Hostilities.src/M000043.html +16 -0
- data/khammurabi-0.2/docs/classes/Hostilities.src/M000044.html +16 -0
- data/khammurabi-0.2/docs/classes/Hostilities.src/M000045.html +16 -0
- data/khammurabi-0.2/docs/classes/Hostilities.src/M000046.html +24 -0
- data/khammurabi-0.2/docs/classes/MK.html +330 -0
- data/khammurabi-0.2/docs/classes/MK/ActionObjectDelete.html +200 -0
- data/khammurabi-0.2/docs/classes/MK/ActionObjectDelete.src/M000194.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/ActionObjectDelete.src/M000195.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/ActionObjectDelete.src/M000196.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/ActionObjectDeleteFromWorkingMemory.html +197 -0
- data/khammurabi-0.2/docs/classes/MK/ActionObjectDeleteFromWorkingMemory.src/M000106.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/ActionObjectDeleteFromWorkingMemory.src/M000107.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/ActionObjectDeleteFromWorkingMemory.src/M000108.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/ActionObjectInsert.html +182 -0
- data/khammurabi-0.2/docs/classes/MK/ActionObjectInsert.src/M000292.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/ActionObjectInsert.src/M000293.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/ActionObjectModifyWorkingMemory.html +199 -0
- data/khammurabi-0.2/docs/classes/MK/ActionObjectModifyWorkingMemory.src/M000289.html +23 -0
- data/khammurabi-0.2/docs/classes/MK/ActionObjectModifyWorkingMemory.src/M000290.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/ActionObjectModifyWorkingMemory.src/M000291.html +34 -0
- data/khammurabi-0.2/docs/classes/MK/ActionOutput.html +236 -0
- data/khammurabi-0.2/docs/classes/MK/ActionOutput.src/M000226.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/ActionOutput.src/M000227.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/ActionOutput.src/M000228.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/ActionOutput.src/M000229.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/ActionOutput.src/M000230.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ArbitratorNode.html +273 -0
- data/khammurabi-0.2/docs/classes/MK/ArbitratorNode.src/M000282.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/ArbitratorNode.src/M000283.html +25 -0
- data/khammurabi-0.2/docs/classes/MK/ArbitratorNode.src/M000284.html +23 -0
- data/khammurabi-0.2/docs/classes/MK/ArbitratorNode.src/M000285.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/ArbitratorNode.src/M000286.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/ArbitratorNode.src/M000287.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/ArbitratorNode.src/M000288.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.html +475 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000329.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000330.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000331.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000332.html +24 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000333.html +26 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000334.html +24 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000335.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000336.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000337.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000338.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000339.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000340.html +25 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000341.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000342.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000343.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000344.html +31 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000345.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000346.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000347.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000348.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Cluster.src/M000349.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.html +521 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000305.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000306.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000307.html +29 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000308.html +23 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000309.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000310.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000311.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000312.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000313.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000314.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000315.html +32 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000316.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000317.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000318.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000319.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000320.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000321.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000322.html +23 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000323.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000324.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000325.html +30 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000326.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000327.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/ClusterManager.src/M000328.html +39 -0
- data/khammurabi-0.2/docs/classes/MK/ConstantObjectOperation.html +271 -0
- data/khammurabi-0.2/docs/classes/MK/ConstantObjectOperation.src/M000186.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/ConstantObjectOperation.src/M000187.html +23 -0
- data/khammurabi-0.2/docs/classes/MK/ConstantObjectOperation.src/M000188.html +25 -0
- data/khammurabi-0.2/docs/classes/MK/ConstantObjectOperation.src/M000189.html +23 -0
- data/khammurabi-0.2/docs/classes/MK/ConstantObjectOperation.src/M000190.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/ConstantObjectOperation.src/M000191.html +33 -0
- data/khammurabi-0.2/docs/classes/MK/ConstantObjectOperation.src/M000192.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/ConstantObjectOperation.src/M000193.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ConstantTestNode.html +185 -0
- data/khammurabi-0.2/docs/classes/MK/ConstantTestNode.src/M000251.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/ConstantTestNode.src/M000252.html +23 -0
- data/khammurabi-0.2/docs/classes/MK/ConstantTestNode.src/M000253.html +41 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.html +770 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000115.html +30 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000116.html +32 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000117.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000118.html +29 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000119.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000120.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000121.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000122.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000123.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000124.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000125.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000126.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000127.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000128.html +153 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000129.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000130.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000131.html +24 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000132.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000133.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000134.html +46 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000135.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000136.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000137.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000138.html +29 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000139.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000140.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000141.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000142.html +27 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000143.html +26 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000144.html +23 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000145.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/Engine.src/M000146.html +25 -0
- data/khammurabi-0.2/docs/classes/MK/EqualityTest.html +177 -0
- data/khammurabi-0.2/docs/classes/MK/EqualityTest.src/M000092.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/EqualityTest.src/M000093.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/EqualityTest.src/M000094.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/FalseTest.html +177 -0
- data/khammurabi-0.2/docs/classes/MK/FalseTest.src/M000397.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/FalseTest.src/M000398.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/FalseTest.src/M000399.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.html +823 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000361.html +28 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000362.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000363.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000364.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000365.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000366.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000367.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000368.html +26 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000369.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000370.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000371.html +23 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000372.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000373.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000374.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000375.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000376.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000377.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000378.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000379.html +25 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000380.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000381.html +24 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000382.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000383.html +23 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000384.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000385.html +31 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000386.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000387.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000388.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000389.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000390.html +25 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000391.html +50 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000392.html +31 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000393.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000394.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000395.html +17 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNode.src/M000396.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNodeJoiner.html +261 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNodeJoiner.src/M000276.html +23 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNodeJoiner.src/M000277.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNodeJoiner.src/M000278.html +30 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNodeJoiner.src/M000279.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNodeJoiner.src/M000280.html +29 -0
- data/khammurabi-0.2/docs/classes/MK/GraphNodeJoiner.src/M000281.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/GreaterThanOrEqualTest.html +177 -0
- data/khammurabi-0.2/docs/classes/MK/GreaterThanOrEqualTest.src/M000095.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/GreaterThanOrEqualTest.src/M000096.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/GreaterThanOrEqualTest.src/M000097.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/GreaterThanTest.html +177 -0
- data/khammurabi-0.2/docs/classes/MK/GreaterThanTest.src/M000112.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/GreaterThanTest.src/M000113.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/GreaterThanTest.src/M000114.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/IncorporatorTest.html +139 -0
- data/khammurabi-0.2/docs/classes/MK/IncorporatorTest.src/M000294.html +36 -0
- data/khammurabi-0.2/docs/classes/MK/InequalityTest.html +177 -0
- data/khammurabi-0.2/docs/classes/MK/InequalityTest.src/M000231.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/InequalityTest.src/M000232.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/InequalityTest.src/M000233.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/InstantiatorNode.html +194 -0
- data/khammurabi-0.2/docs/classes/MK/InstantiatorNode.src/M000083.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/InstantiatorNode.src/M000084.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/InstantiatorNode.src/M000085.html +45 -0
- data/khammurabi-0.2/docs/classes/MK/LessThanOrEqualTest.html +177 -0
- data/khammurabi-0.2/docs/classes/MK/LessThanOrEqualTest.src/M000109.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/LessThanOrEqualTest.src/M000110.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/LessThanOrEqualTest.src/M000111.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/LessThanTest.html +177 -0
- data/khammurabi-0.2/docs/classes/MK/LessThanTest.src/M000089.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/LessThanTest.src/M000090.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/LessThanTest.src/M000091.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/Message.html +167 -0
- data/khammurabi-0.2/docs/classes/MK/Message.src/M000081.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/Message.src/M000082.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/MultiChildrenArbitratorNode.html +291 -0
- data/khammurabi-0.2/docs/classes/MK/MultiChildrenArbitratorNode.src/M000243.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/MultiChildrenArbitratorNode.src/M000244.html +25 -0
- data/khammurabi-0.2/docs/classes/MK/MultiChildrenArbitratorNode.src/M000245.html +23 -0
- data/khammurabi-0.2/docs/classes/MK/MultiChildrenArbitratorNode.src/M000246.html +35 -0
- data/khammurabi-0.2/docs/classes/MK/MultiChildrenArbitratorNode.src/M000247.html +23 -0
- data/khammurabi-0.2/docs/classes/MK/MultiChildrenArbitratorNode.src/M000248.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/MultiChildrenArbitratorNode.src/M000249.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/MultiChildrenArbitratorNode.src/M000250.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/MultiChildrenSelectorNode.html +219 -0
- data/khammurabi-0.2/docs/classes/MK/MultiChildrenSelectorNode.src/M000161.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/MultiChildrenSelectorNode.src/M000162.html +23 -0
- data/khammurabi-0.2/docs/classes/MK/MultiChildrenSelectorNode.src/M000163.html +54 -0
- data/khammurabi-0.2/docs/classes/MK/MultiChildrenSelectorNode.src/M000164.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.html +564 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000059.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000060.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000061.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000062.html +24 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000063.html +29 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000064.html +36 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000065.html +23 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000066.html +28 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000067.html +26 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000068.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000069.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000070.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000071.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000072.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000073.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000074.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000075.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000076.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000077.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000078.html +24 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000079.html +23 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectDescription.src/M000080.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectGraphWrapper.html +256 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectGraphWrapper.src/M000180.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectGraphWrapper.src/M000181.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectGraphWrapper.src/M000182.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectGraphWrapper.src/M000183.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectGraphWrapper.src/M000184.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectGraphWrapper.src/M000185.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectIDEqualityTest.html +177 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectIDEqualityTest.src/M000400.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectIDEqualityTest.src/M000401.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectIDEqualityTest.src/M000402.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectIDInequalityTest.html +177 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectIDInequalityTest.src/M000056.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectIDInequalityTest.src/M000057.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectIDInequalityTest.src/M000058.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectOperation.html +290 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectOperation.src/M000098.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectOperation.src/M000099.html +23 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectOperation.src/M000100.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectOperation.src/M000101.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectOperation.src/M000102.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectOperation.src/M000103.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectOperation.src/M000104.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectOperation.src/M000105.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectProduction.html +223 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectProduction.src/M000239.html +24 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectProduction.src/M000240.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectProduction.src/M000241.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectProduction.src/M000242.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectProductionAction.html +211 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectProductionAction.src/M000273.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectProductionAction.src/M000274.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ObjectProductionAction.src/M000275.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/Pair.html +259 -0
- data/khammurabi-0.2/docs/classes/MK/Pair.src/M000298.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/Pair.src/M000299.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/Pair.src/M000300.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/Pair.src/M000301.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/Pair.src/M000302.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Pair.src/M000303.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/Pair.src/M000304.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/ReteParseTreeNode.html +289 -0
- data/khammurabi-0.2/docs/classes/MK/ReteParseTreeNode.src/M000174.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/ReteParseTreeNode.src/M000175.html +24 -0
- data/khammurabi-0.2/docs/classes/MK/ReteParseTreeNode.src/M000176.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/ReteParseTreeNode.src/M000177.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/ReteParseTreeNode.src/M000178.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/ReteParseTreeNode.src/M000179.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ReteParseTreePrinter.html +230 -0
- data/khammurabi-0.2/docs/classes/MK/ReteParseTreePrinter.src/M000234.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/ReteParseTreePrinter.src/M000235.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/ReteParseTreePrinter.src/M000236.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/ReteParseTreePrinter.src/M000237.html +36 -0
- data/khammurabi-0.2/docs/classes/MK/ReteParseTreePrinter.src/M000238.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ReteParseTreeToObjectDescriptionConverter.html +219 -0
- data/khammurabi-0.2/docs/classes/MK/ReteParseTreeToObjectDescriptionConverter.src/M000170.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/ReteParseTreeToObjectDescriptionConverter.src/M000171.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/ReteParseTreeToObjectDescriptionConverter.src/M000172.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ReteParseTreeToObjectDescriptionConverter.src/M000173.html +60 -0
- data/khammurabi-0.2/docs/classes/MK/RootNode.html +181 -0
- data/khammurabi-0.2/docs/classes/MK/RootNode.src/M000295.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/RootNode.src/M000296.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/RootNode.src/M000297.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/TestIDRegistrar.html +247 -0
- data/khammurabi-0.2/docs/classes/MK/TestIDRegistrar.src/M000165.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/TestIDRegistrar.src/M000166.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/TestIDRegistrar.src/M000167.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/TestIDRegistrar.src/M000168.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/TestIDRegistrar.src/M000169.html +28 -0
- data/khammurabi-0.2/docs/classes/MK/TestNode.html +203 -0
- data/khammurabi-0.2/docs/classes/MK/TestNode.src/M000350.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/TestNode.src/M000351.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/TestNode.src/M000352.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Token.html +541 -0
- data/khammurabi-0.2/docs/classes/MK/Token.src/M000254.html +24 -0
- data/khammurabi-0.2/docs/classes/MK/Token.src/M000255.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Token.src/M000256.html +31 -0
- data/khammurabi-0.2/docs/classes/MK/Token.src/M000257.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Token.src/M000258.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Token.src/M000259.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/Token.src/M000260.html +28 -0
- data/khammurabi-0.2/docs/classes/MK/Token.src/M000261.html +26 -0
- data/khammurabi-0.2/docs/classes/MK/Token.src/M000262.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Token.src/M000263.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/Token.src/M000264.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/Token.src/M000265.html +33 -0
- data/khammurabi-0.2/docs/classes/MK/Token.src/M000266.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Token.src/M000267.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Token.src/M000268.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/Token.src/M000269.html +24 -0
- data/khammurabi-0.2/docs/classes/MK/Token.src/M000270.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/Token.src/M000271.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/Token.src/M000272.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/TokenCluster.html +369 -0
- data/khammurabi-0.2/docs/classes/MK/TokenCluster.src/M000211.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/TokenCluster.src/M000212.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/TokenCluster.src/M000213.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/TokenCluster.src/M000214.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/TokenCluster.src/M000215.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/TokenCluster.src/M000216.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/TokenCluster.src/M000217.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/TokenCluster.src/M000218.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/TokenCluster.src/M000219.html +34 -0
- data/khammurabi-0.2/docs/classes/MK/TokenCluster.src/M000220.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/TokenCluster.src/M000221.html +25 -0
- data/khammurabi-0.2/docs/classes/MK/TokenCluster.src/M000222.html +31 -0
- data/khammurabi-0.2/docs/classes/MK/TokenCluster.src/M000223.html +92 -0
- data/khammurabi-0.2/docs/classes/MK/TokenCluster.src/M000224.html +31 -0
- data/khammurabi-0.2/docs/classes/MK/TokenCluster.src/M000225.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/TokenClusterManager.html +156 -0
- data/khammurabi-0.2/docs/classes/MK/TokenClusterManager.src/M000209.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/TokenClusterManager.src/M000210.html +34 -0
- data/khammurabi-0.2/docs/classes/MK/TrueTest.html +177 -0
- data/khammurabi-0.2/docs/classes/MK/TrueTest.src/M000053.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/TrueTest.src/M000054.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/TrueTest.src/M000055.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/UniqueTokenAssurerNode.html +258 -0
- data/khammurabi-0.2/docs/classes/MK/UniqueTokenAssurerNode.src/M000203.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/UniqueTokenAssurerNode.src/M000204.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/UniqueTokenAssurerNode.src/M000205.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/UniqueTokenAssurerNode.src/M000206.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/UniqueTokenAssurerNode.src/M000207.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/UniqueTokenAssurerNode.src/M000208.html +62 -0
- data/khammurabi-0.2/docs/classes/MK/ValueTest.html +275 -0
- data/khammurabi-0.2/docs/classes/MK/ValueTest.src/M000153.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/ValueTest.src/M000154.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ValueTest.src/M000155.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ValueTest.src/M000156.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/ValueTest.src/M000157.html +30 -0
- data/khammurabi-0.2/docs/classes/MK/ValueTest.src/M000158.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/ValueTest.src/M000159.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/ValueTest.src/M000160.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/VariableObjectOperation.html +260 -0
- data/khammurabi-0.2/docs/classes/MK/VariableObjectOperation.src/M000197.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/VariableObjectOperation.src/M000198.html +25 -0
- data/khammurabi-0.2/docs/classes/MK/VariableObjectOperation.src/M000199.html +48 -0
- data/khammurabi-0.2/docs/classes/MK/VariableObjectOperation.src/M000200.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/VariableObjectOperation.src/M000201.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/VariableObjectOperation.src/M000202.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/VariableTestNode.html +317 -0
- data/khammurabi-0.2/docs/classes/MK/VariableTestNode.src/M000353.html +24 -0
- data/khammurabi-0.2/docs/classes/MK/VariableTestNode.src/M000354.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/VariableTestNode.src/M000355.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/VariableTestNode.src/M000356.html +25 -0
- data/khammurabi-0.2/docs/classes/MK/VariableTestNode.src/M000357.html +23 -0
- data/khammurabi-0.2/docs/classes/MK/VariableTestNode.src/M000358.html +25 -0
- data/khammurabi-0.2/docs/classes/MK/VariableTestNode.src/M000359.html +25 -0
- data/khammurabi-0.2/docs/classes/MK/VariableTestNode.src/M000360.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/VariableTestNodeExecutor.html +249 -0
- data/khammurabi-0.2/docs/classes/MK/VariableTestNodeExecutor.src/M000147.html +22 -0
- data/khammurabi-0.2/docs/classes/MK/VariableTestNodeExecutor.src/M000148.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/VariableTestNodeExecutor.src/M000149.html +16 -0
- data/khammurabi-0.2/docs/classes/MK/VariableTestNodeExecutor.src/M000150.html +19 -0
- data/khammurabi-0.2/docs/classes/MK/VariableTestNodeExecutor.src/M000151.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/VariableTestNodeExecutor.src/M000152.html +216 -0
- data/khammurabi-0.2/docs/classes/MK/XiaccEngine.html +191 -0
- data/khammurabi-0.2/docs/classes/MK/XiaccEngine.src/M000051.html +122 -0
- data/khammurabi-0.2/docs/classes/MK/XiaccEngine.src/M000052.html +69 -0
- data/khammurabi-0.2/docs/classes/MK/XiaccParseInput.html +172 -0
- data/khammurabi-0.2/docs/classes/MK/XiaccParseInput.src/M000049.html +24 -0
- data/khammurabi-0.2/docs/classes/MK/XiaccParseInput.src/M000050.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/XiaccParseSpecification.html +174 -0
- data/khammurabi-0.2/docs/classes/MK/XiaccParseSpecification.src/M000047.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/XiaccParseSpecification.src/M000048.html +20 -0
- data/khammurabi-0.2/docs/classes/MK/ZombieNode.html +181 -0
- data/khammurabi-0.2/docs/classes/MK/ZombieNode.src/M000086.html +21 -0
- data/khammurabi-0.2/docs/classes/MK/ZombieNode.src/M000087.html +18 -0
- data/khammurabi-0.2/docs/classes/MK/ZombieNode.src/M000088.html +17 -0
- data/khammurabi-0.2/docs/classes/Object.html +345 -0
- data/khammurabi-0.2/docs/classes/Object.src/M000029.html +21 -0
- data/khammurabi-0.2/docs/classes/Object.src/M000030.html +19 -0
- data/khammurabi-0.2/docs/classes/Object.src/M000031.html +24 -0
- data/khammurabi-0.2/docs/classes/Object.src/M000032.html +19 -0
- data/khammurabi-0.2/docs/classes/Object.src/M000033.html +18 -0
- data/khammurabi-0.2/docs/classes/Object.src/M000034.html +22 -0
- data/khammurabi-0.2/docs/classes/Object.src/M000035.html +16 -0
- data/khammurabi-0.2/docs/classes/Object.src/M000036.html +16 -0
- data/khammurabi-0.2/docs/classes/Object.src/M000037.html +16 -0
- data/khammurabi-0.2/docs/classes/Object.src/M000038.html +16 -0
- data/khammurabi-0.2/docs/classes/Object.src/M000039.html +16 -0
- data/khammurabi-0.2/docs/classes/Object.src/M000040.html +16 -0
- data/khammurabi-0.2/docs/classes/TrueClass.html +139 -0
- data/khammurabi-0.2/docs/classes/TrueClass.src/M000042.html +16 -0
- data/khammurabi-0.2/docs/created.rid +1 -0
- data/khammurabi-0.2/docs/files/License_txt.html +136 -0
- data/khammurabi-0.2/docs/files/ReadMe_txt.html +351 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ActionObjectDeleteFromWorkingMemory_rb.html +109 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ActionObjectDelete_rb.html +109 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ActionObjectInsert_rb.html +109 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ActionObjectModifyWorkingMemory_rb.html +111 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ActionOutput_rb.html +110 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ArbitratorNode_rb.html +108 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ArrayAddon_rb.html +110 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/BooleanAddon_rb.html +101 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ClusterManager2_rb.html +108 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ClusterManager_rb.html +108 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/Cluster_rb.html +110 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ConstantObjectOperation_rb.html +111 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ConstantTestNode_rb.html +111 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/Engine_rb.html +128 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/FixnumAddon_rb.html +101 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/GraphNodeJoiner_rb.html +110 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/GraphNode_rb.html +109 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/HashAddon_rb.html +101 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/Hostilities_rb.html +108 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/InstantiatorNode_rb.html +110 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/Message_rb.html +101 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/MultiChildrenArbitratorNode_rb.html +108 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/MultiChildrenSelectorNode_rb.html +108 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ObjectAddon_rb.html +108 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ObjectDescription_rb.html +112 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ObjectGraphWrapper_rb.html +108 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ObjectOperation_rb.html +110 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ObjectProductionAction_rb.html +111 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ObjectProduction_rb.html +109 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/Pair_rb.html +108 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/QueryNode_rb.html +111 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ReteParseTreeNode_rb.html +108 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ReteParseTreePrinter_rb.html +111 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ReteParseTreeToObjectDescriptionConverter_rb.html +111 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/RootNode_rb.html +109 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/TestIDRegistrar_rb.html +108 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/TestNode_rb.html +109 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/TokenClusterManager_rb.html +110 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/TokenCluster_rb.html +108 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/Token_rb.html +112 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/UniqueTokenAssurerNode_rb.html +110 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ValueTestSuite_rb.html +108 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/VariableObjectOperation_rb.html +112 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/VariableTestNodeExecutor_rb.html +110 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/VariableTestNode_rb.html +111 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/XiaccEngine_rb.html +126 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/XiaccParseInput_rb.html +108 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/XiaccParseSpecification_rb.html +101 -0
- data/khammurabi-0.2/docs/files/nist/khammurabi/ZombieNode_rb.html +108 -0
- data/khammurabi-0.2/docs/fr_class_index.html +86 -0
- data/khammurabi-0.2/docs/fr_file_index.html +77 -0
- data/khammurabi-0.2/docs/fr_method_index.html +428 -0
- data/khammurabi-0.2/docs/index.html +24 -0
- data/khammurabi-0.2/docs/rdoc-style.css +208 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ActionObjectDelete.rb +35 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ActionObjectDeleteFromWorkingMemory.rb +34 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ActionObjectInsert.rb +29 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ActionObjectModifyWorkingMemory.rb +53 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ActionOutput.rb +45 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ArbitratorNode.rb +68 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ArrayAddon.rb +201 -0
- data/khammurabi-0.2/lib/nist/khammurabi/BooleanAddon.rb +3 -0
- data/khammurabi-0.2/lib/nist/khammurabi/Cluster.rb +128 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ClusterManager.rb +96 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ClusterManager2.rb +103 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ConstantObjectOperation.rb +92 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ConstantTestNode.rb +59 -0
- data/khammurabi-0.2/lib/nist/khammurabi/Engine.rb +454 -0
- data/khammurabi-0.2/lib/nist/khammurabi/FixnumAddon.rb +14 -0
- data/khammurabi-0.2/lib/nist/khammurabi/GraphNode.rb +305 -0
- data/khammurabi-0.2/lib/nist/khammurabi/GraphNodeJoiner.rb +83 -0
- data/khammurabi-0.2/lib/nist/khammurabi/HashAddon.rb +29 -0
- data/khammurabi-0.2/lib/nist/khammurabi/Hostilities.rb +24 -0
- data/khammurabi-0.2/lib/nist/khammurabi/InstantiatorNode.rb +60 -0
- data/khammurabi-0.2/lib/nist/khammurabi/Message.rb +19 -0
- data/khammurabi-0.2/lib/nist/khammurabi/MultiChildrenArbitratorNode.rb +97 -0
- data/khammurabi-0.2/lib/nist/khammurabi/MultiChildrenSelectorNode.rb +77 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ObjectAddon.rb +63 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ObjectDescription.rb +192 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ObjectGraphWrapper.rb +46 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ObjectOperation.rb +59 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ObjectProduction.rb +45 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ObjectProductionAction.rb +31 -0
- data/khammurabi-0.2/lib/nist/khammurabi/Pair.rb +49 -0
- data/khammurabi-0.2/lib/nist/khammurabi/QueryNode.rb +44 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ReteParseTreeNode.rb +66 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ReteParseTreePrinter.rb +58 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ReteParseTreeToObjectDescriptionConverter.rb +76 -0
- data/khammurabi-0.2/lib/nist/khammurabi/RootNode.rb +32 -0
- data/khammurabi-0.2/lib/nist/khammurabi/TODO +7 -0
- data/khammurabi-0.2/lib/nist/khammurabi/TestIDRegistrar.rb +63 -0
- data/khammurabi-0.2/lib/nist/khammurabi/TestNode.rb +33 -0
- data/khammurabi-0.2/lib/nist/khammurabi/Token.rb +168 -0
- data/khammurabi-0.2/lib/nist/khammurabi/TokenCluster.rb +177 -0
- data/khammurabi-0.2/lib/nist/khammurabi/TokenClusterManager.rb +36 -0
- data/khammurabi-0.2/lib/nist/khammurabi/UniqueTokenAssurerNode.rb +100 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ValueTestSuite.rb +239 -0
- data/khammurabi-0.2/lib/nist/khammurabi/VariableObjectOperation.rb +87 -0
- data/khammurabi-0.2/lib/nist/khammurabi/VariableTestNode.rb +73 -0
- data/khammurabi-0.2/lib/nist/khammurabi/VariableTestNodeExecutor.rb +246 -0
- data/khammurabi-0.2/lib/nist/khammurabi/XiaccEngine.rb +201 -0
- data/khammurabi-0.2/lib/nist/khammurabi/XiaccParseInput.rb +27 -0
- data/khammurabi-0.2/lib/nist/khammurabi/XiaccParseSpecification.rb +25 -0
- data/khammurabi-0.2/lib/nist/khammurabi/ZombieNode.rb +24 -0
- data/khammurabi-0.2/tests/test_action_object_delete.rb +91 -0
- data/khammurabi-0.2/tests/test_action_object_insert.rb +89 -0
- data/khammurabi-0.2/tests/test_action_object_modify.rb +103 -0
- data/khammurabi-0.2/tests/test_array_addon.rb +214 -0
- data/khammurabi-0.2/tests/test_cluster.rb +188 -0
- data/khammurabi-0.2/tests/test_cluster_graph.rb +393 -0
- data/khammurabi-0.2/tests/test_cluster_manager.rb +204 -0
- data/khammurabi-0.2/tests/test_constant_object_operation.rb +112 -0
- data/khammurabi-0.2/tests/test_constant_test_node.rb +142 -0
- data/khammurabi-0.2/tests/test_constant_test_node_graph.rb +404 -0
- data/khammurabi-0.2/tests/test_graph.rb +843 -0
- data/khammurabi-0.2/tests/test_graph_node_joiner.rb +94 -0
- data/khammurabi-0.2/tests/test_hash_addon.rb +90 -0
- data/khammurabi-0.2/tests/test_insurance_with_variables.rb +143 -0
- data/khammurabi-0.2/tests/test_multi_children_arbitrator_node.rb +149 -0
- data/khammurabi-0.2/tests/test_multi_children_selector_node.rb +203 -0
- data/khammurabi-0.2/tests/test_object_description.rb +177 -0
- data/khammurabi-0.2/tests/test_person_graph.rb +202 -0
- data/khammurabi-0.2/tests/test_root_node.rb +101 -0
- data/khammurabi-0.2/tests/test_token.rb +166 -0
- data/khammurabi-0.2/tests/test_token_cluster.rb +324 -0
- data/khammurabi-0.2/tests/test_unique_token_assurer_node.rb +146 -0
- data/khammurabi-0.2/tests/test_value_tests.rb +131 -0
- data/khammurabi-0.2/tests/test_variable_object_operation.rb +181 -0
- data/khammurabi-0.2/tests/test_variable_test_node.rb +445 -0
- data/khammurabi-0.2/tests/test_variable_test_node_graph.rb +587 -0
- data/khammurabi-0.2/tests/test_zombie_node.rb +130 -0
- metadata +790 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
module MK
|
|
2
|
+
|
|
3
|
+
require 'nist/khammurabi/GraphNode'
|
|
4
|
+
require 'nist/khammurabi/ObjectAddon'
|
|
5
|
+
require 'nist/khammurabi/Cluster'
|
|
6
|
+
|
|
7
|
+
class InstantiatorNode < GraphNode
|
|
8
|
+
|
|
9
|
+
attr :instantiations, true # Hash { Object => Array( Object ) }
|
|
10
|
+
attr :objectProduction, true # Object
|
|
11
|
+
attr :graph, true # Graph
|
|
12
|
+
|
|
13
|
+
def InstantiatorNode.init( objectProduction, name, engine )
|
|
14
|
+
oin = InstantiatorNode.new
|
|
15
|
+
oin.objectProduction = objectProduction
|
|
16
|
+
oin.name = name
|
|
17
|
+
oin.engine = engine
|
|
18
|
+
oin
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def initialize
|
|
22
|
+
super
|
|
23
|
+
self.instantiations = Hash.new
|
|
24
|
+
self
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def execute
|
|
28
|
+
#self.debug = true
|
|
29
|
+
self.notice( "Executing" )
|
|
30
|
+
# clear the Tokens that made it this far from the graph
|
|
31
|
+
|
|
32
|
+
self.tokens.each do |token|
|
|
33
|
+
self.registerToken( token )
|
|
34
|
+
token.registerOwner( self )
|
|
35
|
+
self.engine.clusterManager.deleteFromCluster( token, token.cluster )
|
|
36
|
+
engine.recursivelyDeRegisterTokenByID( token, self )
|
|
37
|
+
token.deRegisterOwner
|
|
38
|
+
engine.deleteFromWorkingMemoryUsingEqual?( token )
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
#print "printing token ids: "
|
|
42
|
+
#self.engine.printTokenIDs
|
|
43
|
+
#exit
|
|
44
|
+
|
|
45
|
+
self.notice( "executing.. my name: #{self.name}" )
|
|
46
|
+
self.engine.objectProductionWasInstantiated( self.objectProduction )
|
|
47
|
+
self.instantiations[ self.objectProduction ] = Array.new if self.instantiations[ self.objectProduction ] == nil
|
|
48
|
+
self.instantiations[ self.objectProduction ].push( self.tokens )
|
|
49
|
+
self.notice( "instantiations size: #{self.instantiations.size}" )
|
|
50
|
+
if self.objectProduction
|
|
51
|
+
self.objectProduction.actions.each do |action|
|
|
52
|
+
self.notice( "Action has class: #{action.class}" )
|
|
53
|
+
action.execute
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module MK
|
|
2
|
+
|
|
3
|
+
class Message
|
|
4
|
+
|
|
5
|
+
attr :message, true # String, or whatever
|
|
6
|
+
|
|
7
|
+
def Message.init( _message )
|
|
8
|
+
message = Message.new
|
|
9
|
+
message.message = _message
|
|
10
|
+
message
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def initialize
|
|
14
|
+
self.message = nil
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
module MK
|
|
2
|
+
|
|
3
|
+
require 'nist/khammurabi/GraphNode'
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# This class utilizes one parent but an arbitrary number of children. Each child
|
|
7
|
+
# is indexed. To describe what this an object of type MultiChildrenArbitraryNode (let's call it arb) does,
|
|
8
|
+
# assume that there are N children (call them child0, child1, etc) and that the
|
|
9
|
+
# incoming tokens are represented by tokenK where K is between 0 and N - 1.
|
|
10
|
+
# arb will pass token0 to child0, token1 to child1, etc. When K = N, arb will
|
|
11
|
+
# pass tokenK to child0. Another way to look at it is that arb passes tokenK to childB
|
|
12
|
+
# where K is congruent to B (mod N)
|
|
13
|
+
class MultiChildrenArbitratorNode < GraphNode
|
|
14
|
+
|
|
15
|
+
attr :nodeIndex, true # Fixnum .. which node to use
|
|
16
|
+
attr :multiChildren, true
|
|
17
|
+
attr :level, true
|
|
18
|
+
|
|
19
|
+
def MultiChildrenArbitratorNode.init( engine )
|
|
20
|
+
mcan = MultiChildrenArbitratorNode.new
|
|
21
|
+
mcan.engine = engine
|
|
22
|
+
mcan
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def initialize
|
|
26
|
+
super
|
|
27
|
+
self.maxChildren = -1
|
|
28
|
+
self.nodeIndex = 0
|
|
29
|
+
self.multiChildren = Array.new
|
|
30
|
+
self.level = -1
|
|
31
|
+
@registeringNormalChild = false
|
|
32
|
+
@managingTokens = true
|
|
33
|
+
self
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Adds a child
|
|
37
|
+
def addChild( child )
|
|
38
|
+
if @registeringNormalChild == true
|
|
39
|
+
super
|
|
40
|
+
else
|
|
41
|
+
#print "Adding a multiChild... its name: #{child.name}\n"
|
|
42
|
+
self.multiChildren.push( child )
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# See class description for explanation of this method
|
|
47
|
+
def execute
|
|
48
|
+
return if self.tokens.size == 0
|
|
49
|
+
#exit
|
|
50
|
+
|
|
51
|
+
self.tokens.each do |token|
|
|
52
|
+
token.beginBroadcastingTo( self )
|
|
53
|
+
childToAdd = @multiChildren[ nodeIndex ]
|
|
54
|
+
self.notice( "MCAN #{self.name} execute, nodeIndex: #{nodeIndex}" )
|
|
55
|
+
#caller.each { |call| print "\t\t#{call}\n" }
|
|
56
|
+
@registeringNormalChild = true
|
|
57
|
+
self.removeChildren
|
|
58
|
+
self.addChild( childToAdd )
|
|
59
|
+
@registeringNormalChild = false
|
|
60
|
+
self.registerPassedToken( token )
|
|
61
|
+
self.arbitrateNextNodeIndex
|
|
62
|
+
@managingToken = token
|
|
63
|
+
self.manageTokens
|
|
64
|
+
@managingToken = nil
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def tokenFailed( token )
|
|
69
|
+
token = token.first if token.class == Array # this may happen since broadcast sends out an Array
|
|
70
|
+
self.notice( "Token: #{token.tokenID} FAILED" )
|
|
71
|
+
if @managingToken.equal?( token )
|
|
72
|
+
self.arbitrateLastNodeIndex
|
|
73
|
+
end
|
|
74
|
+
self.notice( "My arbitration index: #{self.nodeIndex}" )
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# Wraps index around when it gets too large (larger than the # of nodes)
|
|
78
|
+
def arbitrateNextNodeIndex
|
|
79
|
+
if self.nodeIndex < @multiChildren.size - 1
|
|
80
|
+
self.nodeIndex = self.nodeIndex + 1
|
|
81
|
+
else
|
|
82
|
+
self.nodeIndex = 0
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def arbitrateLastNodeIndex
|
|
87
|
+
if self.nodeIndex > 0 # @multiChildren.size - 1
|
|
88
|
+
self.nodeIndex = self.nodeIndex - 1
|
|
89
|
+
else
|
|
90
|
+
self.nodeIndex = @multiChildren.size - 1
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def representative; self.multiChildren.first; end
|
|
95
|
+
|
|
96
|
+
end
|
|
97
|
+
end
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
module MK
|
|
2
|
+
|
|
3
|
+
require 'nist/khammurabi/GraphNode'
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# Objects of this class march along its children one at a time, keeping a marker
|
|
7
|
+
# for the child currently being used
|
|
8
|
+
class MultiChildrenSelectorNode < GraphNode
|
|
9
|
+
|
|
10
|
+
attr :nodeIndex, true # Fixnum .. which node to use
|
|
11
|
+
attr :level, true
|
|
12
|
+
attr :sittingChildren, true
|
|
13
|
+
|
|
14
|
+
def MultiChildrenSelectorNode.init( name, engine, debug )
|
|
15
|
+
mcsn = MultiChildrenSelectorNode.new
|
|
16
|
+
mcsn.name = name
|
|
17
|
+
mcsn.engine = engine
|
|
18
|
+
mcsn.debug = debug
|
|
19
|
+
mcsn
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def initialize
|
|
23
|
+
super
|
|
24
|
+
self.maxChildren = -1
|
|
25
|
+
self.nodeIndex = 0
|
|
26
|
+
self.level = -1
|
|
27
|
+
self.sittingChildren = Hash.new # Hash( Token => Node )
|
|
28
|
+
self
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# See class description for explanation of this method
|
|
32
|
+
def execute
|
|
33
|
+
return if self.tokens.size == 0
|
|
34
|
+
|
|
35
|
+
#caller.each { |call| print "\t\t#{call}\n" }
|
|
36
|
+
|
|
37
|
+
self.tokens.each do |token|
|
|
38
|
+
token.beginBroadcastingTo( self )
|
|
39
|
+
#print "\n\n** ITERATING **\n"
|
|
40
|
+
a = nodeIndex
|
|
41
|
+
size = self.children.size
|
|
42
|
+
childs = Array.new
|
|
43
|
+
size.times do |ni|
|
|
44
|
+
#print "a: #{a} childs: #{childs.join( " " )} \nchildren: #{children.join( " " )}\n"
|
|
45
|
+
if self.sittingChild == nil or !self.sittingChildren.values.includeID?( self.children[ a ] )
|
|
46
|
+
childs.push( children[ a ] )
|
|
47
|
+
#print "IN HERE childs now: #{childs.join( " " )}\n"
|
|
48
|
+
else
|
|
49
|
+
#print "sittingChild: #{self.sittingChild.name} sittingChildren: #{self.sittingChildren.values.join( " " )}\n"
|
|
50
|
+
end
|
|
51
|
+
a = a + 1
|
|
52
|
+
a = 0 if a == size
|
|
53
|
+
end
|
|
54
|
+
#print "childs: #{childs.join( " " )}\n"
|
|
55
|
+
# Put the sittinChildren at the end
|
|
56
|
+
childs.concat( sittingChildren.values ) if sittingChildren.values.size > 0
|
|
57
|
+
self.nodeIndex = self.nodeIndex + 1
|
|
58
|
+
self.nodeIndex = 0 if self.nodeIndex == size
|
|
59
|
+
self.registerPassedToken( token )
|
|
60
|
+
#print "goign to manage .."
|
|
61
|
+
#childs.each { |child| print "#{child.name} " }
|
|
62
|
+
#print "\n"
|
|
63
|
+
#$defout.flush
|
|
64
|
+
self.manageTokens( childs ) # self.children.each do |child|
|
|
65
|
+
if self.sittingChild != nil
|
|
66
|
+
#print "Adding a sitting child of name: #{sittingChild.name}\n"
|
|
67
|
+
self.sittingChildren[ token.object_id ] = sittingChild
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def tokenFailed( token, *vars )
|
|
73
|
+
self.sittingChildren[ token.object_id ] = nil
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
end
|
|
77
|
+
end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Adds some functionality to the Object object
|
|
2
|
+
class Object
|
|
3
|
+
|
|
4
|
+
attr :debug, true # Boolean
|
|
5
|
+
attr :type, true # Fixnum
|
|
6
|
+
attr :listeners, true # Array of listeners
|
|
7
|
+
|
|
8
|
+
# take this out later.. such a cludge
|
|
9
|
+
@@outfile = nil
|
|
10
|
+
@@debugType = 1
|
|
11
|
+
@@outserver = nil
|
|
12
|
+
|
|
13
|
+
# The most severe notification. Prints string to stdout (regardless of debug setting),and exits
|
|
14
|
+
def error( string )
|
|
15
|
+
nameStr = " Name: #{self.name}" if self.name
|
|
16
|
+
print "\n\n+ * * Error * * + ID: #{self.object_id}#{nameStr} Class #{self.class} -- #{string}\n\n" # . Printing call stack: \n\n"
|
|
17
|
+
caller.each { |call| print "\t\t#{call}\n" }
|
|
18
|
+
exit
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Less severe than an error but more severe than a notice. Outputs nothing if debug is false
|
|
22
|
+
def warning( string )
|
|
23
|
+
nameStr = " Name: #{self.name}" if self.name
|
|
24
|
+
print "* * Warning * * ID: #{self.object_id}#{nameStr} from class #{self.class} -- #{string}\n" if self.debug
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# The least severe of all the notifications. Outputs nothing if debug is false
|
|
28
|
+
def notice( string )
|
|
29
|
+
nameStr = " Name: #{self.name}" if self.name
|
|
30
|
+
outputStr = "__Notice__ ID: #{self.object_id}#{nameStr} Class #{self.class} -- #{string} \n"
|
|
31
|
+
if self.debug
|
|
32
|
+
print outputStr if @@debugType == 1
|
|
33
|
+
@@outfile.print( outputStr ) if @@debugType == 2
|
|
34
|
+
@@outserver.print( outputStr ) if @@debugType == 3
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def beginBroadcastingTo( object )
|
|
39
|
+
self.listeners == nil and self.listeners = Array.new
|
|
40
|
+
self.listeners.push( object )
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def stopBroadcastingTo( object )
|
|
44
|
+
self.listeners.deleteID( object )
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def broadcast( message, *vars )
|
|
48
|
+
if self.listeners != nil and self.listeners.class == Array
|
|
49
|
+
self.listeners.each do |listener|
|
|
50
|
+
listener.send( message, vars )
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def outfile=( _outfile ); @@outfile = _outfile; end
|
|
56
|
+
def outfile; @@outfile; end
|
|
57
|
+
def debugType=( _type ); @@debugType = _type; end
|
|
58
|
+
def debugType; @@debugType; end
|
|
59
|
+
def outserver=( _outserver ); @@outserver = _outserver; end
|
|
60
|
+
def outserver; @@outserever; end
|
|
61
|
+
|
|
62
|
+
end
|
|
63
|
+
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
module MK
|
|
2
|
+
|
|
3
|
+
require 'stringio'
|
|
4
|
+
require 'nist/khammurabi/ObjectOperation'
|
|
5
|
+
require 'nist/khammurabi/ObjectAddon'
|
|
6
|
+
require 'nist/khammurabi/BooleanAddon'
|
|
7
|
+
require 'nist/khammurabi/ValueTestSuite'
|
|
8
|
+
|
|
9
|
+
# Objects of this class-type describe objects of any type by
|
|
10
|
+
# mapping each variable name of the input object, objectDescribing,
|
|
11
|
+
# into a ConstantObjectOperation or VariableObjectOperation. When used manually, the user
|
|
12
|
+
# sets objectDescribing and then calls parseObject. ObjectDescription's are temporary
|
|
13
|
+
# objects that are created during graph creation and not used after.
|
|
14
|
+
# Objects of this type are owned by an ObjectProduction.
|
|
15
|
+
class ObjectDescription
|
|
16
|
+
|
|
17
|
+
attr :objectDescribing, true # Object # defunct
|
|
18
|
+
attr :objectProduction, true # Owner/parent/guardian
|
|
19
|
+
attr :objectOperations, true # Hash ( Object => ObjectOperation )
|
|
20
|
+
attr :instanceVariables, true # The instance variables of objectDescribing
|
|
21
|
+
attr :objectClass, true # Class of object which this describes
|
|
22
|
+
|
|
23
|
+
def initialize
|
|
24
|
+
objectDescribing = nil
|
|
25
|
+
self.objectOperations = Hash.new { nil }
|
|
26
|
+
self.instanceVariables = Array.new
|
|
27
|
+
self.objectClass = Object
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def ObjectDescription.init( objectDescribing )
|
|
31
|
+
od = ObjectDescription.new
|
|
32
|
+
od.objectDescribing = objectDescribing
|
|
33
|
+
od.parseObject
|
|
34
|
+
od
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def hash
|
|
38
|
+
objectDescribing.hash + objectClass.hash + objectOperations.hash
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Clones instanceVariables and objectOperations
|
|
42
|
+
def clone
|
|
43
|
+
cologne = ObjectDescription.new
|
|
44
|
+
self.instanceVariables.each { |iv| cologne.parseInstanceVariable( iv ) }
|
|
45
|
+
self.objectOperations.each_pair do |key,value|
|
|
46
|
+
valueCologne = value.clone
|
|
47
|
+
cologne.addObjectOperation( key, valueCologne )
|
|
48
|
+
end
|
|
49
|
+
cologne
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Does == on objectOperations
|
|
53
|
+
def ==( otherObject )
|
|
54
|
+
retval = true
|
|
55
|
+
if otherObject == nil
|
|
56
|
+
retval = false
|
|
57
|
+
else
|
|
58
|
+
self.objectOperations.each_key do |key|
|
|
59
|
+
if otherObject.objectOperations[ key ].equal?( nil ) or objectOperations[ key ].equal?( nil ) or objectOperations[ key ] != otherObject.objectOperations[ key ]
|
|
60
|
+
retval = false
|
|
61
|
+
break
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
retval
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# Checks if all the smaller objectDescription's constants are in the larger objectDescription's
|
|
69
|
+
# The objectDescription with more constant's is more specific, but can still match the same objects
|
|
70
|
+
# as objectDescriptions with less constants, provided that the input object is the same for both, and also
|
|
71
|
+
# provided that the objectDescription with less constants has the same constant tests as the larger one. Hope
|
|
72
|
+
# that confusing sentence makes sense
|
|
73
|
+
def ===( otherObject )
|
|
74
|
+
self.error( "Can't === with self" ) if otherObject.equal?( self )
|
|
75
|
+
retval = true
|
|
76
|
+
|
|
77
|
+
smaller = otherObject
|
|
78
|
+
larger = self
|
|
79
|
+
if self.constants.size < otherObject.constants.size
|
|
80
|
+
smaller = self
|
|
81
|
+
larger = otherObject
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
#print "smaller: #{smaller.object_id} larger: #{larger.object_id}\n"
|
|
85
|
+
smaller.constants.each_pair do |object, objectOperation|
|
|
86
|
+
#print "looking at: #{object}\n"
|
|
87
|
+
if !larger.constants.has_key?( object ) or larger[ object ] != smaller[ object ]
|
|
88
|
+
retval = false
|
|
89
|
+
break
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
retval
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# Call after setting self.objectDescribing (if setting up manually.. normally this should be done
|
|
96
|
+
# using ObjectDescription.init)
|
|
97
|
+
def parseObject
|
|
98
|
+
if self.objectDescribing == nil
|
|
99
|
+
self.warning( "Trying to parse a nil object! returning..." )
|
|
100
|
+
return
|
|
101
|
+
end
|
|
102
|
+
self.instanceVariables = self.objectDescribing.instance_variables
|
|
103
|
+
self.instanceVariables.each { |instanceVariable| parseInstanceVariable( instanceVariable ) }
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
# A private method that maps variables to ConstantObjectOperations. This method shouldn't be called manually.
|
|
107
|
+
def parseInstanceVariable( instanceVariable, tests = nil )
|
|
108
|
+
return if @objectOperations.has_key?( instanceVariable ) == true
|
|
109
|
+
#test = nil
|
|
110
|
+
#test = MK::EqualityTest.init( self.objectDescribing.instance_eval( instanceVariable ) ) if self.objectDescribing != nil
|
|
111
|
+
#tests = [ test ] if tests == nil and test != nil
|
|
112
|
+
tests = MK::EqualityTest.init( self.objectDescribing.instance_eval( instanceVariable ) ) if self.objectDescribing != nil
|
|
113
|
+
coo = MK::ConstantObjectOperation.init( tests, instanceVariable, true )
|
|
114
|
+
shiftedInstanceVariable = instanceVariable[ 1 .. instanceVariable.size - 1 ]
|
|
115
|
+
self.instance_eval( "def #{shiftedInstanceVariable}; #{instanceVariable}; end" )
|
|
116
|
+
self.instance_variable_set( eval( ":#{instanceVariable}" ), coo )
|
|
117
|
+
self.addObjectOperation( instanceVariable, coo )
|
|
118
|
+
#exit
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
# The second variable is an adjective
|
|
122
|
+
def parseInstanceVariableAsVariable( instanceVariable, variableName, tests = nil )
|
|
123
|
+
return if @objectOperations.has_key?( instanceVariable ) == true
|
|
124
|
+
tests = [ MK::EqualityTest.new ] if tests == nil
|
|
125
|
+
tests = [ tests ] if tests.class != Array
|
|
126
|
+
#tests.each { |test| test.variableName = variableName }
|
|
127
|
+
voo = MK::VariableObjectOperation.init( tests, instanceVariable, true, variableName )
|
|
128
|
+
shiftedInstanceVariable = instanceVariable[ 1 .. instanceVariable.size - 1 ]
|
|
129
|
+
self.instance_eval( "def #{shiftedInstanceVariable}; #{instanceVariable}; end" )
|
|
130
|
+
self.instance_variable_set( eval( ":#{instanceVariable}" ), voo )
|
|
131
|
+
self.addObjectOperation( instanceVariable, voo )
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
# Convenience method to return self.objectOperations[key]
|
|
135
|
+
def []( key ); @objectOperations[ key ]; end
|
|
136
|
+
|
|
137
|
+
# Sets the object as a variable object (it will now be tested using a VariableObjectOperation)
|
|
138
|
+
def setObjectAsVariable( object, variableName, valueTests )
|
|
139
|
+
self.objectOperations[ object ] = VariableObjectOperation.init( valueTests, self[ object ].name.clone, self[ object ].testMe.clone, variableName )
|
|
140
|
+
end
|
|
141
|
+
# Sets the object as a constant object (it will now be tested using a ConstantObjectOperation)
|
|
142
|
+
def setObjectAsConstant( object, valueTests )
|
|
143
|
+
self.objectOperations[ object ] = ConstantObjectOperation.init( valueTests, self[ object ].name.clone, self[ object ].testMe.clone )
|
|
144
|
+
end
|
|
145
|
+
def addValueTest( variableName, valueTest ); self.objectOperations[ variableName ].valueTests.push( valueTest ); end
|
|
146
|
+
def setValueTest( variableName, valueTest ); self.objectOperations[ variableName ].valueTests = [ valueTest ].flatten; end
|
|
147
|
+
def deleteObjectOperation( vname ); self.objectOperations.reject! { |name, op| name.eql?( vname ) }; end
|
|
148
|
+
|
|
149
|
+
# Returns each object that corresponds to a constant object (that is -- the test on it
|
|
150
|
+
# is a ConstantObjectOperation)
|
|
151
|
+
def constants; self.objectOperations.hashSelect { |variableName, oo| oo.kind_of?( ConstantObjectOperation ) }; end
|
|
152
|
+
def variables; self.objectOperations.hashSelect { |variableName, oo| oo.kind_of?( VariableObjectOperation ) }; end
|
|
153
|
+
|
|
154
|
+
# Returns a clone of self that is concat'd with other
|
|
155
|
+
def concat( other ); self.clone.concat!( other ); end
|
|
156
|
+
|
|
157
|
+
# Assigns variable an ObjectOperation. If variable already has one, then
|
|
158
|
+
# objectOperation is concatted to it
|
|
159
|
+
def addObjectOperation( variable, objectOperation )
|
|
160
|
+
if self.objectOperations.has_key?( variable )
|
|
161
|
+
self.objectOperations[ variable ].valueTests.concat( objectOperation.valueTests )
|
|
162
|
+
else
|
|
163
|
+
self.objectOperations[ variable ] = objectOperation
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
# Combines the instanceVariables and objectOperations from self and other
|
|
168
|
+
def concat!( other )
|
|
169
|
+
# sanity check
|
|
170
|
+
self.error( "I only know how to concatenate another object of type ObjectDescription.. not a: #{other.class}" ) if other.class != self.class
|
|
171
|
+
self.error( "I only know how to concatenate another object who's object describing is the same as mine.. that type is: #{self.objectDescribing.class} and other's: #{other.objectDescribing.class}" ) if other.objectDescribing.class != self.objectDescribing.class
|
|
172
|
+
instanceVariables = other.objectDescribing.instance_variables
|
|
173
|
+
instanceVariables.each { |instanceVariable| parseInstanceVariable( instanceVariable ) }
|
|
174
|
+
other.objectOperations.each_pair { |key,value| self.addObjectOperation( key, value.clone ) }
|
|
175
|
+
self
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
# Prints each Object and ObjectOperation that is attributed to it to stream
|
|
179
|
+
def printOn( stream )
|
|
180
|
+
stream << "<ObjectDescription> objectOperations: "
|
|
181
|
+
@objectOperations.each_pair do |key,value|
|
|
182
|
+
stream << "<key: #{key} value: #{value}> "
|
|
183
|
+
end
|
|
184
|
+
stream << "</ObjectDescription>"
|
|
185
|
+
stream
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
# Uses printOn( stdout )
|
|
189
|
+
def to_s; printOn( StringIO.new ).string; end
|
|
190
|
+
|
|
191
|
+
end
|
|
192
|
+
end
|