This example is also given as an example with the CaseTalk download. This example demonstrates the method of information modeling using CaseTalk.
"There is a student Peter Johnson."
We qualify this expression as the object type or fact type 'Student'. Press the button Qualify.
Now we select the text 'Peter' and qualify this as 'Firstname'; and the text 'Johnson' is qualified as 'Surname'. When we're done qualifying you should see a diagram similar to this:
Now we will qualify a new expression as 'City of Residence':
"Student Peter Johnson lives in New York."
The text 'Student Peter Johnson' is qualified as 'Student' which will promote the facttype 'Student' into a objecttype. The expression tree after completing the qualifications will look like this:
And the corresponding diagram will look like this:
We add two more another expressions:
"Apprenticeship S101 is available."
"Apprenticeship S101 takes place in New York."
The first expression has a simple classification the for text 'S101' as an apprenticeship number which makes a fairly straight forward expression. The second expression trees will then look like this:
We now add three more expressions, displayed below with their corresponding expression tree:
"Apprenticeship S101 concerns the development of a magazine information system."
"Student Peter Johnson has as preference no. 1 apprenticeship S101."
"To student Peter Johnson apprenticeship S101 is assigned."
If we now assemble a diagram from all the object-, fact- and label-types (including all detail information available) we will get the following picture:
Generating Expressions
From the current repository where all expressions, object-, fact- and label-types are stored we can re-generate the natural language expressions. This generation can be done for several purposes, we choose the full detail version for analysts. A text file is generated and the content is shown below:
Adding Constraints
After the initial qualification of expressions we've now build up the repository, but there's not a single constraint declared yet. In the diagram we can now select the roles and place different types of constraints.
Unique constraints
- Student: 'Firstname, Lastname'
- City: 'City name'
- Apprenticeship Preference: 'Student, Number'
- Apprenticeship Preference: 'Student, Apprenticeship'
- Apprenticeship: 'Apprenticeship Code'
- etc...
Totality constraints
- Student: 'City of Residence'
- Apprenticeship: 'Apprenticeship City'
- Apprenticeship: 'Apprenticeship Description'
- City (This constraint means that the population of city must be filled with occurrences from 'City of Residence' and/or 'Apprenticeship City' and nothing else.)
Value Constraints
- Number: '1, 2, 3'
After placing all the constraints the previously created diagram will be automatically updated with this new information.
Transforming to Relational
After applying Group Reducing and Lexicalizing algorithms from the GLR window we end up with a different diagram and repository from which can generate database DDL code. The diagram looks like this:
Generating DDL
Part of the generated SQL'92 DDL code looks like following (note that the domains are derived from the sample population we've entered):