ednet
protocolednet
protocol is an open source standard for organizing educational content
of the world. This protocol can be used to designate what online content
helps one learn what concept
, prescribed by what board
or in what
syllabus
. This protocol helps classroom
teachers create learning material
for their class. This protocol also helps learners keep track of what they have
learnt, and evaluators to easily review what a learner knows.
ednet
network, all content should be public and licensed under permissible
license.We want people in remote areas with limited access to internet, elecronic devices, power etc to be able to learn using the ednet
network. We will be identify low powered tablets and all content should support those devices.
ednet
ProtocolSyllabus
Concept
Content
Classroom
xray
<head>
<meta name="ednet-entity" content="board">
<meta name="ednet-board" content="<board-url>/board.json">
</head>
board.json
.{
"ednet-version": "1.0",
"entity": "board",
"name": "Name Of Board",
"syllabuses": [
{
"name": ["10th Standard", "Mathematics"],
"url": "<url-to-syllabus.json>"
}
]
}
<head>
<meta name="ednet-entity" content="syllabus">
<meta name="ednet-syllabus" content="<syllabus.json url>">
<meta name="ednet-board" content="<board-url>/board.json">
</head>
syllabus.json
looks like this:{
"ednet-version": "1.0",
"entity": "syllabus",
"board-url": "<url>",
"name": "name of syllabus",
"xray-sink": "url of xray sink - optional",
"concepts": [
{
"name": ["Number System", "Real Numbers"],
"url": "<url-to-concept>"
}
]
}
concept
page puts these in the meta tag:<head>
<meta name="ednet-entity" content="concept">
<meta name="dependency" content="<url of other dependency>">
</head>
From time to time maintainer of a concept
may realise their concept is
actually a duplicate of some other concept and would want to let everyone using
their concept know of this.
<head>
<meta name="ednet-entity" content="concept">
<meta name="ednet-canonical-concept" content="the other concept"
</head>
<head>
<meta name="ednet-entity" content="content">
<meta name="content-url" content="url of content.ftd">
<meta name="ednet-concept" content="url of the concept 1">
<meta name="ednet-concept" content="url of the concept 2">
<meta name=xray-sink" content="url of xray sink - optional">
</head>
Same content
can be used for different concepts
, so the ednet-concept
meta can be repeated any number of times.
content-type
can be one of explainer
, video
, audio
, quiz
.For a content
to be part of ednet
network, it must be easily downloadable,
and must work in cross platform study apps.
ednet
uses ftd
to author all content. When authoring content the content
must be linked against ednet-protoco.github.io/ednet-content
package, with an
alias ec
.<head>
<meta name="ednet-entity" content="classroom">
<meta name="classroom" content="url of classroom.json">
<meta name="xray-sink" content="url of xray sink">
</head>
{
"ednet-version": "1.0",
"entity": "classroom",
"name": "name of classroom",
"xray-sink": "url of xray sink - optional",
"concepts": [
{
"name": ["Number System", "Real Numbers"],
"concept": "<url-to-concept>",
"syllabus": "<url of syllabus>",
"content": [
{
"name": "Display name for this content",
"url": "<url of content.ftd>"
}
]
}
]
}
{
"classroom": "url of the classroom",
"concept": "url of the concept",
"syllabus": "<url of syllabus>",
"timestamp": "nanoseconds, stored as i64 not string",
"content": "url of content",
"time-spent": "time in seconds, spent on this content",
"resolution": "skipped | again | hard | good | easy"
}
classroom
(vis the
xray-sink
url). This allows the software on teacher to plot completeness of
learners so learners and their designated gaurdians can see progress of student
with their learning cohort.Learner can chose to allow the classroom to periodically share the XRay
information with the syllabus (via the xray-sink
url). This allows software
with the board / syllabus creators to fine tune the syllabus.
xray-sink
url. This allows the
content creator to improve their content.When the ednet network starts, each board or syllabus will create all their
concepts, and this will lead to duplication of concept. Like CBSE 10th Std
Math's "irrational numbers" may have the concept url of
https://cbse.org/10th/maths/irrational-numbers/
, but ICSE in 10th may teach
exactly the same concept, but they may end up creating their own URL:
https://icse.com/10/mathematics/numbers/irrational/
.
The xray information helps identify such duplications. The incentive of the content author is to make their content as widely used as possible as content creator may not care about money (being part of ednet netowrk does not itself earn you money, this is for making world a better place), but how often your content is included and used by learners is still a metric we believe will drive some content creators. Those content creators have incentive to add as many concept urls in their content meta data. Now simply spamming will not help the reputation of the author, they will appear smappy, lose credibility with teachers, so they will only put the link to concepts they truly believe (and can see from data that they are indeed helpul for) is relevant.
Syllabus creators are also getting the same xray information. And they can see what content is being recommended for the concept in their syllabus, what other concepts, that are not part of they syllabus, but is getting taught using the same content. If a content is teaching more than one concept, there is a possiblity they are duplicate. Analysing the content concept linkages, and xray data, gives an picture of concept duplication. The syllabus creators can act on this knowledge and remove (deprecate) their concept URLs and start using the more popular concept URLs.
This way the concept URLs will start to cluster, and duplication will go down. Eg ifcontent a
was written and tagged only with concept x
and content b
with concept y
, and if clustering puts concept x
and concept y
as
duplicates, and syullabus creator who used concept y
examines the data and
decides concept x
and concept y
are indeed duplicate, syllabus author will
ask concept maintainer of concept y
to derecate themselves in favour of
concept x
, and if that is done, both content a
and content b
will become
available to learners of concept x
(which is also now learners of concept y
).-- We will add monitoring related fields later.
CREATE TABLE concept {
id INTEGER PRIMARY KEY,
url TEXT PRIMARY KEY
};
CREATE TABLE content {
id INTEGER PRIMARY KEY,
url TEXT PRIMARY KEY
};
CREATE TABLE concept_content {
id INTEGER PRIMARY KEY,
concept TEXT, -- concept url
content TEXT, -- content url
};
CREATE TABLE user_concept {
id INTEGER PRIMARY KEY,
concept TEXT, -- concept url
user_id INTEGER NOT NULL REFERENCES "fastn_user" ("id")
DEFERRABLE INITIALLY DEFERRED,
-- "resolution": "skipped | again | hard | good | easy"
resolution TEXT DEFAULT again,
created_at INTEGER,
updated_at INTEGER
};
CREATE TABLE xray_event {
id INTEGER PRIMARY KEY,
concept TEXT, -- concept url
user_id INTEGER NOT NULL REFERENCES "fastn_user" ("id")
DEFERRABLE INITIALLY DEFERRED,
resolution TEXT DEFAULT again,
created_at INTEGER
}