PressBooks and ePub as an OER format.

PressBooks does a reasonable job of importing ePub, so that ePub can be used as a portable format for open text books. But, of course, there are limits.

I have been really impressed with PressBooks, the extension to WordPress for authoring eBooks. Like WordPress it is available as a hosted service from and to host yourself from I have been using the latter for a few months. It looks like a great way of authoring, hosting, using, and distributing open books. Reports like this from Steel Wagstaff about Publishing Open Textbooks at UW-Madison really show the possibilities for education that open up if you do that. There you can read what work Steel and others have been doing around PressBooks for authoring open textbooks, with interaction (using, and h5p), connections to their VLE (LTI), and responsible learning analytics (xAPI).

PressBooks also supports replication of content from one PressBook install to another, which is great, but what is even greater is support of import from other content creation systems. We’re not wanting monoculture here.

Open text books are, of course, a type of Open Educational Resource, and so when thinking about PressBooks as a platform for open text books you’re also thinking about PressBooks and OER. So what aspects of text-books-as-OER does PressBooks support? What aspects should it support?

OER: DERPable, 5Rs & ALMS

Frameworks for thinking about requirements for openness in educational resources go back to the very start of the OER movement. Back in the early 2000s, when JISC was thinking about repositories and Learning Objects as ways of sharing educational resources, Charles Duncan used to talk about the need for resources to be DERPable: Discoverable, Editable, Repurposable and Portable. At about the same time in the US, David Wiley was defining Open Content in terms of four, later five Rs and ALMS. The five Rs are well known: the permissions to Retain, Reuse, Revise, Remix and Redistribute. ALMS is a less memorable, more tortured acronym, relating to technical choices that affect openness in practice. The choices relate to: Access to editing tools, the Level of expertise required to use these tools, the content being Meaningfully editable, and being Self-sourced (i.e. there not being separate source and distribution files).

Portability of ePub and editing in PressBooks

I tend to approach these terms back to front: I am interested in portable formats for disseminating resources, and systems that allow these to be edited. For eBooks / open textbooks my format of choice for portability is currently ePub, which is essentially HTML and other assets (images, stylesheets, etc.) with metadata, in a zip archive. Being HTML-based, ePub is largely self-sourced, and can be edited with suitable tools (though there may be caveats around some of the other assets such as images and diagrams). Furthermore, WordPress in general and PressBooks specifically makes editing, repurposing and distributing easy without requiring knowledge of HTML. It’s a good platform for remixing, revising, reusing, retaining content. And the key to this whole ramble of a blog post is the ‘import from ePub‘ feature.

So how does  the combination of ePub and PressBooks work in practice. I can go to OpenStax, and download one of their text books as ePub. As far as I can see the best-known open textbook project doesn’t seem to make ePub available (Apple’s iPub is similar, but I don’t do iBooks so couldn’t download one). So I went to Siyavula and downloaded one of their CC:BY textbooks as an ePub. Chose that download for import into PressBooks and got a screen that lets me choose which parts of the ePub to import and what type of content to import it as.

List of sections of the ePub with tick box for whether to import in PressBooks, and radio button options for what type of book part to import as

After choosing which parts to import and hitting the import button at the bottom of the page, the content is there to edit and republish in PressBooks.

From here you can edit or add content (including by import from other sources), rearrange the content, and set options for publishing it. There is other work to be done. You will need to choose a decent theme to display your book with style. You will also need to make sure internal links work as your PressBooks permalink URL scheme might not match the URLs embedded in the content. How easy this is will vary depending on choices made when the book was created and your own knowledge of some of the WordPress tools that can be used to make bulk edits.

I am not really interested in distributing maths text books, so I won’t link to the end result of this specific example. I did once write a book in a book sprint with some colleagues, and that was published as an ePub. So here an imported & republished version of Into The Wild (PressBook edition).  I didn’t do much polishing of this: it uses a stock theme, and I haven’t fixed internal links, e.g. footnotes.


Of course there are limits to this approach. I do not expect that much (if any) of the really interesting interactive content would survive a trip through ePub. Also much of Steel’s work that I described up at the top is PressBook platform specific. So that’s where cloning from PressBooks to PressBooks becomes useful. But ePub remains a viable way of getting textbook content into the PressBooks platform.

Also, while WordPress in general, and hence PressBooks, is a great way of distributing content, I haven’t looked much at whether metadata from the ePub is imported. On first sight none of it is, so there is work to do here in order to make the imported books discoverable. That applies to the package level metadata in ePubs, which is a separate file from the content. However, what also really interests me is the possibility of embedding education-specific metadata into the HTML content in such a way that it becomes transportable (easy, I think) and editable on import (harder).

Using wikidata for linked data WordPress indexes

A while back I wrote about getting data from wikidata into a WordPress custom taxonomy. Shortly thereafter Alex Stinson said some nice things about it:

and as a result that post got a little attention.

Well, I have now a working prototype plugin which is somewhat more general purpose than my first attempt.

1.Custom Taxonomy Term Metadata from Wikidata

Here’s a video showing how you can create a custom taxonomy term with just a name and the wikidata Q identifier, and the plugin will pull down relevant wikidata for that type of entity:

[similar video on YouTube]

2. Linked data index of posts

Once this taxonomy term is used to tag a post, you can view the term’s archive page, and if you have a linked data sniffer, you will see that the metadata from WikiData is embedded in machine readable form using Here’s a screenshot of what the OpenLink structured data sniffer sees:

Or you can view the Google structured data testing tool output for that page.


  • You can create terms for custom taxonomies with just a term name (which is used as the slug for the term) and the Wikidata Q number identifier. The relevant name, description and metadata is pulled down from Wikidata.
  • Alternatively you can create a new term when you tag a post and later edit the term to add the wikidata Q number and hence the metadata.
  • The metadata retrieved from Wikidata varies to be suitable for the class of item represented by the term, e.g. birth and death details for people, date and location for events.
  • Term archive pages include the metadata from wikidata as machine readable structured data using This includes links back to the wikidata record and other authority files (e.g. ISNI and VIAF). A system harvesting the archive page for linked data could use these to find more metadata. (These onward links put the linked in linked data and the web in semantic web.)
  • The type of relationship between the term and posts tagged with it is recorded in the structure data on the term archive page. Each custom taxonomy is for a specific type of relationship (currently about and mentions, but it would be simple to add others).
  • Short codes allow each post to list the entries from a custom taxonomy that are relevant for it using a simple text widget.
  • This is a self-contained plugin. The plugin includes default term archive page templates without the need for a custom theme. The archive page is pretty basic (based on twentysixteen theme) so you would get better results if you did use it as the basis for an addition to a custom theme.

How’s it work / where is it

It’s on github. Do not use it on a production WordPress site. It’s definitely pre-alpha, and undocumented, and I make no claims for the code to be adequate or safe. It currently lacks error trapping / exception handling, and more seriously it doesn’t sanitize some things that should be sanitized. That said, if you fancy giving it a try do let me know what doesn’t work.

It’s based around two classes: one which sets up a custom taxonomy and provides some methods for outputting terms and term metadata in HTML with suitable RDFa markup; the other handles getting the wikidata via SPARQL queries and storing this data as term metadata. Getting the wikidata via SPARQL is much improved on the way it was done in the original post I mentioned above. Other files create taxonomy instances, provide some shortcode functions for displaying taxonomy terms and provide default term archive templates.

Where’s it going

It’s not finished. I’ll see to some of the deficiencies in the coding, but also I want to get some more elegant output, e.g. single indexes / archives of terms from all taxonomies, no matter what the relationship between the post and the item that the term relates to.

There’s no reason why the source of the metadata need be Wikidata. The same approach could be with any source of metadata, or by creating the term metadata in WordPress. As such this is part of my exploration of WordPress as a semantic platform. Using taxonomies related to educational properties would be useful for any instance of WordPress being used as a repository of open educational resources, or to disseminate information about courses, or to provide metadata for PressBooks being used for open textbooks.

I also want to use it to index PressBooks such as my copy of Omniana. I think the graphs generated may be interesting ways of visualizing and processing the contents of a book for researchers.

Licenses: Wikidata is CC:0, the wikidata logo used in the featured image for this post is sourced from wikimedia and is also CC:0 but is a registered trademark of the wikimedia foundation used with permission. The plugin, as a derivative of WordPress, will be licensed as GPLv2 (the bit about NO WARRANTY is especially relevant).

Not quite certifiable

After a slight delay, last week I received the result of my CMALT (Certified Membership of the Association for Learning Technology) submission.  While most of it was fine, the area which I had thought weakest, Core area 3: The wider context, was rated as inadequate. It has been lovely to see so many people celebrating gaining their CMALT over the last few months; and many of them have said how useful they found it to have access to examples of successful portfolios, which has also been my experience, but in the hope that it is also useful to see examples that fall short, and also in the hope that some of you might be able to provide feedback on improving it, I thought I would share here my unsuccessful portfolio.

The whole portfolio as submitted is available on Google docs, and the feedback from the assessors is here, but to focus on the area which needs attention, here is a copy of section 3 on Google docs,  to which I have added the assessors comments. The overall comments from the assessors are also worth noting:

Overall an articulate and insightful portfolio accompanied by appropriate evidence and contextualised reflection in most areas. However, in order to award a pass some minor amendments are required in Section 3a – Understanding and engaging with legislation, policies and standards: in particular, Area 1- student needs, and Area 2 – copyright, licensing and other IPR. Both of these areas require a greater depth and breadth of reflection. The details of this requirement are noted in the comments panel for each area.
These amendments would demonstrate to the assessors that the candidate has engaged with an appropriate level of reflection required in respect to the subjects chosen, which can have significant impact and influence on pedagogic practices in the use of educational technologies.

I have added the more specific comments from the marking table to the copy of section 3, and have added as suggestions my initial thoughts on how I might address these (those thoughts might be difficult to follow, think of them as scribbled aide-memoirs rather than a draft). If anyone would like to add their own comments or suggestions that would hugely appreciated. I really would like to think deeper about these issues, and it would help to know what I am missing.

When I was writing my portfolio I wrote that “I think I have learnt more by writing this than through any other thing I’ve done in the last five years.” I think much of the value in a CMALT is in the learning opportunity it presents, but it is also good to know that the assessment and feedback are robust, at least to the extent that the assessors succeeded in recognising those areas which I thought were weakest.

Quick update on W3C Community Group on Educational and Occupational Credentials

The work with the W3C Community Group on educational and occupational credentials in is going well. There was a Credential Engine working group call last week where I summarised progress so far. The group has 24 members. We have around 30 outline use cases, and have some idea of the relative importance of these. The use cases fall under four categories: search, refinements of searches, secondary searches (having found a credential, want find some other thing associated with it), and non-search use cases. From each use case we have derived one or two requirements for describing credentials in We made a good start at working through these requirements.

I think the higher-level issues for the group are as follows. First, How do model the aspect of educational and occupational credentials? Where does it fit in to the hierarchy, and how does it relate to other work around verifying a claim to hold a credential? Second, the relationship between a vocabulary like which aims for a wide uptake by many disconnected providers of data, not limited to a specialist domain or a partnership who are working closely together and can build a single tightly defined understanding of what they are describing. Thirdly, and somewhat related to the previous point, what balance do we strike between pragmatism and semantic purity.  We need to be pragmatic in order to build something that is acceptable to the rest of the community: not adding too many terms, not being too complex (one of the key factors in’s success has been  the tendency to favour approaches which make it easier to provide data).

Getting data from wikidata into WordPress custom taxonomy

[there is an update of this work]

I created a custom taxonomy to use as an index of people mentioned. I wanted it to work nicely as linked data, and so wanted each term in it to refer to the wikidata identifier for the person mentioned. Then I thought, why not get the data for the terms from wikidata?

Continue reading

Educational and occupational credentials in

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 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. Continue reading

Partnership with Cetis LLP

TIL: getting Skype for Linux working

Microsoft’s Skype for Linux is a pain for Linux (well, for Ubuntu at least). It stopped working for me, no one could hear me.

Apparently it needs pulse audio to  work properly, but as others have found “most problems with the sound in Linux can be solved by removing PulseAudio”. The answer, as outlined in this post, is apulse “PulseAudio emulation for ALSA”.

The end of Open Educational Practices in Scotland

On Monday I was at Our Dynamic Earth, by the Holyrood Parliament in Edinburgh, for a day meeting on the Promise of Open Education. This was the final event of the Open Educational Practices in Scotland project (OEPS), which (according to the evaluation report):

involved five universities in leading a project based in the Open University in Scotland. Its aims were to facilitate best practice in open education in Scotland, and to enhance capacity for developing publicly available online materials across the tertiary education sector in Scotland. The project particularly focused on fostering the use of open educational practices to build capacity and promote widening participation.


There have always been questions about this project, notably the funnelling of money to the OU without any sign of an open bidding process, but at least it was there. With the OEPS finishing, two things caught my attention: how do we get political support for open education, and what open educational practice is current in Scotland. To paraphrase Orwell: if there is hope, it lies in the grass roots [hmm, that didn’t end well for Winston].

Continue reading