Software snippets (original) (raw)
This directory contains some software available from this site.
Contents
- Mail message handling in Python
- RFC 2533 Feature set matching in Java
- RDF "Report generator" in Python
- Python-to-Jena interfacing
- URI handling in Haskell
- Swish: a Semantic Web Inference Skeleton in Haskell
- FatHugs: a Hugs build for large Haskell Programs on Microsoft Windows
- HaskellUtils: general purpose Haskell library modules
- Haskell URI handling (Parsec-based)
- Links to further information
Source code
- Mail message parsing and handling in Python. Includes my First Python Program: a program to traverse Eudora mailboxes and generate XML/RDF compatible output from them.
- Feature set matching, according to RFC 2533. Java source code and test programs. Software classes are defined to parse feature expressions from reader streams, and perform matching on them. See the test programs for examples. There is currently no command-line or GUI version of the software, but it should be easy enough to implement.
- RDF report generator. This ZIP file includes Python source code for an N3 parser (by now a dated version of N3 syntax), N3 data access and N3 report generator, as described in RDF for "Little Languages". Updated 07-May-2002, to accept (questionable) cwm output. Updated 9-May-2002 to dramatically improve performance. Updated 10-May-2002 with improved formatting of author information. Updated 24-May-2002 with various enhancements and bug-fixes, added Jython and Jena interface modules. Updated 5-Jun-2002 with options to trim spaces from formatted values. Updated 16-Sep-2002 with document issue report generator module, and bug-fix to N3 parser handling of triple-quoted strings. Updated 19-Sep-2002: report generator to scan containers and lists; updated list vocabulary to use new RDF terms; report generator capability to display local part of URI; document issue formatter to handle document and issue histories. Updated 21-Oct-2002 to support protocol cross reference utility; added first- and last- options to repeated pattern processing, so simplifying output generation. Updated 12-Dec-2002 to add a general-porpose report generator program (N3GenReport.py) that reads a report generator template from an external .n3 file.
- Python-to-Jena interfacing. I've been experimenting with using Jython (version 2.1) to interface my Python code to a Jena RDF model store. This software allows Python programs to load and access a Jena model. The Python code that I have running under Jython to access the Jena model is in <N3ModelJena.zip>. This version contains code to access memory- or RDB-based Jena models from Python.
- One of the modules is a modified version of the Jython javaos.py module with an implementation of Python's os.access() method.
- I've found it convenient to make some small modifications to Jena, viz adding isResource() and isLiteral() methods to the RDFNode interface - the code is in <JenaRDFNodeSrcMods.zip>. (I couldn't figure how to get Jython to do a class type enquiry on a Java object.)
- The Jython.bat file is also modified to include Jena libraries on the class path -- this is included for information and will almost certainly need to be modified for any environment other than mine.)
- Updated 15-May-2002 to add Jena RDB-based model support.
- URI parsing and handling in Haskell. Released: 5-Mar-2003. [ZIP archive, Read me file].
- Swish: a Semantic Web Inference Skeleton in Haskell, V0.2 released 20-Dec-2003. [Home page, ZIP archive, description].
- (Also, some random notes related to my experience of learning Haskell, coming to it from long experience of using non-functional programming languages.)
- FatHugs, a build of the Hugs for Microsoft Windows, based on the 20040109 source snapshot, with increased character range support (for Unicode) and the code storage area enlarged to accommodate larger programs. [Description page, EXE file, ZIP file]. Also, a sorresponding version of RunHugs [EXE file, ZIP file].
- HaskellUtils, a collection of general purpose Haskell library source files (and test modules).
- Haskell URI handling code. A new implentation, proposed as a replacement for the Haskell Network.URI module, with test cases. This implementation is based closely on the revised RFC2396 specification, modulo some issues under discussion on the URI mailing list. Work-in-progress, 20 Feb 2004.
Links to related information
This web site
- RDF notes.
- Semantic Web Advanced Development Europe (SWAD-E).
- Personal notes about learning Haskell.
Other web sites
- Notation 3 (N3), Tim Berners-Lee's experimental "presentation" syntax for RDF, which seems to be very popular with developers.
- Closed World Machine (cwm), Tim Berners-Lee's experimental general-purpose semantic web data processing tool.
- Jena home page (part of HP Labs, Bristol: HPL Semantic Web activity). Jena is an API and supporting software for manipulating RDF data. It includes and RDF/XML parser, memory-based RDF store, Rdb-based model store, and much more. Also at SourceForge.
- The source for Java technology: Sun's Java software home page.
- Python language home page. This is a great language for rapid prototyping, yet allows programs to grow without becoming unweildy to maintain.
- Jython home page (Python compiled to JVM code).
- Haskell home page (A pure functional programming language).
- Haskell libraries (more here):
- Parsec, a monadic parser combinator library: http://www.cs.ruu.nl/~daan/parsec.html
- HUnit: http://hunit.sourceforge.net/
- Sorting, seaching and other basics by Ralf Hinze: http://www.informatik.uni-bonn.de/~ralf/software.html
For feedback please see: http://www.ninebynine.org/index.html#Contact $Id: Intro.html,v 1.34 2004/10/19 15:58:54 graham Exp $