.. _Modify_DeriveMissingClasses: Modify > Derive missing classes """"""""""""""""""""""""""""""" This operation is available from the :ref:`ModifyMenu` of the "Home" asset (see :ref:`HomeButton`) of an Ontology asset collection. It opens a dialog that can be used to derive SHACL classes and property shape definitions based on existing instances from a selected asset collection (that must include the current ontology). It will create a new class for each type that is used in the data, and then suggest property shapes based on the values of other properties. For example, if all instances have at most one value for a property then that property will get ``sh:maxCount 1``, and if all values are *integers* then the property shape will use datatype ``xsd:integer``. .. tip:: This feature can be useful starting point if you have been given some instance data without suitable class declarations. Without class declarations, tools like TopBraid do not really know how to render or edit these instances. .. caution:: While the algorithm behind this feature is using some heuristics and best practices, you will likely want to fine-tune the ontology later, for example to establish subclass relationships and to move property declarations into the most suitable superclass. You may, of course, also want to add proper display labels and descriptions to the generate ontology. **See Also** * :ref:`Modify_DerivePropertyShapesFromInstances` **Further Reading on Ontologies** * :ref:`working_with_ontologies_target` **Further Reading on SHACL** * `Form Generation using SHACL and DASH (External Link) `_ * `SHACL Advanced Features Specification (External Link) `_ * `SHACL W3C Specification (External Link) `_ **Further Reading on Modify Menu** * :ref:`scripting_actions` **Further Reading on TopBraid** * :ref:`introduction`