-
Notifications
You must be signed in to change notification settings - Fork 0
Creating Lesson Content
The chunks of learning in the eLearning environment are divided at three levels:
- Lesson
- Section
- Slide
For example: "First Declension" (Lesson), "α- Declension" (Section), "Here is an example, try this exercise" (Slide).
To add content to the eLearning environment, it must fit within this structure, and needs to be properly marked-up if you want:
- Seeing anything to count towards a user's "experience" with the vocab/syntax/morphology (For example, seeing πέμψουσιν in a sentence to count towards a user having all of its grammatical features, seen the vocab, etc.).
- You want to dynamically pull examples or build exercises from your morphosyntactically annotated corpus (For example, you are teaching the future tense, and you want to give users more examples).
- /static/js/emily_content.json (Contains overall structure of the lesson material)
- /static/js/mapper.json (Maps between Smyth grammar topics and API queries)
- /static/raw/thuc/emily_content/* (Where your HTML files belong)
The JSON document structure maps directly to the Lesson/Section/Slide hierarchy previously described. See below, an actual snippet from "emily_content.json":
Note to self: Rename "modules" below to "sections".
[{
"title": "Future Indicative Active",
"modules": [
{
"title": "Form the Future, Indicative, Active for Regular Verbs",
"vocab": ["πέμπω", "λύω"],
"slides": [
{
"title": "Future Indicative Active of λύω",
"type": "slide_info",
"includeHTML": "/static/raw/thuc/emily_content/9.futureindicativeactive/futindact1.html",
"smyth": ["s532", "s533"]
}
]
}
]
}]Presuming that this was the FIRST thing in emily_content.json, you would THEN be able to preview the slide titled "Future Indicative Active of λύω" via:
http://localhost:8000/module/**0**/section/**0**/slide/**0**
The more elements you add at each level in the hierarchy, the more you will increment the numbers in the URL. For instance, if you were to add another slide under the one titled "Future Indicative Active of λύω", like so:
[{
"title": "Future Indicative Active",
"modules": [
{
"title": "Form the Future, Indicative, Active for Regular Verbs",
"vocab": ["πέμπω", "λύω"],
"slides": [
{
"title": "Future Indicative Active of λύω",
"type": "slide_info",
"includeHTML": "/static/raw/thuc/emily_content/9.futureindicativeactive/futindact1.html",
"smyth": ["s532", "s533"]
},
{
"title": "Forming the Future Indicative Active for Stop Verbs",
"type": "slide_info",
"includeHTML": "/static/raw/thuc/emily_content/9.futureindicativeactive/futindact2.html",
"smyth": ["s537"]
}
]
}
]
}]Then you would be able to access the slide titled "Forming the Future Indicative Active for Stop Verbs" via the URL: http://localhost:8000/module/**0**/section/**0**/slide/**1**
A Lesson simply needs a title. In this case, the lesson is titled "Future Indicative Active".
A Section needs a title, a list of vocabulary words (as lemmas), an array of slide objects (described below). In our example, the section is titled "Form the Future, Indicative, Active for Regular Verbs."
A Slide is the most variable type of object in the lesson architecture. Briefly, here are the possible fields it can have:
{
"title": "Future Indicative Active of λύω",
"type": "slide_info",
"includeHTML": "/static/raw/thuc/emily_content/9.futureindicativeactive/futindact1.html",
"smyth": ["s532", "s533"]
}- title: Should describe succinctly what is on the slide.
- type: Tells application how to take the slide data and display it. For grammar explanations, you will always use "slide_info".
- includeHTML: If the slide's type is "slide_info", then you have to tell the app where to get the information for the page from. Your HTML should go into /static/raw/thuc/emily_content/, preferably organized in folders by section.
- smyth: An array of references to Smyth sections, which are then converted into API queries by /static/js/mapper.json. If the corresponding Smyth chapter is not yet in mapper.json, you must add it. See how below.
There are bunches of reusable UI components and exercises you can embed directly into HTML that will allow you to test users on material, either manually or dynamically selected, and thereafter record how the user did, what mistakes they made, etc.
** Will put documentation on this here.**
As you've learned, /static/js/mapper.json converts Smyth sections into queries for the backend. Take a look at the section corresponding to the Smyth sections referenced in our example above:
[
"s533": {
"title": "Forming the Future, Active, Indicative for Regular Verbs",
"query": "pos=verb&tense=fut&mood=ind&voice=act&posAdd__contains=reg_fut"
},
"s537": {
"title": "Forming the Future, Active, Indicative for Stop Verbs",
"query": "pos=verb&tense=fut&mood=ind&voice=act",
"samples" ["πέμπω"]
}
]- key: The array is keyed by Smyth paragraph. So this is they key to the object which contains further information about it.
- title: Concise explanation of what is in that Smyth section. This is mostly for human readability.
- query: String representation of the query we want to perform on the API. See (forthcoming) API documentation for how to build these strings.
- samples: In the case that the query is not sufficient to describe the grammatical phenomenon, you may want to include a set of lemmas that you know 1) Exemplify the Smyth section 2) Appear in your corpus. This will be soon released with a better implementation to solve the problems as they arise.
- When generating an exercise, we can give the user appropriate help material.
- Generate appropriate hints.
- Dynamically generate exercises from a target corpus.
- Track the bajillions of ways a user has interacted with a text.
- Visualize the universe
This document is far from complete. Further details forthcoming.