Skip to content

Commit

Permalink
revise the way of computing probability
Browse files Browse the repository at this point in the history
  • Loading branch information
brucelit committed Mar 15, 2024
0 parents commit 61236ac
Show file tree
Hide file tree
Showing 153 changed files with 15,915 additions and 0 deletions.
Binary file added .DS_Store
Binary file not shown.
13 changes: 13 additions & 0 deletions .classpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" output="tests/bin-test" path="tests/src-test"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=SLPNMiner&amp;ivyXmlPath=ivy.xml&amp;confs=*&amp;ivySettingsPath=ivysettings.xml&amp;loadSettingsOnDemand=false&amp;ivyUserDir=&amp;propertyFiles="/>
<classpathentry kind="lib" path="eclipse-collections-9.2.0.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
46 changes: 46 additions & 0 deletions .github/workflows/ant.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# This workflow will build a Java project with Ant
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-ant

name: Java CI

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
- name: Build with Ant
run: ant -noinput -buildfile build.xml buildHudson
env:
bytecode_format: ${{ vars.BYTECODE_FORMAT }}
major_minor: ${{ vars.MAJOR_MINOR }}
- name: Upload build result
uses: actions/upload-artifact@v3
with:
name: release
path: latestrelease/
- name: Commit files
run: |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git add latestrelease/
git commit -m "Add changes"
- name: Push changes
uses: ad-m/github-push-action@master
with:
branch: ${{ github.ref }}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/bin/
/tests/
/.idea/
18 changes: 18 additions & 0 deletions .project
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>SLPNMiner</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.apache.ivyde.eclipse.ivynature</nature>
</natures>
</projectDescription>
21 changes: 21 additions & 0 deletions NewPackageIvy.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="EclipseModuleManager">
<conelement value="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=NewPackageIvy&amp;ivyXmlPath=ivy.xml&amp;confs=*&amp;ivySettingsPath=ivysettings.xml&amp;loadSettingsOnDemand=false&amp;ivyUserDir=&amp;propertyFiles=" />
<src_description expected_position="0">
<src_folder value="file://$MODULE_DIR$/src" expected_position="0" />
<src_folder value="file://$MODULE_DIR$/tests/src-test" expected_position="1" />
</src_description>
</component>
<component name="NewModuleRootManager">
<output url="file://$MODULE_DIR$/bin" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/tests/src-test" isTestSource="false" />
</content>
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="inheritedJdk" />
<orderEntry type="library" name="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=NewPackageIvy&amp;ivyXmlPath=ivy.xml&amp;confs=*&amp;ivySettingsPath=ivysettings.xml&amp;loadSettingsOnDemand=false&amp;ivyUserDir=&amp;propertyFiles=" level="application" />
</component>
</module>
29 changes: 29 additions & 0 deletions ProM Package Manager (SLPNMiner).launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<booleanAttribute key="org.eclipse.debug.core.ATTR_FORCE_SYSTEM_CONSOLE_ENCODING" value="false"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/SLPNMiner"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
</listAttribute>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_ATTR_USE_ARGFILE" value="false"/>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_SHOW_CODEDETAILS_IN_EXCEPTION_MESSAGES" value="true"/>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER&quot; javaProject=&quot;SLPNMiner&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#13;&#10;"/>
<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#13;&#10;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;SLPNMiner&quot;/&gt;&#13;&#10;&lt;/runtimeClasspathEntry&gt;&#13;&#10;"/>
</listAttribute>
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.processmining.contexts.uitopia.packagemanager.PMFrame"/>
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="SLPNMiner"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="SLPNMiner"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea -Xmx1G -Djava.library.path=."/>
<stringAttribute key="yk-options" value="&#13;&#10;additional-options=&#13;&#10;snapshots-dir=&#13;&#10;"/>
</launchConfiguration>
29 changes: 29 additions & 0 deletions ProM with UITopia (SLPNMiner).launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<booleanAttribute key="org.eclipse.debug.core.ATTR_FORCE_SYSTEM_CONSOLE_ENCODING" value="false"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/SLPNMiner"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
</listAttribute>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_ATTR_USE_ARGFILE" value="false"/>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_SHOW_CODEDETAILS_IN_EXCEPTION_MESSAGES" value="true"/>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER&quot; javaProject=&quot;SLPNMiner&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#13;&#10;"/>
<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#13;&#10;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;SLPNMiner&quot;/&gt;&#13;&#10;&lt;/runtimeClasspathEntry&gt;&#13;&#10;"/>
</listAttribute>
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.processmining.contexts.uitopia.UI"/>
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="SLPNMiner"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="SLPNMiner"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djava.library.path=. -Djava.util.Arrays.useLegacyMergeSort=true -Djava.system.class.loader=org.processmining.framework.util.ProMClassLoader&#10;-Xms12288M -Xmx24576M"/>
<stringAttribute key="yk-options" value="&#13;&#10;additional-options=&#13;&#10;snapshots-dir=&#13;&#10;"/>
</launchConfiguration>
47 changes: 47 additions & 0 deletions ProM.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# This file contains information about this ProM release
# it points ProM to the right packages and keeps version
# information
#
# Folders should be separated using "/" (forward slash).
# This will be replaced with File.Separator().
#
# Specifies the ProM release version
PROM_VERSION = NightlyBuild
#
# Specifies which package should be installed
RELEASE_PACKAGE = RunnerUpPackages
#
# Specifies the URL to the default package repository
# (default is "http://prom.win.tue.nl/ProM/packages/packages.xml")
PACKAGE_URL = http://www.promtools.org/prom6/packages/packages.xml
#
# Specifies whether ProM is Verbose
# (possible: "ALL" / "ERROR" / "NONE", defaults to "ALL")
VERBOSE = ALL
#
# The library folder is relative to the prom installation
# folder (default is "lib")
LIB_FOLDER = lib
#
# The images folder is relative to the prom library
# folder (default is "=images")
IMAGES_FOLDER = images
#
# The macro folder is relative to the prom library
# folder (default is "macros")
MACRO_FOLDER = macros
#
# The prom user folder is NOT relative to the
# prom installation folder. The (default is empty, in
# which case the OS handles the location)
PROM_USER_FOLDER =
#
# The package folder is relative to the
# prom user folder. The (default is "packages")
PACKAGE_FOLDER = packages
#
# The workspace folder is relative to the
# prom user folder. The (default is "workspace")
WORKSPACE_FOLDER = workspace


40 changes: 40 additions & 0 deletions ReadMe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# SLPNMiner

SLPNMiner is a ProM package for the discovery of Stochastic Labelled Petri net, which provides plugin-ins for stochastic process discovery. The input are an event log and a Petri net model, and the output is a stochastic labelled petri net. The two current implemented plugins adopt the techniques introduced in the following to assist weight estimation.

* Entropic relevance:
[Hanan Alkhammash, Artem Polyvyanyy, Alistair Moffat, Luciano García-Bañuelos: Entropic relevance: A mechanism for measuring stochastic process models discovered from event data. Inf. Syst. 107: 101922 (2022)](https://www.sciencedirect.com/science/article/pii/S0306437921001277)

* Unit Earth Mover Stochastic Conformance:
[Sander J. J. Leemans, Wil M. P. van der Aalst, Tobias Brockhoff, Artem Polyvyanyy: Stochastic process mining: Earth movers' stochastic conformance. Inf. Syst. 102: 101724 (2021)](https://www.sciencedirect.com/science/article/pii/S0306437921001277)

## Installation
* If you have not yet installed or run ProM6 before, follow the installation tutorial: https://promtools.org/prom-6-getting-started/installation/

* Although the majority of ProM developers use jdk 8, I have to use jdk 17 for this project, so that some third-party libraries (requires jdk 11+) can run. Therefore, **jdk 8 is not going to work** for this project*. The following VM argument should be added to make sure ProM GUI can launch with jdk 17:
```python
-Djava.system.class.loader=org.processmining.framework.util.ProMClassLoader
```
<img src="https://github.com/promworkbench/SLPNMiner/blob/main/img/VM_parameter.jpg" style="width:600px; height:250px"/>

## Usage
* After starting ProM plugin, import the event log and a Petri net model to the GUI.

<img src="https://github.com/promworkbench/SLPNMiner/blob/main/img/step1.jpg" style="width:600px; height:220px"/>

* Then, select the plugin-in *Discover SLPN with uEMSC* or *Discover SLPN with Enropic Relevance*.

<img src="https://github.com/promworkbench/SLPNMiner/blob/main/img/step2.jpg" style="width:600px; height:220px"/>

* The output is a SLPN, which shows the probability value for each transition.
<img src="https://github.com/promworkbench/SLPNMiner/blob/main/img/step3.jpg" style="width:470px; height:250px"/>

## Contributing

Pull requests are welcome. For major changes, please open an issue first
to discuss what you would like to change.

Please make sure to update tests as appropriate.

## License
L-GPL (https://www.gnu.org/licenses/lgpl-3.0.en.html)
Binary file added bpstruct-0.1.117.jar
Binary file not shown.
Binary file added bpstruct-osgi-1.1.jar
Binary file not shown.
Loading

0 comments on commit 61236ac

Please sign in to comment.