CdmVersionTwoDiscussion » History » Version 77
Andreas Müller, 04/07/2022 04:41 PM
1 | 2 | Andreas Müller | # CDM v2.0 Discussion |
---|---|---|---|
2 | |||
3 | 77 | Andreas Müller | *This is a site to discuss possible changes to the [CDM v1.4](https://cybertaxonomy.org/cdm/v14/) to go into [CDM v2.0](https://cybertaxonomy.org/cdm/v20/)* |
4 | *See also Component C5.80 - Review of CDM v.1 and model for descriptive data in CDM v.2* |
||
5 | 2 | Andreas Müller | |
6 | ---- |
||
7 | |||
8 | 77 | Andreas Müller | {{toc}} |
9 | 2 | Andreas Müller | |
10 | 77 | Andreas Müller | {{child_pages(depth=1)}} |
11 | 2 | Andreas Müller | |
12 | |||
13 | 61 | Andreas Müller | ## Taxonomic Data |
14 | |||
15 | |||
16 | 63 | Andreas Müller | |
17 | ### Separation Of Taxonomic Concept And Taxonomic View |
||
18 | 61 | Andreas Müller | |
19 | |||
20 | There is a need to separate taxonomic concept information from taxonomic view information resulting in the new classes TaxonomicView and TaxonNode. |
||
21 | |||
22 | |||
23 | 65 | Andreas Müller | ![](CdmTaxonomicView:taxonomicView.png) |
24 | 62 | Andreas Müller | |
25 | 61 | Andreas Müller | See [taxonomic view](http://dev.e-taxonomy.eu/trac/wiki/CdmTaxonomicView) for further information. |
26 | |||
27 | |||
28 | |||
29 | 10 | Helene Fradin | |
30 | 69 | Helene Fradin | |
31 | ## DESCRIPTIVE DATA - CHANGES BEING TESTED |
||
32 | 3 | Andreas Müller | |
33 | 1 | Andreas Müller | |
34 | 10 | Helene Fradin | |
35 | ---- |
||
36 | |||
37 | |||
38 | 68 | Helene Fradin | 1. Media extends IdentifiableEntity |
39 | 1 | Andreas Müller | |
40 | 68 | Helene Fradin | - addition of a ComparableTo method |
41 | 1 | Andreas Müller | |
42 | 68 | Helene Fradin | - deletion of the redundant attribute 'rights' |
43 | 1 | Andreas Müller | |
44 | 6 | Helene Fradin | |
45 | 68 | Helene Fradin | 2. TermBase extends IdentifiableEntity |
46 | 1 | Andreas Müller | |
47 | |||
48 | 71 | Andreas Müller | There was redundancy with 'implements Comparable<T>' in OrderedTermBase and 'implements Comparable<!IdentifiableEntity>' in IdentifiableIdentity. |
49 | 30 | Helene Fradin | |
50 | 1 | Andreas Müller | |
51 | 71 | Andreas Müller | - I erased « implements Comparable<!IdentifiableEntity> » in IdentifiableEntity |
52 | 68 | Helene Fradin | |
53 | 1 | Andreas Müller | |
54 | 68 | Helene Fradin | 3. adding OnlyApplicableIf / InapplicableIf to FeatureNode |
55 | 1 | Andreas Müller | |
56 | |||
57 | 68 | Helene Fradin | private Set<State> onlyApplicableIf = new HashSet<State>(); |
58 | 15 | Helene Fradin | |
59 | 68 | Helene Fradin | private Set<State> inapplicableIf = new HashSet<State>(); |
60 | 1 | Andreas Müller | |
61 | |||
62 | 68 | Helene Fradin | with the associated get, add, remove methods. |
63 | 1 | Andreas Müller | |
64 | 17 | Helene Fradin | |
65 | 68 | Helene Fradin | These attributes are not direct equivalent for onlyApplicableIf and inapplicableIf in SDD as they are attached directly to the child feature rather than the parent feature, which allow having different inapplicability rules for each child feature. |
66 | 1 | Andreas Müller | |
67 | |||
68 | 68 | Helene Fradin | 4. Creation of the WorkingSet class |
69 | 17 | Helene Fradin | |
70 | |||
71 | 68 | Helene Fradin | public class WorkingSet<S extends DescriptionBase> extends AnnotatableEntity { |
72 | 1 | Andreas Müller | |
73 | 68 | Helene Fradin | … |
74 | 18 | Helene Fradin | |
75 | 68 | Helene Fradin | private Set<Representation> representations = new HashSet<Representation>(); |
76 | 1 | Andreas Müller | |
77 | 68 | Helene Fradin | ... |
78 | 1 | Andreas Müller | |
79 | 68 | Helene Fradin | private FeatureTree descriptiveSystem; |
80 | 18 | Helene Fradin | |
81 | 68 | Helene Fradin | ... |
82 | 1 | Andreas Müller | |
83 | private Set<S> descriptions = new HashSet<S>(); |
||
84 | |||
85 | 68 | Helene Fradin | … |
86 | 1 | Andreas Müller | |
87 | } |
||
88 | 68 | Helene Fradin | |
89 | 1 | Andreas Müller | |
90 | 71 | Andreas Müller | 5. Completion of IIdentificationKey interface |
91 | 1 | Andreas Müller | |
92 | |||
93 | 68 | Helene Fradin | public interface IIdentificationKey { |
94 | 1 | Andreas Müller | |
95 | 70 | Andreas Müller | public Set<!NamedArea> getGeographicalScope(); |
96 | 1 | Andreas Müller | |
97 | 70 | Andreas Müller | public void addGeographicalScope(!NamedArea geographicalScope); |
98 | 1 | Andreas Müller | |
99 | 70 | Andreas Müller | public void removeGeographicalScope(!NamedArea geographicalScope); |
100 | 1 | Andreas Müller | |
101 | 68 | Helene Fradin | public Set<Taxon> getTaxonomicScope(); |
102 | 1 | Andreas Müller | |
103 | 68 | Helene Fradin | public void addTaxonomicScope(Taxon taxon); |
104 | 1 | Andreas Müller | |
105 | 68 | Helene Fradin | public void removeTaxonomicScope(Taxon taxon); |
106 | 1 | Andreas Müller | |
107 | 68 | Helene Fradin | public Set<Scope> getScopeRestrictions(); |
108 | 1 | Andreas Müller | |
109 | 68 | Helene Fradin | public Set<Taxon> getCoveredTaxa(); |
110 | 22 | Helene Fradin | |
111 | 68 | Helene Fradin | public void addCoveredTaxon(Taxon taxon); |
112 | 1 | Andreas Müller | |
113 | 68 | Helene Fradin | public void removeCoveredTaxon(Taxon taxon); |
114 | 30 | Helene Fradin | |
115 | 1 | Andreas Müller | } |
116 | 68 | Helene Fradin | |
117 | 21 | Helene Fradin | |
118 | 1 | Andreas Müller | I removed 'representations' as MultiAccessKey and PolytomousKey inherit it from their hierarchy. I added it to MediaKey (former IdentificationKey) under the name of keyRepresentations in order not to mix with the media representations. |
119 | 68 | Helene Fradin | |
120 | 1 | Andreas Müller | |
121 | 6. Modification of IdentificationKey in accordance (and renaming it to MediaKey with all the necessary modifications in concerned classes) |
||
122 | 68 | Helene Fradin | |
123 | 1 | Andreas Müller | public class MediaKey extends Media implements IIdentificationKey{ |
124 | 68 | Helene Fradin | |
125 | 26 | Helene Fradin | … |
126 | 68 | Helene Fradin | |
127 | private Set<Taxon> coveredTaxa = new HashSet<Taxon>(); |
||
128 | 12 | Helene Fradin | |
129 | 68 | Helene Fradin | … |
130 | 1 | Andreas Müller | |
131 | 70 | Andreas Müller | private Set<!NamedArea> geographicalScope = new HashSet<!NamedArea>(); |
132 | 12 | Helene Fradin | |
133 | 68 | Helene Fradin | … |
134 | 24 | Helene Fradin | |
135 | 68 | Helene Fradin | private Set<Taxon> taxonomicScope = new HashSet<Taxon>(); |
136 | 1 | Andreas Müller | |
137 | 68 | Helene Fradin | … |
138 | 24 | Helene Fradin | |
139 | 68 | Helene Fradin | private Set<Scope> scopeRestrictions = new HashSet<Scope>(); |
140 | 24 | Helene Fradin | |
141 | 68 | Helene Fradin | … |
142 | 24 | Helene Fradin | |
143 | 68 | Helene Fradin | private Set<Representation> keyRepresentations = new HashSet<Representation>(); |
144 | 25 | Helene Fradin | |
145 | 68 | Helene Fradin | … |
146 | 25 | Helene Fradin | |
147 | } |
||
148 | 1 | Andreas Müller | |
149 | 25 | Helene Fradin | |
150 | 7. Creation of the class MultiAccessKey |
||
151 | 68 | Helene Fradin | |
152 | 1 | Andreas Müller | |
153 | 32 | Helene Fradin | public class MultiAccessKey extends WorkingSet implements IIdentificationKey{ |
154 | 68 | Helene Fradin | |
155 | 32 | Helene Fradin | ... |
156 | 68 | Helene Fradin | |
157 | 27 | Helene Fradin | private Set<Taxon> coveredTaxa = new HashSet<Taxon>(); |
158 | 68 | Helene Fradin | |
159 | 27 | Helene Fradin | ... |
160 | |||
161 | 68 | Helene Fradin | private Set<Taxon> taxonomicScope = new HashSet<Taxon>(); |
162 | 1 | Andreas Müller | |
163 | 68 | Helene Fradin | ... |
164 | 57 | Helene Fradin | |
165 | 70 | Andreas Müller | private Set<!NamedArea> geographicalScope = new HashSet<!NamedArea>(); |
166 | 57 | Helene Fradin | |
167 | 68 | Helene Fradin | ... |
168 | 57 | Helene Fradin | |
169 | 68 | Helene Fradin | private Set<Scope> scopeRestrictions = new HashSet<Scope>(); |
170 | 57 | Helene Fradin | |
171 | 68 | Helene Fradin | } |
172 | 1 | Andreas Müller | |
173 | 57 | Helene Fradin | |
174 | 8. Creation of PolytomousKey |
||
175 | 68 | Helene Fradin | |
176 | 57 | Helene Fradin | |
177 | public class PolytomousKey extends FeatureTree implements IIdentificationKey{ |
||
178 | 68 | Helene Fradin | |
179 | 58 | Helene Fradin | ... |
180 | 68 | Helene Fradin | |
181 | 58 | Helene Fradin | private Set<Taxon> coveredTaxa = new HashSet<Taxon>(); |
182 | 68 | Helene Fradin | |
183 | 58 | Helene Fradin | ... |
184 | |||
185 | 68 | Helene Fradin | private Set<Taxon> taxonomicScope = new HashSet<Taxon>(); |
186 | 58 | Helene Fradin | |
187 | 68 | Helene Fradin | |
188 | ... |
||
189 | 58 | Helene Fradin | |
190 | 70 | Andreas Müller | private Set<!NamedArea> geographicalScope = new HashSet<!NamedArea>(); |
191 | 58 | Helene Fradin | |
192 | 68 | Helene Fradin | ... |
193 | 59 | Helene Fradin | |
194 | 68 | Helene Fradin | private Set<Scope> scopeRestrictions = new HashSet<Scope>(); |
195 | 58 | Helene Fradin | |
196 | 68 | Helene Fradin | } |
197 | 58 | Helene Fradin | |
198 | |||
199 | 68 | Helene Fradin | 9. Addition of the attribute 'result', 'question' and 'taxon' to FeatureNode so that a FeatureTree can store the identification path in the case of a polytomous key. |
200 | 58 | Helene Fradin | |
201 | |||
202 | 68 | Helene Fradin | private DescriptionElementBase result; |
203 | 58 | Helene Fradin | |
204 | 68 | Helene Fradin | private Set<Representation> questions = new HashSet<Representation>(); |
205 | 58 | Helene Fradin | |
206 | 68 | Helene Fradin | private Taxon taxon; |