NAME RDFStore - Perl API for RDF Storage FEATURES *Modular interface using packages *Perl-way API to fetch, parse, process, store and query RDF models *W3C RDF and strawman syntax parsing *Perl TIE seamless access to RDF triplet databases *Either DB_File and BerkeleyDB support *Automatic Vocabulary generation *Basic RDF Schema support *Initial TCP/IP remote storage service support DESCRIPTION RDFStore is a set of Perl modules to manage Resource Description Framework (RDF) model databases in a easy and straightforward way. It is a pure Perl implementation of the Draft Java API from the Stanford University DataBase Group (http://www-db.stanford.edu/~melnik/rdf/api.html) by Sergey Melnik with some additional cool modules to read/write RDF triples directly from the Perl language environment. By using the Perl TIE interface, a generic application script can access RDF triplets using normal key/value hashes; the storage can happen either in-memory data structures (not tie) or on the local filesystem by using the DB_File.pm or BerkeleyDB.pm modules. An experimental remote storage service is also provided using a custom DBMS.pm module coupled with a fast and performant TCP/IP deamon. The deamon has been written entirely in the C language and is actually storing the data in Berkeley DB v1.x files; such a software is similar to the rdfbd (http://web1.guha.com/rdfdb/) approach from Guha. The input RDF files are being parsed and processed by using a streaming SiRPAC like parser completely written in Perl. Such an implementation includes most of the proposed bug fixes and updates as suggested on the W3C RDF-interest-Group mailing list and on the SiRPAC Web site. A strawman parser for a simplified syntax proposed by Jonathan Borden at http://www.openhealth.org/RDF/rdf_Syntax_and_Names.htm, Jason Diamond's at http://www.injektilo.org/rdf/rdf.xsl and Dan Connolly at http://www.w3.org/XML/2000/04rdf-parse/ is also included. By using the Sablotron XSLT engine is then possible to easily tranform XML documents to RDF and query them from the Perl language. PREREQUISITES To run RDFStore you need Perl 5.6.0 or newer and the following Perl modules properly installed: XML::Parser Storable Digest URI BerkeleyDB To run BerkeleyDB you need Berkeley DB Version 2.6.4 or greater. The official web site for Berkeley DB is http://www.sleepycat.com. Right now Perl 5.6.0 is required to get utf-8 support on Digest generation and to "localise" the socket handlers in the XML::Parser::PenRDF::wget() method. From version 0.4 (see snap) this problem will be solved switching back to previous typeglob handler way. BUILDING AND INSTALLATION It is the basic CPAN Perl way of doing: perl Makefile.PL; make; make test; make install; To build and install DBMS support: cd dbms; make; make install; (by default the dbmsd gets installed under the /RDFStore branch) If you need to install and compile your own version of Berkeley DB look at here about instructions. DOCUMENTATION I am not finished with a decent documentation of what I have done. You might want to refer to the Perl pod documentation coming with the RDFStore distribution using hte perldoc command. Additionally you can refer to the good Javadoc stuff of Sergey at http://www-db.stanford.edu/~melnik/rdf/api-doc/ If you want to read more about the TCP/IP based storage go at http://pen.jrc.it/documentation/final-technical-report-1999/final-technical-report-1999.htm#_Toc463634472. RELATED STUFF Storing RDF in relational databases - http://www-db.stanford.edu/~melnik/rdf/db.html The RADIX proposal by Ron Daniel - http://www.mailbase.ac.uk/lists/rdf-dev/1999-06/0002.html Redland RDF Application Framework - Perl Interface - http://www.redland.opensource.ac.uk/docs/perl.html Web Resource Application Framework (WRAF) - http://sourceforge.net/projects/wraf/ DEVELOPMENT The homepage for RDFStore is http://xml.jrc.it/RDFStore A public mailing about technical developments, updates and bug reports is available at rdfstore@egroups.com and archived at http://www.egroups.com/group/rdfstore COPYRIGHT Copyright (c) 2000 All rights reserved Alberto Reggiori / ISIS/RIT, Joint Research Center Ispra (I)