Project

General

Profile

« Previous | Next » 

Revision 9740c8f1

Added by Andreas Müller over 2 years ago

Cleanup RIS and Endnote tests

View differences:

cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/reference/ris/in/RisReferenceImport.java
10 10

  
11 11
import java.io.ByteArrayInputStream;
12 12
import java.io.InputStreamReader;
13
import eu.etaxonomy.cdm.common.URI;
14 13
import java.util.ArrayList;
15 14
import java.util.Arrays;
16 15
import java.util.HashSet;
......
23 22

  
24 23
import eu.etaxonomy.cdm.common.CdmUtils;
25 24
import eu.etaxonomy.cdm.common.DOI;
25
import eu.etaxonomy.cdm.common.URI;
26 26
import eu.etaxonomy.cdm.io.common.CdmImportBase;
27 27
import eu.etaxonomy.cdm.io.reference.ris.in.RisRecordReader.RisValue;
28 28
import eu.etaxonomy.cdm.model.agent.Person;
......
40 40
/**
41 41
 * @author a.mueller
42 42
 * @since 11.05.2017
43
 *
44 43
 */
45 44
@Component
46 45
public class RisReferenceImport
......
50 49
    @SuppressWarnings("unused")
51 50
    private static final Logger logger = Logger.getLogger(RisReferenceImport.class);
52 51

  
53
    /**
54
     * {@inheritDoc}
55
     */
56 52
    @Override
57 53
    protected void doInvoke(RisReferenceImportState state) {
58 54
        RisReferenceImportConfigurator config = state.getConfig();
......
66 62

  
67 63
            Set<Reference> referencesToSave = new HashSet<>();
68 64

  
69

  
70 65
            Map<RisReferenceTag, List<RisValue>> next = risReader.readRecord();
71 66
            while (next != RisRecordReader.EOF){
72 67
                Reference ref;
......
103 98
        }
104 99
    }
105 100

  
106
    /**
107
     * @param state
108
     * @param next
109
     * @return
110
     */
111 101
    private Reference makeReference(RisReferenceImportState state,
112 102
            Map<RisReferenceTag, List<RisValue>> record) {
113 103

  
......
125 115
        }
126 116
        Reference higherRef = inRef == null ? ref : inRef;
127 117

  
128

  
129 118
        //Title
130 119
        RisValue t1 = getSingleValue(state, record, RisReferenceTag.T1);
131 120
        RisValue ti = getSingleValue(state, record, RisReferenceTag.TI);
......
271 260
        return ref;
272 261
    }
273 262

  
274
    /**
275
     * @param ref
276
     * @return
277
     */
278 263
    private boolean hasInRef(Reference ref) {
279 264
        return ref.getType() == ReferenceType.BookSection || ref.getType() == ReferenceType.Article ;
280 265
    }
281 266

  
282

  
283
    /**
284
     * @param state
285
     * @param record
286
     * @return
287
     */
288 267
    private String recordLocation(RisReferenceImportState state,
289 268
            Map<RisReferenceTag, List<RisValue>> record) {
290 269
        RisValue typeTag = this.getSingleValue(state, record, RisReferenceTag.TY, false);
......
298 277
        return result;
299 278
    }
300 279

  
301
    /**
302
     * @param state
303
     * @param year
304
     * @param date
305
     */
306 280
    private void assertDateYear(RisReferenceImportState state, Integer year, TimePeriod date, RisValue py) {
307 281
        if (year != null && date != null && !year.equals(date.getStartYear())){
308 282
            String message = "Year 'PY' and date 'DA' are not consistent. PY is neglected.";
......
320 294
        return val1 != null ? val1 : val2;
321 295
    }
322 296

  
323
    /**
324
     * @param state
325
     * @param da
326
     * @return
327
     */
328 297
    private VerbatimTimePeriod makeDate(RisReferenceImportState state, RisValue da) {
329 298
        if (da == null){
330 299
            return null;
......
354 323
        return tp;
355 324
    }
356 325

  
357
    /**
358
     * @param state
359
     * @param py
360
     * @return
361
     */
362 326
    private Integer makeYear(RisReferenceImportState state, RisValue py) {
363 327
        if (py == null){
364 328
            return null;
......
373 337
        }
374 338
    }
375 339

  
376
    /**
377
     * @param state
378
     * @param list
379
     * @return
380
     */
381 340
    private TeamOrPersonBase<?> makeAuthor(RisReferenceImportState state, List<RisValue> list) {
382 341
        if (list.size() == 1){
383 342
            return makePerson(state, list.get(0));
......
390 349
        }
391 350
    }
392 351

  
393
    /**
394
     * @param state
395
     * @param risValue
396
     * @return
397
     */
398 352
    private Person makePerson(RisReferenceImportState state, RisValue risValue) {
399 353
        Person person = Person.NewInstance();
400 354
        String[] split = risValue.value.split(",");
......
453 407
        return list;
454 408
    }
455 409

  
456
    /**
457
     * @param state
458
     * @param list
459
     * @param tag
460
     */
461 410
    private void assertSingle(RisReferenceImportState state, List<RisValue> list, RisReferenceTag tag) {
462 411
        if (list.size() > 1){
463 412
            String message = "There is more than 1 tag '%s' but only 1 tag is supported by RIS format or"
......
469 418
        }
470 419
    }
471 420

  
472
    /**
473
     * @param state
474
     * @param next
475
     * @return
476
     */
477 421
    private ReferenceType makeReferenceType(RisReferenceImportState state,
478 422
            Map<RisReferenceTag, List<RisValue>> record) {
479 423
        RisReferenceTag tyTag = RisReferenceTag.TY;
......
484 428
        return cdmType;
485 429
    }
486 430

  
487
    /**
488
     * {@inheritDoc}
489
     */
490 431
    @Override
491 432
    protected boolean doCheck(RisReferenceImportState state) {
492 433
        return true;
493 434
    }
494 435

  
495
    /**
496
     * {@inheritDoc}
497
     */
498 436
    @Override
499 437
    protected boolean isIgnore(RisReferenceImportState state) {
500 438
        return false;
cdmlib-io/src/test/java/eu/etaxonomy/cdm/io/reference/EndnoteRecordsImportTest.java
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.cdm.io.reference;
10

  
11
import static org.junit.Assert.assertNotNull;
12

  
13
import java.io.FileNotFoundException;
14
import java.net.URISyntaxException;
15
import java.net.URL;
16

  
17
import org.junit.Assert;
18
import org.junit.Before;
19
import org.junit.Ignore;
20
import org.junit.Test;
21
import org.unitils.spring.annotation.SpringBeanByName;
22
import org.unitils.spring.annotation.SpringBeanByType;
23

  
24
import eu.etaxonomy.cdm.api.service.INameService;
25
import eu.etaxonomy.cdm.common.URI;
26
import eu.etaxonomy.cdm.io.common.CdmApplicationAwareDefaultImport;
27
import eu.etaxonomy.cdm.io.common.IImportConfigurator;
28
import eu.etaxonomy.cdm.io.reference.endnote.in.EndnoteImportConfigurator;
29
import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;
30

  
31
/**
32
 * @author andy
33
 */
34
public class EndnoteRecordsImportTest extends CdmTransactionalIntegrationTest {
35

  
36
	@SpringBeanByName
37
	private CdmApplicationAwareDefaultImport<?> defaultImport;
38

  
39
	@SpringBeanByType
40
	private INameService nameService;
41

  
42
	private IImportConfigurator configurator;
43

  
44
	@Before
45
	public void setUp() {
46
		String inputFile = "/eu/etaxonomy/cdm/io/reference/EndnoteRecordImportTest-input.xml";
47
		URL url = this.getClass().getResource(inputFile);
48
		assertNotNull("URL for the test file '" + inputFile + "' does not exist", url);
49
		try {
50
			configurator = EndnoteImportConfigurator.NewInstance(URI.fromUrl(url), null);
51
		} catch (URISyntaxException e) {
52
			e.printStackTrace();
53
			Assert.fail();
54
		}
55
		assertNotNull("Configurator could not be created", configurator);
56
	}
57

  
58
//***************************** TESTS *************************************//
59

  
60
	@Test
61
	public void testInit() {
62
//		assertNotNull("XXX should not be null", defaultImport);
63
		assertNotNull("nameService should not be null", nameService);
64
		assertNotNull("configurator should not be null", configurator);
65
	}
66

  
67
	@Test
68
	public void testDoInvokeWithoutExceptions() {
69
		defaultImport.invoke(configurator);
70
	}
71

  
72
	@Test
73
	@Ignore("Import does not fully work yet")
74
	public void testDoInvoke() {
75
		boolean result = defaultImport.invoke(configurator).isSuccess();
76
		//TODO result is still false
77
		logger.warn("No real testing for endnote import yet");
78
		Assert.assertTrue("Return value for import.invoke() should be true", result);
79
//		assertEquals("Number of TaxonNames should be 5", 5, nameService.count());
80
	}
81

  
82
    @Override
83
    public void createTestDataSet() throws FileNotFoundException {}
84
}
cdmlib-io/src/test/java/eu/etaxonomy/cdm/io/reference/RisReferenceImportTest.java
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9

  
10
package eu.etaxonomy.cdm.io.reference;
11

  
12
import static org.junit.Assert.assertNotNull;
13

  
14
import java.io.FileNotFoundException;
15
import java.net.URL;
16
import java.util.List;
17

  
18
import org.junit.Assert;
19
import org.junit.Before;
20
import org.junit.Test;
21
import org.unitils.dbunit.annotation.DataSet;
22
import org.unitils.spring.annotation.SpringBeanByName;
23
import org.unitils.spring.annotation.SpringBeanByType;
24

  
25
import eu.etaxonomy.cdm.api.service.IReferenceService;
26
//import eu.etaxonomy.cdm.common.DOI;
27
import eu.etaxonomy.cdm.io.common.CdmApplicationAwareDefaultImport;
28
import eu.etaxonomy.cdm.io.common.ImportResult;
29
import eu.etaxonomy.cdm.io.reference.ris.in.RisReferenceImportConfigurator;
30
import eu.etaxonomy.cdm.model.agent.Person;
31
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
32
import eu.etaxonomy.cdm.model.common.CdmBase;
33
import eu.etaxonomy.cdm.model.common.VerbatimTimePeriod;
34
import eu.etaxonomy.cdm.model.reference.Reference;
35
import eu.etaxonomy.cdm.model.reference.ReferenceType;
36
import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;
37
import eu.etaxonomy.cdm.test.unitils.CleanSweepInsertLoadStrategy;
38

  
39
/**
40
 * @author a.mueller
41
 *
42
 */
43
public class RisReferenceImportTest extends CdmTransactionalIntegrationTest {
44

  
45
	@SpringBeanByName
46
	private CdmApplicationAwareDefaultImport<?> defaultImport;
47

  
48
	@SpringBeanByType
49
	private IReferenceService referenceService;
50

  
51

  
52
	private RisReferenceImportConfigurator configurator;
53
    private RisReferenceImportConfigurator configLong;
54

  
55
	@Before
56
	public void setUp() {
57
		String inputFile = "/eu/etaxonomy/cdm/io/reference/RisReferenceImportTest-input.ris";
58

  
59
        try {
60
            URL url = this.getClass().getResource(inputFile);
61
            assertNotNull("URL for the test file '" + inputFile + "' does not exist", url);
62

  
63
            String inputFileLong = "/eu/etaxonomy/cdm/io/reference/Acantholimon.ris";
64
            URL urlLong = this.getClass().getResource(inputFileLong);
65
            assertNotNull("URL for the test file '" + inputFileLong + "' does not exist", urlLong);
66

  
67
			configurator = RisReferenceImportConfigurator.NewInstance(url, null);
68
			configLong = RisReferenceImportConfigurator.NewInstance(urlLong, null);
69

  
70

  
71
		} catch (Exception e) {
72
			e.printStackTrace();
73
			Assert.fail();
74
		}
75
		assertNotNull("Configurator could not be created", configurator);
76
	    assertNotNull("Configurator could not be created", configLong);
77
	    assertNotNull("nameService should not be null", referenceService);
78
	}
79

  
80
//***************************** TESTS *************************************//
81

  
82
	@Test
83
	@DataSet( value="/eu/etaxonomy/cdm/database/ClearDBDataSet.xml", loadStrategy=CleanSweepInsertLoadStrategy.class)
84
	//@Ignore
85
    public void testShort() {
86

  
87
		ImportResult result = defaultImport.invoke(configurator);
88
		String report = result.createReport().toString();
89
		Assert.assertTrue(report.length() > 0);
90
		System.out.println(report);
91

  
92
		Integer expected = 2;
93
		Assert.assertEquals(expected, result.getNewRecords(Reference.class));
94

  
95
		List<Reference> list = referenceService.list(Reference.class, null, null, null, null);
96
		Assert.assertEquals("There should be 3 references, the article and the journal and the source reference",
97
		        3, list.size());
98
		for (Reference ref : list){
99
		    if (ref.equals(configurator.getSourceReference())){
100
		        continue;
101
		    }
102
		    Assert.assertTrue(ref.getType() == ReferenceType.Article || ref.getType() == ReferenceType.Journal);
103
		    if (ref.getType() == ReferenceType.Article){
104
		        //title
105
		        Assert.assertEquals("Decorsella arborea, a second species in Decorsella (Violaceae), and Decorsella versus Rinorea",
106
		                ref.getTitle());
107
		        //author
108
		        TeamOrPersonBase<?> author = ref.getAuthorship();
109
		        Assert.assertNotNull(author);
110
		        Assert.assertTrue(author.isInstanceOf(Person.class));
111
		        Person person = CdmBase.deproxy(author, Person.class);
112
		        //this may change in future depending on the correct formatting strategy
113
		        Assert.assertEquals("Jongkind, C.C.H." ,person.getTitleCache());
114
		        Assert.assertEquals("Jongkind" ,person.getFamilyName());
115
		        Assert.assertEquals("Carel C. H." ,person.getGivenName());
116
		        //date
117
		        VerbatimTimePeriod date = ref.getDatePublished();
118
		        Assert.assertEquals(Integer.valueOf(2017) ,date.getStartYear());
119
		        //vol
120
		        Assert.assertEquals("47(1)" ,ref.getVolume());
121
                Assert.assertEquals("43-47" ,ref.getPages());
122

  
123
                //doi
124
                //Assert.assertEquals(DOI.fromString("10.3372/wi.47.47105"),ref.getDoi());
125

  
126
                //Abstract
127
                Assert.assertEquals("Abstract: A new species of Violaceae, Decorsella arborea Jongkind, is described and illustrated. The new species differs from the only other species in the genus, D. paradoxa A. Chev., by the larger size of the plants, smaller leaves, more slender flowers, and stamen filaments that are free for a much larger part. Both species are from the Guineo-Congolian forest of tropical Africa. The differences between Decorsella and Rinorea are discussed. Confirming recent reports, some species of Rinorea can have zygomorphic flowers and some of these can be almost equal in shape to Decorsella flowers. Citation: Jongkind C. C. H. 2017: Decorsella arborea, a second species in Decorsella (Violaceae), and Decorsella versus Rinorea. ? Willdenowia 47: 43?47. doi: https://doi.org/10.3372/wi.47.47105 Version of record first published online on 13 February 2017 ahead of inclusion in April 2017 issue.",
128
                        ref.getReferenceAbstract());
129

  
130
                //TODO still missing Y1, Y2, M3, UR
131

  
132
		    }else if (ref.getType() == ReferenceType.Journal){
133
		        Assert.assertEquals("Willdenowia", ref.getTitle());
134
		        //or is this part of article?
135
		        Assert.assertEquals("Botanic Garden and Botanical Museum Berlin (BGBM)", ref.getPublisher());
136

  
137
		        //ISSN
138
                Assert.assertEquals("0511-9618" ,ref.getIssn());
139

  
140
		    }else{
141
		        Assert.fail("Only an article and a journal should exist");
142
		    }
143
		}
144

  
145
	}
146

  
147
	@Test
148
	//@Ignore
149
    public void testLongFile() {
150
        ImportResult result = defaultImport.invoke(configLong);
151
        String report = result.createReport().toString();
152
        System.out.println(report);
153

  
154
        Integer expected = 118;  //did not count yet
155
        Assert.assertEquals(expected, result.getNewRecords(Reference.class));
156

  
157
//        List<Reference> list = referenceService.list(Reference.class, null, null, null, null);
158
//        Assert.assertEquals("There should be 2 references, the article and the journal", 2, list.size());
159
//        for (Reference ref : list){
160
//            Assert.assertTrue(ref.getType() == ReferenceType.Article || ref.getType() == ReferenceType.Journal);
161
//            if (ref.getType() == ReferenceType.Article){
162
//                //title
163
//                Assert.assertEquals("Decorsella arborea, a second species in Decorsella (Violaceae), and Decorsella versus Rinorea",
164
//                        ref.getTitle());
165
//                //author
166
//                TeamOrPersonBase<?> author = ref.getAuthorship();
167
//                Assert.assertNotNull(author);
168
//                Assert.assertTrue(author.isInstanceOf(Person.class));
169
//                Person person = CdmBase.deproxy(author, Person.class);
170
//                //this may change in future depending on the correct formatting strategy
171
//                Assert.assertEquals("Carel C. H. Jongkind" ,person.getTitleCache());
172
//                Assert.assertEquals("Jongkind" ,person.getFamilyName());
173
//                Assert.assertEquals("Carel C. H." ,person.getGivenName());
174
//                //date
175
//                TimePeriod date = ref.getDatePublished();
176
//                Assert.assertEquals(Integer.valueOf(2017) ,date.getStartYear());
177
//                //vol
178
//                Assert.assertEquals("47(1)" ,ref.getVolume());
179
//                Assert.assertEquals("43-47" ,ref.getPages());
180
//
181
//                //doi
182
//                Assert.assertEquals(DOI.fromString("10.3372/wi.47.47105"),ref.getDoi());
183
//
184
//                //Abstract
185
//                Assert.assertEquals("Abstract: A new species of Violaceae, Decorsella arborea Jongkind, is described and illustrated. The new species differs from the only other species in the genus, D. paradoxa A. Chev., by the larger size of the plants, smaller leaves, more slender flowers, and stamen filaments that are free for a much larger part. Both species are from the Guineo-Congolian forest of tropical Africa. The differences between Decorsella and Rinorea are discussed. Confirming recent reports, some species of Rinorea can have zygomorphic flowers and some of these can be almost equal in shape to Decorsella flowers. Citation: Jongkind C. C. H. 2017: Decorsella arborea, a second species in Decorsella (Violaceae), and Decorsella versus Rinorea. ? Willdenowia 47: 43?47. doi: https://doi.org/10.3372/wi.47.47105 Version of record first published online on 13 February 2017 ahead of inclusion in April 2017 issue.",
186
//                        ref.getReferenceAbstract());
187
//
188
//                //TODO still missing Y1, Y2, M3, UR
189
//
190
//            }else if (ref.getType() == ReferenceType.Journal){
191
//                Assert.assertEquals("Willdenowia", ref.getTitle());
192
//                //or is this part of article?
193
//                Assert.assertEquals("Botanic Garden and Botanical Museum Berlin (BGBM)", ref.getPublisher());
194
//
195
//                //ISSN
196
//                Assert.assertEquals("0511-9618" ,ref.getIssn());
197
//
198
//            }else{
199
//                Assert.fail("Only an article and a journal should exist");
200
//            }
201
//        }
202

  
203
    }
204

  
205
    @Override
206
    public void createTestDataSet() throws FileNotFoundException {}
207
}
cdmlib-io/src/test/java/eu/etaxonomy/cdm/io/reference/endnote/in/EndnoteRecordsImportTest.java
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.cdm.io.reference.endnote.in;
10

  
11
import static org.junit.Assert.assertNotNull;
12

  
13
import java.io.FileNotFoundException;
14
import java.net.URISyntaxException;
15
import java.net.URL;
16

  
17
import org.junit.Assert;
18
import org.junit.Before;
19
import org.junit.Ignore;
20
import org.junit.Test;
21
import org.unitils.spring.annotation.SpringBeanByName;
22
import org.unitils.spring.annotation.SpringBeanByType;
23

  
24
import eu.etaxonomy.cdm.api.service.INameService;
25
import eu.etaxonomy.cdm.common.URI;
26
import eu.etaxonomy.cdm.io.common.CdmApplicationAwareDefaultImport;
27
import eu.etaxonomy.cdm.io.common.IImportConfigurator;
28
import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;
29

  
30
/**
31
 * @author andy
32
 */
33
public class EndnoteRecordsImportTest extends CdmTransactionalIntegrationTest {
34

  
35
	@SpringBeanByName
36
	private CdmApplicationAwareDefaultImport<?> defaultImport;
37

  
38
	@SpringBeanByType
39
	private INameService nameService;
40

  
41
	private IImportConfigurator configurator;
42

  
43
	@Before
44
	public void setUp() {
45
		String inputFile = "/eu/etaxonomy/cdm/io/reference/endnote/in/EndnoteRecordImportTest-input.xml";
46
		URL url = this.getClass().getResource(inputFile);
47
		assertNotNull("URL for the test file '" + inputFile + "' does not exist", url);
48
		try {
49
			configurator = EndnoteImportConfigurator.NewInstance(URI.fromUrl(url), null);
50
		} catch (URISyntaxException e) {
51
			e.printStackTrace();
52
			Assert.fail();
53
		}
54
		assertNotNull("Configurator could not be created", configurator);
55
	}
56

  
57
//***************************** TESTS *************************************//
58

  
59
	@Test
60
	public void testInit() {
61
//		assertNotNull("XXX should not be null", defaultImport);
62
		assertNotNull("nameService should not be null", nameService);
63
		assertNotNull("configurator should not be null", configurator);
64
	}
65

  
66
	@Test
67
	public void testDoInvokeWithoutExceptions() {
68
		defaultImport.invoke(configurator);
69
	}
70

  
71
	@Test
72
	@Ignore("Import does not fully work yet")
73
	public void testDoInvoke() {
74
		boolean result = defaultImport.invoke(configurator).isSuccess();
75
		//TODO result is still false
76
		logger.warn("No real testing for endnote import yet");
77
		Assert.assertTrue("Return value for import.invoke() should be true", result);
78
//		assertEquals("Number of TaxonNames should be 5", 5, nameService.count());
79
	}
80

  
81
    @Override
82
    public void createTestDataSet() throws FileNotFoundException {}
83
}
cdmlib-io/src/test/java/eu/etaxonomy/cdm/io/referenceris/in/RisReferenceImportTest.java
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.cdm.io.referenceris.in;
10

  
11
import static org.junit.Assert.assertNotNull;
12

  
13
import java.io.FileNotFoundException;
14
import java.net.URL;
15
import java.util.List;
16

  
17
import org.junit.Assert;
18
import org.junit.Before;
19
import org.junit.Test;
20
import org.unitils.dbunit.annotation.DataSet;
21
import org.unitils.spring.annotation.SpringBeanByName;
22
import org.unitils.spring.annotation.SpringBeanByType;
23

  
24
import eu.etaxonomy.cdm.api.service.IReferenceService;
25
//import eu.etaxonomy.cdm.common.DOI;
26
import eu.etaxonomy.cdm.io.common.CdmApplicationAwareDefaultImport;
27
import eu.etaxonomy.cdm.io.common.ImportResult;
28
import eu.etaxonomy.cdm.io.reference.ris.in.RisReferenceImportConfigurator;
29
import eu.etaxonomy.cdm.model.agent.Person;
30
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
31
import eu.etaxonomy.cdm.model.common.CdmBase;
32
import eu.etaxonomy.cdm.model.common.VerbatimTimePeriod;
33
import eu.etaxonomy.cdm.model.reference.Reference;
34
import eu.etaxonomy.cdm.model.reference.ReferenceType;
35
import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;
36
import eu.etaxonomy.cdm.test.unitils.CleanSweepInsertLoadStrategy;
37

  
38
/**
39
 * @author a.mueller
40
 */
41
public class RisReferenceImportTest extends CdmTransactionalIntegrationTest {
42

  
43
	@SpringBeanByName
44
	private CdmApplicationAwareDefaultImport<?> defaultImport;
45

  
46
	@SpringBeanByType
47
	private IReferenceService referenceService;
48

  
49
	private RisReferenceImportConfigurator configurator;
50
    private RisReferenceImportConfigurator configLong;
51

  
52
	@Before
53
	public void setUp() {
54
		String inputFile = "/eu/etaxonomy/cdm/io/reference/ris/in/RisReferenceImportTest-input.ris";
55

  
56
        try {
57
            URL url = this.getClass().getResource(inputFile);
58
            assertNotNull("URL for the test file '" + inputFile + "' does not exist", url);
59

  
60
            String inputFileLong = "/eu/etaxonomy/cdm/io/reference/ris/in/Acantholimon.ris";
61
            URL urlLong = this.getClass().getResource(inputFileLong);
62
            assertNotNull("URL for the test file '" + inputFileLong + "' does not exist", urlLong);
63

  
64
			configurator = RisReferenceImportConfigurator.NewInstance(url, null);
65
			configLong = RisReferenceImportConfigurator.NewInstance(urlLong, null);
66

  
67
		} catch (Exception e) {
68
			e.printStackTrace();
69
			Assert.fail();
70
		}
71
		assertNotNull("Configurator could not be created", configurator);
72
	    assertNotNull("Configurator could not be created", configLong);
73
	    assertNotNull("nameService should not be null", referenceService);
74
	}
75

  
76
//***************************** TESTS *************************************//
77

  
78
	@Test
79
	@DataSet( value="/eu/etaxonomy/cdm/database/ClearDBDataSet.xml", loadStrategy=CleanSweepInsertLoadStrategy.class)
80
	//@Ignore
81
    public void testShort() {
82

  
83
		ImportResult result = defaultImport.invoke(configurator);
84
		String report = result.createReport().toString();
85
		Assert.assertTrue(report.length() > 0);
86
		System.out.println(report);
87

  
88
		Integer expected = 2;
89
		Assert.assertEquals(expected, result.getNewRecords(Reference.class));
90

  
91
		List<Reference> list = referenceService.list(Reference.class, null, null, null, null);
92
		Assert.assertEquals("There should be 3 references, the article and the journal and the source reference",
93
		        3, list.size());
94
		for (Reference ref : list){
95
		    if (ref.equals(configurator.getSourceReference())){
96
		        continue;
97
		    }
98
		    Assert.assertTrue(ref.getType() == ReferenceType.Article || ref.getType() == ReferenceType.Journal);
99
		    if (ref.getType() == ReferenceType.Article){
100
		        //title
101
		        Assert.assertEquals("Decorsella arborea, a second species in Decorsella (Violaceae), and Decorsella versus Rinorea",
102
		                ref.getTitle());
103
		        //author
104
		        TeamOrPersonBase<?> author = ref.getAuthorship();
105
		        Assert.assertNotNull(author);
106
		        Assert.assertTrue(author.isInstanceOf(Person.class));
107
		        Person person = CdmBase.deproxy(author, Person.class);
108
		        //this may change in future depending on the correct formatting strategy
109
		        Assert.assertEquals("Jongkind, C.C.H." ,person.getTitleCache());
110
		        Assert.assertEquals("Jongkind" ,person.getFamilyName());
111
		        Assert.assertEquals("Carel C. H." ,person.getGivenName());
112
		        //date
113
		        VerbatimTimePeriod date = ref.getDatePublished();
114
		        Assert.assertEquals(Integer.valueOf(2017) ,date.getStartYear());
115
		        //vol
116
		        Assert.assertEquals("47(1)" ,ref.getVolume());
117
                Assert.assertEquals("43-47" ,ref.getPages());
118

  
119
                //doi
120
                //Assert.assertEquals(DOI.fromString("10.3372/wi.47.47105"),ref.getDoi());
121

  
122
                //Abstract
123
                Assert.assertEquals("Abstract: A new species of Violaceae, Decorsella arborea Jongkind, is described and illustrated. The new species differs from the only other species in the genus, D. paradoxa A. Chev., by the larger size of the plants, smaller leaves, more slender flowers, and stamen filaments that are free for a much larger part. Both species are from the Guineo-Congolian forest of tropical Africa. The differences between Decorsella and Rinorea are discussed. Confirming recent reports, some species of Rinorea can have zygomorphic flowers and some of these can be almost equal in shape to Decorsella flowers. Citation: Jongkind C. C. H. 2017: Decorsella arborea, a second species in Decorsella (Violaceae), and Decorsella versus Rinorea. ? Willdenowia 47: 43?47. doi: https://doi.org/10.3372/wi.47.47105 Version of record first published online on 13 February 2017 ahead of inclusion in April 2017 issue.",
124
                        ref.getReferenceAbstract());
125

  
126
                //TODO still missing Y1, Y2, M3, UR
127

  
128
		    }else if (ref.getType() == ReferenceType.Journal){
129
		        Assert.assertEquals("Willdenowia", ref.getTitle());
130
		        //or is this part of article?
131
		        Assert.assertEquals("Botanic Garden and Botanical Museum Berlin (BGBM)", ref.getPublisher());
132

  
133
		        //ISSN
134
                Assert.assertEquals("0511-9618" ,ref.getIssn());
135

  
136
		    }else{
137
		        Assert.fail("Only an article and a journal should exist");
138
		    }
139
		}
140

  
141
	}
142

  
143
	@Test
144
	//@Ignore
145
    public void testLongFile() {
146
        ImportResult result = defaultImport.invoke(configLong);
147
        String report = result.createReport().toString();
148
        System.out.println(report);
149

  
150
        Integer expected = 118;  //did not count yet
151
        Assert.assertEquals(expected, result.getNewRecords(Reference.class));
152

  
153
//        List<Reference> list = referenceService.list(Reference.class, null, null, null, null);
154
//        Assert.assertEquals("There should be 2 references, the article and the journal", 2, list.size());
155
//        for (Reference ref : list){
156
//            Assert.assertTrue(ref.getType() == ReferenceType.Article || ref.getType() == ReferenceType.Journal);
157
//            if (ref.getType() == ReferenceType.Article){
158
//                //title
159
//                Assert.assertEquals("Decorsella arborea, a second species in Decorsella (Violaceae), and Decorsella versus Rinorea",
160
//                        ref.getTitle());
161
//                //author
162
//                TeamOrPersonBase<?> author = ref.getAuthorship();
163
//                Assert.assertNotNull(author);
164
//                Assert.assertTrue(author.isInstanceOf(Person.class));
165
//                Person person = CdmBase.deproxy(author, Person.class);
166
//                //this may change in future depending on the correct formatting strategy
167
//                Assert.assertEquals("Carel C. H. Jongkind" ,person.getTitleCache());
168
//                Assert.assertEquals("Jongkind" ,person.getFamilyName());
169
//                Assert.assertEquals("Carel C. H." ,person.getGivenName());
170
//                //date
171
//                TimePeriod date = ref.getDatePublished();
172
//                Assert.assertEquals(Integer.valueOf(2017) ,date.getStartYear());
173
//                //vol
174
//                Assert.assertEquals("47(1)" ,ref.getVolume());
175
//                Assert.assertEquals("43-47" ,ref.getPages());
176
//
177
//                //doi
178
//                Assert.assertEquals(DOI.fromString("10.3372/wi.47.47105"),ref.getDoi());
179
//
180
//                //Abstract
181
//                Assert.assertEquals("Abstract: A new species of Violaceae, Decorsella arborea Jongkind, is described and illustrated. The new species differs from the only other species in the genus, D. paradoxa A. Chev., by the larger size of the plants, smaller leaves, more slender flowers, and stamen filaments that are free for a much larger part. Both species are from the Guineo-Congolian forest of tropical Africa. The differences between Decorsella and Rinorea are discussed. Confirming recent reports, some species of Rinorea can have zygomorphic flowers and some of these can be almost equal in shape to Decorsella flowers. Citation: Jongkind C. C. H. 2017: Decorsella arborea, a second species in Decorsella (Violaceae), and Decorsella versus Rinorea. ? Willdenowia 47: 43?47. doi: https://doi.org/10.3372/wi.47.47105 Version of record first published online on 13 February 2017 ahead of inclusion in April 2017 issue.",
182
//                        ref.getReferenceAbstract());
183
//
184
//                //TODO still missing Y1, Y2, M3, UR
185
//
186
//            }else if (ref.getType() == ReferenceType.Journal){
187
//                Assert.assertEquals("Willdenowia", ref.getTitle());
188
//                //or is this part of article?
189
//                Assert.assertEquals("Botanic Garden and Botanical Museum Berlin (BGBM)", ref.getPublisher());
190
//
191
//                //ISSN
192
//                Assert.assertEquals("0511-9618" ,ref.getIssn());
193
//
194
//            }else{
195
//                Assert.fail("Only an article and a journal should exist");
196
//            }
197
//        }
198

  
199
    }
200

  
201
    @Override
202
    public void createTestDataSet() throws FileNotFoundException {}
203
}
cdmlib-io/src/test/resources/eu/etaxonomy/cdm/io/reference/Acantholimon.ris
1
TY  - JOUR
2
AU  - Aguilar, J. F.
3
AU  - Feliner, G. N.
4
PY  - 2003
5
SP  - 430-447
6
ST  - Additive polymorphisms and reticulation in an ITS phylogeny of thrifts (Armeria, Plumbaginaceae)
7
T2  - Molecular Phylogenetics and Evolution
8
TI  - Additive polymorphisms and reticulation in an ITS phylogeny of thrifts (Armeria, Plumbaginaceae)
9
VL  - 28
10
ID  - 58
11
ER  - 
12

  
13

  
14
TY  - JOUR
15
AB  - A new species, Acantholimon karamanicum Akaychn & Dogan (Plumbaginaceae) is described and illustrated. The species grows on calcareous Mountain slopes in open Quercus sp. scrub, Astragalus sp. steppe, and inside Abies cilicica forest in Ermenek (Karaman). Diagnostic morphological characteristics from closely related species are discussed and conservation statuses of the species are given. A revised key to the Acantholimon species, with densely distichous spikes and outer bracts twice as long as the internodes, is also provided for the species found in Turkey.
16
AD  - Dogan, M
17
Hacettepe Univ, Dept Biol Educ, TR-06532 Ankara, Turkey
18
Hacettepe Univ, Dept Biol Educ, TR-06532 Ankara, Turkey
19
Hacettepe Univ, Dept Biol Educ, TR-06532 Ankara, Turkey
20
Middle E Tech Univ, Dept Sci Biol, TR-06531 Ankara, Turkey
21
AN  - WOS:000175945600008
22
AU  - Akaydin, G.
23
AU  - Doğan, M.
24
DO  - Doi 10.1092/54a2-0bep-Btyh-A3wc
25
IS  - 1
26
J2  - Isr J Plant Sci
27
LA  - English
28
N1  - 558bt
29
Times Cited:10
30
Cited References Count:12
31
PY  - 2002
32
SN  - 0792-9978
33
SP  - 67-71
34
ST  - A new species of Acantholimon Boiss. (Plumbaginaceae) from the western Taurus Mountains, Turkey
35
T2  - Israel Journal of Plant Sciences
36
TI  - A new species of Acantholimon Boiss. (Plumbaginaceae) from the western Taurus Mountains, Turkey
37
UR  - <Go to ISI>://WOS:000175945600008
38
VL  - 50
39
ID  - 17
40
ER  - 
41

  
42

  
43
TY  - JOUR
44
AU  - Aronne, G.
45
AU  - De Micco, V.
46
PY  - 2001
47
SP  - 789-794
48
ST  - Seasonal dimorphism in the Mediterranean Cistus incanus L. subsp. incanus
49
T2  - Annals of Botany
50
TI  - Seasonal dimorphism in the Mediterranean Cistus incanus L. subsp. incanus
51
VL  - 87
52
ID  - 44
53
ER  - 
54

  
55

  
56
TY  - CHAP
57
AU  - Assadi, M.
58
CY  - Tehran
59
PY  - 2005
60
SP  - XXX-XXX
61
ST  - Plumbaginaceae
62
T2  - Flora of Iran
63
TI  - Plumbaginaceae
64
VL  - 51
65
ID  - 53
66
ER  - 
67

  
68

  
69
TY  - JOUR
70
AU  - Assadi, M.
71
PY  - 2006
72
SP  - 114-120
73
ST  - Distribution patterns of the genus Acantholimon (Plumbaginaceae) in Iran
74
T2  - Iranian Journal of Botany
75
TI  - Distribution patterns of the genus Acantholimon (Plumbaginaceae) in Iran
76
VL  - 12
77
ID  - 51
78
ER  - 
79

  
80

  
81
TY  - JOUR
82
AB  - The new species Acantholimon doganii Y. Bagci, Dogu & Akaydin is described and illustrated. Diagnostic morphological characteristics in closely related species are discussed and the conservation status of the new species is analysed. A revised key to the Turkish Acantholimon species with persistent circinnate leaf basis is also provided.
83
AD  - Selcuk Univ, Dept Biol, Fac Sci & Art, TR-42031 Selcuklu, Konya, Turkey
84
Selcuk Univ, Dept Biol Educ, TR-42090 Meram, Konya, Turkey
85
Hacettepe Univ, Dept Biol Educ, TR-06800 Ankara, Turkey
86
AN  - WOS:000267130000013
87
AU  - Bagci, Y.
88
AU  - Dogu, S.
89
AU  - Akaydin, G.
90
DO  - 10.1111/j.1756-1051.2008.00390.x
91
IS  - 3
92
J2  - Nord J Bot
93
LA  - English
94
N1  - 459sq
95
Times Cited:1
96
Cited References Count:14
97
PY  - 2009
98
SN  - 0107-055x
99
SP  - 228-231
100
ST  - Acantholimon doganii sp nov (Plumbaginaceae) with persistent circinnate leaf bases, from Turkey
101
T2  - Nordic Journal of Botany
102
TI  - Acantholimon doganii sp nov (Plumbaginaceae) with persistent circinnate leaf bases, from Turkey
103
UR  - <Go to ISI>://WOS:000267130000013
104
VL  - 27
105
ID  - 52
106
ER  - 
107

  
108

  
109
TY  - BOOK
110
AU  - Boissier, E.
111
PB  - Lipsiae Herrmann
112
PY  - 1846
113
SE  - 69-81
114
ST  - Diagnoses Plantarum Orientalium Novarum
115
TI  - Diagnoses Plantarum Orientalium Novarum
116
VL  - 7
117
ID  - 21
118
ER  - 
119

  
120

  
121
TY  - CHAP
122
A2  - de Candolle, A. P.
123
AU  - Boissier, E. 
124
CY  - Paris
125
PB  - Treuttel et Wurz
126
PY  - 1848
127
ST  - Plumbaginales
128
T2  - Prodromus systematis naturalis regni vegetabilis.
129
TI  - Plumbaginales
130
ID  - 22
131
ER  - 
132

  
133

  
134
TY  - BOOK
135
AU  - Boissier, Pierre-Edmond
136
CY  - Geneva
137
KW  - Africa
138
Angiospermas
139
Asia
140
Europa
141
Flora
142
Península Ibérica
143
PY  - 1859
144
ST  - Diagnoses plantarum Orientalium novarum [...] Series secunda. N.º 4
145
TI  - Diagnoses plantarum Orientalium novarum [...] Series secunda. N.º 4
146
UR  - http://www.biodiversitylibrary.org/item/142679
147
ID  - 43
148
ER  - 
149

  
150

  
151
TY  - BOOK
152
AU  - Boissier, Pierre-Edmond
153
CY  - Basileae, Genevae
154
KW  - Africa
155
Angiospermas
156
Asia
157
Europa
158
Flora
159
PB  - Apud H. Georg, Bibliopolam
160
PY  - 1879
161
ST  - Flora Orientalis [...] Volumen quartum. Fasciculus secundus
162
TI  - Flora Orientalis [...] Volumen quartum. Fasciculus secundus
163
UR  - http://www.biodiversitylibrary.org/item/142697
164
ID  - 24
165
ER  - 
166

  
167

  
168
TY  - THES
169
AU  - Bokhari, M. H. 
170
CY  - Edinburgh
171
PB  - The University of Edinburgh
172
PY  - 1970
173
ST  - Taxonomic studies in S.W. Asian Plumbaginaceae
174
T2  - Faculty of Science
175
TI  - Taxonomic studies in S.W. Asian Plumbaginaceae
176
ID  - 2
177
ER  - 
178

  
179

  
180
TY  - CHAP
181
A2  - H., Davis P.
182
AU  - Bokhari, M. H.
183
AU  - Edmondson, J. R.
184
CY  - Edinburgh
185
PB  - Edinburgh University Press
186
PY  - 1982
187
SP  - 478-502
188
ST  - Acantholimon Boiss.
189
T2  - Flora of Turkey and the east Aegean islands
190
TI  - Acantholimon Boiss.
191
ID  - 25
192
ER  - 
193

  
194

  
195
TY  - JOUR
196
AU  - Bunge, A.
197
PY  - 1872
198
SP  - 1-72
199
ST  - Die Gattung Acantholimon Boiss.
200
T2  - Mémoires de l'Académie impériale des sciences de St. Pétersbourg
201
TI  - Die Gattung Acantholimon Boiss.
202
VL  - VII
203
ID  - 23
204
ER  - 
205

  
206

  
207
TY  - JOUR
208
AN  - WOS:A1990CU44200009
209
AU  - Christodoulakis, N. S.
210
AU  - Tsimbani, H.
211
AU  - Fasseas, C.
212
DA  - Mar
213
IS  - 3
214
J2  - Ann Bot-London
215
LA  - English
216
N1  - Cu442
217
Times Cited:25
218
Cited References Count:21
219
PY  - 1990
220
SN  - 0305-7364
221
SP  - 291-296
222
ST  - Leaf structural peculiarities in Sarcopoterium spinosum, a seasonally dimorphic subshrub
223
T2  - Annals of Botany
224
TI  - Leaf structural peculiarities in Sarcopoterium spinosum, a seasonally dimorphic subshrub
225
UR  - <Go to ISI>://WOS:A1990CU44200009
226
VL  - 65
227
ID  - 45
228
ER  - 
229

  
230

  
231
TY  - JOUR
232
AB  - Agamospermous species account for a large proportion of the species of Limonium. Agamospermy is indicated by uneven polyploidy or aneuploidy, low pollen stainability and by the presence of monomorphic self-incompatible populations. The taxonomic treatment of agamospermous taxa varies from recognition of all of them at the same specific rank or by utilising a range of ranks in the taxonomic hierarchy. The influence of evolutionary hypotheses on taxonomic systems is considered. Molecular data provide a means of measuring the genetical relationships of taxa and establishing groups in a taxonomic hierarchy.
233
AD  - Univ London Birkbeck Coll, Dept Biol, London WC1E 7HX, England
234
Univ Oxford, Dept Plant Sci, Oxford OX1 3RB, England
235
AN  - WOS:000077957200009
236
AU  - Cowan, R.
237
AU  - Ingrouille, M. J.
238
AU  - Lledó, M. D.
239
IS  - 3
240
J2  - Folia Geobot
241
KW  - apomixis
242
hybridisation
243
taxonomic hierarchy
244
species concepts
245
DNA
246
markers
247
plants
248
rbcl
249
rapd
250
aflp
251
LA  - English
252
N1  - 155qe
253
Times Cited:16
254
Cited References Count:50
255
PY  - 1998
256
SN  - 0015-5551
257
SP  - 353-366
258
ST  - The taxonomic treatment of agamosperms in the genus Limonium Mill. (Plumbaginaceae)
259
T2  - Folia Geobotanica
260
TI  - The taxonomic treatment of agamosperms in the genus Limonium Mill. (Plumbaginaceae)
261
UR  - <Go to ISI>://WOS:000077957200009
262
VL  - 33
263
ID  - 38
264
ER  - 
265

  
266

  
267
TY  - JOUR
268
AB  - Two new genera are described to include six taxa commonly considered members of Limoniastrum Heist. ex Fabr. Saharanthus M.B. Crespo & M.D. Lledo nom, nov. is proposed on the basis of the illegitimate Lerrouxia Caball., for a woody species from western Sahara, also known as Caballeroa Font Quer. Ceratolimon M.B. Crespo & M.D. Lledo gen, nov. is proposed for a group of five taxa (four species and one additional variety) of dwarf shrubs with horned spikelets, which show a disjunct distribution on the edges of the Sahara Desert. This latter name applies to most species formerly placed in the illegitimate Bubania. Types are indicated for all taxa, and identification keys are also presented. (C) 2000 The Linnean Society of London.
269
AD  - Univ Alicante, Dept Ciencias Ambientales & Recursos Nat Bot, E-03080 Alicante, Spain
270
Royal Bot Gardens, Herbarium, Richmond TW9 3AB, Surrey, England
271
AN  - WOS:000086098300005
272
AU  - Crespo, M. B.
273
AU  - Lledó, M. D.
274
DA  - Feb
275
IS  - 2
276
J2  - Bot J Linn Soc
277
KW  - biogeography
278
bubania
279
caballeroa
280
nomenclature
281
taxonomy
282
typification
283
LA  - English
284
N1  - 297tg
285
Times Cited:3
286
Cited References Count:29
287
PY  - 2000
288
SN  - 0024-4074
289
SP  - 165-174
290
ST  - Two new North African genera related to Limoniastrum (Plumbaginaceae)
291
T2  - Botanical Journal of the Linnean Society
292
TI  - Two new North African genera related to Limoniastrum (Plumbaginaceae)
293
UR  - <Go to ISI>://WOS:000086098300005
294
VL  - 132
295
ID  - 36
296
ER  - 
297

  
298

  
299
TY  - JOUR
300
AU  - Daniela, I.
301
IS  - 27
302
J2  - Newslett. Int. Organ. Pl. Biosyst.
303
PY  - 1997
304
SP  - 14
305
ST  - Chromosome data 11
306
T2  - Newslett. Int. Organ. Pl. Biosyst.
307
TI  - Chromosome data 11
308
VL  - 26
309
ID  - 54
310
ER  - 
311

  
312

  
313
TY  - JOUR
314
AB  - This study explores the response of the Irano-Turanian flora to Quaternary glacial–interglacial cycles in SW Asia. We use new fossil pollen data to assess variation in abundance of Cousinia Cass. (Compositae), a large genus typical for the Irano-Turanian flora, during these cycles. The results are compared with modern topography, tectonic and palaeoclimatic history, and recent phylogenetic data to explain the extremely high speciation rate and level of endemism as well as the modern geographical distribution of the genus. Cousinia is consistently well-represented in glacial-age and late-glacial pollen assemblages of NW Iran and E Anatolia. In the ~ 200,000-year pollen sequence from Lake Urmia, NW Iran, Cousinia pollen shows significant values and is nearly continuously represented during both the last glacial (~ 70 ka to Holocene) and penultimate glacial periods (~ 190 to 130 ka). In contrast, its pollen is less frequent and occurs only sporadically during the last interglacial period and the Holocene. This pattern suggests that Cousinia could not only withstand Quaternary glaciations, but was a significant part of the glacial-age landscapes of the Irano-Turanian territory. We argue that the extremely high rate of speciation and endemism of Cousinia is due to (i) the continuous presence of a complex topography in the Middle East and Central Asia since Tertiary times, which created a wide range of environmental niches and facilitated the formation and persistence of isolated populations over long periods, (ii) relatively stable climate during the late Miocene–Pliocene compared to the Quaternary period that caused small species range shifts and gene flow, and (iii) a dampened impact of multiple glacial–interglacial cycles on the mountain regions of SW Asia compared to the higher latitude European mountain ranges. This left an extensive, non-glaciated altitudinal zone for the survival of Irano-Turanian species, thereby reducing extinction during glacial periods. During interglacial periods, many Cousinia species may have been geographically isolated in high mountain “interglacial refugia” of the Irano-Turanian region. Overall, the combination of the above factors during the Neogene resulted in geographical isolation and reduced gene flow, thereby fostering allopatric speciation in Cousinia and probably also in many other speciose Irano-Turanian plant taxa.
315
AU  - Djamali, Morteza
316
AU  - Baumel, Alex
317
AU  - Brewer, Simon
318
AU  - Jackson, Stephen T.
319
AU  - Kadereit, Joachim W.
320
AU  - López-Vinyallonga, Sara
321
AU  - Mehregan, Iraj
322
AU  - Shabanian, Esmaeil
323
AU  - Simakova, Aleksandra
324
DA  - 2/15/
325
DO  - http://dx.doi.org/10.1016/j.revpalbo.2012.01.005
326
KW  - Quaternary glaciations
327
allopatric speciation
328
topographical heterogeneity
329
interglacial refugia
330
tectonic history
331
SW Asia
332
PY  - 2012
333
SN  - 0034-6667
334
SP  - 10-20
335
ST  - Ecological implications of Cousinia Cass. (Asteraceae) persistence through the last two glacial–interglacial cycles in the continental Middle East for the Irano-Turanian flora
336
T2  - Review of Palaeobotany and Palynology
337
TI  - Ecological implications of Cousinia Cass. (Asteraceae) persistence through the last two glacial–interglacial cycles in the continental Middle East for the Irano-Turanian flora
338
UR  - http://www.sciencedirect.com/science/article/pii/S0034666712000061
339
VL  - 172
340
ID  - 3
341
ER  - 
342

  
343

  
344
TY  - JOUR
345
AB  - This study investigates the role of climate in determining phytogeographic regions, focusing particularly on the lrano-Turanian floristic region in SW and Central Asia. A set of simple climatic variables and bioclimatic indices were used to prepare climate-space scatter plots and climate diagrams. The climate data were also subjected to multivariate analyses (PCA and Regression tree) in order to develop a bioclimatic characterization of the Irano-Turanian region in comparison with the adjacent Mediterranean, Saharo-Sindian, Euro-Siberian, and Central-Asiatic regions. Phytogeographic regions of SW and Central Asia display distinct bioclimatic spaces with small overlaps. The Irano-Turanian region is differentiated from surrounding regions by continentality, winter temperature, and precipitation seasonality. Continentality is the most important bioclimatic factor in differentiating it from the Mediterranean and Saharo-Sindian regions and is responsible for floristic differences among sub-regions of the Irano-Turanian region. In our case study, the Irano-Turanian region is a nearly independent bioclimatic unit, distinct from its surrounding regions. Hence, it is suggested that the term "Irano-Turanian bioclimate" be used to describe the climate of most of the continental Middle East and Central Asia. Among different sub-regions, the west-central part of this floristic region ("IT2 sub-region") is a major center of speciation and endemism. Our case study demonstrates that climate is a primary determinant of phytogeographic regionalization. Although modern climate and topography are strong control parameters on the floristic composition and geographical delimitation of the Irano-Turanian region, the complex paleogeographic and paleoclimatic history of SW Asia has also influenced the Tertiary and Quaternary evolution of the Irano-Turanian flora, with additional impacts by the long-lasting historic and present land-use in this region. Many lrano-Turanian montane species are threatened by global warming, and particular conservation measures are needed to protect the Irano-Turanian flora in all sub-regions. (C) 2012 Elsevier GmbH. All rights reserved.
346
AD  - CNRS, UMR 7263, IMBE, IRD 237, F-13545 Aix En Provence 04, France
347
Univ Wyoming, Dept Bot 3165, Laramie, WY 82071 USA
348
Univ Bielefeld, Dept Ecol, D-33619 Bielefeld, Germany
349
Univ Wyoming, Berry Biodivers Conservat Ctr, Program Ecol 3622, Laramie, WY 82071 USA
350
AN  - WOS:000304898500001
351
AU  - Djamali, M.
352
AU  - Brewer, S.
353
AU  - Breckle, S. W.
354
AU  - Jackson, S. T.
355
DO  - 10.1016/j.flora.2012.01.009
356
IS  - 4
357
J2  - Flora
358
KW  - phytogeography
359
climate
360
continentality
361
flora
362
middle east
363
central asia
364
subtropical anticyclones
365
photosynthetic pathways
366
winter temperatures
367
late-quaternary
368
vegetation
369
dynamics
370
holocene
371
flora
372
east
373
precipitation
374
LA  - English
375
N1  - 953uk
376
Times Cited:8
377
Cited References Count:89
378
PY  - 2012
379
SN  - 0367-2530
380
SP  - 237-249
381
ST  - Climatic determinism in phytogeographic regionalization: A test from the Irano-Turanian region, SW and Central Asia
382
T2  - Flora
383
TI  - Climatic determinism in phytogeographic regionalization: A test from the Irano-Turanian region, SW and Central Asia
384
UR  - <Go to ISI>://WOS:000304898500001
385
VL  - 207
386
ID  - 50
387
ER  - 
388

  
389

  
390
TY  - JOUR
391
AB  - We describe the spatial distribution of the genus Acantholimon Boiss. (Plumbaginaceae) taxa in Turkey, and assess the role that environmental variables may be playing on this distribution. We collected a large number of specimens from 418 geo-referenced sampling sites between 2000 and 2004, and established a point database using geographic information systems (GIS) software. As a result, we identified and mapped 67 taxa; 43 of the determined taxa appear to be endemic. We re-evaluated the current conservation status of the taxa at a national level using recent IUCN Red List categories. In addition, we extracted the corresponding environmental variables of each determined point from the updated and available environmental raster map layers of Turkey and analysed the obtained taxa and environmental data by Hierarchical Clustering and Canonical Correspondence Analysis (CCA). Hierarchical Clustering delineated the subgroups, which have similarities at various levels in respect to environmental variables. The CCA results indicated that 8 environmental variables including longitude, distance to sea, maximum temperature, mean temperature, minimum temperature, potential evapotranspiration, elevation, and precipitation are the most effective in explaining the spatial distribution of the 18 Acantholimon taxa in Turkey.
392
AD  - Gaziosmanpasa Univ, Geog Informat Syst & Remote Sensing Unit, Dept Soil Sci, TR-60240 Tasliciftlik, Tokat, Turkey
393
Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
394
Hacettepe Univ, Dept Biol Educ, TR-06800 Ankara, Turkey
395
AN  - WOS:000289044300001
396
AU  - Doğan, H. M.
397
AU  - Doğan, M.
398
AU  - Akaydin, G.
399
AU  - Celep, F.
400
DO  - 10.3906/bot-0910-193
401
IS  - 2
402
J2  - Turk J Bot
403
KW  - acantholimon
404
anatolia
405
biodiversity
406
ecology
407
gis
408
mapping
409
spatial analysis
410
iucn
411
canonical correspondence-analysis
412
sect. staticopsis plumbaginaceae
413
boiss. plumbaginaceae
414
ecology
415
ankara
416
israel
417
LA  - English
418
N1  - 743un
419
Times Cited:3
420
Cited References Count:34
421
PY  - 2011
422
SN  - 1300-008x
423
SP  - 91-110
424
ST  - Mapping and analysing the diversity of the genus Acantholimon taxa in Turkey by geographic information systems (GIS)
425
T2  - Turkish Journal of Botany
426
TI  - Mapping and analysing the diversity of the genus Acantholimon taxa in Turkey by geographic information systems (GIS)
427
UR  - <Go to ISI>://WOS:000289044300001
428
VL  - 35
429
ID  - 8
430
ER  - 
431

  
432

  
433
TY  - JOUR
434
AB  - A new species, Acantholimon avanosicum Dogan & Akaydin in the Plumbaginaceae is described and illustrated. The species grows on argillaceaus slopes in Central Anatolia, Turkey. The diagnostic morphological characters that distinguish it from closely related taxa are discussed. A revised key to Acantholimon species in Turkey with densely distichous simple spikes is presented. (C) 2002 The Linnean Society of London, Botanical Journal of the Linnean Society, 2002, 138, 365-368.
435
AD  - Dogan, M
436
Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
437
Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
438
Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
439
Hacettepe Univ, Dept Biol Educ, TR-06532 Ankara, Turkey
440
AN  - WOS:000174806000008
441
AU  - Dogan, M.
442
AU  - Akaydin, G.
443
DA  - Mar
444
DO  - DOI 10.1046/j.1095-8339.2002.00027.x
445
IS  - 3
446
J2  - Bot J Linn Soc
447
KW  - conservation
448
distribution
449
LA  - English
450
N1  - 538gc
451
Times Cited:11
452
Cited References Count:10
453
PY  - 2002
454
SN  - 0024-4074
455
SP  - 365-368
456
ST  - A new species of Acantholimon Boiss. (Plumbaginaceae) from Turkey
457
T2  - Botanical Journal of the Linnean Society
458
TI  - A new species of Acantholimon Boiss. (Plumbaginaceae) from Turkey
459
UR  - <Go to ISI>://WOS:000174806000008
460
VL  - 138
461
ID  - 16
462
ER  - 
463

  
464

  
465
TY  - JOUR
466
AB  - A new species, Acantholimon birandii, is described and illustrated from Karaman, Turkey.
467
AD  - Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
468
Hacettepe Univ, Dept Biol Educ, TR-06532 Ankara, Turkey
469
AN  - WOS:000176737100005
470
AU  - Doğan, M.
471
AU  - Akaydin, G.
472
DO  - DOI 10.1111/j.1756-1051.2001.tb00800.x
473
IS  - 5
474
J2  - Nord J Bot
475
LA  - English
476
N1  - 571ug
477
Times Cited:9
478
Cited References Count:13
479
PY  - 2001
480
SN  - 0107-055x
481
SP  - 481-484
482
ST  - A new species, Acantholimon birandii (Plumbaginaceae), from the Central Anatolian Steppe in Turkey
483
T2  - Nordic Journal of Botany
484
TI  - A new species, Acantholimon birandii (Plumbaginaceae), from the Central Anatolian Steppe in Turkey
485
UR  - <Go to ISI>://WOS:000176737100005
486
VL  - 21
487
ID  - 18
488
ER  - 
489

  
490

  
491
TY  - JOUR
492
AB  - Acantholimon anatolicum Dogan & Akaydin sp. nov. (Plumbaginaceae) is described and illustrated. The species grows on deep gypsum-rich sandy soil on eroded mountain slopes between Cayirhan and Nallihan in Ankara. Diagnostic morphological characters that discern it from closely related species are discussed and its conservation status is indicated. A revised key to Acantholimon species with dense terminal spikes and excurrent scapes is given for the species found in Turkey. (C) The Linnean Society of London.
493
AD  - Dogan, M
494
Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
495
Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
496
Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
497
Hacettepe Univ, Dept Biol Educ, TR-06532 Ankara, Turkey
498
AN  - WOS:000180083100008
499
AU  - Doğan, M.
500
AU  - Akaydin, G.
501
DA  - Dec
502
DO  - DOI 10.1046/j.1095-8339.2002.00095.x
503
IS  - 4
504
J2  - Bot J Linn Soc
505
KW  - central anatolia
506
conservation
507
distribution
508
LA  - English
509
N1  - 629zq
510
Times Cited:9
511
Cited References Count:20
512
PY  - 2002
513
SN  - 0024-4074
514
SP  - 443-448
515
ST  - A new species of Acantholimon Boiss. (Plumbaginaceae) from Ankara, Turkey
516
T2  - Botanical Journal of the Linnean Society
517
TI  - A new species of Acantholimon Boiss. (Plumbaginaceae) from Ankara, Turkey
518
UR  - <Go to ISI>://WOS:000180083100008
519
VL  - 140
520
ID  - 14
521
ER  - 
522

  
523

  
524
TY  - JOUR
525
AD  - Dogan, M
526
Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
527
Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
528
Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
529
Hacettepe Univ, Dept Biol Educ, TR-06532 Ankara, Turkey
530
AN  - WOS:000176896100009
531
AU  - Doğan, M.
532
AU  - Akaydin, G.
533
DA  - Jun
534
DO  - DOI 10.1046/j.1095-8339.2002.00059.x
535
IS  - 2
536
J2  - Bot J Linn Soc
537
LA  - English
538
N1  - 574nh
539
Times Cited:0
540
Cited References Count:1
541
PY  - 2002
542
SN  - 0024-4074
543
SP  - 223-223
544
ST  - A new species of Acantholimon Boiss. (Plumbaginaceae) from Turkey
545
T2  - Botanical Journal of the Linnean Society
546
TI  - A new species of Acantholimon Boiss. (Plumbaginaceae) from Turkey
547
UR  - <Go to ISI>://WOS:000176896100009
548
VL  - 139
549
ID  - 15
550
ER  - 
551

  
552

  
553
TY  - JOUR
554
AB  - A new species, Acantholimon turcicum Dogan & Akaydin (Plumbaginaceae), is described and illustrated. The species grows on calcareous mountain scree in Astragalus spp. steppe on Hazar Mountain above Sivrice (B7 Elazig). Diagnostic morphological characteristics from the closely related species are discussed and conservation status of the species is given, along with a discussion dealing with its taxonomic relationships. A revised key to the Acantholimon species with circinnate leaf basis is also provided for the species found in Turkey.
555
AD  - Dogan, M
556
Middle E Tech Univ, Dept Sci Biol, TR-06531 Ankara, Turkey
557
Middle E Tech Univ, Dept Sci Biol, TR-06531 Ankara, Turkey
558
Middle E Tech Univ, Dept Sci Biol, TR-06531 Ankara, Turkey
559
Hacettepe Univ, Dept Biol Educ, TR-06532 Ankara, Turkey
560
AN  - WOS:000187835400010
561
AU  - Doğan, M.
562
AU  - Akaydin, G.
563
DO  - Doi 10.1560/Nugh-We3x-6f8p-6nt5
564
IS  - 3
565
J2  - Israel J Plant Sci
566
KW  - ankara
567
LA  - English
568
N1  - 760lq
569
Times Cited:5
570
Cited References Count:18
571
PY  - 2003
572
SN  - 0792-9978
573
SP  - 231-236
574
ST  - An undescribed species of Acantholimon Boiss. sect. Staticopsis (Plumbaginaceae) from Turkey, with some notes on its ecology, conservation status, and relationships
575
T2  - Israel Journal of Plant Sciences
576
TI  - An undescribed species of Acantholimon Boiss. sect. Staticopsis (Plumbaginaceae) from Turkey, with some notes on its ecology, conservation status, and relationships
577
UR  - <Go to ISI>://WOS:000187835400010
578
VL  - 51
579
ID  - 12
580
ER  - 
581

  
582

  
583
TY  - JOUR
584
AB  - Acantholimon koycegizicum Dogan & Akaydin sp. nova and A. goksunicum Dogan & Akaydin sp. nova (Plumbaginaceae) are described and illustrated from Anatolia, Turkey. Acantholimon koycegizicum grows on serpentine mountain slopes between Koycegiz and Kaplicalar (C2 Mugla) in South West Anatolia, and A. goksunicum grows on calcareous mountain steppe in Goksun (B6 Kahramanmaras) in SE Anatolia. The species are closely related to A. calvertii, an endemic confined to East Anatolia. Diagnostic morphological characters are discussed. A revised key to Turkish Acantholimon species with 2-5-branched terminal spikes and previous years' stem with persistent circinate leaf bases, is also presented along with notes on the ecology, biogeography and conservational status of the new species.
585
AD  - Dogan, M
586
Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
587
Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
588
Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
589
Hacettepe Univ, Dept Biol Educ, TR-06532 Ankara, Turkey
590
AN  - WOS:000182150700006
591
AU  - Doğan, M.
592
AU  - Akaydin, G.
593
IS  - 1
594
J2  - Ann Bot Fenn
595
KW  - acantholimon
596
plumbaginaceae
597
taxonomy
598
boiss. plumbaginaceae
599
LA  - English
600
N1  - 665zg
601
Times Cited:7
602
Cited References Count:18
603
PY  - 2003
604
SN  - 0003-3847
605
SP  - 53-58
606
ST  - Two new species in Acantholimon sect. Staticopsis (Plumbaginaceae) from Turkey
607
T2  - Annales Botanici Fennici
608
TI  - Two new species in Acantholimon sect. Staticopsis (Plumbaginaceae) from Turkey
609
UR  - <Go to ISI>://WOS:000182150700006
610
VL  - 40
611
ID  - 13
612
ER  - 
613

  
614

  
615
TY  - JOUR
616
AB  - Three new species, Acantholimon bashkaleicum sp. nov., Acantholimon artosense sp. nov. and Acantholimon hoshapicum sp. nov. (Plumbaginaceae) are described and illustrated. The species are all confined to B9/B10 Van Province in East Anatolia where they grow either on calcareous mountain slopes or on mountain steppes. Diagnostic morphological characteristics from the closely related species are given, along with a discussion dealing with their taxonomic relationships, and their conservation statuses are pointed out. A revised key to the Acantholimon species with heterophyllous leaves, two or more flowered and four or more bracteated spikelets is also provided. (C) 2004 The Linnean Society of London.
617
AD  - Dogan, M
618
Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
619
Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
620
Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
621
Univ Hacettepe, Dept Biol Educ, TR-06532 Ankara, Turkey
622
AN  - WOS:000221045700009
623
AU  - Doğan, M.
624
AU  - Akaydin, G.
625
DA  - Apr
626
DO  - DOI 10.1111/j.1095-8339.2003.00267.x
627
IS  - 4
628
J2  - Bot J Linn Soc
629
KW  - conservation
630
sect. acantholimon
631
taxonomy
632
boiss. plumbaginaceae
633
ankara
634
LA  - English
635
N1  - 815mf
636
Times Cited:5
637
Cited References Count:22
638
PY  - 2004
639
SN  - 0024-4074
640
SP  - 497-505
641
ST  - Three new species with two flowered spikelets in Acantholimon (Plumbaginaceae) from East Anatolia, Turkey
642
T2  - Botanical Journal of the Linnean Society
643
TI  - Three new species with two flowered spikelets in Acantholimon (Plumbaginaceae) from East Anatolia, Turkey
644
UR  - <Go to ISI>://WOS:000221045700009
645
VL  - 144
646
ID  - 11
647
ER  - 
648

  
649

  
650
TY  - JOUR
651
AB  - A new species, Acantholimon evrenii sp. nov. is described and illustrated for the first time in sect. Glumaria from Turkey. The species is confined to B7 Elazig in East Anatolia where it grows on rocky mountain steppes. The diagnostic morphological characters from closely related species are given, along with a discussion dealing with its taxonomic relationship. Its conservation status is indicated. A revised key is also provided for the Acantholimon species with heterophyllous leaves, two or more flowered and four or more bracteated spikelets. (c) 2005 The Linnean Society of London.
652
AD  - Dogan, M
653
Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
654
Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
655
Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
656
Hacettepe Univ, Dept Biol Educ, TR-06532 Ankara, Turkey
657
AN  - WOS:000233540200007
658
AU  - Doğan, M.
659
AU  - Akaydin, G.
660
DA  - Nov
661
DO  - DOI 10.1111/j.1095-8339.2005.00438.x
662
IS  - 3
663
J2  - Bot J Linn Soc
664
KW  - conservation
665
east anatolia
666
taxonomy
667
staticopsis plumbaginaceae
668
anatolia
669
ankara
670
LA  - English
671
N1  - 987tm
672
Times Cited:5
673
Cited References Count:26
674
PY  - 2005
675
SN  - 0024-4074
676
SP  - 351-356
677
ST  - A new species of Acantholimon Boiss. sect. Glumaria Boiss. (Plumbaginaceae) from Elazig, Turkey
678
T2  - Botanical Journal of the Linnean Society
679
TI  - A new species of Acantholimon Boiss. sect. Glumaria Boiss. (Plumbaginaceae) from Elazig, Turkey
680
UR  - <Go to ISI>://WOS:000233540200007
681
VL  - 149
682
ID  - 10
683
ER  - 
684

  
685

  
686
TY  - JOUR
687
AB  - A synopsis of Acantholimon in Turkey is given on the basis of a revisional study conducted in Turkey by the authors. An account of 52 species, ten subspecies, and 17 varieties is given, including keys to the species, subspecies, and varieties, and a general indication of their distribution, as well as their conservation status in Turkey. Seven new taxa, namely A. ekimii sp. nov., A. capitatum ssp. sivasicum ssp. nov., A. calvertii var. glabrum var. nov., A. huetii var. breviscapum var. nov., A. acerosum ssp. longibracteolorum ssp. nov., A. lycaonicum ssp. cappadocicum ssp. nov., and A. halophilum var. coloratum var. nov., are described, together with a few new combinations. A. wiedemannii, A. iconicum, and A. lycaonicum, described from Turkey in the past, but placed under other species as synonyms in the Flora of Turkey, are recognized once again as good species. A. multiflorum and A. parviflorum are given a species status. In Turkey, the presence of A. latifolium, A. araxanum, A. lepturoides, A. hohenackerii, A. senganense, A. fominii, A. petraeum, and A. tragacanthinum is also confirmed. (c) 2007 The Linnean Society of London, Botanical Journal of the Linnean Society, 2007, 154, 397-419.
688
AD  - Middle E Tech Univ, Dept Biol Sci, TR-06531 Ankara, Turkey
689
Hacettepe Univ, Dept Biol Educ, TR-06800 Ankara, Turkey
690
AN  - WOS:000248372200010
691
AU  - Doğan, M.
692
AU  - Akaydin, G.
693
DA  - Jul
694
DO  - DOI 10.1111/j.1095-8339.2007.00663.x
695
IS  - 3
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff