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 (http://rdfstore.jrc.it/dbms.html). 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 and the following modules properly installed: XML::Parser Storable Digest URI To use BerkeleyDB support you need Berkeley DB Version 2.6.4 or greater installed together with the Perl BerkeleyDB extension. The official web site for Berkeley DB is http://www.sleepycat.com. BUILDING AND INSTALLATION It is the basic CPAN Perl way of doing: perl Makefile.PL; make; make test; make install; In addition, you can install the (optional) DBMS module for TCP/IP remote storage by: cd dbms; make; make test; make install; NOTE: the dbmsd(8) code uses old Berkeley DB 1.x style interface. If you can not get it compile, do not disperate and try to use perl land BerkleyDB, DB_File or SDBM_File styles instead :-) (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 http://www.sleepycat.com/docs/index.html about instructions. DOCUMENTATION The RDFStore Perl API documentation is now available at http://rdfstore.jrc.it/documentation/api.html. You might want to refer to the Perl pod documentation coming with the RDFStore distribution using hte perldoc command or by browsing through it at http://rdfstore.jrc.it/documentation/pod. Additionally you can refer to the good Javadoc stuff of Sergey at http://www-db.stanford.edu/~melnik/rdf/api-doc/ (or at http://rdfstore.jrc.it/documentation/doc/). If you want to read more about the TCP/IP based storage go at http://rdfstore.jrc.it/dbms.html. SUPPORT & DEVELOPMENT The homepage for RDFStore is http://rdfstore.sourceforge.net A public mailing about technical developments, updates and bug reports is available at rdfstore@yahoogroups.com and archived at http://groups.yahoo.com/group/rdfstore DEMONSTRATION An on-line demostration of the capabilities of RDFStore is available at http://rdfstoredemo.jrc.it. It does allow to parse either canonical RDF, strawman xml syntax and query the resulting model. Each model generated while parsing can be dumped back to strawman xml or visualised as GIF picture. COPYRIGHT Copyright (c) 2000 All rights reserved Alberto Reggiori