Reputation: 419
I'm wondering if there is any system/infrastructure able to do some human reasoning process, for example:
Context: A is a pen
Question: is A vertical or horizontal
Reasoning process:
1. horizontal is anything parallel to the ground
2. A is parallel to the ground
3. A is horizontal
The ultimate goal of this reasoning system would be that it's able to generate facts with some pre-defined rules.
Thank you in advance!
Upvotes: 0
Views: 107
Reputation: 4787
You could achieve this with ontologies. You can use Protege which is a free ontology editor equipped with reasoners to infer implicit knowledge. Specifying an ontology as follows will achieve the desired result:
ObjectProperty: hasOrientation
Domain: Object
Range: Orientation
ObjectProperty: isParallel
Domain: Object
Range: Surface
Class: Object
Class: Orientation
EquivalentTo: {Horizontal , Vertical}
Class: Pen
SubClassOf: Object
Class: Surface
EquivalentTo: {Ground , Rock , Wall}
Individual: Ground
Types: Surface
Individual: Horizontal
Types: Orientation
DifferentFrom: Vertical
Individual: Rock
Types: Surface
Individual: Vertical
Types: Orientation
DifferentFrom: Horizontal
Individual: Wall
Types: Surface
Individual: myPen
Types: Pen
Facts: isParallel Ground
Rule:
Pen(?aPen), isParallel(?aPen, Ground) -> hasOrientation(?aPen, Horizontal)
Pen(?aPen), isParallel(?aPen, Wall) -> hasOrientation(?aPen, Vertical)
The inference is achieved with Pen(?aPen), isParallel(?aPen, Ground) -> hasOrientation(?aPen, Horizontal)
which basically states that if aPen
is a Pen
and aPen
is in a isParallel
relation with Ground
then aPen
has a Horizontal
orientation.
As an aside, you may find this research of interest.
Upvotes: 1