Question types: Pattern match

Maintained by Tim at Lone Pine Koala SanctuaryTim Hunt, Picture of Phil ButcherPhil Butcher
Allows a short response of one or a few sentences that is graded by comparing against various model answers, which are described using the OU's pattern match syntax.
1612 sites
39 fans
Current versions available: 10

There are working examples in eAssessment with Moodle on our OpenLearn site.

The documentation is in How to create questions in Moodle on that site.


This plugin is part of set Open University.


Screenshot #0


Tim at Lone Pine Koala Sanctuary
Tim Hunt (Lead maintainer)
Picture of Phil Butcher
Phil Butcher: Question type designer
Picture of Jamie Pratt
Jamie Pratt: Developer
Picture of Colin Chambers
Colin Chambers: Developer
Picture of John Beedell
John Beedell: Developer
Picture of Chris Nelson
Chris Nelson: Product owner
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Picture of Jocelyn Chappaz
    Thu, Aug 22, 2019, 9:25 PM
    After more than 10 hours trying to solve this problem or bypass it... I'm still stuck with my moodle broken... please help
  • Tim at Lone Pine Koala Sanctuary
    Thu, Aug 22, 2019, 9:29 PM
    Sorry. I have been busy with other issues. Your options include: Trying to go back to a previous version of the plugin; trying to set these settings directly in the database, if you can work ou which setting is causing the problem; wait for a proper fix.

    For some bugs, you look at the reported symptoms, and it is just obvious how you screwed up. In other cases, and sadly this is one, the symptoms make no sense until you have time to dig into it deeply, then hpefully, you can work it out and fix the problem.
  • Tim at Lone Pine Koala Sanctuary
    Thu, Aug 22, 2019, 11:40 PM
    Right, I just had time to fix this before going on holiday for a week. Luckily, one of my development servers had not already been upgraded to latest pamtch, and so I was able to reproduce the problem.

    The solution was to add a 'No languages found' option to the setting if the list would otherwise be empty. That seems to be enough to stop Moodle getting confused. There is not need to select the otion that now appears. Just click continue.
  • Picture of Jocelyn Chappaz
    Sat, Aug 24, 2019, 8:12 PM
    I managed to get back using an old SQL backup and I just deleted the plug in... had no choice. In the other hand, it seems there's pb when you try to update to moodle 3.7 on macOS platform... both pb at the same time, it was enough for me to freak out ... -____-'
  • Picture of Toni Soto
    Tue, Sep 10, 2019, 6:53 PM
    Hi Tim,

    I tried to upgrade Pmatch qtype in my current installation (Moodle 3.5) and I got this error:

    Excepción - syntax error, unexpected 'const' (T_CONST), expecting variable (T_VARIABLE)

    Más información sobre este error <-- Notice that my defaul language is Spanish

    ×Debug info:
    Error code: generalexceptionmessage
    ×Stack trace:
    line 48 of /question/type/pmatch/classes/local/spell/qtype_pmatch_spell_checker.php: ParseError thrown
    line ? of unknownfile: call to core_component::classloader()
    line 129 of /question/type/pmatch/db/upgrade.php: call to spl_autoload_call()
    line 632 of /lib/upgradelib.php: call to xmldb_qtype_pmatch_upgrade()
    line 1857 of /lib/upgradelib.php: call to upgrade_plugins()
    line 694 of /admin/index.php: call to upgrade_noncore()

    Fortunately I could cancel the upgrade and restore my old version.

    Before sending this message I tried it one more time after changing my default languague to English and I got the same error but with much less additional information:

    Exception - syntax error, unexpected 'const' (T_CONST), expecting variable (T_VARIABLE) <-- Just this!

    I hope that will be easy to fix. Either way, it is not urgent for me as I can go on using the current version.

    Thank you in advance Tim!

  • Tim at Lone Pine Koala Sanctuary
    Tue, Sep 10, 2019, 8:15 PM
    See This error only happens in you are using PHP 7.0. I carelessly added a PHP 7.1-style construct to the code. Sorry.
  • Picture of Toni Soto
    Wed, Sep 11, 2019, 8:46 PM
    Thank you for replying Tim. I'm going to keep my current version until I could afford to upgrade PHP. smile
  • Picture of DPM Nederland
    Thu, Dec 5, 2019, 11:00 PM
    Hi Tim and others maintaining, We love the Pattern Match question! In fact, I had someone build a combination of Pattern Match and Essay, to incorporate a larger textfield and answertemplate. We call it 'Pattern Essay and will make it available soon. However, I also encountered a bug. When using a large string of keywords (eg. 1|2|3 and so on until over 21) and then choosing answer 2 (eg. 17 keywords), 3 (eg. 14 keywords) and 4 (eg. 10 keywords) as options for 90%, 60% and 50% scores, students scoring less than 100% received a time-out error during the quiz and re-attempting it later. It took us some time to figure out the problem smile. Does this ring a bell with any of you?
  • Tim at Lone Pine Koala Sanctuary
    Thu, Dec 5, 2019, 11:22 PM
    That sounds like it is probably a performance problem. The pattern match library is quite complex, and not necessarily fast, particuarly as the patterns and the student response both get longer. (There is a reason the standard question type limits the response to 20 wrods at most.)

    It probably could be improved if anyone was brave enough to dive into the code. Initially our priority was to get it to implement the matching correctly, and that was hard enough. Optimising performance is not something we have done much work on.
  • Picture of Stephen Parry
    Sun, Jan 19, 2020, 6:00 AM
    The PMatch question type is both awesomely useful and deeply frustrating at the same time. Thanks for all the support on it Tim. A couple of bug reports / feature requests:
    - A bug: Proper nouns fall foul of the spell checking logic. For example, if you include the word Greek in your typed answer, the code converts it to greek before sending it to the spell checker. Aspell then chucks it out as a spelling error, even though aspell has a case insensitive option and Greek is in its dictionary.
    - Optional words / phrases: I could vastly simplify the rules for many of my more exact questions just by being able to add an empty alternative using the or symbol, either by | on its own or perhaps |[]. Sometimes I can achieve the same effect if there is a simple anchor word before or after but often the words before or after are alternatives too and things get ugly fast.
    - More selective match_w option: often I want to allow extra words only before or after the match but not _in_ the match clause - making it possible to pick out one particular phrase or ignore extra detail or examples without rewriting the answer rules. You can do this with _ and p control, but it can get very fiddly.
    - Support for multiple possible pmatch answers in the combined question.
    - This is a kicker, and might be better handled via some option in the combined question. Often I want the student to include multiple answers. E.g. "State three reasons for the fall of the Weimar Republic" or "Describe three features of a contemporary CPU that improve performance". What I don't want is the student to be able to give the same (or same meaning) answer multiple times, and I want to give them credit for fewer than 3. The number of permutations becomes ridiculous very fast. For four requested out of four in the main pmatch, it's Answer 1 (100%): match all of 4 x match 1 possibilities + Answer 2 (75%): match any of 4 x match all of 3 x match 1 possibilities + Answer 3 (50%): match any of 2 x match all of 2 x match any of 2 x match 1 possibilities Answer 4 (25%): match any of 4 x match 1 possibilities. That is 28 items, the same four matches repeated seven times. This could perhaps either be handled by having a match_n operator in the pmatch question type and/or allowing the combined question type to give tags to any answer that can only be used once across the whole question.
  • Picture of Chris Nelson
    Mon, Jan 20, 2020, 4:33 PM
    @Stephen Parry.
    Thanks very much for the feedback, Stephen. Given the amount of feedback, it might be easier for Tim and/or I to discuss if you posted each separately in the forums.
    1) We'll check this as that does sound wrong (but just to check, has case sensitivity been switched on, and has 'Greek' been added to the question settings dictionary?).
    2) In a forum post, could you expand on this, including an example question or two, please? It really helps us understand PMatch limitations when we see how others are trying to use it..
    3) In a forum post, could you expand on this, including an example question or two, please? In general, aye, that's also on our improvement list for PMatch, although quite far down.
    4) The Combined PMatch sub-question was designed as a lightweight implementation, and we did that to try to keep the Question Editing Form as short and clean as could. We're currently making a few other changes to Combined though (adding single choice and shuffling/list options for single choice and multiple response - hopefully this will be available within the next few weeks), so we'll review.
    5) We wouldn't want to promise anything specific at this stage, but we've been thinking for a while now about a new form of PMatch (tentatively called the "PMatch Sets" question type) that would allow educators to ask that sort of question. If we're lucky, we might start formal development in our next dev quarter. Once we release it, we'll bundle it with normal PMatch as a plug-in set. And then we'll make it available as a Combined sub-question type too.
  • Picture of Jeremy Virgo
    Mon, May 18, 2020, 12:13 PM
    Hi Tim,
    Do you intend to update this for 3.9 when it's out?
  • Tim at Lone Pine Koala Sanctuary
    Mon, May 18, 2020, 4:50 PM
    Of course. Though I cannot promise exactly when. It will depend on when I can find time. But, if you check, you will find that all my plugins are up-to-date with released Moodle versions.

    (Also, it is rare for a upgrade to break a plugin. You don't have to wait, you can always test the current plugin with the latest Moodle. There are good chances it will work. If you share you results here, that is a useful contribution to make.)
  • Picture of Gareth Arnott
    Wed, Aug 26, 2020, 6:44 PM
    Hi guys - I've been spear-heading this amazing question type at our institution since last year. I do not know where to report bugs, but something weird is happening. I have a question that needs superscripts for correct input (i.e. a formula). Last year we used it in the exam with 100% success (really truly amazing as there were over 800 unique answers). Now the same question is broken? I have tracked the issue to the following. The text I am looking for is programmed in as follows:

    match_w (2n)

    this will not work, but if I tell pmatch to remove '<' and '>' and convert to space, then the following

    match_w (2 sup n /sup)

    now works. It is a very bizarre thing. Note also that the subscript version does work, so ... weird. Is there any reason for this?

  • Tim at Lone Pine Koala Sanctuary
    Wed, Aug 26, 2020, 6:46 PM
    Best place to report bugs is the 'Bug tracker' link above.

    If possible, please attach an example question exported in Moodle XML format. (In the past, github did not like XML attachments. If that is still an issue just rename to .txt.)
1 2 3 4
Please login to post comments