To prevent spam users, you can only post on this forum after registration, which is by invitation. If you want to post on the forum, please send me a mail (h DOT m DOT w DOT verbeek AT tue DOT nl) and I'll send you an invitation in return for an account.
Problem with the import
Hello Everybody,
I have a problem with the libraries in org.processmining.framework.log.
When I import for instance the followings:
It doesn't recognize them and I tried to solve the problem but no vain.
Could anyone help me solve this problem? Thank you
I have a problem with the libraries in org.processmining.framework.log.
When I import for instance the followings:
import org.processmining.framework.log.LogReader;
import org.processmining.framework.log.AuditTrailEntry;
import org.processmining.framework.log.AuditTrailEntryList;
import org.processmining.framework.log.LogEvent;
It doesn't recognize them and I tried to solve the problem but no vain.
Could anyone help me solve this problem? Thank you
Comments
-
It seems some package is missing. You can remove these lines if they are not useful. Otherwise, you have to find the package containing these files and add the package in the "Build Path".Guangming Li
PhD student in Process Mining at Eindhoven University of Technology -
thank u for the reply.
org.processmining.framework is in the package ProM, however it doesn't contain org.processmining.framework.log.
Many Packages imported org.processmining.framework.log.* for LogReader, LogEvent, ProcessInstance...
But I couldn't find this package to add it to the build path -
It seems these files (org.processmining.framework.log.* for LogReader, LogEvent, ProcessInstance) are quite old. These files can be found at https://findusages.com/repository/RPvK2JZ9NFD9DV9ModEWXfpR?file=src/org/processmining/framework/log/LogEvent.java, which are not wrapped as a package.
I do not know what you want to do based on these files. If you want to use some functions related to "log", you can refer to the library OpenXES, which contains abundant functions related to "log".Guangming Li
PhD student in Process Mining at Eindhoven University of Technology -
Thank you
I really appreciate your help.
I would like to use AuditTrailEntryList like for example:ArrayList<Integer> traceTask = new ArrayList<Integer>();
for (XTrace processInstance: log)
{
AuditTrailEntryList ateList = processInstance.getAuditTrailEntryList();
AuditTrailEntryList can be imported from org.processmining.framework.log.* but since you said it is old and those files are not wrapped as a package, do you have any idea of by which can I replace ''AuditTrailEntryList'' or a package from which I can import it? -
Hi rbigui,
This function "getAuditTrailEntryList()" is used to read the event list of a trace in the context of "mxml" logs as shown in the above figure.
Current, the commonly used log format is "XES" as shown in the figure below.
If not necessary, it is better to use the "XES" log format and all its related functions are in the library OpenXES (e.g., import org.deckfour.xes.model.XEvent;import org.deckfour.xes.model.XLog;import org.deckfour.xes.model.XTrace;).
The possible usage for your situation is like
XTrace trace = log.get(i) to get a trace from a log and XEvent event = trace.get(j) to get a event from a trace.Guangming Li
PhD student in Process Mining at Eindhoven University of Technology -
Hi ^^
Thank you so much for your clarification and help. I didn't know the AuditTrailEntry is only in MXML. Thank youu for the clarification.
Based on your help, I tried to replace the usage of AuditTrailEntry to use OpenXES libraries, but I got some few errors. Could you please help me solve these errors. The errors are struck through in the code.
If the log contains the followings traces {1=<..axycdb..>, 2=<..acdxyb..>, 3=<..axcydb..>, 4=<..acdb..>}. x, y are in parallel with c and d.
I want the code to look for the trace number 4 <..acdb..> which contains only c and d between a and b and no appearance of x and y in this trace.
{c , d} are represented in the code by tasks (HashSet<Integer> tasks)
This is the code:private boolean checkExistPath(int a, int b, HashSet<Integer> tasks, XLog log, XTrace trace, ArrayList<XTrace> selectedTrace, ArrayList<Integer> selectedInterfereTask) {
int nostart = 0;
int started = 1;
int end = 2;
ArrayList<Integer> traceTask = new ArrayList<Integer>();
for (int i=0; i<log.size(); i++) {
for (XTrace t: log){
List<Event> eventList = trace.getEventsList();
int tag = nostart;
traceTask.clear(); //in each trace
for (int j=0; j<eventList.size(); j++){
try {
String positionName = eventList.get(j).toString();
int position = -1;
for (int r=0; r<relations.getNumberElements(); r++)
if (relations.getLogEvents().get(r).getModelElementName().equals(positionName))
{
position = r;
break;
}
if (position == -1)
continue;
if (position == a)
{
tag = started;
}
else if(tag == started && position == b)
{
tag = end;
}
else if (tag == started && !tasks.contains(position))
{
tag = nostart;
traceTask.clear();
}
else if (tag == started && tasks.contains(position))
{
traceTask.add(position);
}
}
catch (IndexOutOfBoundsException | IOException e)
{
e.printStackTrace();
}
}
if (tag == end)
{
selectedTrace.add(t);
selectedInterfereTask.addAll(traceTask);
}
}
if (selectedTrace.size()>0)
return true;
return false;
}
}
I am looking for your help and thank you -
Hi rbigui,
This is a Java "code" quetion rather than a "process mining" question. I think you can serach the usage realted to the Java "list" class online to solve your problem.Guangming Li
PhD student in Process Mining at Eindhoven University of Technology
Howdy, Stranger!
Categories
- 1.6K All Categories
- 45 Announcements / News
- 225 Process Mining
- 6 - BPI Challenge 2020
- 9 - BPI Challenge 2019
- 24 - BPI Challenge 2018
- 27 - BPI Challenge 2017
- 8 - BPI Challenge 2016
- 68 Research
- 1K ProM 6
- 393 - Usage
- 287 - Development
- 9 RapidProM
- 1 - Usage
- 7 - Development
- 54 ProM5
- 19 - Usage
- 187 Event Logs
- 32 - ProMimport
- 75 - XESame