- From: Sean B. Palmer <sean@mysterylights.com>
- Date: Sun, 3 Mar 2002 23:57:17 -0000
- To: <www-rdf-interest@w3.org>
Hi, This is a beta-release of a little RDF API that I've been hacking on for a couple of weeks: Eep. It's written in Python [1], and as long as you have a fairly recent version of Python installed (I have 2.2 [2]), it should run right out of the box. The latest distribution is available from:- http://infomesh.net/2002/eep/eep.tar.gz and the current version is:- http://infomesh.net/2002/eep/20020302-013802.tar.gz you can also browse the source on the Web at:- http://infomesh.net/2002/eep/20020302-013802/ So, what can it do? Well, it's a sub-CWM clone, although it wasn't originally intended that way. Here's a general list of things that it can do:- * Parse the NTriples format * Parse Notation3, excluding DAML lists and formulae * Perform (small) queries * Do forwards chaining inferences * Perform builtins (tests and variables) * Template results as HTML etc. Documentation is very sparse... I apologize for that, but it is very easy to run. There are serveral test files in the distribution: querytest.py, infertest.py, bitest.py, n3test.py, and templatetest.py, that can be run simply by doing "python filename". It's meant as a very small, fast, and extensible toolkit for performing small RDF operations. It is stunningly fast on small queries, but at the moment can break on larger queries. I envisage that it will be used for running RDF bots, weblogs, etc.; things that handle small inputs at a time, or need to perform searches with a handful of variables on large databases. The API should be very easy to get into, and was designed to be *used* - even through IDLE - and not just to look pretty. The main modules to import when performing some operation are: eep, query, infer, n3, and bi. Here's an example of what Eep can do... [[[ >>> import eep, query, infer, n3, bi >>> import re, urllib2 >>> EARLSchema = 'http://www.w3.org/2001/03/earl/0.95.n3' >>> EARL095 = n3.parse(urllib2.urlopen(EARLSchema).read()) >>> len(EARL095) 146 >>> RDFSLabel = 'http://www.w3.org/2000/01/rdf-schema#label' >>> for result in query.rquery(eep.parse('?x <%s> ?y .' % \ RDFSLabel)[0], EARL095): print result[0][2] "Evaluation" "Assertor" [...] "passes" "fails" "TestCase" "EARL (Evaluation And Report Language)" >>> rule = infer.rule( """?x <http://www.w3.org/2000/01/rdf-schema#label> ?z . ?z <http://www.w3.org/2000/10/swap/string#startsWith> "A".""", '?z <#type> <#ALabel> .' ) >>> for result in bi.bfilter(rule, EARL095): print eep.serialize(result) "Assertor" <#type> <#ALabel> . "Assertion" <#type> <#ALabel> . >>> ]]] Many thanks to deltab, redmonk (Steve Ivy), and Bijan Parsia for their praise, comments, feedback, and tests. [1] http://www.python.org/ [2] http://www.python.org/2.2/ -- Kindest Regards, Sean B. Palmer @prefix : <http://purl.org/net/swn#> . :Sean :homepage <http://purl.org/net/sbp/> .
Received on Sunday, 3 March 2002 18:57:02 UTC