If your can't find the answer to your questions here, please let us know.
What is a conceptual model?
A conceptual model is a formal or semi-formal representation of a subject under study, which can be anything. Being relatively formal, conceptual models are composed of concepts rather than physical parts, and hence the name. Since concepts are abstract and cannot be seen, conceptual models are often visualised in the form of diagrams plus accompanying text.
What is conceptual modelling?
Conceptual modelling is the process of creating conceptual models of relevant things. Some things are very complex and need to be carefully documented in order to be understood, communicated and used. This is achieved through conceptual modelling.
What is a modelling language?
A modelling language is an artifical language designed to express models. Since models are usually depicted in the form of diagrams for convenience, modelling languages often incorporate a graphical notation. Like natural languages, modelling languages have a lexicon, that is, a set of the "words" that exist in the language, plus a syntax, that is, a set of the rules that tell us how we can combine those words in order to compose meaningful "sentences". The "words" of modelling languages are not conveyed through text or sound like those of natural languages, but usually through icons and drawings to help the formal visualisation of the abstract concepts. The syntactic rules of the modelling language tell us how these icons can be connected together to express models, and what each kind of connection means.
What is ConML?
ConML stands for "Conceptual Modelling Language". ConML is a specific modelling language that was designed for non-experts in information technologies to create and develop their own conceptual models. ConML contains very few "words", and its syntax is very simple. However, using ConML, you can represent very complex ideas in a simple, meaningful way.
Why is conceptual modelling necessary?
It is necessary for two main reasons. First of all, a conceptual model helps you understand the portion of reality that you are dealing with much better, since it removes some of detail and complexity that often makes it unmanageable. Secondly, a conceptual model constitutes an excellent language in which to communicate statements about that portion of reality, especially when people from different backgrounds and disciplines are involved.
Is ConML only for the humanities?
No. ConML can be used to model information in the humanities, but also in other fields such as experimental sciences or social sciences.
How can ConML help me build a database?
ConML can help you organise the information that you want to put in your database. By using ConML, you can design the structure that the information in your database will have. Once you have a ConML diagram that represents your information, creating the database tables, columns and relationships is a matter of translating the diagram into the database language of your choice.
Why is ConML so similar to UML?
ConML looks similar to UML because UML is a well known and popular modelling language in the software engineering world. By making ConML look similar, people who know UML can quickly understand and use ConML with little effort. The superficial resemblance does not go deep, though. ConML is much simpler than UML and, at the same time, provides some features that UML lacks.
So, what are the major differences between ConML and UML?
ConML has been designed to be usable by non-experts in information technology, whereas UML is a specialised tool for software engineers. ConML addresses conceptual modelling, whereas UML addresses software modelling. ConML is much, much simpler than UML. ConML provides some features that UML lacks and that are useful for conceptual modelling of complex domains, such as hierarchical enumerated types and deferred features (i.e. properties). In addition, ConML supports the modelling of temporal and subjective aspects of entities, something that UML cannot do.
What is the difference between a property and an attribute?
An attribute describes a simple variable of a class for which we know the name and data type. For example, we can model a Person class with an Age attribute of type Number, meaning that all persons have a numeric age. A property, on the other hand, describes a characteristic of a class for which we only know the name, but we are not sure about the type or even whether it will be a simple piece of data or a complex aggregate of information. For example, we can add an Address property to the Person class to indicate that every person has an address, but we are not sure whether addresses will be modelled as a piece of text or as a more complex collection of data that we will develop later. Properties are deferred features, meaning that they are useful to capture partial knowledge without having to specify every detail about it.