$Id: CHANGES,v 1.2 2004/08/19 21:13:07 areggiori Exp $ Revision history for Perl extension RDFStore. version 0.5 - Thu Aug 19 20:08:14 CEST 2004 ---------------------------------------------------------------------------------------------------------------------------- A brand new indexing model for RDF data has been developed in this release - such a indexing model allows to store quite efficienty "pedantic" RDF descriptions by leveraging on compression of the index of triples using a custom RLE+VLE compression algorithm written in C and XS. It is under investigation the real need to have a custom compression algorithm for RDFStore instead of using one in the public domain; some tests showed that general purpose algorithms like LZO or LZF perfom worse in the specific case of RDFStore where the sparse matrix contains well-known patterns. This version start to support the RDF Data Query language (RDQL/Squish) via a proper DBD::RDFStore DBI driver (see http://www.hpl.hp.co.uk/people/afs/RDQL/ and http://swordfish.rdfweb.org/rdfquery/) The software support tha basic query language with some extensions to run free-text queries over literals (property values). See also the RDF Query and Rules page at http://www.w3.org/2003/03/rdfqr-tests/ RDFStore::Model now support basic single statement-grouping (i.e. "context") per statement that allow to run storage operations giving a kind of context to them e.g. a spatial or temporal context or just the source URI; all basic model method have been updated to support that. This stuff is really much close to the on going work of RDF Core WG and other proposals about adding context information to individual triples. This software part is just meant to be a useful and practical artifact and does not want or pretend any of the complex issues being discussed in the RDF community. The RDFStore::Parser::OpenHealth parser has been removed from the distribution Being that the new storage model does not require Data::MagicTie anymore, the module is being distributed separatly (not on CPAN even ;) Some useless modules has been removed from the distribution and some has been renamed; in general the basic storage functionalities are provided through the RDFStore module, while the Stanford API specific code is available in the RDFStore::* modules. The SiRPAC RDF parser is still being distributed with the main storage sources but they will be also distributed separately in the future (XML::SAX::RDF::Filter or something) UTF-8 (Unicode) support has been natively introduced into this release - custom C/XS code has been written to allow convertion from/to utf8 to other char encodings - the perl use can also use the RDFStore::Util::UTF8(3) to get general string utility functions which work on UTF8/Unicode. Things in CVS now also into the sourceoforge RDFStore CVS repository. In addition the system should compile fine on most of the UNIX systems out there (including the dbms/ tcp/ip deamon) Backend now fully general - software ships with BerkeleyDB, DBMS and caching (in-memory) backends Basic caching layer added which should speed up all the DB and I/O operations t/ - updated all test cases - added 04_rdql.t, 05_serializier.t and 06_objects tests RDFStore - updated to be the corner stone of the RDF storage actually implemented in C and XS (lots of C and XS code really hoping to gain some speed and credibility here :) Here is the place where all perl world magics happen....almost - now brand new C low-level API interfaced to perl via XS code RDQL::Parser - new module DBD::RDFStore - new DBI driver to run RDQL/Squish SQL like queries :-) allows to dump query results in several different formats RDFStore::Iterator - new module RDFStore::Object - new module RDFStore::Serializer - new module RDFStore::Serializer::RDFXML - new module RDFStore::Serializer::NTriples - new module RDFStore::Serializer::RSS - new module RDFStore::Util::UTF8 - new module RDFStore::Model - brand new design now using the faster C/XS RDFStore(3) module....finally :) - updated methods to avoid a full copy of statements across when the model is shared if possible - added basic support for statements grouping - see setContext(), getContext() and resetContext() - zapped toStrawmanRDF() method - added serialize() method to generally dump a model/graph to a string or filehanlde - added isConnected() and isRemote() methods - added unite(), subtract(), intersect(), complement() and exor() methods - re-added RDFStore::Resource inheritance - added getParser(), getReader(), getSerializer() and getWriter() methods RDFStore::Parser - new module - includes wget() now using IO::Socket and other general purpose parsing methods RDFStore::Parser::SiRPAC - fixed bug in processDescription() - fixed bug in processTypedNode() when removeAttribute - fixed bug in makeAbsolute() when LocalName contains '#' - removed xml:space handling in RDFXML_CharacterDataHandler() - fixed bug in processPredicate() - does not generate triples when PCDATA is pure whitespaces stuff and there are XML subelements - fixed bug in processListItem() when generate rdf:li elements - added rdfcroak() instead of using $expat->xpcroak() - updated newReificationID() - added RDFMS_nodeID and RDFMS_datatype - updated reify() - added rdf:nodeID support - added rdf:parseType="Collection" support to processPredicate() - fixed bug in processPredicate() to force a resource node object for rdf:type on predicate with rdf:resource - removed parse_start() method and added parsestream() to do expat no-blocking parseing of large XML streams - removed processListItem() - new specs require to process containers as nomral predicates and simply enumerating elements - fixed bug in processContainer() to treat RDF containers just like any other typed node but with rdf:li or rdf:_n nodes - added xml:base support - added xml:lang support - added manage_bNodes callback/hanlder - updated bNode identifier generation algorithm - now parser run wide unique - see newReificationID() - various fixes when using getAttributeValue() - updated rdfcroak() to return source name too when failing - updated processXML() - removed the fetchSchema part - force source to STDIN: if not defined - removed RDFCore_Issues option - now default - added rdfwarn() - added warnings() - moved common code to RDFStore::Parser - added rdf:datatype support - added rdfstore:context support RDFStore::Parser::NTriples - new module RDFStore::Vocabulary::DC - updated DCMI namespace to http://purl.org/dc/elements/1.1/ RDFStore::Parser::Styles::RDFStore::Model - renamed from RDFStore::Parser::Styles::MagicTie - added Context option to the storage - fixed typing error when apssing the nodeFactory to the model - allows to specify an existing RDFStore::Model as input - added owl:imports support utils/ - updated rdfquery.pl to use RDQL/Squish syntax and read some default storage parameters - added context/provenance flags to rdf.pl and rdfingest.pl - added pod2html.pl utility to HTMl format native perl POD documentation RDFStore::Resource - added anonymous resources support - see also RDFStore::NodeFactory(3) and RDFStore::Model(3) - added isAnonymous() and isbNode() - updated accordingly to new RDFStore API - removed BLOB support RDFStore::RDFNode - updated accordingly to new RDFStore API - removed BLOB support RDFStore::Literal - updated accordingly to new RDFStore API - removed BLOB support RDFStore::Statement - updated accordingly to new RDFStore API - added statements reification and context support RDFStore::Vocabulary::Generator - updated to use RDFStore::Model new API RDFStore::Vocabulary::DCQ - updated RDFStore::Vocabulary::DCT - new vocabulary for DCMI Type Vocabulary RDFStore::Vocabulary::RSS - new vocabulary for RSS1.0 see http://purl.org/rss/1.0/ RDFStore::Vocabulary::RDFStoreContext - new vocabulary for RDFStore contexts RDFStore::Vocabulary::OWL - new vocabulary for OWL see http://www.w3.org/2002/07/owl# RDFStore::NodeFactory - added anonymous resource support via createAnonymousResource() and createbNode() - see also RDFStore::Resource(3) - added statements reification support via createReifiedStatement() - see also RDFStore::Statement(3) - updated accordingly to new RDFStore API - added createNTriple() method RDFStore::SetModel - removed now included into main RDFStore::Model(3) RDFStore::Util::Digest - added as new module to manage SHA-1 cryptographic digests natively (using apache SHA-1 code) most of functionality like old module RDFStore::Stanford::Digest::Util(2) RDFStore::Model::Iterator - re-implementation of old RDFStore::Model::Statements using RDFStore::Iterator version 0.42 - Fri Aug 31 17:31:13 CEST 2001 ------------------------------------------------------------------------------------------- Updated Makefiel.PL utils/ - added rdf2n3p.pl to test cases as part of the RDF Core working group (see http://www.w3.org/2001/sw/RDFCore/ntriples/) - updated rdf.pl - updated rdfquery.pl - updated rdfingest.pl - updated dbcat RDFStore::Parser::SiRPAC - updated accordingly to RDF Core Working Group decisions (see http://www.w3.org/2000/03/rdf-tracking/#attention-developers) * rdf-ns-prefix-confusion (carp if error) * rdfms-abouteachprefix (removed aboutEachPrefix) * rdfms-empty-property-elements (updated processDescription() and processPredicate()) * rdf-containers-formalmodel (updated processListItem()) - added RDFCore_Issues option - fixed bug when calling setSource() internally - updated makeAbsolute() - fixed bug in processListItem() when calling processContainer() - fixed bug in processPredicate() for empty predicate elements having zero attributes Data::MagicTie - fixed compilation bug while strict subs when missing DB_File t/ - updated magictie.t - updated rdfstore.t RDFStore::Statement - updated toString() and getDigest() RDFStore::Model - complete redesign of the indexing method up to free-text search on literals - added tied array iterator RDFStore::Model::Statements to allow fetching results one by one - modified find() to allow a 4th paramater to make free-text search over literals RDFStore::SetModel - updated accordingly to new RDFStore::Model version 0.41 - Thu Jul 12 17:11:02 CEST 2001 ------------------------------------------------------------------------------------------- RDFStore::Parser::SiRPAC - fixed bug with XML::Parser 2.30 using expat-1.95.1 * XMLSCHEMA set to http://www.w3.org/XML/1998/namespace (see http://www.w3.org/TR/1999/REC-xml-names-19990114/#ns-using) * added XMLSCHEMA_prefix - changed RDF_SCHEMA_NS to http://www.w3.org/2000/01/rdf-schema# RDFStore::Parser::OpenHealth - fixed bug with XML::Parser 2.30 using expat-1.95.1 * XMLSCHEMA set to http://www.w3.org/XML/1998/namespace (see http://www.w3.org/TR/1999/REC-xml-names-19990114/#ns-using) * added XMLSCHEMA_prefix - changed RDF_SCHEMA_NS to http://www.w3.org/2000/01/rdf-schema# RDFStore::Stanford::Digest::Util - updated digestBytes2HashCode() RDFStore::Model - updated _getLookupValue() and _getValuesFromLookup() to consider negative hashcodes RDFStore::Literal - added getDigest() to generate the digest using quotes and the label Data::MagicTie - fixed compilation bug while strict subs - added a warning in del_dup() if not supported by underlying DB_File library - updated _untie() to avoid warnings while untie databases t/ - updated rdfstore.t - updated parser.t - updated magictie.t moving DBMS specific code to dbms/DBMS/t/magictie.t version 0.4 - Mon Jun 18 17:18:36 CEST 2001 ------------------------------------------------------------------------------------------- This a major release. A lot of changes ahs been made to the storage system in parituclar the dbms/ TCP/IP has been compeltely updated and the Data::MagicTie BerkeleyDB has been updated to make properly DB locking to handle concurrency and avoid dead-locks situations. The API modified accordingly to the latest changes in the Stanford Java API 2001-01-19 distribution. (see http://www-db.stanford.edu/~melnik/rdf/rdf-api-2001-01-19.zip) The SiRPAC parser has been also updated accordingly to the latest W3C version at http://www.w3.org/RDF/Implementations/SiRPAC/ Updated documentation of all the perl modules and fixed a few typo warnings. dbms/CHANGES - added separated changes file for the DBMS module Makefile.PL - updated RDFStore - removed FindIndex module RDFStore::Stanford::Vocabulary::Generator - fixed bug in dumpVocabulary() when matching input namespace (escape plus signs) and output full qualified package variable names of voc properties - fixed bug in createVocabulary() when check package name - fixed miss-spelling bug in toPerlName() - fixed a few warnings - updated accordingly to new RDFStore::Model RDFStore::Model - modifed add() to return undef if the triples exists already in the database - changed way to return undef in subroutines - adapted to use the new Data::MagicTie interface - complete re-design of the indexing and storage method - added getOptions() method - Devon Smith changed getDigestBytes() to generate digests and hashes that match Stanford java ones exactly - added inheritance from RDFStore::Stanford::Digest::Digestable - removed RDFStore::Stanford::Resource inheritance RDFStore::Resource - added check on local name when create a new Resource - allow creation of resources from URI(3) objects or strings using XMLNS LocalPart - hashCode() and getDigest() return separated values for localName and namespace if requested RDFStore::SetModel - updated accordingly to new RDFStore::Model RDFStore::Parser::Styles::MagicTie - modified Assert() to print only new statements Data::MagicTie - complete redesign of Data::MagicTie. Dropped Data::MagicTie::(DBMS|DB_File|BerkeleyDB) modules Everything is self contained in one model now. - changed options labels - modified mode option managemnt - added checking if DBMS, BerkeleyDB, DB_File or SDBM_File styles can not be loaded - changed way to return undef in subroutines - remove db files directory if tie operation fails - FIRSTKEY() and NEXTKEY() methods optimised - use File::Path module to create and remove directories to be portable - changed mode to DB_BTREE for DB_File TIEHASH - added BerkeleyDB file locking in TIEHASH and TIEARRAY - took off a few useless sync() calls - dropped lr (local/remote) option - dropped noft (no freeze/thaw) option - added in-memory style - added sharing option - added SDBM_File default style - fixed warning in _keyDB() - added perl version checking for Data::MagicTie::Array methods - added multiple reader/single writer locking support for DB_File - does not generate multiple '.db' extensions to files in _tie() t/ - updated magictie.t - added rdfstore.t samples - zapped a few examples - updated test.pl samples/rdf - zapped a few examples samples/rdf/vocabularies - zapped a few examples. Updated DAML and foaf schemas - added RSS schema - added XML infoset RDF Schema - zapped DublinCore - added 22-rdf-syntax-ns, rdf-schema, 13-dces and 13-dcq RDFStore::Vocabulary::DCQ - added DCQ vocabulary http://dublincore.org/2000/03/13-dcq# RDFStore::Vocabulary::DC - updated accordingly to RDFStore::Stanford::Vocabulary::Generator changes and http://dublincore.org/2000/03/13/dces# RDFStore::Vocabulary::DAML - updated accordingly to RDFStore::Stanford::Vocabulary::Generator changes and http://www.daml.org/2001/03/daml+oil.daml RDFStore::Vocabulary::RDF - updated accordingly to RDFStore::Stanford::Vocabulary::Generator changes - removed rdf:Description, rdf:resource, rdf:about, rdf:aboutEach, rdf:anboutEachPrefix, rdf:ID, rdf:parseType, rdf:parseType (it is up to the application to build resources with them using $RDF::_Namespace) RDFStore::Vocabulary::RDFS - updated accordingly to RDFStore::Stanford::Vocabulary::Generator changes RDFStore::Stanford::Digest::Util - fixed stupid/braindead bug when disable warnings- Thanks to Marc Lehmann - added getDigestAlgorithm() method - Devon Smith changed digestBytes2HashCode() and toHexString() to generate digests and hashes that match Stanford java ones exactly RDFStore::Parser::OpenHealth - changed way to return undef in subroutines - fixed warnings in getAttributeValue() RDFStore::Parser::SiRPAC - changed way to return undef in subroutines - now creation of Bag instances for each Description block is an option - fixed bug in getAttributeValue() when check attribute name - fixed bug in setSource() when add trailing '#' char - bug fixing by rob@eorbit.net * Some of the generated URIs were not prepended with # * The parser spits out lots of 'undefined value used' during the parsing process - fixed warnings in getAttributeValue(), RDFXML_StartElementHandler() - added GenidNumber parameter - updated accordingly to http://www.w3.org/RDF/Implementations/SiRPAC/ - bug fix in reify() when generate the subject property triple - added getReificationCounter() RDFStore::Statement - changed way to return undef in subroutines - fixed warning in getDigest() - updated new() equals() and added hashCode() accordingly to rdf-api-2001-01-19 - Devon Smith changed getDigest to generate digests and hashes that match Stanford java ones exactly RDFStore::RDFNode - fixed bug in hashCode() to avoid bulding the digest each time - added inheritance from RDFStore::Stanford::Digest::Digestable RDFStore::NodeFactory - changed way to return undef in subroutines - implemented createOrdinal() RDStore::Literal - modified getLabel() and getURI() to return a lebel even if the Literal is a BLOB (using Storable) - updated equals() method to make a real comparison of BLOBs using Storable module utils/ - updated rdf.pl, rdfingest.pl, rdfquery.pl and vocabulary-generator.pl - updated dbcat RDFStore::Stanford::Digest::Digestable - added new module which represent objects that can produce a digest version 0.31 - Fri Dec 22 15:31:14 CET 2000 ------------------------------------------------------------------------------------------- This version has renamed all the Perl packages making RDFStore ready to be published to the Perl CPAN archive. The module names have been mapped as follows: version<=0.3 version>=0.31 ================================================================================ Data::MagicTie::Client Data::MagicTie::DBMS Data::MagicTie::DB_File (unchanged) Data::MagicTie::BerkeleyDB (unchanged) Data::MagicTie (unchanged) RDF::Digest::Abstract RDFStore::Stanford::Digest::Abstract RDF::Digest::Util RDFStore::Stanford::Digest::Util RDF::Digest::MD5 RDFStore::Stanford::Digest::MD5 RDF::Digest::Generic RDFStore::Stanford::Digest::Generic RDF::Digest::SHA1 RDFStore::Stanford::Digest::SHA1 RDF::Vocabulary::RDFS RDFStore::Vocabulary::RDFS RDF::Vocabulary::Generator RDFStore::Stanford::Vocabulary::Generator RDF::Vocabulary::DC RDFStore::Vocabulary::DC RDF::Vocabulary::DAML RDFStore::Vocabulary::DAML RDF::Vocabulary::RDF RDFStore::Vocabulary::RDF RDF::Store::SchemaModel RDFStore::SchemaModel RDF::Store::Model RDFStore::Model RDF::Store::NodeFactory RDFStore::NodeFactory RDF::Store::RDFNode RDFStore::RDFNode RDF::Store::Resource RDFStore::Resource RDF::Store::Statement RDFStore::Statement RDF::Store::SetModel RDFStore::SetModel RDF::Store::VirtualModel RDFStore::VirtualModel RDF::Store::FindIndex RDFStore::FindIndex RDF::Store::Literal RDFStore::Literal RDF::RDFNode RDFStore::Stanford::RDFNode RDF::Model RDFStore::Stanford::Model RDF::Statement RDFStore::Stanford::Statement RDF::NodeFactory RDFStore::Stanford::NodeFactory RDF::SetModel RDFStore::Stanford::SetModel RDF::VirtualModel RDFStore::Stanford::VirtualModel RDF::Literal RDFStore::Stanford::Literal RDF::Store RDFStore::Stanford::Store RDF::Digest RDFStore::Stanford::Digest RDF::Resource RDFStore::Stanford::Resource XML::Parser::PenRDF::RDFStore RDFStore::Parser::Styles::MagicTie XML::Parser::PenRDF RDFStore::Parser::SiRPAC XML::Parser::PenRDFStrawman RDFStore::Parser::OpenHealth The only Perl package namespace "invaded" is the Data one with the Data::MagicTie modules. In addition the documentation has been updated and the API modified accordingly to the latest changes in the Stanford Java API 2000-12-05 distribution. (see http://www-db.stanford.edu/~melnik/rdf/rdf-api-2000-12-05.zip) RDFStore::FindIndex - added new index storage method. Does not use Freezed/Thawed arrays if possible RDFStore::Stanford::Digest::Util - fixed nusty bug in digestBytes2HashCode() to cast hash code to INTEGER Data::MagicTie - added get_Options() method Data::MagicTie::BerkeleyDB - completely modified the access methods to Sleepycat library and DBs - see Data::MagicTie::DB_File(3) RDFStore - added use (include) of all RDFStore modules suite RDFStore::Model - fixed bug in add() when adding statements with a Literal value - commented out isEmpty() check in find() due to DBMS(3) efficency problems - updated toStrawmanRDF() method - modifed add() to avoid update of existing statements RDFStore::Stanford::NodeFactory - fixed the parameters checking when create Statements RDFStore::Parser::SiRPAC - fixed bug in parse_start() and parse() to check $file_or_uri is a reference to an URI object - changed wget() Socket handle to work with previous Perl versions (not my $handle) and do HTTP GET even on HTTP 'Location' redirect header - fixed bug in RDFXML_CharacterDataHand() when trim text and $preserveWhiteSpace - fixed bug in processTypedNode() when remove attributes - commented off croak in expandAttributes() when 'expanding predicate element' for production http://www.w3.org/TR/REC-rdf-syntax/#typedNode for xhtml2rdf stuff RDFStore::Parser::OpenHealth - changed wget() Socket handle to work with previous Perl versions (not my $handle) and do HTTP GET even on HTTP 'Location' redirect header - little change when checking if a prefix is undefined utils/ - added rdfingest.pl to ingest (S,P,O) comma separated text files right the way - updated rdf.pl rdfquery.pl - added bagIDs option to rdf.pl version 0.3 - Tue Nov 28 14:02:10 CET 2000 ------------------------------------------------------------------------------------------- This version has updated the Perl modules set accordingly to the latest chnages in the Stanford Java API 2000-11-13 distribution. (see http://www-db.stanford.edu/~melnik/rdf/rdf-api-2000-11-13.zip) Almost all modules have been fixed when checking references/pointers (defined and ref() ) RDF::Store::FindIndex - fixed bugs when checking references/pointers (defined and ref() ) XML::Parser::PenRDF - fixed bug in expandAttributes() when expand rdf:value - Modified addOrder() expandAttributes() accordingly to rdf-api-2000-11-13 - fixed bug in parse() parse_start() to set the Source right - fixed bug in RDFXML_StartElementHandler() when parseLiteral process attributes also - fixed bug in processTypedNode() to manage new attlist way - fixed bug in processPredicate() to manage new attlist way - fixed bugs due to the modifications due rdf-api-2000-10-30. Now $n->{tag} is either $n->name() or $n->localName(); code got more clear also - fixed addTriple() and reify() - more checking and modified to manage right $subject XML::Parser::PenRDF::RDFStore - fixed bug in Assert() checking if $st is a ref and valid RDF::Statement RDF::Vocabulary::RDFS - changed namespace to http://www.w3.org/2000/01/rdf-schema# RDF::Store::Model - fixed bug in find(). Check the type of $t before using methods on it - added toStrawmanRDF() to serialise the model in strawman RDF for XML::Parser::PenRDFStrawman - fixed bug in create() - modified updateDigest() method accordingly to rdf-api-2000-11-13 RDF::Vocabulary::Generator - fixed bug in toPerlName() and dumpVocabulary() avoid grep regex checking RDF::Store::SchemaModel - added getLocalName() and getNamespace() to delegate to instances - changed checking to RDF::SetModel type - modified toString() - fixed miss-spell in validate() Data::MagicTie::Client - fixed bug in FIRSTKEY(). Do not call keys and each anymore. utils/ - little bit of changes in rdf.pl and rdfquery.pl - rdfquery.pl query syntax changed version 0.2 - Mon Nov 13 14:56:46 CET 2000 ------------------------------------------------------------------------------------------- This version updates the whole Perl modules set accordingly to the latest chnages in the Stanford Java API 2000-10-30 distribution. (see http://WWW-DB.Stanford.EDU/~melnik/rdf/rdf-api-2000-10-30.zip) XML::Parser::PenRDF/XML::Parser::PenRDFStrawman - fixed bug in parsefile() to read URL-less filenames (version0.1 was working only with 'file:' URL prefix) - fixed a lot of bugs/inconsistences in new(), parse(), setSource(), parsestring() processXML() in the fetchSchema part, makeAbsolute() - added parse_start a la XML::parser for no-blocking stream parsing using XML::Parser::ExpatNB - pod documentation updated - does not use URI::file anymore - Modified createResource(), XML::Parser::PenRDF::Element and XML::Parser::PenRDF::DataElement accordingly to rdf-api-2000-10-30 - General bug fixing XML::Parser::PenRDF::RDFStore - Init() now setSourceURI() for the model - now the result set is a SetModel RDF::Resource, RDF::NodeFactory, RDF::Store::Literal, RDF::Store::NodeFactory, RDF::Store::RDFNode,RDF::Store::Resource,RDF::Store::Statement - Modified accordingly to rdf-api-2000-10-30 RDF::Store::Model - fixed bug in new() to check if triples is HASH ref when passed by user - fixed bug in find() do avoid to return instances of SetModel (see SchemaModel.pm also) Now result sets are put in an object(model) of the the same type - see find() - modified add() remove() clone() duplicate() and added toString() makePrivate() getNamespace() getLocalName() methods accordingly to rdf-api-2000-10-30 - modifed new(), duplicate(), clone() and find() to support cloned models - modified find() to manage normal Models and indexed Models differently - added optional indirect indexing to find() i.e. the FindIndex stores just digested keys and not the full BLOB; fetch from an index then require an additional look up in triples RDF::Vocabulary::Generator - added more magic keywords to 'reservedWords' list (my, local) - Modified createResource() accordingly to rdf-api-2000-10-30 RDF::NodeFactory - pass @_ array to new methods Data::MagicTie - fixed warning messages RDF::Store::SetModel - fixed bug in intersect() - now all methods return the modified model RDF::Store::FindIndex - fixed miss-spelling bug in remove() - added indirect indexing support to be de-referenced by the caller Model object. samples/ - fixed bugs in rdf.pl and rdfquery.pl - rdfquery.pl uses SetModel to unite (||), intersect (&&), subtract(!), version 0.1 - 2000/11/03 at 04:30 CEST ------------------------------------------------------------------------------------------- - first public version