This WIKI is the work space for assembling responses to the OMG API for Knowledge Bases (API4KB) RFP
The API4KB will define APIs for the following:
Whether there is a complex set of services or a simple back-end with a single ontology and reasoner should be immaterial to API4KBs – we should not necessarily expose applications to the potential complexity if they don't want that
If we want to integrate various reasoning systems in a loosely coupled, hybrid environment, though, we will need integration apis that can allow you to build up these more complex sets of services. Thus, the APIs need to support both levels of development: (1) a very abstract interface to some service, and (2) more complex, lower level apis that provide access to the individual services and allow us to build up more complicated apps from these lower level services.
The proposed solution must support these Use Cases, and it must also support the following architecture styles:
Our list of issues can be found here:
One possible strategy is to use a processing model that takes its inspiration from the eXtensible Access Control Markup Language (XACML). XACML is an OASIS standard that defines a declarative access control policy language that is implemented in XML. It also defines a processing model for how to evaluate authorization requests according to the rules defined in the policies. This strategy would be to keep the XACML processing model, but replace the XACML language with a combination of Web Ontology Language (OWL) and a rule language.
The XACML standard provides a UML interaction diagram of the processing model that we plan to reuse. This diagram is a slightly enhanced reproduction.
In the course of developing the set of APIs the submission team feels are necessary to meet the RFP requirements, we have identified several ontologies that the APIs depend on. These include ontologies describing knowledge base descriptors, asset descriptors, the set of languages used by the relevant knowledge bases and/or tools, and the capabilities of those languages and/or knowledge bases. Each of these are described in more detail here.