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.
- {oldaplib-0.3.11 → oldaplib-0.3.13}/PKG-INFO +8 -1
- {oldaplib-0.3.11 → oldaplib-0.3.13}/README.md +7 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/ontologies/shared.trig +157 -6
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/datamodel.py +4 -1
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/haspropertyattr.py +2 -2
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/hasproperty.py +12 -6
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/objectfactory.py +18 -14
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/propertyclass.py +14 -8
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/resourceclass.py +4 -4
- oldaplib-0.3.13/oldaplib/src/version.py +1 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_objectfactory.py +41 -77
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/instances_test.trig +5 -5
- {oldaplib-0.3.11 → oldaplib-0.3.13}/pyproject.toml +1 -1
- oldaplib-0.3.11/oldaplib/src/version.py +0 -1
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/__init__.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/apps/load_list.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/ontologies/admin-testing.trig +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/ontologies/admin.trig +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/ontologies/example.trig +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/ontologies/oldap.trig +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/ontologies/oldap.ttl +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/ontologies/standard/.gitsave +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/__init__.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/cachesingleton.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/connection.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/dtypes/__init__.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/dtypes/bnode.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/dtypes/languagein.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/dtypes/namespaceiri.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/dtypes/rdfset.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/dtypes/xsdset.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/__init__.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/action.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/adminpermissions.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/attributeclass.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/datapermissions.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/externalontologyattr.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/language.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/oldaplistattr.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/oldaplistnodeattr.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/owlpropertytype.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/permissionsetattr.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/projectattr.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/propertyclassattr.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/resourceclassattr.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/sparql_result_format.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/userattr.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/enums/xsd_datatypes.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/externalontology.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/globalconfig.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/Notify.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/__init__.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/attributechange.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/context.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/convert2datatype.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/irincname.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/json_encoder.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/langstring.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/numeric.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/observable_dict.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/observable_set.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/oldaperror.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/query_processor.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/semantic_version.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/serializeableset.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/serializer.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/singletonmeta.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/helpers/tools.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/iconnection.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/in_project.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/model.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/oldaplist.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/oldaplist_helpers.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/oldaplistnode.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/oldaplogging.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/permissionset.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/project.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/user.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/userdataclass.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/__init__.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/floatingpoint.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/iri.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_anyuri.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_base64binary.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_boolean.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_byte.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_date.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_datetime.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_datetimestamp.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_decimal.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_double.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_duration.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_float.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_gday.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_gmonth.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_gmonthday.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_gyear.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_gyearmonth.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_hexbinary.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_id.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_idref.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_int.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_integer.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_language.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_long.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_name.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_ncname.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_negativeinteger.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_nmtoken.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_nonnegativeinteger.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_nonpositiveinteger.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_normalizedstring.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_positiveinteger.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_qname.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_short.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_string.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_time.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_token.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_unsignedbyte.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_unsignedint.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_unsignedlong.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/src/xsd/xsd_unsignedshort.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/__init__.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_cache.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_connection.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_context.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_datamodel.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_dtypes.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_externalontologies.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_hasproperty.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_in_project.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_langstring.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_language_in.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_observable_dict.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_observable_set.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_oldaplist.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_oldaplist_helpers.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_oldaplistnode.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_permissionset.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_project.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_propertyclass.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_resourceclass.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_semantic_version.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_user.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/test/test_xsd_datatypes.py +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/Gender.yaml +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/collections_type.yaml +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/connection_test.trig +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/datamodel_test.trig +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/event_type.yaml +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/hlist_schema.yaml +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/institution_or_building_type.yaml +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/language.yaml +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/location_type.yaml +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/means_of_transportation.yaml +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/objectfactory_test.trig +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/playground_list.yaml +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/role.yaml +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/source_type-1.yaml +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/source_type.yaml +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/test_move_left_of_toL.yaml +0 -0
- {oldaplib-0.3.11 → oldaplib-0.3.13}/oldaplib/testdata/testlist.yaml +0 -0
- {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.
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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 +
|
|
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,
|
|
16
|
-
MAX_COUNT = ('sh:maxCount', False, False,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
900
|
-
:type
|
|
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 (
|
|
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
|
|
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
|
|
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
|
-
|
|
1077
|
-
|
|
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
|
-
|
|
1091
|
-
|
|
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
|
-
|
|
1111
|
-
|
|
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
|
-
|
|
1130
|
-
|
|
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:
|
|
71
|
-
maxCount:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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"
|