Changes

Brahms Professional Agent version 1.0 beta 6 

1/12/2005
Copyright (c) 1998-2005 NASA Ames Research Center. All Rights Reserved.

CHANGES summarizes the changes between Brahms software releases. CHANGES contains the following sections:

Brahms Composer

Brahms Agent Monitor

Brahms Agent Viewer

Brahms Compiler

Brahms Virtual Machine

Revision History Brahms Composer

Brahms Composer V1.5.103
V1.5.103 Changes

  1. Enhanced the performance when manipulating the trees. You can now switch between flat and hierarchical views much faster.
  2. Added two navigation features to the model trees - when a class-type concept node is selected the right-click popup menu now shows two new menu items; 'View Immediate Descendants' (CTRL+ENTER) and 'View All Descendants' (CTRL+SHIFT+ENTER). Selecting the first will expand the tree so that it displays only the immediate subclasses and instances of the selected concept. Selecting the second will expand the tree so that it displays all subclasses and instances of the selected concept.
  3. Fixed a bug where drag and drop of a concept node onto the 'subclasses', 'instances', 'member groups' or 'member agents' node was not creating the inheritance relation.
  4. Added an Inheritance View - this feature lets you display the entire inheritance hierarchy for one concept in a separate dockable pane. You can create an inheritance view three ways:
  5. Added the Inherited Activity, Workframe and Thoughtframe views - the model trees how include nodes for all inherited activities, workframes and thoughtframes for active concepts.
  6. Added persistent toolbar configurations - now when you select the 'Agent Viewer' view the Agent Viewer toolbar will also be displayed. If you leave the Agent Viewer toolbar open when quitting the applications it will still be there when you restart. You can include the Agent Viewer toolbar in user-defined configurations and it will be displayed when those configurations are selected.
  7. Auto-scrolling in source code files will now center the selected element in the source code window. When you double-click an element in the model trees the source code declaration for that element will be opened and centered rather than positioned annoyingly at the top or the bottom of the window.
  8. Fixed a bug where several items in the 'File' menu had the same mnemonic keyboard shortcut.
  9. Fixed a bug where the 'Find Concept' feature couldn't find a tree node for the selected concept if the tree paths had not yet been created by user navigation. Now the path for any tree node that doesn't yet exist will be created automatically when you use the 'Find Concept' feature.
  10. Fixed a bug for color coding in source file comments.
  11. Fixed a bug where the 'Find Concept in Tree' action was not selecting the dockable pane containing the tree node.
  12. Added a menu item and toolbar button for building the model with .xmi file output for UML generation.
  13. Changed document management from a multiple document interface to a tabbed document interface.
  14. Updated the dockable windows framework to a new dockable windows framework with enhanced features such as autohide, undocking to floating windows, etc.
  15. Added ability to specify a source directory when creating a new model.
  16. Now filtering hidden directories in the project explorer.
  17. Added the ability to indent and un-indent blocks of selected code in a source code editor using TAB and SHIFT+TAB.
  18. Added the ability to the source code editor to toggle line comments using CTRL+'/'.
  19. Added the ability to refresh the project explorer allowing it to reread the directory structure and delete any files deleted outside of Composer and to add any files added outside of Composer.
  20. Added a Document Outline View that displays the contents of the active editor window in outline form. Selecting any of the model elements from the document outline view will jump the editor's cursor to the line at which that element starts.
  21. Added a new action framework allowing menu and toolbars to be organized to the user's liking, they can be docked anywhere on the sides of an application, undocked and any icons that can not be made visible due to the limited size of the application window are still accessible through the toolbar.

Brahms Composer V1.4.016
V1.4.016 Changes

  1. Fixed a bug where duplicate copies of a node could appear in the project explorer tree when changing the names of package nodes.
  2. Fixed a bug where creating new .b files through the project explorer would add the files to the model directory instead of the correct source directory. This bug only occurred when a 'source' directory was used.
  3. Fixed a bug where files were not saved properly when closing an editor window for an edited file.
  4. Added support for the Brahms virtual machine options. Using the Run->Set VM Options... menu you can now pass any valid Brahms virtual machine option to the VM when running the virtual machine from within Composer.
  5. Using the -ui VM option now displays the simulation clock at the top of the VM log window that is opened by the Composer when starting a model.

Brahms Composer V1.4.012
V1.4.012 Changes

  1. Added support for drag and drop of Brahms source files and folders from the system into the Project Explorer (Windows, Linux and Mac). It also includes support for copy and paste of files and folders from the system into the Project Explorer (Windows and Linux) or from one Project Explorer to another or within the same Project Explorer (Windows, Linux and Mac).
  2. When you add files to your model using the features described in (1) then each file copied into your model will have its package statement edited to reflect its location within the model package structure. When you save the model, import statements will be added to the model file for each new package.
  3. Fixed a bug that prevented switching between configurations by clicking on an item in the toolbar configuration list when the list was over a docked window.
  4. Fixed a bug where maximized windows would not close properly and leave the Composer in an invalid window state.
  5. A right mouse click on any node in the Project Explorer will pop-up a menu that now includes the item "Add New Brahms File...". Selecting this item will open a dialog window where you can enter the name for the file and for the package. The package field will appear with a value for the package of the node where you clicked in the explorer. You may edit this value, however, and the new file will be added in the appropriate package in your model and in the file system. The new file will contain only a package statement.
  6. The File menu now contains the menu item 'New File...'. Selecting this item will open a dialog window that allows you to choose between Brahms file or Text file. There are also fields for the file name and the package name. Creating a new Brahms file works just as explained in (5). Creating a new text file will open an editor window. The new file will not be written to disk until you save it at which time you will be shown a dialog to specify the location on disk to write the file. This feature will allow you to write configuration or bat files from within the Composer application.
  7. The File menu now also contains a menu item for 'Save File As...'. This works as you would expect. If you save a Brahms fie to a new location in the package structure of your model, the file and all of its concepts will be added to the model. You can also open and edit config files from one model and save them for a new model.
  8. Fixed a bug where the Composer would now allow you to create subclasses or instances of a concept when that concept's source file was open on the desktop.
  9. Added support for language specification version 2.12 in which support was added for the relational operators >, >=, < and <= in detectables.

Brahms Composer V1.4.008
V1.4.008 Changes

  1. Added a Project Explorer for managing Brahms packages and files.
  2. Integrated the Brahms Agent Viewer as a plug-in to the Composer, it is no longer a separate application.
  3. Added support for creating, saving and switching Composer window layout configurations.
  4. Added support for Cut, Copy and Paste in the Edit menu and in the toolbar.
  5. Double clicking a 'leaf' concept node in the tree views (like a parent, part, inhabitant node, etc.) will now jump you to the populated tree node for that concept.
  6. Added support for creating initial facts in the Geography Model.
  7. The activity nodes in the design views now display all parameters as part of there name.
  8. Fixed a bug where editing the type of an activity in source code was not reflected in the design view when you saved the file.
  9. Fixed a bug where parser errors weren't showing up in the task list when import statements were lower case while the actual directories in the file system were upper case.
  10. Fixed a bug where renaming a concept in source code causes the newly named concept to appear as a tree node multiple times under each of its parent nodes in the design view.
  11. Fixed a bug where activity references passing as a parameter value 'current' were not displaying properly in the design view.
  12. Fixed a bug where compiler errors were remaining in the task list after a successful build.
  13. Fixed a bug where the task list would not remain at the size set by the user when new parser errors were reported.

Brahms Composer V1.2.019
V1.2.019 Changes

  1. Fixed bug that allowed activities to be added to base library concepts in design view.
  2. Added 'Find and Replace' functionality to the source code editor. 
  3. Fixed bug that caused facts to be created instead of beliefs when using the "Create Initial Fact" toolbar button.
  4. Added feature allowing right mouse click popup menu with choices for sorting design view tree nodes alphabetically or by source code line number.
  5. Added feature of popup menu with right mouse click on 'Activity Reference' tree nodes with choice of jumping to referenced activity node in the tree.
  6. Added tree node sorting feature to Activity Model tree.
  7. Fixed bug where case was not being ignored in alphabetical sorting.
  8. Fixed bug that prevented right mouse click popups from working on the Macintosh.
  9. Fixed bug in New Model Dialog where specifying a package name for a new model caused the new model action to fail.
  10. Added feature where Import Model Dialog remembers the model directory for the last imported model.
  11. External agents are now also properly being displayed in the agent view.
  12. Initial statements were sometimes displayed twice in the design view, this has been fixed.
  13. Added File menu item "Open Model File" that allows opening the model .b file.
  14. Added functionality for moving or copying attributes, relations, initial statements,
    activities, workframes and thoughtframes from one concept to another by drag and 
    drop of the design view tree nodes.
  15. Added support for creating and editing packages.
  16. Bug fix with use of meta typed variables on the left hand side of a precondition.
  17. Added integration with the virtual machine to allow a modeler to run a model from within the Composer.
  18. Added a Find Concept function to allow a modeler to search for a concept in the designers.
  19. Added a Quick Search function in the toolbar to search for text in the current document without having to open the Find dialog.
  20. Fixes a bug where editing a class or group name with the concept editor did not update the source code inheritance statements for instances of the edited concept.
  21. Fixes a bug where the initial fact/belief editors would not let you specify the value 'unknown' for boolean attributes.
  22. Fixes a bug where deleting a concept with children it did not delete the source code for those children.

Brahms Composer V1.2.005
V1.2.005 Changes

  1. Integrated parser allows models with syntax or compiler errors to be imported or opened, edited and saved in the IDE.
  2. Integrated task-list displays all syntax errors in a model when it is first opened or imported.
  3. Integrated task-list displays all syntax errors for a source code file when the file is saved.
  4. Integrated task-list displays all compiler errors for a model when the model is compiled from within the IDE.
  5. Task-list allows double-click navigation between errors displayed in the table and the source code location where the error occurs.
  6. Multiple document desktop allows for display and management of multiple source code editor windows.
  7. Integrated source code editor with keyword coloring and multiple levels of undo.
  8. Drag-and-drop dockable windows for display of design view model trees and task-list.
  9. Support for creating, editing and displaying all model elements in the design view model trees.
  10. Real-time incremental source code generation for every edit made in the design view model trees.
  11. Automatic update of the design view model trees whenever a source code file is edited and saved.
  12. Double-click navigation between any element in the design view model trees and the source code location where the element is defined.
  13. Drag-and-drop creation of Activity References in design view by dropping an activity node onto a workframe node or workframe body node
  14. Initial facts and beliefs can now be created, displayed, edited and deleted in the IDE model trees.
  15. Inherited initial facts and beliefs are now displayed for all active concepts. Tree nodes for these elements are not editable, but will be updated when the underlying element is edited.
  16. Inherited attributes and relations for all concepts are now displayed in the IDE model trees. Tree nodes for these elements are not editable, but will be updated when the underlying element is edited.
  17. Workframe names are now displayed for all active concepts and composite activities. Tree nodes for these elements are not yet editable.
  18. Thoughtframe names are now displayed for all active concepts and composite
    activities. Tree nodes for these elements are not yet editable.
  19. Model file package statements are now parsed when importing a model and used as the default package for all concepts created in the ide.
  20. Adding a library path for the model directory in the 'Import Model' dialog window is no longer necessary when importing a model.
  21. The 'Import Model' dialog window now contains a field for specifying the directory where the imported model should be saved.
  22. The IDE now has a 'Save As..." menu choice allowing the model to be saved to a new directory.
  23. Complete inheritance hierarchies are displayed for concepts in the 'Flat View Mode' in the IDE model trees.
  24. A 'parents' node has been added for all concepts when displayed in the 'Hierarchical View Mode' in the IDE model trees.
  25. The display of children for all class-type concepts is divided into groupings of subclass-type children and instance-type children.
  26. The IDE now saves all source code files into a directory named 'source' and all xml files into a directory named 'ide' in the model directory. The modelname.bmd file is saved in the model directory.
  27. There is a 'Scratch Pad' node in the activity model. Unassigned activities appear as children of this node.
  28. Dragging activities between concepts or between the scratch pad and concepts will result move the activity unless the Control key is pressed while dragging in which case a copy of the dragged activity will be added to the element at the drop location.
  29. A 'collapse-tree' button has been added to the toolbars in the model tree panels that collapses the tree to a default closedview.
  30. An 'expand-tree' button' has been added to the toolbars in the model tree panels that re-expands the tree to the configuration it had when the collapse button was pressed.
  31. The tool-tip text for create activity buttons now displays the proper activity names.
  32. Added support for the new gesture activity.

Brahms Composer V1.00.005
V1.00.005 Changes

  1. Imported create object activities now have their action property set properly.
  2. Bug preventing models containing unassigned activities with concept type parameters from being reopened has been fixed.
  3. The IDE will now preserve the order of model elements as they appear in source code.
  4. The IDE will now present child concepts in alphabetical order in the tree views when the model is opened. New children will appear at the end of the list as they are added during a modeling session.
  5. Toolbars in concept model tree views now contain a button for collapsing all nodes in the tree.
  6. The about dialog now shows the build date of the release.

Brahms Composer V1.00.004
V1.00.004 Changes

  1. Workframe type property is being written to source code properly now.
  2. Detectable action is being written to source code properly now.
  3. fc and bc for a consequence will be written out no matter what their value.
  4. Child concepts added while in flat view mode will show up as a node under their parent concept's node.
  5. When deleting an inheritance relation in flat view mode you will see a warning if this is the only parent relation for the child concept. If you continue with deleting the inheritance relation the child concept will be deleted as well (can't have orphaned concepts).
  6. When deleting a concept in hierarchical view mode you will see a warning if the concept has children with no other parents that would be deleted along with their parent.
  7. Fixed problem with concept and activity editor being partly visible when near the bottom of the application window.
  8. Fixed bug preventing the deletion of conceptual objects and classes
  9. Fixed problem of a model not re-opening if the user deletes source files from disk. As long as the deleted files don't create compiler errors in the remaining files the model should re-open with default display properties.
  10. Added an about dialog displaying the version number of the application
  11. Setting default values for activity properties that are required. Some of these values do not make sense but allow for the model to be saved, compiled and re-opened. The defaults for these required properties are:
    move.location: NoLocation;
    broadcast.about: send(current.location = NoLocation);
    communicate.about: send(current.location = NoLocation);
    communicate.with: Clock;
    create_object.source: BaseClass;
    create_object.destination: dest; (create_object activities will
    be created with a default parameter of type BaseClass
    named "dest")
    get.items: Clock;
    put.items: Clock;
  12. Added new command line options that can be passed to the IDE. The options are:
    [-import[-libpath path] file.b] or [-open file.bmd] [debug] [log]
    The debug/log options are currently always set and are fixed in the BrahmsIDE executable. You should therefore not pass these options again.

Brahms Composer V1.0
V1.0 Changes

  1. Added support for activities.
  2. Allows for the import of an existing model.
  3. Added support for compiling models.
  4. Generates source code including for those elements that are currently not directly supported by the IDE but which are imported from an existing model such as workframes and thoughtframes.

Brahms Composer V0.4.0
V0.4.0 Changes

  1. New release, allows for the creation of concepts (groups, agent, classes, objects, conceptual classes, conceptual objects, area definitions, areas, and paths) and attributes
    and relations for these concepts. The IDE also allows inheritance and aggregation relationships between concepts to be created. The IDE can generate Brahms source code and compile the generated source code.

Revision History Brahms Agent Monitor

Brahms Agent Monitor V0.8.4
V0.8.4 Changes

  1. Fixed a bug allowing the agent monitor to disconnect and reconnect.
  2. Fixed a bug to allow for the request of the beliefs of newly added agents and objects.
  3. Now correctly sorting the agents and objects in the list including newly added ones.
  4. Double mouse click on a worldstate, agent or object node now opens the tuple view automatically to display either facts or beliefs. This function is also still possible through the popup menu.

Brahms Agent Monitor V0.8
V0.8 Changes

  1. New release. Displays the active agent environments registered with an agent environment manager and displays for each active agent environment the agents, objects, conceptual objects and areas registered and running within that environment.
  2. The user can request the most current belief state of each agent or object.
  3. The user can request the most current fact state of an agent environment's world state.
  4. The user can request the most current work state of an agent or object.

Revision History Brahms Agent Viewer

Brahms Agent Viewer V1.4.6 alpha
V1.4.6 alpha Changes

  1. Fixed a bug where parsing of a history file would fail if during a run there were no communications but there were dynamically created objects.
  2. Fixed a bug in the display of agent locations in the time line view.
  3. Fixed a bug where the agent viewer would generate a NullPointerException for the display of a create object activity line on the communication highway when the create object activity created a conceptual object. Currently we don't show the creation of conceptual objects on the communication highway. 
  4. Fixed a bug in the display of receive communications in the time line view. The arrow wasn't positions correctly.
  5. Supports parsing of incomplete history files created using the File Agent Viewer Service version 2.00.0001 or later. The Agent Viewer is now able to display history results even if the Brahms virtual machine was terminated abruptly.
  6. The file chooser when you want to create a new database now opens up in the Databases directory where history files are normally stored.

Brahms Agent Viewer V1.4 alpha
V1.4 alpha Changes

  1. Reorganized the menu structure, locating the zoom functions under the View menu.
  2. New more appropriate button icons more clearly representing their functions.
  3. Icons in the runtime view for agents, objects, conceptual objects and agents are now identical to those used in the Brahms IDE.
  4. Time line view and runtime view can be closed and re-opened without causing the application to shut down because of an error.
  5. Creating a new database (parsing a history file) has improved in performance and after parsing is completed the database is immediately opened.
  6. Databases are no longer file based but are managed by the MySQL database manager. Appropriate dialogs allow you to open and delete the databases managed by the database manager.
  7. The runtime view now correctly displays conceptual objects.
  8. When the time line view is not maximized it will no longer compress the information in the time line view to an unreadable view, size of the time lines remains constant.
  9. The time line view now displays the full time and date at the beginning of the viewable area and displays only time information on all subsequent intervals unless a date change occured in which cased he full date/time is displayed.
  10. Explanation facility views for facts, beliefs, workframes, thoughtframes and communications have been redesigned.
  11. The columns in the facts/beliefs views can be resorted by clicking on their headers.
  12. The filter/query panel is by default hidden but a click on the button with the small arrow makes it re-appear.
  13. The drop down lists in the filter now contain a correct and sorted list of all the possible values for the filter.
  14. The frame view displays all time related information in one view.
  15. The frame's source code is now formatted based on the language specification as much as possible based on the information available in the database.
  16. The explanation facility windows and time line view can be organized in cascading, horizontal, or vertical layouts.
  17. The runtime view is a dockable window that can be docked North, East, South and West in the application frame.

Revision History Brahms Compiler

Brahms Compiler V2.14.006
V2.14.006 Changes

  1. Added support for generating UML from a Brahms model by passing the -uml flag. It will generate a .xmi file in the directory of the model's .b file. This xmi file can be imported by a variety of UML tools supporting XMI version 1.2.
  2. Fixed a bug where the compiler would not properly verify type compatibility of any type against primitive types.
  3. Fixed a bug where the compiler would not properly handle an error when the compiler was unable to load a Java external activity due to an error with the class file.
  4. Fixed a bug where the compiler would not allow for a relational comparison in a precondition using >, <, >=, <= if the left hand side was an integer and the right hand side was a double.
  5. Fixed a bug in the compiler when it is used from within the Composer. It now reloads Java external activity classes when the compiler is restarted from the Composer. In the past it would not reload the library files and therefore not find any new Java external activities or detect the removal of old Java external activities.
  6. Fixed a bug in the compiler where it would not properly compare the types of arguments against those of the parameters in the activity.

Brahms Compiler V2.13.004
V2.13.004 Changes

  1. Fixed a bug where passing a symbolic value that could represent a user defined type (a concept) to a symbol typed parameter declared for an activity resulted in a type conversion compiler error. The compiler should have and now does consider it a symbol instead of a concept.
  2. Added support for generating a KAoS ontology for the Brahms model declared using DAML. For this support the compiler supports the -ontology and -ontologybase options.
  3. Added support for language specification version 2.12 in which support was added for the relational operators >, >=, < and <= in detectables.

Brahms Compiler V2.12.006
V2.12.006 Changes

  1. Now preserves the inheritance sequence as they are declared in the model. Previously the inheritance sequence was determined by the hashkey for the name of a concept being inherited from.
  2. Fixed a problem in the compiler. Now correctly reporting attribute and relation redeclaration errors when trying to redeclare an attribute with the same name in an inheritance hierarchy.
  3. Removed support for the (un)assigned keyword with variables. These keywords were only relevant for the old G2 based simulation environment.
  4. Removed support for JDK 1.0 and JDK 1.1. The compiler now only supports JDK 1.2 or higher.
  5. Fixed a bug in the XML export. The special characters &, <, >, " and ' required special handling in writing them out as part of a string value to XML to allow the virtual machine's XML parser to appropriately parse it.
  6. Fixed a bug in the compiler where it would not allow you to pass the value 'unknown' to an activity for a parameter. It was only possible through a variable or another parameter.

Brahms Compiler V2.12.000
V2.12.000 Changes

  1. Fixed a problem in the compiler not allowing the value 'unknown' to be assigned to attributes/relations with a meta type as their type.
  2. Added two new concepts to the base library SystemGroup and SystemClass with generic Java activities that allow a model builder to write information to the virtual machine's log file for debugging purposes. The activities allow for writing beliefs, facts and generic messages.
  3. Fixed a problem in the compiler with type compatibility between meta types, only if two meta types were exactly the same were they found to be type compatible, however for example ActiveInstance is also type compatible with Agent and Object.
  4. Added support for assigning a parameter to the display property of activities in addition to being able to assign it a string value.

Brahms Compiler V2.11.000
V2.11.000 Changes

  1. Added support for language specification V2.11 adding support for create area activities.

Brahms Compiler V2.10.001
V2.10.001 Changes

  1. Added support for language specification V2.10 adding support for gesture activities.
  2. This patch fixes a bug in the compiler where it would not report an error if the name of a group, class, areadef, conceptual class or path was used on the left or right hand side of a condition.
  3. Bug fix in the compiler not properly exporting the XML byte code for activite references referencing a get and put activity.

Brahms Compiler V2.09.001
V2.09.001 Changes

  1. Bug fix. The compiler did not allow for a parameter to be defined of type ActiveInstance passing it a variable of a type defined using a group name or class name.

Brahms Compiler V2.09.000
V2.09.000 Changes

  1. Added 'to' and 'toSubAreas' properties to broadcast activity to allow the model builder to specify to what locations a broadcast can travel to (in what areas agents can listen
    to the broadcast belief).
  2. Added the 'detectDepartureIn', 'detectDepartureInSubAreas', 'detectArrivalIn' and 'detectArrivalInSubAreas' properties to the move activity allowing a model builder to specify
    the areas in which agents can detect the departure of the moving agent and allowing a model builder to specify in what areas agents can detect the arrival of the moving agent and also in what areas the moving agent can detect the objects and other agents.

Brahms Compiler V2.08.000
V2.08.000 Changes

  1. Added type attribute to workframe for objects to allow model builder to indicate whether the preconditions are to be matched on facts (type=factframe) or on beliefs (type=dataframe).

Brahms Compiler V2.07.003
V2.07.003 Changes

  1. Added source attribute to get activity and added destination attribute to put activity to allow for the transfer of items between agents and objects.
  2. When no DTD path is specified the DTD path will point to the appropriate DTD version on-line at http://www.agentisolutions.com/dtd

Brahms Compiler V2.07.001
V2.07.001 Changes

  1. Added support for priorities in thoughtframes.

Brahms Compiler V2.07.000
V2.07.000 Changes

  1. Added support for the use of the value 'unknown' in beliefs, facts, conditions and truth values.

Brahms Compiler V2.06.000
V2.06.000 Changes

  1. Added support for the create_agent activity.

Brahms Compiler V2.05.001
V2.05.001 Changes

  1. Added support for the put and get activities.
  2. Added support for 'import *;'.

Brahms Compiler V2.04.004
V2.04.004 Changes

  1. Bug fixes to make compiler work in Unix environments.

Brahms Compiler V2.04.003
V2.04.003 Changes

  1. Bug fix in parser. Compiler was sometimes unable to find Java classes for external activities. Included a Brahms specific class loader that knows where to find the classes based on the class path passed to the compiler.

Brahms Compiler V2.04.002
V2.04.002 Changes

  1. Bug fix in parser. Parser generated an exception when parsing a relation specified in a condition using the dot notation used only for attributes without using a relational operator.
    For example: (current.isRelatedTo someAgent) where isRelatedTo is specified as a relation and not as an attribute.

Brahms Compiler V2.04.001
V2.04.001 Changes

  1. Added support for external agents.
  2. Added ability to pass in the Java class path to find Java activities specified in Brahms models.

Brahms Compiler V2.03.004
V2.03.004 Changes

  1. Now allowing for numeric values on the left hand side in expressions.

Brahms Compiler V2.03.003
V2.03.003 Changes

  1. Bug fix in initial statements where an integer is assigned to an attribute of type double. The integer is now converted to a double.

Brahms Compiler V2.03.002
V2.03.002 Changes

  1. Bug fix in processing import statements.

Brahms Compiler V2.03.000
V2.03.000 Changes

  1. Added support for multiple dirtories on the library path. The directories are separated by semicolons (;).

Brahms Compiler V2.02.000
V2.02.000 Changes

  1. Updated to the new Brahms Language Specification V2.2 that only targets the Brahms virtual machine and no longer targets the G2 based Brahms engine
  2. Added Java activity

Revision History Brahms Virtual Machine

Brahms Virtual Machine V3.13.0008 beta
V3.13.0008 beta Changes

  1. Added support to the JAPI for sending objects by value to a remote agent (IObject:::sendTo). It sends the object reference and the beliefs in the object's belief set to the remote agent. The remote agent retrieves the object reference, marks it as local and as a copy and asserts the beliefs in the object and in the agent's belief set. Any belief retrieval from that object will now only result in belief retrieval from the local copy. The original and copy are not kept synchronized and are separate copies, but with identical reference identifiers.
  2. Fixed a bug causing a ConcurrentModificationException on the process listener list in the VM Controller when running the VM in simulation mode from the Composer. The list is now properly synchronized for a multi-threaded environment.
  3. Added support for enforcing policies defined using KAoS' KPAT (KAoS Policy Administration Tool). The policy enforcement can be turned on/off using a configuration option in the virtual machine's configuration file and is by default off.

Brahms Virtual Machine V3.11.0005 beta
V3.11.0005 beta Changes

  1. Removed support for the 'assert' and 'retract' methods in the API since they are reserved words in Java JDK 1.4 and later. These methods were deprecated the last 6 months.
  2. Changed the logger for the Brahms virtual machine to use Log4J's logger. The Brahms virtual machine's logger is deprecated but is backward compatible with Log4J. The Log4J logger allows for better controlled logging through configuration files. The default configuration file is vmLogger.cfg. The vm.cfg file has changed to specify the location of this logging configuration files and the old logging options are removed.
  3. Added methods to the IModel interface to allow for the retrieval of concept instances using a loading strategy, allowing control over whether the concept instance is to be found in memory only, or a combination of memory, disk and directory service.
  4. Fixed a bug where the VM would cause the Composer to exit if a problem occurred while loading a model.
  5. Modified the CorbaLogWriter to allow for log messages to be send to a remote agent monitor when messages are logged using Log4J.
  6. Fixed a bug where the VM would not properly continue a workframe when its current composite activity was ended with an end-activity detectable.

Brahms Virtual Machine V3.09.0001 alpha
V3.09.0001 alpha Changes

  1. Fixed a bug where when we load a remote concept referencing a parent that is not yet loaded, it had to be loaded first in order for proper registration of the object in the history file.
  2. Fixed a bug where workframes with only collect-all variables would result in ArrayIndexOutOfBoundsExceptions due to an indexing error in RSNFrameNode.
  3. Added API method to allow access to the Corba ORB used by the VM.
  4. Added synchronization blocks around the access to the s_lLastID fields used when creating new contexts and assigning them unique ID's. Race conditions were causing duplicate key's to be possible and resulted in errors when parsing the history file using the agent viewer.
  5. Upgraded ProfessionalAgent to now use JacORB 2.0 replacing JacORB 1.4.1
  6. Upgraded ProfessionalAgent to use the latest available release of KAoS.

Brahms Virtual Machine V3.07.0040 alpha
V3.07.0040 alpha Changes

  1. Fixed a bug where frames with foreach variables used in only one precondition as an assignment were already available would be made available more than once.
  2. Fixed a bug where dynamic creation of agents, objects, conceptual objects and areas in distributed mode could result in unnecessary wait times in order to check whether a concept with a specified name already exists. It is not necessary to check remote concepts since names are unique within each VM.
  3. Fixed bug where remote agents were unable to send beliefs to an external agent.
  4. Fixed bug where an attribute in a belief was incorrectly processed in remote communications if the attribute was declared for an agent/object and not a group/class.
  5. Fixed a bug where when during a concept lookup a remote concept was found we would still do a local concept load.
  6. Fixed a bug in distributed receive communications where received beliefs were not put at the beginning of the event queue.
  7. Fixed a bug in the JAPI where initial facts for dynamically created objects were not processed.
  8. Added capability to create new areas using the JAPI.
  9. Added support for language specification version 2.12 in which support was added for the relational operators >, >=, < and <= in detectables.
  10. Deprecated all assert/retract methods and removed all uses of assert/retract from the core code. As of JDK 1.4 'assert' is a Java keyword. The API now has appropriate replacement methods (assertBelief/assertFact, retractBelief/retractFact).

Brahms Virtual Machine V3.07.0029 alpha
V3.07.0029 alpha Changes

  1. Added a set of external activities (Java Activities) to create and manipulate brahms.base.Calendar objects. The activities are declared in the CalendarUtilGroup.b and CalendarUtilClass.b files in the brahms.base package.
  2. Added support for setting the time zone with the -date flag to initialize the simulation date/time.
  3. Added support for dynamically loading groups/classes/conceptual classes/area definitions when such a concept is not yet loaded and the JAPI tries to create an instance of one these concepts.
  4. Fixed a bug where passing a concept instance to a parameter for a Java activity would result in an Exception to be thrown.

Brahms Virtual Machine V3.07.0025 alpha
V3.07.0025 alpha Changes

  1. Removed dependency on the collections.jar library now solely using the JDK 1.2 or higher collections library.
  2. Transport used for agent registration and communication is now CORBA instead of Jini/Rmi/Grid.
  3. Fixed a problem in the virtual machine where a get activity did not properly remove an item from its current location.
  4. Fixed a problem where in distributed mode the virtual machine would initiate the loading of a remote concept before all local concepts were registered.
  5. Communications are now able to recover properly when the receiving agent was reregistered due to a failure in the remote virtual machine. The communications will renew the locator for the remote agent.
  6. Added the getName method in the AbstractExternalActivity class as part of the Brahms JAPI.
  7. Added support for the IBeliefQuery and IFactQuery interfaces allowing an agent monitor to request the fact set of the World State or the belief state of an agent or object.
  8. Includes a new File Agent Viewer Service to create history files that are parsable and displayable even after a virtual machine is terminated abruptly.
  9. Updated XML parser to Sun's JAXP version 1.2
  10. Fixed a bug in the precondition evaluation where the binding of variable bound in an earlier precondition was not used in the evaluation of subsequent preconditions.
  11. Fixed a bug in the dynamic creation of objects by external (java) activities.
  12. Fixed a bug in the file agent viewer service to handle dynamically created objects created by external activities.
  13. Fixed a bug in the virtual machine where an error would be generated if a precondition was used in a workframe in a composite activity using a relation where the right hand side was a variable not bound in an earlier precondition.
  14. Added support for the IWorkStateQuery interface allowing an agent monitor to request the work state of an agent or object.
  15. Added support for the virtual machine to be started and managed by the Composer.
  16. Bug fix for use of two foreach variables in one precondition.
  17. Modified create object/agent/area to use the name of agent when performed by an agent and to use the name of the model as part of the object name when called from the JAPI to keep the name unique in distributed mode.
  18. Bug fix that solves a problem with the use of variables passed down several levels to composite activities, without being referenced in preconditions in frames in sub levels. The bindings weren't properly send down in that case.
  19. The ':' in the timestamps messed up the parsing of the beliefs in remote communications.
  20. If the right hand side of a communication send or receive was an OA the parsers would bomb, the Vm requires 'unknown' on the right hand side for OA=. If the VM does not see a valid right hand side it will now assume 'unknown'.

Brahms Virtual Machine V3.04.0009 alpha
V3.04.0009 alpha Changes

  1. Fixed problem in receive communication where event handlers would generate an exception if a transfer definition did not match with any beliefs to be transferred.
  2. Added support for assigning a parameter to the display property of activities in addition to being able to assign it a string value.
  3. Fixed a problem with the use of 'unknown' preconditions when using variables on the left hand side. Unknown would fail to match if any statement matched the left hand side regardless of the variable binding.
  4. Fixed a problem with the use of known and unknown in preconditions in combination with the use of relations. A NullPointerException was thrown.
  5. Allowed for the retrieval of beliefs from remote agents and objects by external agents and activities.
  6. Modified the OWorld Service to comply with the new OWorld Event Specification.
  7. Fixed a problem in the virtual machine when using foreach variables on both the left and right hand side in a precondition with multiple beliefs that have different different lhs/rhs value combinations.
  8. Fixed problem with copying remote Brahms objects. An exception was thrown when the VM tried to copy the beliefs.
  9. Fixed problem with belief ownership settings causing errors to be generated by the file agent viewer service.
  10. Fixed a problem in the file agent viewer service. Beliefs or facts with a multi-line value on the right hand side caused parsing errors in the agent viewer parser. The service now cuts the value off at the first new line character.
  11. Fixed a problem in the virtual machine when using foreach variables on both the left and right hand side in a precondition with multiple beliefs that have different different lhs/rhs value combinations.
  12. Fixed problem with copying remote Brahms objects. An exception was thrown when the VM tried to copy the beliefs.
  13. Fixed problem with belief ownership settings causing errors to be generated by the file agent viewer service.
  14. Fixed a bug in the virtual machine where a ClassCastException was thrown.

Brahms Virtual Machine V3.03.0010 alpha
V3.03.0010 alpha Changes

  1. Fixed a problem in the virtual machine where certain variables used in preconditions in frames in composite activities were not correctly resolved. Certain variable references were overwritten in memory.
  2. Fixed a problem with using thoughtframes in composite activities. An exception was generated when more than one thoughtframe was available in a composite activity.
  3. Currently KAoS doesn't generate the appropriate error when an agent is not locatable during a communication, a MessageNotRepliedToException was generated. This is now fixed with a workaround and will now correctly generate a NotLocatableException.
  4. Fixed a type compatibility check problem with the use of the meta type ActiveConcept for attributes in the Brahms JAPI.
  5. Fixed a problem with automatically generated Exception objects. Those objects did not have context associated with them resulting in errors to be generated by the virtual machine when trying to match variables with those exception objects.
  6. Fixed a problem with the transfer of beliefs in a distributed environment where the type of an attribute is of a meta type.
  7. Fixed a problem with a communicate activity where a ClassCastException was thrown when a communicate activity was executed for which no agents to be communicated could be found.
  8. Added support for 'current' reference in JAPI.
  9. Fixed a bug in binding a value to a variable of a meta type.
  10. Fixed a bug in the JAPI. The JAPI didn't allow '_' characters in symbolic values.
  11. Fixed a problem with the receive communication. A ClassCastException was thrown.

Brahms Virtual Machine V3.03.0000 alpha
V3.03.0000 alpha Changes

  1. Fixed a problem with passing parameters of primitive type to a composite activity and using them in a precondition.
  2. Fixed a problem with initialization of facts in real-time mode. It now goes directly through the world state instead of through the scheduler.
  3. Fixed a problem with the real-time engine. It would sometimes discard events whenever new events were posted that were to be added at the beginning of the queue for a specific time where the time of events on the queue were less than the time of the event to be added.
  4. Added shutdown hook to allow the virtual machine to gracefully stop all services even if the virtual machine is stopped ungracefully using Ctrl-C.
  5. Added support for the create area activity.

Brahms Virtual Machine V3.02.0036 alpha 5
V3.02.0036 alpha 5 Changes

  1. Fixed a problem with passing parameters of primitive type to a composite activity and using them in a precondition.
  2. Fixed a problem with initialization of facts in real-time mode. It now goes directly through the world state instead of through the scheduler.
  3. Fixed a problem with the real-time engine. It would sometimes discard events whenever new events were posted that were to be added at the beginning of the queue for a specific
    time where the time of events on the queue were less than the time of the event to be added.

Brahms Virtual Machine V3.02.0033 alpha 4
V3.02.0033 alpha 4 Changes

  1. Modified OWorld service to include the export of the associated resources in the gesture activity.
  2. Bug fix in the virtual machine, now properly reading in get, put and gesture activities that are declared inside of a composite activity.
  3. Bug fix in the virtual machine not properly parsing variables, attributes and relations from XML when their type was of meta type Area.
  4. Bug fix in the virtual machine in resolving the value for a parameter when used in a detectable that was triggered for detection while a communicate activity was active.

Brahms Virtual Machine V3.02.0030 alpha 3
V3.02.0030 alpha 3 Changes

  1. Updated to work with latest version of KAoS.

Brahms Virtual Machine V3.02.0029 alpha 2
V3.02.0029 alpha 2 Changes

  1. This patch fixes a bug in the create object activity that causes a NullPointerException to be thrown when an object is being copied of which the source has no location.
  2. Added support for language specification V2.10 adding support for the Gesture Activity in the virtual machine and the agent viewer, test event and oworld services.
  3. Added support for having external agents communicate with distributed agents.
  4. Bug fixes in the virtual machine where a communication specified to go to one agent would be transmitted to all agents in the system. This would happen when a collect-all variable 
    was used in a transfer definition that in turn matched to multiple beliefs.
  5. Bug fixes in the virtual machine where real-time event times weren't reported correctly to the event services. 
  6. Bug fixes in the file agent viewer service for certain events that were processed after the VM was stopped to process their end times correctly when the VM was run in real-time mode.
  7. Bug fixes in the real-time portion of the virtual machine causing occasional deadlock to occur in the threading on fact assertion.
  8. Bug fixes in the virtual machine related to composite activity activation.
  9. Bug fixes in the test event service for concepts created by external agents.
  10. Added isInstanceOf methods for IObject and IConceptualObject in the JAPI to allow for testing whether an object is an instance of a specific class.

Brahms Virtual Machine V3.00.0016 alpha
V3.00.0016 alpha Changes

  1. Added the ability for models to be run in a distributed environment over multiple Brahms virtual machines. Agents and Object can communicate with one another between virtual
    machines. Areas are currently not yet distributed. The distributed environment currently uses CoABS Grid (Jini) for the transport layer.

Brahms Virtual Machine V2.07.0012
V2.07.0012 Changes

  1. A bug fix in the virtual machine not allowing for composite activity parameters to be used in preconditions and consequences if they are of any type other then a concept type.
  2. Added the capability to dynamically create a new conceptual object from a conceptual class using the Brahms Java API and allows a model builder to check the number of parameters being passed to a Java activity using the Java API.
  3. Events generates while the virtual machine is running in real-time mode are now time stamped using a real-time time stamp in milliseconds instead of the discrete event time.
  4. A bug fix in the file agent viewer service causing a NullPointerException to be thrown when a frame is interrupted after being impassed and causing some agents communicated with in a broadcast activity at the end of the activity to be ignored. The agents that arrived in the location while the broadcast was active are not shown in the agent viewer due to the fav service registering the agents communicated with at the start of the activity.
  5. Updated the file agent viewer service to parse real-time time stamps when the virtual machine is run in real-time mode to allow the agent viewer to be used to visualize the results of an agent-based system executed using the Brahms virtual machine.
  6. Updated the test event information service to parse real-time time stamps when the virtual machine is run in real-time mode. The EventInformation file display the data/time of each event instead of the discrete event time.

Brahms Virtual Machine V2.06.0008
V2.06.0008 Changes

  1. Bug fix with parameters being passed to a composite activity and used within workframes in that composite activity.

Brahms Virtual Machine V2.06.0006
V2.06.0006 Changes

  1. Bug fix in the Brahms Java API when trying to use parameters passed to external activities.
  2. Bug fix for consequences. A null-pointer exception was recorded in the vm.log file when using a consequence with an object/attribute tuple on the right hand side that cannot get resolved due to no beliefs matching with the object/attribute tuple. Now as specified no error is generated and the consequence will not generate a fact/belief.
  3. Added support for language specification version 2.9, adding support for the new properties for the broadcast and move activities as specified in the compiler changes.
  4. Modified the base library to include two new relations for BaseAreaDef 'hasSubArea' and 'isSubAreaOf'.
  5. The virtual machine now automatically generates a set of initial facts about the geography structure, the hierarchical relationship between areas using the hasSubArea and isSubAreaOf relations.

Brahms Virtual Machine V2.05.0008 rc1
V2.05.0008 rc1 Changes

  1. Added support for the type attribute for workframes.
  2. Fixed a bug related to detectables.
  3. Bug fix in OWorld service to correctly export start and end locations.
  4. Bug fix in virtual machine to ignore communication in a broadcast activity if there are no agents to communicate to. A warning is placed in the log file.
  5. Bug fix in the file agent viewer service to correctly handle the situation of a broadcast activity that is not communicating anything to any agents.

Brahms Virtual Machine V2.04.0013 rc1
V2.04.0013 rc1 Changes

  1. Added support for the source and destination attributes in the get and put activities.
  2. Bug fix in use of variables on the left-hand-side in relation preconditions

Brahms Virtual Machine V2.04.009 rc1
V2.04.009 rc1 Changes

  1. Bug fix in use of integer assignment in preconditions.

Brahms Virtual Machine V2.04.008 rc1
V2.04.008 rc1 Changes

  1. Added support for priorities in thoughtframes.
  2. Bug fixes in the use of the 'unknown' value.
  3. Bug fix for collect-all variables.

Brahms Virtual Machine V2.04.004 rc1
V2.04.004 rc1 Changes

  1. Added support for the use of 'unknown' as a value in beliefs, facts, truth-values and conditions.

Brahms Virtual Machine V2.02.002 beta
V2.02.002 beta Changes

  1. Bug fix for the real-time engine, now agents/objects communicate synchronously with other agents/objects instead of through the scheduler asynchronously.

Brahms Virtual Machine V2.02.000 beta
V2.02.000 beta Changes

  1. Added support for the create_agent activity.

Brahms Virtual Machine V2.01.002 beta
V2.01.002 beta Changes

  1. Added support for the put and get activities.

Brahms Virtual Machine V2.00.069 alpha
V2.00.069 alpha Changes

  1. Added support for external agents. The virtual machine is now able to load and create agents that are defined externally in Java. External agents participate fully in simulation and real-time scenarios.
  2. Expanded the virtual machine's application programming interface. Developers are now able to create and communicate beliefs to other agents and are able to create, assert and retract facts from the world state. This functionality is provided for both external activities as well as external agents.

Brahms Virtual Machine V1.00.004
V1.00.004 Changes

  1. Fixed a bug that caused a repeated assertion/retraction of the same relation-based belief with differing truth values to fail, the retraction failed the second time around and onwards.

Brahms Virtual Machine V1.00.003
V1.00.003 Changes

  1. Fixed a bug that reported a ClassCastException when a concept value of a parameter passed to a composite activity was used in the precondition of a frame.

Brahms Virtual Machine V1.00.002
V1.00.002 Changes

  1. Fixed a bug related to composite activities where workframes would not be made available if a belief/fact was concluded just before the composite activity was activated. The non activated workframes never received the beliefs/facts asserted before the workframes were activated and never received them when they were activated.
  2. Bug fix when using variables in a precondition that was never bound by using the unknown or not modifier. Now a warning is generated and the workframe is not made available. The model builder must ensure that variables specified in preconditions are bound.

Brahms Virtual Machine V1.00.000
V1.00.000 Changes

  1. Fixed a bug in the File Agent Viewer Service in storing information about a Java activity.

Brahms Virtual Machine V1.00.005 beta
V1.00.005 beta Changes

  1. Added a stop command-line parameter allowing for the simulation's stop time to be set from the command line.
  2. Changed move activity duration calculation behavior. Now first the activitie's time is checked, if the duration is larger than 0 that duration is used, if the duration is 0 the duration will be determined based on the network of paths defined in the geography.

Brahms Virtual Machine V1.00.003 beta
V1.00.003 beta Changes

  1. Bug fix when using for-each variables in repeatable frames. Frame with a for-each binding did not become available again if other for-each bindings were available.
  2. Bug fix in a composite activity, it did not manage the list of available frames correctly. It ignored new available frames with a lower priority then already available frames.

Brahms Virtual Machine V1.00.049 alpha
V1.00.049 alpha Changes

  1. Bug fixes in synchronization between objects through scheduler. Objects could start an available frame while a fact was on the scheduler that would make it unavailable. The synchronization occurred after the available frame was started instead of before.
  2. Bug fix in handling of detectables and triggers. It was possible that a detectable detects a fact but that a trigger reacts on a belief that existed prior to the detected belief that was
    supposed to have been retracted due to the detected belief.

Brahms Virtual Machine V1.00.040 alpha
V1.00.040 alpha Changes

  1. Added virtual machine api for the Java Activity allowing access to parameter values and allowing to set the value of an unbound variable.

Brahms Virtual Machine V1.00.033 alpha
V1.00.033 alpha Changes

  1. New release of the Brahms Virtual Machine compliant with Language Specification V2.2