Skip to content

Commit

Permalink
Merge branch 'integration' into release
Browse files Browse the repository at this point in the history
  • Loading branch information
fit-alessandro-berti committed Jun 30, 2023
2 parents aa1e924 + 81c2dbb commit 93679e3
Show file tree
Hide file tree
Showing 52 changed files with 1,094 additions and 458 deletions.
62 changes: 62 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,67 @@
# Changelog of pm4py

## pm4py 2.7.5 (2023.06.30)

### Added
* f6d5a343808b350e83caac8cb0480e2ca671bfb4
* method in the simplified interface to get the curently enabled transitions
* 44964d19b7052350f21d637c1a55048026d2b165
* replay prefix using TBR (to obtain a marking)
* eb49b29863c65102ada2443ae66d7fe529a3d91e
* OCEL relational validation
* a128100af8182070453df161a22dbb54d1c08458
* LLM textual abstraction of a single case object
* 0f5b5668a8f134a36e65349f835bf4e1835ae9ea
* LLM textual abstraction of the log skeleton
* 3287c53c83f0198b47c56a3ef7b15ed8d6e09b3f
* LLM textual abstraction of EventLog features
* 7892697f04e14bbfecb7842139a82daf939aefbe
* restored OpenAI query executor

### Changed
* e414949a69e0376c0299955ecf7cb7d27f7cf349
* removed deprecation warning dotted chart and performance spectrum' packages
* 8f4ebdf93c3cbb57e7427238871d4b2e048f357c
* added warning for dropping rows with empty case ID/activity/timestamp in format_dataframe
* 1b35a81e58ee145d5c82029c1110234ac3899856
* added the possibility to specify the cae ID in project_on_event_attribute
* 6a4025f9a430ea32da29dd4142a51473ba16c5ef
* optimization connected components filtering OCEL
* c1028d56269e775167c3cb89827e02a57d263384
* minor changes OCEL 2.0 XML importers/exporters
* 3287c53c83f0198b47c56a3ef7b15ed8d6e09b3f
* max_num_edges parameter in simplified interface's DFG visualization
* 8e04c243a2de3e344832f719e085a0630b3a5f1c
* removing point border in dotted chart
* c5056add3101b7a846a630d67062f5ca9b8c84d3
* deug parameter for Petri nets visualization in simplified interface
* b11d3ae66c1ddf3be244f233efd8c7b1a02124e2
* moved "pm4py.algo.querying.openai" to "pm4py.algo.querying.llm"
* moved "pm4py.openai" to "pm4py.llm" (simplified interface)

### Deprecated

### Fixed
* 437a8c8b885b8e11557ff20e9a5635eeaf4c919c
* fix problem OCEL copy/deepcopy
* 2705b6b6be171bf821570f58027db531e7290801
* small fixes feature extraction event log
* 8a588ff40143f585faf643a5f9cb9f7137ab32e6
* small fix textual abstraction OCEL features
* 63108ee30c05a60a99f58a1fbb31dd33228c76fc
* fixing DFG visualization when some activities do not appear in the DFG (single activity cases)
* 30932c4de18ea55dace9678cb87a784d7eb438af
* bug fix Alpha Miner on Pandas dataframes
* 5cc3ded30c7f15ebe13d0a74894ca7f18f8a96e4
* fix heuristics net visualization's background color issue

### Removed

### Other


---

## pm4py 2.7.4 (2023.05.08)

### Added
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ RUN apt-get -y install libtool flex bison pkg-config g++ libssl-dev automake
RUN apt-get -y install libjemalloc-dev libboost-dev libboost-filesystem-dev libboost-system-dev libboost-regex-dev python3-dev autoconf flex bison cmake
RUN apt-get -y install libxml2-dev libxslt-dev libfreetype6-dev libsuitesparse-dev
RUN pip install -U wheel six pytest
RUN pip install colorama==0.4.6 contourpy==1.0.7 cycler==0.11.0 deprecation==2.1.0 fonttools==4.39.3 graphviz==0.20.1 intervaltree==3.1.0 kiwisolver==1.4.4 lxml==4.9.2 matplotlib==3.7.1 networkx==3.0 numpy==1.24.2 packaging==23.0 pandas==1.5.3 pillow==9.5.0 pydotplus==2.0.2 pyparsing==3.0.9 python-dateutil==2.8.2 pytz==2023.3 scipy==1.10.1 six==1.16.0 sortedcontainers==2.4.0 stringdist==1.0.9 tqdm==4.65.0
RUN pip install colorama==0.4.6 contourpy==1.1.0 cycler==0.11.0 deprecation==2.1.0 fonttools==4.40.0 graphviz==0.20.1 intervaltree==3.1.0 kiwisolver==1.4.4 lxml==4.9.2 matplotlib==3.7.1 networkx==3.1 numpy==1.25.0 packaging==23.1 pandas==2.0.3 pillow==9.5.0 pydotplus==2.0.2 pyparsing==3.1.0 python-dateutil==2.8.2 pytz==2023.3 scipy==1.11.1 six==1.16.0 sortedcontainers==2.4.0 stringdist==1.0.9 tqdm==4.65.0 tzdata==2023.3

COPY . /app
RUN cd /app && python setup.py install
50 changes: 32 additions & 18 deletions docs/source/api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ Among procedural process models, ``pm4py`` currently supports:
* :meth:`pm4py.conformance.fitness_alignments`; evaluation of the fitness between an event log and a *Petri net* using alignments.
* :meth:`pm4py.conformance.precision_token_based_replay`; evaluation of the precision between an event log and a *Petri net* using token-based replay.
* :meth:`pm4py.conformance.precision_alignments`; evaluation of the precision between an event log and a *Petri net* using alignments.
* :meth:`pm4py.conformance.replay_prefix_tbr`; replays a prefix (list of activities) on a given *Petri net*, using Token-Based Replay.

Among declarative process models, ``pm4py`` currently supports:

Expand Down Expand Up @@ -290,20 +291,26 @@ Some object-centric process discovery algorithms are also offered:
* :meth:`pm4py.ocel.discover_objects_graph`; discovers an object-based graph from the object-centric event log.


OpenAI Integration (:mod:`pm4py.openai`)
LLM Integration (:mod:`pm4py.llm`)
------------------------------------------

The following methods provides just the abstractions of the given objects:

* :meth:`pm4py.openai.abstract_dfg`; provides the DFG abstraction of a traditional event log
* :meth:`pm4py.openai.abstract_variants`; provides the variants abstraction of a traditional event log
* :meth:`pm4py.openai.abstract_log_attributes`; provides the abstraction of the attributes/columns of the event log
* :meth:`pm4py.openai.abstract_ocel`; provides the abstraction of an object-centric event log (list of events and objects)
* :meth:`pm4py.openai.abstract_ocel_ocdfg`; provides the abstraction of an object-centric event log (OC-DFG)
* :meth:`pm4py.openai.abstract_ocel_features`; provides the abstraction of an object-centric event log (features for ML)
* :meth:`pm4py.openai.abstract_event_stream`; provides an abstraction of the (last) events of the stream related to a traditional event log
* :meth:`pm4py.openai.abstract_petri_net`; provides the abstraction of a Petri net
* :meth:`pm4py.llm.abstract_dfg`; provides the DFG abstraction of a traditional event log
* :meth:`pm4py.llm.abstract_variants`; provides the variants abstraction of a traditional event log
* :meth:`pm4py.llm.abstract_log_attributes`; provides the abstraction of the attributes/columns of the event log
* :meth:`pm4py.llm.abstract_log_features`; provides the abstraction of the machine learning features obtained from an event log
* :meth:`pm4py.llm.abstract_case`; provides the abstraction of a case (collection of events)
* :meth:`pm4py.llm.abstract_ocel`; provides the abstraction of an object-centric event log (list of events and objects)
* :meth:`pm4py.llm.abstract_ocel_ocdfg`; provides the abstraction of an object-centric event log (OC-DFG)
* :meth:`pm4py.llm.abstract_ocel_features`; provides the abstraction of an object-centric event log (features for ML)
* :meth:`pm4py.llm.abstract_event_stream`; provides an abstraction of the (last) events of the stream related to a traditional event log
* :meth:`pm4py.llm.abstract_petri_net`; provides the abstraction of a Petri net
* :meth:`pm4py.llm.abstract_log_skeleton`; provides the abstraction of a log skeleton model

The following methods can be executed directly against the LLM APIs:

* :meth:`pm4py.llm.openai_query`; executes a prompt against OpenAI, returning the response as string


Basic Connectors (:mod:`pm4py.connectors`)
Expand Down Expand Up @@ -367,6 +374,7 @@ Other algorithms, which do not belong to the aforementioned categories, are coll
* :meth:`pm4py.analysis.generate_marking`; generates a Marking object from a textual representation.
* :meth:`pm4py.analysis.reduce_petri_net_invisibles`; reduces the invisible transitions of a Petri net when possible.
* :meth:`pm4py.analysis.reduce_petri_net_implicit_places`; reduces the implicit places in the Petri net (MURATA).
* :meth:`pm4py.analysis.get_enabled_transitions`; gets the transitions enabled in a given marking.


Overall List of Methods
Expand Down Expand Up @@ -437,6 +445,7 @@ Overall List of Methods
pm4py.conformance.fitness_alignments
pm4py.conformance.precision_token_based_replay
pm4py.conformance.precision_alignments
pm4py.conformance.replay_prefix_tbr
pm4py.conformance.conformance_temporal_profile
pm4py.conformance.conformance_log_skeleton
pm4py.vis
Expand Down Expand Up @@ -559,15 +568,19 @@ Overall List of Methods
pm4py.ocel.ocel_o2o_enrichment
pm4py.ocel.ocel_e2o_lifecycle_enrichment
pm4py.ocel.cluster_equivalent_ocel
pm4py.openai
pm4py.openai.abstract_dfg
pm4py.openai.abstract_variants
pm4py.openai.abstract_ocel
pm4py.openai.abstract_ocel_ocdfg
pm4py.openai.abstract_ocel_features
pm4py.openai.abstract_event_stream
pm4py.openai.abstract_petri_net
pm4py.openai.abstract_log_attributes
pm4py.llm
pm4py.llm.abstract_dfg
pm4py.llm.abstract_variants
pm4py.llm.abstract_ocel
pm4py.llm.abstract_ocel_ocdfg
pm4py.llm.abstract_ocel_features
pm4py.llm.abstract_event_stream
pm4py.llm.abstract_petri_net
pm4py.llm.abstract_log_attributes
pm4py.llm.abstract_log_features
pm4py.llm.abstract_case
pm4py.llm.abstract_log_skeleton
pm4py.llm.openai_query
pm4py.connectors.extract_log_outlook_mails
pm4py.connectors.extract_log_outlook_calendar
pm4py.connectors.extract_log_windows_events
Expand Down Expand Up @@ -606,6 +619,7 @@ Overall List of Methods
pm4py.analysis.compute_emd
pm4py.analysis.reduce_petri_net_invisibles
pm4py.analysis.reduce_petri_net_implicit_places
pm4py.analysis.get_enabled_transitions
pm4py.utils
pm4py.utils.rebase
pm4py.utils.parse_process_tree
Expand Down
2 changes: 1 addition & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
# The short X.Y version
version = '2.7'
# The full version, including alpha/beta/rc tags
release = '2.7.4'
release = '2.7.5'

# -- General configuration ---------------------------------------------------

Expand Down
1 change: 0 additions & 1 deletion examples/execute_everything.py
Original file line number Diff line number Diff line change
Expand Up @@ -775,7 +775,6 @@ def execute_script(f):
execute_script(ocel_occm_example)
execute_script(ocel_clustering)
execute_script(ocel_enrichment)
execute_script(openai_queries)
execute_script(validation_ocel20_xml)
execute_script(consecutive_act_case_grouping_filter)
execute_script(cost_based_dfg)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,10 @@
import pandas as pd
from pm4py.objects.log.obj import EventLog, EventStream
from pm4py.objects.ocel.obj import OCEL
from pm4py.algo.querying.openai import log_to_dfg_descr, log_to_variants_descr, log_to_cols_descr
from pm4py.algo.querying.openai import stream_to_descr
from pm4py.algo.querying.llm.abstractions import log_to_cols_descr, log_to_dfg_descr, log_to_variants_descr, \
ocel_fea_descr, ocel_ocdfg_descr, stream_to_descr
from pm4py.algo.transformation.ocel.description import algorithm as ocel_description
from pm4py.algo.querying.openai import ocel_ocdfg_descr, ocel_fea_descr
from pm4py.algo.querying.openai import perform_query
from pm4py.algo.querying.llm.connectors import openai as perform_query
from pm4py.objects.conversion.log import converter as log_converter
from typing import Union, Tuple
from enum import Enum
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from pm4py.objects.petri_net.obj import PetriNet, Marking
from typing import Optional, Dict, Any
from pm4py.algo.querying.openai import net_to_descr
from pm4py.algo.querying.openai import perform_query
from pm4py.algo.querying.llm.abstractions import net_to_descr
from pm4py.algo.querying.llm.connectors import openai as perform_query
from enum import Enum
from pm4py.util import exec_utils, constants

Expand Down
Loading

0 comments on commit 93679e3

Please sign in to comment.