graphdb-workbench-tests 3.3.3 → 3.4.0-TR1

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 (60) hide show
  1. package/cypress-flaky.config.js +2 -0
  2. package/cypress-legacy.config.js +2 -2
  3. package/cypress-security.config.js +3 -14
  4. package/e2e-flaky/import/import-server-files-operations.spec.js +1 -1
  5. package/e2e-flaky/import/import-user-data-batch-operations.spec.js +1 -1
  6. package/e2e-flaky/setup/sparql-template-create.js +3 -18
  7. package/e2e-flaky/sparql-editor/actions/execute-update-query.spec.js +2 -12
  8. package/e2e-flaky/sparql-editor/actions/share-query.spec.js +1 -7
  9. package/e2e-flaky/sparql-editor/yasr/table-plugin.spec.js +1 -6
  10. package/e2e-legacy/explore/visual-graph/visual-graph-links-limit.spec.js +140 -0
  11. package/e2e-legacy/explore/visual-graph/visual.graph.spec.js +57 -85
  12. package/e2e-legacy/guides/execute-sparql-query/execute-sparql-query-guide.spec.js +92 -0
  13. package/e2e-legacy/guides/import-rdf-file/confirm-duplicate-rdf-file.spec.js +63 -0
  14. package/e2e-legacy/guides/import-rdf-file/import-rdf-file.spec.js +105 -0
  15. package/e2e-legacy/guides/navigation/navigation-guide.spec.js +64 -0
  16. package/e2e-legacy/guides/rdf-rank/rdf-rank-guide.spec.js +42 -0
  17. package/e2e-legacy/guides/table-graph-explore/table-graph-explore-guide.spec.js +167 -0
  18. package/e2e-legacy/guides/ttyg/edit-agent/edit-ttyg-agent-guide.spec.js +2 -2
  19. package/e2e-legacy/guides/visual-graph/visual-graph-guide.spec.js +372 -0
  20. package/e2e-legacy/guides/welcome/welcome-guide.spec.js +36 -0
  21. package/e2e-legacy/help/guides/guides-autostart.spec.js +36 -3
  22. package/e2e-legacy/help/guides/guides-confirm-cancel-dialog.js +83 -0
  23. package/e2e-legacy/help/guides/movies-interactive-guide.spec.js +47 -49
  24. package/e2e-legacy/repository/url-with-repository-id-parameter.spec.js +1 -0
  25. package/e2e-legacy/resource/resource.spec.js +1 -6
  26. package/e2e-legacy/setup/aclmanagement/create-rule.spec.js +3 -0
  27. package/e2e-legacy/setup/connectors-lucene.spec.js +24 -8
  28. package/e2e-legacy/sparql-editor/actions/expand-results-over-sameas.spec.js +1 -1
  29. package/e2e-legacy/sparql-editor/actions/show-saved-queries.spec.js +1 -6
  30. package/e2e-legacy/sparql-editor/yasgui-tabs.spec.js +2 -12
  31. package/e2e-legacy/sparql-editor/yasr/pagination.spec.js +5 -18
  32. package/e2e-legacy/sparql-editor/yasr/table-plugin.spec.js +1 -6
  33. package/e2e-legacy/sparql-editor/yasr/toolbar/visual-graph-button.spec.js +1 -6
  34. package/e2e-legacy/sparql-editor/yasr/yasr.spec.js +80 -0
  35. package/e2e-legacy/ttyg/chat-list.spec.js +2 -12
  36. package/e2e-legacy/ttyg/create-agent.spec.js +8 -48
  37. package/e2e-legacy/ttyg/edit-agent.spec.js +2 -12
  38. package/e2e-security/setup/users-and-access/turn-on-security-and-password-change.spec.js +73 -61
  39. package/fixtures/guides/confirm-cancel-dialog/confirm-cancel-dialog-guide.json +15 -0
  40. package/fixtures/guides/execute-sparql-query/execute-sparql-query-guide.json +54 -0
  41. package/fixtures/guides/import-rdf-file/confirm-duplicate-rdf-file-guide.json +30 -0
  42. package/fixtures/guides/import-rdf-file/import-rdf-file-guide.json +21 -0
  43. package/fixtures/guides/navigation/navigation-guide.json +60 -0
  44. package/fixtures/guides/rdf-rank/rdf-rank-guide.json +18 -0
  45. package/fixtures/guides/table-graph-explore/table-graph-explore-guide.json +51 -0
  46. package/fixtures/guides/table-graph-explore/table-graph-explore-without-substeps-guide.json +25 -0
  47. package/fixtures/guides/visual-graph/visual-graph-config-guide.json +39 -0
  48. package/fixtures/guides/visual-graph/visual-graph-guide.json +85 -0
  49. package/fixtures/guides/welcome/welcome-guide.json +18 -0
  50. package/npm-shrinkwrap.json +329 -276
  51. package/package.json +1 -1
  52. package/steps/guides/guide-dialog-steps.js +60 -2
  53. package/steps/main-menu-steps.js +1 -0
  54. package/steps/setup/acl-management-steps.js +4 -0
  55. package/steps/sparql-editor-steps.js +5 -4
  56. package/steps/sparql-steps.js +13 -1
  57. package/steps/visual-graph-steps.js +76 -2
  58. package/steps/yasgui/yasqe-steps.js +29 -4
  59. package/steps/yasgui/yasr-steps.js +27 -1
  60. package/stubs/guides/guides-stubs.js +41 -1
@@ -2,6 +2,8 @@ import {MainMenuSteps} from "../../../steps/main-menu-steps";
2
2
  import {UserAndAccessSteps} from "../../../steps/setup/user-and-access-steps";
3
3
  import {LoginSteps} from "../../../steps/login-steps";
4
4
  import {ToasterSteps} from "../../../steps/toaster-steps";
5
+ import {HeaderSteps} from '../../../steps/header-steps.js';
6
+ import HomeSteps from '../../../steps/home-steps.js';
5
7
 
6
8
  describe('Turn on Security', () => {
7
9
 
@@ -10,78 +12,88 @@ describe('Turn on Security', () => {
10
12
  cy.switchOnSecurity();
11
13
  });
12
14
 
13
- afterEach(() =>{
15
+ afterEach(() => {
14
16
  cy.loginAsAdmin();
15
17
  cy.switchOffSecurity(true);
16
18
  })
17
19
 
18
- it('should enable security and show login screen with only Help accessible', () => {
19
- // Navigate to Users & Access
20
- UserAndAccessSteps.visit();
21
- // Verify we are redirected to login page
22
- cy.url().should('include', '/login');
23
- MainMenuSteps.getMenuHelp().should('not.exist');
24
- MainMenuSteps.getMenuExplore().should('not.exist');
25
- MainMenuSteps.getMenuMonitoring().should('not.exist');
26
- MainMenuSteps.getMenuSetup().should('not.exist');
27
- });
20
+ it('should enable security and show login screen', () => {
21
+ // Navigate to Users & Access
22
+ UserAndAccessSteps.visit();
23
+ // Verify we are redirected to login page
24
+ cy.url().should('include', '/login');
25
+ HeaderSteps.getHeader().should('not.exist');
26
+ MainMenuSteps.getMainMenu().should('not.exist');
27
+ });
28
28
 
29
- it('should reject wrong credentials and accept admin/root', () => {
30
- // Attempt login with invalid credentials
31
- LoginSteps.visitLoginPage();
32
- LoginSteps.loginWithUser('wrongUser', 'wrongPass');
33
- // Expect error message
34
- ToasterSteps.verifyNewToasterError('Wrong credentials');
29
+ it('should reject wrong credentials and accept admin/root', () => {
30
+ // Attempt login with invalid credentials
31
+ LoginSteps.visitLoginPage();
32
+ LoginSteps.loginWithUser('wrongUser', 'wrongPass');
33
+ // Expect error message
34
+ ToasterSteps.verifyNewToasterError('Wrong credentials');
35
35
 
36
- // Login with correct admin credentials
37
- LoginSteps.visitLoginPage();
38
- LoginSteps.loginWithUser('admin', 'root');
39
- cy.url().should('include', '/');
40
- });
36
+ // Login with correct admin credentials
37
+ LoginSteps.visitLoginPage();
38
+ LoginSteps.loginWithUser('admin', 'root');
39
+ cy.url().should('include', '/');
40
+ });
41
41
 
42
- it('should change admin password and enforce new credentials', () => {
43
- // Navigate to Users & Access after login
44
- UserAndAccessSteps.visit();
45
- // Verify we are redirected to login page
46
- cy.url().should('include', '/login');
47
- LoginSteps.loginWithUser('admin', 'root');
42
+ it('should show toaster after logging out', () => {
43
+ UserAndAccessSteps.visit();
44
+ LoginSteps.loginWithUser('admin', 'root');
45
+ // Verify we are logged in
46
+ UserAndAccessSteps.getUsersCatalogContainer().should('be.visible');
47
+ // Log out
48
+ HeaderSteps.logout();
49
+ cy.url().should('include', '/login');
50
+ // Verify toaster message
51
+ ToasterSteps.verifySuccess('Signed out');
52
+ })
48
53
 
49
- // Open edit page for admin user
50
- UserAndAccessSteps.openEditUserPage('admin');
54
+ describe('Password Change', () => {
55
+ afterEach(() => {
56
+ // Reset password back to original value for test isolation
57
+ UserAndAccessSteps.visit();
58
+ UserAndAccessSteps.openEditUserPage('admin');
59
+ UserAndAccessSteps.typePassword('root');
60
+ UserAndAccessSteps.typeConfirmPasswordField('root');
61
+ UserAndAccessSteps.confirmUserEdit();
62
+ UserAndAccessSteps.getUsersCatalogContainer().should('be.visible');
63
+ })
51
64
 
52
- // Change password to a new value
53
- let newPassword = 'MyNewP@ssw0rd!';
54
- UserAndAccessSteps.typePassword(newPassword);
55
- UserAndAccessSteps.typeConfirmPasswordField(newPassword);
56
- UserAndAccessSteps.confirmUserEdit();
65
+ it('should change admin password and enforce new credentials', () => {
66
+ // Navigate to Users & Access after login
67
+ UserAndAccessSteps.visit();
68
+ // Verify we are redirected to login page
69
+ cy.url().should('include', '/login');
70
+ // Login with admin credentials
71
+ LoginSteps.loginWithUser('admin', 'root');
72
+ // Verify we are logged in
73
+ UserAndAccessSteps.getUsersCatalogContainer().should('be.visible');
57
74
 
58
- // Log out
59
- LoginSteps.logout();
60
- cy.url().should('include', '/login');
75
+ // Open edit page for admin user
76
+ UserAndAccessSteps.openEditUserPage('admin');
61
77
 
62
- // Attempt login with old password
63
- LoginSteps.loginWithUser('admin', 'root');
64
- ToasterSteps.verifyNewToasterError('Wrong credentials');
78
+ // Change password to a new value
79
+ let newPassword = 'MyNewP@ssw0rd!';
80
+ UserAndAccessSteps.typePassword(newPassword);
81
+ UserAndAccessSteps.typeConfirmPasswordField(newPassword);
82
+ UserAndAccessSteps.confirmUserEdit();
65
83
 
66
- // Attempt login with new password
67
- LoginSteps.visitLoginPage();
68
- LoginSteps.loginWithUser('admin', newPassword);
69
- MainMenuSteps.clickOnUsersAndAccess();
70
- // Open edit page for admin user
71
- UserAndAccessSteps.openEditUserPage('admin');
72
- newPassword = 'root';
73
- UserAndAccessSteps.typePassword(newPassword);
74
- UserAndAccessSteps.typeConfirmPasswordField(newPassword);
75
- UserAndAccessSteps.confirmUserEdit();
76
- });
84
+ // Log out
85
+ LoginSteps.logout();
86
+ cy.url().should('include', '/login');
77
87
 
78
- it('should show toaster when after logging out', () => {
79
- UserAndAccessSteps.visit();
80
- LoginSteps.loginWithUser('admin', 'root');
81
- // Log out
82
- LoginSteps.logout();
83
- cy.url().should('include', '/login');
84
- // Verify toaster message
85
- ToasterSteps.verifySuccess('Signed out');
86
- })
88
+ // Attempt login with old password
89
+ LoginSteps.loginWithUser('admin', 'root');
90
+ ToasterSteps.verifyNewToasterError('Wrong credentials');
91
+
92
+ // Attempt login with new password
93
+ LoginSteps.visitLoginPage();
94
+ LoginSteps.loginWithUser('admin', newPassword);
95
+ // Verify we are logged in and we are on the home page
96
+ HomeSteps.getView().should('be.visible');
97
+ });
98
+ });
87
99
  });
@@ -0,0 +1,15 @@
1
+ [
2
+ {
3
+ "guideName": {
4
+ "en": "Confirm cancel dialog"
5
+ },
6
+ "guideDescription": {
7
+ "en": "Confirm cancel dialog guide"
8
+ },
9
+ "steps": [
10
+ {
11
+ "guideBlockName": "welcome"
12
+ }
13
+ ]
14
+ }
15
+ ]
@@ -0,0 +1,54 @@
1
+ [
2
+ {
3
+ "guideName": {
4
+ "en": "Execute SPARQL query Guide"
5
+ },
6
+ "steps": [
7
+ {
8
+ "guideBlockName": "execute-sparql-query",
9
+ "options": {
10
+ "queries": [
11
+ {
12
+ "query": "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n select * where { \n\t?s rdfs:label ?o .\n} limit 3 ",
13
+ "queryExtraContent": {
14
+ "en": "Extra content for query."
15
+ },
16
+ "resultExtraContent": {
17
+ "en": "Extra content for result."
18
+ }
19
+ }
20
+ ]
21
+ }
22
+ },
23
+ {
24
+ "guideBlockName": "sparql-explain-editor",
25
+ "options": {
26
+ "extraContent": "Some extra explain content"
27
+ }
28
+ },
29
+ {
30
+ "guideBlockName": "sparql-results-click-on-iri",
31
+ "options": {
32
+ "iri": "https://swapi.co/resource/planet/25",
33
+ "iriLabel": "rdf:type"
34
+ }
35
+ },
36
+ {
37
+ "guideBlockName": "visualise-sparql-query",
38
+ "options": {
39
+ "useMainMenuNavigation": true,
40
+ "query": "PREFIX voc: <https://swapi.co/vocabulary/>\nPREFIX swapi: <https://swapi.co/resource/>\n\nCONSTRUCT {\n?film swapi:hasCharacter ?person .\n}\nWHERE {\n?film a voc:Film ;\nvoc:character ?person .\n}",
41
+ "queryExtraContent": {
42
+ "en": "The query constructs a graph of films and their characters from the Star Wars API."
43
+ },
44
+ "resultExtraContent": {
45
+ "en": "The graph visualisation displays films as nodes connected to their respective characters."
46
+ }
47
+ }
48
+ },
49
+ {
50
+ "guideBlockName": "guide-end"
51
+ }
52
+ ]
53
+ }
54
+ ]
@@ -0,0 +1,30 @@
1
+ [
2
+ {
3
+ "guideName": {
4
+ "en": "Confirm duplicate RDF file"
5
+ },
6
+ "guideDescription": {
7
+ "en": "Test step for confirming a duplicated RDF file"
8
+ },
9
+ "steps": [
10
+ {
11
+ "guideBlockName": "import-upload-rdf-file",
12
+ "options": {
13
+ "resourceFile": "starwars.ttl"
14
+ }
15
+ },
16
+ {
17
+ "guideBlockName": "import-click-on-import-button"
18
+ },
19
+ {
20
+ "guideBlockName": "import-rdf-file",
21
+ "options": {
22
+ "resourceFile": "starwars.ttl"
23
+ }
24
+ },
25
+ {
26
+ "guideBlockName": "guide-end"
27
+ }
28
+ ]
29
+ }
30
+ ]
@@ -0,0 +1,21 @@
1
+ [
2
+ {
3
+ "guideName": {
4
+ "en": "Import RDF file"
5
+ },
6
+ "guideDescription": {
7
+ "en": "Test steps for importing an RDF file"
8
+ },
9
+ "steps": [
10
+ {
11
+ "guideBlockName": "import-rdf-file",
12
+ "options": {
13
+ "resourceFile": "starwars.ttl"
14
+ }
15
+ },
16
+ {
17
+ "guideBlockName": "guide-end"
18
+ }
19
+ ]
20
+ }
21
+ ]
@@ -0,0 +1,60 @@
1
+ [
2
+ {
3
+ "guideName": {
4
+ "en": "Navigate microfrontends"
5
+ },
6
+ "guideDescription": {
7
+ "en": "Navigate microfrontends"
8
+ },
9
+ "steps": [
10
+ {
11
+ "guideBlockName": "read-only-element",
12
+ "options": {
13
+ "url": "404",
14
+ "elementSelector": "[guide-selector=\"not-found-banner\"]",
15
+ "title": "Navigation",
16
+ "content": "This is a 404 page"
17
+ }
18
+ },
19
+ {
20
+ "guideBlockName": "clickable-element",
21
+ "options": {
22
+ "url": "404",
23
+ "elementSelector": "[guide-selector=\"go-back-home-btn\"]",
24
+ "title": "Navigation",
25
+ "disableNextFlow": true,
26
+ "content": "This is the go back home button"
27
+ }
28
+ },
29
+ {
30
+ "guideBlockName": "clickable-element",
31
+ "options": {
32
+ "elementSelector": "[guide-selector=\"tutorial-container\"]",
33
+ "title": "Navigation",
34
+ "content": "This is the home page"
35
+ }
36
+ },
37
+ {
38
+ "guideBlockName": "read-only-element",
39
+ "options": {
40
+ "url": "sparql-new",
41
+ "elementSelector": "[guide-selector=\"sparql-editor\"]",
42
+ "title": "Navigation",
43
+ "content": "This is the new sparql view"
44
+ }
45
+ },
46
+ {
47
+ "guideBlockName": "read-only-element",
48
+ "options": {
49
+ "url": "import",
50
+ "elementSelector": "[guide-selector=\"uploadRdfFileButton\"]",
51
+ "title": "Navigation",
52
+ "content": "This is the import view"
53
+ }
54
+ },
55
+ {
56
+ "guideBlockName": "guide-end"
57
+ }
58
+ ]
59
+ }
60
+ ]
@@ -0,0 +1,18 @@
1
+ [
2
+ {
3
+ "guideName": {
4
+ "en": "RDF Rank"
5
+ },
6
+ "guideDescription": {
7
+ "en": "Test RDF Rank"
8
+ },
9
+ "steps": [
10
+ {
11
+ "guideBlockName": "rdf-rank-compute-fill"
12
+ },
13
+ {
14
+ "guideBlockName": "guide-end"
15
+ }
16
+ ]
17
+ }
18
+ ]
@@ -0,0 +1,51 @@
1
+ [
2
+ {
3
+ "guideName": {
4
+ "en": "Resources"
5
+ },
6
+ "guideDescription": {
7
+ "en": "Resources"
8
+ },
9
+ "steps": [
10
+ {
11
+ "guideBlockName": "sparql-editor-run-button"
12
+ },
13
+ {
14
+ "guideBlockName": "table-graph-explore",
15
+ "options": {
16
+ "iri": "http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#madeFromGrape",
17
+ "iriLabel": "wine#madeFromGrape",
18
+ "subSteps": [
19
+ {
20
+ "type": "link",
21
+ "iri": "http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#WineGrape",
22
+ "iriLabel": "vin:WineGrape"
23
+ },
24
+ {
25
+ "type": "table"
26
+ },
27
+ {
28
+ "type": "role",
29
+ "role": "all",
30
+ "extraContent": {
31
+ "en": "This is an extra content."
32
+ }
33
+ },
34
+ {
35
+ "type": "visual",
36
+ "iri": "http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#WineGrape",
37
+ "iriLabel": "vin:WineGrape"
38
+ },
39
+ {
40
+ "type": "row",
41
+ "row": 2
42
+ }
43
+ ]
44
+ }
45
+ },
46
+ {
47
+ "guideBlockName": "guide-end"
48
+ }
49
+ ]
50
+ }
51
+ ]
@@ -0,0 +1,25 @@
1
+ [
2
+ {
3
+ "guideName": {
4
+ "en": "Resources"
5
+ },
6
+ "guideDescription": {
7
+ "en": "Resources"
8
+ },
9
+ "steps": [
10
+ {
11
+ "guideBlockName": "sparql-editor-run-button"
12
+ },
13
+ {
14
+ "guideBlockName": "table-graph-explore",
15
+ "options": {
16
+ "iri": "http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#madeFromGrape",
17
+ "iriLabel": "wine#madeFromGrape"
18
+ }
19
+ },
20
+ {
21
+ "guideBlockName": "guide-end"
22
+ }
23
+ ]
24
+ }
25
+ ]
@@ -0,0 +1,39 @@
1
+ [
2
+ {
3
+ "guideName": {
4
+ "en": "Create visual graph config guide"
5
+ },
6
+ "steps": [
7
+ {
8
+ "guideBlockName": "visual-graph-config-create",
9
+ "options": {
10
+ "configDescription": "my description",
11
+ "configHint": "my hint",
12
+ "shareConfig": true,
13
+ "linkLimit": 200,
14
+ "expandIri": "http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#WineGrape",
15
+ "iriLabel": "WineGrape",
16
+ "tabConfig": [
17
+ {
18
+ "tabName": "startingPoint",
19
+ "startingPoint": "fixed",
20
+ "searchTerm": "MerlotGrape",
21
+ "iri": "http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#MerlotGrape"
22
+ },
23
+ {
24
+ "tabName": "graphExpansion",
25
+ "query": "construct {\n ?node ?p ?o .\n ?s ?p ?node .\n} where {\n { ?node ?p ?o . }\n union\n { ?s ?p ?node . }\n}",
26
+ "queryExtraContent": "The graph expansion query defines what happens when a node is expanded in the visual graph. Expanding a node loads additional resources connected to it and adds them to the graph as new nodes and edges.",
27
+ "sampleQueryContent": "The <b>Sample queries</b> includes example graph expansion queries. <b>Unfiltered object properties</b> shows all object property connections of a node, while <b>Filtered object properties</b> shows only selected ones.",
28
+ "includeInferredData": true,
29
+ "expandResultsOverOwl": true
30
+ }
31
+ ]
32
+ }
33
+ },
34
+ {
35
+ "guideBlockName": "guide-end"
36
+ }
37
+ ]
38
+ }
39
+ ]
@@ -0,0 +1,85 @@
1
+ [
2
+ {
3
+ "guideName": {
4
+ "en": "Visual Graph"
5
+ },
6
+ "guideDescription": {
7
+ "en": "Test Visual Graph"
8
+ },
9
+ "steps": [
10
+ {
11
+ "guideBlockName": "visual-graph",
12
+ "options": {
13
+ "easyGraphInputText": "wine",
14
+ "iri": "http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#Wine",
15
+ "iriLabel": "wine"
16
+ }
17
+ },
18
+ {
19
+ "guideBlockName": "visual-graph-node-focus",
20
+ "options": {
21
+ "iri": "http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#Wine",
22
+ "iriLabel": "wine"
23
+ }
24
+ },
25
+ {
26
+ "guideBlockName": "visual-graph-link-focus",
27
+ "options": {
28
+ "fromIri": "http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#Wine",
29
+ "fromIriLabel": "Wine",
30
+ "toIri": "http://www.w3.org/TR/2003/PR-owl-guide-20031209/food#PotableLiquid",
31
+ "toIriLabel": "Potable Liquid",
32
+ "iriLabel": "type",
33
+ "extraContent": {
34
+ "en": "This tells us that one of the RDF types for <b>{{fromIriLabel}}</b> is <b>{{toIriLabel}}</b>."
35
+ }
36
+ }
37
+ },
38
+ {
39
+ "guideBlockName": "visual-graph-properties",
40
+ "options": {
41
+ "iri": "http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine",
42
+ "iriLabel": "Wine",
43
+ "focusProperties": [
44
+ {
45
+ "property": "types",
46
+ "message": {
47
+ "en": "We can see that <b>{{iriLabel}}</b> has a single type, <b>owl:Class</b>."
48
+ }
49
+ },
50
+ {
51
+ "property": "rdfs:label",
52
+ "message": {
53
+ "en": "This shows the label of <b>{{iriLabel}}</b>."
54
+ }
55
+ },
56
+ {
57
+ "property": "rdfs:label",
58
+ "skipGenericMessage": true,
59
+ "message": {
60
+ "en": "This shows the label of <b>{{iriLabel}}</b>."
61
+ }
62
+ }
63
+ ]
64
+ }
65
+ },
66
+ {
67
+ "guideBlockName": "visual-graph-expand",
68
+ "options": {
69
+ "iri": "http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#WhitehallLanePrimavera",
70
+ "iriLabel": "Whitehall Lane Primavera"
71
+ }
72
+ },
73
+ {
74
+ "guideBlockName": "visual-graph-node-focus",
75
+ "options": {
76
+ "iri": "http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#NapaRegion",
77
+ "iriLabel": "Napa Region"
78
+ }
79
+ },
80
+ {
81
+ "guideBlockName": "guide-end"
82
+ }
83
+ ]
84
+ }
85
+ ]
@@ -0,0 +1,18 @@
1
+ [
2
+ {
3
+ "guideName": {
4
+ "en": "Welcome"
5
+ },
6
+ "guideDescription": {
7
+ "en": "Test welcome guide"
8
+ },
9
+ "steps": [
10
+ {
11
+ "guideBlockName": "welcome"
12
+ },
13
+ {
14
+ "guideBlockName": "guide-end"
15
+ }
16
+ ]
17
+ }
18
+ ]