updateCategoryRefs(article, kg, ClassificationIds.EXT_CLASSIFICATION_MSC_2010); } else if (kwdType.toLowerCase(Locale.US).contains("msc")) { updateCategoryRefs(article, kg, ClassificationIds.EXT_CLASSIFICATION_MSC_2010); } else if (kwdType.toLowerCase(Locale.US).contains("mathematics subject classification")) { updateCategoryRefs(article, kg, ClassificationIds.EXT_CLASSIFICATION_MSC_2010); } else if (kwdType.contains("ams")) { updateCategoryRefs(article, kg, ClassificationIds.EXT_CLASSIFICATION_MSC_2010); } else if (kwdType.contains("pacs")) { updateCategoryRefs(article, kg, ClassificationIds.EXT_CLASSIFICATION_PACS); } else if (kwdType.toLowerCase(Locale.US).contains("mml")) { updateMizarID(kg, article); } else { updateKeywords(article, kg);
public YElement processArticleInBook(Element ameta, Element reflist, YElement parent, NlmIdGenerator idGenerator) { YElement article = initArticleinBookElement(ameta, parent,idGenerator); updater.updateElementIds(ameta, article, "article-id"); //bwmeta updater.updateElementExtLinks(ameta, article); updater.updateElementContentLinks(ameta, article); // content links updater.updateElementAuthors(ameta, article); // contributors updater.updateProvider(ameta, article); updater.updateElementPubdate(ameta, article); // pubdate updater.updateWithKwdGroups(ameta, article); // keywords updater.updateElementPages(ameta, article, NlmToYConstants.EXT_HIERARCHY_MBOOK_ARTICLE);//pages articleUpdater.updateArticleRefs(reflist, article); return article; }
updater.updateElementIds(bmeta, book, "book-id"); //bwmeta?? updater.updateElementExtLinks(bmeta, book); updater.updateElementAuthors(bmeta, book); // contributors updater.updateElementPubdate(bmeta, book); updater.updateWithKwdGroups(bmeta, book); // keywords updater.updateElementContentLinks(bmeta, book); updater.updateProvider(bmeta, book); updater.updateElementPublisher(bmeta, book); updateElementConference(bmeta, book);
/** * Mbook is eudml only so we expect to have eudml id * @param mbmeta nlm book element * @param hierarchy hierachy to set * @param level to set * @param idGenerator - generator for ids * @return generated yelement */ public YElement processMBookElement(Element mbmeta, String hierarchy, String level, NlmIdGenerator idGenerator) { org.jdom.Element btitles = JDOMHelper.optDescendant(mbmeta, "book-title-group"); org.jdom.Element btitle = JDOMHelper.optDescendant(btitles, "book-title"); YName mbookName = y.canonicalName(JDOMHelper.getYLang(btitle), JDOMHelper.textOfElement(btitle)); Element mbookId = JDOMHelper.getChildWithGivenAttributeValue(mbmeta, "book-id", "pub-id-type", "eudml-id"); String eudmlId=mbookId==null?null:mbookId.getValue(); String id= idGenerator.getMbookId(eudmlId); YElement mbook = factory.element(hierarchy, level, mbookName, ROOT, id).addLanguage(JDOMHelper.getYLang(mbmeta)); updater.updateElementIds(mbmeta, mbook, "book-id"); //bwmeta?? updater.updateElementAuthors(mbmeta, mbook); // contributors updater.updateElementPubdate(mbmeta, mbook); updater.updateElementContentLinks(mbmeta, mbook); updater.updateProvider(mbmeta, mbook); updater.updateElementPublisher(mbmeta, mbook); return mbook; }
public YElement processBookPartElement(Element jbookPart, YElement parent, NlmIdGenerator idGenerator) { Element bpmeta = JDOMHelper.optDescendant(jbookPart, "book-part-meta"); YName bookPartName = y.canonicalName(YLanguage.Undetermined, JDOMHelper.getTextTrim(JDOMHelper.optDescendant(bpmeta, "title-group", "title"))); Element eudmlIdEl = JDOMHelper.getChildWithGivenAttributeValue(jbookPart, "book-part-id", "pub-id-type", "eudml-id"); String eudmlId=eudmlIdEl==null?null:eudmlIdEl.getValue(); String id=idGenerator.getBookPartId(eudmlId, bookPartName.getText(), parent); YElement bookPart = factory.element(HierarchyWithLevelIds.EXT_HIERARCHY_BOOK, NlmToYConstants.EXT_LEVEL_BOOK_BOOKPART, bookPartName, parent, id); updater.updateElementIds(bpmeta, bookPart, "book-part-id"); updater.updateElementContentLinks(bpmeta, bookPart); updater.updateElementPages(bpmeta, bookPart, HierarchyWithLevelIds.EXT_HIERARCHY_BOOK);//pages updatePartType(jbookPart, bookPart); return bookPart; }
public void updateElementAuthors(org.jdom.Element ameta, YElement article) { List<YAffiliation> affs=extractAllAffiliations(ameta); for (YAffiliation aff:affs) { article.addAffiliation(aff); List<org.jdom.Element> cs = extractAllContributors(ameta);
private static NlmBookProcessor createProcessor() { YObjects y = new YObjects("[unknown]"); EudmlYElementFactory factory = new EudmlYElementFactory(); UpdateElement updater = new UpdateElement(y); UpdateArticle articleUpdater = new UpdateArticle(y); return new NlmBookProcessor(y, factory, updater, articleUpdater); }
public void updateElementPubdate(org.jdom.Element ameta, YElement article) { for ( org.jdom.Element pd :JDOMHelper.getChildren(ameta, "pub-date")) { YDate pubdate=createDateFromDateLikeElement(pd, DateTypes.DT_PUBLISHED); if ("epub".equalsIgnoreCase(pd.getAttributeValue("pub-type"))) { pubdate.setType(DateTypes.DT_ONLINE); article.addDate(createDateFromDateLikeElement(dateEl, dateType));
private void updateCategoryRefs(YElement article, org.jdom.Element kg, String type) { List<org.jdom.Element> ks = JDOMHelper.getChildren(kg, "kwd"); for (org.jdom.Element k : ks) { String codeText = JDOMHelper.textOfElement(k).toText(); for (String code : findAllCategoryCodes(codeText, type)) { YCategoryRef ref = new YCategoryRef(type, code); article.addCategoryRef(ref); } } }
public void updateProvider(org.jdom.Element ameta, YElement element) { List<org.jdom.Element> cs = extractProvider(ameta); for (org.jdom.Element c : cs) { String providerName = JDOMHelper.getChildTextTrim(c, "meta-value"); if (JDOMHelper.getChildTextTrim(c, "meta-name").equalsIgnoreCase("provider") && JDOMHelper.toNull(providerName) != null) { element.addContributor( new YContributor(ContributorRoles.CR_REPOSITORY, true).addName(y.canonicalName(YLanguage.NoLinguisticContent, providerName))); } } }
private void updateKeywords(YElement article, org.jdom.Element kg) { YTagList kwds = new YTagList(YLanguage.English, TagTypes.TG_KEYWORD); List<org.jdom.Element> ks = JDOMHelper.getChildren(kg, "kwd"); for (org.jdom.Element k : ks) { kwds.addValue(JDOMHelper.textOfElement(k)); } Attribute kwdLang = kg.getAttribute("lang", Namespace.XML_NAMESPACE); YLanguage lang = extractYLanguage(kwdLang); if (lang != null) { kwds.setLanguage(lang); } if (kwds.size() > 0) { // System.out.println("[NlmToYTransformer] Adding keywords"); article.addTagList(kwds); } }
public NlmToYTransformer() { this.y = new YObjects("[unknown2]"); this.factory = new EudmlYElementFactory(HierarchyWithLevelIds.EXT_HIERARCHY_JOURNAL); this.updater = new UpdateElement(y); this.articleUpdater = new UpdateArticle(y); this.bookProcessor = new NlmBookProcessor(y, factory, updater, articleUpdater); }
/** * Processes <code>article-meta</code> and <code>ref-list</code> metadata * creating an article element. * * @param ameta * the metadata element to extract article info from * @param reflist * the metadata element to extract citations info from * @param parent * parent element for the created element * @return the created article element */ private YElement processArticle(org.jdom.Element ameta, org.jdom.Element reflist, YElement parent) { YElement article = initArticleElement(ameta, parent); updater.updateElementIds(ameta, article, "article-id"); updater.updateElementExtLinks(ameta, article); updater.updateElementContentLinks(ameta, article); // content links updater.updateElementAuthors(ameta, article); // contributors updater.updateProvider(ameta, article); updater.updateElementPubdate(ameta, article); // pubdate updater.updateWithKwdGroups(ameta, article); // keywords updater.updateElementPages(ameta, article, EXT_HIERARCHY_JOURNAL); articleUpdater.updateArticleRefs(reflist, article); return article; }