File: RELEASE.html

package info (click to toggle)
rasqal 0.9.13-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 7,884 kB
  • ctags: 3,062
  • sloc: ansic: 12,012; sh: 9,265; xml: 4,921; yacc: 2,195; lex: 1,997; makefile: 1,800; perl: 545
file content (1294 lines) | stat: -rw-r--r-- 44,754 bytes parent folder | download
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
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
  <title>Rasqal RDF Query Library - Release Notes</title>
</head>
<body>

  <h1>Rasqal RDF Query Library - Release Notes</h1>

<h2 id="rel0_9_13"><a name="rel0_9_13">Rasqal 0.9.13 Changes</a></h2>

<h3>General Changes</h3>

<p>Added a new <code>rasqal_query_results_formatter</code> class.
</p>

<p>Many internal query engine changes, mostly to separate query and
query_results internals so that eventually the run-time execution
context is entirely separated from the static query structure.
</p>

<p>Added query features system with one initial feature 
<code>RASQAL_FEATURE_NO_NET</code>.</p>


<h3>Configuration and Build Changes</h3>

<p>Allow shell variable <code>LEX</code> to be set to things that
aren't exactly <code>flex</code> Recommend flex 2.5.33 and update
configure to point at the main flex site whichq finally gets 2.5.33
after 9 years.</p>

<p><code>PKGCONFIG</code> vars not substituted
correctly in configure.ac.  Remove @LDFLAGS from rasqal.pc.in.
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=98">Issue#0000098</a>.
</p>

<p>Win32 build fixes.Correct win32 static linking of rasqal.
(Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=100">Issue#0000100</a>)
and include float.h and <code>#define isnan</code> on win32.
(Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=111">Issue#0000111</a>).
</p>

<p>In maintainer mode, add all the supported compiler <code>-W</code>
warning flags to the CFLAGS.
</p>

<p>Declare several rasqal functions with GCC printf-formatting
attributes when using a new enough GCC.</p>

<p>Remove broken debug messages.
<a href="http://bugs.librdf.org/mantis/view.php?id=131">#0000131</a>.
</p>

<h3>SPARQL Query Language Changes</h3>

<p>Added labels to grammar tokens using bison to give better error messages.</p>

<p>Fix looking for EOF in an unsigned variable since it may be negative
on some systems.</p>

<p>The query engine now implements SPARQL <code>GRAPH</code> matching.
</p>


<h3>RDQL Query Language Changes</h3>

<p>Added labels to grammar tokens using bison to give better error messages.</p>

<p>Fix looking for EOF in an unsigned variable since it may be negative
on some systems.</p>


<h3>Query Engine Changes</h3>

<p>The query engine now implements SPARQL <code>GRAPH</code> matching.
</p>

<p>Merge only all adjacent sequences of basic graph pattern triples, not
anything with triples such as optional BGP triples.
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=80">Issue#0000080</a>.
</p>

<p>When an exact triple match is present, do not execute a query forever.
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=94">Issue#0000094</a>.
</p>

<p> Fail if a variable argument to <code>LANG()</code> has an
undefined value rather than try to execute a NULL pointer.
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=113">Issue#0000113</a>.
</p>

<p>Add query / query_results link early so reference counting is done right.
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=95">Issue#0000095</a>.
</p>

<p>Report failure as well as query finished when an error occurs
during making results.
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=118">Issue#0000118</a>.
</p>

<p>Added a hack to check an outer constraint expression.
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=129">Issue#0000129</a>.
</p>

<p>Free origins (<code>GRAPH</code> nodes) in triples to prevent memory leak.
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=133">Issue#0000133</a>.
</p>



<h3>Query API Changes</h3>

<p>Added a new <code>rasqal_query_results_formatter</code> class to
format <code>librdf_query_results</code> into a syntax.  Also added
a <code>rasqal_query_results_formats_enumerate()</code> function to
enumerate all the supported formats.  The query results
method <code>rasqal_query_results_write()</code> was changed to use
this class internally.
</p>

<p>Added a new feature system to allow setting parameters on
the query parser/engine.  Initially have one
feature <code>RASQAL_FEATURE_NO_NET</code> that prevents
network requests during a query execution.
Added functions:
<code>rasqal_features_enumerate</code>,
<code>rasqal_get_feature_count</code>,
<code>rasqal_feature_from_uri</code>,
<code>rasqal_feature_value_type</code>,
<code>rasqal_query_set_feature</code>,
<code>rasqal_query_set_feature_string</code>,
<code>rasqal_query_get_feature</code>,
<code>rasqal_query_get_feature_string</code>.
</p>

<p><code>roqet</code> gained a <code>-f</code>
/ <code>--feature</code> option to set query features.
</p>


<h2 id="rel0_9_12"><a name="rel0_9_12">Rasqal 0.9.12 Changes</a></h2>

<h3>General Changes</h3>

<p>Added <a href="http://json.org/">JSON</a> as a query results
format based on the
<a href="http://www.w3.org/2001/sw/DataAccess/json-sparql/">Serializing SPARQL Query Results in JSON</a>
draft.
</p>

<p>Added query writing to a <code>raptor_iostream</code> which allows
reading in one query language and writing in another.  The only
useful consequence of this now is that it enables <code>roqet</code>
to become an RDQL to SPARQL translator.</p>

<p>Rasqal now requires <a href="http://librdf.org/raptor/">raptor</a>
1.4.9 or newer.
</p>


<h3>Configuration and Build Changes</h3>

<p>Now using subversion.</p>


<h3><code>roqet</code> utility Changes</h3>

<p>Altered the <code>-d</code> (<code>--dump-query</code>) option to
now take an argument of the query format to dump.  The values it can
take are <code>debug</code>, <code>structure</code> or
<code>sparql</code>.</p>

<p>To convert a query from RDQL to SPARQL, use:</p>
<pre>
roqet -q -i rdql -d sparql -n query.rdql > query.sparql
</pre>

<p>Added <code>-r json</code> for <a href="http://json.org/">JSON</a>
query results output based on the draft defined in the
<a href="http://www.w3.org/2001/sw/DataAccess/json-sparql/">Serializing SPARQL Query Results in JSON</a> draft
</p>


<h3>SPARQL Query Language Changes</h3>

<p>Updated to match
<a href="http://www.w3.org/TR/2006/CR-rdf-sparql-query-20060406/">SPARQL Query Language for RDF, W3C Candidate Recommendation 6 April 2006</a>.
All DAWG syntax tests now pass.
The update includes near alignment with SPARQL grammar term names
except where the flex/bison approach diverged.</p>

<p>Updated SPARQL tests from DAWG CVS</p>

<p>Finally removed long deprecated <code>ASC[]</code> and
<code>DESC[]</code> syntax.</p>


<h3>RDQL Query Language Changes</h3>

<p>Handle empty regex <code>//</code>
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=71">Issue#0000071</a>
</p>


<h3>Query Engine Changes</h3>

<p>Some updates to handle latest changes to SPARQL grammar.</p>

<p>Added <code>RASQAL_EXPR_REGEX</code> 3-arg operation to match
the SPARQL <code>regex()</code> 2/3-arg function.</p>

<p>Many internal changes to move more of the query execution state
from inside <code>rasqal_query</code> to
inside <code>rasqal_query_results</code> and related structures.
This is not yet complete but when done, you will be able to execute
the same query more than once at the same time.
</p>


<h3>Query API Changes</h3>

<p>Added <code>rasqal_query_write</code> to write a query
structure into a syntax onto a raptor_iostream.  Implements
writing SPARQL format with format URI NULL,
<a href="http://www.w3.org/TR/rdf-sparql-query/">http://www.w3.org/TR/rdf-sparql-query/</a>
or
<a href="http://www.w3.org/TR/2006/CR-rdf-sparql-query-20060406/">http://www.w3.org/TR/2006/CR-rdf-sparql-query-20060406/</a>
</p>

<p>Added a <a href="http://json.org/">JSON</a>
SPARQL query results format with format URI identifier
<a href="http://www.w3.org/2001/sw/DataAccess/json-sparql/">http://www.w3.org/2001/sw/DataAccess/json-sparql/</a>
based on the draft defined in
<a href="http://www.w3.org/2001/sw/DataAccess/json-sparql/">http://www.w3.org/2001/sw/DataAccess/json-sparql/</a>
Implemented document with version
<code>alt-ser-sparql.rst,v 1.3 2006/02/16 16:03:08 k Exp</code>.
</p>

<p><code>rasqal_query_get_all_variable_sequence</code> was corrected to match the
definition - return all variables, not just the bound (<code>SELECT</code>ed) ones.
Fixes  <a href="http://bugs.librdf.org/mantis/view.php?id=79">Issue#00000079</a>.
</p>

<p>Added <code>rasqal_query_get_anonymous_variable_sequence</code> to return
only anonymous variables after change above.
</p>

<p>Added <code>rasqal_graph_pattern_get_index</code> to get the
absolute index of a graph pattern in a graph.
</p>


<h3>IOstream class Changes</h3>

<p>Added
<code>rasqal_query_iostream_write_escaped_counted_string</code> and
<code>rasqal_query_escape_counted_string</code>
to format an escaped string suitable for using inside a query.
</p>


<h3>Documentation Changes</h3>

<p>Updated <code>roqet.1</code> for --exec option and new usages.</p>


<h2 id="rel0_9_11"><a name="rel0_9_11">Rasqal 0.9.11 Changes</a></h2>

<h3>General Changes</h3>

<p>Duplicated <code>SELECT</code> variables are now detected, give a
warning and are removed.
</p>

<p>Rasqal now requires <a href="http://librdf.org/raptor/">raptor</a>
1.4.8 or newer to get the <em>guess</em> parser that uses URI/name
and mime type returned from protocol request (if available) to choose
the correct parser.
</p>

<p>Added an internal <code>rasqal_map</code> key : value map for use
with result duplicate detection and ordering.
</p>

<p>A major source code regoranisation moved all library source code
to the <code>src/</code> dir, roqet to <code>utils/</code> and other
documentation to <code>docs/</code>.  This should only affect
packagers, not any functionality.</p>

<p>Many more function documentation were added to the sources for use
by gtk-doc.</p>


<h3>SPARQL Query Language Changes</h3>

<p>Updated to the 
<a href="http://www.w3.org/TR/2005/WD-rdf-sparql-query-20051123/">SPARQL Query Language for RDF W3C Working Draft 23 November 2005</a>:</p>
<ul>
<li>Added <code>isIRI</code> keywords.</li>
<li>Updated the name definitions to allow initial _ in variable names.</li>
<li>Changed the decimal and double literal syntax.</li>
<li>Allow negative numeric literals.</li>
<li>Change the AND and OR logic when an error is present.</li>
</ul>

<p>Added a post 2005-11-23 SPARQL WD syntax change: added
<code>langMatches</code> operator and initial query engine support.
</p>

<p>Invalid <code>\u</code><em>HHHH</em> and
<code>\U</code><em>HHHHHHHH</em> hex escapes and floating point
number formats are detected and warned.</p>
 
<p>Updates to the query engine make <code>DISTINCT</code>
and <code>ORDER BY</code> now work, including with <code>LIMIT</code>.
</p>

<p>The lexer now counts line numbers correctly over multi-line
comments.</p>

<p>Updated changes to the valid characters allowed in SPARQL names
for variable, prefix and QNames.</p>


<h3>RDQL Query Language Changes</h3>

<p>The lexer now counts line numbers correctly over multi-line
comments.</p>


<h3>Query Engine Changes</h3>

<p>When query result sorting is used with limit
(SPARQL <code>LIMIT</code>) and offset, they now work correctly,
performing the limit and offset after ordering the result.  This
matches the SPARQL query result semantics.
</p>

<p>The query engine now implements distinct results
(SPARQL <code>DISTINCT</code>) including with ordering
(SPARQL <code>ORDER BY</code>).
</p>

<p>More cases with optional graph patterns (SPARQL
<code>OPTIONAL</code>s) are now executed correctly.
Note: this does <em>not</em> mean all cases work, there are known
problems with executing optional clauses.</p>

<p>Added types for <code>xsd:float</code> (C float)
and <code>xsd:double</code> (C double); <code>xsd:decimal</code>
(handled as a string) and <code>xsd:datetime</code> (as a string).
</p>

<p>Fixed (a compare b) between integers and doubles to be the right sign.
</p>

<p>Do not promote literals early on in comparisons to strings "perl
style" but do the best type-based comparsion as late as possible.
</p>


<h3>Query API Changes</h3>

<p>Added <code>rasqal_new_double_literal</code>.</p>

<p>Added <code>rasqal_graph_pattern_visit</code> and type for visitor
function <code>rasqal_graph_pattern_visit_fn</code>.
</p>

<p>Added <code>rasqal_new_expression_from_expression</code>.</p>

<p>Added <code>rasqal_expression_visit</code> and type for visitor
function <code>rasqal_expression_visit_fn</code>.
</p>

<p>Deprecated function <code>rasqal_new_floating_literal</code> replaced by
new <code>rasqal_new_double_literal</code>.
</p>

<p>Deprecated function <code>rasqal_expression_foreach</code>,
replaced by new <code>rasqal_expression_visit</code>.
</p>

<p>Function <code>rasqal_expression_evaluate</code> gains a flag
argument of new enum <code>rasqal_compare_flags</code>.</p>

<p>Added enum <code>rasqal_compare_flags</code> flags for
<code>rasqal_expression_evaluate</code> or
<code>rasqal_literal_compare</code>.  Type
<code>RASQAL_COMPARE_XQUERY</code> can be used with
to ask for use of XQuery comparison and type promotions.
</p>

<p>Added <code>rasqal_literal</code> types:
<code>RASQAL_LITERAL_DECIMAL</code>,
<code>RASQAL_LITERAL_DATETIME</code>,
<code>RASQAL_LITERAL_DOUBLE</code> (replacing deprecated
<code>RASQAL_LITERAL_FLOATING</code>) and
<code>RASQAL_LITERAL_FLOAT</code>.  Reordered the
<code>rasqal_literal</code> types in the enum.
</p>

<p>The enum types in <code>rasqal_literal_type</code> were reordered
to make them match sparql type promotion.</p>


<h3><code>roqet</code> utility program changes</h3>

<p><code>roqet</code> gains -e/--exec option to execute a query
string directly rather than via a file or URI containing the query.
</p>

<p>Now writes out XML results format in format with version URI
<code>http://www.w3.org/2005/06/sparqlResults</code> and short name
"xml".  The previous version is available with short name "xml-v2".
The latest version now writes <code>ordered</code>
and <code>distinct</code> boolean-valued attributes on
the <code>results</code> element.
</p>


<h3>Configuration Changes</h3>

<p>The autogen.sh script for building from CVS was revamped to be
more modular.</p>

<p><code>configure</code> now takes an <code>--enable-gtk-doc</code>
option to enable building of the documentation using the
<code>gtk-doc</code> utility.  It is by default enabled only if the
utility is available.
</p>


<h3>Documentation Changes</h3>

<p>The GNOME <code>gtk-doc</code> program is now used to
automatically extract documentation from source comments into
reference documentation.  This is then merged with templates and
additional documentation to provide a reference manual for rasqal
as XML document which is turned into HTML along with GNOME devhelp
support.</p>

<p>This new documentation intended to replace the librasqal manual
page/web page as easier to read document with scope for better
expanding with more detail of rasqal including examples and tutorial
information.
The <a href="http://librdf.org/rasqal/librasqal.html">librasqal</a>
manual page will continue to contain the summary information for the
present.
</p>


<h2 id="rel0_9_10"><a name="rel0_9_10">Rasqal 0.9.10 Changes</a></h2>

<h3>General Changes</h3>

<p>The query engine now supports ordering query results, in SPARQL
this is the <code>ORDER BY</code> clause.</p>


<h3>SPARQL Query Language Changes</h3>

<p>The SPARQL parser now passes (accepts) all the 70+
<em>SyntaxFull</em> tests in the RDF Data Access Working Group (DAWG)
test suite for SPARQL.  This mostly means accepting optional
punctuation in some places.
</p>

<p>Sorting results with <code>ORDER BY</code> now partially works
however comparison is not done with the SPARQL literal comparison
rules (after XQuery) but using the existing RDQL-style "string-y"
comparisons.
</p>

<p>Allow <code>&lt;&gt;</code> as a URI.</p>

<p>The SPARQL parser now accepts some changes made by the DAWG after
the last published working draft:
<a href="http://www.w3.org/TR/2005/WD-rdf-sparql-query-20050419/">SPARQL Query Language for RDF</a>,
W3C Working Draft, 19 April 2005.  This includes:</p>

<ul>
<li>In <code>ORDER BY</code>
<code>ASC(</code>expression<code>)</code> replaces <code>ASC[...]</code>,
<code>DESC(</code>expression<code>)</code> replaces <code>DESC[...]</code>,
and it also accepts <code>ORDER BY (</code>expression<code>)</code>.
<code>ORDER BY </code>func()<code></code> is accepted although at
present no extension function support is available that could use it.
</li>

<li><code>[]</code> can be used in the triple predicate position
as an anonymous existential variable</li>

<li>Enforce that ASK queries cannot use <code>ORDER BY</code>,
<code>LIMIT</code> or <code>OFFSET</code></li>

</ul>

<p>Omitting <code>WHERE</code> gives a warning.  Don't do that!</p>


<h3>Query Engine Changes</h3>

<p>The query engine now allows sorting of results (<code>ORDER BY</code>
in SPARQL).  It performs comparisons using the existing RDQL style
and does not yet support the SPARQL literal comparison rules.  Sorting
can be done by a sequence of expressions, ascending or descending.
If the final result is equality, the object pointers are used.</p>

<p>Note: removal of duplicates is not supported yet.</p>

<p>Some test code for datatypes support was added, not enabled by
default and not yet useful.</p>


<h3>Query API Changes</h3>

<p>Removed functions deprecated in 0.9.9.</p>

<p>Added <code>rasqal_graph_pattern_operator</code> enumeration with
values for the main SPARQL graph patterns, graph pattern class method
<code>rasqal_graph_pattern_get_operator</code> and graph pattern
utility function <code>rasqal_graph_pattern_operator_as_string</code></p>

<p>Modified the type of the final argument of
<code>rasqal_new_graph_pattern_from_sequence</code> and
<code>rasqal_graph_pattern_add_triples</code> from an integer to a
<code>rasqal_graph_pattern_operator</code> enumeration.</p>

<p>Deprecated function <code>rasqal_graph_pattern_get_flags</code>
now always returning 0 replaced by the graph pattern operator
functions listed above .</p>


<h3><code>roqet</code> utility program changes</h3>

<p>Removed deprecated flags -f and -o</p>


<h2 id="rel0_9_9"><a name="rel0_9_9">Rasqal 0.9.9 Changes</a></h2>

<h3>General Changes</h3>

<p>SPARQL is now the default query language</p>

<p>Added a signing memory debugging system to aid checking when
rasqal-allocated memory is freed in another library or vice-versa
enabled by <code>--with-memory-signing</code> configure option
(defaults to on in maintainer mode).</p>

<p>Fixed a few internal malloc/frees to use RASQAL_MALLOC / RASQAL_FREE
so that the above signed memory system worked.</p>


<h3>SPARQL Query Language Changes</h3>

<p>Grammar updated to follow the
<a href="http://www.w3.org/TR/2005/WD-rdf-sparql-query-20050419/">SPARQL Query Language for RDF</a>,
W3C Working Draft, 19 April 2005.  This changes many parts of the syntax:
</p>
<ul>
<li>Turtle/N3 style for triples with abbreviations</li>
<li><code>{</code> ... <code>}</code> around triple patterns</li>
<li><code>OPTIONAL</code> instead of <code>[]</code></li>
<li><code>GRAPH</code> replaces <code>SOURCE</code></li>
<li><code>FROM NAMED</code> replaces <code>LOAD</code></li>
<li><code>FILTER</code> replaces <code>AND</code></li>
<li><code>REGEX</code> replaces <code>?var =~ /match/flags</code>
and <code>!~</code></li>
<li>Added <code>LIMIT</code>, <code>OFFSET</code> and
<code>ORDER BY</code> with <code>ASC[]</code> and <code>DESC[]</code></li>
<li>Changed function syntax to remove <code>&amp;</code></li>
<li>Removed old operator tokens: <code>ne</code>, <code>eq</code>, <code>==</code></li>
</ul>

<p>(Note: the query engine does not support sorting amongst other
recently added SPARQL features)</p>

<p>SPARQL keywords are now case independent rather than just upper
or lowercase.</p>

<p>Added """long literals""" after N3 (and soon, Turtle)
and '''long literals''' for SPARQL only.
</p>

<p>Added many SPARQL tests from DAWG most not yet approved by the
working group. Not all pass either because not implemented or
known bugs.</p>

<p>Added the revised 
<em>SPARQL Query Results XML Format</em> (the latest version not yet published)
support to <code>rasqal_query_results_write</code> when called with
format URI <code>http://www.w3.org/2001/sw/DataAccess/rf1/result2</code>.
</p>


<h3>Query Engine Changes</h3>

<p>Uses the query results limit and offset information to skip
initial results (offset) and provide a maximum number of results (limit).
</p>

<p>Moved some engine-specific operations from RDQL and SPARQL parser.
</p>

<p>Added internal <code>rasqal_formula</code> class for the Turtle
part of the SPARQL parser
</p>

<p><strong>Deprecated</strong> the <code>rasqal_triples_source</code>
factory method <code>new_triples_match</code>.  It is replaced by a
new method <code>init_triples_match</code> and will be removed from
the next release.</p>



<h3>Query API Changes</h3>

<p>Added bnode identifier generation functions:
<code>rasqal_query_set_default_generate_bnodeid_parameters</code>,
<code>rasqal_query_set_generate_bnodeid_handler</code> based on the
raptor API for generating blank node identifiers in the Turtle/N3
triple style.
</p>

<p>Added <code>order_conditions_sequence</code> to the query
structure to store query ordering conditions and added access methods
<code>rasqal_query_get_order_conditions_sequence</code> and
<code>rasqal_query_get_order_condition</code> to read the resulting
expressions.
</p>

<p>Added expressions for SPARQL ordering conditions:
<code>RASQAL_EXPR_ORDER_COND_ASC</code>,
<code>RASQAL_EXPR_ORDER_COND_DESC</code> and
<code>RASQAL_EXPR_ORDER_COND_NONE</code>.
</p>


<p>Added types for variables in two version - normal and anonymous
with an new enum <code>rasqal_variable_type</code> and
<code>rasqal_new_variable_typed</code> to allow creating them.
</p>

<p>Completed the distinct/limit and offset get/set methods by adding:
<code>rasqal_query_set_distinct</code>,
<code>rasqal_query_set_limit</code>,
<code>rasqal_query_get_offset</code> and
<code>rasqal_query_set_offset</code>
</p>

<p>Deprecated the <code>rasqal_triple</code> flags field - the value
<code>RASQAL_TRIPLE_FLAGS_EXACT</code> was only used in internals of
the execution engine. The value
<code>RASQAL_TRIPLE_FLAGS_OPTIONAL</code> was never used.  Optionals
are now noted on graph patterns.  Deprecated
<code>rasqal_triple_set_flags</code> and
<code>rasqal_triple_get_flags</code>.
</p>

<p>Added enum <code>rasqal_query_verb</code> for the main query verbs:
<code>RASQAL_QUERY_VERB_SELECT</code>
<code>RASQAL_QUERY_VERB_CONSTRUCT</code>
<code>RASQAL_QUERY_VERB_DESCRIBE</code> and
<code>RASQAL_QUERY_VERB_ASK</code>.
Added method <code>rasqal_query_get_verb</code> to access the verb.
</p>

<p>Added <code>rasqal_query_get_query_graph_pattern</code> to get the
top graph pattern.</p>

<p>Added <code>rasqal_query_get_wildcard</code> to get the query verb
wildcard flag such as with SPARQL <code>SELECT *</code>
</p>

<p>Added <code>rasqal_query_get_construct_triples_sequence</code> and
<code>rasqal_query_get_construct_triple</code> to get the triples
made from a SPARQL <code>CONSTRUCT</code> query.</p>


<h3><code>roqet</code> utility program changes</h3>

<p>Updated roqet to include better query structure walking with
<code>-w</code> / <code>--walk</code> including listing query verb,
distinct, limit, offset flags, construct triples and easier to read
groupings of graph patterns and triples.</p>

<p>Deprecated roqet arguments <code>-f</code> / <code>--format</code>
and <code>-o</code> / <code>--output</code> in place of
<code>-r</code> / <code>--results</code> as both choose the query
results format.
</p>

<p>SPARQL is now the default query language for roqet.</p>



<h2 id="rel0_9_8"><a name="rel0_9_8">Rasqal 0.9.8 Changes</a></h2>

<h3>SPARQL Query Language Changes</h3>

<p>Grammar updated to follow the
<a href="http://www.w3.org/TR/2005/WD-rdf-sparql-query-20050217/">SPARQL Query Language for RDF</a>,
W3C Working Draft, 17 February 2005.
</p>

<p>Added support for casting in constraint expresions for datatyped literals
with the syntax <em>qname</em><code>(</code><em>literal</em><code>)</code>
such as <code>xsd:decimal("10")</code>.
</p>

<p>Added named graphs parsing with <code>LOAD</code> and note that
<code>UNION</code> cannot be handled yet, <code>SOURCE</code> and
<code>[</code>...<code>]</code> syntax for optionals are deprecated.
</p>


<h3>Query Engine Changes</h3>

<p>Engine now operates over a hierarchy of
<code>rasqal_graph_pattern</code> objects, where at the root the
query has a single <em>query graph</em> rather than a sequence of
graph patterns.  The query graph contains the former sequence of
graph patterns.</p>

<p>Constraints can be applied to any graph pattern, not just at the
top level of a query.</p>

<p>Added casting expressions type <code>RASQAL_EXPR_CAST</code>
and constructor <code>rasqal_new_cast_expression</code>.</p>

<p>Fixed setting of a triple origin (SPARQL <code>GRAPH</code>) which
was not working in 0.9.7</p>

<p><code>xsd:boolean</code> RDF literals are now promoted into
internal <code>RASQAL_LITERAL_BOOLEAN</code> typed
<code>rasqal_literal</code> like for XSD integer and double.
</p>

<p>The query engine uses the named graph information when evaluating
queries, passing it to the <code>rasqal_triples_match</code> factory
methods either implemented with raptor or redland as a 
<code>rasqal_triples_source_factory</code> and returning them
as results of variable bindings.
</p>



<h3>Query API Changes</h3>

<p>Added no-arg constructor
<code>rasqal_new_graph_pattern</code>
</p>

<p>Added method
<code>rasqal_graph_pattern_add_triples</code>
to add triples to an existing graph pattern.
</p>

<p>Added methods
<code>rasqal_graph_pattern_add_constraint</code>,
<code>rasqal_graph_pattern_get_constraint_sequence</code> and
<code>rasqal_graph_pattern_get_constraint</code>
to add constraints to a graph pattern.
</p>

<p>Added method
<code>rasqal_graph_pattern_add_sub_graph_pattern</code>
to add a sub-graph pattern to a graph pattern.
</p>

<p>Added a <em>Data Graph</em> class with constructor
<code>rasqal_new_data_graph</code>, destructor
<code>rasqal_free_data_graph</code> and debug method
<code>rasqal_data_graph_print</code>.
</p>

<p>Added query methods for data graphs:
<code>rasqal_query_add_data_graph</code>,
<code>rasqal_query_get_data_graph_sequence</code>,
<code>rasqal_query_get_data_graph</code>.
</p>

<p>Deprecated query methods
<code>rasqal_query_add_constraint</code>,
<code>rasqal_query_get_constraint_sequence</code>
<code>rasqal_query_get_constraint</code>,
<code>rasqal_query_add_source</code>,
<code>rasqal_query_get_source_sequence</code> and
<code>rasqal_query_get_source</code>.  These will be removed in the
next release.</p>

<p>Removed functions deprecated in previous version:
<code>rasqal_query_get_variable_sequence</code>
and <code>rasqal_query_add_triple</code>.
</p>


<h2 id="rel0_9_7"><a name="rel0_9_7">Rasqal 0.9.7 Changes</a></h2>

<h3>General Changes</h3>

<p>Fix a resource clean up when query results are either not read at
all or not fully exhausted.  This caused a problem in Redland when it
held on to MySQL database handles despite a query having ended.</p>

<p>Added option <code>-n/--dryrun</code> to <code>roqet</code> to stop after
preparing the query.  Added option <code>-w/--walk-query</code> to
walk and print the query using the graph API.</p>

<p>New build configuration and portability fixes for win32 (John Barstow)</p>

<p>Portability fixes for win32 - define <code>RASQAL_INLINE</code>
and use it as for raptor.  (Dave Viner)</p>

<p>Make rasqal tests work when building against raptor in a sibling
source tree.</p>


<h3>Query Engine Changes</h3>

<p>Added a graph pattern API with <code>rasqal_graph_pattern</code>
typedef and <code>rasqal_pattern_flags</code> enum with value
<code>RASQAL_PATTERN_FLAGS_OPTIONAL</code> to allow complete
walking of the query structure.</p>

<p>Two new methods to the query class were added to support this:
<code>rasqal_query_get_graph_pattern_sequence</code> to get the
raptor_sequence of graph patterns in a query and
<code>rasqal_query_get_graph_pattern</code> to get individual an
graph pattern by index.</p>

<p>The new graph pattern methods added are:</p>
<ul>
  <li><code>rasqal_graph_pattern_get_triple</code> to get a
  <code>raptor_triple</code> inside a graph pattern.</li>
  <li><code>rasqal_graph_pattern_get_sub_graph_pattern_sequence</code> to
  get the raptor_sequence of sub-graph patterns.</li>
  <li><code>rasqal_graph_pattern_get_sub_graph_pattern</code> to get
  a sub-graph pattern inside a graph pattern by index.</li>
  <li><code>rasqal_graph_pattern_get_flags</code> to get a graph
  pattern's flags.</li>
  <li><code>rasqal_graph_pattern_print</code> to print a graph
  pattern in a debug form.</li>
</ul>

<p>Deprecated <code>rasqal_query_add_triple</code> as it doesn't
construct the graph patterns and is of little use as it does not
build the correct query structures.</p>

<p>Added query API methods to get the bound and all variables
in a query:  <code>rasqal_query_get_bound_variable_sequence</code>
and <code>rasqal_query_get_all_variable_sequence</code> respectively.
Deprecated <code>rasqal_query_get_variable_sequence</code> as
too ambiguous.</p>

<p>With the aid of gcc <code>-Wswitch-enum</code>, found and fixed
cases where switch on enumerated values were missing cases.  The
remaining cases return failure or an error message rather than
abort().  This fixed a crash when comparing for equality a variable
?x with a blank node value and an interger.</p>

<p>Deleted <code>RASQAL_EXPR_PATTERN</code> as it was never used.</p>

<p>Added <code>rasqal_query_get_distinct</code> to get a
query-specified distinct results flag.</p>

<p>Added <code>rasqal_query_get_limit</code> to get a query-specified
limit on the number of results.</p>



<h3>SPARQL Query Language Changes</h3>

<p>Updated some of the SPARQL syntax to match the changes in the
<a href="http://www.w3.org/TR/2005/WD-rdf-sparql-query-20050217/">SPARQL Query Language for RDF</a>
W3C Working Draft of 17 February 2005.  Added <code>GRAPH</code>
replacing <code>SOURCE</code> and <code>WITH</code> replacing
<code>FROM</code>.  Added warnings about using the older forms
and about using <code>[</code>...<code>]</code> instead of
<code>OPTIONAL</code>.
</p>

<p>Added recording of <code>DISTINCT</code> and <code>LIMIT</code>
in the query structures but not yet used by the query engine.</p>



<h3>RDQL Query Language Changes</h3>

<p>None.</p>



<h2 id="rel0_9_6"><a name="rel0_9_6">Rasqal 0.9.6 Changes</a></h2>

<h3>General Changes</h3>

<p>Fix a bug in writing a query result to XML when blank nodes are
used. Now also correctly uses the base URI when pass in to the
writing method.</p>

<p>Added support for three types of query result - bindings (the only
one in previous versions), an RDF graph and a boolean.  Added
<code>rasqal_query_results</code> methods to test the type of the
result: <code>rasqal_query_results_is_bindings</code>,
<code>rasqal_query_results_is_boolean</code> and
<code>rasqal_query_results_is_graph</code>.</p>

<p>Added
<code>rasqal_query_results_get_triple</code>
to get current triple as a <code>raptor_statement</code>
and <code>rasqal_query_results_next_triple</code> to move to the next triple.
</p>

<p>Added 
<code>rasqal_query_results_get_boolean</code>
to get a boolean query result value.
</p>

<p>Added <code>rasqal_triple</code> copy constructor
<code>rasqal_new_triple_from_triple</code>.
</p>



<h3>Query Engine Changes</h3>

<p>Constructs an RDF graph result as a sequence of triples.  This
enables the SPARQL <code>CONSTRUCT</code> form to work.
</p>

<p>Can return a boolean result indicating that there were variable
binding results, but not returning them.  This enables the SPARQL
<code>ASK</code> form to work.
</p>

<p>Added a new function expression - rasqal_op enum value
<code>RASQAL_EXPR_FUNCTION</code>, added new <code>name</code> and
<code>args</code> fields to the <code>rasqal_expression</code>
structure and added <code>rasqal_new_function_expression</code> to
construct this expression.
</p>

<p>Added new 1-argument expression <code>RASQAL_EXPR_STR</code>
returning a string version of the expression.</p>

<p>Added new 1-argument expressions operating on RDF literals:
<code>RASQAL_EXPR_LANG</code> returning the language string of an RDF literal,
<code>RASQAL_EXPR_DATATYPE</code> returning the datatype URI of an RDF literal.
</p>

<p>Added new 1-argument testing expressions returning booleans:
<code>RASQAL_EXPR_BOUND</code> true if the variable argument is bound to a value,
<code>RASQAL_EXPR_ISURI</code> true if the argument is a URI,
<code>RASQAL_EXPR_ISBLANK</code> true if the argument is a blank node and
<code>RASQAL_EXPR_ISLITERAL</code> true if the argument is an RDF literal.
</p>

<p>Fixed a problem in optional results returning extra results
with no new bindings.
</p>


<h3>SPARQL Query Language Changes</h3>

<p>The SPARQL Parser now allows UTF-8 and \u, \U in prefixes and
QNames.
</p>

<p>Now supports <code>CONSTRUCT</code> and <code>ASK</code>
queries using the updated query engine features.</p>

<p><code>OPTIONAL</code> can now be used wherever <code>[</code> ...
<code>]</code> could be used (parser bug fix).</p>

<p>Now supports the SPARQL built-in functions
<code>STR()</code> returning a string version of the expression,
<code>LANG()</code> returning the language string of an RDF literal,
<code>DATATYPE()</code> returning the datatype URI of an RDF literal,
<code>BOUND()</code> testing if a variable is bound,
<code>ISURI()</code> testing if an expression is a URI,
<code>ISBLANK()</code> testing if an expression is a blank node and
<code>ISLITERAL()</code> testing if an expression is an RDF literal.
</p>

<p>Now supports SPARQL <code>BASE</code> directive for setting the
base URI of a query.  This is <em>experimental</em> and may not be in
the next version or may not be in the final SPARQL language.</p>

<p>The parser now expands QNames correctly when used in literals like
<code>"blah"^^xsd:string</code>.
</p>


<h3>RDQL Query Language Changes</h3>

<p>The RDQL Parser now allows UTF-8 and \u, \U in prefixes and
QNames.  This makes RDQL testsuite tests S-03, S-04 and S-05 work.
</p>



<h2 id="rel0_9_5"><a name="rel0_9_5">Rasqal 0.9.5 Changes</a></h2>

<p>A release with major changes internal to the query engine to
operate over graph patterns instead of sequences of triple patterns
and to add execution of optional graph patterns.  Additionally the
query results can now be written in a recognised XML format.</p>

<p>This version of Rasqal requires
<a href="http://librdf.org/raptor/">Raptor</a> 1.4.4.</p>


<h3>Core Changes</h3>

<p>Added a <code>rasqal_graph_pattern</code> class for handling
matching a graph pattern (set of triple patterns) in an
<code>rasqal_query</code>.  RDQL only has one of these wheras SPARQL
may have many, and they may be nested (this may change, as SPARQL is
under development).</p>

<p>Added <code>rasqal_query_results_write</code> method to write
variable binding query results to a <code>raptor_iostream</code> in
the XML format defined by
<a href="http://www.w3.org/TR/2004/WD-rdf-sparql-XMLres-20041221/">SPARQL Variable Binding Results XML Format</a>, W3C Working Draft, 21 December 2004.
</p>



<h3>Query Engine Changes</h3>

<p>Updated the query engine to operate over graph patterns rather
than a single sequence of triple patterns.  The graph patterns may be
optional, which is used to implement SPARQL optionals.  Nested graph
patterns are constructed but cannot yet be executed.
</p>

<p>Added a unary minus expression type.</p>

<p>Improved the type promotion for expression evaluation.  Try to
evaluate strings as doubles or integers if the operation contains one
double or integer respectively.</p>

<p>Fixed a memory leak with string matches/non-matches.</p>


<h3>SPARQL Query Language Changes</h3>

<p>Optional graph patterns <code>OPTIONAL</code> and
<code>[</code> ... <code>]</code> now work.</p>

<p>Added the <code>{</code> ... <code>}</code> group syntax and
removed the <code>(</code> ... <code>)</code> form.</p>

<p><code>$</code> was added as an allowed variable prefixes.</p>

<p>A warning was added to show <code>SOURCE *</code> is ignored.</p>

<p>Added the <code>UNION</code> keyword, unsupported.</p>

<p>Rasqal now passes the
<a href="http://www.w3.org/2001/sw/DataAccess/">DAWG</a>
SPARQL 
<a href="http://www.w3.org/2001/sw/DataAccess/tests/">test cases</a>:
Optional triples (dawg-opt-query-001, dawg-opt-query-002,
dawg-opt-query-003, dawg-opt-query-004)
and examples from query WD (sparql-query-example-2.1a,
sparql-query-example-2.2a, sparql-query-example-2.3a,
sparql-query-example-2.4a, sparql-query-example-3)
</p>

<p>Allow UTF-8 qname prefixes and check name against XML name
constraints.</p>

<p>Recover lexer state from errors in regexes.</p>

<p>Terminate the lexer on a syntax error, rather than produce
multiple errors.</p>


<h3>RDQL Query Language Changes</h3>

<p>The lexer now handles UTF-8 qname prefixes, enabling RDQL
testsuite test S-02 to pass.</p>

<p>Allow UTF-8 qname prefixes and check name against XML name
constraints.</p>

<p>Recover lexer state from errors in regexes.</p>

<p>Terminate the lexer on a syntax error, rather than produce
multiple errors.</p>



<h2 id="rel0_9_4"><a name="rel0_9_4">Rasqal 0.9.4 Changes</a></h2>

<p>Pass on raptor parser errors to rasqal's error routines and
upwards.</p>

<p>Clean up several memory allocations when a query fails to prepare
or execute fully.</p>

<p>Fixed lexer jams when a query contained an illegal
variable name after a '?'.</p>

<p>Fixed lexer crashes when a query ended in a regex pattern like
<code>/abc/</code>.</p>

<p>Tidied up the testing framework so 'make distcheck' works.</p>


<h2 id="rel0_9_3"><a name="rel0_9_3">Rasqal 0.9.3 Changes</a></h2>

<p>Rasqal's License was changed from LGPL 2.1/MPL 1.1 to
LGPL 2.1/Apache 2</p>

<p>Added support for the
<a href="http://www.w3.org/TR/2004/WD-rdf-sparql-query-20041012/">
SPARQL Query Language for RDF</a>,
W3C Working Draft, 12 October 2004
from the W3C RDF Data Access Working Group (DAWG).
The support is at the basic syntax level - token lexer and grammar parser
which passes the first simple tests from the proposed
DAWG testcases.  No additional query engine support has been added for SPARQL
features that are not supported by RDQL.  The
<a href="http://librdf.org/rasqal/TODO.html#sparql">Rasqal to do list</a>
contains full details of the implementation state.
</p>

<p>Queries can now be prepared and then executed multiple times.</p>

<p>Added configure <code>--enable-query-languages</code> option with
<code>rdql</code> and <code>sparql</code> as the choices.</p>

<p>Thanks to Chris Pointon for several patches to make Rasqal easier
to build under Win32.  Applied with some modifications.  Renamed the
RDQL and SPARQL syntax tokens ERROR to ERROR_TOKEN to help.</p>

<p>Added experimental support for querying multiple sources; the same
query is executed over each source in turn.  Also added some support
for returning the source URI which is not yet enabled as this feature
is in flux in the DAWG work.  This may change or be removed in future
versions.</p>

<p><code>roqet</code> can specify a data source URI on the command
line with <code>-s</code> / <code>--source</code>) <em>URI</em> for
queries executing against an implicit model.</p>

<p>Added the
<a href="http://www.w3.org/2001/sw/DataAccess/tests/">DAWG SPARQL test cases</a>
driven from the manifest.n3 format.  Created tests from the examples
in the working draft.</p>

<p>Added an experimental XML result format for bindings, based on
DAWG work.  Enabled in <code>roqet</code> with <code>-o xml</code>.
This is very likely to change or replaced in future versions.</p>

<p>Added <code>roqet</code> argument <code>-d</code> /
<code>--dump-query</code> to dump the processed query, rather than
do it by default (0.9.2 and earlier).</p>

<p><code>roqet</code> can now read queries from URIs, using
the <code>raptor_www</code> class to do the retrieval.</p>

<p>Fixed the <code>configure</code> checks for a posix regex
function regcomp to correctly discover it is present.</p>


<h3>Internal changes</h3>

<p>Added support for declaring prefixes for XML-style QNames both
before and after their use.</p>

<p>The struct <code>rasqal_prefix</code> gained a
<code>declared</code> field.</p>

<p>The struct <code>rasqal_triple</code> gained an origin field; not
used at present but intended to support work on tracking triple
provenance such as provided by Redland Contexts.</p>

<p>Added methods <code>rasqal_triple_set_origin</code> and
<code>rasqal_triple_get_origin</code> to support the above.</p>

<p>struct <code>rasqal_triple_meta</code> now takes a 4-array of
bindings, the fourth being the origin.</p>

<p>Exported function <code>rasqal_set_triples_source_factory</code>
publically as originally intended.
</p>


<h2 id="rel0_9_2"><a name="rel0_9_2">Rasqal 0.9.2 Changes</a></h2>

<p>This release made minor portability fixes for building with
C++ and Win32 (untested).</p>

<p>Several functions changed their parameters or return values from
char* to unsigned char* or const unsigned char* to reflect the
actual use.</p>

<p>Changed to return a <code>const unsigned char*</code>:<br />
<code>rasqal_literal_as_string</code>
</p>

<p>Changed to take <code>const unsigned char*</code> (or add
<code>const</code>):<br />
<code>rasqal_new_floating_literal</code><br />
<code>rasqal_new_pattern_literal</code><br />
<code>rasqal_new_prefix</code><br />
<code>rasqal_new_simple_literal</code><br />
<code>rasqal_new_string_literal</code><br />
<code>rasqal_new_variable</code><br />
<code>rasqal_query_has_variable</code><br />
<code>rasqal_query_results_get_binding_name</code><br />
<code>rasqal_query_results_get_binding_value_by_name</code><br />
<code>rasqal_query_results_get_bindings</code><br />
<code>rasqal_query_set_variable</code><br />
</p>


<h2 id="rel0_9_1"><a name="rel0_9_1">Rasqal 0.9.1 Changes</a></h2>

<p>This release changed the way that results were returned.  A new
<code>rasqal_query_results</code> class was created.  This allows for
a clean separation of the two concepts allowing multiple form of the
results to be retrieved as methods of the query_results class, rather
than the query class.  The only form of results currently available
is variable bindings, but RDF graphs will be returned in future,
as a set of triples in a serialised form.</p>

<p>The execution method <code>rasqal_query_execute</code> was changed
to return a new object of that class rather than an <code>int</code>
success or failure.</p>

<p>The following methods of the <code>rasqal_query</code> class
were renamed and moved to the new <code>rasqal_query_results</code>
class:</p>

<table>
<tr>
<th>0.9.0 name</th> <th>0.9.1+ name</th>
</tr>
<tr>
<td><code>rasqal_query_get_result_count</code></td> <td><code>rasqal_query_results_get_count</code></td>
</tr>
<tr>
<td><code>rasqal_query_next_result</code></td> <td><code>rasqal_query_results_next</code></td>
</tr>
<tr>
<td><code>rasqal_query_results_finished</code></td> <td><code>rasqal_query_results_finished</code></td>
</tr>
<tr>
<td><code>rasqal_query_get_result_bindings</code></td> <td><code>rasqal_query_results_get_bindings</code></td>
</tr>
<tr>
<td><code>rasqal_query_get_result_binding_value</code></td> <td><code>rasqal_query_results_get_binding_value</code></td>
</tr>
<tr>
<td><code>rasqal_query_get_result_binding_name</code></td> <td><code>rasqal_query_results_get_binding_name</code></td>
</tr>
<tr>
<td><code>rasqal_query_get_result_binding_by_name</code></td> <td><code>rasqal_query_results_get_binding_value_by_name</code></td>
</tr>
<tr>
<td><code>rasqal_query_get_bindings_count</code></td> <td><code>rasqal_query_results_get_bindings_count</code></td>
</tr>
</table>

<p>A new <code>rasqal_free_query_results</code> destructor was created
to delete the query results.  (There is no public constructor).</p>

<p>Other minor bugs were fixed such as multiple constraints now being
ANDed and not ORed, and adding defensive code for when queries fail
and results methods are invoked.</p>


<h2 id="rel0_9_0"><a name="rel0_9_0">Rasqal 0.9.0 Changes</a></h2>

<p>
It is all new.
</p>



<hr />

<p>Copyright (C) 2004-2006 <a href="http://purl.org/net/dajobe/">Dave Beckett</a><br />Copyright (C) 2003-2005 <a href="http://www.bristol.ac.uk/">University of Bristol</a></p>

</body>
</html>