README ====== This is GraphPath, a little-language for analysing graph-structured data, especially RDF. The syntax of the GraphPath language is reminiscent of Xpath. The graphpath python package provides a query evaluator and a goal-driven inference engine for the GraphPath language, which work together to perform graph analysis. The package can be teamed up with your favourite python RDF API (e.g. Redland, rdflib, or your own API). See index.html for documentation. RELEASE NOTES ============= Version 0.6.2 is a bug fix release and is provided under the GPL (see LICENSE). This version corrects several bugs that crept into the first public release and adds some minor features. Changes in 0.6.2 * correct name exception in rdflib adapter * add testcase for expressions of the form p/q[r/s] * add testcases for Map() * proof docs Changes in 0.6.1 * corrected evaluation of expressions of the form p/q[r/s] * extended and rationalised evaluation strategies for predicates. * allow evaluation of expressions where the individual steps are bound but not the overall expression e.g. Node(x)/(g>>Property(y)) * added Map(p) to convert p to a conventional python representation of a DG, a mapping of intial nodes to terminal node sets. * added trace(p) to trace evaluation of an expresion. Compatibility ------------- The package has been tested with: Python 2.2.2, 2.2.3 and 2.3 Redland 0.9.14, 0.9.15 rdflib 1.3.1 Redland ------- There is a bug in the redland python interface that prevents setting of the datatype of an RDF value node. For now, the GraphPath implementation stores all values as pickled object strings. You can change this in redadapt.py. Sets Module ----------- GraphPath is implemented in terms of python sets which were introduced in python 2.3. Back compatibility to earlier python versions has been provided via modules graphpath.util.anysets and graphpath.util.altsets. The latter is a backport of the 2.3 sets module by Mike Fletcher. Some small changes will be needed for the forthcoming builtin set datatypes.