We have the following types of teaching material in causecade:
- courses
- lessons
- example networks
Courses contain lessons, and contain references to example networks. Lesson text and network contents are stored in markdown and JSON files respectively. These are stored in the causecade-lessons and causecade-networks repositories on GitHub.
In order to allow for on the fly ajustment of teaching material of CauseCade without having to compile the whole application each time, the whole course structure is specified elsewhere. The teaching material structure is specified in the meta.json file in the causecade-lessons repository.
Courses are the higest level of teaching material in causecase. They have the following properties, specified in meta.json:
- name
- date of creation [currently unused property]
- a list of all the lessons
- network URL list (contains the URLs of the networks that are relevant for the lessons in this course)
- network name list (names for the networks specified in the URLs, in order of the above URLs)
- description [currently unused property]
- category [currently unused property]
Lessons must be specified in the meta.json file, inside the lessonlist section. They have the following properties:
- name
- date of creation [currently unused property]
- date of last update [currently unused property]
- brief description (one or two sentences)
- lesson URL (where the .md file can be fetched from)
- lesson index (specifies which network from the network URL list in the course belongs to this lesson. Starts at 1, not 0)
Networks are fully specified in their own JSON file. If a network is to be tied to a specific lesson, it's URL and a display name should be added to meta.json in the right course. Additionally, in meta.json, one should specify the right index for the lesson that this networks belongs to. (see above and meta.json)
Networks have the following properties:
- name
- nodelist (containing all the nodes of the network)
- linklist (containing all the links)
Where nodes have the following properties:
- name
- statecount (how many states each node/random variable has)
- the labels for each state (e.g 'true','false')
isInstantiated (whether this node has been observed/measured)(deprecated 27-01-18)- ConditionalProbabilityTable(CPT) (Matrix containing the conditional probability distribution)
- Posterior (probability of this node)
- Lambda Evidence (evidence this node has gotten from it's descendants) (amount of entries should match statecount)
- Pi Evidence (evidence this node has gotten from it's ancestors) (amount of entries should match statecount)
Where links have the following properties:
- origin (startpoint of directed link) (name of node)
- target (endpoint of directed link) (name of node)