{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Conformance Checking with a LTLf model\n", "\n", "The class `ProcessMiningTasks.ConformanceChecking.LTLAnalyzer.LTLAnalyzer` provides a way to check if the log conforms to a Linear Temporal Logic on finite traces (LTLf) formula. The formula can be a provided by the user as a string, note that we adopted the LTLf syntax [here](http://ltlf2dfa.diag.uniroma1.it/ltlf_syntax). In addition, we also provide the following set of LTLf templates:\n", "\n", "1. `eventually_a`;\n", "2. `next_a`;\n", "3. `eventually_a_and_eventually_b`;\n", "4. `eventually_a_then_b`;\n", "5. `eventually_a_or_b`;\n", "6. `eventually_a_next_b`;\n", "7. `eventually_a_then_b_then_c`;\n", "8. `eventually_a_next_b_next_c`;\n", "\n", "the following set of LTLf templates called Is First (Last):\n", "1. `is_first_state_a`;\n", "2. `is_second_state_a`;\n", "3. `is_third_state_a`;\n", "4. `last`;\n", "5. `second_last`;\n", "6. `third_last`;\n", "7. `is_last_state_a`;\n", "8. `is_second_last_state_a`;\n", "9. `is_third_last_state_a`;\n", "\n", "the following set of LTLf templates with multiple attributes:\n", "\n", "1. `p_does_a`;\n", "2. `a_is_done_by_p_and_q`;\n", "3. `p_does_a_and_b`;\n", "4. `p_does_a_and_then_b`;\n", "5. `p_does_a_and_eventually_b`;\n", "6. `p_does_a_a_not_b`;\n", "7. `a_done_by_p_p_not_q`;\n", "\n", "and the following [Target-Branched DECLARE templates](https://www.sciencedirect.com/science/article/pii/S0306437915001271):\n", "\n", "1. `precedence`;\n", "2. `chain_precedence`;\n", "3. `responded_existence`;\n", "4. `chain_response`;\n", "5. `not_chain_precedence`;\n", "6. `not_chain_response`;\n", "7. `response`;\n", "8. `not_precedence`;\n", "9. `not_response`;\n", "10. `not_responded_existence`;\n", "11. `alternate_response`;\n", "12. `alternate_precedence`.\n", "\n", "First of all, an event log has to be imported." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "8b1b675b8daa437a8a3621ed7edf4bd5", "version_major": 2, "version_minor": 0 }, "text/plain": [ "parsing log, completed traces :: 0%| | 0/1050 [00:00, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python3.11/dist-packages/pm4py/utils.py:486: UserWarning: the EventLog class has been deprecated and will be removed in a future release.\n", " warnings.warn(\"the EventLog class has been deprecated and will be removed in a future release.\")\n" ] } ], "source": [ "import os\n", "from Declare4Py.D4PyEventLog import D4PyEventLog\n", "\n", "log_path = os.path.join(\"../../../\", \"tests\", \"test_logs\",\"Sepsis Cases.xes.gz\")\n", "event_log = D4PyEventLog()\n", "event_log.parse_xes_log(log_path)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The next step is to create an `LTLModel` from an input LTLf formula in string format with the class `ProcessModels.LTLModel.LTLModel` and pass it to the LTL conformance checker implemented in the `src.Declare4Py.ProcessMiningTasks.ConformanceChecking.LTLAnalyzer.LTLAnalyzer` class. The corresponding method `run` will do the conformance checking and return a Pandas dataframe. This dataframe contains the traces ids in the first column and the results of the conformance checking in the second column. The `run` method transforms the LTLf formula into a Deterministic Finite state Automaton (DFA) and checks whether a trace in a log is accepted. This transformation is performed by using two backends:\n", "\n", " - Lydia, C++ backend that needs to be installed with Docker, more details [here](https://github.com/whitemech/logaut/tree/main);\n", " - LTLf2DFA, that needs to be installed with `pip install git+https://github.com/whitemech/LTLf2DFA.git@develop#egg=ltlf2dfa`. More details [here](https://github.com/whitemech/LTLf2DFA/).\n", "\n", "As explained in the tutorial regarding process models, it is possible to switch the backends of the LTLf model with the `to_ltlf2dfa_backend` and `to_lydia_backend` methods. The default backend is Lydia.\n", "\n", "For speeding up the computation, the `run` method takes as input the integer parameter `jobs` that sets the number of processes to run in parallel. Each process considers a portion of the input event log. The default value of the number of jobs is 1. Note that, with small logs (i.e., with a small number of events) the performance with multiple jobs can be comparable with the ones of a single job.\n", "\n", "We show an example of LTLf conformance checking with the `F(ER Triage)` formula." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from Declare4Py.ProcessModels.LTLModel import LTLModel\n", "from Declare4Py.ProcessMiningTasks.ConformanceChecking.LTLAnalyzer import LTLAnalyzer\n", "\n", "model = LTLModel()\n", "model.parse_from_string(\"F(CRP)\")\n", "\n", "analyzer = LTLAnalyzer(event_log, model)\n", "conf_check_res_df = analyzer.run(jobs=2)\n", "conf_check_res_df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Conformance Checking with LTLf Templates\n", "\n", "Declare4Py offers some LTLf templates in the `src.Declare4Py.ProcessModels.LTLModel.LTLTemplate` class. You just need to instantiate a single template by passing the template name to the `LTLTemplate` class and then filling the template with some proper activites to obtain an `LTLModel` and run the LTL checker.\n", "\n", "The `LTLTemplate`'s function `fill_template` expects a list with the parameters equal to those expected by the template and a list of attribute types and returns an `LTLModel` object containing the parsed formula of the template and the list of attribute types. The LTLf formula of the template can be retrieved by accessing the `formula` attribute of the `LTLModel` object.\n", "\n", "### `eventually_a`\n", "\n", "This is a unary template taking one activity as input. The corresponding LTLf formula is `F(a)`." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Formula: F(con_crp)\n" ] }, { "data": { "text/html": [ "
| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "True | \n", "
| 1 | \n", "B | \n", "True | \n", "
| 2 | \n", "C | \n", "True | \n", "
| 3 | \n", "D | \n", "True | \n", "
| 4 | \n", "E | \n", "True | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "True | \n", "
| 1046 | \n", "INA | \n", "False | \n", "
| 1047 | \n", "JNA | \n", "False | \n", "
| 1048 | \n", "KNA | \n", "True | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "True | \n", "
| 2 | \n", "C | \n", "True | \n", "
| 3 | \n", "D | \n", "True | \n", "
| 4 | \n", "E | \n", "True | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "True | \n", "
| 1046 | \n", "INA | \n", "True | \n", "
| 1047 | \n", "JNA | \n", "True | \n", "
| 1048 | \n", "KNA | \n", "True | \n", "
| 1049 | \n", "LNA | \n", "True | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "True | \n", "
| 1 | \n", "B | \n", "True | \n", "
| 2 | \n", "C | \n", "True | \n", "
| 3 | \n", "D | \n", "True | \n", "
| 4 | \n", "E | \n", "True | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "True | \n", "
| 1046 | \n", "INA | \n", "False | \n", "
| 1047 | \n", "JNA | \n", "False | \n", "
| 1048 | \n", "KNA | \n", "True | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "True | \n", "
| 1 | \n", "B | \n", "True | \n", "
| 2 | \n", "C | \n", "True | \n", "
| 3 | \n", "D | \n", "True | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "True | \n", "
| 1046 | \n", "INA | \n", "False | \n", "
| 1047 | \n", "JNA | \n", "False | \n", "
| 1048 | \n", "KNA | \n", "True | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "True | \n", "
| 1 | \n", "B | \n", "True | \n", "
| 2 | \n", "C | \n", "True | \n", "
| 3 | \n", "D | \n", "True | \n", "
| 4 | \n", "E | \n", "True | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "True | \n", "
| 1046 | \n", "INA | \n", "False | \n", "
| 1047 | \n", "JNA | \n", "False | \n", "
| 1048 | \n", "KNA | \n", "True | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "True | \n", "
| 1 | \n", "B | \n", "False | \n", "
| 2 | \n", "C | \n", "True | \n", "
| 3 | \n", "D | \n", "True | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "True | \n", "
| 1046 | \n", "INA | \n", "False | \n", "
| 1047 | \n", "JNA | \n", "False | \n", "
| 1048 | \n", "KNA | \n", "True | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "True | \n", "
| 1 | \n", "B | \n", "True | \n", "
| 2 | \n", "C | \n", "True | \n", "
| 3 | \n", "D | \n", "True | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "True | \n", "
| 1046 | \n", "INA | \n", "False | \n", "
| 1047 | \n", "JNA | \n", "False | \n", "
| 1048 | \n", "KNA | \n", "True | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "False | \n", "
| 2 | \n", "C | \n", "False | \n", "
| 3 | \n", "D | \n", "False | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "False | \n", "
| 1046 | \n", "INA | \n", "False | \n", "
| 1047 | \n", "JNA | \n", "False | \n", "
| 1048 | \n", "KNA | \n", "False | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "True | \n", "
| 1 | \n", "B | \n", "True | \n", "
| 2 | \n", "C | \n", "True | \n", "
| 3 | \n", "D | \n", "True | \n", "
| 4 | \n", "E | \n", "True | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "True | \n", "
| 1046 | \n", "INA | \n", "True | \n", "
| 1047 | \n", "JNA | \n", "True | \n", "
| 1048 | \n", "KNA | \n", "True | \n", "
| 1049 | \n", "LNA | \n", "True | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "True | \n", "
| 2 | \n", "C | \n", "True | \n", "
| 3 | \n", "D | \n", "True | \n", "
| 4 | \n", "E | \n", "True | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "True | \n", "
| 1046 | \n", "INA | \n", "True | \n", "
| 1047 | \n", "JNA | \n", "True | \n", "
| 1048 | \n", "KNA | \n", "True | \n", "
| 1049 | \n", "LNA | \n", "True | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "False | \n", "
| 2 | \n", "C | \n", "True | \n", "
| 3 | \n", "D | \n", "True | \n", "
| 4 | \n", "E | \n", "True | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "True | \n", "
| 1046 | \n", "INA | \n", "True | \n", "
| 1047 | \n", "JNA | \n", "True | \n", "
| 1048 | \n", "KNA | \n", "True | \n", "
| 1049 | \n", "LNA | \n", "True | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "False | \n", "
| 2 | \n", "C | \n", "False | \n", "
| 3 | \n", "D | \n", "False | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "False | \n", "
| 1046 | \n", "INA | \n", "False | \n", "
| 1047 | \n", "JNA | \n", "False | \n", "
| 1048 | \n", "KNA | \n", "False | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "False | \n", "
| 2 | \n", "C | \n", "False | \n", "
| 3 | \n", "D | \n", "False | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "False | \n", "
| 1046 | \n", "INA | \n", "False | \n", "
| 1047 | \n", "JNA | \n", "False | \n", "
| 1048 | \n", "KNA | \n", "False | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "False | \n", "
| 2 | \n", "C | \n", "False | \n", "
| 3 | \n", "D | \n", "False | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "False | \n", "
| 1046 | \n", "INA | \n", "True | \n", "
| 1047 | \n", "JNA | \n", "True | \n", "
| 1048 | \n", "KNA | \n", "False | \n", "
| 1049 | \n", "LNA | \n", "True | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "True | \n", "
| 1 | \n", "B | \n", "True | \n", "
| 2 | \n", "C | \n", "True | \n", "
| 3 | \n", "D | \n", "False | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "True | \n", "
| 1046 | \n", "INA | \n", "False | \n", "
| 1047 | \n", "JNA | \n", "False | \n", "
| 1048 | \n", "KNA | \n", "True | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "True | \n", "
| 1 | \n", "B | \n", "False | \n", "
| 2 | \n", "C | \n", "False | \n", "
| 3 | \n", "D | \n", "False | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "False | \n", "
| 1046 | \n", "INA | \n", "False | \n", "
| 1047 | \n", "JNA | \n", "False | \n", "
| 1048 | \n", "KNA | \n", "False | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "True | \n", "
| 1 | \n", "B | \n", "True | \n", "
| 2 | \n", "C | \n", "False | \n", "
| 3 | \n", "D | \n", "True | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "False | \n", "
| 1046 | \n", "INA | \n", "False | \n", "
| 1047 | \n", "JNA | \n", "False | \n", "
| 1048 | \n", "KNA | \n", "False | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "True | \n", "
| 1 | \n", "B | \n", "True | \n", "
| 2 | \n", "C | \n", "True | \n", "
| 3 | \n", "D | \n", "True | \n", "
| 4 | \n", "E | \n", "True | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "True | \n", "
| 1046 | \n", "INA | \n", "True | \n", "
| 1047 | \n", "JNA | \n", "True | \n", "
| 1048 | \n", "KNA | \n", "True | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "False | \n", "
| 2 | \n", "C | \n", "False | \n", "
| 3 | \n", "D | \n", "False | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "False | \n", "
| 1046 | \n", "INA | \n", "False | \n", "
| 1047 | \n", "JNA | \n", "False | \n", "
| 1048 | \n", "KNA | \n", "False | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "False | \n", "
| 2 | \n", "C | \n", "False | \n", "
| 3 | \n", "D | \n", "False | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "False | \n", "
| 1046 | \n", "INA | \n", "False | \n", "
| 1047 | \n", "JNA | \n", "False | \n", "
| 1048 | \n", "KNA | \n", "False | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "False | \n", "
| 2 | \n", "C | \n", "False | \n", "
| 3 | \n", "D | \n", "False | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "False | \n", "
| 1046 | \n", "INA | \n", "False | \n", "
| 1047 | \n", "JNA | \n", "False | \n", "
| 1048 | \n", "KNA | \n", "False | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "False | \n", "
| 2 | \n", "C | \n", "False | \n", "
| 3 | \n", "D | \n", "False | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "False | \n", "
| 1046 | \n", "INA | \n", "False | \n", "
| 1047 | \n", "JNA | \n", "False | \n", "
| 1048 | \n", "KNA | \n", "False | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "True | \n", "
| 1 | \n", "B | \n", "True | \n", "
| 2 | \n", "C | \n", "True | \n", "
| 3 | \n", "D | \n", "True | \n", "
| 4 | \n", "E | \n", "True | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "True | \n", "
| 1046 | \n", "INA | \n", "True | \n", "
| 1047 | \n", "JNA | \n", "True | \n", "
| 1048 | \n", "KNA | \n", "True | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "True | \n", "
| 1 | \n", "B | \n", "True | \n", "
| 2 | \n", "C | \n", "True | \n", "
| 3 | \n", "D | \n", "True | \n", "
| 4 | \n", "E | \n", "True | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "True | \n", "
| 1046 | \n", "INA | \n", "True | \n", "
| 1047 | \n", "JNA | \n", "True | \n", "
| 1048 | \n", "KNA | \n", "True | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "True | \n", "
| 2 | \n", "C | \n", "True | \n", "
| 3 | \n", "D | \n", "True | \n", "
| 4 | \n", "E | \n", "True | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "True | \n", "
| 1046 | \n", "INA | \n", "True | \n", "
| 1047 | \n", "JNA | \n", "True | \n", "
| 1048 | \n", "KNA | \n", "True | \n", "
| 1049 | \n", "LNA | \n", "True | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "False | \n", "
| 2 | \n", "C | \n", "False | \n", "
| 3 | \n", "D | \n", "False | \n", "
| 4 | \n", "E | \n", "True | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "False | \n", "
| 1046 | \n", "INA | \n", "True | \n", "
| 1047 | \n", "JNA | \n", "True | \n", "
| 1048 | \n", "KNA | \n", "False | \n", "
| 1049 | \n", "LNA | \n", "True | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "True | \n", "
| 1 | \n", "B | \n", "True | \n", "
| 2 | \n", "C | \n", "True | \n", "
| 3 | \n", "D | \n", "True | \n", "
| 4 | \n", "E | \n", "True | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "True | \n", "
| 1046 | \n", "INA | \n", "False | \n", "
| 1047 | \n", "JNA | \n", "False | \n", "
| 1048 | \n", "KNA | \n", "True | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "False | \n", "
| 2 | \n", "C | \n", "False | \n", "
| 3 | \n", "D | \n", "False | \n", "
| 4 | \n", "E | \n", "True | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "False | \n", "
| 1046 | \n", "INA | \n", "True | \n", "
| 1047 | \n", "JNA | \n", "True | \n", "
| 1048 | \n", "KNA | \n", "False | \n", "
| 1049 | \n", "LNA | \n", "True | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "False | \n", "
| 2 | \n", "C | \n", "False | \n", "
| 3 | \n", "D | \n", "False | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "False | \n", "
| 1046 | \n", "INA | \n", "True | \n", "
| 1047 | \n", "JNA | \n", "True | \n", "
| 1048 | \n", "KNA | \n", "False | \n", "
| 1049 | \n", "LNA | \n", "True | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "False | \n", "
| 2 | \n", "C | \n", "False | \n", "
| 3 | \n", "D | \n", "False | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "False | \n", "
| 1046 | \n", "INA | \n", "True | \n", "
| 1047 | \n", "JNA | \n", "True | \n", "
| 1048 | \n", "KNA | \n", "False | \n", "
| 1049 | \n", "LNA | \n", "True | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "True | \n", "
| 1 | \n", "B | \n", "True | \n", "
| 2 | \n", "C | \n", "True | \n", "
| 3 | \n", "D | \n", "True | \n", "
| 4 | \n", "E | \n", "True | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "True | \n", "
| 1046 | \n", "INA | \n", "False | \n", "
| 1047 | \n", "JNA | \n", "False | \n", "
| 1048 | \n", "KNA | \n", "True | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "False | \n", "
| 2 | \n", "C | \n", "False | \n", "
| 3 | \n", "D | \n", "False | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "False | \n", "
| 1046 | \n", "INA | \n", "True | \n", "
| 1047 | \n", "JNA | \n", "True | \n", "
| 1048 | \n", "KNA | \n", "False | \n", "
| 1049 | \n", "LNA | \n", "True | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "False | \n", "
| 2 | \n", "C | \n", "False | \n", "
| 3 | \n", "D | \n", "False | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "False | \n", "
| 1046 | \n", "INA | \n", "True | \n", "
| 1047 | \n", "JNA | \n", "True | \n", "
| 1048 | \n", "KNA | \n", "False | \n", "
| 1049 | \n", "LNA | \n", "True | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "False | \n", "
| 2 | \n", "C | \n", "False | \n", "
| 3 | \n", "D | \n", "False | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "False | \n", "
| 1046 | \n", "INA | \n", "True | \n", "
| 1047 | \n", "JNA | \n", "True | \n", "
| 1048 | \n", "KNA | \n", "False | \n", "
| 1049 | \n", "LNA | \n", "True | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "False | \n", "
| 2 | \n", "C | \n", "False | \n", "
| 3 | \n", "D | \n", "False | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "False | \n", "
| 1046 | \n", "INA | \n", "False | \n", "
| 1047 | \n", "JNA | \n", "False | \n", "
| 1048 | \n", "KNA | \n", "False | \n", "
| 1049 | \n", "LNA | \n", "False | \n", "
1050 rows × 2 columns
\n", "| \n", " | case:concept:name | \n", "accepted | \n", "
|---|---|---|
| 0 | \n", "A | \n", "False | \n", "
| 1 | \n", "B | \n", "False | \n", "
| 2 | \n", "C | \n", "False | \n", "
| 3 | \n", "D | \n", "False | \n", "
| 4 | \n", "E | \n", "False | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1045 | \n", "HNA | \n", "False | \n", "
| 1046 | \n", "INA | \n", "True | \n", "
| 1047 | \n", "JNA | \n", "True | \n", "
| 1048 | \n", "KNA | \n", "False | \n", "
| 1049 | \n", "LNA | \n", "True | \n", "
1050 rows × 2 columns
\n", "