Project

General

Profile

CdmVersionTwoDiscussion » History » Version 68

Helene Fradin, 08/14/2009 06:58 PM

1 2 Andreas Müller
{{>toc}}
2
3
4
5
6
# CDM v2.0 Discussion
7
8
9
10
11
----
12
13 4 Andreas Müller
_This is a site to discuss possible changes to the [CDM v1.4](http://wp5.e-taxonomy.eu/cdm/v14/) to go into CDM v2.0_
14 2 Andreas Müller
15 40 Helene Fradin
_See also Component C5.80 - Review of CDM v.1 and model for descriptive data in CDM v.2_
16 2 Andreas Müller
17 40 Helene Fradin
18 2 Andreas Müller
----
19
20
21
22 61 Andreas Müller
## Taxonomic Data
23
24
25 63 Andreas Müller
26
### Separation Of Taxonomic Concept And Taxonomic View
27 61 Andreas Müller
28
29
There is a need to separate taxonomic concept information from taxonomic view information resulting in the new classes TaxonomicView and TaxonNode.
30
31
32 65 Andreas Müller
![](CdmTaxonomicView:taxonomicView.png)
33 62 Andreas Müller
34 61 Andreas Müller
See [taxonomic view](http://dev.e-taxonomy.eu/trac/wiki/CdmTaxonomicView) for further information.
35
36
37
38 10 Helene Fradin
39 8 Helene Fradin
## DESCRIPTIVE DATA - PROPOSED REVISIONS
40 3 Andreas Müller
41 1 Andreas Müller
42 10 Helene Fradin
43
----
44
45
46 68 Helene Fradin
1. Media extends IdentifiableEntity
47 1 Andreas Müller
48 68 Helene Fradin
- addition of a ComparableTo method
49 1 Andreas Müller
50 68 Helene Fradin
- deletion of the redundant attribute 'rights'
51 1 Andreas Müller
52 6 Helene Fradin
53 68 Helene Fradin
2. TermBase extends IdentifiableEntity
54 1 Andreas Müller
55
56 68 Helene Fradin
There was redundancy with 'implements Comparable<T>' in OrderedTermBase and 'implements Comparable<IdentifiableEntity>' in IdentifiableIdentity.
57 30 Helene Fradin
58 1 Andreas Müller
59 68 Helene Fradin
- I erased « implements Comparable<T> » dans OrderedTermBase
60 1 Andreas Müller
61 68 Helene Fradin
- I completed it with a 'ghost' method CompareTo(Object)
62 15 Helene Fradin
63
64 68 Helene Fradin
public int compareTo(Object o) {
65 1 Andreas Müller
66 68 Helene Fradin
		return 0;
67 1 Andreas Müller
68 68 Helene Fradin
	}
69 16 Helene Fradin
70 1 Andreas Müller
71 68 Helene Fradin
- I added the same 'ghost' CompareTo(Object) method to the following classes: BibtexEntryType, DerivationEventType, PreservationMethod, RightsTerm, NamedAreaType, ReferenceSystem, Feature, FeatureTree, MeasurementUnit, StatisticalMeasure, TextFormat, AnnotationType, ExtensionType, Language, MarkerType, TermVocabulary, InstitutionType
72 16 Helene Fradin
73 1 Andreas Müller
74 68 Helene Fradin
3. adding OnlyApplicableIf / InapplicableIf to FeatureNode 
75 1 Andreas Müller
76
77 68 Helene Fradin
private Set<State> onlyApplicableIf = new HashSet<State>();
78 15 Helene Fradin
79 68 Helene Fradin
private Set<State> inapplicableIf = new HashSet<State>();
80 1 Andreas Müller
81
82 68 Helene Fradin
with the associated get, add, remove methods.
83 1 Andreas Müller
84 17 Helene Fradin
85 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.
86 1 Andreas Müller
87
88 68 Helene Fradin
4. Creation of the WorkingSet class
89 17 Helene Fradin
90
91 68 Helene Fradin
public class WorkingSet<S extends DescriptionBase> extends AnnotatableEntity {
92 1 Andreas Müller
93 68 Helene Fradin
	…
94 18 Helene Fradin
95 68 Helene Fradin
private Set<Representation> representations = new HashSet<Representation>();
96 1 Andreas Müller
97 68 Helene Fradin
...
98 1 Andreas Müller
99 68 Helene Fradin
private FeatureTree descriptiveSystem;
100 18 Helene Fradin
101 68 Helene Fradin
...
102 1 Andreas Müller
103 68 Helene Fradin
private Set<S> descriptions = new HashSet<S>();
104 1 Andreas Müller
105 68 Helene Fradin
…
106 1 Andreas Müller
107 68 Helene Fradin
}
108 1 Andreas Müller
109
110 68 Helene Fradin
5. Completion of IidentificationKey interface
111 1 Andreas Müller
112
113 68 Helene Fradin
public interface IIdentificationKey {
114 21 Helene Fradin
115 68 Helene Fradin
	    public Set<NamedArea> getGeographicalScope();
116 1 Andreas Müller
117 68 Helene Fradin
	    public void addGeographicalScope(NamedArea geographicalScope);
118 1 Andreas Müller
119 68 Helene Fradin
	    public void removeGeographicalScope(NamedArea geographicalScope);
120 1 Andreas Müller
121 68 Helene Fradin
	    public Set<Taxon> getTaxonomicScope();
122 1 Andreas Müller
123 68 Helene Fradin
	    public void addTaxonomicScope(Taxon taxon);
124 1 Andreas Müller
125 68 Helene Fradin
	    public void removeTaxonomicScope(Taxon taxon);
126 1 Andreas Müller
127 68 Helene Fradin
	    public Set<Scope> getScopeRestrictions();
128 1 Andreas Müller
129 68 Helene Fradin
	    public Set<Taxon> getCoveredTaxa();
130 22 Helene Fradin
131 68 Helene Fradin
	    public void addCoveredTaxon(Taxon taxon);
132 1 Andreas Müller
133 68 Helene Fradin
	    public void removeCoveredTaxon(Taxon taxon);
134 30 Helene Fradin
135 68 Helene Fradin
}
136 21 Helene Fradin
137 1 Andreas Müller
138 68 Helene Fradin
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.
139 1 Andreas Müller
140
141 68 Helene Fradin
6. Modification of IdentificationKey in accordance (and renaming it to MediaKey with all the necessary modifications in concerned classes)
142 1 Andreas Müller
143 68 Helene Fradin
public class MediaKey extends Media implements IIdentificationKey{
144 26 Helene Fradin
145 68 Helene Fradin
	…
146 1 Andreas Müller
147 68 Helene Fradin
	private Set<Taxon> coveredTaxa = new HashSet<Taxon>();
148 12 Helene Fradin
149 68 Helene Fradin
…
150 1 Andreas Müller
151 68 Helene Fradin
	private Set<NamedArea> geographicalScope = new HashSet<NamedArea>();
152 12 Helene Fradin
153 68 Helene Fradin
…
154 24 Helene Fradin
155 68 Helene Fradin
	private Set<Taxon> taxonomicScope = new HashSet<Taxon>();
156 1 Andreas Müller
157 68 Helene Fradin
…
158 24 Helene Fradin
159 68 Helene Fradin
	private Set<Scope> scopeRestrictions = new HashSet<Scope>();
160 24 Helene Fradin
161 68 Helene Fradin
…
162 24 Helene Fradin
163 68 Helene Fradin
	private Set<Representation> keyRepresentations = new HashSet<Representation>();
164 25 Helene Fradin
165 68 Helene Fradin
…
166 25 Helene Fradin
167
}
168
169
170 68 Helene Fradin
7. Creation of the class MultiAccessKey
171 1 Andreas Müller
172 32 Helene Fradin
173 68 Helene Fradin
public class MultiAccessKey extends WorkingSet implements IIdentificationKey{
174 32 Helene Fradin
175 68 Helene Fradin
	...
176 27 Helene Fradin
177 68 Helene Fradin
	private Set<Taxon> coveredTaxa = new HashSet<Taxon>();
178 27 Helene Fradin
179 68 Helene Fradin
	...
180 27 Helene Fradin
181 68 Helene Fradin
	private Set<Taxon> taxonomicScope = new HashSet<Taxon>();
182 1 Andreas Müller
183 68 Helene Fradin
	...
184 57 Helene Fradin
185 68 Helene Fradin
	private Set<NamedArea> geographicalScope = new HashSet<NamedArea>();
186 57 Helene Fradin
187 68 Helene Fradin
	...
188 57 Helene Fradin
189 68 Helene Fradin
	private Set<Scope> scopeRestrictions = new HashSet<Scope>();
190 57 Helene Fradin
191 68 Helene Fradin
}
192 57 Helene Fradin
193
194 68 Helene Fradin
8. Creation of PolytomousKey
195 57 Helene Fradin
196
197 68 Helene Fradin
public class PolytomousKey extends FeatureTree implements IIdentificationKey{
198 58 Helene Fradin
199 68 Helene Fradin
	...
200 58 Helene Fradin
201 68 Helene Fradin
	private Set<Taxon> coveredTaxa = new HashSet<Taxon>();
202 58 Helene Fradin
203 68 Helene Fradin
	...
204 58 Helene Fradin
205 68 Helene Fradin
	private Set<Taxon> taxonomicScope = new HashSet<Taxon>();
206 58 Helene Fradin
207 68 Helene Fradin
	
208
	...
209 58 Helene Fradin
210 68 Helene Fradin
	private Set<NamedArea> geographicalScope = new HashSet<NamedArea>();
211 58 Helene Fradin
212 68 Helene Fradin
	...
213 59 Helene Fradin
214 68 Helene Fradin
	private Set<Scope> scopeRestrictions = new HashSet<Scope>();
215 58 Helene Fradin
216 68 Helene Fradin
}
217 58 Helene Fradin
218
219 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.
220 58 Helene Fradin
221
222 68 Helene Fradin
private DescriptionElementBase result;
223 58 Helene Fradin
224 68 Helene Fradin
private Set<Representation> questions = new HashSet<Representation>();
225 58 Helene Fradin
226 68 Helene Fradin
private Taxon taxon;