fairgraph 0.13.0__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.
Files changed (267) hide show
  1. fairgraph/__init__.py +61 -0
  2. fairgraph/base.py +104 -0
  3. fairgraph/caching.py +52 -0
  4. fairgraph/client.py +867 -0
  5. fairgraph/collection.py +104 -0
  6. fairgraph/embedded.py +122 -0
  7. fairgraph/errors.py +47 -0
  8. fairgraph/fields.py +11 -0
  9. fairgraph/kgobject.py +1087 -0
  10. fairgraph/kgproxy.py +178 -0
  11. fairgraph/kgquery.py +151 -0
  12. fairgraph/node.py +488 -0
  13. fairgraph/openminds/__init__.py +1 -0
  14. fairgraph/openminds/chemicals/__init__.py +40 -0
  15. fairgraph/openminds/chemicals/amount_of_chemical.py +23 -0
  16. fairgraph/openminds/chemicals/chemical_mixture.py +72 -0
  17. fairgraph/openminds/chemicals/chemical_substance.py +67 -0
  18. fairgraph/openminds/chemicals/product_source.py +57 -0
  19. fairgraph/openminds/computation/__init__.py +53 -0
  20. fairgraph/openminds/computation/data_analysis.py +104 -0
  21. fairgraph/openminds/computation/data_copy.py +104 -0
  22. fairgraph/openminds/computation/environment.py +66 -0
  23. fairgraph/openminds/computation/generic_computation.py +104 -0
  24. fairgraph/openminds/computation/hardware_system.py +53 -0
  25. fairgraph/openminds/computation/launch_configuration.py +68 -0
  26. fairgraph/openminds/computation/local_file.py +83 -0
  27. fairgraph/openminds/computation/model_validation.py +107 -0
  28. fairgraph/openminds/computation/optimization.py +104 -0
  29. fairgraph/openminds/computation/simulation.py +104 -0
  30. fairgraph/openminds/computation/software_agent.py +81 -0
  31. fairgraph/openminds/computation/validation_test.py +105 -0
  32. fairgraph/openminds/computation/validation_test_version.py +180 -0
  33. fairgraph/openminds/computation/visualization.py +104 -0
  34. fairgraph/openminds/computation/workflow_execution.py +44 -0
  35. fairgraph/openminds/computation/workflow_recipe.py +95 -0
  36. fairgraph/openminds/computation/workflow_recipe_version.py +185 -0
  37. fairgraph/openminds/controlled_terms/__init__.py +116 -0
  38. fairgraph/openminds/controlled_terms/action_status_type.py +97 -0
  39. fairgraph/openminds/controlled_terms/age_category.py +89 -0
  40. fairgraph/openminds/controlled_terms/analysis_technique.py +108 -0
  41. fairgraph/openminds/controlled_terms/anatomical_axes_orientation.py +89 -0
  42. fairgraph/openminds/controlled_terms/anatomical_identification_type.py +89 -0
  43. fairgraph/openminds/controlled_terms/anatomical_plane.py +89 -0
  44. fairgraph/openminds/controlled_terms/annotation_criteria_type.py +89 -0
  45. fairgraph/openminds/controlled_terms/annotation_type.py +89 -0
  46. fairgraph/openminds/controlled_terms/atlas_type.py +88 -0
  47. fairgraph/openminds/controlled_terms/auditory_stimulus_type.py +127 -0
  48. fairgraph/openminds/controlled_terms/biological_order.py +117 -0
  49. fairgraph/openminds/controlled_terms/biological_process.py +79 -0
  50. fairgraph/openminds/controlled_terms/biological_sex.py +132 -0
  51. fairgraph/openminds/controlled_terms/breeding_type.py +127 -0
  52. fairgraph/openminds/controlled_terms/cell_culture_type.py +117 -0
  53. fairgraph/openminds/controlled_terms/cell_type.py +151 -0
  54. fairgraph/openminds/controlled_terms/chemical_mixture_type.py +89 -0
  55. fairgraph/openminds/controlled_terms/colormap.py +79 -0
  56. fairgraph/openminds/controlled_terms/contribution_type.py +79 -0
  57. fairgraph/openminds/controlled_terms/cranial_window_construction_type.py +89 -0
  58. fairgraph/openminds/controlled_terms/cranial_window_reinforcement_type.py +89 -0
  59. fairgraph/openminds/controlled_terms/criteria_quality_type.py +89 -0
  60. fairgraph/openminds/controlled_terms/data_type.py +89 -0
  61. fairgraph/openminds/controlled_terms/device_type.py +94 -0
  62. fairgraph/openminds/controlled_terms/difference_measure.py +89 -0
  63. fairgraph/openminds/controlled_terms/disease.py +142 -0
  64. fairgraph/openminds/controlled_terms/disease_model.py +142 -0
  65. fairgraph/openminds/controlled_terms/educational_level.py +79 -0
  66. fairgraph/openminds/controlled_terms/electrical_stimulus_type.py +137 -0
  67. fairgraph/openminds/controlled_terms/ethics_assessment.py +79 -0
  68. fairgraph/openminds/controlled_terms/experimental_approach.py +79 -0
  69. fairgraph/openminds/controlled_terms/file_bundle_grouping.py +99 -0
  70. fairgraph/openminds/controlled_terms/file_repository_type.py +89 -0
  71. fairgraph/openminds/controlled_terms/file_usage_role.py +89 -0
  72. fairgraph/openminds/controlled_terms/genetic_strain_type.py +127 -0
  73. fairgraph/openminds/controlled_terms/gustatory_stimulus_type.py +127 -0
  74. fairgraph/openminds/controlled_terms/handedness.py +127 -0
  75. fairgraph/openminds/controlled_terms/language.py +88 -0
  76. fairgraph/openminds/controlled_terms/laterality.py +94 -0
  77. fairgraph/openminds/controlled_terms/learning_resource_type.py +88 -0
  78. fairgraph/openminds/controlled_terms/measured_quantity.py +89 -0
  79. fairgraph/openminds/controlled_terms/measured_signal_type.py +79 -0
  80. fairgraph/openminds/controlled_terms/meta_data_model_type.py +88 -0
  81. fairgraph/openminds/controlled_terms/model_abstraction_level.py +89 -0
  82. fairgraph/openminds/controlled_terms/model_scope.py +89 -0
  83. fairgraph/openminds/controlled_terms/molecular_entity.py +142 -0
  84. fairgraph/openminds/controlled_terms/mri_pulse_sequence.py +98 -0
  85. fairgraph/openminds/controlled_terms/mri_weighting.py +98 -0
  86. fairgraph/openminds/controlled_terms/olfactory_stimulus_type.py +127 -0
  87. fairgraph/openminds/controlled_terms/operating_device.py +79 -0
  88. fairgraph/openminds/controlled_terms/operating_system.py +88 -0
  89. fairgraph/openminds/controlled_terms/optical_stimulus_type.py +127 -0
  90. fairgraph/openminds/controlled_terms/organ.py +161 -0
  91. fairgraph/openminds/controlled_terms/organism_substance.py +151 -0
  92. fairgraph/openminds/controlled_terms/organism_system.py +117 -0
  93. fairgraph/openminds/controlled_terms/patch_clamp_variation.py +89 -0
  94. fairgraph/openminds/controlled_terms/preparation_type.py +98 -0
  95. fairgraph/openminds/controlled_terms/product_accessibility.py +79 -0
  96. fairgraph/openminds/controlled_terms/programming_language.py +88 -0
  97. fairgraph/openminds/controlled_terms/qualitative_overlap.py +79 -0
  98. fairgraph/openminds/controlled_terms/semantic_data_type.py +79 -0
  99. fairgraph/openminds/controlled_terms/service.py +89 -0
  100. fairgraph/openminds/controlled_terms/setup_type.py +89 -0
  101. fairgraph/openminds/controlled_terms/software_application_category.py +79 -0
  102. fairgraph/openminds/controlled_terms/software_feature.py +79 -0
  103. fairgraph/openminds/controlled_terms/species.py +143 -0
  104. fairgraph/openminds/controlled_terms/stimulation_approach.py +98 -0
  105. fairgraph/openminds/controlled_terms/stimulation_technique.py +98 -0
  106. fairgraph/openminds/controlled_terms/subcellular_entity.py +143 -0
  107. fairgraph/openminds/controlled_terms/subject_attribute.py +89 -0
  108. fairgraph/openminds/controlled_terms/tactile_stimulus_type.py +127 -0
  109. fairgraph/openminds/controlled_terms/technique.py +108 -0
  110. fairgraph/openminds/controlled_terms/term_suggestion.py +121 -0
  111. fairgraph/openminds/controlled_terms/terminology.py +89 -0
  112. fairgraph/openminds/controlled_terms/tissue_sample_attribute.py +89 -0
  113. fairgraph/openminds/controlled_terms/tissue_sample_type.py +127 -0
  114. fairgraph/openminds/controlled_terms/type_of_uncertainty.py +89 -0
  115. fairgraph/openminds/controlled_terms/uberon_parcellation.py +153 -0
  116. fairgraph/openminds/controlled_terms/unit_of_measurement.py +108 -0
  117. fairgraph/openminds/controlled_terms/visual_stimulus_type.py +127 -0
  118. fairgraph/openminds/controlledterms.py +6 -0
  119. fairgraph/openminds/core/__init__.py +107 -0
  120. fairgraph/openminds/core/actors/__init__.py +7 -0
  121. fairgraph/openminds/core/actors/account_information.py +44 -0
  122. fairgraph/openminds/core/actors/affiliation.py +30 -0
  123. fairgraph/openminds/core/actors/consortium.py +175 -0
  124. fairgraph/openminds/core/actors/contact_information.py +43 -0
  125. fairgraph/openminds/core/actors/contribution.py +23 -0
  126. fairgraph/openminds/core/actors/organization.py +199 -0
  127. fairgraph/openminds/core/actors/person.py +236 -0
  128. fairgraph/openminds/core/data/__init__.py +13 -0
  129. fairgraph/openminds/core/data/content_type.py +107 -0
  130. fairgraph/openminds/core/data/content_type_pattern.py +53 -0
  131. fairgraph/openminds/core/data/copyright.py +23 -0
  132. fairgraph/openminds/core/data/file.py +275 -0
  133. fairgraph/openminds/core/data/file_archive.py +71 -0
  134. fairgraph/openminds/core/data/file_bundle.py +150 -0
  135. fairgraph/openminds/core/data/file_path_pattern.py +23 -0
  136. fairgraph/openminds/core/data/file_repository.py +99 -0
  137. fairgraph/openminds/core/data/file_repository_structure.py +51 -0
  138. fairgraph/openminds/core/data/hash.py +23 -0
  139. fairgraph/openminds/core/data/license.py +77 -0
  140. fairgraph/openminds/core/data/measurement.py +45 -0
  141. fairgraph/openminds/core/data/service_link.py +49 -0
  142. fairgraph/openminds/core/digital_identifier/__init__.py +11 -0
  143. fairgraph/openminds/core/digital_identifier/doi.py +98 -0
  144. fairgraph/openminds/core/digital_identifier/gridid.py +41 -0
  145. fairgraph/openminds/core/digital_identifier/handle.py +52 -0
  146. fairgraph/openminds/core/digital_identifier/identifiers_dot_org_id.py +41 -0
  147. fairgraph/openminds/core/digital_identifier/isbn.py +88 -0
  148. fairgraph/openminds/core/digital_identifier/issn.py +63 -0
  149. fairgraph/openminds/core/digital_identifier/orcid.py +41 -0
  150. fairgraph/openminds/core/digital_identifier/rorid.py +41 -0
  151. fairgraph/openminds/core/digital_identifier/rrid.py +55 -0
  152. fairgraph/openminds/core/digital_identifier/stock_number.py +23 -0
  153. fairgraph/openminds/core/digital_identifier/swhid.py +48 -0
  154. fairgraph/openminds/core/miscellaneous/__init__.py +7 -0
  155. fairgraph/openminds/core/miscellaneous/comment.py +47 -0
  156. fairgraph/openminds/core/miscellaneous/funding.py +70 -0
  157. fairgraph/openminds/core/miscellaneous/quantitative_value.py +43 -0
  158. fairgraph/openminds/core/miscellaneous/quantitative_value_array.py +49 -0
  159. fairgraph/openminds/core/miscellaneous/quantitative_value_range.py +43 -0
  160. fairgraph/openminds/core/miscellaneous/research_product_group.py +26 -0
  161. fairgraph/openminds/core/miscellaneous/web_resource.py +104 -0
  162. fairgraph/openminds/core/products/__init__.py +12 -0
  163. fairgraph/openminds/core/products/dataset.py +95 -0
  164. fairgraph/openminds/core/products/dataset_version.py +240 -0
  165. fairgraph/openminds/core/products/meta_data_model.py +95 -0
  166. fairgraph/openminds/core/products/meta_data_model_version.py +168 -0
  167. fairgraph/openminds/core/products/model.py +103 -0
  168. fairgraph/openminds/core/products/model_version.py +235 -0
  169. fairgraph/openminds/core/products/project.py +56 -0
  170. fairgraph/openminds/core/products/setup.py +69 -0
  171. fairgraph/openminds/core/products/software.py +95 -0
  172. fairgraph/openminds/core/products/software_version.py +226 -0
  173. fairgraph/openminds/core/products/web_service.py +103 -0
  174. fairgraph/openminds/core/products/web_service_version.py +182 -0
  175. fairgraph/openminds/core/research/__init__.py +17 -0
  176. fairgraph/openminds/core/research/behavioral_protocol.py +69 -0
  177. fairgraph/openminds/core/research/configuration.py +67 -0
  178. fairgraph/openminds/core/research/custom_property_set.py +27 -0
  179. fairgraph/openminds/core/research/numerical_property.py +23 -0
  180. fairgraph/openminds/core/research/property_value_list.py +71 -0
  181. fairgraph/openminds/core/research/protocol.py +67 -0
  182. fairgraph/openminds/core/research/protocol_execution.py +76 -0
  183. fairgraph/openminds/core/research/strain.py +90 -0
  184. fairgraph/openminds/core/research/string_property.py +23 -0
  185. fairgraph/openminds/core/research/subject.py +79 -0
  186. fairgraph/openminds/core/research/subject_group.py +91 -0
  187. fairgraph/openminds/core/research/subject_group_state.py +113 -0
  188. fairgraph/openminds/core/research/subject_state.py +138 -0
  189. fairgraph/openminds/core/research/tissue_sample.py +87 -0
  190. fairgraph/openminds/core/research/tissue_sample_collection.py +99 -0
  191. fairgraph/openminds/core/research/tissue_sample_collection_state.py +109 -0
  192. fairgraph/openminds/core/research/tissue_sample_state.py +127 -0
  193. fairgraph/openminds/ephys/__init__.py +39 -0
  194. fairgraph/openminds/ephys/activity/__init__.py +3 -0
  195. fairgraph/openminds/ephys/activity/cell_patching.py +73 -0
  196. fairgraph/openminds/ephys/activity/electrode_placement.py +67 -0
  197. fairgraph/openminds/ephys/activity/recording_activity.py +67 -0
  198. fairgraph/openminds/ephys/device/__init__.py +6 -0
  199. fairgraph/openminds/ephys/device/electrode.py +81 -0
  200. fairgraph/openminds/ephys/device/electrode_array.py +85 -0
  201. fairgraph/openminds/ephys/device/electrode_array_usage.py +105 -0
  202. fairgraph/openminds/ephys/device/electrode_usage.py +101 -0
  203. fairgraph/openminds/ephys/device/pipette.py +81 -0
  204. fairgraph/openminds/ephys/device/pipette_usage.py +123 -0
  205. fairgraph/openminds/ephys/entity/__init__.py +2 -0
  206. fairgraph/openminds/ephys/entity/channel.py +23 -0
  207. fairgraph/openminds/ephys/entity/recording.py +63 -0
  208. fairgraph/openminds/publications/__init__.py +47 -0
  209. fairgraph/openminds/publications/book.py +106 -0
  210. fairgraph/openminds/publications/chapter.py +100 -0
  211. fairgraph/openminds/publications/learning_resource.py +90 -0
  212. fairgraph/openminds/publications/live_paper.py +95 -0
  213. fairgraph/openminds/publications/live_paper_resource_item.py +58 -0
  214. fairgraph/openminds/publications/live_paper_section.py +57 -0
  215. fairgraph/openminds/publications/live_paper_version.py +177 -0
  216. fairgraph/openminds/publications/periodical.py +53 -0
  217. fairgraph/openminds/publications/publication_issue.py +44 -0
  218. fairgraph/openminds/publications/publication_volume.py +44 -0
  219. fairgraph/openminds/publications/scholarly_article.py +146 -0
  220. fairgraph/openminds/sands/__init__.py +57 -0
  221. fairgraph/openminds/sands/atlas/__init__.py +9 -0
  222. fairgraph/openminds/sands/atlas/atlas_annotation.py +52 -0
  223. fairgraph/openminds/sands/atlas/brain_atlas.py +113 -0
  224. fairgraph/openminds/sands/atlas/brain_atlas_version.py +213 -0
  225. fairgraph/openminds/sands/atlas/common_coordinate_space.py +121 -0
  226. fairgraph/openminds/sands/atlas/common_coordinate_space_version.py +243 -0
  227. fairgraph/openminds/sands/atlas/parcellation_entity.py +133 -0
  228. fairgraph/openminds/sands/atlas/parcellation_entity_version.py +162 -0
  229. fairgraph/openminds/sands/atlas/parcellation_terminology.py +38 -0
  230. fairgraph/openminds/sands/atlas/parcellation_terminology_version.py +38 -0
  231. fairgraph/openminds/sands/mathematical_shapes/__init__.py +3 -0
  232. fairgraph/openminds/sands/mathematical_shapes/circle.py +23 -0
  233. fairgraph/openminds/sands/mathematical_shapes/ellipse.py +27 -0
  234. fairgraph/openminds/sands/mathematical_shapes/rectangle.py +23 -0
  235. fairgraph/openminds/sands/miscellaneous/__init__.py +6 -0
  236. fairgraph/openminds/sands/miscellaneous/anatomical_target_position.py +40 -0
  237. fairgraph/openminds/sands/miscellaneous/coordinate_point.py +23 -0
  238. fairgraph/openminds/sands/miscellaneous/qualitative_relation_assessment.py +34 -0
  239. fairgraph/openminds/sands/miscellaneous/quantitative_relation_assessment.py +38 -0
  240. fairgraph/openminds/sands/miscellaneous/single_color.py +24 -0
  241. fairgraph/openminds/sands/miscellaneous/viewer_specification.py +40 -0
  242. fairgraph/openminds/sands/non_atlas/__init__.py +3 -0
  243. fairgraph/openminds/sands/non_atlas/custom_anatomical_entity.py +110 -0
  244. fairgraph/openminds/sands/non_atlas/custom_annotation.py +54 -0
  245. fairgraph/openminds/sands/non_atlas/custom_coordinate_space.py +67 -0
  246. fairgraph/openminds/specimen_prep/__init__.py +38 -0
  247. fairgraph/openminds/specimen_prep/activity/__init__.py +3 -0
  248. fairgraph/openminds/specimen_prep/activity/cranial_window_preparation.py +69 -0
  249. fairgraph/openminds/specimen_prep/activity/tissue_culture_preparation.py +67 -0
  250. fairgraph/openminds/specimen_prep/activity/tissue_sample_slicing.py +69 -0
  251. fairgraph/openminds/specimen_prep/device/__init__.py +2 -0
  252. fairgraph/openminds/specimen_prep/device/slicing_device.py +73 -0
  253. fairgraph/openminds/specimen_prep/device/slicing_device_usage.py +117 -0
  254. fairgraph/openminds/specimenprep.py +4 -0
  255. fairgraph/openminds/stimulation/__init__.py +38 -0
  256. fairgraph/openminds/stimulation/activity/__init__.py +1 -0
  257. fairgraph/openminds/stimulation/activity/stimulation_activity.py +67 -0
  258. fairgraph/openminds/stimulation/stimulus/__init__.py +1 -0
  259. fairgraph/openminds/stimulation/stimulus/ephys_stimulus.py +63 -0
  260. fairgraph/queries.py +499 -0
  261. fairgraph/registry.py +123 -0
  262. fairgraph/utility.py +607 -0
  263. fairgraph-0.13.0.dist-info/METADATA +222 -0
  264. fairgraph-0.13.0.dist-info/RECORD +267 -0
  265. fairgraph-0.13.0.dist-info/WHEEL +5 -0
  266. fairgraph-0.13.0.dist-info/licenses/LICENSE.txt +177 -0
  267. fairgraph-0.13.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,240 @@
1
+ """
2
+ Structured information on data originating from human/animal studies or simulations (version level).
3
+ """
4
+
5
+ # this file was auto-generated
6
+
7
+ from openminds.properties import Property
8
+ from openminds.v4.core import DatasetVersion as OMDatasetVersion
9
+ from fairgraph import KGObject
10
+
11
+ from urllib.request import urlretrieve
12
+ from pathlib import Path
13
+ from ....utility import accepted_terms_of_use
14
+ from datetime import date
15
+ from openminds import IRI
16
+
17
+
18
+ class DatasetVersion(KGObject, OMDatasetVersion):
19
+ """
20
+ Structured information on data originating from human/animal studies or simulations (version level).
21
+ """
22
+
23
+ type_ = "https://openminds.om-i.org/types/DatasetVersion"
24
+ default_space = "dataset"
25
+ # forward properties are defined in the parent class (in openMINDS-Python)
26
+ reverse_properties = [
27
+ Property(
28
+ "comments",
29
+ "openminds.v4.core.Comment",
30
+ "about",
31
+ reverse="about",
32
+ multiple=True,
33
+ description="reverse of 'about'",
34
+ ),
35
+ Property(
36
+ "has_parts",
37
+ [
38
+ "openminds.v4.core.ProtocolExecution",
39
+ "openminds.v4.ephys.CellPatching",
40
+ "openminds.v4.ephys.ElectrodePlacement",
41
+ "openminds.v4.ephys.RecordingActivity",
42
+ "openminds.v4.specimen_prep.CranialWindowPreparation",
43
+ "openminds.v4.specimen_prep.TissueCulturePreparation",
44
+ "openminds.v4.specimen_prep.TissueSampleSlicing",
45
+ "openminds.v4.stimulation.StimulationActivity",
46
+ ],
47
+ "isPartOf",
48
+ reverse="is_part_of",
49
+ multiple=True,
50
+ description="reverse of 'is_part_of'",
51
+ ),
52
+ Property(
53
+ "is_input_to",
54
+ "openminds.v4.computation.DataCopy",
55
+ "input",
56
+ reverse="inputs",
57
+ multiple=True,
58
+ description="reverse of 'inputs'",
59
+ ),
60
+ Property(
61
+ "is_old_version_of",
62
+ "openminds.v4.core.DatasetVersion",
63
+ "isNewVersionOf",
64
+ reverse="is_new_version_of",
65
+ multiple=True,
66
+ description="reverse of 'is_new_version_of'",
67
+ ),
68
+ Property(
69
+ "is_part_of",
70
+ ["openminds.v4.core.Project", "openminds.v4.core.ResearchProductGroup"],
71
+ "hasPart",
72
+ reverse="has_parts",
73
+ multiple=True,
74
+ description="reverse of 'has_parts'",
75
+ ),
76
+ Property(
77
+ "is_version_of",
78
+ "openminds.v4.core.Dataset",
79
+ "hasVersion",
80
+ reverse="has_versions",
81
+ multiple=True,
82
+ description="reverse of 'has_versions'",
83
+ ),
84
+ Property(
85
+ "learning_resources",
86
+ "openminds.v4.publications.LearningResource",
87
+ "about",
88
+ reverse="about",
89
+ multiple=True,
90
+ description="reverse of 'about'",
91
+ ),
92
+ Property(
93
+ "publication",
94
+ "openminds.v4.publications.LivePaperVersion",
95
+ "about",
96
+ reverse="about",
97
+ multiple=True,
98
+ description="reverse of 'about'",
99
+ ),
100
+ ]
101
+ aliases = {"name": "full_name", "alias": "short_name"}
102
+ existence_query_properties = ("short_name", "version_identifier")
103
+
104
+ def __init__(
105
+ self,
106
+ name=None,
107
+ alias=None,
108
+ accessibility=None,
109
+ authors=None,
110
+ behavioral_protocols=None,
111
+ comments=None,
112
+ copyright=None,
113
+ custodians=None,
114
+ data_types=None,
115
+ description=None,
116
+ digital_identifier=None,
117
+ ethics_assessment=None,
118
+ experimental_approaches=None,
119
+ full_documentation=None,
120
+ full_name=None,
121
+ funding=None,
122
+ has_parts=None,
123
+ homepage=None,
124
+ how_to_cite=None,
125
+ input_data=None,
126
+ is_alternative_version_of=None,
127
+ is_input_to=None,
128
+ is_new_version_of=None,
129
+ is_old_version_of=None,
130
+ is_part_of=None,
131
+ is_version_of=None,
132
+ keywords=None,
133
+ learning_resources=None,
134
+ license=None,
135
+ other_contributions=None,
136
+ preparation_designs=None,
137
+ protocols=None,
138
+ publication=None,
139
+ related_publications=None,
140
+ release_date=None,
141
+ repository=None,
142
+ short_name=None,
143
+ studied_specimens=None,
144
+ study_targets=None,
145
+ support_channels=None,
146
+ techniques=None,
147
+ version_identifier=None,
148
+ version_innovation=None,
149
+ id=None,
150
+ data=None,
151
+ space=None,
152
+ release_status=None,
153
+ ):
154
+ return KGObject.__init__(
155
+ self,
156
+ id=id,
157
+ space=space,
158
+ release_status=release_status,
159
+ data=data,
160
+ name=name,
161
+ alias=alias,
162
+ accessibility=accessibility,
163
+ authors=authors,
164
+ behavioral_protocols=behavioral_protocols,
165
+ comments=comments,
166
+ copyright=copyright,
167
+ custodians=custodians,
168
+ data_types=data_types,
169
+ description=description,
170
+ digital_identifier=digital_identifier,
171
+ ethics_assessment=ethics_assessment,
172
+ experimental_approaches=experimental_approaches,
173
+ full_documentation=full_documentation,
174
+ full_name=full_name,
175
+ funding=funding,
176
+ has_parts=has_parts,
177
+ homepage=homepage,
178
+ how_to_cite=how_to_cite,
179
+ input_data=input_data,
180
+ is_alternative_version_of=is_alternative_version_of,
181
+ is_input_to=is_input_to,
182
+ is_new_version_of=is_new_version_of,
183
+ is_old_version_of=is_old_version_of,
184
+ is_part_of=is_part_of,
185
+ is_version_of=is_version_of,
186
+ keywords=keywords,
187
+ learning_resources=learning_resources,
188
+ license=license,
189
+ other_contributions=other_contributions,
190
+ preparation_designs=preparation_designs,
191
+ protocols=protocols,
192
+ publication=publication,
193
+ related_publications=related_publications,
194
+ release_date=release_date,
195
+ repository=repository,
196
+ short_name=short_name,
197
+ studied_specimens=studied_specimens,
198
+ study_targets=study_targets,
199
+ support_channels=support_channels,
200
+ techniques=techniques,
201
+ version_identifier=version_identifier,
202
+ version_innovation=version_innovation,
203
+ )
204
+
205
+ def download(self, local_path, client, accept_terms_of_use=False):
206
+ if accepted_terms_of_use(client, accept_terms_of_use=accept_terms_of_use):
207
+ repo = self.repository.resolve(client, release_status=self.release_status or None)
208
+ if repo.iri.value.startswith("https://object.cscs.ch/v1/AUTH") or repo.iri.value.startswith(
209
+ "https://data-proxy.ebrains.eu/api/v1/public"
210
+ ):
211
+ zip_archive_url = f"https://data.kg.ebrains.eu/zip?container={repo.iri.value}"
212
+ else:
213
+ raise NotImplementedError("Download not yet implemented for this repository type")
214
+ if local_path.endswith(".zip"):
215
+ local_filename = Path(local_path)
216
+ else:
217
+ local_filename = Path(local_path) / (zip_archive_url.split("/")[-1] + ".zip")
218
+ local_filename.parent.mkdir(parents=True, exist_ok=True)
219
+ local_filename, headers = urlretrieve(zip_archive_url, local_filename)
220
+ return local_filename, repo.iri.value
221
+
222
+ def _get_inherited_property(self, property_name, client, release_status="released"):
223
+ value = getattr(self, property_name)
224
+ if value:
225
+ return value
226
+ else:
227
+ parent = self.is_version_of.resolve(client, release_status=release_status)
228
+ return getattr(parent, property_name)
229
+
230
+ def get_full_name(self, client, release_status="released"):
231
+ return self._get_inherited_property("full_name", client, release_status)
232
+
233
+ def get_short_name(self, client, release_status="released"):
234
+ return self._get_inherited_property("short_name", client, release_status)
235
+
236
+ def get_description(self, client, release_status="released"):
237
+ return self._get_inherited_property("description", client, release_status)
238
+
239
+ def get_authors(self, client, release_status="released"):
240
+ return self._get_inherited_property("authors", client, release_status)
@@ -0,0 +1,95 @@
1
+ """
2
+ <description not available>
3
+ """
4
+
5
+ # this file was auto-generated
6
+
7
+ from openminds.properties import Property
8
+ from openminds.v4.core import MetaDataModel as OMMetaDataModel
9
+ from fairgraph import KGObject
10
+
11
+
12
+ from openminds import IRI
13
+
14
+
15
+ class MetaDataModel(KGObject, OMMetaDataModel):
16
+ """
17
+ <description not available>
18
+ """
19
+
20
+ type_ = "https://openminds.om-i.org/types/MetaDataModel"
21
+ default_space = "metadatamodel"
22
+ # forward properties are defined in the parent class (in openMINDS-Python)
23
+ reverse_properties = [
24
+ Property(
25
+ "comments",
26
+ "openminds.v4.core.Comment",
27
+ "about",
28
+ reverse="about",
29
+ multiple=True,
30
+ description="reverse of 'about'",
31
+ ),
32
+ Property(
33
+ "is_part_of",
34
+ ["openminds.v4.core.Project", "openminds.v4.core.ResearchProductGroup"],
35
+ "hasPart",
36
+ reverse="has_parts",
37
+ multiple=True,
38
+ description="reverse of 'has_parts'",
39
+ ),
40
+ Property(
41
+ "learning_resources",
42
+ "openminds.v4.publications.LearningResource",
43
+ "about",
44
+ reverse="about",
45
+ multiple=True,
46
+ description="reverse of 'about'",
47
+ ),
48
+ ]
49
+ aliases = {"name": "full_name", "versions": "has_versions", "alias": "short_name"}
50
+ existence_query_properties = ("short_name",)
51
+
52
+ def __init__(
53
+ self,
54
+ name=None,
55
+ alias=None,
56
+ comments=None,
57
+ custodians=None,
58
+ description=None,
59
+ developers=None,
60
+ digital_identifier=None,
61
+ full_name=None,
62
+ has_versions=None,
63
+ homepage=None,
64
+ how_to_cite=None,
65
+ is_part_of=None,
66
+ learning_resources=None,
67
+ short_name=None,
68
+ versions=None,
69
+ id=None,
70
+ data=None,
71
+ space=None,
72
+ release_status=None,
73
+ ):
74
+ return KGObject.__init__(
75
+ self,
76
+ id=id,
77
+ space=space,
78
+ release_status=release_status,
79
+ data=data,
80
+ name=name,
81
+ alias=alias,
82
+ comments=comments,
83
+ custodians=custodians,
84
+ description=description,
85
+ developers=developers,
86
+ digital_identifier=digital_identifier,
87
+ full_name=full_name,
88
+ has_versions=has_versions,
89
+ homepage=homepage,
90
+ how_to_cite=how_to_cite,
91
+ is_part_of=is_part_of,
92
+ learning_resources=learning_resources,
93
+ short_name=short_name,
94
+ versions=versions,
95
+ )
@@ -0,0 +1,168 @@
1
+ """
2
+ <description not available>
3
+ """
4
+
5
+ # this file was auto-generated
6
+
7
+ from openminds.properties import Property
8
+ from openminds.v4.core import MetaDataModelVersion as OMMetaDataModelVersion
9
+ from fairgraph import KGObject
10
+
11
+
12
+ from datetime import date
13
+ from openminds import IRI
14
+
15
+
16
+ class MetaDataModelVersion(KGObject, OMMetaDataModelVersion):
17
+ """
18
+ <description not available>
19
+ """
20
+
21
+ type_ = "https://openminds.om-i.org/types/MetaDataModelVersion"
22
+ default_space = "metadatamodel"
23
+ # forward properties are defined in the parent class (in openMINDS-Python)
24
+ reverse_properties = [
25
+ Property(
26
+ "comments",
27
+ "openminds.v4.core.Comment",
28
+ "about",
29
+ reverse="about",
30
+ multiple=True,
31
+ description="reverse of 'about'",
32
+ ),
33
+ Property(
34
+ "is_old_version_of",
35
+ "openminds.v4.core.MetaDataModelVersion",
36
+ "isNewVersionOf",
37
+ reverse="is_new_version_of",
38
+ multiple=True,
39
+ description="reverse of 'is_new_version_of'",
40
+ ),
41
+ Property(
42
+ "is_part_of",
43
+ ["openminds.v4.core.Project", "openminds.v4.core.ResearchProductGroup"],
44
+ "hasPart",
45
+ reverse="has_parts",
46
+ multiple=True,
47
+ description="reverse of 'has_parts'",
48
+ ),
49
+ Property(
50
+ "is_version_of",
51
+ "openminds.v4.core.MetaDataModel",
52
+ "hasVersion",
53
+ reverse="has_versions",
54
+ multiple=True,
55
+ description="reverse of 'has_versions'",
56
+ ),
57
+ Property(
58
+ "learning_resources",
59
+ "openminds.v4.publications.LearningResource",
60
+ "about",
61
+ reverse="about",
62
+ multiple=True,
63
+ description="reverse of 'about'",
64
+ ),
65
+ ]
66
+ aliases = {"name": "full_name", "alias": "short_name"}
67
+ existence_query_properties = ("short_name", "version_identifier")
68
+
69
+ def __init__(
70
+ self,
71
+ name=None,
72
+ alias=None,
73
+ accessibility=None,
74
+ comments=None,
75
+ copyright=None,
76
+ custodians=None,
77
+ description=None,
78
+ developers=None,
79
+ digital_identifier=None,
80
+ full_documentation=None,
81
+ full_name=None,
82
+ funding=None,
83
+ homepage=None,
84
+ how_to_cite=None,
85
+ is_alternative_version_of=None,
86
+ is_new_version_of=None,
87
+ is_old_version_of=None,
88
+ is_part_of=None,
89
+ is_version_of=None,
90
+ keywords=None,
91
+ learning_resources=None,
92
+ license=None,
93
+ other_contributions=None,
94
+ related_publications=None,
95
+ release_date=None,
96
+ repository=None,
97
+ serialization_formats=None,
98
+ short_name=None,
99
+ specification_formats=None,
100
+ support_channels=None,
101
+ type=None,
102
+ version_identifier=None,
103
+ version_innovation=None,
104
+ id=None,
105
+ data=None,
106
+ space=None,
107
+ release_status=None,
108
+ ):
109
+ return KGObject.__init__(
110
+ self,
111
+ id=id,
112
+ space=space,
113
+ release_status=release_status,
114
+ data=data,
115
+ name=name,
116
+ alias=alias,
117
+ accessibility=accessibility,
118
+ comments=comments,
119
+ copyright=copyright,
120
+ custodians=custodians,
121
+ description=description,
122
+ developers=developers,
123
+ digital_identifier=digital_identifier,
124
+ full_documentation=full_documentation,
125
+ full_name=full_name,
126
+ funding=funding,
127
+ homepage=homepage,
128
+ how_to_cite=how_to_cite,
129
+ is_alternative_version_of=is_alternative_version_of,
130
+ is_new_version_of=is_new_version_of,
131
+ is_old_version_of=is_old_version_of,
132
+ is_part_of=is_part_of,
133
+ is_version_of=is_version_of,
134
+ keywords=keywords,
135
+ learning_resources=learning_resources,
136
+ license=license,
137
+ other_contributions=other_contributions,
138
+ related_publications=related_publications,
139
+ release_date=release_date,
140
+ repository=repository,
141
+ serialization_formats=serialization_formats,
142
+ short_name=short_name,
143
+ specification_formats=specification_formats,
144
+ support_channels=support_channels,
145
+ type=type,
146
+ version_identifier=version_identifier,
147
+ version_innovation=version_innovation,
148
+ )
149
+
150
+ def _get_inherited_property(self, property_name, client, release_status="released"):
151
+ value = getattr(self, property_name)
152
+ if value:
153
+ return value
154
+ else:
155
+ parent = self.is_version_of.resolve(client, release_status=release_status)
156
+ return getattr(parent, property_name)
157
+
158
+ def get_full_name(self, client, release_status="released"):
159
+ return self._get_inherited_property("full_name", client, release_status)
160
+
161
+ def get_short_name(self, client, release_status="released"):
162
+ return self._get_inherited_property("short_name", client, release_status)
163
+
164
+ def get_description(self, client, release_status="released"):
165
+ return self._get_inherited_property("description", client, release_status)
166
+
167
+ def get_developers(self, client, release_status="released"):
168
+ return self._get_inherited_property("developers", client, release_status)
@@ -0,0 +1,103 @@
1
+ """
2
+ Structured information on a computational model (concept level).
3
+ """
4
+
5
+ # this file was auto-generated
6
+
7
+ from openminds.properties import Property
8
+ from openminds.v4.core import Model as OMModel
9
+ from fairgraph import KGObject
10
+
11
+
12
+ from openminds import IRI
13
+
14
+
15
+ class Model(KGObject, OMModel):
16
+ """
17
+ Structured information on a computational model (concept level).
18
+ """
19
+
20
+ type_ = "https://openminds.om-i.org/types/Model"
21
+ default_space = "model"
22
+ # forward properties are defined in the parent class (in openMINDS-Python)
23
+ reverse_properties = [
24
+ Property(
25
+ "comments",
26
+ "openminds.v4.core.Comment",
27
+ "about",
28
+ reverse="about",
29
+ multiple=True,
30
+ description="reverse of 'about'",
31
+ ),
32
+ Property(
33
+ "is_part_of",
34
+ ["openminds.v4.core.Project", "openminds.v4.core.ResearchProductGroup"],
35
+ "hasPart",
36
+ reverse="has_parts",
37
+ multiple=True,
38
+ description="reverse of 'has_parts'",
39
+ ),
40
+ Property(
41
+ "learning_resources",
42
+ "openminds.v4.publications.LearningResource",
43
+ "about",
44
+ reverse="about",
45
+ multiple=True,
46
+ description="reverse of 'about'",
47
+ ),
48
+ ]
49
+ aliases = {"name": "full_name", "versions": "has_versions", "model_scope": "scope", "alias": "short_name"}
50
+ existence_query_properties = ("full_name",)
51
+
52
+ def __init__(
53
+ self,
54
+ name=None,
55
+ alias=None,
56
+ abstraction_level=None,
57
+ comments=None,
58
+ custodians=None,
59
+ description=None,
60
+ developers=None,
61
+ digital_identifier=None,
62
+ full_name=None,
63
+ has_versions=None,
64
+ homepage=None,
65
+ how_to_cite=None,
66
+ is_part_of=None,
67
+ learning_resources=None,
68
+ model_scope=None,
69
+ scope=None,
70
+ short_name=None,
71
+ study_targets=None,
72
+ versions=None,
73
+ id=None,
74
+ data=None,
75
+ space=None,
76
+ release_status=None,
77
+ ):
78
+ return KGObject.__init__(
79
+ self,
80
+ id=id,
81
+ space=space,
82
+ release_status=release_status,
83
+ data=data,
84
+ name=name,
85
+ alias=alias,
86
+ abstraction_level=abstraction_level,
87
+ comments=comments,
88
+ custodians=custodians,
89
+ description=description,
90
+ developers=developers,
91
+ digital_identifier=digital_identifier,
92
+ full_name=full_name,
93
+ has_versions=has_versions,
94
+ homepage=homepage,
95
+ how_to_cite=how_to_cite,
96
+ is_part_of=is_part_of,
97
+ learning_resources=learning_resources,
98
+ model_scope=model_scope,
99
+ scope=scope,
100
+ short_name=short_name,
101
+ study_targets=study_targets,
102
+ versions=versions,
103
+ )