| 
Definition of Symbols
 OFF_CAP	  	offered capability
 OFFCAP_PROPn	  n-th property of offered capability
 REQ_CAP		  required capability
 REQCAP_PROPn	  n-th property of required capability
 CAP_RESTRICTn	  restriction on the n-th property of required capability
 
 
 
Matchmaking Algorithm
 Is OFF_CAP  instance of REQ_CAP of a superclass or of a subclass of it?
 if (answer is class)
 case exact
 if (answer is superclass)
 case subsumes
 If (answer is subclass)
 case plug-in
 else
 return failure	// OFF_CAP and REQ_CAP are not semantically related
 
 case exact
 {
 for (each CAP_RESTRICTin)
 {
 1. Identify OFFCAP_PROPn
 2. Does OFFCAP_PROPn satisfy CAP_RESTRICTn?
 if (answer is yes)
 set exact success for CAP_RESTRICTn
 if (answer is no)
 return failure for CAP_RESTRICTn
 }
 return exact success		// executes if each CAP_RESTRICT was satisfied
 }
 
 case subsumes
 {
 for (each CAP_RESTRICTn)
 {
 1. Identify OFFCAP_PROPn
 2. Is OFFCAP_PROPn an instance of REQCAP_PROPn or of a superclass of it?
 if (answer is superclass)
 i. create restriction that subsumes CAP_RESTRICTn
 ii. use it as restriction instead of CAP_RESTRICTn
 if (answer is class)
 same as exact case
 3. Does OFFCAP_PROPn satisfy CAP_RESTRICTn?
 if (answer is yes)
 set subsumes success for CAP_RESTRICTn
 if (answer is no)
 return failure for CAP_RESTRICTn
 }
 return subusmes success	 	// executes if each CAP_RESTRICT was satisfied
 }
 
 case plug-in
 {
 for (each CAP_RESTRICTn)
 {
 1. Identify OFFCAP_PROPn
 2. Is OFFCAP_PROPn an instance of REQCAP_PROPn or of a subclass of it?
 if (answer is subclass)
 {
 i. verify if restriction value ? range subproperty
 if (answer is yes)
 ii. create restriction subsumed by CAP_RESTRICTn
 iii. use it as restriction instead of CAP_RESTRICTn
 if (answer is no)
 return failure for CAP_RESTRICTn
 }
 if (answer is class)
 same as exact case
 3. Does OFFCAP_PROPn satisfy CAP_RESTRICTn?
 if (answer is yes)
 set plug-in success for CAP_RESTRICTn
 }
 return plug-in success 	// executes if each CAP_RESTRICT was satisfied
 }
 
 
 |