Constellation Query Language (CQL) for Knowledge Graph Databases
Constellation Query Language is an analogue of Object-Role Modeling
In an earlier work I argued that Object-Role Modeling is ideal for the knowledge base definition language of a knowledge graph data store.
In 2008 an Australian software developer and researcher, Clifford Heath, released a statement that may make that goal very attainable.
Mr Heath was announcing the Constellation Query Language (CQL), a natural language analogue to Object-Role Modeling. The language and tools that support it have been in development since, including a Ruby implementation (ActiveFacts) that abstracts coding objects into CQL where they can be referenced in a semblance of natural language.
The announcement did not garner much attention at the time and neither, to date, has the significance of the language. I feel this will change, however, with the arrival of knowledge graph databases as mainstream.
The central problems solved with CQL are:
- A knowledge graph database management system can have a text based data definition language, and query language, based on natural language constructs;
- The schema of the underlying database can be extrapolated in controlled natural language;
- The database can support nearly all the features of ORM2, allowing both a graphical and textual based reflection of the underlying schema of the database.
We have implemented some of the features of CQL in our Boston Object-Role Modeling software tool.
For instance, we have implemented a stylised version of CQL within the Glossary view of a model in ORM and where clicking on a model element will prompt Boston to provide a verbose natural language description of that model element.
I will furnish more information as time permits. To help share information on CQL, however, I provide here some links:
- Examples of CQL in action can be found here;
- Railroad diagrams and examples of CQL can be found here;
— — — — — — — — — — — — — — — —
Copyright notice: Please note that Constellation Query Language is copyright to Clifford Heath and the sample model in this article is a derivative work of an example in Clifford Heath’s ActiveFacts research on Github. Please see the License.txt at https://github.com/cjheath/activefacts