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,235 @@
1
+ """
2
+ Structured information on a computational model (version level).
3
+ """
4
+
5
+ # this file was auto-generated
6
+
7
+ from openminds.properties import Property
8
+ from openminds.v4.core import ModelVersion as OMModelVersion
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 ModelVersion(KGObject, OMModelVersion):
19
+ """
20
+ Structured information on a computational model (version level).
21
+ """
22
+
23
+ type_ = "https://openminds.om-i.org/types/ModelVersion"
24
+ default_space = "model"
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
+ "is_input_to",
37
+ [
38
+ "openminds.v4.computation.DataCopy",
39
+ "openminds.v4.computation.ModelValidation",
40
+ "openminds.v4.computation.Simulation",
41
+ ],
42
+ "input",
43
+ reverse="inputs",
44
+ multiple=True,
45
+ description="reverse of 'inputs'",
46
+ ),
47
+ Property(
48
+ "is_location_of",
49
+ "openminds.v4.core.ServiceLink",
50
+ "dataLocation",
51
+ reverse="data_location",
52
+ multiple=True,
53
+ description="reverse of 'data_location'",
54
+ ),
55
+ Property(
56
+ "is_old_version_of",
57
+ "openminds.v4.core.ModelVersion",
58
+ "isNewVersionOf",
59
+ reverse="is_new_version_of",
60
+ multiple=True,
61
+ description="reverse of 'is_new_version_of'",
62
+ ),
63
+ Property(
64
+ "is_output_of",
65
+ "openminds.v4.computation.Optimization",
66
+ "output",
67
+ reverse="outputs",
68
+ multiple=True,
69
+ description="reverse of 'outputs'",
70
+ ),
71
+ Property(
72
+ "is_part_of",
73
+ [
74
+ "openminds.v4.core.Project",
75
+ "openminds.v4.core.ResearchProductGroup",
76
+ "openminds.v4.core.SoftwareVersion",
77
+ ],
78
+ "hasPart",
79
+ reverse="has_parts",
80
+ multiple=True,
81
+ description="reverse of 'has_parts'",
82
+ ),
83
+ Property(
84
+ "is_version_of",
85
+ "openminds.v4.core.Model",
86
+ "hasVersion",
87
+ reverse="has_versions",
88
+ multiple=True,
89
+ description="reverse of 'has_versions'",
90
+ ),
91
+ Property(
92
+ "learning_resources",
93
+ "openminds.v4.publications.LearningResource",
94
+ "about",
95
+ reverse="about",
96
+ multiple=True,
97
+ description="reverse of 'about'",
98
+ ),
99
+ Property(
100
+ "publication",
101
+ "openminds.v4.publications.LivePaperVersion",
102
+ "about",
103
+ reverse="about",
104
+ multiple=True,
105
+ description="reverse of 'about'",
106
+ ),
107
+ ]
108
+ aliases = {"name": "full_name", "alias": "short_name"}
109
+ existence_query_properties = ("full_name", "version_identifier")
110
+
111
+ def __init__(
112
+ self,
113
+ name=None,
114
+ alias=None,
115
+ accessibility=None,
116
+ comments=None,
117
+ copyright=None,
118
+ custodians=None,
119
+ description=None,
120
+ developers=None,
121
+ digital_identifier=None,
122
+ formats=None,
123
+ full_documentation=None,
124
+ full_name=None,
125
+ funding=None,
126
+ homepage=None,
127
+ how_to_cite=None,
128
+ input_data=None,
129
+ is_alternative_version_of=None,
130
+ is_input_to=None,
131
+ is_location_of=None,
132
+ is_new_version_of=None,
133
+ is_old_version_of=None,
134
+ is_output_of=None,
135
+ is_part_of=None,
136
+ is_version_of=None,
137
+ keywords=None,
138
+ learning_resources=None,
139
+ licenses=None,
140
+ other_contributions=None,
141
+ output_data=None,
142
+ publication=None,
143
+ related_publications=None,
144
+ release_date=None,
145
+ repository=None,
146
+ short_name=None,
147
+ support_channels=None,
148
+ version_identifier=None,
149
+ version_innovation=None,
150
+ id=None,
151
+ data=None,
152
+ space=None,
153
+ release_status=None,
154
+ ):
155
+ return KGObject.__init__(
156
+ self,
157
+ id=id,
158
+ space=space,
159
+ release_status=release_status,
160
+ data=data,
161
+ name=name,
162
+ alias=alias,
163
+ accessibility=accessibility,
164
+ comments=comments,
165
+ copyright=copyright,
166
+ custodians=custodians,
167
+ description=description,
168
+ developers=developers,
169
+ digital_identifier=digital_identifier,
170
+ formats=formats,
171
+ full_documentation=full_documentation,
172
+ full_name=full_name,
173
+ funding=funding,
174
+ homepage=homepage,
175
+ how_to_cite=how_to_cite,
176
+ input_data=input_data,
177
+ is_alternative_version_of=is_alternative_version_of,
178
+ is_input_to=is_input_to,
179
+ is_location_of=is_location_of,
180
+ is_new_version_of=is_new_version_of,
181
+ is_old_version_of=is_old_version_of,
182
+ is_output_of=is_output_of,
183
+ is_part_of=is_part_of,
184
+ is_version_of=is_version_of,
185
+ keywords=keywords,
186
+ learning_resources=learning_resources,
187
+ licenses=licenses,
188
+ other_contributions=other_contributions,
189
+ output_data=output_data,
190
+ publication=publication,
191
+ related_publications=related_publications,
192
+ release_date=release_date,
193
+ repository=repository,
194
+ short_name=short_name,
195
+ support_channels=support_channels,
196
+ version_identifier=version_identifier,
197
+ version_innovation=version_innovation,
198
+ )
199
+
200
+ def download(self, local_path, client, accept_terms_of_use=False):
201
+ if accepted_terms_of_use(client, accept_terms_of_use=accept_terms_of_use):
202
+ repo = self.repository.resolve(client, release_status=self.release_status or None)
203
+ if repo.iri.value.startswith("https://object.cscs.ch/v1/AUTH") or repo.iri.value.startswith(
204
+ "https://data-proxy.ebrains.eu/api/v1/public"
205
+ ):
206
+ zip_archive_url = f"https://data.kg.ebrains.eu/zip?container={repo.iri.value}"
207
+ else:
208
+ raise NotImplementedError("Download not yet implemented for this repository type")
209
+ if local_path.endswith(".zip"):
210
+ local_filename = Path(local_path)
211
+ else:
212
+ local_filename = Path(local_path) / (zip_archive_url.split("/")[-1] + ".zip")
213
+ local_filename.parent.mkdir(parents=True, exist_ok=True)
214
+ local_filename, headers = urlretrieve(zip_archive_url, local_filename)
215
+ return local_filename, repo.iri.value
216
+
217
+ def _get_inherited_property(self, property_name, client, release_status="released"):
218
+ value = getattr(self, property_name)
219
+ if value:
220
+ return value
221
+ else:
222
+ parent = self.is_version_of.resolve(client, release_status=release_status)
223
+ return getattr(parent, property_name)
224
+
225
+ def get_full_name(self, client, release_status="released"):
226
+ return self._get_inherited_property("full_name", client, release_status)
227
+
228
+ def get_short_name(self, client, release_status="released"):
229
+ return self._get_inherited_property("short_name", client, release_status)
230
+
231
+ def get_description(self, client, release_status="released"):
232
+ return self._get_inherited_property("description", client, release_status)
233
+
234
+ def get_developers(self, client, release_status="released"):
235
+ return self._get_inherited_property("developers", client, release_status)
@@ -0,0 +1,56 @@
1
+ """
2
+ Structured information on a research project.
3
+ """
4
+
5
+ # this file was auto-generated
6
+
7
+ from openminds.properties import Property
8
+ from openminds.v4.core import Project as OMProject
9
+ from fairgraph import KGObject
10
+
11
+
12
+ from openminds import IRI
13
+
14
+
15
+ class Project(KGObject, OMProject):
16
+ """
17
+ Structured information on a research project.
18
+ """
19
+
20
+ type_ = "https://openminds.om-i.org/types/Project"
21
+ default_space = "common"
22
+ # forward properties are defined in the parent class (in openMINDS-Python)
23
+ reverse_properties = []
24
+ aliases = {"name": "full_name", "alias": "short_name"}
25
+ existence_query_properties = ("short_name",)
26
+
27
+ def __init__(
28
+ self,
29
+ name=None,
30
+ alias=None,
31
+ coordinators=None,
32
+ description=None,
33
+ full_name=None,
34
+ has_parts=None,
35
+ homepage=None,
36
+ short_name=None,
37
+ id=None,
38
+ data=None,
39
+ space=None,
40
+ release_status=None,
41
+ ):
42
+ return KGObject.__init__(
43
+ self,
44
+ id=id,
45
+ space=space,
46
+ release_status=release_status,
47
+ data=data,
48
+ name=name,
49
+ alias=alias,
50
+ coordinators=coordinators,
51
+ description=description,
52
+ full_name=full_name,
53
+ has_parts=has_parts,
54
+ homepage=homepage,
55
+ short_name=short_name,
56
+ )
@@ -0,0 +1,69 @@
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 Setup as OMSetup
9
+ from fairgraph import KGObject
10
+
11
+
12
+ class Setup(KGObject, OMSetup):
13
+ """
14
+ <description not available>
15
+ """
16
+
17
+ type_ = "https://openminds.om-i.org/types/Setup"
18
+ default_space = "dataset"
19
+ # forward properties are defined in the parent class (in openMINDS-Python)
20
+ reverse_properties = [
21
+ Property(
22
+ "is_part_of",
23
+ "openminds.v4.core.Setup",
24
+ "hasPart",
25
+ reverse="has_parts",
26
+ multiple=True,
27
+ description="reverse of 'has_parts'",
28
+ ),
29
+ Property(
30
+ "used_in",
31
+ "openminds.v4.stimulation.StimulationActivity",
32
+ "setup",
33
+ reverse="setup",
34
+ multiple=True,
35
+ description="reverse of 'setup'",
36
+ ),
37
+ ]
38
+ existence_query_properties = ("description", "has_parts", "name")
39
+
40
+ def __init__(
41
+ self,
42
+ name=None,
43
+ description=None,
44
+ has_parts=None,
45
+ is_part_of=None,
46
+ location=None,
47
+ manufacturers=None,
48
+ types=None,
49
+ used_in=None,
50
+ id=None,
51
+ data=None,
52
+ space=None,
53
+ release_status=None,
54
+ ):
55
+ return KGObject.__init__(
56
+ self,
57
+ id=id,
58
+ space=space,
59
+ release_status=release_status,
60
+ data=data,
61
+ name=name,
62
+ description=description,
63
+ has_parts=has_parts,
64
+ is_part_of=is_part_of,
65
+ location=location,
66
+ manufacturers=manufacturers,
67
+ types=types,
68
+ used_in=used_in,
69
+ )
@@ -0,0 +1,95 @@
1
+ """
2
+ Structured information on a software tool (concept level).
3
+ """
4
+
5
+ # this file was auto-generated
6
+
7
+ from openminds.properties import Property
8
+ from openminds.v4.core import Software as OMSoftware
9
+ from fairgraph import KGObject
10
+
11
+
12
+ from openminds import IRI
13
+
14
+
15
+ class Software(KGObject, OMSoftware):
16
+ """
17
+ Structured information on a software tool (concept level).
18
+ """
19
+
20
+ type_ = "https://openminds.om-i.org/types/Software"
21
+ default_space = "software"
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,226 @@
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 SoftwareVersion as OMSoftwareVersion
9
+ from fairgraph import KGObject
10
+
11
+
12
+ from datetime import date
13
+ from openminds import IRI
14
+
15
+
16
+ class SoftwareVersion(KGObject, OMSoftwareVersion):
17
+ """
18
+ <description not available>
19
+ """
20
+
21
+ type_ = "https://openminds.om-i.org/types/SoftwareVersion"
22
+ default_space = "software"
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_input_to",
35
+ [
36
+ "openminds.v4.computation.DataAnalysis",
37
+ "openminds.v4.computation.DataCopy",
38
+ "openminds.v4.computation.GenericComputation",
39
+ "openminds.v4.computation.ModelValidation",
40
+ "openminds.v4.computation.Optimization",
41
+ "openminds.v4.computation.Simulation",
42
+ "openminds.v4.computation.Visualization",
43
+ ],
44
+ "input",
45
+ reverse="inputs",
46
+ multiple=True,
47
+ description="reverse of 'inputs'",
48
+ ),
49
+ Property(
50
+ "is_old_version_of",
51
+ "openminds.v4.core.SoftwareVersion",
52
+ "isNewVersionOf",
53
+ reverse="is_new_version_of",
54
+ multiple=True,
55
+ description="reverse of 'is_new_version_of'",
56
+ ),
57
+ Property(
58
+ "is_part_of",
59
+ [
60
+ "openminds.v4.computation.WorkflowRecipeVersion",
61
+ "openminds.v4.core.Project",
62
+ "openminds.v4.core.ResearchProductGroup",
63
+ "openminds.v4.core.Setup",
64
+ "openminds.v4.core.WebServiceVersion",
65
+ ],
66
+ "hasPart",
67
+ reverse="has_parts",
68
+ multiple=True,
69
+ description="reverse of 'has_parts'",
70
+ ),
71
+ Property(
72
+ "is_version_of",
73
+ "openminds.v4.core.Software",
74
+ "hasVersion",
75
+ reverse="has_versions",
76
+ multiple=True,
77
+ description="reverse of 'has_versions'",
78
+ ),
79
+ Property(
80
+ "learning_resources",
81
+ "openminds.v4.publications.LearningResource",
82
+ "about",
83
+ reverse="about",
84
+ multiple=True,
85
+ description="reverse of 'about'",
86
+ ),
87
+ Property(
88
+ "publication",
89
+ "openminds.v4.publications.LivePaperVersion",
90
+ "about",
91
+ reverse="about",
92
+ multiple=True,
93
+ description="reverse of 'about'",
94
+ ),
95
+ Property(
96
+ "used_in",
97
+ ["openminds.v4.computation.Environment", "openminds.v4.computation.SoftwareAgent"],
98
+ "software",
99
+ reverse="software",
100
+ multiple=True,
101
+ description="reverse of 'software'",
102
+ ),
103
+ ]
104
+ aliases = {"name": "full_name", "alias": "short_name"}
105
+ existence_query_properties = ("short_name", "version_identifier")
106
+
107
+ def __init__(
108
+ self,
109
+ name=None,
110
+ alias=None,
111
+ accessibility=None,
112
+ application_categories=None,
113
+ comments=None,
114
+ copyright=None,
115
+ custodians=None,
116
+ description=None,
117
+ developers=None,
118
+ devices=None,
119
+ digital_identifier=None,
120
+ features=None,
121
+ full_documentation=None,
122
+ full_name=None,
123
+ funding=None,
124
+ has_parts=None,
125
+ homepage=None,
126
+ how_to_cite=None,
127
+ input_formats=None,
128
+ is_alternative_version_of=None,
129
+ is_input_to=None,
130
+ is_new_version_of=None,
131
+ is_old_version_of=None,
132
+ is_part_of=None,
133
+ is_version_of=None,
134
+ keywords=None,
135
+ languages=None,
136
+ learning_resources=None,
137
+ licenses=None,
138
+ operating_systems=None,
139
+ other_contributions=None,
140
+ output_formats=None,
141
+ programming_languages=None,
142
+ publication=None,
143
+ related_publications=None,
144
+ release_date=None,
145
+ repository=None,
146
+ requirements=None,
147
+ short_name=None,
148
+ support_channels=None,
149
+ used_in=None,
150
+ version_identifier=None,
151
+ version_innovation=None,
152
+ id=None,
153
+ data=None,
154
+ space=None,
155
+ release_status=None,
156
+ ):
157
+ return KGObject.__init__(
158
+ self,
159
+ id=id,
160
+ space=space,
161
+ release_status=release_status,
162
+ data=data,
163
+ name=name,
164
+ alias=alias,
165
+ accessibility=accessibility,
166
+ application_categories=application_categories,
167
+ comments=comments,
168
+ copyright=copyright,
169
+ custodians=custodians,
170
+ description=description,
171
+ developers=developers,
172
+ devices=devices,
173
+ digital_identifier=digital_identifier,
174
+ features=features,
175
+ full_documentation=full_documentation,
176
+ full_name=full_name,
177
+ funding=funding,
178
+ has_parts=has_parts,
179
+ homepage=homepage,
180
+ how_to_cite=how_to_cite,
181
+ input_formats=input_formats,
182
+ is_alternative_version_of=is_alternative_version_of,
183
+ is_input_to=is_input_to,
184
+ is_new_version_of=is_new_version_of,
185
+ is_old_version_of=is_old_version_of,
186
+ is_part_of=is_part_of,
187
+ is_version_of=is_version_of,
188
+ keywords=keywords,
189
+ languages=languages,
190
+ learning_resources=learning_resources,
191
+ licenses=licenses,
192
+ operating_systems=operating_systems,
193
+ other_contributions=other_contributions,
194
+ output_formats=output_formats,
195
+ programming_languages=programming_languages,
196
+ publication=publication,
197
+ related_publications=related_publications,
198
+ release_date=release_date,
199
+ repository=repository,
200
+ requirements=requirements,
201
+ short_name=short_name,
202
+ support_channels=support_channels,
203
+ used_in=used_in,
204
+ version_identifier=version_identifier,
205
+ version_innovation=version_innovation,
206
+ )
207
+
208
+ def _get_inherited_property(self, property_name, client, release_status="released"):
209
+ value = getattr(self, property_name)
210
+ if value:
211
+ return value
212
+ else:
213
+ parent = self.is_version_of.resolve(client, release_status=release_status)
214
+ return getattr(parent, property_name)
215
+
216
+ def get_full_name(self, client, release_status="released"):
217
+ return self._get_inherited_property("full_name", client, release_status)
218
+
219
+ def get_short_name(self, client, release_status="released"):
220
+ return self._get_inherited_property("short_name", client, release_status)
221
+
222
+ def get_description(self, client, release_status="released"):
223
+ return self._get_inherited_property("description", client, release_status)
224
+
225
+ def get_developers(self, client, release_status="released"):
226
+ return self._get_inherited_property("developers", client, release_status)