The majority of the SADL language is designed to provide a controlled-English representation of OWL semantics. This portion of the grammar allows the modeler to create OWL classes and then to create instances of those classes. However, SADL also supports the creation of non-OWL structures including rules, queries, and tests. Sometimes these structures are given names in the SADL model. This is always the case with rules. In SADL 3 it is an option for queries. When a SADL structure is given a name, it becomes desirable to make it a linked object in the SADL model and an instance in the resulting OWL model. For example, give two rules, R1 and R2, it might be desirable to add an annotation to the first indicating some relationship to the second. In the SADL model this means that R1 and R2 should be hyperlinked. In the resulting OWL model this requires that the first be a instance so that it can become the subject of an annotation statement, and that the second also be an instance in the model so that it can become the object of the annotation statement.
Another example of a named structure and how it can be used is that of a named query. One might define the query Q1 in one model, e.g.,
Ask Q1: area.
and then wish to use the same query in another model, e.g.,
This would be particularly useful for complex queries that one wished to repeat in multiple places.
The SADL Version 3 implicit model, located in the project's ImplicitModel folder, defines by default two implicit classes. Note that Rule is escaped with a caret because it is a reserved word in the grammar.
^Ruleis a class.
NamedQuery is a class.
The names of named structures in the Xtext grammar are now treated as scoped and linked concepts. These named concepts can become the subject or object of statements in the model. When a named structure is processed to generate the OWL model, an individual of the appropriate implicit model class is created. This individual is then used as subject or object of any RDF triples created from statements in the SADL model.
Note that instances of named structures are the same blue as regular instances but are bolded to make them identifiable.
Note also that named structures can be given annotations using the same syntax as annotations for classes, instances, and properties, but with the annotation property a user-defined property instead of "alias" or "note".