private void storeElementTextInAttribute(org.jdom.Element element, String elementName, YRelation relation, String attributeName) { String text = element.getChildTextTrim(elementName); if (text != null && !text.isEmpty()) { relation.addAttribute(attributeName, text); } }
private List<YRelation> addNewReferencesToRelations(List<ReferenceInfo> references, List<YRelation> yRelations) { int sequenceNumber = 0; for (ReferenceInfo reference : references) { YRelation relation = new YRelation(); relation.setType(YConstants.RL_REFERENCE_TO); relation.addAttribute(YConstants.AT_REFERENCE_TEXT, reference.getText()); relation.addAttribute(YConstants.AT_REFERENCE_NUMBER, Integer.toString(sequenceNumber)); yRelations.add(relation); ++sequenceNumber; } return yRelations; }
private void processElementCitation(YRelation relation, org.jdom.Element element) { processCommonCitation(relation, element); if ("article".equals(element.getAttributeValue("publication-type")) || "unpublished".equals(element.getAttributeValue("publication-type"))) { relation.addAttribute(ReferenceAttributeTypes.AT_REFERENCE_PARSED_TYPE, ReferenceTypes.RF_ARTICLE); } else if ("book".equals(element.getAttributeValue("publication-type"))) { relation.addAttribute(ReferenceAttributeTypes.AT_REFERENCE_PARSED_TYPE, ReferenceTypes.RF_BOOK); } storeElementTextInAttribute(element, "source", relation, ReferenceAttributeTypes.AT_REFERENCE_PARSED_JOURNAL); storeElementTextInAttribute(element, "article-title", relation, ReferenceAttributeTypes.AT_REFERENCE_PARSED_TITLE); YRichText text = formatElementCitation(element, relation); // StringBuffer referenceText = new StringBuffer(); // for(YRichText.Part part : text.toParts()) // referenceText.append(part+","); relation.addAttribute(ReferenceAttributeTypes.AT_REFERENCE_TEXT, text); }
private void processElementCitation(YRelation relation, org.jdom.Element element) { processCommonCitation(relation, element); if ("article".equals(element.getAttributeValue("publication-type"))) { relation.addAttribute(AT_REFERENCE_PARSED_TYPE, RF_ARTICLE); storeElementTextInAttribute(element, "source", relation, AT_REFERENCE_PARSED_JOURNAL); storeElementTextInAttribute(element, "article-title", relation, AT_REFERENCE_PARSED_TITLE); } else { // if ("book".equals(element.getAttributeValue("publication-type"))) { relation.addAttribute(AT_REFERENCE_PARSED_TYPE, RF_BOOK); storeElementTextInAttribute(element, "source", relation, AT_REFERENCE_PARSED_TITLE); } YRichText text = new YRichText(formatElementCitation(element)); relation.addAttribute(AT_REFERENCE_TEXT, text); }
private void storeElementTextInAttribute(org.jdom.Element element, String elementName, YRelation relation, String attributeName) { // String text = elementJDOMHelper.getChildTextTrim(elementName); YRichText text = extractNodeFromElement(element, elementName); if (text != null && !text.isEmpty()) { relation.addAttribute(attributeName, text); } }
private void processMixedCitation(YRelation relation, org.jdom.Element element) { processCommonCitation(relation, element); if (element.getChild("conf-name") != null) { relation.addAttribute(AT_REFERENCE_PARSED_TYPE, RF_INPROCEEDINGS); storeElementTextInAttribute(element, "source", relation, AT_REFERENCE_PARSED_BOOKTITLE); storeElementTextInAttribute(element, "article-title", relation, AT_REFERENCE_PARSED_TITLE); } else if (element.getChild("volume") != null || element.getChild("issue") != null || element.getChild("article-title") != null) { relation.addAttribute(AT_REFERENCE_PARSED_TYPE, RF_ARTICLE); storeElementTextInAttribute(element, "source", relation, AT_REFERENCE_PARSED_JOURNAL); storeElementTextInAttribute(element, "article-title", relation, AT_REFERENCE_PARSED_TITLE); } else { relation.addAttribute(AT_REFERENCE_PARSED_TYPE, RF_BOOK); storeElementTextInAttribute(element, "source", relation, AT_REFERENCE_PARSED_TITLE); } YRichText text = textOfElement(element); relation.addAttribute(AT_REFERENCE_TEXT, text); }
private static void replaceReferencesField(final YElement yElement, final String[] values) { final List<YRelation> relations = yElement.getRelations(); final List<YRelation> referenceRelations = yElement.getRelations(YConstants.RL_REFERENCE_TO); relations.removeAll(referenceRelations); // clean existing for (final String value : values) { final YRelation rel = new YRelation(); rel.setType(YConstants.RL_REFERENCE_TO); rel.addAttribute(YConstants.AT_REFERENCE_TEXT, value); relations.add(rel); } }
public YRelation parse(String text) { Node n = parser.parse(text); if (n == null) return null; if (!"citation".equals(n.getName())) throw new IllegalStateException("Unexpected node name"); YRelation yr = new YRelation(); yr.addAttribute(new YAttribute(YConstants.AT_REFERENCE_TEXT,text)); processReference(n, yr); return yr; }
private List<YRelation> toYRelations(final List<DocReference> references) { final List<YRelation> relationsFromMetadata = new ArrayList<YRelation>(); for (final DocReference reference : references) { final YRelation yRelation = new YRelation(); yRelation.setType(YConstants.RL_REFERENCE_TO); yRelation.addAttribute(YConstants.AT_REFERENCE_TEXT, reference.getText()); final List<DocId> hits = reference.getMatches(); if (hits != null && !hits.isEmpty()) { final DocId match = hits.get(0); yRelation.setTarget(new YId(match.getDomain(), match.getId())); if (hits.size() > 1) { log.info( "There are several documents matching reference {} of document {}. Presenting only first. All found:{}.", new Object[] { reference.getText(), id, hits }); } } relationsFromMetadata.add(yRelation); } return relationsFromMetadata; }
public void updateElementExtLinks(org.jdom.Element ameta, YElement article) { List<org.jdom.Element> extLinks = JDOMHelper.getChildren(ameta, "ext-link"); YRelation relation = new YRelation().setType(RelationTypes.RL_SAME_AS); for (org.jdom.Element extLink : extLinks) { String href = extLink.getAttributeValue("href", XLINK_NAMESPACE); if ("mr-item-id".equals(extLink.getAttributeValue("ext-link-type"))) { article.addId(new YId(IdSchemaIds.EXT_SCHEMA_MR, extLink.getTextTrim())); if (JDOMHelper.toNull(href) != null) { relation.addAttribute(JatsSpecificAttributeTypes.AT_NLM_ARTICLE_MR_URL, href); } } else if ("zbl-item-id".equals(extLink.getAttributeValue("ext-link-type"))) { article.addId(new YId(IdSchemaIds.EXT_SCHEME_ZBL, extLink.getTextTrim())); if (JDOMHelper.toNull(href) != null) { relation.addAttribute(JatsSpecificAttributeTypes.AT_NLM_ARTICLE_ZBL_URL, href); } } } if (relation.getAttributes().size() > 0) { article.addRelation(relation); } } }
relation.addAttribute(ReferenceAttributeTypes.AT_REFERENCE_PARSED_TYPE, ReferenceTypes.RF_INPROCEEDINGS); storeElementTextInAttribute(element, "source", relation, ReferenceAttributeTypes.AT_REFERENCE_PARSED_BOOKTITLE); storeElementTextInAttribute(element, "article-title", relation, ReferenceAttributeTypes.AT_REFERENCE_PARSED_TITLE); } else if (JDOMHelper.getChild(element, "volume") != null || JDOMHelper.getChild(element, "issue") != null || JDOMHelper.getChild(element, "article-title") != null) { relation.addAttribute(ReferenceAttributeTypes.AT_REFERENCE_PARSED_TYPE, ReferenceTypes.RF_ARTICLE); storeElementTextInAttribute(element, "source", relation, ReferenceAttributeTypes.AT_REFERENCE_PARSED_JOURNAL); storeElementTextInAttribute(element, "article-title", relation, ReferenceAttributeTypes.AT_REFERENCE_PARSED_TITLE); relation.addAttribute(ReferenceAttributeTypes.AT_REFERENCE_TEXT, text);
@SuppressWarnings("deprecation") public static void updateYRelationWithZblContributor(YRelation relye, YContributor c) { YAttribute ya = null; if (c.getOneName("canonical") != null) ya = new YAttribute(YConstants.AT_REFERENCE_PARSED_AUTHOR, c.getOneName("canonical").getText().toString()); if (c.getAttributes(YConstants.AT_ZBL_AUTHOR_FINGERPRINT).size() > 0) ya.addAttribute(YConstants.AT_ZBL_AUTHOR_FINGERPRINT, c.getAttributes(YConstants.AT_ZBL_AUTHOR_FINGERPRINT) .get(0).getValue()); if (c.getOneName("forenames") != null) ya.addAttribute(YConstants.AT_REFERENCE_PARSED_AUTHOR_FORENAMES, c.getOneName("forenames").getText() .toString()); ya.addAttribute(YConstants.AT_REFERENCE_PARSED_AUTHOR_SURNAME, c.getOneName("surname").getText().toString()); relye.addAttribute(ya); }
private void addTitleList(YElement element, List<TitleHistoryElement> titles, String relationType) { for (TitleHistoryElement titleHistoryElement : titles) { YRelation relation = new YRelation(); relation.setType(relationType); if (titleHistoryElement.getId() != null) { relation.setTarget(new YId(IdSchemaIds.EXT_SCHEME_YADDA, titleHistoryElement.getId())); } else if (titleHistoryElement.getIssn() != null) { relation.setTarget(new YId(IdSchemaIds.EXT_SCHEME_ISSN, titleHistoryElement.getIssn())); } String dateRange = titleHistoryElement.getDateRange(); if (StringUtils.isNotBlank(dateRange)) { relation.addAttribute(ReferenceAttributeTypes.AT_REFERENCE_PARSED_DATE, dateRange); } String title = titleHistoryElement.getTitleName(); if (StringUtils.isNotBlank(title)) { relation.addAttribute(ReferenceAttributeTypes.AT_REFERENCE_PARSED_TITLE, title); } element.addRelation(relation); } }
private void appendBibliography(ResourceData resource, YElement yElement) { if (!resource.getBibliography().isEmpty()) { for (BibliographyReference bib : resource.getBibliography()) { YRelation relation = new YRelation(); relation.setType(RelationTypes.RL_REFERENCE_TO); relation.addAttribute(ReferenceAttributeTypes.AT_REFERENCE_TEXT, bib.getText()); if (StringUtils.isNotBlank(bib.getAssignedId())) { relation.setTarget(new YId(IdSchemaIds.EXT_SCHEME_YADDA, bib.getAssignedId())); } yElement.addRelation(relation); } } }
public static void updateYRelationWithZblClassificationCodes(YRelation relye, YElement zblye) { YAttribute ya; ya = new YAttribute(YConstants.TG_CATEGORY, ""); for (YCategoryRef r : zblye.getCategoryRefs()) { ya.addAttribute(new YAttribute(r.getClassification(), r.getCode())); } relye.addAttribute(ya); }
public static void updateYRelationWithZblIds(YRelation relye, YElement zblye) { YAttribute ya = new YAttribute(YConstants.TG_CATEGORY, ""); for (YId i : zblye.getIds()) { if (i.getScheme().equals(YConstants.EXT_SCHEME_ISSN)) { ya.addAttribute(new YAttribute(YConstants.EXT_SCHEME_ISSN, i.getValue())); } else if (i.getScheme().equals(YConstants.EXT_SCHEME_ISBN)) { ya.addAttribute(new YAttribute(YConstants.EXT_SCHEME_ISBN, i.getValue())); } else if (i.getScheme().equals(YConstants.EXT_SCHEME_ZBL)) { ya.addAttribute(new YAttribute(YConstants.EXT_SCHEME_ZBL, i.getValue())); } else if (i.getScheme().equals(YConstants.EXT_SCHEME_ZBL)) { ya.addAttribute(new YAttribute(YConstants.EXT_SCHEME_ZBL, i.getValue())); } } relye.addAttribute(ya); }
@Override public EnrichedPayload<YElement> process(EnrichedPayload<BxDocument> input, ProcessContext ctx) throws Exception { YElement yElement = metadataExtractor.extractMetadata(input.getObject()); String[] references = bibReferenceExtractor.extractBibReferences(input.getObject()); for(String reference : references) { YRelation yRelation = new YRelation().setType(YConstants.RL_REFERENCE_TO); yRelation.addAttribute(YConstants.AT_REFERENCE_TEXT, reference); yElement.addRelation(yRelation); } return new EnrichedPayload(input.getId(), yElement, input.getCollections(), input.getLicenses()); }
public static void updateYRelationWithZblNames(YRelation relye, YElement zblye) { for (YName n : zblye.getNames()) { YAttribute ya = new YAttribute(YConstants.AT_ENHANCED_FROM_ZBL_NAME, ""); ya.addAttribute(new YAttribute(YConstants.AT_ENHANCED_FROM_ZBL_LANGUAGE, n.getLanguage().getName())); ya.addAttribute(new YAttribute(YConstants.AT_ENHANCED_FROM_ZBL_TYPE, n.getType())); ya.addAttribute(new YAttribute(YConstants.AT_ENHANCED_FROM_ZBL_VALUE, n.getText())); relye.addAttribute(ya); } }
public static void updateYRelationWithZblTags(YRelation relye, YElement zblye) { for (YTagList tl : zblye.getTagLists()) { YAttribute ya = new YAttribute(YConstants.AT_ENHANCED_FROM_ZBL_TAG, ""); ya.addAttribute(new YAttribute(YConstants.AT_ENHANCED_FROM_ZBL_TYPE, tl.getType())); ya.addAttribute(new YAttribute(YConstants.AT_ENHANCED_FROM_ZBL_LANGUAGE, tl.getLanguage().getName())); for (String t : tl.getValues()) { ya.addAttribute(new YAttribute(YConstants.AT_ENHANCED_FROM_ZBL_VALUE, t)); } relye.addAttribute(ya); } }
mc=JDOMHelper.optDescendant(ref, "note"); if (mc!=null) { relation.addAttribute(ReferenceAttributeTypes.AT_REFERENCE_TEXT, mc.getText()); } else {