Blog Archives

Knowledge Representation and Software Automation

Knowledge representation is a discipline devoted at representing the real world information in a way that can be interpreted by machines to solve, by inference, complex problems.

It has traditionally been an Artificial Intelligence subject and it has recently become very popular for its use in the field of semantics. The Semantic Web project, led by the W3C, is a clear example of it.

Although there are many approaches to represent the knowledge, all of them seek to define: the concepts, the relations and the rules that define the information. The different concepts allow us to classify the information and through the relations and rules we can infer (reason) from it. Therefore, instead of having only “flat” information we will have also meta-information to process it.

From the perspective of languages
In previous posts we saw how a language is defined, in a Language Workbench, by the abstract and concrete syntax and the static and dynamic semantics. We can see that definition as the meta-information that makes a program a knowledge representation and therefore we can use the potential provided by this discipline.

Usually Language Workbenches are seen as code generators but, from a knowledge representation and semantics point of view, they can offer many more services. We list some of them:

  • Generate test batteries.
  • Generate data population for performance analysis.
  • Self-documenting.
  • Auto-validation.
  • Statistical analysis of the data and programs.
  • Behaviour analysis of users, customers, etc..
  • Simplify importing and exporting data. For example XBRL: eXtensible Business Reporting Language.
  • Link with standard ontologies. For example FIBO: Financial Industry Business Ontology.
  • Simplify integration with other systems.
  • Machine reasoning.
KRKnowledge representation is focused mainly on data processing: structuring search engines information, semantic analysis applied to Big Data, definition of ontologies related with different businesses, and others.

Software development methodologies that provide programs those capabilities are a gateway to the future with a huge potential.

View all Academic Posts.