{% set title = 'Manual: Automation' %} {% extends "base.html" %} {% block body %}

The Owl Manual: Automation

The Owl has several features which can be used to algorithmically generate posts and award points. They can for example evaluate complex conditions for passing a course.

Automation is currently considered experimental. If you want to use it, please ask the administrator to enable it for your account.

Readers of this manual are supposed to be already familiar with Owl's API.

Automatically generated posts

You can submit machine-generated posts to an arbitrary thread via the API. For example, this can be used to import points from other systems.

Each thread can contain at most one automatic post. If you submit another, it will replace the previous one. The timestamp of the post is updated only if the contents of the post changed.

Automatic posts currently do not support attachments. They do not trigger e-mail notifications nor automatic evaluation (see below).

Custom data for topics

A topic can be configured with custom data, which is an arbitrary JSON object. Custom data are not used by the Owl itself, but they are visible to API clients.

Automatically evaluated topics

A topic can be assigned an automatic evaluator, which is triggered whenever a new post is submitted to a topic's thread. The evaluator gets the student's most recent post and produces an automatic post as a reply.

Technically, the evaluator is a web service running at a given URL. The Owl sends a POST request containing a JSON-formatted AutoEvalRequest object in its body. The response should be a JSON-formatted AutoPost object.

It is permitted to call the API from within the evaluator. Since automatic evaluation is handled by a different process, there is no risk of deadlocks.

Automatic evaluation runs asynchronously. For every topic, there is a queue of evaluation requests, which is visible in Owl's user interface. Should the evaluator fail, the requests stay in the queue. You can request re-evaluation of a thread or of the whole topic if needed.

Interesting special cases: Evaluation is also triggered when a student's post is deleted.

Summary topics

A summary topic also has an automatic evaluator, but it reacts to points awarded for all topics in the course (more precisely to all topics of type task or award). This is typically used for evaluating complex conditions for passing a course.

Whenever a post awarding points is created, deleted, or edited in any thread, the Owl requests automatic evaluation of all summary topics of the given student.

Examples

Example programs using the API and automatic evaluation can be found in the examples directory in Owl sources. {% endblock %}