gonum.org/v1/gonum@v0.14.0/graph/formats/rdf/test_suite_test.go (about) 1 // Copyright ©2020 The Gonum Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // Copyright © 2008 World Wide Web Consortium, (MIT, ERCIM, Keio, Beihang) 6 // and others. All Rights Reserved. 7 // http://www.w3.org/Consortium/Legal/2008/04-testsuite-copyright.html 8 // Used under https://www.w3.org/Consortium/Legal/2008/03-bsd-license. 9 10 package rdf 11 12 type statement struct { 13 input string 14 15 subject, predicate, object, label term 16 } 17 18 type term struct { 19 text string 20 qual string 21 kind Kind 22 } 23 24 // Test suite values were extracted from the test case archives in this directory. 25 // The archives were obtained from https://w3c.github.io/rdf-tests/ntriples/ and 26 // https://w3c.github.io/rdf-tests/nquads/. 27 var testSuite = map[string][]statement{ 28 "comment_following_triple.nq": { 29 { 30 input: "<http://example/s> <http://example/p> <http://example/o> . # comment", 31 subject: term{text: "http://example/s", kind: IRI}, 32 predicate: term{text: "http://example/p", kind: IRI}, 33 object: term{text: "http://example/o", kind: IRI}, 34 }, 35 { 36 input: "<http://example/s> <http://example/p> _:o . # comment", 37 subject: term{text: "http://example/s", kind: IRI}, 38 predicate: term{text: "http://example/p", kind: IRI}, 39 object: term{text: "o", kind: Blank}, 40 }, 41 { 42 input: "<http://example/s> <http://example/p> \"o\" . # comment", 43 subject: term{text: "http://example/s", kind: IRI}, 44 predicate: term{text: "http://example/p", kind: IRI}, 45 object: term{text: "o", kind: Literal}, 46 }, 47 { 48 input: "<http://example/s> <http://example/p> \"o\"^^<http://example/dt> . # comment", 49 subject: term{text: "http://example/s", kind: IRI}, 50 predicate: term{text: "http://example/p", kind: IRI}, 51 object: term{text: "o", qual: "http://example/dt", kind: Literal}, 52 }, 53 { 54 input: "<http://example/s> <http://example/p> \"o\"@en . # comment", 55 subject: term{text: "http://example/s", kind: IRI}, 56 predicate: term{text: "http://example/p", kind: IRI}, 57 object: term{text: "o", qual: "@en", kind: Literal}, 58 }, 59 }, 60 "comment_following_triple.nt": { 61 { 62 input: "<http://example/s> <http://example/p> <http://example/o> . # comment", 63 subject: term{text: "http://example/s", kind: IRI}, 64 predicate: term{text: "http://example/p", kind: IRI}, 65 object: term{text: "http://example/o", kind: IRI}, 66 }, 67 { 68 input: "<http://example/s> <http://example/p> _:o . # comment", 69 subject: term{text: "http://example/s", kind: IRI}, 70 predicate: term{text: "http://example/p", kind: IRI}, 71 object: term{text: "o", kind: Blank}, 72 }, 73 { 74 input: "<http://example/s> <http://example/p> \"o\" . # comment", 75 subject: term{text: "http://example/s", kind: IRI}, 76 predicate: term{text: "http://example/p", kind: IRI}, 77 object: term{text: "o", kind: Literal}, 78 }, 79 { 80 input: "<http://example/s> <http://example/p> \"o\"^^<http://example/dt> . # comment", 81 subject: term{text: "http://example/s", kind: IRI}, 82 predicate: term{text: "http://example/p", kind: IRI}, 83 object: term{text: "o", qual: "http://example/dt", kind: Literal}, 84 }, 85 { 86 input: "<http://example/s> <http://example/p> \"o\"@en . # comment", 87 subject: term{text: "http://example/s", kind: IRI}, 88 predicate: term{text: "http://example/p", kind: IRI}, 89 object: term{text: "o", qual: "@en", kind: Literal}, 90 }, 91 }, 92 "langtagged_string.nq": { 93 { 94 input: "<http://a.example/s> <http://a.example/p> \"chat\"@en .", 95 subject: term{text: "http://a.example/s", kind: IRI}, 96 predicate: term{text: "http://a.example/p", kind: IRI}, 97 object: term{text: "chat", qual: "@en", kind: Literal}, 98 }, 99 }, 100 "langtagged_string.nt": { 101 { 102 input: "<http://a.example/s> <http://a.example/p> \"chat\"@en .", 103 subject: term{text: "http://a.example/s", kind: IRI}, 104 predicate: term{text: "http://a.example/p", kind: IRI}, 105 object: term{text: "chat", qual: "@en", kind: Literal}, 106 }, 107 }, 108 "lantag_with_subtag.nq": { 109 { 110 input: "<http://example.org/ex#a> <http://example.org/ex#b> \"Cheers\"@en-UK .", 111 subject: term{text: "http://example.org/ex#a", kind: IRI}, 112 predicate: term{text: "http://example.org/ex#b", kind: IRI}, 113 object: term{text: "Cheers", qual: "@en-UK", kind: Literal}, 114 }, 115 }, 116 "lantag_with_subtag.nt": { 117 { 118 input: "<http://example.org/ex#a> <http://example.org/ex#b> \"Cheers\"@en-UK .", 119 subject: term{text: "http://example.org/ex#a", kind: IRI}, 120 predicate: term{text: "http://example.org/ex#b", kind: IRI}, 121 object: term{text: "Cheers", qual: "@en-UK", kind: Literal}, 122 }, 123 }, 124 "literal.nq": { 125 { 126 input: "<http://a.example/s> <http://a.example/p> \"x\" .", 127 subject: term{text: "http://a.example/s", kind: IRI}, 128 predicate: term{text: "http://a.example/p", kind: IRI}, 129 object: term{text: "x", kind: Literal}, 130 }, 131 }, 132 "literal.nt": { 133 { 134 input: "<http://a.example/s> <http://a.example/p> \"x\" .", 135 subject: term{text: "http://a.example/s", kind: IRI}, 136 predicate: term{text: "http://a.example/p", kind: IRI}, 137 object: term{text: "x", kind: Literal}, 138 }, 139 }, 140 "literal_all_controls.nq": { 141 { 142 input: "<http://a.example/s> <http://a.example/p> \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\u0008\\t\\u000B\\u000C\\u000E\\u000F\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001A\\u001B\\u001C\\u001D\\u001E\\u001F\" .", 143 subject: term{text: "http://a.example/s", kind: IRI}, 144 predicate: term{text: "http://a.example/p", kind: IRI}, 145 object: term{text: "\x00\x01\x02\x03\x04\x05\x06\a\b\t\v\f\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", kind: Literal}, 146 }, 147 }, 148 "literal_all_controls.nt": { 149 { 150 input: "<http://a.example/s> <http://a.example/p> \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\u0008\\t\\u000B\\u000C\\u000E\\u000F\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001A\\u001B\\u001C\\u001D\\u001E\\u001F\" .", 151 subject: term{text: "http://a.example/s", kind: IRI}, 152 predicate: term{text: "http://a.example/p", kind: IRI}, 153 object: term{text: "\x00\x01\x02\x03\x04\x05\x06\a\b\t\v\f\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", kind: Literal}, 154 }, 155 }, 156 "literal_all_punctuation.nq": { 157 { 158 input: "<http://a.example/s> <http://a.example/p> \" !\\\"#$%&():;<=>?@[]^_`{|}~\" .", 159 subject: term{text: "http://a.example/s", kind: IRI}, 160 predicate: term{text: "http://a.example/p", kind: IRI}, 161 object: term{text: " !\"#$%&():;<=>?@[]^_`{|}~", kind: Literal}, 162 }, 163 }, 164 "literal_all_punctuation.nt": { 165 { 166 input: "<http://a.example/s> <http://a.example/p> \" !\\\"#$%&():;<=>?@[]^_`{|}~\" .", 167 subject: term{text: "http://a.example/s", kind: IRI}, 168 predicate: term{text: "http://a.example/p", kind: IRI}, 169 object: term{text: " !\"#$%&():;<=>?@[]^_`{|}~", kind: Literal}, 170 }, 171 }, 172 "literal_ascii_boundaries.nq": { 173 { 174 input: "<http://a.example/s> <http://a.example/p> \"\x00\t\v\f\x0e&([]\u007f\" .", 175 subject: term{text: "http://a.example/s", kind: IRI}, 176 predicate: term{text: "http://a.example/p", kind: IRI}, 177 object: term{text: "\x00\t\v\f\x0e&([]\u007f", kind: Literal}, 178 }, 179 }, 180 "literal_ascii_boundaries.nt": { 181 { 182 input: "<http://a.example/s> <http://a.example/p> \"\x00\t\v\f\x0e&([]\u007f\" .", 183 subject: term{text: "http://a.example/s", kind: IRI}, 184 predicate: term{text: "http://a.example/p", kind: IRI}, 185 object: term{text: "\x00\t\v\f\x0e&([]\u007f", kind: Literal}, 186 }, 187 }, 188 "literal_false.nq": { 189 { 190 input: "<http://a.example/s> <http://a.example/p> \"false\"^^<http://www.w3.org/2001/XMLSchema#boolean> .", 191 subject: term{text: "http://a.example/s", kind: IRI}, 192 predicate: term{text: "http://a.example/p", kind: IRI}, 193 object: term{text: "false", qual: "http://www.w3.org/2001/XMLSchema#boolean", kind: Literal}, 194 }, 195 }, 196 "literal_false.nt": { 197 { 198 input: "<http://a.example/s> <http://a.example/p> \"false\"^^<http://www.w3.org/2001/XMLSchema#boolean> .", 199 subject: term{text: "http://a.example/s", kind: IRI}, 200 predicate: term{text: "http://a.example/p", kind: IRI}, 201 object: term{text: "false", qual: "http://www.w3.org/2001/XMLSchema#boolean", kind: Literal}, 202 }, 203 }, 204 "literal_true.nq": { 205 { 206 input: "<http://a.example/s> <http://a.example/p> \"true\"^^<http://www.w3.org/2001/XMLSchema#boolean> .", 207 subject: term{text: "http://a.example/s", kind: IRI}, 208 predicate: term{text: "http://a.example/p", kind: IRI}, 209 object: term{text: "true", qual: "http://www.w3.org/2001/XMLSchema#boolean", kind: Literal}, 210 }, 211 }, 212 "literal_true.nt": { 213 { 214 input: "<http://a.example/s> <http://a.example/p> \"true\"^^<http://www.w3.org/2001/XMLSchema#boolean> .", 215 subject: term{text: "http://a.example/s", kind: IRI}, 216 predicate: term{text: "http://a.example/p", kind: IRI}, 217 object: term{text: "true", qual: "http://www.w3.org/2001/XMLSchema#boolean", kind: Literal}, 218 }, 219 }, 220 "literal_with_2_dquotes.nq": { 221 { 222 input: "<http://a.example/s> <http://a.example/p> \"x\\\"\\\"y\" .", 223 subject: term{text: "http://a.example/s", kind: IRI}, 224 predicate: term{text: "http://a.example/p", kind: IRI}, 225 object: term{text: "x\"\"y", kind: Literal}, 226 }, 227 }, 228 "literal_with_2_dquotes.nt": { 229 { 230 input: "<http://a.example/s> <http://a.example/p> \"x\\\"\\\"y\" .", 231 subject: term{text: "http://a.example/s", kind: IRI}, 232 predicate: term{text: "http://a.example/p", kind: IRI}, 233 object: term{text: "x\"\"y", kind: Literal}, 234 }, 235 }, 236 "literal_with_2_squotes.nt": { 237 { 238 input: "<http://a.example/s> <http://a.example/p> \"x''y\" .", 239 subject: term{text: "http://a.example/s", kind: IRI}, 240 predicate: term{text: "http://a.example/p", kind: IRI}, 241 object: term{text: "x''y", kind: Literal}, 242 }, 243 }, 244 "literal_with_2_squotes.nq": { 245 { 246 input: "<http://a.example/s> <http://a.example/p> \"x''y\" .", 247 subject: term{text: "http://a.example/s", kind: IRI}, 248 predicate: term{text: "http://a.example/p", kind: IRI}, 249 object: term{text: "x''y", kind: Literal}, 250 }, 251 }, 252 "literal_with_BACKSPACE.nq": { 253 { 254 input: "<http://a.example/s> <http://a.example/p> \"\\b\" .", 255 subject: term{text: "http://a.example/s", kind: IRI}, 256 predicate: term{text: "http://a.example/p", kind: IRI}, 257 object: term{text: "\b", kind: Literal}, 258 }, 259 }, 260 "literal_with_BACKSPACE.nt": { 261 { 262 input: "<http://a.example/s> <http://a.example/p> \"\\b\" .", 263 subject: term{text: "http://a.example/s", kind: IRI}, 264 predicate: term{text: "http://a.example/p", kind: IRI}, 265 object: term{text: "\b", kind: Literal}, 266 }, 267 }, 268 "literal_with_CARRIAGE_RETURN.nq": { 269 { 270 input: "<http://a.example/s> <http://a.example/p> \"\\r\" .", 271 subject: term{text: "http://a.example/s", kind: IRI}, 272 predicate: term{text: "http://a.example/p", kind: IRI}, 273 object: term{text: "\r", kind: Literal}, 274 }, 275 }, 276 "literal_with_CARRIAGE_RETURN.nt": { 277 { 278 input: "<http://a.example/s> <http://a.example/p> \"\\r\" .", 279 subject: term{text: "http://a.example/s", kind: IRI}, 280 predicate: term{text: "http://a.example/p", kind: IRI}, 281 object: term{text: "\r", kind: Literal}, 282 }, 283 }, 284 "literal_with_CHARACTER_TABULATION.nq": { 285 { 286 input: "<http://a.example/s> <http://a.example/p> \"\\t\" .", 287 subject: term{text: "http://a.example/s", kind: IRI}, 288 predicate: term{text: "http://a.example/p", kind: IRI}, 289 object: term{text: "\t", kind: Literal}, 290 }, 291 }, 292 "literal_with_CHARACTER_TABULATION.nt": { 293 { 294 input: "<http://a.example/s> <http://a.example/p> \"\\t\" .", 295 subject: term{text: "http://a.example/s", kind: IRI}, 296 predicate: term{text: "http://a.example/p", kind: IRI}, 297 object: term{text: "\t", kind: Literal}, 298 }, 299 }, 300 "literal_with_FORM_FEED.nq": { 301 { 302 input: "<http://a.example/s> <http://a.example/p> \"\\f\" .", 303 subject: term{text: "http://a.example/s", kind: IRI}, 304 predicate: term{text: "http://a.example/p", kind: IRI}, 305 object: term{text: "\f", kind: Literal}, 306 }, 307 }, 308 "literal_with_FORM_FEED.nt": { 309 { 310 input: "<http://a.example/s> <http://a.example/p> \"\\f\" .", 311 subject: term{text: "http://a.example/s", kind: IRI}, 312 predicate: term{text: "http://a.example/p", kind: IRI}, 313 object: term{text: "\f", kind: Literal}, 314 }, 315 }, 316 "literal_with_LINE_FEED.nq": { 317 { 318 input: "<http://a.example/s> <http://a.example/p> \"\\n\" .", 319 subject: term{text: "http://a.example/s", kind: IRI}, 320 predicate: term{text: "http://a.example/p", kind: IRI}, 321 object: term{text: "\n", kind: Literal}, 322 }, 323 }, 324 "literal_with_LINE_FEED.nt": { 325 { 326 input: "<http://a.example/s> <http://a.example/p> \"\\n\" .", 327 subject: term{text: "http://a.example/s", kind: IRI}, 328 predicate: term{text: "http://a.example/p", kind: IRI}, 329 object: term{text: "\n", kind: Literal}, 330 }, 331 }, 332 "literal_with_REVERSE_SOLIDUS.nq": { 333 { 334 input: "<http://a.example/s> <http://a.example/p> \"\\\\\" .", 335 subject: term{text: "http://a.example/s", kind: IRI}, 336 predicate: term{text: "http://a.example/p", kind: IRI}, 337 object: term{text: "\\", kind: Literal}, 338 }, 339 }, 340 "literal_with_REVERSE_SOLIDUS.nt": { 341 { 342 input: "<http://a.example/s> <http://a.example/p> \"\\\\\" .", 343 subject: term{text: "http://a.example/s", kind: IRI}, 344 predicate: term{text: "http://a.example/p", kind: IRI}, 345 object: term{text: "\\", kind: Literal}, 346 }, 347 }, 348 "literal_with_REVERSE_SOLIDUS2.nq": { 349 { 350 input: "<http://example.org/ns#s> <http://example.org/ns#p1> \"test-\\\\\" .", 351 subject: term{text: "http://example.org/ns#s", kind: IRI}, 352 predicate: term{text: "http://example.org/ns#p1", kind: IRI}, 353 object: term{text: "test-\\", kind: Literal}, 354 }, 355 }, 356 "literal_with_REVERSE_SOLIDUS2.nt": { 357 { 358 input: "<http://example.org/ns#s> <http://example.org/ns#p1> \"test-\\\\\" .", 359 subject: term{text: "http://example.org/ns#s", kind: IRI}, 360 predicate: term{text: "http://example.org/ns#p1", kind: IRI}, 361 object: term{text: "test-\\", kind: Literal}, 362 }, 363 }, 364 "literal_with_UTF8_boundaries.nq": { 365 { 366 input: "<http://a.example/s> <http://a.example/p> \"\u0080߿ࠀ\u0fffက쿿퀀\ud7ff\ue000�𐀀\U0003fffd\U00040000\U000ffffd\U00100000\U0010fffd\" .", 367 subject: term{text: "http://a.example/s", kind: IRI}, 368 predicate: term{text: "http://a.example/p", kind: IRI}, 369 object: term{text: "\u0080߿ࠀ\u0fffက쿿퀀\ud7ff\ue000�𐀀\U0003fffd\U00040000\U000ffffd\U00100000\U0010fffd", kind: Literal}, 370 }, 371 }, 372 "literal_with_UTF8_boundaries.nt": { 373 { 374 input: "<http://a.example/s> <http://a.example/p> \"\u0080߿ࠀ\u0fffက쿿퀀\ud7ff\ue000�𐀀\U0003fffd\U00040000\U000ffffd\U00100000\U0010fffd\" .", 375 subject: term{text: "http://a.example/s", kind: IRI}, 376 predicate: term{text: "http://a.example/p", kind: IRI}, 377 object: term{text: "\u0080߿ࠀ\u0fffက쿿퀀\ud7ff\ue000�𐀀\U0003fffd\U00040000\U000ffffd\U00100000\U0010fffd", kind: Literal}, 378 }, 379 }, 380 "literal_with_dquote.nq": { 381 { 382 input: "<http://a.example/s> <http://a.example/p> \"x\\\"y\" .", 383 subject: term{text: "http://a.example/s", kind: IRI}, 384 predicate: term{text: "http://a.example/p", kind: IRI}, 385 object: term{text: "x\"y", kind: Literal}, 386 }, 387 }, 388 "literal_with_dquote.nt": { 389 { 390 input: "<http://a.example/s> <http://a.example/p> \"x\\\"y\" .", 391 subject: term{text: "http://a.example/s", kind: IRI}, 392 predicate: term{text: "http://a.example/p", kind: IRI}, 393 object: term{text: "x\"y", kind: Literal}, 394 }, 395 }, 396 "literal_with_numeric_escape4.nq": { 397 { 398 input: "<http://a.example/s> <http://a.example/p> \"\\u006F\" .", 399 subject: term{text: "http://a.example/s", kind: IRI}, 400 predicate: term{text: "http://a.example/p", kind: IRI}, 401 object: term{text: "o", kind: Literal}, 402 }, 403 }, 404 "literal_with_numeric_escape4.nt": { 405 { 406 input: "<http://a.example/s> <http://a.example/p> \"\\u006F\" .", 407 subject: term{text: "http://a.example/s", kind: IRI}, 408 predicate: term{text: "http://a.example/p", kind: IRI}, 409 object: term{text: "o", kind: Literal}, 410 }, 411 }, 412 "literal_with_numeric_escape8.nq": { 413 { 414 input: "<http://a.example/s> <http://a.example/p> \"\\U0000006F\" .", 415 subject: term{text: "http://a.example/s", kind: IRI}, 416 predicate: term{text: "http://a.example/p", kind: IRI}, 417 object: term{text: "o", kind: Literal}, 418 }, 419 }, 420 "literal_with_numeric_escape8.nt": { 421 { 422 input: "<http://a.example/s> <http://a.example/p> \"\\U0000006F\" .", 423 subject: term{text: "http://a.example/s", kind: IRI}, 424 predicate: term{text: "http://a.example/p", kind: IRI}, 425 object: term{text: "o", kind: Literal}, 426 }, 427 }, 428 "literal_with_squote.nq": { 429 { 430 input: "<http://a.example/s> <http://a.example/p> \"x'y\" .", 431 subject: term{text: "http://a.example/s", kind: IRI}, 432 predicate: term{text: "http://a.example/p", kind: IRI}, 433 object: term{text: "x'y", kind: Literal}, 434 }, 435 }, 436 "literal_with_squote.nt": { 437 { 438 input: "<http://a.example/s> <http://a.example/p> \"x'y\" .", 439 subject: term{text: "http://a.example/s", kind: IRI}, 440 predicate: term{text: "http://a.example/p", kind: IRI}, 441 object: term{text: "x'y", kind: Literal}, 442 }, 443 }, 444 "minimal_whitespace.nq": { 445 { 446 input: "<http://example/s><http://example/p><http://example/o>.", 447 subject: term{text: "http://example/s", kind: IRI}, 448 predicate: term{text: "http://example/p", kind: IRI}, 449 object: term{text: "http://example/o", kind: IRI}, 450 }, 451 { 452 input: "<http://example/s><http://example/p>\"Alice\".", 453 subject: term{text: "http://example/s", kind: IRI}, 454 predicate: term{text: "http://example/p", kind: IRI}, 455 object: term{text: "Alice", kind: Literal}, 456 }, 457 { 458 input: "<http://example/s><http://example/p>_:o.", 459 subject: term{text: "http://example/s", kind: IRI}, 460 predicate: term{text: "http://example/p", kind: IRI}, 461 object: term{text: "o", kind: Blank}, 462 }, 463 { 464 input: "_:s<http://example/p><http://example/o>.", 465 subject: term{text: "s", kind: Blank}, 466 predicate: term{text: "http://example/p", kind: IRI}, 467 object: term{text: "http://example/o", kind: IRI}, 468 }, 469 { 470 input: "_:s<http://example/p>\"Alice\".", 471 subject: term{text: "s", kind: Blank}, 472 predicate: term{text: "http://example/p", kind: IRI}, 473 object: term{text: "Alice", kind: Literal}, 474 }, 475 { 476 input: "_:s<http://example/p>_:bnode1.", 477 subject: term{text: "s", kind: Blank}, 478 predicate: term{text: "http://example/p", kind: IRI}, 479 object: term{text: "bnode1", kind: Blank}, 480 }, 481 }, 482 "minimal_whitespace.nt": { 483 { 484 input: "<http://example/s><http://example/p><http://example/o>.", 485 subject: term{text: "http://example/s", kind: IRI}, 486 predicate: term{text: "http://example/p", kind: IRI}, 487 object: term{text: "http://example/o", kind: IRI}, 488 }, 489 { 490 input: "<http://example/s><http://example/p>\"Alice\".", 491 subject: term{text: "http://example/s", kind: IRI}, 492 predicate: term{text: "http://example/p", kind: IRI}, 493 object: term{text: "Alice", kind: Literal}, 494 }, 495 { 496 input: "<http://example/s><http://example/p>_:o.", 497 subject: term{text: "http://example/s", kind: IRI}, 498 predicate: term{text: "http://example/p", kind: IRI}, 499 object: term{text: "o", kind: Blank}, 500 }, 501 { 502 input: "_:s<http://example/p><http://example/o>.", 503 subject: term{text: "s", kind: Blank}, 504 predicate: term{text: "http://example/p", kind: IRI}, 505 object: term{text: "http://example/o", kind: IRI}, 506 }, 507 { 508 input: "_:s<http://example/p>\"Alice\".", 509 subject: term{text: "s", kind: Blank}, 510 predicate: term{text: "http://example/p", kind: IRI}, 511 object: term{text: "Alice", kind: Literal}, 512 }, 513 { 514 input: "_:s<http://example/p>_:bnode1.", 515 subject: term{text: "s", kind: Blank}, 516 predicate: term{text: "http://example/p", kind: IRI}, 517 object: term{text: "bnode1", kind: Blank}, 518 }, 519 }, 520 "nq-syntax-bnode-01.nq": { 521 { 522 input: "<http://example/s> <http://example/p> <http://example/o> _:g .", 523 subject: term{text: "http://example/s", kind: IRI}, 524 predicate: term{text: "http://example/p", kind: IRI}, 525 object: term{text: "http://example/o", kind: IRI}, 526 label: term{text: "g", kind: Blank}, 527 }, 528 }, 529 "nq-syntax-bnode-02.nq": { 530 { 531 input: "_:s <http://example/p> <http://example/o> _:g .", 532 subject: term{text: "s", kind: Blank}, 533 predicate: term{text: "http://example/p", kind: IRI}, 534 object: term{text: "http://example/o", kind: IRI}, 535 label: term{text: "g", kind: Blank}, 536 }, 537 }, 538 "nq-syntax-bnode-03.nq": { 539 { 540 input: "<http://example/s> <http://example/p> _:o _:g .", 541 subject: term{text: "http://example/s", kind: IRI}, 542 predicate: term{text: "http://example/p", kind: IRI}, 543 object: term{text: "o", kind: Blank}, 544 label: term{text: "g", kind: Blank}, 545 }, 546 }, 547 "nq-syntax-bnode-04.nq": { 548 { 549 input: "<http://example/s> <http://example/p> \"o\" _:g .", 550 subject: term{text: "http://example/s", kind: IRI}, 551 predicate: term{text: "http://example/p", kind: IRI}, 552 object: term{text: "o", kind: Literal}, 553 label: term{text: "g", kind: Blank}, 554 }, 555 }, 556 "nq-syntax-bnode-05.nq": { 557 { 558 input: "<http://example/s> <http://example/p> \"o\"@en _:g .", 559 subject: term{text: "http://example/s", kind: IRI}, 560 predicate: term{text: "http://example/p", kind: IRI}, 561 object: term{text: "o", qual: "@en", kind: Literal}, 562 label: term{text: "g", kind: Blank}, 563 }, 564 }, 565 "nq-syntax-bnode-06.nq": { 566 { 567 input: "<http://example/s> <http://example/p> \"o\"^^<http://www.w3.org/2001/XMLSchema#string> _:g .", 568 subject: term{text: "http://example/s", kind: IRI}, 569 predicate: term{text: "http://example/p", kind: IRI}, 570 object: term{text: "o", qual: "http://www.w3.org/2001/XMLSchema#string", kind: Literal}, 571 label: term{text: "g", kind: Blank}, 572 }, 573 }, 574 "nq-syntax-uri-01.nq": { 575 { 576 input: "<http://example/s> <http://example/p> <http://example/o> <http://example/g> .", 577 subject: term{text: "http://example/s", kind: IRI}, 578 predicate: term{text: "http://example/p", kind: IRI}, 579 object: term{text: "http://example/o", kind: IRI}, 580 label: term{text: "http://example/g", kind: IRI}, 581 }, 582 }, 583 "nq-syntax-uri-02.nq": { 584 { 585 input: "_:s <http://example/p> <http://example/o> <http://example/g> .", 586 subject: term{text: "s", kind: Blank}, 587 predicate: term{text: "http://example/p", kind: IRI}, 588 object: term{text: "http://example/o", kind: IRI}, 589 label: term{text: "http://example/g", kind: IRI}, 590 }, 591 }, 592 "nq-syntax-uri-03.nq": { 593 { 594 input: "<http://example/s> <http://example/p> _:o <http://example/g> .", 595 subject: term{text: "http://example/s", kind: IRI}, 596 predicate: term{text: "http://example/p", kind: IRI}, 597 object: term{text: "o", kind: Blank}, 598 label: term{text: "http://example/g", kind: IRI}, 599 }, 600 }, 601 "nq-syntax-uri-04.nq": { 602 { 603 input: "<http://example/s> <http://example/p> \"o\" <http://example/g> .", 604 subject: term{text: "http://example/s", kind: IRI}, 605 predicate: term{text: "http://example/p", kind: IRI}, 606 object: term{text: "o", kind: Literal}, 607 label: term{text: "http://example/g", kind: IRI}, 608 }, 609 }, 610 "nq-syntax-uri-05.nq": { 611 { 612 input: "<http://example/s> <http://example/p> \"o\"@en <http://example/g> .", 613 subject: term{text: "http://example/s", kind: IRI}, 614 predicate: term{text: "http://example/p", kind: IRI}, 615 object: term{text: "o", qual: "@en", kind: Literal}, 616 label: term{text: "http://example/g", kind: IRI}, 617 }, 618 }, 619 "nq-syntax-uri-06.nq": { 620 { 621 input: "<http://example/s> <http://example/p> \"o\"^^<http://www.w3.org/2001/XMLSchema#string> <http://example/g> .", 622 subject: term{text: "http://example/s", kind: IRI}, 623 predicate: term{text: "http://example/p", kind: IRI}, 624 object: term{text: "o", qual: "http://www.w3.org/2001/XMLSchema#string", kind: Literal}, 625 label: term{text: "http://example/g", kind: IRI}, 626 }, 627 }, 628 "nt-syntax-bnode-01.nq": { 629 { 630 input: "_:a <http://example/p> <http://example/o> .", 631 subject: term{text: "a", kind: Blank}, 632 predicate: term{text: "http://example/p", kind: IRI}, 633 object: term{text: "http://example/o", kind: IRI}, 634 }, 635 }, 636 "nt-syntax-bnode-01.nt": { 637 { 638 input: "_:a <http://example/p> <http://example/o> .", 639 subject: term{text: "a", kind: Blank}, 640 predicate: term{text: "http://example/p", kind: IRI}, 641 object: term{text: "http://example/o", kind: IRI}, 642 }, 643 }, 644 "nt-syntax-bnode-02.nq": { 645 { 646 input: "<http://example/s> <http://example/p> _:a .", 647 subject: term{text: "http://example/s", kind: IRI}, 648 predicate: term{text: "http://example/p", kind: IRI}, 649 object: term{text: "a", kind: Blank}, 650 }, 651 { 652 input: "_:a <http://example/p> <http://example/o> .", 653 subject: term{text: "a", kind: Blank}, 654 predicate: term{text: "http://example/p", kind: IRI}, 655 object: term{text: "http://example/o", kind: IRI}, 656 }, 657 }, 658 "nt-syntax-bnode-02.nt": { 659 { 660 input: "<http://example/s> <http://example/p> _:a .", 661 subject: term{text: "http://example/s", kind: IRI}, 662 predicate: term{text: "http://example/p", kind: IRI}, 663 object: term{text: "a", kind: Blank}, 664 }, 665 { 666 input: "_:a <http://example/p> <http://example/o> .", 667 subject: term{text: "a", kind: Blank}, 668 predicate: term{text: "http://example/p", kind: IRI}, 669 object: term{text: "http://example/o", kind: IRI}, 670 }, 671 }, 672 "nt-syntax-bnode-03.nq": { 673 { 674 input: "<http://example/s> <http://example/p> _:1a .", 675 subject: term{text: "http://example/s", kind: IRI}, 676 predicate: term{text: "http://example/p", kind: IRI}, 677 object: term{text: "1a", kind: Blank}, 678 }, 679 { 680 input: "_:1a <http://example/p> <http://example/o> .", 681 subject: term{text: "1a", kind: Blank}, 682 predicate: term{text: "http://example/p", kind: IRI}, 683 object: term{text: "http://example/o", kind: IRI}, 684 }, 685 }, 686 "nt-syntax-bnode-03.nt": { 687 { 688 input: "<http://example/s> <http://example/p> _:1a .", 689 subject: term{text: "http://example/s", kind: IRI}, 690 predicate: term{text: "http://example/p", kind: IRI}, 691 object: term{text: "1a", kind: Blank}, 692 }, 693 { 694 input: "_:1a <http://example/p> <http://example/o> .", 695 subject: term{text: "1a", kind: Blank}, 696 predicate: term{text: "http://example/p", kind: IRI}, 697 object: term{text: "http://example/o", kind: IRI}, 698 }, 699 }, 700 "nt-syntax-datatypes-01.nq": { 701 { 702 input: "<http://example/s> <http://example/p> \"123\"^^<http://www.w3.org/2001/XMLSchema#byte> .", 703 subject: term{text: "http://example/s", kind: IRI}, 704 predicate: term{text: "http://example/p", kind: IRI}, 705 object: term{text: "123", qual: "http://www.w3.org/2001/XMLSchema#byte", kind: Literal}, 706 }, 707 }, 708 "nt-syntax-datatypes-01.nt": { 709 { 710 input: "<http://example/s> <http://example/p> \"123\"^^<http://www.w3.org/2001/XMLSchema#byte> .", 711 subject: term{text: "http://example/s", kind: IRI}, 712 predicate: term{text: "http://example/p", kind: IRI}, 713 object: term{text: "123", qual: "http://www.w3.org/2001/XMLSchema#byte", kind: Literal}, 714 }, 715 }, 716 "nt-syntax-datatypes-02.nq": { 717 { 718 input: "<http://example/s> <http://example/p> \"123\"^^<http://www.w3.org/2001/XMLSchema#string> .", 719 subject: term{text: "http://example/s", kind: IRI}, 720 predicate: term{text: "http://example/p", kind: IRI}, 721 object: term{text: "123", qual: "http://www.w3.org/2001/XMLSchema#string", kind: Literal}, 722 }, 723 }, 724 "nt-syntax-datatypes-02.nt": { 725 { 726 input: "<http://example/s> <http://example/p> \"123\"^^<http://www.w3.org/2001/XMLSchema#string> .", 727 subject: term{text: "http://example/s", kind: IRI}, 728 predicate: term{text: "http://example/p", kind: IRI}, 729 object: term{text: "123", qual: "http://www.w3.org/2001/XMLSchema#string", kind: Literal}, 730 }, 731 }, 732 "nt-syntax-str-esc-01.nq": { 733 { 734 input: "<http://example/s> <http://example/p> \"a\\n\" .", 735 subject: term{text: "http://example/s", kind: IRI}, 736 predicate: term{text: "http://example/p", kind: IRI}, 737 object: term{text: "a\n", kind: Literal}, 738 }, 739 }, 740 "nt-syntax-str-esc-01.nt": { 741 { 742 input: "<http://example/s> <http://example/p> \"a\\n\" .", 743 subject: term{text: "http://example/s", kind: IRI}, 744 predicate: term{text: "http://example/p", kind: IRI}, 745 object: term{text: "a\n", kind: Literal}, 746 }, 747 }, 748 "nt-syntax-str-esc-02.nq": { 749 { 750 input: "<http://example/s> <http://example/p> \"a\\u0020b\" .", 751 subject: term{text: "http://example/s", kind: IRI}, 752 predicate: term{text: "http://example/p", kind: IRI}, 753 object: term{text: "a b", kind: Literal}, 754 }, 755 }, 756 "nt-syntax-str-esc-02.nt": { 757 { 758 input: "<http://example/s> <http://example/p> \"a\\u0020b\" .", 759 subject: term{text: "http://example/s", kind: IRI}, 760 predicate: term{text: "http://example/p", kind: IRI}, 761 object: term{text: "a b", kind: Literal}, 762 }, 763 }, 764 "nt-syntax-str-esc-03.nq": { 765 { 766 input: "<http://example/s> <http://example/p> \"a\\U00000020b\" .", 767 subject: term{text: "http://example/s", kind: IRI}, 768 predicate: term{text: "http://example/p", kind: IRI}, 769 object: term{text: "a b", kind: Literal}, 770 }, 771 }, 772 "nt-syntax-str-esc-03.nt": { 773 { 774 input: "<http://example/s> <http://example/p> \"a\\U00000020b\" .", 775 subject: term{text: "http://example/s", kind: IRI}, 776 predicate: term{text: "http://example/p", kind: IRI}, 777 object: term{text: "a b", kind: Literal}, 778 }, 779 }, 780 "nt-syntax-string-01.nq": { 781 { 782 input: "<http://example/s> <http://example/p> \"string\" .", 783 subject: term{text: "http://example/s", kind: IRI}, 784 predicate: term{text: "http://example/p", kind: IRI}, 785 object: term{text: "string", kind: Literal}, 786 }, 787 }, 788 "nt-syntax-string-01.nt": { 789 { 790 input: "<http://example/s> <http://example/p> \"string\" .", 791 subject: term{text: "http://example/s", kind: IRI}, 792 predicate: term{text: "http://example/p", kind: IRI}, 793 object: term{text: "string", kind: Literal}, 794 }, 795 }, 796 "nt-syntax-string-02.nq": { 797 { 798 input: "<http://example/s> <http://example/p> \"string\"@en .", 799 subject: term{text: "http://example/s", kind: IRI}, 800 predicate: term{text: "http://example/p", kind: IRI}, 801 object: term{text: "string", qual: "@en", kind: Literal}, 802 }, 803 }, 804 "nt-syntax-string-02.nt": { 805 { 806 input: "<http://example/s> <http://example/p> \"string\"@en .", 807 subject: term{text: "http://example/s", kind: IRI}, 808 predicate: term{text: "http://example/p", kind: IRI}, 809 object: term{text: "string", qual: "@en", kind: Literal}, 810 }, 811 }, 812 "nt-syntax-string-03.nq": { 813 { 814 input: "<http://example/s> <http://example/p> \"string\"@en-uk .", 815 subject: term{text: "http://example/s", kind: IRI}, 816 predicate: term{text: "http://example/p", kind: IRI}, 817 object: term{text: "string", qual: "@en-uk", kind: Literal}, 818 }, 819 }, 820 "nt-syntax-string-03.nt": { 821 { 822 input: "<http://example/s> <http://example/p> \"string\"@en-uk .", 823 subject: term{text: "http://example/s", kind: IRI}, 824 predicate: term{text: "http://example/p", kind: IRI}, 825 object: term{text: "string", qual: "@en-uk", kind: Literal}, 826 }, 827 }, 828 "nt-syntax-subm-01.nq": { 829 { 830 input: "<http://example.org/resource1> <http://example.org/property> <http://example.org/resource2> .", 831 subject: term{text: "http://example.org/resource1", kind: IRI}, 832 predicate: term{text: "http://example.org/property", kind: IRI}, 833 object: term{text: "http://example.org/resource2", kind: IRI}, 834 }, 835 { 836 input: "_:anon <http://example.org/property> <http://example.org/resource2> .", 837 subject: term{text: "anon", kind: Blank}, 838 predicate: term{text: "http://example.org/property", kind: IRI}, 839 object: term{text: "http://example.org/resource2", kind: IRI}, 840 }, 841 { 842 input: "<http://example.org/resource2> <http://example.org/property> _:anon .", 843 subject: term{text: "http://example.org/resource2", kind: IRI}, 844 predicate: term{text: "http://example.org/property", kind: IRI}, 845 object: term{text: "anon", kind: Blank}, 846 }, 847 { 848 input: "<http://example.org/resource3> \t <http://example.org/property>\t <http://example.org/resource2> \t.", 849 subject: term{text: "http://example.org/resource3", kind: IRI}, 850 predicate: term{text: "http://example.org/property", kind: IRI}, 851 object: term{text: "http://example.org/resource2", kind: IRI}, 852 }, 853 { 854 input: "<http://example.org/resource4> <http://example.org/property> <http://example.org/resource2> .", 855 subject: term{text: "http://example.org/resource4", kind: IRI}, 856 predicate: term{text: "http://example.org/property", kind: IRI}, 857 object: term{text: "http://example.org/resource2", kind: IRI}, 858 }, 859 { 860 input: "<http://example.org/resource5> <http://example.org/property> <http://example.org/resource2> .", 861 subject: term{text: "http://example.org/resource5", kind: IRI}, 862 predicate: term{text: "http://example.org/property", kind: IRI}, 863 object: term{text: "http://example.org/resource2", kind: IRI}, 864 }, 865 { 866 input: "<http://example.org/resource6> <http://example.org/property> <http://example.org/resource2> .", 867 subject: term{text: "http://example.org/resource6", kind: IRI}, 868 predicate: term{text: "http://example.org/property", kind: IRI}, 869 object: term{text: "http://example.org/resource2", kind: IRI}, 870 }, 871 { 872 input: "<http://example.org/resource7> <http://example.org/property> \"simple literal\" .", 873 subject: term{text: "http://example.org/resource7", kind: IRI}, 874 predicate: term{text: "http://example.org/property", kind: IRI}, 875 object: term{text: "simple literal", kind: Literal}, 876 }, 877 { 878 input: "<http://example.org/resource8> <http://example.org/property> \"backslash:\\\\\" .", 879 subject: term{text: "http://example.org/resource8", kind: IRI}, 880 predicate: term{text: "http://example.org/property", kind: IRI}, 881 object: term{text: "backslash:\\", kind: Literal}, 882 }, 883 { 884 input: "<http://example.org/resource9> <http://example.org/property> \"dquote:\\\"\" .", 885 subject: term{text: "http://example.org/resource9", kind: IRI}, 886 predicate: term{text: "http://example.org/property", kind: IRI}, 887 object: term{text: "dquote:\"", kind: Literal}, 888 }, 889 { 890 input: "<http://example.org/resource10> <http://example.org/property> \"newline:\\n\" .", 891 subject: term{text: "http://example.org/resource10", kind: IRI}, 892 predicate: term{text: "http://example.org/property", kind: IRI}, 893 object: term{text: "newline:\n", kind: Literal}, 894 }, 895 { 896 input: "<http://example.org/resource11> <http://example.org/property> \"return\\r\" .", 897 subject: term{text: "http://example.org/resource11", kind: IRI}, 898 predicate: term{text: "http://example.org/property", kind: IRI}, 899 object: term{text: "return\r", kind: Literal}, 900 }, 901 { 902 input: "<http://example.org/resource12> <http://example.org/property> \"tab:\\t\" .", 903 subject: term{text: "http://example.org/resource12", kind: IRI}, 904 predicate: term{text: "http://example.org/property", kind: IRI}, 905 object: term{text: "tab:\t", kind: Literal}, 906 }, 907 { 908 input: "<http://example.org/resource13> <http://example.org/property> <http://example.org/resource2>.", 909 subject: term{text: "http://example.org/resource13", kind: IRI}, 910 predicate: term{text: "http://example.org/property", kind: IRI}, 911 object: term{text: "http://example.org/resource2", kind: IRI}, 912 }, 913 { 914 input: "<http://example.org/resource14> <http://example.org/property> \"x\".", 915 subject: term{text: "http://example.org/resource14", kind: IRI}, 916 predicate: term{text: "http://example.org/property", kind: IRI}, 917 object: term{text: "x", kind: Literal}, 918 }, 919 { 920 input: "<http://example.org/resource15> <http://example.org/property> _:anon.", 921 subject: term{text: "http://example.org/resource15", kind: IRI}, 922 predicate: term{text: "http://example.org/property", kind: IRI}, 923 object: term{text: "anon", kind: Blank}, 924 }, 925 { 926 input: "<http://example.org/resource16> <http://example.org/property> \"\\u00E9\" .", 927 subject: term{text: "http://example.org/resource16", kind: IRI}, 928 predicate: term{text: "http://example.org/property", kind: IRI}, 929 object: term{text: "é", kind: Literal}, 930 }, 931 { 932 input: "<http://example.org/resource17> <http://example.org/property> \"\\u20AC\" .", 933 subject: term{text: "http://example.org/resource17", kind: IRI}, 934 predicate: term{text: "http://example.org/property", kind: IRI}, 935 object: term{text: "€", kind: Literal}, 936 }, 937 { 938 input: "<http://example.org/resource21> <http://example.org/property> \"\"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .", 939 subject: term{text: "http://example.org/resource21", kind: IRI}, 940 predicate: term{text: "http://example.org/property", kind: IRI}, 941 object: term{text: "", qual: "http://www.w3.org/2000/01/rdf-schema#XMLLiteral", kind: Literal}, 942 }, 943 { 944 input: "<http://example.org/resource22> <http://example.org/property> \" \"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .", 945 subject: term{text: "http://example.org/resource22", kind: IRI}, 946 predicate: term{text: "http://example.org/property", kind: IRI}, 947 object: term{text: " ", qual: "http://www.w3.org/2000/01/rdf-schema#XMLLiteral", kind: Literal}, 948 }, 949 { 950 input: "<http://example.org/resource23> <http://example.org/property> \"x\"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .", 951 subject: term{text: "http://example.org/resource23", kind: IRI}, 952 predicate: term{text: "http://example.org/property", kind: IRI}, 953 object: term{text: "x", qual: "http://www.w3.org/2000/01/rdf-schema#XMLLiteral", kind: Literal}, 954 }, 955 { 956 input: "<http://example.org/resource23> <http://example.org/property> \"\\\"\"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .", 957 subject: term{text: "http://example.org/resource23", kind: IRI}, 958 predicate: term{text: "http://example.org/property", kind: IRI}, 959 object: term{text: "\"", qual: "http://www.w3.org/2000/01/rdf-schema#XMLLiteral", kind: Literal}, 960 }, 961 { 962 input: "<http://example.org/resource24> <http://example.org/property> \"<a></a>\"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .", 963 subject: term{text: "http://example.org/resource24", kind: IRI}, 964 predicate: term{text: "http://example.org/property", kind: IRI}, 965 object: term{text: "<a></a>", qual: "http://www.w3.org/2000/01/rdf-schema#XMLLiteral", kind: Literal}, 966 }, 967 { 968 input: "<http://example.org/resource25> <http://example.org/property> \"a <b></b>\"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .", 969 subject: term{text: "http://example.org/resource25", kind: IRI}, 970 predicate: term{text: "http://example.org/property", kind: IRI}, 971 object: term{text: "a <b></b>", qual: "http://www.w3.org/2000/01/rdf-schema#XMLLiteral", kind: Literal}, 972 }, 973 { 974 input: "<http://example.org/resource26> <http://example.org/property> \"a <b></b> c\"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .", 975 subject: term{text: "http://example.org/resource26", kind: IRI}, 976 predicate: term{text: "http://example.org/property", kind: IRI}, 977 object: term{text: "a <b></b> c", qual: "http://www.w3.org/2000/01/rdf-schema#XMLLiteral", kind: Literal}, 978 }, 979 { 980 input: "<http://example.org/resource26> <http://example.org/property> \"a\\n<b></b>\\nc\"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .", 981 subject: term{text: "http://example.org/resource26", kind: IRI}, 982 predicate: term{text: "http://example.org/property", kind: IRI}, 983 object: term{text: "a\n<b></b>\nc", qual: "http://www.w3.org/2000/01/rdf-schema#XMLLiteral", kind: Literal}, 984 }, 985 { 986 input: "<http://example.org/resource27> <http://example.org/property> \"chat\"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .", 987 subject: term{text: "http://example.org/resource27", kind: IRI}, 988 predicate: term{text: "http://example.org/property", kind: IRI}, 989 object: term{text: "chat", qual: "http://www.w3.org/2000/01/rdf-schema#XMLLiteral", kind: Literal}, 990 }, 991 { 992 input: "<http://example.org/resource30> <http://example.org/property> \"chat\"@fr .", 993 subject: term{text: "http://example.org/resource30", kind: IRI}, 994 predicate: term{text: "http://example.org/property", kind: IRI}, 995 object: term{text: "chat", qual: "@fr", kind: Literal}, 996 }, 997 { 998 input: "<http://example.org/resource31> <http://example.org/property> \"chat\"@en .", 999 subject: term{text: "http://example.org/resource31", kind: IRI}, 1000 predicate: term{text: "http://example.org/property", kind: IRI}, 1001 object: term{text: "chat", qual: "@en", kind: Literal}, 1002 }, 1003 { 1004 input: "<http://example.org/resource32> <http://example.org/property> \"abc\"^^<http://example.org/datatype1> .", 1005 subject: term{text: "http://example.org/resource32", kind: IRI}, 1006 predicate: term{text: "http://example.org/property", kind: IRI}, 1007 object: term{text: "abc", qual: "http://example.org/datatype1", kind: Literal}, 1008 }, 1009 }, 1010 "nt-syntax-subm-01.nt": { 1011 { 1012 input: "<http://example.org/resource1> <http://example.org/property> <http://example.org/resource2> .", 1013 subject: term{text: "http://example.org/resource1", kind: IRI}, 1014 predicate: term{text: "http://example.org/property", kind: IRI}, 1015 object: term{text: "http://example.org/resource2", kind: IRI}, 1016 }, 1017 { 1018 input: "_:anon <http://example.org/property> <http://example.org/resource2> .", 1019 subject: term{text: "anon", kind: Blank}, 1020 predicate: term{text: "http://example.org/property", kind: IRI}, 1021 object: term{text: "http://example.org/resource2", kind: IRI}, 1022 }, 1023 { 1024 input: "<http://example.org/resource2> <http://example.org/property> _:anon .", 1025 subject: term{text: "http://example.org/resource2", kind: IRI}, 1026 predicate: term{text: "http://example.org/property", kind: IRI}, 1027 object: term{text: "anon", kind: Blank}, 1028 }, 1029 { 1030 input: "<http://example.org/resource3> \t <http://example.org/property>\t <http://example.org/resource2> \t.", 1031 subject: term{text: "http://example.org/resource3", kind: IRI}, 1032 predicate: term{text: "http://example.org/property", kind: IRI}, 1033 object: term{text: "http://example.org/resource2", kind: IRI}, 1034 }, 1035 { 1036 input: "<http://example.org/resource4> <http://example.org/property> <http://example.org/resource2> .", 1037 subject: term{text: "http://example.org/resource4", kind: IRI}, 1038 predicate: term{text: "http://example.org/property", kind: IRI}, 1039 object: term{text: "http://example.org/resource2", kind: IRI}, 1040 }, 1041 { 1042 input: "<http://example.org/resource5> <http://example.org/property> <http://example.org/resource2> .", 1043 subject: term{text: "http://example.org/resource5", kind: IRI}, 1044 predicate: term{text: "http://example.org/property", kind: IRI}, 1045 object: term{text: "http://example.org/resource2", kind: IRI}, 1046 }, 1047 { 1048 input: "<http://example.org/resource6> <http://example.org/property> <http://example.org/resource2> .", 1049 subject: term{text: "http://example.org/resource6", kind: IRI}, 1050 predicate: term{text: "http://example.org/property", kind: IRI}, 1051 object: term{text: "http://example.org/resource2", kind: IRI}, 1052 }, 1053 { 1054 input: "<http://example.org/resource7> <http://example.org/property> \"simple literal\" .", 1055 subject: term{text: "http://example.org/resource7", kind: IRI}, 1056 predicate: term{text: "http://example.org/property", kind: IRI}, 1057 object: term{text: "simple literal", kind: Literal}, 1058 }, 1059 { 1060 input: "<http://example.org/resource8> <http://example.org/property> \"backslash:\\\\\" .", 1061 subject: term{text: "http://example.org/resource8", kind: IRI}, 1062 predicate: term{text: "http://example.org/property", kind: IRI}, 1063 object: term{text: "backslash:\\", kind: Literal}, 1064 }, 1065 { 1066 input: "<http://example.org/resource9> <http://example.org/property> \"dquote:\\\"\" .", 1067 subject: term{text: "http://example.org/resource9", kind: IRI}, 1068 predicate: term{text: "http://example.org/property", kind: IRI}, 1069 object: term{text: "dquote:\"", kind: Literal}, 1070 }, 1071 { 1072 input: "<http://example.org/resource10> <http://example.org/property> \"newline:\\n\" .", 1073 subject: term{text: "http://example.org/resource10", kind: IRI}, 1074 predicate: term{text: "http://example.org/property", kind: IRI}, 1075 object: term{text: "newline:\n", kind: Literal}, 1076 }, 1077 { 1078 input: "<http://example.org/resource11> <http://example.org/property> \"return\\r\" .", 1079 subject: term{text: "http://example.org/resource11", kind: IRI}, 1080 predicate: term{text: "http://example.org/property", kind: IRI}, 1081 object: term{text: "return\r", kind: Literal}, 1082 }, 1083 { 1084 input: "<http://example.org/resource12> <http://example.org/property> \"tab:\\t\" .", 1085 subject: term{text: "http://example.org/resource12", kind: IRI}, 1086 predicate: term{text: "http://example.org/property", kind: IRI}, 1087 object: term{text: "tab:\t", kind: Literal}, 1088 }, 1089 { 1090 input: "<http://example.org/resource13> <http://example.org/property> <http://example.org/resource2>.", 1091 subject: term{text: "http://example.org/resource13", kind: IRI}, 1092 predicate: term{text: "http://example.org/property", kind: IRI}, 1093 object: term{text: "http://example.org/resource2", kind: IRI}, 1094 }, 1095 { 1096 input: "<http://example.org/resource14> <http://example.org/property> \"x\".", 1097 subject: term{text: "http://example.org/resource14", kind: IRI}, 1098 predicate: term{text: "http://example.org/property", kind: IRI}, 1099 object: term{text: "x", kind: Literal}, 1100 }, 1101 { 1102 input: "<http://example.org/resource15> <http://example.org/property> _:anon.", 1103 subject: term{text: "http://example.org/resource15", kind: IRI}, 1104 predicate: term{text: "http://example.org/property", kind: IRI}, 1105 object: term{text: "anon", kind: Blank}, 1106 }, 1107 { 1108 input: "<http://example.org/resource16> <http://example.org/property> \"\\u00E9\" .", 1109 subject: term{text: "http://example.org/resource16", kind: IRI}, 1110 predicate: term{text: "http://example.org/property", kind: IRI}, 1111 object: term{text: "é", kind: Literal}, 1112 }, 1113 { 1114 input: "<http://example.org/resource17> <http://example.org/property> \"\\u20AC\" .", 1115 subject: term{text: "http://example.org/resource17", kind: IRI}, 1116 predicate: term{text: "http://example.org/property", kind: IRI}, 1117 object: term{text: "€", kind: Literal}, 1118 }, 1119 { 1120 input: "<http://example.org/resource21> <http://example.org/property> \"\"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .", 1121 subject: term{text: "http://example.org/resource21", kind: IRI}, 1122 predicate: term{text: "http://example.org/property", kind: IRI}, 1123 object: term{text: "", qual: "http://www.w3.org/2000/01/rdf-schema#XMLLiteral", kind: Literal}, 1124 }, 1125 { 1126 input: "<http://example.org/resource22> <http://example.org/property> \" \"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .", 1127 subject: term{text: "http://example.org/resource22", kind: IRI}, 1128 predicate: term{text: "http://example.org/property", kind: IRI}, 1129 object: term{text: " ", qual: "http://www.w3.org/2000/01/rdf-schema#XMLLiteral", kind: Literal}, 1130 }, 1131 { 1132 input: "<http://example.org/resource23> <http://example.org/property> \"x\"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .", 1133 subject: term{text: "http://example.org/resource23", kind: IRI}, 1134 predicate: term{text: "http://example.org/property", kind: IRI}, 1135 object: term{text: "x", qual: "http://www.w3.org/2000/01/rdf-schema#XMLLiteral", kind: Literal}, 1136 }, 1137 { 1138 input: "<http://example.org/resource23> <http://example.org/property> \"\\\"\"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .", 1139 subject: term{text: "http://example.org/resource23", kind: IRI}, 1140 predicate: term{text: "http://example.org/property", kind: IRI}, 1141 object: term{text: "\"", qual: "http://www.w3.org/2000/01/rdf-schema#XMLLiteral", kind: Literal}, 1142 }, 1143 { 1144 input: "<http://example.org/resource24> <http://example.org/property> \"<a></a>\"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .", 1145 subject: term{text: "http://example.org/resource24", kind: IRI}, 1146 predicate: term{text: "http://example.org/property", kind: IRI}, 1147 object: term{text: "<a></a>", qual: "http://www.w3.org/2000/01/rdf-schema#XMLLiteral", kind: Literal}, 1148 }, 1149 { 1150 input: "<http://example.org/resource25> <http://example.org/property> \"a <b></b>\"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .", 1151 subject: term{text: "http://example.org/resource25", kind: IRI}, 1152 predicate: term{text: "http://example.org/property", kind: IRI}, 1153 object: term{text: "a <b></b>", qual: "http://www.w3.org/2000/01/rdf-schema#XMLLiteral", kind: Literal}, 1154 }, 1155 { 1156 input: "<http://example.org/resource26> <http://example.org/property> \"a <b></b> c\"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .", 1157 subject: term{text: "http://example.org/resource26", kind: IRI}, 1158 predicate: term{text: "http://example.org/property", kind: IRI}, 1159 object: term{text: "a <b></b> c", qual: "http://www.w3.org/2000/01/rdf-schema#XMLLiteral", kind: Literal}, 1160 }, 1161 { 1162 input: "<http://example.org/resource26> <http://example.org/property> \"a\\n<b></b>\\nc\"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .", 1163 subject: term{text: "http://example.org/resource26", kind: IRI}, 1164 predicate: term{text: "http://example.org/property", kind: IRI}, 1165 object: term{text: "a\n<b></b>\nc", qual: "http://www.w3.org/2000/01/rdf-schema#XMLLiteral", kind: Literal}, 1166 }, 1167 { 1168 input: "<http://example.org/resource27> <http://example.org/property> \"chat\"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .", 1169 subject: term{text: "http://example.org/resource27", kind: IRI}, 1170 predicate: term{text: "http://example.org/property", kind: IRI}, 1171 object: term{text: "chat", qual: "http://www.w3.org/2000/01/rdf-schema#XMLLiteral", kind: Literal}, 1172 }, 1173 { 1174 input: "<http://example.org/resource30> <http://example.org/property> \"chat\"@fr .", 1175 subject: term{text: "http://example.org/resource30", kind: IRI}, 1176 predicate: term{text: "http://example.org/property", kind: IRI}, 1177 object: term{text: "chat", qual: "@fr", kind: Literal}, 1178 }, 1179 { 1180 input: "<http://example.org/resource31> <http://example.org/property> \"chat\"@en .", 1181 subject: term{text: "http://example.org/resource31", kind: IRI}, 1182 predicate: term{text: "http://example.org/property", kind: IRI}, 1183 object: term{text: "chat", qual: "@en", kind: Literal}, 1184 }, 1185 { 1186 input: "<http://example.org/resource32> <http://example.org/property> \"abc\"^^<http://example.org/datatype1> .", 1187 subject: term{text: "http://example.org/resource32", kind: IRI}, 1188 predicate: term{text: "http://example.org/property", kind: IRI}, 1189 object: term{text: "abc", qual: "http://example.org/datatype1", kind: Literal}, 1190 }, 1191 }, 1192 "nt-syntax-uri-01.nq": { 1193 { 1194 input: "<http://example/s> <http://example/p> <http://example/o> .", 1195 subject: term{text: "http://example/s", kind: IRI}, 1196 predicate: term{text: "http://example/p", kind: IRI}, 1197 object: term{text: "http://example/o", kind: IRI}, 1198 }, 1199 }, 1200 "nt-syntax-uri-01.nt": { 1201 { 1202 input: "<http://example/s> <http://example/p> <http://example/o> .", 1203 subject: term{text: "http://example/s", kind: IRI}, 1204 predicate: term{text: "http://example/p", kind: IRI}, 1205 object: term{text: "http://example/o", kind: IRI}, 1206 }, 1207 }, 1208 "nt-syntax-uri-02.nq": { 1209 { 1210 input: "<http://example/\\u0053> <http://example/p> <http://example/o> .", 1211 subject: term{text: "http://example/S", kind: IRI}, 1212 predicate: term{text: "http://example/p", kind: IRI}, 1213 object: term{text: "http://example/o", kind: IRI}, 1214 }, 1215 }, 1216 "nt-syntax-uri-02.nt": { 1217 { 1218 input: "<http://example/\\u0053> <http://example/p> <http://example/o> .", 1219 subject: term{text: "http://example/S", kind: IRI}, 1220 predicate: term{text: "http://example/p", kind: IRI}, 1221 object: term{text: "http://example/o", kind: IRI}, 1222 }, 1223 }, 1224 "nt-syntax-uri-03.nq": { 1225 { 1226 input: "<http://example/\\U00000053> <http://example/p> <http://example/o> .", 1227 subject: term{text: "http://example/S", kind: IRI}, 1228 predicate: term{text: "http://example/p", kind: IRI}, 1229 object: term{text: "http://example/o", kind: IRI}, 1230 }, 1231 }, 1232 "nt-syntax-uri-03.nt": { 1233 { 1234 input: "<http://example/\\U00000053> <http://example/p> <http://example/o> .", 1235 subject: term{text: "http://example/S", kind: IRI}, 1236 predicate: term{text: "http://example/p", kind: IRI}, 1237 object: term{text: "http://example/o", kind: IRI}, 1238 }, 1239 }, 1240 "nt-syntax-uri-04.nq": { 1241 { 1242 input: "<http://example/s> <http://example/p> <scheme:!$%25&'()*+,-./0123456789:/@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~?#> .", 1243 subject: term{text: "http://example/s", kind: IRI}, 1244 predicate: term{text: "http://example/p", kind: IRI}, 1245 object: term{text: "scheme:!$%25&'()*+,-./0123456789:/@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~?#", kind: IRI}, 1246 }, 1247 }, 1248 "nt-syntax-uri-04.nt": { 1249 { 1250 input: "<http://example/s> <http://example/p> <scheme:!$%25&'()*+,-./0123456789:/@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~?#> .", 1251 subject: term{text: "http://example/s", kind: IRI}, 1252 predicate: term{text: "http://example/p", kind: IRI}, 1253 object: term{text: "scheme:!$%25&'()*+,-./0123456789:/@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~?#", kind: IRI}, 1254 }, 1255 }, 1256 1257 // Empty valid syntax. 1258 "nt-syntax-file-01.nq": nil, 1259 "nt-syntax-file-01.nt": nil, 1260 "nt-syntax-file-02.nq": nil, 1261 "nt-syntax-file-02.nt": nil, 1262 "nt-syntax-file-03.nq": nil, 1263 "nt-syntax-file-03.nt": nil, 1264 1265 // Invalid syntax. 1266 "nq-syntax-bad-literal-01.nq": nil, 1267 "nq-syntax-bad-literal-02.nq": nil, 1268 "nq-syntax-bad-literal-03.nq": nil, 1269 "nq-syntax-bad-quint-01.nq": nil, 1270 "nq-syntax-bad-uri-01.nq": nil, 1271 "nt-syntax-bad-base-01.nq": nil, 1272 "nt-syntax-bad-base-01.nt": nil, 1273 "nt-syntax-bad-esc-01.nq": nil, 1274 "nt-syntax-bad-esc-01.nt": nil, 1275 "nt-syntax-bad-esc-02.nq": nil, 1276 "nt-syntax-bad-esc-02.nt": nil, 1277 "nt-syntax-bad-esc-03.nq": nil, 1278 "nt-syntax-bad-esc-03.nt": nil, 1279 "nt-syntax-bad-lang-01.nq": nil, 1280 "nt-syntax-bad-lang-01.nt": nil, 1281 "nt-syntax-bad-num-01.nq": nil, 1282 "nt-syntax-bad-num-01.nt": nil, 1283 "nt-syntax-bad-num-02.nq": nil, 1284 "nt-syntax-bad-num-02.nt": nil, 1285 "nt-syntax-bad-num-03.nq": nil, 1286 "nt-syntax-bad-num-03.nt": nil, 1287 "nt-syntax-bad-prefix-01.nq": nil, 1288 "nt-syntax-bad-prefix-01.nt": nil, 1289 "nt-syntax-bad-string-01.nq": nil, 1290 "nt-syntax-bad-string-01.nt": nil, 1291 "nt-syntax-bad-string-02.nq": nil, 1292 "nt-syntax-bad-string-02.nt": nil, 1293 "nt-syntax-bad-string-03.nq": nil, 1294 "nt-syntax-bad-string-03.nt": nil, 1295 "nt-syntax-bad-string-04.nq": nil, 1296 "nt-syntax-bad-string-04.nt": nil, 1297 "nt-syntax-bad-string-05.nq": nil, 1298 "nt-syntax-bad-string-05.nt": nil, 1299 "nt-syntax-bad-string-06.nq": nil, 1300 "nt-syntax-bad-string-06.nt": nil, 1301 "nt-syntax-bad-string-07.nq": nil, 1302 "nt-syntax-bad-string-07.nt": nil, 1303 "nt-syntax-bad-struct-01.nq": nil, 1304 "nt-syntax-bad-struct-01.nt": nil, 1305 "nt-syntax-bad-struct-02.nq": nil, 1306 "nt-syntax-bad-struct-02.nt": nil, 1307 "nt-syntax-bad-uri-01.nq": nil, 1308 "nt-syntax-bad-uri-01.nt": nil, 1309 "nt-syntax-bad-uri-02.nq": nil, 1310 "nt-syntax-bad-uri-02.nt": nil, 1311 "nt-syntax-bad-uri-03.nq": nil, 1312 "nt-syntax-bad-uri-03.nt": nil, 1313 "nt-syntax-bad-uri-04.nq": nil, 1314 "nt-syntax-bad-uri-04.nt": nil, 1315 "nt-syntax-bad-uri-05.nq": nil, 1316 "nt-syntax-bad-uri-05.nt": nil, 1317 "nt-syntax-bad-uri-06.nq": nil, 1318 "nt-syntax-bad-uri-06.nt": nil, 1319 "nt-syntax-bad-uri-07.nq": nil, 1320 "nt-syntax-bad-uri-07.nt": nil, 1321 "nt-syntax-bad-uri-08.nq": nil, 1322 "nt-syntax-bad-uri-08.nt": nil, 1323 "nt-syntax-bad-uri-09.nq": nil, 1324 "nt-syntax-bad-uri-09.nt": nil, 1325 }