pyreason
pyreason copied to clipboard
Improvements
- [x] Change grounding process to loop through all possible variables and not just neighbors. This will allow for more complex rules.
- [x] Add node/edge rule distinction.
pred(x)<-pred1(y,x), pred2(y,z)is different frompred(x,y)<-pred1(y,x), pred2(y,z). This should be reflected in the YAMLs as well - [x] Add bound parser to rule parser so that we can pass in bounds in text rules
- [x] Add annotation function parser to rule parser
- [x] Read rules from text file
- [x] Add comments for text file with
#and remove any blank lines - [x] Add threshold class for text based rules
- [ ] #17
- [x] Add tests to python workflow
- [ ] Immediate rules sorting inside rule parser
- [x] More flexible annotation functions that don't require modification of
interpretation.py - [ ]
Modelclass for pyreason instead of global variables. Include functions such asmodel.summary()after reasoning. - [x] Input graph from networkx format as requested by #9
- [x] Input facts and rules as object #10
- [x] Remove
diffuse.pyand command line support - [ ] Allow ground rules with setting
- [x] Make interpretations static through rules
- [x] Return
interpretationsas a dict instead of class object - [ ] Add support for multi di-graph
- [ ] Look into
prev_landprev_uin interval class - [ ] If there's no change to an interpretation (same rule firing) it should be added to the trace
- [ ] Look into not checking for whether variable is
__sourcein edge rule node clauses
Currently PyReason loops through all nodes and edges and checks for neighbor groundings. This is inflexible with rules such as pred(x)<-pred1(y,x), pred2(y,z) where y will be replaced by the neighbors of x--where in reality this should be any other node (except in the case of a node clause, then the groundings are the neighbors).