Ontology Classification Components
Often within a system, particularly the user interface, the user should be confronted with a set of choices. Often these choices are domain specific. Within the ontology these are components, i.e. string valued objects, where there are a limited number of choices. The purpose of defining classifications within JThermodynamicsCloud is to take the choices out of the programming code and put it in the ontology. Thus if the set of choices need to be modified, the code stays the same and just the ontology is modified. This is particularly important for domain specific classifications.
Within the system, the use of classifications can come is several forms:
Keyword or Labels: The classification is a set of limited choices of possibilities for string labels, often domain specific. This type is purely syntactical, basically for human interpretation. For example, the dataset:UserTitle points to the choices like Mr. Ms, Dr., etc.
Types or classes of objects: Here the type or class of objects would be listed. This could be a keyword that steers a computation. This could point to a set of classes that has more information about what to do with them. For example, the component dataset:FileType points to the different file types, like text, document, spreadsheet, etc.. Another example dataset:JThermodynamicsSpeciesSpecificationType is a domain specific classification that specifies how the molecule is defined in text form. This is used to steer the interpretation of text within other methods that need a molecule as input.
Operations or Methods: This type of classification points to a set of classes in the ontology that have a correspondence with the code in the background service. In other words, specific operations. Here, with the classifications, could be additional information about the input and output. For example, the dataset:JThermodynamicsComputation points to the available computational methods available for molecules. This points to a class hierarchy that has a one-to-one correspondence to the background service code.
In the classification component annotations, the rdfs:isDefinedBy specifies the class hierarchy of the choices. For example, in dataset:UserTitle, the rdfs:isDefinedBy points to the dataset:UserTitleChoices which is a subclass of skos:Concept. The direct subclasses of dataset:UserTitleChoices specify a simple pull-down list. Each subclass is a choice. The classification dataset:JThermodynamicsComputation , on the other hand, points to a tree of subclasses, namely dataset:ServiceCollectionComputeThermodynamics and is a subclass of dataset:DatabaseServiceBase. The user interface choices determine which service to call.
The minimum information that is needed for the class pointed to by rdfs:isDefinedBy in the classification component are the two annotations, rdfs:label and rdfs:comment. These are used by a general menu in the interface to create the pull-down menu. The label is what the user sees in the menu.