The Blockly visual development process is currently being evaluated as a possible method for providing edit capability to the components of the Otter Project. A sample test is being run using a prototype development of Blockly blocks for constructing logic, services, and objects. Readers can view the test and try it for themselves at: https://otterserver.com/blockly-class-expression/
Motivation to Use Blockly
Blockly is an editor for visually constructing logical statements by connecting 2D blocks. Whereas most ontology editors are either forms-based or text-based, Blockly is picture-based. All blocks have a common shape, and each supplies content and connectivity. However, each individual block has its own unique content, connection restrictions, and differentiating color.
Blockly provides localization so the same blocks can be presented in multiple languages. The approach used in Blockly for localization may also be extended to ontologies.
Starting with Objects
The first test is with objects, as defined by the standard for Service Data Objects. In the Otter Project, objects are defined by OWL class expressions. The test shows how Blockly blocks can be combined to build a class expression, and that the Blockly visual can then be transformed into a text-based class expression. The Blockly blocks may also be created directly from a text-based class expression.
Objects was chosen as the first area to experiment with Blockly due to the importance of class expressions to the Otter Server. Class expressions are the language used to access and update the Abox database. Class expressions are also used to define all the messages in service dialogues.
- Finalize the blocks for objects.
- Complete localization for the blocks and the OWL DL ontologies.
- Develop the blocks for services as defined by the standard Service Component Architecture and the Business Process Execution Language.
- Develop blocks for logic as defined by description logic and specified by the OWL language.
Sharing and reuse of multilingual description logic, processes, and data with consistency when combined.