rdf-turtle 1.1.0p0 → 1.1.0p1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -45,16 +45,18 @@ Full documentation available on [Rubydoc.info][Turtle doc]
45
45
  ### Variations from the spec
46
46
  In some cases, the specification is unclear on certain issues:
47
47
 
48
- * For the time being, plain literals are generated without an xsd:string datatype, but literals with an xsd:string
49
- datatype are saved as non-datatyped triples in the graph. This will be updated in the future when the rest of the
50
- library suite is brought up to date with RDF 1.1.
48
+ * The LC version of the [Turtle][] specification separates rules for `@base` and `@prefix` with
49
+ closing '.' from the
50
+ SPARQL-like `BASE` and `PREFIX` without closing '.'. This version implements a more flexible
51
+ syntax where the `@` and closing `.` are optional and `base/prefix` are matched case independently.
52
+ * Additionally, both `a` and `A` match `rdf:type`.
51
53
 
52
54
  ### Freebase-specific Reader
53
55
  There is a special reader useful for processing [Freebase Dumps][]. To invoke
54
56
  this, add the `:freebase => true` option to the {RDF::Turtle::Reader.new}, or
55
57
  use {RDF::Turtle::FreebaseReader} directly. As with {RDF::Turtle::Reader},
56
58
  prefix definitions may be passed in using the `:prefixes` option to
57
- {RDF::Turtle::FreebaseReader#initialize} using the standard mechanism defined
59
+ RDF::Turtle::FreebaseReader} using the standard mechanism defined
58
60
  for `RDF::Reader`.
59
61
 
60
62
  The [Freebase Dumps][] have a very normalized form, similar to N-Triples but
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.0p0
1
+ 1.1.0p1
@@ -1,4 +1,4 @@
1
- # This file is automatically generated by /Users/gregg/.rvm/gems/ruby-1.9.3-p374/bundler/gems/ebnf-a5c008da3a01/bin/ebnf
1
+ # This file is automatically generated by /Users/gregg/.rvm/gems/ruby-1.9.3-p392/bundler/gems/ebnf-af9a669d518f/bin/ebnf
2
2
  # BRANCH derived from etc/turtle.bnf
3
3
  module RDF::Turtle::Meta
4
4
  START = :turtleDoc
@@ -66,7 +66,19 @@ module RDF::Turtle::Meta
66
66
  :STRING_LITERAL_SINGLE_QUOTE => [:STRING_LITERAL_SINGLE_QUOTE],
67
67
  },
68
68
  :base => {
69
- "@base" => ["@base", :IRIREF, "."],
69
+ :BASE => [:BASE, :IRIREF, :_base_1],
70
+ },
71
+ :_base_1 => {
72
+ "(" => [],
73
+ "." => ["."],
74
+ :ANON => [],
75
+ :BASE => [],
76
+ :BLANK_NODE_LABEL => [],
77
+ :IRIREF => [],
78
+ :PNAME_LN => [],
79
+ :PNAME_NS => [],
80
+ :PREFIX => [],
81
+ "[" => [],
70
82
  },
71
83
  :blankNodePropertyList => {
72
84
  "[" => ["[", :predicateObjectList, "]"],
@@ -112,10 +124,10 @@ module RDF::Turtle::Meta
112
124
  "true" => [:object, :_collection_1],
113
125
  },
114
126
  :directive => {
115
- "@base" => [:base],
116
- "@prefix" => [:prefixID],
117
- :SPARQL_BASE => [:sparqlBase],
118
- :SPARQL_PREFIX => [:sparqlPrefix],
127
+ :BASE => [:base],
128
+ :PREFIX => [:prefixID],
129
+ :sparqlBase => [:sparqlBase],
130
+ :sparqlPrefix => [:sparqlPrefix],
119
131
  },
120
132
  :iri => {
121
133
  :IRIREF => [:IRIREF],
@@ -187,6 +199,7 @@ module RDF::Turtle::Meta
187
199
  :PNAME_NS => [:iri],
188
200
  },
189
201
  :predicateObjectList => {
202
+ "A" => [:verb, :objectList, :_predicateObjectList_1],
190
203
  :IRIREF => [:verb, :objectList, :_predicateObjectList_1],
191
204
  :PNAME_LN => [:verb, :objectList, :_predicateObjectList_1],
192
205
  :PNAME_NS => [:verb, :objectList, :_predicateObjectList_1],
@@ -206,6 +219,7 @@ module RDF::Turtle::Meta
206
219
  :_predicateObjectList_4 => {
207
220
  "." => [],
208
221
  ";" => [],
222
+ "A" => [:_predicateObjectList_5],
209
223
  :IRIREF => [:_predicateObjectList_5],
210
224
  :PNAME_LN => [:_predicateObjectList_5],
211
225
  :PNAME_NS => [:_predicateObjectList_5],
@@ -213,31 +227,36 @@ module RDF::Turtle::Meta
213
227
  "a" => [:_predicateObjectList_5],
214
228
  },
215
229
  :_predicateObjectList_5 => {
230
+ "A" => [:verb, :objectList],
216
231
  :IRIREF => [:verb, :objectList],
217
232
  :PNAME_LN => [:verb, :objectList],
218
233
  :PNAME_NS => [:verb, :objectList],
219
234
  "a" => [:verb, :objectList],
220
235
  },
221
236
  :prefixID => {
222
- "@prefix" => ["@prefix", :PNAME_NS, :IRIREF, "."],
223
- },
224
- :sparqlBase => {
225
- :SPARQL_BASE => [:SPARQL_BASE, :IRIREF],
237
+ :PREFIX => [:PREFIX, :PNAME_NS, :IRIREF, :_prefixID_1],
226
238
  },
227
- :sparqlPrefix => {
228
- :SPARQL_PREFIX => [:SPARQL_PREFIX, :PNAME_NS, :IRIREF],
239
+ :_prefixID_1 => {
240
+ "(" => [],
241
+ "." => ["."],
242
+ :ANON => [],
243
+ :BASE => [],
244
+ :BLANK_NODE_LABEL => [],
245
+ :IRIREF => [],
246
+ :PNAME_LN => [],
247
+ :PNAME_NS => [],
248
+ :PREFIX => [],
249
+ "[" => [],
229
250
  },
230
251
  :statement => {
231
252
  "(" => [:_statement_1],
232
- "@base" => [:directive],
233
- "@prefix" => [:directive],
234
253
  :ANON => [:_statement_1],
254
+ :BASE => [:directive],
235
255
  :BLANK_NODE_LABEL => [:_statement_1],
236
256
  :IRIREF => [:_statement_1],
237
257
  :PNAME_LN => [:_statement_1],
238
258
  :PNAME_NS => [:_statement_1],
239
- :SPARQL_BASE => [:directive],
240
- :SPARQL_PREFIX => [:directive],
259
+ :PREFIX => [:directive],
241
260
  "[" => [:_statement_1],
242
261
  },
243
262
  :_statement_1 => {
@@ -279,6 +298,7 @@ module RDF::Turtle::Meta
279
298
  },
280
299
  :_triples_3 => {
281
300
  "." => [],
301
+ "A" => [:predicateObjectList],
282
302
  :IRIREF => [:predicateObjectList],
283
303
  :PNAME_LN => [:predicateObjectList],
284
304
  :PNAME_NS => [:predicateObjectList],
@@ -286,31 +306,28 @@ module RDF::Turtle::Meta
286
306
  },
287
307
  :turtleDoc => {
288
308
  "(" => [:_turtleDoc_1],
289
- "@base" => [:_turtleDoc_1],
290
- "@prefix" => [:_turtleDoc_1],
291
309
  :ANON => [:_turtleDoc_1],
310
+ :BASE => [:_turtleDoc_1],
292
311
  :BLANK_NODE_LABEL => [:_turtleDoc_1],
293
312
  :IRIREF => [:_turtleDoc_1],
294
313
  :PNAME_LN => [:_turtleDoc_1],
295
314
  :PNAME_NS => [:_turtleDoc_1],
296
- :SPARQL_BASE => [:_turtleDoc_1],
297
- :SPARQL_PREFIX => [:_turtleDoc_1],
315
+ :PREFIX => [:_turtleDoc_1],
298
316
  "[" => [:_turtleDoc_1],
299
317
  },
300
318
  :_turtleDoc_1 => {
301
319
  "(" => [:statement, :turtleDoc],
302
- "@base" => [:statement, :turtleDoc],
303
- "@prefix" => [:statement, :turtleDoc],
304
320
  :ANON => [:statement, :turtleDoc],
321
+ :BASE => [:statement, :turtleDoc],
305
322
  :BLANK_NODE_LABEL => [:statement, :turtleDoc],
306
323
  :IRIREF => [:statement, :turtleDoc],
307
324
  :PNAME_LN => [:statement, :turtleDoc],
308
325
  :PNAME_NS => [:statement, :turtleDoc],
309
- :SPARQL_BASE => [:statement, :turtleDoc],
310
- :SPARQL_PREFIX => [:statement, :turtleDoc],
326
+ :PREFIX => [:statement, :turtleDoc],
311
327
  "[" => [:statement, :turtleDoc],
312
328
  },
313
329
  :verb => {
330
+ "A" => ["A"],
314
331
  :IRIREF => [:predicate],
315
332
  :PNAME_LN => [:predicate],
316
333
  :PNAME_NS => [:predicate],
@@ -323,9 +340,9 @@ module RDF::Turtle::Meta
323
340
  ",",
324
341
  ".",
325
342
  ";",
326
- "@base",
327
- "@prefix",
343
+ "A",
328
344
  :ANON,
345
+ :BASE,
329
346
  :BLANK_NODE_LABEL,
330
347
  :DECIMAL,
331
348
  :DOUBLE,
@@ -334,8 +351,7 @@ module RDF::Turtle::Meta
334
351
  :LANGTAG,
335
352
  :PNAME_LN,
336
353
  :PNAME_NS,
337
- :SPARQL_BASE,
338
- :SPARQL_PREFIX,
354
+ :PREFIX,
339
355
  :STRING_LITERAL_LONG_QUOTE,
340
356
  :STRING_LITERAL_LONG_SINGLE_QUOTE,
341
357
  :STRING_LITERAL_QUOTE,
@@ -385,12 +401,19 @@ module RDF::Turtle::Meta
385
401
  :STRING_LITERAL_LONG_SINGLE_QUOTE,
386
402
  :STRING_LITERAL_LONG_QUOTE],
387
403
  :base => [
388
- "@base"],
404
+ :BASE],
389
405
  :_base_1 => [
406
+ ".",
407
+ :_eps],
408
+ :_base_2 => [
390
409
  :IRIREF],
410
+ :_base_3 => [
411
+ ".",
412
+ :_eps],
391
413
  :blankNodePropertyList => [
392
414
  "["],
393
415
  :_blankNodePropertyList_1 => [
416
+ "A",
394
417
  "a",
395
418
  :IRIREF,
396
419
  :PNAME_LN,
@@ -473,10 +496,8 @@ module RDF::Turtle::Meta
473
496
  :_collection_5 => [
474
497
  ")"],
475
498
  :directive => [
476
- "@prefix",
477
- "@base",
478
- :SPARQL_PREFIX,
479
- :SPARQL_BASE],
499
+ :PREFIX,
500
+ :BASE],
480
501
  :_empty => [
481
502
  :_eps],
482
503
  :iri => [
@@ -562,6 +583,7 @@ module RDF::Turtle::Meta
562
583
  :PNAME_LN,
563
584
  :PNAME_NS],
564
585
  :predicateObjectList => [
586
+ "A",
565
587
  "a",
566
588
  :IRIREF,
567
589
  :PNAME_LN,
@@ -575,11 +597,13 @@ module RDF::Turtle::Meta
575
597
  ";"],
576
598
  :_predicateObjectList_4 => [
577
599
  :_eps,
600
+ "A",
578
601
  "a",
579
602
  :IRIREF,
580
603
  :PNAME_LN,
581
604
  :PNAME_NS],
582
605
  :_predicateObjectList_5 => [
606
+ "A",
583
607
  "a",
584
608
  :IRIREF,
585
609
  :PNAME_LN,
@@ -606,6 +630,7 @@ module RDF::Turtle::Meta
606
630
  ";"],
607
631
  :_predicateObjectList_8 => [
608
632
  :_eps,
633
+ "A",
609
634
  "a",
610
635
  :IRIREF,
611
636
  :PNAME_LN,
@@ -628,22 +653,20 @@ module RDF::Turtle::Meta
628
653
  :STRING_LITERAL_LONG_SINGLE_QUOTE,
629
654
  :STRING_LITERAL_LONG_QUOTE],
630
655
  :prefixID => [
631
- "@prefix"],
656
+ :PREFIX],
632
657
  :_prefixID_1 => [
658
+ ".",
659
+ :_eps],
660
+ :_prefixID_2 => [
633
661
  :PNAME_NS],
634
- :sparqlBase => [
635
- :SPARQL_BASE],
636
- :_sparqlBase_1 => [
662
+ :_prefixID_3 => [
637
663
  :IRIREF],
638
- :sparqlPrefix => [
639
- :SPARQL_PREFIX],
640
- :_sparqlPrefix_1 => [
641
- :PNAME_NS],
664
+ :_prefixID_4 => [
665
+ ".",
666
+ :_eps],
642
667
  :statement => [
643
- "@prefix",
644
- "@base",
645
- :SPARQL_PREFIX,
646
- :SPARQL_BASE,
668
+ :PREFIX,
669
+ :BASE,
647
670
  "[",
648
671
  :IRIREF,
649
672
  :BLANK_NODE_LABEL,
@@ -687,27 +710,28 @@ module RDF::Turtle::Meta
687
710
  "["],
688
711
  :_triples_3 => [
689
712
  :_eps,
713
+ "A",
690
714
  "a",
691
715
  :IRIREF,
692
716
  :PNAME_LN,
693
717
  :PNAME_NS],
694
718
  :_triples_4 => [
719
+ "A",
695
720
  "a",
696
721
  :IRIREF,
697
722
  :PNAME_LN,
698
723
  :PNAME_NS],
699
724
  :_triples_5 => [
700
725
  :_eps,
726
+ "A",
701
727
  "a",
702
728
  :IRIREF,
703
729
  :PNAME_LN,
704
730
  :PNAME_NS],
705
731
  :turtleDoc => [
706
732
  :_eps,
707
- "@prefix",
708
- "@base",
709
- :SPARQL_PREFIX,
710
- :SPARQL_BASE,
733
+ :PREFIX,
734
+ :BASE,
711
735
  "[",
712
736
  :IRIREF,
713
737
  :BLANK_NODE_LABEL,
@@ -716,10 +740,8 @@ module RDF::Turtle::Meta
716
740
  :PNAME_LN,
717
741
  :PNAME_NS],
718
742
  :_turtleDoc_1 => [
719
- "@prefix",
720
- "@base",
721
- :SPARQL_PREFIX,
722
- :SPARQL_BASE,
743
+ :PREFIX,
744
+ :BASE,
723
745
  "[",
724
746
  :IRIREF,
725
747
  :BLANK_NODE_LABEL,
@@ -729,10 +751,8 @@ module RDF::Turtle::Meta
729
751
  :PNAME_NS],
730
752
  :_turtleDoc_2 => [
731
753
  :_eps,
732
- "@prefix",
733
- "@base",
734
- :SPARQL_PREFIX,
735
- :SPARQL_BASE,
754
+ :PREFIX,
755
+ :BASE,
736
756
  "[",
737
757
  :IRIREF,
738
758
  :BLANK_NODE_LABEL,
@@ -741,6 +761,7 @@ module RDF::Turtle::Meta
741
761
  :PNAME_LN,
742
762
  :PNAME_NS],
743
763
  :verb => [
764
+ "A",
744
765
  "a",
745
766
  :IRIREF,
746
767
  :PNAME_LN,
@@ -748,6 +769,7 @@ module RDF::Turtle::Meta
748
769
  }.freeze
749
770
  FOLLOW = {
750
771
  :BlankNode => [
772
+ "A",
751
773
  "a",
752
774
  ")",
753
775
  ",",
@@ -815,6 +837,7 @@ module RDF::Turtle::Meta
815
837
  :STRING_LITERAL_LONG_SINGLE_QUOTE,
816
838
  :STRING_LITERAL_LONG_QUOTE],
817
839
  :PrefixedName => [
840
+ "A",
818
841
  "a",
819
842
  :IRIREF,
820
843
  :BLANK_NODE_LABEL,
@@ -973,10 +996,8 @@ module RDF::Turtle::Meta
973
996
  :STRING_LITERAL_LONG_QUOTE],
974
997
  :base => [
975
998
  :_eof,
976
- "@prefix",
977
- "@base",
978
- :SPARQL_PREFIX,
979
- :SPARQL_BASE,
999
+ :PREFIX,
1000
+ :BASE,
980
1001
  "[",
981
1002
  :IRIREF,
982
1003
  :BLANK_NODE_LABEL,
@@ -986,10 +1007,30 @@ module RDF::Turtle::Meta
986
1007
  :PNAME_NS],
987
1008
  :_base_1 => [
988
1009
  :_eof,
989
- "@prefix",
990
- "@base",
991
- :SPARQL_PREFIX,
992
- :SPARQL_BASE,
1010
+ :PREFIX,
1011
+ :BASE,
1012
+ "[",
1013
+ :IRIREF,
1014
+ :BLANK_NODE_LABEL,
1015
+ :ANON,
1016
+ "(",
1017
+ :PNAME_LN,
1018
+ :PNAME_NS],
1019
+ :_base_2 => [
1020
+ :_eof,
1021
+ :PREFIX,
1022
+ :BASE,
1023
+ "[",
1024
+ :IRIREF,
1025
+ :BLANK_NODE_LABEL,
1026
+ :ANON,
1027
+ "(",
1028
+ :PNAME_LN,
1029
+ :PNAME_NS],
1030
+ :_base_3 => [
1031
+ :_eof,
1032
+ :PREFIX,
1033
+ :BASE,
993
1034
  "[",
994
1035
  :IRIREF,
995
1036
  :BLANK_NODE_LABEL,
@@ -999,6 +1040,7 @@ module RDF::Turtle::Meta
999
1040
  :PNAME_NS],
1000
1041
  :blankNodePropertyList => [
1001
1042
  ".",
1043
+ "A",
1002
1044
  "a",
1003
1045
  ")",
1004
1046
  ",",
@@ -1022,6 +1064,7 @@ module RDF::Turtle::Meta
1022
1064
  :STRING_LITERAL_LONG_QUOTE],
1023
1065
  :_blankNodePropertyList_1 => [
1024
1066
  ".",
1067
+ "A",
1025
1068
  "a",
1026
1069
  ")",
1027
1070
  ",",
@@ -1045,6 +1088,7 @@ module RDF::Turtle::Meta
1045
1088
  :STRING_LITERAL_LONG_QUOTE],
1046
1089
  :_blankNodePropertyList_2 => [
1047
1090
  ".",
1091
+ "A",
1048
1092
  "a",
1049
1093
  ")",
1050
1094
  ",",
@@ -1067,6 +1111,7 @@ module RDF::Turtle::Meta
1067
1111
  :STRING_LITERAL_LONG_SINGLE_QUOTE,
1068
1112
  :STRING_LITERAL_LONG_QUOTE],
1069
1113
  :collection => [
1114
+ "A",
1070
1115
  "a",
1071
1116
  ")",
1072
1117
  ",",
@@ -1094,6 +1139,7 @@ module RDF::Turtle::Meta
1094
1139
  :_collection_2 => [
1095
1140
  ")"],
1096
1141
  :_collection_3 => [
1142
+ "A",
1097
1143
  "a",
1098
1144
  ")",
1099
1145
  ",",
@@ -1119,6 +1165,7 @@ module RDF::Turtle::Meta
1119
1165
  :_collection_4 => [
1120
1166
  ")"],
1121
1167
  :_collection_5 => [
1168
+ "A",
1122
1169
  "a",
1123
1170
  ")",
1124
1171
  ",",
@@ -1143,10 +1190,8 @@ module RDF::Turtle::Meta
1143
1190
  :STRING_LITERAL_LONG_QUOTE],
1144
1191
  :directive => [
1145
1192
  :_eof,
1146
- "@prefix",
1147
- "@base",
1148
- :SPARQL_PREFIX,
1149
- :SPARQL_BASE,
1193
+ :PREFIX,
1194
+ :BASE,
1150
1195
  "[",
1151
1196
  :IRIREF,
1152
1197
  :BLANK_NODE_LABEL,
@@ -1155,6 +1200,7 @@ module RDF::Turtle::Meta
1155
1200
  :PNAME_LN,
1156
1201
  :PNAME_NS],
1157
1202
  :iri => [
1203
+ "A",
1158
1204
  "a",
1159
1205
  :IRIREF,
1160
1206
  :BLANK_NODE_LABEL,
@@ -1310,10 +1356,8 @@ module RDF::Turtle::Meta
1310
1356
  "]"],
1311
1357
  :prefixID => [
1312
1358
  :_eof,
1313
- "@prefix",
1314
- "@base",
1315
- :SPARQL_PREFIX,
1316
- :SPARQL_BASE,
1359
+ :PREFIX,
1360
+ :BASE,
1317
1361
  "[",
1318
1362
  :IRIREF,
1319
1363
  :BLANK_NODE_LABEL,
@@ -1323,23 +1367,8 @@ module RDF::Turtle::Meta
1323
1367
  :PNAME_NS],
1324
1368
  :_prefixID_1 => [
1325
1369
  :_eof,
1326
- "@prefix",
1327
- "@base",
1328
- :SPARQL_PREFIX,
1329
- :SPARQL_BASE,
1330
- "[",
1331
- :IRIREF,
1332
- :BLANK_NODE_LABEL,
1333
- :ANON,
1334
- "(",
1335
- :PNAME_LN,
1336
- :PNAME_NS],
1337
- :sparqlBase => [
1338
- :_eof,
1339
- "@prefix",
1340
- "@base",
1341
- :SPARQL_PREFIX,
1342
- :SPARQL_BASE,
1370
+ :PREFIX,
1371
+ :BASE,
1343
1372
  "[",
1344
1373
  :IRIREF,
1345
1374
  :BLANK_NODE_LABEL,
@@ -1347,12 +1376,10 @@ module RDF::Turtle::Meta
1347
1376
  "(",
1348
1377
  :PNAME_LN,
1349
1378
  :PNAME_NS],
1350
- :_sparqlBase_1 => [
1379
+ :_prefixID_2 => [
1351
1380
  :_eof,
1352
- "@prefix",
1353
- "@base",
1354
- :SPARQL_PREFIX,
1355
- :SPARQL_BASE,
1381
+ :PREFIX,
1382
+ :BASE,
1356
1383
  "[",
1357
1384
  :IRIREF,
1358
1385
  :BLANK_NODE_LABEL,
@@ -1360,12 +1387,10 @@ module RDF::Turtle::Meta
1360
1387
  "(",
1361
1388
  :PNAME_LN,
1362
1389
  :PNAME_NS],
1363
- :sparqlPrefix => [
1390
+ :_prefixID_3 => [
1364
1391
  :_eof,
1365
- "@prefix",
1366
- "@base",
1367
- :SPARQL_PREFIX,
1368
- :SPARQL_BASE,
1392
+ :PREFIX,
1393
+ :BASE,
1369
1394
  "[",
1370
1395
  :IRIREF,
1371
1396
  :BLANK_NODE_LABEL,
@@ -1373,12 +1398,10 @@ module RDF::Turtle::Meta
1373
1398
  "(",
1374
1399
  :PNAME_LN,
1375
1400
  :PNAME_NS],
1376
- :_sparqlPrefix_1 => [
1401
+ :_prefixID_4 => [
1377
1402
  :_eof,
1378
- "@prefix",
1379
- "@base",
1380
- :SPARQL_PREFIX,
1381
- :SPARQL_BASE,
1403
+ :PREFIX,
1404
+ :BASE,
1382
1405
  "[",
1383
1406
  :IRIREF,
1384
1407
  :BLANK_NODE_LABEL,
@@ -1388,10 +1411,8 @@ module RDF::Turtle::Meta
1388
1411
  :PNAME_NS],
1389
1412
  :statement => [
1390
1413
  :_eof,
1391
- "@prefix",
1392
- "@base",
1393
- :SPARQL_PREFIX,
1394
- :SPARQL_BASE,
1414
+ :PREFIX,
1415
+ :BASE,
1395
1416
  "[",
1396
1417
  :IRIREF,
1397
1418
  :BLANK_NODE_LABEL,
@@ -1401,10 +1422,8 @@ module RDF::Turtle::Meta
1401
1422
  :PNAME_NS],
1402
1423
  :_statement_1 => [
1403
1424
  :_eof,
1404
- "@prefix",
1405
- "@base",
1406
- :SPARQL_PREFIX,
1407
- :SPARQL_BASE,
1425
+ :PREFIX,
1426
+ :BASE,
1408
1427
  "[",
1409
1428
  :IRIREF,
1410
1429
  :BLANK_NODE_LABEL,
@@ -1414,10 +1433,8 @@ module RDF::Turtle::Meta
1414
1433
  :PNAME_NS],
1415
1434
  :_statement_2 => [
1416
1435
  :_eof,
1417
- "@prefix",
1418
- "@base",
1419
- :SPARQL_PREFIX,
1420
- :SPARQL_BASE,
1436
+ :PREFIX,
1437
+ :BASE,
1421
1438
  "[",
1422
1439
  :IRIREF,
1423
1440
  :BLANK_NODE_LABEL,
@@ -1426,6 +1443,7 @@ module RDF::Turtle::Meta
1426
1443
  :PNAME_LN,
1427
1444
  :PNAME_NS],
1428
1445
  :subject => [
1446
+ "A",
1429
1447
  "a",
1430
1448
  :IRIREF,
1431
1449
  :PNAME_LN,
@@ -67,26 +67,26 @@ module RDF::Turtle
67
67
  end
68
68
 
69
69
  # String terminals
70
- terminal(nil, %r([\(\),.;\[\]a]|\^\^|@base|@prefix|true|false)) do |prod, token, input|
70
+ terminal(nil, %r([\(\),.;\[\]Aa]|\^\^|true|false)) do |prod, token, input|
71
71
  case token.value
72
- when 'a' then input[:resource] = RDF.type
72
+ when 'A', 'a' then input[:resource] = RDF.type
73
73
  when 'true', 'false' then input[:resource] = RDF::Literal::Boolean.new(token.value)
74
74
  when '@base', '@prefix' then input[:lang] = token.value[1..-1]
75
75
  else input[:string] = token.value
76
76
  end
77
77
  end
78
78
 
79
- terminal(:LANGTAG, LANGTAG) do |prod, token, input|
80
- input[:lang] = token.value[1..-1]
81
- end
82
-
83
- terminal(:SPARQL_PREFIX, SPARQL_PREFIX) do |prod, token, input|
79
+ terminal(:PREFIX, PREFIX) do |prod, token, input|
84
80
  input[:string_value] = token.value.downcase
85
81
  end
86
- terminal(:SPARQL_BASE, SPARQL_BASE) do |prod, token, input|
82
+ terminal(:BASE, BASE) do |prod, token, input|
87
83
  input[:string_value] = token.value.downcase
88
84
  end
89
85
 
86
+ terminal(:LANGTAG, LANGTAG) do |prod, token, input|
87
+ input[:lang] = token.value[1..-1]
88
+ end
89
+
90
90
  # Productions
91
91
  # [4] prefixID defines a prefix mapping
92
92
  production(:prefixID) do |input, current, callback|
@@ -103,21 +103,6 @@ module RDF::Turtle
103
103
  options[:base_uri] = iri
104
104
  end
105
105
 
106
- # [28s] sparqlPrefix ::= [Pp][Rr][Ee][Ff][Ii][Xx] PNAME_NS IRIREF
107
- production(:sparqlPrefix) do |input, current, callback|
108
- prefix = current[:prefix]
109
- iri = current[:resource]
110
- debug("sparqlPrefix") {"Defined prefix #{prefix.inspect} mapping to #{iri.inspect}"}
111
- prefix(prefix, iri)
112
- end
113
-
114
- # [29s] sparqlBase ::= [Bb][Aa][Ss][Ee] IRIREF
115
- production(:sparqlBase) do |input, current, callback|
116
- iri = current[:resource]
117
- debug("base") {"Defined base as #{iri}"}
118
- options[:base_uri] = iri
119
- end
120
-
121
106
  # [6] triples
122
107
  start_production(:triples) do |input, current, callback|
123
108
  # Note production as triples for blankNodePropertyList
@@ -176,20 +161,15 @@ module RDF::Turtle
176
161
 
177
162
  production(:collection) do |input, current, callback|
178
163
  # Create an RDF list
179
- bnode = self.bnode
180
164
  objects = current[:object_list]
181
- list = RDF::List.new(bnode, nil, objects)
165
+ list = RDF::List[*objects]
182
166
  list.each_statement do |statement|
183
- # Spec Confusion, referenced section "Collection" is missing from the spec.
184
- # Anicdodal evidence indicates that some expect each node to be of type rdf:list,
185
- # but existing Notation3 and Turtle tests (http://www.w3.org/2001/sw/DataAccess/df1/tests/manifest.ttl) do not.
186
167
  next if statement.predicate == RDF.type && statement.object == RDF.List
187
168
  callback.call(:statement, "collection", statement.subject, statement.predicate, statement.object)
188
169
  end
189
- bnode = RDF.nil if list.empty?
190
170
 
191
171
  # Return bnode as resource
192
- input[:resource] = bnode
172
+ input[:resource] = list.subject
193
173
  end
194
174
 
195
175
  # [16] RDFLiteral ::= String ( LanguageTag | ( "^^" IRIref ) )?
@@ -56,22 +56,22 @@ module RDF::Turtle
56
56
  # 21
57
57
  DOUBLE = /[+-]?(?:[0-9]+\.[0-9]*#{EXPONENT}|\.?[0-9]+#{EXPONENT})/.freeze
58
58
  # 22
59
- STRING_LITERAL_QUOTE = /'(?:[^\'\\\n\r]|#{ECHAR}|#{UCHAR})*'/.freeze
59
+ STRING_LITERAL_SINGLE_QUOTE = /'(?:[^\'\\\n\r]|#{ECHAR}|#{UCHAR})*'/.freeze
60
60
  # 23
61
- STRING_LITERAL_SINGLE_QUOTE = /"(?:[^\"\\\n\r]|#{ECHAR}|#{UCHAR})*"/.freeze.freeze
61
+ STRING_LITERAL_QUOTE = /"(?:[^\"\\\n\r]|#{ECHAR}|#{UCHAR})*"/.freeze.freeze
62
62
  # 24
63
63
  STRING_LITERAL_LONG_SINGLE_QUOTE = /'''(?:(?:'|'')?(?:[^'\\]|#{ECHAR}|#{UCHAR}))*'''/m.freeze
64
64
  # 25
65
- STRING_LITERAL_LONG_QUOTE = /"""(?:(?:"|"")?(?:[^"\\]|#{ECHAR}|#{UCHAR}))*"""/m.freeze
65
+ STRING_LITERAL_LONG_QUOTE = /"""(?:(?:"|"")?(?:[^"\\]|#{ECHAR}|#{UCHAR}))*"""/m.freeze
66
66
 
67
67
  # 161s
68
68
  WS = / |\t|\r|\n /.freeze
69
69
  # 162s
70
70
  ANON = /\[#{WS}*\]/m.freeze
71
71
  # 28t
72
- SPARQL_PREFIX = /prefix/i.freeze
72
+ PREFIX = /@?prefix/i.freeze
73
73
  # 29t
74
- SPARQL_BASE = /base/i.freeze
74
+ BASE = /@?base/i.freeze
75
75
 
76
76
  end
77
77
  end
metadata CHANGED
@@ -1,160 +1,160 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdf-turtle
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0p0
4
+ version: 1.1.0p1
5
5
  prerelease: 5
6
6
  platform: ruby
7
7
  authors:
8
8
  - Gregg Kellogg
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-11 00:00:00.000000000 Z
12
+ date: 2013-06-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rdf
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
16
+ version_requirements: !ruby/object:Gem::Requirement
18
17
  requirements:
19
- - - ! '>='
18
+ - - '>='
20
19
  - !ruby/object:Gem::Version
21
20
  version: '1.1'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
21
  none: false
22
+ requirement: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '1.1'
27
+ none: false
28
+ prerelease: false
29
+ type: :runtime
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: ebnf
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
32
+ version_requirements: !ruby/object:Gem::Requirement
34
33
  requirements:
35
- - - ! '>='
34
+ - - '>='
36
35
  - !ruby/object:Gem::Version
37
36
  version: 0.3.0
38
- type: :runtime
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
37
  none: false
38
+ requirement: !ruby/object:Gem::Requirement
42
39
  requirements:
43
- - - ! '>='
40
+ - - '>='
44
41
  - !ruby/object:Gem::Version
45
42
  version: 0.3.0
43
+ none: false
44
+ prerelease: false
45
+ type: :runtime
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: open-uri-cached
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
48
+ version_requirements: !ruby/object:Gem::Requirement
50
49
  requirements:
51
- - - ! '>='
50
+ - - '>='
52
51
  - !ruby/object:Gem::Version
53
52
  version: 0.0.5
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
53
  none: false
54
+ requirement: !ruby/object:Gem::Requirement
58
55
  requirements:
59
- - - ! '>='
56
+ - - '>='
60
57
  - !ruby/object:Gem::Version
61
58
  version: 0.0.5
59
+ none: false
60
+ prerelease: false
61
+ type: :development
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: rspec
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
64
+ version_requirements: !ruby/object:Gem::Requirement
66
65
  requirements:
67
- - - ! '>='
66
+ - - '>='
68
67
  - !ruby/object:Gem::Version
69
68
  version: 2.12.0
70
- type: :development
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
69
  none: false
70
+ requirement: !ruby/object:Gem::Requirement
74
71
  requirements:
75
- - - ! '>='
72
+ - - '>='
76
73
  - !ruby/object:Gem::Version
77
74
  version: 2.12.0
75
+ none: false
76
+ prerelease: false
77
+ type: :development
78
78
  - !ruby/object:Gem::Dependency
79
79
  name: rdf-isomorphic
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
80
+ version_requirements: !ruby/object:Gem::Requirement
82
81
  requirements:
83
- - - ! '>='
82
+ - - '>='
84
83
  - !ruby/object:Gem::Version
85
84
  version: '0'
86
- type: :development
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
85
  none: false
86
+ requirement: !ruby/object:Gem::Requirement
90
87
  requirements:
91
- - - ! '>='
88
+ - - '>='
92
89
  - !ruby/object:Gem::Version
93
90
  version: '0'
91
+ none: false
92
+ prerelease: false
93
+ type: :development
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: json-ld
96
- requirement: !ruby/object:Gem::Requirement
97
- none: false
96
+ version_requirements: !ruby/object:Gem::Requirement
98
97
  requirements:
99
- - - ! '>='
98
+ - - '>='
100
99
  - !ruby/object:Gem::Version
101
100
  version: '0'
102
- type: :development
103
- prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
101
  none: false
102
+ requirement: !ruby/object:Gem::Requirement
106
103
  requirements:
107
- - - ! '>='
104
+ - - '>='
108
105
  - !ruby/object:Gem::Version
109
106
  version: '0'
107
+ none: false
108
+ prerelease: false
109
+ type: :development
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: yard
112
- requirement: !ruby/object:Gem::Requirement
113
- none: false
112
+ version_requirements: !ruby/object:Gem::Requirement
114
113
  requirements:
115
- - - ! '>='
114
+ - - '>='
116
115
  - !ruby/object:Gem::Version
117
116
  version: 0.8.3
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
117
  none: false
118
+ requirement: !ruby/object:Gem::Requirement
122
119
  requirements:
123
- - - ! '>='
120
+ - - '>='
124
121
  - !ruby/object:Gem::Version
125
122
  version: 0.8.3
123
+ none: false
124
+ prerelease: false
125
+ type: :development
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: rdf-spec
128
- requirement: !ruby/object:Gem::Requirement
129
- none: false
128
+ version_requirements: !ruby/object:Gem::Requirement
130
129
  requirements:
131
- - - ! '>='
130
+ - - '>='
132
131
  - !ruby/object:Gem::Version
133
132
  version: '1.1'
134
- type: :development
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
133
  none: false
134
+ requirement: !ruby/object:Gem::Requirement
138
135
  requirements:
139
- - - ! '>='
136
+ - - '>='
140
137
  - !ruby/object:Gem::Version
141
138
  version: '1.1'
139
+ none: false
140
+ prerelease: false
141
+ type: :development
142
142
  - !ruby/object:Gem::Dependency
143
143
  name: rake
144
- requirement: !ruby/object:Gem::Requirement
145
- none: false
144
+ version_requirements: !ruby/object:Gem::Requirement
146
145
  requirements:
147
- - - ! '>='
146
+ - - '>='
148
147
  - !ruby/object:Gem::Version
149
148
  version: '0'
150
- type: :development
151
- prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
149
  none: false
150
+ requirement: !ruby/object:Gem::Requirement
154
151
  requirements:
155
- - - ! '>='
152
+ - - '>='
156
153
  - !ruby/object:Gem::Version
157
154
  version: '0'
155
+ none: false
156
+ prerelease: false
157
+ type: :development
158
158
  description: RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.
159
159
  email: [email protected]
160
160
  executables: []
@@ -166,6 +166,7 @@ files:
166
166
  - History
167
167
  - UNLICENSE
168
168
  - VERSION
169
+ - lib/rdf/turtle.rb
169
170
  - lib/rdf/turtle/format.rb
170
171
  - lib/rdf/turtle/freebase_reader.rb
171
172
  - lib/rdf/turtle/meta.rb
@@ -173,30 +174,29 @@ files:
173
174
  - lib/rdf/turtle/terminals.rb
174
175
  - lib/rdf/turtle/version.rb
175
176
  - lib/rdf/turtle/writer.rb
176
- - lib/rdf/turtle.rb
177
177
  homepage: http://ruby-rdf.github.com/rdf-turtle
178
178
  licenses:
179
179
  - Public Domain
180
- post_install_message:
180
+ post_install_message:
181
181
  rdoc_options: []
182
182
  require_paths:
183
183
  - lib
184
184
  required_ruby_version: !ruby/object:Gem::Requirement
185
- none: false
186
185
  requirements:
187
- - - ! '>='
186
+ - - '>='
188
187
  - !ruby/object:Gem::Version
189
188
  version: 1.9.2
190
- required_rubygems_version: !ruby/object:Gem::Requirement
191
189
  none: false
190
+ required_rubygems_version: !ruby/object:Gem::Requirement
192
191
  requirements:
193
- - - ! '>'
192
+ - - '>'
194
193
  - !ruby/object:Gem::Version
195
194
  version: 1.3.1
195
+ none: false
196
196
  requirements: []
197
197
  rubyforge_project: rdf-turtle
198
- rubygems_version: 1.8.25
199
- signing_key:
198
+ rubygems_version: 1.8.24
199
+ signing_key:
200
200
  specification_version: 3
201
201
  summary: Turtle reader/writer for Ruby.
202
202
  test_files: []
OSZAR »