File: README

package info (click to toggle)
librdf-trine-perl 1.019-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster
  • size: 10,204 kB
  • sloc: perl: 17,601; sql: 20; makefile: 12; sh: 4
file content (995 lines) | stat: -rw-r--r-- 59,071 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
RDF::Trine - An RDF Framework for Perl.

   RDF::Trine provides an RDF framework with an emphasis on extensibility, API
   stability, and the presence of a test suite. The package consists of several
   components:

   * RDF::Trine::Model - RDF model providing access to a triple store.
   * RDF::Trine::Parser - Native RDF parsers (RDF/XML, RDFa, Turtle, RDF/JSON,
     TriG, N-Triples, and N-Quads).
   * RDF::Trine::Serializer, a set of native RDF serializers for RDF/XML, Turtle,
     RDF/JSON, N-Triples, Canonical N-Triples, and N-Quads.
   * RDF::Trine::Store::DBI - A triple store for MySQL and SQLite, based on the
     Redland schema.
   * RDF::Trine::Iterator - Iterator classes for variable bindings and RDF
     statements, used by RDF::Trine::Store, RDF::Trine::Model, and RDF::Query.
   * RDF::Trine::Namespace - A convenience class for easily constructing RDF
     node objects from URI namespaces.

REQUIREMENTS

	To install RDF::Trine you'll need the following perl modules installed:

     * Algorithm::Combinatorics
     * Cache::LRU
     * Data::UUID
     * DBI
     * DBIx::Connector
     * DBD::SQLite
     * Digest::MD5
     * Error
     * HTTP::Negotiate
     * JSON
     * LWP::UserAgent
     * List::Util
     * List::MoreUtils
     * Log::Log4perl
     * Math::BigInt
     * Scalar::Util
     * Set::Scalar
     * Text::CSV_XS
     * Text::Table
     * Time::HiRes
     * Unicode::Escape
     * Unicode::String
     * URI
     * XML::CommonNS
     * XML::Namespace
     * XML::SAX
     * XML::LibXML
     * XML::LibXML::SAX


	The following additional modules are optional:

     * DBD::Pg
     * DBD::Mysql
     * Test::More
     * Test::Exception
     * RDF::RDFa::Parser

INSTALLATION

   To install, run:

   perl Makefile.PL
   make
   make test
   make install

VERSION HISTORY

  Version 1.019 (2018-01-04)

     * BUG FIXES
         	Add test case for TSV serializer fixes (#155, #156 from @phochste).

  Version 1.018 (2017-06-20)

     * BUG FIXES
         	Fix API inconsistency in RDF::Trine::Store::SPARQL (#149, #150 from @minusdavid).

  Version 1.017 (2017-06-01)

     * BUG FIXES
         	Fixes to data update code in RDF::Trine::Store::SPARQL (#146 from @minusdavid).

  Version 1.016 (2017-04-24)

     * BUG FIXES
         	Fixes to RDF::Trine::Store::Redland (#145 from @doriantaylor).
     * OTHER
     		Updated Makefile.PL for perl 5.26.
         	Remove use of TryCatch in scripts and developer tests.

  Version 1.015 (2017-01-04)

     * BUG FIXES
         	Remove call to $dbh->begin_work when already working with AutoCommit turned off.
     * ENHANCEMENTS
         	Updated rdf_store_add_file.pl to guess the appropriate parser based on the filename.
         	Replaced all uses and initializations from Text::CSV in favour to Text::CSV_XS (#136 from @jordivador).
     * OTHER
         	Change hashbang to use env (#137 from KjetilK).
         	Remove use of RDF::Redland in bin/rdf_store_serialize.pl.
         	Remove use of TryCatch (#138 from @ppisar).

  Version 1.014 (2015-05-17)

     * BUG FIXES
         	Fix data loss bug in SQLite backend schema and hash encoding (from Mike Frager PR #126).
     * ENHANCEMENTS
            Read data as utf8 from STDIN.
     * OTHER
         	Added Cache::LRU requirement to prerequisite list and README.

  Version 1.013 (2015-02-14)

     * BUG FIXES
         	Update how file URIs are constructed to better deal with windows systems.
         	Fixed bug in RDF::Trine::Model->size that was only considering triples, not quads.
         	Fix get_statements and count_statements when called with quad patterns with non-nil graph.
     * NEW FEATURES
         	Added RDF::Trine::Store::LanguagePreference class.
         	Added RDF::Trine::Parser->parse_url method (github issue #119).
     * ENHANCEMENTS
         	Improve insertion performance in RDF::Trine::Store::Memory by keeping caching quad SHA1 hashes.
         	Make RDF::Trine::VariableBindings->join more flexible in testing of equality.
         	Simplify coercion of values in RDF::Trine::Node::Resource constructor.
     * OTHER
         	Update triple store tests for expected results when passing in quad patterns with non-nil graphs.
         	Miscellaneous code and documentation improvements (from Kjetil Kjernsmo via github pull request #116).
         	Added IRI to list of prereq modules in Makefile.PL.

  Version 1.012 (2015-01-15)

     * BUG FIXES
         	Fixed SPARQL XML serialization of boolean results.

  Version 1.011 (2014-10-24)

     * BUG FIXES
         	Updated Hexastore store to return an empty iterator for get_contexts() instead of croaking.
         	Fixed TSV serializer to print header rows and accept VariableBindings as input.

  Version 1.010 (2014-10-03)

     * BUG FIXES
         	Fixed bug in SPARQL store that wasn't properly decoding HTTP response content (github issue #118).
     * NEW FEATURES
         	Refactored part of RDF::Trine::Iterator::Graph->as_hashref into RDF::Trine::Node->as_hashref (github issue #117).
     * ENHANCEMENTS
         	Update RDF::Trine::Pattern with heuristic pattern sorter (github pull request #114 from Kjetil Kjernsmo).
     * OTHER
         	Added IRC resource to Makefile.PL.

  Version 1.009 (2014-08-06)

     * NEW FEATURES
         	Adding model sync/bulk ops to redland store (Dorian Taylor).
     * ENHANCEMENTS
         	Optimized use of regular expressions (Dorian Taylor).
         	Optimized Hexastore store class (Dorian Taylor).
         	Use a base64 encoded digest for Memory store etags (Kjetil Kjernsmo).
         	Updated RDF::Trine::Iterator::Bindings->as_statements to accept a RDF::Trine::Pattern argument (github issue #104).
     * OTHER
         	Log an info message if there is a cartesian product (Kjetil Kjernsmo).

  Version 1.008 (2014-05-20)

     * BUG FIXES
         	Fixed bug in Turtle lexer that was failing to anchor matches of PNAME_LN (GH issue #96 by Tobias Kuhn).
         	Fixed looping bug and handling of N-Triples escape sequences (GH issue #97 by Tobias Kuhn).
         	Made checking for known DBI backend DSN strings case insensitive.
         	Fix bug in RDF::Query::Plan::Join::PushDownNestedLoop that didn't allow 'aggregate' to appear in the RHS serialized text (github issue #101).
         	Fix SPARQL 1.1 GGP parsing bug (github issue #100).
         	Fixed bug in constructing the HTTP request object for SPARQL updates.
     * NEW FEATURES
         	Added RDF::Trine::Parser::RDFPatch.
         	Added RDF::Trine::Parser::LineProtocol as a RDFPatch parser subclass allowing querying (with bin/cliapi tool).
     * ENHANCEMENTS
         	Sync RDF::Trine::NamespaceMap up with URI::NamespaceMap's interface (code from Dorian Taylor).
         	Updated RDF::Trine::Parser::Turtle->new to accept a default namespace 'map' key.
         	Updated RDF::Trine::Model->add_statement to verify that statement nodes are ground (not variables).
         	Updated RDF::Trine::Parser::Turtle->parse_node to allow accessing the tokenizer object used in parsing.
         	Added RDF::Trine::Parser::Turtle->_term method.
         	Fixed RDF::Query::Algebra->subpatterns_of_type to support descent into sub-queries.
         	Fixed as_hash method in RDF::Query::Expression::Alias, RDF::Query::Algebra::Aggregate and RDF::Query::Algebra::Sort.
         	Return a success iterator for POST requests based only on response code (and regardless of the response content).
         	Allow POST responses to redirect in RDF::Trine::Store::SPARQL.
         	Use normalized langauge tags in RDF::Trine::Node::Literal->new.
         	Added RDF::Query::ExecutionContext->bind_variable method.
     * OTHER
         	Added W3C Turtle Test Suite harness bin/turtle-2013-harness.pl.
         	Added xt/perl-critic.t.
         	Updated parser method documentation to indicate where data is expected to be bytes.
         	Added some more docs to the SQlite config (pull request #102 from KjetilK).
         	Throw error if bindings iterator is given rather than graph in RDF::Trine::Model->add_iterator (pull request #103 from KjetilK).
         	Disable pushing full updates down into the store object (only meant to be full queries at this point).
         	Add POD hyperlinks to RDF::Trine documentation (pull request #99 from nichtich).

  Version 1.007 (2013-07-18)

     * BUG FIXES
         	Update Turtle lexer to look for whitespace (instead of a word break) after 'a' when looking for the A token.
         	Work around a XML::Namespace bug in RDF::Trine::Namespace->uri.
         	Fixed xt/pod-coverage.t to avoid checking modules which fail to load.
     * NEW FEATURES
         	Added initial implementation of TriG serializer.
         	Added implementation of the RDF Patch exporter and serializer, and ability to serialize model changes in RDF Patch format.
     * ENHANCEMENTS
         	Added ability to configure the LWP::UserAgent used through the RDF::Trine framework.
         	Updated Turtle and TriG parsers and test suites to track W3C standardization work.
         	Update bin/turtle_parse.pl to output N-Quads when the input format contains quads.
         	Update RDF::Trine::Parser->parse_url_into_model to accept a base argument.
         	Allow lowercase hex codepoint values in N-Triples escapes in RDF::Trine::Parser::NTriples.
     * OTHER
         	Use the :encoding(UTF-8) IO layer where previously just :utf8 was used.
         	s/exists/defined/ in RDF::Trine::Parser->parse_url_into_model.
         	Update the characters that may be used in blank node identifiers in RDF::Trine::Node::Blank->new.
         	Added POD for RDF::Trine::Statement::Quad->graph (alias for ->context).
         	Updated RDF::Trine::Store::Memory to generate SHA digests (for ETag use) based on bytes, not unicode strings.
         	Add RDF::Trine::Statement::Quad->graph as an alias for RDF::Trine::Statement::Quad->context.
         	Updated t/serializer-trig.t to load RDF::Trine before any sub-modules.
         	Added Test::Compile developer test xt/00_compile.t.

  Version 1.006 (2013-07-01)

     * API CHANGES
         Punycode URIs are now left as-is (without decoding) in RDF::Trine::Node::Resource->new.
     * BUG FIXES
         Fix handling of IRIs with codepoints > 127 in RDF::Trine::Node::Resource (GitHub issue #85).
         Remove empty-string default in SQL schema of RDF::Trine::Store::DBI::mysql and update code to compensate.
         Remove bad calls to encode_utf8 in sse and as_ntriples methods of RDF::Trine::Node::Resource.
     * NEW FEATURES
         Split RDF::Trine::Iterator->from_string into from_string and from_bytes.
     * ENHANCEMENTS
         Normalize IRI values before serialization in RDF::Trine::Node::Resource->as_ntriples and RDF::Trine::Node::Resource->compare.
     * OTHER
         Update RDF::Trine::Serializer::NTriples::Canonical to use $node->as_ntriples instead of $node->sse.
         Add documentation noting that punycode will be decoded as a part of N-Triples serialization.
         Change use of utf8::all to utf8 in t/node.t.
         Mark TryCatch as a build_requires instead of a requires module in Makefile.PL.

  Version 1.005 (2013-05-27)

     * API CHANGES
         Throw exception in RDF::Trine::Node::Resource->new when IRI contains bad characters.
     * BUG FIXES
         Fix RDF::Trine::Parser::RDFXML to UTF-8 encode strings before calling into the SAX parser (related to github pull request #82).
         Fixed typo in exception throwing in RDF::Trine::Parser::TriG.
         Fixed mistaken use of 'otherwise' exception handler in turtle_tokenize.pl.
     * ENHANCEMENTS
         Updated Turtle parser to support the Turtle 2013 draft syntax.
         Improved error handling in RDF::Trine::Parser->parse_url_into_model.
         Implemented streaming version of RDF::Trine::Parser::RDFXML->parse_file using parse_file from XML::SAX.
     * OTHER
         Removed use of given/when statements to make perl 5.18 happy.
         Silence tracing code in RDF::Trine::Store::Hexastore.
         Added TryCatch to list of required modules.
         Changed key names and layout of nodemap data in Redis store.

  Version 1.004 (2013-03-02)

     * API CHANGES
         Changed RT:spog:* keys to be a hash with node ID data for each quad position in Redis store.
     * ENHANCEMENTS
         Treat data passed into parsers as characters (github pull request #82 from Tony Cook).
         Improve the error message when trying to parse an empty RDF/XML string (Kjetil Kjernsmo).
         Added get_graphs as an alias for get_contexts in RDF::Trine::Model and RDF:Trine::Model::Dataset.
     * OTHER
         Test to see if DBD::Pg is installed in test suite (github pull request #78 from Kjetil Kjernsmo).
         Added turtle command line tools turtle_parse.pl, turtle_benchmark.pl, and turtle_tokenize.pl.

  Version 1.003 (2012-12-22)

     * BUG FIXES
         Fixes to code that depended on hash key ordering.
         Fixed test of error conditions in RDF::Trine::Parser->parse_url_into_model.
         Fixed bug in RDF::Trine::Parser::RDFXML that caused fatal errors on malformed input instead of throwing RDF::Trine::Error exceptions.
         Fixed RDF::Trine::Parser::Turtle::Lexer->check_for_bom to handle zero-length input.
     * NEW FEATURES
         Added prefix_for and abbreviate methods to RDF::Trine::NamespaceMap (patch from Dorian Taylor)
     * OTHER
         Require Scalar::Util 1.24.
         Re-added RDF::Trine::Parser::Turtle->parse_node method.

  Version 1.002 (2012-10-20)

     * OTHER
         Require Scalar::Util version 1.23.

  Version 1.001 (2012-10-05)

     * BUG FIXES
         Fixed bareword bug in RDF::Trine::Parser when UUID::Tiny is not available.
     * ENHANCEMENTS
         Replaced old Turtle and TriG parsers with new streaming implementations.
         Added RDF::Trine::Node::Literal->canonicalize method.
         Updated RDF::Trine::Parser::Redland to construct a new parser object on each parse (avoiding a bug in redland).
         Applied partial patch to "fix interaction with HTML::Data::Parser" (from Dorian Taylor; commit 9b713b23b6).
     * OTHER
         Added Moose and MooseX::ArrayRef to prerequisites list.
         Updated code style to work with Perl::Critic core policies.
         Added POD to RDF::Trine and RDF::Trine::Store::DBI (based on patch from Evan Carew).
         Updated required version of perl to 5.10.
         Silenced undefined warnings in RDF::Trine::Parser::Turtle::Lexer.
         Silenced warning of cartesian joins in RDF::Trine::Store::Hexastore.

  Version 1.000 (2012-06-29)

     * API CHANGES
         Removed RDF::Trine methods count, add_extra_result_data, extra_result_data.
         Removed support for extra data serialized in SPARQL/XML result format link tags.
         Made Literal and Resource node constructors throw exception when passed undef lexical value.
     * BUG FIXES
         Fixed parsing of backslash escapes in Turtle quoted literals (from Toby Inkster via github pull request #63).
         Rolled back attempted optimization of bulk ops calls (which broke the code).
         Fixed etag bug in RDF::Trine::Store::Memory.
     * NEW FEATURES
         Added RDF::Trine::Model->add_iterator method.
     * OTHER
         Fixed miscellaneous typos (from Evan Carew).
         Updated bug reporting details in BUGS POD section.
         Updated documentation in several classes.
         Removed redundant documentation in RDF::Trine::Parser.
         Added Redland test for UTF8 (from Kjetil Kjernsmo).
         Added two tests for concat graph iterators (from Kjetil Kjernsmo).
         Fix usage of materialized iterators in t/iterator-graph.t (from Kjetil Kjernsmo).
         Document the extends option to negotiate in the serializer (from KjetilK).
         Document RDFTRINE_NO_REDLAND (from KjetilK).

  Version 0.140 (2012-05-08)

     * API CHANGES
         Removed default get_pattern implementation in RDF::Trine::Store.
     * BUG FIXES
         Added missing import of looks_like_number function in RDF::Trine::Node::Literal.
     * ENHANCEMENTS
         Added RDF::Trine::Pattern->sort_for_join_variables method to prevent unnecessary cartesian joins.
         Added optional content_cb callback argument to RDF::Trine::Parser->parse_url_into_model.

  Version 0.139 (2012-04-11)

     * API CHANGES
         Made server a required configuration key in RDF::Trine::Store::Redis.
     * BUG FIXES
         Fixed interaction of peek() and finished() in RDF::Trine::Iterator.
         Fixed use of iterator finished method in RDF::Trine::Iterator::Bindings->as_json.
         Fixed use of iterator finished method in RDF::Trine::Store::Hexastore->get_pattern.
         Fixed bug when RDF::Trine::Iterator->finished is called before an (empty) iterator is used.
         Fixed fallback parsing bug in RDF::Trine::Parser->parse_url_into_model.
         Fixed PostgreSQL capitalization bug (patch from https://rt.cpan.org/Ticket/Display.html?id=71890 applied by Kjetil Kjernsmo).
     * NEW FEATURES
         Added RDF::Trine::Serializer::NQuads->statement_as_string method.
     * ENHANCEMENTS
         Added 'scoped_namespaces' constructor argument to RDF::Trine::Serializer::RDFXML to serialize only necessary namespace declarations. (github issue 33).
         Initialize Log4perl only if it isn't initialized already (pull request 57 from kba).
     * OTHER
         Fixed expected result count in Test::RDF::Trine::Store->get_pattern_tests.
         Simplified code in t/store-hexastore-pattern.t.
         Added tests for RDF::Trine::Iterator->peek.
         Adding some get_pattern tests to the Store tests (Kjetil Kjernsmo).
         Replaced references to RDFQUERY_NO_REDLAND environment variable with proper RDFTRINE_NO_REDLAND.
         Allow suppressing RDF::Redland use if the RDFQUERY_NO_REDLAND environment variable is set.
         Removed erroneous copies of RDF::Trine::Store::DBI::Pg->init method.
         Add pg tests (Kjetil Kjernsmo).

  Version 0.138 (2012-01-25)

     * BUG FIXES
         Fixed error-handling syntax bug in RDF::Trine::Parser->parse_url_into_model.
     * NEW FEATURES
         Make Hexastore support etag.
     * ENHANCEMENTS
         Croak rather than die in some places and use logdie in one place.
     * OTHER
         Fix documentation typos from fschlich@zedat.fu-berlin.de.
         Improved performance of Redis store with use of variadic functions.
         Added store tests for literals including utf-8 handling and languages.

  Version 0.137 (2011-12-20)

     * API CHANGES
         Trying to instantiate a resource node with the Nil IRI results in the Nil node object.
     * BUG FIXES
         Fixed unicode escaping issues in RDF::Trine::Serializer::Turtle (bugreport from nichtich <4EB7B9BE.8000205@gbv.de>).
         Fixed RDF::Trine::Parser::Turtle to properly unescape percent-encoded URIs.
         Fixed RDF::Trine::Statement->from_redland to properly unescape percent-encoded URIs.
         Only set parser metadata if RDF::RDFa::Parser is available (github issue 32 from nichtich).
         Added PostgreSQL-specific init method to handle case sensitivity of table names (RT#71890 from John Nicholas Whitley).
     * NEW FEATURES
         Implement RDF::Trine::Store::Hexastore->nuke (KjetilK).
         Added initial code for a Redis-based store.
         Added serialize_node method to RDF::Trine::Serializer::NTriples and RDF::Trine::Serializer::Turtle.
         Added parse_node method to RDF::Trine::Parser::NTriples.
     * ENHANCEMENTS
         Create a fallback-implementation of remove_statements in Store.pm  (KjetilK).
         Updated RDF::Trine::Graph to use Algorithm::Combinatorics for memory/speed improvements (instead of Math::Combinatorics).
     * OTHER
         Support triple-only stores in the test suite (patches from KjetilK).
         Added missing POD to RDF::Trine::Store::DBI::Pg and RDF::Trine::Store::Redis.
         Check the Perl version when running Tiny::UUID (KjetilK).
         RDF::Trine::Parser now attempts to use Data::UUID before UUID::Tiny in bnode ID generation (based on test failures).

  Version 0.136 (2011-10-19)

     * API CHANGES
         Removed RDF::Trine::Iterator::SAXHandler->rate method and dropped dependency on Time::HiRes.
         Consolidated bnode prefix handling in parser classes, adding support for UUID::Tiny.
     * BUG FIXES
         Fixed escaping of URIs in rdf:about attributes (patch from SADI Framework).
         Return an empty string instead of undef in RDF::Trine::Iterator->format_node_xml.
         Fixed RDF::Trine::Store::SPARQL->count_statements handling of variables.
         Fixed turtle serializer to check if numerics are in canonical form.
         Fixed mysql schema to quote index names that might contain reserved characters.
         Fix RDF::Trine::Model->get_statements to throw an error when called with arguments that aren't either undef or node objects.
         Fixed titlecase of table reference in RDF::Trine::Store::DBI::mysql->init.
         Fixed bug in use of UUID::Tiny::UUID_V1 bareword in RDF::Trine::Parser->new_bnode_prefix.
     * NEW FEATURES
         Initial support for using Dydra as a store.
         Added RDF::Trine::Parser::Turtle->parse_node method.
         Added RDF::Trine::Node::Literal->is_canonical_lexical_form.
         Made RDF::Trine::Serializer::NTriples->statement_as_string a public method.
         RDF::Trine::Parser->parse_url_into_model now fill properly fall back on guesswork when media-type parsing fails.
         Moved as_hashref functionality from RDF::Trine::Model to RDF::Trine::Iterator::Graph.
         Added TSV serializer.
     * ENHANCEMENTS
         Allow empty namespace prefix in RDF::Trine::NamespaceMap (patch from Jakob Voss).
         Added text/html media type, and added use of Module::Load::Conditional in RDF::Trine::Parser::RDFa.
         Added support of SPARQL endpoints with URL parameters like Virtuoso's 'http://example.org:8890/sparql?default-graph-uri=...' (patch from Jakob Voss).
         Updated RDF::Trine::Store::DBI to use DBIx::Connector.
     * OTHER
         Added option to sleep after each store update in Test::RDF::Trine::Store.
         Fixed code in RDF::Trine::Store::SPARQL that was causing a warning when a variable name was redefined.
         Updated RDF::Trine::Store::DBI::mysql->_add_node to return the node hash value.
         Stop RDF::Trine::Store::DBI->add_statement from unnecessarily hashing nodes multiple times (patch from tobyink).
         Moved redland store tests to developer xt directory.
         Updated t/serializer-turtle.t to be more accepting of stores returning data in varying orders.
         Removed 'or die' conditional from store tests.
         Changed test endpoint from kasei.us to myrdf.us.
         Added simple store tests for bulk_ops in Test::RDF::Trine::Store.
         Removed heavy dependency on DBI store in test cases.
         Require RDF::Redland 1.0.7.1 in xt/store-redland.t.
         Add missing use of RDF::Trine::Statement::Quad.
         Conditionally load DBI store, and return Memory store from temporary_store().
         Removed dependency on Unicode::Escape.
         Made XML::LibXML an optional dependency (RDF/XML parser will not perform c14n if it is not installed)
         Updated RDF::Trine::Store::Memory to use Digest::SHA instead of Digest::MD5.
         Removed depedency on List::MoreUtils.
         Added POD for Test::RDF::Trine::Store->update_sleep.
         Added POD for RDF::Trine::Serializer::NTriples->statement_as_string.
         Removed depedency on Unicode::String and List::MoreUtils.
         Removed unnecessary use statements.

  Version 0.135 (2011-04-30)

     * API CHANGES
         Globally changed 'base' to 'base_uri' in Trine code and API.
         Changed name of redland rdfa parser to 'librdfa' and removed associated media type and file extensions (due to librdfa bugs).
     * BUG FIXES
         Fixed bug in RDF::Trine::Store::DBI::mysql that was causing init() to remove existing data.
     * NEW FEATURES
         Added RDF::Trine::Store::DBI->nuke method for removing store data.
         Added RDF::Trine::Model->remove_list method (patch from tobyink).
         Added RDF::Trine::Iterator->seen_count method.
         Added RDF::Trine::Model->get_sparql delegation method.
     * ENHANCEMENTS
         Updated RDF::Trine::Parser->parse_url_into_model to be better at guessing media types for file: URIs.
         Updated RDF::Trine::Parser::Redland to allow the $base argument to be a URI object.
         Updated RDF::Trine::Parser->parse_url_into_model to not catch and hide exceptions thrown from calls to parse_into_model.
         Updated bin/srx2csv to handle unbound variables in results.
         Added support for 'storeclass' key in RDF::Trine::Store->new_with_config.
         Added supports method to RDF::Trine::Model, RDF::Trine::Model::Dataset, and RDF::Trine::Store classes.
         RDF::Trine::Store->new_with_string now attempts to load store classes before using them.
         Renamed RDF::Trine::Store::SPARQL->_get_iterator to get_sparql.
     * OTHER
         Added SQL file for creating the mysql backend database.
         Remove the meaningless "All rights reserved" copyright text.
         Style changes to RDF::Trine::Iterator::Bindings->print_xml.
         Updated required version of XML::SAX to 0.96.
         Updated store tests (KjetilK).
         Removed Digest::SHA1 from list of prereq modules.

  Version 0.134 (2011-03-29)

     * API CHANGES
         Deprecated RDF::Trine::Iterator->count.
     * BUG FIXES
         Fixed bug in RDF::Trine::Iterator::SAXHandler on data with empty results.
         Fixed canonicalization bug in RDF::Trine::Node::Literal for xsd:decimals with no decimal point.
     * NEW FEATURES
         Added srx2csv and srx2table scripts.
         Added API for stream parsing of srx results to RDF::Trine::Iterator::SAXHandler.
         Added RDF::Trine::Model->get_sequence method for accessing rdf:Seq structures.
         Added 'value' method to RDF::Trine::Node subclasses for accessing the primary scalar value of a node.
         Added RDF::Trine::Graph->error method to explain failures in RDF::Trine::Graph->equal.
         Updated RDF::Trine::Graph to support: subgraph testing, access to injection map, delegation to RDF::Trine::Model (patch from tobyink).
     * ENHANCEMENTS
         Fixed RDF::Trine::Node::Resource->qname handling of unicode IRIs.
         Fixed RDF::Trine::Parser::NTriples->parse_file to accept filenames just like the superclass implementation.
         Fixed RDF::Trine::Parser->parse_file to open files as utf8.
         Fixed RDF::Trine::Parser->parse_url_into_model to pass through 'canonicalize' argument to actual parser method call.
         Allow 'canonicalize' argument to RDF::Trine::Iterator->from_json method.
     * OTHER
         Made diagnostic messages less noisy in t/store-hexastore-storable.t.
         Silenced an uninitialized warning in RDF::Trine::Parser::NTriples.
         Removed use of XML::SAX in RDF::Trine::Serializer subclasses.
         Added turtle parser test for file with BOM.
         Updated RDF::Trine::Store::DBI and RDF::Trine::Store::DBI::mysql to use DBI placeholders.

  Version 0.133 (2011-02-07)

     * BUG FIXES
       Fixed bug in Turtle parser that wouldn't allow a Unicode BOM in the input.
       Fixed bug in turtle serialization of blank nodes used in graph cycles (reported by tobyink).
       Fixed bug in RDF::Trine::Serializer::RDFXML that wasn't escaping XML entities in IRIs and bnode labels (github issue 3 from nichtich).
       Updated RDF::Trine::Store::Hexastore to use equal() method instead of op<==> for testing node equality.
       Updated t/parser-rdfjson.t to test bnode equality using identifier strings, not with op<==>.
       Fixed RDF/XML xmlns serialization bug when used with RDF::Trine::NamespaceMap objects.
     * NEW FEATURES
       Added RDF::Trine::NamespaceMap class.
       Added support to populate RDF::Trine::NamespaceMap objects during RDF parsing.
       Added RDF::Trine::Model get_list and add_list methods for managing rdf:List structures.
       Added support for parsing SPARQL JSON Results format in RDF::Trine::Iterator->from_json.
       RDF::Trine::Parser subclasses now allow parse_file_into_model and parse_file being called as class methods.
       Added 'restrict' and 'extend' options to RDF::Trine::Serializer->negotiate to allow more control over content negotiation.
       Added the ability to restrict the nodes returned from the RDF::Trine::Model->objects method by node type or by literal language/datatype.
     * ENHANCEMENTS
       Updated RDF::Trine::Store::SPARQL to allow bulk-update operations.
       Added string overloading to RDF::Trine::Node subclasses.
       Added text/rdf+n3 as a media type for RDF::Trine::Serializer::Turtle.
     * OTHER
       Updated conneg code setting default q-values in RDF::Trine::Serializer.
       Updated RDF::Trine::Iterator::Graph->print_xml to set utf8 binmode on the output filehandle.
       Changed required version of Module::Load::Conditional to 0.38 (based on version in debian).

  Version 0.132 (2010-12-23)

     * Added conditional loading of Redland parsers and stores when available using Module::Load::Conditional.
     * Added auto-initialization of DBI stores during object construction.
     * Added RDF::Trine::Store->new method to delegate to existing constructors.
     * Moved slow turtle parser tests into developer tests directory xt/.

  Version 0.131 (2010-12-07)

     * Fixed SPARQL XML Results serialization to omit unbound variables and properly declare literal languages and datatypes.
     * Copied implementations of is_numeric_type() and numeric_value() from RDF::Query::Node::Literal to RDF::Trine::Node::Literal.
     * Updated documentation to explicitly discuss inherited methods due to subclassing  (RT 63153 comment from Ivan Shmakov).
     * Updated POD for RDF::Trine::Iterator subclasses (RT 63153 comment from Ivan Shmakov).
     * Fixed RDF::Trine::Parser->guess_parser_by_filename to get RDF/XML parser class from parser_by_media_type() instead of being hardcoded.
     * Fixed RDF::Trine::Serializer::Turtle::_node_concise_string to allow call as class method.
     * Added RDF::Trine::Parser::Redland subclasses to allow calling new() with no 'name' argument.
     * Added file extensions to parser registry for RDF::Trine::Parser::Redland.
     * Added RDF::Trine::Model->as_graphviz method.
     * Added checks to avoid undefined warnings in RDF::Trine::Serializer::NTriples::Canonical (suggestion from KjetilK).
     * Set :utf8 mode on string-backed filehandles in RDF::Trine::Serializer::Turtle.
     * Attempt at patching utf8 turtle/trig parsing bug submitted by KjetilK.
     * Updated required version of Test::More to 0.88 (bugreport from @danbri).

  Version 0.130 (2010-10-18)

     * Fixed bug in RDF::Trine::Node::Literal->is_valid_lexical_form check for xsd:double.
     * Updated RDF::Trine::Iterator::Bindings->as_string to use concise turtle syntax.
     * Added RDF::Trine::Parser methods media_type(), media_types(), parser_by_media_type(), and guess_parser_by_filename().

  Version 0.129 (2010-10-04)

     * Updated Makefile.PL and RDF::Trine to require perl v5.8.3.
     * Fixed bug in promotion of temporary models from memory-backed to a SQLite-backed store.
     * Fixed RDF::Trine::Store::DBI->new to bless into backend-specific classes when passed a database handle (bug report from tobyink).
     * Updated RDF::Trine::Node::Literal to produce more accurate canonical lexical forms for xsd types.
     * Added RDF::Trine::Node::Literal->is_valid_lexical_form method.
     * Added support for special union-graph 'tag:gwilliams@cpan.org,2010-01-01:RT:ALL'.
     * Added exportable constants for UNION_GRAPH and NIL_GRAPH in RDF::Trine.

  Version 0.128 (2010-09-28)

     * Added .owl as a recognized RDF/XML file extension for the fallback parser guessing code.
     * Fixed bug in RDF::Trine::Store::SPARQL preventing access to the default graph.
     * Added new_with_config method to allow interactive configuration via rqsh.pl.
     * Updated RDF::Trine::Store::DBI->init to (partially) work if called for a new model (but the database has already been initialized).
     * Fixed call to RDF::Trine::Parser->parse_into_model in bin/rdf_store_add_file.pl.
     * Fixed call to RDF::Trine::Parser->parse_url_into_model in RDF::Trine::Store::Memory.
     * Removed RDF::Redland dependency in bin/rdf_store_add_file.pl.
     * Added introspective _config_meta method to RDF::Trine::Store subclasses to allow interactive configuration.
     * Added RDF::Trine::Store->class_by_name class method.
     * Added etag method to RDF::Trine::Model and RDF::Trine::Store::Memory to allow for HTTP caching.
     * Updated RDF::Trine::Node::Literal->canonicalize_literal_value coercion of xsd:decimal values.
     * Added optional flag to RDF::Trine::Node::Literal->new to attempt to canonicalize recognized XSD values.
     * Updated RDF::Trine::Exporter::CSV to accept a graph iterator (for serializing s,p,o as CSV).
     * Added RDF::Trine::Store::DBI->clear_restrictions method (suggestion and partial patch from tobyink).
     * Updated RDF::Trine::Store::Redland to improve efficiency (based on suggestions from Dorian Taylor).
     * Added native redland parser class and tests (patch from Dorian Taylor).
     * Added RDF::Trine::Iterator->each method (requested by tobyink).
     * Made code updates to improve performance based on profiling.
     * Updated to use URI 1.52 to allow direct usage of IRIs without unicode workarounds.
     * Added content-sniffing to fallback parser guessing code for RDF/XML and Turtle.
     * Lowered required version of redland in RDF::Trine::Parser::Redland to 1.0.7.1.
     * Added RDF::Trine::Serializer->serializer_names method for listing available serializers.
     * Added as_string method to RDF::Trine::Iterator::Boolean and RDF::Trine::Iterator::Graph.

  Version 0.127 (2010-08-30)

     * Removed redundant prerequisite for XML::LibXML::SAX from Makefile.PL.
     * RDF::Trine::Model->bounded_description now catches and ignores UnimplementedError exceptions.
     * Added heuristics support for TriG, RDF/JSON, and N-Quads to RDF::Trine::Parser->parse_url_into_model.
     * Added ability to specify the base URI for serializing RDF/XML and Turtle (patch from KjetilK).

  Version 0.126 (2010-08-16)

     * Fixed N-Triples serialization escaping bug for strings whose only escapable character is '\'.
     * Fixed typo in handling of RDF::Trine::Node::Formula extension.
     * RDF::Trine::Model->new will now return a temporary model when called with no arguments.
     * Updated get_pattern methods in Model and Store classes to return VariableBindings objects.
     * Updated DBI backend to allow no-op adding of the nil node.
     * Updated SPARQL backend to use SPARQL 1.1 Update and Aggregate operations.
     * Updated Memory and Hexastore backends to support 'graph' key in _new_with_config().
     * Improved error messages in N-Triples and N-Quads parsers.
     * Fixed column naming bug in RDF::Trine::Store::DBI->get_contexts.
     * Added begin_bulk_ops() and end_bulk_ops() hint methods to RDF::Trine::Model.
     * Updated RDF::Trine::Parser to call begin_bulk_ops() and end_bulk_ops() on model object.
     * Updated DBI backend to use transactions when bulk_ops hints are used.
     * Added '==' and 'eq' overloading to RDF::Trine::Graph class.
     * Updated RDF::Trine::Model->bounded_description to traverse backwards links across blank nodes.

  Version 0.125 (2010-07-29)

     * Fixed hash collision bug in RDF::Trine::Store::DBI handling of literals with values '' and '0'.
     * Added RDF::Trine::VariableBindings class (ported from RDF::Query).
     * Iterators constructed from SPARQL XML Results format now return variable bindings objects.
     * Turtle serialization to strings now only declares prefixes that are used in the data.
     * Added media types and URIs for N-Quads parser and serializer.
     * Added RDF::Trine::Statement->rdf_compatible method (patch from tobyink).
     * Changed RDF::Trine::Model node methods (subjects, predicates, objects) to use quad semantics and accept a graph parameter.
     * Add documentation for new_with_object.
     * Add documentation for the hashref config.
     * Improved efficiency of counting quad patterns in RDF::Trine::Store::DBI.
     * Fixed bug in N-Triples serializer (was serializing quads).
     * Added %format_uris registry for parsers and serializers.
     * Added RDF::Trine::Model::as_string method.
     * Require XML::LibXML 1.70.
     * Removed unused variable in RDF::Trine::Parser::RDFXML.
     * Added character encoding declaration to RDF::Trine::Iterator::Bindings->print_xml.
     * Added character encoding declaration to RDF::Trine::Iterator::Boolean->print_xml.

  Version 0.124 (2010-06-21)

     * Updated quality value heuristics in RDF::Trine::Serializer::negotiate to prefer turtle if no accept headers are supplied.
     * Added ability for RDF::Trine::Store::Memory to load RDF files by URI in _new_with_string.
     * Added default implementation of RDF::Trine::Serializer::serialize_iterator_to_file.
     * RDF::Trine::Serializer::negotiate now slightly prefers turtle.
     * Added RDF::Trine::Iterator->count method.
     * Fixed RDF::Trine::Iterator::Bindings::as_string to respect $max_result_size argument.
     * RDF::Trine::Iterator::Bindings::as_string now returns unescaped strings.
     * Added ability to access the number of rows returned from RDF::Trine::Iterator::Bindings::as_string.
     * Updated RDF::Trine::Parser::parse_url_into_model to fall back on file extension heuristics if the media-type based parse fails.
     * Updated RDF::Trine::Parser::RDFJSON to throw an error if input isn't valid JSON.
     * Updated RDF::Trine::Model to throw an error if not passed a store object.
     * Added RDF::Trine::Model::Dataset for constructing views over a model, and RDF::Trine::Model->dataset_model constructor method.
     * Fixed bug in handling of quads in RDF::Trine::Model::get_pattern and RDF::Trine::Store::get_pattern.
     * Updated RDF::Trine::Store::DBI and RDF::Trine::Store::Memory to not return the default (nil) context from get_contexts.
     * Fixed bug in RDF::Trine::Store::Memory::_get_statements_quad that would infinite loop after removing statements.
     * RDF::Trine::Store doesn't load RDF::Redland (now only checks if it is already loaded).
     * Fixed bug in RDF::Trine::Store subclasses registering their class names in %STORE_CLASSES.
     * Added missing use of Encode to RDF::Trine::Store::Redland.
     * Made $RDF::Trine::Store::Redland::NIL_TAG globally accessible.
     * Added bin/rdf_transcode.pl for (streaming) conversion between RDF serialization formats.
     * Updated POD tests to not use taint mode (and synced between R::T and R::Q).
     * Changed test data in t/iterator-thaw.t.
     * Removed RDF::Core as a prerequisite in META.yml.
     * Added default implementation of RDF::Trine::Serializer::serialize_iterator_to_file.
     * RDF::Trine::Serializer::negotiate now slightly prefers turtle.

  Version 0.123 (2010-05-13)

     * Added turtle utf8 decoding for Turtle parser.
     * Added RDF::Trine::Serializer::media_types method.
     * Added RDF::Trine::Store::new_with_object method.
     * Fixed unicode encoding bug in RDF::Trine::Store::DBI.
     * RDF::Trine::Serializer::NTriples::Canonical.pm now inherits from RDF::Trine::Serializer::NTriples.
     * Cleaned up VERSION declarations.
     * Updated RDF::Trine::Parser::parse_url_into_model to fall back on file extension heuristics if the media-type based parse fails.
     * Updated RDF::Trine::Parser::RDFJSON to throw an error if input isn't valid JSON.
     * Added character decoding to RDF::Trine::Parser->parse_url_into_model.

  Version 0.122 (2010-05-05)

     * Added RDF::Trine::Model::bounded_description method.
     * Added initial implementation of a Redland-based storage class.
     * Fixed SPARQL store tests to align with recent coverage efforts.
     * Code cleanup and updates to improve test coverage.
     * Rearranged POD in RDF::Trine::Parser.
     * Fixed type in RDF::Trine::Node::Literal::_compare.

  Version 0.121 (2010-04-29)

     * Fixed URI qname code to disallow ':' in local name.
     * Added node-centric methods to RDF::Trine::Model: subjects, predicates, objects.
     * Improved POD for value canonicalization in RDF::Trine::Parser.
     * Added POD for RDF::Trine::Model::get_contexts.
     * Added POD details to RDF::Trine::Model::get_statements regarding triple and quad semantics.

  Version 0.120 (2010-04-20)

     * Added optional value canonicalization on parsing (xsd integer, decimal, and boolean).
     * RDF/XML parser now attempts to canonicalize XMLLiterals (doesn't yet canonicalize all XMLLiterals that it shold).
     * Added RDF::Trine::Node::Blank::_new constructor that doesn't validate bnode name for N-Triples conformance.
     * Performance improvements to RDF::Trine::Node::_unicode_escape.
     * Updated Turtle parser to throw error on undeclared namespace prefixes.
     * Updated Turtle serializer to produce QName literal datatypes.

  Version 0.119 (2010-04-15)

     * Fixed bug in NTriples parser handling of language literals (reported by tobyink).
     * Fixed another bug in turtle serializer that improperly serialized bnode objects 'belonging' to a parent triple (in-edge count of 1).

  Version 0.118 (2010-03-22)

     * Added RDF::Trine::Parser::TriG.
     * Added RDF::Trine::Parser::parse_file_into_model method.
     * Added RDF::Trine::Serializer::NQuads.
     * Added RDF::Trine::Serializer::negotiate constructor.
     * Added RDF::Trine::Serializer::new constructor based on requested serializer name.
     * Added RDF::Trine::Exporter::CSV for serializing variable bindings.
     * Added Text::CSV and HTTP::Negotiate to RDF::Trine prereq list.
     * Fixed exception thrown on unrecognized parser name.
     * Removed dependency list and added perlrdf link to POD in RDF::Trine and RDF::Query.
     * Updated RDF::Trine::Serializer::Turtle->new API to take %args instead of \%namespaces.
     * Updated RDF::Trine::Serializer::RDFXML to take %args and properly accept and serialize xmlns namespaces.
     * Updated RDF::Trine::Parser::RDFa to use streaming parsing (instead of materializing the graph first).
     * Updated RDF::Trine::Model::_debug to use quad semantics when getting statement iterator.
     * Updated t/parser-turtle.t to use File::Glob::bsd_glob for cases where the test directory's path contains whitespace.
     * Removed redundant parse_into_model methods from RDF::Trine::Parser subclasses.
     * Renamed examples/create_store.pl to examples/foaf_labels.pl.
     * Fixed bug in turtle serializer that improperly serialized bnode objects 'belonging' to a parent bnode.

  Version 0.117 (2010-02-04)

     * Fixed bug in RDF::Trine::Iterator::Bindings::as_json when using empty iterator.

  Version 0.116 (2010-01-31)

     * Fixed bug in RDF::Trine::Serializer::RDFXML when serializing empty models.

  Version 0.115 (2010-01-30)

     * Added N-Triples and N-Quads parsers.
     * Added RDF::Trine::Store::SPARQL::get_pattern implementation.
     * Changed RDF::Trine::Model::objects_for_predicate_list to return only a single node in scalar context.
     * Added table alias for COUNT(*) queries in RDF::Trine::Store::DBI (fix for mysql).
     * Added example of using parse_url_into_model to RDF::Trine::Parser SYNOPSIS.

  Version 0.114 (2010-01-27)

     * Added new Turtle serializer.
     * Updated RDF/XML serializer grouping of same-subject statements for bounded descriptions.
     * Updated parse_into_model parser methods to be both class and object methods.
     * Updated Parser parse_* methods to take extra %args with optional 'context' value.
     * Moved RDF::Trine::Store::Hexastore from alpha/ directory into RDF::Trine package.
     * Added Storable to list of prereq modules.
     * Added partial support for rdf:Lists to RDF::Trine::Serializer::Turtle.
     * Added RDF::Trine::Namespace::uri_value method.
     * Updated unicode encoding and escaping in ::Node, ::Node::Literal, and ::Store::DBI.
     * Added variable() shortcut function to RDF::Trine package.
     * Updated RDF::Trine::Graph to materialize statements when constructed with a graph iterator.
     * Moved get_pattern logic from ::Store to ::Model.
     * Updated ::Model::Union to work better with ::Model::get_pattern.
     * Updated Node and Statement from_sse methods to work with constant string arguments.
     * Updated code and tests for better coverage.
     * Removed unused RDF::Trine::Iterator::sfinally function.
     * Fixed bug in RDF::Trine::Graph::equals.
     * Added UnimplementedError exception class.

  Version 0.113 (2009-12-30)

     * Added RDF::Trine::Parser::RDFa implementation to connect with RDF::RDFa::Parser.
     * Added ability to pass RDF::Trine::Node::Resource values as the datatype argument to RDF::Trine::Node::Literal::new().
     * Special-cased 'xsd' in RDF::Trine::Namespace to return the RDF-version of the namespace URI (with trailing '#').
     * Added syntax shortcuts as exportable from RDF::Trine: iri(), blank(), and literal().
     * Added RDF::Trine::Serializer base class.
     * Fixed syntax error in generated RDF/XML in RDF::Trine::Serializer::RDFXML.
     * Fixed bug in RDF::Trine::Serializer::RDFXML that was dropping triples.
     * Added RDF::Trine::Parser::parse_url_into_model class method.
     * Updated parser classes' registration of parser names and media types.
     * Added RDF::Trine::Model::size method.
     * Removed ::Parser::Error package. Replaced with use of RDF::Trine::Error.
     * Convert data to utf8 encoding before hashing in RDF::Trine::Store::DBI::_mysql_hash_pp.
     * Added RDF::Trine::Model::objects_for_predicate_list method.
     * Removed RDF::Trine::Serializer::RDFXML::_split_predicate and replaced with call to $pred->qname.
     * Added RDF::Trine::Node::Resource::qname method to split an IRI into namespace and local parts.
     * Added RDF::Trine::Serializer::NTriples::Canonical (from tobyink).
     * Added RDF::Trine::Iterator::Bindings::as_statements to return a graph iterator.
     * Updated POD for ::Model::get_pattern to mention 'orderby' argument.
     * Updated ::Model::as_stream to return a graph iterator sorted by (s,p,o).
     * Updated RDF/XML serializer to merge same-subject rdf:Descriptions.

  Version 0.112 (2009-12-12)

     * Skip some failing tests when RDF::Trine::Node::Literal::XML is loaded.
     * Added RDF/XML serializer.
     * Added serialize_iterator_to_file and serialize_iterator_to_string methods to NTriples serializer.
     * Added _serialize_bounded_description method to NTriples serializer.
     * Added RDF::Trine::Parser::RDFJSON package (patch from tobyink).
     * Added RDF::Trine::Serializer::RDFJSON package (patch from tobyink).
     * Added add_hashref and as_hashref methods to RDF::Trine::Model (patch from tobyink).
     * Added tests for RDF/JSON parsing/serializing (patch from tobyink).
     * Updated RDF::Trine docs to mention the RDF/XML parser (good catch by tobyink).
     * Added logging code to RDF::Trine::Store::DBI.
     * Changed ::Store::DBI::get_statements to skip (with warning) past ill-formed statements with IDs that don't appear in any of the value tables.
     * Updated RDF::Trine::Serializer::NTriples to call as_ntriples on node objects during serialization.
     * Added as_ntriples methods to RDF::Trine::Node and subclasses for proper NTriples formatting.
     * Updated bin/rdf_store_serialize.pl to print in NTriples format.

  Version 0.111 (2009-07-14)

     * Added RDF::Trine::Graph for testing graph equality.
     * Added node_names() method to ::Statement and ::Statement::Quad.
     * Added RDF::Trine::Statement::has_blanks method.
     * Fixed bug in RDF::Trine::Namespace to allow subclassing.
     * Removed dependency on Test::JSON, List::MoreUtils, and XML::Parser.
     * Added POD to RDF::Trine::Parser.
     * RDF::Trine::Store::temporary_store now delegates to RDF::Trine::Store::DBI.
     * Removed unnecessary call to blessed() in RDF::Trine::Statement.
     * Removed unused RDF::Trine::Promise class.
     * RDF::Trine now loads RDF::Trine::Store.
     * Removed TODO labeling of tests in t/model-filter.t.

  Version 0.110 (2009-03-14)

     * Added RDF::Trine::Store base class with default implementation of get_pattern().
     * Updated bin/rdf_store_add_file.pl to use the RDF::Trine parser, not Redland's parser.
     * Added POD description to RDF::Trine package.
     * Updated VERSION variables to 0.109 (forgotten during the last release).
     * Updated ::Iterator::Bindings::as_string to join lines with empty string (had been returning a list).
     * Added debug tracing code to ::Store::DBI.
     * Updated schema in ::Store::DBI::mysql to use utf8 charset and collation, and use a pkey instead of a unique.
     * RDF::Trine::Store::get_pattern now passes through optional @args (used for order-by).
     * Fixed bug in ::Store::DBI::remove_statements causing bad SQL when all nodes are undef (remove all triples).
     * ::Node::Literal::new now calls ::Node::Literal::XML::new if available and applicable.

  Version 0.109 (2008-11-14)

     * Removed incremental parsing code from RDF-Trine package.
     * Added POD to from_sse methods in ::Node and ::Statement.
     * Added parsing of variables to RDF::Trine::Node::from_sse.
     * Small changes to ::Iterator and ::Trine::Node::Literal for efficiency.
     * Whitespace updates to ::Trine::Node.
     * Added SQLite-specific ::Store::DBI subclass so that indexes are created properly.
     * Fixed bug in RDF::Trine::Iterator::Bindings::print_xml that dropped every other row.
     * Updated RDF::Trine::Node::Resource to work with URI objects.
     * rdf_parse_turtle.pl now warns on any parser error.
     * RDF::Trine::Node::Resource now escapes unicode in base URIs (now just relative URI part) before calling URI->new_abs.
     * Turtle parser now makes universal IDs for all blank node (even those with given IDs like _:xyz).
     * Fixed Unicode unescaping in Turtle parser's handling of string literals.
     * Turtle parser now doesn't modify the lexical value of numeric typed literals.
     * Fixed ::Store::DBI handling of Quads in get_statements (had been broken because RDF::Query bypasses it by using get_pattern).
     * Fixed bug in ::Iterator::Bindings::print_xml that would drop every other result.
     * Updated VERSION numbers and docs for RDF::Trine for 0.109_01 candidate release.
     * ::Store::DBI now throws an error if call to DBI->connect doesn't return a database handle.
     * ::Iterator::Bindings::as_string now returns '' when there are no rows (instead of dying).
     * Added $IGNORE_CLEANUP to ::Store::DBI to allow preventing DBI cleanup.
     * ::Store::DBI now throws an error if call to DBI->connect doesn't return a database handle.
     * ::Iterator::Bindings::as_string now returns '' when there are no rows (instead of dying).
     * Moved all debugging over to use Log::Log4perl.
     * Updated prerequisite list (removed Digest::SHA1 and XML::Parser, and added missing modules).

  Version 0.108 (2008-07-14)

     * Added NTriples serializer module.
     * Added POD to RDF::Trine::Promise.
     * Added XML::Parser to list of required modules.
     * Added a peek method to ::Iterator to support execution deferment like in ::Algebra::Service.
     * Added RDF::Trine::Promise for general computation deferment.
     * Added print_xml method to RDF::Trine::Iterator classes.
     * Added support for Postgres storage.
     * Added XML::LibXML::SAX as a prerequisite (because XML::SAX::PurePerl can't handle some RDF/XML that uses unicode).
     * Replaced RDF::Core-based RDF/XML parser with a new XML::SAX based parser.
     * Removed now unused redland-based RDF/XML test data.
     * Removed unused redland fallback code from RDF::Query::Model::RDFTrine.
     * Removed redland-based RDF/XML parser tests.
     * Updated Turtle grammar to accept uppercase language tags.
     * Fixed COLLECTION support in RDF/XML parser.
     * Fixed RDF/XML parser for nodeID, sequence, reification, and base URI handling.
     * Fixed POD in NTriples serializer.
     * Fixed RDF/XML parser to handle nodeID, arbitrary xml attributes, parseType="Literal" serialization, and base URI handling.
     * Normlized expected NTriples data in W3C RDF/XML test files.
     * Added unicode escaping to Literal and Resource sse serialization.
     * Added W3C RDF/XML data and test script.
     * Fixes to deferring XML serialization for SPARQL bindings.
     * Fixed bug in delaying XML serialization for identity hints header computation.
     * Fixed extra data following xml query results.
     * Fixed strict refs bug in print_xml in iterator classes.
     * Updated tests that started failing after the previous commit (affecting SQL-compilation).
     * Allow equality test and disjunction filters in patterns that can be compiled to SQL.
     * Fix bug in SQL compilation when restricting left-joins to specific node types (based on functions like isIRI).
     * Added support to the DBI store for filters for equality tests.
     * Mysql store schema now adds indexes.
     * Improved use of temporary RDF::Trine stores in RDF::Query tests.
     * DBI temporary stores now use an in-memory SQLite database.
     * Fixed bug in RDF::Trine::Store::DBI::mysql (calling _mysql_hash() without qualifying it in the superclass).
     * Fixed variable ordering bug in UNION to SQL handling by forcing a sorted projection order.
     * Added support to compile normalized UNION (can only be the top-level node or a child of another UNION) patterns to SQL.
     * Made SQL more standards compliant.
     * RDF::Trine::Store::DBI now auto-upgrades to mysql and postgres classes.
     * Fixed unicode escaping by replacing Unicode::Escape calls to hand-rolled code in RDF::Trine::Node.
     * RDF/XML parser now accept more than one top-level resource.
     * RDF/XML parser now accepts URI objects as base uri (not just RDF::Trine::Node::Resource objects).
     * Added tabular as_string serialization of ::Iterator::Bindings objects.
     * Added Text::Table as a prerequisite.
     * Fixed RDF/XML parser handling of strings (versus file handles).
     * Fixed Turtle parser to properly keep '+' on integer literals.
     * Fixed bindings_count so it doesn't pull a result from the stream (basing the count on binding_names).
     * Fixed bindings xml serialization whitespace formatting.
     * Cleaned up ::Iterator::Bindings::as_string serialization code.
     * Replaced use of splice() with shift() in ::Iterator::SAXHandler::pull_result.

  Version 0.107 (2008-04-25)

     * Added Digest::SHA1 as a requirement for RDF::Trine.
     * Fixed base URI use in Turtle parser.
     * Fixed SQLite DSN in example scripts.
     * Fixed XML whitespace error in iterator-thaw.t

  Version 0.106 (2008-04-19)

     * Added a mysql-specific RDF::Trine::Store class (now uses INSERT IGNORE for efficiency).
     * SQL compiler now doesn't select statement contexts unless called via get_statements (not get_pattern).
     * RDF::Trine::Iterator::Graph::as_bindings now can be called with no arguments (uses default names).
     * Moved the nested hash join from ::Iterator to ::Iterator::Bindings.
     * Added new tests to improve coverage of node and iterator classes.
     * Added tests for binding iterator cartesian product join.
     * Pipelined the code for nested loop joins on binding iterators.
     * Added SPARQL XML Results test for identity hints in <link/> element.
     * Fixed bug in ::Model::StatementFilter to call join_steams in ::Iterator::Bindings.
     * Fixed bug in ::Iterator::Graph::as_bindings where not all arguments are ::Node::Variable objects.
     * Updated SPARQL XML Results namespace for boolean iterators.
     * Replaced XML::Twig code with new XML::SAX parser (allowing streaming parsing).
     * Moved as_sparql methods from RDF::Trine:: to RDF::Query:: classes.
     * RDF::Trine::Iterator::smap now allows overriding default construct_args (e.g. binding names).
     * Fixed RDF::Trine::Model::StatementFilter::get_pattern to project away unused variables (fixing a bug that caused joining to always fail).
     * Updated example turtle parser to accept URLs as command line arguments.
     * Turtle parser now removes dashes from the UUIDs used for blank node IDs.
     * Added support to incrementally thaw an Iterator from an IO::Socket.
     * Added RDF::Trine::Iterator::SAXHandler::rate method.
     * Added Time::HiRes as prerequisite to META.yml and Makefile.PL.
     * Updated all RDF::Trine modules to use consistent VERSION number for 0.106 release.
     * Added examples directory (and an example script) to the RDF-Trine package.
     * Removed Bloom::Filtere from the list of prerequisites (functionality has moved to RDF::Query).

  Version 0.105 (2008-03-19)

     * Removed use of File::Slurp in parser tests.

  Version 0.104 (2008-03-14)

     * Updated SPARQL XML Results namespace declaration in RDF::Trine::Iterator serialization methods.
     * Added extra_result_data methods to add data to the XML Results <link/> header tag.
     * RDF::Trine::Node::Resource now serializes to QName when passed valid namespace data.
     * Fixed xml results serialization for style.

  Version 0.103 (2008-03-10)

     * Updated to recognize (renamed) RDF::Query::Expression class.

  Version 0.102 (2008-03-07)

     * Added length() method to Materialized bindings iterator class.
     * Removed bloom filter construction from bindings iterator (RDF::Query code now does this itself).
     * Fixed escaping of backslashes in Literal node serialization.

  Version 0.101 (2008-03-04)

     * Added an RDF/XML parser based on RDF::Core::Parser.
     * Added Bloom filter support for Materialized bindings iterators.
     * Fixed IRI workaround using the URI module.
     * Turtle parser now uses Data::UUID for unique names.
     * Fixed turtle parser bug for Verb testing.
     * Added RDF::Trine::Statement::Quad::from_redland method.
     * DBI store now constrains variable node types based on position in a statement.
     * Added support for BOUND(), ISLITERAL(), ISURI() and ISIRI() functions in DBI store.

  Version 0.100 (2008-02-18)

     * Initial public release.

COPYRIGHT

   Copyright (C) 2008-2010 Gregory Williams. All rights reserved.
   This program is free software; you can redistribute it and/or
   modify it under the same terms as Perl itself.

AUTHOR

	Gregory Williams <gwilliams@cpan.org>