Skip to content
v0.2.1

Ocelescope - Object-Centric Process Mining

// OBJECT-CENTRIC PROCESS MINING

An extensible web framework for object-centric process mining.

Upload an OCEL, filter it down, discover models, and extend everything with plugins. Spin it up with Docker and analyze in minutes - entirely in your browser.

Open source Runs locally Docker RWTH PADS
bash
# two commands and you are running $ curl -LO https://www.ocelescope.org/docker-compose.yaml $ docker compose up -d ok backend ghcr.io/promi4s/ocelescope-backend ok frontend http://localhost:3000 Ocelescope is ready.
OCEL 2.0 PM4PY-compatible Plugin library Custom React modules Self-hosted

LOG OVERVIEW

Understand any OCEL at a glance.

Upload a log and Ocelescope profiles it instantly: events and objects, every type, attribute value ranges and the time span they cover. Know what you are working with before you write a single query.

eventsobjectsobject & event typesvalue rangestime ranges
localhost:3000/logOverview

FILTER CONSTRUCTOR

Get the perspective you need.

Compose filters visually to shrink an OCEL. Stack conditions across object and event types, attribute values, time windows and the existence of O2O or E2O relations - then carry the reduced log straight into discovery.

object type & activity selectionattribute-value conditionstime range windowsO2O & E2O existence filters
localhost:3000/filter

DISCOVERY

Discover models - and add your own methods.

Out of the box, the discovery tab renders object-centric Petri nets and directly-follows graphs. Need a different algorithm? Define it plugin-style, upload the zip, and it appears as a selectable method right in the tab.

OC Petri netsdirectly-follows graphs+ your method
localhost:3000/discovery

WHY OCELESCOPE

Ocelescope is where research code becomes reusable software.

Ocelescope provides a plugin system to integrate new functionality at runtime. A method should not disappear into a one-off prototype for publication. Package it, upload it, run it - and let others build on it.

BUILD A PLUGIN

Declare your parameters. Ocelescope renders the UI.

No frontend work. Type your plugin inputs in Python and the form on the right is generated for you.

localhost:3000/plugin/ocel-graph
from typing import Annotated

from ocelescope import (
    OCEL,
    OCELAnnotation,
    Plugin,
    plugin_method,
)

from .input import OCELGraphInput
from .resource import OCELGraph
from .util import mine_ocel_graph


class OcelGraphDiscovery(Plugin):
    label = "Ocel Graph"
    description = "Discovers a Object-Centric event log graph"
    version = "1.0.3"

    @plugin_method(label="Mine OCEL Graph", description="Mines a OCEL Graph")
    def mine_ocel_graph(
        self,
        ocel: Annotated[
            OCEL,
            OCELAnnotation(label="Event Log", description="The log from which the ocel graph should be mined from"),
        ],
        input: OCELGraphInput,
    ) -> OCELGraph:
        return mine_ocel_graph(ocel, input)

EXTENSIBLE UI

When a form is not enough, ship a full module.

Each plugin gets a generated page. For richer workflows, custom React modules mount as first-class views. This way, the OCELOT module was integrated.

per-plugin pagescustom React modulesOcelot module
localhost:3000/modules/ocelot

PLUGIN ECOSYSTEM

A growing library of analyses.

PD PM4PY Discovery v1.0.5 by Görkem Öztürk A discovery plugin for ocelescope using the pm4py library 1 star updated Jun 2026 Download ->
TM TOTeM v1.7.2 by Görkem Öztürk A plugin to generate Temporal Object Type Models 1 star updated Jun 2026 Download ->
OD OC-DECLARE v1.0.5 by Görkem Öztürk OC Declare 2 stars updated Jun 2026 Download ->
OG OCEL Graph v1.0.5 by Görkem Öztürk A Ocel graph plugin for ocelescope 1 star updated Jun 2026 Download ->

GET STARTED

Running in two commands.

Download the compose file, start the stack, and open the frontend on localhost.

bash
$ curl -LO https://www.ocelescope.org/docker-compose.yaml $ docker compose up -d ok backend ghcr.io/promi4s/ocelescope-backend ok frontend http://localhost:3000 Ocelescope is ready.