private ItemIdValue processGDMResourceNode(final ResourceNode resourceNode) { final String resourceURI = resourceNode.getUri(); return gdmResourceURIWikidataItemMap.computeIfAbsent( resourceURI, resourceURI1 -> { try { final List<MonolingualTextValue> labels = generateLabels(resourceURI); final List<MonolingualTextValue> descriptions = generateLabels(resourceURI); final List<MonolingualTextValue> aliases = new ArrayList<>(); final List<StatementGroup> statementGroups = new ArrayList<>(); final Map<String, SiteLink> siteLinkMap = new HashMap<>(); // note: list of descriptions cannot be null // note: list of aliases cannot be null // note: list of statement groups cannot be null final ItemDocument wikidataItem = Datamodel.makeItemDocument( null, labels, descriptions, aliases, statementGroups, siteLinkMap); return createWikidataItem(resourceURI1, wikidataItem); } catch (final WikidataImporterException e) { throw WikidataImporterError.wrap(e); } }); }
private static String printGDMNode(final Node node) { final StringBuilder sb = new StringBuilder(); final Long id = node.getId(); sb.append("id = '"); if (id != null) { sb.append(id); } else { sb.append("no node id available"); } final NodeType nodeType = node.getType(); switch (nodeType) { case Literal: sb.append("' :: "); final LiteralNode literalNode = (LiteralNode) node; final String value = literalNode.getValue(); sb.append("value = '").append(value); break; case Resource: sb.append("' :: "); final ResourceNode resourceNode = (ResourceNode) node; final String resourceURI = resourceNode.getUri(); sb.append("uri = '").append(resourceURI); break; } sb.append("' :: type = '").append(nodeType).append("'}"); return sb.toString(); }