Skip to main content

A simple tool for generating XES files for Process Mining

Project description

This project is on Github: https://github.com/jsumrall/xes

This is a simple library which has methods for generating XES files. With this library you will be able to take your raw event data and generate an XES file with a standard header. From the XES-Standard web page, “XES is an XML-based standard for event logs. Its purpose is to provide a generally-acknowledged format for the interchange of event log data between tools and application domains. Its primary purpose is for process mining, i.e. the analysis of operational processes based on their event logs.”

As usual, examples are the best way to see what this does.

Example usage looks like this:

#!/usr/bin/env python

import xes

traces = [
    [
        {"concept:name" : "Register", "org:resource" : "Bob"},
        {"concept:name" : "Negotiate", "org:resource" : "Sally"},
        {"concept:name" : "Negotiate", "org:resource" : "Sally"},
        {"concept:name" : "Sign", "org:resource" : "Dan"},
        {"concept:name" : "Sendoff", "org:resource" : "Mary"}
    ],
    [
        {"concept:name" : "Register", "org:resource" : "Bob"},
        {"concept:name" : "Negotiate", "org:resource" : "Sally"},
        {"concept:name" : "Sign", "org:resource" : "Dan"},
        {"concept:name" : "Sendoff", "org:resource" : "Mary"}
    ],
    [
        {"concept:name" : "Register", "org:resource" : "Bob"},
        {"concept:name" : "Negotiate", "org:resource" : "Sally"},
        {"concept:name" : "Sign", "org:resource" : "Dan"},
        {"concept:name" : "Negotiate", "org:resource" : "Sally"},
        {"concept:name" : "Sendoff", "org:resource" : "Mary"}
    ],
    [
        {"concept:name" : "Register", "org:resource" : "Bob"},
        {"concept:name" : "Sign", "org:resource" : "Dan"},
        {"concept:name" : "Sendoff", "org:resource" : "Mary"}
    ]
]


log = xes.Log()
for trace in traces:
    t = xes.Trace()
    for event in trace:
        e = xes.Event()
        e.attributes = [
            xes.Attribute(type="string", key="concept:name", value=event["concept:name"]),
            xes.Attribute(type="string", key="org:resource", value=event["org:resource"])
        ]
        t.add_event(e)
    log.add_trace(t)
log.classifiers = [
    xes.Classifier(name="org:resource",keys="org:resource"),
    xes.Classifier(name="concept:name",keys="concept:name")
]

open("example.xes", "w").write(str(log))

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xes-1.3.tar.gz (7.2 kB view details)

Uploaded Source

File details

Details for the file xes-1.3.tar.gz.

File metadata

  • Download URL: xes-1.3.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for xes-1.3.tar.gz
Algorithm Hash digest
SHA256 aae3e395e425f9c0d1191b7bbe15f36f79387fffea0a1966e34f3e7fe0d20f2d
MD5 411408e5c2387b8336179831ca4207ff
BLAKE2b-256 a45a66323d7a46243286cefdf3afeca0a9237b6c1ec2508ecea4859fc447c3aa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page