graphdb-workbench-tests 2.8.4 → 3.0.0-NEW-JENKINS-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/fixtures/graph/rdf.txt +130 -0
  2. package/fixtures/graphdb-import/ontology-and-shapes.ttl +562 -0
  3. package/fixtures/graphdb-import/swapi-dataset.ttl +4393 -0
  4. package/fixtures/graphql/endpoints/graphql-endpoints-info.json +49 -0
  5. package/fixtures/graphql/endpoints/no-graphql-endpoints-info.json +3 -0
  6. package/fixtures/graphql/soml/big-swapi-schema-broken.yaml +83167 -0
  7. package/fixtures/graphql/soml/swapi-schema-broken.yaml +880 -0
  8. package/fixtures/graphql/soml/swapi-schema-broken.zip +0 -0
  9. package/fixtures/graphql/soml/swapi-schema-film-restricted.yaml +335 -0
  10. package/fixtures/graphql/soml/swapi-schema-planets.yaml +51 -0
  11. package/fixtures/graphql/soml/swapi-schema-species.yaml +66 -0
  12. package/fixtures/graphql/soml/swapi-schema.yaml +857 -0
  13. package/fixtures/graphql/soml/swapi-schemas.zip +0 -0
  14. package/fixtures/locale-en.json +666 -37
  15. package/fixtures/ttyg/agent/get-agent-list-autocomplete-query.json +23 -0
  16. package/fixtures/ttyg/autocomplete-response.json +154 -0
  17. package/integration/explore/class.hierarchy.spec.js +131 -184
  18. package/integration/explore/graphs.overview.spec.js +18 -10
  19. package/integration/explore/visual-graph/graphs-config.spec.js +17 -1
  20. package/integration/explore/visual-graph/visual-graph-node-labels.spec.js +68 -0
  21. package/integration/graphql/activate-deactivate-graphql-endpoint.spec.js +40 -0
  22. package/integration/graphql/create-graphql-endpoint.spec.js +281 -0
  23. package/integration/graphql/delete-graphql-endpoint.spec.js +46 -0
  24. package/integration/graphql/edit-graphql-enpoint.spec.js +160 -0
  25. package/integration/graphql/export-graphql-endpoint-definition.spec.js +35 -0
  26. package/integration/graphql/filter-graphql-endpoints-on-management-view.spec.js +66 -0
  27. package/integration/graphql/graphql-endpoint-management-view.spec.js +142 -0
  28. package/integration/graphql/graphql-playground.spec.js +110 -0
  29. package/integration/graphql/import-graphql-endpoint-definitions.spec.js +269 -0
  30. package/integration/graphql/set-default-graphql-endpoint.spec.js +42 -0
  31. package/integration/import/import-server-files-batch-operations.spec.js +4 -3
  32. package/integration/import/import-server-files.spec.js +29 -7
  33. package/integration/import/import-user-data-url.spec.js +33 -0
  34. package/integration/import/import-view.spec.js +2 -1
  35. package/integration/repository/repositories.spec.js +9 -4
  36. package/integration/setup/user-and-access.spec.js +695 -117
  37. package/integration/sparql-editor/actions/show-saved-queries.spec.js +1 -1
  38. package/integration/sparql-editor/saved-query/readonly-query.spec.js +66 -0
  39. package/integration/ttyg/edit-agent.spec.js +45 -0
  40. package/integration-flaky/setup/users-and-access/security-and-free-access.spec.js +54 -0
  41. package/{integration → integration-flaky}/ttyg/ttyg-permission.spec.js +4 -3
  42. package/npm-shrinkwrap.json +931 -305
  43. package/package.json +3 -3
  44. package/steps/class-views-steps.js +139 -0
  45. package/steps/explore/graphs-overview-steps.js +12 -0
  46. package/steps/graphql/create-graphql-endpoint-steps.js +277 -0
  47. package/steps/graphql/edit-graphql-endpoint-steps.js +124 -0
  48. package/steps/graphql/generation-report-modal-steps.js +34 -0
  49. package/steps/graphql/graphiql-editor-tools-steps.js +10 -0
  50. package/steps/graphql/graphiql-playground-steps.js +6 -0
  51. package/steps/graphql/graphql-endpoint-management-steps.js +147 -0
  52. package/steps/graphql/graphql-playground-steps.js +90 -0
  53. package/steps/graphql/import-endpoint-definition-modal-steps.js +80 -0
  54. package/steps/home-steps.js +1 -1
  55. package/steps/import/import-settings-dialog-steps.js +12 -0
  56. package/steps/import/import-steps.js +9 -4
  57. package/steps/import/import-test-constants.js +1 -0
  58. package/steps/import/import-user-data-steps.js +8 -0
  59. package/steps/login-steps.js +20 -0
  60. package/steps/modal-dialog-steps.js +8 -0
  61. package/steps/repository-steps.js +4 -0
  62. package/steps/setup/user-and-access-steps.js +165 -11
  63. package/steps/ttyg/ttyg-agent-settings-modal.steps.js +44 -0
  64. package/steps/visual-graph-steps.js +14 -0
  65. package/steps/yasgui/saved-queries-dialog.js +19 -3
  66. package/stubs/global-operations-statuses-stub.js +2 -2
  67. package/stubs/graphql/graphql-stubs.js +146 -0
  68. package/stubs/repositories/repositories-stubs.js +4 -0
  69. package/stubs/ttyg/ttyg-stubs.js +7 -0
  70. package/stubs/yasgui/query-stubs.js +2 -2
  71. package/support/import-commands.js +28 -0
  72. package/support/repository-commands.js +10 -3
  73. package/support/security-command.js +49 -8
  74. package/support/user-commands.js +10 -2
  75. package/utils/html-util.js +21 -0
  76. /package/fixtures/{graphql-editor → queries}/default-query-response.json +0 -0
@@ -19,3 +19,133 @@
19
19
  <urn:19> {<urn:a19> <urn:b19> <urn:c19> .}
20
20
  <urn:20> {<urn:a20> <urn:b20> <urn:c20> .}
21
21
  <urn:21> {<urn:a21> <urn:b21> <urn:c21> .}
22
+ <urn:22> {<urn:a22> <urn:b22> <urn:c22> .}
23
+ <urn:23> {<urn:a23> <urn:b23> <urn:c23> .}
24
+ <urn:24> {<urn:a24> <urn:b24> <urn:c24> .}
25
+ <urn:25> {<urn:a25> <urn:b25> <urn:c25> .}
26
+ <urn:26> {<urn:a26> <urn:b26> <urn:c26> .}
27
+ <urn:27> {<urn:a27> <urn:b27> <urn:c27> .}
28
+ <urn:28> {<urn:a28> <urn:b28> <urn:c28> .}
29
+ <urn:29> {<urn:a29> <urn:b29> <urn:c29> .}
30
+ <urn:30> {<urn:a30> <urn:b30> <urn:c30> .}
31
+ <urn:31> {<urn:a31> <urn:b31> <urn:c31> .}
32
+ <urn:32> {<urn:a32> <urn:b32> <urn:c32> .}
33
+ <urn:33> {<urn:a33> <urn:b33> <urn:c33> .}
34
+ <urn:34> {<urn:a34> <urn:b34> <urn:c34> .}
35
+ <urn:35> {<urn:a35> <urn:b35> <urn:c35> .}
36
+ <urn:36> {<urn:a36> <urn:b36> <urn:c36> .}
37
+ <urn:37> {<urn:a37> <urn:b37> <urn:c37> .}
38
+ <urn:38> {<urn:a38> <urn:b38> <urn:c38> .}
39
+ <urn:39> {<urn:a39> <urn:b39> <urn:c39> .}
40
+ <urn:40> {<urn:a40> <urn:b40> <urn:c40> .}
41
+ <urn:41> {<urn:a41> <urn:b41> <urn:c41> .}
42
+ <urn:42> {<urn:a42> <urn:b42> <urn:c42> .}
43
+ <urn:43> {<urn:a43> <urn:b43> <urn:c43> .}
44
+ <urn:44> {<urn:a44> <urn:b44> <urn:c44> .}
45
+ <urn:45> {<urn:a45> <urn:b45> <urn:c45> .}
46
+ <urn:46> {<urn:a46> <urn:b46> <urn:c46> .}
47
+ <urn:47> {<urn:a47> <urn:b47> <urn:c47> .}
48
+ <urn:48> {<urn:a48> <urn:b48> <urn:c48> .}
49
+ <urn:49> {<urn:a49> <urn:b49> <urn:c49> .}
50
+ <urn:50> {<urn:a50> <urn:b50> <urn:c50> .}
51
+ <urn:51> {<urn:a51> <urn:b51> <urn:c51> .}
52
+ <urn:52> {<urn:a52> <urn:b52> <urn:c52> .}
53
+ <urn:53> {<urn:a53> <urn:b53> <urn:c53> .}
54
+ <urn:54> {<urn:a54> <urn:b54> <urn:c54> .}
55
+ <urn:55> {<urn:a55> <urn:b55> <urn:c55> .}
56
+ <urn:56> {<urn:a56> <urn:b56> <urn:c56> .}
57
+ <urn:57> {<urn:a57> <urn:b57> <urn:c57> .}
58
+ <urn:58> {<urn:a58> <urn:b58> <urn:c58> .}
59
+ <urn:59> {<urn:a59> <urn:b59> <urn:c59> .}
60
+ <urn:60> {<urn:a60> <urn:b60> <urn:c60> .}
61
+ <urn:61> {<urn:a61> <urn:b61> <urn:c61> .}
62
+ <urn:62> {<urn:a62> <urn:b62> <urn:c62> .}
63
+ <urn:63> {<urn:a63> <urn:b63> <urn:c63> .}
64
+ <urn:64> {<urn:a64> <urn:b64> <urn:c64> .}
65
+ <urn:65> {<urn:a65> <urn:b65> <urn:c65> .}
66
+ <urn:66> {<urn:a66> <urn:b66> <urn:c66> .}
67
+ <urn:67> {<urn:a67> <urn:b67> <urn:c67> .}
68
+ <urn:68> {<urn:a68> <urn:b68> <urn:c68> .}
69
+ <urn:69> {<urn:a69> <urn:b69> <urn:c69> .}
70
+ <urn:70> {<urn:a70> <urn:b70> <urn:c70> .}
71
+ <urn:71> {<urn:a71> <urn:b71> <urn:c71> .}
72
+ <urn:72> {<urn:a72> <urn:b72> <urn:c72> .}
73
+ <urn:73> {<urn:a73> <urn:b73> <urn:c73> .}
74
+ <urn:74> {<urn:a74> <urn:b74> <urn:c74> .}
75
+ <urn:75> {<urn:a75> <urn:b75> <urn:c75> .}
76
+ <urn:76> {<urn:a76> <urn:b76> <urn:c76> .}
77
+ <urn:77> {<urn:a77> <urn:b77> <urn:c77> .}
78
+ <urn:78> {<urn:a78> <urn:b78> <urn:c78> .}
79
+ <urn:79> {<urn:a79> <urn:b79> <urn:c79> .}
80
+ <urn:80> {<urn:a80> <urn:b80> <urn:c80> .}
81
+ <urn:81> {<urn:a81> <urn:b81> <urn:c81> .}
82
+ <urn:82> {<urn:a82> <urn:b82> <urn:c82> .}
83
+ <urn:83> {<urn:a83> <urn:b83> <urn:c83> .}
84
+ <urn:84> {<urn:a84> <urn:b84> <urn:c84> .}
85
+ <urn:85> {<urn:a85> <urn:b85> <urn:c85> .}
86
+ <urn:86> {<urn:a86> <urn:b86> <urn:c86> .}
87
+ <urn:87> {<urn:a87> <urn:b87> <urn:c87> .}
88
+ <urn:88> {<urn:a88> <urn:b88> <urn:c88> .}
89
+ <urn:89> {<urn:a89> <urn:b89> <urn:c89> .}
90
+ <urn:90> {<urn:a90> <urn:b90> <urn:c90> .}
91
+ <urn:91> {<urn:a91> <urn:b91> <urn:c91> .}
92
+ <urn:92> {<urn:a92> <urn:b92> <urn:c92> .}
93
+ <urn:93> {<urn:a93> <urn:b93> <urn:c93> .}
94
+ <urn:94> {<urn:a94> <urn:b94> <urn:c94> .}
95
+ <urn:95> {<urn:a95> <urn:b95> <urn:c95> .}
96
+ <urn:96> {<urn:a96> <urn:b96> <urn:c96> .}
97
+ <urn:97> {<urn:a97> <urn:b97> <urn:c97> .}
98
+ <urn:98> {<urn:a98> <urn:b98> <urn:c98> .}
99
+ <urn:99> {<urn:a99> <urn:b99> <urn:c99> .}
100
+ <urn:100> {<urn:a100> <urn:b100> <urn:c100> .}
101
+ <urn:101> {<urn:a101> <urn:b101> <urn:c101> .}
102
+ <urn:102> {<urn:a102> <urn:b102> <urn:c102> .}
103
+ <urn:103> {<urn:a103> <urn:b103> <urn:c103> .}
104
+ <urn:104> {<urn:a104> <urn:b104> <urn:c104> .}
105
+ <urn:105> {<urn:a105> <urn:b105> <urn:c105> .}
106
+ <urn:106> {<urn:a106> <urn:b106> <urn:c106> .}
107
+ <urn:107> {<urn:a107> <urn:b107> <urn:c107> .}
108
+ <urn:108> {<urn:a108> <urn:b108> <urn:c108> .}
109
+ <urn:109> {<urn:a109> <urn:b109> <urn:c109> .}
110
+ <urn:110> {<urn:a110> <urn:b110> <urn:c110> .}
111
+ <urn:111> {<urn:a111> <urn:b111> <urn:c111> .}
112
+ <urn:112> {<urn:a112> <urn:b112> <urn:c112> .}
113
+ <urn:113> {<urn:a113> <urn:b113> <urn:c113> .}
114
+ <urn:114> {<urn:a114> <urn:b114> <urn:c114> .}
115
+ <urn:115> {<urn:a115> <urn:b115> <urn:c115> .}
116
+ <urn:116> {<urn:a116> <urn:b116> <urn:c116> .}
117
+ <urn:117> {<urn:a117> <urn:b117> <urn:c117> .}
118
+ <urn:118> {<urn:a118> <urn:b118> <urn:c118> .}
119
+ <urn:119> {<urn:a119> <urn:b119> <urn:c119> .}
120
+ <urn:120> {<urn:a120> <urn:b120> <urn:c120> .}
121
+ <urn:121> {<urn:a121> <urn:b121> <urn:c121> .}
122
+ <urn:122> {<urn:a122> <urn:b122> <urn:c122> .}
123
+ <urn:123> {<urn:a123> <urn:b123> <urn:c123> .}
124
+ <urn:124> {<urn:a124> <urn:b124> <urn:c124> .}
125
+ <urn:125> {<urn:a125> <urn:b125> <urn:c125> .}
126
+ <urn:126> {<urn:a126> <urn:b126> <urn:c126> .}
127
+ <urn:127> {<urn:a127> <urn:b127> <urn:c127> .}
128
+ <urn:128> {<urn:a128> <urn:b128> <urn:c128> .}
129
+ <urn:129> {<urn:a129> <urn:b129> <urn:c129> .}
130
+ <urn:130> {<urn:a130> <urn:b130> <urn:c130> .}
131
+ <urn:131> {<urn:a131> <urn:b131> <urn:c131> .}
132
+ <urn:132> {<urn:a132> <urn:b132> <urn:c132> .}
133
+ <urn:133> {<urn:a133> <urn:b133> <urn:c133> .}
134
+ <urn:134> {<urn:a134> <urn:b134> <urn:c134> .}
135
+ <urn:135> {<urn:a135> <urn:b135> <urn:c135> .}
136
+ <urn:136> {<urn:a136> <urn:b136> <urn:c136> .}
137
+ <urn:137> {<urn:a137> <urn:b137> <urn:c137> .}
138
+ <urn:138> {<urn:a138> <urn:b138> <urn:c138> .}
139
+ <urn:139> {<urn:a139> <urn:b139> <urn:c139> .}
140
+ <urn:140> {<urn:a140> <urn:b140> <urn:c140> .}
141
+ <urn:141> {<urn:a141> <urn:b141> <urn:c141> .}
142
+ <urn:142> {<urn:a142> <urn:b142> <urn:c142> .}
143
+ <urn:143> {<urn:a143> <urn:b143> <urn:c143> .}
144
+ <urn:144> {<urn:a144> <urn:b144> <urn:c144> .}
145
+ <urn:145> {<urn:a145> <urn:b145> <urn:c145> .}
146
+ <urn:146> {<urn:a146> <urn:b146> <urn:c146> .}
147
+ <urn:147> {<urn:a147> <urn:b147> <urn:c147> .}
148
+ <urn:148> {<urn:a148> <urn:b148> <urn:c148> .}
149
+ <urn:149> {<urn:a149> <urn:b149> <urn:c149> .}
150
+ <urn:150> {<urn:a150> <urn:b150> <urn:c150> .}
151
+ <urn:151> {<urn:a151> <urn:b151> <urn:c151> .}
@@ -0,0 +1,562 @@
1
+ @prefix : <https://swapi.co/resource/> .
2
+ @prefix affected: <http://www.ontotext.com/semantic-object/affected> .
3
+ @prefix dash: <http://datashapes.org/dash#> .
4
+ @prefix dct: <http://purl.org/dc/terms/> .
5
+ @prefix droid: <https://swapi.co/resource/droid/> .
6
+ @prefix gn: <http://www.geonames.org/ontology#> .
7
+ @prefix graphql: <http://datashapes.org/graphql#> .
8
+ @prefix onto: <http://www.ontotext.com/> .
9
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
10
+ @prefix puml: <http://plantuml.com/ontology#> .
11
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
12
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
13
+ @prefix res: <http://www.ontotext.com/semantic-object/result/> .
14
+ @prefix rsx: <http://rdf4j.org/shacl-extensions#> .
15
+ @prefix sh: <http://www.w3.org/ns/shacl#> .
16
+ @prefix skos: <http://www.w3.org/2004/02/skos/core#> .
17
+ @prefix so: <http://www.ontotext.com/semantic-object/> .
18
+ @prefix voc: <https://swapi.co/vocabulary/> .
19
+ @prefix vocsh: <https://swapi.co/vocabulary/shacl> .
20
+ @prefix void: <http://rdfs.org/ns/void#> .
21
+ @prefix wgs84: <http://www.w3.org/2003/01/geo/wgs84_pos#> .
22
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
23
+
24
+ voc:CharacterSchema a graphql:Schema;
25
+ rdfs:label "Character GraphQL Schema";
26
+ graphql:privateShape vocsh:Starship;
27
+ graphql:protectedClass voc:Film;
28
+ graphql:publicClass voc:Character .
29
+
30
+ vocsh:CharacterShape
31
+ a sh:NodeShape ;
32
+ sh:targetClass voc:Character ;
33
+ sh:property [ sh:path rdfs:label ;
34
+ graphql:name "label" ;
35
+ sh:minCount 1 ;
36
+ so:lang "en,ANY";
37
+ sh:or ( [ sh:datatype xsd:string ; ]
38
+ [ sh:datatype rdf:langString ; ] ) ; ] ;
39
+ sh:property [ sh:path voc:gender ;
40
+ sh:datatype xsd:string ;
41
+ sh:maxCount 1 ; ] ;
42
+ sh:property [ sh:path voc:birthYear ;
43
+ sh:maxCount 1 ;
44
+ sh:datatype xsd:string ; ] ;
45
+ sh:property [ sh:path voc:height ;
46
+ sh:maxCount 1 ;
47
+ sh:datatype xsd:decimal ; ] ;
48
+ sh:property [ sh:path voc:film ;
49
+ sh:class voc:Film ] .
50
+
51
+
52
+ vocsh:Starship
53
+ a sh:NodeShape ;
54
+ sh:targetClass voc:Starship ;
55
+ sh:property [ sh:path rdfs:label ;
56
+ graphql:name "name" ;
57
+ sh:minCount 1 ;
58
+ so:lang "en,ANY";
59
+ sh:or ( [ sh:datatype xsd:string ; ]
60
+ [ sh:datatype rdf:langString ; ] ) ; ] .
61
+
62
+ vocsh:Film
63
+ a sh:NodeShape ;
64
+ sh:targetClass voc:Film ;
65
+ sh:property [ sh:path rdfs:label ;
66
+ graphql:name "name" ;
67
+ sh:minCount 1 ;
68
+ so:lang "en,ANY";
69
+ sh:or ( [ sh:datatype xsd:string ; ]
70
+ [ sh:datatype rdf:langString ; ] ) ; ] ;
71
+ sh:property [ sh:path voc:starship ;
72
+ sh:class voc:Starship ] .
73
+
74
+
75
+ # ===================================================
76
+
77
+ voc:SwapiSchema a graphql:Schema;
78
+ rdfs:label "Swapi GraphQL Schema";
79
+ graphql:publicShape vocsh:LocationShape ;
80
+ graphql:publicShape vocsh:CountryShape ;
81
+ graphql:publicShape vocsh:StarshipShape ;
82
+ graphql:publicShape vocsh:VehicleShape ;
83
+ graphql:publicShape vocsh:DroitShape;
84
+ graphql:publicShape vocsh:WookieeShape ;
85
+ graphql:publicShape vocsh:HumanShape ;
86
+ graphql:publicShape vocsh:PersonShape ;
87
+ graphql:publicShape voc:Character ;
88
+ graphql:publicShape vocsh:Species ;
89
+ graphql:publicShape vocsh:ResidentShape ;
90
+ graphql:publicShape vocsh:PlanetShape ;
91
+ graphql:publicShape vocsh:FilmShape ;
92
+ graphql:publicShape vocsh:FilmRoleShape .
93
+
94
+ voc:Character a owl:Class .
95
+
96
+ voc:Human a owl:Class ;
97
+ rdfs:subClassOf voc:Character .
98
+
99
+ voc:Droid a owl:Class ;
100
+ rdfs:subClassOf voc:Character .
101
+
102
+ voc:Wookiee a owl:Class ;
103
+ rdfs:subClassOf voc:Character .
104
+
105
+ vocsh:LocationShape
106
+ a sh:NodeShape ;
107
+ sh:targetClass voc:Location ;
108
+ sh:property [ sh:path rdfs:label ;
109
+ graphql:name "name" ;
110
+ sh:minCount 1 ;
111
+ sh:or ( [ sh:datatype xsd:string ; ]
112
+ [ sh:datatype rdf:langString ; ] ) ; ] ;
113
+ sh:property [ sh:path voc:country ;
114
+ sh:class voc:Country
115
+ ] .
116
+
117
+ vocsh:CountryShape
118
+ a sh:NodeShape ;
119
+ sh:targetClass voc:Country ;
120
+ sh:property [ sh:path rdfs:label ;
121
+ graphql:name "name" ;
122
+ sh:minCount 1 ;
123
+ sh:or ( [ sh:datatype xsd:string ; ]
124
+ [ sh:datatype rdf:langString ; ] ) ; ] ;
125
+ sh:property [ sh:path voc:country ;
126
+ sh:class voc:Country
127
+ ] .
128
+ # why is necessary to have property of type Country of object Country?
129
+
130
+ vocsh:StarshipShape
131
+ a sh:NodeShape ;
132
+ sh:targetClass voc:Starship ;
133
+ sh:property [ sh:path rdfs:label ;
134
+ graphql:name "name" ;
135
+ sh:minCount 1 ;
136
+ sh:or ( [ sh:datatype xsd:string ; ]
137
+ [ sh:datatype rdf:langString ; ] ) ; ] ;
138
+ sh:property [ sh:path voc:model ;
139
+ sh:datatype xsd:string ;
140
+ sh:maxCount 1
141
+ ];
142
+ sh:property [ sh:path voc:mglt ;
143
+ sh:datatype xsd:integer ;
144
+ sh:maxCount 1
145
+ ];
146
+ sh:property [ sh:path voc:crew ;
147
+ sh:datatype xsd:integer ;
148
+ sh:maxCount 1
149
+ ] ;
150
+ sh:property [ sh:path voc:cargoCapacity ;
151
+ sh:datatype xsd:integer ;
152
+ sh:maxCount 1
153
+ ];
154
+ sh:property [ sh:path voc:hyperdriveRating ;
155
+ sh:datatype xsd:decimal ;
156
+ sh:maxCount 1
157
+ ];
158
+ sh:property [ sh:path voc:starshipClass ;
159
+ sh:datatype xsd:string ;
160
+ sh:maxCount 1
161
+ ];
162
+ sh:property [ sh:path voc:consumables ;
163
+ sh:datatype xsd:string ;
164
+ sh:maxCount 1
165
+ ] ;
166
+ sh:property [ sh:path voc:costInCredits ;
167
+ sh:datatype xsd:integer ;
168
+ sh:maxCount 1
169
+ ] ;
170
+ sh:property [ sh:path voc:length ;
171
+ sh:datatype xsd:decimal ;
172
+ sh:maxCount 1
173
+ ] ;
174
+ sh:property [ sh:path voc:manufacturer ;
175
+ sh:datatype xsd:string ;
176
+ sh:maxCount 1
177
+ ] ;
178
+ sh:property [ sh:path voc:maxAtmospheringSpeed ;
179
+ sh:datatype xsd:integer ;
180
+ sh:maxCount 1
181
+ ] ;
182
+ sh:property [ sh:path voc:passengers ;
183
+ sh:datatype xsd:integer ;
184
+ sh:maxCount 1
185
+ ] ;
186
+ sh:property [ sh:path voc:film ;
187
+ sh:class voc:Film
188
+ ] ;
189
+ sh:property [ sh:path voc:pilot ;
190
+ sh:class voc:Character
191
+ ] .
192
+
193
+ vocsh:VehicleShape
194
+ a sh:NodeShape ;
195
+ sh:targetClass voc:Vehicle ;
196
+ sh:property [ sh:path rdfs:label ;
197
+ graphql:name "name" ;
198
+ sh:minCount 1 ;
199
+ sh:or ( [ sh:datatype xsd:string ; ]
200
+ [ sh:datatype rdf:langString ; ] ) ; ] ;
201
+ sh:property [ sh:path voc:desc ;
202
+ sh:or ( [ sh:datatype xsd:string ; ]
203
+ [ sh:datatype rdf:langString ; ] ) ;
204
+ ] ;
205
+ sh:property [ sh:path voc:cargoCapacity ;
206
+ sh:datatype xsd:integer ;
207
+ sh:maxCount 1
208
+ ] ;
209
+ sh:property [ sh:path voc:crew ;
210
+ sh:datatype xsd:integer ;
211
+ sh:maxCount 1
212
+ ] ;
213
+ sh:property [ sh:path voc:model ;
214
+ sh:datatype xsd:string ;
215
+ sh:maxCount 1
216
+ ] ;
217
+ sh:property [ sh:path voc:consumables ;
218
+ sh:datatype xsd:string ;
219
+ sh:maxCount 1
220
+ ] ;
221
+ sh:property [ sh:path voc:costInCredits ;
222
+ sh:datatype xsd:integer ;
223
+ sh:maxCount 1
224
+ ] ;
225
+ sh:property [ sh:path voc:length ;
226
+ sh:datatype xsd:decimal ;
227
+ sh:maxCount 1
228
+ ] ;
229
+ sh:property [ sh:path voc:manufacturer ;
230
+ sh:datatype xsd:string ;
231
+ sh:maxCount 1
232
+ ] ;
233
+ sh:property [ sh:path voc:maxAtmospheringSpeed ;
234
+ sh:datatype xsd:integer ;
235
+ sh:maxCount 1
236
+ ] ;
237
+ sh:property [ sh:path voc:passengers ;
238
+ sh:datatype xsd:integer ;
239
+ sh:maxCount 1
240
+ ] ;
241
+ sh:property [ sh:path voc:vehicleClass ;
242
+ sh:datatype xsd:string ;
243
+ sh:maxCount 1
244
+ ] ;
245
+ sh:property [ sh:path voc:film ;
246
+ sh:class voc:Film
247
+ ] ;
248
+ sh:property [ sh:path voc:pilot ;
249
+ sh:class voc:Character
250
+ ] .
251
+
252
+ vocsh:Species
253
+ a sh:NodeShape ;
254
+ sh:targetClass voc:Species ;
255
+ sh:property [ sh:path rdfs:label ;
256
+ graphql:name "name" ;
257
+ sh:minCount 1 ;
258
+ sh:or ( [ sh:datatype xsd:string ; ]
259
+ [ sh:datatype rdf:langString ; ] ) ] ;
260
+ sh:property [ sh:path voc:averageHeight ;
261
+ sh:datatype xsd:decimal ;
262
+ sh:maxCount 1
263
+ ];
264
+ sh:property [ sh:path voc:averageLifespan ;
265
+ sh:datatype xsd:string ;
266
+ sh:maxCount 1
267
+ ];
268
+ sh:property [ sh:path voc:eyeColor ;
269
+ sh:datatype xsd:string ;
270
+ sh:maxCount 1
271
+ ];
272
+ sh:property [ sh:path voc:hairColor ;
273
+ sh:datatype xsd:string ;
274
+ sh:maxCount 1
275
+ ];
276
+ sh:property [ sh:path voc:language ;
277
+ sh:datatype xsd:string ;
278
+ sh:maxCount 1
279
+ ];
280
+ sh:property [ sh:path voc:skinColor ;
281
+ sh:datatype xsd:string ;
282
+ sh:maxCount 1
283
+ ];
284
+ sh:property [ sh:path voc:character ;
285
+ sh:class voc:Character
286
+ ];
287
+ sh:property [ sh:path voc:homeworld ;
288
+ sh:class voc:Planet
289
+ ];
290
+ sh:property [ sh:path voc:film ;
291
+ sh:class voc:Film
292
+ ] .
293
+
294
+ vocsh:PersonShape
295
+ a sh:NodeShape ;
296
+ sh:targetClass voc:Person ;
297
+ sh:property [ sh:path rdfs:label ;
298
+ graphql:name "name" ;
299
+ sh:minCount 1 ;
300
+ sh:or ( [ sh:datatype xsd:string ; ]
301
+ [ sh:datatype rdf:langString ; ] ) ] ;
302
+ sh:property [ sh:path voc:birthDate ;
303
+ sh:datatype xsd:date ;
304
+ sh:maxCount 1
305
+ ] ;
306
+ sh:property [ sh:path voc:desc ;
307
+ sh:or ( [ sh:datatype xsd:string ; ]
308
+ [ sh:datatype rdf:langString ; ] ) ;
309
+ sh:maxCount 1
310
+ ] ;
311
+ sh:property [ sh:path voc:gender ;
312
+ sh:datatype xsd:string ;
313
+ sh:maxCount 1
314
+ ] ;
315
+ sh:property [ sh:path voc:birthPlace ;
316
+ sh:datatype voc:Location ;
317
+ sh:maxCount 1
318
+ ] ;
319
+ sh:property [ sh:path voc:citizenOf ;
320
+ sh:datatype voc:Location ;
321
+ sh:maxCount 1
322
+ ] ;
323
+ sh:property [ sh:path voc:residentOf ;
324
+ sh:datatype voc:Location ;
325
+ sh:maxCount 1
326
+ ] .
327
+
328
+ voc:Character
329
+ a sh:NodeShape, owl:Class ;
330
+ graphql:isInterface true ;
331
+ sh:property [ sh:path rdfs:label ;
332
+ graphql:name "name" ;
333
+ sh:minCount 1 ;
334
+ sh:or ( [ sh:datatype xsd:string ; ]
335
+ [ sh:datatype rdf:langString ; ] ) ] ;
336
+ sh:property [ sh:path voc:desc ;
337
+ sh:or ( [ sh:datatype xsd:string ; ]
338
+ [ sh:datatype rdf:langString ; ] ) ;
339
+ sh:maxCount 1
340
+ ] ;
341
+ sh:property [ sh:path voc:gender ;
342
+ sh:datatype xsd:string ;
343
+ sh:maxCount 1
344
+ ] ;
345
+ sh:property [ sh:path voc:eyeColor ;
346
+ sh:datatype xsd:string ;
347
+ sh:maxCount 1
348
+ ] ;
349
+ sh:property [ sh:path voc:skinColor ;
350
+ sh:datatype xsd:string ;
351
+ sh:maxCount 1
352
+ ] ;
353
+ sh:property [ sh:path voc:hairColor ;
354
+ sh:datatype xsd:string ;
355
+ sh:maxCount 1
356
+ ] ;
357
+ sh:property [ sh:path voc:birthYear ;
358
+ sh:maxCount 1 ;
359
+ sh:datatype xsd:string
360
+ ] ;
361
+ sh:property [ sh:path voc:mass ;
362
+ sh:maxCount 1 ;
363
+ sh:datatype xsd:decimal ] ;
364
+ sh:property [ sh:path voc:height ;
365
+ sh:maxCount 1 ;
366
+ sh:datatype xsd:decimal ] ;
367
+ sh:property [ sh:path voc:vehicle ;
368
+ sh:class voc:Vehicle
369
+ ] ;
370
+ sh:property [ sh:path voc:starship ;
371
+ sh:class voc:Starship
372
+ ] ;
373
+ sh:property [ sh:path voc:homeworld ;
374
+ sh:class voc:Planet
375
+ ] ;
376
+ sh:property [ sh:path voc:film ;
377
+ sh:class voc:Film
378
+ ] ;
379
+ sh:property [ sh:path [ sh:inversePath voc:character ] ;
380
+ sh:name "species" ;
381
+ sh:class voc:Species ;
382
+ sh:minCount 1
383
+ ] .
384
+
385
+ vocsh:HumanShape
386
+ a sh:NodeShape ;
387
+ sh:targetClass voc:Human ;
388
+ sh:property [ sh:path rdfs:label ;
389
+ graphql:name "name" ;
390
+ sh:minCount 1 ;
391
+ sh:or ( [ sh:datatype xsd:string ; ]
392
+ [ sh:datatype rdf:langString ; ] ) ] ;
393
+ sh:property [ sh:path voc:averageLifespan ;
394
+ sh:datatype xsd:string ;
395
+ sh:maxCount 1
396
+ ] .
397
+
398
+ vocsh:DroitShape
399
+ a sh:NodeShape ;
400
+ sh:targetClass voc:Droid ;
401
+ sh:property [ sh:path rdfs:label ;
402
+ graphql:name "name" ;
403
+ sh:minCount 1 ;
404
+ sh:or ( [ sh:datatype xsd:string ; ]
405
+ [ sh:datatype rdf:langString ; ] ) ] ;
406
+ sh:property [ sh:path voc:averageLifespan ;
407
+ sh:datatype xsd:string ;
408
+ sh:maxCount 1
409
+ ] .
410
+
411
+
412
+ vocsh:WookieeShape
413
+ a sh:NodeShape ;
414
+ sh:targetClass voc:Wookiee ;
415
+ sh:property [ sh:path rdfs:label ;
416
+ graphql:name "name" ;
417
+ sh:minCount 1 ;
418
+ sh:or ( [ sh:datatype xsd:string ; ]
419
+ [ sh:datatype rdf:langString ; ] ) ] ;
420
+ sh:property [ sh:path voc:averageLifespan ;
421
+ sh:datatype xsd:string ;
422
+ sh:maxCount 1
423
+ ] ;
424
+ sh:property [ sh:path voc:language ;
425
+ sh:datatype xsd:string ;
426
+ sh:maxCount 1
427
+ ] .
428
+
429
+ vocsh:PlanetShape
430
+ a sh:NodeShape ;
431
+ sh:targetClass voc:Planet ;
432
+ sh:property [ sh:path rdfs:label ;
433
+ graphql:name "name" ;
434
+ sh:minCount 1 ;
435
+ sh:or ( [ sh:datatype xsd:string ; ]
436
+ [ sh:datatype rdf:langString ; ] ) ; ] ;
437
+ sh:property [ sh:path voc:desc ;
438
+ sh:or ( [ sh:datatype xsd:string ; ]
439
+ [ sh:datatype rdf:langString ; ] ) ;
440
+ sh:maxCount 1 ;
441
+ ] ;
442
+ sh:property [
443
+ sh:path voc:climate ;
444
+ sh:datatype xsd:string ;
445
+ sh:maxCount 1 ] ;
446
+ sh:property [
447
+ sh:path voc:diameter ;
448
+ sh:datatype xsd:integer ;
449
+ sh:maxCount 1 ;
450
+ ] ;
451
+ sh:property [
452
+ sh:path voc:gravity ;
453
+ sh:datatype xsd:string ;
454
+ sh:maxCount 1 ;
455
+ ];
456
+ sh:property [
457
+ sh:path voc:orbitalPeriod ;
458
+ sh:datatype xsd:integer ;
459
+ sh:maxCount 1 ;
460
+ ];
461
+ sh:property [
462
+ sh:path voc:population ;
463
+ sh:datatype xsd:integer ;
464
+ sh:maxCount 1 ;
465
+ ];
466
+ sh:property [
467
+ sh:path voc:rotationPeriod ;
468
+ sh:datatype xsd:integer ;
469
+ sh:maxCount 1 ;
470
+ ];
471
+ sh:property [
472
+ sh:path voc:surfaceWater ;
473
+ sh:datatype xsd:integer ;
474
+ sh:maxCount 1 ;
475
+ ];
476
+ sh:property [
477
+ sh:path voc:terrain ;
478
+ sh:datatype xsd:string ;
479
+ sh:maxCount 1 ;
480
+ ] ;
481
+ sh:property [
482
+ sh:path voc:resident ;
483
+ sh:class voc:Character ] ;
484
+ sh:property [
485
+ sh:path voc:film ;
486
+ sh:class voc:Film ] .
487
+
488
+ vocsh:FilmShape
489
+ a sh:NodeShape ;
490
+ sh:targetClass voc:Film ;
491
+ sh:property [ sh:path rdfs:label ;
492
+ graphql:name "name" ;
493
+ sh:minCount 1 ;
494
+ sh:or ( [ sh:datatype xsd:string ; ]
495
+ [ sh:datatype rdf:langString ; ] ) ; ] ;
496
+ sh:property [ sh:path voc:boxOffice ;
497
+ sh:datatype xsd:integer ;
498
+ sh:maxCount 1 ;
499
+ ] ;
500
+ sh:property [ sh:path voc:desc ;
501
+ sh:or ( [ sh:datatype xsd:string ; ]
502
+ [ sh:datatype rdf:langString ; ] ) ;
503
+ sh:maxCount 1 ;
504
+ ] ;
505
+ sh:property [ sh:path voc:episodeId ;
506
+ sh:datatype xsd:integer ;
507
+ sh:maxCount 1 ;
508
+ ] ;
509
+ sh:property [ sh:path voc:openingCrawl ;
510
+ sh:datatype xsd:string ;
511
+ sh:maxCount 1 ;
512
+ ] ;
513
+ sh:property [ sh:path voc:releaseDate ;
514
+ sh:datatype xsd:date ;
515
+ sh:maxCount 1 ;
516
+ ] ;
517
+ sh:property [ sh:path voc:planet ;
518
+ sh:class voc:Planet ;
519
+ sh:maxCount 1 ;
520
+ ] ;
521
+ sh:property [ sh:path voc:character ;
522
+ sh:class voc:Character
523
+ ] ;
524
+ sh:property [ sh:path voc:vehicle ;
525
+ sh:class voc:Vehicle
526
+ ] ;
527
+ sh:property [ sh:path voc:starship ;
528
+ sh:class voc:Starship
529
+ ] ;
530
+ sh:property [ sh:path [ sh:inversePath voc:film ] ;
531
+ sh:name "role" ;
532
+ sh:class voc:FilmRole ;
533
+ sh:minCount 1
534
+ ] .
535
+
536
+ vocsh:FilmRoleShape
537
+ a sh:NodeShape ;
538
+ sh:targetClass voc:FilmRole ;
539
+ sh:property [ sh:path rdfs:label ;
540
+ graphql:name "name" ;
541
+ sh:minCount 1 ;
542
+ sh:or ( [ sh:datatype xsd:string ; ]
543
+ [ sh:datatype rdf:langString ; ] ) ; ] ;
544
+ sh:property [ sh:path voc:role ;
545
+ sh:datatype xsd:string ;
546
+ sh:maxCount 1 ;
547
+ ] ;
548
+ sh:property [ sh:path voc:person ;
549
+ sh:class voc:Person
550
+ ] ;
551
+ sh:property [ sh:path voc:character ;
552
+ sh:class voc:Character
553
+ ] ;
554
+ sh:property [ sh:path voc:film ;
555
+ sh:class voc:Film
556
+ ] .
557
+
558
+ vocsh:ResidentShape
559
+ a sh:NodeShape ;
560
+ sh:targetClass voc:Character .
561
+
562
+ # ======================================================