The last of my January reviews of the main projects that I am working on is about Learning Resource Metadata, which is the theme that I have been working on for the longest. One of my first jobs in learning technology was maintaining and publishing a catalogue of computer-based resources that were useful for teaching Physics at university. That was back in 1994, and some of my work was still around when the Internet Archive started indexing. Since then I have been through several more online learning resource guides, and got involved in standards for learning resource metadata through the CETIS Metadata Special Interest Group, IEEE LOM / IMS Learning Resource Metadata, DCMI Education Community, and LRMI. LRMI is still going and that is what this blog post is about.
One of the most exciting recent developments has been that through the IEEE P2881 Learning Metadata Working Group LRMI—and more importantly the approach it embodies, as described below—is being incorporated in formal standards.
About the work
LRMI exists as an RDF vocabulary of terms (properties, classes and concept schemes) that can be used with terms from other vocabularies to describe learning resources. The LRMI vocabulary is declared as equivalent properties and classes in Dublin Core namespace and in Schema.org (mostly under Learning Resource). There are classes, properties and, in the Dublin Core namespace, concept schemes providing broad, top-level controlled vocabularies / value enumerations for some of the properties.
While we have done some technical work over the last year or so (notably creating a concept scheme for Learning Resource Type, and adding German translations to the published concept schemes) the main thrust of the current work is focused on promotion and dissemination. A major part of our effort currently underway is setting up to gather information about who is using LRMI, how they are using it, so that we can create documentation based on current real life examples.
Application Profiles are key to understanding how the LRMI vocabulary may be used. Application Profiles allow the “mixing and matching” of terms from different base vocabularies, and the overlay of additional rules or other information for how the terms are to be used in a specific application—see my previous posts on DCMI Tabular Application Profiles for more about how we do that. The LRMI terms focus on the educational aspects of any form of learning resource (text book, instructional video, web-based or face to face course, V/AR, podcast…), and are designed to supplement other vocabularies designed to describe any general resource of a similar form. So the idea is that you would select the terms from whatever vocabularies best describe the form that your learning resource takes, be it book, video, web site, event etc., and then use the LRMI properties to describe the educational characteristics.
This approach is at the root of that taken by the IEEE P2881 Working Group (described here). That work is not aiming to replace IEEE 1484.12.1 Standard for Learning Object Metadata (LOM), but to provide an RDF-based alternative for uses where the flexibility of RDF is beneficial. The current draft in progress is an application profile based mostly on LRMI terms (from the DCMI namespace) and Dublin Core Terms.
About my role
About twelve years ago I was mostly done with metadata. I was more interested in Open Education Resources (OERs) and how discoverability was supported by having the full text on open view. But then, along came schema.org. Andy Powell asked what would it be necessary to add to the metadata understood by Google in order to adequately describe an OER. That approach was very much in line with the DCMI Education an UKOER metadata line of thinking, so I wrote a blog post in reply. Then, when the LRMI project got funding and was asking for input, I used that blog post to lever my way into the advisory group. And my involvement kind of grew from there. I now chair the Dublin Core LRMI Working Group, which is tasked with maintaining and advocating for the use of the LRMI vocabulary, and I represent the work in other fora, such as IEEE P2881.
It took a while, but we now have in LRMI a Learning Resource Type concept scheme that defines a controlled vocabulary of terms that you might use to describe the type or nature of a learning resource.
Why it took a while: what is a learning resource, and what is a type?
Aside from everything in metadata being harder than you first think, and having less time than we would like, the main reason it took so long (and it took, like, a few years) comes down to aspects of what is a learning resource? and what it a type? Some folk maintain that there is no well-defined class of “learning resources”, anything can be used for learning and teaching, and that trying to describe different sub-types of “anything” is going to be a fruitless task. Pedagogically, I have no argument with the statement that anything can be used for learning and teaching, but for information systems that is not a useful starting point. I have seen repositories crash and burn because they took that as their collection policy. Telling people who are looking for resources to help them learn maths that they can use anything, just be imaginative in how you use it, is not helpful.
By way of analogy, pretty much anything can be used as a hammer. Somethings will be better than others, the ones that are the right weight, hard and not brittle, but I’ve used stones, shoes, lumps of wood, monkey wrenches and so on as hammers with some success. That doesn’t mean that “hammer” doesn’t exist as a category, not does it mean that it isn’t useful to distinguish a peen hammer from a sledgehammer from a copper-headed mallet. Not that I am easily distracted, but I have found plenty of shops that not only sell hammers as a distinct type of tool but they have a fascinating array of different types of specialist hammers.
A persistent resource that has one or more physical or digital representations, and that explicitly involves, specifies or entails a learning activity or learning experience.
So, not just anything that can be used for learning and teaching, but something that is meant to be used for learning and teaching.
Intuitively it seems clear that there are different types of learning resource: lesson plans are different to textbooks, video lectures are different to assessment items. But how to encapsulate that? Is something an assessment because it is used for assessment, or is there something inherent in some resources that makes them assessments? Likewise is a video lecture a different type of thing from a lecture or just a different format? The answer in each case is sometimes yes to both. The use of something may be strongly correlated to what it is but use and type are still distinct. That is fine: we have in LRMI a property of educationalUse, which can be assessment, and now learningResourceType which can also be assessment. Likewise, the format of something may be correlated to what it is: textbooks tend to include text; a video recording of a lecture will be a video. Again that is fine, we have mime types and other ways of encoding format to convey that information, but they won’t tell you whether something is a text book or a children’s picture book, and not all recordings of lectures will be videos. So learning resource type may be correlated to to educational use and format without being the same.
Principles adopted for the LRMI Learning Resource Type vocabulary
As with all our work in LRMI, we adopted a couple of principles. First it should focus solely on what was relevant to learning, education and training: other vocabularies deal well with other domains or generic terms. Second, create small vocabulary of broad, a high level terms to which other people can map their special cases and similar terms: those special cases are often so context dependent that they frequently don’t travel well. Related to both of these, we mapped our vocabulary to terms in two others: CEDS and the Library of Congress Genre/Form terms. The links to CEDS terms are useful because CEDS is well established in the US system, and we provided pre-existing terms many of which we adopted. The link to the LoC terms is useful because it links our terms into a comprehensive list of generic terms. LoC terms are an example of one of the vocabularies that you might want to use if you are describing things like data as learning resources: we don’t cover it because data as a learning resource is not distinct from data in general, but we are all linked data here, and when providing resource descriptions you can mix terms from our scheme with those from others.
Using the LRMI Learning Resource Type vocabulary
The vocabulary is expressed in SKOS, and so it ready for linked data use.
If you manage your own list of learning resource types using SKOS, we invite you create links to the LRMI concepts and thus improve interoperability of learning resource descriptions. We would be interested in hearing from you if you are in this situation. Perhaps you have suggestions for further concepts; you can raise an issue about the concept scheme if that is the case.
If you create learning resource descriptions you may reference this vocabulary in several ways, for example in JSON-LD you may have:
In schema.org, you may use the labels defined as simple string values, but you could include a link to our full definition (and hence provide access the links to other schemes that we define — after all this is linked data), by using a defined term as the value for learning resource type
The best interoperability is interoperability between standards. I mean it’s one thing for you and I to agree to use the same standard in the same way to do the same thing, but what if we are doing slightly different things? What if Dublin Core is right for you, but schema.org is right for me–does that mean we can’t exchange data? That would be a shame, as one standard to rule them all isn’t a viable solution. This has been exercising me through a couple of projects that I have worked on recently, and what I’ll show here is demo based on the ideas from one of these (The T3 Data Ecosystem Mapping Project) applied to another where learning resource metadata is available in many formats and desired in others. In this post I focus on metadata available as IEEE Learning Object Metadata (LOM) but wanted in either schema.org or DCAT.
The Problem
Interoperability in spite of diverse standards being used seems an acute problem when dealing with metadata about learning resources. It makes sense to use existing (diverse) schema for describing books, videos, audio, software etc, supplemented with just enough metadata about learning to describe those things when they are learning resources (textbooks, instructional videos etc.). This is the approach taken by LRMI. Add to this the neighbouring domains with which learning resource metadata needs to connect, e.g. research outputs, course management, learner records, curriculum and competency frameworks, job adverts…, all of which have there own standards ecosystems and perhaps you see why interoperability across standards is desirable.
(Aside it often also makes sense to use a large all-encompassing standard like schema.org, often as well as more specialized standards, which is why LRMI terms are in schema.org.)
This problem of interoperability in an ecosystem of many standards was addressed by Mikael Nilsson in his PhD thesis “From Interoperability to Harmonization in Metadata Standardization” where he argued that syntax wasn’t too important, what mattered more was the abstract model. Specifically he argued that interoperability (or harmonization) was possible between specs that used the RDF entity-based metamodel but less easy between specs that used a record-like metamodel. IEEE Learning Object Metadata is largely record-like: a whole range of different things are described in one record, and the meanings of many elements depend on the context of the element in the record, and sometimes the values of other elements in the same record. Fortunately it is possible to identify LOM elements that are independent characteristics of an identified entity, which means it is possible to represent some LOM metadata in RDF. Then it is possible to map that RDF representation to terms from other vocabularies.
Step 1: RML to Map LOM XML to a local RDF vocabulary
This RML is the RDF Mapping Language, “a language for expressing customized mappings from heterogeneous data structures and serializations to the RDF data model … and to RDF datasets”. It does so through a set of RDF statements in turtle syntax that describe the mapping from (in my case, here) XML fragments specified as XPath strings to subjects, predicates and objects. There is parser called RMLMapper that will then execute the mapping to transform the data.
My LOM data came from the Lifewatch training catalogue which has a nice set of APIs allowing access to sets of the metadata. Unfortunately the LOM XML provided deviates from the LOM XML Schema in many ways, such as element names with underscore separations rather than camel case (so element_name, not elementName) and some nesting errors, so the RML I produced won’t work on other LOM XML instances.
Here’s a fragment of the RML, to give a flavour. The whole file is on github, along with other files mentioned here:
I have skipped the prefix declarations and jumped straight the part of the mapping that specifies the source file for the data, and the XMLPath of the element to iterate over in creating new entities. The subjectMap generates an entity identifier using a non-standard element in the LOM record appended to a local URI, and assigns this a class. After that a series of predicateObjectMaps specify predicates and where in the XML to find the values to use as objects. Running this through the mapper generates RDF descriptions, such as:
<http://pjjk.local/resources/DSEdW5uVa2> a lom:LearningObject;
lom:title "Research Game";
#etc...
Again I have omitted the namespaces; the full file, all statements for all resources, is on github.
Step 2: Describe the mappings in RDF
You’ll notice that lom: namespace in the mapping and generated instance data. That’s not a standard rdf representation of the IEEE LOM, it’s a local schema that defines the relationships of some of the terms mapped from IEEE LOM to more standard schema. The full file is on github, but again, here’s a snippet:
This is where the magic happens. This is the information that later allows us to use the metadata extracted from LOM records as if it is schema.org or LRMI, Dublin Core or DCAT. Because this schema is used locally only I haven’t bothered to put in much information about the terms other than their mapping to other more recognized terms. The idea here isn’t to be able to work with LOM in RDF, the idea is to take the data from LOM records and work with it as if it were from well defined RDF metadata schema. I also haven’t worried too much about follow-on consequences that may derive from the mappings that I have made, i.e. implied statements about relationships between terms in other schema, such as the implication that if lom:title is equivalent to dcterms:title, and also a subProperty of schema.org/name, then I am saying that dcterms:title is a subProperty of schema.org/name. This mapping is for local use, I’ll assert what is locally useful, if you disagree that’s fine because you won’t be affected by my local assertions.
Just to complete the schema picture, I also have RDF schema definitions files for Dublin Core Terms, LRMI, DCAT and schema.org.
(Aside: I also created some SKOS Concept Schemes for controlled vocabularies used in the LOM records, but they’re not properly working yet.)
Step 3: Build a Knowlege Graph
(Actually I just put all the schema definitions and the RDF representation of the LOM metadata into a triple store, but calling it a knowledge graph gets people’s attention.) I use a local install of Ontotext GraphDB (free version). It’s important when initializing the repository to choose a ruleset that allows lots of inferencing: I use the OWL-MAX option. Also, it’s important when querying the data to select the option to include inferred results.
SPARQL interface for GraphDB showing option to include inferred data
Step 4: Results!
The data can now be queried with SPARQL. For example, a simple query to check what’s there:
This produces a list of URIs & titles for the resources:
r,n
http://pjjk.local/resources/DSEdW5uVa2,Research Game
http://pjjk.local/resources/FdW84TkcrZ,Alien and Invasive Species showcase
http://pjjk.local/resources/RcwrBMYavY,EcoLogicaCup
http://pjjk.local/resources/SOFHCa8sIf,ENVRI gaming
http://pjjk.local/resources/Ytb7016Ijs,INTERNATIONAL SUMMER SCHOOL Data FAIRness in Environmental & Earth Science Infrastructures: theory and practice
http://pjjk.local/resources/_OhX8O6YwP,MEDCIS game
http://pjjk.local/resources/kHhx9jiEZn,PHYTO VRE guidelines
http://pjjk.local/resources/wABVJnQQy4,Save the eel
http://pjjk.local/resources/xBFS53Iesg,ECOPOTENTIAL 4SCHOOLS
Nothing here other than what I put in that was converted from the LOM XML records.
That’s what I call interoperability in spite of multiple standards. Harmonization of metadata so that, even though the data started off as LOM XML records, we can create a database that can queried and exported as if the metadata were schema.org, Dublin Core, LRMI, DCAT…
Acknowledgements:
This brings together work from two projects that I have been involved in. The harmonization of metadata is from the DESM project, funded by the US Chamber of Commerce Foundation, and the ideas coming from Stuart Sutton. The application to LOM, schema.org, DCAT+LRMI came about from a small piece of work I did for DCC at the University of Edinburgh as input to the FAIRsFAIR project.
IEEE are standing up a working group for Learning Metadata, to build on IEEE Std 1484.12.1 Standard for Learning Object Metadata while exploring new paradigms and technology practices in education. I submitted the following as a suggestion for a starting point. It’s heavily based on the presentaion I did at the start of the LRMI Metadata in Use panel session for DCMI Virtual. I think it is a reasonable introduction to, and reflection on the strengths of LRMI (we can do the weaknesses some other day). Many thanks to colleagues in the DCMI LRMI Task Group who commented on it, and especially Staurt Sutton for the 10 principles enumerated at the end.
The Learning Resource Metadata Initiative (LRMI) was begun in the spring of 2011 with the initial goal of developing a set of RDF properties and classes to augment Schema.org for description of learning resources. The first terms from LRMI were added to schema.org in 2013, and in 2014 curation and further development was taken on by the Dublin Core Metadata Initiative LRMI Task Group. Within schema.org, many (but not all) of the terms that originate from LRMI are now collected under the LearningResource type. The LRMI Task Group also maintains the terms in a DCMI namespace as a separate vocabulary aligned to their counterparts in schema.org, along with some concept schemes that may be used to provide controlled value spaces for some of the properties. The terms in the DCMI namespace are more stable than those in schema.org and somewhat less bound to the overall modelling approach taken by schema.org; they are also currently under revision to incorporate the latest additions made by LRMI to schema.org.
Currently LRMI terms include the following properties and classes (concept schemes exist to provide controlled vocabularies for those marked with an asterisk *)
Properties associated directly with Learning Resources
From the outset, the intention was that LRMI metadata would be a set of terms defined using RDF that could be used with other vocabularies to build a complete description of a resource used for learning, education or training. It was recognised that other vocabularies existed that could describe the basic characteristics of various forms of learning resources—books, videos, simulations, web pages etc.—and that what was needed was a vocabulary that could describe their educational characteristics. So while LRMI does not include terms for some obvious generic characteristics, such as a “name”, “description”, “author”, and neither does it provide terms for characteristics that are important for specialized formats, such as “video encoding”, “scale”, “technical requirements”, in practice LRMI terms will always be used alongside a metadata schema that does provide these. This “mixing-and-matching” is especially easy with RDF vocabularies. However, the inclusion of LRMI properties in the very broad vocabulary of schema.org means that, in many cases, schema.org is sufficient to meet most requirements; where schema.org is not sufficient it can be augmented with classes and properties from other RDF-based vocabularies. For the sake of simplicity the examples below use LRMI properties within the schema.org vocabulary.
Examples of educational descriptions with LRMI
The two examples below show schema.org / LRMI metadata in JSON-LD format, with graphical representations of the metadata in each.
The name property is used to provide the title of the resource.
The about property is used to provide the subject of the resource in example 1 as a reference to a wikidata item, which is a common practice in linked data. The URI of the wikidata item could be resolved to provide more information. An alternative would be to embed a description of the subject using the name and description properties.
The audience property can be used to state whether the resource is intended for teachers, learners, parents/carers or other stakeholders. A controlled vocabulary for these exists as an LRMI concept scheme though it is not referenced in these examples.
typicalAgeRange can be used to show the age of learners for which the content is suitable–in example 1 this is not the age of the audience.
educationalLevel is used in example 1 to state the stage in the curriculum for which the resource is appropriate, in this case by reference to the Scottish national curriculum. Simple terms like “beginner”, “intermediate”, “advanced” are also allowed.
The teaches and assesses properties can be used to show alignments to competency frameworks or shared curricula; the educationalAlignment property allows other types of alignment to be shown.
Ways Forward
Both LRMI and schema.org are available under Creative Commons licenses (CC:BY for LRMI, CC:BY-SA for schema.org), so you could just use and adapt the terms, though you may want to discuss other rights and assurances with the relevant organizations (not me–I am not affiliated with and do not represent schema.org).
The LRMI Task Group liaises with standards bodies, and is happy to discuss how to use LRMI terms to meet specific use cases. They may be able to help provide concept schemes and additional terms should that prove necessary.
I would suggest that a profile of schema.org (or similar broadly scoped, widely used, rdf-based vocabularies) with LRMI terms and additional concept schemes could meet most use cases. Such a profile could provide better interoperability than the specifications on which it is based by adding constraints to limit redundant options in how metadata can be expressed, and that make data easier to validate.
Aside from the specifics of LRMI, the following points encapsulate the successful features of the approach of LRMI that we would recommend for IEEE P2881:
An entity centric as opposed to record centric model;
Modeled as semantic metadata through commitment to RDF/RDFS (which includes emerging property-graph related specifications notably RDF*);
Syntax independence with non-normative examples in RDF/XML, Turtle, JSON-LD etc.;
Following the Dublin Core 1-to-1 rule—i.e., a description describes one entity and one entity only (related to #1);
Commitment to supporting interoperability through the reuse of existing properties where appropriate and coining new properties only where necessary;
Supporting semantic local extensions to express local or community needs (i.e., things not “said” in the base P2881 standard can be added to local profiles of P2881 with clear semantics for downstream understanding and use);
No defined constraints on properties and classes in the specification—leave such constraints to downstream profiles of the spec (e.g. no “mandatory”, “repeatable” or record-like notions of field size limitations etc.);
No composite attributes (structured values); e.g., VCARD records. Attributes of structured values are decomposed into individual properties (also related to #1);
Defining and maintaining the needed value spaces—enumerations, classifications, and concept schemes as separate RDF entities using W3C’s SKOS (Simple Knowledge Organization System) Recommendation, and expressing them in instance data using an entity like sdo:DefinedTerm / sdo:DefinedTermSet;
Allowing referencing of any appropriate value spaces defined by others (in other words, defined outside the P2881 spec) that are identified by URI, including competency frameworks.
Some personal reflections on relating educational content to curriculum frameworks prompted by some conversation about the Oak National Academy (a broad curriculum of online material available to schools, based on the English national curriculum), and OEH-Linked-Frameworks (an RDF tool for visualizing German educational frameworks). It draws heavily on the BBC curriculum ontology (by Zoe Rose, I think). I’m thinking about these with respect to work I have been involved in such as K12-OCX and LRMI.
If you want to know why you would do this, you might want to skip ahead and read the “so what?” section first. But in brief: representing curriculum frameworks in a standard, machine-readable way, and mapping curriculum materials to that, would help when sharing learning resources.
Curriculum?
But first: curriculum. What does it mean to say “a broad curriculum of online material available to schools, based on the English national curriculum”? The word curriculum is used in several different ways (there are 71 definitions in the IGI Global dictionary). ranging from “the comprehensive multitude of learning experiences provided by school to its students” (source) to “the set of standards, objectives, and concepts required to be taught and learned in a given course or school year” (source). So curriculum in one sense is the teaching, in the other all that should be learnt. Those are different: the Oak National Academy provides teaching materials and activities (for learning experiences); the English National Curriculum specifies what should be learnt. Because very few people are interested in one but not the other, these two meanings often get conflated, which is normally fine but here I want to treat them separately and show how they relate to each other. Lets call them Curriculum Content and Materials, and Curriulum Frameworks respectively, think about how to represent the framework, and then how to relate to content and materials to that framework.
Curriculum Frameworks
This is where the BBC curriculum ontology comes in. It has a nice three-dimensional structure, creating the framework on the axes of Field of Study, Level and Topic.
The three dimensions of the BBC Curriculum Onology model. From https://www.bbc.co.uk/ontologies/curriculum
The levels are those that are defined by the national curriculum for progression English schools (KS = Key Stage, children aged 5 to 7 are normally at Key Stage 1; GCSE is the exam typically taken at 16, so represents the end of compulsory education, though students may stay on to study A-levels or similar after that). The levels used in curriculum frameworks tend to be very contextual, normally relating to the grade levels and examinations used in the school system for which the framework is written. It may be useful to relate them to more neutral (or at least, less heavily contextualised) schemes such as the levels of the EQF, or the levels of the Connecting Credentials framework.
The field of study may be called the “educational subject” (though I don’t like to writing RDF statements with Subject as the object) or, especialy in HE, “discipline”. Topics are the subjects studied within a field or discipline. I don’t much like the examples given here because the topics do just look like mini fields of study. I would wonder where to put “biology”–is it a topic within science or a field of study in its own right. A couple of points about field of study and one about topic may help clarify. In higher education a field of study if often called a discipline, which highlights that it is not just the thing being studied, but a community with a common interest and agreed norms on the tools and techniques used to study the subject. Most HE disciplines have an adjectival form that relates to people (I am a Physicists, she is a Humanist). In schools, fields of study are sometimes artifacts of the curriculum design process with no real equilavent outside of school. These artifacts often seem to have names that are initialisms that you won’t come across outside of specific school settings, for example RMPS ( Religious, Moral and Philosophical Studies), PE (Physical Education), PSHE (personal, social, health and economic education), ESL (English as a Second Language) / ESOL (English for Speakers of Other Languages), ICT (Information and Computer Techonolgy) DT (Design and Technology) — but very often the fields of study will have the same names as the top levels of a topic taxonomy (math/s, english, science). Most fields of study will have someone in a school who is a teacher of that field or leader of its teaching for the school. Topics are more neutral of context, less personal, more like the subjects of the Dewey Decimal System (at least more like they are supposed to be). It’s important to note that the same topic may be covered in different fields of study / disciplines in different ways. For example statistics may be a discipline itself (part of maths), with a very theoretical approach taken to studying the topics, but those topics may also be studied in biology, physics and economics. Crucially when it comes to facilitating discovery of suitable content materials for the curriculum, the approach taken and examples used will probably mean a resource aimed at teaching a statistics topic for economics is not very useful for teaching the same topic as part of physics or mathematics.
On to these axes get mapped the what are variously called learning objectives, intended learning outcomes, learning standards, and so on: the competences you want the students to acheive. They exist in the framework as statements of what knowledge, skills, abilities a student is expected to be able to demonstrate. Let’s call them competences because that is a term that has wides currency beyond education, for example a competence can link educational outcomes to job requirements. There is a lot written about competences. There’s lots about how to write competence statements, including the form the descriptions should take (“you will be able to …”; how to form them as objectives (specific, mearsurable, …); how they relate to context (“able to … under supervision”); how they relate to each other (“you must learn to walk before you learn to run”); what tools should be used (“able to use a calculator to …”). And, of course, there are the specifications, standards and RDF vocabularies for representing all these aspects of competences, e.g. ASN, IMS CASE, ESCO. Let’s not go into that except to say that a curriculum framework will describe these competences as learning objectives and map them to the Field of study, topic and level schemes used by the framework. The same terms described below for mapping content to frameworks can be useful in doing this.
Mapping Curriculum Content to Curriculum Frameworks
So we have some curriculum content material; how do we map it to the curriculum framework?
It may help to model the content material in the way K12-OCX did, following oerschema, as a hierarchy of course, module, unit, lesson, activity, with associated materials and assessments:
The content model used by K12-OCX, based on oerschema.org
(Aside: any given course may not have modules or units, or either.)
Breaking curriculum materials down from monolithic courses to their constituent parts (while keeping the logical and pedagogical relationships between those parts) creates finer grained resources more easily accomodated into existing contexts.
At the Course level, oerschema.org gives us the property syllabus which can be used to relate the course to the framework as a whole, called by oerschema a CourseSyllabus, (“syllabus” is another word used in various ways, so lets not worry about any difference between a syllabus and a curriculum framework). This may also be useful at finer-grained levels, e.g. Module and Unit.
Lets say our course deals with Mathematics and has a Unit on Statistics (no modules). We can use the schema.org AlignmentObject to say that there is an educationAlignment between my Course and my Unit to the field of study (that is, in the language of the alignment object, the educational subject). We can use the schema.org about property to say what the topic is:
For lessons, and especially for activities, we can relate to competences as individual learning objectives. The schema.org teaches property is designed for this:
<myUnit> sdo:hasPart <myLesson> .
<myLesson> a oer:Lesson, sdo:LearningResource ;
sdo:hasPart <myActivity> .
<myActivity> a oer:Activity, sdo:LearningResource ;
sdo:teaches <myCurriculumFramework/Objective/Competence0123> .
Whether you repeat about and educationalAlignment statements linking to “Field of Study” and “Topic” in the descriptions of Lessons and Activities depends on how much you want to rely on inferencing that something which is a part of a course has the same Fields of Study, something which is a part of Unit has the same topic, and so on. If your parts might get scattered, or used by systems that don’t do RDF inferencing, then you’ll want to repeat them (they will, you should). I haven’t done so here just to avoid repetition.
Finally, let’s link the competence statement to the framework (the framework here represented in a fairly crude way, not wanting to get into the intricacies of competence frameworks):
<myCurriculumFramework> a oer:CourseSyllabus, sdo:DefinedTermSet ;
sdo:hasDefinedTerm <myCurriculumFramework/Objective/Competence0123> .
<myCurriculumFramework/Objective/Competence0123> a sdo:DefinedTerm,
sdo:LearningResource ;
sdo:educationalAlignment [
a sdo:AlignmentObject ;
sdo:alignmentType "educationalSubject";
sdo:targetUrl <myCurriculumFramework/FieldsOfStudy/Mathematics>
] ;
sdo:about <myCurriculumFramework/Topic/Statistics> ;
sdo:educationalLevel <myCurriculumFramework/Levels/KS4> ;
sdo:description "You will be able to use a calculator to find the mean..." ;
sdo:name "Calculate the arithmetic mean" .
(Aside: Modelling a learning objective / competence as a defined term and a LearningResource is probably the most controversial thing here, but I think it works for illustration.)
So What?
Well this shows several things I think would be useful:
Having metadata for a curriculum (whatever it is) will help others find it and use it, if suitable tools for using the metadata exist.
Tools are more likely to exist if the metadata is nicely machine readable (RDF, not PDF) and standardised (widely used vocabularies like schema.org).
A common model for curriculum frameworks will make mapping from one to another easier. For example. it’s easier to map from UK to US educational levels if they are clearly and separately defined.
Breaking curriculum materials down from monolithic courses to their constituent parts (while keeping the logical and pedagogical relationships between those parts) creates finer grained resources more easily accomodated into existing contexts.
Mapping curriculum materials to learning objectives in a given framework makes it easier to find resources for that curriculum, which is great, but the world is bigger than one curriculum.
Mapping both learning objectives and curriculum materials to the axes of the curriculum framework model makes it easier to find resources appropriate accross different curricula.
Finally, if you prefer your RDF as JSON-LD:
{"@context":{"oer":"http://oerschema.org/","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","schema":"http://schema.org/","sdo":"http://schema.org/","xsd":"http://www.w3.org/2001/XMLSchema#"},"@graph":[{"@id":"http://example.org/myCurriculumFramework","@type":["oer:CourseSyllabus","schema:DefinedTermSet"],"schema:hasDefinedTerm":{"@id":"http://example.org/myCurriculumFramework/Objective/Competence0123"}},{"@id":"http://example.org/myActivity","@type":["oer:Activity","schema:LearningResource"],"schema:teaches":{"@id":"http://example.org/myCurriculumFramework/Objective/Competence0123"}},{"@id":"http://example.org/myCourse","@type":["schema:Course","oer:Course"],"oer:syllabus":{"@id":"http://example.org/myCurriculumFramework"},"schema:educationalAlignment":{"@id":"_:ub132bL12C30"},"schema:educationalLevel":{"@id":"http://example.org/myCurriculumFramework/Levels/KS4"},"schema:hasPart":{"@id":"http://example.org/myUnit"}},{"@id":"http://example.org/myLesson","@type":["schema:LearningResource","oer:Lesson"],"schema:hasPart":{"@id":"http://example.org/myActivity"}},{"@id":"http://example.org/myUnit","@type": [
"oer:Unit", "schema:LearningResource"
],
"schema:about":{"@id":"http://example.org/myCurriculumFramework/Topic/Statistics"},"schema:educationalAlignment":{"@id":"_:ub132bL21C30"},"schema:hasPart":{"@id":"http://example.org/myLesson"}},{"@id":"_:ub132bL12C30","@type":"schema:AlignmentObject","schema:alignmentType":"educationalSubject","schema:targetUrl":{"@id":"http://example.org/myCurriculumFramework/FieldsOfStudy/Mathematics"}},{"@id":"_:ub132bL40C30","@type":"schema:AlignmentObject","schema:alignmentType":"educationalSubject","schema:targetUrl":{"@id":"http://example.org/myCurriculumFramework/FieldsOfStudy/Mathematics"}},{"@id":"http://example.org/myCurriculumFramework/Objective/Competence0123","@type":["schema:LearningResource","schema:DefinedTerm"],"schema:about":{"@id":"http://example.org/myCurriculumFramework/Topic/Statistics"},"schema:description":"You will be able to use a calculator to find the mean ...","schema:educationalAlignment":{"@id":"_:ub132bL40C30"},"schema:educationalLevel":{"@id":"http://example.org/myCurriculumFramework/Levels/KS4"},"schema:name":"Calculate the arithmetic mean"},{"@id":"_:ub132bL21C30","@type":"schema:AlignmentObject","schema:alignmentType":"educationalSubject","schema:targetUrl":{"@id":"http://example.org/myCurriculumFramework/FieldsOfStudy/Mathematics"}}]}
I am somewhat late in writing this, but back in May some new properties developed by LRMI were added to schema.org that simplify and expand how schema.org can be used to describe learning resources and educational events.
The new properties are:
teaches: The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.
assesses: The item being described is intended to assess the competency or learning outcome defined by the referenced term.
These are added as properties of CreativeWork and EducationEvent, and can both be used with either a DefinedTerm or text as the value (or URL, which is an allowed value for any schema.org property).
In a related change, the domain of educationalLevel, (“the level in terms of progression through an educational or training context”), which was added last year for EducationalOccupationalCredentials was expanded so that it can also be used with CreativeWork and EducationEvent. It also can have DefinedTerms, text or URL as a value.
As well as providing a way of describing the educational characteristics of EducationEvents, which was previously not possible, these changes simplify how learning resources can be described. Previously in order to describe these characteristice one had to use the educationalAlignment property and an AlignmentObject with alignmentType property of “teaches”, “assesses” or “educationalLevel”. Not only was this a somewhat complex indirect way of saying something simple, but we think that the use the AlignmentObject had the effect of hiding the availability of these important properties.
Having DefinedTerm as a value means that one can still describe the value as being drawn from an educational framework, the framework being modeled as a DefinedTermSet, just as one could when using various properties of the AlignmantObject. In fact there is the improvement that you can now provide a URL for the framework being used, not just the url of the target term and the name of the framework. Here are a couple of examples:
The educationalAlignment and AlignmentObject are still valid terms, and indeed are still the only means of describing some other educational characteristics of learning resources. However, going forward, we suggest you use the new teaches, assesses, educationalLevel properties in preference.
We will add these new terms to the DCMI LRMI namespace shortly, I hope, giving them a stable existence independent of schema.org.
Next steps?
If you’re interested in what may be coming next, here’s some of what has been discussed.
A property to express “the skill, knowledge or competence a learner needs before using a learning resource” is on our list of simple properties, which would complete the trio of requires, teaches, assesses. However the name “requires” has lead to confusion over what is required (a pen and paper?) and by whom/what.
Also, take a look at the schema.org gitub issue 1401 and you will see plans and discussion around creating a class for learning resources. I hope this will be limited to CreativeWorks and will sit alongside EducationEvent acting as a convenient place to find the properties relevant to describing educational characteristics, and also allowing such properties to be used when describing Videos, Books, Products, etc as learning resources (i.e. by declaring LearningResource as an additional type) without needing to add education-specific properties higher up the schema.org hierarchy.
The project is being run by Learning Tapestry in the US, I am contracted to build the metadata specification in an iterative fashion based on experiences of content exchange between the partners (currently we are at iteration 1). I want to stress that this isn’t an authoritative description of all the project’s intents and purposes, or even all the metadata requirements, it’s a use case based on them, but I hope it gives a flavour of the work. The requirements section is more relevant if you’re interested in how to specify application profiles than for the OCX spec per se.
Problem statement
We wish to share relatively large amounts of content and curriculum materials relating to educational courses, for example: all the activities, student learning resources, teacher and parent curriculum guides, formative assessments, etc relating to one school-year of study in a subject such as mathematics.
We wish for the metadata to facilitate the editing, adaptation and reuse of the resources. For example teachers should be able to substitute resources/activities provided with other resources addressing the same objective as they see fit. Or course designers should be able pull out all the resources of a particular type (say activity plans), about a given topic, or addressing a specific learning outcome and use them in a new course. In some cases alternate equivalent content may be provided, for example online Vs offline content or to provide accessible provision for people with disabilities.
We wish for these to be discoverable on the open web at both broad and fine levels of granularity, i.e. whole courses and the individual parts should be discoverable via search engines.
We have decided to use the following vocabularies to describe the structure and content of the material: schema.org + LRMI, OERSchema and local extensions where necessary.
Stakeholders
Original content providers who create and publish curriculum and course materials using existing systems and already have (local) terminology for many aspects of resource description.
Content processors take the original content and offer it through their own systems. They also have (different) terminology for many aspects of resource description
Content purchasers wish to discover and buy content that meets their requirements
Course designers and Teachers use the content that has been purchased and wish to adapt it for their students
Parents wish to understand what and how their students are being taught
Learners want a seamless experience using high quality materials and ideas, in which all the work above is invisible.
Requirements
The application profile must reference evolving specifications: schema.org, OERSchema, various controlled vocabularies/concept schemes/encoding schemes and local extensions. If a local extension is adopted by one of the more widely recognised specifications it should be easy to modify the application profile to reflect this.
The application profile must include a content model that meets the following requirements for describing the structure of content:
identify the distinct types of entity involved (Course, Unit, Lesson, Supporting Material, Audience, Learning Objectives, Assessments etc)
show the hierarchy of the content (i.e. the Course comprises Units, the Units comprise Lessons, the Lessons comprise Activities)
show related content that is not part of the hierarchy but is related to (e.g. information about Units for teachers and parents, content to be used in the Activities)
show the ordering of sequential content
show options for alternative equivalent content
The application profile must specify optional (may), desired (should) and required (must) descriptive metadata as appropriate for each type of entity. For example
Activities must have a learning Time
an Activity should have a name
any resource may be associated with an Audience
The application profile must specify cardinality. for example:
Courses must have one and only one title
Units must have one or more Lesson
Units may have one or more Assessment
There may be alternative ways of satisfying a requirement
Courses must associated with either one or more Lesson or one or more Unit
If there is more than one Lesson in a Unit or Course, the Lessons must be ordered
The application profile must specify the expected type or value space for any property
this may be more restrictive than the base specification
this may extent the base specification
this may include alternatives (e.g. free text or reference concept from controlled scheme)
I’ve been experimenting with ways of putting JSON-LD schema.org metadata into HTML created by MkDocs. The result is a python-markdown plugin that will (hopefully) find blocks of YAML in markdown and insert then into the HTML that is generated. You can find the plugin on github, and you can read more about the development of it in some pages generated by MkDocs (that incidentally use the plugin).
What’s it do?
Markdown is a widely used simple text format that allows formatting of text using inline markup, it’s a bit like the markup used on mediawiki/wikpedia. MkDocs is a python program that will build HTML pages out of markdown and templates. It’s geared towards the production of software/spec documentation, and we have been using it for documenting the metadata spec we’re creating for educational materials in the K12OCX project. (You’ll see the OCX part, Open Content Exchange, made it through to the plugin name.) Steve Midgley suggested that we might go further and use markdown to create the learning resources, somehow generating the metadata along with the HTML. MkDocs can be extended in a number of ways that would facilitate this, but most relevantly it uses the python markdown module, which has an API allowing for extensions.
YAML seemed like the obvious way of putting metadata into markdown. It’s another simple text format, for expressing key-value pairs, where the values can be lists or sets of other key-value pairs. It’s already used by MkDocs for specifying the site structure, and a number of extensions to python markdown already use it.
So the ocxmd extension for python markdown will look for blocks of YAML in a markdown document and replace them with blocks of JSON-LD in the HTML that is generated. It also provides the metadata as python dict in the markdown object. Feel free to try it out (cautiously) and let me know how it goes wrong / what it doesn’t do that it should / what it does that it shouldn’t …
How’s it work?
Quite simple really. I took inspiration from an existing YAML in markdown processor written by Nikita Sivakov (who’s probably a better programmer than me, so if his plug does what you want, use it, not mine). The YAML is separated before and after by a triple dash (‘—‘) on a line by itself. The plugin extends the python markdown Preprocessor so that it goes through the mark down document line-by-line looking for a triple dash. Until it finds one the text is copied into what will be returned as the ‘pure’ markdown document for further processing. When it finds a triple dash, it instead copies the lines into what will be processed as YAML (along with a few lines that will become the JSON-LD context). When it finds the closing triple dash, it processes the YAML using a python library, and then copies it into the markdown to be returned as JSON-LD between a couple of <script> tags. It also stores the python dict generated by the YAML processor as a new property in the markdown object. Then it goes back to reading line-by-line copying the text straight into what will be returned as markdown until it meets the end of file or the next triple dash.
If installed in a suitable python environment you can add it to the extensions available to MkDocs with an entry to the mkdocs.yml markdown_extensions block.
What does JSON-LD in YAML look like?
The metadata that we use for OCX is a profile of schema.org / LRMI, OERSchema and few bits that we have added because we couldn’t find them elsewhere. Here’s what (mostly) schema.org metadata looks like in YAML:
Over the past few months we have been working systematically through the 30-or-so outline use cases for describing Educational and Occupational Credentials in schema.org, suggesting how they can be met with existing schema.org terms, or failing that working on proposals for new terms to add. Here I want to summarize the progress against these use cases, inviting review of our solutions and closure of any outstanding issues.
Use cases enabled
The list below summarizes information from the community group wiki for those use cases that we have addressed, with links to the outline use case description, the wiki page showing how we met the requirements arising from that use case, and proposed new terms on a test instance of schema.org (may be slow to load). I tried to be inclusive / exhaustive in what I have called out as an issue.
The following use cases have not been addressed; either they were identified as low priority or there was insufficient consensus as to how to enable them:
1.9 Assessment (see issue 5, no way to represent assessments in schema.org)
As well as the unaddressed use cases above, there are some caveats about the way other use cases have been addressed. I have tried to be inclusive / exhaustive in what I have called out as an issue,–I hope many of them can be acknowledged and left for future contributions to schema.org, we just need to clarify that they have been.
Issue 1: whether EducationalOccupationalCredential is a subtype of CreativeWork or Intangible.
Issue 2: competenceRequired only addresses the simplest case of individual required competencies.
Issue 3: whether accreditation is a form of recognition.
Issue 4: the actual renewal / maintenance requirements aren’t specified.
Issue 5: there is no way represent Assessments in schema.org
Issue 6: there is no explicit guidance on how to show required learning materials for a Course in schema.org.
There is an issues page on the wiki for tracking progress in disposing of these issues.
Summary of proposed changes to schema.org
Many of the use cases were addressed using terms that already exist in schema.org. The changes we currently propose are
Since the summer I have been working with the Credential Engine, which is based at Southern Illinois University, Carbondale, on a project to facilitate the description of educational and occupational credentials in schema.org. We have just reached the milestone of setting up a W3C Community Group to carry out that work. If you would like to contribute to the work of the group (or even just lurk and follow what we do) please join it.
Educational and occupational credentials
By educational and occupational credentials I mean diplomas, academic degrees, certifications, qualifications, badges, etc., that a person can obtain by passing some test or examination of their abilities. (See also the Connecting Credentials project’s glossary of credentialing terms.) These are already alluded to in some schema.org properties that are pending, for example an Occupation or JobPosting’s qualification or a Course’s educationalCredentialAwarded. These illustrate how educational and occupational credentials are useful for linking career aspirations with discovery of educational opportunities. The other entity type to which educational and occupational credentials link is Competence, i.e. the skills, knowledge and abilities that the credential attests. We have been discussing some work on how to describe competences with schema.org in recent LRMI meetings, more on that later.
Not surprisingly there is already a large amount of relevant work done in the area of educational and occupational credentials. The Credential Engine has developed the Credential Transparency Description Language (CTDL) which has a lot of detail, albeit with a US focus and far more detail that would be appropriate for schema.org. The Badge Alliance has a model for open badges metadata that is applicable more generally. There is a W3C Verifiable Claims working group which is looking at credentials more widely, and the claim to hold one. Also, there are many frameworks which describe credentials in terms of the level and extent of the knowledge and competencies they attest, in the US Connecting Credentials cover this domain, while in the EU there are many national qualification frameworks and a Framework for Qualifications of the European Higher Education Area.
Potential issues
One potential issue is collision with existing work. We’ll have to make sure that we know where the work of the educational and occupational credential working group ends, i.e what work would best be left to those other initiatives, and how we can link to the products of their work. Related to that is scope creep. I don’t want to get involved in describing credentials more widely, e.g. issues of identification, authentication, authorization; hence the rather verbose formula of ‘educational and occupational credential. That formula also encapsulates another issue, a tension I sense between the educational world and the work place: does a degree certificate qualify someone to do anything, or does it just relate to knowledge? Is an exam certificate a qualification?
The planned approach
I plan to approach this work in the same way that the schema course extension community group worked. We’ll use brief outline use cases to define the scope, and from these define a set of requirements, i.e. what we need to describe in order to facilitate the discovery of educational and occupational credentials. We’ll work through these to define how to encode the information with existing schema.org terms, or if necessary, propose new terms. While doing this we’ll use a set of examples to provide evidence that the information required is actually available from existing credentialling organizations.
Get involved
If you want to help with this, please join the community group. You’ll need a W3C account, and you’ll need to sign an assurance that you are not contributing any intellectual property that cannot be openly and freely licensed.