1$Id: CHANGES,v 1.71 2006/06/19 10:10:21 areggiori Exp $ 2 3Revision history for Perl extension RDFStore. 4 5version 0.51 - Mon Jun 19 09:56:48 BST 2006 6---------------------------------------------------------------------------------------------------------------------------- 7 8 RDFStore.xs 9 - fixed bug into RDFStore_Literal_new() when literal is NULL 10 - fixed bug when using modern threaded versions of perl (added dTHX; definitions) 11 - updated search() to receive an hash-ref as main paramter (see t/01_rdfstore.t for example) 12 - updated TIEHASH() to receive bt_compare_fcn_type parameter after mode (alos updated dbms/clinet tests) 13 - added from() method to DBMS 14 - added RDFStore::if_modified_since() method 15 16 DBMS.pm 17 - added $DBMS::BT_COMP_INT, $DBMS::BT_COMP_DOUBLE and $DBMS::BT_COMP_DATE definitions accordngly to include/rdfstore_flat_store.h 18 19 include/backend_bdb_store_private.h 20 - added from() method 21 22 include/backend_dbms_store_private.h 23 - added from() method 24 25 include/backend_store.h 26 - added from() method 27 28 backend_caching_store.c 29 - updated to use debug malloc/free 30 - added from() method 31 32 backend_bdb_store.c 33 - fixed bug into first() and next() methods by removing DB_DBT_MALLOC flag on returned key 34 - added from() method 35 36 backend_dbms_store.c 37 - added from() method 38 - misc fixed bugs when returning status and errors to caller 39 40 include/rdfstore_ms.h 41 - added some XSD constants 42 43 include/rdfstore_flat_store.h 44 - added b-tree ordering function support if requested on open/creation 45 - added from() method 46 47 rdfstore_flat_store.c 48 - added b-tree ordering function support if requested on open/creation 49 - added from() method 50 - updated delete() method to properly return FLAT_STORE_E_NOTFOUND if key not found 51 52 include/rdfstore.h 53 - added RDFSTORE_INDEXING_VERSION_KEY and RDFSTORE_INDEXING_VERSION constants 54 55 rdfstore_kernel.c 56 - ignore default model context for data access methods like search() and contains() and use explit parameter 57 - updated rdfstore_fetch_object() method to consider also bNodes as source node of the CBD 58 - added xsd:double and xsd:integer b-tree sorted tables 59 - added simple range search using xsd:integer and xsd:double tables 60 - added RDFSTORE_INDEXING_VERSION_KEY to model and check of RDFSTORE_INDEXING_VERSION on connect() 61 - updated insert and remove methods to check rdfstore_flat_store_delete() errors and avoid to index word as stem too 62 - added rdfstore_if_modified_since() method and updated insert and remove methods to touch last modify date 63 - added rdfstore_get_version() method to return perl level compiled time $VERSION string 64 65 RDFStore::NodeFactory 66 - fixed bNodes identifers generation 67 68 RDFStore::Parser 69 - updated wget() adding Accept: HTTP header and use LWP::UserAgent if available 70 71 RDFStore::Parser::SiRPAC 72 - updated wget() method invocation 73 - force rdf:parseType="Literal" if rdf:dataType="http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral" 74 - fixed bug in processDescription() when expanding rdf:nodeID on predicate with inline typed node 75 76 RDFStore::Parser::NTriples 77 - updated wget() method invocation 78 79 RDFStore::Parser::Styles::RDFStore::Statement 80 - new module to dump dump RDF/XML parsing results / statements 81 82 RDQL::Parser 83 - added SELECT DISTINCT 84 - added SPARQL PREFIX support and default/built-in prefixes 85 - added # and // style comments 86 - added SPARQL QNAME like support 87 - added ?prefix:var QName support to vars 88 - added SPARQL CONSTRUCT support 89 - added SPARQL $var support 90 - added getQueryType() method 91 - added SPARQL DESCRIBE support 92 - fixed bug in Literal() when matching floating point numbers 93 - updated constraints and removed AND keyword to be SPARQL compatible 94 - added not standard RDQL/SPARQL DELETE support 95 - added default SPARQL PREFIX op: <http://www.w3.org/2001/sw/DataAccess/operations> and PREFIX fn: <http://www.w3.org/2004/07/xpath-functions> 96 - updated and simplified constraints productions to reflect latest SPARQL spec 97 - constraints are now stacked into a RPN 98 - added full SPARQL graph-patterns and grouping 99 - added SPARQL FROM NAMED support 100 - added SPARQL LIMIT support 101 - added SPARQL OFFSET support 102 - added SPARQL ORDER BY support 103 104 DBD::RDFStore 105 - added SELECT DISTINCT support 106 - updated RDF-for-XML format to return xsi:type information 107 - start adding empty bound/var support 108 - added ?prefix:var QName support to vars 109 - updated RDF/XML format to stream one single graph 110 - added SPARQL CONSTRUCT support 111 - added DBD::RDFStore::st::getQueryStatement() method 112 - renamed asRDF DBI parameter as results - and removed output handle and output_string modes 113 - updated XML and misc RDF output format interface to use DBD::RDFStore::st specific methods: 114 fetchrow_XML(), fetchall_XML(), fetchsubgraph_serialize(), fetchallgraph_serialize() 115 - added fetchsubgraph() and fetchallgraph() methods to return matches as RDFStore::Model 116 - added SPARQL DESCRIBE support 117 - fixed bug into _prepareTriplepattern() when bNode is substituted 118 - added simple RDF/S rdfs:subClassOf rdfs:subPropertyOf and owl:sameAs inferencing if aval into input RDF merge and requested 119 - updated search() method call to use new XS code interface (hash ref) 120 - added simpler XML serialization (dawg-xml) see http://www.w3.org/2001/sw/DataAccess/rf1/ 121 - replaced rdfqr-results with dawg-results format http://www.w3.org/2001/sw/DataAccess/tests/result-set# 122 - removed rs:size from dawg-results format see http://lists.w3.org/Archives/Public/public-rdf-dawg/2004OctDec/0196.html 123 - added not standard RDQL/SPARQL DELETE support 124 - updated to rw mode for database connection if specified or DELETE requested 125 - added default SPARQL PREFIX op: <http://www.w3.org/2001/sw/DataAccess/operations> and PREFIX fn: <http://www.w3.org/2004/07/xpath-functions> 126 - added basic set of SPARQL operations and functions - see http://www.w3.org/2001/sw/DataAccess/rq23/#tests 127 - constraints are now process using a RPN stack 128 - added simple SPARQL OPTIONAL keyword support 129 - fixed bug when processing bNodes 130 - added SPARQL LIMIT support 131 - added SPARQL OFFSET support 132 - added SPARQL ORDER BY support 133 134 lib/RDFStore/Model 135 - updated search() method call to use new XS code interface (hash ref) 136 - added ifModifiedSince() method 137 138 utils/rdfquery.pl 139 - replaced rdfqr-results with dawg-results format http://www.w3.org/2001/sw/DataAccess/tests/result-set# 140 - added dawg-xml serialization ( see http://www.w3.org/2001/sw/DataAccess/rf1/ ) 141 - updated to use more general fetchrow_XML() adn fetchsubgraph_serialize() methods and return XML results by default 142 - added -smart option to due simple inferencing 143 - removed -query option and reads query either as string or from specified filename 144 - added 'comment' and 'metadata' options 145 146 utils/rdf.pl 147 - use RDFStore::Parser::Styles::RDFStore::Statement if no storage is required 148 - added '-version' option to print $RDFStore::VERSION 149 150 RDFStore::Serializer::RDFXML 151 - fixed bug when model context is set 152 153 RDFStore::Serializer::RSS 154 - fixed bug when model context is set 155 156version 0.5 - Thu Aug 19 20:08:14 CEST 2004 157---------------------------------------------------------------------------------------------------------------------------- 158 159 A brand new indexing model for RDF data has been developed in this release - such a indexing model allows to store 160 quite efficienty "pedantic" RDF descriptions by leveraging on compression of the index of triples using a custom RLE+VLE 161 compression algorithm written in C and XS. It is under investigation the real need to have a custom compression algorithm 162 for RDFStore instead of using one in the public domain; some tests showed that general purpose algorithms like LZO or LZF 163 perfom worse in the specific case of RDFStore where the sparse matrix contains well-known patterns. 164 165 This version start to support the RDF Data Query language (RDQL/Squish) via a proper DBD::RDFStore DBI driver 166 (see http://www.hpl.hp.co.uk/people/afs/RDQL/ and http://swordfish.rdfweb.org/rdfquery/) The software support tha basic 167 query language with some extensions to run free-text queries over literals (property values). See also the RDF Query and Rules 168 page at http://www.w3.org/2003/03/rdfqr-tests/ 169 170 RDFStore::Model now support basic single statement-grouping (i.e. "context") per statement that allow to run storage 171 operations giving a kind of context to them e.g. a spatial or temporal context or just the source URI; all basic model 172 method have been updated to support that. This stuff is really much close to the on going work of RDF Core WG and other 173 proposals about adding context information to individual triples. This software part is just meant to be a useful and practical 174 artifact and does not want or pretend any of the complex issues being discussed in the RDF community. 175 176 The RDFStore::Parser::OpenHealth parser has been removed from the distribution 177 178 Being that the new storage model does not require Data::MagicTie anymore, the module is being distributed separatly (not on CPAN even ;) 179 180 Some useless modules has been removed from the distribution and some has been renamed; in general the basic storage 181 functionalities are provided through the RDFStore module, while the Stanford API specific code is available in the RDFStore::* modules. 182 The SiRPAC RDF parser is still being distributed with the main storage sources but they will be also distributed separately 183 in the future (XML::SAX::RDF::Filter or something) 184 185 UTF-8 (Unicode) support has been natively introduced into this release - custom C/XS code has been written to allow convertion 186 from/to utf8 to other char encodings - the perl use can also use the RDFStore::Util::UTF8(3) to get general string utility functions 187 which work on UTF8/Unicode. 188 189 Things in CVS now also into the sourceoforge RDFStore CVS repository. In addition the system should compile fine on most of the 190 UNIX systems out there (including the dbms/ tcp/ip deamon) 191 192 Backend now fully general - software ships with BerkeleyDB, DBMS and caching (in-memory) backends 193 194 Basic caching layer added which should speed up all the DB and I/O operations 195 196 t/ 197 - updated all test cases 198 - added 04_rdql.t, 05_serializier.t and 06_objects tests 199 200 RDFStore 201 - 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 202 some speed and credibility here :) Here is the place where all perl world magics happen....almost 203 - now brand new C low-level API interfaced to perl via XS code 204 205 RDQL::Parser 206 - new module 207 208 DBD::RDFStore 209 - new DBI driver to run RDQL/Squish SQL like queries :-) allows to dump query results in several different formats 210 211 RDFStore::Iterator 212 - new module 213 214 RDFStore::Object 215 - new module 216 217 RDFStore::Serializer 218 - new module 219 220 RDFStore::Serializer::RDFXML 221 - new module 222 223 RDFStore::Serializer::NTriples 224 - new module 225 226 RDFStore::Serializer::RSS 227 - new module 228 229 RDFStore::Util::UTF8 230 - new module 231 232 RDFStore::Model 233 - brand new design now using the faster C/XS RDFStore(3) module....finally :) 234 - updated methods to avoid a full copy of statements across when the model is shared if possible 235 - added basic support for statements grouping - see setContext(), getContext() and resetContext() 236 - zapped toStrawmanRDF() method 237 - added serialize() method to generally dump a model/graph to a string or filehanlde 238 - added isConnected() and isRemote() methods 239 - added unite(), subtract(), intersect(), complement() and exor() methods 240 - re-added RDFStore::Resource inheritance 241 - added getParser(), getReader(), getSerializer() and getWriter() methods 242 243 RDFStore::Parser 244 - new module 245 - includes wget() now using IO::Socket and other general purpose parsing methods 246 247 RDFStore::Parser::SiRPAC 248 - fixed bug in processDescription() 249 - fixed bug in processTypedNode() when removeAttribute 250 - fixed bug in makeAbsolute() when LocalName contains '#' 251 - removed xml:space handling in RDFXML_CharacterDataHandler() 252 - fixed bug in processPredicate() - does not generate triples when PCDATA is pure whitespaces stuff and there are XML subelements 253 - fixed bug in processListItem() when generate rdf:li elements 254 - added rdfcroak() instead of using $expat->xpcroak() 255 - updated newReificationID() 256 - added RDFMS_nodeID and RDFMS_datatype 257 - updated reify() 258 - added rdf:nodeID support 259 - added rdf:parseType="Collection" support to processPredicate() 260 - fixed bug in processPredicate() to force a resource node object for rdf:type on predicate with rdf:resource 261 - removed parse_start() method and added parsestream() to do expat no-blocking parseing of large XML streams 262 - removed processListItem() - new specs require to process containers as nomral predicates and simply enumerating elements 263 - fixed bug in processContainer() to treat RDF containers just like any other typed node but with rdf:li or rdf:_n nodes 264 - added xml:base support 265 - added xml:lang support 266 - added manage_bNodes callback/hanlder 267 - updated bNode identifier generation algorithm - now parser run wide unique - see newReificationID() 268 - various fixes when using getAttributeValue() 269 - updated rdfcroak() to return source name too when failing 270 - updated processXML() - removed the fetchSchema part 271 - force source to STDIN: if not defined 272 - removed RDFCore_Issues option - now default 273 - added rdfwarn() 274 - added warnings() 275 - moved common code to RDFStore::Parser 276 - added rdf:datatype support 277 - added rdfstore:context support 278 279 RDFStore::Parser::NTriples 280 - new module 281 282 RDFStore::Vocabulary::DC 283 - updated DCMI namespace to http://purl.org/dc/elements/1.1/ 284 285 RDFStore::Parser::Styles::RDFStore::Model 286 - renamed from RDFStore::Parser::Styles::MagicTie 287 - added Context option to the storage 288 - fixed typing error when apssing the nodeFactory to the model 289 - allows to specify an existing RDFStore::Model as input 290 - added owl:imports support 291 292 utils/ 293 - updated rdfquery.pl to use RDQL/Squish syntax and read some default storage parameters 294 - added context/provenance flags to rdf.pl and rdfingest.pl 295 - added pod2html.pl utility to HTMl format native perl POD documentation 296 297 RDFStore::Resource 298 - added anonymous resources support - see also RDFStore::NodeFactory(3) and RDFStore::Model(3) 299 - added isAnonymous() and isbNode() 300 - updated accordingly to new RDFStore API 301 - removed BLOB support 302 303 RDFStore::RDFNode 304 - updated accordingly to new RDFStore API 305 - removed BLOB support 306 307 RDFStore::Literal 308 - updated accordingly to new RDFStore API 309 - removed BLOB support 310 311 RDFStore::Statement 312 - updated accordingly to new RDFStore API 313 - added statements reification and context support 314 315 RDFStore::Vocabulary::Generator 316 - updated to use RDFStore::Model new API 317 318 RDFStore::Vocabulary::DCQ 319 - updated 320 321 RDFStore::Vocabulary::DCT 322 - new vocabulary for DCMI Type Vocabulary 323 324 RDFStore::Vocabulary::RSS 325 - new vocabulary for RSS1.0 see http://purl.org/rss/1.0/ 326 327 RDFStore::Vocabulary::RDFStoreContext 328 - new vocabulary for RDFStore contexts 329 330 RDFStore::Vocabulary::OWL 331 - new vocabulary for OWL see http://www.w3.org/2002/07/owl# 332 333 RDFStore::NodeFactory 334 - added anonymous resource support via createAnonymousResource() and createbNode() - see also RDFStore::Resource(3) 335 - added statements reification support via createReifiedStatement() - see also RDFStore::Statement(3) 336 - updated accordingly to new RDFStore API 337 - added createNTriple() method 338 339 RDFStore::SetModel 340 - removed now included into main RDFStore::Model(3) 341 342 RDFStore::Util::Digest 343 - added as new module to manage SHA-1 cryptographic digests natively (using apache SHA-1 code) most of functionality 344 like old module RDFStore::Stanford::Digest::Util(2) 345 346 RDFStore::Model::Iterator 347 - re-implementation of old RDFStore::Model::Statements using RDFStore::Iterator 348 349version 0.42 - Fri Aug 31 17:31:13 CEST 2001 350------------------------------------------------------------------------------------------- 351 352 Updated Makefiel.PL 353 354 utils/ 355 - added rdf2n3p.pl to test cases as part of the RDF Core working group (see 356 http://www.w3.org/2001/sw/RDFCore/ntriples/) 357 - updated rdf.pl 358 - updated rdfquery.pl 359 - updated rdfingest.pl 360 - updated dbcat 361 362 RDFStore::Parser::SiRPAC 363 - updated accordingly to RDF Core Working Group decisions (see 364 http://www.w3.org/2000/03/rdf-tracking/#attention-developers) 365 * rdf-ns-prefix-confusion (carp if error) 366 * rdfms-abouteachprefix (removed aboutEachPrefix) 367 * rdfms-empty-property-elements (updated processDescription() and processPredicate()) 368 * rdf-containers-formalmodel (updated processListItem()) 369 - added RDFCore_Issues option 370 - fixed bug when calling setSource() internally 371 - updated makeAbsolute() 372 - fixed bug in processListItem() when calling processContainer() 373 - fixed bug in processPredicate() for empty predicate elements having zero attributes 374 375 Data::MagicTie 376 - fixed compilation bug while strict subs when missing DB_File 377 378 t/ 379 - updated magictie.t 380 - updated rdfstore.t 381 382 RDFStore::Statement 383 - updated toString() and getDigest() 384 385 RDFStore::Model 386 - complete redesign of the indexing method up to free-text search on literals 387 - added tied array iterator RDFStore::Model::Statements to allow fetching results one by one 388 - modified find() to allow a 4th paramater to make free-text search over literals 389 390 RDFStore::SetModel 391 - updated accordingly to new RDFStore::Model 392 393version 0.41 - Thu Jul 12 17:11:02 CEST 2001 394------------------------------------------------------------------------------------------- 395 396 RDFStore::Parser::SiRPAC 397 - fixed bug with XML::Parser 2.30 using expat-1.95.1 398 * XMLSCHEMA set to http://www.w3.org/XML/1998/namespace (see http://www.w3.org/TR/1999/REC-xml-names-19990114/#ns-using) 399 * added XMLSCHEMA_prefix 400 - changed RDF_SCHEMA_NS to http://www.w3.org/2000/01/rdf-schema# 401 402 RDFStore::Parser::OpenHealth 403 - fixed bug with XML::Parser 2.30 using expat-1.95.1 404 * XMLSCHEMA set to http://www.w3.org/XML/1998/namespace (see http://www.w3.org/TR/1999/REC-xml-names-19990114/#ns-using) 405 * added XMLSCHEMA_prefix 406 - changed RDF_SCHEMA_NS to http://www.w3.org/2000/01/rdf-schema# 407 408 RDFStore::Stanford::Digest::Util 409 - updated digestBytes2HashCode() 410 411 RDFStore::Model 412 - updated _getLookupValue() and _getValuesFromLookup() to consider negative hashcodes 413 414 RDFStore::Literal 415 - added getDigest() to generate the digest using quotes and the label 416 417 Data::MagicTie 418 - fixed compilation bug while strict subs 419 - added a warning in del_dup() if not supported by underlying DB_File library 420 - updated _untie() to avoid warnings while untie databases 421 422 t/ 423 - updated rdfstore.t 424 - updated parser.t 425 - updated magictie.t moving DBMS specific code to dbms/DBMS/t/magictie.t 426 427version 0.4 - Mon Jun 18 17:18:36 CEST 2001 428------------------------------------------------------------------------------------------- 429 430 This a major release. A lot of changes ahs been made to the storage system in parituclar 431 the dbms/ TCP/IP has been compeltely updated and the Data::MagicTie BerkeleyDB has been 432 updated to make properly DB locking to handle concurrency and avoid dead-locks situations. 433 The API modified accordingly to the latest changes in the Stanford Java API 2001-01-19 distribution. 434 (see http://www-db.stanford.edu/~melnik/rdf/rdf-api-2001-01-19.zip) 435 The SiRPAC parser has been also updated accordingly to the latest W3C 436 version at http://www.w3.org/RDF/Implementations/SiRPAC/ 437 438 Updated documentation of all the perl modules and fixed a few typo warnings. 439 440 dbms/CHANGES 441 - added separated changes file for the DBMS module 442 443 Makefile.PL 444 - updated 445 446 RDFStore 447 - removed FindIndex module 448 449 RDFStore::Stanford::Vocabulary::Generator 450 - fixed bug in dumpVocabulary() when matching input namespace (escape plus signs) 451 and output full qualified package variable names of voc properties 452 - fixed bug in createVocabulary() when check package name 453 - fixed miss-spelling bug in toPerlName() 454 - fixed a few warnings 455 - updated accordingly to new RDFStore::Model 456 457 RDFStore::Model 458 - modifed add() to return undef if the triples exists already in the database 459 - changed way to return undef in subroutines 460 - adapted to use the new Data::MagicTie interface 461 - complete re-design of the indexing and storage method 462 - added getOptions() method 463 - Devon Smith <devon@taller.pscl.cwru.edu> changed getDigestBytes() to generate digests and hashes 464 that match Stanford java ones exactly 465 - added inheritance from RDFStore::Stanford::Digest::Digestable 466 - removed RDFStore::Stanford::Resource inheritance 467 468 RDFStore::Resource 469 - added check on local name when create a new Resource 470 - allow creation of resources from URI(3) objects or strings using XMLNS LocalPart 471 - hashCode() and getDigest() return separated values for localName and namespace if requested 472 473 RDFStore::SetModel 474 - updated accordingly to new RDFStore::Model 475 476 RDFStore::Parser::Styles::MagicTie 477 - modified Assert() to print only new statements 478 479 Data::MagicTie 480 - complete redesign of Data::MagicTie. Dropped Data::MagicTie::(DBMS|DB_File|BerkeleyDB) modules 481 Everything is self contained in one model now. 482 - changed options labels 483 - modified mode option managemnt 484 - added checking if DBMS, BerkeleyDB, DB_File or SDBM_File styles can not be loaded 485 - changed way to return undef in subroutines 486 - remove db files directory if tie operation fails 487 - FIRSTKEY() and NEXTKEY() methods optimised 488 - use File::Path module to create and remove directories to be portable 489 - changed mode to DB_BTREE for DB_File TIEHASH 490 - added BerkeleyDB file locking in TIEHASH and TIEARRAY 491 - took off a few useless sync() calls 492 - dropped lr (local/remote) option 493 - dropped noft (no freeze/thaw) option 494 - added in-memory style 495 - added sharing option 496 - added SDBM_File default style 497 - fixed warning in _keyDB() 498 - added perl version checking for Data::MagicTie::Array methods 499 - added multiple reader/single writer locking support for DB_File 500 - does not generate multiple '.db' extensions to files in _tie() 501 502 t/ 503 - updated magictie.t 504 - added rdfstore.t 505 506 samples 507 - zapped a few examples 508 - updated test.pl 509 510 samples/rdf 511 - zapped a few examples 512 513 samples/rdf/vocabularies 514 - zapped a few examples. Updated DAML and foaf schemas 515 - added RSS schema 516 - added XML infoset RDF Schema 517 - zapped DublinCore 518 - added 22-rdf-syntax-ns, rdf-schema, 13-dces and 13-dcq 519 520 RDFStore::Vocabulary::DCQ 521 - added DCQ vocabulary http://dublincore.org/2000/03/13-dcq# 522 523 RDFStore::Vocabulary::DC 524 - updated accordingly to RDFStore::Stanford::Vocabulary::Generator changes and http://dublincore.org/2000/03/13/dces# 525 526 RDFStore::Vocabulary::DAML 527 - updated accordingly to RDFStore::Stanford::Vocabulary::Generator changes and http://www.daml.org/2001/03/daml+oil.daml 528 529 RDFStore::Vocabulary::RDF 530 - updated accordingly to RDFStore::Stanford::Vocabulary::Generator changes 531 - 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) 532 533 RDFStore::Vocabulary::RDFS 534 - updated accordingly to RDFStore::Stanford::Vocabulary::Generator changes 535 536 RDFStore::Stanford::Digest::Util 537 - fixed stupid/braindead bug when disable warnings- Thanks to Marc Lehmann <pcg@goof.com> 538 - added getDigestAlgorithm() method 539 - Devon Smith <devon@taller.pscl.cwru.edu> changed digestBytes2HashCode() and toHexString() to 540 generate digests and hashes that match Stanford java ones exactly 541 542 RDFStore::Parser::OpenHealth 543 - changed way to return undef in subroutines 544 - fixed warnings in getAttributeValue() 545 546 RDFStore::Parser::SiRPAC 547 - changed way to return undef in subroutines 548 - now creation of Bag instances for each Description block is an option 549 - fixed bug in getAttributeValue() when check attribute name 550 - fixed bug in setSource() when add trailing '#' char 551 - bug fixing by rob@eorbit.net 552 * Some of the generated URIs were not prepended with # 553 * The parser spits out lots of 'undefined value used' during the parsing process 554 - fixed warnings in getAttributeValue(), RDFXML_StartElementHandler() 555 - added GenidNumber parameter 556 - updated accordingly to http://www.w3.org/RDF/Implementations/SiRPAC/ 557 - bug fix in reify() when generate the subject property triple 558 - added getReificationCounter() 559 560 RDFStore::Statement 561 - changed way to return undef in subroutines 562 - fixed warning in getDigest() 563 - updated new() equals() and added hashCode() accordingly to rdf-api-2001-01-19 564 - Devon Smith <devon@taller.pscl.cwru.edu> changed getDigest to generate digests and hashes 565 that match Stanford java ones exactly 566 567 RDFStore::RDFNode 568 - fixed bug in hashCode() to avoid bulding the digest each time 569 - added inheritance from RDFStore::Stanford::Digest::Digestable 570 571 RDFStore::NodeFactory 572 - changed way to return undef in subroutines 573 - implemented createOrdinal() 574 575 RDStore::Literal 576 - modified getLabel() and getURI() to return a lebel even if the Literal is a BLOB (using Storable) 577 - updated equals() method to make a real comparison of BLOBs using Storable module 578 579 utils/ 580 - updated rdf.pl, rdfingest.pl, rdfquery.pl and vocabulary-generator.pl 581 - updated dbcat 582 583 RDFStore::Stanford::Digest::Digestable 584 - added new module which represent objects that can produce a digest 585 586version 0.31 - Fri Dec 22 15:31:14 CET 2000 587------------------------------------------------------------------------------------------- 588 589 This version has renamed all the Perl packages making RDFStore ready to be published to 590 the Perl CPAN archive. The module names have been mapped as follows: 591 592 version<=0.3 version>=0.31 593 ================================================================================ 594 Data::MagicTie::Client Data::MagicTie::DBMS 595 Data::MagicTie::DB_File (unchanged) 596 Data::MagicTie::BerkeleyDB (unchanged) 597 Data::MagicTie (unchanged) 598 RDF::Digest::Abstract RDFStore::Stanford::Digest::Abstract 599 RDF::Digest::Util RDFStore::Stanford::Digest::Util 600 RDF::Digest::MD5 RDFStore::Stanford::Digest::MD5 601 RDF::Digest::Generic RDFStore::Stanford::Digest::Generic 602 RDF::Digest::SHA1 RDFStore::Stanford::Digest::SHA1 603 RDF::Vocabulary::RDFS RDFStore::Vocabulary::RDFS 604 RDF::Vocabulary::Generator RDFStore::Stanford::Vocabulary::Generator 605 RDF::Vocabulary::DC RDFStore::Vocabulary::DC 606 RDF::Vocabulary::DAML RDFStore::Vocabulary::DAML 607 RDF::Vocabulary::RDF RDFStore::Vocabulary::RDF 608 RDF::Store::SchemaModel RDFStore::SchemaModel 609 RDF::Store::Model RDFStore::Model 610 RDF::Store::NodeFactory RDFStore::NodeFactory 611 RDF::Store::RDFNode RDFStore::RDFNode 612 RDF::Store::Resource RDFStore::Resource 613 RDF::Store::Statement RDFStore::Statement 614 RDF::Store::SetModel RDFStore::SetModel 615 RDF::Store::VirtualModel RDFStore::VirtualModel 616 RDF::Store::FindIndex RDFStore::FindIndex 617 RDF::Store::Literal RDFStore::Literal 618 RDF::RDFNode RDFStore::Stanford::RDFNode 619 RDF::Model RDFStore::Stanford::Model 620 RDF::Statement RDFStore::Stanford::Statement 621 RDF::NodeFactory RDFStore::Stanford::NodeFactory 622 RDF::SetModel RDFStore::Stanford::SetModel 623 RDF::VirtualModel RDFStore::Stanford::VirtualModel 624 RDF::Literal RDFStore::Stanford::Literal 625 RDF::Store RDFStore::Stanford::Store 626 RDF::Digest RDFStore::Stanford::Digest 627 RDF::Resource RDFStore::Stanford::Resource 628 XML::Parser::PenRDF::RDFStore RDFStore::Parser::Styles::MagicTie 629 XML::Parser::PenRDF RDFStore::Parser::SiRPAC 630 XML::Parser::PenRDFStrawman RDFStore::Parser::OpenHealth 631 632 The only Perl package namespace "invaded" is the Data one with the Data::MagicTie modules. 633 634 In addition the documentation has been updated and the API modified accordingly to the latest 635 changes in the Stanford Java API 2000-12-05 distribution. 636 (see http://www-db.stanford.edu/~melnik/rdf/rdf-api-2000-12-05.zip) 637 638 RDFStore::FindIndex 639 - added new index storage method. Does not use Freezed/Thawed arrays if possible 640 641 RDFStore::Stanford::Digest::Util 642 - fixed nusty bug in digestBytes2HashCode() to cast hash code to INTEGER 643 644 Data::MagicTie 645 - added get_Options() method 646 647 Data::MagicTie::BerkeleyDB 648 - completely modified the access methods to Sleepycat library and DBs - see Data::MagicTie::DB_File(3) 649 650 RDFStore 651 - added use (include) of all RDFStore modules suite 652 653 RDFStore::Model 654 - fixed bug in add() when adding statements with a Literal value 655 - commented out isEmpty() check in find() due to DBMS(3) efficency problems 656 - updated toStrawmanRDF() method 657 - modifed add() to avoid update of existing statements 658 659 RDFStore::Stanford::NodeFactory 660 - fixed the parameters checking when create Statements 661 662 RDFStore::Parser::SiRPAC 663 - fixed bug in parse_start() and parse() to check $file_or_uri 664 is a reference to an URI object 665 - changed wget() Socket handle to work with previous Perl versions (not my $handle) and 666 do HTTP GET even on HTTP 'Location' redirect header 667 - fixed bug in RDFXML_CharacterDataHand() when trim text and $preserveWhiteSpace 668 - fixed bug in processTypedNode() when remove attributes 669 - commented off croak in expandAttributes() when 'expanding predicate element' for 670 production http://www.w3.org/TR/REC-rdf-syntax/#typedNode for xhtml2rdf stuff 671 672 RDFStore::Parser::OpenHealth 673 - changed wget() Socket handle to work with previous Perl versions (not my $handle) and 674 do HTTP GET even on HTTP 'Location' redirect header 675 - little change when checking if a prefix is undefined 676 677 utils/ 678 - added rdfingest.pl to ingest (S,P,O) comma separated text files right the way 679 - updated rdf.pl rdfquery.pl 680 - added bagIDs option to rdf.pl 681 682version 0.3 - Tue Nov 28 14:02:10 CET 2000 683------------------------------------------------------------------------------------------- 684 685 This version has updated the Perl modules set accordingly to the latest chnages in the Stanford 686 Java API 2000-11-13 distribution. (see http://www-db.stanford.edu/~melnik/rdf/rdf-api-2000-11-13.zip) 687 688 Almost all modules have been fixed when checking references/pointers (defined and ref() ) 689 690 RDF::Store::FindIndex 691 - fixed bugs when checking references/pointers (defined and ref() ) 692 693 XML::Parser::PenRDF 694 - fixed bug in expandAttributes() when expand rdf:value 695 - Modified addOrder() expandAttributes() accordingly to rdf-api-2000-11-13 696 - fixed bug in parse() parse_start() to set the Source right 697 - fixed bug in RDFXML_StartElementHandler() when parseLiteral process attributes also 698 - fixed bug in processTypedNode() to manage new attlist way 699 - fixed bug in processPredicate() to manage new attlist way 700 - fixed bugs due to the modifications due rdf-api-2000-10-30. Now $n->{tag} is either 701 $n->name() or $n->localName(); code got more clear also 702 - fixed addTriple() and reify() - more checking and modified to manage right $subject 703 704 XML::Parser::PenRDF::RDFStore 705 - fixed bug in Assert() checking if $st is a ref and valid RDF::Statement 706 707 RDF::Vocabulary::RDFS 708 - changed namespace to http://www.w3.org/2000/01/rdf-schema# 709 710 RDF::Store::Model 711 - fixed bug in find(). Check the type of $t before using methods on it 712 - added toStrawmanRDF() to serialise the model in strawman RDF for 713 XML::Parser::PenRDFStrawman 714 - fixed bug in create() 715 - modified updateDigest() method accordingly to rdf-api-2000-11-13 716 717 RDF::Vocabulary::Generator 718 - fixed bug in toPerlName() and dumpVocabulary() avoid grep regex checking 719 720 RDF::Store::SchemaModel 721 - added getLocalName() and getNamespace() to delegate to instances 722 - changed checking to RDF::SetModel type 723 - modified toString() 724 - fixed miss-spell in validate() 725 726 Data::MagicTie::Client 727 - fixed bug in FIRSTKEY(). Do not call keys and each anymore. 728 729 utils/ 730 - little bit of changes in rdf.pl and rdfquery.pl 731 - rdfquery.pl query syntax changed 732 733version 0.2 - Mon Nov 13 14:56:46 CET 2000 734------------------------------------------------------------------------------------------- 735 736 This version updates the whole Perl modules set accordingly to the latest chnages in the Stanford 737 Java API 2000-10-30 distribution. (see http://WWW-DB.Stanford.EDU/~melnik/rdf/rdf-api-2000-10-30.zip) 738 739 XML::Parser::PenRDF/XML::Parser::PenRDFStrawman 740 - fixed bug in parsefile() to read URL-less filenames 741 (version0.1 was working only with 'file:' URL prefix) 742 - fixed a lot of bugs/inconsistences in new(), parse(), setSource(), parsestring() 743 processXML() in the fetchSchema part, makeAbsolute() 744 - added parse_start a la XML::parser for no-blocking stream 745 parsing using XML::Parser::ExpatNB 746 - pod documentation updated 747 - does not use URI::file anymore 748 - Modified createResource(), XML::Parser::PenRDF::Element and 749 XML::Parser::PenRDF::DataElement accordingly to rdf-api-2000-10-30 750 - General bug fixing 751 752 XML::Parser::PenRDF::RDFStore 753 - Init() now setSourceURI() for the model 754 - now the result set is a SetModel 755 756 RDF::Resource, RDF::NodeFactory, RDF::Store::Literal, RDF::Store::NodeFactory, 757 RDF::Store::RDFNode,RDF::Store::Resource,RDF::Store::Statement 758 - Modified accordingly to rdf-api-2000-10-30 759 760 RDF::Store::Model 761 - fixed bug in new() to check if triples is HASH ref when passed by user 762 - fixed bug in find() do avoid to return instances of SetModel (see SchemaModel.pm also) 763 Now result sets are put in an object(model) of the the same type - see find() 764 - modified add() remove() clone() duplicate() and added toString() makePrivate() 765 getNamespace() getLocalName() methods accordingly to rdf-api-2000-10-30 766 - modifed new(), duplicate(), clone() and find() to support cloned models 767 - modified find() to manage normal Models and indexed Models differently 768 - added optional indirect indexing to find() i.e. the FindIndex 769 stores just digested keys and not the full BLOB; fetch from an 770 index then require an additional look up in triples 771 772 RDF::Vocabulary::Generator 773 - added more magic keywords to 'reservedWords' list (my, local) 774 - Modified createResource() accordingly to rdf-api-2000-10-30 775 776 RDF::NodeFactory 777 - pass @_ array to new methods 778 779 Data::MagicTie 780 - fixed warning messages 781 782 RDF::Store::SetModel 783 - fixed bug in intersect() 784 - now all methods return the modified model 785 786 RDF::Store::FindIndex 787 - fixed miss-spelling bug in remove() 788 - added indirect indexing support to be de-referenced by the caller 789 Model object. 790 791 samples/ 792 - fixed bugs in rdf.pl and rdfquery.pl 793 - rdfquery.pl uses SetModel to unite (||), intersect (&&), subtract(!), 794 795version 0.1 - 2000/11/03 at 04:30 CEST 796------------------------------------------------------------------------------------------- 797 - first public version 798