Highly conceptual initial idea/brainstorm
Traditional development cycle is more or less:
- Define requirement (textual)
- Define/implement data model (typical ER-like)
- Define/implement business logic (.NET/Java or similar OO-languages)
- Implement user interface to logic (.NET/Java etc)
Number 2 and 3 are basically about defining an ontology with constraints, properties, relations and alike. Why is this so technology specific? Why not engineer an ontology to be a main driver for the business intelligence? Proposed cycle:
- Elaborate requirement
- Build full reason ontology
- "Run" the ontology in a reasoner
- Implements/extracts data model into DB
- Implements/extracts as much logic as possible in an OO-language
- Implement additional logic
- Implement the user interface
The main benefit is that the ontology is the main business intelligence - abstracting away technology specific constraints (such as; "can not define this in that DBMS")