SADL: What, Why, and How

Last revised 08/06/2010 by A. W. Crapo.

See also SADL V2 Releases and SADL Architecture.


The Semantic Application Design Language (SADL) refers to two related things.

  1. SADL is an English-like language for building formal models composed of an OWL ontology, rules expressed in terms of the ontological concepts, queries for retrieving information from the model, and tests to validate and re-validate model content and entailments (implications);
  2. The SADL-IDE is an Eclilpse-based integrated development environment (IDE) which  facilitate authoring and maintaining models expressed in the SADL language.


The Semantic Technology (Web) stack offers significant potential for knowledge capture and usage in many domains of interest to GE. However, native representations (OWL, SWRL, Jena Rules, SPARQL) are not very friendly to domain experts who are not computer scientists and knowledgeable in the intricacies of artificial intelligence and formal logic. Furthermore, the tools available to build, test, maintain, and apply knowledge bases (models) over their life cycle are inadequate. SADL attempts to bridge these gaps.


SADL attempt to meet the needs identified above in several ways.

  1. The SADL grammar tries to use common words to express formal model relationships. These key words and phrases are mapped unambiguously into the formalisms of OWL, SWRL or Jena Rules, and SPARQL.
  2. SADL allows combining of statements so that the grouping is much more concise and therefore understandable. Examples include listing the properties that "describe" a class as part of the class definition, identifying multiple subclasses in a single statement, the chaining together of triple patterns in rules and queries to eliminate variables and make the overall pattern more readable, listing the attributes and relationships of an instance together with a single subject, and declaring instances with their properties without necessarily requiring that they be given names.
  3. The SADL-IDE provides templates, content assistance, quick fixes, hyper linking of concepts to their definitions, folding, and other authoring helps to make it easier for domain experts to view and understand, create, and maintain models expressed in the SADL language.
  4. The close integration of Eclipse with source code control tools such as CVS allow SADL models to be versioned and more easily managed over their life cycle. The sequential nature of the language makes the viewing of differences between versions of a model easy to compute and view. A set of models may be easily tagged as a particular release and thereafter be retrieved as a compete set at any time.
  5. Integration of reasoners/rules engines with the SADL-IDE allows the model developer to exercise the model, query inferred results, and create test cases for validation and regression testing of the model.

There are many opportunities for additional aids for model authoring and lifecycle maintenance: graphical model visualization, model validation and gap analysis, etc.