vocexcel 0.8.5__tar.gz

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 (98) hide show
  1. vocexcel-0.8.5/LICENSE +29 -0
  2. vocexcel-0.8.5/PKG-INFO +21 -0
  3. vocexcel-0.8.5/pyproject.toml +89 -0
  4. vocexcel-0.8.5/tests/.DS_Store +0 -0
  5. vocexcel-0.8.5/tests/README.md +33 -0
  6. vocexcel-0.8.5/tests/data/.DS_Store +0 -0
  7. vocexcel-0.8.5/tests/data/030_eg-invalid.xlsx +0 -0
  8. vocexcel-0.8.5/tests/data/030_eg-invalid2.xlsx +0 -0
  9. vocexcel-0.8.5/tests/data/030_eg-valid.xlsx +0 -0
  10. vocexcel-0.8.5/tests/data/030_languages.xlsx +0 -0
  11. vocexcel-0.8.5/tests/data/040_complex.xlsx +0 -0
  12. vocexcel-0.8.5/tests/data/040_complex_invalid.xlsx +0 -0
  13. vocexcel-0.8.5/tests/data/040_exhaustive.xlsx +0 -0
  14. vocexcel-0.8.5/tests/data/040_exhaustive_comparison.ttl +57 -0
  15. vocexcel-0.8.5/tests/data/040_minimal.xlsx +0 -0
  16. vocexcel-0.8.5/tests/data/040_minimal_comparison.ttl +23 -0
  17. vocexcel-0.8.5/tests/data/040_simple.xlsx +0 -0
  18. vocexcel-0.8.5/tests/data/041_exhaustive.xlsx +0 -0
  19. vocexcel-0.8.5/tests/data/041_exhaustive_comparison.ttl +56 -0
  20. vocexcel-0.8.5/tests/data/041_simple_valid.xlsx +0 -0
  21. vocexcel-0.8.5/tests/data/042_simple.xlsx +0 -0
  22. vocexcel-0.8.5/tests/data/043_exhaustive.ttl +57 -0
  23. vocexcel-0.8.5/tests/data/043_exhaustive.xlsx +0 -0
  24. vocexcel-0.8.5/tests/data/043_prefix_test.xlsx +0 -0
  25. vocexcel-0.8.5/tests/data/043_simple_valid.xlsx +0 -0
  26. vocexcel-0.8.5/tests/data/060_simple.xlsx +0 -0
  27. vocexcel-0.8.5/tests/data/060_simple2.xlsx +0 -0
  28. vocexcel-0.8.5/tests/data/060_simple2_i.xlsx +0 -0
  29. vocexcel-0.8.5/tests/data/060_simple3_i.xlsx +0 -0
  30. vocexcel-0.8.5/tests/data/062_simple1.xlsx +0 -0
  31. vocexcel-0.8.5/tests/data/063_simple1.xlsx +0 -0
  32. vocexcel-0.8.5/tests/data/070_long.xlsx +0 -0
  33. vocexcel-0.8.5/tests/data/070_simple1.xlsx +0 -0
  34. vocexcel-0.8.5/tests/data/071_demo.xlsx +0 -0
  35. vocexcel-0.8.5/tests/data/080.xlsx +0 -0
  36. vocexcel-0.8.5/tests/data/085.xlsx +0 -0
  37. vocexcel-0.8.5/tests/data/085GA.xlsx +0 -0
  38. vocexcel-0.8.5/tests/data/085GA_rdf.ttl +404 -0
  39. vocexcel-0.8.5/tests/data/085_invalid.xlsx +0 -0
  40. vocexcel-0.8.5/tests/data/085_invalid2.xlsx +0 -0
  41. vocexcel-0.8.5/tests/data/085_rdf.ttl +436 -0
  42. vocexcel-0.8.5/tests/data/085_rdf_empty.ttl +0 -0
  43. vocexcel-0.8.5/tests/data/085_rdf_invalid.ttl +436 -0
  44. vocexcel-0.8.5/tests/data/eg-invalid.ttl +345 -0
  45. vocexcel-0.8.5/tests/data/eg-invalid2.ttl +420 -0
  46. vocexcel-0.8.5/tests/data/eg-valid.xml +420 -0
  47. vocexcel-0.8.5/tests/data/vocpub-4.10.ttl +534 -0
  48. vocexcel-0.8.5/tests/data/vocpub-4.6.ttl +546 -0
  49. vocexcel-0.8.5/tests/data/vocpub-4.7.ttl +548 -0
  50. vocexcel-0.8.5/tests/data/vocpub-4.8.ttl +530 -0
  51. vocexcel-0.8.5/tests/data/vocpub-4.9.ttl +531 -0
  52. vocexcel-0.8.5/tests/test_allowed_versions.py +18 -0
  53. vocexcel-0.8.5/tests/test_models.py +148 -0
  54. vocexcel-0.8.5/tests/test_multilingual.py +25 -0
  55. vocexcel-0.8.5/tests/test_output.py +49 -0
  56. vocexcel-0.8.5/tests/test_rdf_to_excel.py +123 -0
  57. vocexcel-0.8.5/tests/test_template_040.py +53 -0
  58. vocexcel-0.8.5/tests/test_template_041.py +49 -0
  59. vocexcel-0.8.5/tests/test_template_042.py +41 -0
  60. vocexcel-0.8.5/tests/test_template_043.py +64 -0
  61. vocexcel-0.8.5/tests/test_template_060.py +268 -0
  62. vocexcel-0.8.5/tests/test_template_070.py +192 -0
  63. vocexcel-0.8.5/tests/test_template_071.py +48 -0
  64. vocexcel-0.8.5/tests/test_template_085.py +120 -0
  65. vocexcel-0.8.5/tests/test_validation.py +42 -0
  66. vocexcel-0.8.5/vocexcel/.DS_Store +0 -0
  67. vocexcel-0.8.5/vocexcel/__init__.py +1 -0
  68. vocexcel-0.8.5/vocexcel/convert.py +316 -0
  69. vocexcel-0.8.5/vocexcel/convert_021.py +69 -0
  70. vocexcel-0.8.5/vocexcel/convert_030.py +90 -0
  71. vocexcel-0.8.5/vocexcel/convert_040.py +92 -0
  72. vocexcel-0.8.5/vocexcel/convert_043.py +257 -0
  73. vocexcel-0.8.5/vocexcel/convert_060.py +340 -0
  74. vocexcel-0.8.5/vocexcel/convert_063.py +418 -0
  75. vocexcel-0.8.5/vocexcel/convert_070.py +418 -0
  76. vocexcel-0.8.5/vocexcel/convert_071.py +217 -0
  77. vocexcel-0.8.5/vocexcel/convert_085.py +740 -0
  78. vocexcel-0.8.5/vocexcel/convert_gsheets.py +371 -0
  79. vocexcel-0.8.5/vocexcel/models.py +357 -0
  80. vocexcel-0.8.5/vocexcel/profiles.py +97 -0
  81. vocexcel-0.8.5/vocexcel/settings.py +21 -0
  82. vocexcel-0.8.5/vocexcel/templates/.DS_Store +0 -0
  83. vocexcel-0.8.5/vocexcel/templates/VocExcel-template-030.xlsx +0 -0
  84. vocexcel-0.8.5/vocexcel/templates/VocExcel-template-040.xlsx +0 -0
  85. vocexcel-0.8.5/vocexcel/templates/VocExcel-template-041.xlsx +0 -0
  86. vocexcel-0.8.5/vocexcel/templates/VocExcel-template-042.xlsx +0 -0
  87. vocexcel-0.8.5/vocexcel/templates/VocExcel-template-043.xlsx +0 -0
  88. vocexcel-0.8.5/vocexcel/templates/VocExcel-template-050.xlsx +0 -0
  89. vocexcel-0.8.5/vocexcel/templates/VocExcel-template-060.xlsx +0 -0
  90. vocexcel-0.8.5/vocexcel/templates/VocExcel-template-062.xlsx +0 -0
  91. vocexcel-0.8.5/vocexcel/templates/VocExcel-template-063.xlsx +0 -0
  92. vocexcel-0.8.5/vocexcel/templates/VocExcel-template-070.xlsx +0 -0
  93. vocexcel-0.8.5/vocexcel/templates/VocExcel-template-071-GA.xlsx +0 -0
  94. vocexcel-0.8.5/vocexcel/templates/VocExcel-template-071.xlsx +0 -0
  95. vocexcel-0.8.5/vocexcel/templates/VocExcel-template-085-GA.xlsx +0 -0
  96. vocexcel-0.8.5/vocexcel/templates/VocExcel-template-085.xlsx +0 -0
  97. vocexcel-0.8.5/vocexcel/utils.py +450 -0
  98. vocexcel-0.8.5/vocexcel/vocpub-5.1.ttl +538 -0
vocexcel-0.8.5/LICENSE ADDED
@@ -0,0 +1,29 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2002-2023, RDFLib VocExcel Team
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ 2. Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ 3. Neither the name of the copyright holder nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,21 @@
1
+ Metadata-Version: 2.1
2
+ Name: vocexcel
3
+ Version: 0.8.5
4
+ Summary: Another Excel to RDF converter for SKOS vocabs, but one that include profile-based validation of results.
5
+ Author-Email: Nicholas Car <nick@kurrawong.ai>
6
+ Requires-Python: <4.0.0,>=3.12
7
+ Requires-Dist: openpyxl<4.0.0,>=3.0.9
8
+ Requires-Dist: rdflib<8.0.0,>=7.0.0
9
+ Requires-Dist: pydantic<2.0.0,>=1.9.0
10
+ Requires-Dist: pyshacl<1.0.0,>=0.18.1
11
+ Requires-Dist: dateutils<1.0.0,>=0.6.12
12
+ Requires-Dist: colorama<1.0.0,>=0.4.4
13
+ Requires-Dist: pytest<8.0.0,>=7.2.0
14
+ Requires-Dist: setuptools<71.0.0,>=70.0.0
15
+ Requires-Dist: pipdeptree<3.0.0,>=2.3.3
16
+ Requires-Dist: jinja2<4.0.0,>=3.1.2
17
+ Requires-Dist: mangum<1.0.0,>=0.17.0
18
+ Requires-Dist: black<26.0.0,>=25.1.0
19
+ Requires-Dist: fastapi>=0.115.12
20
+ Requires-Dist: python-multipart>=0.0.20
21
+
@@ -0,0 +1,89 @@
1
+ [project]
2
+ name = "vocexcel"
3
+ version = "0.8.5"
4
+ description = "Another Excel to RDF converter for SKOS vocabs, but one that include profile-based validation of results."
5
+ authors = [
6
+ { name = "Nicholas Car", email = "nick@kurrawong.ai" },
7
+ ]
8
+ requires-python = "<4.0.0,>=3.12"
9
+ dependencies = [
10
+ "openpyxl<4.0.0,>=3.0.9",
11
+ "rdflib<8.0.0,>=7.0.0",
12
+ "pydantic<2.0.0,>=1.9.0",
13
+ "pyshacl<1.0.0,>=0.18.1",
14
+ "dateutils<1.0.0,>=0.6.12",
15
+ "colorama<1.0.0,>=0.4.4",
16
+ "pytest<8.0.0,>=7.2.0",
17
+ "setuptools<71.0.0,>=70.0.0",
18
+ "pipdeptree<3.0.0,>=2.3.3",
19
+ "jinja2<4.0.0,>=3.1.2",
20
+ "mangum<1.0.0,>=0.17.0",
21
+ "black<26.0.0,>=25.1.0",
22
+ "fastapi>=0.115.12",
23
+ "python-multipart>=0.0.20",
24
+ ]
25
+
26
+ [project.scripts]
27
+ vocexcel = "vocexcel.convert:main"
28
+
29
+ [tool.poetry.dependencies]
30
+ python = ">=3.12,<4.0.0"
31
+ openpyxl = "^3.0.9"
32
+ rdflib = "^7.0.0"
33
+ pydantic = "^1.9.0"
34
+ pyshacl = "^0.18.1"
35
+ dateutils = "^0.6.12"
36
+ colorama = "^0.4.4"
37
+ pytest = "^7.2.0"
38
+ setuptools = "^70.0.0"
39
+ google-api-python-client = "^2.51.0"
40
+ pipdeptree = "^2.3.3"
41
+ jinja2 = "^3.1.2"
42
+ mangum = "^0.17.0"
43
+ black = "^25.1.0"
44
+
45
+ [tool.poetry.group.web.dependencies]
46
+ uvicorn = "^0.22.0"
47
+ python-multipart = "^0.0.6"
48
+ fastapi = "^0.104.1"
49
+
50
+ [tool.poetry.group.dev.dependencies]
51
+ python-dotenv = "^1.0.0"
52
+ httpx = "^0.24.1"
53
+ ruff = "^0.0.277"
54
+
55
+ [tool.poetry.scripts]
56
+ vocexcel = "vocexcel.convert:main"
57
+
58
+ [tool.ruff.lint]
59
+ select = [
60
+ "I001",
61
+ "I002",
62
+ ]
63
+
64
+ [tool.pytest.ini_options]
65
+ pythonpath = [
66
+ ".",
67
+ ]
68
+
69
+ [poetry.group.dev.dependencies]
70
+ pytest = "^7.2.0"
71
+ black = "^22.1.0"
72
+
73
+ [build-system]
74
+ requires = [
75
+ "pdm-backend",
76
+ ]
77
+ build-backend = "pdm.backend"
78
+
79
+ [dependency-groups]
80
+ web = [
81
+ "uvicorn<1.0.0,>=0.22.0",
82
+ "python-multipart<1.0.0,>=0.0.6",
83
+ "fastapi<1.0.0,>=0.104.1",
84
+ ]
85
+ dev = [
86
+ "python-dotenv<2.0.0,>=1.0.0",
87
+ "httpx<1.0.0,>=0.24.1",
88
+ "ruff<1.0.0,>=0.0.277",
89
+ ]
Binary file
@@ -0,0 +1,33 @@
1
+ # Tests and Example Excel and RDF files
2
+
3
+ ## What to Expect
4
+ This folder contains quite a few examples of simple and complex vocabularies and different versions of template.
5
+
6
+ The most recent vocpub template model is 0.4.2 so for current use, it's recommended to look at the simple valid and complex valid 042 examples. These contain excel sheets with complete vocabularies for reference.
7
+
8
+ For multiple languages, refer to the 030 languages valid examples which shows how to have multiple inputs with other languages.
9
+
10
+ The valid Excel and RDF files here should convert without errors. The invalid ones should give the following errors:
11
+
12
+ ### Excel to RDF:
13
+ * **eg-invalid.xlsx**
14
+ * _Error: ConceptScheme processing error: 1 validation error for ConceptScheme title none is not an allowed value (type=type_error.none.not_allowed)_
15
+ * the vocabulary is missing a title!
16
+ * **eg-invalid2.xlsx**
17
+ * _Error: Concept processing error, row 17, error: 1 validation error for Concept uri URL invalid, extra characters found after valid URL: ' xxx' (type=value_error.url.extra; extra= xxx)_
18
+ * the Concept on line 17 has an invalid URI!
19
+ * **040_complexexample_invalid.xlsx**
20
+ * In this case, this file has cells containing invalid data. There are numbers instead of URI's in the children and close match cells
21
+ * children
22
+ Item 1 failed with messages HTTP IRIs must start with 'http' or 'https' (type=assertion_error)
23
+ close_match
24
+ Item 1 failed with messages HTTP IRIs must start with 'http' or 'https' and Item 2 failed with messages HTTP IRIs must start with 'http' or 'https' and Item 3 failed with messages HTTP IRIs must start with '
25
+ http' or 'https' and Item 4 failed with messages HTTP IRIs must start with 'http' or 'https' (type=assertion_error)
26
+
27
+ The RDF to Excel conversion function is being re-implemented so these don't work just for the moment.
28
+
29
+ ### RDF to Excel
30
+ * **eg-invalid.ttl**
31
+ * _Error: The file you supplied is not valid according to the vocpub profile_ and then a bunch of messages about why it's invalid
32
+ * **eg-invalid2.ttl**
33
+ * _Error: Error while uploading_ or similar. The file is valid RDF but the file extension indicates the Turtle format but it's actually in the XML format
Binary file
@@ -0,0 +1,57 @@
1
+ @prefix cs: <http://example.org/exhaustive_concept_scheme_vocabulary_iri> .
2
+ @prefix dcat: <http://www.w3.org/ns/dcat#> .
3
+ @prefix dcterms: <http://purl.org/dc/terms/> .
4
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
5
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
6
+ @prefix skos: <http://www.w3.org/2004/02/skos/core#> .
7
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
8
+
9
+ <http://example.org/example_collection_uri> a skos:Collection ;
10
+ dcterms:identifier "example_collection_uri"^^xsd:token ;
11
+ dcterms:isPartOf cs: ;
12
+ dcterms:provenance "Example Collection Provenance"@en ;
13
+ skos:definition "Example Collection Definition"@en ;
14
+ skos:member <http://example.org/example_collection_member_1>,
15
+ <http://example.org/example_collection_member_2>,
16
+ <http://example.org/example_collection_member_3> ;
17
+ skos:prefLabel "Example Collection Preferred Label"@en .
18
+
19
+ <http://example.org/exhaustive_children_example_1> skos:broader <http://example.org/exhaustive_concept_iri> .
20
+
21
+ <http://example.org/exhaustive_children_example_2> skos:broader <http://example.org/exhaustive_concept_iri> .
22
+
23
+ <http://example.org/exhaustive_children_example_3> skos:broader <http://example.org/exhaustive_concept_iri> .
24
+
25
+ cs: a skos:ConceptScheme ;
26
+ dcterms:identifier "exhaustive_concept_scheme_vocabulary_iri"^^xsd:token ;
27
+ dcterms:created "2022-03-07"^^xsd:date ;
28
+ dcterms:creator <https://linked.data.gov.au/org/cgi> ;
29
+ dcterms:hasPart <http://example.org/example_collection_uri> ;
30
+ dcterms:modified "2022-03-07"^^xsd:date ;
31
+ dcterms:provenance "Example Provenance"@en ;
32
+ dcterms:publisher <https://linked.data.gov.au/org/cgi> ;
33
+ rdfs:seeAlso "1.2.3.4" ;
34
+ owl:versionInfo "0.1" ;
35
+ skos:definition "Exhaustive Vocabulary Description"@en ;
36
+ skos:hasTopConcept <http://example.org/exhaustive_concept_iri> ;
37
+ skos:prefLabel "Exhaustive Vocabulary Title"@en ;
38
+ dcat:contactPoint "Example Custodian" .
39
+
40
+ <http://example.org/exhaustive_concept_iri> a skos:Concept ;
41
+ dcterms:identifier "exhaustive_concept_iri"^^xsd:token ;
42
+ dcterms:provenance "Example Exhaustive Provenance"@en ;
43
+ rdfs:isDefinedBy <http://example.org/exhaustive_concept_source_vocabulary_iri> ;
44
+ skos:altLabel "example exhaustive concept alternate label"@en ;
45
+ skos:broadMatch <http://example.org/example_broad_match> ;
46
+ skos:closeMatch <http://example.org/example_close_match> ;
47
+ skos:definition "example exhaustive concept definition"@en ;
48
+ skos:exactMatch <http://example.org/example_exact_match> ;
49
+ skos:inScheme cs: ;
50
+ skos:narrowMatch <http://example.org/example_narrow_match> ;
51
+ skos:narrower <http://example.org/exhaustive_children_example_1>,
52
+ <http://example.org/exhaustive_children_example_2>,
53
+ <http://example.org/exhaustive_children_example_3> ;
54
+ skos:prefLabel "example exhaustive preferred label"@en ;
55
+ skos:relatedMatch <http://example.org/example_related_match> ;
56
+ skos:topConceptOf cs: .
57
+
@@ -0,0 +1,23 @@
1
+ @prefix cs: <http://example.org/vocabulary_iri> .
2
+ @prefix dcterms: <http://purl.org/dc/terms/> .
3
+ @prefix skos: <http://www.w3.org/2004/02/skos/core#> .
4
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
5
+
6
+ <http://example/org/example1> a skos:Concept ;
7
+ dcterms:identifier "example1"^^xsd:token ;
8
+ skos:definition "example concept definition"@en ;
9
+ skos:inScheme cs: ;
10
+ skos:prefLabel "example preferred concept label"@en ;
11
+ skos:topConceptOf cs: .
12
+
13
+ cs: a skos:ConceptScheme ;
14
+ dcterms:identifier "vocabulary_iri"^^xsd:token ;
15
+ dcterms:created "2022-03-07"^^xsd:date ;
16
+ dcterms:creator <https://linked.data.gov.au/org/cgi> ;
17
+ dcterms:modified "2022-03-07"^^xsd:date ;
18
+ dcterms:provenance "Example Provenance"@en ;
19
+ dcterms:publisher <https://linked.data.gov.au/org/cgi> ;
20
+ skos:definition "Example Description"@en ;
21
+ skos:hasTopConcept <http://example/org/example1> ;
22
+ skos:prefLabel "Example Title"@en .
23
+
@@ -0,0 +1,56 @@
1
+ @prefix cs: <http://example.org/exhaustive_concept_scheme_vocabulary_iri> .
2
+ @prefix dcat: <http://www.w3.org/ns/dcat#> .
3
+ @prefix dcterms: <http://purl.org/dc/terms/> .
4
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
5
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
6
+ @prefix skos: <http://www.w3.org/2004/02/skos/core#> .
7
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
8
+
9
+ <http://example.org/example_collection_uri> a skos:Collection ;
10
+ dcterms:identifier "example_collection_uri"^^xsd:token ;
11
+ dcterms:isPartOf cs: ;
12
+ dcterms:provenance "Example Collection Provenance"@en ;
13
+ skos:definition "Example Collection Definition"@en ;
14
+ skos:member <http://example.org/example_collection_member_1>,
15
+ <http://example.org/example_collection_member_2>,
16
+ <http://example.org/example_collection_member_3> ;
17
+ skos:prefLabel "Example Collection Preferred Label"@en .
18
+
19
+ <http://example.org/exhaustive_children_example_1> skos:broader <http://example.org/exhaustive_concept_iri> .
20
+
21
+ <http://example.org/exhaustive_children_example_2> skos:broader <http://example.org/exhaustive_concept_iri> .
22
+
23
+ <http://example.org/exhaustive_children_example_3> skos:broader <http://example.org/exhaustive_concept_iri> .
24
+
25
+ cs: a skos:ConceptScheme ;
26
+ dcterms:created "2022-03-07"^^xsd:date ;
27
+ dcterms:creator <https://linked.data.gov.au/org/cgi> ;
28
+ dcterms:hasPart <http://example.org/example_collection_uri> ;
29
+ dcterms:identifier "exhaustive_concept_scheme_vocabulary_iri"^^xsd:token ;
30
+ dcterms:modified "2022-03-07"^^xsd:date ;
31
+ dcterms:provenance "Example Provenance"@en ;
32
+ dcterms:publisher <https://linked.data.gov.au/org/cgi> ;
33
+ rdfs:seeAlso "1.2.3.4" ;
34
+ owl:versionInfo "0.1" ;
35
+ skos:definition "Exhaustive Vocabulary Description"@en ;
36
+ skos:hasTopConcept <http://example.org/exhaustive_concept_iri> ;
37
+ skos:prefLabel "Exhaustive Vocabulary Title"@en ;
38
+ dcat:contactPoint "Example Custodian" .
39
+
40
+ <http://example.org/exhaustive_concept_iri> a skos:Concept ;
41
+ dcterms:identifier "exhaustive_concept_iri"^^xsd:token ;
42
+ dcterms:provenance "Example Exhaustive Provenance"@en ;
43
+ rdfs:isDefinedBy <http://example.org/exhaustive_concept_source_vocabulary_iri> ;
44
+ skos:altLabel "example exhaustive concept alternate label"@en ;
45
+ skos:broadMatch <http://example.org/example_broad_match> ;
46
+ skos:closeMatch <http://example.org/example_close_match> ;
47
+ skos:definition "example exhaustive concept definition"@en ;
48
+ skos:exactMatch <http://example.org/example_exact_match> ;
49
+ skos:inScheme cs: ;
50
+ skos:narrowMatch <http://example.org/example_narrow_match> ;
51
+ skos:narrower <http://example.org/exhaustive_children_example_1>,
52
+ <http://example.org/exhaustive_children_example_2>,
53
+ <http://example.org/exhaustive_children_example_3> ;
54
+ skos:prefLabel "example exhaustive preferred label"@en ;
55
+ skos:relatedMatch <http://example.org/example_related_match> ;
56
+ skos:topConceptOf cs: .
@@ -0,0 +1,57 @@
1
+ @prefix cs: <http://example.org/exhaustive_concept_scheme_vocabulary_iri> .
2
+ @prefix dcat: <http://www.w3.org/ns/dcat#> .
3
+ @prefix dcterms: <http://purl.org/dc/terms/> .
4
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
5
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
6
+ @prefix skos: <http://www.w3.org/2004/02/skos/core#> .
7
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
8
+
9
+ <http://example.org/example_collection_uri> a skos:Collection ;
10
+ dcterms:identifier "example_collection_uri"^^xsd:token ;
11
+ dcterms:isPartOf cs: ;
12
+ dcterms:provenance "Example Collection Provenance"@en ;
13
+ skos:definition "Example Collection Definition"@en ;
14
+ skos:member <http://example.org/example_collection_member_1>,
15
+ <http://example.org/example_collection_member_2>,
16
+ <http://example.org/example_collection_member_3> ;
17
+ skos:prefLabel "Example Collection Preferred Label"@en .
18
+
19
+ <http://example.org/exhaustive_children_example_1> skos:broader <http://example.org/exhaustive_concept_iri> .
20
+
21
+ <http://example.org/exhaustive_children_example_2> skos:broader <http://example.org/exhaustive_concept_iri> .
22
+
23
+ <http://example.org/exhaustive_children_example_3> skos:broader <http://example.org/exhaustive_concept_iri> .
24
+
25
+ cs: a skos:ConceptScheme ;
26
+ dcterms:identifier "exhaustive_concept_scheme_vocabulary_iri"^^xsd:token ;
27
+ dcterms:created "2022-03-07"^^xsd:date ;
28
+ dcterms:creator <https://linked.data.gov.au/org/cgi> ;
29
+ dcterms:hasPart <http://example.org/example_collection_uri> ;
30
+ dcterms:modified "2022-03-07"^^xsd:date ;
31
+ dcterms:provenance "Example Provenance"@en ;
32
+ dcterms:publisher <https://linked.data.gov.au/org/cgi> ;
33
+ rdfs:seeAlso "1.2.3.4" ;
34
+ owl:versionInfo "0.1" ;
35
+ skos:definition "Exhaustive Vocabulary Description"@en ;
36
+ skos:hasTopConcept <http://example.org/exhaustive_concept_iri> ;
37
+ skos:prefLabel "Exhaustive Vocabulary Title"@en ;
38
+ dcat:contactPoint "Example Custodian" .
39
+
40
+ <http://example.org/exhaustive_concept_iri> a skos:Concept ;
41
+ dcterms:identifier "exhaustive_concept_iri"^^xsd:token ;
42
+ dcterms:provenance "Example Exhaustive Provenance"@en ;
43
+ rdfs:isDefinedBy <http://example.org/exhaustive_concept_source_vocabulary_iri> ;
44
+ skos:altLabel "example exhaustive concept alternate label"@en ;
45
+ skos:broadMatch <http://example.org/example_broad_match> ;
46
+ skos:closeMatch <http://example.org/example_close_match> ;
47
+ skos:definition "example exhaustive concept definition"@en ;
48
+ skos:exactMatch <http://example.org/example_exact_match> ;
49
+ skos:inScheme cs: ;
50
+ skos:narrowMatch <http://example.org/example_narrow_match> ;
51
+ skos:narrower <http://example.org/exhaustive_children_example_1>,
52
+ <http://example.org/exhaustive_children_example_2>,
53
+ <http://example.org/exhaustive_children_example_3> ;
54
+ skos:prefLabel "example exhaustive preferred label"@en ;
55
+ skos:relatedMatch <http://example.org/example_related_match> ;
56
+ skos:topConceptOf cs: .
57
+
Binary file
Binary file
Binary file
Binary file
Binary file