oldaplib 0.3.15__tar.gz → 0.3.17__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.
- {oldaplib-0.3.15 → oldaplib-0.3.17}/PKG-INFO +1 -1
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/helpers/observable_set.py +2 -2
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/propertyclass.py +71 -29
- oldaplib-0.3.17/oldaplib/src/version.py +1 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_propertyclass.py +116 -13
- {oldaplib-0.3.15 → oldaplib-0.3.17}/pyproject.toml +1 -1
- oldaplib-0.3.15/oldaplib/src/version.py +0 -1
- {oldaplib-0.3.15 → oldaplib-0.3.17}/README.md +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/__init__.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/apps/load_list.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/ontologies/admin-testing.trig +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/ontologies/admin.trig +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/ontologies/example.trig +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/ontologies/oldap.trig +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/ontologies/oldap.ttl +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/ontologies/shared.trig +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/ontologies/standard/.gitsave +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/__init__.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/cachesingleton.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/connection.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/datamodel.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/dtypes/__init__.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/dtypes/bnode.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/dtypes/languagein.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/dtypes/namespaceiri.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/dtypes/rdfset.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/dtypes/xsdset.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/enums/__init__.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/enums/action.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/enums/adminpermissions.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/enums/attributeclass.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/enums/datapermissions.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/enums/externalontologyattr.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/enums/haspropertyattr.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/enums/language.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/enums/oldaplistattr.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/enums/oldaplistnodeattr.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/enums/owlpropertytype.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/enums/permissionsetattr.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/enums/projectattr.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/enums/propertyclassattr.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/enums/resourceclassattr.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/enums/sparql_result_format.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/enums/userattr.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/enums/xsd_datatypes.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/externalontology.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/globalconfig.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/hasproperty.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/helpers/Notify.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/helpers/__init__.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/helpers/attributechange.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/helpers/context.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/helpers/convert2datatype.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/helpers/irincname.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/helpers/json_encoder.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/helpers/langstring.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/helpers/numeric.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/helpers/observable_dict.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/helpers/oldaperror.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/helpers/query_processor.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/helpers/semantic_version.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/helpers/serializeableset.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/helpers/serializer.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/helpers/singletonmeta.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/helpers/tools.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/iconnection.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/in_project.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/model.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/objectfactory.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/oldaplist.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/oldaplist_helpers.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/oldaplistnode.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/oldaplogging.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/permissionset.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/project.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/resourceclass.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/user.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/userdataclass.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/__init__.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/floatingpoint.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/iri.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_anyuri.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_base64binary.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_boolean.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_byte.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_date.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_datetime.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_datetimestamp.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_decimal.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_double.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_duration.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_float.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_gday.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_gmonth.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_gmonthday.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_gyear.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_gyearmonth.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_hexbinary.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_id.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_idref.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_int.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_integer.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_language.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_long.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_name.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_ncname.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_negativeinteger.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_nmtoken.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_nonnegativeinteger.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_nonpositiveinteger.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_normalizedstring.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_positiveinteger.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_qname.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_short.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_string.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_time.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_token.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_unsignedbyte.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_unsignedint.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_unsignedlong.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/src/xsd/xsd_unsignedshort.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/__init__.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_cache.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_connection.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_context.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_datamodel.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_dtypes.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_externalontologies.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_hasproperty.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_in_project.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_langstring.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_language_in.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_objectfactory.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_observable_dict.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_observable_set.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_oldaplist.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_oldaplist_helpers.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_oldaplistnode.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_permissionset.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_project.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_resourceclass.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_semantic_version.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_user.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/test/test_xsd_datatypes.py +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/testdata/Gender.yaml +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/testdata/collections_type.yaml +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/testdata/connection_test.trig +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/testdata/datamodel_test.trig +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/testdata/event_type.yaml +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/testdata/hlist_schema.yaml +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/testdata/instances_test.trig +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/testdata/institution_or_building_type.yaml +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/testdata/language.yaml +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/testdata/location_type.yaml +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/testdata/means_of_transportation.yaml +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/testdata/objectfactory_test.trig +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/testdata/playground_list.yaml +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/testdata/role.yaml +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/testdata/source_type-1.yaml +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/testdata/source_type.yaml +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/testdata/test_move_left_of_toL.yaml +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/testdata/testlist.yaml +0 -0
- {oldaplib-0.3.15 → oldaplib-0.3.17}/oldaplib/testit.http +0 -0
|
@@ -290,10 +290,10 @@ class ObservableSet(Notify):
|
|
|
290
290
|
field: Iri,
|
|
291
291
|
ignoreitems: Set[Any] | None = None,
|
|
292
292
|
indent: int = 0, indent_inc: int = 4) -> list[str]:
|
|
293
|
-
items_to_add = self._setdata - self._old_value.to_set()
|
|
293
|
+
items_to_add = self._setdata - self._old_value.to_set() if self._old_value else self._setdata
|
|
294
294
|
if ignoreitems:
|
|
295
295
|
items_to_add = items_to_add - ignoreitems
|
|
296
|
-
items_to_delete = self._old_value.to_set() - self._setdata
|
|
296
|
+
items_to_delete = self._old_value.to_set() - self._setdata if self._old_value else set()
|
|
297
297
|
if ignoreitems:
|
|
298
298
|
items_to_delete = items_to_delete - ignoreitems
|
|
299
299
|
blank = ''
|
|
@@ -166,7 +166,7 @@ class PropertyClass(Model, Notify):
|
|
|
166
166
|
_projectShortName: Xsd_NCName
|
|
167
167
|
_projectIri: Iri
|
|
168
168
|
_property_class_iri: Xsd_QName | None
|
|
169
|
-
|
|
169
|
+
__statementProperty: Xsd_boolean
|
|
170
170
|
_externalOntology: Xsd_boolean
|
|
171
171
|
_internal: Xsd_QName | None
|
|
172
172
|
_force_external: bool
|
|
@@ -197,7 +197,6 @@ class PropertyClass(Model, Notify):
|
|
|
197
197
|
property_class_iri: Xsd_QName | str | None = None,
|
|
198
198
|
notifier: Callable[[PropClassAttr], None] | None = None,
|
|
199
199
|
notify_data: PropClassAttr | None = None,
|
|
200
|
-
_statementProperty: bool | Xsd_boolean= False,
|
|
201
200
|
_externalOntology: bool | Xsd_boolean = False,
|
|
202
201
|
_internal: Xsd_QName | None = None, # DO NOT USE!! Only for serialization!
|
|
203
202
|
_force_external: bool | None = None, # DO NOT USE!! Only for serialization!
|
|
@@ -256,7 +255,7 @@ class PropertyClass(Model, Notify):
|
|
|
256
255
|
validate=validate)
|
|
257
256
|
Notify.__init__(self, notifier, notify_data)
|
|
258
257
|
|
|
259
|
-
self.
|
|
258
|
+
#self.__statementProperty = _statementProperty if isinstance(_statementProperty, Xsd_boolean) else Xsd_boolean(_statementProperty, validate=True)
|
|
260
259
|
self._externalOntology = _externalOntology if isinstance(_externalOntology, Xsd_boolean) else Xsd_boolean(_externalOntology, validate=True)
|
|
261
260
|
if self._externalOntology:
|
|
262
261
|
self._force_external = True
|
|
@@ -315,11 +314,20 @@ class PropertyClass(Model, Notify):
|
|
|
315
314
|
if self._attributes.get(PropClassAttr.DATATYPE) is not None and self._attributes.get(PropClassAttr.CLASS) is not None:
|
|
316
315
|
raise OldapErrorInconsistency(f'It\'s not possible to use both DATATYPE="{self._attributes[PropClassAttr.DATATYPE]}" and CLASS={self._attributes[PropClassAttr.CLASS]} restrictions.')
|
|
317
316
|
|
|
318
|
-
# setting property type for OWL which distinguished between Data- and Object-properties
|
|
319
317
|
if not self._attributes.get(PropClassAttr.TYPE):
|
|
320
318
|
self._attributes[PropClassAttr.TYPE] = ObservableSet(notifier=self.notifier, notify_data=PropClassAttr.TYPE)
|
|
321
|
-
|
|
322
|
-
|
|
319
|
+
|
|
320
|
+
#
|
|
321
|
+
# process the statement property stuff
|
|
322
|
+
#
|
|
323
|
+
if OwlPropertyType.StatementProperty in self._attributes[PropClassAttr.TYPE]:
|
|
324
|
+
self.__statementProperty = Xsd_boolean(True)
|
|
325
|
+
else:
|
|
326
|
+
self.__statementProperty = Xsd_boolean(False)
|
|
327
|
+
|
|
328
|
+
#
|
|
329
|
+
# setting property type for OWL which distinguished between Data- and Object-properties
|
|
330
|
+
#
|
|
323
331
|
if self._attributes.get(PropClassAttr.CLASS) is not None:
|
|
324
332
|
if OwlPropertyType.OwlDataProperty in self._attributes[PropClassAttr.TYPE]:
|
|
325
333
|
raise OldapErrorInconsistency(f'Property {self._property_class_iri} cannot be both a link property and a data property.')
|
|
@@ -374,7 +382,7 @@ class PropertyClass(Model, Notify):
|
|
|
374
382
|
**({'_internal': self._internal} if self._internal else {}),
|
|
375
383
|
**({'_force_external': self._force_external} if self._force_external else {}),
|
|
376
384
|
**({'_externalOntology': self._externalOntology} if self._externalOntology else {}),
|
|
377
|
-
**({'
|
|
385
|
+
**({'__statementProperty': self.__statementProperty} if self.__statementProperty else {}),
|
|
378
386
|
'_from_triplestore': self.__from_triplestore,
|
|
379
387
|
}
|
|
380
388
|
|
|
@@ -469,6 +477,15 @@ class PropertyClass(Model, Notify):
|
|
|
469
477
|
self._changeset[PropClassAttr.DATATYPE] = AttributeChange(None, Action.CREATE)
|
|
470
478
|
self._attributes[PropClassAttr.DATATYPE] = value
|
|
471
479
|
|
|
480
|
+
def _del_value(self, attr: PropClassAttr) -> None:
|
|
481
|
+
if attr == PropClassAttr.TYPE:
|
|
482
|
+
remaining = self._attributes.get(attr) & {OwlPropertyType.OwlObjectProperty, OwlPropertyType.OwlDataProperty}
|
|
483
|
+
to_delete = self._attributes.get(attr) - remaining
|
|
484
|
+
for x in to_delete:
|
|
485
|
+
self._attributes[attr].discard(x)
|
|
486
|
+
return
|
|
487
|
+
super()._del_value(attr)
|
|
488
|
+
|
|
472
489
|
def _change_setter(self: Self, attr: PropClassAttr, value: PropTypes) -> None:
|
|
473
490
|
"""
|
|
474
491
|
INTERNAL USE ONLY! Overrides the method _change_setter from the Model class.
|
|
@@ -481,6 +498,12 @@ class PropertyClass(Model, Notify):
|
|
|
481
498
|
"""
|
|
482
499
|
if not isinstance(attr, PropClassAttr):
|
|
483
500
|
raise OldapError(f'Unsupported prop {attr}')
|
|
501
|
+
if attr == PropClassAttr.TYPE and value is None:
|
|
502
|
+
remaining = self._attributes.get(attr) & {OwlPropertyType.OwlObjectProperty, OwlPropertyType.OwlDataProperty}
|
|
503
|
+
to_delete = self._attributes.get(attr) - remaining
|
|
504
|
+
for x in to_delete:
|
|
505
|
+
self._attributes[attr].discard(x)
|
|
506
|
+
return
|
|
484
507
|
if self._attributes.get(attr) == value:
|
|
485
508
|
return
|
|
486
509
|
super()._change_setter(attr, value)
|
|
@@ -510,7 +533,7 @@ class PropertyClass(Model, Notify):
|
|
|
510
533
|
notifier=self._notifier,
|
|
511
534
|
data=deepcopy(self._notify_data, memo))
|
|
512
535
|
# Copy internals of Model:
|
|
513
|
-
instance.
|
|
536
|
+
instance.__statementProperty = deepcopy(self.__statementProperty, memo)
|
|
514
537
|
instance._externalOntology = deepcopy(self._externalOntology, memo)
|
|
515
538
|
instance._attributes = deepcopy(self._attributes, memo)
|
|
516
539
|
instance._changset = deepcopy(self._changeset, memo)
|
|
@@ -572,14 +595,14 @@ class PropertyClass(Model, Notify):
|
|
|
572
595
|
"""
|
|
573
596
|
return self._internal
|
|
574
597
|
|
|
575
|
-
@property
|
|
576
|
-
def statementProperty(self) -> Xsd_boolean:
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
598
|
+
# @property
|
|
599
|
+
# def statementProperty(self) -> Xsd_boolean:
|
|
600
|
+
# """
|
|
601
|
+
# Return the statementProperty
|
|
602
|
+
# :return: statementProperty
|
|
603
|
+
# :rtype: bool
|
|
604
|
+
# """
|
|
605
|
+
# return self.__statementProperty
|
|
583
606
|
|
|
584
607
|
@property
|
|
585
608
|
def externalOntology(self) -> Xsd_boolean:
|
|
@@ -807,7 +830,7 @@ class PropertyClass(Model, Notify):
|
|
|
807
830
|
raise OldapError(f'Inconsistency in SHACL "dcterms:modified (type={type(val)})"')
|
|
808
831
|
elif key == 'oldap:statementProperty':
|
|
809
832
|
if isinstance(val, Xsd_boolean):
|
|
810
|
-
self.
|
|
833
|
+
self.__statementProperty = val
|
|
811
834
|
else:
|
|
812
835
|
raise OldapError(f'Inconsistency in SHACL "oldap:statementProperty (type={type(val)})"')
|
|
813
836
|
elif key == 'oldap:externalOntology':
|
|
@@ -925,12 +948,12 @@ class PropertyClass(Model, Notify):
|
|
|
925
948
|
#
|
|
926
949
|
# Consistency checks
|
|
927
950
|
#
|
|
928
|
-
if self.
|
|
951
|
+
if self.__statementProperty:
|
|
929
952
|
if OwlPropertyType.StatementProperty not in self._attributes.get(PropClassAttr.TYPE):
|
|
930
|
-
raise OldapErrorInconsistency(f'Property "{self._property_class_iri}"
|
|
953
|
+
raise OldapErrorInconsistency(f'Property "{self._property_class_iri}" has SHACL oldap:statementProperty, but missing rdf:type rdf:Property.')
|
|
931
954
|
else:
|
|
932
955
|
if OwlPropertyType.StatementProperty in self._attributes.get(PropClassAttr.TYPE):
|
|
933
|
-
raise OldapErrorInconsistency(f'Property "{self._property_class_iri}"
|
|
956
|
+
raise OldapErrorInconsistency(f'Property "{self._property_class_iri}" has no SHACL oldap:statementProperty, but a rdf:type rdf:Property.')
|
|
934
957
|
if OwlPropertyType.OwlDataProperty in self._attributes[PropClassAttr.TYPE]:
|
|
935
958
|
if not datatype:
|
|
936
959
|
raise OldapError(f'OwlDataProperty "{self._property_class_iri}" has no rdfs:range datatype defined!')
|
|
@@ -1052,7 +1075,7 @@ class PropertyClass(Model, Notify):
|
|
|
1052
1075
|
sparql += f' ;\n{blank:{(indent + 1) * indent_inc}}dcterms:created {timestamp.toRdf}'
|
|
1053
1076
|
sparql += f' ;\n{blank:{(indent + 1) * indent_inc}}dcterms:contributor {self._con.userIri.toRdf}'
|
|
1054
1077
|
sparql += f' ;\n{blank:{(indent + 1) * indent_inc}}dcterms:modified {timestamp.toRdf}'
|
|
1055
|
-
sparql += f' ;\n{blank:{(indent + 1) * indent_inc}}oldap:statementProperty {self.
|
|
1078
|
+
sparql += f' ;\n{blank:{(indent + 1) * indent_inc}}oldap:statementProperty {self.__statementProperty.toRdf}'
|
|
1056
1079
|
sparql += f' ;\n{blank:{(indent + 1) * indent_inc}}oldap:externalOntology {self._externalOntology.toRdf}'
|
|
1057
1080
|
for prop, value in self._attributes.items():
|
|
1058
1081
|
if not prop.in_shacl:
|
|
@@ -1324,14 +1347,32 @@ class PropertyClass(Model, Notify):
|
|
|
1324
1347
|
indent=indent, indent_inc=indent_inc)
|
|
1325
1348
|
elif prop.datatype == ObservableSet:
|
|
1326
1349
|
if prop == PropClassAttr.TYPE:
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1350
|
+
if self._attributes[prop].old_value:
|
|
1351
|
+
added = set(self._attributes[PropClassAttr.TYPE]) - set(self._attributes[prop].old_value)
|
|
1352
|
+
else:
|
|
1353
|
+
added = set(self._attributes[PropClassAttr.TYPE])
|
|
1354
|
+
if OwlPropertyType.StatementProperty in added:
|
|
1355
|
+
self.__statementProperty = Xsd_boolean(True)
|
|
1356
|
+
ele = RdfModifyItem(Xsd_QName('oldap:statementProperty'), Xsd_boolean(False), Xsd_boolean(True))
|
|
1357
|
+
sparql += RdfModifyProp.shacl(action=change.action,
|
|
1358
|
+
graph=self._graph,
|
|
1359
|
+
owlclass_iri=owlclass_iri,
|
|
1360
|
+
pclass_iri=self._property_class_iri,
|
|
1361
|
+
ele=ele,
|
|
1362
|
+
last_modified=self._modified)
|
|
1363
|
+
if self._attributes[prop].old_value:
|
|
1364
|
+
removed = set(self._attributes[prop].old_value) - set(self._attributes[PropClassAttr.TYPE])
|
|
1365
|
+
else:
|
|
1366
|
+
removed = set()
|
|
1367
|
+
if OwlPropertyType.StatementProperty in removed:
|
|
1368
|
+
self.__statementProperty = Xsd_boolean(False)
|
|
1369
|
+
ele = RdfModifyItem(Xsd_QName('oldap:statementProperty'), Xsd_boolean(True), Xsd_boolean(False))
|
|
1370
|
+
sparql += RdfModifyProp.shacl(action=change.action,
|
|
1371
|
+
graph=self._graph,
|
|
1372
|
+
owlclass_iri=owlclass_iri,
|
|
1373
|
+
pclass_iri=self._property_class_iri,
|
|
1374
|
+
ele=ele,
|
|
1375
|
+
last_modified=self._modified)
|
|
1335
1376
|
else:
|
|
1336
1377
|
raise OldapError(f'SHACL property {prop.value} should not have update action "MODIFY" ({prop.datatype}).')
|
|
1337
1378
|
sparql_list.append(sparql)
|
|
@@ -1623,6 +1664,7 @@ class PropertyClass(Model, Notify):
|
|
|
1623
1664
|
try:
|
|
1624
1665
|
self._con.transaction_update(sparql)
|
|
1625
1666
|
except OldapError as e:
|
|
1667
|
+
print(sparql)
|
|
1626
1668
|
self._con.transaction_abort()
|
|
1627
1669
|
raise
|
|
1628
1670
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.3.17"
|
|
@@ -100,12 +100,12 @@ class TestPropertyClass(unittest.TestCase):
|
|
|
100
100
|
p = PropertyClass(con=self._connection,
|
|
101
101
|
project=self._project,
|
|
102
102
|
property_class_iri=Xsd_QName('test:testpropstar'),
|
|
103
|
-
|
|
103
|
+
type={OwlPropertyType.StatementProperty},
|
|
104
104
|
datatype=XsdDatatypes.string,
|
|
105
105
|
name=LangString(["Test property@en", "Testprädikat@de"]),
|
|
106
106
|
description={"A property for testing...@en", "Property für Tests@de"})
|
|
107
107
|
self.assertEqual(p.property_class_iri, Xsd_QName('test:testpropstar'))
|
|
108
|
-
self.assertTrue(p.
|
|
108
|
+
self.assertTrue(OwlPropertyType.StatementProperty in p.type)
|
|
109
109
|
self.assertEqual(p.get(PropClassAttr.DATATYPE), XsdDatatypes.string)
|
|
110
110
|
self.assertEqual(p.get(PropClassAttr.NAME), LangString(["Test property@en", "Testprädikat@de"]))
|
|
111
111
|
self.assertEqual(p.get(PropClassAttr.DESCRIPTION), LangString("A property for testing...@en", "Property für Tests@de"))
|
|
@@ -457,7 +457,7 @@ class TestPropertyClass(unittest.TestCase):
|
|
|
457
457
|
con=self._connection,
|
|
458
458
|
project=self._project,
|
|
459
459
|
property_class_iri=Xsd_QName('test:testWriteStar'),
|
|
460
|
-
|
|
460
|
+
type={OwlPropertyType.StatementProperty},
|
|
461
461
|
datatype=XsdDatatypes.string,
|
|
462
462
|
)
|
|
463
463
|
p.create()
|
|
@@ -465,7 +465,7 @@ class TestPropertyClass(unittest.TestCase):
|
|
|
465
465
|
project=self._project,
|
|
466
466
|
property_class_iri=Xsd_QName('test:testWriteStar'),
|
|
467
467
|
ignore_cache=True)
|
|
468
|
-
self.assertTrue(p.
|
|
468
|
+
self.assertTrue(OwlPropertyType.StatementProperty in p.type)
|
|
469
469
|
self.assertEqual(p.get(PropClassAttr.DATATYPE), XsdDatatypes.string)
|
|
470
470
|
|
|
471
471
|
def test_propertyclass_create_F(self):
|
|
@@ -654,7 +654,7 @@ class TestPropertyClass(unittest.TestCase):
|
|
|
654
654
|
|
|
655
655
|
|
|
656
656
|
# @unittest.skip('Work in progress')
|
|
657
|
-
def
|
|
657
|
+
def test_propertyclass_update_01(self):
|
|
658
658
|
p1 = PropertyClass(
|
|
659
659
|
con=self._connection,
|
|
660
660
|
project=self._project,
|
|
@@ -698,7 +698,7 @@ class TestPropertyClass(unittest.TestCase):
|
|
|
698
698
|
self.assertFalse(p2[PropClassAttr.UNIQUE_LANG])
|
|
699
699
|
|
|
700
700
|
# @unittest.skip('Work in progress')
|
|
701
|
-
def
|
|
701
|
+
def test_propertyclass_update_02(self):
|
|
702
702
|
p1 = PropertyClass(
|
|
703
703
|
con=self._connection,
|
|
704
704
|
project=self._project,
|
|
@@ -739,7 +739,7 @@ class TestPropertyClass(unittest.TestCase):
|
|
|
739
739
|
self.assertEqual(p2.inSet, RdfSet(Xsd_string("gaga"), Xsd_string("is was")))
|
|
740
740
|
self.assertFalse(p2.uniqueLang)
|
|
741
741
|
|
|
742
|
-
def
|
|
742
|
+
def test_propertyclass_update_03(self):
|
|
743
743
|
p1 = PropertyClass(
|
|
744
744
|
con=self._connection,
|
|
745
745
|
project=self._project,
|
|
@@ -784,7 +784,7 @@ class TestPropertyClass(unittest.TestCase):
|
|
|
784
784
|
self.assertIsNone(p2.languageIn)
|
|
785
785
|
self.assertIsNone(p2.uniqueLang)
|
|
786
786
|
|
|
787
|
-
def
|
|
787
|
+
def test_propertyclass_update_04(self):
|
|
788
788
|
p1 = PropertyClass(
|
|
789
789
|
con=self._connection,
|
|
790
790
|
project=self._project,
|
|
@@ -817,7 +817,7 @@ class TestPropertyClass(unittest.TestCase):
|
|
|
817
817
|
self.assertEqual(p2.description, LangString("An annotation@en"))
|
|
818
818
|
|
|
819
819
|
|
|
820
|
-
def
|
|
820
|
+
def test_propertyclass_update_05(self):
|
|
821
821
|
p1 = PropertyClass(
|
|
822
822
|
con=self._connection,
|
|
823
823
|
project=self._project,
|
|
@@ -851,7 +851,7 @@ class TestPropertyClass(unittest.TestCase):
|
|
|
851
851
|
Xsd_string("nom français@fr"),
|
|
852
852
|
Xsd_string("name deutsch@de")])
|
|
853
853
|
|
|
854
|
-
def
|
|
854
|
+
def test_propertyclass_update_06(self):
|
|
855
855
|
p1 = PropertyClass(
|
|
856
856
|
con=self._connection,
|
|
857
857
|
project=self._project,
|
|
@@ -901,7 +901,7 @@ class TestPropertyClass(unittest.TestCase):
|
|
|
901
901
|
for r in res:
|
|
902
902
|
self.assertIn(r['comment'], [Xsd_string("description english@en"), Xsd_string("description français@fr")])
|
|
903
903
|
|
|
904
|
-
def
|
|
904
|
+
def test_propertyclass_update_07(self):
|
|
905
905
|
p7 = PropertyClass(con=self._connection,
|
|
906
906
|
project=self._project,
|
|
907
907
|
property_class_iri=Xsd_QName('test:testprop7'),
|
|
@@ -920,7 +920,7 @@ class TestPropertyClass(unittest.TestCase):
|
|
|
920
920
|
ignore_cache=True)
|
|
921
921
|
self.assertEqual(p7.get(PropClassAttr.TYPE), {OwlPropertyType.SymmetricProperty, OwlPropertyType.TransitiveProperty, OwlPropertyType.OwlDataProperty})
|
|
922
922
|
|
|
923
|
-
def
|
|
923
|
+
def test_propertyclass_update_08(self):
|
|
924
924
|
p8 = PropertyClass(con=self._connection,
|
|
925
925
|
project=self._project,
|
|
926
926
|
property_class_iri=Xsd_QName('test:testprop8'),
|
|
@@ -939,7 +939,7 @@ class TestPropertyClass(unittest.TestCase):
|
|
|
939
939
|
ignore_cache=True)
|
|
940
940
|
self.assertEqual(p8.get(PropClassAttr.TYPE), {OwlPropertyType.SymmetricProperty, OwlPropertyType.OwlDataProperty})
|
|
941
941
|
|
|
942
|
-
def
|
|
942
|
+
def test_propertyclass_update_09(self):
|
|
943
943
|
i = PropertyClass(con=self._connection,
|
|
944
944
|
project=self._project,
|
|
945
945
|
property_class_iri=Xsd_QName('test:isChild9'),
|
|
@@ -957,6 +957,109 @@ class TestPropertyClass(unittest.TestCase):
|
|
|
957
957
|
ignore_cache=True)
|
|
958
958
|
self.assertEqual(i2.get(PropClassAttr.INVERSE_OF), Xsd_QName('test:anotherParent'))
|
|
959
959
|
|
|
960
|
+
def test_propertyclass_update_10(self):
|
|
961
|
+
i = PropertyClass(con=self._connection,
|
|
962
|
+
project=self._project,
|
|
963
|
+
property_class_iri=Xsd_QName('test:isChild10'),
|
|
964
|
+
toClass=Iri('test:Human'),
|
|
965
|
+
inverseOf=Xsd_QName('test:isParent10'),
|
|
966
|
+
name=LangString(["Child"]),
|
|
967
|
+
description={"Child of the human"})
|
|
968
|
+
i.create()
|
|
969
|
+
i.type = [OwlPropertyType.FunctionalProperty]
|
|
970
|
+
i.update()
|
|
971
|
+
i2 = PropertyClass.read(con=self._connection,
|
|
972
|
+
project=self._project,
|
|
973
|
+
property_class_iri=Xsd_QName('test:isChild10'),
|
|
974
|
+
ignore_cache=True)
|
|
975
|
+
self.assertTrue({OwlPropertyType.FunctionalProperty} <= set(i2.type))
|
|
976
|
+
|
|
977
|
+
def test_propertyclass_update_11(self):
|
|
978
|
+
i = PropertyClass(con=self._connection,
|
|
979
|
+
project=self._project,
|
|
980
|
+
property_class_iri=Xsd_QName('test:isChild11'),
|
|
981
|
+
type={OwlPropertyType.FunctionalProperty, OwlPropertyType.StatementProperty, OwlPropertyType.TransitiveProperty},
|
|
982
|
+
toClass=Iri('test:Human'),
|
|
983
|
+
name=LangString(["Child"]),
|
|
984
|
+
description={"Child of the human"})
|
|
985
|
+
i.create()
|
|
986
|
+
i.type.discard(OwlPropertyType.FunctionalProperty)
|
|
987
|
+
i.update()
|
|
988
|
+
i2 = PropertyClass.read(con=self._connection,
|
|
989
|
+
project=self._project,
|
|
990
|
+
property_class_iri=Xsd_QName('test:isChild11'),
|
|
991
|
+
ignore_cache=True)
|
|
992
|
+
self.assertTrue({OwlPropertyType.StatementProperty, OwlPropertyType.TransitiveProperty} <= set(i2.type))
|
|
993
|
+
self.assertTrue(OwlPropertyType.FunctionalProperty not in i2.type)
|
|
994
|
+
|
|
995
|
+
def test_propertyclass_update_12(self):
|
|
996
|
+
i = PropertyClass(con=self._connection,
|
|
997
|
+
project=self._project,
|
|
998
|
+
property_class_iri=Xsd_QName('test:isChild12'),
|
|
999
|
+
type={OwlPropertyType.FunctionalProperty, OwlPropertyType.TransitiveProperty},
|
|
1000
|
+
toClass=Iri('test:Human'),
|
|
1001
|
+
name=LangString(["Child"]),
|
|
1002
|
+
description={"Child of the human"})
|
|
1003
|
+
i.create()
|
|
1004
|
+
i.type.add(OwlPropertyType.StatementProperty)
|
|
1005
|
+
i.update()
|
|
1006
|
+
i2 = PropertyClass.read(con=self._connection,
|
|
1007
|
+
project=self._project,
|
|
1008
|
+
property_class_iri=Xsd_QName('test:isChild12'),
|
|
1009
|
+
ignore_cache=True)
|
|
1010
|
+
self.assertTrue({OwlPropertyType.StatementProperty, OwlPropertyType.FunctionalProperty, OwlPropertyType.TransitiveProperty} <= set(i2.type))
|
|
1011
|
+
|
|
1012
|
+
def test_propertyclass_update_13(self):
|
|
1013
|
+
i = PropertyClass(con=self._connection,
|
|
1014
|
+
project=self._project,
|
|
1015
|
+
property_class_iri=Xsd_QName('test:isChild13'),
|
|
1016
|
+
type={OwlPropertyType.StatementProperty},
|
|
1017
|
+
toClass=Iri('test:Human'),
|
|
1018
|
+
name=LangString(["Child"]),
|
|
1019
|
+
description={"Child of the human"})
|
|
1020
|
+
i.create()
|
|
1021
|
+
i.type.discard(OwlPropertyType.StatementProperty)
|
|
1022
|
+
i.update()
|
|
1023
|
+
i2 = PropertyClass.read(con=self._connection,
|
|
1024
|
+
project=self._project,
|
|
1025
|
+
property_class_iri=Xsd_QName('test:isChild13'),
|
|
1026
|
+
ignore_cache=True)
|
|
1027
|
+
self.assertTrue(OwlPropertyType.StatementProperty not in set(i2.type))
|
|
1028
|
+
|
|
1029
|
+
def test_propertyclass_update_14(self):
|
|
1030
|
+
i = PropertyClass(con=self._connection,
|
|
1031
|
+
project=self._project,
|
|
1032
|
+
property_class_iri=Xsd_QName('test:isChild14'),
|
|
1033
|
+
type={OwlPropertyType.StatementProperty},
|
|
1034
|
+
toClass=Iri('test:Human'),
|
|
1035
|
+
name=LangString(["Child"]),
|
|
1036
|
+
description={"Child of the human"})
|
|
1037
|
+
i.create()
|
|
1038
|
+
i.type = None
|
|
1039
|
+
i.update()
|
|
1040
|
+
i2 = PropertyClass.read(con=self._connection,
|
|
1041
|
+
project=self._project,
|
|
1042
|
+
property_class_iri=Xsd_QName('test:isChild14'),
|
|
1043
|
+
ignore_cache=True)
|
|
1044
|
+
self.assertTrue(OwlPropertyType.StatementProperty not in set(i2.type))
|
|
1045
|
+
|
|
1046
|
+
def test_propertyclass_update_15(self):
|
|
1047
|
+
i = PropertyClass(con=self._connection,
|
|
1048
|
+
project=self._project,
|
|
1049
|
+
property_class_iri=Xsd_QName('test:isChild15'),
|
|
1050
|
+
type={OwlPropertyType.StatementProperty},
|
|
1051
|
+
toClass=Iri('test:Human'),
|
|
1052
|
+
name=LangString(["Child"]),
|
|
1053
|
+
description={"Child of the human"})
|
|
1054
|
+
i.create()
|
|
1055
|
+
del i.type
|
|
1056
|
+
i.update()
|
|
1057
|
+
i2 = PropertyClass.read(con=self._connection,
|
|
1058
|
+
project=self._project,
|
|
1059
|
+
property_class_iri=Xsd_QName('test:isChild15'),
|
|
1060
|
+
ignore_cache=True)
|
|
1061
|
+
self.assertTrue(OwlPropertyType.StatementProperty not in set(i2.type))
|
|
1062
|
+
|
|
960
1063
|
# @unittest.skip('Work in progress')
|
|
961
1064
|
def test_propertyclass_delete_attrs(self):
|
|
962
1065
|
p1 = PropertyClass(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "oldaplib"
|
|
3
|
-
version = "0.3.
|
|
3
|
+
version = "0.3.17"
|
|
4
4
|
description = "Open Media Access Server Library (Linked Open Data middleware/RESTApi)"
|
|
5
5
|
authors = ["Lukas Rosenthaler <lukas.rosenthaler@unibas.ch>"]
|
|
6
6
|
license = "GNU Affero General Public License version 3"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.3.15"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|