OBO-Edit:Rule Based Reasoner: Difference between revisions
Jump to navigation
Jump to search
Line 18: | Line 18: | ||
* Relation intersections | * Relation intersections | ||
** R1(X,Y),R2(X,Y),R=R1^R2 -> R(X,Y) | ** R1(X,Y),R2(X,Y),R=R1^R2 -> R(X,Y) | ||
In the above, -> denotes logical implication, ==> denotes a macro translation | |||
For example | |||
[Term] | |||
id: a | |||
intersection_of: b | |||
intersection_of: r c | |||
is translated to the logical axioms: | |||
is_a(x,b), r(x,c) -> is_a(x,a) | |||
is_a(a,b) | |||
r(a,c) | |||
== Implementation == | |||
The internal design of the RBR is highly simplified compared to the LPR. It was written entirely by cjm. Note the profile is the same as for the LPR, however, the LPR bug does not arise due to the design of the RBR. | The internal design of the RBR is highly simplified compared to the LPR. It was written entirely by cjm. Note the profile is the same as for the LPR, however, the LPR bug does not arise due to the design of the RBR. | ||
Note that the RBR is currently slow for incremental reasoning. This is because it checks ''all'' links after any links are added or deleted. This can easily be fixed in future versions. When it is, the LPR will probably be retired altogether. | Note that the RBR is currently slow for incremental reasoning. This is because it checks ''all'' links after any links are added or deleted. This can easily be fixed in future versions. When it is, the LPR will probably be retired altogether. | ||
[[Category: Reasoning]] | [[Category: Reasoning]] |
Revision as of 13:46, 10 March 2010
oboedit_rbr
OBO-Edit:Rule Based Reasoner (RBR). Successor to LPR.
- Transitivity
- transitive(R),R(X,Y),R(Y,Z) -> R(X,Z)
- Propagation over/under is_a
- instance_level(R),R(X,Y),is_a(Y,Z) -> R(X,Z)
- instance_level(R),is_a(X,Y),R(Y,Z) -> R(X,Z)
- Intersection_of
- D =def A1^A2^...^An ==> Tr(x,A1),Tr(x,A2),...,Tr(x,An) -> is_a(x,D)
- Tr(x,R(Z)) ==> R(x,Z)
- Tr(x,Z) ==> is_a(x,Z)
- Subrelations
- R(X,Y),is_a(R,R2) -> R2(X,Y)
- transitive_over and arbitrary Relation_composition
- R1(X,Y),R2(Y,Z),holds_over_chain(R,R1,R2) -> R(X,Z)
- Relation intersections
- R1(X,Y),R2(X,Y),R=R1^R2 -> R(X,Y)
In the above, -> denotes logical implication, ==> denotes a macro translation
For example
[Term] id: a intersection_of: b intersection_of: r c
is translated to the logical axioms:
is_a(x,b), r(x,c) -> is_a(x,a) is_a(a,b) r(a,c)
Implementation
The internal design of the RBR is highly simplified compared to the LPR. It was written entirely by cjm. Note the profile is the same as for the LPR, however, the LPR bug does not arise due to the design of the RBR.
Note that the RBR is currently slow for incremental reasoning. This is because it checks all links after any links are added or deleted. This can easily be fixed in future versions. When it is, the LPR will probably be retired altogether.