Revision history for Perl extension RDFStore. 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