graph/formats/rdf: add URDNA2015 and URGNA2012 canonicalisation

With the inclusion of the complete JSON-LD RDF Dataset Normalization test
suite these can now be dual licensed.
This commit is contained in:
Dan Kortschak
2020-12-11 09:57:46 +10:30
parent a6eddb68ae
commit 3f0deff25e
142 changed files with 7453 additions and 1 deletions

View File

@@ -1,9 +1,10 @@
Test suite license
This document refers to nquad_tests.tar.gz and ntriple_tests.tar.gz. The original files can be obtained here:
This document refers to nquad_tests.tar.gz, ntriple_tests.tar.gz and normalization tests in testdata. The original files can be obtained here:
- [nquad_tests.tar.gz](https://w3c.github.io/rdf-tests/nquads/TESTS.tar.gz)
- [ntriple_tests.tar.gz](https://w3c.github.io/rdf-tests/ntriples/TESTS.tar.gz)
- [normalization tests](https://json-ld.github.io/rdf-dataset-canonicalization/).
Distributed under both the [W3C Test Suite License](https://www.w3.org/Consortium/Legal/2008/04-testsuite-license) and the [W3C 3-clause BSD License](https://www.w3.org/Consortium/Legal/2008/03-bsd-license).
To contribute to a W3C Test Suite, see the [policies and contribution forms](href="https://www.w3.org/2004/10/27-testcases").

3124
graph/formats/rdf/testdata/index.html vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,596 @@
{
"@context": {
"xsd": "http://www.w3.org/2001/XMLSchema#",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"mf": "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#",
"mq": "http://www.w3.org/2001/sw/DataAccess/tests/test-query#",
"rdfn": "http://json-ld.github.io/normalization/test-vocab#",
"rdft": "http://www.w3.org/ns/rdftest#",
"id": "@id",
"type": "@type",
"action": {
"@id": "mf:action",
"@type": "@id"
},
"approval": {
"@id": "rdft:approval",
"@type": "@id"
},
"comment": "rdfs:comment",
"entries": {
"@id": "mf:entries",
"@type": "@id",
"@container": "@list"
},
"label": "rdfs:label",
"name": "mf:name",
"result": {
"@id": "mf:result",
"@type": "@id"
}
},
"id": "manifest-urdna2015",
"type": "mf:Manifest",
"label": "RDF Dataset Normalization (URDNA2015)",
"comment": "Tests the 2015 version of RDF Dataset Normalization.",
"entries": [
{
"id": "manifest-urdna2015#test001",
"type": "rdfn:Urdna2015EvalTest",
"name": "simple id",
"comment": null,
"approval": "rdft:Proposed",
"action": "test001-in.nq",
"result": "test001-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test002",
"type": "rdfn:Urdna2015EvalTest",
"name": "duplicate property iri values",
"comment": null,
"approval": "rdft:Proposed",
"action": "test002-in.nq",
"result": "test002-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test003",
"type": "rdfn:Urdna2015EvalTest",
"name": "bnode",
"comment": null,
"approval": "rdft:Proposed",
"action": "test003-in.nq",
"result": "test003-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test004",
"type": "rdfn:Urdna2015EvalTest",
"name": "bnode plus embed w/subject",
"comment": null,
"approval": "rdft:Proposed",
"action": "test004-in.nq",
"result": "test004-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test005",
"type": "rdfn:Urdna2015EvalTest",
"name": "bnode embed",
"comment": null,
"approval": "rdft:Proposed",
"action": "test005-in.nq",
"result": "test005-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test006",
"type": "rdfn:Urdna2015EvalTest",
"name": "multiple rdf types",
"comment": null,
"approval": "rdft:Proposed",
"action": "test006-in.nq",
"result": "test006-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test007",
"type": "rdfn:Urdna2015EvalTest",
"name": "coerce CURIE value",
"comment": null,
"approval": "rdft:Proposed",
"action": "test007-in.nq",
"result": "test007-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test008",
"type": "rdfn:Urdna2015EvalTest",
"name": "single subject complex",
"comment": null,
"approval": "rdft:Proposed",
"action": "test008-in.nq",
"result": "test008-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test009",
"type": "rdfn:Urdna2015EvalTest",
"name": "multiple subjects - complex",
"comment": null,
"approval": "rdft:Proposed",
"action": "test009-in.nq",
"result": "test009-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test010",
"type": "rdfn:Urdna2015EvalTest",
"name": "type",
"comment": null,
"approval": "rdft:Proposed",
"action": "test010-in.nq",
"result": "test010-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test011",
"type": "rdfn:Urdna2015EvalTest",
"name": "type-coerced type",
"comment": null,
"approval": "rdft:Proposed",
"action": "test011-in.nq",
"result": "test011-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test012",
"type": "rdfn:Urdna2015EvalTest",
"name": "type-coerced type, remove duplicate reference",
"comment": null,
"approval": "rdft:Proposed",
"action": "test012-in.nq",
"result": "test012-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test013",
"type": "rdfn:Urdna2015EvalTest",
"name": "type-coerced type, cycle",
"comment": null,
"approval": "rdft:Proposed",
"action": "test013-in.nq",
"result": "test013-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test014",
"type": "rdfn:Urdna2015EvalTest",
"name": "check types",
"comment": null,
"approval": "rdft:Proposed",
"action": "test014-in.nq",
"result": "test014-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test015",
"type": "rdfn:Urdna2015EvalTest",
"name": "top level context",
"comment": null,
"approval": "rdft:Proposed",
"action": "test015-in.nq",
"result": "test015-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test016",
"type": "rdfn:Urdna2015EvalTest",
"name": "blank node - dual link - embed",
"comment": null,
"approval": "rdft:Proposed",
"action": "test016-in.nq",
"result": "test016-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test017",
"type": "rdfn:Urdna2015EvalTest",
"name": "blank node - dual link - non-embed",
"comment": null,
"approval": "rdft:Proposed",
"action": "test017-in.nq",
"result": "test017-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test018",
"type": "rdfn:Urdna2015EvalTest",
"name": "blank node - self link",
"comment": null,
"approval": "rdft:Proposed",
"action": "test018-in.nq",
"result": "test018-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test019",
"type": "rdfn:Urdna2015EvalTest",
"name": "blank node - disjoint self links",
"comment": null,
"approval": "rdft:Proposed",
"action": "test019-in.nq",
"result": "test019-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test020",
"type": "rdfn:Urdna2015EvalTest",
"name": "blank node - diamond",
"comment": null,
"approval": "rdft:Proposed",
"action": "test020-in.nq",
"result": "test020-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test021",
"type": "rdfn:Urdna2015EvalTest",
"name": "blank node - circle of 2",
"comment": null,
"approval": "rdft:Proposed",
"action": "test021-in.nq",
"result": "test021-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test022",
"type": "rdfn:Urdna2015EvalTest",
"name": "blank node - double circle of 2",
"comment": null,
"approval": "rdft:Proposed",
"action": "test022-in.nq",
"result": "test022-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test023",
"type": "rdfn:Urdna2015EvalTest",
"name": "blank node - circle of 3",
"comment": null,
"approval": "rdft:Proposed",
"action": "test023-in.nq",
"result": "test023-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test024",
"type": "rdfn:Urdna2015EvalTest",
"name": "blank node - double circle of 3 (1-2-3)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test024-in.nq",
"result": "test024-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test025",
"type": "rdfn:Urdna2015EvalTest",
"name": "blank node - double circle of 3 (1-3-2)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test025-in.nq",
"result": "test025-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test026",
"type": "rdfn:Urdna2015EvalTest",
"name": "blank node - double circle of 3 (2-1-3)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test026-in.nq",
"result": "test026-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test027",
"type": "rdfn:Urdna2015EvalTest",
"name": "blank node - double circle of 3 (2-3-1)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test027-in.nq",
"result": "test027-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test028",
"type": "rdfn:Urdna2015EvalTest",
"name": "blank node - double circle of 3 (3-2-1)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test028-in.nq",
"result": "test028-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test029",
"type": "rdfn:Urdna2015EvalTest",
"name": "blank node - double circle of 3 (3-1-2)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test029-in.nq",
"result": "test029-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test030",
"type": "rdfn:Urdna2015EvalTest",
"name": "blank node - point at circle of 3",
"comment": null,
"approval": "rdft:Proposed",
"action": "test030-in.nq",
"result": "test030-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test031",
"type": "rdfn:Urdna2015EvalTest",
"name": "bnode (1)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test031-in.nq",
"result": "test031-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test032",
"type": "rdfn:Urdna2015EvalTest",
"name": "bnode (2)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test032-in.nq",
"result": "test032-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test033",
"type": "rdfn:Urdna2015EvalTest",
"name": "disjoint identical subgraphs (1)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test033-in.nq",
"result": "test033-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test034",
"type": "rdfn:Urdna2015EvalTest",
"name": "disjoint identical subgraphs (2)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test034-in.nq",
"result": "test034-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test035",
"type": "rdfn:Urdna2015EvalTest",
"name": "reordered w/strings (1)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test035-in.nq",
"result": "test035-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test036",
"type": "rdfn:Urdna2015EvalTest",
"name": "reordered w/strings (2)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test036-in.nq",
"result": "test036-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test037",
"type": "rdfn:Urdna2015EvalTest",
"name": "reordered w/strings (3)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test037-in.nq",
"result": "test037-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test038",
"type": "rdfn:Urdna2015EvalTest",
"name": "reordered 4 bnodes, reordered 2 properties (1)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test038-in.nq",
"result": "test038-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test039",
"type": "rdfn:Urdna2015EvalTest",
"name": "reordered 4 bnodes, reordered 2 properties (2)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test039-in.nq",
"result": "test039-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test040",
"type": "rdfn:Urdna2015EvalTest",
"name": "reordered 6 bnodes (1)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test040-in.nq",
"result": "test040-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test041",
"type": "rdfn:Urdna2015EvalTest",
"name": "reordered 6 bnodes (2)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test041-in.nq",
"result": "test041-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test042",
"type": "rdfn:Urdna2015EvalTest",
"name": "reordered 6 bnodes (3)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test042-in.nq",
"result": "test042-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test043",
"type": "rdfn:Urdna2015EvalTest",
"name": "literal with language",
"comment": null,
"approval": "rdft:Proposed",
"action": "test043-in.nq",
"result": "test043-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test044",
"type": "rdfn:Urdna2015EvalTest",
"name": "evil (1)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test044-in.nq",
"result": "test044-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test045",
"type": "rdfn:Urdna2015EvalTest",
"name": "evil (2)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test045-in.nq",
"result": "test045-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test046",
"type": "rdfn:Urdna2015EvalTest",
"name": "evil (3)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test046-in.nq",
"result": "test046-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test047",
"type": "rdfn:Urdna2015EvalTest",
"name": "deep diff (1)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test047-in.nq",
"result": "test047-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test048",
"type": "rdfn:Urdna2015EvalTest",
"name": "deep diff (2)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test048-in.nq",
"result": "test048-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test049",
"type": "rdfn:Urdna2015EvalTest",
"name": "remove null",
"comment": null,
"approval": "rdft:Proposed",
"action": "test049-in.nq",
"result": "test049-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test050",
"type": "rdfn:Urdna2015EvalTest",
"name": "nulls",
"comment": null,
"approval": "rdft:Proposed",
"action": "test050-in.nq",
"result": "test050-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test051",
"type": "rdfn:Urdna2015EvalTest",
"name": "merging subjects",
"comment": null,
"approval": "rdft:Proposed",
"action": "test051-in.nq",
"result": "test051-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test052",
"type": "rdfn:Urdna2015EvalTest",
"name": "alias keywords",
"comment": null,
"approval": "rdft:Proposed",
"action": "test052-in.nq",
"result": "test052-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test053",
"type": "rdfn:Urdna2015EvalTest",
"name": "@list",
"comment": null,
"approval": "rdft:Proposed",
"action": "test053-in.nq",
"result": "test053-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test054",
"type": "rdfn:Urdna2015EvalTest",
"name": "t-graph",
"comment": null,
"approval": "rdft:Proposed",
"action": "test054-in.nq",
"result": "test054-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test055",
"type": "rdfn:Urdna2015EvalTest",
"name": "simple reorder (1)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test055-in.nq",
"result": "test055-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test056",
"type": "rdfn:Urdna2015EvalTest",
"name": "simple reorder (2)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test056-in.nq",
"result": "test056-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test057",
"type": "rdfn:Urdna2015EvalTest",
"name": "unnamed graph",
"comment": null,
"approval": "rdft:Proposed",
"action": "test057-in.nq",
"result": "test057-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test058",
"type": "rdfn:Urdna2015EvalTest",
"name": "unnamed graph with blank node objects",
"comment": null,
"approval": "rdft:Proposed",
"action": "test058-in.nq",
"result": "test058-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test059",
"type": "rdfn:Urdna2015EvalTest",
"name": "n-quads parsing",
"comment": null,
"approval": "rdft:Proposed",
"action": "test059-in.nq",
"result": "test059-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test060",
"type": "rdfn:Urdna2015EvalTest",
"name": "n-quads escaping",
"comment": null,
"approval": "rdft:Proposed",
"action": "test060-in.nq",
"result": "test060-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test061",
"type": "rdfn:Urdna2015EvalTest",
"name": "same literal value with multiple languages",
"comment": null,
"approval": "rdft:Proposed",
"action": "test061-in.nq",
"result": "test061-urdna2015.nq"
},
{
"id": "manifest-urdna2015#test062",
"type": "rdfn:Urdna2015EvalTest",
"name": "same literal value with multiple datatypes",
"comment": null,
"approval": "rdft:Proposed",
"action": "test062-in.nq",
"result": "test062-urdna2015.nq"
}
]
}

View File

@@ -0,0 +1,467 @@
## RDF Dataset Normalization tests
## Distributed under both the W3C Test Suite License[1] and the W3C 3-
## clause BSD License[2]. To contribute to a W3C Test Suite, see the
## policies and contribution forms [3]
##
## 1. http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
## 2. http://www.w3.org/Consortium/Legal/2008/03-bsd-license
## 3. http://www.w3.org/2004/10/27-testcases
##
## Test types
## * rdfn:Urgna2012EvalTest - Normalization using URGNA2012
## * rdfn:Urdna2015EvalTest - Normalization using URDNA2015
@prefix : <manifest-urdna2015#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix mf: <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#> .
@prefix rdft: <http://www.w3.org/ns/rdftest#> .
@prefix rdfn: <http://json-ld.github.io/normalization/test-vocab#> .
<manifest-urdna2015> a mf:Manifest ;
rdfs:label "RDF Dataset Normalization (URDNA2015)";
rdfs:comment "Tests the 2015 version of RDF Dataset Normalization.";
mf:entries (
:test001 :test002 :test003 :test004 :test005 :test006 :test007 :test008 :test009 :test010
:test011 :test012 :test013 :test014 :test015 :test016 :test017 :test018 :test019 :test020
:test021 :test022 :test023 :test024 :test025 :test026 :test027 :test028 :test029 :test030
:test031 :test032 :test033 :test034 :test035 :test036 :test037 :test038 :test039 :test040
:test041 :test042 :test043 :test044 :test045 :test046 :test047 :test048 :test049 :test050
:test051 :test052 :test053 :test054 :test055 :test056 :test057 :test058 :test059 :test060
:test061 :test062
) .
:test001 a rdfn:Urdna2015EvalTest;
mf:name "simple id";
rdft:approval rdft:Proposed;
mf:action <test001-in.nq>;
mf:result <test001-urdna2015.nq>;
.
:test002 a rdfn:Urdna2015EvalTest;
mf:name "duplicate property iri values";
rdft:approval rdft:Proposed;
mf:action <test002-in.nq>;
mf:result <test002-urdna2015.nq>;
.
:test003 a rdfn:Urdna2015EvalTest;
mf:name "bnode";
rdft:approval rdft:Proposed;
mf:action <test003-in.nq>;
mf:result <test003-urdna2015.nq>;
.
:test004 a rdfn:Urdna2015EvalTest;
mf:name "bnode plus embed w/subject";
rdft:approval rdft:Proposed;
mf:action <test004-in.nq>;
mf:result <test004-urdna2015.nq>;
.
:test005 a rdfn:Urdna2015EvalTest;
mf:name "bnode embed";
rdft:approval rdft:Proposed;
mf:action <test005-in.nq>;
mf:result <test005-urdna2015.nq>;
.
:test006 a rdfn:Urdna2015EvalTest;
mf:name "multiple rdf types";
rdft:approval rdft:Proposed;
mf:action <test006-in.nq>;
mf:result <test006-urdna2015.nq>;
.
:test007 a rdfn:Urdna2015EvalTest;
mf:name "coerce CURIE value";
rdft:approval rdft:Proposed;
mf:action <test007-in.nq>;
mf:result <test007-urdna2015.nq>;
.
:test008 a rdfn:Urdna2015EvalTest;
mf:name "single subject complex";
rdft:approval rdft:Proposed;
mf:action <test008-in.nq>;
mf:result <test008-urdna2015.nq>;
.
:test009 a rdfn:Urdna2015EvalTest;
mf:name "multiple subjects - complex";
rdft:approval rdft:Proposed;
mf:action <test009-in.nq>;
mf:result <test009-urdna2015.nq>;
.
:test010 a rdfn:Urdna2015EvalTest;
mf:name "type";
rdft:approval rdft:Proposed;
mf:action <test010-in.nq>;
mf:result <test010-urdna2015.nq>;
.
:test011 a rdfn:Urdna2015EvalTest;
mf:name "type-coerced type";
rdft:approval rdft:Proposed;
mf:action <test011-in.nq>;
mf:result <test011-urdna2015.nq>;
.
:test012 a rdfn:Urdna2015EvalTest;
mf:name "type-coerced type, remove duplicate reference";
rdft:approval rdft:Proposed;
mf:action <test012-in.nq>;
mf:result <test012-urdna2015.nq>;
.
:test013 a rdfn:Urdna2015EvalTest;
mf:name "type-coerced type, cycle";
rdft:approval rdft:Proposed;
mf:action <test013-in.nq>;
mf:result <test013-urdna2015.nq>;
.
:test014 a rdfn:Urdna2015EvalTest;
mf:name "check types";
rdft:approval rdft:Proposed;
mf:action <test014-in.nq>;
mf:result <test014-urdna2015.nq>;
.
:test015 a rdfn:Urdna2015EvalTest;
mf:name "top level context";
rdft:approval rdft:Proposed;
mf:action <test015-in.nq>;
mf:result <test015-urdna2015.nq>;
.
:test016 a rdfn:Urdna2015EvalTest;
mf:name "blank node - dual link - embed";
rdft:approval rdft:Proposed;
mf:action <test016-in.nq>;
mf:result <test016-urdna2015.nq>;
.
:test017 a rdfn:Urdna2015EvalTest;
mf:name "blank node - dual link - non-embed";
rdft:approval rdft:Proposed;
mf:action <test017-in.nq>;
mf:result <test017-urdna2015.nq>;
.
:test018 a rdfn:Urdna2015EvalTest;
mf:name "blank node - self link";
rdft:approval rdft:Proposed;
mf:action <test018-in.nq>;
mf:result <test018-urdna2015.nq>;
.
:test019 a rdfn:Urdna2015EvalTest;
mf:name "blank node - disjoint self links";
rdft:approval rdft:Proposed;
mf:action <test019-in.nq>;
mf:result <test019-urdna2015.nq>;
.
:test020 a rdfn:Urdna2015EvalTest;
mf:name "blank node - diamond";
rdft:approval rdft:Proposed;
mf:action <test020-in.nq>;
mf:result <test020-urdna2015.nq>;
.
:test021 a rdfn:Urdna2015EvalTest;
mf:name "blank node - circle of 2";
rdft:approval rdft:Proposed;
mf:action <test021-in.nq>;
mf:result <test021-urdna2015.nq>;
.
:test022 a rdfn:Urdna2015EvalTest;
mf:name "blank node - double circle of 2";
rdft:approval rdft:Proposed;
mf:action <test022-in.nq>;
mf:result <test022-urdna2015.nq>;
.
:test023 a rdfn:Urdna2015EvalTest;
mf:name "blank node - circle of 3";
rdft:approval rdft:Proposed;
mf:action <test023-in.nq>;
mf:result <test023-urdna2015.nq>;
.
:test024 a rdfn:Urdna2015EvalTest;
mf:name "blank node - double circle of 3 (1-2-3)";
rdft:approval rdft:Proposed;
mf:action <test024-in.nq>;
mf:result <test024-urdna2015.nq>;
.
:test025 a rdfn:Urdna2015EvalTest;
mf:name "blank node - double circle of 3 (1-3-2)";
rdft:approval rdft:Proposed;
mf:action <test025-in.nq>;
mf:result <test025-urdna2015.nq>;
.
:test026 a rdfn:Urdna2015EvalTest;
mf:name "blank node - double circle of 3 (2-1-3)";
rdft:approval rdft:Proposed;
mf:action <test026-in.nq>;
mf:result <test026-urdna2015.nq>;
.
:test027 a rdfn:Urdna2015EvalTest;
mf:name "blank node - double circle of 3 (2-3-1)";
rdft:approval rdft:Proposed;
mf:action <test027-in.nq>;
mf:result <test027-urdna2015.nq>;
.
:test028 a rdfn:Urdna2015EvalTest;
mf:name "blank node - double circle of 3 (3-2-1)";
rdft:approval rdft:Proposed;
mf:action <test028-in.nq>;
mf:result <test028-urdna2015.nq>;
.
:test029 a rdfn:Urdna2015EvalTest;
mf:name "blank node - double circle of 3 (3-1-2)";
rdft:approval rdft:Proposed;
mf:action <test029-in.nq>;
mf:result <test029-urdna2015.nq>;
.
:test030 a rdfn:Urdna2015EvalTest;
mf:name "blank node - point at circle of 3";
rdft:approval rdft:Proposed;
mf:action <test030-in.nq>;
mf:result <test030-urdna2015.nq>;
.
:test031 a rdfn:Urdna2015EvalTest;
mf:name "bnode (1)";
rdft:approval rdft:Proposed;
mf:action <test031-in.nq>;
mf:result <test031-urdna2015.nq>;
.
:test032 a rdfn:Urdna2015EvalTest;
mf:name "bnode (2)";
rdft:approval rdft:Proposed;
mf:action <test032-in.nq>;
mf:result <test032-urdna2015.nq>;
.
:test033 a rdfn:Urdna2015EvalTest;
mf:name "disjoint identical subgraphs (1)";
rdft:approval rdft:Proposed;
mf:action <test033-in.nq>;
mf:result <test033-urdna2015.nq>;
.
:test034 a rdfn:Urdna2015EvalTest;
mf:name "disjoint identical subgraphs (2)";
rdft:approval rdft:Proposed;
mf:action <test034-in.nq>;
mf:result <test034-urdna2015.nq>;
.
:test035 a rdfn:Urdna2015EvalTest;
mf:name "reordered w/strings (1)";
rdft:approval rdft:Proposed;
mf:action <test035-in.nq>;
mf:result <test035-urdna2015.nq>;
.
:test036 a rdfn:Urdna2015EvalTest;
mf:name "reordered w/strings (2)";
rdft:approval rdft:Proposed;
mf:action <test036-in.nq>;
mf:result <test036-urdna2015.nq>;
.
:test037 a rdfn:Urdna2015EvalTest;
mf:name "reordered w/strings (3)";
rdft:approval rdft:Proposed;
mf:action <test037-in.nq>;
mf:result <test037-urdna2015.nq>;
.
:test038 a rdfn:Urdna2015EvalTest;
mf:name "reordered 4 bnodes, reordered 2 properties (1)";
rdft:approval rdft:Proposed;
mf:action <test038-in.nq>;
mf:result <test038-urdna2015.nq>;
.
:test039 a rdfn:Urdna2015EvalTest;
mf:name "reordered 4 bnodes, reordered 2 properties (2)";
rdft:approval rdft:Proposed;
mf:action <test039-in.nq>;
mf:result <test039-urdna2015.nq>;
.
:test040 a rdfn:Urdna2015EvalTest;
mf:name "reordered 6 bnodes (1)";
rdft:approval rdft:Proposed;
mf:action <test040-in.nq>;
mf:result <test040-urdna2015.nq>;
.
:test041 a rdfn:Urdna2015EvalTest;
mf:name "reordered 6 bnodes (2)";
rdft:approval rdft:Proposed;
mf:action <test041-in.nq>;
mf:result <test041-urdna2015.nq>;
.
:test042 a rdfn:Urdna2015EvalTest;
mf:name "reordered 6 bnodes (3)";
rdft:approval rdft:Proposed;
mf:action <test042-in.nq>;
mf:result <test042-urdna2015.nq>;
.
:test043 a rdfn:Urdna2015EvalTest;
mf:name "literal with language";
rdft:approval rdft:Proposed;
mf:action <test043-in.nq>;
mf:result <test043-urdna2015.nq>;
.
:test044 a rdfn:Urdna2015EvalTest;
mf:name "evil (1)";
rdft:approval rdft:Proposed;
mf:action <test044-in.nq>;
mf:result <test044-urdna2015.nq>;
.
:test045 a rdfn:Urdna2015EvalTest;
mf:name "evil (2)";
rdft:approval rdft:Proposed;
mf:action <test045-in.nq>;
mf:result <test045-urdna2015.nq>;
.
:test046 a rdfn:Urdna2015EvalTest;
mf:name "evil (3)";
rdft:approval rdft:Proposed;
mf:action <test046-in.nq>;
mf:result <test046-urdna2015.nq>;
.
:test047 a rdfn:Urdna2015EvalTest;
mf:name "deep diff (1)";
rdft:approval rdft:Proposed;
mf:action <test047-in.nq>;
mf:result <test047-urdna2015.nq>;
.
:test048 a rdfn:Urdna2015EvalTest;
mf:name "deep diff (2)";
rdft:approval rdft:Proposed;
mf:action <test048-in.nq>;
mf:result <test048-urdna2015.nq>;
.
:test049 a rdfn:Urdna2015EvalTest;
mf:name "remove null";
rdft:approval rdft:Proposed;
mf:action <test049-in.nq>;
mf:result <test049-urdna2015.nq>;
.
:test050 a rdfn:Urdna2015EvalTest;
mf:name "nulls";
rdft:approval rdft:Proposed;
mf:action <test050-in.nq>;
mf:result <test050-urdna2015.nq>;
.
:test051 a rdfn:Urdna2015EvalTest;
mf:name "merging subjects";
rdft:approval rdft:Proposed;
mf:action <test051-in.nq>;
mf:result <test051-urdna2015.nq>;
.
:test052 a rdfn:Urdna2015EvalTest;
mf:name "alias keywords";
rdft:approval rdft:Proposed;
mf:action <test052-in.nq>;
mf:result <test052-urdna2015.nq>;
.
:test053 a rdfn:Urdna2015EvalTest;
mf:name "@list";
rdft:approval rdft:Proposed;
mf:action <test053-in.nq>;
mf:result <test053-urdna2015.nq>;
.
:test054 a rdfn:Urdna2015EvalTest;
mf:name "t-graph";
rdft:approval rdft:Proposed;
mf:action <test054-in.nq>;
mf:result <test054-urdna2015.nq>;
.
:test055 a rdfn:Urdna2015EvalTest;
mf:name "simple reorder (1)";
rdft:approval rdft:Proposed;
mf:action <test055-in.nq>;
mf:result <test055-urdna2015.nq>;
.
:test056 a rdfn:Urdna2015EvalTest;
mf:name "simple reorder (2)";
rdft:approval rdft:Proposed;
mf:action <test056-in.nq>;
mf:result <test056-urdna2015.nq>;
.
:test057 a rdfn:Urdna2015EvalTest;
mf:name "unnamed graph";
rdft:approval rdft:Proposed;
mf:action <test057-in.nq>;
mf:result <test057-urdna2015.nq>;
.
:test058 a rdfn:Urdna2015EvalTest;
mf:name "unnamed graph with blank node objects";
rdft:approval rdft:Proposed;
mf:action <test058-in.nq>;
mf:result <test058-urdna2015.nq>;
.
:test059 a rdfn:Urdna2015EvalTest;
mf:name "n-quads parsing";
rdft:approval rdft:Proposed;
mf:action <test059-in.nq>;
mf:result <test059-urdna2015.nq>;
.
:test060 a rdfn:Urdna2015EvalTest;
mf:name "n-quads escaping";
rdft:approval rdft:Proposed;
mf:action <test060-in.nq>;
mf:result <test060-urdna2015.nq>;
.
:test061 a rdfn:Urdna2015EvalTest;
mf:name "same literal value with multiple languages";
rdft:approval rdft:Proposed;
mf:action <test061-in.nq>;
mf:result <test061-urdna2015.nq>;
.
:test062 a rdfn:Urdna2015EvalTest;
mf:name "same literal value with multiple datatypes";
rdft:approval rdft:Proposed;
mf:action <test062-in.nq>;
mf:result <test062-urdna2015.nq>;
.

View File

@@ -0,0 +1,569 @@
{
"@context": {
"xsd": "http://www.w3.org/2001/XMLSchema#",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"mf": "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#",
"mq": "http://www.w3.org/2001/sw/DataAccess/tests/test-query#",
"rdfn": "http://json-ld.github.io/normalization/test-vocab#",
"rdft": "http://www.w3.org/ns/rdftest#",
"id": "@id",
"type": "@type",
"action": {
"@id": "mf:action",
"@type": "@id"
},
"approval": {
"@id": "rdft:approval",
"@type": "@id"
},
"comment": "rdfs:comment",
"entries": {
"@id": "mf:entries",
"@type": "@id",
"@container": "@list"
},
"label": "rdfs:label",
"name": "mf:name",
"result": {
"@id": "mf:result",
"@type": "@id"
}
},
"id": "manifest-urgna2012",
"type": "mf:Manifest",
"label": "RDF Graph Normalization (URGNA2012)",
"comment": "Tests the 2012 version of RDF Graph Normalization.",
"entries": [
{
"id": "manifest-urgna2012#test001",
"type": "rdfn:Urgna2012EvalTest",
"name": "simple id",
"comment": null,
"approval": "rdft:Proposed",
"action": "test001-in.nq",
"result": "test001-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test002",
"type": "rdfn:Urgna2012EvalTest",
"name": "duplicate property iri values",
"comment": null,
"approval": "rdft:Proposed",
"action": "test002-in.nq",
"result": "test002-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test003",
"type": "rdfn:Urgna2012EvalTest",
"name": "bnode",
"comment": null,
"approval": "rdft:Proposed",
"action": "test003-in.nq",
"result": "test003-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test004",
"type": "rdfn:Urgna2012EvalTest",
"name": "bnode plus embed w/subject",
"comment": null,
"approval": "rdft:Proposed",
"action": "test004-in.nq",
"result": "test004-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test005",
"type": "rdfn:Urgna2012EvalTest",
"name": "bnode embed",
"comment": null,
"approval": "rdft:Proposed",
"action": "test005-in.nq",
"result": "test005-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test006",
"type": "rdfn:Urgna2012EvalTest",
"name": "multiple rdf types",
"comment": null,
"approval": "rdft:Proposed",
"action": "test006-in.nq",
"result": "test006-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test007",
"type": "rdfn:Urgna2012EvalTest",
"name": "coerce CURIE value",
"comment": null,
"approval": "rdft:Proposed",
"action": "test007-in.nq",
"result": "test007-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test008",
"type": "rdfn:Urgna2012EvalTest",
"name": "single subject complex",
"comment": null,
"approval": "rdft:Proposed",
"action": "test008-in.nq",
"result": "test008-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test009",
"type": "rdfn:Urgna2012EvalTest",
"name": "multiple subjects - complex",
"comment": null,
"approval": "rdft:Proposed",
"action": "test009-in.nq",
"result": "test009-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test010",
"type": "rdfn:Urgna2012EvalTest",
"name": "type",
"comment": null,
"approval": "rdft:Proposed",
"action": "test010-in.nq",
"result": "test010-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test011",
"type": "rdfn:Urgna2012EvalTest",
"name": "type-coerced type",
"comment": null,
"approval": "rdft:Proposed",
"action": "test011-in.nq",
"result": "test011-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test012",
"type": "rdfn:Urgna2012EvalTest",
"name": "type-coerced type, remove duplicate reference",
"comment": null,
"approval": "rdft:Proposed",
"action": "test012-in.nq",
"result": "test012-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test013",
"type": "rdfn:Urgna2012EvalTest",
"name": "type-coerced type, cycle",
"comment": null,
"approval": "rdft:Proposed",
"action": "test013-in.nq",
"result": "test013-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test014",
"type": "rdfn:Urgna2012EvalTest",
"name": "check types",
"comment": null,
"approval": "rdft:Proposed",
"action": "test014-in.nq",
"result": "test014-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test015",
"type": "rdfn:Urgna2012EvalTest",
"name": "top level context",
"comment": null,
"approval": "rdft:Proposed",
"action": "test015-in.nq",
"result": "test015-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test016",
"type": "rdfn:Urgna2012EvalTest",
"name": "blank node - dual link - embed",
"comment": null,
"approval": "rdft:Proposed",
"action": "test016-in.nq",
"result": "test016-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test017",
"type": "rdfn:Urgna2012EvalTest",
"name": "blank node - dual link - non-embed",
"comment": null,
"approval": "rdft:Proposed",
"action": "test017-in.nq",
"result": "test017-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test018",
"type": "rdfn:Urgna2012EvalTest",
"name": "blank node - self link",
"comment": null,
"approval": "rdft:Proposed",
"action": "test018-in.nq",
"result": "test018-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test019",
"type": "rdfn:Urgna2012EvalTest",
"name": "blank node - disjoint self links",
"comment": null,
"approval": "rdft:Proposed",
"action": "test019-in.nq",
"result": "test019-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test020",
"type": "rdfn:Urgna2012EvalTest",
"name": "blank node - diamond",
"comment": null,
"approval": "rdft:Proposed",
"action": "test020-in.nq",
"result": "test020-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test021",
"type": "rdfn:Urgna2012EvalTest",
"name": "blank node - circle of 2",
"comment": null,
"approval": "rdft:Proposed",
"action": "test021-in.nq",
"result": "test021-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test022",
"type": "rdfn:Urgna2012EvalTest",
"name": "blank node - double circle of 2",
"comment": null,
"approval": "rdft:Proposed",
"action": "test022-in.nq",
"result": "test022-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test023",
"type": "rdfn:Urgna2012EvalTest",
"name": "blank node - circle of 3",
"comment": null,
"approval": "rdft:Proposed",
"action": "test023-in.nq",
"result": "test023-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test024",
"type": "rdfn:Urgna2012EvalTest",
"name": "blank node - double circle of 3 (1-2-3)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test024-in.nq",
"result": "test024-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test025",
"type": "rdfn:Urgna2012EvalTest",
"name": "blank node - double circle of 3 (1-3-2)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test025-in.nq",
"result": "test025-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test026",
"type": "rdfn:Urgna2012EvalTest",
"name": "blank node - double circle of 3 (2-1-3)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test026-in.nq",
"result": "test026-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test027",
"type": "rdfn:Urgna2012EvalTest",
"name": "blank node - double circle of 3 (2-3-1)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test027-in.nq",
"result": "test027-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test028",
"type": "rdfn:Urgna2012EvalTest",
"name": "blank node - double circle of 3 (3-2-1)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test028-in.nq",
"result": "test028-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test029",
"type": "rdfn:Urgna2012EvalTest",
"name": "blank node - double circle of 3 (3-1-2)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test029-in.nq",
"result": "test029-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test030",
"type": "rdfn:Urgna2012EvalTest",
"name": "blank node - point at circle of 3",
"comment": null,
"approval": "rdft:Proposed",
"action": "test030-in.nq",
"result": "test030-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test031",
"type": "rdfn:Urgna2012EvalTest",
"name": "bnode (1)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test031-in.nq",
"result": "test031-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test032",
"type": "rdfn:Urgna2012EvalTest",
"name": "bnode (2)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test032-in.nq",
"result": "test032-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test033",
"type": "rdfn:Urgna2012EvalTest",
"name": "disjoint identical subgraphs (1)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test033-in.nq",
"result": "test033-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test034",
"type": "rdfn:Urgna2012EvalTest",
"name": "disjoint identical subgraphs (2)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test034-in.nq",
"result": "test034-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test035",
"type": "rdfn:Urgna2012EvalTest",
"name": "reordered w/strings (1)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test035-in.nq",
"result": "test035-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test036",
"type": "rdfn:Urgna2012EvalTest",
"name": "reordered w/strings (2)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test036-in.nq",
"result": "test036-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test037",
"type": "rdfn:Urgna2012EvalTest",
"name": "reordered w/strings (3)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test037-in.nq",
"result": "test037-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test038",
"type": "rdfn:Urgna2012EvalTest",
"name": "reordered 4 bnodes, reordered 2 properties (1)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test038-in.nq",
"result": "test038-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test039",
"type": "rdfn:Urgna2012EvalTest",
"name": "reordered 4 bnodes, reordered 2 properties (2)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test039-in.nq",
"result": "test039-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test040",
"type": "rdfn:Urgna2012EvalTest",
"name": "reordered 6 bnodes (1)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test040-in.nq",
"result": "test040-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test041",
"type": "rdfn:Urgna2012EvalTest",
"name": "reordered 6 bnodes (2)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test041-in.nq",
"result": "test041-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test042",
"type": "rdfn:Urgna2012EvalTest",
"name": "reordered 6 bnodes (3)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test042-in.nq",
"result": "test042-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test043",
"type": "rdfn:Urgna2012EvalTest",
"name": "literal with language",
"comment": null,
"approval": "rdft:Proposed",
"action": "test043-in.nq",
"result": "test043-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test044",
"type": "rdfn:Urgna2012EvalTest",
"name": "evil (1)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test044-in.nq",
"result": "test044-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test045",
"type": "rdfn:Urgna2012EvalTest",
"name": "evil (2)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test045-in.nq",
"result": "test045-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test046",
"type": "rdfn:Urgna2012EvalTest",
"name": "evil (3)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test046-in.nq",
"result": "test046-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test047",
"type": "rdfn:Urgna2012EvalTest",
"name": "deep diff (1)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test047-in.nq",
"result": "test047-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test048",
"type": "rdfn:Urgna2012EvalTest",
"name": "deep diff (2)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test048-in.nq",
"result": "test048-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test049",
"type": "rdfn:Urgna2012EvalTest",
"name": "remove null",
"comment": null,
"approval": "rdft:Proposed",
"action": "test049-in.nq",
"result": "test049-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test050",
"type": "rdfn:Urgna2012EvalTest",
"name": "nulls",
"comment": null,
"approval": "rdft:Proposed",
"action": "test050-in.nq",
"result": "test050-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test051",
"type": "rdfn:Urgna2012EvalTest",
"name": "merging subjects",
"comment": null,
"approval": "rdft:Proposed",
"action": "test051-in.nq",
"result": "test051-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test052",
"type": "rdfn:Urgna2012EvalTest",
"name": "alias keywords",
"comment": null,
"approval": "rdft:Proposed",
"action": "test052-in.nq",
"result": "test052-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test053",
"type": "rdfn:Urgna2012EvalTest",
"name": "@list",
"comment": null,
"approval": "rdft:Proposed",
"action": "test053-in.nq",
"result": "test053-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test054",
"type": "rdfn:Urgna2012EvalTest",
"name": "t-graph",
"comment": null,
"approval": "rdft:Proposed",
"action": "test054-in.nq",
"result": "test054-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test055",
"type": "rdfn:Urgna2012EvalTest",
"name": "simple reorder (1)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test055-in.nq",
"result": "test055-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test056",
"type": "rdfn:Urgna2012EvalTest",
"name": "simple reorder (2)",
"comment": null,
"approval": "rdft:Proposed",
"action": "test056-in.nq",
"result": "test056-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test060",
"type": "rdfn:Urgna2012EvalTest",
"name": "n-quads escaping",
"comment": null,
"approval": "rdft:Proposed",
"action": "test060-in.nq",
"result": "test060-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test061",
"type": "rdfn:Urgna2012EvalTest",
"name": "same literal value with multiple languages",
"comment": null,
"approval": "rdft:Proposed",
"action": "test061-in.nq",
"result": "test061-urgna2012.nq"
},
{
"id": "manifest-urgna2012#test062",
"type": "rdfn:Urgna2012EvalTest",
"name": "same literal value with multiple datatypes",
"comment": null,
"approval": "rdft:Proposed",
"action": "test062-in.nq",
"result": "test062-urgna2012.nq"
}
]
}

View File

@@ -0,0 +1,445 @@
## RDF Dataset Normalization tests
## Distributed under both the W3C Test Suite License[1] and the W3C 3-
## clause BSD License[2]. To contribute to a W3C Test Suite, see the
## policies and contribution forms [3]
##
## 1. http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
## 2. http://www.w3.org/Consortium/Legal/2008/03-bsd-license
## 3. http://www.w3.org/2004/10/27-testcases
##
## Test types
## * rdfn:Urgna2012EvalTest - Normalization using URGNA2012
## * rdfn:Urdna2015EvalTest - Normalization using URDNA2015
@prefix : <manifest-urgna2012#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix mf: <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#> .
@prefix rdft: <http://www.w3.org/ns/rdftest#> .
@prefix rdfn: <http://json-ld.github.io/normalization/test-vocab#> .
<manifest-urgna2012> a mf:Manifest ;
rdfs:label "RDF Graph Normalization (URGNA2012)";
rdfs:comment "Tests the 2012 version of RDF Graph Normalization.";
mf:entries (
:test001 :test002 :test003 :test004 :test005 :test006 :test007 :test008 :test009 :test010
:test011 :test012 :test013 :test014 :test015 :test016 :test017 :test018 :test019 :test020
:test021 :test022 :test023 :test024 :test025 :test026 :test027 :test028 :test029 :test030
:test031 :test032 :test033 :test034 :test035 :test036 :test037 :test038 :test039 :test040
:test041 :test042 :test043 :test044 :test045 :test046 :test047 :test048 :test049 :test050
:test051 :test052 :test053 :test054 :test055 :test056 :test060 :test061 :test062
) .
:test001 a rdfn:Urgna2012EvalTest;
mf:name "simple id";
rdft:approval rdft:Proposed;
mf:action <test001-in.nq>;
mf:result <test001-urgna2012.nq>;
.
:test002 a rdfn:Urgna2012EvalTest;
mf:name "duplicate property iri values";
rdft:approval rdft:Proposed;
mf:action <test002-in.nq>;
mf:result <test002-urgna2012.nq>;
.
:test003 a rdfn:Urgna2012EvalTest;
mf:name "bnode";
rdft:approval rdft:Proposed;
mf:action <test003-in.nq>;
mf:result <test003-urgna2012.nq>;
.
:test004 a rdfn:Urgna2012EvalTest;
mf:name "bnode plus embed w/subject";
rdft:approval rdft:Proposed;
mf:action <test004-in.nq>;
mf:result <test004-urgna2012.nq>;
.
:test005 a rdfn:Urgna2012EvalTest;
mf:name "bnode embed";
rdft:approval rdft:Proposed;
mf:action <test005-in.nq>;
mf:result <test005-urgna2012.nq>;
.
:test006 a rdfn:Urgna2012EvalTest;
mf:name "multiple rdf types";
rdft:approval rdft:Proposed;
mf:action <test006-in.nq>;
mf:result <test006-urgna2012.nq>;
.
:test007 a rdfn:Urgna2012EvalTest;
mf:name "coerce CURIE value";
rdft:approval rdft:Proposed;
mf:action <test007-in.nq>;
mf:result <test007-urgna2012.nq>;
.
:test008 a rdfn:Urgna2012EvalTest;
mf:name "single subject complex";
rdft:approval rdft:Proposed;
mf:action <test008-in.nq>;
mf:result <test008-urgna2012.nq>;
.
:test009 a rdfn:Urgna2012EvalTest;
mf:name "multiple subjects - complex";
rdft:approval rdft:Proposed;
mf:action <test009-in.nq>;
mf:result <test009-urgna2012.nq>;
.
:test010 a rdfn:Urgna2012EvalTest;
mf:name "type";
rdft:approval rdft:Proposed;
mf:action <test010-in.nq>;
mf:result <test010-urgna2012.nq>;
.
:test011 a rdfn:Urgna2012EvalTest;
mf:name "type-coerced type";
rdft:approval rdft:Proposed;
mf:action <test011-in.nq>;
mf:result <test011-urgna2012.nq>;
.
:test012 a rdfn:Urgna2012EvalTest;
mf:name "type-coerced type, remove duplicate reference";
rdft:approval rdft:Proposed;
mf:action <test012-in.nq>;
mf:result <test012-urgna2012.nq>;
.
:test013 a rdfn:Urgna2012EvalTest;
mf:name "type-coerced type, cycle";
rdft:approval rdft:Proposed;
mf:action <test013-in.nq>;
mf:result <test013-urgna2012.nq>;
.
:test014 a rdfn:Urgna2012EvalTest;
mf:name "check types";
rdft:approval rdft:Proposed;
mf:action <test014-in.nq>;
mf:result <test014-urgna2012.nq>;
.
:test015 a rdfn:Urgna2012EvalTest;
mf:name "top level context";
rdft:approval rdft:Proposed;
mf:action <test015-in.nq>;
mf:result <test015-urgna2012.nq>;
.
:test016 a rdfn:Urgna2012EvalTest;
mf:name "blank node - dual link - embed";
rdft:approval rdft:Proposed;
mf:action <test016-in.nq>;
mf:result <test016-urgna2012.nq>;
.
:test017 a rdfn:Urgna2012EvalTest;
mf:name "blank node - dual link - non-embed";
rdft:approval rdft:Proposed;
mf:action <test017-in.nq>;
mf:result <test017-urgna2012.nq>;
.
:test018 a rdfn:Urgna2012EvalTest;
mf:name "blank node - self link";
rdft:approval rdft:Proposed;
mf:action <test018-in.nq>;
mf:result <test018-urgna2012.nq>;
.
:test019 a rdfn:Urgna2012EvalTest;
mf:name "blank node - disjoint self links";
rdft:approval rdft:Proposed;
mf:action <test019-in.nq>;
mf:result <test019-urgna2012.nq>;
.
:test020 a rdfn:Urgna2012EvalTest;
mf:name "blank node - diamond";
rdft:approval rdft:Proposed;
mf:action <test020-in.nq>;
mf:result <test020-urgna2012.nq>;
.
:test021 a rdfn:Urgna2012EvalTest;
mf:name "blank node - circle of 2";
rdft:approval rdft:Proposed;
mf:action <test021-in.nq>;
mf:result <test021-urgna2012.nq>;
.
:test022 a rdfn:Urgna2012EvalTest;
mf:name "blank node - double circle of 2";
rdft:approval rdft:Proposed;
mf:action <test022-in.nq>;
mf:result <test022-urgna2012.nq>;
.
:test023 a rdfn:Urgna2012EvalTest;
mf:name "blank node - circle of 3";
rdft:approval rdft:Proposed;
mf:action <test023-in.nq>;
mf:result <test023-urgna2012.nq>;
.
:test024 a rdfn:Urgna2012EvalTest;
mf:name "blank node - double circle of 3 (1-2-3)";
rdft:approval rdft:Proposed;
mf:action <test024-in.nq>;
mf:result <test024-urgna2012.nq>;
.
:test025 a rdfn:Urgna2012EvalTest;
mf:name "blank node - double circle of 3 (1-3-2)";
rdft:approval rdft:Proposed;
mf:action <test025-in.nq>;
mf:result <test025-urgna2012.nq>;
.
:test026 a rdfn:Urgna2012EvalTest;
mf:name "blank node - double circle of 3 (2-1-3)";
rdft:approval rdft:Proposed;
mf:action <test026-in.nq>;
mf:result <test026-urgna2012.nq>;
.
:test027 a rdfn:Urgna2012EvalTest;
mf:name "blank node - double circle of 3 (2-3-1)";
rdft:approval rdft:Proposed;
mf:action <test027-in.nq>;
mf:result <test027-urgna2012.nq>;
.
:test028 a rdfn:Urgna2012EvalTest;
mf:name "blank node - double circle of 3 (3-2-1)";
rdft:approval rdft:Proposed;
mf:action <test028-in.nq>;
mf:result <test028-urgna2012.nq>;
.
:test029 a rdfn:Urgna2012EvalTest;
mf:name "blank node - double circle of 3 (3-1-2)";
rdft:approval rdft:Proposed;
mf:action <test029-in.nq>;
mf:result <test029-urgna2012.nq>;
.
:test030 a rdfn:Urgna2012EvalTest;
mf:name "blank node - point at circle of 3";
rdft:approval rdft:Proposed;
mf:action <test030-in.nq>;
mf:result <test030-urgna2012.nq>;
.
:test031 a rdfn:Urgna2012EvalTest;
mf:name "bnode (1)";
rdft:approval rdft:Proposed;
mf:action <test031-in.nq>;
mf:result <test031-urgna2012.nq>;
.
:test032 a rdfn:Urgna2012EvalTest;
mf:name "bnode (2)";
rdft:approval rdft:Proposed;
mf:action <test032-in.nq>;
mf:result <test032-urgna2012.nq>;
.
:test033 a rdfn:Urgna2012EvalTest;
mf:name "disjoint identical subgraphs (1)";
rdft:approval rdft:Proposed;
mf:action <test033-in.nq>;
mf:result <test033-urgna2012.nq>;
.
:test034 a rdfn:Urgna2012EvalTest;
mf:name "disjoint identical subgraphs (2)";
rdft:approval rdft:Proposed;
mf:action <test034-in.nq>;
mf:result <test034-urgna2012.nq>;
.
:test035 a rdfn:Urgna2012EvalTest;
mf:name "reordered w/strings (1)";
rdft:approval rdft:Proposed;
mf:action <test035-in.nq>;
mf:result <test035-urgna2012.nq>;
.
:test036 a rdfn:Urgna2012EvalTest;
mf:name "reordered w/strings (2)";
rdft:approval rdft:Proposed;
mf:action <test036-in.nq>;
mf:result <test036-urgna2012.nq>;
.
:test037 a rdfn:Urgna2012EvalTest;
mf:name "reordered w/strings (3)";
rdft:approval rdft:Proposed;
mf:action <test037-in.nq>;
mf:result <test037-urgna2012.nq>;
.
:test038 a rdfn:Urgna2012EvalTest;
mf:name "reordered 4 bnodes, reordered 2 properties (1)";
rdft:approval rdft:Proposed;
mf:action <test038-in.nq>;
mf:result <test038-urgna2012.nq>;
.
:test039 a rdfn:Urgna2012EvalTest;
mf:name "reordered 4 bnodes, reordered 2 properties (2)";
rdft:approval rdft:Proposed;
mf:action <test039-in.nq>;
mf:result <test039-urgna2012.nq>;
.
:test040 a rdfn:Urgna2012EvalTest;
mf:name "reordered 6 bnodes (1)";
rdft:approval rdft:Proposed;
mf:action <test040-in.nq>;
mf:result <test040-urgna2012.nq>;
.
:test041 a rdfn:Urgna2012EvalTest;
mf:name "reordered 6 bnodes (2)";
rdft:approval rdft:Proposed;
mf:action <test041-in.nq>;
mf:result <test041-urgna2012.nq>;
.
:test042 a rdfn:Urgna2012EvalTest;
mf:name "reordered 6 bnodes (3)";
rdft:approval rdft:Proposed;
mf:action <test042-in.nq>;
mf:result <test042-urgna2012.nq>;
.
:test043 a rdfn:Urgna2012EvalTest;
mf:name "literal with language";
rdft:approval rdft:Proposed;
mf:action <test043-in.nq>;
mf:result <test043-urgna2012.nq>;
.
:test044 a rdfn:Urgna2012EvalTest;
mf:name "evil (1)";
rdft:approval rdft:Proposed;
mf:action <test044-in.nq>;
mf:result <test044-urgna2012.nq>;
.
:test045 a rdfn:Urgna2012EvalTest;
mf:name "evil (2)";
rdft:approval rdft:Proposed;
mf:action <test045-in.nq>;
mf:result <test045-urgna2012.nq>;
.
:test046 a rdfn:Urgna2012EvalTest;
mf:name "evil (3)";
rdft:approval rdft:Proposed;
mf:action <test046-in.nq>;
mf:result <test046-urgna2012.nq>;
.
:test047 a rdfn:Urgna2012EvalTest;
mf:name "deep diff (1)";
rdft:approval rdft:Proposed;
mf:action <test047-in.nq>;
mf:result <test047-urgna2012.nq>;
.
:test048 a rdfn:Urgna2012EvalTest;
mf:name "deep diff (2)";
rdft:approval rdft:Proposed;
mf:action <test048-in.nq>;
mf:result <test048-urgna2012.nq>;
.
:test049 a rdfn:Urgna2012EvalTest;
mf:name "remove null";
rdft:approval rdft:Proposed;
mf:action <test049-in.nq>;
mf:result <test049-urgna2012.nq>;
.
:test050 a rdfn:Urgna2012EvalTest;
mf:name "nulls";
rdft:approval rdft:Proposed;
mf:action <test050-in.nq>;
mf:result <test050-urgna2012.nq>;
.
:test051 a rdfn:Urgna2012EvalTest;
mf:name "merging subjects";
rdft:approval rdft:Proposed;
mf:action <test051-in.nq>;
mf:result <test051-urgna2012.nq>;
.
:test052 a rdfn:Urgna2012EvalTest;
mf:name "alias keywords";
rdft:approval rdft:Proposed;
mf:action <test052-in.nq>;
mf:result <test052-urgna2012.nq>;
.
:test053 a rdfn:Urgna2012EvalTest;
mf:name "@list";
rdft:approval rdft:Proposed;
mf:action <test053-in.nq>;
mf:result <test053-urgna2012.nq>;
.
:test054 a rdfn:Urgna2012EvalTest;
mf:name "t-graph";
rdft:approval rdft:Proposed;
mf:action <test054-in.nq>;
mf:result <test054-urgna2012.nq>;
.
:test055 a rdfn:Urgna2012EvalTest;
mf:name "simple reorder (1)";
rdft:approval rdft:Proposed;
mf:action <test055-in.nq>;
mf:result <test055-urgna2012.nq>;
.
:test056 a rdfn:Urgna2012EvalTest;
mf:name "simple reorder (2)";
rdft:approval rdft:Proposed;
mf:action <test056-in.nq>;
mf:result <test056-urgna2012.nq>;
.
:test060 a rdfn:Urgna2012EvalTest;
mf:name "n-quads escaping";
rdft:approval rdft:Proposed;
mf:action <test060-in.nq>;
mf:result <test060-urgna2012.nq>;
.
:test061 a rdfn:Urgna2012EvalTest;
mf:name "same literal value with multiple languages";
rdft:approval rdft:Proposed;
mf:action <test061-in.nq>;
mf:result <test061-urgna2012.nq>;
.
:test062 a rdfn:Urgna2012EvalTest;
mf:name "same literal value with multiple datatypes";
rdft:approval rdft:Proposed;
mf:action <test062-in.nq>;
mf:result <test062-urgna2012.nq>;
.

63
graph/formats/rdf/testdata/manifest.csv vendored Normal file
View File

@@ -0,0 +1,63 @@
test,name,comment,approval,urgna2012,urdna2015
test001,simple id,,,TRUE,TRUE
test002,duplicate property iri values,,,TRUE,TRUE
test003,bnode,,,TRUE,TRUE
test004,bnode plus embed w/subject,,,TRUE,TRUE
test005,bnode embed,,,TRUE,TRUE
test006,multiple rdf types,,,TRUE,TRUE
test007,coerce CURIE value,,,TRUE,TRUE
test008,single subject complex,,,TRUE,TRUE
test009,multiple subjects - complex,,,TRUE,TRUE
test010,type,,,TRUE,TRUE
test011,type-coerced type,,,TRUE,TRUE
test012,"type-coerced type, remove duplicate reference",,,TRUE,TRUE
test013,"type-coerced type, cycle",,,TRUE,TRUE
test014,check types,,,TRUE,TRUE
test015,top level context,,,TRUE,TRUE
test016,blank node - dual link - embed,,,TRUE,TRUE
test017,blank node - dual link - non-embed,,,TRUE,TRUE
test018,blank node - self link,,,TRUE,TRUE
test019,blank node - disjoint self links,,,TRUE,TRUE
test020,blank node - diamond,,,TRUE,TRUE
test021,blank node - circle of 2,,,TRUE,TRUE
test022,blank node - double circle of 2,,,TRUE,TRUE
test023,blank node - circle of 3,,,TRUE,TRUE
test024,blank node - double circle of 3 (1-2-3),,,TRUE,TRUE
test025,blank node - double circle of 3 (1-3-2),,,TRUE,TRUE
test026,blank node - double circle of 3 (2-1-3),,,TRUE,TRUE
test027,blank node - double circle of 3 (2-3-1),,,TRUE,TRUE
test028,blank node - double circle of 3 (3-2-1),,,TRUE,TRUE
test029,blank node - double circle of 3 (3-1-2),,,TRUE,TRUE
test030,blank node - point at circle of 3,,,TRUE,TRUE
test031,bnode (1),,,TRUE,TRUE
test032,bnode (2),,,TRUE,TRUE
test033,disjoint identical subgraphs (1),,,TRUE,TRUE
test034,disjoint identical subgraphs (2),,,TRUE,TRUE
test035,reordered w/strings (1),,,TRUE,TRUE
test036,reordered w/strings (2),,,TRUE,TRUE
test037,reordered w/strings (3),,,TRUE,TRUE
test038,"reordered 4 bnodes, reordered 2 properties (1)",,,TRUE,TRUE
test039,"reordered 4 bnodes, reordered 2 properties (2)",,,TRUE,TRUE
test040,reordered 6 bnodes (1),,,TRUE,TRUE
test041,reordered 6 bnodes (2),,,TRUE,TRUE
test042,reordered 6 bnodes (3),,,TRUE,TRUE
test043,literal with language,,,TRUE,TRUE
test044,evil (1),,,TRUE,TRUE
test045,evil (2),,,TRUE,TRUE
test046,evil (3),,,TRUE,TRUE
test047,deep diff (1),,,TRUE,TRUE
test048,deep diff (2),,,TRUE,TRUE
test049,remove null,,,TRUE,TRUE
test050,nulls,,,TRUE,TRUE
test051,merging subjects,,,TRUE,TRUE
test052,alias keywords,,,TRUE,TRUE
test053,@list,,,TRUE,TRUE
test054,t-graph,,,TRUE,TRUE
test055,simple reorder (1),,,TRUE,TRUE
test056,simple reorder (2),,,TRUE,TRUE
test057,unnamed graph,,,FALSE,TRUE
test058,unnamed graph with blank node objects,,,FALSE,TRUE
test059,n-quads parsing,,,FALSE,TRUE
test060,n-quads escaping,,,TRUE,TRUE
test061,same literal value with multiple languages,,,TRUE,TRUE
test062,same literal value with multiple datatypes,,,TRUE,TRUE
1 test name comment approval urgna2012 urdna2015
2 test001 simple id TRUE TRUE
3 test002 duplicate property iri values TRUE TRUE
4 test003 bnode TRUE TRUE
5 test004 bnode plus embed w/subject TRUE TRUE
6 test005 bnode embed TRUE TRUE
7 test006 multiple rdf types TRUE TRUE
8 test007 coerce CURIE value TRUE TRUE
9 test008 single subject complex TRUE TRUE
10 test009 multiple subjects - complex TRUE TRUE
11 test010 type TRUE TRUE
12 test011 type-coerced type TRUE TRUE
13 test012 type-coerced type, remove duplicate reference TRUE TRUE
14 test013 type-coerced type, cycle TRUE TRUE
15 test014 check types TRUE TRUE
16 test015 top level context TRUE TRUE
17 test016 blank node - dual link - embed TRUE TRUE
18 test017 blank node - dual link - non-embed TRUE TRUE
19 test018 blank node - self link TRUE TRUE
20 test019 blank node - disjoint self links TRUE TRUE
21 test020 blank node - diamond TRUE TRUE
22 test021 blank node - circle of 2 TRUE TRUE
23 test022 blank node - double circle of 2 TRUE TRUE
24 test023 blank node - circle of 3 TRUE TRUE
25 test024 blank node - double circle of 3 (1-2-3) TRUE TRUE
26 test025 blank node - double circle of 3 (1-3-2) TRUE TRUE
27 test026 blank node - double circle of 3 (2-1-3) TRUE TRUE
28 test027 blank node - double circle of 3 (2-3-1) TRUE TRUE
29 test028 blank node - double circle of 3 (3-2-1) TRUE TRUE
30 test029 blank node - double circle of 3 (3-1-2) TRUE TRUE
31 test030 blank node - point at circle of 3 TRUE TRUE
32 test031 bnode (1) TRUE TRUE
33 test032 bnode (2) TRUE TRUE
34 test033 disjoint identical subgraphs (1) TRUE TRUE
35 test034 disjoint identical subgraphs (2) TRUE TRUE
36 test035 reordered w/strings (1) TRUE TRUE
37 test036 reordered w/strings (2) TRUE TRUE
38 test037 reordered w/strings (3) TRUE TRUE
39 test038 reordered 4 bnodes, reordered 2 properties (1) TRUE TRUE
40 test039 reordered 4 bnodes, reordered 2 properties (2) TRUE TRUE
41 test040 reordered 6 bnodes (1) TRUE TRUE
42 test041 reordered 6 bnodes (2) TRUE TRUE
43 test042 reordered 6 bnodes (3) TRUE TRUE
44 test043 literal with language TRUE TRUE
45 test044 evil (1) TRUE TRUE
46 test045 evil (2) TRUE TRUE
47 test046 evil (3) TRUE TRUE
48 test047 deep diff (1) TRUE TRUE
49 test048 deep diff (2) TRUE TRUE
50 test049 remove null TRUE TRUE
51 test050 nulls TRUE TRUE
52 test051 merging subjects TRUE TRUE
53 test052 alias keywords TRUE TRUE
54 test053 @list TRUE TRUE
55 test054 t-graph TRUE TRUE
56 test055 simple reorder (1) TRUE TRUE
57 test056 simple reorder (2) TRUE TRUE
58 test057 unnamed graph FALSE TRUE
59 test058 unnamed graph with blank node objects FALSE TRUE
60 test059 n-quads parsing FALSE TRUE
61 test060 n-quads escaping TRUE TRUE
62 test061 same literal value with multiple languages TRUE TRUE
63 test062 same literal value with multiple datatypes TRUE TRUE

View File

@@ -0,0 +1,17 @@
{
"@context": {
"xsd": "http://www.w3.org/2001/XMLSchema#",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"mf": "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#",
"id": "@id",
"type": "@type",
"comment": "rdfs:comment",
"include": {"@id": "mf:include", "@type": "@id", "@container": "@list"},
"label": "rdfs:label"
},
"id": "",
"type": "mf:Manifest",
"label": "RDF Dataset Normalization Test Cases",
"comment": "Includes manifests for different application profiles.",
"include": ["manifest-urgna2012", "manifest-urdna2015"]
}

22
graph/formats/rdf/testdata/manifest.ttl vendored Normal file
View File

@@ -0,0 +1,22 @@
## RDF Dataset Normalization tests
## Distributed under both the W3C Test Suite License[1] and the W3C 3-
## clause BSD License[2]. To contribute to a W3C Test Suite, see the
## policies and contribution forms [3]
##
## 1. http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
## 2. http://www.w3.org/Consortium/Legal/2008/03-bsd-license
## 3. http://www.w3.org/2004/10/27-testcases
##
## Test types
## * rdfn:Urgna2012EvalTest - Normalization using URGNA2012
## * rdfn:Urdna2015EvalTest - Normalization using URDNA2015
@prefix : <#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix mf: <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#> .
<> a mf:Manifest ;
rdfs:label "RDF Dataset Normalization Test Cases" ;
rdfs:comment "Includes manifests for different application profiles."
mf:include (<manifest-urgna2012> <manifest-urdna2015>).

233
graph/formats/rdf/testdata/mk_manifest.rb vendored Executable file
View File

@@ -0,0 +1,233 @@
#! /usr/bin/env ruby
# Parse test manifest to create driver and area-specific test manifests
require 'getoptlong'
require 'csv'
require 'json'
require 'haml'
require 'fileutils'
class Manifest
JSON_STATE = JSON::State.new(
:indent => " ",
:space => " ",
:space_before => "",
:object_nl => "\n",
:array_nl => "\n"
)
TITLE = {
urgna2012: "RDF Graph Normalization (URGNA2012)",
urdna2015: "RDF Dataset Normalization (URDNA2015)",
}
DESCRIPTION = {
urgna2012: "Tests the 2012 version of RDF Graph Normalization.",
urdna2015: "Tests the 2015 version of RDF Dataset Normalization."
}
Test = Struct.new(:id, :name, :comment, :approval, :action, :urgna2012, :urdna2015)
attr_accessor :tests
def initialize
csv = CSV.new(File.open(File.expand_path("../manifest.csv", __FILE__)))
columns = []
csv.shift.each_with_index {|c, i| columns[i] = c.to_sym if c}
@tests = csv.map do |line|
entry = {}
# Create entry as object indexed by symbolized column name
line.each_with_index {|v, i| entry[columns[i]] = v ? v.gsub("\r", "\n").gsub("\\", "\\\\") : nil}
urgna2012 = "#{entry[:test]}-urgna2012.nq" if entry[:urgna2012] == "TRUE"
urdna2015 = "#{entry[:test]}-urdna2015.nq" if entry[:urdna2015] == "TRUE"
Test.new(entry[:test], entry[:name], entry[:comment], entry[:approval],
"#{entry[:test]}-in.nq", urgna2012, urdna2015)
end
end
# Create files referenced in the manifest
def create_files
tests.each do |test|
files = [test.action, test.urgna2012, test.urdna2015].compact
files.compact.select {|f| !File.exist?(f)}.each do |f|
File.open(f, "w") {|io| io.puts( f.end_with?('.json') ? "{}" : "")}
end
end
end
def test_class(test, variant)
case variant.to_sym
when :urgna2012 then "rdfn:Urgna2012EvalTest"
when :urdna2015 then "rdfn:Urdna2015EvalTest"
end
end
def to_jsonld(variant)
context = ::JSON.parse %({
"xsd": "http://www.w3.org/2001/XMLSchema#",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"mf": "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#",
"mq": "http://www.w3.org/2001/sw/DataAccess/tests/test-query#",
"rdfn": "http://json-ld.github.io/normalization/test-vocab#",
"rdft": "http://www.w3.org/ns/rdftest#",
"id": "@id",
"type": "@type",
"action": {"@id": "mf:action", "@type": "@id"},
"approval": {"@id": "rdft:approval", "@type": "@id"},
"comment": "rdfs:comment",
"entries": {"@id": "mf:entries", "@type": "@id", "@container": "@list"},
"label": "rdfs:label",
"name": "mf:name",
"result": {"@id": "mf:result", "@type": "@id"}
})
manifest = {
"@context" => context,
"id" => "manifest-#{variant}",
"type" => "mf:Manifest",
"label" => TITLE[variant],
"comment" => DESCRIPTION[variant],
"entries" => []
}
tests.each do |test|
next unless test.send(variant)
manifest["entries"] << {
"id" => "manifest-#{variant}##{test.id}",
"type" => test_class(test, variant),
"name" => test.name,
"comment" => test.comment,
"approval" => (test.approval ? "rdft:#{test.approval}" : "rdft:Proposed"),
"action" => test.action,
"result" => test.send(variant)
}
end
manifest.to_json(JSON_STATE)
end
def to_html
# Create vocab.html using vocab_template.haml and compacted vocabulary
template = File.read("template.haml")
manifests = TITLE.keys.inject({}) do |memo, v|
memo["manifest-#{v}"] = ::JSON.load(File.read("manifest-#{v}.jsonld"))
memo
end
Haml::Engine.new(template, :format => :html5).render(self,
man: ::JSON.load(File.read("manifest.jsonld")),
manifests: manifests
)
end
def to_ttl(variant)
output = []
output << %(## RDF Dataset Normalization tests
## Distributed under both the W3C Test Suite License[1] and the W3C 3-
## clause BSD License[2]. To contribute to a W3C Test Suite, see the
## policies and contribution forms [3]
##
## 1. http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
## 2. http://www.w3.org/Consortium/Legal/2008/03-bsd-license
## 3. http://www.w3.org/2004/10/27-testcases
##
## Test types
## * rdfn:Urgna2012EvalTest - Normalization using URGNA2012
## * rdfn:Urdna2015EvalTest - Normalization using URDNA2015
@prefix : <manifest-#{variant}#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix mf: <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#> .
@prefix rdft: <http://www.w3.org/ns/rdftest#> .
@prefix rdfn: <http://json-ld.github.io/normalization/test-vocab#> .
<manifest-#{variant}> a mf:Manifest ;
)
output << %( rdfs:label "#{TITLE[variant]}";)
output << %( rdfs:comment "#{DESCRIPTION[variant]}";)
output << %( mf:entries \()
tests.select {|t| t.send(variant)}.map {|t| ":#{t.id}"}.each_slice(10) do |entries|
output << %( #{entries.join(' ')})
end
output << %( \) .)
tests.select {|t| t.send(variant)}.each do |test|
output << "" # separator
output << ":#{test.id} a #{test_class(test, variant)};"
output << %( mf:name "#{test.name}";)
output << %( rdfs:comment "#{test.comment}";) if test.comment
output << %( rdft:approval #{(test.approval ? "rdft:#{test.approval}" : "rdft:Proposed")};)
output << %( mf:action <#{test.action}>;)
output << %( mf:result <#{test.send(variant)}>;)
output << %( .)
end
output.join("\n")
end
end
options = {
output: $stdout
}
OPT_ARGS = [
["--format", "-f", GetoptLong::REQUIRED_ARGUMENT,"Output format, default #{options[:format].inspect}"],
["--output", "-o", GetoptLong::REQUIRED_ARGUMENT,"Output to the specified file path"],
["--quiet", GetoptLong::NO_ARGUMENT, "Supress most output other than progress indicators"],
["--touch", GetoptLong::NO_ARGUMENT, "Create referenced files and directories if missing"],
["--variant", GetoptLong::REQUIRED_ARGUMENT,"Test variant, 'rdf' or 'json'"],
["--help", "-?", GetoptLong::NO_ARGUMENT, "This message"]
]
def usage
STDERR.puts %{Usage: #{$0} [options] URL ...}
width = OPT_ARGS.map do |o|
l = o.first.length
l += o[1].length + 2 if o[1].is_a?(String)
l
end.max
OPT_ARGS.each do |o|
s = " %-*s " % [width, (o[1].is_a?(String) ? "#{o[0,2].join(', ')}" : o[0])]
s += o.last
STDERR.puts s
end
exit(1)
end
opts = GetoptLong.new(*OPT_ARGS.map {|o| o[0..-2]})
opts.each do |opt, arg|
case opt
when '--format' then options[:format] = arg.to_sym
when '--output' then options[:output] = File.open(arg, "w")
when '--quiet' then options[:quiet] = true
when '--touch' then options[:touch] = true
when '--variant' then options[:variant] = arg.to_sym
when '--help' then usage
end
end
vocab = Manifest.new
vocab.create_files if options[:touch]
if options[:format] || options[:variant]
case options[:format]
when :jsonld then options[:output].puts(vocab.to_jsonld(options[:variant]))
when :ttl then options[:output].puts(vocab.to_ttl(options[:variant]))
when :html then options[:output].puts(vocab.to_html)
else STDERR.puts "Unknown format #{options[:format].inspect}"
end
else
Manifest::TITLE.keys.each do |variant|
%w(jsonld ttl).each do |format|
File.open("manifest-#{variant}.#{format}", "w") do |output|
output.puts(vocab.send("to_#{format}".to_sym, variant))
end
end
end
File.open("index.html", "w") do |output|
output.puts(vocab.to_html)
end
end

34
graph/formats/rdf/testdata/mk_vocab.rb vendored Executable file
View File

@@ -0,0 +1,34 @@
#!/usr/bin/env ruby
# Generate vocab.jsonld and vocab.html from vocab.ttl and vocab_template.
#
# Generating vocab.jsonld is equivalent to running the following:
#
# jsonld --compact --context vocab_context.jsonld --input-format ttl vocab.ttl -o vocab.jsonld
require 'linkeddata'
require 'haml'
require 'active_support'
File.open("vocab.jsonld", "w") do |f|
r = RDF::Repository.load("vocab.ttl")
JSON::LD::API.fromRDF(r, useNativeTypes: true) do |expanded|
# Remove leading/trailing and multiple whitespace from rdf:comments
expanded.each do |o|
c = o[RDF::RDFS.comment.to_s].first['@value']
o[RDF::RDFS.comment.to_s].first['@value'] = c.strip.gsub(/\s+/m, ' ')
end
JSON::LD::API.compact(expanded, File.open("vocab_context.jsonld")) do |compacted|
# Create vocab.jsonld
f.write(compacted.to_json(JSON::LD::JSON_STATE))
# Create vocab.html using vocab_template.haml and compacted vocabulary
template = File.read("vocab_template.haml")
html = Haml::Engine.new(template, :format => :html5).render(self,
ontology: compacted['@graph'].detect {|o| o['@id'] == "http://json-ld.github.io/normalization/tests/vocab#"},
classes: compacted['@graph'].select {|o| o['@type'] == "rdfs:Class"}.sort_by {|o| o['rdfs:label']},
properties: compacted['@graph'].select {|o| o['@type'] == "rdf:Property"}.sort_by {|o| o['rdfs:label']}
)
File.open("vocab.html", "w") {|fh| fh.write html}
end
end
end

109
graph/formats/rdf/testdata/template.haml vendored Normal file
View File

@@ -0,0 +1,109 @@
!!! 5
%html{lang: :en, prefix: "rdfn: http://json-ld.github.io/normalization/test-vocab# mf: http://www.w3.org/2001/sw/DataAccess/tests/test-manifest# rdft: http://www.w3.org/ns/rdftest#"}
%head
%meta{"http-equiv" => "Content-Type", content: "text/html;charset=utf-8"}
%meta{name: "viewport", content: "width=device-width, initial-scale=1.0"}
%link{rel: "stylesheet", type: "text/css", href: "https://www.w3.org/StyleSheets/TR/base"}
:css
body: {bacground-image: none;}
dl.test-detail, dl.test-options {
padding: 0.5em;
}
dl.test-detail>dt, dl.test-options>dt {
float: left;
clear: left;
text-align: right;
font-weight: bold;
color: green;
}
dl.test-detail>dt:after, dl.test-options>dt:after {content: ": "}
dl.test-detail>dd, dl.test-options>dd {
margin: 0 0 0 110px;
padding: 0 0 0.5em 0;
}
dl.test-description>dt {margin-top: 2em;}
dd {margin-left: 0;}
dd code {display: inline;}
footer {text-align: center;}
%title
= man['label']
:css
em.rfc2119 {
text-transform: lowercase;
font-variant: small-caps;
font-style: normal;
color: #900;
}
a.testlink {
color: inherit;
text-decoration: none;
}
a.testlink:hover {
text-decoration: underline;
}
%body{resource: man['id'], typeof: man['type']}
%p
%a{href: "http://www.w3.org/"}
%img{src: "http://www.w3.org/Icons/w3c_home", alt: "W3C", height: 48, width: 72}
%h1{property: "rdfs:label"}<= man['label']
%p{property: "rdfs:comment"}<= man['comment']
:markdown
This page describes RDF Dataset Normalization tests for URGNA2012 and URDNA2015 profiles. These tests are also described in [JSON-LD](manifest.jsonld) and [Turtle](manifest.ttl) formats for convenience. The manifest vocabulary is described in the [RDF Dataset Normalization Test Vocabulary](vocab.html) ([JSON-LD](vocab.jsonld), [Turtle](vocab.ttl)) and is based on the [RDF Test Vocabulary](http://www.w3.org/TR/2014/NOTE-rdf11-testcases-20140225/).
## General instructions for running the RDF Dataset Normalization Test suites
FIXME
## Contributing Tests
The test manifests and entries are built automatically from [manifest.csv](manifest.csv) using [mk_manifest.rb](mk_manifest.rb), where each row defines a combination of RDF, JSON and Validation tests for the same _action_ and implicit files. Tests may be contributed via pull request to [https://github.com/json-ld/normalization](https://github.com/json-ld/normalization) with suitable changes to the [manifest.csv](manifest.csv) and necessary _action_ and _result_ files. Tests will also be considered if a contribution is sent to [public-credentials@w3.org](mailto:public-credentials@w3.org).
## Distribution
Distributed under both the [W3C Test Suite License](http://www.w3.org/Consortium/Legal/2008/04-testsuite-license) and the [W3C 3-clause BSD License](http://www.w3.org/Consortium/Legal/2008/03-bsd-license). To contribute to a W3C Test Suite, see the [policies and contribution forms](http://www.w3.org/2004/10/27-testcases).
## Disclaimer
UNDER BOTH MUTUALLY EXCLUSIVE LICENSES, THIS DOCUMENT AND ALL DOCUMENTS, TESTS AND SOFTWARE THAT LINK THIS STATEMENT ARE PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS THEREOF.
%section.contents
%h2="Contents"
%ol
- manifests.each do |id, man|
%li
%a{href: "##{id}"}<=man['label']
= " #{man['entries'].count} entries"
- manifests.each do |id, man|
%section{id: id, property: "mf:entry", inlist: true, resource: id, typeof: man['type']}
%h2<= "#{man['label']} (#{man['entries'].count} entries)"
%p{property: "rdfs:comment"}<= man['comment']
%p
- if id =~/urgna2012/
Instructions specific to running URGNA2012 tests.
- elsif id =~ /urdna2016/
Instructions specific to running URDNA2015 tests.
%dl.test-description
- man['entries'].each do |test|
%dt{id: test['id']}
%a.testlink{href: "##{test['id']}"}
= "#{test['id']}:"
%span{about: test['id'], property: "mf:name"}<~test['name']
%dd{property: "mf:entry", inlist: true, resource: test['id'], typeof: test['type']}
%div{property: "rdfs:comment"}
:markdown
#{test['comment'].to_s.gsub(/(MUST|MUST NOT|SHOULD|SHOULD NOT|MAY)/, '<em class="rfc2119">\\1</em>')}
%dl.test-detail
%dt="type"
%dd<~test['type']
%dt="approval"
%dd{property: "mf:approval", resource: test['approval']}<~test['approval']
- if test['action']
%dt="action"
%dd
%a{property: "mf:action", href: test['action']}<~test['action']
- if test['result']
%dt="result"
%dd
%a{property: "mf:result", href: test['result']}<~test['result']
%footer
:markdown
[Copyright ©](http://www.w3.org/Consortium/Legal/ipr-notice#Copyright) 2015 [W3C](http://www.w3.org/)® ([MIT](http://www.csail.mit.edu/), [ERCIM](http://www.ercim.org/), [Keio](http://www.keio.ac.jp/), [Beihang](http://ev.buaa.edu.cn/)). W3C® [liability](http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer), [trademark](http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks) and [document use](http://www.w3.org/Consortium/Legal/copyright-documents) rules apply.

View File

View File

View File

@@ -0,0 +1 @@
<http://example.org/test#example1> <http://example.org/vocab#p> <http://example.org/test#example2> .

View File

@@ -0,0 +1 @@
<http://example.org/test#example1> <http://example.org/vocab#p> <http://example.org/test#example2> .

View File

@@ -0,0 +1 @@
_:c14n0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#Foo> .

View File

@@ -0,0 +1 @@
_:c14n0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#Foo> .

View File

@@ -0,0 +1,2 @@
_:c14n0 <http://example.org/vocab#embed> <http://example.org/test#example> .
_:c14n0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#Foo> .

View File

@@ -0,0 +1,2 @@
_:c14n0 <http://example.org/vocab#embed> <http://example.org/test#example> .
_:c14n0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#Foo> .

View File

@@ -0,0 +1,3 @@
<http://example.org/test#example> <http://example.org/vocab#embed> _:c14n0 .
<http://example.org/test#example> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#Foo> .
_:c14n0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#Bar> .

View File

@@ -0,0 +1,3 @@
<http://example.org/test#example> <http://example.org/vocab#embed> _:c14n0 .
<http://example.org/test#example> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#Foo> .
_:c14n0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#Bar> .

View File

@@ -0,0 +1,2 @@
<http://example.org/test#example> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#Bar> .
<http://example.org/test#example> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#Foo> .

View File

@@ -0,0 +1,2 @@
<http://example.org/test#example> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#Bar> .
<http://example.org/test#example> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#Foo> .

View File

@@ -0,0 +1,2 @@
<http://example.org/test#example> <http://example.org/vocab#foo> <http://example.org/vocab#Bar> .
<http://example.org/test#example> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#Foo> .

View File

@@ -0,0 +1,2 @@
<http://example.org/test#example> <http://example.org/vocab#foo> <http://example.org/vocab#Bar> .
<http://example.org/test#example> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#Foo> .

View File

@@ -0,0 +1,6 @@
<http://example.org/test#book> <http://example.org/vocab#contains> <http://example.org/test#chapter> .
<http://example.org/test#book> <http://purl.org/dc/elements/1.1/contributor> "Writer" .
<http://example.org/test#book> <http://purl.org/dc/elements/1.1/title> "My Book" .
<http://example.org/test#chapter> <http://purl.org/dc/elements/1.1/description> "Fun" .
<http://example.org/test#chapter> <http://purl.org/dc/elements/1.1/title> "Chapter One" .
<http://example.org/test#library> <http://example.org/vocab#contains> <http://example.org/test#book> .

View File

@@ -0,0 +1,6 @@
<http://example.org/test#book> <http://example.org/vocab#contains> <http://example.org/test#chapter> .
<http://example.org/test#book> <http://purl.org/dc/elements/1.1/contributor> "Writer" .
<http://example.org/test#book> <http://purl.org/dc/elements/1.1/title> "My Book" .
<http://example.org/test#chapter> <http://purl.org/dc/elements/1.1/description> "Fun" .
<http://example.org/test#chapter> <http://purl.org/dc/elements/1.1/title> "Chapter One" .
<http://example.org/test#library> <http://example.org/vocab#contains> <http://example.org/test#book> .

View File

@@ -0,0 +1,9 @@
<http://example.org/test#book> <http://example.org/vocab#contains> <http://example.org/test#chapter> .
<http://example.org/test#book> <http://purl.org/dc/elements/1.1/contributor> "Writer" .
<http://example.org/test#book> <http://purl.org/dc/elements/1.1/title> "My Book" .
<http://example.org/test#chapter> <http://purl.org/dc/elements/1.1/description> "Fun" .
<http://example.org/test#chapter> <http://purl.org/dc/elements/1.1/title> "Chapter One" .
<http://example.org/test#jane> <http://example.org/vocab#authored> <http://example.org/test#chapter> .
<http://example.org/test#jane> <http://xmlns.com/foaf/0.1/name> "Jane" .
<http://example.org/test#john> <http://xmlns.com/foaf/0.1/name> "John" .
<http://example.org/test#library> <http://example.org/vocab#contains> <http://example.org/test#book> .

View File

@@ -0,0 +1,9 @@
<http://example.org/test#book> <http://example.org/vocab#contains> <http://example.org/test#chapter> .
<http://example.org/test#book> <http://purl.org/dc/elements/1.1/contributor> "Writer" .
<http://example.org/test#book> <http://purl.org/dc/elements/1.1/title> "My Book" .
<http://example.org/test#chapter> <http://purl.org/dc/elements/1.1/description> "Fun" .
<http://example.org/test#chapter> <http://purl.org/dc/elements/1.1/title> "Chapter One" .
<http://example.org/test#jane> <http://example.org/vocab#authored> <http://example.org/test#chapter> .
<http://example.org/test#jane> <http://xmlns.com/foaf/0.1/name> "Jane" .
<http://example.org/test#john> <http://xmlns.com/foaf/0.1/name> "John" .
<http://example.org/test#library> <http://example.org/vocab#contains> <http://example.org/test#book> .

View File

@@ -0,0 +1 @@
<http://example.org/test#example> <http://example.org/vocab#validFrom> "2011-01-25T00:00:00+00:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> .

View File

@@ -0,0 +1 @@
<http://example.org/test#example> <http://example.org/vocab#validFrom> "2011-01-25T00:00:00+00:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> .

View File

@@ -0,0 +1 @@
<http://example.org/test#example> <http://example.org/vocab#validFrom> "2011-01-25T00:00:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .

View File

@@ -0,0 +1 @@
<http://example.org/test#example> <http://example.org/vocab#validFrom> "2011-01-25T00:00:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .

View File

@@ -0,0 +1 @@
<http://example.org/test#example> <http://example.org/vocab#date> "2011-01-25T00:00:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .

View File

@@ -0,0 +1 @@
<http://example.org/test#example> <http://example.org/vocab#date> "2011-01-25T00:00:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .

View File

@@ -0,0 +1,3 @@
<http://example.org/test#example1> <http://example.org/vocab#date> "2011-01-25T00:00:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
<http://example.org/test#example1> <http://example.org/vocab#embed> <http://example.org/test#example2> .
<http://example.org/test#example2> <http://example.org/vocab#parent> <http://example.org/test#example1> .

View File

@@ -0,0 +1,3 @@
<http://example.org/test#example1> <http://example.org/vocab#date> "2011-01-25T00:00:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
<http://example.org/test#example1> <http://example.org/vocab#embed> <http://example.org/test#example2> .
<http://example.org/test#example2> <http://example.org/vocab#parent> <http://example.org/test#example1> .

View File

@@ -0,0 +1,3 @@
<http://example.org/test> <http://example.org/vocab#bool> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
<http://example.org/test> <http://example.org/vocab#double> "1.23E0"^^<http://www.w3.org/2001/XMLSchema#double> .
<http://example.org/test> <http://example.org/vocab#int> "123"^^<http://www.w3.org/2001/XMLSchema#integer> .

View File

@@ -0,0 +1,3 @@
<http://example.org/test> <http://example.org/vocab#bool> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
<http://example.org/test> <http://example.org/vocab#double> "1.23E0"^^<http://www.w3.org/2001/XMLSchema#double> .
<http://example.org/test> <http://example.org/vocab#int> "123"^^<http://www.w3.org/2001/XMLSchema#integer> .

View File

View File

View File

@@ -0,0 +1,3 @@
<http://example.org/test> <http://example.org/vocab#A> _:c14n0 .
<http://example.org/test> <http://example.org/vocab#B> _:c14n0 .
<http://example.org/test> <http://example.org/vocab#embed> _:c14n0 .

View File

@@ -0,0 +1,3 @@
<http://example.org/test> <http://example.org/vocab#A> _:c14n0 .
<http://example.org/test> <http://example.org/vocab#B> _:c14n0 .
<http://example.org/test> <http://example.org/vocab#embed> _:c14n0 .

View File

@@ -0,0 +1,2 @@
<http://example.org/test> <http://example.org/vocab#A> _:c14n0 .
<http://example.org/test> <http://example.org/vocab#B> _:c14n0 .

View File

@@ -0,0 +1,2 @@
<http://example.org/test> <http://example.org/vocab#A> _:c14n0 .
<http://example.org/test> <http://example.org/vocab#B> _:c14n0 .

View File

@@ -0,0 +1 @@
_:c14n0 <http://example.org/vocab#self> _:c14n0 .

View File

@@ -0,0 +1 @@
_:c14n0 <http://example.org/vocab#self> _:c14n0 .

View File

@@ -0,0 +1,2 @@
_:c14n0 <http://example.org/vocab#self> _:c14n0 .
_:c14n1 <http://example.org/vocab#self> _:c14n1 .

View File

@@ -0,0 +1,2 @@
_:c14n0 <http://example.org/vocab#self> _:c14n0 .
_:c14n1 <http://example.org/vocab#self> _:c14n1 .

View File

@@ -0,0 +1,4 @@
<http://example.org/vocab#test> <http://example.org/vocab#A> _:c14n2 .
<http://example.org/vocab#test> <http://example.org/vocab#B> _:c14n0 .
_:c14n0 <http://example.org/vocab#next> _:c14n1 .
_:c14n2 <http://example.org/vocab#next> _:c14n1 .

View File

@@ -0,0 +1,4 @@
<http://example.org/vocab#test> <http://example.org/vocab#A> _:c14n2 .
<http://example.org/vocab#test> <http://example.org/vocab#B> _:c14n1 .
_:c14n1 <http://example.org/vocab#next> _:c14n0 .
_:c14n2 <http://example.org/vocab#next> _:c14n0 .

View File

@@ -0,0 +1,2 @@
_:c14n0 <http://example.org/vocab#next> _:c14n1 .
_:c14n1 <http://example.org/vocab#next> _:c14n0 .

View File

@@ -0,0 +1,2 @@
_:c14n0 <http://example.org/vocab#next> _:c14n1 .
_:c14n1 <http://example.org/vocab#next> _:c14n0 .

View File

@@ -0,0 +1,4 @@
_:c14n0 <http://example.org/vocab#next> _:c14n1 .
_:c14n0 <http://example.org/vocab#prev> _:c14n1 .
_:c14n1 <http://example.org/vocab#next> _:c14n0 .
_:c14n1 <http://example.org/vocab#prev> _:c14n0 .

View File

@@ -0,0 +1,4 @@
_:c14n0 <http://example.org/vocab#next> _:c14n1 .
_:c14n0 <http://example.org/vocab#prev> _:c14n1 .
_:c14n1 <http://example.org/vocab#next> _:c14n0 .
_:c14n1 <http://example.org/vocab#prev> _:c14n0 .

View File

@@ -0,0 +1,3 @@
_:c14n0 <http://example.org/vocab#next> _:c14n1 .
_:c14n1 <http://example.org/vocab#next> _:c14n2 .
_:c14n2 <http://example.org/vocab#next> _:c14n0 .

View File

@@ -0,0 +1,3 @@
_:c14n0 <http://example.org/vocab#next> _:c14n2 .
_:c14n1 <http://example.org/vocab#next> _:c14n0 .
_:c14n2 <http://example.org/vocab#next> _:c14n1 .

View File

@@ -0,0 +1,6 @@
_:c14n0 <http://example.org/vocab#next> _:c14n2 .
_:c14n0 <http://example.org/vocab#prev> _:c14n1 .
_:c14n1 <http://example.org/vocab#next> _:c14n0 .
_:c14n1 <http://example.org/vocab#prev> _:c14n2 .
_:c14n2 <http://example.org/vocab#next> _:c14n1 .
_:c14n2 <http://example.org/vocab#prev> _:c14n0 .

View File

@@ -0,0 +1,6 @@
_:c14n0 <http://example.org/vocab#next> _:c14n1 .
_:c14n0 <http://example.org/vocab#prev> _:c14n2 .
_:c14n1 <http://example.org/vocab#next> _:c14n2 .
_:c14n1 <http://example.org/vocab#prev> _:c14n0 .
_:c14n2 <http://example.org/vocab#next> _:c14n0 .
_:c14n2 <http://example.org/vocab#prev> _:c14n1 .

View File

@@ -0,0 +1,6 @@
_:c14n0 <http://example.org/vocab#next> _:c14n2 .
_:c14n0 <http://example.org/vocab#prev> _:c14n1 .
_:c14n1 <http://example.org/vocab#next> _:c14n0 .
_:c14n1 <http://example.org/vocab#prev> _:c14n2 .
_:c14n2 <http://example.org/vocab#next> _:c14n1 .
_:c14n2 <http://example.org/vocab#prev> _:c14n0 .

View File

@@ -0,0 +1,6 @@
_:c14n0 <http://example.org/vocab#next> _:c14n1 .
_:c14n0 <http://example.org/vocab#prev> _:c14n2 .
_:c14n1 <http://example.org/vocab#next> _:c14n2 .
_:c14n1 <http://example.org/vocab#prev> _:c14n0 .
_:c14n2 <http://example.org/vocab#next> _:c14n0 .
_:c14n2 <http://example.org/vocab#prev> _:c14n1 .

View File

@@ -0,0 +1,6 @@
_:c14n0 <http://example.org/vocab#next> _:c14n2 .
_:c14n0 <http://example.org/vocab#prev> _:c14n1 .
_:c14n1 <http://example.org/vocab#next> _:c14n0 .
_:c14n1 <http://example.org/vocab#prev> _:c14n2 .
_:c14n2 <http://example.org/vocab#next> _:c14n1 .
_:c14n2 <http://example.org/vocab#prev> _:c14n0 .

View File

@@ -0,0 +1,6 @@
_:c14n0 <http://example.org/vocab#next> _:c14n1 .
_:c14n0 <http://example.org/vocab#prev> _:c14n2 .
_:c14n1 <http://example.org/vocab#next> _:c14n2 .
_:c14n1 <http://example.org/vocab#prev> _:c14n0 .
_:c14n2 <http://example.org/vocab#next> _:c14n0 .
_:c14n2 <http://example.org/vocab#prev> _:c14n1 .

View File

@@ -0,0 +1,6 @@
_:c14n0 <http://example.org/vocab#next> _:c14n2 .
_:c14n0 <http://example.org/vocab#prev> _:c14n1 .
_:c14n1 <http://example.org/vocab#next> _:c14n0 .
_:c14n1 <http://example.org/vocab#prev> _:c14n2 .
_:c14n2 <http://example.org/vocab#next> _:c14n1 .
_:c14n2 <http://example.org/vocab#prev> _:c14n0 .

View File

@@ -0,0 +1,6 @@
_:c14n0 <http://example.org/vocab#next> _:c14n1 .
_:c14n0 <http://example.org/vocab#prev> _:c14n2 .
_:c14n1 <http://example.org/vocab#next> _:c14n2 .
_:c14n1 <http://example.org/vocab#prev> _:c14n0 .
_:c14n2 <http://example.org/vocab#next> _:c14n0 .
_:c14n2 <http://example.org/vocab#prev> _:c14n1 .

View File

@@ -0,0 +1,6 @@
_:c14n0 <http://example.org/vocab#next> _:c14n2 .
_:c14n0 <http://example.org/vocab#prev> _:c14n1 .
_:c14n1 <http://example.org/vocab#next> _:c14n0 .
_:c14n1 <http://example.org/vocab#prev> _:c14n2 .
_:c14n2 <http://example.org/vocab#next> _:c14n1 .
_:c14n2 <http://example.org/vocab#prev> _:c14n0 .

View File

@@ -0,0 +1,6 @@
_:c14n0 <http://example.org/vocab#next> _:c14n1 .
_:c14n0 <http://example.org/vocab#prev> _:c14n2 .
_:c14n1 <http://example.org/vocab#next> _:c14n2 .
_:c14n1 <http://example.org/vocab#prev> _:c14n0 .
_:c14n2 <http://example.org/vocab#next> _:c14n0 .
_:c14n2 <http://example.org/vocab#prev> _:c14n1 .

View File

@@ -0,0 +1,6 @@
_:c14n0 <http://example.org/vocab#next> _:c14n2 .
_:c14n0 <http://example.org/vocab#prev> _:c14n1 .
_:c14n1 <http://example.org/vocab#next> _:c14n0 .
_:c14n1 <http://example.org/vocab#prev> _:c14n2 .
_:c14n2 <http://example.org/vocab#next> _:c14n1 .
_:c14n2 <http://example.org/vocab#prev> _:c14n0 .

View File

@@ -0,0 +1,6 @@
_:c14n0 <http://example.org/vocab#next> _:c14n1 .
_:c14n0 <http://example.org/vocab#prev> _:c14n2 .
_:c14n1 <http://example.org/vocab#next> _:c14n2 .
_:c14n1 <http://example.org/vocab#prev> _:c14n0 .
_:c14n2 <http://example.org/vocab#next> _:c14n0 .
_:c14n2 <http://example.org/vocab#prev> _:c14n1 .

View File

@@ -0,0 +1,6 @@
<http://example.org/vocab#test> <http://example.org/vocab#A> _:c14n0 .
<http://example.org/vocab#test> <http://example.org/vocab#B> _:c14n1 .
<http://example.org/vocab#test> <http://example.org/vocab#C> _:c14n2 .
_:c14n0 <http://example.org/vocab#next> _:c14n1 .
_:c14n1 <http://example.org/vocab#next> _:c14n2 .
_:c14n2 <http://example.org/vocab#next> _:c14n0 .

View File

@@ -0,0 +1,6 @@
<http://example.org/vocab#test> <http://example.org/vocab#A> _:c14n1 .
<http://example.org/vocab#test> <http://example.org/vocab#B> _:c14n2 .
<http://example.org/vocab#test> <http://example.org/vocab#C> _:c14n0 .
_:c14n0 <http://example.org/vocab#next> _:c14n1 .
_:c14n1 <http://example.org/vocab#next> _:c14n2 .
_:c14n2 <http://example.org/vocab#next> _:c14n0 .

View File

@@ -0,0 +1 @@
_:c14n0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#Foo> .

View File

@@ -0,0 +1 @@
_:c14n0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#Foo> .

View File

@@ -0,0 +1 @@
_:c14n0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#Foo> .

View File

@@ -0,0 +1 @@
_:c14n0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#Foo> .

View File

@@ -0,0 +1,2 @@
_:c14n0 <http://example.org/vocab#prop> _:c14n1 .
_:c14n2 <http://example.org/vocab#prop> _:c14n3 .

View File

@@ -0,0 +1,2 @@
_:c14n1 <http://example.org/vocab#prop> _:c14n0 .
_:c14n3 <http://example.org/vocab#prop> _:c14n2 .

View File

@@ -0,0 +1,2 @@
_:c14n0 <http://example.org/vocab#prop> _:c14n1 .
_:c14n2 <http://example.org/vocab#prop> _:c14n3 .

View File

@@ -0,0 +1,2 @@
_:c14n1 <http://example.org/vocab#prop> _:c14n0 .
_:c14n3 <http://example.org/vocab#prop> _:c14n2 .

View File

@@ -0,0 +1,4 @@
_:c14n0 <http://example.org/vocab#p1> _:c14n1 .
_:c14n1 <http://example.org/vocab#p2> "Foo" .
_:c14n2 <http://example.org/vocab#p1> _:c14n3 .
_:c14n3 <http://example.org/vocab#p2> "Foo" .

View File

@@ -0,0 +1,4 @@
_:c14n0 <http://example.org/vocab#p1> _:c14n1 .
_:c14n1 <http://example.org/vocab#p2> "Foo" .
_:c14n2 <http://example.org/vocab#p1> _:c14n3 .
_:c14n3 <http://example.org/vocab#p2> "Foo" .

View File

@@ -0,0 +1,4 @@
_:c14n0 <http://example.org/vocab#p1> _:c14n1 .
_:c14n1 <http://example.org/vocab#p2> "Foo" .
_:c14n2 <http://example.org/vocab#p1> _:c14n3 .
_:c14n3 <http://example.org/vocab#p2> "Foo" .

View File

@@ -0,0 +1,4 @@
_:c14n0 <http://example.org/vocab#p1> _:c14n1 .
_:c14n1 <http://example.org/vocab#p2> "Foo" .
_:c14n2 <http://example.org/vocab#p1> _:c14n3 .
_:c14n3 <http://example.org/vocab#p2> "Foo" .

View File

@@ -0,0 +1,4 @@
_:c14n0 <http://example.org/vocab#p1> _:c14n1 .
_:c14n1 <http://example.org/vocab#p2> "Foo" .
_:c14n2 <http://example.org/vocab#p1> _:c14n3 .
_:c14n3 <http://example.org/vocab#p2> "Foo" .

View File

@@ -0,0 +1,4 @@
_:c14n0 <http://example.org/vocab#p1> _:c14n1 .
_:c14n1 <http://example.org/vocab#p2> "Foo" .
_:c14n2 <http://example.org/vocab#p1> _:c14n3 .
_:c14n3 <http://example.org/vocab#p2> "Foo" .

View File

@@ -0,0 +1,3 @@
_:c14n0 <http://example.org/vocab#p1> _:c14n2 .
_:c14n1 <http://example.org/vocab#p1> _:c14n0 .
_:c14n1 <http://example.org/vocab#p1> _:c14n3 .

View File

@@ -0,0 +1,3 @@
_:c14n0 <http://example.org/vocab#p1> _:c14n1 .
_:c14n0 <http://example.org/vocab#p1> _:c14n2 .
_:c14n1 <http://example.org/vocab#p1> _:c14n3 .

View File

@@ -0,0 +1,3 @@
_:c14n0 <http://example.org/vocab#p1> _:c14n2 .
_:c14n1 <http://example.org/vocab#p1> _:c14n0 .
_:c14n1 <http://example.org/vocab#p1> _:c14n3 .

View File

@@ -0,0 +1,3 @@
_:c14n0 <http://example.org/vocab#p1> _:c14n1 .
_:c14n0 <http://example.org/vocab#p1> _:c14n2 .
_:c14n1 <http://example.org/vocab#p1> _:c14n3 .

View File

@@ -0,0 +1,4 @@
_:c14n0 <http://example.org/vocab#p1> _:c14n1 .
_:c14n1 <http://example.org/vocab#p1> _:c14n2 .
_:c14n3 <http://example.org/vocab#p1> _:c14n4 .
_:c14n4 <http://example.org/vocab#p1> _:c14n5 .

View File

@@ -0,0 +1,4 @@
_:c14n1 <http://example.org/vocab#p1> _:c14n0 .
_:c14n2 <http://example.org/vocab#p1> _:c14n1 .
_:c14n4 <http://example.org/vocab#p1> _:c14n3 .
_:c14n5 <http://example.org/vocab#p1> _:c14n4 .

View File

@@ -0,0 +1,4 @@
_:c14n0 <http://example.org/vocab#p1> _:c14n1 .
_:c14n1 <http://example.org/vocab#p1> _:c14n2 .
_:c14n3 <http://example.org/vocab#p1> _:c14n4 .
_:c14n4 <http://example.org/vocab#p1> _:c14n5 .

View File

@@ -0,0 +1,4 @@
_:c14n1 <http://example.org/vocab#p1> _:c14n0 .
_:c14n2 <http://example.org/vocab#p1> _:c14n1 .
_:c14n4 <http://example.org/vocab#p1> _:c14n3 .
_:c14n5 <http://example.org/vocab#p1> _:c14n4 .

View File

@@ -0,0 +1,4 @@
_:c14n0 <http://example.org/vocab#p1> _:c14n1 .
_:c14n1 <http://example.org/vocab#p1> _:c14n2 .
_:c14n3 <http://example.org/vocab#p1> _:c14n4 .
_:c14n4 <http://example.org/vocab#p1> _:c14n5 .

View File

@@ -0,0 +1,4 @@
_:c14n1 <http://example.org/vocab#p1> _:c14n0 .
_:c14n2 <http://example.org/vocab#p1> _:c14n1 .
_:c14n4 <http://example.org/vocab#p1> _:c14n3 .
_:c14n5 <http://example.org/vocab#p1> _:c14n4 .

View File

@@ -0,0 +1 @@
<http://example.org/test> <http://example.org/vocab#test> "test"@en .

View File

@@ -0,0 +1 @@
<http://example.org/test> <http://example.org/vocab#test> "test"@en .

View File

@@ -0,0 +1,36 @@
_:c14n0 <http://example.org/vocab#p> _:c14n1 .
_:c14n0 <http://example.org/vocab#p> _:c14n2 .
_:c14n0 <http://example.org/vocab#p> _:c14n3 .
_:c14n1 <http://example.org/vocab#p> _:c14n0 .
_:c14n1 <http://example.org/vocab#p> _:c14n4 .
_:c14n1 <http://example.org/vocab#p> _:c14n5 .
_:c14n10 <http://example.org/vocab#p> _:c14n7 .
_:c14n10 <http://example.org/vocab#p> _:c14n8 .
_:c14n10 <http://example.org/vocab#p> _:c14n9 .
_:c14n11 <http://example.org/vocab#p> _:c14n7 .
_:c14n11 <http://example.org/vocab#p> _:c14n8 .
_:c14n11 <http://example.org/vocab#p> _:c14n9 .
_:c14n2 <http://example.org/vocab#p> _:c14n0 .
_:c14n2 <http://example.org/vocab#p> _:c14n3 .
_:c14n2 <http://example.org/vocab#p> _:c14n5 .
_:c14n3 <http://example.org/vocab#p> _:c14n0 .
_:c14n3 <http://example.org/vocab#p> _:c14n2 .
_:c14n3 <http://example.org/vocab#p> _:c14n4 .
_:c14n4 <http://example.org/vocab#p> _:c14n1 .
_:c14n4 <http://example.org/vocab#p> _:c14n3 .
_:c14n4 <http://example.org/vocab#p> _:c14n5 .
_:c14n5 <http://example.org/vocab#p> _:c14n1 .
_:c14n5 <http://example.org/vocab#p> _:c14n2 .
_:c14n5 <http://example.org/vocab#p> _:c14n4 .
_:c14n6 <http://example.org/vocab#p> _:c14n7 .
_:c14n6 <http://example.org/vocab#p> _:c14n8 .
_:c14n6 <http://example.org/vocab#p> _:c14n9 .
_:c14n7 <http://example.org/vocab#p> _:c14n10 .
_:c14n7 <http://example.org/vocab#p> _:c14n11 .
_:c14n7 <http://example.org/vocab#p> _:c14n6 .
_:c14n8 <http://example.org/vocab#p> _:c14n10 .
_:c14n8 <http://example.org/vocab#p> _:c14n11 .
_:c14n8 <http://example.org/vocab#p> _:c14n6 .
_:c14n9 <http://example.org/vocab#p> _:c14n10 .
_:c14n9 <http://example.org/vocab#p> _:c14n11 .
_:c14n9 <http://example.org/vocab#p> _:c14n6 .

View File

@@ -0,0 +1,36 @@
_:c14n0 <http://example.org/vocab#p> _:c14n1 .
_:c14n0 <http://example.org/vocab#p> _:c14n2 .
_:c14n0 <http://example.org/vocab#p> _:c14n3 .
_:c14n1 <http://example.org/vocab#p> _:c14n0 .
_:c14n1 <http://example.org/vocab#p> _:c14n4 .
_:c14n1 <http://example.org/vocab#p> _:c14n5 .
_:c14n10 <http://example.org/vocab#p> _:c14n11 .
_:c14n10 <http://example.org/vocab#p> _:c14n7 .
_:c14n10 <http://example.org/vocab#p> _:c14n9 .
_:c14n11 <http://example.org/vocab#p> _:c14n10 .
_:c14n11 <http://example.org/vocab#p> _:c14n8 .
_:c14n11 <http://example.org/vocab#p> _:c14n9 .
_:c14n2 <http://example.org/vocab#p> _:c14n0 .
_:c14n2 <http://example.org/vocab#p> _:c14n4 .
_:c14n2 <http://example.org/vocab#p> _:c14n5 .
_:c14n3 <http://example.org/vocab#p> _:c14n0 .
_:c14n3 <http://example.org/vocab#p> _:c14n4 .
_:c14n3 <http://example.org/vocab#p> _:c14n5 .
_:c14n4 <http://example.org/vocab#p> _:c14n1 .
_:c14n4 <http://example.org/vocab#p> _:c14n2 .
_:c14n4 <http://example.org/vocab#p> _:c14n3 .
_:c14n5 <http://example.org/vocab#p> _:c14n1 .
_:c14n5 <http://example.org/vocab#p> _:c14n2 .
_:c14n5 <http://example.org/vocab#p> _:c14n3 .
_:c14n6 <http://example.org/vocab#p> _:c14n7 .
_:c14n6 <http://example.org/vocab#p> _:c14n8 .
_:c14n6 <http://example.org/vocab#p> _:c14n9 .
_:c14n7 <http://example.org/vocab#p> _:c14n10 .
_:c14n7 <http://example.org/vocab#p> _:c14n6 .
_:c14n7 <http://example.org/vocab#p> _:c14n8 .
_:c14n8 <http://example.org/vocab#p> _:c14n11 .
_:c14n8 <http://example.org/vocab#p> _:c14n6 .
_:c14n8 <http://example.org/vocab#p> _:c14n7 .
_:c14n9 <http://example.org/vocab#p> _:c14n10 .
_:c14n9 <http://example.org/vocab#p> _:c14n11 .
_:c14n9 <http://example.org/vocab#p> _:c14n6 .

Some files were not shown because too many files have changed in this diff Show More