oldaplib 0.3.11__tar.gz → 0.3.13__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 (164) hide show
  1. {oldaplib-0.3.11 → oldaplib-0.3.13}/PKG-INFO +8 -1
  2. {oldaplib-0.3.11 → oldaplib-0.3.13}/README.md +7 -0
  3. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/ontologies/shared.trig +157 -6
  4. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/datamodel.py +4 -1
  5. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/haspropertyattr.py +2 -2
  6. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/hasproperty.py +12 -6
  7. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/objectfactory.py +18 -14
  8. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/propertyclass.py +14 -8
  9. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/resourceclass.py +4 -4
  10. oldaplib-0.3.13/oldaplib/src/version.py +1 -0
  11. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_objectfactory.py +41 -77
  12. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/instances_test.trig +5 -5
  13. {oldaplib-0.3.11 → oldaplib-0.3.13}/pyproject.toml +1 -1
  14. oldaplib-0.3.11/oldaplib/src/version.py +0 -1
  15. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/__init__.py +0 -0
  16. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/apps/load_list.py +0 -0
  17. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/ontologies/admin-testing.trig +0 -0
  18. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/ontologies/admin.trig +0 -0
  19. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/ontologies/example.trig +0 -0
  20. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/ontologies/oldap.trig +0 -0
  21. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/ontologies/oldap.ttl +0 -0
  22. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/ontologies/standard/.gitsave +0 -0
  23. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/__init__.py +0 -0
  24. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/cachesingleton.py +0 -0
  25. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/connection.py +0 -0
  26. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/dtypes/__init__.py +0 -0
  27. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/dtypes/bnode.py +0 -0
  28. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/dtypes/languagein.py +0 -0
  29. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/dtypes/namespaceiri.py +0 -0
  30. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/dtypes/rdfset.py +0 -0
  31. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/dtypes/xsdset.py +0 -0
  32. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/__init__.py +0 -0
  33. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/action.py +0 -0
  34. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/adminpermissions.py +0 -0
  35. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/attributeclass.py +0 -0
  36. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/datapermissions.py +0 -0
  37. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/externalontologyattr.py +0 -0
  38. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/language.py +0 -0
  39. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/oldaplistattr.py +0 -0
  40. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/oldaplistnodeattr.py +0 -0
  41. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/owlpropertytype.py +0 -0
  42. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/permissionsetattr.py +0 -0
  43. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/projectattr.py +0 -0
  44. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/propertyclassattr.py +0 -0
  45. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/resourceclassattr.py +0 -0
  46. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/sparql_result_format.py +0 -0
  47. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/userattr.py +0 -0
  48. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/xsd_datatypes.py +0 -0
  49. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/externalontology.py +0 -0
  50. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/globalconfig.py +0 -0
  51. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/Notify.py +0 -0
  52. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/__init__.py +0 -0
  53. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/attributechange.py +0 -0
  54. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/context.py +0 -0
  55. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/convert2datatype.py +0 -0
  56. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/irincname.py +0 -0
  57. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/json_encoder.py +0 -0
  58. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/langstring.py +0 -0
  59. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/numeric.py +0 -0
  60. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/observable_dict.py +0 -0
  61. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/observable_set.py +0 -0
  62. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/oldaperror.py +0 -0
  63. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/query_processor.py +0 -0
  64. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/semantic_version.py +0 -0
  65. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/serializeableset.py +0 -0
  66. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/serializer.py +0 -0
  67. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/singletonmeta.py +0 -0
  68. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/tools.py +0 -0
  69. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/iconnection.py +0 -0
  70. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/in_project.py +0 -0
  71. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/model.py +0 -0
  72. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/oldaplist.py +0 -0
  73. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/oldaplist_helpers.py +0 -0
  74. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/oldaplistnode.py +0 -0
  75. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/oldaplogging.py +0 -0
  76. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/permissionset.py +0 -0
  77. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/project.py +0 -0
  78. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/user.py +0 -0
  79. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/userdataclass.py +0 -0
  80. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/__init__.py +0 -0
  81. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/floatingpoint.py +0 -0
  82. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/iri.py +0 -0
  83. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd.py +0 -0
  84. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_anyuri.py +0 -0
  85. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_base64binary.py +0 -0
  86. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_boolean.py +0 -0
  87. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_byte.py +0 -0
  88. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_date.py +0 -0
  89. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_datetime.py +0 -0
  90. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_datetimestamp.py +0 -0
  91. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_decimal.py +0 -0
  92. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_double.py +0 -0
  93. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_duration.py +0 -0
  94. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_float.py +0 -0
  95. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_gday.py +0 -0
  96. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_gmonth.py +0 -0
  97. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_gmonthday.py +0 -0
  98. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_gyear.py +0 -0
  99. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_gyearmonth.py +0 -0
  100. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_hexbinary.py +0 -0
  101. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_id.py +0 -0
  102. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_idref.py +0 -0
  103. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_int.py +0 -0
  104. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_integer.py +0 -0
  105. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_language.py +0 -0
  106. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_long.py +0 -0
  107. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_name.py +0 -0
  108. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_ncname.py +0 -0
  109. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_negativeinteger.py +0 -0
  110. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_nmtoken.py +0 -0
  111. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_nonnegativeinteger.py +0 -0
  112. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_nonpositiveinteger.py +0 -0
  113. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_normalizedstring.py +0 -0
  114. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_positiveinteger.py +0 -0
  115. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_qname.py +0 -0
  116. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_short.py +0 -0
  117. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_string.py +0 -0
  118. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_time.py +0 -0
  119. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_token.py +0 -0
  120. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_unsignedbyte.py +0 -0
  121. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_unsignedint.py +0 -0
  122. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_unsignedlong.py +0 -0
  123. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_unsignedshort.py +0 -0
  124. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/__init__.py +0 -0
  125. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_cache.py +0 -0
  126. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_connection.py +0 -0
  127. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_context.py +0 -0
  128. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_datamodel.py +0 -0
  129. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_dtypes.py +0 -0
  130. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_externalontologies.py +0 -0
  131. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_hasproperty.py +0 -0
  132. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_in_project.py +0 -0
  133. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_langstring.py +0 -0
  134. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_language_in.py +0 -0
  135. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_observable_dict.py +0 -0
  136. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_observable_set.py +0 -0
  137. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_oldaplist.py +0 -0
  138. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_oldaplist_helpers.py +0 -0
  139. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_oldaplistnode.py +0 -0
  140. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_permissionset.py +0 -0
  141. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_project.py +0 -0
  142. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_propertyclass.py +0 -0
  143. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_resourceclass.py +0 -0
  144. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_semantic_version.py +0 -0
  145. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_user.py +0 -0
  146. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_xsd_datatypes.py +0 -0
  147. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/Gender.yaml +0 -0
  148. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/collections_type.yaml +0 -0
  149. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/connection_test.trig +0 -0
  150. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/datamodel_test.trig +0 -0
  151. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/event_type.yaml +0 -0
  152. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/hlist_schema.yaml +0 -0
  153. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/institution_or_building_type.yaml +0 -0
  154. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/language.yaml +0 -0
  155. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/location_type.yaml +0 -0
  156. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/means_of_transportation.yaml +0 -0
  157. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/objectfactory_test.trig +0 -0
  158. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/playground_list.yaml +0 -0
  159. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/role.yaml +0 -0
  160. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/source_type-1.yaml +0 -0
  161. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/source_type.yaml +0 -0
  162. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/test_move_left_of_toL.yaml +0 -0
  163. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/testlist.yaml +0 -0
  164. {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testit.http +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: oldaplib
3
- Version: 0.3.11
3
+ Version: 0.3.13
4
4
  Summary: Open Media Access Server Library (Linked Open Data middleware/RESTApi)
5
5
  License: GNU Affero General Public License version 3
6
6
  Author: Lukas Rosenthaler
@@ -79,4 +79,11 @@ http://oldap.org/<location>/<project>/data#
79
79
  The project name must be unique to the location and is of
80
80
  type [NCName](https://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-NCName).
81
81
 
82
+ ## Media object
83
+
84
+ - originalName: `<http://purl.org/dc/terms/originalName>`
85
+ - originalMimeType: `<http://purl.org/dc/terms/format>`
86
+ - mediaserverUri: xsd:anyURI
87
+ - project: `<http://oldap.org/base#project>`
88
+
82
89
 
@@ -43,3 +43,10 @@ http://oldap.org/<location>/<project>/data#
43
43
  The project name must be unique to the location and is of
44
44
  type [NCName](https://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-NCName).
45
45
 
46
+ ## Media object
47
+
48
+ - originalName: `<http://purl.org/dc/terms/originalName>`
49
+ - originalMimeType: `<http://purl.org/dc/terms/format>`
50
+ - mediaserverUri: xsd:anyURI
51
+ - project: `<http://oldap.org/base#project>`
52
+
@@ -41,7 +41,7 @@ shared:shacl {
41
41
  dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
42
42
  dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
43
43
  dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
44
- sh:maxCount "1"^^xsd:integer ;
44
+ sh:maxCount "1"^^xsd:nonNegativeInteger ;
45
45
  sh:datatype xsd:decimal ;
46
46
  ] ;
47
47
  sh:property [
@@ -50,7 +50,7 @@ shared:shacl {
50
50
  dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
51
51
  dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
52
52
  dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
53
- sh:maxCount "1"^^xsd:integer ;
53
+ sh:maxCount "1"^^xsd:nonNegativeInteger ;
54
54
  sh:datatype xsd:string ;
55
55
  sh:in ("GREGORIAN"^^xsd:string "JULIAN"^^xsd:string "HEBREW"^^xsd:string "ISLAMIC"^^xsd:string "PERSIAN"^^xsd:string) ;
56
56
  ] ;
@@ -60,7 +60,7 @@ shared:shacl {
60
60
  dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
61
61
  dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
62
62
  dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
63
- sh:maxCount "1"^^xsd:integer ;
63
+ sh:maxCount "1"^^xsd:nonNegativeInteger ;
64
64
  sh:class oldap:ChronolgyStatement ;
65
65
  ] ;
66
66
  sh:property [
@@ -69,7 +69,7 @@ shared:shacl {
69
69
  dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
70
70
  dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
71
71
  dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
72
- sh:maxCount "1"^^xsd:integer ;
72
+ sh:maxCount "1"^^xsd:nonNegativeInteger ;
73
73
  sh:class oldap:ChronolgyStatement ;
74
74
  ] ;
75
75
  sh:property [
@@ -78,7 +78,7 @@ shared:shacl {
78
78
  dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
79
79
  dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
80
80
  dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
81
- sh:maxCount "1"^^xsd:integer ;
81
+ sh:maxCount "1"^^xsd:nonNegativeInteger ;
82
82
  sh:datatype xsd:decimal ;
83
83
  ] ;
84
84
  sh:property [
@@ -87,10 +87,89 @@ shared:shacl {
87
87
  dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
88
88
  dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
89
89
  dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
90
- sh:maxCount "1"^^xsd:integer ;
90
+ sh:maxCount "1"^^xsd:nonNegativeInteger ;
91
91
  sh:datatype xsd:decimal ;
92
92
  ] .
93
93
 
94
+ ###############################################################################
95
+ # Media object
96
+ ###############################################################################
97
+
98
+ oldap:MediaObjectShape a sh:NodeShape ;
99
+ sh:targetClass oldap:MediaObject ;
100
+ dcterms:created "2025-11-20T22:48:57.760670+01:00"^^xsd:dateTime ;
101
+ dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
102
+ dcterms:modified "2025-11-20T22:48:57.760670+01:00"^^xsd:dateTime ;
103
+ dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
104
+ oldap:externalOntology "false"^^xsd:boolean ;
105
+ rdfs:label "MediaObject"@en, "Medienobjekt"@de, "MediaObject"@fr, "MediaObject"@it ;
106
+ rdfs:comment "Page of a book"@en, "Seite eines Buches"@de ;
107
+ sh:closed "true"^^xsd:boolean ;
108
+ sh:property [
109
+ sh:path rdf:type ;
110
+ ] ;
111
+ sh:property [ # >>PropertyClass.property_node_shacl()
112
+ sh:path oldap:originalName ;
113
+ schema:version "0.1.0"^^xsd:string ;
114
+ dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
115
+ dcterms:created "2025-11-20T22:48:57.760670+01:00"^^xsd:dateTime ;
116
+ dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
117
+ dcterms:modified "2025-11-20T22:48:57.760670+01:00"^^xsd:dateTime ;
118
+ oldap:statementProperty "false"^^xsd:boolean ;
119
+ oldap:externalOntology "false"^^xsd:boolean ;
120
+ sh:datatype xsd:string ;
121
+ sh:name "Original Filename"@en, "Originaler Dateiname"@de, "Nom orignal du fichier"@fr, "Nome documento originale"@it ;
122
+ sh:minCount "1"^^xsd:integer ;
123
+ sh:maxCount "1"^^xsd:integer ;
124
+ sh:order "1.0"^^xsd:decimal ;
125
+ ] ;
126
+ sh:property [ # >>PropertyClass.property_node_shacl()
127
+ sh:path oldap:originalMimeType ;
128
+ schema:version "0.1.0"^^xsd:string ;
129
+ dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
130
+ dcterms:created "2025-11-20T22:48:57.760670+01:00"^^xsd:dateTime ;
131
+ dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
132
+ dcterms:modified "2025-11-20T22:48:57.760670+01:00"^^xsd:dateTime ;
133
+ oldap:statementProperty "false"^^xsd:boolean ;
134
+ oldap:externalOntology "false"^^xsd:boolean ;
135
+ sh:datatype xsd:string ;
136
+ sh:name "Original mimetype"@en, "Originaler Mimetype"@de, "Mimetype original"@fr, "Mimetype originale"@it ;
137
+ sh:minCount "1"^^xsd:integer ;
138
+ sh:maxCount "1"^^xsd:integer ;
139
+ sh:order "2.0"^^xsd:decimal ;
140
+ ] ;
141
+ sh:property [ # >>PropertyClass.property_node_shacl()
142
+ sh:path oldap:serverUrl ;
143
+ schema:version "0.1.0"^^xsd:string ;
144
+ dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
145
+ dcterms:created "2025-11-20T22:48:57.760670+01:00"^^xsd:dateTime ;
146
+ dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
147
+ dcterms:modified "2025-11-20T22:48:57.760670+01:00"^^xsd:dateTime ;
148
+ oldap:statementProperty "false"^^xsd:boolean ;
149
+ oldap:externalOntology "false"^^xsd:boolean ;
150
+ sh:datatype xsd:anyURI ;
151
+ sh:name "Server URL"@en, "URL des servers"@de, "Server URL"@fr, "Server URL"@it ;
152
+ sh:minCount "1"^^xsd:integer ;
153
+ sh:maxCount "1"^^xsd:integer ;
154
+ sh:order "3.0"^^xsd:decimal ;
155
+ ] ;
156
+ sh:property [ # >>PropertyClass.property_node_shacl()
157
+ sh:path oldap:imageId ;
158
+ schema:version "0.1.0"^^xsd:string ;
159
+ dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
160
+ dcterms:created "2025-11-20T22:48:57.760670+01:00"^^xsd:dateTime ;
161
+ dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
162
+ dcterms:modified "2025-11-20T22:48:57.760670+01:00"^^xsd:dateTime ;
163
+ oldap:statementProperty "false"^^xsd:boolean ;
164
+ oldap:externalOntology "false"^^xsd:boolean ;
165
+ sh:datatype xsd:string ;
166
+ sh:name "Image ID"@en, "ID des Bilder"@de, "ID de l\'image"@fr, "ID de l\'immagine"@it ;
167
+ sh:minCount "1"^^xsd:integer ;
168
+ sh:maxCount "1"^^xsd:integer ;
169
+ sh:order "3.0"^^xsd:decimal ;
170
+ ] .
171
+
172
+
94
173
 
95
174
  }
96
175
 
@@ -161,6 +240,7 @@ shared:onto {
161
240
  ###########################################################################
162
241
  # Chronology Date Resource
163
242
  ###########################################################################
243
+
164
244
  oldap:ChronolgyStatement rdf:type owl:Class ;
165
245
  dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
166
246
  dcterms:created "2023-11-04T12:00:00Z"^^xsd:dateTime ;
@@ -210,5 +290,76 @@ shared:onto {
210
290
  owl:onDataRange xsd:decimal
211
291
  ] .
212
292
 
293
+ ###########################################################################
294
+ # Media object
295
+ ###########################################################################
296
+
297
+ oldap:originalName rdf:type owl:DatatypeProperty ;
298
+ rdfs:domain oldap:MediaObject ;
299
+ rdfs:range xsd:string ;
300
+ dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
301
+ dcterms:created "2025-11-20T22:48:57.760670+01:00"^^xsd:dateTime ;
302
+ dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
303
+ dcterms:modified "2025-11-20T22:48:57.760670+01:00"^^xsd:dateTime .
304
+
305
+ oldap:originalMimeType rdf:type owl:DatatypeProperty ;
306
+ rdfs:domain oldap:MediaObject ;
307
+ rdfs:range xsd:string ;
308
+ dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
309
+ dcterms:created "2025-11-20T22:48:57.760670+01:00"^^xsd:dateTime ;
310
+ dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
311
+ dcterms:modified "2025-11-20T22:48:57.760670+01:00"^^xsd:dateTime .
312
+
313
+ oldap:serverUrl rdf:type owl:DatatypeProperty ;
314
+ rdfs:domain oldap:MediaObject ;
315
+ rdfs:range xsd:anyURI ;
316
+ dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
317
+ dcterms:created "2025-11-20T22:48:57.760670+01:00"^^xsd:dateTime ;
318
+ dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
319
+ dcterms:modified "2025-11-20T22:48:57.760670+01:00"^^xsd:dateTime .
320
+
321
+ oldap:imageId rdf:type owl:DatatypeProperty ;
322
+ rdfs:domain oldap:MediaObject ;
323
+ rdfs:range xsd:string ;
324
+ dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
325
+ dcterms:created "2025-11-20T22:48:57.760670+01:00"^^xsd:dateTime ;
326
+ dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
327
+ dcterms:modified "2025-11-20T22:48:57.760670+01:00"^^xsd:dateTime .
328
+
329
+ oldap:MediaObject rdf:type owl:Class ;
330
+ schema:version "0.1.0"^^xsd:string ;
331
+ dcterms:created "2025-11-20T22:48:57.760670+01:00"^^xsd:dateTime ;
332
+ dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
333
+ dcterms:modified "2025-11-20T22:48:57.760670+01:00"^^xsd:dateTime ;
334
+ dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
335
+ rdfs:label "MediaObject"@en, "Medienobjekt"@de, "MediaObject"@fr, "MediaObject"@it ;
336
+ rdfs:comment "Page of a book"@en, "Seite eines Buches"@de ;
337
+ rdfs:subClassOf oldap:Thing ,
338
+ [
339
+ rdf:type owl:Restriction ;
340
+ owl:onProperty oldap:originalName ;
341
+ owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
342
+ owl:onDataRange xsd:string ;
343
+ ] ,
344
+ [
345
+ rdf:type owl:Restriction ;
346
+ owl:onProperty oldap:originalMimeType ;
347
+ owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
348
+ owl:onDataRange xsd:string ;
349
+ ] ,
350
+ [
351
+ rdf:type owl:Restriction ;
352
+ owl:onProperty oldap:serverUrl ;
353
+ owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
354
+ owl:onDataRange xsd:anyURI ;
355
+ ] ,
356
+ [
357
+ rdf:type owl:Restriction ;
358
+ owl:onProperty oldap:imageId ;
359
+ owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
360
+ owl:onDataRange xsd:string ;
361
+ ] .
362
+
363
+
213
364
  }
214
365
 
@@ -753,15 +753,18 @@ class DataModel(Model):
753
753
  f.write('\n')
754
754
  f.write(context.turtle_context)
755
755
  f.write(f'\n{blank:{indent * indent_inc}}{self.__graph}:shacl {{\n')
756
- f.write(f'{blank:{(indent + 2) * indent_inc}}{self.__graph}:shapes schema:version {self.__version.toRdf} .\n')
756
+ f.write(f'{blank:{(indent + 1) * indent_inc}}{self.__graph}:shapes schema:version {self.__version.toRdf} .\n')
757
757
  f.write('\n')
758
758
  for qname, onto in self.__extontos.items():
759
759
  f.write(onto.create_shacl(timestamp=timestamp, indent=1))
760
+ f.write('\n\n')
760
761
  for iri, prop in self.__propclasses.items():
761
762
  if not prop.internal:
762
763
  f.write(prop.create_shacl(timestamp=timestamp, indent=1))
764
+ f.write('\n\n')
763
765
  for iri, resclass in self.__resclasses.items():
764
766
  f.write(resclass.create_shacl(timestamp=timestamp, indent=1))
767
+ f.write('\n\n')
765
768
  f.write(f'\n{blank:{indent * indent_inc}}}}\n')
766
769
 
767
770
  f.write(f'{blank:{indent * indent_inc}}{self.__graph}:onto {{\n')
@@ -12,7 +12,7 @@ from oldaplib.src.xsd.xsd_qname import Xsd_QName
12
12
  @unique
13
13
  class HasPropertyAttr(AttributeClass):
14
14
  # order: (QName, mandatory, immutable, datatype)
15
- MIN_COUNT = ('sh:minCount', False, False, Xsd_nonNegativeInteger)
16
- MAX_COUNT = ('sh:maxCount', False, False, Xsd_nonNegativeInteger)
15
+ MIN_COUNT = ('sh:minCount', False, False, Xsd_integer)
16
+ MAX_COUNT = ('sh:maxCount', False, False, Xsd_integer)
17
17
  ORDER = ('sh:order', False, False, Xsd_decimal)
18
18
  GROUP = ('sh:group', False, False, Xsd_QName)
@@ -222,12 +222,15 @@ class HasProperty(Model, Notify):
222
222
  max_count = Xsd_nonNegativeInteger(int(self._attributes[HasPropertyAttr.MAX_COUNT])) if self._attributes.get(HasPropertyAttr.MAX_COUNT) else None
223
223
 
224
224
  if min_count and max_count and min_count == max_count:
225
- sparql += f' ;\n{blank:{(indent + 1) * indent_inc}}owl:qualifiedCardinality {min_count.toRdf}'
225
+ tmp = Xsd_nonNegativeInteger(min_count)
226
+ sparql += f' ;\n{blank:{(indent + 1) * indent_inc}}owl:qualifiedCardinality {tmp.toRdf}'
226
227
  else:
227
228
  if min_count:
228
- sparql += f' ;\n{blank:{(indent + 1) * indent_inc}}owl:minQualifiedCardinality {min_count.toRdf}'
229
+ tmp = Xsd_nonNegativeInteger(min_count)
230
+ sparql += f' ;\n{blank:{(indent + 1) * indent_inc}}owl:minQualifiedCardinality {tmp.toRdf}'
229
231
  if max_count:
230
- sparql += f' ;\n{blank:{(indent + 1) * indent_inc}}owl:maxQualifiedCardinality {max_count.toRdf}'
232
+ tmp = Xsd_nonNegativeInteger(max_count)
233
+ sparql += f' ;\n{blank:{(indent + 1) * indent_inc}}owl:maxQualifiedCardinality {tmp.toRdf}'
231
234
  return sparql
232
235
 
233
236
  def update_shacl(self,
@@ -287,12 +290,15 @@ class HasProperty(Model, Notify):
287
290
  if min_count or max_count:
288
291
  sparql += f'{blank:{indent * indent_inc}}INSERT {{\n'
289
292
  if min_count and max_count and min_count == max_count:
290
- sparql += f'{blank:{(indent + 1) * indent_inc}}?prop owl:qualifiedCardinality {min_count.toRdf} .\n'
293
+ tmp = Xsd_nonNegativeInteger(min_count)
294
+ sparql += f'{blank:{(indent + 1) * indent_inc}}?prop owl:qualifiedCardinality {tmp.toRdf} .\n'
291
295
  else:
292
296
  if min_count:
293
- sparql += f'{blank:{(indent + 1) * indent_inc}}?prop owl:minQualifiedCardinality {min_count.toRdf} .\n'
297
+ tmp = Xsd_nonNegativeInteger(min_count)
298
+ sparql += f'{blank:{(indent + 1) * indent_inc}}?prop owl:minQualifiedCardinality {tmp.toRdf} .\n'
294
299
  if max_count:
295
- sparql += f'{blank:{(indent + 1) * indent_inc}}?prop owl:maxQualifiedCardinality {max_count.toRdf} .\n'
300
+ tmp = Xsd_nonNegativeInteger(max_count)
301
+ sparql += f'{blank:{(indent + 1) * indent_inc}}?prop owl:maxQualifiedCardinality {tmp.toRdf} .\n'
296
302
  sparql += f'{blank:{indent * indent_inc}}}}\n'
297
303
 
298
304
  sparql += f'{blank:{indent * indent_inc}}WHERE {{\n'
@@ -877,7 +877,7 @@ class ResourceInstance:
877
877
  projectShortName: Xsd_NCName | str,
878
878
  s: str,
879
879
  resClass: Xsd_QName | str | None = None,
880
- count_only: bool = False,
880
+ countOnly: bool = False,
881
881
  sortBy: SortBy | None = None,
882
882
  limit: int = 100,
883
883
  offset: int = 0,
@@ -896,8 +896,8 @@ class ResourceInstance:
896
896
  :param resClass: An optional entity class (Xsd_QName) used to filter results. If provided as a string,
897
897
  it is validated and converted to Xsd_QName.
898
898
  :type resClass: Xsd_QName | str | None
899
- :param count_only: If True, only the count of matching entities will be returned. Defaults to False.
900
- :type count_only: bool
899
+ :param countOnly: If True, only the count of matching entities will be returned. Defaults to False.
900
+ :type countOnly: bool
901
901
  :param sortBy: Optional sorting criterion for the results, such as creation date, last modification date,
902
902
  or property values. Defaults to None.
903
903
  :type sortBy: SortBy | None
@@ -949,7 +949,7 @@ class ResourceInstance:
949
949
  context = Context(name=con.context_name)
950
950
  sparql = context.sparql_context
951
951
 
952
- if (count_only):
952
+ if (countOnly):
953
953
  sparql += f'{blank:{indent * indent_inc}}SELECT (COUNT(DISTINCT ?s) as ?numResult)'
954
954
  else:
955
955
  sparql += f'{blank:{indent * indent_inc}}SELECT DISTINCT ?s ?t ?p ?o'
@@ -989,7 +989,7 @@ class ResourceInstance:
989
989
  if sortBy == SortBy.PROPVAL:
990
990
  sparql += f'\n{blank:{indent * indent_inc}}ORDER BY ASC(LCASE(STR(?o)))'
991
991
 
992
- if not count_only:
992
+ if not countOnly:
993
993
  sparql += f'\n{blank:{indent * indent_inc}}LIMIT {limit} OFFSET {offset}'
994
994
  sparql += '\n'
995
995
 
@@ -1000,7 +1000,7 @@ class ResourceInstance:
1000
1000
  print(sparql)
1001
1001
  raise
1002
1002
  res = QueryProcessor(context, jsonres)
1003
- if count_only:
1003
+ if countOnly:
1004
1004
  return res[0]['numResult']
1005
1005
  else:
1006
1006
  result = {}
@@ -1073,8 +1073,9 @@ class ResourceInstance:
1073
1073
  sparql += f'{blank:{indent * indent_inc}}SELECT (COUNT(DISTINCT ?s) as ?numResult)'
1074
1074
  else:
1075
1075
  sparql += f'{blank:{indent * indent_inc}}SELECT DISTINCT ?s'
1076
- for index, item in enumerate(includeProperties):
1077
- sparql += f' ?o{index}'
1076
+ if includeProperties:
1077
+ for index, item in enumerate(includeProperties):
1078
+ sparql += f' ?o{index}'
1078
1079
  if sortBy:
1079
1080
  if sortBy == SortBy.CREATED:
1080
1081
  sparql += ' ?creationDate'
@@ -1087,8 +1088,9 @@ class ResourceInstance:
1087
1088
  sparql += f'\n{blank:{(indent + 2) * indent_inc}}?s oldap:creationDate ?creationDate .'
1088
1089
  if sortBy == SortBy.LASTMOD:
1089
1090
  sparql += f'\n{blank:{(indent + 2) * indent_inc}}?s oldap:lastModificationDate ?lastModificationDate .'
1090
- for index, prop in enumerate(includeProperties):
1091
- sparql += f'\n{blank:{(indent + 2) * indent_inc}}?s {prop} ?o{index} .'
1091
+ if includeProperties:
1092
+ for index, prop in enumerate(includeProperties):
1093
+ sparql += f'\n{blank:{(indent + 2) * indent_inc}}?s {prop} ?o{index} .'
1092
1094
  sparql += f'\n{blank:{(indent + 2) * indent_inc}}?s rdf:type {resClass} .'
1093
1095
  sparql += f'\n{blank:{(indent + 2) * indent_inc}}?s oldap:grantsPermission ?permset .'
1094
1096
  sparql += f'\n{blank:{(indent + 1) * indent_inc}}}}'
@@ -1107,8 +1109,9 @@ class ResourceInstance:
1107
1109
  sparql += f'\n{blank:{indent * indent_inc}}ORDER BY ASC(?lastModificationDate)'
1108
1110
  if sortBy == SortBy.PROPVAL:
1109
1111
  sparql += f'\n{blank:{indent * indent_inc}}ORDER BY'
1110
- for index, item in enumerate(includeProperties):
1111
- sparql += f'\n{blank:{indent * indent_inc}} ?o{index}'
1112
+ if includeProperties:
1113
+ for index, item in enumerate(includeProperties):
1114
+ sparql += f'\n{blank:{indent * indent_inc}} ?o{index}'
1112
1115
 
1113
1116
  if not count_only:
1114
1117
  sparql += f'\n{blank:{indent * indent_inc}}LIMIT {limit} OFFSET {offset}'
@@ -1126,8 +1129,9 @@ class ResourceInstance:
1126
1129
  result = {}
1127
1130
  for r in res:
1128
1131
  tmp = {}
1129
- for index, item in enumerate(includeProperties):
1130
- tmp[item] = r[f'o{index}']
1132
+ if includeProperties:
1133
+ for index, item in enumerate(includeProperties):
1134
+ tmp[item] = r[f'o{index}']
1131
1135
 
1132
1136
  if sortBy:
1133
1137
  if sortBy == SortBy.CREATED:
@@ -67,8 +67,8 @@ Attributes = dict[Xsd_QName, PropTypes]
67
67
  @serializer
68
68
  class HasPropertyData:
69
69
  refprop: Xsd_QName | None = None
70
- minCount: Xsd_nonNegativeInteger | None = None
71
- maxCount: Xsd_nonNegativeInteger | None = None
70
+ minCount: Xsd_integer | None = None
71
+ maxCount: Xsd_integer | None = None
72
72
  order: Xsd_decimal | None = None
73
73
  group: Xsd_QName | None = None
74
74
 
@@ -91,12 +91,15 @@ class HasPropertyData:
91
91
  sparql = ''
92
92
 
93
93
  if self.minCount and self.maxCount and self.minCount == self.maxCount:
94
- sparql += f' ;\n{blank:{(indent + 1) * indent_inc}}owl:qualifiedCardinality {self.minCount.toRdf}'
94
+ tmp = Xsd_nonNegativeInteger(self.minCount) # Convert to nonNegativeInteger
95
+ sparql += f' ;\n{blank:{(indent + 1) * indent_inc}}owl:qualifiedCardinality {tmp.toRdf}'
95
96
  else:
96
97
  if self.minCount:
97
- sparql += f' ;\n{blank:{(indent + 1) * indent_inc}}owl:minQualifiedCardinality {self.minCount.toRdf}'
98
+ tmp = Xsd_nonNegativeInteger(self.minCount)
99
+ sparql += f' ;\n{blank:{(indent + 1) * indent_inc}}owl:minQualifiedCardinality {tmp.toRdf}'
98
100
  if self.maxCount:
99
- sparql += f' ;\n{blank:{(indent + 1) * indent_inc}}owl:maxQualifiedCardinality {self.maxCount.toRdf}'
101
+ tmp = Xsd_nonNegativeInteger(self.maxCount)
102
+ sparql += f' ;\n{blank:{(indent + 1) * indent_inc}}owl:maxQualifiedCardinality {tmp.toRdf}'
100
103
  return sparql
101
104
 
102
105
  #@strict
@@ -1135,12 +1138,15 @@ class PropertyClass(Model, Notify):
1135
1138
  sparql += f'{blank:{(indent + 1) * indent_inc}}owl:onProperty {self._property_class_iri.toRdf}'
1136
1139
 
1137
1140
  if haspropdata.minCount and haspropdata.maxCount and haspropdata.minCount == haspropdata.maxCount:
1138
- sparql += f' ;\n{blank:{(indent + 1)*indent_inc}}owl:qualifiedCardinality {haspropdata.minCount.toRdf}'
1141
+ tmp = Xsd_nonNegativeInteger(haspropdata.minCount)
1142
+ sparql += f' ;\n{blank:{(indent + 1)*indent_inc}}owl:qualifiedCardinality {tmp.toRdf}'
1139
1143
  else:
1140
1144
  if haspropdata.minCount:
1141
- sparql += f' ;\n{blank:{(indent + 1)*indent_inc}}owl:minQualifiedCardinality {haspropdata.minCount.toRdf}'
1145
+ tmp = Xsd_nonNegativeInteger(haspropdata.minCount)
1146
+ sparql += f' ;\n{blank:{(indent + 1)*indent_inc}}owl:minQualifiedCardinality {tmp.toRdf}'
1142
1147
  if haspropdata.maxCount:
1143
- sparql += f' ;\n{blank:{(indent + 1)*indent_inc}}owl:maxQualifiedCardinality {haspropdata.maxCount.toRdf}'
1148
+ tmp = Xsd_nonNegativeInteger(haspropdata.maxCount)
1149
+ sparql += f' ;\n{blank:{(indent + 1)*indent_inc}}owl:maxQualifiedCardinality {tmp.toRdf}'
1144
1150
  #
1145
1151
  # (NOTE: owl:onClass and owl:onDataRange can be used only in a restriction and are "local" to the use
1146
1152
  # of the property within the given resource. However, rdfs:range is "global" for all use of this property!
@@ -983,12 +983,12 @@ class ResourceClass(Model, Notify):
983
983
  elif p == 'owl:onClass':
984
984
  propdict[bnode_id]['to_node_iri'] = r['o']
985
985
  elif p == 'owl:minQualifiedCardinality':
986
- propdict[bnode_id]['min_count'] = r['o']
986
+ propdict[bnode_id]['min_count'] = Xsd_integer(r['o'])
987
987
  elif p == 'owl:maxQualifiedCardinality':
988
- propdict[bnode_id]['max_count'] = r['o']
988
+ propdict[bnode_id]['max_count'] = Xsd_integer(r['o'])
989
989
  elif p == 'owl:qualifiedCardinality':
990
- propdict[bnode_id]['min_count'] = r['o']
991
- propdict[bnode_id]['max_count'] = r['o']
990
+ propdict[bnode_id]['min_count'] = Xsd_integer(r['o'])
991
+ propdict[bnode_id]['max_count'] = Xsd_integer(r['o'])
992
992
  elif p == 'owl:onDataRange':
993
993
  propdict[bnode_id]['datatype'] = r['o']
994
994
  else:
@@ -0,0 +1 @@
1
+ __version__ = "0.3.13"