Semantic Web Services Ingestion in a Process Mining Framework
Abstract
:1. Introduction
2. Related Works
3. The Context
- Discovery: this is the most important goal; it allows a process model to be learned from event logs, without the use of additional a priori knowledge;
- Conformance: the model (discovered or hand-built) is compared with the event log in order to detect any differences between modelled and actual behaviours;
- Enhancement: here, the goal is to extend and improve the model using information about the actual process recorded in the event logs.
3.1. The WoMan Framework
- T is the unique timestamp of the event;
- E is the type of the event (begin_process, end_process, begin_activity, end_activity or context_description);
- W is the name of the workflow to which the process refers;
- P is the unique identifier for each process execution;
- A is the name of the activity;
- O is the sequence number of occurrence of the activity in the process;
- R specifies the agent who completes activity A (optional).
Listing 1. Example of a Process Case whit two traces. |
… entry(34,begin_of_process,afternoon,2,start,0). entry(35,begin_of_activity,afternoon,2,housekeeping,1). entry(36,end_of_activity,afternoon,2,housekeeping,1). entry(37,begin_of_activity,afternoon,2,relax,1). entry(38,end_of_activity,afternoon,2,relax,1). entry(39,begin_of_activity,afternoon,2,toilet,1). entry(40,end_of_activity,afternoon,2,toilet,1). entry(41,begin_of_activity,afternoon,2,dress,1). entry(42,end_of_activity,afternoon,2,dress,1). entry(43,begin_of_activity,afternoon,2,out,1). entry(44,end_of_activity,afternoon,2,out,1). entry(46,end_of_process,afternoon,2,stop,1). entry(47,begin_of_process,afternoon,3,start,0). entry(48,begin_of_activity,afternoon,3,housekeeping,1). entry(49,end_of_activity,afternoon,3,housekeeping,1). entry(50,begin_of_activity,afternoon,3,toilet,1). entry(51,end_of_activity,afternoon,3,toilet,1). entry(52,begin_of_activity,afternoon,3,relax,1). entry(53,end_of_activity,afternoon,3,relax,1). entry(54,begin_of_activity,afternoon,3,coffee,1). entry(55,end_of_activity,afternoon,3,coffee,1). entry(56,begin_of_activity,afternoon,3,dress,1). entry(57,end_of_activity,afternoon,3,dress,1). entry(58,begin_of_activity,afternoon,3,out,1). entry(59,end_of_activity,afternoon,3,out,1). entry(61,end_of_process,afternoon,3,stop,1). … |
- —the task t is present in the training cases;
- —the t transition, present in training cases, is enabled if all input tasks in I are active; if executed (fired), the execution of all tasks in I (in any order) is stopped and the execution of all tasks in O (again, in any order) is started. I and O can be a multi-set.
- : a transition t, comprising the input tasks in I, is activated if each task in I is produced as the output of a transition , where are placeholders (variables) to be interpreted according to the assumption that “terms denoted by different symbols must be distinct”. Multiple combinations are allowed, numbered with a progressive value of q, from the cases in .
- : an agent with role A, can perform the task t;
- : the transition t, which includes input tasks in I and output tasks in O, can take place if each task in I is completed by an agent with role and each task in O is completed by an agent with role . Multiple combinations are allowed; they are numbered with a sequential value q, starting with the cases .
- : the task t must begin at time and end at time , with an average duration equal to d;
- : the transition t must begin at time and end at time , with an average duration equal to d (from the beginning of the first task in I to the end of the last task in O), and requires an average time gap equal to g, between the end of the last task in I and the activation of the first task in O;
- : the task t, when executed in the transition p, must begin at time and must end at time , with an average duration equal to d;
- : the task t must begin at step and must end at step , with an average number of steps equal to d;
- : the transition t must begin at step and end at step , with an average number of steps equal to d (from the step of the first task in I to the step of the last task in O) and requires an average gap equal to g steps between the end of the last task in I and the activation of the first task in O;
- : the task t, when executed in the transition p, must begin at step and end at step , with an average number of steps equal to d;
- that is, an activity A, of type T can be executed by an agent R, at the step S of executing a case if the body of the rule is satisfied;
- a transition P can be executed at the S step of the execution of a case if the body of the rule is satisfied;
- i.e., an activity A, of type T can be executed by an agent R, in the context of a transition P at the step S of executing a case if the body of the rule is satisfied;
- : at step s, the task t is executed.
- : step follows step after a number of steps between and and after a time between and .
3.2. The Semantic Web
- Uniform Resource Identifier (URI): provides the means to uniquely identify Semantic Web resources. It has been generalised by the Internationalized Resource Identifier (IRI), which extends the set of characters allowed in resource address specifications.
- eXtensible Markup Language (XML): provides the elementary syntax for structuring content within documents. It does not yet associate any kind of semantics with content.
- Resource Description Framework (RDF): is a very simple language for describing web resources and relationships in the form of subject-predicate-object triples.
- RDF Schema: extends RDF and its vocabulary, adding a semantic layer for hierarchies formed from RDF classes and properties.
- Web Ontology Language (OWL): this is a family of languages suitable for representing knowledge in ontological terms. It augments the vocabulary of the RDF substrate with new properties and classes: for example, relations between classes, the concept of cardinality, equality, characteristics of properties (e.g., symmetry), and enumerative classes are introduced. From OWL, several dialects and derivations (e.g., OWL-Lite, OWL-DL, and OWL-Full) are derived, with goals more focused on their context of use. In 2012, OWL 2 was released; it extended OWL with a small but useful set of features for which effective reasoning algorithms are now available, and those OWL tool developers are willing to support them. The new features include extra syntactic sugar, additional property and qualified cardinality constructors, extended datatype support, simple meta-modelling, and extended annotations. In any case, the trade-off remains among decidability and not fragments.
- Semantic Web Rule Language (SWRL): enriches OWL by allowing knowledge representation in the form of Horn-like clause-based rules.
- First-Order Logic: the abstract layer makes it possible to verify the trustworthiness of the information.
3.3. OWL for Services (OWL-S)
- Service Profile. It describes the functionality of a service for which it has an advertisement purpose. It is commonly used for the discovery of web services, as it provides different types of information. such as a list of functionalities, a list of service parameters, and a list of service categories.
- Service Model. It specifies how to use the service by describing the semantic content of the possible requests, the conditions to be fulfilled to obtain certain results and, if the services are complex, the process leading to those results. It is possible to define three types of Process: Atomic, a non-decomposable service that takes a request message and returns a message in response, Composite, which consists of a set of processes specified by a control structure that defines a workflow, and Simple, which represents the abstraction of a compound process that allows it to be seen as an atomic process.
- Service Grounding. This specifies the link from the semantic to the concrete (WSDL) description of the elements that are needed to interact with the service. Thus, the communication protocol, the format in which the message is written, and other useful details are indicated.
3.4. Semantic Web Rule Language (SWRL)
- Class: defines a group of individuals that have certain properties in common. For example, Michael and Joan are both members of the class Person. Classes can be organised into specialisation hierarchies using the subClassOf axiom. In addition, there is a predefined class called Thing that is the superclass of all others, while its counterpart Nothing is a subclass of every OWL class.
- Property: defines a relationship between two individuals (owl:ObjectProperty) or between an individual and a datum (owl:DatatypeProperty). Examples of the first case include properties such as hasChild, hasRelative or hasSibling that establish kinship relationships between people (individuals). An example of the second case might be the hasAge property that validates the age (numeric datum) of a single person (individual). In addition, the domain of a property and its value range can be specified: the former limits the individuals to which the property can be applied, while the latter identifies the set of individuals that the property can have as its value.
- Individual: is an instance of a class or an object of a property. For example, an individual Francesca can be described as an instance of the class Person and the hasEmployer property can be used to bind Francesca to the individual StanfordUniversity itself an instance of a more generic class University.
rule | ::= | ’Implies(’ [ URIreference ] annotation antecedent consequent ’)’ |
antecedent | ::= | ’Antecedent(’ atom ’)’ |
consequent | ::= | ’Consequent(’ atom ’)’ |
atom | ::= | description ’(’ i-obj ’)’ | dataRange ’(’ d-obj ’)’ | |
individualvaluedPropertyID ’(’ i-obj i-obj ’)’ | | ||
datavaluedPropertyID ’(’ i-obj d-obj ’)’ | | ||
sameAs ’(’ i-obj i-obj ’)’ | differentFrom ’(’ i-obj i-obj ’)’ | | ||
builtIn ’(’ builtinID d-obj ’)’ | ||
builtinID | ::= | URIreference |
Listing 2. Example of SWRL rule representation in RDF syntax. |
<swrl:Variable rdf:ID="x1"/> <swrl:Variable rdf:ID="x2"/> <swrl:Variable rdf:ID="x3"/> <swrl:Imp> <swrl:body rdf:parseType="Collection"> <swrl:IndividualPropertyAtom> <swrl:propertyPredicate rdf:resource="uri:hasParent"/> <swrl:argument1 rdf:resource="#x1" /> <swrl:argument2 rdf:resource="#x2" /> </swrl:IndividualPropertyAtom> <swrl:IndividualPropertyAtom> <swrl:propertyPredicate rdf:resource="uri:hasSibling"/> <swrl:argument1 rdf:resource="#x2" /> <swrl:argument2 rdf:resource="#x3" /> </swrl:IndividualPropertyAtom> <swrl:IndividualPropertyAtom> <swrl:propertyPredicate rdf:resource="uri:hasSex"/> <swrl:argument1 rdf:resource="#x3" /> <swrl:argument2 rdf:resource="#male" /> </swrl:IndividualPropertyAtom> </swrl:body> <swrl:head rdf:parseType="Collection"> <swrl:IndividualPropertyAtom> <swrl:propertyPredicate rdf:resource="uri:hasUncle"/> <swrl:argument1 rdf:resource="#x1" /> <swrl:argument2 rdf:resource="#x3" /> </swrl:IndividualPropertyAtom> </swrl:head> </swrl:Imp> |
3.5. Composing OWL-S Process Encoded as SWRL Rules
- For each result of the process, there is an inCondition that expresses the link between the input and the result. This inCondition will appear in the body of each resulting rule, while the Result will appear in the head. An inCondition is valid if it contains all the variables that appear in the Result.
- If the result contains an effect composed of several atoms, the rule will be split into as many rules as there are atoms with an inCondition in the body and a single atom in the head.
- The PreConditions, since they involve only the Inputs, will appear in the body of each resulting rule together with the inConditions.
3.6. Restrictions in the Use of SWRL
4. Mapping Specification
4.1. Formal Specification of the Problem
- The head of each rule is composed of a ClassAtom SWRL belonging to an OWL class, representing an output to ∈ O of the transition. In fact, to facilitate service composition, each rule that has a consequence consisting of a conjunction of several elements must be transformed into several rules with an atomic consequent, as many as there are elements in conjunction in the consequent of the source rule (via Lloyd–Topor transformation, as explained in Section 3.5).
- The body of each rule consists of two basic parts: the first contains the ClassAtom SWRLs (each belonging to an OWL class) representing the input elements ti ∈ I of the transition; the second includes the OWL properties that refer to the different preconditions related to the task to, the transition p and the task to in the context of the transition p. In addition, the body also includes a fixed OWL property named hasTransf, which binds the first task ti to the output to, to respect the safety condition.
Algorithm 1 Mapping SWRL in WoMan |
for all transition(I, O, p, Cp) ∈ W do for all task(tO, Ct) ∈ O do for all combinationCo ∈ C Generate a rule S such that do end for end for end for |
Listing 3. An example of workflow learned by WoMan. |
task(start,[1-1]). task(housekeeping,[1-3]). task(prepare_snack,[1-1]). transition([start]-[housekeeping],p1,[1-1]). transition([housekeeping]-[prepare_snack],p16,[1-1]). actpreparesnack(A,B):-activity(C,X,B),agent(B),next(A,C). |
Listing 4. SWRL rules obtained from the WoMan workflow of Listing 3. |
<swrl:Imp rdf:ID="Rulep11"> <swrl:body parseType="Collection"> <swrl:IndividualPropertyAtom> <swrl:propertyPredicate rdf:resource="uri:hasTransf"/> <swrl:argument1 rdf:resource="#start"/> <swrl:argument2 rdf:resource="#housekeeping"/> </swrl:IndividualPropertyAtom> <swrl:ClassAtom> <swrl:classPredicate rdf:resource="uri:Start"/> <swrl:argument1 rdf:resource="#start"/> </swrl:ClassAtom> </swrl:body> <swrl:head parseType="Collection"> <swrl:ClassAtom> <swrl:classPredicate rdf:resource="uri:HouseKeeping"/> <swrl:argument1 rdf:resource="#housekeeping"/> </swrl:ClassAtom> </swrl:head> </swrl:Imp> <swrl:Imp rdf:ID="Rulep161"> <swrl:body parseType="Collection"> <swrl:IndividualPropertyAtom> <swrl:propertyPredicate rdf:resource="uri:hasTransf"/> <swrl:argument1 rdf:resource="#housekeeping"/> <swrl:argument2 rdf:resource="#preparesnack"/> </swrl:IndividualPropertyAtom> <swrl:IndividualPropertyAtom> <swrl:propertyPredicate rdf:resource="uri:PreTask"/> <swrl:argument1 rdf:resource="#x0"/> <swrl:argument2 rdf:resource="#x1"/> </swrl:IndividualPropertyAtom> <swrl:ClassAtom> <swrl:classPredicate rdf:resource="uri:Activity"/> <swrl:argument1 rdf:resource="#activity"/> </swrl:ClassAtom> <swrl:IndividualPropertyAtom> <swrl:propertyPredicate rdf:resource="uri:hasStep"/> <swrl:argument1 rdf:resource="#x2"/> <swrl:argument2 rdf:resource="#activity"/> </swrl:IndividualPropertyAtom> <swrl:IndividualPropertyAtom> <swrl:propertyPredicate rdf:resource="uri:hasActivity"/> <swrl:argument1 rdf:resource="#x3"/> <swrl:argument2 rdf:resource="#activity"/> </swrl:IndividualPropertyAtom> <swrl:IndividualPropertyAtom> <swrl:propertyPredicate rdf:resource="uri:hasAgent"/> <swrl:argument1 rdf:resource="#x1"/> <swrl:argument2 rdf:resource="#activity"/> </swrl:IndividualPropertyAtom> <swrl:ClassAtom> <swrl:classPredicate rdf:resource="uri:Agent"/> <swrl:argument1 rdf:resource="#x1"/> </swrl:ClassAtom> <swrl:IndividualPropertyAtom> <swrl:propertyPredicate rdf:resource="uri:Next"/> <swrl:argument1 rdf:resource="#x0"/> <swrl:argument2 rdf:resource="#x2"/> </swrl:IndividualPropertyAtom> <swrl:ClassAtom> <swrl:classPredicate rdf:resource="uri:HouseKeeping"/> <swrl:argument1 rdf:resource="#housekeeping"/> </swrl:ClassAtom> </swrl:body> <swrl:head parseType="Collection"> <swrl:ClassAtom> <swrl:classPredicate rdf:resource="uri:PrepareSnack"/> <swrl:argument1 rdf:resource="#preparesnack"/> </swrl:ClassAtom> </swrl:head> </swrl:Imp> |
4.2. Using of Ontologies
- PreTrans: identifies the correspondent of the WoMan predicate trans_T(S) concerning preconditions on transitions;
- PreTaskTrans: used in the decomposition of the ternary predicate act_T_in_trans_P(A,S,R) to indicate the preconditions related to a task in the context of a transition;
- AgentUndef is a predicate that recurs in preconditions; it indicates that the argument is an agent type that is not precisely defined.
- PreTask: corresponds to the predicate used as the head in the preconditions related to a task in WoMan;
- hasActivity: used in the decomposition of PreTaskTrans to indicate the relation with the argument A, relating to an activity;
- hasStep: used in the decomposition of PreTaskTrans to indicate the relationship with the S argument, relative to the execution step;
- hasAgent: used in the decomposition of PreTaskTrans to indicate the relationship with the R argument, relating to the agent performing the task;
- Next: the corresponding concept of the predicate next(,), which specifies the order relation between two distinct execution steps, whereby the first argument precedes the second.
- Start: is the counterpart of the task start, which is used as a placeholder to indicate the start of a process;
- Stop: is the counterpart of the task stop, which is used as a placeholder to indicate the end of a process;
- Task: is the superclass of any specific task within a workflow or application scenario. Since the test workflow concerns certain tasks typically carried out in-house, subclasses such as HouseKeeping, Tea and Dress have been defined.
4.3. Implementation
- Predicates Mapping: represents the core of the procedure, where the main predicates involved in the transformation process reside;
- Ontology Mapping: contains the associations between the names of tasks and predicates used in a workflow and the URIs of the resources of some OWL ontologies;
- Utilities: contains a set of more general utility predicates that are exploited by the Predicates Mapping part.
4.3.1. Predicates Mapping
- load_input(Path,VarList): takes care of reading the input files required for mapping. In particular, Path indicates the path to the workflow file from which the other three precondition files are derived, i.e., tasks, transitions and tasks in the context of transitions, respectively. All identified variables are stored in VarList;
- print_section_header(Path): uses the contents of an auxiliary file (named basicStub.txt ) as the output file header. It represents a standard header for an OWL/SWRL file and must contain the ontology references for all concepts that will appear in the rules. The choice to use an external file instead of implementing the same logic within the code stems from the need to facilitate the modification and addition of new ontologies in the output file header, which is highly dependent on the specific input workflow;
- print_section_variables(VarList): writes all previously recognised variables in one macro-block of the output file. As the variables read from the input files are identified by Prolog through its internal representation (e.g., 6789), each variable is appropriately renamed appending a numerical identifier (e.g., ×1, ×2, …×100, etc.).
- print_section_rules: generates one or more rules for each transition in the knowledge base and writes them to the output file.
- print_body(I,O,PreTasks,PreTransitions,PreTaskTransition): generates the body of a SWRL rule with the tasks in I and the preconditions specified in PreTask, PreTransitions and PreTaskTransition. As explained above, in the case in which several preconditions that can be associated with the same transition, a rule is created for each possible combination. Furthermore, to respect the safety condition, it adds a dummy property hasTransf that links the first element in I with the task in O.
- print_head(O): generates the head of the SWRL rule, turning the task in O into an ClassAtom OWL. It is important to note that for each rule, there is only one output element: if a transition has n tasks in O (n >1), these are decomposed to form n rules with identical input and atomic output.
4.3.2. Ontology Mapping
- task_ontology_map(<name task>, <URI>)
- predicate_ontology_map(<predicate name>, [<URI>list])
5. Evaluation
Listing 5. WoMan-learned model based on the Afternoon dataset. For simplicity, only the model transitions are reported. |
… transition([act_magazine,act_radio]-[stop],23). transition([act_eat_snack]-[act_magazine],24). transition([act_eat_snack,act_magazine]-[stop],26). transition([act_radio]-[act_magazine],27). transition([act_prepare_snack]-[act_eat_snack,act_radio],25). transition([act_tea]-[act_dress],22). transition([act_coffee]-[act_dress],15). transition([act_relax]-[act_toilet],14). transition([act_toilet]-[act_prepare_snack],16). transition([act_tea]-[act_toilet],17). transition([act_out]-[stop],1). transition([act_dress]-[act_out],2). transition([act_toilet]-[act_dress],3). transition([act_coffee]-[act_toilet],4). transition([act_housekeeping]-[act_relax],6). transition([act_eat_snack,act_magazine,act_radio]-[stop],8). transition([act_prepare_snack]-[act_eat_snack,act_magazine,act_radio],9). transition([act_magazine]-[act_radio],19). transition([act_prepare_snack]-[act_eat_snack,act_magazine],20). transition([act_tea]-[act_prepare_snack],10). transition([act_relax]-[act_tea],11). transition([act_eat_snack,act_radio]-[stop],18). transition([act_magazine]-[act_eat_snack],28). transition([act_prepare_snack]-[act_magazine,act_radio],29). transition([act_coffee]-[act_prepare_snack],21). transition([act_relax]-[act_coffee],5). transition([act_toilet]-[act_relax],12). transition([act_housekeeping]-[act_toilet],13). transition([start]-[act_housekeeping],7). … |
5.1. Mapping Analysis
- transition([act_prepare_snack]−[act_eat_snack,act_magazine,act_radio], 9)
- transition([act_prepare_snack]−[act_eat_snack,act_magazine], 20)
- act_eat_snack ← act_prepare_snack
- act_magazine ← act_prepare_snack
- act_radio ← act_prepare_snack
- act_eat_snack ← act_prepare_snack
- act_magazine ← act_prepare_snack
5.2. Analysis of the Compositions
- 27) hT(act_radio, act_magazine), act_radio → act_magazine
- 19) hT(act_magazine, act_radio), act_magazine → act_radio
Listing 6. List of input rules to the Composer, obtained as a result of mapping. The line number is the rule identifier of the related transition in the model learned from WoMan. SWRL atom variables were omitted for readability. |
23) act_magazine ∧ act_radio ∧ hT(act_magazine,stop) → stop 24) act_eat_snack ∧ hT(act_eat_snack,act_magazine) → act_magazine 26) act_eat_snack ∧ act_magazine ∧ hT(act_eat_snack,stop) → stop 27) act_radio ∧ hT(act_radio,act_magazine) → act_magazine 25.1) act_prepare_snack ∧ hT(act_prepare_snack,act_eat_snack) → act_eat_snack 25.2) act_prepare_snack ∧ hT(act_prepare_snack,act_radio) → act_radio 22) act_tea ∧ hT(act_tea,act_dress) → act_dress 15) act_coffee ∧ hT(act_coffee,act_dress) → act_dress 14) act_relax ∧ hT(act_relax,act_toilet) → act_toilet 16) act_toilet ∧ hT(act_toilet,act_prepare_snack) → act_prepare_snack 17) act_tea ∧ hT(act_tea,act_toilet) → act_toilet 1) act_out ∧ hT(act_out,stop) → stop 2) act_dress ∧ hT(act_dress,act_out) → act_out 3) act_toilet ∧ hT(act_toilet,act_dress) → act_dress 4) act_coffee ∧ hT(act_coffee,act_toilet) → act_toilet 6) act_housekeeping ∧ hT(act_housekeeping,act_relax) → act_relax 8) act_eat_snack ∧ act_magazine ∧ act_radio ∧ hT(act_eat_snack,stop) → stop 9.1) act_prepare_snack ∧ hT(act_prepare_snack,act_eat_snack) → act_eat_snack 9.2) act_prepare_snack ∧ hT(act_prepare_snack,act_magazine) → act_magazine 9.3) act_prepare_snack ∧ hT(act_prepare_snack,act_radio) → act_radio 19) act_magazine ∧ hT(act_magazine,act_radio) → act_radio 20.1) act_prepare_snack ∧ hT(act_prepare_snack,act_eat_snack) → act_eat_snack 20.2) act_prepare_snack ∧ hT(act_prepare_snack,act_magazine) → act_magazine 10) act_tea ∧ hT(act_tea,act_prepare_snack) → act_prepare_snack 11) act_relax ∧ hT(act_relax,act_tea) → act_tea 18) act_eat_snack ∧ act_radio ∧ hT(act_eat_snack,stop) → stop 28) act_magazine ∧ hT(act_magazine,act_eat_snack) → act_eat_snack 29.1) act_prepare_snack ∧ hT(act_prepare_snack,act_magazine) → act_magazine 29.2) act_prepare_snack ∧ hT(act_prepare_snack,act_radio) → act_radio 21) act_coffee ∧ hT(act_coffee,act_prepare_snack) → act_prepare_snack 5) act_relax ∧ hT(act_relax,act_coffee) → act_coffee 12) act_toilet ∧ hT(act_toilet,act_relax) → act_relax 13) act_housekeeping ∧ hT(act_housekeeping,act_toilet) → act_toilet 7) start ∧ hT(start,act_housekeeping) → act_housekeeping |
- task: an unknown task was detected;
- transition: a new transition was discovered;
- history: the case differs from the history of processes already analysed.
Listing 7. SWRL compositions starting from Rule 24. |
o:PrepareSnack(?prepare_snack) ∧ o:hT(?prepare_snack, ?eat_snack) → o:EatSnack(?eat_snack) o:Toilet(?toilet) ∧ o:hT(?toilet, ?prepare_snack) → o:PrepareSnack(?prepare_snack) o:Relax(?relax) ∧ o:hT(?relax, ?toilet) → o:Toilet(?toilet) o:HouseKeeping(?housekeeping) ∧ o:hT(?housekeeping, ?relax) → o:Relax(?relax) o:Start(?start) ∧ o:hT(?start, ?housekeeping) → o:HouseKeeping(?housekeeping) o:HouseKeeping(?housekeeping) ∧ o:hT(?housekeeping, ?toilet) → o:Toilet(?toilet) o:Start(?start) ∧ o:hT(?start, ?housekeeping) → o:HouseKeeping(?housekeeping) o:Coffee(?coffee) ∧ o:hT(?coffee, ?toilet) → o:Toilet(?toilet) o:Relax(?relax) ∧ o:hT(?relax, ?coffee) → o:Coffee(?coffee) o:HouseKeeping(?housekeeping) ∧ o:hT(?housekeeping, ?relax) → o:Relax(?relax) o:Start(?start) ∧ o:hT(?start, ?housekeeping) → o:HouseKeeping(?housekeeping) o:Tea(?tea) ∧ o:hT(?tea, ?toilet) → o:Toilet(?toilet) o:Relax(?relax) ∧ o:hT(?relax, ?tea) → o:Tea(?tea) o:HouseKeeping(?housekeeping) ∧ o:hT(?housekeeping, ?relax) → o:Relax(?relax) o:Start(?start) ∧ o:hT(?start, ?housekeeping) → o:HouseKeeping(?housekeeping) o:Tea(?tea) ∧ o:hT(?tea, ?prepare_snack) → o:PrepareSnack(?prepare_snack) o:Relax(?relax) ∧ o:hT(?relax, ?tea) → o:Tea(?tea) o:HouseKeeping(?housekeeping) ∧ o:hT(?housekeeping, ?relax) → o:Relax(?relax) o:Start(?start) ∧ o:hT(?start, ?housekeeping) → o:HouseKeeping(?housekeeping) o:Coffee(?coffee) ∧ o:hT(?coffee, ?prepare_snack) → o:PrepareSnack(?prepare_snack) o:Relax(?relax) ∧ o:hT(?relax, ?coffee) → o:Coffee(?coffee) o:HouseKeeping(?housekeeping) ∧ o:hT(?housekeeping, ?relax) → o:Relax(?relax) o:Start(?start) ∧ o:hT(?start, ?housekeeping) → o:HouseKeeping(?housekeeping) |
Listing 8. SWRL compositions starting from Rule 27. |
o:PrepareSnack(?prepare_snack) ∧ o:hT(?prepare_snack, ?radio) → o:Radio(?radio) o:Toilet(?toilet) ∧ o:hT(?toilet, ?prepare_snack) → o:PrepareSnack(?prepare_snack) o:Relax(?relax) ∧ o:hT(?relax, ?toilet) → o:Toilet(?toilet) o:HouseKeeping(?housekeeping) ∧ o:hT(?housekeeping, ?relax) → o:Relax(?relax) o:Start(?start) ∧ o:hT(?start, ?housekeeping) → o:HouseKeeping(?housekeeping) o:HouseKeeping(?housekeeping) ∧ o:hT(?housekeeping, ?toilet) → o:Toilet(?toilet) o:Start(?start) ∧ o:hT(?start, ?housekeeping) → o:HouseKeeping(?housekeeping) o:Coffee(?coffee) ∧ o:hT(?coffee, ?toilet) → o:Toilet(?toilet) o:Relax(?relax) ∧ o:hT(?relax, ?coffee) → o:Coffee(?coffee) o:HouseKeeping(?housekeeping) ∧ o:hT(?housekeeping, ?relax) → o:Relax(?relax) o:Start(?start) ∧ o:hT(?start, ?housekeeping) → o:HouseKeeping(?housekeeping) o:Tea(?tea) ∧ o:hT(?tea, ?toilet) → o:Toilet(?toilet) o:Relax(?relax) ∧ o:hT(?relax, ?tea) → o:Tea(?tea) o:HouseKeeping(?housekeeping) ∧ o:hT(?housekeeping, ?relax) → o:Relax(?relax) o:Start(?start) ∧ o:hT(?start, ?housekeeping) → o:HouseKeeping(?housekeeping) o:Tea(?tea) ∧ o:hT(?tea, ?prepare_snack) → o:PrepareSnack(?prepare_snack) o:Relax(?relax) ∧ o:hT(?relax, ?tea) → o:Tea(?tea) o:HouseKeeping(?housekeeping) ∧ o:hT(?housekeeping, ?relax) → o:Relax(?relax) o:Start(?start) ∧ o:hT(?start, ?housekeeping) → o:HouseKeeping(?housekeeping) o:Coffee(?coffee) ∧ o:hT(?coffee, ?prepare_snack) → o:PrepareSnack(?prepare_snack) o:Relax(?relax) ∧ o:hT(?relax, ?coffee) → o:Coffee(?coffee) o:HouseKeeping(?housekeeping) ∧ o:hT(?housekeeping, ?relax) → o:Relax(?relax) o:Start(?start) ∧ o:hT(?start, ?housekeeping) → o:HouseKeeping(?housekeeping) |
6. Conclusions and Outlook
Author Contributions
Funding
Data Availability Statement
Conflicts of Interest
Abbreviations
FOL | First-Order Logic. |
ILP | Inductive Logic Programming. |
BPM | Business process management. |
WFM | Workflow Management. |
PAIS | Process-aware information systems. |
BPMN | Business Process Management Notation. |
WSDL | Web Service Description Language. |
URI | Uniform Resource Location. |
XML | eXtensible Markup Language. |
RDF | Resource Description Framework. |
OWL | Web Ontology Language. |
OWL-S | OWL for services. |
SWRL | Semantic Web Rule Language. |
WoMan | Workflow Manager. |
References
- Van der Aalst, W.M.P. Business Process Management Demystified: A Tutorial on Models, Systems and Standards for Workflow Management; Springer: Berlin/Heidelberg, Germany, 2004. [Google Scholar] [CrossRef]
- Weske, M. Business Process Management: Concepts, Languages, Architectures; Springer: Berlin/Heidelberg, Germany, 2007. [Google Scholar] [CrossRef]
- Van der Aalst, W.M. Business process management: A comprehensive survey. Int. Sch. Res. Not. 2013, 2013, 507984. [Google Scholar] [CrossRef]
- Dumas, M.; van der Aalst, W.M.P.; ter Hofstede, A.H.M. (Eds.) Process-Aware Information Systems: Bridging People and Software Through Process Technology; Wiley: Hoboken, NJ, USA, 2005. [Google Scholar] [CrossRef]
- van der Aalst, W.M.P. Process Mining: Discovery, Conformance and Enhancement of Business Processes, 1st ed.; Springer Publishing Company: Berlin/Heidelberg, Germany, 2011. [Google Scholar]
- Hanga, K.M.; Kovalchuk, Y.; Gaber, M.M. A Graph-Based Approach to Interpreting Recurrent Neural Networks in Process Mining. IEEE Access 2020, 8, 172923–172938. [Google Scholar] [CrossRef]
- Yan, X.; She, D.; Xu, Y.; Jia, M. Deep regularized variational autoencoder for intelligent fault diagnosis of rotor–bearing system within entire life-cycle process. Knowl.-Based Syst. 2021, 226, 107142. [Google Scholar] [CrossRef]
- Yan, X.; She, D.; Xu, Y. Deep order-wavelet convolutional variational autoencoder for fault identification of rolling bearing under fluctuating speed conditions. Expert Syst. Appl. 2023, 216, 119479. [Google Scholar] [CrossRef]
- Bechhofer, S.; van Harmelen, F.; Hendler, J.; Horrocks, I.; McGuinness, D.; Patel-Schneijder, P.; Stein, L.A. OWL Web Ontology Language Reference. Recommendation, World Wide Web Consortium (W3C). 2004. Available online: http://www.w3.org/TR/owl-ref/ (accessed on 10 November 2023).
- OMG. Business Process Model and Notation (BPMN), Version 2.0; Technical Report; Object Management Group: Needham, MA, USA, 2011. [Google Scholar]
- Francescomarino, C.D.; Ghidini, C.; Rospocher, M.; Serafini, L.; Tonella, P. Semantically-Aided Business Process Modeling. In Proceedings of the Semantic Web—ISWC 2009, 8th International Semantic Web Conference, ISWC 2009, Chantilly, VA, USA, 25–29 October 2009; Bernstein, A., Karger, D.R., Heath, T., Feigenbaum, L., Maynard, D., Motta, E., Thirunarayan, K., Eds.; Springer: Berlin/Heidelberg, Germany, 2009; Volume 5823, pp. 114–129. [Google Scholar] [CrossRef]
- Baader, F.; Calvanese, D.; McGuinness, D.; Nardi, D.; Patel-Schneider, P. (Eds.) The Description Logic Handbook; Cambridge University Press: Cambridge, UK, 2003. [Google Scholar]
- Ferilli, S.; Redavid, D.; Angelastro, S. Activity Prediction in Process Management Using the WoMan Framework. In Proceedings of the Advances in Data Mining. Applications and Theoretical Aspects—17th Industrial Conference, ICDM 2017, New York, NY, USA, 12–13 July 2017; Perner, P., Ed.; Springer: Berlin/Heidelberg, Germany, 2017; Volume 10357, pp. 194–208. [Google Scholar] [CrossRef]
- Hahmann, T.; II, R.W.P. Automatically Extracting OWL Versions of FOL Ontologies. In Proceedings of the Semantic Web-ISWC 2021—20th International Semantic Web Conference, ISWC 2021, Virtual Event, 24–28 October 2021; Proceedings. Hotho, A., Blomqvist, E., Dietze, S., Fokoue, A., Ding, Y., Barnaghi, P.M., Haller, A., Dragoni, M., Alani, H., Eds.; Springer: Berlin/Heidelberg, Germany, 2021; Volume 12922, pp. 252–269. [Google Scholar] [CrossRef]
- Flügel, S.; Glauer, M.; Neuhaus, F.; Hastings, J. When one Logic is Not Enough: Integrating First-order Annotations in OWL Ontologies. arXiv 2022, arXiv:2210.03497. [Google Scholar] [CrossRef]
- Lopes, C.; Knorr, M.; Leite, J. NoHR: Integrating XSB Prolog with the OWL 2 Profiles and Beyond. In Proceedings of the 15th International Conference, LPNMR 2019, Philadelphia, PA, USA, 3–7 June 2019; Balduccini, M., Janhunen, T., Eds.; Springer: Cham, Switzerland, 2017; pp. 236–249. [Google Scholar]
- Costa, N.; Knorr, M.; Leite, J. Next Step for NoHR: OWL 2 QL. In Proceedings of the Semantic Web—ISWC 2015, the 14th International Semantic Web Conference, Bethlehem, PA, USA, 11–15 October 2015; Arenas, M., Corcho, O., Simperl, E., Strohmaier, M., d’Aquin, M., Srinivas, K., Groth, P., Dumontier, M., Heflin, J., Thirunarayan, K., et al., Eds.; Springer: Cham, Switzerland, 2015; pp. 569–586. [Google Scholar]
- Zese, R.; Cota, G. Optimizing a tableau reasoner and its implementation in Prolog. J. Web Semant. 2021, 71, 100677. [Google Scholar] [CrossRef]
- Di Martino, B.; Graziano, M.; Colucci Cante, L.; Esposito, A.; Epifania, M. Application of Business Process Semantic Annotation Techniques to Perform Pattern Recognition Activities Applied to the Generalized Civic Access. In Proceedings of the 16th International Conference on Complex, Intelligent and Software Intensive Systems (CISIS-2022), Online, 29 June–1 July 2022; Barolli, L., Ed.; Springer: Cham, Switzerland, 2022; pp. 404–413. [Google Scholar]
- Di Martino, B.; Colucci Cante, L.; Esposito, A.; Graziano, M. A tool for the semantic annotation, validation and optimization of business process models. Software Pract. Exp. 2023, 53, 1174–1195. [Google Scholar] [CrossRef]
- Rebmann, A.; van der Aa, H. Enabling semantics-aware process mining through the automatic annotation of event logs. Inf. Syst. 2022, 110, 102111. [Google Scholar] [CrossRef]
- Ardito, C.; Caivano, D.; Colizzi, L.; Verardi, L. BPMN Extensions and Semantic Annotation in Public Administration Service Design. In Human-Centered Software Engineering; Bernhaupt, R., Ardito, C., Sauer, S., Eds.; Springer: Cham, Switzerland, 2020; pp. 118–129. [Google Scholar]
- Samuel, K.; Obrst, L.; Stoutenburg, S.; Fox, K.; Franklin, P.; Johnson, A.; Laskey, K.J.; Nichols, D.; Lopez, S.; Peterson, J. Translating OWL and semantic web rules into prolog: Moving toward description logic programs. Theory Pract. Log. Program. 2008, 8, 301–322. [Google Scholar] [CrossRef]
- Elenius, D. SWRL-IQ: A Prolog-based Query Tool for OWL and SWRL. In Proceedings of the OWL: Experiences and Directions Workshop 2012, Heraklion, Greece, 27–28 May 2012; Volume 849. Available online: http://ceur-ws.org/Vol-849 (accessed on 10 November 2023).
- Musen, M.A. The Protégé Project: A Look Back and a Look Forward. AI Matters 2015, 1, 4–12. [Google Scholar] [CrossRef] [PubMed]
- Sagonas, K.F.; Swift, T.; Warren, D.S. The XSB Programming System. In Proceedings of the Workshop on Programming with Logic Databases. In Conjunction with ILPS, Vancouver, BC, Canada, 30 October 1993; Ramakrishnan, R., Ed.; University of Wisconsin: Madison, WI, USA, 1993; Volume 1183, p. 164. [Google Scholar]
- Laera, L.; Tamma, V.A.M.; Bench-Capon, T.J.M.; Semeraro, G. SweetProlog: A System to Integrate Ontologies and Rules. In Proceedings of the Rules and Rule Markup Languages for the Semantic Web: Third International Workshop, RuleML 2004, Hiroshima, Japan, 8 November 2004; Antoniou, G., Boley, H., Eds.; Springer: Berlin/Heidelberg, Germany, 2004; Volume 3323, pp. 188–193. [Google Scholar] [CrossRef]
- van der Aalst, W.M.P. Process mining. Commun. ACM 2012, 55, 76–83. [Google Scholar] [CrossRef]
- Ferilli, S. Woman: Logic-based workflow learning and management. IEEE Trans. Syst. Man Cybern. Syst. 2014, 44, 744–756. [Google Scholar] [CrossRef]
- Ferilli, S.; Esposito, F.; Redavid, D.; Angelastro, S. Extended Process Models for Activity Prediction. In Proceedings of the 26th International Symposium, ISMIS 2022, Cosenza, Italy, 3–5 October 2022; Kryszkiewicz, M., Appice, A., Ślézak, D., Rybinski, H., Skowron, A., Raś, Z.W., Eds.; Springer: Cham, Switzerland, 2017; pp. 368–377. [Google Scholar]
- Petri, C.A.; Reisig, W. Petri net. Scholarpedia 2008, 3, 6477. [Google Scholar] [CrossRef]
- van der Aalst, W.M.P. The Application of Petri Nets to Workflow Management. J. Circuits Syst. Comput. 1998, 8, 21–66. [Google Scholar] [CrossRef]
- van Dongen, B.F.; de Medeiros, A.K.A.; Wen, L. Process Mining: Overview and Outlook of Petri Net Discovery Algorithms. Trans. Petri Nets Other Model. Concurr. 2009, 2, 225–242. [Google Scholar] [CrossRef]
- van der Aalst, W.; Carmona, J.; Chatain, T.; van Dongen, B. A Tour in Process Mining: From Practice to Algorithmic Challenges. In Transactions on Petri Nets and Other Models of Concurrency XIV; Springer: Berlin/Heidelberg, Germany, 2019; pp. 1–35. [Google Scholar] [CrossRef]
- Maggi, F.M. Declarative Process Mining. In Encyclopedia of Big Data Technologies; Sakr, S., Zomaya, A.Y., Eds.; Springer: Berlin/Heidelberg, Germany, 2019. [Google Scholar] [CrossRef]
- Muggleton, S.H. Inductive Logic Programming. New Gener. Comput. 1991, 8, 295–318. [Google Scholar] [CrossRef]
- Cropper, A.; Dumancic, S.; Evans, R.; Muggleton, S.H. Inductive Logic Programming at 30. Mach. Learn. 2022, 111, 147–172. [Google Scholar] [CrossRef]
- Berners-Lee, T.; Hendler, J.; Lassila, O. The Semantic Web. Sci. Am. 2001, 284, 34–43. [Google Scholar] [CrossRef]
- Christensen, E.; Curbera, F.; Meredith, G.; Weerawarana, S. Web Services Description Language (WSDL) 1.1. W3C Note, World Wide Web Consortium, 15 March 2001. Available online: http://www.w3.org/TR/2001/NOTE-wsdl-20010315 (accessed on 10 November 2023).
- Martin, D.; Burstein, M.; Hobbs, J.; Lassila, O.; McDermott, D.; McIlraith, S.; Narayanan, S.; Paolucci, M.; Parsia, B.; Payne, T.; et al. OWL-S: Semantic Markup for Web Services. 2004. W3C Member Submission, 22 November 2004. Available online: http://www.w3.org/Submission/OWL-S/ (accessed on 10 November 2023).
- Horrocks, I.; Patel-Schneider, P.F.; Boley, H.; Tabet, S.; Grosof, B.; Dean, M. SWRL: A Semantic Web Rule Language Combining OWL and RuleML. W3C Member Submission, 21 May 2004. Available online: http://www.w3.org/submissions/SWRL/ (accessed on 10 November 2023).
- Redavid, D.; Iannone, L.; Payne, T.R.; Semeraro, G. OWL-S Atomic Services Composition with SWRL Rules. In Proceedings of the Foundations of Intelligent Systems, 17th International Symposium, ISMIS 2008, Toronto, ON, Canada, 20–23 May 2008; An, A., Matwin, S., Ras, Z.W., Slezak, D., Eds.; Springer: Berlin/Heidelberg, Germany, 2008; Volume 4994, pp. 605–611. [Google Scholar] [CrossRef]
- Redavid, D.; Ferilli, S.; Esposito, F. SWRL Rules Plan Encoding with OWL-S Composite Services. In Proceedings of the Foundations of Intelligent Systems—19th International Symposium, ISMIS 2011, Warsaw, Poland, 28–30 June 2011; Kryszkiewicz, M., Rybinski, H., Skowron, A., Ras, Z.W., Eds.; Springer: Berlin/Heidelberg, Germany, 2011; Volume 6804, pp. 476–482. [Google Scholar] [CrossRef]
- Ferilli, S.; De Carolis, B.; Pazienza, A.; Esposito, F.; Redavid, D. An Agent Architecture for Adaptive Supervision and Control of Smart Environments. In Proceedings of the 2015 International Conference on Pervasive and Embedded Computing and Communication Systems (PECCS), Angers, France, 11–13 February 2015. [Google Scholar]
- Horrocks, I.; Parsia, B.; Patel-Schneider, P.F.; Hendler, J.A. Semantic Web Architecture: Stack or Two Towers? In Proceedings of the Principles and Practice of Semantic Web Reasoning, Third International Workshop, PPSWR 2005, Dagstuhl Castle, Germany, 11–16 September 2005; Fages, F., Soliman, S., Eds.; Springer: Berlin/Heidelberg, Germany, 2005; Volume 3703, pp. 37–41. [Google Scholar] [CrossRef]
- Euzenat, J.; Shvaiko, P. Ontology Matching, 2nd ed.; Springer: Berlin/Heidelberg, Germany, 2013; pp. 1–511. [Google Scholar] [CrossRef]
- Lloyd, J.W. Foundations of Logic Programming, 2nd ed.; Springer: Berlin/Heidelberg, Germany, 1987. [Google Scholar]
- Motik, B.; Sattler, U.; Studer, R. Query Answering for OWL-DL with rules. J. Web Semant. Sci. Serv. Agents World Wide Web 2005, 3, 41–60. [Google Scholar] [CrossRef]
- Hayes, P.; Welty, C. Defining N-ary Relations on the Semantic Web. Working Group Note, World Wide Web Consortium (W3C). 2006. Available online: http://www.w3.org/TR/swbp-n-aryRelations (accessed on 10 November 2023).
- Da Silva, A.F.; Costa, V.S. The Design and Implementation of the YAP Compiler: An Optimizing Compiler for Logic Programming Languages. In Proceedings of the Logic Programming, 22nd International Conference, ICLP 2006, Seattle, WA, USA, 17–20 August 2006; Etalle, S., Truszczynski, M., Eds.; Springer: Berlin/Heidelberg, Germany, 2006; Volume 4079, pp. 461–462. [Google Scholar] [CrossRef]
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2023 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Redavid, D.; Ferilli, S. Semantic Web Services Ingestion in a Process Mining Framework. Electronics 2023, 12, 4767. https://doi.org/10.3390/electronics12234767
Redavid D, Ferilli S. Semantic Web Services Ingestion in a Process Mining Framework. Electronics. 2023; 12(23):4767. https://doi.org/10.3390/electronics12234767
Chicago/Turabian StyleRedavid, Domenico, and Stefano Ferilli. 2023. "Semantic Web Services Ingestion in a Process Mining Framework" Electronics 12, no. 23: 4767. https://doi.org/10.3390/electronics12234767