def execute_script(): ocel = pm4py.read_ocel(os.path.join("..", "tests", "input_data", "ocel", "example_log.jsonocel")) # we wants to use the traditional algorithms for streaming also on object-centric event logs. # for this purpose, first we create two different event streams, one for the "order" object type # and one for the "element" object type. order_stream = live_event_stream.LiveEventStream() element_stream = live_event_stream.LiveEventStream() # Then, we register an algorithm for every one of them, which is a simple printer of the received events. order_stream_printer = event_stream_printer.EventStreamPrinter() element_stream_printer = event_stream_printer.EventStreamPrinter() order_stream.register(order_stream_printer) element_stream.register(element_stream_printer) # Then, we create the distributor object. # This registers different event streams for different object types. flatts_distributor = ocel_flatts_distributor.OcelFlattsDistributor() flatts_distributor.register("order", order_stream) flatts_distributor.register("element", element_stream) order_stream.start() element_stream.start() # in this way, we iterate over the events of an OCEL for ev in ocel_iterator.apply(ocel): # ... and the OCEL event is sent to all the "flattened" event streams. flatts_distributor.append(ev) # since the "flattened" event streams register a printer each, what we get is a print # of all the events that reach these instances. order_stream.stop() element_stream.stop()
def execute_script(): ocel = pm4py.read_ocel( os.path.join("..", "tests", "input_data", "ocel", "example_log.jsonocel")) model = pm4py.discover_oc_petri_net(ocel) print(model.keys()) pm4py.view_ocpn(model, format="svg")
def execute_script(): ocel = pm4py.read_ocel(os.path.join("..", "tests", "input_data", "ocel", "example_log.jsonocel")) # extracts some features on the objects and embed them in a Pandas dataframe data_objects, feature_names_objects = objects_feature_extraction.apply(ocel) objects_features_df = pd.DataFrame(data_objects, columns=feature_names_objects) print(objects_features_df) # extracts some features on the events and embed them in a Pandas dataframe data_events, feature_names_events = events_feature_extraction.apply(ocel) events_features_df = pd.DataFrame(data_events, columns=feature_names_events) print(events_features_df)
def execute_script(): ocel = pm4py.read_ocel( os.path.join("..", "tests", "input_data", "ocel", "example_log.jsonocel")) ocdfg = pm4py.discover_ocdfg(ocel) # views the model with the frequency annotation pm4py.view_ocdfg(ocdfg, format="svg") # views the model with the performance annotation pm4py.view_ocdfg(ocdfg, format="svg", annotation="performance", performance_aggregation="median")
def test_discovery_ocfg_p2(self): target_path = os.path.join("test_output_data", "model.svg") ocel = pm4py.read_ocel( os.path.join("input_data", "ocel", "example_log.jsonocel")) ocdfg = pm4py.discover_ocdfg(ocel) pm4py.save_vis_ocdfg(ocdfg, target_path, annotation="performance", act_metric="unique_objects", edge_metric="ev_couples", act_threshold=2, edge_threshold=1) os.remove(target_path)
def test_discovery_ocfg_p6(self): target_path = os.path.join("test_output_data", "model.svg") ocel = pm4py.read_ocel( os.path.join("input_data", "ocel", "example_log.jsonocel")) ocdfg = pm4py.discover_ocdfg(ocel, business_hours=True) pm4py.save_vis_ocdfg(ocdfg, target_path, annotation="performance", act_metric="unique_objects", edge_metric="total_objects", act_threshold=2, edge_threshold=1, performance_aggregation="median") os.remove(target_path)
def execute_script(): ocel = pm4py.read_ocel("../tests/input_data/ocel/example_log.jsonocel") print(ocel) print("attribute names: ", pm4py.ocel_get_attribute_names(ocel)) print("object types: ", pm4py.ocel_get_object_types(ocel)) print("flattening to order: ") print(pm4py.ocel_flattening(ocel, "order")) pm4py.write_ocel(ocel, "prova.jsonocel") os.remove("prova.jsonocel") print("ocel_object_type_activities") print(pm4py.ocel_object_type_activities(ocel)) print("ocel_objects_ot_count") print(pm4py.ocel_objects_ot_count(ocel)) print("filter_ocel_event_attribute") ocel1 = pm4py.filter_ocel_event_attribute(ocel, "ocel:activity", ["Create Order"]) print(ocel1.get_extended_table()) print("filter_ocel_object_attribute") ocel2 = pm4py.filter_ocel_object_attribute(ocel, "ocel:type", ["order", "delivery"]) print(ocel2.get_extended_table()) print("filter_ocel_object_types_allowed_activities") ocel3 = pm4py.filter_ocel_object_types_allowed_activities(ocel, {"order": {"Create Order"}, "element": {"Create Order"}}) print(ocel3.get_extended_table()) print("filter_ocel_start_events_per_object_type") ocel4 = pm4py.filter_ocel_start_events_per_object_type(ocel, "order") print(ocel4.get_extended_table()) print("filter_ocel_end_events_per_object_type") ocel5 = pm4py.filter_ocel_end_events_per_object_type(ocel, "order") print(ocel5.get_extended_table()) print("filter_ocel_object_per_type_count") ocel6 = pm4py.filter_ocel_object_per_type_count(ocel, {"order": 1, "element": 2}) print(ocel6.get_extended_table()) print("filter_ocel_events_timestamp") ocel7 = pm4py.filter_ocel_events_timestamp(ocel, "1981-01-01 00:00:00", "1982-01-01 00:00:00") print(ocel7.get_extended_table())