oldaplib 0.3.11__py3-none-any.whl → 0.3.13__py3-none-any.whl

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.
@@ -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
 
oldaplib/src/datamodel.py CHANGED
@@ -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:
oldaplib/src/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.3.11"
1
+ __version__ = "0.3.13"
@@ -105,6 +105,9 @@ class TestObjectFactory(unittest.TestCase):
105
105
  file = project_root / 'oldaplib' / 'testdata' / 'objectfactory_test.trig'
106
106
  cls._connection.upload_turtle(file)
107
107
 
108
+ file = project_root / 'oldaplib' / 'testdata' / 'instances_test.trig'
109
+ cls._connection.upload_turtle(file)
110
+
108
111
  sleep(1) # upload may take a while...
109
112
 
110
113
  user = User.read(cls._connection, "rosenth")
@@ -194,6 +197,9 @@ class TestObjectFactory(unittest.TestCase):
194
197
  self.assertEqual(p2.lastModifiedBy, p1.lastModifiedBy)
195
198
  self.assertEqual(p2.lastModificationDate, p1.lastModificationDate)
196
199
 
200
+ b2.delete()
201
+ p2.delete()
202
+
197
203
  def test_constructor_B(self):
198
204
  factory = ResourceInstanceFactory(con=self._connection, project='test')
199
205
  AllTypes = factory.createObjectInstance('AllTypes')
@@ -341,6 +347,8 @@ class TestObjectFactory(unittest.TestCase):
341
347
  grantsPermission=Iri('oldap:GenericView'))
342
348
  b.create()
343
349
 
350
+ b.delete()
351
+
344
352
  def test_constructor_D(self):
345
353
  dm = DataModel.read(con=self._connection, project='test')
346
354
  factory = ResourceInstanceFactory(con=self._connection, project='test')
@@ -362,6 +370,8 @@ class TestObjectFactory(unittest.TestCase):
362
370
  self.assertEqual(data['test:title'], ['The Life and Times of Scrooge'])
363
371
  self.assertEqual(data['test:author'], ['test:TuomasHolopainen'])
364
372
 
373
+ b.delete()
374
+
365
375
  def test_read_B(self):
366
376
  factory = ResourceInstanceFactory(con=self._connection, project='test')
367
377
  Book = factory.createObjectInstance('Book')
@@ -396,6 +406,7 @@ class TestObjectFactory(unittest.TestCase):
396
406
  self.assertEqual(jsonobj['test:pubDate'], ['2001-01-01'])
397
407
  self.assertEqual(jsonobj['test:title'], ['The Life and Times of Scrooge'])
398
408
 
409
+ bb.delete()
399
410
 
400
411
  def test_value_setter(self):
401
412
  factory = ResourceInstanceFactory(con=self._connection, project='test')
@@ -450,6 +461,8 @@ class TestObjectFactory(unittest.TestCase):
450
461
  self.assertEqual(obj2.decimalSetter, {Xsd_decimal(3.14159), Xsd_decimal(2.71828), Xsd_decimal(1.61803)})
451
462
  self.assertFalse(obj2.integerSetter)
452
463
 
464
+ obj2.delete()
465
+
453
466
  def test_value_modifier_A(self):
454
467
  factory = ResourceInstanceFactory(con=self._connection, project='test')
455
468
  SetterTester = factory.createObjectInstance('SetterTester')
@@ -476,6 +489,8 @@ class TestObjectFactory(unittest.TestCase):
476
489
  self.assertEqual(obj1.integerSetter, {Xsd_int(20), Xsd_int(42)})
477
490
  self.assertFalse(obj1.booleanSetter)
478
491
 
492
+ obj1.delete()
493
+
479
494
  def test_value_modifier_B(self):
480
495
  factory = ResourceInstanceFactory(con=self._connection, project='test')
481
496
  SetterTester = factory.createObjectInstance('SetterTester')
@@ -502,6 +517,8 @@ class TestObjectFactory(unittest.TestCase):
502
517
  self.assertEqual(obj1.integerSetter, {Xsd_int(20), Xsd_int(42)})
503
518
  self.assertFalse(obj1.booleanSetter)
504
519
 
520
+ obj1.delete()
521
+
505
522
  def test_value_maxcount_mincount(self):
506
523
  factory = ResourceInstanceFactory(con=self._connection, project='test')
507
524
  Person = factory.createObjectInstance('Person')
@@ -519,25 +536,9 @@ class TestObjectFactory(unittest.TestCase):
519
536
  with self.assertRaises(OldapErrorValue):
520
537
  del obj1.familyName
521
538
 
522
- def test_value_modifier_norights(self):
523
- # ps = PermissionSet(con=self._connection,
524
- # permissionSetId="testNoUpdate",
525
- # label=LangString("testNoUpdate@en"),
526
- # comment=LangString("Testing PermissionSet@en"),
527
- # givesPermission=DataPermission.DATA_VIEW,
528
- # definedByProject="test")
529
- # ps.create()
530
- #
531
- # user = User(con=self._connection,
532
- # userId=Xsd_NCName("factorytestuser"),
533
- # familyName="FactoryTest",
534
- # givenName="FactoryTest",
535
- # credentials="Waseliwas",
536
- # inProject={'oldap:Test': {}},
537
- # hasPermissions={ps.iri.as_qname},
538
- # isActive=True)
539
- # user.create()
539
+ obj1.delete()
540
540
 
541
+ def test_value_modifier_norights(self):
541
542
  factory = ResourceInstanceFactory(con=self._connection, project='test')
542
543
  SetterTester = factory.createObjectInstance('SetterTester')
543
544
  obj1 = SetterTester(stringSetter="This is a test string",
@@ -564,6 +565,11 @@ class TestObjectFactory(unittest.TestCase):
564
565
  with self.assertRaises(OldapErrorNoPermission):
565
566
  obj.update()
566
567
 
568
+ factory = ResourceInstanceFactory(con=self._connection, project='test')
569
+ SetterTester = factory.createObjectInstance('SetterTester')
570
+ obj = SetterTester.read(con=self._connection, iri=obj1.iri)
571
+ obj.delete()
572
+
567
573
  def test_delete_resource(self):
568
574
  project = Project.read(con=self._connection, projectIri_SName='test')
569
575
  factory = ResourceInstanceFactory(con=self._connection, project=project)
@@ -630,92 +636,50 @@ class TestObjectFactory(unittest.TestCase):
630
636
  with self.assertRaises(OldapErrorNoPermission):
631
637
  b.update()
632
638
 
633
- def test_search_resource_A(self):
634
-
635
- def random_string(length=12):
636
- chars = string.ascii_letters + string.digits
637
- return ''.join(random.choices(chars, k=length))
639
+ with self.assertRaises(OldapErrorNoPermission):
640
+ b.delete()
638
641
 
639
- project = Project.read(con=self._connection, projectIri_SName='test')
640
642
  factory = ResourceInstanceFactory(con=self._connection, project=project)
641
-
642
- Person = factory.createObjectInstance('Person')
643
- persons = []
644
- for i in range(4):
645
- if i % 2 == 0:
646
- familyName = 'Gaga' + random_string()
647
- else:
648
- familyName = random_string()
649
- p = Person(familyName=familyName,
650
- givenName=random_string(),
651
- grantsPermission=Iri('oldap:GenericView'))
652
- p.create()
653
- persons.append(p.iri)
654
-
655
643
  Book = factory.createObjectInstance('Book')
656
- for i in range(10):
657
- title = f'These are {random_string()} Tales from the Wood'
658
- if i % 2 == 0:
659
- title = 'GAGA' + title
660
- b = Book(title=title,
661
- author=persons[i % 4],
662
- pubDate="1995-09-27",
663
- grantsPermission=Iri('oldap:GenericView'))
664
- b.create()
665
-
644
+ b = Book.read(con=self._connection,
645
+ iri=b.iri)
646
+ b.delete()
666
647
 
648
+ def test_search_resource_A(self):
667
649
  res = ResourceInstance.search_fulltext(con=self._connection,
668
650
  projectShortName='test',
669
651
  resClass='test:Book',
670
- s='gaga',
652
+ s='geschichte',
671
653
  sortBy=SortBy.CREATED)
672
654
 
673
- self.assertEqual(len(res), 5)
655
+ self.assertEqual(len(res), 2)
674
656
  for x, y in res.items():
675
657
  self.assertEqual(y[Xsd_QName("owl:Class")], Xsd_QName('test:Book'))
676
658
 
677
659
  res = ResourceInstance.search_fulltext(con=self._connection,
678
660
  projectShortName='test',
679
- s='gaga',
661
+ s='spez',
680
662
  sortBy=SortBy.CREATED)
681
663
 
682
- self.assertEqual(len(res), 7)
664
+ self.assertEqual(len(res), 5)
683
665
  for x, y in res.items():
684
- self.assertTrue(y[Xsd_QName("owl:Class")] in {Xsd_QName('test:Book'), Xsd_QName('test:Person')})
666
+ self.assertTrue(y[Xsd_QName("owl:Class")] in {Xsd_QName('test:Book'), Xsd_QName('test:Page')})
685
667
 
686
668
  def test_search_resource_B(self):
687
-
688
- def random_string(length=12):
689
- chars = string.ascii_letters + string.digits
690
- return ''.join(random.choices(chars, k=length))
691
-
692
- project = Project.read(con=self._connection, projectIri_SName='test')
693
- factory = ResourceInstanceFactory(con=self._connection, project=project)
694
- Page = factory.createObjectInstance('Page')
695
- for i in range(1, 11):
696
- b = Page(pageNum=Xsd_positiveInteger(i),
697
- pageDesignation=f'Seite {i}',
698
- pageContent=random_string(16),
699
- pageInBook=Xsd_QName('test', 'gaga', validate=False),
700
- grantsPermission=Iri('oldap:GenericView'))
701
- b.create()
702
-
703
- Person = factory.createObjectInstance('Person')
704
- for i in range(4):
705
- p = Person(familyName=random_string(),
706
- givenName=random_string(),
707
- grantsPermission=Iri('oldap:GenericView'))
708
- p.create()
709
-
710
669
  res = ResourceInstance.all_resources(con=self._connection,
711
670
  projectShortName='test',
712
671
  resClass='test:Page',
713
672
  includeProperties=[Xsd_QName('test:pageNum'), Xsd_QName('test:pageContent')],
714
673
  sortBy = SortBy.CREATED)
715
- self.assertEqual(len(res), 10)
674
+ self.assertEqual(len(res), 8)
716
675
  for r in res:
717
676
  self.assertEqual(len(res[r]), 3)
718
677
 
678
+ def test_search_resource_C(self):
679
+ res = ResourceInstance.all_resources(con=self._connection,
680
+ projectShortName='test',
681
+ resClass='test:Page')
682
+ self.assertEqual(len(res), 8)
719
683
 
720
684
 
721
685
  if __name__ == '__main__':
@@ -9,7 +9,7 @@ test:data {
9
9
  :lastModifiedBy <https://orcid.org/0000-0003-1681-4036>;
10
10
  :lastModificationDate "2025-11-13T16:43:21.284536+01:00"^^xsd:dateTimeStamp;
11
11
  :grantsPermission :GenericView;
12
- test:title "Die Geschichte der tQh5OAgXOaK5"@de;
12
+ test:title "Die Geschichte der Spez. tQh5OAgXOaK5"@de;
13
13
  test:pubDate "2026-01-01"^^xsd:date .
14
14
 
15
15
  <urn:uuid:57141a6b-46b5-4c82-a74c-d48a15437c4f> a test:Page;
@@ -21,7 +21,7 @@ test:data {
21
21
  test:pageDesignation "Page 1";
22
22
  test:pageNum "1"^^xsd:positiveInteger;
23
23
  test:pageDescription "Description for page 1"@en;
24
- test:pageContent "Content for page 1\\nXpVzpnoxhxZEhp0hRWWcBmOLA3h62KT4f8FLxwL3kpGUdhLWBveN9KiML34YXk86SW6PDnZgz4GELOiZOqMvo9chdXhR1e0W3FIn";
24
+ test:pageContent "Content for page 1\\Spez. nXpVzpnoxhxZEhp0hRWWcBmOLA3h62KT4f8FLxwL3kpGUdhLWBveN9KiML34YXk86SW6PDnZgz4GELOiZOqMvo9chdXhR1e0W3FIn";
25
25
  test:pageInBook <urn:uuid:7a1de6d7-de75-4875-ab24-74819057703f> .
26
26
 
27
27
  <urn:uuid:b382c2bc-6a61-4f60-a963-ec1eb5bc7428> a test:Page;
@@ -33,7 +33,7 @@ test:data {
33
33
  test:pageDesignation "Page 2";
34
34
  test:pageNum "2"^^xsd:positiveInteger;
35
35
  test:pageDescription "Description for page 2"@en;
36
- test:pageContent "Waseliwas for page 2\\nP7OGEXPNRcM62O2gVVmTzp8xSjnMM0jNTdyFpDI3Cf1VTH1AcvrFt3AYSWCLEQIBttAs23DHkAXzaehFbA81TwkIKLKUSz9v1qAV";
36
+ test:pageContent "Waseliwas for page 2\\Spez. nP7OGEXPNRcM62O2gVVmTzp8xSjnMM0jNTdyFpDI3Cf1VTH1AcvrFt3AYSWCLEQIBttAs23DHkAXzaehFbA81TwkIKLKUSz9v1qAV";
37
37
  test:pageInBook <urn:uuid:7a1de6d7-de75-4875-ab24-74819057703f> .
38
38
 
39
39
  <urn:uuid:a8f0ec0c-28ed-449c-8f22-81ee20bfb0a3> a test:Page;
@@ -45,7 +45,7 @@ test:data {
45
45
  test:pageDesignation "Page 3";
46
46
  test:pageNum "3"^^xsd:positiveInteger;
47
47
  test:pageDescription "Description for page 3"@en;
48
- test:pageContent "Content for page 3\\nAdjA5kTzS7lT6W7F2bgLYtcXBkDxOAelvXThXNt5uranbB2WgsSsPu5uklCy8IVdRhqod6iWhMVWdqMhZWnv1NkgJQ2vjhHB57bh";
48
+ test:pageContent "Content for page 3\\Spez. nAdjA5kTzS7lT6W7F2bgLYtcXBkDxOAelvXThXNt5uranbB2WgsSsPu5uklCy8IVdRhqod6iWhMVWdqMhZWnv1NkgJQ2vjhHB57bh";
49
49
  test:pageInBook <urn:uuid:7a1de6d7-de75-4875-ab24-74819057703f> .
50
50
 
51
51
  <urn:uuid:098df661-de13-4fa7-b3aa-2ed5aa1180a8> a test:Page;
@@ -78,7 +78,7 @@ test:data {
78
78
  test:pageDesignation "Page 1";
79
79
  test:pageNum "1"^^xsd:positiveInteger;
80
80
  test:pageDescription "Description for page 1"@en;
81
- test:pageContent "Content for page 1\\nTnfJDOE1D0hFuY9B2zKJW7g5oW48XTqKSd9nNYL0QrjxAk38Aka6g9zEr6q8OdAoxWePellSt4Ixq3jfaF1YlkOYBLyWft0LpzjS";
81
+ test:pageContent "Content for page 1\\nSpez. TnfJDOE1D0hFuY9B2zKJW7g5oW48XTqKSd9nNYL0QrjxAk38Aka6g9zEr6q8OdAoxWePellSt4Ixq3jfaF1YlkOYBLyWft0LpzjS";
82
82
  test:pageInBook <urn:uuid:9bf6ae23-bf2f-4466-abe3-65efe6afe589> .
83
83
 
84
84
  <urn:uuid:674467a8-8fbe-425c-a2f6-06d2e52adc99> a test:Page;
@@ -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
 
@@ -5,12 +5,12 @@ oldaplib/ontologies/admin.trig,sha256=S53TALvsBvbkV_Put4bUlwk8ZcD-Fj-K6LlsKkiuB9
5
5
  oldaplib/ontologies/example.trig,sha256=MdRrFBZZ1L6aUDiT6aX4cnXiy-RoZHczF3Exn7aBSmU,1518
6
6
  oldaplib/ontologies/oldap.trig,sha256=i2XanqKlhWSIdD17fLu5g0Luq2GORQCcyIfLn9Kummk,60241
7
7
  oldaplib/ontologies/oldap.ttl,sha256=qdA0uiSjzVhkc1d5IN2y5ioK1QMzwl-TTnn3M_D1Kh8,29446
8
- oldaplib/ontologies/shared.trig,sha256=IwGjLhQMlNKjBSk9l-stFwwYlr0cUCONouLZn_5Q8ug,9720
8
+ oldaplib/ontologies/shared.trig,sha256=s_AqJGC_LCftiJ0KyCGhkoWL8IoLEnAVcfo8Vz9zMjY,17994
9
9
  oldaplib/ontologies/standard/.gitsave,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  oldaplib/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  oldaplib/src/cachesingleton.py,sha256=WGhuFER-mTnOJmwaN17fXPAg7zn7GJBm-XadShNUBBk,3687
12
12
  oldaplib/src/connection.py,sha256=LJMJO65QhSbheIEBnOCphRyAD1STwkO8zfNcYPcKwP8,29016
13
- oldaplib/src/datamodel.py,sha256=CzxaZDj6pb4UcNoBQ5Jl_3OewMAMfkmmDDyieo94Gio,35063
13
+ oldaplib/src/datamodel.py,sha256=HXur6vCFW4WGsQ8sKxVK0uz2I742_8xm1nVDJ8JNviY,35147
14
14
  oldaplib/src/dtypes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  oldaplib/src/dtypes/bnode.py,sha256=7Swl77PJlzahov7d7ijJExmoVsTkR5JFOvFQf1jDmEg,1555
16
16
  oldaplib/src/dtypes/languagein.py,sha256=6h3VrTH8IcTN6mvnWuGvzDoKX_Jh6h9w3wWrLuAWfVc,8593
@@ -23,7 +23,7 @@ oldaplib/src/enums/adminpermissions.py,sha256=v8Rc83NPSG_s7830-I7CbmKIhOioN2YkSH
23
23
  oldaplib/src/enums/attributeclass.py,sha256=Lc7OnMMl9vjXj0SuL0l30iEjwC3oWDv_C8PFeTavDGc,3006
24
24
  oldaplib/src/enums/datapermissions.py,sha256=0KiDjrPeSpGDAui8Z74sFBdDm64stzcMJx_dVEa2-bo,3437
25
25
  oldaplib/src/enums/externalontologyattr.py,sha256=H7SrWrhe1Dkz_t1OFCWZVh3_14lJDltYGh3dOFr1Z6w,807
26
- oldaplib/src/enums/haspropertyattr.py,sha256=ZncedtYDNAP0kaPE_nsbzb7EdAt32wMXTPxWBBwwvy4,748
26
+ oldaplib/src/enums/haspropertyattr.py,sha256=Pwi-520nxue3s1fku9x4FNFBOOKSbYVI9MTVGD5jaeU,726
27
27
  oldaplib/src/enums/language.py,sha256=OfQsFpIBj8lGBbZEqVCR_1F-bimPM48vqBl4EKBgggY,4623
28
28
  oldaplib/src/enums/oldaplistattr.py,sha256=xuOU3oP35-PFFmlI-jlN28yqdk5lp_OzScKCC1O4IDI,620
29
29
  oldaplib/src/enums/oldaplistnodeattr.py,sha256=qokSxE-0FLyWNipjjY3gZJC2bBEt1qS1Z2SFg-gb0kc,722
@@ -37,7 +37,7 @@ oldaplib/src/enums/userattr.py,sha256=ZRBGGLP5NMvyAER893TzRjfkhZk4jOtS9RsSkYsQM-
37
37
  oldaplib/src/enums/xsd_datatypes.py,sha256=TGpy2TEaYfmCsSCClSyK76ixNP_hR7nEdJvCT6l-Txk,6253
38
38
  oldaplib/src/externalontology.py,sha256=VaQvVlq5muzmQ466c1gKrldXn9Wx_WfOR7pUCjw_cYw,23888
39
39
  oldaplib/src/globalconfig.py,sha256=zAJmAMQnojbhj8SZFUaPj7DIHN5g3wUwQQhWPMxjDUg,1306
40
- oldaplib/src/hasproperty.py,sha256=HV8-30zt7nS1HRae1NYeAQM5Q_qcRHucoecxuTnsk94,15498
40
+ oldaplib/src/hasproperty.py,sha256=VnjLa6VBIH---mwh1mJ_drisDqjPu7By1RhFAVZaT7k,15814
41
41
  oldaplib/src/helpers/Notify.py,sha256=9zzO93F4V4lj-xF6b3hpRg1QkI4TR_GYEh3ptsohlfQ,2008
42
42
  oldaplib/src/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
43
  oldaplib/src/helpers/attributechange.py,sha256=aQ5Q9s6U3bVd1WSNQcBpkr5UQVxeP4z_uz0K5_31ZVc,256
@@ -59,18 +59,18 @@ oldaplib/src/helpers/tools.py,sha256=sNbiOLucTGNFzZmiWwPLFOb80VTXQH0Zd9uCGubhzAk
59
59
  oldaplib/src/iconnection.py,sha256=XlOc2Kh4tK_UOHydLQwlWjUFLUze-Aq_vEZpf9KS1-s,3677
60
60
  oldaplib/src/in_project.py,sha256=2KuhHPj8DNveFRBeImrRfxlCOYhBK-mcxXYUp6s--j8,10672
61
61
  oldaplib/src/model.py,sha256=VACR3T6zJYFaE5J1PFFdP0OSwhbu4sahoLMWg6_L_rE,19267
62
- oldaplib/src/objectfactory.py,sha256=lUKwJWFWdOmUrrP17AB06U-AUeRHjbovIlgq915iYko,63554
62
+ oldaplib/src/objectfactory.py,sha256=sc642TXVWi9mVo2xziNiy80lNCOv12E3SgN5lF6gkhs,63720
63
63
  oldaplib/src/oldaplist.py,sha256=sGAvEEJukRCjM70G0NFaR-L9YPleQTOtdWGExj3oYL8,42933
64
64
  oldaplib/src/oldaplist_helpers.py,sha256=1Gur0nS1PCKb9iUtCKPUFDOYjw6vvAwYpe-G3DdxlEc,14213
65
65
  oldaplib/src/oldaplistnode.py,sha256=NnC2juEGTtEkDO6OlB9PjSw_zTF-wSsRUgEk-6VV9DA,87344
66
66
  oldaplib/src/oldaplogging.py,sha256=IDSOylms9OSTInYPC4Y2QrTTEzRL0T5I2QssCevOhTU,1242
67
67
  oldaplib/src/permissionset.py,sha256=bzzVuZ7O_yVMujziwo32GEJIZYGG3g5gTds4HjLmGtU,31874
68
68
  oldaplib/src/project.py,sha256=DNwViRg19zkE1F0zuWqQFK008uTVehVAu7xNbyessig,34207
69
- oldaplib/src/propertyclass.py,sha256=pnaDsmyGKQnJaaOHXA0XyLcp4zn1b1vC9sLbjXls4lM,93462
70
- oldaplib/src/resourceclass.py,sha256=EIxyd7Z_w59wDxWLXCaLvhhvh5SjLEUWb8gqmZz8LLM,102046
69
+ oldaplib/src/propertyclass.py,sha256=WcRz-yzNOenyTWsYHkh48vaJDFO_0AgH9AMFq-HsiVo,93777
70
+ oldaplib/src/resourceclass.py,sha256=I6m93JhfCh4XAUFgmb6v0fD798DfU7-ImTKrUJk4g-o,102098
71
71
  oldaplib/src/user.py,sha256=Z4GXPRkaHXx3glUpPXQdFqYMxQPOuqayDwkTAE5RGjU,48820
72
72
  oldaplib/src/userdataclass.py,sha256=FbZkcRt0pKbOeqsZ7HbpwoKE-XPWH2AqpHG1GcsrBPo,12364
73
- oldaplib/src/version.py,sha256=T2nK8OAwAkUKZ_FINBrFk5NtAsVGU9e9ygu4affw1zw,22
73
+ oldaplib/src/version.py,sha256=dakbk6DEOnVi7Zc-bN9tdKomLcWKaxpUWufJE8NWxcY,22
74
74
  oldaplib/src/xsd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
75
  oldaplib/src/xsd/floatingpoint.py,sha256=rDReKqh0mXyc4F5wslgTUxbeGf3-PGERyughj5_62YI,8852
76
76
  oldaplib/src/xsd/iri.py,sha256=w1Dr0z-REi7yPe3GPGnyzGrLVMvLY03kEeK-AmZ9sxw,8383
@@ -126,7 +126,7 @@ oldaplib/test/test_hasproperty.py,sha256=r991g8kBTfv1CGs9Hf0fli-AUp7Ob7rOHWYD74h
126
126
  oldaplib/test/test_in_project.py,sha256=DYT-guwRQ9crnfEt7cQZxoEMxThin7QeymNce3jaZx4,7779
127
127
  oldaplib/test/test_langstring.py,sha256=37BeKiQzj63G-SyS_paK_SEG7ulRbGrE89Mz40UB_bE,15146
128
128
  oldaplib/test/test_language_in.py,sha256=ELqHO-YIsZSCPF3E3rWde4J7rERL7En7sV_pzQ00zgs,8826
129
- oldaplib/test/test_objectfactory.py,sha256=nak1-QFlaKg0b5vHvOXcLXEPhi318XHMJFwIWLicqy0,37372
129
+ oldaplib/test/test_objectfactory.py,sha256=JuEUQAOmMpWptJlk1o3hz48NlZ3CQbsEAYRK_-XL7tg,35487
130
130
  oldaplib/test/test_observable_dict.py,sha256=GxD0sM0nsVfVRBu92SFGkJ6--YXq4ibBWI4IpjZZzDU,1396
131
131
  oldaplib/test/test_observable_set.py,sha256=JWZSoAsr8XIEBXPVgSVJjQQEEc8uSAme5IrFYLYVVXw,6313
132
132
  oldaplib/test/test_oldaplist.py,sha256=9wo3tEOHt5bIuXyvSSyTzjhtdKrQHiiAA6EfVBuq4wI,20114
@@ -145,7 +145,7 @@ oldaplib/testdata/connection_test.trig,sha256=LFTGLEae7SaTU67rwvgvg_epi09O7oPZwf
145
145
  oldaplib/testdata/datamodel_test.trig,sha256=0n02awPthzi-Lx-_ABlrD9yZ3I1sWxp7eIbFwSxwKNA,802
146
146
  oldaplib/testdata/event_type.yaml,sha256=wpXiheSEKh4xOoUZvAxWytJQ-sNK6oUYdVpOmyW9wPc,3083
147
147
  oldaplib/testdata/hlist_schema.yaml,sha256=fgHiB-ZxOkE6OvkZKk9SL2kNn8Akj6dS6ySDFSpknTA,186
148
- oldaplib/testdata/instances_test.trig,sha256=4PQT2eQ8jhOTuUsSdo2kM3-Lo9zVOtpeF2X579vG4Tw,6853
148
+ oldaplib/testdata/instances_test.trig,sha256=i1ouJhBGrFqIYX0A4wG6gU24Gtf9itITn-PRBiB6-tc,6883
149
149
  oldaplib/testdata/institution_or_building_type.yaml,sha256=SA2rsQwoAdyn6eSIJU1ilmdIQf-f1XNApwBow-JlJTo,2439
150
150
  oldaplib/testdata/language.yaml,sha256=YaQA77d7QyOydqNylR5RSb-0A6h9pLM4mgadJSrYC3A,451
151
151
  oldaplib/testdata/location_type.yaml,sha256=amlhYNDc9qLv_if6urtAtBTnEXrVrb6_aulE180GYkc,1323
@@ -158,6 +158,6 @@ oldaplib/testdata/source_type.yaml,sha256=dSihKikw3O-IlGf6anj5KWMoBYLaweLVF1Zojm
158
158
  oldaplib/testdata/test_move_left_of_toL.yaml,sha256=2m1OSQrQFlsCQxeJrjzBAO74LMprNDo_HuyrYGsOeXI,787
159
159
  oldaplib/testdata/testlist.yaml,sha256=AT11nXEG81Sfyb-tr1gQV0H_dZBrOCcFuHf7YtL8P2g,1994
160
160
  oldaplib/testit.http,sha256=qW7mnr6aNLXFG6lQdLgyhXILOPN6qc5iFVZclLyVvkY,303
161
- oldaplib-0.3.11.dist-info/METADATA,sha256=U_IWnhNS_6UtMWr1peta6uFVbQrD8dWv_0yFGRq8V-Q,2855
162
- oldaplib-0.3.11.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
163
- oldaplib-0.3.11.dist-info/RECORD,,
161
+ oldaplib-0.3.13.dist-info/METADATA,sha256=InQ1jYzzK_3V9L7oyKW-DG-6x_ZRgZy4_D4r7bqgYto,3061
162
+ oldaplib-0.3.13.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
163
+ oldaplib-0.3.13.dist-info/RECORD,,