This example illustrates the recursive capabilities of CaseTalk in a commonly encountered situation: folders and files on a hard-disk.

A graphical model would depict such things very simple. A file can be in a folder, and folders can be in another folder.

ff.map

The problem of depicting the problem domain in a simple graph is that it communicates very poorly, instead we use the domain itself to extract the information:

C:\My Documents\Customers\John Doe\Contact.doc 25KB
D:\Temp\Test.prj 2.5KB

Verbalizing this source would result in the following expressions:

"The size of file C:\My Documents\Customers\John Doe\Contact.doc is 25KB."
"The size of file D:\Temp\Test.prj is 2.5KB."

Classification of these expressions will result in a expression tree like:

expression

The diagram from this expression results in the following:

ff

Grouped

Using the Grouping and Reducing we can depict this model in a set of classes with a self reference on the folder entity.

ff.uml

If we were to Lexicalize this we would end up with a two-table database design for storing folders and files.

To download the project, please visit out Github page.

CaseTalk

We make IT better. Together!