I'm trying to figure out a way of implementing a SWRL rule that would need to make use of an OR type statement. Here is the scenario: The ontology has a class "MachineTool" which has an object property of "hasProcess" and a number of classes of processes. We want to be able to get a list of individuals of MachineTool which has a hasProcess value of either "EndMilling" or "Drilling".
If 'or' statements were allowed the SWRL rule would look something like:
MachineTool(?mt) ^ hasProcess(?mt, ?p) ^ (EndMilling OR Drilling)(?p) -> MyMachineTools(?mt)
But that rule isn't legal. Does someone know of a rule (or set of rules) that can accomplish what we are looking for? I had thought one alternative could be (but haven't tested it, Protege is being weird at the moment):
EndMilling(?p) -> MyProcesses(?p)
Drilling(?p) -> MyProcesses(?p)
MachineTool(?mt) ^ hasProcess(?mt, ?p) ^ MyProcesses(?p) -> MyMachineTools(?mt)
I welcome all thoughts on this problem.