Project

General

Profile

Cdm FAQ » History » Version 15

Niels Hoffmann, 06/08/2009 07:02 PM

1 1 Markus Döring
{{>toc}}
2
3
4
5
6
# CDM FAQs
7
8
9
### Where are basionym authorteams?
10
11 2 Markus Döring
Year of publication and/or basionym authorteams of a scientific name might be known although the nomenclatural reference or the basionym itself is not known. A “dummy” reference and/or a “dummy” basionym will be created that keeps this data to enforce consistency. See #125
12 3 Markus Döring
13
14
15
### How can plain lists of literature references be attached to a taxon?
16
17 5 Markus Döring
The recommended way is to create an empty Cdm:description:TaxonDescription for each literature resource and use the source property to hold the reference.
18 3 Markus Döring
19
20
21
### Taxon relations vs Name relations
22
23
The [[CdmLibrary]] logic does not cross the border between names and taxa. So if you create a new basionym relationship between two names NO homotypic synonym relationship is created automatically. On the contrary if a basionym relationship exists between two names, but no synonym relationship between 2 taxon concepts  with the respective names, the 2 taxa are not considered synonyms!
24 6 Andreas Müller
25
26
27
### Original Source ID
28
29 10 Andreas Müller
For importing data from an other source you have to add the an original source. E.g.:
30 7 Andreas Müller
31 8 Andreas Müller
~~~
32 7 Andreas Müller
IdentifiableEntity idEntity;
33
ReferenceBase ref;
34
int originalId;
35
OriginalSource originalSource = new OriginalSource();
36
originalSource.setIdInSource(String.valueOf(originalId));
37
originalSource.setCitation(ref);
38
idEntity.addSource(originalSource); 
39 8 Andreas Müller
~~~
40 11 Andreas Müller
41
42
### What is the exact use for the class ReferencedEntityBase? And where are instances stored in the CDM database schema?
43
44
45
ReferencedEntityBase is an abstract super class for all classes that hold information about who is saying something. For example if you want to say that XYZ says that taxon A is a synonym for taxon B you will create a SynonymRelationship which is a subclass of ReferenceEntityBase and set the citation to XYZ. If you even know on which page the information about this relationship was published you will additionally set the micro-reference of the SynonymRelationship.
46
47
The same applies to all DescriptionElementBase classes like CategorialData, QuantitativeData etc. If you know in which publication this information is to be found you may add it to the DescriptionElementBase by using DescriptionElementBase.setCitation().
48
49
50
As it is a super class for other classes the instances are not stored directly in the schema but in the classes/tables that inherit from ReferencedEntityBase.
51
52
In your case you may find the information for example directly in the DescriptionElementBase table which has attributes like "citation_id", "originalNameString" or "microreference" that come from this class.
53 12 Niels Hoffmann
54
55
56
### How can I configure logging in the editor
57
58
To get log4j to read your own configuration when developing the editor or anything that has to do with cdmLibrary eclipse plugin you have to tell log4j explicitly what configuration it should use. Otherwise it will scan the classpath and use the first log4j.xml/log4j.properties file it finds (which is mostly the log4j.properties in cdmlib-commons as it will be the first one it encounters).
59
60
61
Passing the following argument to the Virtual Machine however does the trick 
62
63
~~~
64
-Dlog4j.configuration=file:///<path to your personal>/log4j.properties
65
~~~
66
67
If you run into trouble , you can debug log4j startup sequence by passing another argument to the VM
68
69
~~~
70
-Dlog4j.debug
71
~~~
72 13 Niels Hoffmann
73
74 15 Niels Hoffmann
### How to create a new TermVocabulary
75 13 Niels Hoffmann
76
77 15 Niels Hoffmann
1. Create a CSV file with at least the line for the vocabulary and store it along with the other terms (source:"trunk/cdmlib/cdmlib-model/src/main/resources/terms")
78 14 Niels Hoffmann
79 15 Niels Hoffmann
1. Create a class for the vocabulary (Example: source:"trunk/cdmlib/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/Language.java")
80 14 Niels Hoffmann
81
1. Add it to hibernate configuration source:"trunk/cdmlib/cdmlib-persistence/src/main/resources/eu/etaxonomy/cdm/hibernate.cfg.xml"
82
83
1. Add it to source:"trunk/cdmlib/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/VocabularyEnum.java"
84
85
86
But! For the testsuite to work, the test data has to be updated as well. Open source:"trunk/cdmlib/cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/database/TermsDataSet-with_auditing_info.xml". Searching for the string "TERMVOCABULARY" will get you to the right location in the file. Add a new line for your vocabulary. E.g.:
87
88
89
~~~
90
<TERMVOCABULARY DTYPE="$$[Ordered]TermVocabulary$$" ID="$$increment the highest TermVocabulary id$$" CREATED="$$date of creation$$" UUID="$$unique UUID of your term vocabulary$$" URI="" TERMSOURCEURI="$$URI of your class. E.g. eu.etaxonomy.cdm.model.common.Language$$"/>
91
~~~
92
93
Repeat for "TERMVOCABULARY_AUD" accordingly.