We would like to handle some kind of non-monotonic inference in SWRL. It is well-known that SWRL supports monotonic inference only. In such a scenario, can we use some trick to retract or modify some already existing information?
Here is the example.
isInsurable(?d, true) ß Driver(?d), has Age(?d, ?age), swrlb:greaterThan(?d,?age);
Most of these rules are self-explanatory. The third rule says that a noninsured person seeking loan needs to have a guaranter who can afford to pay the loan amount.
We assume the dtp isInsurable(?d,false) is by default, true. The input might come in form of an individual driver and his age may or may not be supplied.
The problem is that the first rule will add the value of true to the insurable property for all drivers that satisfy the antecedent. However, by default the following holds, isInsurable(?d,false). This will result in the dtp having two values. As we assume
“isInsurable” is functional an OWL reasoner will indicate inconsistency.
Can somebody please suggest how to circumvent this problem, and in the process achieve the desired objective?
**************** CAUTION - Disclaimer *****************
This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely
for the use of the addressee(s). If you are not the intended recipient, please
notify the sender by e-mail and delete the original message. Further, you are not
to copy, disclose, or distribute this e-mail or its contents to any other person and
any such actions are unlawful. This e-mail may contain viruses. Infosys has taken
every reasonable precaution to minimize this risk, but is not liable for any damage
you may sustain as a result of any virus in this e-mail. You should carry out your
own virus checks before opening the e-mail or attachment. Infosys reserves the
right to monitor and review the content of all messages sent to or from this e-mail
address. Messages sent to or from this e-mail address may be stored on the
Infosys e-mail system.
***INFOSYS******** End of Disclaimer ********INFOSYS***
Re: Implementing some sort of nonmonotonicity in SWRL
On Feb 9, 2011, at 10:25 PM, Suman Roy wrote:
> We would like to handle some kind of non-monotonic inference in
> SWRL. It is well-known that SWRL supports monotonic inference only.
> In such a scenario, can we use some trick to retract or modify some
> already existing information?
You will either need to use a different technology entirely, or you
will need to write your own reasoning engine to process this type of
information. OWL and SWRL are not designed to support non-monotonic
or default inference.
> Can somebody please suggest how to circumvent this problem, and in
> the process achieve the desired objective?
I think you would have to implement your business logic in your own,
custom written code. You could store basic information in OWL and use
that as a repository, but any handling of retraction or default style
reasoning will be in a program that you write yourself.