Tools/Requirements/Principles/Structure

Structure Requirements

  • Separation of Concerns:Knowledge Architecture tools should support concepts defined in such a way that they are easily reusable and composable for use in target languages. The underlying infrastructure should provide for this abstraction and it should then be a well segmented and abstracted model demonstrating separation of concerns
  • Decoupled:Knowledge Architecture tools should decouple model and view notations so that models can be defined using different notations than is selected in projecting views. As well as the projecting model to views “front-end” functionality should be decoupled from the modeling “back-end” (e.g. transformation engine, repository, data integration)
  • Layered:Knowledge Architecture tools should be structured, modular, and layered (e.g. MVC architecture is recommended). Logical layers should minimally separate semantics, notation, UI, transform, and persistence
  • Concept Library:Knowledge Architecture tools should provide contain a set of modeling concepts that are designed to be used together and projected onto different languages or notations. The integrated concept library should not be monolithic in that languages should only have to “see” those concepts that are meaningful in that language/notation. Concepts and their representations (e.g. notations) are be decoupled and the set of "specified" concepts and notations are expected to grow over time
  • Tight Integrated Core:Knowledge Architecture tools should support a tightly integrated modeling component core, used to express, and has the building blocks, for the larger set of concepts, defined and fully grounded with formal semantics. This core should provide for a larger set of concepts that have the capabilities described above and below.
  • More than Meta:Knowledge Architecture tools should far exceed current meta-modeling capabilities to support projecting concepts for different languages or notations, supporting the ability to cover many, if not all, concepts, including those found in UML, BPMN, SBVR and other modeling languages, dialects, and applications
  • Federated:Knowledge Architecture tools should support that information from different tools, languages, and organizations can be federated and integrated to be mutually supportive, taking advantage of the “network effect”, globally. Integration should be supported using dynamic web-based techniques (direct reference of published model assets) as well as the “model interchange” paradigm mostly used today.