Matchmaking Algorithm

MIDAS
 


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
}



Last updated 27-02-2006