rdf-turtle 1.1.0p0 → 1.1.0p1

Sign up to get free protection for your applications and to get access to all the features.
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: public-rdf-ruby@w3.org
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: []