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