Skip to content

docs: ADR for content flexibilty - #10

Merged
ormsbee merged 4 commits into
openedx:mainfrom
ormsbee:adr-0002-content-flexibility
Jun 2, 2022
Merged

ormsbee merged 4 commits into
openedx:mainfrom
ormsbee:adr-0002-content-flexibility

Conversation

@ormsbee

@ormsbee ormsbee commented May 18, 2022

Copy link
Copy Markdown
Contributor

This describes the high level plan for breaking up the current course experience into components that could be reconfigured to provide more flexible learning content experiences.

This describes the high level plan for breaking up the current course
experience into components that could be reconfigured to provide more
flexible learning content experiences.
@bradenmacdonald

Copy link
Copy Markdown
Contributor

Great job writing this up :) 👍🏻


The following are foundational, extensible concepts in the Learning Core, which can be combined in different ways:

Block

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe this should be "Item" instead, to differentiate it more from structural XBlocks, and to be more in line with QTI terminology?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Item is a little vague, but ultimately suitable. It overlaps with the use of "item" in modulestore, but hopefully the few people who need to work within modulestore will understand the distinction.

Block is a great word for this concept, but obviously it risks confusion with XBlock. If you are considering this name, I would ask you: Is it reasonable to believe that all XBlocks eventually be proper Blocks? If the answer is "yes", then I Block could be a good choice of name, even though there will be some confusion during the migration years. If the answer is "no" (that is, if any structural/container blocks might stick around in the long-term), then I would avoid calling this concept Block, for fear that every new content core developer will need to understand that "a VerticalBlock is an XBlock but not a Block", etc.

Personally, I am still partial to Atom: it doesn't overlap with any Open edX term I can think of, and its name makes it very clear that "It is not a container for other content, and has no child elements."

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Block is a great word for this concept, but obviously it risks confusion with XBlock. If you are considering this name, I would ask you: Is it reasonable to believe that all XBlocks eventually be proper Blocks? If the answer is "yes", then I Block could be a good choice of name, even though there will be some confusion during the migration years. If the answer is "no" (that is, if any structural/container blocks might stick around in the long-term), then I would avoid calling this concept Block, for fear that every new content core developer will need to understand that "a VerticalBlock is an XBlock but not a Block", etc.

Yeah, that's my concern for the long term. We're removing the notion of container XBlocks from the LMS but not from Studio. That might take a while longer.

Also, an xAPI notion of a Block is almost entirely opposite ours. 😞

One thing I realized about Atom is that if we have a project about Atomic Learning Units and adopt that language, it's going to be painful because Atoms in the data model would actually be one or two layers more granular than what we're presenting to the user.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing I realized about Atom is that if we have a project about Atomic Learning Units and adopt that language, it's going to be painful because Atoms in the data model would actually be one or two layers more granular than what we're presenting to the user.

@ormsbee You're right, that'd be an unfortunate mismatch in terminology. We should call the blocks Hadrons (just kidding :).

This has me questioning the name of the project now! "Atom" comes from the Greek word "indivisible". The name "Atomic Learning Units" implies a system of pieces learning content that cannot be broken down further, but doesn't speak the intended outcome of the project (which is to have "Composable" or "Modular" learning units, right?).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I feel like it's a really crowded namespace of terminology. I'm going to declare figuring out a better name for that project to be out of scope for this ADR PR though. 😛

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah that's fair!

@kdmccormick kdmccormick left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unsurprisingly, the plan here sounds great :) Just some minor comments on wording and naming.


The following are foundational, extensible concepts in the Learning Core, which can be combined in different ways:

Block

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Item is a little vague, but ultimately suitable. It overlaps with the use of "item" in modulestore, but hopefully the few people who need to work within modulestore will understand the distinction.

Block is a great word for this concept, but obviously it risks confusion with XBlock. If you are considering this name, I would ask you: Is it reasonable to believe that all XBlocks eventually be proper Blocks? If the answer is "yes", then I Block could be a good choice of name, even though there will be some confusion during the migration years. If the answer is "no" (that is, if any structural/container blocks might stick around in the long-term), then I would avoid calling this concept Block, for fear that every new content core developer will need to understand that "a VerticalBlock is an XBlock but not a Block", etc.

Personally, I am still partial to Atom: it doesn't overlap with any Open edX term I can think of, and its name makes it very clear that "It is not a container for other content, and has no child elements."

Comment thread docs/decisions/0002-content-flexibility.rst Outdated
Comment thread docs/decisions/0002-content-flexibility.rst Outdated
Comment thread docs/decisions/0002-content-flexibility.rst Outdated
ormsbee and others added 2 commits May 31, 2022 10:15
@ormsbee

ormsbee commented May 31, 2022

Copy link
Copy Markdown
Contributor Author

@kdmccormick: Updated based on your feedback.

@kdmccormick kdmccormick left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One suggested update, but otherwise, 🚀 !

Comment thread docs/decisions/0002-content-flexibility.rst Outdated
Co-authored-by: Kyle McCormick <kyle@kylemccormick.me>
@ormsbee
ormsbee merged commit a0e797d into openedx:main Jun 2, 2022
@ormsbee
ormsbee deleted the adr-0002-content-flexibility branch June 2, 2022 15:17
alezconsultant pushed a commit to alezconsultant/openedx-core that referenced this pull request Sep 24, 2026
… PR branch

The stack on jesperhodge/openedx-core (openedx#10, #2, #3, #4, #5, #6, #7) is where
the openedx#641 code is written and reviewed. This branch only carries the stack tip's
tree so that openedx#800 has something to squash-merge.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

4 participants