示例#1
0
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)
示例#4
0
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")
示例#5
0
 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)
示例#6
0
 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)
示例#7
0
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())