Revision deeccd97
Added by Andreas Kohlbecker over 8 years ago
src/main/java/org/cybertaxonomy/utis/checklist/EEA_BDC_Client.java | ||
---|---|---|
303 | 303 |
.toList(); |
304 | 304 |
for(Vertex tv : titleVs) { |
305 | 305 |
Source source = new Source(); |
306 |
logger.error(tv.toString());
|
|
306 |
logger.debug(tv.toString());
|
|
307 | 307 |
source.setName(tv.getProperty(GraphSail.VALUE).toString()); |
308 | 308 |
taxonBase.getSources().add(source); |
309 | 309 |
} |
... | ... | |
337 | 337 |
.inE(RdfSchema.EUNIS_SPECIES.property("eunisPrimaryName")).outV().dedup() |
338 | 338 |
.toList(); |
339 | 339 |
for(Vertex synonymV : synonymVs) { |
340 |
String typeUri = queryClient.relatedVertexValue(synonymV, RdfSchema.RDF, "type");
|
|
341 |
String status = null;
|
|
342 |
try {
|
|
343 |
status = URI.create(typeUri).getFragment();
|
|
344 |
} catch (Exception e) {
|
|
340 |
// http://www.w3.org/1999/02/22-rdf-syntax-ns#type is used inconsistently, accepted taxa can have type SpeciesSynonym
|
|
341 |
// and are their own synonym in this case !
|
|
342 |
// using http://eunis.eea.europa.eu/rdf/species-schema.rdf#taxonomicRank is the recommended way to detect synonyms and to avoid
|
|
343 |
// adding the accepted taxon as its own synonym
|
|
344 |
String taxonomicRank = queryClient.relatedVertexValue(synonymV, RdfSchema.EUNIS_SPECIES, "taxonomicRank");
|
|
345 | 345 |
|
346 |
} |
|
347 | 346 |
|
348 |
if (status != null && status.equals("SpeciesSynonym")) {
|
|
347 |
if (taxonomicRank != null && taxonomicRank.equals("Synonym")) {
|
|
349 | 348 |
|
350 | 349 |
Synonym synonym = new Synonym(); |
351 | 350 |
|
352 | 351 |
TaxonName taxonName = createTaxonName(synonymV); |
353 |
synonym.setTaxonomicStatus(status); |
|
352 |
synonym.setTaxonomicStatus(taxonomicRank); |
|
353 |
synonym.setUrl(synonymV.getProperty(GraphSail.VALUE).toString()); |
|
354 | 354 |
synonym.setTaxonName(taxonName); |
355 | 355 |
synonym.setAccordingTo(queryClient.relatedVertexValue(synonymV, RdfSchema.DWC, "nameAccordingToID")); |
356 | 356 |
|
src/main/java/org/cybertaxonomy/utis/query/TinkerPopClient.java | ||
---|---|---|
59 | 59 |
*/ |
60 | 60 |
public class TinkerPopClient implements IQueryClient { |
61 | 61 |
|
62 |
protected Logger logger = LoggerFactory.getLogger(TinkerPopClient.class); |
|
62 |
protected static final Logger logger = LoggerFactory.getLogger(TinkerPopClient.class);
|
|
63 | 63 |
|
64 | 64 |
private Neo4jStore graphStore = null; |
65 | 65 |
|
src/test/java/org/cybertaxonomy/utis/checklist/EEA_BDC_ClientTest.java | ||
---|---|---|
6 | 6 |
import org.cybertaxonomy.utis.tnr.msg.Classification; |
7 | 7 |
import org.cybertaxonomy.utis.tnr.msg.NameType; |
8 | 8 |
import org.cybertaxonomy.utis.tnr.msg.Response; |
9 |
import org.cybertaxonomy.utis.tnr.msg.Synonym; |
|
9 | 10 |
import org.cybertaxonomy.utis.tnr.msg.TnrMsg; |
10 | 11 |
import org.cybertaxonomy.utis.utils.TnrMsgException; |
11 | 12 |
import org.cybertaxonomy.utis.utils.TnrMsgUtils; |
12 | 13 |
import org.junit.BeforeClass; |
13 | 14 |
import org.junit.Test; |
15 |
import org.slf4j.Logger; |
|
16 |
import org.slf4j.LoggerFactory; |
|
14 | 17 |
|
15 | 18 |
public class EEA_BDC_ClientTest { |
16 | 19 |
|
20 |
protected static final Logger logger = LoggerFactory.getLogger(EEA_BDC_ClientTest.class); |
|
21 |
|
|
17 | 22 |
static EEA_BDC_Client client; |
18 | 23 |
|
19 | 24 |
@BeforeClass |
... | ... | |
48 | 53 |
Response response = tnrMsg.getQuery().get(0).getResponse().get(0); |
49 | 54 |
assertEquals("Canis aureus", response.getMatchingNameString()); |
50 | 55 |
assertEquals("Canis aureus", response.getTaxon().getTaxonName().getCanonicalName()); |
56 |
logger.info("Accepted: " + response.getTaxon().getTaxonName().getFullName() + " (" + response.getTaxon().getUrl() + ")"); |
|
51 | 57 |
assertTrue(response.getSynonym().size() > 0); |
58 |
for(Synonym syn : response.getSynonym()) { |
|
59 |
logger.info("Synonym: " + syn.getTaxonName().getFullName() + " (" + syn.getUrl() + ")"); |
|
60 |
} |
|
52 | 61 |
Classification c = response.getTaxon().getClassification(); |
53 | 62 |
assertEquals("Canidae", c.getFamily()); |
54 | 63 |
assertEquals("Carnivora", c.getOrder()); |
... | ... | |
56 | 65 |
assertEquals("Animalia", c.getKingdom()); |
57 | 66 |
} |
58 | 67 |
|
68 |
@Test |
|
69 |
public void scientificNameExact_withSynonym_Test() throws DRFChecklistException, TnrMsgException { |
|
70 |
|
|
71 |
TnrMsg tnrMsg = TnrMsgUtils.createRequest(SearchMode.scientificNameExact, "Prinobius myardi", true); |
|
72 |
client.queryChecklist(tnrMsg); |
|
73 |
String outputXML = TnrMsgUtils.convertTnrMsgToXML(tnrMsg); |
|
74 |
System.out.println(outputXML); |
|
75 |
assertEquals(1, tnrMsg.getQuery().get(0).getResponse().size()); |
|
76 |
Response response = tnrMsg.getQuery().get(0).getResponse().get(0); |
|
77 |
assertEquals("Prinobius myardi", response.getMatchingNameString()); |
|
78 |
assertEquals("Prinobius myardi", response.getTaxon().getTaxonName().getCanonicalName()); |
|
79 |
assertTrue(response.getSynonym().size() > 0); |
|
80 |
boolean prionus_germari_found = false; |
|
81 |
for(Synonym syn : response.getSynonym()) { |
|
82 |
logger.info(syn.getTaxonName().getFullName()); |
|
83 |
if(syn.getTaxonName().getCanonicalName().equals("Prionus germari")) { |
|
84 |
prionus_germari_found = true; |
|
85 |
} |
|
86 |
} |
|
87 |
assertTrue(prionus_germari_found); |
|
88 |
Classification c = response.getTaxon().getClassification(); |
|
89 |
} |
|
90 |
|
|
59 | 91 |
@Test |
60 | 92 |
public void genus_Test() throws DRFChecklistException, TnrMsgException { |
61 | 93 |
|
Also available in: Unified diff
better detection of synonyms to avoid adding the accepted taxon as its own synonym