Revision 700098
Go back to digest for 19th August 2007Optimization in KDE Base
Added class BindingSet which holds a copy of one row of query result bindings for caching purposes.
Internally it is nothing more than a QHash but it is quite useful when you want to iterate over a query result and use each row to do something to the model (again the problem that iterators are invalidated by model actions)
Now that I could finally test my optimized inferencing algo I found the last (hopefully) bugs and it works. It got a bit more complicated but I think i did a good job in designing the code and I think I never before documented code this well (which still does not mean that everyone can understand it from the start ;)
The tests were very encouraging. I got a major speed improvement by my optimizations.
Maybe I will write my algo down in a little paper these days, just for fun (and to make Nepomuk reimplement it in java ;)
File Changes
- /branches/work/soprano2/soprano
- /bindingset.cpp
- /bindingset.h
- /branches/work/soprano2
- /soprano/CMakeLists.txt
- /soprano/queryresultiterator.cpp
- /soprano/queryresultiterator.h
- /backends/sesame2/sesame2iterator.cpp
- /backends/sesame2/sesame2iterator.h
- /soprano/inference/inferencemodel.cpp
- /soprano/inference/inferencerule.cpp
- /soprano/inference/inferencerule.h
- /soprano/inference/nodepattern.cpp
- /soprano/inference/nodepattern.h
- /soprano/inference/statementpattern.cpp
- /soprano/inference/statementpattern.h