![]() Pychinko: Rete-based RDF friendly rule engineAlso known as a CWM cloneDevelopers:Yarden Katz, Bijan Parsia and Kendall Clark |
What is Pychinko?
Pychinko is a Python implementation of the classic Rete algorithm (see Charles Forgy's 1982 paper for the original description.) The Rete algorithm (and its since improved variants) has shown to be, in many cases, the most efficient way to apply forward-chaining rules to a set of facts--the basic functionality of an expert system. Pychinko employs an optimized implemention of the algorithm to handle facts expressed as triples, and process them using a set of N3 rules. We have tried to closely mimic the features available in CWM, as it is one of the most widely used rule engines in the RDF community. Several benchmarks have shown our Rete-based Pychinko to be upto 5x faster than the naive rule application used in CWM (see presentation below for preliminary results.) A typical use case for Pychinko might be applying the RDFS inference rules, available in N3, to a document. Similar rules are available for XSD and a dialect of OWL.News
- Developers of CWM at MIT have integrated the Pychinko engine into CWM. Pychinko supports a significant subset of the math, string and logic built-ins. It can be invoked on a rule set from CWM using the -rete command-line option.
- Pychinko was presented by Yarden Katz at the International Python Conference, March 24, 2005. The slides for the talk are available here: Pychinko: A Native Python Rule Engine
- Pychinko-0.1, our first release, is now available for download.
- Pychinko was presented in the recent FOAF Camp in Enschede, Holland.
The presentation slides are available here.
Releases
Latest release
The latest Pychinko code is available our SVN repository, at: http://svn.mindswap.org/pychinko/
Older releases
The first release of Pychinko (0.1) is available for download:pychinko-0.1.tar.gz (Released Jan 17, 2005)
Installation instructions and other notes are available here.
The most up-to-date source is available in the MINDSWAP svn repository.
Projects using Pychinko
- FuXi: "FuXi (pronounced foo-see) is a forward-chaining, rule-based system that expands 4RDF to include reasoning capabilities via interpretation of explicit implications writen in Notation 3 and persisted in the Model under a named sub graph (scope). Fuxi uses Pychinko to match and fire the specified rules. It also includes a Versa function that allows Versa query expressions to be executed within a model (scoped or not) extended to include statements inferred by rules in a particular scope."
yarden at umd.edu Last modified: Wed Oct 6 17:35:02 EST 2004

