diff --git a/.gitignore b/.gitignore index 73d9179fa..14cd4d345 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,4 @@ spark-warehouse /**/*.log /**/.factorypath /**/.scalafmt.conf +/.java-version diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..aff151f94 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,43 @@ +# Contributor Code of Conduct + +Openness, transparency and our community-driven participatory approach guide us in our day-to-day interactions and decision-making. Our open source projects are no exception. Trust, respect, collaboration and transparency are core values we believe should live and breathe within our projects. Our community welcomes participants from around the world with different experiences, unique perspectives, and great ideas to share. + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Attempting collaboration before conflict +- Focusing on what is best for the community +- Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +- Violence, threats of violence, or inciting others to commit self-harm +- The use of sexualized language or imagery and unwelcome sexual attention or advances +- Trolling, intentionally spreading misinformation, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic address, without explicit permission +- Abuse of the reporting process to intentionally harass or exclude others +- Advocating for, or encouraging, any of the above behavior +- Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), [version 1.4](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html). \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..13a359c86 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,10 @@ +# Contributing to D-Net Hadoop + +:+1::tada: First off, thanks for taking the time to contribute! :tada::+1: + +This project and everyone participating in it is governed by our [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [dnet-team@isti.cnr.it](mailto:dnet-team@isti.cnr.it). + +The following is a set of guidelines for contributing to this project and its packages. These are mostly guidelines, not rules, which applies to this project as a while, including all its sub-modules. +Use your best judgment, and feel free to propose changes to this document in a pull request. + +All contributions are welcome, all contributions will be considered to be contributed under the [project license](LICENSE.md). diff --git a/LICENSE b/LICENSE.md similarity index 100% rename from LICENSE rename to LICENSE.md diff --git a/README.md b/README.md index 0a0bd82ab..b6575814d 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,133 @@ # dnet-hadoop -Dnet-hadoop is the project that defined all the OOZIE workflows for the OpenAIRE Graph construction, processing, provisioning. \ No newline at end of file + +Dnet-hadoop is the project that defined all the [OOZIE workflows](https://oozie.apache.org/) for the OpenAIRE Graph construction, processing, provisioning. + +This project adheres to the Contributor Covenant [code of conduct](CODE_OF_CONDUCT.md). +By participating, you are expected to uphold this code. Please report unacceptable behavior to [dnet-team@isti.cnr.it](mailto:dnet-team@isti.cnr.it). + +This project is licensed under the [AGPL v3 or later version](#LICENSE.md). + +How to build, package and run oozie workflows +==================== + +Oozie-installer is a utility allowing building, uploading and running oozie workflows. In practice, it creates a `*.tar.gz` +package that contains resources that define a workflow and some helper scripts. + +This module is automatically executed when running: + +`mvn package -Poozie-package -Dworkflow.source.dir=classpath/to/parent/directory/of/oozie_app` + +on module having set: + +``` + + eu.dnetlib.dhp + dhp-workflows + +``` + +in `pom.xml` file. `oozie-package` profile initializes oozie workflow packaging, `workflow.source.dir` property points to +a workflow (notice: this is not a relative path but a classpath to directory usually holding `oozie_app` subdirectory). + +The outcome of this packaging is `oozie-package.tar.gz` file containing inside all the resources required to run Oozie workflow: + +- jar packages +- workflow definitions +- job properties +- maintenance scripts + +Required properties +==================== + +In order to include proper workflow within package, `workflow.source.dir` property has to be set. It could be provided +by setting `-Dworkflow.source.dir=some/job/dir` maven parameter. + +In oder to define full set of cluster environment properties one should create `~/.dhp/application.properties` file with +the following properties: + +- `dhp.hadoop.frontend.user.name` - your user name on hadoop cluster and frontend machine +- `dhp.hadoop.frontend.host.name` - frontend host name +- `dhp.hadoop.frontend.temp.dir` - frontend directory for temporary files +- `dhp.hadoop.frontend.port.ssh` - frontend machine ssh port +- `oozieServiceLoc` - oozie service location required by run_workflow.sh script executing oozie job +- `nameNode` - name node address +- `jobTracker` - job tracker address +- `oozie.execution.log.file.location` - location of file that will be created when executing oozie job, it contains output +produced by `run_workflow.sh` script (needed to obtain oozie job id) +- `maven.executable` - mvn command location, requires parameterization due to a different setup of CI cluster +- `sparkDriverMemory` - amount of memory assigned to spark jobs driver +- `sparkExecutorMemory` - amount of memory assigned to spark jobs executors +- `sparkExecutorCores` - number of cores assigned to spark jobs executors + +All values will be overriden with the ones from `job.properties` and eventually `job-override.properties` stored in module's +main folder. + +When overriding properties from `job.properties`, `job-override.properties` file can be created in main module directory +(the one containing `pom.xml` file) and define all new properties which will override existing properties. +One can provide those properties one by one as command line `-D` arguments. + +Properties overriding order is the following: + +1. `pom.xml` defined properties (located in the project root dir) +2. `~/.dhp/application.properties` defined properties +3. `${workflow.source.dir}/job.properties` +4. `job-override.properties` (located in the project root dir) +5. `maven -Dparam=value` + +where the maven `-Dparam` property is overriding all the other ones. + +Workflow definition requirements +==================== + +`workflow.source.dir` property should point to the following directory structure: + + [${workflow.source.dir}] + | + |-job.properties (optional) + | + \-[oozie_app] + | + \-workflow.xml + +This property can be set using maven `-D` switch. + +`[oozie_app]` is the default directory name however it can be set to any value as soon as `oozieAppDir` property is +provided with directory name as value. + +Sub-workflows are supported as well and sub-workflow directories should be nested within `[oozie_app]` directory. + +Creating oozie installer step-by-step +===================================== + +Automated oozie-installer steps are the following: + +1. creating jar packages: `*.jar` and `*tests.jar` along with copying all dependencies in `target/dependencies` +2. reading properties from maven, `~/.dhp/application.properties`, `job.properties`, `job-override.properties` +3. invoking priming mechanism linking resources from import.txt file (currently resolving subworkflow resources) +4. assembling shell scripts for preparing Hadoop filesystem, uploading Oozie application and starting workflow +5. copying whole `${workflow.source.dir}` content to `target/${oozie.package.file.name}` +6. generating updated `job.properties` file in `target/${oozie.package.file.name}` based on maven, +`~/.dhp/application.properties`, `job.properties` and `job-override.properties` +7. creating `lib` directory (or multiple directories for sub-workflows for each nested directory) and copying jar packages +created at step (1) to each one of them +8. bundling whole `${oozie.package.file.name}` directory into single tar.gz package + +Uploading oozie package and running workflow on cluster +======================================================= + +In order to simplify deployment and execution process two dedicated profiles were introduced: + +- `deploy` +- `run` + +to be used along with `oozie-package` profile e.g. by providing `-Poozie-package,deploy,run` maven parameters. + +The `deploy` profile supplements packaging process with: +1) uploading oozie-package via scp to `/home/${user.name}/oozie-packages` directory on `${dhp.hadoop.frontend.host.name}` machine +2) extracting uploaded package +3) uploading oozie content to hadoop cluster HDFS location defined in `oozie.wf.application.path` property (generated dynamically by maven build process, based on `${dhp.hadoop.frontend.user.name}` and `workflow.source.dir` properties) + +The `run` profile introduces: +1) executing oozie application uploaded to HDFS cluster using `deploy` command. Triggers `run_workflow.sh` script providing runtime properties defined in `job.properties` file. + +Notice: ssh access to frontend machine has to be configured on system level and it is preferable to set key-based authentication in order to simplify remote operations. \ No newline at end of file diff --git a/dhp-common/pom.xml b/dhp-common/pom.xml index 6df11f4ea..6198bd81e 100644 --- a/dhp-common/pom.xml +++ b/dhp-common/pom.xml @@ -52,6 +52,8 @@ + true + ${scala.binary.version} ${scala.version} @@ -60,6 +62,11 @@ + + eu.dnetlib.dhp + dhp-pace-core + ${project.version} + org.apache.hadoop @@ -76,11 +83,11 @@ org.apache.spark - spark-core_2.11 + spark-core_${scala.binary.version} org.apache.spark - spark-sql_2.11 + spark-sql_${scala.binary.version} @@ -142,11 +149,6 @@ okhttp - - eu.dnetlib - dnet-pace-core - - org.apache.httpcomponents httpclient @@ -159,7 +161,7 @@ eu.dnetlib.dhp - dhp-schemas + ${dhp-schemas.artifact} diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/Constants.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/Constants.java index 4f2c6341e..0477d6399 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/common/Constants.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/Constants.java @@ -51,6 +51,7 @@ public class Constants { public static final String RETRY_DELAY = "retryDelay"; public static final String CONNECT_TIMEOUT = "connectTimeOut"; public static final String READ_TIMEOUT = "readTimeOut"; + public static final String REQUEST_METHOD = "requestMethod"; public static final String FROM_DATE_OVERRIDE = "fromDateOverride"; public static final String UNTIL_DATE_OVERRIDE = "untilDateOverride"; diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/context/CategorySummary.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/context/CategorySummary.java new file mode 100644 index 000000000..fff28dbdf --- /dev/null +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/context/CategorySummary.java @@ -0,0 +1,39 @@ + +package eu.dnetlib.dhp.common.api.context; + +public class CategorySummary { + + private String id; + + private String label; + + private boolean hasConcept; + + public String getId() { + return id; + } + + public String getLabel() { + return label; + } + + public boolean isHasConcept() { + return hasConcept; + } + + public CategorySummary setId(final String id) { + this.id = id; + return this; + } + + public CategorySummary setLabel(final String label) { + this.label = label; + return this; + } + + public CategorySummary setHasConcept(final boolean hasConcept) { + this.hasConcept = hasConcept; + return this; + } + +} diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/context/CategorySummaryList.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/context/CategorySummaryList.java new file mode 100644 index 000000000..7213a945a --- /dev/null +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/context/CategorySummaryList.java @@ -0,0 +1,7 @@ + +package eu.dnetlib.dhp.common.api.context; + +import java.util.ArrayList; + +public class CategorySummaryList extends ArrayList { +} diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/context/ConceptSummary.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/context/ConceptSummary.java new file mode 100644 index 000000000..a576f9a1e --- /dev/null +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/context/ConceptSummary.java @@ -0,0 +1,52 @@ + +package eu.dnetlib.dhp.common.api.context; + +import java.util.List; + +public class ConceptSummary { + + private String id; + + private String label; + + public boolean hasSubConcept; + + private List concepts; + + public String getId() { + return id; + } + + public String getLabel() { + return label; + } + + public List getConcepts() { + return concepts; + } + + public ConceptSummary setId(final String id) { + this.id = id; + return this; + } + + public ConceptSummary setLabel(final String label) { + this.label = label; + return this; + } + + public boolean isHasSubConcept() { + return hasSubConcept; + } + + public ConceptSummary setHasSubConcept(final boolean hasSubConcept) { + this.hasSubConcept = hasSubConcept; + return this; + } + + public ConceptSummary setConcept(final List concepts) { + this.concepts = concepts; + return this; + } + +} diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/context/ConceptSummaryList.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/context/ConceptSummaryList.java new file mode 100644 index 000000000..45ccd2810 --- /dev/null +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/context/ConceptSummaryList.java @@ -0,0 +1,7 @@ + +package eu.dnetlib.dhp.common.api.context; + +import java.util.ArrayList; + +public class ConceptSummaryList extends ArrayList { +} diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/context/ContextSummary.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/context/ContextSummary.java new file mode 100644 index 000000000..46a0d0d5a --- /dev/null +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/context/ContextSummary.java @@ -0,0 +1,50 @@ + +package eu.dnetlib.dhp.common.api.context; + +public class ContextSummary { + + private String id; + + private String label; + + private String type; + + private String status; + + public String getId() { + return id; + } + + public String getLabel() { + return label; + } + + public String getType() { + return type; + } + + public String getStatus() { + return status; + } + + public ContextSummary setId(final String id) { + this.id = id; + return this; + } + + public ContextSummary setLabel(final String label) { + this.label = label; + return this; + } + + public ContextSummary setType(final String type) { + this.type = type; + return this; + } + + public ContextSummary setStatus(final String status) { + this.status = status; + return this; + } + +} diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/context/ContextSummaryList.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/context/ContextSummaryList.java new file mode 100644 index 000000000..618600007 --- /dev/null +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/context/ContextSummaryList.java @@ -0,0 +1,7 @@ + +package eu.dnetlib.dhp.common.api.context; + +import java.util.ArrayList; + +public class ContextSummaryList extends ArrayList { +} diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/collection/HttpClientParams.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/collection/HttpClientParams.java index 6fcec00dd..d26d9c0e9 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/common/collection/HttpClientParams.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/collection/HttpClientParams.java @@ -1,6 +1,9 @@ package eu.dnetlib.dhp.common.collection; +import java.util.HashMap; +import java.util.Map; + /** * Bundles the http connection parameters driving the client behaviour. */ @@ -13,6 +16,8 @@ public class HttpClientParams { public static int _connectTimeOut = 10; // seconds public static int _readTimeOut = 30; // seconds + public static String _requestMethod = "GET"; + /** * Maximum number of allowed retires before failing */ @@ -38,17 +43,30 @@ public class HttpClientParams { */ private int readTimeOut; + /** + * Custom http headers + */ + private Map headers; + + /** + * Request method (i.e., GET, POST etc) + */ + private String requestMethod; + public HttpClientParams() { - this(_maxNumberOfRetry, _requestDelay, _retryDelay, _connectTimeOut, _readTimeOut); + this(_maxNumberOfRetry, _requestDelay, _retryDelay, _connectTimeOut, _readTimeOut, new HashMap<>(), + _requestMethod); } public HttpClientParams(int maxNumberOfRetry, int requestDelay, int retryDelay, int connectTimeOut, - int readTimeOut) { + int readTimeOut, Map headers, String requestMethod) { this.maxNumberOfRetry = maxNumberOfRetry; this.requestDelay = requestDelay; this.retryDelay = retryDelay; this.connectTimeOut = connectTimeOut; this.readTimeOut = readTimeOut; + this.headers = headers; + this.requestMethod = requestMethod; } public int getMaxNumberOfRetry() { @@ -91,4 +109,19 @@ public class HttpClientParams { this.readTimeOut = readTimeOut; } + public Map getHeaders() { + return headers; + } + + public void setHeaders(Map headers) { + this.headers = headers; + } + + public String getRequestMethod() { + return requestMethod; + } + + public void setRequestMethod(String requestMethod) { + this.requestMethod = requestMethod; + } } diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/collection/HttpConnector2.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/collection/HttpConnector2.java index dd46ab1f4..342d73cdc 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/common/collection/HttpConnector2.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/collection/HttpConnector2.java @@ -8,10 +8,13 @@ import java.io.InputStream; import java.net.*; import java.util.List; import java.util.Map; +import java.util.concurrent.TimeUnit; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.math.NumberUtils; +import org.apache.commons.lang3.time.DateUtils; import org.apache.http.HttpHeaders; +import org.joda.time.Instant; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -94,24 +97,32 @@ public class HttpConnector2 { throw new CollectorException(msg); } - log.info("Request attempt {} [{}]", retryNumber, requestUrl); - InputStream input = null; + long start = System.currentTimeMillis(); try { if (getClientParams().getRequestDelay() > 0) { backoffAndSleep(getClientParams().getRequestDelay()); } + + log.info("Request attempt {} [{}]", retryNumber, requestUrl); + final HttpURLConnection urlConn = (HttpURLConnection) new URL(requestUrl).openConnection(); urlConn.setInstanceFollowRedirects(false); urlConn.setReadTimeout(getClientParams().getReadTimeOut() * 1000); urlConn.setConnectTimeout(getClientParams().getConnectTimeOut() * 1000); urlConn.addRequestProperty(HttpHeaders.USER_AGENT, userAgent); + urlConn.setRequestMethod(getClientParams().getRequestMethod()); - if (log.isDebugEnabled()) { - logHeaderFields(urlConn); + // if provided, add custom headers + if (!getClientParams().getHeaders().isEmpty()) { + for (Map.Entry headerEntry : getClientParams().getHeaders().entrySet()) { + urlConn.addRequestProperty(headerEntry.getKey(), headerEntry.getValue()); + } } + logHeaderFields(urlConn); + int retryAfter = obtainRetryAfter(urlConn.getHeaderFields()); String rateLimit = urlConn.getHeaderField(Constants.HTTPHEADER_IETF_DRAFT_RATELIMIT_LIMIT); String rateRemaining = urlConn.getHeaderField(Constants.HTTPHEADER_IETF_DRAFT_RATELIMIT_REMAINING); @@ -125,9 +136,7 @@ public class HttpConnector2 { } if (is2xx(urlConn.getResponseCode())) { - input = urlConn.getInputStream(); - responseType = urlConn.getContentType(); - return input; + return getInputStream(urlConn, start); } if (is3xx(urlConn.getResponseCode())) { // REDIRECTS @@ -137,6 +146,7 @@ public class HttpConnector2 { .put( REPORT_PREFIX + urlConn.getResponseCode(), String.format("Moved to: %s", newUrl)); + logRequestTime(start); urlConn.disconnect(); if (retryAfter > 0) { backoffAndSleep(retryAfter); @@ -152,26 +162,50 @@ public class HttpConnector2 { if (retryAfter > 0) { log .warn( - "{} - waiting and repeating request after suggested retry-after {} sec.", - requestUrl, retryAfter); + "waiting and repeating request after suggested retry-after {} sec for URL {}", + retryAfter, requestUrl); backoffAndSleep(retryAfter * 1000); } else { log .warn( - "{} - waiting and repeating request after default delay of {} sec.", - requestUrl, getClientParams().getRetryDelay()); - backoffAndSleep(retryNumber * getClientParams().getRetryDelay() * 1000); + "waiting and repeating request after default delay of {} sec for URL {}", + getClientParams().getRetryDelay(), requestUrl); + backoffAndSleep(retryNumber * getClientParams().getRetryDelay()); } report.put(REPORT_PREFIX + urlConn.getResponseCode(), requestUrl); + + logRequestTime(start); + urlConn.disconnect(); + return attemptDownload(requestUrl, retryNumber + 1, report); + case 422: // UNPROCESSABLE ENTITY + report.put(REPORT_PREFIX + urlConn.getResponseCode(), requestUrl); + log.warn("waiting and repeating request after 10 sec for URL {}", requestUrl); + backoffAndSleep(10000); + urlConn.disconnect(); + logRequestTime(start); + try { + return getInputStream(urlConn, start); + } catch (IOException e) { + log + .error( + "server returned 422 and got IOException accessing the response body from URL {}", + requestUrl); + log.error("IOException:", e); + return attemptDownload(requestUrl, retryNumber + 1, report); + } default: + log.error("gor error {} from URL: {}", urlConn.getResponseCode(), urlConn.getURL()); + log.error("response message: {}", urlConn.getResponseMessage()); report .put( REPORT_PREFIX + urlConn.getResponseCode(), String .format( "%s Error: %s", requestUrl, urlConn.getResponseMessage())); + logRequestTime(start); + urlConn.disconnect(); throw new CollectorException(urlConn.getResponseCode() + " error " + report); } } @@ -192,13 +226,27 @@ public class HttpConnector2 { } } + private InputStream getInputStream(HttpURLConnection urlConn, long start) throws IOException { + InputStream input = urlConn.getInputStream(); + responseType = urlConn.getContentType(); + logRequestTime(start); + return input; + } + + private static void logRequestTime(long start) { + log + .info( + "request time elapsed: {}sec", + TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis() - start)); + } + private void logHeaderFields(final HttpURLConnection urlConn) throws IOException { - log.debug("StatusCode: {}", urlConn.getResponseMessage()); + log.info("Response: {} - {}", urlConn.getResponseCode(), urlConn.getResponseMessage()); for (Map.Entry> e : urlConn.getHeaderFields().entrySet()) { if (e.getKey() != null) { for (String v : e.getValue()) { - log.debug(" key: {} - value: {}", e.getKey(), v); + log.info(" key: {} - value: {}", e.getKey(), v); } } } @@ -218,7 +266,7 @@ public class HttpConnector2 { for (String key : headerMap.keySet()) { if ((key != null) && key.equalsIgnoreCase(HttpHeaders.RETRY_AFTER) && (!headerMap.get(key).isEmpty()) && NumberUtils.isCreatable(headerMap.get(key).get(0))) { - return Integer.parseInt(headerMap.get(key).get(0)) + 10; + return Integer.parseInt(headerMap.get(key).get(0)); } } return -1; diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/vocabulary/Vocabulary.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/vocabulary/Vocabulary.java index 2ab23bda6..94e7f5221 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/common/vocabulary/Vocabulary.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/vocabulary/Vocabulary.java @@ -63,7 +63,10 @@ public class Vocabulary implements Serializable { } public VocabularyTerm getTermBySynonym(final String syn) { - return getTerm(synonyms.get(syn.toLowerCase())); + return Optional + .ofNullable(syn) + .map(s -> getTerm(synonyms.get(s.toLowerCase()))) + .orElse(null); } public Qualifier getTermAsQualifier(final String termId) { diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/vocabulary/VocabularyGroup.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/vocabulary/VocabularyGroup.java index fc7175270..64b6f91af 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/common/vocabulary/VocabularyGroup.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/vocabulary/VocabularyGroup.java @@ -135,6 +135,24 @@ public class VocabularyGroup implements Serializable { return vocs.get(vocId.toLowerCase()).getSynonymAsQualifier(syn); } + public Qualifier lookupTermBySynonym(final String vocId, final String syn) { + return find(vocId) + .map( + vocabulary -> Optional + .ofNullable(vocabulary.getTerm(syn)) + .map( + term -> OafMapperUtils + .qualifier(term.getId(), term.getName(), vocabulary.getId(), vocabulary.getName())) + .orElse( + Optional + .ofNullable(vocabulary.getTermBySynonym(syn)) + .map( + term -> OafMapperUtils + .qualifier(term.getId(), term.getName(), vocabulary.getId(), vocabulary.getName())) + .orElse(null))) + .orElse(null); + } + /** * getSynonymAsQualifierCaseSensitive * diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/oa/merge/AuthorMerger.java b/dhp-common/src/main/java/eu/dnetlib/dhp/oa/merge/AuthorMerger.java index aea046203..0461c9353 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/oa/merge/AuthorMerger.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/oa/merge/AuthorMerger.java @@ -119,6 +119,131 @@ public class AuthorMerger { }); } + public static String normalizeFullName(final String fullname) { + return nfd(fullname) + .toLowerCase() + // do not compact the regexes in a single expression, would cause StackOverflowError + // in case + // of large input strings + .replaceAll("(\\W)+", " ") + .replaceAll("(\\p{InCombiningDiacriticalMarks})+", " ") + .replaceAll("(\\p{Punct})+", " ") + .replaceAll("(\\d)+", " ") + .replaceAll("(\\n)+", " ") + + .trim(); + } + + private static String authorFieldToBeCompared(Author author) { + if (StringUtils.isNotBlank(author.getSurname())) { + return author.getSurname(); + + } + if (StringUtils.isNotBlank(author.getFullname())) { + return author.getFullname(); + } + return null; + } + + /** + * This method tries to figure out when two author are the same in the contest + * of ORCID enrichment + * + * @param left Author in the OAF entity + * @param right Author ORCID + * @return based on a heuristic on the names of the authors if they are the same. + */ + public static boolean checkORCIDSimilarity(final Author left, final Author right) { + final Person pl = parse(left); + final Person pr = parse(right); + + // If one of them didn't have a surname we verify if they have the fullName not empty + // and verify if the normalized version is equal + if (!(pl.getSurname() != null && pl.getSurname().stream().anyMatch(StringUtils::isNotBlank) && + pr.getSurname() != null && pr.getSurname().stream().anyMatch(StringUtils::isNotBlank))) { + + if (pl.getFullname() != null && !pl.getFullname().isEmpty() && pr.getFullname() != null + && !pr.getFullname().isEmpty()) { + return pl + .getFullname() + .stream() + .anyMatch( + fl -> pr.getFullname().stream().anyMatch(fr -> normalize(fl).equalsIgnoreCase(normalize(fr)))); + } else { + return false; + } + } + // The Authors have one surname in common + if (pl.getSurname().stream().anyMatch(sl -> pr.getSurname().stream().anyMatch(sr -> sr.equalsIgnoreCase(sl)))) { + + // If one of them has only a surname and is the same we can say that they are the same author + if ((pl.getName() == null || pl.getName().stream().allMatch(StringUtils::isBlank)) || + (pr.getName() == null || pr.getName().stream().allMatch(StringUtils::isBlank))) + return true; + // The authors have the same initials of Name in common + if (pl + .getName() + .stream() + .anyMatch( + nl -> pr + .getName() + .stream() + .anyMatch(nr -> nr.equalsIgnoreCase(nl)))) + return true; + } + + // Sometimes we noticed that publication have author wrote in inverse order Surname, Name + // We verify if we have an exact match between name and surname + if (pl.getSurname().stream().anyMatch(sl -> pr.getName().stream().anyMatch(nr -> nr.equalsIgnoreCase(sl))) && + pl.getName().stream().anyMatch(nl -> pr.getSurname().stream().anyMatch(sr -> sr.equalsIgnoreCase(nl)))) + return true; + else + return false; + } + // + + /** + * Method to enrich ORCID information in one list of authors based on another list + * + * @param baseAuthor the Author List in the OAF Entity + * @param orcidAuthor The list of ORCID Author intersected + * @return The Author List of the OAF Entity enriched with the orcid Author + */ + public static List enrichOrcid(List baseAuthor, List orcidAuthor) { + + if (baseAuthor == null || baseAuthor.isEmpty()) + return orcidAuthor; + + if (orcidAuthor == null || orcidAuthor.isEmpty()) + return baseAuthor; + + if (baseAuthor.size() == 1 && orcidAuthor.size() > 10) + return baseAuthor; + + final List oAuthor = new ArrayList<>(); + oAuthor.addAll(orcidAuthor); + + baseAuthor.forEach(ba -> { + Optional aMatch = oAuthor.stream().filter(oa -> checkORCIDSimilarity(ba, oa)).findFirst(); + if (aMatch.isPresent()) { + final Author sameAuthor = aMatch.get(); + addPid(ba, sameAuthor.getPid()); + oAuthor.remove(sameAuthor); + } + }); + return baseAuthor; + } + + private static void addPid(final Author a, final List pids) { + + if (a.getPid() == null) { + a.setPid(new ArrayList<>()); + } + + a.getPid().addAll(pids); + + } + public static String pidToComparableString(StructuredProperty pid) { final String classid = pid.getQualifier().getClassid() != null ? pid.getQualifier().getClassid().toLowerCase() : ""; @@ -171,7 +296,7 @@ public class AuthorMerger { } } - private static String normalize(final String s) { + public static String normalize(final String s) { String[] normalized = nfd(s) .toLowerCase() // do not compact the regexes in a single expression, would cause StackOverflowError diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/oa/merge/DispatchEntitiesSparkJob.java b/dhp-common/src/main/java/eu/dnetlib/dhp/oa/merge/DispatchEntitiesSparkJob.java deleted file mode 100644 index 3f65d754f..000000000 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/oa/merge/DispatchEntitiesSparkJob.java +++ /dev/null @@ -1,97 +0,0 @@ - -package eu.dnetlib.dhp.oa.merge; - -import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; - -import java.util.Objects; -import java.util.Optional; - -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.spark.SparkConf; -import org.apache.spark.api.java.function.FilterFunction; -import org.apache.spark.api.java.function.MapFunction; -import org.apache.spark.sql.Encoders; -import org.apache.spark.sql.SaveMode; -import org.apache.spark.sql.SparkSession; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.databind.ObjectMapper; - -import eu.dnetlib.dhp.application.ArgumentApplicationParser; -import eu.dnetlib.dhp.common.HdfsSupport; -import eu.dnetlib.dhp.schema.oaf.Oaf; -import eu.dnetlib.dhp.schema.oaf.OafEntity; - -public class DispatchEntitiesSparkJob { - - private static final Logger log = LoggerFactory.getLogger(DispatchEntitiesSparkJob.class); - - private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); - - public static void main(String[] args) throws Exception { - - String jsonConfiguration = IOUtils - .toString( - Objects - .requireNonNull( - DispatchEntitiesSparkJob.class - .getResourceAsStream( - "/eu/dnetlib/dhp/oa/merge/dispatch_entities_parameters.json"))); - final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); - parser.parseArgument(args); - - Boolean isSparkSessionManaged = Optional - .ofNullable(parser.get("isSparkSessionManaged")) - .map(Boolean::valueOf) - .orElse(Boolean.TRUE); - log.info("isSparkSessionManaged: {}", isSparkSessionManaged); - - String inputPath = parser.get("inputPath"); - log.info("inputPath: {}", inputPath); - - String outputPath = parser.get("outputPath"); - log.info("outputPath: {}", outputPath); - - String graphTableClassName = parser.get("graphTableClassName"); - log.info("graphTableClassName: {}", graphTableClassName); - - @SuppressWarnings("unchecked") - Class entityClazz = (Class) Class.forName(graphTableClassName); - - SparkConf conf = new SparkConf(); - runWithSparkSession( - conf, - isSparkSessionManaged, - spark -> { - HdfsSupport.remove(outputPath, spark.sparkContext().hadoopConfiguration()); - dispatchEntities(spark, inputPath, entityClazz, outputPath); - }); - } - - private static void dispatchEntities( - SparkSession spark, - String inputPath, - Class clazz, - String outputPath) { - - spark - .read() - .textFile(inputPath) - .filter((FilterFunction) s -> isEntityType(s, clazz)) - .map((MapFunction) s -> StringUtils.substringAfter(s, "|"), Encoders.STRING()) - .map( - (MapFunction) value -> OBJECT_MAPPER.readValue(value, clazz), - Encoders.bean(clazz)) - .write() - .mode(SaveMode.Overwrite) - .option("compression", "gzip") - .json(outputPath); - } - - private static boolean isEntityType(final String s, final Class clazz) { - return StringUtils.substringBefore(s, "|").equals(clazz.getName()); - } - -} diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/oa/merge/GroupEntitiesSparkJob.java b/dhp-common/src/main/java/eu/dnetlib/dhp/oa/merge/GroupEntitiesSparkJob.java index e652bd5b6..0225a5063 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/oa/merge/GroupEntitiesSparkJob.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/oa/merge/GroupEntitiesSparkJob.java @@ -2,50 +2,49 @@ package eu.dnetlib.dhp.oa.merge; import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; -import static eu.dnetlib.dhp.utils.DHPUtils.toSeq; +import static org.apache.spark.sql.functions.col; +import static org.apache.spark.sql.functions.when; -import java.io.IOException; -import java.util.List; -import java.util.Objects; +import java.util.Map; import java.util.Optional; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ForkJoinPool; import java.util.stream.Collectors; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringUtils; import org.apache.spark.SparkConf; -import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.api.java.function.FilterFunction; import org.apache.spark.api.java.function.MapFunction; +import org.apache.spark.api.java.function.ReduceFunction; import org.apache.spark.sql.*; -import org.apache.spark.sql.expressions.Aggregator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.jayway.jsonpath.Configuration; -import com.jayway.jsonpath.DocumentContext; -import com.jayway.jsonpath.JsonPath; -import com.jayway.jsonpath.Option; - import eu.dnetlib.dhp.application.ArgumentApplicationParser; import eu.dnetlib.dhp.common.HdfsSupport; +import eu.dnetlib.dhp.common.vocabulary.VocabularyGroup; +import eu.dnetlib.dhp.schema.common.EntityType; import eu.dnetlib.dhp.schema.common.ModelSupport; -import eu.dnetlib.dhp.schema.oaf.*; +import eu.dnetlib.dhp.schema.oaf.OafEntity; +import eu.dnetlib.dhp.schema.oaf.utils.GraphCleaningFunctions; import eu.dnetlib.dhp.schema.oaf.utils.OafMapperUtils; +import eu.dnetlib.dhp.utils.ISLookupClientFactory; +import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException; +import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; import scala.Tuple2; /** * Groups the graph content by entity identifier to ensure ID uniqueness */ public class GroupEntitiesSparkJob { - private static final Logger log = LoggerFactory.getLogger(GroupEntitiesSparkJob.class); - private static final String ID_JPATH = "$.id"; + private static final Encoder OAFENTITY_KRYO_ENC = Encoders.kryo(OafEntity.class); - private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper() - .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + private ArgumentApplicationParser parser; + + public GroupEntitiesSparkJob(ArgumentApplicationParser parser) { + this.parser = parser; + } public static void main(String[] args) throws Exception { @@ -63,141 +62,133 @@ public class GroupEntitiesSparkJob { .orElse(Boolean.TRUE); log.info("isSparkSessionManaged: {}", isSparkSessionManaged); + final String isLookupUrl = parser.get("isLookupUrl"); + log.info("isLookupUrl: {}", isLookupUrl); + + final ISLookUpService isLookupService = ISLookupClientFactory.getLookUpService(isLookupUrl); + + new GroupEntitiesSparkJob(parser).run(isSparkSessionManaged, isLookupService); + } + + public void run(Boolean isSparkSessionManaged, ISLookUpService isLookUpService) + throws ISLookUpException { + String graphInputPath = parser.get("graphInputPath"); log.info("graphInputPath: {}", graphInputPath); + String checkpointPath = parser.get("checkpointPath"); + log.info("checkpointPath: {}", checkpointPath); + String outputPath = parser.get("outputPath"); log.info("outputPath: {}", outputPath); + boolean filterInvisible = Boolean.parseBoolean(parser.get("filterInvisible")); + log.info("filterInvisible: {}", filterInvisible); + SparkConf conf = new SparkConf(); conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer"); conf.registerKryoClasses(ModelSupport.getOafModelClasses()); + final VocabularyGroup vocs = VocabularyGroup.loadVocsFromIS(isLookUpService); + runWithSparkSession( conf, isSparkSessionManaged, spark -> { - HdfsSupport.remove(outputPath, spark.sparkContext().hadoopConfiguration()); - groupEntities(spark, graphInputPath, outputPath); + HdfsSupport.remove(checkpointPath, spark.sparkContext().hadoopConfiguration()); + groupEntities(spark, graphInputPath, checkpointPath, outputPath, filterInvisible, vocs); }); } private static void groupEntities( SparkSession spark, String inputPath, - String outputPath) { + String checkpointPath, + String outputPath, + boolean filterInvisible, VocabularyGroup vocs) { - final TypedColumn aggregator = new GroupingAggregator().toColumn(); - final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); - spark - .read() - .textFile(toSeq(listEntityPaths(inputPath, sc))) - .map((MapFunction) GroupEntitiesSparkJob::parseOaf, Encoders.kryo(OafEntity.class)) - .filter((FilterFunction) e -> StringUtils.isNotBlank(ModelSupport.idFn().apply(e))) - .groupByKey((MapFunction) oaf -> ModelSupport.idFn().apply(oaf), Encoders.STRING()) - .agg(aggregator) + Dataset allEntities = spark.emptyDataset(OAFENTITY_KRYO_ENC); + + for (Map.Entry e : ModelSupport.entityTypes.entrySet()) { + String entity = e.getKey().name(); + Class entityClass = e.getValue(); + String entityInputPath = inputPath + "/" + entity; + + if (!HdfsSupport.exists(entityInputPath, spark.sparkContext().hadoopConfiguration())) { + continue; + } + + allEntities = allEntities + .union( + ((Dataset) spark + .read() + .schema(Encoders.bean(entityClass).schema()) + .json(entityInputPath) + .filter("length(id) > 0") + .as(Encoders.bean(entityClass))) + .map((MapFunction) r -> r, OAFENTITY_KRYO_ENC)); + } + + Dataset groupedEntities = allEntities .map( - (MapFunction, String>) t -> t._2().getClass().getName() + - "|" + OBJECT_MAPPER.writeValueAsString(t._2()), - Encoders.STRING()) + (MapFunction) entity -> GraphCleaningFunctions + .applyCoarVocabularies(entity, vocs), + OAFENTITY_KRYO_ENC) + .groupByKey((MapFunction) OafEntity::getId, Encoders.STRING()) + .reduceGroups((ReduceFunction) OafMapperUtils::mergeEntities) + .map( + (MapFunction, Tuple2>) t -> new Tuple2<>( + t._2().getClass().getName(), t._2()), + Encoders.tuple(Encoders.STRING(), OAFENTITY_KRYO_ENC)); + + // pivot on "_1" (classname of the entity) + // created columns containing only entities of the same class + for (Map.Entry e : ModelSupport.entityTypes.entrySet()) { + String entity = e.getKey().name(); + Class entityClass = e.getValue(); + + groupedEntities = groupedEntities + .withColumn( + entity, + when(col("_1").equalTo(entityClass.getName()), col("_2"))); + } + + groupedEntities + .drop("_1", "_2") .write() - .option("compression", "gzip") .mode(SaveMode.Overwrite) - .text(outputPath); - } + .option("compression", "gzip") + .save(checkpointPath); - public static class GroupingAggregator extends Aggregator { + ForkJoinPool parPool = new ForkJoinPool(ModelSupport.entityTypes.size()); - @Override - public OafEntity zero() { - return null; - } - - @Override - public OafEntity reduce(OafEntity b, OafEntity a) { - return mergeAndGet(b, a); - } - - private OafEntity mergeAndGet(OafEntity b, OafEntity a) { - if (Objects.nonNull(a) && Objects.nonNull(b)) { - return OafMapperUtils.mergeEntities(b, a); - } - return Objects.isNull(a) ? b : a; - } - - @Override - public OafEntity merge(OafEntity b, OafEntity a) { - return mergeAndGet(b, a); - } - - @Override - public OafEntity finish(OafEntity j) { - return j; - } - - @Override - public Encoder bufferEncoder() { - return Encoders.kryo(OafEntity.class); - } - - @Override - public Encoder outputEncoder() { - return Encoders.kryo(OafEntity.class); - } - - } - - private static OafEntity parseOaf(String s) { - - DocumentContext dc = JsonPath - .parse(s, Configuration.defaultConfiguration().addOptions(Option.SUPPRESS_EXCEPTIONS)); - final String id = dc.read(ID_JPATH); - if (StringUtils.isNotBlank(id)) { - - String prefix = StringUtils.substringBefore(id, "|"); - switch (prefix) { - case "10": - return parse(s, Datasource.class); - case "20": - return parse(s, Organization.class); - case "40": - return parse(s, Project.class); - case "50": - String resultType = dc.read("$.resulttype.classid"); - switch (resultType) { - case "publication": - return parse(s, Publication.class); - case "dataset": - return parse(s, eu.dnetlib.dhp.schema.oaf.Dataset.class); - case "software": - return parse(s, Software.class); - case "other": - return parse(s, OtherResearchProduct.class); - default: - throw new IllegalArgumentException(String.format("invalid resultType: '%s'", resultType)); - } - default: - throw new IllegalArgumentException(String.format("invalid id prefix: '%s'", prefix)); - } - } else { - throw new IllegalArgumentException(String.format("invalid oaf: '%s'", s)); - } - } - - private static OafEntity parse(String s, Class clazz) { - try { - return OBJECT_MAPPER.readValue(s, clazz); - } catch (IOException e) { - throw new IllegalArgumentException(e); - } - } - - private static List listEntityPaths(String inputPath, JavaSparkContext sc) { - return HdfsSupport - .listFiles(inputPath, sc.hadoopConfiguration()) + ModelSupport.entityTypes + .entrySet() .stream() - .filter(f -> !f.toLowerCase().contains("relation")) - .collect(Collectors.toList()); - } + .map(e -> parPool.submit(() -> { + String entity = e.getKey().name(); + Class entityClass = e.getValue(); + spark + .read() + .load(checkpointPath) + .select(col(entity).as("value")) + .filter("value IS NOT NULL") + .as(OAFENTITY_KRYO_ENC) + .map((MapFunction) r -> r, (Encoder) Encoders.bean(entityClass)) + .filter(filterInvisible ? "dataInfo.invisible != TRUE" : "TRUE") + .write() + .mode(SaveMode.Overwrite) + .option("compression", "gzip") + .json(outputPath + "/" + entity); + })) + .collect(Collectors.toList()) + .forEach(t -> { + try { + t.get(); + } catch (InterruptedException | ExecutionException e) { + throw new RuntimeException(e); + } + }); + } } diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/oozie/RunSQLSparkJob.java b/dhp-common/src/main/java/eu/dnetlib/dhp/oozie/RunSQLSparkJob.java new file mode 100644 index 000000000..027bf0735 --- /dev/null +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/oozie/RunSQLSparkJob.java @@ -0,0 +1,77 @@ + +package eu.dnetlib.dhp.oozie; + +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkHiveSession; + +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; + +import org.apache.commons.lang3.time.DurationFormatUtils; +import org.apache.commons.text.StringSubstitutor; +import org.apache.spark.SparkConf; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.io.Resources; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; + +public class RunSQLSparkJob { + private static final Logger log = LoggerFactory.getLogger(RunSQLSparkJob.class); + + private final ArgumentApplicationParser parser; + + public RunSQLSparkJob(ArgumentApplicationParser parser) { + this.parser = parser; + } + + public static void main(String[] args) throws Exception { + + Map params = new HashMap<>(); + for (int i = 0; i < args.length - 1; i++) { + if (args[i].startsWith("--")) { + params.put(args[i].substring(2), args[++i]); + } + } + + /* + * String jsonConfiguration = IOUtils .toString( Objects .requireNonNull( RunSQLSparkJob.class + * .getResourceAsStream( "/eu/dnetlib/dhp/oozie/run_sql_parameters.json"))); final ArgumentApplicationParser + * parser = new ArgumentApplicationParser(jsonConfiguration); parser.parseArgument(args); + */ + + Boolean isSparkSessionManaged = Optional + .ofNullable(params.get("isSparkSessionManaged")) + .map(Boolean::valueOf) + .orElse(Boolean.TRUE); + log.info("isSparkSessionManaged: {}", isSparkSessionManaged); + + URL url = com.google.common.io.Resources.getResource(params.get("sql")); + String raw_sql = Resources.toString(url, StandardCharsets.UTF_8); + + String sql = StringSubstitutor.replace(raw_sql, params); + log.info("sql: {}", sql); + + SparkConf conf = new SparkConf(); + conf.set("hive.metastore.uris", params.get("hiveMetastoreUris")); + + runWithSparkHiveSession( + conf, + isSparkSessionManaged, + spark -> { + for (String statement : sql.split(";\\s*/\\*\\s*EOS\\s*\\*/\\s*")) { + log.info("executing: {}", statement); + long startTime = System.currentTimeMillis(); + spark.sql(statement).show(); + log + .info( + "executed in {}", + DurationFormatUtils.formatDuration(System.currentTimeMillis() - startTime, "HH:mm:ss.S")); + } + }); + } + +} diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/FundRefCleaningRule.java b/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/FundRefCleaningRule.java index 7f6303825..a267b8b88 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/FundRefCleaningRule.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/FundRefCleaningRule.java @@ -6,14 +6,16 @@ import java.util.regex.Pattern; public class FundRefCleaningRule { - public static String clean(final String fundrefId) { + public static final Pattern PATTERN = Pattern.compile("\\d+"); - String s = fundrefId + public static String clean(final String fundRefId) { + + String s = fundRefId .toLowerCase() .replaceAll("\\s", ""); - Matcher m = Pattern.compile("\\d+").matcher(s); - if (m.matches()) { + Matcher m = PATTERN.matcher(s); + if (m.find()) { return m.group(); } else { return ""; diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/GraphCleaningFunctions.java b/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/GraphCleaningFunctions.java index a47b63edb..0124e96fc 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/GraphCleaningFunctions.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/GraphCleaningFunctions.java @@ -1,8 +1,12 @@ package eu.dnetlib.dhp.schema.oaf.utils; +import static eu.dnetlib.dhp.schema.common.ModelConstants.*; +import static eu.dnetlib.dhp.schema.common.ModelConstants.OPENAIRE_META_RESOURCE_TYPE; import static eu.dnetlib.dhp.schema.oaf.utils.OafMapperUtils.getProvenance; +import java.net.MalformedURLException; +import java.net.URL; import java.time.LocalDate; import java.time.ZoneId; import java.time.format.DateTimeFormatter; @@ -13,16 +17,13 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import org.apache.commons.lang3.StringUtils; -import org.apache.spark.api.java.function.MapFunction; -import org.apache.spark.sql.Encoders; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; import com.github.sisyphsu.dateparser.DateParserUtils; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import eu.dnetlib.dhp.common.vocabulary.VocabularyGroup; +import eu.dnetlib.dhp.common.vocabulary.VocabularyTerm; import eu.dnetlib.dhp.schema.common.ModelConstants; import eu.dnetlib.dhp.schema.common.ModelSupport; import eu.dnetlib.dhp.schema.oaf.*; @@ -30,6 +31,10 @@ import me.xuender.unidecode.Unidecode; public class GraphCleaningFunctions extends CleaningFunctions { + public static final String DNET_PUBLISHERS = "dnet:publishers"; + + public static final String DNET_LICENSES = "dnet:licenses"; + public static final String ORCID_CLEANING_REGEX = ".*([0-9]{4}).*[-–—−=].*([0-9]{4}).*[-–—−=].*([0-9]{4}).*[-–—−=].*([0-9x]{4})"; public static final int ORCID_LEN = 19; public static final String CLEANING_REGEX = "(?:\\n|\\r|\\t)"; @@ -39,6 +44,68 @@ public class GraphCleaningFunctions extends CleaningFunctions { public static final String TITLE_FILTER_REGEX = String.format("(%s)|\\W|\\d", TITLE_TEST); public static final int TITLE_FILTER_RESIDUAL_LENGTH = 5; + private static final String NAME_CLEANING_REGEX = "[\\r\\n\\t\\s]+"; + + private static final Set INVALID_AUTHOR_NAMES = new HashSet<>(); + + private static final Set INVALID_URLS = new HashSet<>(); + + private static final Set INVALID_URL_HOSTS = new HashSet<>(); + + private static final HashSet PEER_REVIEWED_TYPES = new HashSet<>(); + + static { + PEER_REVIEWED_TYPES.add("Article"); + PEER_REVIEWED_TYPES.add("Part of book or chapter of book"); + PEER_REVIEWED_TYPES.add("Book"); + PEER_REVIEWED_TYPES.add("Doctoral thesis"); + PEER_REVIEWED_TYPES.add("Master thesis"); + PEER_REVIEWED_TYPES.add("Data Paper"); + PEER_REVIEWED_TYPES.add("Thesis"); + PEER_REVIEWED_TYPES.add("Bachelor thesis"); + PEER_REVIEWED_TYPES.add("Conference object"); + + INVALID_AUTHOR_NAMES.add("(:null)"); + INVALID_AUTHOR_NAMES.add("(:unap)"); + INVALID_AUTHOR_NAMES.add("(:tba)"); + INVALID_AUTHOR_NAMES.add("(:unas)"); + INVALID_AUTHOR_NAMES.add("(:unav)"); + INVALID_AUTHOR_NAMES.add("(:unkn)"); + INVALID_AUTHOR_NAMES.add("(:unkn) unknown"); + INVALID_AUTHOR_NAMES.add(":none"); + INVALID_AUTHOR_NAMES.add(":null"); + INVALID_AUTHOR_NAMES.add(":unas"); + INVALID_AUTHOR_NAMES.add(":unav"); + INVALID_AUTHOR_NAMES.add(":unkn"); + INVALID_AUTHOR_NAMES.add("[autor desconocido]"); + INVALID_AUTHOR_NAMES.add("[s. n.]"); + INVALID_AUTHOR_NAMES.add("[s.n]"); + INVALID_AUTHOR_NAMES.add("[unknown]"); + INVALID_AUTHOR_NAMES.add("anonymous"); + INVALID_AUTHOR_NAMES.add("n.n."); + INVALID_AUTHOR_NAMES.add("nn"); + INVALID_AUTHOR_NAMES.add("no name supplied"); + INVALID_AUTHOR_NAMES.add("none"); + INVALID_AUTHOR_NAMES.add("none available"); + INVALID_AUTHOR_NAMES.add("not available not available"); + INVALID_AUTHOR_NAMES.add("null &na;"); + INVALID_AUTHOR_NAMES.add("null anonymous"); + INVALID_AUTHOR_NAMES.add("unbekannt"); + INVALID_AUTHOR_NAMES.add("unknown"); + + INVALID_URL_HOSTS.add("creativecommons.org"); + INVALID_URL_HOSTS.add("www.academia.edu"); + INVALID_URL_HOSTS.add("academia.edu"); + INVALID_URL_HOSTS.add("researchgate.net"); + INVALID_URL_HOSTS.add("www.researchgate.net"); + + INVALID_URLS.add("http://repo.scoap3.org/api"); + INVALID_URLS.add("http://ora.ox.ac.uk/objects/uuid:"); + INVALID_URLS.add("http://ntur.lib.ntu.edu.tw/news/agent_contract.pdf"); + INVALID_URLS.add("https://media.springer.com/full/springer-instructions-for-authors-assets/pdf/SN_BPF_EN.pdf"); + INVALID_URLS.add("http://www.tobaccoinduceddiseases.org/dl/61aad426c96519bea4040a374c6a6110/"); + INVALID_URLS.add("https://www.bilboard.nl/verenigingsbladen/bestuurskundige-berichten"); + } public static T cleanContext(T value, String contextId, String verifyParam) { if (ModelSupport.isSubClass(value, Result.class)) { @@ -228,7 +295,7 @@ public class GraphCleaningFunctions extends CleaningFunctions { } public static boolean filter(T value) { - if (Boolean.TRUE + if (!(value instanceof Relation) && (Boolean.TRUE .equals( Optional .ofNullable(value) @@ -239,15 +306,16 @@ public class GraphCleaningFunctions extends CleaningFunctions { d -> Optional .ofNullable(d.getInvisible()) .orElse(true)) - .orElse(true)) - .orElse(true))) { + .orElse(false)) + .orElse(true)))) { return true; } if (value instanceof Datasource) { // nothing to evaluate here } else if (value instanceof Project) { - // nothing to evaluate here + final Project p = (Project) value; + return Objects.nonNull(p.getCode()) && StringUtils.isNotBlank(p.getCode().getValue()); } else if (value instanceof Organization) { // nothing to evaluate here } else if (value instanceof Relation) { @@ -275,6 +343,12 @@ public class GraphCleaningFunctions extends CleaningFunctions { public static T cleanup(T value, VocabularyGroup vocs) { + if (Objects.isNull(value.getDataInfo())) { + final DataInfo d = new DataInfo(); + d.setDeletedbyinference(false); + value.setDataInfo(d); + } + if (value instanceof OafEntity) { OafEntity e = (OafEntity) value; @@ -294,6 +368,17 @@ public class GraphCleaningFunctions extends CleaningFunctions { } else if (value instanceof Result) { Result r = (Result) value; + if (Objects.isNull(r.getContext())) { + r.setContext(new ArrayList<>()); + } + + if (Objects.nonNull(r.getFulltext()) + && (ModelConstants.SOFTWARE_RESULTTYPE_CLASSID.equals(r.getResulttype().getClassid()) || + ModelConstants.DATASET_RESULTTYPE_CLASSID.equals(r.getResulttype().getClassid()))) { + r.setFulltext(null); + + } + if (Objects.nonNull(r.getDateofacceptance())) { Optional date = cleanDateField(r.getDateofacceptance()); if (date.isPresent()) { @@ -318,8 +403,26 @@ public class GraphCleaningFunctions extends CleaningFunctions { .filter(sp -> StringUtils.isNotBlank(sp.getValue())) .collect(Collectors.toList())); } - if (Objects.nonNull(r.getPublisher()) && StringUtils.isBlank(r.getPublisher().getValue())) { - r.setPublisher(null); + if (Objects.nonNull(r.getPublisher())) { + if (StringUtils.isBlank(r.getPublisher().getValue())) { + r.setPublisher(null); + } else { + r + .getPublisher() + .setValue( + r + .getPublisher() + .getValue() + .replaceAll(NAME_CLEANING_REGEX, " ")); + + if (vocs.vocabularyExists(DNET_PUBLISHERS)) { + vocs + .find(DNET_PUBLISHERS) + .map(voc -> voc.getTermBySynonym(r.getPublisher().getValue())) + .map(VocabularyTerm::getName) + .ifPresent(publisher -> r.getPublisher().setValue(publisher)); + } + } } if (Objects.isNull(r.getLanguage()) || StringUtils.isBlank(r.getLanguage().getClassid())) { r @@ -478,6 +581,43 @@ public class GraphCleaningFunctions extends CleaningFunctions { if (Objects.isNull(i.getRefereed()) || StringUtils.isBlank(i.getRefereed().getClassid())) { i.setRefereed(qualifier("0000", "Unknown", ModelConstants.DNET_REVIEW_LEVELS)); } + + if (Objects.nonNull(i.getLicense()) && Objects.nonNull(i.getLicense().getValue())) { + vocs + .find(DNET_LICENSES) + .map(voc -> voc.getTermBySynonym(i.getLicense().getValue())) + .map(VocabularyTerm::getId) + .ifPresent(license -> i.getLicense().setValue(license)); + } + + // from the script from Dimitris + if ("0000".equals(i.getRefereed().getClassid())) { + final boolean isFromCrossref = Optional + .ofNullable(i.getCollectedfrom()) + .map(KeyValue::getKey) + .map(id -> id.equals(ModelConstants.CROSSREF_ID)) + .orElse(false); + final boolean hasDoi = Optional + .ofNullable(i.getPid()) + .map( + pid -> pid + .stream() + .anyMatch( + p -> PidType.doi.toString().equals(p.getQualifier().getClassid()))) + .orElse(false); + final boolean isPeerReviewedType = PEER_REVIEWED_TYPES + .contains(i.getInstancetype().getClassname()); + final boolean noOtherLitType = r + .getInstance() + .stream() + .noneMatch(ii -> "Other literature type".equals(ii.getInstancetype().getClassname())); + if (isFromCrossref && hasDoi && isPeerReviewedType && noOtherLitType) { + i.setRefereed(qualifier("0001", "peerReviewed", ModelConstants.DNET_REVIEW_LEVELS)); + } else { + i.setRefereed(qualifier("0002", "nonPeerReviewed", ModelConstants.DNET_REVIEW_LEVELS)); + } + } + if (Objects.nonNull(i.getDateofacceptance())) { Optional date = cleanDateField(i.getDateofacceptance()); if (date.isPresent()) { @@ -486,6 +626,20 @@ public class GraphCleaningFunctions extends CleaningFunctions { i.setDateofacceptance(null); } } + if (StringUtils.isNotBlank(i.getFulltext()) && + (ModelConstants.SOFTWARE_RESULTTYPE_CLASSID.equals(r.getResulttype().getClassid()) || + ModelConstants.DATASET_RESULTTYPE_CLASSID.equals(r.getResulttype().getClassid()))) { + i.setFulltext(null); + } + if (Objects.nonNull(i.getUrl())) { + i + .setUrl( + i + .getUrl() + .stream() + .filter(GraphCleaningFunctions::urlFilter) + .collect(Collectors.toList())); + } } } if (Objects.isNull(r.getBestaccessright()) @@ -508,8 +662,8 @@ public class GraphCleaningFunctions extends CleaningFunctions { .getAuthor() .stream() .filter(Objects::nonNull) - .filter(a -> StringUtils.isNotBlank(a.getFullname())) - .filter(a -> StringUtils.isNotBlank(a.getFullname().replaceAll("[\\W]", ""))) + .filter(GraphCleaningFunctions::isValidAuthorName) + .map(GraphCleaningFunctions::cleanupAuthor) .collect(Collectors.toList())); boolean nullRank = r @@ -535,6 +689,9 @@ public class GraphCleaningFunctions extends CleaningFunctions { .filter(Objects::nonNull) .filter(p -> Objects.nonNull(p.getQualifier())) .filter(p -> StringUtils.isNotBlank(p.getValue())) + .filter( + p -> StringUtils + .contains(StringUtils.lowerCase(p.getQualifier().getClassid()), ORCID)) .map(p -> { // hack to distinguish orcid from orcid_pending String pidProvenance = getProvenance(p.getDataInfo()); @@ -544,7 +701,8 @@ public class GraphCleaningFunctions extends CleaningFunctions { .toLowerCase() .contains(ModelConstants.ORCID)) { if (pidProvenance - .equals(ModelConstants.SYSIMPORT_CROSSWALK_ENTITYREGISTRY)) { + .equals(ModelConstants.SYSIMPORT_CROSSWALK_ENTITYREGISTRY) || + pidProvenance.equals("ORCID_ENRICHMENT")) { p.getQualifier().setClassid(ModelConstants.ORCID); } else { p.getQualifier().setClassid(ModelConstants.ORCID_PENDING); @@ -604,6 +762,35 @@ public class GraphCleaningFunctions extends CleaningFunctions { return value; } + private static Author cleanupAuthor(Author author) { + if (StringUtils.isNotBlank(author.getFullname())) { + author + .setFullname( + author + .getFullname() + .replaceAll(NAME_CLEANING_REGEX, " ") + .replace("\"", "\\\"")); + } + if (StringUtils.isNotBlank(author.getName())) { + author + .setName( + author + .getName() + .replaceAll(NAME_CLEANING_REGEX, " ") + .replace("\"", "\\\"")); + } + if (StringUtils.isNotBlank(author.getSurname())) { + author + .setSurname( + author + .getSurname() + .replaceAll(NAME_CLEANING_REGEX, " ") + .replace("\"", "\\\"")); + } + + return author; + } + private static Optional cleanDateField(Field dateofacceptance) { return Optional .ofNullable(dateofacceptance) @@ -637,12 +824,30 @@ public class GraphCleaningFunctions extends CleaningFunctions { // HELPERS private static boolean isValidAuthorName(Author a) { - return !Stream - .of(a.getFullname(), a.getName(), a.getSurname()) - .filter(s -> s != null && !s.isEmpty()) - .collect(Collectors.joining("")) - .toLowerCase() - .matches(INVALID_AUTHOR_REGEX); + return StringUtils.isNotBlank(a.getFullname()) && + StringUtils.isNotBlank(a.getFullname().replaceAll("[\\W]", "")) && + !INVALID_AUTHOR_NAMES.contains(StringUtils.lowerCase(a.getFullname()).trim()) && + !Stream + .of(a.getFullname(), a.getName(), a.getSurname()) + .filter(StringUtils::isNotBlank) + .collect(Collectors.joining("")) + .toLowerCase() + .matches(INVALID_AUTHOR_REGEX); + } + + private static boolean urlFilter(String u) { + try { + final URL url = new URL(u); + if (StringUtils.isBlank(url.getPath()) || "/".equals(url.getPath())) { + return false; + } + if (INVALID_URL_HOSTS.contains(url.getHost())) { + return false; + } + return !INVALID_URLS.contains(url.toString()); + } catch (MalformedURLException ex) { + return false; + } } private static List processPidCleaning(List pids) { @@ -692,4 +897,105 @@ public class GraphCleaningFunctions extends CleaningFunctions { return s; } + public static OafEntity applyCoarVocabularies(OafEntity entity, VocabularyGroup vocs) { + + if (entity instanceof Result) { + final Result result = (Result) entity; + + Optional + .ofNullable(result.getInstance()) + .ifPresent( + instances -> instances + .forEach( + instance -> { + if (Objects.isNull(instance.getInstanceTypeMapping())) { + List mapping = Lists.newArrayList(); + mapping + .add( + OafMapperUtils + .instanceTypeMapping( + instance.getInstancetype().getClassname(), + OPENAIRE_COAR_RESOURCE_TYPES_3_1)); + instance.setInstanceTypeMapping(mapping); + } + Optional optionalItm = instance + .getInstanceTypeMapping() + .stream() + .filter(GraphCleaningFunctions::originalResourceType) + .findFirst(); + if (optionalItm.isPresent()) { + InstanceTypeMapping coarItm = optionalItm.get(); + Optional + .ofNullable( + vocs + .lookupTermBySynonym( + OPENAIRE_COAR_RESOURCE_TYPES_3_1, coarItm.getOriginalType())) + .ifPresent(type -> { + coarItm.setTypeCode(type.getClassid()); + coarItm.setTypeLabel(type.getClassname()); + }); + final List mappings = Lists.newArrayList(); + if (vocs.vocabularyExists(OPENAIRE_USER_RESOURCE_TYPES)) { + Optional + .ofNullable( + vocs + .lookupTermBySynonym( + OPENAIRE_USER_RESOURCE_TYPES, coarItm.getTypeCode())) + .ifPresent( + type -> mappings + .add( + OafMapperUtils + .instanceTypeMapping(coarItm.getTypeCode(), type))); + } + if (!mappings.isEmpty()) { + instance.getInstanceTypeMapping().addAll(mappings); + } + } + })); + result.setMetaResourceType(getMetaResourceType(result.getInstance(), vocs)); + } + + return entity; + } + + private static boolean originalResourceType(InstanceTypeMapping itm) { + return StringUtils.isNotBlank(itm.getOriginalType()) && + OPENAIRE_COAR_RESOURCE_TYPES_3_1.equals(itm.getVocabularyName()) && + StringUtils.isBlank(itm.getTypeCode()) && + StringUtils.isBlank(itm.getTypeLabel()); + } + + private static Qualifier getMetaResourceType(final List instances, final VocabularyGroup vocs) { + return Optional + .ofNullable(instances) + .map(ii -> { + if (vocs.vocabularyExists(OPENAIRE_META_RESOURCE_TYPE)) { + Optional itm = ii + .stream() + .filter(Objects::nonNull) + .flatMap( + i -> Optional + .ofNullable(i.getInstanceTypeMapping()) + .map(Collection::stream) + .orElse(Stream.empty())) + .filter(t -> OPENAIRE_COAR_RESOURCE_TYPES_3_1.equals(t.getVocabularyName())) + .findFirst(); + + if (!itm.isPresent() || Objects.isNull(itm.get().getTypeCode())) { + return null; + } else { + final String typeCode = itm.get().getTypeCode(); + return Optional + .ofNullable(vocs.lookupTermBySynonym(OPENAIRE_META_RESOURCE_TYPE, typeCode)) + .orElseThrow( + () -> new IllegalStateException("unable to find a synonym for '" + typeCode + "' in " + + OPENAIRE_META_RESOURCE_TYPE)); + } + } else { + throw new IllegalStateException("vocabulary '" + OPENAIRE_META_RESOURCE_TYPE + "' not available"); + } + }) + .orElse(null); + } + } diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/GridCleaningRule.java b/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/GridCleaningRule.java index ff45d6a0d..37ab91dd5 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/GridCleaningRule.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/GridCleaningRule.java @@ -6,13 +6,19 @@ import java.util.regex.Pattern; public class GridCleaningRule { + public static final Pattern PATTERN = Pattern.compile("(?\\d{4,6}\\.[0-9a-z]{1,2})"); + public static String clean(String grid) { String s = grid .replaceAll("\\s", "") .toLowerCase(); - Matcher m = Pattern.compile("\\d{4,6}\\.[0-9a-z]{1,2}").matcher(s); - return m.matches() ? "grid." + m.group() : ""; + Matcher m = PATTERN.matcher(s); + if (m.find()) { + return "grid." + m.group("grid"); + } + + return ""; } } diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/ISNICleaningRule.java b/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/ISNICleaningRule.java index 5bc49c453..bcd8279cc 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/ISNICleaningRule.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/ISNICleaningRule.java @@ -7,10 +7,12 @@ import java.util.regex.Pattern; // https://www.wikidata.org/wiki/Property:P213 public class ISNICleaningRule { + public static final Pattern PATTERN = Pattern.compile("([0]{4}) ?([0-9]{4}) ?([0-9]{4}) ?([0-9]{3}[0-9X])"); + public static String clean(final String isni) { - Matcher m = Pattern.compile("([0]{4}) ?([0-9]{4}) ?([0-9]{4}) ?([0-9]{3}[0-9X])").matcher(isni); - if (m.matches()) { + Matcher m = PATTERN.matcher(isni); + if (m.find()) { return String.join("", m.group(1), m.group(2), m.group(3), m.group(4)); } else { return ""; diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/OafMapperUtils.java b/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/OafMapperUtils.java index c58096d35..4cecd0895 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/OafMapperUtils.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/OafMapperUtils.java @@ -14,7 +14,6 @@ import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; import eu.dnetlib.dhp.schema.common.AccessRightComparator; -import eu.dnetlib.dhp.schema.common.ModelConstants; import eu.dnetlib.dhp.schema.common.ModelSupport; import eu.dnetlib.dhp.schema.oaf.*; @@ -141,6 +140,28 @@ public class OafMapperUtils { .collect(Collectors.toList()); } + public static InstanceTypeMapping instanceTypeMapping(String originalType, String code, String label, + String vocabularyName) { + final InstanceTypeMapping m = new InstanceTypeMapping(); + m.setVocabularyName(vocabularyName); + m.setOriginalType(originalType); + m.setTypeCode(code); + m.setTypeLabel(label); + return m; + } + + public static InstanceTypeMapping instanceTypeMapping(String originalType, Qualifier term) { + return instanceTypeMapping(originalType, term.getClassid(), term.getClassname(), term.getSchemeid()); + } + + public static InstanceTypeMapping instanceTypeMapping(String originalType) { + return instanceTypeMapping(originalType, null, null, null); + } + + public static InstanceTypeMapping instanceTypeMapping(String originalType, String vocabularyName) { + return instanceTypeMapping(originalType, null, null, vocabularyName); + } + public static Qualifier unknown(final String schemeid, final String schemename) { return qualifier(UNKNOWN, "Unknown", schemeid, schemename); } diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/PICCleaningRule.java b/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/PICCleaningRule.java index 83b9a1f9f..a2213ed9f 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/PICCleaningRule.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/PICCleaningRule.java @@ -6,10 +6,12 @@ import java.util.regex.Pattern; public class PICCleaningRule { + public static final Pattern PATTERN = Pattern.compile("\\d{9}"); + public static String clean(final String pic) { - Matcher m = Pattern.compile("\\d{9}").matcher(pic); - if (m.matches()) { + Matcher m = PATTERN.matcher(pic); + if (m.find()) { return m.group(); } else { return ""; diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/PmcCleaningRule.java b/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/PmcCleaningRule.java index 4e1205805..903041d43 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/PmcCleaningRule.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/PmcCleaningRule.java @@ -1,13 +1,24 @@ package eu.dnetlib.dhp.schema.oaf.utils; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + public class PmcCleaningRule { + public static final Pattern PATTERN = Pattern.compile("PMC\\d{1,8}"); + public static String clean(String pmc) { String s = pmc .replaceAll("\\s", "") .toUpperCase(); - return s.matches("^PMC\\d{1,8}$") ? s : ""; + + final Matcher m = PATTERN.matcher(s); + + if (m.find()) { + return m.group(); + } + return ""; } } diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/PmidCleaningRule.java b/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/PmidCleaningRule.java index 65833a594..c0c451b88 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/PmidCleaningRule.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/PmidCleaningRule.java @@ -1,16 +1,25 @@ package eu.dnetlib.dhp.schema.oaf.utils; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + // https://researchguides.stevens.edu/c.php?g=442331&p=6577176 public class PmidCleaningRule { + public static final Pattern PATTERN = Pattern.compile("0*(\\d{1,8})"); + public static String clean(String pmid) { String s = pmid .toLowerCase() - .replaceAll("\\s", "") - .trim() - .replaceAll("^0+", ""); - return s.matches("^\\d{1,8}$") ? s : ""; + .replaceAll("\\s", ""); + + final Matcher m = PATTERN.matcher(s); + + if (m.find()) { + return m.group(1); + } + return ""; } } diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/RorCleaningRule.java b/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/RorCleaningRule.java index f40cdb00c..f6685f19d 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/RorCleaningRule.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/RorCleaningRule.java @@ -7,12 +7,21 @@ import java.util.regex.Pattern; // https://ror.readme.io/docs/ror-identifier-pattern public class RorCleaningRule { + public static final String ROR_PREFIX = "https://ror.org/"; + + private static final Pattern PATTERN = Pattern.compile("(?0[a-hj-km-np-tv-z|0-9]{6}[0-9]{2})"); + public static String clean(String ror) { String s = ror .replaceAll("\\s", "") .toLowerCase(); - Matcher m = Pattern.compile("0[a-hj-km-np-tv-z|0-9]{6}[0-9]{2}").matcher(s); - return m.matches() ? "https://ror.org/" + m.group() : ""; + + Matcher m = PATTERN.matcher(s); + + if (m.find()) { + return ROR_PREFIX + m.group("ror"); + } + return ""; } } diff --git a/dhp-common/src/main/resources/eu/dnetlib/dhp/oa/merge/group_graph_entities_parameters.json b/dhp-common/src/main/resources/eu/dnetlib/dhp/oa/merge/group_graph_entities_parameters.json index e65acb3c4..512878457 100644 --- a/dhp-common/src/main/resources/eu/dnetlib/dhp/oa/merge/group_graph_entities_parameters.json +++ b/dhp-common/src/main/resources/eu/dnetlib/dhp/oa/merge/group_graph_entities_parameters.json @@ -8,13 +8,31 @@ { "paramName": "gin", "paramLongName": "graphInputPath", - "paramDescription": "the graph root path", + "paramDescription": "the input graph root path", + "paramRequired": true + }, + { + "paramName": "cp", + "paramLongName": "checkpointPath", + "paramDescription": "checkpoint directory", "paramRequired": true }, { "paramName": "out", "paramLongName": "outputPath", - "paramDescription": "the output merged graph root path", + "paramDescription": "the output graph root path", + "paramRequired": true + }, + { + "paramName": "fi", + "paramLongName": "filterInvisible", + "paramDescription": "if true filters out invisible entities", + "paramRequired": true + }, + { + "paramName": "isu", + "paramLongName": "isLookupUrl", + "paramDescription": "url to the ISLookup Service", "paramRequired": true } ] \ No newline at end of file diff --git a/dhp-common/src/main/resources/eu/dnetlib/dhp/oozie/run_sql_parameters.json b/dhp-common/src/main/resources/eu/dnetlib/dhp/oozie/run_sql_parameters.json new file mode 100644 index 000000000..355f38e2f --- /dev/null +++ b/dhp-common/src/main/resources/eu/dnetlib/dhp/oozie/run_sql_parameters.json @@ -0,0 +1,20 @@ +[ + { + "paramName": "issm", + "paramLongName": "isSparkSessionManaged", + "paramDescription": "when true will stop SparkSession after job execution", + "paramRequired": false + }, + { + "paramName": "hmu", + "paramLongName": "hiveMetastoreUris", + "paramDescription": "the hive metastore uris", + "paramRequired": true + }, + { + "paramName": "sql", + "paramLongName": "sql", + "paramDescription": "sql script to execute", + "paramRequired": true + } +] \ No newline at end of file diff --git a/dhp-common/src/test/java/eu/dnetlib/dhp/common/MdStoreClientTest.java b/dhp-common/src/test/java/eu/dnetlib/dhp/common/MdStoreClientTest.java index f38d04979..f87f6e313 100644 --- a/dhp-common/src/test/java/eu/dnetlib/dhp/common/MdStoreClientTest.java +++ b/dhp-common/src/test/java/eu/dnetlib/dhp/common/MdStoreClientTest.java @@ -15,7 +15,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; public class MdStoreClientTest { - @Test + // @Test public void testMongoCollection() throws IOException { final MdstoreClient client = new MdstoreClient("mongodb://localhost:27017", "mdstore"); diff --git a/dhp-common/src/test/java/eu/dnetlib/dhp/schema/oaf/utils/GridCleaningRuleTest.java b/dhp-common/src/test/java/eu/dnetlib/dhp/schema/oaf/utils/GridCleaningRuleTest.java new file mode 100644 index 000000000..1b9163d46 --- /dev/null +++ b/dhp-common/src/test/java/eu/dnetlib/dhp/schema/oaf/utils/GridCleaningRuleTest.java @@ -0,0 +1,18 @@ + +package eu.dnetlib.dhp.schema.oaf.utils; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class GridCleaningRuleTest { + + @Test + void testCleaning() { + assertEquals("grid.493784.5", GridCleaningRule.clean("grid.493784.5")); + assertEquals("grid.493784.5x", GridCleaningRule.clean("grid.493784.5x")); + assertEquals("grid.493784.5x", GridCleaningRule.clean("493784.5x")); + assertEquals("", GridCleaningRule.clean("493x784.5x")); + } + +} diff --git a/dhp-common/src/test/java/eu/dnetlib/dhp/schema/oaf/utils/ISNICleaningRuleTest.java b/dhp-common/src/test/java/eu/dnetlib/dhp/schema/oaf/utils/ISNICleaningRuleTest.java new file mode 100644 index 000000000..e51d1e05c --- /dev/null +++ b/dhp-common/src/test/java/eu/dnetlib/dhp/schema/oaf/utils/ISNICleaningRuleTest.java @@ -0,0 +1,19 @@ + +package eu.dnetlib.dhp.schema.oaf.utils; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class ISNICleaningRuleTest { + + @Test + void testCleaning() { + assertEquals("0000000463436020", ISNICleaningRule.clean("0000 0004 6343 6020")); + assertEquals("0000000463436020", ISNICleaningRule.clean("0000000463436020")); + assertEquals("", ISNICleaningRule.clean("Q30256598")); + assertEquals("0000000493403529", ISNICleaningRule.clean("ISNI:0000000493403529")); + assertEquals("000000008614884X", ISNICleaningRule.clean("0000 0000 8614 884X")); + } + +} diff --git a/dhp-common/src/test/java/eu/dnetlib/dhp/schema/oaf/utils/PICCleaningRuleTest.java b/dhp-common/src/test/java/eu/dnetlib/dhp/schema/oaf/utils/PICCleaningRuleTest.java new file mode 100644 index 000000000..3736033c3 --- /dev/null +++ b/dhp-common/src/test/java/eu/dnetlib/dhp/schema/oaf/utils/PICCleaningRuleTest.java @@ -0,0 +1,19 @@ + +package eu.dnetlib.dhp.schema.oaf.utils; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class PICCleaningRuleTest { + + @Test + void testCleaning() { + assertEquals("887624982", PICCleaningRule.clean("887624982")); + assertEquals("", PICCleaningRule.clean("887 624982")); + assertEquals("887624982", PICCleaningRule.clean(" 887624982 ")); + assertEquals("887624982", PICCleaningRule.clean(" 887624982x ")); + assertEquals("887624982", PICCleaningRule.clean(" 88762498200 ")); + } + +} diff --git a/dhp-common/src/test/java/eu/dnetlib/dhp/schema/oaf/utils/PmcCleaningRuleTest.java b/dhp-common/src/test/java/eu/dnetlib/dhp/schema/oaf/utils/PmcCleaningRuleTest.java new file mode 100644 index 000000000..e53ebae89 --- /dev/null +++ b/dhp-common/src/test/java/eu/dnetlib/dhp/schema/oaf/utils/PmcCleaningRuleTest.java @@ -0,0 +1,19 @@ + +package eu.dnetlib.dhp.schema.oaf.utils; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class PmcCleaningRuleTest { + + @Test + void testCleaning() { + assertEquals("PMC1234", PmcCleaningRule.clean("PMC1234")); + assertEquals("PMC1234", PmcCleaningRule.clean(" PMC1234")); + assertEquals("PMC12345678", PmcCleaningRule.clean("PMC12345678")); + assertEquals("PMC12345678", PmcCleaningRule.clean("PMC123456789")); + assertEquals("PMC12345678", PmcCleaningRule.clean("PMC 12345678")); + } + +} diff --git a/dhp-common/src/test/java/eu/dnetlib/dhp/schema/oaf/utils/PmidCleaningRuleTest.java b/dhp-common/src/test/java/eu/dnetlib/dhp/schema/oaf/utils/PmidCleaningRuleTest.java new file mode 100644 index 000000000..295eac85f --- /dev/null +++ b/dhp-common/src/test/java/eu/dnetlib/dhp/schema/oaf/utils/PmidCleaningRuleTest.java @@ -0,0 +1,24 @@ + +package eu.dnetlib.dhp.schema.oaf.utils; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class PmidCleaningRuleTest { + + @Test + void testCleaning() { + // leading zeros are removed + assertEquals("1234", PmidCleaningRule.clean("01234")); + // tolerant to spaces in the middle + assertEquals("1234567", PmidCleaningRule.clean("0123 4567")); + // stop parsing at first not numerical char + assertEquals("123", PmidCleaningRule.clean("0123x4567")); + // invalid id leading to empty result + assertEquals("", PmidCleaningRule.clean("abc")); + // valid id with zeroes in the number + assertEquals("20794075", PmidCleaningRule.clean("20794075")); + } + +} diff --git a/dhp-common/src/test/java/eu/dnetlib/dhp/schema/oaf/utils/RorCleaningRuleTest.java b/dhp-common/src/test/java/eu/dnetlib/dhp/schema/oaf/utils/RorCleaningRuleTest.java new file mode 100644 index 000000000..5d5c03959 --- /dev/null +++ b/dhp-common/src/test/java/eu/dnetlib/dhp/schema/oaf/utils/RorCleaningRuleTest.java @@ -0,0 +1,17 @@ + +package eu.dnetlib.dhp.schema.oaf.utils; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class RorCleaningRuleTest { + + @Test + void testCleaning() { + assertEquals("https://ror.org/05rpz9w55", RorCleaningRule.clean("https://ror.org/05rpz9w55")); + assertEquals("https://ror.org/05rpz9w55", RorCleaningRule.clean("05rpz9w55")); + assertEquals("", RorCleaningRule.clean("05rpz9w_55")); + } + +} diff --git a/dhp-common/src/test/java/eu/dnetlib/oa/merge/AuthorMergerTest.java b/dhp-common/src/test/java/eu/dnetlib/oa/merge/AuthorMergerTest.java new file mode 100644 index 000000000..c0a8d6927 --- /dev/null +++ b/dhp-common/src/test/java/eu/dnetlib/oa/merge/AuthorMergerTest.java @@ -0,0 +1,114 @@ + +package eu.dnetlib.oa.merge; + +import static org.junit.jupiter.api.Assertions.*; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.util.List; +import java.util.Objects; + +import org.junit.jupiter.api.Test; +import org.junit.platform.commons.util.StringUtils; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; + +import eu.dnetlib.dhp.oa.merge.AuthorMerger; +import eu.dnetlib.dhp.schema.oaf.Author; + +public class AuthorMergerTest { + + @Test + public void testEnrcichAuthor() throws Exception { + final ObjectMapper mapper = new ObjectMapper(); + + BufferedReader pr = new BufferedReader(new InputStreamReader( + Objects + .requireNonNull( + AuthorMergerTest.class + .getResourceAsStream("/eu/dnetlib/dhp/oa/merge/authors_publication_sample.json")))); + BufferedReader or = new BufferedReader(new InputStreamReader( + Objects + .requireNonNull( + AuthorMergerTest.class.getResourceAsStream("/eu/dnetlib/dhp/oa/merge/authors_orcid_sample.json")))); + + TypeReference> aclass = new TypeReference>() { + }; + String pubLine; + + int i = 0; + while ((pubLine = pr.readLine()) != null) { + final String pubId = pubLine; + final String MatchPidOrcid = or.readLine(); + final String pubOrcid = or.readLine(); + + final String data = pr.readLine(); + + if (StringUtils.isNotBlank(data)) { + List publicationAuthors = mapper.readValue(data, aclass); + List orcidAuthors = mapper.readValue(or.readLine(), aclass); + System.out.printf("OAF ID = %s \n", pubId); + System.out.printf("ORCID Intersected ID = %s \n", pubOrcid); + System.out.printf("OAF Author Size = %d \n", publicationAuthors.size()); + System.out.printf("Oricd Author Size = %d \n", orcidAuthors.size()); + System.out.printf("Oricd Matched PID = %s \n", MatchPidOrcid); + + long originalAuthorWithPiD = publicationAuthors + .stream() + .filter( + a -> a.getPid() != null && a + .getPid() + .stream() + .anyMatch( + p -> p.getQualifier() != null + && p.getQualifier().getClassid().toLowerCase().contains("orcid"))) + .count(); + long start = System.currentTimeMillis(); + +// final List enrichedList = AuthorMerger.enrichOrcid(publicationAuthors, orcidAuthors); + final List enrichedList = AuthorMerger.enrichOrcid(publicationAuthors, orcidAuthors); + + long enrichedAuthorWithPid = enrichedList + .stream() + .filter( + a -> a.getPid() != null && a + .getPid() + .stream() + .anyMatch( + p -> p.getQualifier() != null + && p.getQualifier().getClassid().toLowerCase().contains("orcid"))) + .count(); + + long totalTime = (System.currentTimeMillis() - start) / 1000; + System.out + .printf( + "Enriched authors in %d seconds from %d pid to %d pid \n", totalTime, originalAuthorWithPiD, + enrichedAuthorWithPid); + + System.out.println("================="); + } + } + } + + @Test + public void checkSimilarityTest() { + final Author left = new Author(); + left.setName("Anand"); + left.setSurname("Rachna"); + left.setFullname("Anand, Rachna"); + + System.out.println(AuthorMerger.normalizeFullName(left.getFullname())); + + final Author right = new Author(); + right.setName("Rachna"); + right.setSurname("Anand"); + right.setFullname("Rachna, Anand"); +// System.out.println(AuthorMerger.normalize(right.getFullname())); + boolean same = AuthorMerger.checkORCIDSimilarity(left, right); + + assertTrue(same); + + } + +} diff --git a/dhp-common/src/test/resources/eu/dnetlib/dhp/oa/merge/authors_orcid_sample.json b/dhp-common/src/test/resources/eu/dnetlib/dhp/oa/merge/authors_orcid_sample.json new file mode 100644 index 000000000..ec521b3b7 --- /dev/null +++ b/dhp-common/src/test/resources/eu/dnetlib/dhp/oa/merge/authors_orcid_sample.json @@ -0,0 +1,3 @@ +WrappedArray(arXiv1507.08202) +50|arXiv_dedup_::34e03f2336b8b28286550425e65634ea +[{"fullname":"Liron Barak","name":"Liron","surname":"Barak","rank":null,"pid":[{"value":"0000-0002-3436-2726","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Giuseppe Avolio","name":"Giuseppe","surname":"Avolio","rank":null,"pid":[{"value":"0000-0003-2664-3437","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Tobias Golling","name":"Tobias","surname":"Golling","rank":null,"pid":[{"value":"0000-0001-8535-6687","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Ivan Sykora","name":"Ivan","surname":"Sykora","rank":null,"pid":[{"value":"0000-0003-3447-5621","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Joao Carvalho","name":"Joao","surname":"Carvalho","rank":null,"pid":[{"value":"0000-0002-3015-7821","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jonathan David Long","name":"Jonathan David","surname":"Long","rank":null,"pid":[{"value":"0000-0002-2115-9382","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Heather Russell","name":"Heather","surname":"Russell","rank":null,"pid":[{"value":"0000-0003-4181-0678","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Alison Lister","name":"Alison","surname":"Lister","rank":null,"pid":[{"value":"0000-0002-1552-3651","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Malte Backhaus","name":"Malte","surname":"Backhaus","rank":null,"pid":[{"value":"0000-0002-5888-2304","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Xin Wu","name":"Xin","surname":"Wu","rank":null,"pid":[{"value":"0000-0001-7655-389X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Luke Lambourne","name":"Luke","surname":"Lambourne","rank":null,"pid":[{"value":"0000-0002-7001-7575","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Kazunori Hanagaki","name":"Kazunori","surname":"Hanagaki","rank":null,"pid":[{"value":"0000-0003-0676-0441","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Krzysztof Sliwa","name":"Krzysztof","surname":"Sliwa","rank":null,"pid":[{"value":"0000-0002-1201-4771","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jiri Chudoba","name":"Jiri","surname":"Chudoba","rank":null,"pid":[{"value":"0000-0002-6425-2579","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jörn Große-Knetter","name":"Jörn","surname":"Große-Knetter","rank":null,"pid":[{"value":"0000-0003-3085-7067","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Katharine Leney","name":"Katharine","surname":"Leney","rank":null,"pid":[{"value":"0000-0002-1525-2695","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Michel Lefebvre","name":"Michel","surname":"Lefebvre","rank":null,"pid":[{"value":"0000-0002-5560-0586","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Ahmed Bassalat","name":"Ahmed","surname":"Bassalat","rank":null,"pid":[{"value":"0000-0002-0129-1423","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Borut Kersevan","name":"Borut","surname":"Kersevan","rank":null,"pid":[{"value":"0000-0002-4529-452X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Calum Macdonald","name":"Calum","surname":"Macdonald","rank":null,"pid":[{"value":"0000-0001-7857-9188","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Davide Costanzo","name":"Davide","surname":"Costanzo","rank":null,"pid":[{"value":"0000-0003-4920-6264","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Wladyslaw Dabrowski","name":"Wladyslaw","surname":"Dabrowski","rank":null,"pid":[{"value":"0000-0001-9061-9568","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jean-François Grivaz","name":"Jean-François","surname":"Grivaz","rank":null,"pid":[{"value":"0000-0003-4793-7995","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Elisabetta Pianori","name":"Elisabetta","surname":"Pianori","rank":null,"pid":[{"value":"0000-0001-9233-5892","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Christoph Falk Anders","name":"Christoph Falk","surname":"Anders","rank":null,"pid":[{"value":"0000-0001-6632-6327","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Vasiliki Kouskoura","name":"Vasiliki","surname":"Kouskoura","rank":null,"pid":[{"value":"0000-0002-8987-3208","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Ruth Pöttgen","name":"Ruth","surname":"Pöttgen","rank":null,"pid":[{"value":"0000-0002-3304-0987","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Sergey Burdin","name":"Sergey","surname":"Burdin","rank":null,"pid":[{"value":"0000-0003-4831-4132","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Farid Ould-Saada","name":"Farid","surname":"Ould-Saada","rank":null,"pid":[{"value":"0000-0002-9404-835X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Peter Onyisi","name":"Peter","surname":"Onyisi","rank":null,"pid":[{"value":"0000-0003-4201-7997","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Javier Llorente Merino","name":"Javier","surname":"Llorente Merino","rank":null,"pid":[{"value":"0000-0003-0027-7969","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Michel Vetterli","name":"Michel","surname":"Vetterli","rank":null,"pid":[{"value":"0000-0002-7223-2965","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Nicolas Morange","name":"Nicolas","surname":"Morange","rank":null,"pid":[{"value":"0000-0003-0047-7215","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Gianluca Introzzi","name":"Gianluca","surname":"Introzzi","rank":null,"pid":[{"value":"0000-0002-1314-2580","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Roger Moore","name":"Roger","surname":"Moore","rank":null,"pid":[{"value":"0000-0003-4160-4700","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Pierre-Antoine Delsart","name":"Pierre-Antoine","surname":"Delsart","rank":null,"pid":[{"value":"0000-0002-9556-2924","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Victor Solovyev","name":"Victor","surname":"Solovyev","rank":null,"pid":[{"value":"0000-0002-9402-6329","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jiangyong jia","name":"Jiangyong","surname":"jia","rank":null,"pid":[{"value":"0000-0002-5725-3397","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Kyle Cranmer","name":"Kyle","surname":"Cranmer","rank":null,"pid":[{"value":"0000-0002-5769-7094","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Frederik Ruehr","name":"Frederik","surname":"Ruehr","rank":null,"pid":[{"value":"0000-0003-4452-620X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Peter van Gemmeren","name":"Peter","surname":"van Gemmeren","rank":null,"pid":[{"value":"0000-0002-7227-4006","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jacob Kempster","name":"Jacob","surname":"Kempster","rank":null,"pid":[{"value":"0000-0003-4168-3373","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Oleg Brandt","name":"Oleg","surname":"Brandt","rank":null,"pid":[{"value":"0000-0001-5219-1417","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Antonio Policicchio","name":"Antonio","surname":"Policicchio","rank":null,"pid":[{"value":"0000-0002-1290-220X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Fabrice Hubaut","name":"Fabrice","surname":"Hubaut","rank":null,"pid":[{"value":"0000-0002-0113-2465","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Christopher Gorham Lester","name":"Christopher Gorham","surname":"Lester","rank":null,"pid":[{"value":"0000-0001-5770-4883","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Royer Edson Ticse Torres","name":"Royer Edson","surname":"Ticse Torres","rank":null,"pid":[{"value":"0000-0001-8178-5257","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Maria Josefina Alconada Verzini","name":"Maria Josefina","surname":"Alconada Verzini","rank":null,"pid":[{"value":"0000-0003-2212-7830","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"PHILLIP URQUIJO","name":"PHILLIP","surname":"URQUIJO","rank":null,"pid":[{"value":"0000-0002-0887-7953","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Annick Lleres","name":"Annick","surname":"Lleres","rank":null,"pid":[{"value":"0000-0003-1769-8524","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Andrei Snesarev","name":"Andrei","surname":"Snesarev","rank":null,"pid":[{"value":"0000-0002-9067-8362","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Marcin Wolter","name":"Marcin","surname":"Wolter","rank":null,"pid":[{"value":"0000-0001-9184-2921","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Garabed Halladjian","name":"Garabed","surname":"Halladjian","rank":null,"pid":[{"value":"0000-0001-7162-0301","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Anthony Morley","name":"Anthony","surname":"Morley","rank":null,"pid":[{"value":"0000-0003-0373-1346","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Francesco Nuti","name":"Francesco","surname":"Nuti","rank":null,"pid":[{"value":"0000-0003-3491-7637","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Mar Capeans","name":"Mar","surname":"Capeans","rank":null,"pid":[{"value":"0000-0001-7727-9175","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jose Enrique Garcia Navarro","name":"Jose Enrique","surname":"Garcia Navarro","rank":null,"pid":[{"value":"0000-0002-0279-0523","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Aidan Robson","name":"Aidan","surname":"Robson","rank":null,"pid":[{"value":"0000-0002-1659-8284","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Eduardo Ros","name":"Eduardo","surname":"Ros","rank":null,"pid":[{"value":"0000-0003-2812-9554","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Kevin Varvell","name":"Kevin","surname":"Varvell","rank":null,"pid":[{"value":"0000-0003-1017-1295","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Ina Carli","name":"Ina","surname":"Carli","rank":null,"pid":[{"value":"0000-0002-0411-1141","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Ivo van Vulpen","name":"Ivo","surname":"van Vulpen","rank":null,"pid":[{"value":"0000-0001-7074-5655","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Liaoshan Shi","name":"Liaoshan","surname":"Shi","rank":null,"pid":[{"value":"0000-0001-9532-5075","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Pavel Starovoitov","name":"Pavel","surname":"Starovoitov","rank":null,"pid":[{"value":"0000-0003-1990-0992","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Lorenzo Feligioni","name":"Lorenzo","surname":"Feligioni","rank":null,"pid":[{"value":"0000-0002-1403-0951","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Christoph Wasicki","name":"Christoph","surname":"Wasicki","rank":null,"pid":[{"value":"0000-0001-8041-741X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Nuno Castro","name":"Nuno","surname":"Castro","rank":null,"pid":[{"value":"0000-0001-8491-4376","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Mikhail Levchenko","name":"Mikhail","surname":"Levchenko","rank":null,"pid":[{"value":"0000-0002-5495-0656","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Marek Palka","name":"Marek","surname":"Palka","rank":null,"pid":[{"value":"0000-0002-7185-3540","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Philip Allport","name":"Philip","surname":"Allport","rank":null,"pid":[{"value":"0000-0001-7303-2570","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Tomas Jakoubek","name":"Tomas","surname":"Jakoubek","rank":null,"pid":[{"value":"0000-0001-7038-0369","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Elizabeth Brost","name":"Elizabeth","surname":"Brost","rank":null,"pid":[{"value":"0000-0002-6800-9808","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Maciej Trzebinski","name":"Maciej","surname":"Trzebinski","rank":null,"pid":[{"value":"0000-0002-5151-7101","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Nikola Makovec","name":"Nikola","surname":"Makovec","rank":null,"pid":[{"value":"0000-0001-5124-904X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Bernhard Meirose","name":"Bernhard","surname":"Meirose","rank":null,"pid":[{"value":"0000-0003-0032-7022","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Andrea Dell’Acqua","name":"Andrea","surname":"Dell’Acqua","rank":null,"pid":[{"value":"0000-0003-2453-7745","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Carlos Escobar Ibáñez","name":"Carlos","surname":"Escobar Ibáñez","rank":null,"pid":[{"value":"0000-0003-4442-4537","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Hideyuki Oide","name":"Hideyuki","surname":"Oide","rank":null,"pid":[{"value":"0000-0002-2173-3233","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Valentina Maria Martina Cairo","name":"Valentina Maria Martina","surname":"Cairo","rank":null,"pid":[{"value":"0000-0002-0758-7575","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Johannes Erdmann","name":"Johannes","surname":"Erdmann","rank":null,"pid":[{"value":"0000-0002-8073-2740","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Frederic Deliot","name":"Frederic","surname":"Deliot","rank":null,"pid":[{"value":"0000-0003-0777-6031","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Fabian Hügging","name":"Fabian","surname":"Hügging","rank":null,"pid":[{"value":"0000-0002-7472-3151","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Antoine Marzin","name":"Antoine","surname":"Marzin","rank":null,"pid":[{"value":"0000-0003-4364-4351","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Sebastien Prince","name":"Sebastien","surname":"Prince","rank":null,"pid":[{"value":"0000-0001-9947-3892","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Melissa Ridel","name":"Melissa","surname":"Ridel","rank":null,"pid":[{"value":"0000-0002-2601-7420","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Christian Weiser","name":"Christian","surname":"Weiser","rank":null,"pid":[{"value":"0000-0002-6456-6834","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Farida Fassi","name":"Farida","surname":"Fassi","rank":null,"pid":[{"value":"0000-0002-6423-7213","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Manuella Vincter","name":"Manuella","surname":"Vincter","rank":null,"pid":[{"value":"0000-0002-5338-8972","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Julien Caudron","name":"Julien","surname":"Caudron","rank":null,"pid":[{"value":"0000-0002-3530-6531","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Giada Mancini","name":"Giada","surname":"Mancini","rank":null,"pid":[{"value":"0000-0001-6158-2751","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Vasiliki A. Mitsou","name":"Vasiliki A.","surname":"Mitsou","rank":null,"pid":[{"value":"0000-0002-1533-8886","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"David Wardrope","name":"David","surname":"Wardrope","rank":null,"pid":[{"value":"0000-0002-8208-2964","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Loïc Valéry","name":"Loïc","surname":"Valéry","rank":null,"pid":[{"value":"0000-0002-5510-1111","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Krisztian Peters","name":"Krisztian","surname":"Peters","rank":null,"pid":[{"value":"0000-0002-7654-1677","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Andrea Knue","name":"Andrea","surname":"Knue","rank":null,"pid":[{"value":"0000-0002-1559-9285","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Stathes Paganis","name":"Stathes","surname":"Paganis","rank":null,"pid":[{"value":"0000-0002-1950-8993","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Steffen Stärz","name":"Steffen","surname":"Stärz","rank":null,"pid":[{"value":"0000-0002-2908-3909","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Emma Torro Pastor","name":"Emma","surname":"Torro Pastor","rank":null,"pid":[{"value":"0000-0002-5507-7924","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Andrey Kiryunin","name":"Andrey","surname":"Kiryunin","rank":null,"pid":[{"value":"0000-0001-7490-6890","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Daniela Marcella Rebuzzi","name":"Daniela Marcella","surname":"Rebuzzi","rank":null,"pid":[{"value":"0000-0003-4461-3880","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Frederick Luehring","name":"Frederick","surname":"Luehring","rank":null,"pid":[{"value":"0000-0001-8721-6901","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"alessandro cerri","name":"alessandro","surname":"cerri","rank":null,"pid":[{"value":"0000-0002-1904-6661","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Remi Lafaye","name":"Remi","surname":"Lafaye","rank":null,"pid":[{"value":"0000-0001-7848-6088","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Torsten Akesson","name":"Torsten","surname":"Akesson","rank":null,"pid":[{"value":"0000-0003-4141-5408","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Hongbo Zhu","name":"Hongbo","surname":"Zhu","rank":null,"pid":[{"value":"0000-0001-8066-7048","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Paul Laycock","name":"Paul","surname":"Laycock","rank":null,"pid":[{"value":"0000-0002-8572-5339","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Paolo Giromini","name":"Paolo","surname":"Giromini","rank":null,"pid":[{"value":"0000-0003-0276-287X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Leszek Adamczyk","name":"Leszek","surname":"Adamczyk","rank":null,"pid":[{"value":"0000-0002-5859-2075","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Stephen Lloyd","name":"Stephen","surname":"Lloyd","rank":null,"pid":[{"value":"0000-0002-5073-2264","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Aaron Angerami","name":"Aaron","surname":"Angerami","rank":null,"pid":[{"value":"0000-0001-7834-8750","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Susumu Oda","name":"Susumu","surname":"Oda","rank":null,"pid":[{"value":"0000-0001-5836-768X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Nathalie Besson","name":"Nathalie","surname":"Besson","rank":null,"pid":[{"value":"0000-0001-9248-6252","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"MARCELLO FANTI","name":"MARCELLO","surname":"FANTI","rank":null,"pid":[{"value":"0000-0002-8773-145X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Peter Kodyš","name":"Peter","surname":"Kodyš","rank":null,"pid":[{"value":"0000-0002-8644-2349","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Teng Jian Khoo","name":"Teng Jian","surname":"Khoo","rank":null,"pid":[{"value":"0000-0002-5954-3101","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Javier Montejo Berlingen","name":"Javier","surname":"Montejo Berlingen","rank":null,"pid":[{"value":"0000-0001-9213-904X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Sandro Palestini","name":"Sandro","surname":"Palestini","rank":null,"pid":[{"value":"0000-0002-4110-096X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Mark Oreglia","name":"Mark","surname":"Oreglia","rank":null,"pid":[{"value":"0000-0001-6203-2209","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Krzysztof Korcyl","name":"Krzysztof","surname":"Korcyl","rank":null,"pid":[{"value":"0000-0001-8085-4505","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Sebastian Schmitt","name":"Sebastian","surname":"Schmitt","rank":null,"pid":[{"value":"0000-0002-7935-0470","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Irinel Caprini","name":"Irinel","surname":"Caprini","rank":null,"pid":[{"value":"0000-0003-3343-3200","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Anthony Doyle","name":"Anthony","surname":"Doyle","rank":null,"pid":[{"value":"0000-0001-6322-6195","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Markus Elsing","name":"Markus","surname":"Elsing","rank":null,"pid":[{"value":"0000-0002-1213-0545","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Christian Schmitt","name":"Christian","surname":"Schmitt","rank":null,"pid":[{"value":"0000-0003-1471-690X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Konstantinos Nikolopoulos","name":"Konstantinos","surname":"Nikolopoulos","rank":null,"pid":[{"value":"0000-0002-3048-489X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Janet Dietrich","name":"Janet","surname":"Dietrich","rank":null,"pid":[{"value":"0000-0001-7061-1585","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Yuri Kulchitsky","name":"Yuri","surname":"Kulchitsky","rank":null,"pid":[{"value":"0000-0002-3036-5575","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Sinead Farrington","name":"Sinead","surname":"Farrington","rank":null,"pid":[{"value":"0000-0001-5350-9271","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Stefano Terzo","name":"Stefano","surname":"Terzo","rank":null,"pid":[{"value":"0000-0003-3388-3906","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"stefania xella","name":"stefania","surname":"xella","rank":null,"pid":[{"value":"0000-0002-0988-1655","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jonathan Butterworth","name":"Jonathan","surname":"Butterworth","rank":null,"pid":[{"value":"0000-0002-5905-5394","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Gideon Bella","name":"Gideon","surname":"Bella","rank":null,"pid":[{"value":"0000-0002-4009-0990","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Marcello Bindi","name":"Marcello","surname":"Bindi","rank":null,"pid":[{"value":"0000-0001-6172-545X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Heather Gray","name":"Heather","surname":"Gray","rank":null,"pid":[{"value":"0000-0002-5293-4716","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Marcel Vos","name":"Marcel","surname":"Vos","rank":null,"pid":[{"value":"0000-0001-8474-5357","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Ljiljana Morvaj","name":"Ljiljana","surname":"Morvaj","rank":null,"pid":[{"value":"0000-0003-2061-2904","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Didier Ferrere","name":"Didier","surname":"Ferrere","rank":null,"pid":[{"value":"0000-0002-5687-9240","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Mauro Villa","name":"Mauro","surname":"Villa","rank":null,"pid":[{"value":"0000-0002-9181-8048","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Deepak Kar","name":"Deepak","surname":"Kar","rank":null,"pid":[{"value":"0000-0002-4238-9822","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Frank Berghaus","name":"Frank","surname":"Berghaus","rank":null,"pid":[{"value":"0000-0003-1887-3910","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Bruce Yabsley","name":"Bruce","surname":"Yabsley","rank":null,"pid":[{"value":"0000-0002-2680-0474","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Frank Winklmeier","name":"Frank","surname":"Winklmeier","rank":null,"pid":[{"value":"0000-0001-8290-3200","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Zoya Karpova","name":"Zoya","surname":"Karpova","rank":null,"pid":[{"value":"0000-0003-0254-4629","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jason Nielsen","name":"Jason","surname":"Nielsen","rank":null,"pid":[{"value":"0000-0002-9175-4419","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Claire Gwenlan","name":"Claire","surname":"Gwenlan","rank":null,"pid":[{"value":"0000-0002-3518-0617","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Stephanie Majewski","name":"Stephanie","surname":"Majewski","rank":null,"pid":[{"value":"0000-0002-6871-3395","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"James Mueller","name":"James","surname":"Mueller","rank":null,"pid":[{"value":"0000-0001-5099-4718","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Mario Giordani","name":"Mario","surname":"Giordani","rank":null,"pid":[{"value":"0000-0002-0792-6039","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Laura Fabbri","name":"Laura","surname":"Fabbri","rank":null,"pid":[{"value":"0000-0002-4002-8353","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Michael Begel","name":"Michael","surname":"Begel","rank":null,"pid":[{"value":"0000-0002-1634-4399","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Laurent Schoeffel","name":"Laurent","surname":"Schoeffel","rank":null,"pid":[{"value":"0000-0002-8081-2353","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Bobby Acharya","name":"Bobby","surname":"Acharya","rank":null,"pid":[{"value":"0000-0002-8588-9157","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jan Kretzschmar","name":"Jan","surname":"Kretzschmar","rank":null,"pid":[{"value":"0000-0002-8515-1355","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Thi Ngoc Loan Truong","name":"Thi Ngoc Loan","surname":"Truong","rank":null,"pid":[{"value":"0000-0001-8249-7150","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Yury Smirnov","name":"Yury","surname":"Smirnov","rank":null,"pid":[{"value":"0000-0002-2891-0781","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Andreas Warburton","name":"Andreas","surname":"Warburton","rank":null,"pid":[{"value":"0000-0002-2298-7315","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Osamu Jinnouchi","name":"Osamu","surname":"Jinnouchi","rank":null,"pid":[{"value":"0000-0001-5073-0974","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Nicola Orlando","name":"Nicola","surname":"Orlando","rank":null,"pid":[{"value":"0000-0003-0616-245X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Magda Anna Chelstowska","name":"Magda Anna","surname":"Chelstowska","rank":null,"pid":[{"value":"0000-0003-1030-2099","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Armin Nairz","name":"Armin","surname":"Nairz","rank":null,"pid":[{"value":"0000-0003-3561-0880","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Chris Malena Delitzsch","name":"Chris Malena","surname":"Delitzsch","rank":null,"pid":[{"value":"0000-0001-7021-3333","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Kendall Reeves","name":"Kendall","surname":"Reeves","rank":null,"pid":[{"value":"0000-0003-3504-4882","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Minghui Liu","name":"Minghui","surname":"Liu","rank":null,"pid":[{"value":"0000-0003-0056-7296","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Clara Troncon","name":"Clara","surname":"Troncon","rank":null,"pid":[{"value":"0000-0002-7997-8524","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Chris Hays","name":"Chris","surname":"Hays","rank":null,"pid":[{"value":"0000-0003-2371-9723","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Driss Benchekroun","name":"Driss","surname":"Benchekroun","rank":null,"pid":[{"value":"0000-0001-5196-8327","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Tamar Djobava","name":"Tamar","surname":"Djobava","rank":null,"pid":[{"value":"0000-0002-9414-8350","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Joany Manjarrés Ramos","name":"Joany","surname":"Manjarrés Ramos","rank":null,"pid":[{"value":"0000-0003-3896-5222","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Craig Wiglesworth","name":"Craig","surname":"Wiglesworth","rank":null,"pid":[{"value":"0000-0001-6219-8946","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Lawrence Lee","name":"Lawrence","surname":"Lee","rank":null,"pid":[{"value":"0000-0002-5590-335X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Elisabetta Barberio","name":"Elisabetta","surname":"Barberio","rank":null,"pid":[{"value":"0000-0002-3111-0910","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Robert McPherson","name":"Robert","surname":"McPherson","rank":null,"pid":[{"value":"0000-0001-9211-7019","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Paul Jackson","name":"Paul","surname":"Jackson","rank":null,"pid":[{"value":"0000-0002-0847-402X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Peter Henrik Hansen","name":"Peter Henrik","surname":"Hansen","rank":null,"pid":[{"value":"0000-0002-6764-4789","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Cristobal Padilla","name":"Cristobal","surname":"Padilla","rank":null,"pid":[{"value":"0000-0001-7951-0166","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Nora Pettersson","name":"Nora","surname":"Pettersson","rank":null,"pid":[{"value":"0000-0001-7451-3544","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Paul Glaysher","name":"Paul","surname":"Glaysher","rank":null,"pid":[{"value":"0000-0002-5437-971X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Patrick Czodrowski","name":"Patrick","surname":"Czodrowski","rank":null,"pid":[{"value":"0000-0003-0723-1437","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"María Moreno Llácer","name":"María","surname":"Moreno Llácer","rank":null,"pid":[{"value":"0000-0003-1113-3645","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Soumya Mohapatra","name":"Soumya","surname":"Mohapatra","rank":null,"pid":[{"value":"0000-0003-3006-6337","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Andrea Gaudiello","name":"Andrea","surname":"Gaudiello","rank":null,"pid":[{"value":"0000-0001-7721-8217","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Maximiliano Sioli","name":"Maximiliano","surname":"Sioli","rank":null,"pid":[{"value":"0000-0002-0912-9121","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Christian Schroeder","name":"Christian","surname":"Schroeder","rank":null,"pid":[{"value":"0000-0001-6449-0668","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Guillaume Unal","name":"Guillaume","surname":"Unal","rank":null,"pid":[{"value":"0000-0001-8130-7423","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Christian Gutschow","name":"Christian","surname":"Gutschow","rank":null,"pid":[{"value":"0000-0003-0857-794X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Spyridon Argyropoulos","name":"Spyridon","surname":"Argyropoulos","rank":null,"pid":[{"value":"0000-0001-7748-1429","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Vadim Bednyakov","name":"Vadim","surname":"Bednyakov","rank":null,"pid":[{"value":"0000-0003-4864-8909","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Caterina Doglioni","name":"Caterina","surname":"Doglioni","rank":null,"pid":[{"value":"0000-0002-1509-0390","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Andrew Haas","name":"Andrew","surname":"Haas","rank":null,"pid":[{"value":"0000-0002-4832-0455","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Masahiro Morii","name":"Masahiro","surname":"Morii","rank":null,"pid":[{"value":"0000-0001-9324-057X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Andrea Coccaro","name":"Andrea","surname":"Coccaro","rank":null,"pid":[{"value":"0000-0003-2368-4559","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Edward Moyse","name":"Edward","surname":"Moyse","rank":null,"pid":[{"value":"0000-0003-4449-6178","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Takuya Nobe","name":"Takuya","surname":"Nobe","rank":null,"pid":[{"value":"0000-0002-5809-325X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jahred Adelman","name":"Jahred","surname":"Adelman","rank":null,"pid":[{"value":"0000-0002-1041-3496","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Antonio Ereditato","name":"Antonio","surname":"Ereditato","rank":null,"pid":[{"value":"0000-0002-5423-8079","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Stefan Schmitt","name":"Stefan","surname":"Schmitt","rank":null,"pid":[{"value":"0000-0001-8387-1853","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"David DeMarco","name":"David","surname":"DeMarco","rank":null,"pid":[{"value":"0000-0002-8921-8828","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Alessandro La Rosa","name":"Alessandro","surname":"La Rosa","rank":null,"pid":[{"value":"0000-0001-6291-2142","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Liza Mijovic","name":"Liza","surname":"Mijovic","rank":null,"pid":[{"value":"0000-0003-0162-2891","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Stephane Willocq","name":"Stephane","surname":"Willocq","rank":null,"pid":[{"value":"0000-0002-4120-1453","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"George Iakovidis","name":"George","surname":"Iakovidis","rank":null,"pid":[{"value":"0000-0002-0330-5921","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Madar Romain","name":"Madar","surname":"Romain","rank":null,"pid":[{"value":"0000-0002-6875-6408","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"giuseppe iacobucci","name":"giuseppe","surname":"iacobucci","rank":null,"pid":[{"value":"0000-0001-9965-5442","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Allen Mincer","name":"Allen","surname":"Mincer","rank":null,"pid":[{"value":"0000-0002-6307-1418","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"TROCME Benjamin","name":"TROCME","surname":"Benjamin","rank":null,"pid":[{"value":"0000-0001-9500-2487","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Liang Li","name":"Liang","surname":"Li","rank":null,"pid":[{"value":"0000-0001-6411-6107","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"William Murray","name":"William","surname":"Murray","rank":null,"pid":[{"value":"0000-0003-1710-6306","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Chaowaroj Wanotayaroj","name":"Chaowaroj","surname":"Wanotayaroj","rank":null,"pid":[{"value":"0000-0002-8178-5705","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Luc Goossens","name":"Luc","surname":"Goossens","rank":null,"pid":[{"value":"0000-0002-2536-4498","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Kerstin Jon-And","name":"Kerstin","surname":"Jon-And","rank":null,"pid":[{"value":"0000-0001-8201-7700","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Arwa Bannoura","name":"Arwa","surname":"Bannoura","rank":null,"pid":[{"value":"0000-0002-7166-8118","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Filipe Veloso","name":"Filipe","surname":"Veloso","rank":null,"pid":[{"value":"0000-0002-5956-4244","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Maximilian Swiatlowski","name":"Maximilian","surname":"Swiatlowski","rank":null,"pid":[{"value":"0000-0001-7287-0468","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Marija Vranjes Milosavljevic","name":"Marija","surname":"Vranjes Milosavljevic","rank":null,"pid":[{"value":"0000-0003-4477-9733","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Riccardo Maria Bianchi","name":"Riccardo Maria","surname":"Bianchi","rank":null,"pid":[{"value":"0000-0001-7345-7798","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Elias Coniavitis","name":"Elias","surname":"Coniavitis","rank":null,"pid":[{"value":"0000-0002-2148-8012","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Ondrej Penc","name":"Ondrej","surname":"Penc","rank":null,"pid":[{"value":"0000-0002-5433-3981","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Julie Kirk","name":"Julie","surname":"Kirk","rank":null,"pid":[{"value":"0000-0001-8096-7577","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Hongtao Yang","name":"Hongtao","surname":"Yang","rank":null,"pid":[{"value":"0000-0003-3554-7113","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Ewelina Maria Lobodzinska","name":"Ewelina Maria","surname":"Lobodzinska","rank":null,"pid":[{"value":"0000-0001-9012-3431","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Christos Leonidopoulos","name":"Christos","surname":"Leonidopoulos","rank":null,"pid":[{"value":"0000-0002-7241-2114","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Silvia Biondi","name":"Silvia","surname":"Biondi","rank":null,"pid":[{"value":"0000-0002-1492-6715","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Stephane JEZEQUEL","name":"Stephane","surname":"JEZEQUEL","rank":null,"pid":[{"value":"0000-0001-7369-6975","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Zhiqing Zhang","name":"Zhiqing","surname":"Zhang","rank":null,"pid":[{"value":"0000-0002-7853-9079","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Kathleen Whalen","name":"Kathleen","surname":"Whalen","rank":null,"pid":[{"value":"0000-0002-9383-8763","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Sophie HENROT","name":"Sophie","surname":"HENROT","rank":null,"pid":[{"value":"0000-0003-1218-2991","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Louise Heelan","name":"Louise","surname":"Heelan","rank":null,"pid":[{"value":"0000-0002-4879-0131","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Dominik Derendarz","name":"Dominik","surname":"Derendarz","rank":null,"pid":[{"value":"0000-0001-5660-3095","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Ning Zhou","name":"Ning","surname":"Zhou","rank":null,"pid":[{"value":"0000-0002-1775-2511","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Mihai Caprini","name":"Mihai","surname":"Caprini","rank":null,"pid":[{"value":"0000-0002-6806-6730","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Lee Sawyer","name":"Lee","surname":"Sawyer","rank":null,"pid":[{"value":"0000-0001-8295-0605","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Lydia Roos","name":"Lydia","surname":"Roos","rank":null,"pid":[{"value":"0000-0001-7151-9983","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Stanislav Nemecek","name":"Stanislav","surname":"Nemecek","rank":null,"pid":[{"value":"0000-0001-8978-7150","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Matthias Danninger","name":"Matthias","surname":"Danninger","rank":null,"pid":[{"value":"0000-0002-7807-7484","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Lailin Xu","name":"Lailin","surname":"Xu","rank":null,"pid":[{"value":"0000-0001-8997-3199","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Angel Campoverde","name":"Angel","surname":"Campoverde","rank":null,"pid":[{"value":"0000-0003-1968-1216","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Carl Gwilliam","name":"Carl","surname":"Gwilliam","rank":null,"pid":[{"value":"0000-0002-9401-5304","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Fabrizio Salvatore","name":"Fabrizio","surname":"Salvatore","rank":null,"pid":[{"value":"0000-0002-3709-1554","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Werner Wiedenmann","name":"Werner","surname":"Wiedenmann","rank":null,"pid":[{"value":"0000-0003-3605-3633","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Adriaan König","name":"Adriaan","surname":"König","rank":null,"pid":[{"value":"0000-0001-6702-6473","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Romain Kukla","name":"Romain","surname":"Kukla","rank":null,"pid":[{"value":"0000-0002-1140-2465","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Sarah Heim","name":"Sarah","surname":"Heim","rank":null,"pid":[{"value":"0000-0002-2639-6571","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Stamatios Gkaitatzis","name":"Stamatios","surname":"Gkaitatzis","rank":null,"pid":[{"value":"0000-0001-9420-7499","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Alison Elliot","name":"Alison","surname":"Elliot","rank":null,"pid":[{"value":"0000-0003-0921-0314","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Marc Escalier","name":"Marc","surname":"Escalier","rank":null,"pid":[{"value":"0000-0003-4270-2775","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Philipp Stolte","name":"Philipp","surname":"Stolte","rank":null,"pid":[{"value":"0000-0002-8828-3564","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Peter Loch","name":"Peter","surname":"Loch","rank":null,"pid":[{"value":"0000-0002-2005-671X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Tamara Vazquez Schroeder","name":"Tamara","surname":"Vazquez Schroeder","rank":null,"pid":[{"value":"0000-0002-9780-099X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"lily asquith","name":"lily","surname":"asquith","rank":null,"pid":[{"value":"0000-0001-8035-7162","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Javier Sanchez","name":"Javier","surname":"Sanchez","rank":null,"pid":[{"value":"0000-0001-9913-310X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Tomas Davidek","name":"Tomas","surname":"Davidek","rank":null,"pid":[{"value":"0000-0002-3770-8307","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Lidia Dell'Asta","name":"Lidia","surname":"Dell'Asta","rank":null,"pid":[{"value":"0000-0002-9601-4225","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Francisco Alonso","name":"Francisco","surname":"Alonso","rank":null,"pid":[{"value":"0000-0001-9431-8156","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"J. Katharina Behr","name":"J. Katharina","surname":"Behr","rank":null,"pid":[{"value":"0000-0002-5501-4640","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"MARIO MARTINEZ","name":"MARIO","surname":"MARTINEZ","rank":null,"pid":[{"value":"0000-0002-3135-945X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Konstantinos Bachas","name":"Konstantinos","surname":"Bachas","rank":null,"pid":[{"value":"0000-0002-9047-6517","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Arnaud Lucotte","name":"Arnaud","surname":"Lucotte","rank":null,"pid":[{"value":"0000-0002-5992-0640","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"scott snyder","name":"scott","surname":"snyder","rank":null,"pid":[{"value":"0000-0001-8610-8423","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Edson Carquin","name":"Edson","surname":"Carquin","rank":null,"pid":[{"value":"0000-0002-7863-1166","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Kristin Lohwasser","name":"Kristin","surname":"Lohwasser","rank":null,"pid":[{"value":"0000-0003-1833-9160","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jens Weingarten","name":"Jens","surname":"Weingarten","rank":null,"pid":[{"value":"0000-0003-2165-871X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Victor Maleev","name":"Victor","surname":"Maleev","rank":null,"pid":[{"value":"0000-0003-1028-8602","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Francesca Ungaro","name":"Francesca","surname":"Ungaro","rank":null,"pid":[{"value":"0000-0003-2005-595X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Koji Terashi","name":"Koji","surname":"Terashi","rank":null,"pid":[{"value":"0000-0001-6520-8070","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Kohei Yorita","name":"Kohei","surname":"Yorita","rank":null,"pid":[{"value":"0000-0003-1988-8401","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Roland Jansky","name":"Roland","surname":"Jansky","rank":null,"pid":[{"value":"0000-0003-0456-4658","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Sandro De Cecco","name":"Sandro","surname":"De Cecco","rank":null,"pid":[{"value":"0000-0003-4907-8610","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Wade Fisher","name":"Wade","surname":"Fisher","rank":null,"pid":[{"value":"0000-0003-3043-3045","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jaroslav Guenther","name":"Jaroslav","surname":"Guenther","rank":null,"pid":[{"value":"0000-0003-3189-3959","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Tatsuya Masubuchi","name":"Tatsuya","surname":"Masubuchi","rank":null,"pid":[{"value":"0000-0001-9984-8009","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Janusz Chwastowski","name":"Janusz","surname":"Chwastowski","rank":null,"pid":[{"value":"0000-0002-6190-8376","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Ian Watson","name":"Ian","surname":"Watson","rank":null,"pid":[{"value":"0000-0003-2141-3413","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Patrick Rieck","name":"Patrick","surname":"Rieck","rank":null,"pid":[{"value":"0000-0003-0290-0566","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Mario Lassnig","name":"Mario","surname":"Lassnig","rank":null,"pid":[{"value":"0000-0002-9541-0592","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jana Schaarschmidt","name":"Jana","surname":"Schaarschmidt","rank":null,"pid":[{"value":"0000-0002-0433-6439","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Joseph Reichert","name":"Joseph","surname":"Reichert","rank":null,"pid":[{"value":"0000-0003-2110-8021","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Bjarne Stugu","name":"Bjarne","surname":"Stugu","rank":null,"pid":[{"value":"0000-0002-1728-9272","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Paolo Gauzzi","name":"Paolo","surname":"Gauzzi","rank":null,"pid":[{"value":"0000-0003-4841-5822","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Sergei Smirnov","name":"Sergei","surname":"Smirnov","rank":null,"pid":[{"value":"0000-0002-6778-073X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Xiangyang Ju","name":"Xiangyang","surname":"Ju","rank":null,"pid":[{"value":"0000-0002-9745-1638","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Fernando Barreiro","name":"Fernando","surname":"Barreiro","rank":null,"pid":[{"value":"0000-0002-3021-0258","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Markus Cristinziani","name":"Markus","surname":"Cristinziani","rank":null,"pid":[{"value":"0000-0003-3893-9171","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Antonio Amorim","name":"Antonio","surname":"Amorim","rank":null,"pid":[{"value":"0000-0003-0638-2321","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Sune Jakobsen","name":"Sune","surname":"Jakobsen","rank":null,"pid":[{"value":"0000-0002-6564-040X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Alejandro Alonso","name":"Alejandro","surname":"Alonso","rank":null,"pid":[{"value":"0000-0003-1259-0573","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Makoto Shimojima","name":"Makoto","surname":"Shimojima","rank":null,"pid":[{"value":"0000-0002-8738-1664","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Francesco Guescini","name":"Francesco","surname":"Guescini","rank":null,"pid":[{"value":"0000-0001-5351-2673","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Christina Potter","name":"Christina","surname":"Potter","rank":null,"pid":[{"value":"0000-0002-9815-5208","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Evelina Bouhova-Thacker","name":"Evelina","surname":"Bouhova-Thacker","rank":null,"pid":[{"value":"0000-0002-5103-1558","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Eduard Simioni","name":"Eduard","surname":"Simioni","rank":null,"pid":[{"value":"0000-0002-8929-6236","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Paolo Camarri","name":"Paolo","surname":"Camarri","rank":null,"pid":[{"value":"0000-0002-5732-5645","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"William Leight","name":"William","surname":"Leight","rank":null,"pid":[{"value":"0000-0002-2968-7841","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Luis Roberto Flores Castillo","name":"Luis Roberto","surname":"Flores Castillo","rank":null,"pid":[{"value":"0000-0003-1551-5974","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Alessandro null","name":"Alessandro","surname":null,"rank":null,"pid":[{"value":"0000-0002-8224-6105","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Roman Lysak","name":"Roman","surname":"Lysak","rank":null,"pid":[{"value":"0000-0003-2990-1673","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Matteo Franchini","name":"Matteo","surname":"Franchini","rank":null,"pid":[{"value":"0000-0002-4554-252X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Martin Nagel","name":"Martin","surname":"Nagel","rank":null,"pid":[{"value":"0000-0002-2588-6691","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Harald Fox","name":"Harald","surname":"Fox","rank":null,"pid":[{"value":"0000-0003-3089-6090","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Klaus Moenig","name":"Klaus","surname":"Moenig","rank":null,"pid":[{"value":"0000-0002-3169-7117","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Sergey Karpov","name":"Sergey","surname":"Karpov","rank":null,"pid":[{"value":"0000-0002-2230-5353","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Remi Zaidan","name":"Remi","surname":"Zaidan","rank":null,"pid":[{"value":"0000-0002-3710-4554","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Kilian Rosbach","name":"Kilian","surname":"Rosbach","rank":null,"pid":[{"value":"0000-0002-4241-2949","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Pawel Klimek","name":"Pawel","surname":"Klimek","rank":null,"pid":[{"value":"0000-0003-1661-6873","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Nikolaos Konstantinidis","name":"Nikolaos","surname":"Konstantinidis","rank":null,"pid":[{"value":"0000-0002-4140-6360","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Alberto Mengarelli","name":"Alberto","surname":"Mengarelli","rank":null,"pid":[{"value":"0000-0002-1884-854X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Robert Kowalewski","name":"Robert","surname":"Kowalewski","rank":null,"pid":[{"value":"0000-0002-7314-0990","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Miguel Arratia","name":"Miguel","surname":"Arratia","rank":null,"pid":[{"value":"0000-0001-6877-3315","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Paola Giannetti","name":"Paola","surname":"Giannetti","rank":null,"pid":[{"value":"0000-0002-3721-9490","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Joern Lange","name":"Joern","surname":"Lange","rank":null,"pid":[{"value":"0000-0003-1307-1441","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Pavel Řezníček","name":"Pavel","surname":"Řezníček","rank":null,"pid":[{"value":"0000-0003-4017-9829","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Vojtech Pleskot","name":"Vojtech","surname":"Pleskot","rank":null,"pid":[{"value":"0000-0001-5435-497X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Federico Sforza","name":"Federico","surname":"Sforza","rank":null,"pid":[{"value":"0000-0002-4065-7352","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Danijela Bogavac","name":"Danijela","surname":"Bogavac","rank":null,"pid":[{"value":"0000-0003-2138-9062","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Nenad Vranjes","name":"Nenad","surname":"Vranjes","rank":null,"pid":[{"value":"0000-0001-5415-5225","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Peter Watkins","name":"Peter","surname":"Watkins","rank":null,"pid":[{"value":"0000-0002-1290-6833","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Yohei Yamaguchi","name":"Yohei","surname":"Yamaguchi","rank":null,"pid":[{"value":"0000-0002-3725-4800","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Matthias Saimpert","name":"Matthias","surname":"Saimpert","rank":null,"pid":[{"value":"0000-0002-3765-1320","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Alexander Grohsjean","name":"Alexander","surname":"Grohsjean","rank":null,"pid":[{"value":"0000-0003-0748-8494","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Tibor Zenis","name":"Tibor","surname":"Zenis","rank":null,"pid":[{"value":"0000-0001-8265-6916","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Stefano Camarda","name":"Stefano","surname":"Camarda","rank":null,"pid":[{"value":"0000-0003-0479-7689","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Carlos Lacasta","name":"Carlos","surname":"Lacasta","rank":null,"pid":[{"value":"0000-0002-2623-6252","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Oliver Ricken","name":"Oliver","surname":"Ricken","rank":null,"pid":[{"value":"0000-0001-5107-7276","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Claude Leroy","name":"Claude","surname":"Leroy","rank":null,"pid":[{"value":"0000-0003-3105-7045","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Murrough Landon","name":"Murrough","surname":"Landon","rank":null,"pid":[{"value":"0000-0001-6828-9769","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Martin White","name":"Martin","surname":"White","rank":null,"pid":[{"value":"0000-0001-5474-4580","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Dimitrii Krasnopevtsev","name":"Dimitrii","surname":"Krasnopevtsev","rank":null,"pid":[{"value":"0000-0002-6356-372X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Susana Cabrera Urbán","name":"Susana","surname":"Cabrera Urbán","rank":null,"pid":[{"value":"0000-0001-7640-7913","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Hans-Christian Schultz-Coulon","name":"Hans-Christian","surname":"Schultz-Coulon","rank":null,"pid":[{"value":"0000-0002-0860-7240","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Stephen Jiggins","name":"Stephen","surname":"Jiggins","rank":null,"pid":[{"value":"0000-0003-2906-1977","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Andre Sopczak","name":"Andre","surname":"Sopczak","rank":null,"pid":[{"value":"0000-0001-6981-0544","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Cristinel Diaconu","name":"Cristinel","surname":"Diaconu","rank":null,"pid":[{"value":"0000-0002-6193-5091","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Hector de la Torre Perez","name":"Hector","surname":"de la Torre Perez","rank":null,"pid":[{"value":"0000-0002-4516-5269","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Costa Mezquita","name":"Costa","surname":"Mezquita","rank":null,"pid":[{"value":"0000-0002-2064-2954","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Sahal Yacoob","name":"Sahal","surname":"Yacoob","rank":null,"pid":[{"value":"0000-0001-6977-3456","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jian Liu","name":"Jian","surname":"Liu","rank":null,"pid":[{"value":"0000-0002-8397-7620","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Oxana Smirnova","name":"Oxana","surname":"Smirnova","rank":null,"pid":[{"value":"0000-0003-2517-531X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Thomas Koffas","name":"Thomas","surname":"Koffas","rank":null,"pid":[{"value":"0000-0001-9612-4988","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Stephen Burke","name":"Stephen","surname":"Burke","rank":null,"pid":[{"value":"0000-0002-1962-8493","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Elizaveta Shabalina","name":"Elizaveta","surname":"Shabalina","rank":null,"pid":[{"value":"0000-0003-4849-556X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Nicolas Ellis","name":"Nicolas","surname":"Ellis","rank":null,"pid":[{"value":"0000-0002-1920-4930","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Robert Astalos","name":"Robert","surname":"Astalos","rank":null,"pid":[{"value":"0000-0001-5095-605X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Valerio Dao","name":"Valerio","surname":"Dao","rank":null,"pid":[{"value":"0000-0003-1645-8393","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Javier Alberto Murillo Quijada","name":"Javier Alberto","surname":"Murillo Quijada","rank":null,"pid":[{"value":"0000-0003-4933-2092","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Alan Litke","name":"Alan","surname":"Litke","rank":null,"pid":[{"value":"0000-0003-3973-3642","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Hans Peter Beck","name":"Hans Peter","surname":"Beck","rank":null,"pid":[{"value":"0000-0001-7212-1096","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Flavia De Almeida Dias","name":"Flavia","surname":"De Almeida Dias","rank":null,"pid":[{"value":"0000-0001-6882-5402","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Mykhailo Lisovyi","name":"Mykhailo","surname":"Lisovyi","rank":null,"pid":[{"value":"0000-0002-3014-5855","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Frank Ellinghaus","name":"Frank","surname":"Ellinghaus","rank":null,"pid":[{"value":"0000-0003-3596-5331","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Alexey Ezhilov","name":"Alexey","surname":"Ezhilov","rank":null,"pid":[{"value":"0000-0002-7520-293X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Anna Sfyrla","name":"Anna","surname":"Sfyrla","rank":null,"pid":[{"value":"0000-0002-3003-9905","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Marc-André Pleier","name":"Marc-André","surname":"Pleier","rank":null,"pid":[{"value":"0000-0002-9461-3494","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Aliaksei Hrynevich","name":"Aliaksei","surname":"Hrynevich","rank":null,"pid":[{"value":"0000-0002-5411-114X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Lucia Masetti","name":"Lucia","surname":"Masetti","rank":null,"pid":[{"value":"0000-0002-0038-5372","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Petr Balek","name":"Petr","surname":"Balek","rank":null,"pid":[{"value":"0000-0002-0942-1966","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Marco Sessa","name":"Marco","surname":"Sessa","rank":null,"pid":[{"value":"0000-0002-1402-7525","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Ilija Vukotic","name":"Ilija","surname":"Vukotic","rank":null,"pid":[{"value":"0000-0003-0472-3516","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Tova Holmes","name":"Tova","surname":"Holmes","rank":null,"pid":[{"value":"0000-0002-3959-5174","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Hermann Kolanoski","name":"Hermann","surname":"Kolanoski","rank":null,"pid":[{"value":"0000-0003-0435-2524","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Sigve Haug","name":"Sigve","surname":"Haug","rank":null,"pid":[{"value":"0000-0003-0442-3361","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Bruno Galhardo","name":"Bruno","surname":"Galhardo","rank":null,"pid":[{"value":"0000-0003-0641-301X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Nello Bruscino","name":"Nello","surname":"Bruscino","rank":null,"pid":[{"value":"0000-0002-6168-689X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jonas Strandberg","name":"Jonas","surname":"Strandberg","rank":null,"pid":[{"value":"0000-0002-8913-0981","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Riccardo Vari","name":"Riccardo","surname":"Vari","rank":null,"pid":[{"value":"0000-0002-2814-1337","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Emmanuel Sauvan","name":"Emmanuel","surname":"Sauvan","rank":null,"pid":[{"value":"0000-0003-1921-2647","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Hartmut Sadrozinski","name":"Hartmut","surname":"Sadrozinski","rank":null,"pid":[{"value":"0000-0003-0019-5410","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Juerg Beringer","name":"Juerg","surname":"Beringer","rank":null,"pid":[{"value":"0000-0002-9975-1781","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"laurent chevalier","name":"laurent","surname":"chevalier","rank":null,"pid":[{"value":"0000-0003-3762-7264","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Dominik Duda","name":"Dominik","surname":"Duda","rank":null,"pid":[{"value":"0000-0002-5916-3467","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Takanori Kono","name":"Takanori","surname":"Kono","rank":null,"pid":[{"value":"0000-0003-1553-2950","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Igor Gorelov","name":"Igor","surname":"Gorelov","rank":null,"pid":[{"value":"0000-0001-5570-0133","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Noam Tal Hod","name":"Noam","surname":"Tal Hod","rank":null,"pid":[{"value":"0000-0001-5241-0544","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Umberto De Sanctis","name":"Umberto","surname":"De Sanctis","rank":null,"pid":[{"value":"0000-0003-4704-525X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Andrii Tykhonov","name":"Andrii","surname":"Tykhonov","rank":null,"pid":[{"value":"0000-0003-2908-7915","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Francois Corriveau","name":"Francois","surname":"Corriveau","rank":null,"pid":[{"value":"0000-0002-4970-7600","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Michaela Queitsch-Maitland","name":"Michaela","surname":"Queitsch-Maitland","rank":null,"pid":[{"value":"0000-0003-4643-515X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Iacopo Vivarelli","name":"Iacopo","surname":"Vivarelli","rank":null,"pid":[{"value":"0000-0003-0097-123X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"sotirios vlachos","name":"sotirios","surname":"vlachos","rank":null,"pid":[{"value":"0000-0002-1879-3745","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Archil Durglishvili","name":"Archil","surname":"Durglishvili","rank":null,"pid":[{"value":"0000-0003-4157-592X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Vladimir Cindro","name":"Vladimir","surname":"Cindro","rank":null,"pid":[{"value":"0000-0002-2037-7185","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Tim Adye","name":"Tim","surname":"Adye","rank":null,"pid":[{"value":"0000-0003-0627-5059","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Ruggero Turra","name":"Ruggero","surname":"Turra","rank":null,"pid":[{"value":"0000-0001-8740-796X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Susana Amor Santos","name":"Susana","surname":"Amor Santos","rank":null,"pid":[{"value":"0000-0001-7566-6067","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Thorsten Wengler","name":"Thorsten","surname":"Wengler","rank":null,"pid":[{"value":"0000-0002-4375-5265","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Sergio Grancagnolo","name":"Sergio","surname":"Grancagnolo","rank":null,"pid":[{"value":"0000-0001-8490-8304","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Koji Sato","name":"Koji","surname":"Sato","rank":null,"pid":[{"value":"0000-0001-8988-4065","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Marjorie Shapiro","name":"Marjorie","surname":"Shapiro","rank":null,"pid":[{"value":"0000-0001-8540-9654","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Paul Thompson","name":"Paul","surname":"Thompson","rank":null,"pid":[{"value":"0000-0002-6239-7715","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Daniele Zanzi","name":"Daniele","surname":"Zanzi","rank":null,"pid":[{"value":"0000-0002-1222-7937","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Adrian Irles","name":"Adrian","surname":"Irles","rank":null,"pid":[{"value":"0000-0001-5668-151X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Walter Hopkins","name":"Walter","surname":"Hopkins","rank":null,"pid":[{"value":"0000-0001-7814-8740","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Aurelio Juste","name":"Aurelio","surname":"Juste","rank":null,"pid":[{"value":"0000-0002-1558-3291","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Yoram Rozen","name":"Yoram","surname":"Rozen","rank":null,"pid":[{"value":"0000-0001-6969-0634","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Mateusz Dyndal","name":"Mateusz","surname":"Dyndal","rank":null,"pid":[{"value":"0000-0001-9632-6352","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Monika Wielers","name":"Monika","surname":"Wielers","rank":null,"pid":[{"value":"0000-0001-9232-4827","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Anna Kaczmarska","name":"Anna","surname":"Kaczmarska","rank":null,"pid":[{"value":"0000-0002-8880-4120","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Evgeny Khramov","name":"Evgeny","surname":"Khramov","rank":null,"pid":[{"value":"0000-0001-7400-6454","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Vincent Alexander Croft","name":"Vincent Alexander","surname":"Croft","rank":null,"pid":[{"value":"0000-0002-8731-4525","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Yuji Yamazaki","name":"Yuji","surname":"Yamazaki","rank":null,"pid":[{"value":"0000-0003-3710-6995","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Sau Lan Wu","name":"Sau Lan","surname":"Wu","rank":null,"pid":[{"value":"0000-0001-5866-1504","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Kevin Kröninger","name":"Kevin","surname":"Kröninger","rank":null,"pid":[{"value":"0000-0001-9873-0228","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Calin Alexa","name":"Calin","surname":"Alexa","rank":null,"pid":[{"value":"0000-0003-0922-7669","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Frank Filthaut","name":"Frank","surname":"Filthaut","rank":null,"pid":[{"value":"0000-0003-3338-2247","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Alaettin Serhan Mete","name":"Alaettin Serhan","surname":"Mete","rank":null,"pid":[{"value":"0000-0002-5508-530X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Michael Duehrssen-Debling","name":"Michael","surname":"Duehrssen-Debling","rank":null,"pid":[{"value":"0000-0002-5833-7058","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Torre Wenaus","name":"Torre","surname":"Wenaus","rank":null,"pid":[{"value":"0000-0002-8678-893X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Michele LIVAN","name":"Michele","surname":"LIVAN","rank":null,"pid":[{"value":"0000-0002-5877-0062","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jose Guillermo Panduro Vazquez","name":"Jose Guillermo","surname":"Panduro Vazquez","rank":null,"pid":[{"value":"0000-0003-2605-8940","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Pascal Pralavorio","name":"Pascal","surname":"Pralavorio","rank":null,"pid":[{"value":"0000-0002-2452-6715","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Yuto Minami","name":"Yuto","surname":"Minami","rank":null,"pid":[{"value":"0000-0003-2176-8089","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Stephen Hillier","name":"Stephen","surname":"Hillier","rank":null,"pid":[{"value":"0000-0002-7599-6469","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Simon Viel","name":"Simon","surname":"Viel","rank":null,"pid":[{"value":"0000-0001-9554-4059","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Andreas Kugel","name":"Andreas","surname":"Kugel","rank":null,"pid":[{"value":"0000-0002-8493-6660","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Lene Kristian Bryngemark","name":"Lene Kristian","surname":"Bryngemark","rank":null,"pid":[{"value":"0000-0002-8420-3408","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Guenter Duckeck","name":"Guenter","surname":"Duckeck","rank":null,"pid":[{"value":"0000-0002-7756-7801","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Alexey Anisenkov","name":"Alexey","surname":"Anisenkov","rank":null,"pid":[{"value":"0000-0002-7201-5936","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Javier Jiménez Peña","name":"Javier","surname":"Jiménez Peña","rank":null,"pid":[{"value":"0000-0002-8705-628X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Sascha null","name":"Sascha","surname":null,"rank":null,"pid":[{"value":"0000-0003-2941-2829","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Evelyn Thomson","name":"Evelyn","surname":"Thomson","rank":null,"pid":[{"value":"0000-0001-6031-2768","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Andrea Formica","name":"Andrea","surname":"Formica","rank":null,"pid":[{"value":"0000-0001-8308-2643","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Mattias Ellert","name":"Mattias","surname":"Ellert","rank":null,"pid":[{"value":"0000-0001-5265-3175","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Richard Keeler","name":"Richard","surname":"Keeler","rank":null,"pid":[{"value":"0000-0002-0510-4189","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Karolos Potamianos","name":"Karolos","surname":"Potamianos","rank":null,"pid":[{"value":"0000-0001-7839-9785","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Muhammad Alhroob","name":"Muhammad","surname":"Alhroob","rank":null,"pid":[{"value":"0000-0001-7569-7111","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Marie-Helene Genest","name":"Marie-Helene","surname":"Genest","rank":null,"pid":[{"value":"0000-0002-4098-2024","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"melissa franklin","name":"melissa","surname":"franklin","rank":null,"pid":[{"value":"0000-0002-6595-883X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"John Baines","name":"John","surname":"Baines","rank":null,"pid":[{"value":"0000-0003-0770-2702","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jean-Baptiste de Vivie","name":"Jean-Baptiste","surname":"de Vivie","rank":null,"pid":[{"value":"0000-0001-9163-2211","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Kristian Gregersen","name":"Kristian","surname":"Gregersen","rank":null,"pid":[{"value":"0000-0003-0295-1670","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Elisabeth Schopf","name":"Elisabeth","surname":"Schopf","rank":null,"pid":[{"value":"0000-0002-9340-2214","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Tristan Beau","name":"Tristan","surname":"Beau","rank":null,"pid":[{"value":"0000-0002-2022-2140","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Ask Emil Løvschall-Jensen","name":"Ask Emil","surname":"Løvschall-Jensen","rank":null,"pid":[{"value":"0000-0003-1834-4904","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Karel Smolek","name":"Karel","surname":"Smolek","rank":null,"pid":[{"value":"0000-0002-5996-7000","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Wendy Taylor","name":"Wendy","surname":"Taylor","rank":null,"pid":[{"value":"0000-0002-6596-9125","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"James Robinson","name":"James","surname":"Robinson","rank":null,"pid":[{"value":"0000-0002-2856-9413","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Arno Straessner","name":"Arno","surname":"Straessner","rank":null,"pid":[{"value":"0000-0003-2460-6659","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Bruno Lenzi","name":"Bruno","surname":"Lenzi","rank":null,"pid":[{"value":"0000-0002-1024-4004","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Thomas G McCarthy","name":"Thomas G","surname":"McCarthy","rank":null,"pid":[{"value":"0000-0002-1182-3526","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Maria Curatolo","name":"Maria","surname":"Curatolo","rank":null,"pid":[{"value":"0000-0003-0978-4879","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Zuzana Rurikova","name":"Zuzana","surname":"Rurikova","rank":null,"pid":[{"value":"0000-0003-3051-9607","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Norman Gee","name":"Norman","surname":"Gee","rank":null,"pid":[{"value":"0000-0002-8833-3154","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Craig Buttar","name":"Craig","surname":"Buttar","rank":null,"pid":[{"value":"0000-0003-0188-6491","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Sophie Trincaz-Duvoid","name":"Sophie","surname":"Trincaz-Duvoid","rank":null,"pid":[{"value":"0000-0001-5913-0828","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Danilo Enoque Ferreira de Lima","name":"Danilo Enoque","surname":"Ferreira de Lima","rank":null,"pid":[{"value":"0000-0002-6606-3595","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Nektarios Benekos","name":"Nektarios","surname":"Benekos","rank":null,"pid":[{"value":"0000-0001-7831-8762","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Evgenii Baldin","name":"Evgenii","surname":"Baldin","rank":null,"pid":[{"value":"0000-0002-9854-975X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Craig Sawyer","name":"Craig","surname":"Sawyer","rank":null,"pid":[{"value":"0000-0002-2027-1428","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"George Redlinger","name":"George","surname":"Redlinger","rank":null,"pid":[{"value":"0000-0002-6437-9991","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Philip Sommer","name":"Philip","surname":"Sommer","rank":null,"pid":[{"value":"0000-0003-1703-7304","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Simone Monzani","name":"Simone","surname":"Monzani","rank":null,"pid":[{"value":"0000-0002-0479-2207","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Eirik Gramstad","name":"Eirik","surname":"Gramstad","rank":null,"pid":[{"value":"0000-0001-5792-5352","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Anna Lipniacka","name":"Anna","surname":"Lipniacka","rank":null,"pid":[{"value":"0000-0002-8759-8564","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Oana Vickey Boeriu","name":"Oana","surname":"Vickey Boeriu","rank":null,"pid":[{"value":"0000-0002-6497-6809","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Fridolin Dittus","name":"Fridolin","surname":"Dittus","rank":null,"pid":[{"value":"0000-0002-1760-8237","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Antonio Salvucci","name":"Antonio","surname":"Salvucci","rank":null,"pid":[{"value":"0000-0003-4876-2613","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Carlo Dallapiccola","name":"Carlo","surname":"Dallapiccola","rank":null,"pid":[{"value":"0000-0002-1391-2477","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Konstantinos Ntekas","name":"Konstantinos","surname":"Ntekas","rank":null,"pid":[{"value":"0000-0001-9252-6509","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Juan Antonio Aguilar Saavedra","name":"Juan Antonio","surname":"Aguilar Saavedra","rank":null,"pid":[{"value":"0000-0002-5475-8920","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Martine Bosman","name":"Martine","surname":"Bosman","rank":null,"pid":[{"value":"0000-0002-7290-643X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Trevor Vickey","name":"Trevor","surname":"Vickey","rank":null,"pid":[{"value":"0000-0002-1596-2611","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Christian Ohm","name":"Christian","surname":"Ohm","rank":null,"pid":[{"value":"0000-0002-8015-7512","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"William Davey","name":"William","surname":"Davey","rank":null,"pid":[{"value":"0000-0002-8140-8619","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Wolfgang Walkowiak","name":"Wolfgang","surname":"Walkowiak","rank":null,"pid":[{"value":"0000-0002-0385-3784","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Austin Basye","name":"Austin","surname":"Basye","rank":null,"pid":[{"value":"0000-0002-7519-1310","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Kuhan Wang","name":"Kuhan","surname":"Wang","rank":null,"pid":[{"value":"0000-0002-6151-0034","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Cristiano Alpigiani","name":"Cristiano","surname":"Alpigiani","rank":null,"pid":[{"value":"0000-0002-7641-5814","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"James Monk","name":"James","surname":"Monk","rank":null,"pid":[{"value":"0000-0001-8471-9247","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Christopher Pollard","name":"Christopher","surname":"Pollard","rank":null,"pid":[{"value":"0000-0002-3690-3960","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jozsef Toth","name":"Jozsef","surname":"Toth","rank":null,"pid":[{"value":"0000-0001-9128-6080","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Vitaliano Chiarella","name":"Vitaliano","surname":"Chiarella","rank":null,"pid":[{"value":"0000-0002-4210-2924","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jos Vermeulen","name":"Jos","surname":"Vermeulen","rank":null,"pid":[{"value":"0000-0003-4378-5736","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Yann Coadou","name":"Yann","surname":"Coadou","rank":null,"pid":[{"value":"0000-0001-8195-7004","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Christine Kourkoumelis","name":"Christine","surname":"Kourkoumelis","rank":null,"pid":[{"value":"0000-0003-0083-274X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Karishma Sekhon","name":"Karishma","surname":"Sekhon","rank":null,"pid":[{"value":"0000-0001-7677-8394","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Kun Liu","name":"Kun","surname":"Liu","rank":null,"pid":[{"value":"0000-0001-5807-0501","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Matt LeBlanc","name":"Matt","surname":"LeBlanc","rank":null,"pid":[{"value":"0000-0001-5977-6418","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Ewan Hill","name":"Ewan","surname":"Hill","rank":null,"pid":[{"value":"0000-0002-1725-7414","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Diane Cinca","name":"Diane","surname":"Cinca","rank":null,"pid":[{"value":"0000-0003-0944-8998","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Benedict Tobias Winter","name":"Benedict Tobias","surname":"Winter","rank":null,"pid":[{"value":"0000-0001-9606-7688","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Steven Schramm","name":"Steven","surname":"Schramm","rank":null,"pid":[{"value":"0000-0001-9031-6751","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Yusheng Wu","name":"Yusheng","surname":"Wu","rank":null,"pid":[{"value":"0000-0002-1528-4865","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Orel Gueta","name":"Orel","surname":"Gueta","rank":null,"pid":[{"value":"0000-0002-9440-2398","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Federico Meloni","name":"Federico","surname":"Meloni","rank":null,"pid":[{"value":"0000-0001-7075-2214","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Sylvain Tisserant","name":"Sylvain","surname":"Tisserant","rank":null,"pid":[{"value":"0000-0002-0294-6727","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Dimitrios Iliadis","name":"Dimitrios","surname":"Iliadis","rank":null,"pid":[{"value":"0000-0001-6303-2761","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Sebastien Binet","name":"Sebastien","surname":"Binet","rank":null,"pid":[{"value":"0000-0003-4913-6104","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Marcella Bona","name":"Marcella","surname":"Bona","rank":null,"pid":[{"value":"0000-0002-9660-580X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Ki Lie","name":"Ki","surname":"Lie","rank":null,"pid":[{"value":"0000-0002-5779-5989","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"David Sankey","name":"David","surname":"Sankey","rank":null,"pid":[{"value":"0000-0003-0955-4213","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Michele Faucci Giannelli","name":"Michele","surname":"Faucci Giannelli","rank":null,"pid":[{"value":"0000-0003-3731-820X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Georges Azuelos","name":"Georges","surname":"Azuelos","rank":null,"pid":[{"value":"0000-0003-4241-022X","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"David Britton","name":"David","surname":"Britton","rank":null,"pid":[{"value":"0000-0001-9998-4342","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Henri Bachacou","name":"Henri","surname":"Bachacou","rank":null,"pid":[{"value":"0000-0002-2256-4515","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Stefania Stucci","name":"Stefania","surname":"Stucci","rank":null,"pid":[{"value":"0000-0002-1639-4484","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Peter Berta","name":"Peter","surname":"Berta","rank":null,"pid":[{"value":"0000-0003-0780-0345","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"SERKANT ALİ ÇETİN","name":"SERKANT ALİ","surname":"ÇETİN","rank":null,"pid":[{"value":"0000-0001-5050-8441","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Alexey Zhemchugov","name":"Alexey","surname":"Zhemchugov","rank":null,"pid":[{"value":"0000-0002-3360-4965","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Yasushi Nagasaka","name":"Yasushi","surname":"Nagasaka","rank":null,"pid":[{"value":"0000-0002-3669-9525","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"James Walder","name":"James","surname":"Walder","rank":null,"pid":[{"value":"0000-0002-9039-8758","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Marina Rotaru","name":"Marina","surname":"Rotaru","rank":null,"pid":[{"value":"0000-0003-4088-6275","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Chunhui Chen","name":"Chunhui","surname":"Chen","rank":null,"pid":[{"value":"0000-0003-1589-9955","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Valentina Tudorache","name":"Valentina","surname":"Tudorache","rank":null,"pid":[{"value":"0000-0001-5384-3843","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Amanda Cooper-Sarkar","name":"Amanda","surname":"Cooper-Sarkar","rank":null,"pid":[{"value":"0000-0002-7107-5902","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Paul Dervan","name":"Paul","surname":"Dervan","rank":null,"pid":[{"value":"0000-0003-3929-8046","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Laura Gonella","name":"Laura","surname":"Gonella","rank":null,"pid":[{"value":"0000-0002-4919-0808","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Georges Aad","name":"Georges","surname":"Aad","rank":null,"pid":[{"value":"0000-0002-6665-4934","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Hok-Chuen Cheng","name":"Hok-Chuen","surname":"Cheng","rank":null,"pid":[{"value":"0000-0002-8912-4389","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Michal Svatos","name":"Michal","surname":"Svatos","rank":null,"pid":[{"value":"0000-0002-7199-3383","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jens Janssen","name":"Jens","surname":"Janssen","rank":null,"pid":[{"value":"0000-0002-2391-3078","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Jana Faltova","name":"Jana","surname":"Faltova","rank":null,"pid":[{"value":"0000-0003-4278-7182","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Trisha Farooque","name":"Trisha","surname":"Farooque","rank":null,"pid":[{"value":"0000-0003-1363-9324","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"andrea gabrielli","name":"andrea","surname":"gabrielli","rank":null,"pid":[{"value":"0000-0003-0768-9325","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Santiago Gonzalez de la Hoz","name":"Santiago","surname":"Gonzalez de la Hoz","rank":null,"pid":[{"value":"0000-0001-5304-5390","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"José Ocariz","name":"José","surname":"Ocariz","rank":null,"pid":[{"value":"0000-0003-2262-0780","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null},{"fullname":"Michele Weber","name":"Michele","surname":"Weber","rank":null,"pid":[{"value":"0000-0002-2770-9031","qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"ORCID","schemename":"ORCID"},"dataInfo":null}],"affiliation":null}] diff --git a/dhp-common/src/test/resources/eu/dnetlib/dhp/oa/merge/authors_publication_sample.json b/dhp-common/src/test/resources/eu/dnetlib/dhp/oa/merge/authors_publication_sample.json new file mode 100644 index 000000000..eac239b93 --- /dev/null +++ b/dhp-common/src/test/resources/eu/dnetlib/dhp/oa/merge/authors_publication_sample.json @@ -0,0 +1,2 @@ +50|arXiv_dedup_::34e03f2336b8b28286550425e65634ea +[{"fullname":"Aad, G.","name":"G.","surname":"Aad","rank":1,"pid":[],"affiliation":null},{"fullname":"Ayoub, M.K.","name":"M. K.","surname":"Ayoub","rank":2,"pid":[],"affiliation":null},{"fullname":"Bassalat, A.","name":"A.","surname":"Bassalat","rank":3,"pid":[],"affiliation":null},{"fullname":"Becot, C.","name":"C.","surname":"Becot","rank":4,"pid":[],"affiliation":null},{"fullname":"Binet, S.","name":"S.","surname":"Binet","rank":5,"pid":[],"affiliation":null},{"fullname":"Bourdarios, C.","name":"C.","surname":"Bourdarios","rank":6,"pid":[],"affiliation":null},{"fullname":"Regie, J.B. de Vivie de","name":"J. B. Vivie","surname":"Regie","rank":7,"pid":[],"affiliation":null},{"fullname":"Delgove, D.","name":"D.","surname":"Delgove","rank":8,"pid":[],"affiliation":null},{"fullname":"Duflot, L.","name":"L.","surname":"Duflot","rank":9,"pid":[],"affiliation":null},{"fullname":"Escalier, M.","name":"M.","surname":"Escalier","rank":10,"pid":[],"affiliation":null},{"fullname":"Fayard, L.","name":"L.","surname":"Fayard","rank":11,"pid":[],"affiliation":null},{"fullname":"Fournier, D.","name":"D.","surname":"Fournier","rank":12,"pid":[],"affiliation":null},{"fullname":"Gkougkousis, E.L.","name":"E. L.","surname":"Gkougkousis","rank":13,"pid":[],"affiliation":null},{"fullname":"Grivaz, J.-F.","name":"J. -F","surname":"Grivaz","rank":14,"pid":[],"affiliation":null},{"fullname":"Guillemin, T.","name":"T.","surname":"Guillemin","rank":15,"pid":[],"affiliation":null},{"fullname":"Hariri, F.","name":"F.","surname":"Hariri","rank":16,"pid":[],"affiliation":null},{"fullname":"Henrot-Versillé, S.","name":"S.","surname":"Henrot-Versillé","rank":17,"pid":[],"affiliation":null},{"fullname":"Hrivnac, J.","name":"J.","surname":"Hrivnac","rank":18,"pid":[],"affiliation":null},{"fullname":"Iconomidou-Fayard, L.","name":"L.","surname":"Iconomidou-Fayard","rank":19,"pid":[],"affiliation":null},{"fullname":"Kado, M.","name":"M.","surname":"Kado","rank":20,"pid":[],"affiliation":null},{"fullname":"Lounis, A.","name":"A.","surname":"Lounis","rank":21,"pid":[],"affiliation":null},{"fullname":"Makovec, N.","name":"N.","surname":"Makovec","rank":22,"pid":[],"affiliation":null},{"fullname":"Morange, N.","name":"N.","surname":"Morange","rank":23,"pid":[],"affiliation":null},{"fullname":"Nellist, C.","name":"C.","surname":"Nellist","rank":24,"pid":[],"affiliation":null},{"fullname":"Poggioli, L.","name":"L.","surname":"Poggioli","rank":25,"pid":[],"affiliation":null},{"fullname":"Puzo, P.","name":"P.","surname":"Puzo","rank":26,"pid":[],"affiliation":null},{"fullname":"Renaud, A.","name":"A.","surname":"Renaud","rank":27,"pid":[],"affiliation":null},{"fullname":"Rousseau, D.","name":"D.","surname":"Rousseau","rank":28,"pid":[],"affiliation":null},{"fullname":"Rybkin, G.","name":"G.","surname":"Rybkin","rank":29,"pid":[],"affiliation":null},{"fullname":"Schaffer, A.C.","name":"A. C.","surname":"Schaffer","rank":30,"pid":[],"affiliation":null},{"fullname":"Scifo, E.","name":"E.","surname":"Scifo","rank":31,"pid":[],"affiliation":null},{"fullname":"Serin, L.","name":"L.","surname":"Serin","rank":32,"pid":[],"affiliation":null},{"fullname":"Simion, S.","name":"S.","surname":"Simion","rank":33,"pid":[],"affiliation":null},{"fullname":"Tanaka, R.","name":"R.","surname":"Tanaka","rank":34,"pid":[],"affiliation":null},{"fullname":"Tran, H.L.","name":"H. L.","surname":"Tran","rank":35,"pid":[],"affiliation":null},{"fullname":"Zerwas, D.","name":"D.","surname":"Zerwas","rank":36,"pid":[],"affiliation":null},{"fullname":"Zhang, Zhongkai","name":"Zhongkai","surname":"Zhang","rank":37,"pid":[],"affiliation":null},{"fullname":"Zhao, Y.","name":"Y.","surname":"Zhao","rank":38,"pid":[],"affiliation":null},{"fullname":"Rahal, G.","name":"G.","surname":"Rahal","rank":39,"pid":[],"affiliation":null},{"fullname":"Barnovska, Z.","name":"Z.","surname":"Barnovska","rank":40,"pid":[],"affiliation":null},{"fullname":"Berger, N.","name":"N.","surname":"Berger","rank":41,"pid":[],"affiliation":null},{"fullname":"Delmastro, M.","name":"M.","surname":"Delmastro","rank":42,"pid":[],"affiliation":null},{"fullname":"Ciaccio, L. Di","name":"L. Di","surname":"Ciaccio","rank":43,"pid":[],"affiliation":null},{"fullname":"Elles, S.","name":"S.","surname":"Elles","rank":44,"pid":[],"affiliation":null},{"fullname":"Hryn’ova, T.","name":"T.","surname":"Hryn’ova","rank":45,"pid":[],"affiliation":null},{"fullname":"Jézéquel, S.","name":"S.","surname":"Jézéquel","rank":46,"pid":[],"affiliation":null},{"fullname":"Koletsou, I.","name":"I.","surname":"Koletsou","rank":47,"pid":[],"affiliation":null},{"fullname":"Lafaye, R.","name":"R.","surname":"Lafaye","rank":48,"pid":[],"affiliation":null},{"fullname":"Leveque, J.","name":"J.","surname":"Leveque","rank":49,"pid":[],"affiliation":null},{"fullname":"Massol, N.","name":"N.","surname":"Massol","rank":50,"pid":[],"affiliation":null},{"fullname":"Sauvage, G.","name":"G.","surname":"Sauvage","rank":51,"pid":[],"affiliation":null},{"fullname":"Sauvan, E.","name":"E.","surname":"Sauvan","rank":52,"pid":[],"affiliation":null},{"fullname":"Simard, O.","name":"O.","surname":"Simard","rank":53,"pid":[],"affiliation":null},{"fullname":"Todorov, T.","name":"T.","surname":"Todorov","rank":54,"pid":[],"affiliation":null},{"fullname":"Wingerter-Seez, I.","name":"I.","surname":"Wingerter-Seez","rank":55,"pid":[],"affiliation":null},{"fullname":"Albrand, S.","name":"S.","surname":"Albrand","rank":56,"pid":[],"affiliation":null},{"fullname":"Brown, J.","name":"J.","surname":"Brown","rank":57,"pid":[],"affiliation":null},{"fullname":"Collot, J.","name":"J.","surname":"Collot","rank":58,"pid":[],"affiliation":null},{"fullname":"Crépé-Renaudin, S.","name":"S.","surname":"Crépé-Renaudin","rank":59,"pid":[],"affiliation":null},{"fullname":"Delsart, P.A.","name":"P. A.","surname":"Delsart","rank":60,"pid":[],"affiliation":null},{"fullname":"Gabaldon, C.","name":"C.","surname":"Gabaldon","rank":61,"pid":[],"affiliation":null},{"fullname":"Genest, M.H.","name":"M. H.","surname":"Genest","rank":62,"pid":[],"affiliation":null},{"fullname":"Hostachy, J.Y.","name":"J. Y.","surname":"Hostachy","rank":63,"pid":[],"affiliation":null},{"fullname":"Ledroit-Guillon, F.","name":"F.","surname":"Ledroit-Guillon","rank":64,"pid":[],"affiliation":null},{"fullname":"Lleres, A.","name":"A.","surname":"Lleres","rank":65,"pid":[],"affiliation":null},{"fullname":"Lucotte, A.","name":"A.","surname":"Lucotte","rank":66,"pid":[],"affiliation":null},{"fullname":"Malek, F.","name":"F.","surname":"Malek","rank":67,"pid":[],"affiliation":null},{"fullname":"Monini, C.","name":"C.","surname":"Monini","rank":68,"pid":[],"affiliation":null},{"fullname":"Stark, J.","name":"J.","surname":"Stark","rank":69,"pid":[],"affiliation":null},{"fullname":"Trocmé, B.","name":"B.","surname":"Trocmé","rank":70,"pid":[],"affiliation":null},{"fullname":"Wu, M.","name":"M.","surname":"Wu","rank":71,"pid":[],"affiliation":null},{"fullname":"Alio, L.","name":"L.","surname":"Alio","rank":72,"pid":[],"affiliation":null},{"fullname":"Barbero, M.","name":"M.","surname":"Barbero","rank":73,"pid":[],"affiliation":null},{"fullname":"Coadou, Y.","name":"Y.","surname":"Coadou","rank":74,"pid":[],"affiliation":null},{"fullname":"Diaconu, C.","name":"C.","surname":"Diaconu","rank":75,"pid":[],"affiliation":null},{"fullname":"Diglio, Sara","name":"Sara","surname":"Diglio","rank":76,"pid":[],"affiliation":null},{"fullname":"Djama, F.","name":"F.","surname":"Djama","rank":77,"pid":[],"affiliation":null},{"fullname":"Duccu, O.","name":"O.","surname":"Duccu","rank":78,"pid":[],"affiliation":null},{"fullname":"Feligioni, L.","name":"L.","surname":"Feligioni","rank":79,"pid":[],"affiliation":null},{"fullname":"Gao, J.","name":"J.","surname":"Gao","rank":80,"pid":[],"affiliation":null},{"fullname":"Hallewell, G.D.","name":"G. D.","surname":"Hallewell","rank":81,"pid":[],"affiliation":null},{"fullname":"Hubaut, F.","name":"F.","surname":"Hubaut","rank":82,"pid":[],"affiliation":null},{"fullname":"Kahn, S.J.","name":"S. J.","surname":"Kahn","rank":83,"pid":[],"affiliation":null},{"fullname":"Knoops, E. B. F. G.","name":"E. B. F. G.","surname":"Knoops","rank":84,"pid":[],"affiliation":null},{"fullname":"Guirriec, E. Le","name":"E. Le","surname":"Guirriec","rank":85,"pid":[],"affiliation":null},{"fullname":"Liu, J.","name":"J.","surname":"Liu","rank":86,"pid":[],"affiliation":null},{"fullname":"Liu, K.","name":"K.","surname":"Liu","rank":87,"pid":[],"affiliation":null},{"fullname":"Madaffari, D.","name":"D.","surname":"Madaffari","rank":88,"pid":[],"affiliation":null},{"fullname":"Mochizuki, K.","name":"K.","surname":"Mochizuki","rank":89,"pid":[],"affiliation":null},{"fullname":"Monnier, E.","name":"E.","surname":"Monnier","rank":90,"pid":[],"affiliation":null},{"fullname":"Muanza, S.","name":"S.","surname":"Muanza","rank":91,"pid":[],"affiliation":null},{"fullname":"Nagai, Y.","name":"Y.","surname":"Nagai","rank":92,"pid":[],"affiliation":null},{"fullname":"Nagy, E.","name":"E.","surname":"Nagy","rank":93,"pid":[],"affiliation":null},{"fullname":"Pralavorio, P.","name":"P.","surname":"Pralavorio","rank":94,"pid":[],"affiliation":null},{"fullname":"Rozanov, A.","name":"A.","surname":"Rozanov","rank":95,"pid":[],"affiliation":null},{"fullname":"Serre, T.","name":"T.","surname":"Serre","rank":96,"pid":[],"affiliation":null},{"fullname":"Talby, M.","name":"M.","surname":"Talby","rank":97,"pid":[],"affiliation":null},{"fullname":"Torres, R.E. Ticse","name":"R. E. Ticse","surname":"Torres","rank":98,"pid":[],"affiliation":null},{"fullname":"Tiouchichine, E.","name":"E.","surname":"Tiouchichine","rank":99,"pid":[],"affiliation":null},{"fullname":"Tisserant, S.","name":"S.","surname":"Tisserant","rank":100,"pid":[],"affiliation":null},{"fullname":"Toth, J.","name":"J.","surname":"Toth","rank":101,"pid":[],"affiliation":null},{"fullname":"Touchard, F.","name":"F.","surname":"Touchard","rank":102,"pid":[],"affiliation":null},{"fullname":"Vacavant, L.","name":"L.","surname":"Vacavant","rank":103,"pid":[],"affiliation":null},{"fullname":"Boumediene, D.","name":"D.","surname":"Boumediene","rank":104,"pid":[],"affiliation":null},{"fullname":"Busato, Emmanuel","name":"Emmanuel","surname":"Busato","rank":105,"pid":[],"affiliation":null},{"fullname":"Calvet, D.","name":"D.","surname":"Calvet","rank":106,"pid":[],"affiliation":null},{"fullname":"Calvet, S.","name":"S.","surname":"Calvet","rank":107,"pid":[],"affiliation":null},{"fullname":"Donini, J.","name":"J.","surname":"Donini","rank":108,"pid":[],"affiliation":null},{"fullname":"Dubreuil, E.","name":"E.","surname":"Dubreuil","rank":109,"pid":[],"affiliation":null},{"fullname":"Gilles, G.","name":"G.","surname":"Gilles","rank":110,"pid":[],"affiliation":null},{"fullname":"Gris, Ph.","name":"Ph","surname":"Gris","rank":111,"pid":[],"affiliation":null},{"fullname":"Liao, H.","name":"H.","surname":"Liao","rank":112,"pid":[],"affiliation":null},{"fullname":"Madar, R.","name":"R.","surname":"Madar","rank":113,"pid":[],"affiliation":null},{"fullname":"Pallin, D.","name":"D.","surname":"Pallin","rank":114,"pid":[],"affiliation":null},{"fullname":"Saez, S.M. Romano","name":"S. M. Romano","surname":"Saez","rank":115,"pid":[],"affiliation":null},{"fullname":"Santoni, C.","name":"C.","surname":"Santoni","rank":116,"pid":[],"affiliation":null},{"fullname":"Simon, D.","name":"D.","surname":"Simon","rank":117,"pid":[],"affiliation":null},{"fullname":"Theveneaux-Pelzer, Timothée","name":"Timothée","surname":"Theveneaux-Pelzer","rank":118,"pid":[],"affiliation":null},{"fullname":"Vazeille, F.","name":"F.","surname":"Vazeille","rank":119,"pid":[],"affiliation":null},{"fullname":"Yatsenko, E.","name":"E.","surname":"Yatsenko","rank":120,"pid":[],"affiliation":null}] \ No newline at end of file diff --git a/dhp-pace-core/pom.xml b/dhp-pace-core/pom.xml new file mode 100644 index 000000000..fd7f44fc9 --- /dev/null +++ b/dhp-pace-core/pom.xml @@ -0,0 +1,110 @@ + + + + 4.0.0 + + + eu.dnetlib.dhp + dhp + 1.2.5-SNAPSHOT + ../pom.xml + + + eu.dnetlib.dhp + dhp-pace-core + 1.2.5-SNAPSHOT + jar + + + + + net.alchim31.maven + scala-maven-plugin + ${net.alchim31.maven.version} + + + scala-compile-first + initialize + + add-source + compile + + + + scala-test-compile + process-test-resources + + testCompile + + + + + true + ${scala.binary.version} + ${scala.version} + + + + + + + + + edu.cmu + secondstring + + + com.google.guava + guava + + + com.google.code.gson + gson + + + org.apache.commons + commons-lang3 + + + commons-io + commons-io + + + org.antlr + stringtemplate + + + commons-logging + commons-logging + + + org.reflections + reflections + + + com.fasterxml.jackson.core + jackson-databind + + + org.apache.commons + commons-math3 + + + com.jayway.jsonpath + json-path + + + com.ibm.icu + icu4j + + + org.apache.spark + spark-core_${scala.binary.version} + + + org.apache.spark + spark-sql_${scala.binary.version} + + + + diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/AbstractClusteringFunction.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/AbstractClusteringFunction.java new file mode 100644 index 000000000..e971ec5bb --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/AbstractClusteringFunction.java @@ -0,0 +1,59 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.apache.commons.lang3.StringUtils; + +import eu.dnetlib.pace.common.AbstractPaceFunctions; +import eu.dnetlib.pace.config.Config; + +public abstract class AbstractClusteringFunction extends AbstractPaceFunctions implements ClusteringFunction { + + protected Map params; + + public AbstractClusteringFunction(final Map params) { + this.params = params; + } + + protected abstract Collection doApply(Config conf, String s); + + @Override + public Collection apply(Config conf, List fields) { + return fields + .stream() + .filter(f -> !f.isEmpty()) + .map(s -> normalize(s)) + .map(s -> filterAllStopWords(s)) + .map(s -> doApply(conf, s)) + .map(c -> filterBlacklisted(c, ngramBlacklist)) + .flatMap(c -> c.stream()) + .filter(StringUtils::isNotBlank) + .collect(Collectors.toCollection(HashSet::new)); + } + + public Map getParams() { + return params; + } + + protected Integer param(String name) { + Object val = params.get(name); + if (val == null) + return null; + if (val instanceof Number) { + return ((Number) val).intValue(); + } + return Integer.parseInt(val.toString()); + } + + protected int paramOrDefault(String name, int i) { + Integer res = param(name); + if (res == null) + res = i; + return res; + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/Acronyms.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/Acronyms.java new file mode 100644 index 000000000..b5db27106 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/Acronyms.java @@ -0,0 +1,51 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.Collection; +import java.util.Map; +import java.util.Set; +import java.util.StringTokenizer; + +import com.google.common.collect.Sets; + +import eu.dnetlib.pace.config.Config; + +@ClusteringClass("acronyms") +public class Acronyms extends AbstractClusteringFunction { + + public Acronyms(Map params) { + super(params); + } + + @Override + protected Collection doApply(Config conf, String s) { + return extractAcronyms(s, param("max"), param("minLen"), param("maxLen")); + } + + private Set extractAcronyms(final String s, int maxAcronyms, int minLen, int maxLen) { + + final Set acronyms = Sets.newLinkedHashSet(); + + for (int i = 0; i < maxAcronyms; i++) { + + final StringTokenizer st = new StringTokenizer(s); + final StringBuilder sb = new StringBuilder(); + + while (st.hasMoreTokens()) { + final String token = st.nextToken(); + if (sb.length() > maxLen) { + break; + } + if (token.length() > 1 && i < token.length()) { + sb.append(token.charAt(i)); + } + } + String acronym = sb.toString(); + if (acronym.length() > minLen) { + acronyms.add(acronym); + } + } + return acronyms; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/ClusteringClass.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/ClusteringClass.java new file mode 100644 index 000000000..3bb845b15 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/ClusteringClass.java @@ -0,0 +1,14 @@ + +package eu.dnetlib.pace.clustering; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface ClusteringClass { + + public String value(); +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/ClusteringFunction.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/ClusteringFunction.java new file mode 100644 index 000000000..269de867d --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/ClusteringFunction.java @@ -0,0 +1,16 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import eu.dnetlib.pace.config.Config; + +public interface ClusteringFunction { + + public Collection apply(Config config, List fields); + + public Map getParams(); + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/ImmutableFieldValue.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/ImmutableFieldValue.java new file mode 100644 index 000000000..cbfcde266 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/ImmutableFieldValue.java @@ -0,0 +1,28 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import com.google.common.collect.Lists; + +import eu.dnetlib.pace.config.Config; + +@ClusteringClass("immutablefieldvalue") +public class ImmutableFieldValue extends AbstractClusteringFunction { + + public ImmutableFieldValue(final Map params) { + super(params); + } + + @Override + protected Collection doApply(final Config conf, final String s) { + final List res = Lists.newArrayList(); + + res.add(s); + + return res; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/JSONListClustering.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/JSONListClustering.java new file mode 100644 index 000000000..e00092bd0 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/JSONListClustering.java @@ -0,0 +1,69 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.apache.commons.lang3.StringUtils; + +import com.jayway.jsonpath.Configuration; +import com.jayway.jsonpath.DocumentContext; +import com.jayway.jsonpath.JsonPath; +import com.jayway.jsonpath.Option; + +import eu.dnetlib.pace.common.AbstractPaceFunctions; +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.util.MapDocumentUtil; + +@ClusteringClass("jsonlistclustering") +public class JSONListClustering extends AbstractPaceFunctions implements ClusteringFunction { + + private Map params; + + public JSONListClustering(Map params) { + this.params = params; + } + + @Override + public Map getParams() { + return params; + } + + @Override + public Collection apply(Config conf, List fields) { + return fields + .stream() + .filter(f -> !f.isEmpty()) + .map(s -> doApply(conf, s)) + .filter(StringUtils::isNotBlank) + .collect(Collectors.toCollection(HashSet::new)); + } + + private String doApply(Config conf, String json) { + StringBuilder st = new StringBuilder(); // to build the string used for comparisons basing on the jpath into + // parameters + final DocumentContext documentContext = JsonPath + .using(Configuration.defaultConfiguration().addOptions(Option.SUPPRESS_EXCEPTIONS)) + .parse(json); + + // for each path in the param list + for (String key : params.keySet().stream().filter(k -> k.contains("jpath")).collect(Collectors.toList())) { + String path = params.get(key).toString(); + String value = MapDocumentUtil.getJPathString(path, documentContext); + if (value == null || value.isEmpty()) + value = ""; + st.append(value); + st.append(" "); + } + + st.setLength(st.length() - 1); + + if (StringUtils.isBlank(st)) { + return "1"; + } + return st.toString(); + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/KeywordsClustering.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/KeywordsClustering.java new file mode 100644 index 000000000..fdd8d1fb1 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/KeywordsClustering.java @@ -0,0 +1,54 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.*; +import java.util.stream.Collectors; + +import org.apache.commons.lang3.StringUtils; + +import eu.dnetlib.pace.config.Config; + +@ClusteringClass("keywordsclustering") +public class KeywordsClustering extends AbstractClusteringFunction { + + public KeywordsClustering(Map params) { + super(params); + } + + @Override + protected Collection doApply(final Config conf, String s) { + + // takes city codes and keywords codes without duplicates + Set keywords = getKeywords(s, conf.translationMap(), paramOrDefault("windowSize", 4)); + Set cities = getCities(s, paramOrDefault("windowSize", 4)); + + // list of combination to return as result + final Collection combinations = new LinkedHashSet(); + + for (String keyword : keywordsToCodes(keywords, conf.translationMap())) { + for (String city : citiesToCodes(cities)) { + combinations.add(keyword + "-" + city); + if (combinations.size() >= paramOrDefault("max", 2)) { + return combinations; + } + } + } + + return combinations; + } + + @Override + public Collection apply(final Config conf, List fields) { + return fields + .stream() + .filter(f -> !f.isEmpty()) + .map(KeywordsClustering::cleanup) + .map(KeywordsClustering::normalize) + .map(s -> filterAllStopWords(s)) + .map(s -> doApply(conf, s)) + .map(c -> filterBlacklisted(c, ngramBlacklist)) + .flatMap(c -> c.stream()) + .filter(StringUtils::isNotBlank) + .collect(Collectors.toCollection(HashSet::new)); + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/LastNameFirstInitial.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/LastNameFirstInitial.java new file mode 100644 index 000000000..9692f5762 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/LastNameFirstInitial.java @@ -0,0 +1,78 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.*; +import java.util.stream.Collectors; + +import org.apache.commons.lang3.StringUtils; + +import com.google.common.collect.Lists; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.model.Person; + +@ClusteringClass("lnfi") +public class LastNameFirstInitial extends AbstractClusteringFunction { + + private boolean DEFAULT_AGGRESSIVE = true; + + public LastNameFirstInitial(final Map params) { + super(params); + } + + @Override + public Collection apply(Config conf, List fields) { + return fields + .stream() + .filter(f -> !f.isEmpty()) + .map(LastNameFirstInitial::normalize) + .map(s -> doApply(conf, s)) + .map(c -> filterBlacklisted(c, ngramBlacklist)) + .flatMap(c -> c.stream()) + .filter(StringUtils::isNotBlank) + .collect(Collectors.toCollection(HashSet::new)); + } + + public static String normalize(final String s) { + return fixAliases(transliterate(nfd(unicodeNormalization(s)))) + // do not compact the regexes in a single expression, would cause StackOverflowError in case of large input + // strings + .replaceAll("[^ \\w]+", "") + .replaceAll("(\\p{InCombiningDiacriticalMarks})+", "") + .replaceAll("(\\p{Punct})+", " ") + .replaceAll("(\\d)+", " ") + .replaceAll("(\\n)+", " ") + .trim(); + } + + @Override + protected Collection doApply(final Config conf, final String s) { + + final List res = Lists.newArrayList(); + + final boolean aggressive = (Boolean) (getParams().containsKey("aggressive") ? getParams().get("aggressive") + : DEFAULT_AGGRESSIVE); + + Person p = new Person(s, aggressive); + + if (p.isAccurate()) { + String lastName = p.getNormalisedSurname().toLowerCase(); + String firstInitial = p.getNormalisedFirstName().toLowerCase().substring(0, 1); + + res.add(firstInitial.concat(lastName)); + } else { // is not accurate, meaning it has no defined name and surname + List fullname = Arrays.asList(p.getNormalisedFullname().split(" ")); + if (fullname.size() == 1) { + res.add(p.getNormalisedFullname().toLowerCase()); + } else if (fullname.size() == 2) { + res.add(fullname.get(0).substring(0, 1).concat(fullname.get(1)).toLowerCase()); + res.add(fullname.get(1).substring(0, 1).concat(fullname.get(0)).toLowerCase()); + } else { + res.add(fullname.get(0).substring(0, 1).concat(fullname.get(fullname.size() - 1)).toLowerCase()); + res.add(fullname.get(fullname.size() - 1).substring(0, 1).concat(fullname.get(0)).toLowerCase()); + } + } + + return res; + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/LowercaseClustering.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/LowercaseClustering.java new file mode 100644 index 000000000..807f41dd5 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/LowercaseClustering.java @@ -0,0 +1,38 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.apache.commons.lang3.StringUtils; + +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; + +import eu.dnetlib.pace.config.Config; + +@ClusteringClass("lowercase") +public class LowercaseClustering extends AbstractClusteringFunction { + + public LowercaseClustering(final Map params) { + super(params); + } + + @Override + public Collection apply(Config conf, List fields) { + Collection c = Sets.newLinkedHashSet(); + for (String f : fields) { + c.addAll(doApply(conf, f)); + } + return c; + } + + @Override + protected Collection doApply(final Config conf, final String s) { + if (StringUtils.isBlank(s)) { + return Lists.newArrayList(); + } + return Lists.newArrayList(s.toLowerCase().trim()); + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/NGramUtils.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/NGramUtils.java new file mode 100644 index 000000000..6ee80b86e --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/NGramUtils.java @@ -0,0 +1,24 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.Set; + +import org.apache.commons.lang3.StringUtils; + +import eu.dnetlib.pace.common.AbstractPaceFunctions; + +public class NGramUtils extends AbstractPaceFunctions { + static private final NGramUtils NGRAMUTILS = new NGramUtils(); + + private static final int SIZE = 100; + + private static final Set stopwords = AbstractPaceFunctions + .loadFromClasspath("/eu/dnetlib/pace/config/stopwords_en.txt"); + + public static String cleanupForOrdering(String s) { + return (NGRAMUTILS.filterStopWords(NGRAMUTILS.normalize(s), stopwords) + StringUtils.repeat(" ", SIZE)) + .substring(0, SIZE) + .replaceAll(" ", ""); + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/NgramPairs.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/NgramPairs.java new file mode 100644 index 000000000..bcc9667a8 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/NgramPairs.java @@ -0,0 +1,41 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import com.google.common.collect.Lists; + +import eu.dnetlib.pace.config.Config; + +@ClusteringClass("ngrampairs") +public class NgramPairs extends Ngrams { + + public NgramPairs(Map params) { + super(params, false); + } + + public NgramPairs(Map params, boolean sorted) { + super(params, sorted); + } + + @Override + protected Collection doApply(Config conf, String s) { + return ngramPairs(Lists.newArrayList(getNgrams(s, param("ngramLen"), param("max") * 2, 1, 2)), param("max")); + } + + protected Collection ngramPairs(final List ngrams, int maxNgrams) { + Collection res = Lists.newArrayList(); + int j = 0; + for (int i = 0; i < ngrams.size() && res.size() < maxNgrams; i++) { + if (++j >= ngrams.size()) { + break; + } + res.add(ngrams.get(i) + ngrams.get(j)); + // System.out.println("-- " + concatNgrams); + } + return res; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/Ngrams.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/Ngrams.java new file mode 100644 index 000000000..7b862c729 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/Ngrams.java @@ -0,0 +1,52 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.*; + +import eu.dnetlib.pace.config.Config; + +@ClusteringClass("ngrams") +public class Ngrams extends AbstractClusteringFunction { + + private final boolean sorted; + + public Ngrams(Map params) { + this(params, false); + } + + public Ngrams(Map params, boolean sorted) { + super(params); + this.sorted = sorted; + } + + @Override + protected Collection doApply(Config conf, String s) { + return getNgrams(s, param("ngramLen"), param("max"), param("maxPerToken"), param("minNgramLen")); + } + + protected Collection getNgrams(String s, int ngramLen, int max, int maxPerToken, int minNgramLen) { + + final Collection ngrams = sorted ? new TreeSet<>() : new LinkedHashSet(); + final StringTokenizer st = new StringTokenizer(s); + + while (st.hasMoreTokens()) { + final String token = st.nextToken(); + if (!token.isEmpty()) { + for (int i = 0; i < maxPerToken && ngramLen + i <= token.length(); i++) { + String ngram = token.substring(i, Math.min(ngramLen + i, token.length())).trim(); + + if (ngram.length() >= minNgramLen) { + ngrams.add(ngram); + + if (ngrams.size() >= max) { + return ngrams; + } + } + } + } + } + // System.out.println(ngrams + " n: " + ngrams.size()); + return ngrams; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/NumAuthorsTitleSuffixPrefixChain.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/NumAuthorsTitleSuffixPrefixChain.java new file mode 100644 index 000000000..f1d1e17b9 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/NumAuthorsTitleSuffixPrefixChain.java @@ -0,0 +1,113 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.StreamSupport; + +import com.google.common.base.Splitter; +import com.google.common.collect.Sets; + +import eu.dnetlib.pace.config.Config; + +@ClusteringClass("numAuthorsTitleSuffixPrefixChain") +public class NumAuthorsTitleSuffixPrefixChain extends AbstractClusteringFunction { + + public NumAuthorsTitleSuffixPrefixChain(Map params) { + super(params); + } + + @Override + public Collection apply(Config conf, List fields) { + + try { + int num_authors = Math.min(Integer.parseInt(fields.get(0)), 21); // SIZE threshold is 20, +1 + + if (num_authors > 0) { + return super.apply(conf, fields.subList(1, fields.size())) + .stream() + .map(s -> num_authors + "-" + s) + .collect(Collectors.toList()); + } + } catch (NumberFormatException e) { + // missing or null authors array + } + + return Collections.emptyList(); + } + + @Override + protected Collection doApply(Config conf, String s) { + return suffixPrefixChain(cleanup(s), param("mod")); + } + + private Collection suffixPrefixChain(String s, int mod) { + // create the list of words from the string (remove short words) + List wordsList = Arrays + .stream(s.split(" ")) + .filter(si -> si.length() > 3) + .collect(Collectors.toList()); + + final int words = wordsList.size(); + final int letters = s.length(); + + // create the prefix: number of words + number of letters/mod + String prefix = words / mod + "-"; + + return doSuffixPrefixChain(wordsList, prefix); + + } + + private Collection doSuffixPrefixChain(List wordsList, String prefix) { + + Set set = Sets.newLinkedHashSet(); + switch (wordsList.size()) { + case 0: + break; + case 1: + set.add(wordsList.get(0)); + break; + case 2: + set + .add( + prefix + + suffix(wordsList.get(0), 3) + + prefix(wordsList.get(1), 3)); + + set + .add( + prefix + + prefix(wordsList.get(0), 3) + + suffix(wordsList.get(1), 3)); + + break; + default: + set + .add( + prefix + + suffix(wordsList.get(0), 3) + + prefix(wordsList.get(1), 3) + + suffix(wordsList.get(2), 3)); + + set + .add( + prefix + + prefix(wordsList.get(0), 3) + + suffix(wordsList.get(1), 3) + + prefix(wordsList.get(2), 3)); + break; + } + + return set; + + } + + private String suffix(String s, int len) { + return s.substring(s.length() - len); + } + + private String prefix(String s, int len) { + return s.substring(0, len); + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/PersonClustering.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/PersonClustering.java new file mode 100644 index 000000000..91b51bebb --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/PersonClustering.java @@ -0,0 +1,84 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.apache.commons.lang3.StringUtils; + +import com.google.common.collect.Sets; + +import eu.dnetlib.pace.common.AbstractPaceFunctions; +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.model.Person; + +@ClusteringClass("personClustering") +public class PersonClustering extends AbstractPaceFunctions implements ClusteringFunction { + + private Map params; + + private static final int MAX_TOKENS = 5; + + public PersonClustering(final Map params) { + this.params = params; + } + + @Override + public Collection apply(final Config conf, final List fields) { + final Set hashes = Sets.newHashSet(); + + for (final String f : fields) { + + final Person person = new Person(f, false); + + if (StringUtils.isNotBlank(person.getNormalisedFirstName()) + && StringUtils.isNotBlank(person.getNormalisedSurname())) { + hashes.add(firstLC(person.getNormalisedFirstName()) + person.getNormalisedSurname().toLowerCase()); + } else { + for (final String token1 : tokens(f, MAX_TOKENS)) { + for (final String token2 : tokens(f, MAX_TOKENS)) { + if (!token1.equals(token2)) { + hashes.add(firstLC(token1) + token2); + } + } + } + } + } + + return hashes; + } + +// @Override +// public Collection apply(final List fields) { +// final Set hashes = Sets.newHashSet(); +// +// for (final Field f : fields) { +// +// final GTAuthor gta = GTAuthor.fromOafJson(f.stringValue()); +// +// final Author a = gta.getAuthor(); +// +// if (StringUtils.isNotBlank(a.getFirstname()) && StringUtils.isNotBlank(a.getSecondnames())) { +// hashes.add(firstLC(a.getFirstname()) + a.getSecondnames().toLowerCase()); +// } else { +// for (final String token1 : tokens(f.stringValue(), MAX_TOKENS)) { +// for (final String token2 : tokens(f.stringValue(), MAX_TOKENS)) { +// if (!token1.equals(token2)) { +// hashes.add(firstLC(token1) + token2); +// } +// } +// } +// } +// } +// +// return hashes; +// } + + @Override + public Map getParams() { + return params; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/PersonHash.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/PersonHash.java new file mode 100644 index 000000000..09a112c37 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/PersonHash.java @@ -0,0 +1,34 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import com.google.common.collect.Lists; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.model.Person; + +@ClusteringClass("personHash") +public class PersonHash extends AbstractClusteringFunction { + + private boolean DEFAULT_AGGRESSIVE = false; + + public PersonHash(final Map params) { + super(params); + } + + @Override + protected Collection doApply(final Config conf, final String s) { + final List res = Lists.newArrayList(); + + final boolean aggressive = (Boolean) (getParams().containsKey("aggressive") ? getParams().get("aggressive") + : DEFAULT_AGGRESSIVE); + + res.add(new Person(s, aggressive).hash()); + + return res; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/RandomClusteringFunction.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/RandomClusteringFunction.java new file mode 100644 index 000000000..3733dfc74 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/RandomClusteringFunction.java @@ -0,0 +1,20 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.Collection; +import java.util.Map; + +import eu.dnetlib.pace.config.Config; + +public class RandomClusteringFunction extends AbstractClusteringFunction { + + public RandomClusteringFunction(Map params) { + super(params); + } + + @Override + protected Collection doApply(final Config conf, String s) { + return null; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/SortedNgramPairs.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/SortedNgramPairs.java new file mode 100644 index 000000000..ca1b4189b --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/SortedNgramPairs.java @@ -0,0 +1,34 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import com.google.common.base.Joiner; +import com.google.common.base.Splitter; +import com.google.common.collect.Lists; + +import eu.dnetlib.pace.config.Config; + +@ClusteringClass("sortedngrampairs") +public class SortedNgramPairs extends NgramPairs { + + public SortedNgramPairs(Map params) { + super(params, false); + } + + @Override + protected Collection doApply(Config conf, String s) { + + final List tokens = Lists.newArrayList(Splitter.on(" ").omitEmptyStrings().trimResults().split(s)); + + Collections.sort(tokens); + + return ngramPairs( + Lists.newArrayList(getNgrams(Joiner.on(" ").join(tokens), param("ngramLen"), param("max") * 2, 1, 2)), + param("max")); + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/SpaceTrimmingFieldValue.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/SpaceTrimmingFieldValue.java new file mode 100644 index 000000000..048380f7e --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/SpaceTrimmingFieldValue.java @@ -0,0 +1,34 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.StringUtils; + +import com.google.common.collect.Lists; + +import eu.dnetlib.pace.config.Config; + +@ClusteringClass("spacetrimmingfieldvalue") +public class SpaceTrimmingFieldValue extends AbstractClusteringFunction { + + public SpaceTrimmingFieldValue(final Map params) { + super(params); + } + + @Override + protected Collection doApply(final Config conf, final String s) { + final List res = Lists.newArrayList(); + + res + .add( + StringUtils.isBlank(s) ? RandomStringUtils.random(param("randomLength")) + : s.toLowerCase().replaceAll("\\s+", "")); + + return res; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/SuffixPrefix.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/SuffixPrefix.java new file mode 100644 index 000000000..b6921e9f1 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/SuffixPrefix.java @@ -0,0 +1,42 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.Collection; +import java.util.Map; +import java.util.Set; + +import com.google.common.collect.Sets; + +import eu.dnetlib.pace.config.Config; + +@ClusteringClass("suffixprefix") +public class SuffixPrefix extends AbstractClusteringFunction { + + public SuffixPrefix(Map params) { + super(params); + } + + @Override + protected Collection doApply(Config conf, String s) { + return suffixPrefix(s, param("len"), param("max")); + } + + private Collection suffixPrefix(String s, int len, int max) { + final Set bigrams = Sets.newLinkedHashSet(); + int i = 0; + while (++i < s.length() && bigrams.size() < max) { + int j = s.indexOf(" ", i); + + int offset = j + len + 1 < s.length() ? j + len + 1 : s.length(); + + if (j - len > 0) { + String bigram = s.substring(j - len, offset).replaceAll(" ", "").trim(); + if (bigram.length() >= 4) { + bigrams.add(bigram); + } + } + } + return bigrams; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/UrlClustering.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/UrlClustering.java new file mode 100644 index 000000000..34f41085b --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/UrlClustering.java @@ -0,0 +1,52 @@ + +package eu.dnetlib.pace.clustering; + +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import eu.dnetlib.pace.common.AbstractPaceFunctions; +import eu.dnetlib.pace.config.Config; + +@ClusteringClass("urlclustering") +public class UrlClustering extends AbstractPaceFunctions implements ClusteringFunction { + + protected Map params; + + public UrlClustering(final Map params) { + this.params = params; + } + + @Override + public Map getParams() { + return params; + } + + @Override + public Collection apply(final Config conf, List fields) { + try { + return fields + .stream() + .filter(f -> !f.isEmpty()) + .map(this::asUrl) + .map(URL::getHost) + .collect(Collectors.toCollection(HashSet::new)); + } catch (IllegalStateException e) { + return new HashSet<>(); + } + } + + private URL asUrl(String value) { + try { + return new URL(value); + } catch (MalformedURLException e) { + // should not happen as checked by pace typing + throw new IllegalStateException("invalid URL: " + value); + } + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/WordsStatsSuffixPrefixChain.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/WordsStatsSuffixPrefixChain.java new file mode 100644 index 000000000..22351cf8f --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/WordsStatsSuffixPrefixChain.java @@ -0,0 +1,91 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.*; +import java.util.stream.Collectors; + +import com.google.common.collect.Sets; + +import eu.dnetlib.pace.config.Config; + +@ClusteringClass("wordsStatsSuffixPrefixChain") +public class WordsStatsSuffixPrefixChain extends AbstractClusteringFunction { + + public WordsStatsSuffixPrefixChain(Map params) { + super(params); + } + + @Override + protected Collection doApply(Config conf, String s) { + return suffixPrefixChain(s, param("mod")); + } + + private Collection suffixPrefixChain(String s, int mod) { + + // create the list of words from the string (remove short words) + List wordsList = Arrays + .stream(s.split(" ")) + .filter(si -> si.length() > 3) + .collect(Collectors.toList()); + + final int words = wordsList.size(); + final int letters = s.length(); + + // create the prefix: number of words + number of letters/mod + String prefix = words + "-" + letters / mod + "-"; + + return doSuffixPrefixChain(wordsList, prefix); + + } + + private Collection doSuffixPrefixChain(List wordsList, String prefix) { + + Set set = Sets.newLinkedHashSet(); + switch (wordsList.size()) { + case 0: + case 1: + break; + case 2: + set + .add( + prefix + + suffix(wordsList.get(0), 3) + + prefix(wordsList.get(1), 3)); + + set + .add( + prefix + + prefix(wordsList.get(0), 3) + + suffix(wordsList.get(1), 3)); + + break; + default: + set + .add( + prefix + + suffix(wordsList.get(0), 3) + + prefix(wordsList.get(1), 3) + + suffix(wordsList.get(2), 3)); + + set + .add( + prefix + + prefix(wordsList.get(0), 3) + + suffix(wordsList.get(1), 3) + + prefix(wordsList.get(2), 3)); + break; + } + + return set; + + } + + private String suffix(String s, int len) { + return s.substring(s.length() - len); + } + + private String prefix(String s, int len) { + return s.substring(0, len); + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/WordsSuffixPrefix.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/WordsSuffixPrefix.java new file mode 100644 index 000000000..f9fef376b --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/clustering/WordsSuffixPrefix.java @@ -0,0 +1,59 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.Collection; +import java.util.Map; +import java.util.Set; + +import com.google.common.collect.Sets; + +import eu.dnetlib.pace.config.Config; + +@ClusteringClass("wordssuffixprefix") +public class WordsSuffixPrefix extends AbstractClusteringFunction { + + public WordsSuffixPrefix(Map params) { + super(params); + } + + @Override + protected Collection doApply(Config conf, String s) { + return suffixPrefix(s, param("len"), param("max")); + } + + private Collection suffixPrefix(String s, int len, int max) { + + final int words = s.split(" ").length; + + // adjust the token length according to the number of words + switch (words) { + case 1: + return Sets.newLinkedHashSet(); + case 2: + return doSuffixPrefix(s, len + 2, max, words); + case 3: + return doSuffixPrefix(s, len + 1, max, words); + default: + return doSuffixPrefix(s, len, max, words); + } + } + + private Collection doSuffixPrefix(String s, int len, int max, int words) { + final Set bigrams = Sets.newLinkedHashSet(); + int i = 0; + while (++i < s.length() && bigrams.size() < max) { + int j = s.indexOf(" ", i); + + int offset = j + len + 1 < s.length() ? j + len + 1 : s.length(); + + if (j - len > 0) { + String bigram = s.substring(j - len, offset).replaceAll(" ", "").trim(); + if (bigram.length() >= 4) { + bigrams.add(words + bigram); + } + } + } + return bigrams; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/common/AbstractPaceFunctions.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/common/AbstractPaceFunctions.java new file mode 100644 index 000000000..ba7639ada --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/common/AbstractPaceFunctions.java @@ -0,0 +1,359 @@ + +package eu.dnetlib.pace.common; + +import java.io.IOException; +import java.io.StringWriter; +import java.nio.charset.StandardCharsets; +import java.text.Normalizer; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; + +import com.google.common.base.Joiner; +import com.google.common.base.Splitter; +import com.google.common.collect.Iterables; +import com.google.common.collect.Sets; +import com.ibm.icu.text.Transliterator; + +import eu.dnetlib.pace.clustering.NGramUtils; + +/** + * Set of common functions for the framework + * + * @author claudio + */ +public class AbstractPaceFunctions { + + // city map to be used when translating the city names into codes + private static Map cityMap = AbstractPaceFunctions + .loadMapFromClasspath("/eu/dnetlib/pace/config/city_map.csv"); + + // list of stopwords in different languages + protected static Set stopwords_gr = loadFromClasspath("/eu/dnetlib/pace/config/stopwords_gr.txt"); + protected static Set stopwords_en = loadFromClasspath("/eu/dnetlib/pace/config/stopwords_en.txt"); + protected static Set stopwords_de = loadFromClasspath("/eu/dnetlib/pace/config/stopwords_de.txt"); + protected static Set stopwords_es = loadFromClasspath("/eu/dnetlib/pace/config/stopwords_es.txt"); + protected static Set stopwords_fr = loadFromClasspath("/eu/dnetlib/pace/config/stopwords_fr.txt"); + protected static Set stopwords_it = loadFromClasspath("/eu/dnetlib/pace/config/stopwords_it.txt"); + protected static Set stopwords_pt = loadFromClasspath("/eu/dnetlib/pace/config/stopwords_pt.txt"); + + // transliterator + protected static Transliterator transliterator = Transliterator.getInstance("Any-Eng"); + + // blacklist of ngrams: to avoid generic keys + protected static Set ngramBlacklist = loadFromClasspath("/eu/dnetlib/pace/config/ngram_blacklist.txt"); + + // html regex for normalization + public static final Pattern HTML_REGEX = Pattern.compile("<[^>]*>"); + + private static final String alpha = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 "; + private static final String aliases_from = "⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎àáâäæãåāèéêëēėęəîïíīįìôöòóœøōõûüùúūßśšłžźżçćčñń"; + private static final String aliases_to = "0123456789+-=()n0123456789+-=()aaaaaaaaeeeeeeeeiiiiiioooooooouuuuussslzzzcccnn"; + + // doi prefix for normalization + public static final Pattern DOI_PREFIX = Pattern.compile("(https?:\\/\\/dx\\.doi\\.org\\/)|(doi:)"); + + private static Pattern numberPattern = Pattern.compile("-?\\d+(\\.\\d+)?"); + + private static Pattern hexUnicodePattern = Pattern.compile("\\\\u(\\p{XDigit}{4})"); + + private static Pattern romanNumberPattern = Pattern + .compile("^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$"); + + protected static String concat(final List l) { + return Joiner.on(" ").skipNulls().join(l); + } + + public static String cleanup(final String s) { + final String s1 = HTML_REGEX.matcher(s).replaceAll(""); + final String s2 = unicodeNormalization(s1.toLowerCase()); + final String s3 = nfd(s2); + final String s4 = fixXML(s3); + final String s5 = s4.replaceAll("([0-9]+)", " $1 "); + final String s6 = transliterate(s5); + final String s7 = fixAliases(s6); + final String s8 = s7.replaceAll("[^\\p{ASCII}]", ""); + final String s9 = s8.replaceAll("[\\p{Punct}]", " "); + final String s10 = s9.replaceAll("\\n", " "); + final String s11 = s10.replaceAll("(?m)\\s+", " "); + final String s12 = s11.trim(); + return s12; + } + + protected static String fixXML(final String a) { + + return a + .replaceAll("–", " ") + .replaceAll("&", " ") + .replaceAll(""", " ") + .replaceAll("−", " "); + } + + protected static boolean checkNumbers(final String a, final String b) { + final String numbersA = getNumbers(a); + final String numbersB = getNumbers(b); + final String romansA = getRomans(a); + final String romansB = getRomans(b); + return !numbersA.equals(numbersB) || !romansA.equals(romansB); + } + + protected static String getRomans(final String s) { + final StringBuilder sb = new StringBuilder(); + for (final String t : s.split(" ")) { + sb.append(isRoman(t) ? t : ""); + } + return sb.toString(); + } + + protected static boolean isRoman(final String s) { + Matcher m = romanNumberPattern.matcher(s); + return m.matches() && m.hitEnd(); + } + + protected static String getNumbers(final String s) { + final StringBuilder sb = new StringBuilder(); + for (final String t : s.split(" ")) { + sb.append(isNumber(t) ? t : ""); + } + return sb.toString(); + } + + public static boolean isNumber(String strNum) { + if (strNum == null) { + return false; + } + return numberPattern.matcher(strNum).matches(); + } + + protected static String fixAliases(final String s) { + final StringBuilder sb = new StringBuilder(); + + s.chars().forEach(ch -> { + final int i = StringUtils.indexOf(aliases_from, ch); + sb.append(i >= 0 ? aliases_to.charAt(i) : (char) ch); + }); + + return sb.toString(); + } + + protected static String transliterate(final String s) { + try { + return transliterator.transliterate(s); + } catch (Exception e) { + return s; + } + } + + protected static String removeSymbols(final String s) { + final StringBuilder sb = new StringBuilder(); + + s.chars().forEach(ch -> { + sb.append(StringUtils.contains(alpha, ch) ? (char) ch : ' '); + }); + + return sb.toString().replaceAll("\\s+", " "); + } + + protected static boolean notNull(final String s) { + return s != null; + } + + public static String normalize(final String s) { + return fixAliases(transliterate(nfd(unicodeNormalization(s)))) + .toLowerCase() + // do not compact the regexes in a single expression, would cause StackOverflowError in case of large input + // strings + .replaceAll("[^ \\w]+", "") + .replaceAll("(\\p{InCombiningDiacriticalMarks})+", "") + .replaceAll("(\\p{Punct})+", " ") + .replaceAll("(\\d)+", " ") + .replaceAll("(\\n)+", " ") + .trim(); + } + + public static String nfd(final String s) { + return Normalizer.normalize(s, Normalizer.Form.NFD); + } + + public static String utf8(final String s) { + byte[] bytes = s.getBytes(StandardCharsets.UTF_8); + return new String(bytes, StandardCharsets.UTF_8); + } + + public static String unicodeNormalization(final String s) { + + Matcher m = hexUnicodePattern.matcher(s); + StringBuffer buf = new StringBuffer(s.length()); + while (m.find()) { + String ch = String.valueOf((char) Integer.parseInt(m.group(1), 16)); + m.appendReplacement(buf, Matcher.quoteReplacement(ch)); + } + m.appendTail(buf); + return buf.toString(); + } + + protected static String filterStopWords(final String s, final Set stopwords) { + final StringTokenizer st = new StringTokenizer(s); + final StringBuilder sb = new StringBuilder(); + while (st.hasMoreTokens()) { + final String token = st.nextToken(); + if (!stopwords.contains(token)) { + sb.append(token); + sb.append(" "); + } + } + return sb.toString().trim(); + } + + public static String filterAllStopWords(String s) { + + s = filterStopWords(s, stopwords_en); + s = filterStopWords(s, stopwords_de); + s = filterStopWords(s, stopwords_it); + s = filterStopWords(s, stopwords_fr); + s = filterStopWords(s, stopwords_pt); + s = filterStopWords(s, stopwords_es); + s = filterStopWords(s, stopwords_gr); + + return s; + } + + protected static Collection filterBlacklisted(final Collection set, + final Set ngramBlacklist) { + final Set newset = Sets.newLinkedHashSet(); + for (final String s : set) { + if (!ngramBlacklist.contains(s)) { + newset.add(s); + } + } + return newset; + } + + public static Set loadFromClasspath(final String classpath) { + + Transliterator transliterator = Transliterator.getInstance("Any-Eng"); + + final Set h = Sets.newHashSet(); + try { + for (final String s : IOUtils + .readLines(NGramUtils.class.getResourceAsStream(classpath), StandardCharsets.UTF_8)) { + h.add(fixAliases(transliterator.transliterate(s))); // transliteration of the stopwords + } + } catch (final Throwable e) { + return Sets.newHashSet(); + } + return h; + } + + public static Map loadMapFromClasspath(final String classpath) { + + Transliterator transliterator = Transliterator.getInstance("Any-Eng"); + + final Map m = new HashMap<>(); + try { + for (final String s : IOUtils + .readLines(AbstractPaceFunctions.class.getResourceAsStream(classpath), StandardCharsets.UTF_8)) { + // string is like this: code;word1;word2;word3 + String[] line = s.split(";"); + String value = line[0]; + for (int i = 1; i < line.length; i++) { + m.put(fixAliases(transliterator.transliterate(line[i].toLowerCase())), value); + } + } + } catch (final Throwable e) { + return new HashMap<>(); + } + return m; + } + + public static String removeKeywords(String s, Set keywords) { + + s = " " + s + " "; + for (String k : keywords) { + s = s.replaceAll(k.toLowerCase(), ""); + } + + return s.trim(); + } + + public static double commonElementsPercentage(Set s1, Set s2) { + + double longer = Math.max(s1.size(), s2.size()); + return (double) s1.stream().filter(s2::contains).count() / longer; + } + + // convert the set of keywords to codes + public static Set toCodes(Set keywords, Map translationMap) { + return keywords.stream().map(s -> translationMap.get(s)).collect(Collectors.toSet()); + } + + public static Set keywordsToCodes(Set keywords, Map translationMap) { + return toCodes(keywords, translationMap); + } + + public static Set citiesToCodes(Set keywords) { + return toCodes(keywords, cityMap); + } + + protected static String firstLC(final String s) { + return StringUtils.substring(s, 0, 1).toLowerCase(); + } + + protected static Iterable tokens(final String s, final int maxTokens) { + return Iterables.limit(Splitter.on(" ").omitEmptyStrings().trimResults().split(s), maxTokens); + } + + public static String normalizePid(String pid) { + return DOI_PREFIX.matcher(pid.toLowerCase()).replaceAll(""); + } + + // get the list of keywords into the input string + public static Set getKeywords(String s1, Map translationMap, int windowSize) { + + String s = s1; + + List tokens = Arrays.asList(s.toLowerCase().split(" ")); + + Set codes = new HashSet<>(); + + if (tokens.size() < windowSize) + windowSize = tokens.size(); + + int length = windowSize; + + while (length != 0) { + + for (int i = 0; i <= tokens.size() - length; i++) { + String candidate = concat(tokens.subList(i, i + length)); + if (translationMap.containsKey(candidate)) { + codes.add(candidate); + s = s.replace(candidate, "").trim(); + } + } + + tokens = Arrays.asList(s.split(" ")); + length -= 1; + } + + return codes; + } + + public static Set getCities(String s1, int windowSize) { + return getKeywords(s1, cityMap, windowSize); + } + + public static String readFromClasspath(final String filename, final Class clazz) { + final StringWriter sw = new StringWriter(); + try { + IOUtils.copy(clazz.getResourceAsStream(filename), sw, StandardCharsets.UTF_8); + return sw.toString(); + } catch (final IOException e) { + throw new RuntimeException("cannot load resource from classpath: " + filename); + } + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/config/Config.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/config/Config.java new file mode 100644 index 000000000..4d823d129 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/config/Config.java @@ -0,0 +1,53 @@ + +package eu.dnetlib.pace.config; + +import java.util.List; +import java.util.Map; +import java.util.function.Predicate; + +import eu.dnetlib.pace.model.ClusteringDef; +import eu.dnetlib.pace.model.FieldDef; +import eu.dnetlib.pace.tree.support.TreeNodeDef; + +/** + * Interface for PACE configuration bean. + * + * @author claudio + */ +public interface Config { + + /** + * Field configuration definitions. + * + * @return the list of definitions + */ + public List model(); + + /** + * Decision Tree definition + * + * @return the map representing the decision tree + */ + public Map decisionTree(); + + /** + * Clusterings. + * + * @return the list + */ + public List clusterings(); + + /** + * Blacklists. + * + * @return the map + */ + public Map> blacklists(); + + /** + * Translation map. + * + * @return the map + * */ + public Map translationMap(); +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/config/DedupConfig.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/config/DedupConfig.java new file mode 100644 index 000000000..ac0ef08e4 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/config/DedupConfig.java @@ -0,0 +1,178 @@ + +package eu.dnetlib.pace.config; + +import java.io.IOException; +import java.io.Serializable; +import java.nio.charset.StandardCharsets; +import java.util.AbstractMap; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.function.Predicate; +import java.util.regex.Pattern; +import java.util.regex.PatternSyntaxException; +import java.util.stream.Collectors; + +import org.antlr.stringtemplate.StringTemplate; +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.Maps; + +import eu.dnetlib.pace.model.ClusteringDef; +import eu.dnetlib.pace.model.FieldDef; +import eu.dnetlib.pace.tree.support.TreeNodeDef; +import eu.dnetlib.pace.util.PaceException; + +public class DedupConfig implements Config, Serializable { + private static String CONFIG_TEMPLATE = "dedupConfig.st"; + + private PaceConfig pace; + + private WfConfig wf; + + @JsonIgnore + private Map> blacklists; + + private static Map defaults = Maps.newHashMap(); + + static { + defaults.put("dedupRun", "001"); + defaults.put("entityType", "result"); + defaults.put("subEntityType", "resulttype"); + defaults.put("subEntityValue", "publication"); + defaults.put("orderField", "title"); + defaults.put("queueMaxSize", "2000"); + defaults.put("groupMaxSize", "10"); + defaults.put("slidingWindowSize", "200"); + defaults.put("rootBuilder", "result"); + defaults.put("includeChildren", "true"); + defaults.put("maxIterations", "20"); + defaults.put("idPath", "$.id"); + } + + public DedupConfig() { + } + + public static DedupConfig load(final String json) { + + final DedupConfig config; + try { + config = new ObjectMapper().readValue(json, DedupConfig.class); + config.getPace().initModel(); + config.getPace().initTranslationMap(); + + config.blacklists = config + .getPace() + .getBlacklists() + .entrySet() + .stream() + .map( + e -> new AbstractMap.SimpleEntry>(e.getKey(), + e + .getValue() + .stream() + .filter(s -> !StringUtils.isBlank(s)) + .map(Pattern::compile) + .collect(Collectors.toList()))) + .collect( + Collectors + .toMap( + e -> e.getKey(), + e -> (Predicate & Serializable) s -> e + .getValue() + .stream() + .filter(p -> p.matcher(s).matches()) + .findFirst() + .isPresent())) + + ; + + return config; + } catch (IOException | PatternSyntaxException e) { + throw new PaceException("Error in parsing configuration json", e); + } + + } + + public static DedupConfig loadDefault() throws IOException { + return loadDefault(new HashMap()); + } + + public static DedupConfig loadDefault(final Map params) throws IOException { + + final StringTemplate template = new StringTemplate(new DedupConfig().readFromClasspath(CONFIG_TEMPLATE)); + + for (final Entry e : defaults.entrySet()) { + template.setAttribute(e.getKey(), e.getValue()); + } + for (final Entry e : params.entrySet()) { + if (template.getAttribute(e.getKey()) != null) { + template.getAttributes().computeIfPresent(e.getKey(), (o, o2) -> e.getValue()); + } else { + template.setAttribute(e.getKey(), e.getValue()); + } + } + + final String json = template.toString(); + return load(json); + } + + private String readFromClasspath(final String resource) throws IOException { + return IOUtils.toString(getClass().getResource(resource), StandardCharsets.UTF_8); + } + + public PaceConfig getPace() { + return pace; + } + + public void setPace(final PaceConfig pace) { + this.pace = pace; + } + + public WfConfig getWf() { + return wf; + } + + public void setWf(final WfConfig wf) { + this.wf = wf; + } + + @Override + public String toString() { + try { + return new ObjectMapper().writeValueAsString(this); + } catch (IOException e) { + throw new PaceException("unable to serialise configuration", e); + } + } + + @Override + public Map decisionTree() { + return getPace().getDecisionTree(); + } + + @Override + public List model() { + return getPace().getModel(); + } + + @Override + public List clusterings() { + return getPace().getClustering(); + } + + @Override + public Map> blacklists() { + return blacklists; + } + + @Override + public Map translationMap() { + return getPace().translationMap(); + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/config/PaceConfig.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/config/PaceConfig.java new file mode 100644 index 000000000..f1bc49f4a --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/config/PaceConfig.java @@ -0,0 +1,108 @@ + +package eu.dnetlib.pace.config; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.google.common.collect.Maps; +import com.ibm.icu.text.Transliterator; + +import eu.dnetlib.pace.common.AbstractPaceFunctions; +import eu.dnetlib.pace.model.ClusteringDef; +import eu.dnetlib.pace.model.FieldDef; +import eu.dnetlib.pace.tree.support.TreeNodeDef; +import eu.dnetlib.pace.util.PaceResolver; + +public class PaceConfig extends AbstractPaceFunctions implements Serializable { + + private List model; + + private List clustering; + private Map decisionTree; + + private Map> blacklists; + private Map> synonyms; + + @JsonIgnore + private Map translationMap; + + public Map getModelMap() { + return modelMap; + } + + @JsonIgnore + private Map modelMap; + + @JsonIgnore + public static PaceResolver resolver = new PaceResolver(); + + public PaceConfig() { + } + + public void initModel() { + modelMap = Maps.newHashMap(); + for (FieldDef fd : getModel()) { + modelMap.put(fd.getName(), fd); + } + } + + public void initTranslationMap() { + translationMap = Maps.newHashMap(); + + Transliterator transliterator = Transliterator.getInstance("Any-Eng"); + for (String key : synonyms.keySet()) { + for (String term : synonyms.get(key)) { + translationMap + .put( + fixAliases(transliterator.transliterate(term.toLowerCase())), + key); + } + } + } + + public Map translationMap() { + return translationMap; + } + + public List getModel() { + return model; + } + + public void setModel(final List model) { + this.model = model; + } + + public List getClustering() { + return clustering; + } + + public void setClustering(final List clustering) { + this.clustering = clustering; + } + + public Map getDecisionTree() { + return decisionTree; + } + + public void setDecisionTree(Map decisionTree) { + this.decisionTree = decisionTree; + } + + public Map> getBlacklists() { + return blacklists; + } + + public void setBlacklists(final Map> blacklists) { + this.blacklists = blacklists; + } + + public Map> getSynonyms() { + return synonyms; + } + + public void setSynonyms(Map> synonyms) { + this.synonyms = synonyms; + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/config/Type.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/config/Type.java new file mode 100644 index 000000000..9f3323edc --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/config/Type.java @@ -0,0 +1,6 @@ + +package eu.dnetlib.pace.config; + +public enum Type { + String, Int, List, JSON, URL, StringConcat, DoubleArray +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/config/WfConfig.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/config/WfConfig.java new file mode 100644 index 000000000..8dea04232 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/config/WfConfig.java @@ -0,0 +1,294 @@ + +package eu.dnetlib.pace.config; + +import java.io.IOException; +import java.io.Serializable; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.apache.commons.lang3.StringUtils; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; + +import eu.dnetlib.pace.util.PaceException; + +public class WfConfig implements Serializable { + + /** + * Entity type. + */ + private String entityType = ""; + + /** + * Sub-Entity type refers to one of fields declared in the model. See eu.dnetlib.pace.config.PaceConfig.modelMap + */ + private String subEntityType = ""; + + /** + * Sub-Entity value declares a value for subTypes to be considered. + */ + private String subEntityValue = ""; + + /** + * Field name used to sort the values in the reducer phase. + */ + private String orderField = ""; + + /** + * Column Families involved in the relations redirection. + */ + private List rootBuilder = Lists.newArrayList(); + + /** + * Set of datasource namespace prefixes that won't be deduplicated. + */ + private Set skipList = Sets.newHashSet(); + + /** + * Subprefix used to build the root id, allows multiple dedup runs. + */ + private String dedupRun = ""; + + /** + * Similarity threshold. + */ + private double threshold = 0; + + /** The queue max size. */ + private int queueMaxSize = 2000; + + /** The group max size. */ + private int groupMaxSize; + + /** The sliding window size. */ + private int slidingWindowSize; + + /** The configuration id. */ + private String configurationId; + + /** The include children. */ + private boolean includeChildren; + + /** Default maximum number of allowed children. */ + private final static int MAX_CHILDREN = 10; + + /** Maximum number of allowed children. */ + private int maxChildren = MAX_CHILDREN; + + /** Default maximum number of iterations. */ + private final static int MAX_ITERATIONS = 20; + + /** Maximum number of iterations */ + private int maxIterations = MAX_ITERATIONS; + + /** The Jquery path to retrieve the identifier */ + private String idPath = "$.id"; + + public WfConfig() { + } + + /** + * Instantiates a new dedup config. + * + * @param entityType + * the entity type + * @param orderField + * the order field + * @param rootBuilder + * the root builder families + * @param dedupRun + * the dedup run + * @param skipList + * the skip list + * @param queueMaxSize + * the queue max size + * @param groupMaxSize + * the group max size + * @param slidingWindowSize + * the sliding window size + * @param includeChildren + * allows the children to be included in the representative records or not. + * @param maxIterations + * the maximum number of iterations + * @param idPath + * the path for the id of the entity + */ + public WfConfig(final String entityType, final String orderField, final List rootBuilder, + final String dedupRun, + final Set skipList, final int queueMaxSize, final int groupMaxSize, final int slidingWindowSize, + final boolean includeChildren, final int maxIterations, final String idPath) { + super(); + this.entityType = entityType; + this.orderField = orderField; + this.rootBuilder = rootBuilder; + this.dedupRun = cleanupStringNumber(dedupRun); + this.skipList = skipList; + this.queueMaxSize = queueMaxSize; + this.groupMaxSize = groupMaxSize; + this.slidingWindowSize = slidingWindowSize; + this.includeChildren = includeChildren; + this.maxIterations = maxIterations; + this.idPath = idPath; + } + + /** + * Cleanup string number. + * + * @param s + * the s + * @return the string + */ + private String cleanupStringNumber(final String s) { + return s.contains("'") ? s.replaceAll("'", "") : s; + } + + public boolean hasSubType() { + return StringUtils.isNotBlank(getSubEntityType()) && StringUtils.isNotBlank(getSubEntityValue()); + } + + public String getEntityType() { + return entityType; + } + + public void setEntityType(final String entityType) { + this.entityType = entityType; + } + + public String getSubEntityType() { + return subEntityType; + } + + public void setSubEntityType(final String subEntityType) { + this.subEntityType = subEntityType; + } + + public String getSubEntityValue() { + return subEntityValue; + } + + public void setSubEntityValue(final String subEntityValue) { + this.subEntityValue = subEntityValue; + } + + public String getOrderField() { + return orderField; + } + + public void setOrderField(final String orderField) { + this.orderField = orderField; + } + + public List getRootBuilder() { + return rootBuilder; + } + + public void setRootBuilder(final List rootBuilder) { + this.rootBuilder = rootBuilder; + } + + public Set getSkipList() { + return skipList != null ? skipList : new HashSet(); + } + + public void setSkipList(final Set skipList) { + this.skipList = skipList; + } + + public String getDedupRun() { + return dedupRun; + } + + public void setDedupRun(final String dedupRun) { + this.dedupRun = dedupRun; + } + + public double getThreshold() { + return threshold; + } + + public void setThreshold(final double threshold) { + this.threshold = threshold; + } + + public int getQueueMaxSize() { + return queueMaxSize; + } + + public void setQueueMaxSize(final int queueMaxSize) { + this.queueMaxSize = queueMaxSize; + } + + public int getGroupMaxSize() { + return groupMaxSize; + } + + public void setGroupMaxSize(final int groupMaxSize) { + this.groupMaxSize = groupMaxSize; + } + + public int getSlidingWindowSize() { + return slidingWindowSize; + } + + public void setSlidingWindowSize(final int slidingWindowSize) { + this.slidingWindowSize = slidingWindowSize; + } + + public String getConfigurationId() { + return configurationId; + } + + public void setConfigurationId(final String configurationId) { + this.configurationId = configurationId; + } + + public boolean isIncludeChildren() { + return includeChildren; + } + + public void setIncludeChildren(final boolean includeChildren) { + this.includeChildren = includeChildren; + } + + public int getMaxChildren() { + return maxChildren; + } + + public void setMaxChildren(final int maxChildren) { + this.maxChildren = maxChildren; + } + + public int getMaxIterations() { + return maxIterations; + } + + public void setMaxIterations(int maxIterations) { + this.maxIterations = maxIterations; + } + + public String getIdPath() { + return idPath; + } + + public void setIdPath(String idPath) { + this.idPath = idPath; + + } + + /* + * (non-Javadoc) + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + try { + return new ObjectMapper().writeValueAsString(this); + } catch (IOException e) { + throw new PaceException("unable to serialise " + this.getClass().getName(), e); + } + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/ClusteringDef.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/ClusteringDef.java new file mode 100644 index 000000000..5ede2c380 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/ClusteringDef.java @@ -0,0 +1,63 @@ + +package eu.dnetlib.pace.model; + +import java.io.IOException; +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import eu.dnetlib.pace.clustering.ClusteringFunction; +import eu.dnetlib.pace.config.PaceConfig; +import eu.dnetlib.pace.util.PaceException; + +public class ClusteringDef implements Serializable { + + private String name; + + private List fields; + + private Map params; + + public ClusteringDef() { + } + + public String getName() { + return name; + } + + public void setName(final String name) { + this.name = name; + } + + public ClusteringFunction clusteringFunction() { + return PaceConfig.resolver.getClusteringFunction(getName(), params); + } + + public List getFields() { + return fields; + } + + public void setFields(final List fields) { + this.fields = fields; + } + + public Map getParams() { + return params; + } + + public void setParams(final Map params) { + this.params = params; + } + + @Override + public String toString() { + try { + return new ObjectMapper().writeValueAsString(this); + } catch (IOException e) { + throw new PaceException("unable to serialise " + this.getClass().getName(), e); + } + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/FieldDef.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/FieldDef.java new file mode 100644 index 000000000..7ad9b7445 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/FieldDef.java @@ -0,0 +1,138 @@ + +package eu.dnetlib.pace.model; + +import java.io.Serializable; +import java.util.HashSet; +import java.util.List; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Splitter; +import com.google.common.collect.Lists; + +import eu.dnetlib.pace.config.Type; + +/** + * The schema is composed by field definitions (FieldDef). Each field has a type, a name, and an associated compare algorithm. + */ +public class FieldDef implements Serializable { + + public final static String PATH_SEPARATOR = "/"; + + private String name; + + private String path; + + private Type type; + + private boolean overrideMatch; + + /** + * Sets maximum size for the repeatable fields in the model. -1 for unbounded size. + */ + private int size = -1; + + /** + * Sets maximum length for field values in the model. -1 for unbounded length. + */ + private int length = -1; + + private HashSet filter; + + private boolean sorted; + + public boolean isSorted() { + return sorted; + } + + private String clean; + + public FieldDef() { + } + + public String getName() { + return name; + } + + public String getPath() { + return path; + } + + public List getPathList() { + return Lists.newArrayList(Splitter.on(PATH_SEPARATOR).split(getPath())); + } + + public Type getType() { + return type; + } + + public void setType(final Type type) { + this.type = type; + } + + public boolean isOverrideMatch() { + return overrideMatch; + } + + public void setOverrideMatch(final boolean overrideMatch) { + this.overrideMatch = overrideMatch; + } + + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; + } + + public int getLength() { + return length; + } + + public void setLength(int length) { + this.length = length; + } + + public void setName(String name) { + this.name = name; + } + + public void setPath(String path) { + this.path = path; + } + + public HashSet getFilter() { + return filter; + } + + public void setFilter(HashSet filter) { + this.filter = filter; + } + + public boolean getSorted() { + return sorted; + } + + public void setSorted(boolean sorted) { + this.sorted = sorted; + } + + public String getClean() { + return clean; + } + + public void setClean(String clean) { + this.clean = clean; + } + + @Override + public String toString() { + try { + return new ObjectMapper().writeValueAsString(this); + } catch (JsonProcessingException e) { + return null; + } + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/Person.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/Person.java new file mode 100644 index 000000000..96120cf4d --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/Person.java @@ -0,0 +1,156 @@ + +package eu.dnetlib.pace.model; + +import java.nio.charset.Charset; +import java.text.Normalizer; +import java.util.List; +import java.util.Set; + +import com.google.common.base.Joiner; +import com.google.common.base.Splitter; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; +import com.google.common.hash.Hashing; + +import eu.dnetlib.pace.common.AbstractPaceFunctions; +import eu.dnetlib.pace.util.Capitalise; +import eu.dnetlib.pace.util.DotAbbreviations; + +public class Person { + + private static final String UTF8 = "UTF-8"; + private List name = Lists.newArrayList(); + private List surname = Lists.newArrayList(); + private List fullname = Lists.newArrayList(); + private final String original; + + private static Set particles = null; + + public Person(String s, final boolean aggressive) { + original = s; + s = Normalizer.normalize(s, Normalizer.Form.NFD); + s = s.replaceAll("\\(.+\\)", ""); + s = s.replaceAll("\\[.+\\]", ""); + s = s.replaceAll("\\{.+\\}", ""); + s = s.replaceAll("\\s+-\\s+", "-"); + s = s.replaceAll("[\\p{Punct}&&[^,-]]", " "); + s = s.replaceAll("\\d", " "); + s = s.replaceAll("\\n", " "); + s = s.replaceAll("\\.", " "); + s = s.replaceAll("\\s+", " "); + + if (aggressive) { + s = s.replaceAll("[\\p{InCombiningDiacriticalMarks}&&[^,-]]", ""); + // s = s.replaceAll("[\\W&&[^,-]]", ""); + } + + if (s.contains(",")) { // if the name contains a comma it is easy derivable the name and the surname + final String[] arr = s.split(","); + if (arr.length == 1) { + fullname = splitTerms(arr[0]); + } else if (arr.length > 1) { + surname = splitTerms(arr[0]); + name = splitTerms(arr[1]); + fullname.addAll(surname); + fullname.addAll(name); + } + } else { + fullname = splitTerms(s); + + int lastInitialPosition = fullname.size(); + boolean hasSurnameInUpperCase = false; + + for (int i = 0; i < fullname.size(); i++) { + final String term = fullname.get(i); + if (term.length() == 1) { + lastInitialPosition = i; + } else if (term.equals(term.toUpperCase())) { + hasSurnameInUpperCase = true; + } + } + + if (lastInitialPosition < (fullname.size() - 1)) { // Case: Michele G. Artini + name = fullname.subList(0, lastInitialPosition + 1); + surname = fullname.subList(lastInitialPosition + 1, fullname.size()); + } else if (hasSurnameInUpperCase) { // Case: Michele ARTINI + for (final String term : fullname) { + if ((term.length() > 1) && term.equals(term.toUpperCase())) { + surname.add(term); + } else { + name.add(term); + } + } + } + } + } + + private List splitTerms(final String s) { + if (particles == null) { + particles = AbstractPaceFunctions.loadFromClasspath("/eu/dnetlib/pace/config/name_particles.txt"); + } + + final List list = Lists.newArrayList(); + for (final String part : Splitter.on(" ").omitEmptyStrings().split(s)) { + if (!particles.contains(part.toLowerCase())) { + list.add(part); + } + } + return list; + } + + public List getName() { + return name; + } + + public String getNameString() { + return Joiner.on(" ").join(getName()); + } + + public List getSurname() { + return surname; + } + + public List getFullname() { + return fullname; + } + + public String getOriginal() { + return original; + } + + public String hash() { + return Hashing.murmur3_128().hashString(getNormalisedFullname(), Charset.forName(UTF8)).toString(); + } + + public String getNormalisedFirstName() { + return Joiner.on(" ").join(getCapitalFirstnames()); + } + + public String getNormalisedSurname() { + return Joiner.on(" ").join(getCapitalSurname()); + } + + public String getSurnameString() { + return Joiner.on(" ").join(getSurname()); + } + + public String getNormalisedFullname() { + return isAccurate() ? getNormalisedSurname() + ", " + getNormalisedFirstName() : Joiner.on(" ").join(fullname); + } + + public List getCapitalFirstnames() { + return Lists.newArrayList(Iterables.transform(getNameWithAbbreviations(), new Capitalise())); + } + + public List getCapitalSurname() { + return Lists.newArrayList(Iterables.transform(surname, new Capitalise())); + } + + public List getNameWithAbbreviations() { + return Lists.newArrayList(Iterables.transform(name, new DotAbbreviations())); + } + + public boolean isAccurate() { + return ((name != null) && (surname != null) && !name.isEmpty() && !surname.isEmpty()); + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/PersonComparatorUtils.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/PersonComparatorUtils.java new file mode 100644 index 000000000..1f8aab4bf --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/PersonComparatorUtils.java @@ -0,0 +1,119 @@ + +package eu.dnetlib.pace.model; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; + +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; + +public class PersonComparatorUtils { + + private static final int MAX_FULLNAME_LENGTH = 50; + + public static Set getNgramsForPerson(String fullname) { + + Set set = Sets.newHashSet(); + + if (fullname.length() > MAX_FULLNAME_LENGTH) { + return set; + } + + Person p = new Person(fullname, true); + + if (p.isAccurate()) { + for (String name : p.getName()) { + for (String surname : p.getSurname()) { + set.add((name.charAt(0) + "_" + surname).toLowerCase()); + } + } + } else { + List list = p.getFullname(); + for (int i = 0; i < list.size(); i++) { + if (list.get(i).length() > 1) { + for (int j = 0; j < list.size(); j++) { + if (i != j) { + set.add((list.get(j).charAt(0) + "_" + list.get(i)).toLowerCase()); + } + } + } + } + } + + return set; + } + + public static boolean areSimilar(String s1, String s2) { + Person p1 = new Person(s1, true); + Person p2 = new Person(s2, true); + + if (p1.isAccurate() && p2.isAccurate()) { + return verifyNames(p1.getName(), p2.getName()) && verifySurnames(p1.getSurname(), p2.getSurname()); + } else { + return verifyFullnames(p1.getFullname(), p2.getFullname()); + } + } + + private static boolean verifyNames(List list1, List list2) { + return verifySimilarity(extractExtendedNames(list1), extractExtendedNames(list2)) + && verifySimilarity(extractInitials(list1), extractInitials(list2)); + } + + private static boolean verifySurnames(List list1, List list2) { + if (list1.size() != list2.size()) { + return false; + } + for (int i = 0; i < list1.size(); i++) { + if (!list1.get(i).equalsIgnoreCase(list2.get(i))) { + return false; + } + } + return true; + } + + private static boolean verifyFullnames(List list1, List list2) { + Collections.sort(list1); + Collections.sort(list2); + return verifySimilarity(extractExtendedNames(list1), extractExtendedNames(list2)) + && verifySimilarity(extractInitials(list1), extractInitials(list2)); + } + + private static List extractExtendedNames(List list) { + ArrayList res = Lists.newArrayList(); + for (String s : list) { + if (s.length() > 1) { + res.add(s.toLowerCase()); + } + } + return res; + } + + private static List extractInitials(List list) { + ArrayList res = Lists.newArrayList(); + for (String s : list) { + res.add(s.substring(0, 1).toLowerCase()); + } + return res; + } + + private static boolean verifySimilarity(List list1, List list2) { + if (list1.size() > list2.size()) { + return verifySimilarity(list2, list1); + } + + // NB: List2 is greater than list1 (or equal) + int pos = -1; + for (String s : list1) { + int curr = list2.indexOf(s); + if (curr > pos) { + list2.set(curr, "*"); // I invalidate the found element, example: "amm - amm" + pos = curr; + } else { + return false; + } + } + return true; + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/RowDataOrderingComparator.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/RowDataOrderingComparator.java new file mode 100644 index 000000000..f0ded0570 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/RowDataOrderingComparator.java @@ -0,0 +1,65 @@ + +package eu.dnetlib.pace.model; + +import java.util.Comparator; + +import org.apache.spark.sql.Row; + +import eu.dnetlib.pace.clustering.NGramUtils; + +/** + * The Class MapDocumentComparator. + */ +public class RowDataOrderingComparator implements Comparator { + + /** The comparator field. */ + private final int comparatorField; + private final int identityFieldPosition; + + /** + * Instantiates a new map document comparator. + * + * @param comparatorField + * the comparator field + */ + public RowDataOrderingComparator(final int comparatorField, int identityFieldPosition) { + this.comparatorField = comparatorField; + this.identityFieldPosition = identityFieldPosition; + } + + /* + * (non-Javadoc) + * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) + */ + @Override + public int compare(final Row d1, final Row d2) { + if (d1 == null) + return d2 == null ? 0 : -1; + else if (d2 == null) { + return 1; + } + + final String o1 = d1.getString(comparatorField); + final String o2 = d2.getString(comparatorField); + + if (o1 == null) + return o2 == null ? 0 : -1; + else if (o2 == null) { + return 1; + } + + final String to1 = NGramUtils.cleanupForOrdering(o1); + final String to2 = NGramUtils.cleanupForOrdering(o2); + + int res = to1.compareTo(to2); + if (res == 0) { + res = o1.compareTo(o2); + if (res == 0) { + return d1.getString(identityFieldPosition).compareTo(d2.getString(identityFieldPosition)); + } + } + + return res; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/SparkDeduper.scala b/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/SparkDeduper.scala new file mode 100644 index 000000000..bc702b9e2 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/SparkDeduper.scala @@ -0,0 +1,157 @@ +package eu.dnetlib.pace.model + +import eu.dnetlib.pace.config.{DedupConfig, Type} +import eu.dnetlib.pace.util.{BlockProcessor, SparkReporter} +import org.apache.spark.SparkContext +import org.apache.spark.sql.catalyst.expressions.Literal +import org.apache.spark.sql.expressions._ +import org.apache.spark.sql.functions.{col, desc, expr, lit, udf} +import org.apache.spark.sql.types._ +import org.apache.spark.sql.{Column, Dataset, Row, SaveMode, functions} + +import java.util.function.Predicate +import java.util.stream.Collectors +import scala.collection.JavaConversions._ +import scala.collection.JavaConverters._ +import scala.collection.mutable +case class SparkDeduper(conf: DedupConfig) extends Serializable { + + val model: SparkModel = SparkModel(conf) + + val dedup: (Dataset[Row] => Dataset[Row]) = df => { + df.transform(filterAndCleanup) + .transform(generateClustersWithCollect) + .transform(processBlocks) + } + + + val filterAndCleanup: (Dataset[Row] => Dataset[Row]) = df => { + val df_with_filters = conf.getPace.getModel.asScala.foldLeft(df)((res, fdef) => { + if (conf.blacklists.containsKey(fdef.getName)) { + res.withColumn( + fdef.getName + "_filtered", + filterColumnUDF(fdef).apply(new Column(fdef.getName)) + ) + } else { + res + } + }) + + df_with_filters + } + + def filterColumnUDF(fdef: FieldDef): UserDefinedFunction = { + val blacklist: Predicate[String] = conf.blacklists().get(fdef.getName) + + if (blacklist == null) { + throw new IllegalArgumentException("Column: " + fdef.getName + " does not have any filter") + } else { + fdef.getType match { + case Type.List | Type.JSON => + udf[Array[String], Array[String]](values => { + values.filter((v: String) => !blacklist.test(v)) + }) + + case _ => + udf[String, String](v => { + if (blacklist.test(v)) "" + else v + }) + } + } + } + + val generateClustersWithCollect: (Dataset[Row] => Dataset[Row]) = df_with_filters => { + var df_with_clustering_keys: Dataset[Row] = null + + for ((cd, idx) <- conf.clusterings().zipWithIndex) { + val inputColumns = cd.getFields().foldLeft(Seq[Column]())((acc, fName) => { + val column = if (conf.blacklists.containsKey(fName)) + Seq(col(fName + "_filtered")) + else + Seq(col(fName)) + + acc ++ column + }) + + // Add 'key' column with the value generated by the given clustering definition + val ds: Dataset[Row] = df_with_filters + .withColumn("clustering", lit(cd.getName + "::" + idx)) + .withColumn("key", functions.explode(clusterValuesUDF(cd).apply(functions.array(inputColumns: _*)))) + // Add position column having the position of the row within the set of rows having the same key value ordered by the sorting value + .withColumn("position", functions.row_number().over(Window.partitionBy("key").orderBy(col(model.orderingFieldName), col(model.identifierFieldName)))) + // .withColumn("count", functions.max("position").over(Window.partitionBy("key").orderBy(col(model.orderingFieldName), col(model.identifierFieldName)).rowsBetween(Window.unboundedPreceding,Window.unboundedFollowing) )) + // .filter("count > 1") + + if (df_with_clustering_keys == null) + df_with_clustering_keys = ds + else + df_with_clustering_keys = df_with_clustering_keys.union(ds) + } + + //TODO: analytics + /*df_with_clustering_keys.groupBy(col("clustering"), col("key")) + .agg(expr("max(count) AS size")) + .orderBy(desc("size")) + .show*/ + + val df_with_blocks = df_with_clustering_keys + // split the clustering block into smaller blocks of queuemaxsize + .groupBy(col("clustering"), col("key"), functions.floor(col("position").divide(lit(conf.getWf.getQueueMaxSize)))) + .agg(functions.collect_set(functions.struct(model.schema.fieldNames.map(col): _*)).as("block")) + .filter(functions.size(new Column("block")).gt(1)) + .union( + //adjacency blocks + df_with_clustering_keys + // filter out leading and trailing elements + .filter(col("position").gt(conf.getWf.getSlidingWindowSize/2)) + //.filter(col("position").lt(col("count").minus(conf.getWf.getSlidingWindowSize/2))) + // create small blocks of records on "the border" of maxqueuesize: getSlidingWindowSize/2 elements before and after + .filter( + col("position").mod(conf.getWf.getQueueMaxSize).lt(conf.getWf.getSlidingWindowSize/2) // slice of the start of block + || col("position").mod(conf.getWf.getQueueMaxSize).gt(conf.getWf.getQueueMaxSize - (conf.getWf.getSlidingWindowSize/2)) //slice of the end of the block + ) + .groupBy(col("clustering"), col("key"), functions.floor((col("position") + lit(conf.getWf.getSlidingWindowSize/2)).divide(lit(conf.getWf.getQueueMaxSize)))) + .agg(functions.collect_set(functions.struct(model.schema.fieldNames.map(col): _*)).as("block")) + .filter(functions.size(new Column("block")).gt(1)) + ) + + df_with_blocks + } + + def clusterValuesUDF(cd: ClusteringDef) = { + udf[mutable.WrappedArray[String], mutable.WrappedArray[Any]](values => { + val valueList = values.flatMap { + case a: mutable.WrappedArray[Any] => a.map(_.toString) + case s: Any => Seq(s.toString) + }.asJava; + + mutable.WrappedArray.make(cd.clusteringFunction().apply(conf, valueList).toArray()) + + }) + } + + val processBlocks: (Dataset[Row] => Dataset[Row]) = df => { + df.filter(functions.size(new Column("block")).geq(new Literal(2, DataTypes.IntegerType))) + .withColumn("relations", processBlock(df.sqlContext.sparkContext).apply(new Column("block"))) + .select(functions.explode(new Column("relations")).as("relation")) + } + + def processBlock(implicit sc: SparkContext) = { + val accumulators = SparkReporter.constructAccumulator(conf, sc) + + udf[Array[(String, String)], mutable.WrappedArray[Row]](block => { + val reporter = new SparkReporter(accumulators) + + val mapDocuments = block.asJava.stream() + .sorted(new RowDataOrderingComparator(model.orderingFieldPosition, model.identityFieldPosition)) + .limit(conf.getWf.getQueueMaxSize) + .collect(Collectors.toList[Row]()) + + new BlockProcessor(conf, model.identityFieldPosition, model.orderingFieldPosition).processSortedRows(mapDocuments, reporter) + + reporter.getRelations.asScala.toArray + }).asNondeterministic() + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/SparkModel.scala b/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/SparkModel.scala new file mode 100644 index 000000000..aa04188da --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/SparkModel.scala @@ -0,0 +1,150 @@ +package eu.dnetlib.pace.model + +import com.jayway.jsonpath.{Configuration, JsonPath} +import eu.dnetlib.pace.common.AbstractPaceFunctions +import eu.dnetlib.pace.config.{DedupConfig, Type} +import eu.dnetlib.pace.util.MapDocumentUtil +import org.apache.commons.lang3.StringUtils +import org.apache.spark.sql.catalyst.encoders.RowEncoder +import org.apache.spark.sql.catalyst.expressions.GenericRowWithSchema +import org.apache.spark.sql.types.{DataTypes, Metadata, StructField, StructType} +import org.apache.spark.sql.{Dataset, Row} + +import java.util.Locale +import java.util.regex.Pattern +import scala.collection.JavaConverters._ + +case class SparkModel(conf: DedupConfig) { + private val URL_REGEX: Pattern = Pattern.compile("^\\s*(http|https|ftp)\\://.*") + + private val CONCAT_REGEX: Pattern = Pattern.compile("\\|\\|\\|") + + val identifierFieldName = "identifier" + + val orderingFieldName = if (!conf.getWf.getOrderField.isEmpty) conf.getWf.getOrderField else identifierFieldName + + val schema: StructType = { + // create an implicit identifier field + val identifier = new FieldDef() + identifier.setName(identifierFieldName) + identifier.setType(Type.String) + + // Construct a Spark StructType representing the schema of the model + (Seq(identifier) ++ conf.getPace.getModel.asScala) + .foldLeft( + new StructType() + )((resType, fieldDef) => { + resType.add(fieldDef.getType match { + case Type.List | Type.JSON => + StructField(fieldDef.getName, DataTypes.createArrayType(DataTypes.StringType), true, Metadata.empty) + case Type.DoubleArray => + StructField(fieldDef.getName, DataTypes.createArrayType(DataTypes.DoubleType), true, Metadata.empty) + case _ => + StructField(fieldDef.getName, DataTypes.StringType, true, Metadata.empty) + }) + }) + + + } + + val identityFieldPosition: Int = schema.fieldIndex(identifierFieldName) + + val orderingFieldPosition: Int = schema.fieldIndex(orderingFieldName) + + val parseJsonDataset: (Dataset[String] => Dataset[Row]) = df => { + df.map(r => rowFromJson(r))(RowEncoder(schema)) + } + + def rowFromJson(json: String): Row = { + val documentContext = + JsonPath.using(Configuration.defaultConfiguration.addOptions(com.jayway.jsonpath.Option.SUPPRESS_EXCEPTIONS)).parse(json) + val values = new Array[Any](schema.size) + + values(identityFieldPosition) = MapDocumentUtil.getJPathString(conf.getWf.getIdPath, documentContext) + + schema.fieldNames.zipWithIndex.foldLeft(values) { + case ((res, (fname, index))) => + val fdef = conf.getPace.getModelMap.get(fname) + + if (fdef != null) { + res(index) = fdef.getType match { + case Type.String | Type.Int => + MapDocumentUtil.truncateValue( + MapDocumentUtil.getJPathString(fdef.getPath, documentContext), + fdef.getLength + ) + + case Type.URL => + var uv = MapDocumentUtil.getJPathString(fdef.getPath, documentContext) + if (!URL_REGEX.matcher(uv).matches) + uv = "" + uv + + case Type.List | Type.JSON => + MapDocumentUtil.truncateList( + MapDocumentUtil.getJPathList(fdef.getPath, documentContext, fdef.getType), + fdef.getSize + ).asScala + + case Type.StringConcat => + val jpaths = CONCAT_REGEX.split(fdef.getPath) + + MapDocumentUtil.truncateValue( + jpaths + .map(jpath => MapDocumentUtil.getJPathString(jpath, documentContext)) + .mkString(" "), + fdef.getLength + ) + + case Type.DoubleArray => + MapDocumentUtil.getJPathArray(fdef.getPath, json) + } + + val filter = fdef.getFilter + + if (StringUtils.isNotBlank(fdef.getClean)) { + res(index) = res(index) match { + case x: Seq[String] => x.map(clean(_, fdef.getClean)).toSeq + case _ => clean(res(index).toString, fdef.getClean) + } + } + + if (filter != null && !filter.isEmpty) { + res(index) = res(index) match { + case x: String if filter.contains(x.toLowerCase(Locale.ROOT)) => null + case x: Seq[String] => x.filter(s => !filter.contains(s.toLowerCase(Locale.ROOT))).toSeq + case _ => res(index) + } + } + + if (fdef.getSorted) { + res(index) = res(index) match { + case x: Seq[String] => x.sorted.toSeq + case _ => res(index) + } + } + } + + res + } + + new GenericRowWithSchema(values, schema) + } + + def clean(value: String, cleantype: String) : String = { + val res = cleantype match { + case "title" => AbstractPaceFunctions.cleanup(value) + case _ => value + } + +// if (!res.equals(AbstractPaceFunctions.normalize(value))) { +// println(res) +// println(AbstractPaceFunctions.normalize(value)) +// println() +// } + + res + } + +} + diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/AlwaysMatch.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/AlwaysMatch.java new file mode 100644 index 000000000..4d31df5b3 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/AlwaysMatch.java @@ -0,0 +1,42 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import com.wcohen.ss.AbstractStringDistance; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("alwaysMatch") +public class AlwaysMatch extends AbstractComparator { + + public AlwaysMatch(final Map params) { + super(params, new com.wcohen.ss.JaroWinkler()); + } + + public AlwaysMatch(final double weight) { + super(weight, new com.wcohen.ss.JaroWinkler()); + } + + protected AlwaysMatch(final double weight, final AbstractStringDistance ssalgo) { + super(weight, ssalgo); + } + + @Override + public double compare(final Object a, final Object b, final Config conf) { + return 1.0; + } + + @Override + public double getWeight() { + return super.weight; + } + + @Override + protected double normalize(final double d) { + return d; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/AuthorsMatch.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/AuthorsMatch.java new file mode 100644 index 000000000..edad0ae2e --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/AuthorsMatch.java @@ -0,0 +1,164 @@ + +package eu.dnetlib.pace.tree; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import com.wcohen.ss.AbstractStringDistance; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.model.Person; +import eu.dnetlib.pace.tree.support.AbstractListComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("authorsMatch") +public class AuthorsMatch extends AbstractListComparator { + + Map params; + + private double SURNAME_THRESHOLD; + private double NAME_THRESHOLD; + private double FULLNAME_THRESHOLD; + private String MODE; // full or surname + private int SIZE_THRESHOLD; + private String TYPE; // count or percentage + + public AuthorsMatch(Map params) { + super(params, new com.wcohen.ss.JaroWinkler()); + this.params = params; + + MODE = params.getOrDefault("mode", "full"); + SURNAME_THRESHOLD = Double.parseDouble(params.getOrDefault("surname_th", "0.95")); + NAME_THRESHOLD = Double.parseDouble(params.getOrDefault("name_th", "0.95")); + FULLNAME_THRESHOLD = Double.parseDouble(params.getOrDefault("fullname_th", "0.9")); + SIZE_THRESHOLD = Integer.parseInt(params.getOrDefault("size_th", "20")); + TYPE = params.getOrDefault("type", "percentage"); + } + + protected AuthorsMatch(double w, AbstractStringDistance ssalgo) { + super(w, ssalgo); + } + + @Override + public double compare(final List a, final List b, final Config conf) { + if (a.isEmpty() || b.isEmpty()) + return -1; + + if (a.size() > SIZE_THRESHOLD || b.size() > SIZE_THRESHOLD) + return 1.0; + + int maxMiss = Integer.MAX_VALUE; + List bList = b.stream().map(author -> new Person(author, false)).collect(Collectors.toList()); + + Double threshold = getDoubleParam("threshold"); + + if (threshold != null && threshold >= 0.0 && threshold <= 1.0 && a.size() == b.size()) { + maxMiss = (int) Math.floor((1 - threshold) * Math.max(a.size(), b.size())); + } + + int common = 0; + // compare each element of List1 with each element of List2 + for (int i = 0; i < a.size(); i++) { + Person p1 = new Person(a.get(i), false); + + for (Person p2 : bList) { + // both persons are inaccurate + if (!p1.isAccurate() && !p2.isAccurate()) { + // compare just normalized fullnames + String fullname1 = normalization( + p1.getNormalisedFullname().isEmpty() ? p1.getOriginal() : p1.getNormalisedFullname()); + String fullname2 = normalization( + p2.getNormalisedFullname().isEmpty() ? p2.getOriginal() : p2.getNormalisedFullname()); + + if (ssalgo.score(fullname1, fullname2) > FULLNAME_THRESHOLD) { + common += 1; + break; + } + } + + // one person is inaccurate + if (p1.isAccurate() ^ p2.isAccurate()) { + // prepare data + // data for the accurate person + String name = normalization( + p1.isAccurate() ? p1.getNormalisedFirstName() : p2.getNormalisedFirstName()); + String surname = normalization( + p1.isAccurate() ? p1.getNormalisedSurname() : p2.getNormalisedSurname()); + + // data for the inaccurate person + String fullname = normalization( + p1.isAccurate() + ? ((p2.getNormalisedFullname().isEmpty()) ? p2.getOriginal() : p2.getNormalisedFullname()) + : (p1.getNormalisedFullname().isEmpty() ? p1.getOriginal() : p1.getNormalisedFullname())); + + if (fullname.contains(surname)) { + if (MODE.equals("full")) { + if (fullname.contains(name)) { + common += 1; + break; + } + } else { // MODE equals "surname" + common += 1; + break; + } + } + } + + // both persons are accurate + if (p1.isAccurate() && p2.isAccurate()) { + + if (compareSurname(p1, p2)) { + if (MODE.equals("full")) { + if (compareFirstname(p1, p2)) { + common += 1; + break; + } + } else { // MODE equals "surname" + common += 1; + break; + } + } + + } + } + + if (i - common > maxMiss) { + return 0.0; + } + } + + // normalization factor to compute the score + int normFactor = a.size() == b.size() ? a.size() : (a.size() + b.size() - common); + + if (TYPE.equals("percentage")) { + return (double) common / normFactor; + } else { + return (double) common; + } + } + + public boolean compareSurname(Person p1, Person p2) { + return ssalgo + .score( + normalization(p1.getNormalisedSurname()), normalization(p2.getNormalisedSurname())) > SURNAME_THRESHOLD; + } + + public boolean compareFirstname(Person p1, Person p2) { + + if (p1.getNormalisedFirstName().length() <= 2 || p2.getNormalisedFirstName().length() <= 2) { + if (firstLC(p1.getNormalisedFirstName()).equals(firstLC(p2.getNormalisedFirstName()))) + return true; + } + + return ssalgo + .score( + normalization(p1.getNormalisedFirstName()), + normalization(p2.getNormalisedFirstName())) > NAME_THRESHOLD; + } + + public String normalization(String s) { + return normalize(utf8(cleanup(s))); + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/CityMatch.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/CityMatch.java new file mode 100644 index 000000000..1d898ad83 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/CityMatch.java @@ -0,0 +1,48 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; +import java.util.Set; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("cityMatch") +public class CityMatch extends AbstractStringComparator { + + private Map params; + + public CityMatch(Map params) { + super(params); + this.params = params; + } + + @Override + public double distance(final String a, final String b, final Config conf) { + + String ca = cleanup(a); + String cb = cleanup(b); + + ca = normalize(ca); + cb = normalize(cb); + + ca = filterAllStopWords(ca); + cb = filterAllStopWords(cb); + + Set cities1 = getCities(ca, Integer.parseInt(params.getOrDefault("windowSize", "4"))); + Set cities2 = getCities(cb, Integer.parseInt(params.getOrDefault("windowSize", "4"))); + + Set codes1 = citiesToCodes(cities1); + Set codes2 = citiesToCodes(cities2); + + // if no cities are detected, the comparator gives 1.0 + if (codes1.isEmpty() && codes2.isEmpty()) + return 1.0; + else { + if (codes1.isEmpty() ^ codes2.isEmpty()) + return -1; // undefined if one of the two has no cities + return commonElementsPercentage(codes1, codes2); + } + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/CosineSimilarity.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/CosineSimilarity.java new file mode 100644 index 000000000..d255612ba --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/CosineSimilarity.java @@ -0,0 +1,47 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("cosineSimilarity") +public class CosineSimilarity extends AbstractComparator { + + Map params; + + public CosineSimilarity(Map params) { + super(params); + } + + @Override + public double compare(Object a, Object b, Config config) { + return compare((double[]) a, (double[]) b, config); + } + + public double compare(final double[] a, final double[] b, final Config conf) { + + if (a.length == 0 || b.length == 0) + return -1; + + return cosineSimilarity(a, b); + } + + double cosineSimilarity(double[] a, double[] b) { + double dotProduct = 0; + double normASum = 0; + double normBSum = 0; + + for (int i = 0; i < a.length; i++) { + dotProduct += a[i] * b[i]; + normASum += a[i] * a[i]; + normBSum += b[i] * b[i]; + } + + double eucledianDist = Math.sqrt(normASum) * Math.sqrt(normBSum); + return dotProduct / eucledianDist; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/DoiExactMatch.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/DoiExactMatch.java new file mode 100644 index 000000000..d3c5bc10d --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/DoiExactMatch.java @@ -0,0 +1,27 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import eu.dnetlib.pace.tree.support.ComparatorClass; + +/** + * The Class ExactMatch. + * + * @author claudio + */ +@ComparatorClass("doiExactMatch") +public class DoiExactMatch extends ExactMatchIgnoreCase { + + public final String PREFIX = "(http:\\/\\/dx\\.doi\\.org\\/)|(doi:)"; + + public DoiExactMatch(final Map params) { + super(params); + } + + @Override + protected String toString(final Object f) { + return super.toString(f).replaceAll(PREFIX, ""); + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/DomainExactMatch.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/DomainExactMatch.java new file mode 100644 index 000000000..c28274652 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/DomainExactMatch.java @@ -0,0 +1,30 @@ + +package eu.dnetlib.pace.tree; + +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Map; + +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("domainExactMatch") +public class DomainExactMatch extends ExactMatchIgnoreCase { + + public DomainExactMatch(final Map params) { + super(params); + } + + @Override + protected String toString(final Object f) { + + try { + return asUrl(super.toString(f)).getHost(); + } catch (MalformedURLException e) { + return ""; + } + } + + private URL asUrl(final String value) throws MalformedURLException { + return new URL(value); + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/ExactMatch.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/ExactMatch.java new file mode 100644 index 000000000..35357c553 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/ExactMatch.java @@ -0,0 +1,44 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import com.wcohen.ss.AbstractStringDistance; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("exactMatch") +public class ExactMatch extends AbstractStringComparator { + + public ExactMatch(Map params) { + super(params, new com.wcohen.ss.JaroWinkler()); + } + + public ExactMatch(final double weight) { + super(weight, new com.wcohen.ss.JaroWinkler()); + } + + protected ExactMatch(final double weight, final AbstractStringDistance ssalgo) { + super(weight, ssalgo); + } + + @Override + public double distance(final String a, final String b, final Config conf) { + if (a.isEmpty() || b.isEmpty()) { + return -1.0; // return -1 if a field is missing + } + return a.equals(b) ? 1.0 : 0; + } + + @Override + public double getWeight() { + return super.weight; + } + + @Override + protected double normalize(final double d) { + return d; + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/ExactMatchIgnoreCase.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/ExactMatchIgnoreCase.java new file mode 100644 index 000000000..85c57ad40 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/ExactMatchIgnoreCase.java @@ -0,0 +1,29 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("exactMatchIgnoreCase") +public class ExactMatchIgnoreCase extends AbstractStringComparator { + + public ExactMatchIgnoreCase(Map params) { + super(params); + } + + @Override + public double compare(String a, String b, final Config conf) { + + if (a.isEmpty() || b.isEmpty()) + return -1; + + return a.equalsIgnoreCase(b) ? 1 : 0; + } + + protected String toString(final Object object) { + return toFirstString(object); + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/InstanceTypeMatch.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/InstanceTypeMatch.java new file mode 100644 index 000000000..34ebcf7a7 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/InstanceTypeMatch.java @@ -0,0 +1,80 @@ + +package eu.dnetlib.pace.tree; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +import com.google.common.collect.Sets; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractListComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("instanceTypeMatch") +public class InstanceTypeMatch extends AbstractListComparator { + + final Map translationMap = new HashMap<>(); + + public InstanceTypeMatch(Map params) { + super(params); + + // jolly types + translationMap.put("Conference object", "*"); + translationMap.put("Other literature type", "*"); + translationMap.put("Unknown", "*"); + translationMap.put("UNKNOWN", "*"); + + // article types + translationMap.put("Article", "Article"); + translationMap.put("Data Paper", "Article"); + translationMap.put("Software Paper", "Article"); + translationMap.put("Preprint", "Article"); + + // thesis types + translationMap.put("Thesis", "Thesis"); + translationMap.put("Master thesis", "Thesis"); + translationMap.put("Bachelor thesis", "Thesis"); + translationMap.put("Doctoral thesis", "Thesis"); + } + + @Override + public double compare(final List a, final List b, final Config conf) { + + if (a == null || b == null) { + return -1; + } + + if (a.isEmpty() || b.isEmpty()) { + return -1; + } + + final Set ca = a.stream().map(this::translate).collect(Collectors.toSet()); + final Set cb = b.stream().map(this::translate).collect(Collectors.toSet()); + + // if at least one is a jolly type, it must produce a match + if (ca.contains("*") || cb.contains("*")) + return 1.0; + + int incommon = Sets.intersection(ca, cb).size(); + + // if at least one is in common, it must produce a match + return incommon >= 1 ? 1 : 0; + } + + public String translate(String term) { + return translationMap.getOrDefault(term, term); + } + + @Override + public double getWeight() { + return super.weight; + } + + @Override + protected double normalize(final double d) { + return d; + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/JaroWinkler.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/JaroWinkler.java new file mode 100644 index 000000000..2cb411d26 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/JaroWinkler.java @@ -0,0 +1,46 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import com.wcohen.ss.AbstractStringDistance; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +//case class JaroWinkler(w: Double) extends SecondStringDistanceAlgo(w, new com.wcohen.ss.JaroWinkler()) +@ComparatorClass("jaroWinkler") +public class JaroWinkler extends AbstractStringComparator { + + public JaroWinkler(Map params) { + super(params, new com.wcohen.ss.JaroWinkler()); + } + + public JaroWinkler(double weight) { + super(weight, new com.wcohen.ss.JaroWinkler()); + } + + protected JaroWinkler(double weight, AbstractStringDistance ssalgo) { + super(weight, ssalgo); + } + + @Override + public double distance(String a, String b, final Config conf) { + String ca = cleanup(a); + String cb = cleanup(b); + + return normalize(ssalgo.score(ca, cb)); + } + + @Override + public double getWeight() { + return super.weight; + } + + @Override + protected double normalize(double d) { + return d; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/JaroWinklerNormalizedName.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/JaroWinklerNormalizedName.java new file mode 100644 index 000000000..576b9281d --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/JaroWinklerNormalizedName.java @@ -0,0 +1,74 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; +import java.util.Set; + +import com.wcohen.ss.AbstractStringDistance; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("jaroWinklerNormalizedName") +public class JaroWinklerNormalizedName extends AbstractStringComparator { + + private Map params; + + public JaroWinklerNormalizedName(Map params) { + super(params, new com.wcohen.ss.JaroWinkler()); + this.params = params; + } + + public JaroWinklerNormalizedName(double weight) { + super(weight, new com.wcohen.ss.JaroWinkler()); + } + + protected JaroWinklerNormalizedName(double weight, AbstractStringDistance ssalgo) { + super(weight, ssalgo); + } + + @Override + public double distance(String a, String b, final Config conf) { + String ca = cleanup(a); + String cb = cleanup(b); + + ca = normalize(ca); + cb = normalize(cb); + + ca = filterAllStopWords(ca); + cb = filterAllStopWords(cb); + + Set keywords1 = getKeywords( + ca, conf.translationMap(), Integer.parseInt(params.getOrDefault("windowSize", "4"))); + Set keywords2 = getKeywords( + cb, conf.translationMap(), Integer.parseInt(params.getOrDefault("windowSize", "4"))); + + Set cities1 = getCities(ca, Integer.parseInt(params.getOrDefault("windowSize", "4"))); + Set cities2 = getCities(cb, Integer.parseInt(params.getOrDefault("windowSize", "4"))); + + ca = removeKeywords(ca, keywords1); + ca = removeKeywords(ca, cities1); + cb = removeKeywords(cb, keywords2); + cb = removeKeywords(cb, cities2); + + ca = ca.replaceAll("[ ]{2,}", " "); + cb = cb.replaceAll("[ ]{2,}", " "); + + if (ca.isEmpty() && cb.isEmpty()) + return 1.0; + else + return normalize(ssalgo.score(ca, cb)); + } + + @Override + public double getWeight() { + return super.weight; + } + + @Override + protected double normalize(double d) { + return d; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/JaroWinklerTitle.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/JaroWinklerTitle.java new file mode 100644 index 000000000..6ba7dd2a4 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/JaroWinklerTitle.java @@ -0,0 +1,47 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import com.wcohen.ss.AbstractStringDistance; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +//case class JaroWinkler(w: Double) extends SecondStringDistanceAlgo(w, new com.wcohen.ss.JaroWinkler()) +@ComparatorClass("jaroWinklerTitle") +public class JaroWinklerTitle extends AbstractStringComparator { + + public JaroWinklerTitle(Map params) { + super(params, new com.wcohen.ss.JaroWinkler()); + } + + public JaroWinklerTitle(double weight) { + super(weight, new com.wcohen.ss.JaroWinkler()); + } + + protected JaroWinklerTitle(double weight, AbstractStringDistance ssalgo) { + super(weight, ssalgo); + } + + @Override + public double distance(String a, String b, final Config conf) { + String ca = cleanup(a); + String cb = cleanup(b); + + boolean check = checkNumbers(ca, cb); + return check ? 0.5 : normalize(ssalgo.score(ca, cb)); + } + + @Override + public double getWeight() { + return super.weight; + } + + @Override + protected double normalize(double d) { + return d; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/JsonListMatch.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/JsonListMatch.java new file mode 100644 index 000000000..3897e37f8 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/JsonListMatch.java @@ -0,0 +1,82 @@ + +package eu.dnetlib.pace.tree; + +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import com.google.common.collect.Sets; +import com.jayway.jsonpath.Configuration; +import com.jayway.jsonpath.DocumentContext; +import com.jayway.jsonpath.JsonPath; +import com.jayway.jsonpath.Option; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractListComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; +import eu.dnetlib.pace.util.MapDocumentUtil; + +@ComparatorClass("jsonListMatch") +public class JsonListMatch extends AbstractListComparator { + + private static final Log log = LogFactory.getLog(JsonListMatch.class); + private Map params; + + private String MODE; // "percentage" or "count" + + public JsonListMatch(final Map params) { + super(params); + this.params = params; + + MODE = params.getOrDefault("mode", "percentage"); + } + + @Override + public double compare(final List sa, final List sb, final Config conf) { + if (sa.isEmpty() || sb.isEmpty()) { + return -1; + } + + final Set ca = sa.stream().map(this::toComparableString).collect(Collectors.toSet()); + final Set cb = sb.stream().map(this::toComparableString).collect(Collectors.toSet()); + + int incommon = Sets.intersection(ca, cb).size(); + int simDiff = Sets.symmetricDifference(ca, cb).size(); + + if (incommon + simDiff == 0) { + return 0.0; + } + + if (MODE.equals("percentage")) + return (double) incommon / (incommon + simDiff); + else + return incommon; + + } + + // converts every json into a comparable string basing on parameters + private String toComparableString(String json) { + + StringBuilder st = new StringBuilder(); // to build the string used for comparisons basing on the jpath into + // parameters + final DocumentContext documentContext = JsonPath + .using(Configuration.defaultConfiguration().addOptions(Option.SUPPRESS_EXCEPTIONS)) + .parse(json); + // for each path in the param list + for (String key : params.keySet().stream().filter(k -> k.contains("jpath")).collect(Collectors.toList())) { + String path = params.get(key); + String value = MapDocumentUtil.getJPathString(path, documentContext); + if (value == null || value.isEmpty()) + value = ""; + st.append(value); + st.append("::"); + } + + st.setLength(st.length() - 2); + return st.toString(); + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/KeywordMatch.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/KeywordMatch.java new file mode 100644 index 000000000..53acb4dc8 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/KeywordMatch.java @@ -0,0 +1,50 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; +import java.util.Set; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("keywordMatch") +public class KeywordMatch extends AbstractStringComparator { + + Map params; + + public KeywordMatch(Map params) { + super(params); + this.params = params; + } + + @Override + public double distance(final String a, final String b, final Config conf) { + + String ca = cleanup(a); + String cb = cleanup(b); + + ca = normalize(ca); + cb = normalize(cb); + + ca = filterAllStopWords(ca); + cb = filterAllStopWords(cb); + + Set keywords1 = getKeywords( + ca, conf.translationMap(), Integer.parseInt(params.getOrDefault("windowSize", "4"))); + Set keywords2 = getKeywords( + cb, conf.translationMap(), Integer.parseInt(params.getOrDefault("windowSize", "4"))); + + Set codes1 = toCodes(keywords1, conf.translationMap()); + Set codes2 = toCodes(keywords2, conf.translationMap()); + + // if no cities are detected, the comparator gives 1.0 + if (codes1.isEmpty() && codes2.isEmpty()) + return 1.0; + else { + if (codes1.isEmpty() ^ codes2.isEmpty()) + return -1.0; // undefined if one of the two has no keywords + return commonElementsPercentage(codes1, codes2); + } + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/Level2JaroWinkler.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/Level2JaroWinkler.java new file mode 100644 index 000000000..970f975f6 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/Level2JaroWinkler.java @@ -0,0 +1,36 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import com.wcohen.ss.AbstractStringDistance; + +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("level2JaroWinkler") +public class Level2JaroWinkler extends AbstractStringComparator { + + public Level2JaroWinkler(Map params) { + super(params, new com.wcohen.ss.Level2JaroWinkler()); + } + + public Level2JaroWinkler(double w) { + super(w, new com.wcohen.ss.Level2JaroWinkler()); + } + + protected Level2JaroWinkler(double w, AbstractStringDistance ssalgo) { + super(w, ssalgo); + } + + @Override + public double getWeight() { + return super.weight; + } + + @Override + protected double normalize(double d) { + return d; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/Level2JaroWinklerTitle.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/Level2JaroWinklerTitle.java new file mode 100644 index 000000000..e351058f9 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/Level2JaroWinklerTitle.java @@ -0,0 +1,50 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import com.wcohen.ss.AbstractStringDistance; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("level2JaroWinklerTitle") +public class Level2JaroWinklerTitle extends AbstractStringComparator { + + public Level2JaroWinklerTitle(Map params) { + super(params, new com.wcohen.ss.Level2JaroWinkler()); + } + + public Level2JaroWinklerTitle(final double w) { + super(w, new com.wcohen.ss.Level2JaroWinkler()); + } + + protected Level2JaroWinklerTitle(final double w, final AbstractStringDistance ssalgo) { + super(w, ssalgo); + } + + @Override + public double distance(final String a, final String b, final Config conf) { + final String ca = cleanup(a); + final String cb = cleanup(b); + + final boolean check = checkNumbers(ca, cb); + + if (check) + return 0.5; + + return ssalgo.score(ca, cb); + } + + @Override + public double getWeight() { + return super.weight; + } + + @Override + protected double normalize(final double d) { + return d; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/Level2Levenstein.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/Level2Levenstein.java new file mode 100644 index 000000000..e66602e4f --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/Level2Levenstein.java @@ -0,0 +1,36 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import com.wcohen.ss.AbstractStringDistance; + +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("level2Levenstein") +public class Level2Levenstein extends AbstractStringComparator { + + public Level2Levenstein(Map params) { + super(params, new com.wcohen.ss.Level2Levenstein()); + } + + public Level2Levenstein(double w) { + super(w, new com.wcohen.ss.Level2Levenstein()); + } + + protected Level2Levenstein(double w, AbstractStringDistance ssalgo) { + super(w, ssalgo); + } + + @Override + public double getWeight() { + return super.weight; + } + + @Override + protected double normalize(double d) { + return 1 / Math.pow(Math.abs(d) + 1, 0.1); + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/Levenstein.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/Levenstein.java new file mode 100644 index 000000000..0871f8176 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/Levenstein.java @@ -0,0 +1,36 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import com.wcohen.ss.AbstractStringDistance; + +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("levenstein") +public class Levenstein extends AbstractStringComparator { + + public Levenstein(Map params) { + super(params, new com.wcohen.ss.Levenstein()); + } + + public Levenstein(double w) { + super(w, new com.wcohen.ss.Levenstein()); + } + + protected Levenstein(double w, AbstractStringDistance ssalgo) { + super(w, ssalgo); + } + + @Override + public double getWeight() { + return super.weight; + } + + @Override + protected double normalize(double d) { + return 1 / Math.pow(Math.abs(d) + 1, 0.1); + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/LevensteinTitle.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/LevensteinTitle.java new file mode 100644 index 000000000..e2ee062b5 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/LevensteinTitle.java @@ -0,0 +1,69 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import com.wcohen.ss.AbstractStringDistance; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("levensteinTitle") +public class LevensteinTitle extends AbstractStringComparator { + + private static final Log log = LogFactory.getLog(LevensteinTitle.class); + + public LevensteinTitle(Map params) { + super(params, new com.wcohen.ss.Levenstein()); + } + + public LevensteinTitle(final double w) { + super(w, new com.wcohen.ss.Levenstein()); + } + + protected LevensteinTitle(final double w, final AbstractStringDistance ssalgo) { + super(w, ssalgo); + } + + @Override + public double distance(final String ca, final String cb, final Config conf) { + final boolean check = checkNumbers(ca, cb); + + if (check) + return 0.5; + + Double threshold = getDoubleParam("threshold"); + + // reduce Levenshtein algo complexity when target threshold is known + if (threshold != null && threshold >= 0.0 && threshold <= 1.0) { + int maxdistance = (int) Math.floor((1 - threshold) * Math.max(ca.length(), cb.length())); + int score = StringUtils.getLevenshteinDistance(ca, cb, maxdistance); + if (score == -1) { + return 0; + } + return normalize(score, ca.length(), cb.length()); + } else { + return normalize(StringUtils.getLevenshteinDistance(ca, cb), ca.length(), cb.length()); + } + } + + private double normalize(final double score, final int la, final int lb) { + return 1 - (Math.abs(score) / Math.max(la, lb)); + } + + @Override + public double getWeight() { + return super.weight; + } + + @Override + protected double normalize(final double d) { + return 1 / Math.pow(Math.abs(d) + 1, 0.1); + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/LevensteinTitleIgnoreVersion.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/LevensteinTitleIgnoreVersion.java new file mode 100644 index 000000000..341c0a62b --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/LevensteinTitleIgnoreVersion.java @@ -0,0 +1,58 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import com.wcohen.ss.AbstractStringDistance; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +/** + * Compared compare between two titles, ignoring version numbers. Suitable for Software entities. + */ +@ComparatorClass("levensteinTitleIgnoreVersion") +public class LevensteinTitleIgnoreVersion extends AbstractStringComparator { + + public LevensteinTitleIgnoreVersion(Map params) { + super(params, new com.wcohen.ss.Levenstein()); + } + + public LevensteinTitleIgnoreVersion(final double w) { + super(w, new com.wcohen.ss.Levenstein()); + } + + protected LevensteinTitleIgnoreVersion(final double w, final AbstractStringDistance ssalgo) { + super(w, ssalgo); + } + + @Override + public double distance(final String a, final String b, final Config conf) { + String ca = cleanup(a); + String cb = cleanup(b); + + ca = ca.replaceAll("\\d", "").replaceAll(getRomans(ca), "").trim(); + cb = cb.replaceAll("\\d", "").replaceAll(getRomans(cb), "").trim(); + + ca = filterAllStopWords(ca); + cb = filterAllStopWords(cb); + + return normalize(ssalgo.score(ca, cb), ca.length(), cb.length()); + } + + private double normalize(final double score, final int la, final int lb) { + return 1 - (Math.abs(score) / Math.max(la, lb)); + } + + @Override + public double getWeight() { + return super.weight; + } + + @Override + protected double normalize(final double d) { + return 1 / Math.pow(Math.abs(d) + 1, 0.1); + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/ListContainsMatch.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/ListContainsMatch.java new file mode 100644 index 000000000..059db8de5 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/ListContainsMatch.java @@ -0,0 +1,66 @@ + +package eu.dnetlib.pace.tree; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractListComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +/** + * The Class Contains match + * + * @author miconis + * */ +@ComparatorClass("listContainsMatch") +public class ListContainsMatch extends AbstractListComparator { + + private Map params; + private boolean CASE_SENSITIVE; + private String STRING; + private String AGGREGATOR; + + public ListContainsMatch(Map params) { + super(params); + this.params = params; + + // read parameters + CASE_SENSITIVE = Boolean.parseBoolean(params.getOrDefault("caseSensitive", "false")); + STRING = params.get("string"); + AGGREGATOR = params.get("bool"); + } + + @Override + public double compare(List sa, List sb, Config conf) { + if (sa.isEmpty() || sb.isEmpty()) { + return -1; + } + + if (!CASE_SENSITIVE) { + sa = sa.stream().map(String::toLowerCase).collect(Collectors.toList()); + sb = sb.stream().map(String::toLowerCase).collect(Collectors.toList()); + STRING = STRING.toLowerCase(); + } + + switch (AGGREGATOR) { + case "AND": + if (sa.contains(STRING) && sb.contains(STRING)) + return 1.0; + break; + case "OR": + if (sa.contains(STRING) || sb.contains(STRING)) + return 1.0; + break; + case "XOR": + if (sa.contains(STRING) ^ sb.contains(STRING)) + return 1.0; + break; + default: + return 0.0; + } + return 0.0; + + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/MaxLengthMatch.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/MaxLengthMatch.java new file mode 100644 index 000000000..8f525c6d5 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/MaxLengthMatch.java @@ -0,0 +1,29 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("maxLengthMatch") +public class MaxLengthMatch extends AbstractStringComparator { + + private final int limit; + + public MaxLengthMatch(Map params) { + super(params); + + limit = Integer.parseInt(params.getOrDefault("limit", "200")); + } + + @Override + public double compare(String a, String b, final Config conf) { + return a.length() < limit && b.length() < limit ? 1.0 : -1.0; + } + + protected String toString(final Object object) { + return toFirstString(object); + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/MustBeDifferent.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/MustBeDifferent.java new file mode 100644 index 000000000..b9d62cf16 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/MustBeDifferent.java @@ -0,0 +1,42 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import com.wcohen.ss.AbstractStringDistance; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("mustBeDifferent") +public class MustBeDifferent extends AbstractStringComparator { + + public MustBeDifferent(Map params) { + super(params, new com.wcohen.ss.Levenstein()); + } + + public MustBeDifferent(final double weight) { + super(weight, new com.wcohen.ss.JaroWinkler()); + } + + protected MustBeDifferent(final double weight, final AbstractStringDistance ssalgo) { + super(weight, ssalgo); + } + + @Override + public double distance(final String a, final String b, final Config conf) { + return !a.equals(b) ? 1.0 : 0; + } + + @Override + public double getWeight() { + return super.weight; + } + + @Override + protected double normalize(final double d) { + return d; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/NullDistanceAlgo.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/NullDistanceAlgo.java new file mode 100644 index 000000000..3ae1dcde0 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/NullDistanceAlgo.java @@ -0,0 +1,24 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.Comparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +/** + * Not all fields of a document need to partecipate in the compare measure. We model those fields as having a + * NullDistanceAlgo. + */ +@ComparatorClass("null") +public class NullDistanceAlgo implements Comparator { + + public NullDistanceAlgo(Map params) { + } + + @Override + public double compare(Object a, Object b, Config config) { + return 0; + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/NumbersComparator.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/NumbersComparator.java new file mode 100644 index 000000000..2c003a170 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/NumbersComparator.java @@ -0,0 +1,35 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("numbersComparator") +public class NumbersComparator extends AbstractStringComparator { + + Map params; + + public NumbersComparator(Map params) { + super(params); + this.params = params; + } + + @Override + public double distance(String a, String b, Config conf) { + + // extracts numbers from the field + String numbers1 = getNumbers(nfd(a)); + String numbers2 = getNumbers(nfd(b)); + + if (numbers1.isEmpty() || numbers2.isEmpty()) + return -1.0; + + int n1 = Integer.parseInt(numbers1); + int n2 = Integer.parseInt(numbers2); + + return Math.abs(n1 - n2); + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/NumbersMatch.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/NumbersMatch.java new file mode 100644 index 000000000..820436d2e --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/NumbersMatch.java @@ -0,0 +1,35 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("numbersMatch") +public class NumbersMatch extends AbstractStringComparator { + + public NumbersMatch(Map params) { + super(params); + } + + @Override + public double distance(String a, String b, Config conf) { + + // extracts numbers from the field + String numbers1 = getNumbers(nfd(a)); + String numbers2 = getNumbers(nfd(b)); + + if (numbers1.isEmpty() && numbers2.isEmpty()) + return 1.0; + + if (numbers1.isEmpty() || numbers2.isEmpty()) + return -1.0; + + if (numbers1.equals(numbers2)) + return 1.0; + + return 0.0; + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/RomansMatch.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/RomansMatch.java new file mode 100644 index 000000000..a7c580973 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/RomansMatch.java @@ -0,0 +1,35 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("romansMatch") +public class RomansMatch extends AbstractStringComparator { + + public RomansMatch(Map params) { + super(params); + } + + @Override + public double distance(String a, String b, Config conf) { + + // extracts romans from the field + String romans1 = getRomans(nfd(a)); + String romans2 = getRomans(nfd(b)); + + if (romans1.isEmpty() && romans2.isEmpty()) + return 1.0; + + if (romans1.isEmpty() || romans2.isEmpty()) + return -1.0; + + if (romans1.equals(romans2)) + return 1.0; + + return 0.0; + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/SizeMatch.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/SizeMatch.java new file mode 100644 index 000000000..fb99ddb14 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/SizeMatch.java @@ -0,0 +1,38 @@ + +package eu.dnetlib.pace.tree; + +import java.util.List; +import java.util.Map; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractListComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +/** + * Returns true if the number of values in the fields is the same. + * + * @author claudio + */ +@ComparatorClass("sizeMatch") +public class SizeMatch extends AbstractListComparator { + + /** + * Instantiates a new size match. + * + * @param params + * the parameters + */ + public SizeMatch(final Map params) { + super(params); + } + + @Override + public double compare(final List a, final List b, final Config conf) { + + if (a.isEmpty() || b.isEmpty()) + return -1.0; + + return a.size() == b.size() ? 1.0 : 0.0; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/SortedJaroWinkler.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/SortedJaroWinkler.java new file mode 100644 index 000000000..6e5c36def --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/SortedJaroWinkler.java @@ -0,0 +1,61 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import com.wcohen.ss.AbstractStringDistance; + +import eu.dnetlib.pace.tree.support.AbstractSortedComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +/** + * The Class SortedJaroWinkler. + */ +@ComparatorClass("sortedJaroWinkler") +public class SortedJaroWinkler extends AbstractSortedComparator { + + public SortedJaroWinkler(Map params) { + super(params, new com.wcohen.ss.Levenstein()); + } + + /** + * Instantiates a new sorted jaro winkler. + * + * @param weight + * the weight + */ + public SortedJaroWinkler(final double weight) { + super(weight, new com.wcohen.ss.JaroWinkler()); + } + + /** + * Instantiates a new sorted jaro winkler. + * + * @param weight + * the weight + * @param ssalgo + * the ssalgo + */ + protected SortedJaroWinkler(final double weight, final AbstractStringDistance ssalgo) { + super(weight, ssalgo); + } + + /* + * (non-Javadoc) + * @see eu.dnetlib.pace.compare.DistanceAlgo#getWeight() + */ + @Override + public double getWeight() { + return super.weight; + } + + /* + * (non-Javadoc) + * @see eu.dnetlib.pace.compare.SecondStringDistanceAlgo#normalize(double) + */ + @Override + protected double normalize(final double d) { + return d; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/SortedLevel2JaroWinkler.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/SortedLevel2JaroWinkler.java new file mode 100644 index 000000000..3046fceae --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/SortedLevel2JaroWinkler.java @@ -0,0 +1,61 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import com.wcohen.ss.AbstractStringDistance; + +import eu.dnetlib.pace.tree.support.AbstractSortedComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +/** + * The Class SortedJaroWinkler. + */ +@ComparatorClass("sortedLevel2JaroWinkler") +public class SortedLevel2JaroWinkler extends AbstractSortedComparator { + + /** + * Instantiates a new sorted jaro winkler. + * + * @param weight + * the weight + */ + public SortedLevel2JaroWinkler(final double weight) { + super(weight, new com.wcohen.ss.Level2JaroWinkler()); + } + + public SortedLevel2JaroWinkler(final Map params) { + super(params, new com.wcohen.ss.Level2JaroWinkler()); + } + + /** + * Instantiates a new sorted jaro winkler. + * + * @param weight + * the weight + * @param ssalgo + * the ssalgo + */ + protected SortedLevel2JaroWinkler(final double weight, final AbstractStringDistance ssalgo) { + super(weight, ssalgo); + } + + /* + * (non-Javadoc) + * @see eu.dnetlib.pace.compare.DistanceAlgo#getWeight() + */ + @Override + public double getWeight() { + return super.weight; + } + + /* + * (non-Javadoc) + * @see eu.dnetlib.pace.compare.SecondStringDistanceAlgo#normalize(double) + */ + @Override + protected double normalize(final double d) { + return d; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/StringContainsMatch.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/StringContainsMatch.java new file mode 100644 index 000000000..bca417b60 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/StringContainsMatch.java @@ -0,0 +1,67 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +/** + * The Class Contains match + * + * @author miconis + * */ +@ComparatorClass("stringContainsMatch") +public class StringContainsMatch extends AbstractStringComparator { + + private Map params; + + private boolean CASE_SENSITIVE; + private String STRING; + private String AGGREGATOR; + + public StringContainsMatch(Map params) { + super(params); + this.params = params; + + // read parameters + CASE_SENSITIVE = Boolean.parseBoolean(params.getOrDefault("caseSensitive", "false")); + STRING = params.get("string"); + AGGREGATOR = params.get("aggregator"); + + } + + @Override + public double distance(final String a, final String b, final Config conf) { + + String ca = a; + String cb = b; + if (!CASE_SENSITIVE) { + ca = a.toLowerCase(); + cb = b.toLowerCase(); + STRING = STRING.toLowerCase(); + } + + if (AGGREGATOR != null) { + switch (AGGREGATOR) { + case "AND": + if (ca.contains(STRING) && cb.contains(STRING)) + return 1.0; + break; + case "OR": + if (ca.contains(STRING) || cb.contains(STRING)) + return 1.0; + break; + case "XOR": + if (ca.contains(STRING) ^ cb.contains(STRING)) + return 1.0; + break; + default: + return 0.0; + } + } + + return 0.0; + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/StringListMatch.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/StringListMatch.java new file mode 100644 index 000000000..b4dbef3bb --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/StringListMatch.java @@ -0,0 +1,56 @@ + +package eu.dnetlib.pace.tree; + +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import com.google.common.collect.Sets; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractListComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("stringListMatch") +public class StringListMatch extends AbstractListComparator { + + private static final Log log = LogFactory.getLog(StringListMatch.class); + private Map params; + + final private String TYPE; // percentage or count + + public StringListMatch(final Map params) { + super(params); + this.params = params; + + TYPE = params.getOrDefault("type", "percentage"); + } + + @Override + public double compare(final List a, final List b, final Config conf) { + + final Set pa = new HashSet<>(a); + final Set pb = new HashSet<>(b); + + if (pa.isEmpty() || pb.isEmpty()) { + return -1; // return undefined if one of the two lists is empty + } + + int incommon = Sets.intersection(pa, pb).size(); + int simDiff = Sets.symmetricDifference(pa, pb).size(); + + if (incommon + simDiff == 0) { + return 0.0; + } + + if (TYPE.equals("percentage")) + return (double) incommon / (incommon + simDiff); + else + return incommon; + + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/SubStringLevenstein.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/SubStringLevenstein.java new file mode 100644 index 000000000..3f8c40599 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/SubStringLevenstein.java @@ -0,0 +1,90 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import org.apache.commons.lang3.StringUtils; + +import com.wcohen.ss.AbstractStringDistance; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +/** + * The Class SubStringLevenstein. + */ +@ComparatorClass("subStringLevenstein") +public class SubStringLevenstein extends AbstractStringComparator { + + /** + * The limit. + */ + protected int limit; + + /** + * Instantiates a new sub string levenstein. + * + * @param w the w + */ + public SubStringLevenstein(final double w) { + super(w, new com.wcohen.ss.Levenstein()); + } + + public SubStringLevenstein(Map params) { + super(params, new com.wcohen.ss.Levenstein()); + this.limit = Integer.parseInt(params.getOrDefault("limit", "1")); + } + + /** + * Instantiates a new sub string levenstein. + * + * @param w the w + * @param limit the limit + */ + public SubStringLevenstein(final double w, final int limit) { + super(w, new com.wcohen.ss.Levenstein()); + this.limit = limit; + } + + /** + * Instantiates a new sub string levenstein. + * + * @param w the w + * @param limit the limit + * @param ssalgo the ssalgo + */ + protected SubStringLevenstein(final double w, final int limit, final AbstractStringDistance ssalgo) { + super(w, ssalgo); + this.limit = limit; + } + + /* + * (non-Javadoc) + * @see eu.dnetlib.pace.compare.SecondStringDistanceAlgo#compare(eu.dnetlib.pace.model.Field, + * eu.dnetlib.pace.model.Field) + */ + @Override + public double distance(final String a, final String b, final Config conf) { + return distance(StringUtils.left(a, limit), StringUtils.left(b, limit), conf); + } + + /* + * (non-Javadoc) + * @see eu.dnetlib.pace.compare.DistanceAlgo#getWeight() + */ + @Override + public double getWeight() { + return super.weight; + } + + /* + * (non-Javadoc) + * @see eu.dnetlib.pace.compare.SecondStringDistanceAlgo#normalize(double) + */ + @Override + protected double normalize(final double d) { + return 1 / Math.pow(Math.abs(d) + 1, 0.1); + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/TitleVersionMatch.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/TitleVersionMatch.java new file mode 100644 index 000000000..8d99ac27f --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/TitleVersionMatch.java @@ -0,0 +1,39 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +/** + * Returns true if the titles in the given documents contains the same numbers, false otherwise. + * + * @author claudio + * + */ +@ComparatorClass("titleVersionMatch") +public class TitleVersionMatch extends AbstractStringComparator { + + public TitleVersionMatch(final Map params) { + super(params); + } + + @Override + public double compare(final String valueA, final String valueB, final Config conf) { + if (valueA.isEmpty() || valueB.isEmpty()) + return -1; + + return notNull(valueA) && notNull(valueB) && !checkNumbers(valueA, valueB) ? 1 : 0; + } + + @Override + public String toString() { + return getClass().getSimpleName() + ":" + super.toString(); + } + + protected String toString(final Object object) { + return toFirstString(object); + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/UrlMatcher.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/UrlMatcher.java new file mode 100644 index 000000000..722236be6 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/UrlMatcher.java @@ -0,0 +1,63 @@ + +package eu.dnetlib.pace.tree; + +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Map; + +import org.apache.commons.lang3.StringUtils; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +@ComparatorClass("urlMatcher") +public class UrlMatcher extends Levenstein { + + private Map params; + + public UrlMatcher(Map params) { + super(params); + this.params = params; + } + + public UrlMatcher(double weight, Map params) { + super(weight); + this.params = params; + } + + public void setParams(Map params) { + this.params = params; + } + + @Override + public double distance(String a, String b, final Config conf) { + final URL urlA = asUrl(a); + final URL urlB = asUrl(b); + + if (!urlA.getHost().equalsIgnoreCase(urlB.getHost())) { + return 0.0; + } + + Double hostW = Double.parseDouble(params.getOrDefault("host", "0.5")); + Double pathW = Double.parseDouble(params.getOrDefault("path", "0.5")); + + if (StringUtils.isBlank(urlA.getPath()) || StringUtils.isBlank(urlB.getPath())) { + return hostW * 0.5; + } + + return hostW + pathW * super.distance(urlA.getPath(), urlB.getPath(), conf); + } + + private URL asUrl(final String value) { + try { + return new URL(value); + } catch (MalformedURLException e) { + // should not happen as checked by pace typing + throw new IllegalStateException("invalid URL: " + value); + } + } + + protected String toString(final Object object) { + return toFirstString(object); + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/YearMatch.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/YearMatch.java new file mode 100644 index 000000000..95f796f6a --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/YearMatch.java @@ -0,0 +1,52 @@ + +package eu.dnetlib.pace.tree; + +import java.util.Map; + +import org.apache.commons.lang3.StringUtils; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.tree.support.AbstractStringComparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +/** + * Returns true if the year of the date field in the given documents are the same, false when any of the two is invalid or it's missing. + * + * @author claudio + */ +@ComparatorClass("yearMatch") +public class YearMatch extends AbstractStringComparator { + + private int limit = 4; + + public YearMatch(final Map params) { + super(params); + } + + @Override + public double compare(final String a, final String b, final Config conf) { + final String valueA = getNumbers(getFirstValue(a)); + final String valueB = getNumbers(getFirstValue(b)); + + if (valueA.isEmpty() || valueB.isEmpty()) + return -1; + + final boolean lengthMatch = checkLength(valueA) && checkLength(valueB); + final boolean onemissing = valueA.isEmpty() || valueB.isEmpty(); + + return lengthMatch && valueA.equals(valueB) || onemissing ? 1 : 0; + } + + protected boolean checkLength(final String s) { + return s.length() == limit; + } + + protected String getFirstValue(final String value) { + return (value != null) && !value.isEmpty() ? StringUtils.left(value, limit) : ""; + } + + @Override + public String toString() { + return getClass().getSimpleName() + ":" + super.toString(); + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/AbstractComparator.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/AbstractComparator.java new file mode 100644 index 000000000..cde73fd2b --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/AbstractComparator.java @@ -0,0 +1,140 @@ + +package eu.dnetlib.pace.tree.support; + +import java.util.List; +import java.util.Map; + +import com.google.common.base.Joiner; +import com.google.common.collect.Lists; +import com.wcohen.ss.AbstractStringDistance; + +import eu.dnetlib.pace.common.AbstractPaceFunctions; +import eu.dnetlib.pace.config.Config; + +public abstract class AbstractComparator extends AbstractPaceFunctions implements Comparator { + + /** The ssalgo. */ + protected AbstractStringDistance ssalgo; + + /** The weight. */ + protected double weight = 0.0; + + private Map params; + + protected AbstractComparator(Map params) { + this.params = params; + } + + protected AbstractComparator(Map params, final AbstractStringDistance ssalgo) { + this.params = params; + this.weight = 1.0; + this.ssalgo = ssalgo; + } + + /** + * Instantiates a new second string compare algo. + * + * @param weight + * the weight + * @param ssalgo + * the ssalgo + */ + protected AbstractComparator(final double weight, final AbstractStringDistance ssalgo) { + this.ssalgo = ssalgo; + this.weight = weight; + } + + protected AbstractComparator(final AbstractStringDistance ssalgo) { + this.ssalgo = ssalgo; + } + + /** + * Normalize. + * + * @param d + * the d + * @return the double + */ + protected double normalize(double d) { + return d; + } + + /** + * Distance. + * + * @param a + * the a + * @param b + * the b + * @return the double + */ + + protected double distance(final String a, final String b, final Config conf) { + if (a.isEmpty() || b.isEmpty()) { + return -1; // return -1 if a field is missing + } + double score = ssalgo.score(a, b); + return normalize(score); + } + + protected double compare(final String a, final String b, final Config conf) { + if (a.isEmpty() || b.isEmpty()) + return -1; + return distance(a, b, conf); + } + + /** + * Convert the given argument to a List of Strings + * + * @param object + * function argument + * @return the list + */ + protected List toList(final Object object) { + if (object instanceof List) { + return (List) object; + } + + return Lists.newArrayList(object.toString()); + } + + /** + * Convert the given argument to a String + * + * @param object + * function argument + * @return the list + */ + protected String toString(final Object object) { + if (object instanceof List) { + List l = (List) object; + return Joiner.on(" ").join(l); + } + + return object.toString(); + } + + protected String toFirstString(final Object object) { + if (object instanceof List) { + List l = (List) object; + return l.isEmpty() ? "" : l.get(0); + } + + return object.toString(); + } + + public double getWeight() { + return this.weight; + } + + public Double getDoubleParam(String name) { + String svalue = params.get(name); + + try { + return Double.parseDouble(svalue); + } catch (Throwable t) { + } + + return null; + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/AbstractListComparator.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/AbstractListComparator.java new file mode 100644 index 000000000..3f35350bd --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/AbstractListComparator.java @@ -0,0 +1,39 @@ + +package eu.dnetlib.pace.tree.support; + +import java.util.List; +import java.util.Map; + +import com.wcohen.ss.AbstractStringDistance; + +import eu.dnetlib.pace.config.Config; + +abstract public class AbstractListComparator extends AbstractComparator> { + protected AbstractListComparator(Map params) { + super(params); + } + + protected AbstractListComparator(Map params, AbstractStringDistance ssalgo) { + super(params, ssalgo); + } + + protected AbstractListComparator(double weight, AbstractStringDistance ssalgo) { + super(weight, ssalgo); + } + + protected AbstractListComparator(AbstractStringDistance ssalgo) { + super(ssalgo); + } + + @Override + public double compare(Object a, Object b, Config conf) { + return compare(toList(a), toList(b), conf); + } + + public double compare(final List a, final List b, final Config conf) { + if (a.isEmpty() || b.isEmpty()) + return -1; + + return distance(concat(a), concat(b), conf); + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/AbstractSortedComparator.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/AbstractSortedComparator.java new file mode 100644 index 000000000..06c806b92 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/AbstractSortedComparator.java @@ -0,0 +1,40 @@ + +package eu.dnetlib.pace.tree.support; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import com.google.common.collect.Lists; +import com.wcohen.ss.AbstractStringDistance; + +public abstract class AbstractSortedComparator extends AbstractListComparator { + + /** + * Instantiates a new sorted second string compare algo. + * + * @param weight + * the weight + * @param ssalgo + * the ssalgo + */ + protected AbstractSortedComparator(final double weight, final AbstractStringDistance ssalgo) { + super(weight, ssalgo); + } + + protected AbstractSortedComparator(final Map params, final AbstractStringDistance ssalgo) { + super(Double.parseDouble(params.get("weight")), ssalgo); + } + + @Override + protected List toList(final Object object) { + if (object instanceof List) { + List fl = (List) object; + List values = Lists.newArrayList(fl); + Collections.sort(values); + return values; + } + + return Lists.newArrayList(object.toString()); + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/AbstractStringComparator.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/AbstractStringComparator.java new file mode 100644 index 000000000..037ff6634 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/AbstractStringComparator.java @@ -0,0 +1,46 @@ + +package eu.dnetlib.pace.tree.support; + +import java.util.Map; + +import com.wcohen.ss.AbstractStringDistance; + +import eu.dnetlib.pace.config.Config; + +public abstract class AbstractStringComparator extends AbstractComparator { + protected AbstractStringComparator(Map params) { + super(params); + } + + protected AbstractStringComparator(Map params, AbstractStringDistance ssalgo) { + super(params, ssalgo); + } + + protected AbstractStringComparator(double weight, AbstractStringDistance ssalgo) { + super(weight, ssalgo); + } + + protected AbstractStringComparator(AbstractStringDistance ssalgo) { + super(ssalgo); + } + + public double distance(final String a, final String b, final Config conf) { + if (a.isEmpty() || b.isEmpty()) { + return -1; // return -1 if a field is missing + } + double score = ssalgo.score(a, b); + return normalize(score); + } + + @Override + public double compare(Object a, Object b, Config conf) { + return compare(toString(a), toString(b), conf); + } + + public double compare(final String a, final String b, final Config conf) { + if (a.isEmpty() || b.isEmpty()) + return -1; + return distance(a, b, conf); + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/AggType.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/AggType.java new file mode 100644 index 000000000..7011f2bf3 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/AggType.java @@ -0,0 +1,21 @@ + +package eu.dnetlib.pace.tree.support; + +import eu.dnetlib.pace.util.PaceException; + +public enum AggType { + + W_MEAN, // weighted mean + AVG, // average + SUM, MAX, MIN, AND, // used for necessary conditions + OR; // used for sufficient conditions + + public static AggType getEnum(String value) { + + try { + return AggType.valueOf(value); + } catch (IllegalArgumentException e) { + throw new PaceException("Undefined aggregation type", e); + } + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/Comparator.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/Comparator.java new file mode 100644 index 000000000..15a39921b --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/Comparator.java @@ -0,0 +1,12 @@ + +package eu.dnetlib.pace.tree.support; + +import eu.dnetlib.pace.config.Config; + +public interface Comparator { + + /* + * return : -1 -> can't decide (i.e. missing field) >0 -> similarity degree (depends on the algorithm) + */ + public double compare(Object a, Object b, Config conf); +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/ComparatorClass.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/ComparatorClass.java new file mode 100644 index 000000000..5ef0932cf --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/ComparatorClass.java @@ -0,0 +1,14 @@ + +package eu.dnetlib.pace.tree.support; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface ComparatorClass { + + public String value(); +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/FieldConf.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/FieldConf.java new file mode 100644 index 000000000..d81c68e38 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/FieldConf.java @@ -0,0 +1,84 @@ + +package eu.dnetlib.pace.tree.support; + +import java.io.IOException; +import java.io.Serializable; +import java.util.Map; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import eu.dnetlib.pace.util.PaceException; + +/** + * The class that defines the configuration of each field in the decision tree. + * */ +public class FieldConf implements Serializable { + + private String field; // name of the field on which apply the comparator + private String comparator; // comparator name + private double weight = 1.0; // weight for the field (to be used in the aggregation) + private Map params; // parameters + + private boolean countIfUndefined; + + public boolean isCountIfUndefined() { + return countIfUndefined; + } + + public void setCountIfUndefined(boolean countIfUndefined) { + this.countIfUndefined = countIfUndefined; + } + + public FieldConf() { + } + + public FieldConf(String field, String comparator, double weight, Map params, + boolean countIfUndefined) { + this.field = field; + this.comparator = comparator; + this.weight = weight; + this.params = params; + this.countIfUndefined = countIfUndefined; + } + + public String getField() { + return field; + } + + public void setField(String field) { + this.field = field; + } + + public String getComparator() { + return comparator; + } + + public void setComparator(String comparator) { + this.comparator = comparator; + } + + public double getWeight() { + return weight; + } + + public void setWeight(double weight) { + this.weight = weight; + } + + public Map getParams() { + return params; + } + + public void setParams(Map params) { + this.params = params; + } + + @Override + public String toString() { + try { + return new ObjectMapper().writeValueAsString(this); + } catch (IOException e) { + throw new PaceException("Impossible to convert to JSON: ", e); + } + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/FieldStats.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/FieldStats.java new file mode 100644 index 000000000..46e66378e --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/FieldStats.java @@ -0,0 +1,89 @@ + +package eu.dnetlib.pace.tree.support; + +import java.io.IOException; +import java.io.Serializable; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import eu.dnetlib.pace.util.PaceException; + +/** + * The class that contains the result of each comparison in the decision tree + * */ +public class FieldStats implements Serializable { + + private double weight; // weight for the field (to be used in the aggregation) + private double threshold; // threshold for the field (to be used in some kind of aggregations) + private double result; // the result of the comparison + private Object a; + private Object b; + + private boolean countIfUndefined; + + public FieldStats(double weight, double threshold, double result, boolean countIfUndefined, Object a, Object b) { + this.weight = weight; + this.threshold = threshold; + this.result = result; + this.countIfUndefined = countIfUndefined; + this.a = a; + this.b = b; + } + + public double getThreshold() { + return threshold; + } + + public void setThreshold(double threshold) { + this.threshold = threshold; + } + + public double getWeight() { + return weight; + } + + public void setWeight(double weight) { + this.weight = weight; + } + + public double getResult() { + return result; + } + + public void setResult(double result) { + this.result = result; + } + + public boolean isCountIfUndefined() { + return countIfUndefined; + } + + public void setCountIfUndefined(boolean countIfUndefined) { + this.countIfUndefined = countIfUndefined; + } + + public Object getA() { + return a; + } + + public void setA(Object a) { + this.a = a; + } + + public Object getB() { + return b; + } + + public void setB(Object b) { + this.b = b; + } + + @Override + public String toString() { + try { + return new ObjectMapper().writeValueAsString(this); + } catch (IOException e) { + throw new PaceException("Impossible to convert to JSON: ", e); + } + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/MatchType.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/MatchType.java new file mode 100644 index 000000000..60559412d --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/MatchType.java @@ -0,0 +1,25 @@ + +package eu.dnetlib.pace.tree.support; + +public enum MatchType { + + MATCH, NO_MATCH, UNDEFINED; + + public static MatchType parse(String value) { + + if (MATCH.name().equals(value)) { + return MATCH; + } else if (NO_MATCH.name().equals(value)) { + return NO_MATCH; + } else { + return UNDEFINED; + } + +// try { +// return MatchType.valueOf(value); +// } +// catch (IllegalArgumentException e) { +// return MatchType.UNDEFINED; //return UNDEFINED if the enum is not parsable +// } + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/TreeNodeDef.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/TreeNodeDef.java new file mode 100644 index 000000000..0973fdf1e --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/TreeNodeDef.java @@ -0,0 +1,170 @@ + +package eu.dnetlib.pace.tree.support; + +import java.io.IOException; +import java.io.Serializable; +import java.util.List; + +import org.apache.spark.sql.Row; +import org.apache.spark.sql.types.ArrayType; +import org.apache.spark.sql.types.DataType; +import org.apache.spark.sql.types.StringType; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.config.PaceConfig; +import eu.dnetlib.pace.util.PaceException; + +public class TreeNodeDef implements Serializable { + + final static String CROSS_COMPARE = "crossCompare"; + + private List fields; + private AggType aggregation; + + private double threshold; + + private String positive; + private String negative; + private String undefined; + + boolean ignoreUndefined; + + public TreeNodeDef(List fields, AggType aggregation, double threshold, String positive, String negative, + String undefined, boolean ignoreUndefined) { + this.fields = fields; + this.aggregation = aggregation; + this.threshold = threshold; + this.positive = positive; + this.negative = negative; + this.undefined = undefined; + this.ignoreUndefined = ignoreUndefined; + } + + public TreeNodeDef() { + } + + // function for the evaluation of the node + public TreeNodeStats evaluate(Row doc1, Row doc2, Config conf) { + + TreeNodeStats stats = new TreeNodeStats(); + + // for each field in the node, it computes the + for (FieldConf fieldConf : fields) { + double weight = fieldConf.getWeight(); + double result; + + Object value1 = getJavaValue(doc1, fieldConf.getField()); + Object value2 = getJavaValue(doc2, fieldConf.getField()); + + // if the param specifies a cross comparison (i.e. compare elements from different fields), compute the + // result for both sides and return the maximum + String crossField = fieldConf.getParams().get(CROSS_COMPARE); + if (crossField != null) { + double result1 = comparator(fieldConf).compare(value1, getJavaValue(doc2, crossField), conf); + double result2 = comparator(fieldConf).compare(getJavaValue(doc1, crossField), value2, conf); + result = Math.max(result1, result2); + } else { + result = comparator(fieldConf).compare(value1, value2, conf); + } + + stats + .addFieldStats( + fieldConf.getComparator() + " on " + fieldConf.getField() + " " + fields.indexOf(fieldConf), + new FieldStats( + weight, + Double.parseDouble(fieldConf.getParams().getOrDefault("threshold", "1.0")), + result, + fieldConf.isCountIfUndefined(), + value1, + value2)); + } + + return stats; + } + + public Object getJavaValue(Row row, String name) { + int pos = row.fieldIndex(name); + if (pos >= 0) { + DataType dt = row.schema().fields()[pos].dataType(); + if (dt instanceof StringType) { + return row.getString(pos); + } else if (dt instanceof ArrayType) { + return row.getList(pos); + } + } + + return null; + } + + private Comparator comparator(final FieldConf field) { + + return PaceConfig.resolver.getComparator(field.getComparator(), field.getParams()); + } + + public List getFields() { + return fields; + } + + public void setFields(List fields) { + this.fields = fields; + } + + public AggType getAggregation() { + return aggregation; + } + + public void setAggregation(AggType aggregation) { + this.aggregation = aggregation; + } + + public double getThreshold() { + return threshold; + } + + public void setThreshold(double threshold) { + this.threshold = threshold; + } + + public String getPositive() { + return positive; + } + + public void setPositive(String positive) { + this.positive = positive; + } + + public String getNegative() { + return negative; + } + + public void setNegative(String negative) { + this.negative = negative; + } + + public String getUndefined() { + return undefined; + } + + public void setUndefined(String undefined) { + this.undefined = undefined; + } + + public boolean isIgnoreUndefined() { + return ignoreUndefined; + } + + public void setIgnoreUndefined(boolean ignoreUndefined) { + this.ignoreUndefined = ignoreUndefined; + } + + @Override + public String toString() { + try { + return new ObjectMapper().writeValueAsString(this); + } catch (IOException e) { + throw new PaceException("Impossible to convert to JSON: ", e); + } + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/TreeNodeStats.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/TreeNodeStats.java new file mode 100644 index 000000000..2b96048b4 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/TreeNodeStats.java @@ -0,0 +1,134 @@ + +package eu.dnetlib.pace.tree.support; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; + +public class TreeNodeStats implements Serializable { + + private Map results; // this is an accumulator for the results of the node + + public TreeNodeStats() { + this.results = new HashMap<>(); + } + + public Map getResults() { + return results; + } + + public void addFieldStats(String id, FieldStats fieldStats) { + this.results.put(id, fieldStats); + } + + public int fieldsCount() { + return this.results.size(); + } + + public int undefinedCount() { + int undefinedCount = 0; + for (FieldStats fs : this.results.values()) { + if (fs.getResult() == -1) + undefinedCount++; + } + return undefinedCount; + } + + public double scoreSum() { + double scoreSum = 0.0; + for (FieldStats fs : this.results.values()) { + if (fs.getResult() >= 0.0) { + scoreSum += fs.getResult(); + } + } + return scoreSum; + } + + // return the sum of the weights without considering the fields with countIfMissing=false && result=-1 + public double weightSum() { + double weightSum = 0.0; + for (FieldStats fs : this.results.values()) { + if (fs.getResult() >= 0.0 || (fs.getResult() < 0.0 && fs.isCountIfUndefined())) { + weightSum += fs.getWeight(); + } + } + return weightSum; + } + + public double weightedScoreSum() { + double weightedScoreSum = 0.0; + for (FieldStats fs : this.results.values()) { + if (fs.getResult() >= 0.0) { + weightedScoreSum += fs.getResult() * fs.getWeight(); + } + } + return weightedScoreSum; + } + + public double max() { + double max = -1.0; + for (FieldStats fs : this.results.values()) { + if (fs.getResult() > max) + max = fs.getResult(); + } + return max; + } + + public double min() { + double min = 100.0; // random high value + for (FieldStats fs : this.results.values()) { + if (fs.getResult() < min) { + if (fs.getResult() >= 0.0 || (fs.getResult() == -1 && fs.isCountIfUndefined())) + min = fs.getResult(); + } + } + return min; + } + + // if at least one is true, return 1.0 + public double or() { + for (FieldStats fieldStats : this.results.values()) { + if (fieldStats.getResult() >= fieldStats.getThreshold()) + return 1.0; + } + return 0.0; + } + + // if at least one is false, return 0.0 + public double and() { + for (FieldStats fieldStats : this.results.values()) { + + if (fieldStats.getResult() == -1) { + if (fieldStats.isCountIfUndefined()) + return 0.0; + } else { + if (fieldStats.getResult() < fieldStats.getThreshold()) + return 0.0; + } + + } + return 1.0; + } + + public double getFinalScore(AggType aggregation) { + + switch (aggregation) { + case AVG: + return scoreSum() / fieldsCount(); + case SUM: + return scoreSum(); + case MAX: + return max(); + case MIN: + return min(); + case W_MEAN: + return weightedScoreSum() / weightSum(); + case OR: + return or(); + case AND: + return and(); + default: + return 0.0; + } + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/TreeProcessor.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/TreeProcessor.java new file mode 100644 index 000000000..263504dbb --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/TreeProcessor.java @@ -0,0 +1,92 @@ + +package eu.dnetlib.pace.tree.support; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.spark.sql.Row; + +import eu.dnetlib.pace.config.Config; +import eu.dnetlib.pace.util.PaceException; + +/** + * The compare between two documents is given by the weighted mean of the field distances + */ +public class TreeProcessor { + + private static final Log log = LogFactory.getLog(TreeProcessor.class); + + private Config config; + + public TreeProcessor(final Config config) { + this.config = config; + } + + // row based copies + + public boolean compare(final Row a, final Row b) { + // evaluate the decision tree + return evaluateTree(a, b).getResult() == MatchType.MATCH; + } + + public TreeStats evaluateTree(final Row doc1, final Row doc2) { + + TreeStats treeStats = new TreeStats(); + + String nextNodeName = "start"; + + do { + + TreeNodeDef currentNode = config.decisionTree().get(nextNodeName); + // throw an exception if the node doesn't exist + if (currentNode == null) + throw new PaceException("Missing tree node: " + nextNodeName); + + TreeNodeStats stats = currentNode.evaluate(doc1, doc2, config); + treeStats.addNodeStats(nextNodeName, stats); + + // if ignoreUndefined=false the miss is considered as undefined + if (!currentNode.isIgnoreUndefined() && stats.undefinedCount() > 0) { + nextNodeName = currentNode.getUndefined(); + } + // if ignoreUndefined=true the miss is ignored and the score computed anyway + else if (stats.getFinalScore(currentNode.getAggregation()) >= currentNode.getThreshold()) { + nextNodeName = currentNode.getPositive(); + } else { + nextNodeName = currentNode.getNegative(); + } + + } while (MatchType.parse(nextNodeName) == MatchType.UNDEFINED); + + treeStats.setResult(MatchType.parse(nextNodeName)); + return treeStats; + } + + public double computeScore(final Row doc1, final Row doc2) { + String nextNodeName = "start"; + double score = 0.0; + + do { + + TreeNodeDef currentNode = config.decisionTree().get(nextNodeName); + // throw an exception if the node doesn't exist + if (currentNode == null) + throw new PaceException("The Tree Node doesn't exist: " + nextNodeName); + + TreeNodeStats stats = currentNode.evaluate(doc1, doc2, config); + + score = stats.getFinalScore(currentNode.getAggregation()); + // if ignoreUndefined=false the miss is considered as undefined + if (!currentNode.isIgnoreUndefined() && stats.undefinedCount() > 0) { + nextNodeName = currentNode.getUndefined(); + } + // if ignoreUndefined=true the miss is ignored and the score computed anyway + else if (stats.getFinalScore(currentNode.getAggregation()) >= currentNode.getThreshold()) { + nextNodeName = currentNode.getPositive(); + } else { + nextNodeName = currentNode.getNegative(); + } + } while (MatchType.parse(nextNodeName) == MatchType.UNDEFINED); + + return score; + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/TreeStats.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/TreeStats.java new file mode 100644 index 000000000..9a7f38f47 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/support/TreeStats.java @@ -0,0 +1,52 @@ + +package eu.dnetlib.pace.tree.support; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import eu.dnetlib.pace.util.PaceException; + +public class TreeStats { + + // > + Map stats; + MatchType result; + + public TreeStats() { + this.stats = new HashMap<>(); + this.result = MatchType.NO_MATCH; + } + + public MatchType getResult() { + return this.result; + } + + public void setResult(MatchType result) { + this.result = result; + } + + public Map getStats() { + return stats; + } + + public void setStats(Map stats) { + this.stats = stats; + } + + public void addNodeStats(String layerID, TreeNodeStats treeNodeStats) { + this.stats.put(layerID, treeNodeStats); + } + + @Override + public String toString() { + try { + return new ObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(this); + } catch (IOException e) { + throw new PaceException("Impossible to convert to JSON: ", e); + } + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/BlockProcessor.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/BlockProcessor.java new file mode 100644 index 000000000..177ad73df --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/BlockProcessor.java @@ -0,0 +1,152 @@ + +package eu.dnetlib.pace.util; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.spark.sql.Row; +import org.apache.spark.sql.types.ArrayType; +import org.apache.spark.sql.types.DataType; +import org.apache.spark.sql.types.StringType; + +import eu.dnetlib.pace.config.DedupConfig; +import eu.dnetlib.pace.config.WfConfig; +import eu.dnetlib.pace.tree.support.TreeProcessor; + +public class BlockProcessor { + + public static final List accumulators = new ArrayList<>(); + + private static final Log log = LogFactory.getLog(BlockProcessor.class); + + private DedupConfig dedupConf; + + private final int identifierFieldPos; + private final int orderFieldPos; + + public static void constructAccumulator(final DedupConfig dedupConf) { + accumulators.add(String.format("%s::%s", dedupConf.getWf().getEntityType(), "records per hash key = 1")); + accumulators + .add( + String + .format( + "%s::%s", dedupConf.getWf().getEntityType(), "missing " + dedupConf.getWf().getOrderField())); + accumulators + .add( + String + .format( + "%s::%s", dedupConf.getWf().getEntityType(), + String + .format( + "Skipped records for count(%s) >= %s", dedupConf.getWf().getOrderField(), + dedupConf.getWf().getGroupMaxSize()))); + accumulators.add(String.format("%s::%s", dedupConf.getWf().getEntityType(), "skip list")); + accumulators.add(String.format("%s::%s", dedupConf.getWf().getEntityType(), "dedupSimilarity (x2)")); + accumulators + .add(String.format("%s::%s", dedupConf.getWf().getEntityType(), "d < " + dedupConf.getWf().getThreshold())); + } + + public BlockProcessor(DedupConfig dedupConf, int identifierFieldPos, int orderFieldPos) { + this.dedupConf = dedupConf; + this.identifierFieldPos = identifierFieldPos; + this.orderFieldPos = orderFieldPos; + } + + public void processSortedRows(final List documents, final Reporter context) { + if (documents.size() > 1) { +// log.info("reducing key: '" + key + "' records: " + q.size()); + processRows(documents, context); + + } else { + context.incrementCounter(dedupConf.getWf().getEntityType(), "records per hash key = 1", 1); + } + } + + private void processRows(final List queue, final Reporter context) { + + IncrementalConnectedComponents icc = new IncrementalConnectedComponents(queue.size()); + + for (int i = 0; i < queue.size(); i++) { + final Row pivot = queue.get(i); + + final String idPivot = pivot.getString(identifierFieldPos); // identifier + final Object fieldsPivot = getJavaValue(pivot, orderFieldPos); + final String fieldPivot = (fieldsPivot == null) ? "" : fieldsPivot.toString(); + final WfConfig wf = dedupConf.getWf(); + + if (fieldPivot != null) { + for (int j = icc.nextUnconnected(i, i + 1); j >= 0 + && j < queue.size(); j = icc.nextUnconnected(i, j + 1)) { + final Row curr = queue.get(j); + final String idCurr = curr.getString(identifierFieldPos); // identifier + + if (mustSkip(idCurr)) { + context.incrementCounter(wf.getEntityType(), "skip list", 1); + break; + } + + if (wf.getSlidingWindowSize() > 0 && (j - i) > wf.getSlidingWindowSize()) { + break; + } + + final Object fieldsCurr = getJavaValue(curr, orderFieldPos); + final String fieldCurr = (fieldsCurr == null) ? null : fieldsCurr.toString(); + + if (!idCurr.equals(idPivot) && (fieldCurr != null)) { + + final TreeProcessor treeProcessor = new TreeProcessor(dedupConf); + + if (emitOutput(treeProcessor.compare(pivot, curr), idPivot, idCurr, context)) { + icc.connect(i, j); + } + } + } + } + } + } + + public Object getJavaValue(Row row, int pos) { + DataType dt = row.schema().fields()[pos].dataType(); + if (dt instanceof StringType) { + return row.getString(pos); + } else if (dt instanceof ArrayType) { + return row.getList(pos); + } + + return null; + } + + private boolean emitOutput(final boolean result, final String idPivot, final String idCurr, + final Reporter context) { + + if (result) { + if (idPivot.compareTo(idCurr) <= 0) { + writeSimilarity(context, idPivot, idCurr); + } else { + writeSimilarity(context, idCurr, idPivot); + } + context.incrementCounter(dedupConf.getWf().getEntityType(), "dedupSimilarity (x2)", 1); + } else { + context.incrementCounter(dedupConf.getWf().getEntityType(), "d < " + dedupConf.getWf().getThreshold(), 1); + } + + return result; + } + + private boolean mustSkip(final String idPivot) { + return dedupConf.getWf().getSkipList().contains(getNsPrefix(idPivot)); + } + + private String getNsPrefix(final String id) { + return StringUtils.substringBetween(id, "|", "::"); + } + + private void writeSimilarity(final Reporter context, final String from, final String to) { + final String type = dedupConf.getWf().getEntityType(); + + context.emit(type, from, to); + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/Capitalise.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/Capitalise.java new file mode 100644 index 000000000..403d91dd9 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/Capitalise.java @@ -0,0 +1,18 @@ + +package eu.dnetlib.pace.util; + +import org.apache.commons.lang3.text.WordUtils; + +import com.google.common.base.Function; + +public class Capitalise implements Function { + + private final char[] DELIM = { + ' ', '-' + }; + + @Override + public String apply(final String s) { + return WordUtils.capitalize(s.toLowerCase(), DELIM); + } +}; diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/DiffPatchMatch.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/DiffPatchMatch.java new file mode 100644 index 000000000..cfd9acd70 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/DiffPatchMatch.java @@ -0,0 +1,2553 @@ + +package eu.dnetlib.pace.util; + +/* + * Diff Match and Patch + * Copyright 2018 The diff-match-patch Authors. + * https://github.com/google/diff-match-patch + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* + * Diff Match and Patch + * Copyright 2018 The diff-match-patch Authors. + * https://github.com/google/diff-match-patch + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.net.URLEncoder; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/* + * Functions for diff, match and patch. + * Computes the difference between two texts to create a patch. + * Applies the patch onto another text, allowing for errors. + * + * @author fraser@google.com (Neil Fraser) + */ + +/** + * Class containing the diff, match and patch methods. + * Also contains the behaviour settings. + */ +public class DiffPatchMatch { + + // Defaults. + // Set these on your diff_match_patch instance to override the defaults. + + /** + * Number of seconds to map a diff before giving up (0 for infinity). + */ + public float Diff_Timeout = 1.0f; + /** + * Cost of an empty edit operation in terms of edit characters. + */ + public short Diff_EditCost = 4; + /** + * At what point is no match declared (0.0 = perfection, 1.0 = very loose). + */ + public float Match_Threshold = 0.5f; + /** + * How far to search for a match (0 = exact location, 1000+ = broad match). + * A match this many characters away from the expected location will add + * 1.0 to the score (0.0 is a perfect match). + */ + public int Match_Distance = 1000; + /** + * When deleting a large block of text (over ~64 characters), how close do + * the contents have to be to match the expected contents. (0.0 = perfection, + * 1.0 = very loose). Note that Match_Threshold controls how closely the + * end points of a delete need to match. + */ + public float Patch_DeleteThreshold = 0.5f; + /** + * Chunk size for context length. + */ + public short Patch_Margin = 4; + + /** + * The number of bits in an int. + */ + private short Match_MaxBits = 32; + + /** + * Internal class for returning results from diff_linesToChars(). + * Other less paranoid languages just use a three-element array. + */ + protected static class LinesToCharsResult { + protected String chars1; + protected String chars2; + protected List lineArray; + + protected LinesToCharsResult(String chars1, String chars2, + List lineArray) { + this.chars1 = chars1; + this.chars2 = chars2; + this.lineArray = lineArray; + } + } + + // DIFF FUNCTIONS + + /** + * The data structure representing a diff is a Linked list of Diff objects: + * {Diff(Operation.DELETE, "Hello"), Diff(Operation.INSERT, "Goodbye"), + * Diff(Operation.EQUAL, " world.")} + * which means: delete "Hello", add "Goodbye" and keep " world." + */ + public enum Operation { + DELETE, INSERT, EQUAL + } + + /** + * Find the differences between two texts. + * Run a faster, slightly less optimal diff. + * This method allows the 'checklines' of diff_main() to be optional. + * Most of the time checklines is wanted, so default to true. + * @param text1 Old string to be diffed. + * @param text2 New string to be diffed. + * @return Linked List of Diff objects. + */ + public LinkedList diff_main(String text1, String text2) { + return diff_main(text1, text2, true); + } + + /** + * Find the differences between two texts. + * @param text1 Old string to be diffed. + * @param text2 New string to be diffed. + * @param checklines Speedup flag. If false, then don't run a + * line-level diff first to identify the changed areas. + * If true, then run a faster slightly less optimal diff. + * @return Linked List of Diff objects. + */ + public LinkedList diff_main(String text1, String text2, + boolean checklines) { + // Set a deadline by which time the diff must be complete. + long deadline; + if (Diff_Timeout <= 0) { + deadline = Long.MAX_VALUE; + } else { + deadline = System.currentTimeMillis() + (long) (Diff_Timeout * 1000); + } + return diff_main(text1, text2, checklines, deadline); + } + + /** + * Find the differences between two texts. Simplifies the problem by + * stripping any common prefix or suffix off the texts before diffing. + * @param text1 Old string to be diffed. + * @param text2 New string to be diffed. + * @param checklines Speedup flag. If false, then don't run a + * line-level diff first to identify the changed areas. + * If true, then run a faster slightly less optimal diff. + * @param deadline Time when the diff should be complete by. Used + * internally for recursive calls. Users should set DiffTimeout instead. + * @return Linked List of Diff objects. + */ + private LinkedList diff_main(String text1, String text2, + boolean checklines, long deadline) { + // Check for null inputs. + if (text1 == null || text2 == null) { + throw new IllegalArgumentException("Null inputs. (diff_main)"); + } + + // Check for equality (speedup). + LinkedList diffs; + if (text1.equals(text2)) { + diffs = new LinkedList(); + if (text1.length() != 0) { + diffs.add(new Diff(Operation.EQUAL, text1)); + } + return diffs; + } + + // Trim off common prefix (speedup). + int commonlength = diff_commonPrefix(text1, text2); + String commonprefix = text1.substring(0, commonlength); + text1 = text1.substring(commonlength); + text2 = text2.substring(commonlength); + + // Trim off common suffix (speedup). + commonlength = diff_commonSuffix(text1, text2); + String commonsuffix = text1.substring(text1.length() - commonlength); + text1 = text1.substring(0, text1.length() - commonlength); + text2 = text2.substring(0, text2.length() - commonlength); + + // Compute the diff on the middle block. + diffs = diff_compute(text1, text2, checklines, deadline); + + // Restore the prefix and suffix. + if (commonprefix.length() != 0) { + diffs.addFirst(new Diff(Operation.EQUAL, commonprefix)); + } + if (commonsuffix.length() != 0) { + diffs.addLast(new Diff(Operation.EQUAL, commonsuffix)); + } + + diff_cleanupMerge(diffs); + return diffs; + } + + /** + * Find the differences between two texts. Assumes that the texts do not + * have any common prefix or suffix. + * @param text1 Old string to be diffed. + * @param text2 New string to be diffed. + * @param checklines Speedup flag. If false, then don't run a + * line-level diff first to identify the changed areas. + * If true, then run a faster slightly less optimal diff. + * @param deadline Time when the diff should be complete by. + * @return Linked List of Diff objects. + */ + private LinkedList diff_compute(String text1, String text2, + boolean checklines, long deadline) { + LinkedList diffs = new LinkedList(); + + if (text1.length() == 0) { + // Just add some text (speedup). + diffs.add(new Diff(Operation.INSERT, text2)); + return diffs; + } + + if (text2.length() == 0) { + // Just delete some text (speedup). + diffs.add(new Diff(Operation.DELETE, text1)); + return diffs; + } + + String longtext = text1.length() > text2.length() ? text1 : text2; + String shorttext = text1.length() > text2.length() ? text2 : text1; + int i = longtext.indexOf(shorttext); + if (i != -1) { + // Shorter text is inside the longer text (speedup). + Operation op = (text1.length() > text2.length()) ? Operation.DELETE : Operation.INSERT; + diffs.add(new Diff(op, longtext.substring(0, i))); + diffs.add(new Diff(Operation.EQUAL, shorttext)); + diffs.add(new Diff(op, longtext.substring(i + shorttext.length()))); + return diffs; + } + + if (shorttext.length() == 1) { + // Single character string. + // After the previous speedup, the character can't be an equality. + diffs.add(new Diff(Operation.DELETE, text1)); + diffs.add(new Diff(Operation.INSERT, text2)); + return diffs; + } + + // Check to see if the problem can be split in two. + String[] hm = diff_halfMatch(text1, text2); + if (hm != null) { + // A half-match was found, sort out the return data. + String text1_a = hm[0]; + String text1_b = hm[1]; + String text2_a = hm[2]; + String text2_b = hm[3]; + String mid_common = hm[4]; + // Send both pairs off for separate processing. + LinkedList diffs_a = diff_main( + text1_a, text2_a, + checklines, deadline); + LinkedList diffs_b = diff_main( + text1_b, text2_b, + checklines, deadline); + // Merge the results. + diffs = diffs_a; + diffs.add(new Diff(Operation.EQUAL, mid_common)); + diffs.addAll(diffs_b); + return diffs; + } + + if (checklines && text1.length() > 100 && text2.length() > 100) { + return diff_lineMode(text1, text2, deadline); + } + + return diff_bisect(text1, text2, deadline); + } + + /** + * Do a quick line-level diff on both strings, then rediff the parts for + * greater accuracy. + * This speedup can produce non-minimal diffs. + * @param text1 Old string to be diffed. + * @param text2 New string to be diffed. + * @param deadline Time when the diff should be complete by. + * @return Linked List of Diff objects. + */ + private LinkedList diff_lineMode(String text1, String text2, + long deadline) { + // Scan the text on a line-by-line basis first. + LinesToCharsResult a = diff_linesToChars(text1, text2); + text1 = a.chars1; + text2 = a.chars2; + List linearray = a.lineArray; + + LinkedList diffs = diff_main(text1, text2, false, deadline); + + // Convert the diff back to original text. + diff_charsToLines(diffs, linearray); + // Eliminate freak matches (e.g. blank lines) + diff_cleanupSemantic(diffs); + + // Rediff any replacement blocks, this time character-by-character. + // Add a dummy entry at the end. + diffs.add(new Diff(Operation.EQUAL, "")); + int count_delete = 0; + int count_insert = 0; + String text_delete = ""; + String text_insert = ""; + ListIterator pointer = diffs.listIterator(); + Diff thisDiff = pointer.next(); + while (thisDiff != null) { + switch (thisDiff.operation) { + case INSERT: + count_insert++; + text_insert += thisDiff.text; + break; + case DELETE: + count_delete++; + text_delete += thisDiff.text; + break; + case EQUAL: + // Upon reaching an equality, check for prior redundancies. + if (count_delete >= 1 && count_insert >= 1) { + // Delete the offending records and add the merged ones. + pointer.previous(); + for (int j = 0; j < count_delete + count_insert; j++) { + pointer.previous(); + pointer.remove(); + } + for (Diff subDiff : diff_main( + text_delete, text_insert, false, + deadline)) { + pointer.add(subDiff); + } + } + count_insert = 0; + count_delete = 0; + text_delete = ""; + text_insert = ""; + break; + } + thisDiff = pointer.hasNext() ? pointer.next() : null; + } + diffs.removeLast(); // Remove the dummy entry at the end. + + return diffs; + } + + /** + * Find the 'middle snake' of a diff, split the problem in two + * and return the recursively constructed diff. + * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations. + * @param text1 Old string to be diffed. + * @param text2 New string to be diffed. + * @param deadline Time at which to bail if not yet complete. + * @return LinkedList of Diff objects. + */ + protected LinkedList diff_bisect(String text1, String text2, + long deadline) { + // Cache the text lengths to prevent multiple calls. + int text1_length = text1.length(); + int text2_length = text2.length(); + int max_d = (text1_length + text2_length + 1) / 2; + int v_offset = max_d; + int v_length = 2 * max_d; + int[] v1 = new int[v_length]; + int[] v2 = new int[v_length]; + for (int x = 0; x < v_length; x++) { + v1[x] = -1; + v2[x] = -1; + } + v1[v_offset + 1] = 0; + v2[v_offset + 1] = 0; + int delta = text1_length - text2_length; + // If the total number of characters is odd, then the front path will + // collide with the reverse path. + boolean front = (delta % 2 != 0); + // Offsets for start and end of k loop. + // Prevents mapping of space beyond the grid. + int k1start = 0; + int k1end = 0; + int k2start = 0; + int k2end = 0; + for (int d = 0; d < max_d; d++) { + // Bail out if deadline is reached. + if (System.currentTimeMillis() > deadline) { + break; + } + + // Walk the front path one step. + for (int k1 = -d + k1start; k1 <= d - k1end; k1 += 2) { + int k1_offset = v_offset + k1; + int x1; + if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) { + x1 = v1[k1_offset + 1]; + } else { + x1 = v1[k1_offset - 1] + 1; + } + int y1 = x1 - k1; + while (x1 < text1_length && y1 < text2_length + && text1.charAt(x1) == text2.charAt(y1)) { + x1++; + y1++; + } + v1[k1_offset] = x1; + if (x1 > text1_length) { + // Ran off the right of the graph. + k1end += 2; + } else if (y1 > text2_length) { + // Ran off the bottom of the graph. + k1start += 2; + } else if (front) { + int k2_offset = v_offset + delta - k1; + if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) { + // Mirror x2 onto top-left coordinate system. + int x2 = text1_length - v2[k2_offset]; + if (x1 >= x2) { + // Overlap detected. + return diff_bisectSplit(text1, text2, x1, y1, deadline); + } + } + } + } + + // Walk the reverse path one step. + for (int k2 = -d + k2start; k2 <= d - k2end; k2 += 2) { + int k2_offset = v_offset + k2; + int x2; + if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) { + x2 = v2[k2_offset + 1]; + } else { + x2 = v2[k2_offset - 1] + 1; + } + int y2 = x2 - k2; + while (x2 < text1_length && y2 < text2_length + && text1.charAt(text1_length - x2 - 1) == text2.charAt(text2_length - y2 - 1)) { + x2++; + y2++; + } + v2[k2_offset] = x2; + if (x2 > text1_length) { + // Ran off the left of the graph. + k2end += 2; + } else if (y2 > text2_length) { + // Ran off the top of the graph. + k2start += 2; + } else if (!front) { + int k1_offset = v_offset + delta - k2; + if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) { + int x1 = v1[k1_offset]; + int y1 = v_offset + x1 - k1_offset; + // Mirror x2 onto top-left coordinate system. + x2 = text1_length - x2; + if (x1 >= x2) { + // Overlap detected. + return diff_bisectSplit(text1, text2, x1, y1, deadline); + } + } + } + } + } + // Diff took too long and hit the deadline or + // number of diffs equals number of characters, no commonality at all. + LinkedList diffs = new LinkedList(); + diffs.add(new Diff(Operation.DELETE, text1)); + diffs.add(new Diff(Operation.INSERT, text2)); + return diffs; + } + + /** + * Given the location of the 'middle snake', split the diff in two parts + * and recurse. + * @param text1 Old string to be diffed. + * @param text2 New string to be diffed. + * @param x Index of split point in text1. + * @param y Index of split point in text2. + * @param deadline Time at which to bail if not yet complete. + * @return LinkedList of Diff objects. + */ + private LinkedList diff_bisectSplit(String text1, String text2, + int x, int y, long deadline) { + String text1a = text1.substring(0, x); + String text2a = text2.substring(0, y); + String text1b = text1.substring(x); + String text2b = text2.substring(y); + + // Compute both diffs serially. + LinkedList diffs = diff_main(text1a, text2a, false, deadline); + LinkedList diffsb = diff_main(text1b, text2b, false, deadline); + + diffs.addAll(diffsb); + return diffs; + } + + /** + * Split two texts into a list of strings. Reduce the texts to a string of + * hashes where each Unicode character represents one line. + * @param text1 First string. + * @param text2 Second string. + * @return An object containing the encoded text1, the encoded text2 and + * the List of unique strings. The zeroth element of the List of + * unique strings is intentionally blank. + */ + protected LinesToCharsResult diff_linesToChars(String text1, String text2) { + List lineArray = new ArrayList(); + Map lineHash = new HashMap(); + // e.g. linearray[4] == "Hello\n" + // e.g. linehash.get("Hello\n") == 4 + + // "\x00" is a valid character, but various debuggers don't like it. + // So we'll insert a junk entry to avoid generating a null character. + lineArray.add(""); + + // Allocate 2/3rds of the space for text1, the rest for text2. + String chars1 = diff_linesToCharsMunge(text1, lineArray, lineHash, 40000); + String chars2 = diff_linesToCharsMunge(text2, lineArray, lineHash, 65535); + return new LinesToCharsResult(chars1, chars2, lineArray); + } + + /** + * Split a text into a list of strings. Reduce the texts to a string of + * hashes where each Unicode character represents one line. + * @param text String to encode. + * @param lineArray List of unique strings. + * @param lineHash Map of strings to indices. + * @param maxLines Maximum length of lineArray. + * @return Encoded string. + */ + private String diff_linesToCharsMunge(String text, List lineArray, + Map lineHash, int maxLines) { + int lineStart = 0; + int lineEnd = -1; + String line; + StringBuilder chars = new StringBuilder(); + // Walk the text, pulling out a substring for each line. + // text.split('\n') would would temporarily double our memory footprint. + // Modifying text would create many large strings to garbage collect. + while (lineEnd < text.length() - 1) { + lineEnd = text.indexOf('\n', lineStart); + if (lineEnd == -1) { + lineEnd = text.length() - 1; + } + line = text.substring(lineStart, lineEnd + 1); + + if (lineHash.containsKey(line)) { + chars.append(String.valueOf((char) (int) lineHash.get(line))); + } else { + if (lineArray.size() == maxLines) { + // Bail out at 65535 because + // String.valueOf((char) 65536).equals(String.valueOf(((char) 0))) + line = text.substring(lineStart); + lineEnd = text.length(); + } + lineArray.add(line); + lineHash.put(line, lineArray.size() - 1); + chars.append(String.valueOf((char) (lineArray.size() - 1))); + } + lineStart = lineEnd + 1; + } + return chars.toString(); + } + + /** + * Rehydrate the text in a diff from a string of line hashes to real lines of + * text. + * @param diffs List of Diff objects. + * @param lineArray List of unique strings. + */ + protected void diff_charsToLines(List diffs, + List lineArray) { + StringBuilder text; + for (Diff diff : diffs) { + text = new StringBuilder(); + for (int j = 0; j < diff.text.length(); j++) { + text.append(lineArray.get(diff.text.charAt(j))); + } + diff.text = text.toString(); + } + } + + /** + * Determine the common prefix of two strings + * @param text1 First string. + * @param text2 Second string. + * @return The number of characters common to the start of each string. + */ + public int diff_commonPrefix(String text1, String text2) { + // Performance analysis: https://neil.fraser.name/news/2007/10/09/ + int n = Math.min(text1.length(), text2.length()); + for (int i = 0; i < n; i++) { + if (text1.charAt(i) != text2.charAt(i)) { + return i; + } + } + return n; + } + + /** + * Determine the common suffix of two strings + * @param text1 First string. + * @param text2 Second string. + * @return The number of characters common to the end of each string. + */ + public int diff_commonSuffix(String text1, String text2) { + // Performance analysis: https://neil.fraser.name/news/2007/10/09/ + int text1_length = text1.length(); + int text2_length = text2.length(); + int n = Math.min(text1_length, text2_length); + for (int i = 1; i <= n; i++) { + if (text1.charAt(text1_length - i) != text2.charAt(text2_length - i)) { + return i - 1; + } + } + return n; + } + + /** + * Determine if the suffix of one string is the prefix of another. + * @param text1 First string. + * @param text2 Second string. + * @return The number of characters common to the end of the first + * string and the start of the second string. + */ + protected int diff_commonOverlap(String text1, String text2) { + // Cache the text lengths to prevent multiple calls. + int text1_length = text1.length(); + int text2_length = text2.length(); + // Eliminate the null case. + if (text1_length == 0 || text2_length == 0) { + return 0; + } + // Truncate the longer string. + if (text1_length > text2_length) { + text1 = text1.substring(text1_length - text2_length); + } else if (text1_length < text2_length) { + text2 = text2.substring(0, text1_length); + } + int text_length = Math.min(text1_length, text2_length); + // Quick check for the worst case. + if (text1.equals(text2)) { + return text_length; + } + + // Start by looking for a single character match + // and increase length until no match is found. + // Performance analysis: https://neil.fraser.name/news/2010/11/04/ + int best = 0; + int length = 1; + while (true) { + String pattern = text1.substring(text_length - length); + int found = text2.indexOf(pattern); + if (found == -1) { + return best; + } + length += found; + if (found == 0 || text1 + .substring(text_length - length) + .equals( + text2.substring(0, length))) { + best = length; + length++; + } + } + } + + /** + * Do the two texts share a substring which is at least half the length of + * the longer text? + * This speedup can produce non-minimal diffs. + * @param text1 First string. + * @param text2 Second string. + * @return Five element String array, containing the prefix of text1, the + * suffix of text1, the prefix of text2, the suffix of text2 and the + * common middle. Or null if there was no match. + */ + protected String[] diff_halfMatch(String text1, String text2) { + if (Diff_Timeout <= 0) { + // Don't risk returning a non-optimal diff if we have unlimited time. + return null; + } + String longtext = text1.length() > text2.length() ? text1 : text2; + String shorttext = text1.length() > text2.length() ? text2 : text1; + if (longtext.length() < 4 || shorttext.length() * 2 < longtext.length()) { + return null; // Pointless. + } + + // First check if the second quarter is the seed for a half-match. + String[] hm1 = diff_halfMatchI( + longtext, shorttext, + (longtext.length() + 3) / 4); + // Check again based on the third quarter. + String[] hm2 = diff_halfMatchI( + longtext, shorttext, + (longtext.length() + 1) / 2); + String[] hm; + if (hm1 == null && hm2 == null) { + return null; + } else if (hm2 == null) { + hm = hm1; + } else if (hm1 == null) { + hm = hm2; + } else { + // Both matched. Select the longest. + hm = hm1[4].length() > hm2[4].length() ? hm1 : hm2; + } + + // A half-match was found, sort out the return data. + if (text1.length() > text2.length()) { + return hm; + // return new String[]{hm[0], hm[1], hm[2], hm[3], hm[4]}; + } else { + return new String[] { + hm[2], hm[3], hm[0], hm[1], hm[4] + }; + } + } + + /** + * Does a substring of shorttext exist within longtext such that the + * substring is at least half the length of longtext? + * @param longtext Longer string. + * @param shorttext Shorter string. + * @param i Start index of quarter length substring within longtext. + * @return Five element String array, containing the prefix of longtext, the + * suffix of longtext, the prefix of shorttext, the suffix of shorttext + * and the common middle. Or null if there was no match. + */ + private String[] diff_halfMatchI(String longtext, String shorttext, int i) { + // Start with a 1/4 length substring at position i as a seed. + String seed = longtext.substring(i, i + longtext.length() / 4); + int j = -1; + String best_common = ""; + String best_longtext_a = "", best_longtext_b = ""; + String best_shorttext_a = "", best_shorttext_b = ""; + while ((j = shorttext.indexOf(seed, j + 1)) != -1) { + int prefixLength = diff_commonPrefix( + longtext.substring(i), + shorttext.substring(j)); + int suffixLength = diff_commonSuffix( + longtext.substring(0, i), + shorttext.substring(0, j)); + if (best_common.length() < suffixLength + prefixLength) { + best_common = shorttext.substring(j - suffixLength, j) + + shorttext.substring(j, j + prefixLength); + best_longtext_a = longtext.substring(0, i - suffixLength); + best_longtext_b = longtext.substring(i + prefixLength); + best_shorttext_a = shorttext.substring(0, j - suffixLength); + best_shorttext_b = shorttext.substring(j + prefixLength); + } + } + if (best_common.length() * 2 >= longtext.length()) { + return new String[] { + best_longtext_a, best_longtext_b, + best_shorttext_a, best_shorttext_b, best_common + }; + } else { + return null; + } + } + + /** + * Reduce the number of edits by eliminating semantically trivial equalities. + * @param diffs LinkedList of Diff objects. + */ + public void diff_cleanupSemantic(LinkedList diffs) { + if (diffs.isEmpty()) { + return; + } + boolean changes = false; + Deque equalities = new ArrayDeque(); // Double-ended queue of qualities. + String lastEquality = null; // Always equal to equalities.peek().text + ListIterator pointer = diffs.listIterator(); + // Number of characters that changed prior to the equality. + int length_insertions1 = 0; + int length_deletions1 = 0; + // Number of characters that changed after the equality. + int length_insertions2 = 0; + int length_deletions2 = 0; + Diff thisDiff = pointer.next(); + while (thisDiff != null) { + if (thisDiff.operation == Operation.EQUAL) { + // Equality found. + equalities.push(thisDiff); + length_insertions1 = length_insertions2; + length_deletions1 = length_deletions2; + length_insertions2 = 0; + length_deletions2 = 0; + lastEquality = thisDiff.text; + } else { + // An insertion or deletion. + if (thisDiff.operation == Operation.INSERT) { + length_insertions2 += thisDiff.text.length(); + } else { + length_deletions2 += thisDiff.text.length(); + } + // Eliminate an equality that is smaller or equal to the edits on both + // sides of it. + if (lastEquality != null && (lastEquality.length() <= Math.max(length_insertions1, length_deletions1)) + && (lastEquality.length() <= Math.max(length_insertions2, length_deletions2))) { + // System.out.println("Splitting: '" + lastEquality + "'"); + // Walk back to offending equality. + while (thisDiff != equalities.peek()) { + thisDiff = pointer.previous(); + } + pointer.next(); + + // Replace equality with a delete. + pointer.set(new Diff(Operation.DELETE, lastEquality)); + // Insert a corresponding an insert. + pointer.add(new Diff(Operation.INSERT, lastEquality)); + + equalities.pop(); // Throw away the equality we just deleted. + if (!equalities.isEmpty()) { + // Throw away the previous equality (it needs to be reevaluated). + equalities.pop(); + } + if (equalities.isEmpty()) { + // There are no previous equalities, walk back to the start. + while (pointer.hasPrevious()) { + pointer.previous(); + } + } else { + // There is a safe equality we can fall back to. + thisDiff = equalities.peek(); + while (thisDiff != pointer.previous()) { + // Intentionally empty loop. + } + } + + length_insertions1 = 0; // Reset the counters. + length_insertions2 = 0; + length_deletions1 = 0; + length_deletions2 = 0; + lastEquality = null; + changes = true; + } + } + thisDiff = pointer.hasNext() ? pointer.next() : null; + } + + // Normalize the diff. + if (changes) { + diff_cleanupMerge(diffs); + } + diff_cleanupSemanticLossless(diffs); + + // Find any overlaps between deletions and insertions. + // e.g: abcxxxxxxdef + // -> abcxxxdef + // e.g: xxxabcdefxxx + // -> defxxxabc + // Only extract an overlap if it is as big as the edit ahead or behind it. + pointer = diffs.listIterator(); + Diff prevDiff = null; + thisDiff = null; + if (pointer.hasNext()) { + prevDiff = pointer.next(); + if (pointer.hasNext()) { + thisDiff = pointer.next(); + } + } + while (thisDiff != null) { + if (prevDiff.operation == Operation.DELETE && + thisDiff.operation == Operation.INSERT) { + String deletion = prevDiff.text; + String insertion = thisDiff.text; + int overlap_length1 = this.diff_commonOverlap(deletion, insertion); + int overlap_length2 = this.diff_commonOverlap(insertion, deletion); + if (overlap_length1 >= overlap_length2) { + if (overlap_length1 >= deletion.length() / 2.0 || + overlap_length1 >= insertion.length() / 2.0) { + // Overlap found. Insert an equality and trim the surrounding edits. + pointer.previous(); + pointer + .add( + new Diff(Operation.EQUAL, + insertion.substring(0, overlap_length1))); + prevDiff.text = deletion.substring(0, deletion.length() - overlap_length1); + thisDiff.text = insertion.substring(overlap_length1); + // pointer.add inserts the element before the cursor, so there is + // no need to step past the new element. + } + } else { + if (overlap_length2 >= deletion.length() / 2.0 || + overlap_length2 >= insertion.length() / 2.0) { + // Reverse overlap found. + // Insert an equality and swap and trim the surrounding edits. + pointer.previous(); + pointer + .add( + new Diff(Operation.EQUAL, + deletion.substring(0, overlap_length2))); + prevDiff.operation = Operation.INSERT; + prevDiff.text = insertion.substring(0, insertion.length() - overlap_length2); + thisDiff.operation = Operation.DELETE; + thisDiff.text = deletion.substring(overlap_length2); + // pointer.add inserts the element before the cursor, so there is + // no need to step past the new element. + } + } + thisDiff = pointer.hasNext() ? pointer.next() : null; + } + prevDiff = thisDiff; + thisDiff = pointer.hasNext() ? pointer.next() : null; + } + } + + /** + * Look for single edits surrounded on both sides by equalities + * which can be shifted sideways to align the edit to a word boundary. + * e.g: The cat came. -> The cat came. + * @param diffs LinkedList of Diff objects. + */ + public void diff_cleanupSemanticLossless(LinkedList diffs) { + String equality1, edit, equality2; + String commonString; + int commonOffset; + int score, bestScore; + String bestEquality1, bestEdit, bestEquality2; + // Create a new iterator at the start. + ListIterator pointer = diffs.listIterator(); + Diff prevDiff = pointer.hasNext() ? pointer.next() : null; + Diff thisDiff = pointer.hasNext() ? pointer.next() : null; + Diff nextDiff = pointer.hasNext() ? pointer.next() : null; + // Intentionally ignore the first and last element (don't need checking). + while (nextDiff != null) { + if (prevDiff.operation == Operation.EQUAL && + nextDiff.operation == Operation.EQUAL) { + // This is a single edit surrounded by equalities. + equality1 = prevDiff.text; + edit = thisDiff.text; + equality2 = nextDiff.text; + + // First, shift the edit as far left as possible. + commonOffset = diff_commonSuffix(equality1, edit); + if (commonOffset != 0) { + commonString = edit.substring(edit.length() - commonOffset); + equality1 = equality1.substring(0, equality1.length() - commonOffset); + edit = commonString + edit.substring(0, edit.length() - commonOffset); + equality2 = commonString + equality2; + } + + // Second, step character by character right, looking for the best fit. + bestEquality1 = equality1; + bestEdit = edit; + bestEquality2 = equality2; + bestScore = diff_cleanupSemanticScore(equality1, edit) + + diff_cleanupSemanticScore(edit, equality2); + while (edit.length() != 0 && equality2.length() != 0 + && edit.charAt(0) == equality2.charAt(0)) { + equality1 += edit.charAt(0); + edit = edit.substring(1) + equality2.charAt(0); + equality2 = equality2.substring(1); + score = diff_cleanupSemanticScore(equality1, edit) + + diff_cleanupSemanticScore(edit, equality2); + // The >= encourages trailing rather than leading whitespace on edits. + if (score >= bestScore) { + bestScore = score; + bestEquality1 = equality1; + bestEdit = edit; + bestEquality2 = equality2; + } + } + + if (!prevDiff.text.equals(bestEquality1)) { + // We have an improvement, save it back to the diff. + if (bestEquality1.length() != 0) { + prevDiff.text = bestEquality1; + } else { + pointer.previous(); // Walk past nextDiff. + pointer.previous(); // Walk past thisDiff. + pointer.previous(); // Walk past prevDiff. + pointer.remove(); // Delete prevDiff. + pointer.next(); // Walk past thisDiff. + pointer.next(); // Walk past nextDiff. + } + thisDiff.text = bestEdit; + if (bestEquality2.length() != 0) { + nextDiff.text = bestEquality2; + } else { + pointer.remove(); // Delete nextDiff. + nextDiff = thisDiff; + thisDiff = prevDiff; + } + } + } + prevDiff = thisDiff; + thisDiff = nextDiff; + nextDiff = pointer.hasNext() ? pointer.next() : null; + } + } + + /** + * Given two strings, compute a score representing whether the internal + * boundary falls on logical boundaries. + * Scores range from 6 (best) to 0 (worst). + * @param one First string. + * @param two Second string. + * @return The score. + */ + private int diff_cleanupSemanticScore(String one, String two) { + if (one.length() == 0 || two.length() == 0) { + // Edges are the best. + return 6; + } + + // Each port of this function behaves slightly differently due to + // subtle differences in each language's definition of things like + // 'whitespace'. Since this function's purpose is largely cosmetic, + // the choice has been made to use each language's native features + // rather than force total conformity. + char char1 = one.charAt(one.length() - 1); + char char2 = two.charAt(0); + boolean nonAlphaNumeric1 = !Character.isLetterOrDigit(char1); + boolean nonAlphaNumeric2 = !Character.isLetterOrDigit(char2); + boolean whitespace1 = nonAlphaNumeric1 && Character.isWhitespace(char1); + boolean whitespace2 = nonAlphaNumeric2 && Character.isWhitespace(char2); + boolean lineBreak1 = whitespace1 + && Character.getType(char1) == Character.CONTROL; + boolean lineBreak2 = whitespace2 + && Character.getType(char2) == Character.CONTROL; + boolean blankLine1 = lineBreak1 && BLANKLINEEND.matcher(one).find(); + boolean blankLine2 = lineBreak2 && BLANKLINESTART.matcher(two).find(); + + if (blankLine1 || blankLine2) { + // Five points for blank lines. + return 5; + } else if (lineBreak1 || lineBreak2) { + // Four points for line breaks. + return 4; + } else if (nonAlphaNumeric1 && !whitespace1 && whitespace2) { + // Three points for end of sentences. + return 3; + } else if (whitespace1 || whitespace2) { + // Two points for whitespace. + return 2; + } else if (nonAlphaNumeric1 || nonAlphaNumeric2) { + // One point for non-alphanumeric. + return 1; + } + return 0; + } + + // Define some regex patterns for matching boundaries. + private Pattern BLANKLINEEND = Pattern.compile("\\n\\r?\\n\\Z", Pattern.DOTALL); + private Pattern BLANKLINESTART = Pattern.compile("\\A\\r?\\n\\r?\\n", Pattern.DOTALL); + + /** + * Reduce the number of edits by eliminating operationally trivial equalities. + * @param diffs LinkedList of Diff objects. + */ + public void diff_cleanupEfficiency(LinkedList diffs) { + if (diffs.isEmpty()) { + return; + } + boolean changes = false; + Deque equalities = new ArrayDeque(); // Double-ended queue of equalities. + String lastEquality = null; // Always equal to equalities.peek().text + ListIterator pointer = diffs.listIterator(); + // Is there an insertion operation before the last equality. + boolean pre_ins = false; + // Is there a deletion operation before the last equality. + boolean pre_del = false; + // Is there an insertion operation after the last equality. + boolean post_ins = false; + // Is there a deletion operation after the last equality. + boolean post_del = false; + Diff thisDiff = pointer.next(); + Diff safeDiff = thisDiff; // The last Diff that is known to be unsplittable. + while (thisDiff != null) { + if (thisDiff.operation == Operation.EQUAL) { + // Equality found. + if (thisDiff.text.length() < Diff_EditCost && (post_ins || post_del)) { + // Candidate found. + equalities.push(thisDiff); + pre_ins = post_ins; + pre_del = post_del; + lastEquality = thisDiff.text; + } else { + // Not a candidate, and can never become one. + equalities.clear(); + lastEquality = null; + safeDiff = thisDiff; + } + post_ins = post_del = false; + } else { + // An insertion or deletion. + if (thisDiff.operation == Operation.DELETE) { + post_del = true; + } else { + post_ins = true; + } + /* + * Five types to be split: ABXYCD + * AXCD ABXC + * AXCD ABXC + */ + if (lastEquality != null + && ((pre_ins && pre_del && post_ins && post_del) + || ((lastEquality.length() < Diff_EditCost / 2) + && ((pre_ins ? 1 : 0) + (pre_del ? 1 : 0) + + (post_ins ? 1 : 0) + (post_del ? 1 : 0)) == 3))) { + // System.out.println("Splitting: '" + lastEquality + "'"); + // Walk back to offending equality. + while (thisDiff != equalities.peek()) { + thisDiff = pointer.previous(); + } + pointer.next(); + + // Replace equality with a delete. + pointer.set(new Diff(Operation.DELETE, lastEquality)); + // Insert a corresponding an insert. + pointer.add(thisDiff = new Diff(Operation.INSERT, lastEquality)); + + equalities.pop(); // Throw away the equality we just deleted. + lastEquality = null; + if (pre_ins && pre_del) { + // No changes made which could affect previous entry, keep going. + post_ins = post_del = true; + equalities.clear(); + safeDiff = thisDiff; + } else { + if (!equalities.isEmpty()) { + // Throw away the previous equality (it needs to be reevaluated). + equalities.pop(); + } + if (equalities.isEmpty()) { + // There are no previous questionable equalities, + // walk back to the last known safe diff. + thisDiff = safeDiff; + } else { + // There is an equality we can fall back to. + thisDiff = equalities.peek(); + } + while (thisDiff != pointer.previous()) { + // Intentionally empty loop. + } + post_ins = post_del = false; + } + + changes = true; + } + } + thisDiff = pointer.hasNext() ? pointer.next() : null; + } + + if (changes) { + diff_cleanupMerge(diffs); + } + } + + /** + * Reorder and merge like edit sections. Merge equalities. + * Any edit section can move as long as it doesn't cross an equality. + * @param diffs LinkedList of Diff objects. + */ + public void diff_cleanupMerge(LinkedList diffs) { + diffs.add(new Diff(Operation.EQUAL, "")); // Add a dummy entry at the end. + ListIterator pointer = diffs.listIterator(); + int count_delete = 0; + int count_insert = 0; + String text_delete = ""; + String text_insert = ""; + Diff thisDiff = pointer.next(); + Diff prevEqual = null; + int commonlength; + while (thisDiff != null) { + switch (thisDiff.operation) { + case INSERT: + count_insert++; + text_insert += thisDiff.text; + prevEqual = null; + break; + case DELETE: + count_delete++; + text_delete += thisDiff.text; + prevEqual = null; + break; + case EQUAL: + if (count_delete + count_insert > 1) { + boolean both_types = count_delete != 0 && count_insert != 0; + // Delete the offending records. + pointer.previous(); // Reverse direction. + while (count_delete-- > 0) { + pointer.previous(); + pointer.remove(); + } + while (count_insert-- > 0) { + pointer.previous(); + pointer.remove(); + } + if (both_types) { + // Factor out any common prefixies. + commonlength = diff_commonPrefix(text_insert, text_delete); + if (commonlength != 0) { + if (pointer.hasPrevious()) { + thisDiff = pointer.previous(); + assert thisDiff.operation == Operation.EQUAL : "Previous diff should have been an equality."; + thisDiff.text += text_insert.substring(0, commonlength); + pointer.next(); + } else { + pointer + .add( + new Diff(Operation.EQUAL, + text_insert.substring(0, commonlength))); + } + text_insert = text_insert.substring(commonlength); + text_delete = text_delete.substring(commonlength); + } + // Factor out any common suffixies. + commonlength = diff_commonSuffix(text_insert, text_delete); + if (commonlength != 0) { + thisDiff = pointer.next(); + thisDiff.text = text_insert + .substring( + text_insert.length() + - commonlength) + + thisDiff.text; + text_insert = text_insert + .substring( + 0, text_insert.length() + - commonlength); + text_delete = text_delete + .substring( + 0, text_delete.length() + - commonlength); + pointer.previous(); + } + } + // Insert the merged records. + if (text_delete.length() != 0) { + pointer.add(new Diff(Operation.DELETE, text_delete)); + } + if (text_insert.length() != 0) { + pointer.add(new Diff(Operation.INSERT, text_insert)); + } + // Step forward to the equality. + thisDiff = pointer.hasNext() ? pointer.next() : null; + } else if (prevEqual != null) { + // Merge this equality with the previous one. + prevEqual.text += thisDiff.text; + pointer.remove(); + thisDiff = pointer.previous(); + pointer.next(); // Forward direction + } + count_insert = 0; + count_delete = 0; + text_delete = ""; + text_insert = ""; + prevEqual = thisDiff; + break; + } + thisDiff = pointer.hasNext() ? pointer.next() : null; + } + if (diffs.getLast().text.length() == 0) { + diffs.removeLast(); // Remove the dummy entry at the end. + } + + /* + * Second pass: look for single edits surrounded on both sides by equalities which can be shifted sideways to + * eliminate an equality. e.g: ABAC -> ABAC + */ + boolean changes = false; + // Create a new iterator at the start. + // (As opposed to walking the current one back.) + pointer = diffs.listIterator(); + Diff prevDiff = pointer.hasNext() ? pointer.next() : null; + thisDiff = pointer.hasNext() ? pointer.next() : null; + Diff nextDiff = pointer.hasNext() ? pointer.next() : null; + // Intentionally ignore the first and last element (don't need checking). + while (nextDiff != null) { + if (prevDiff.operation == Operation.EQUAL && + nextDiff.operation == Operation.EQUAL) { + // This is a single edit surrounded by equalities. + if (thisDiff.text.endsWith(prevDiff.text)) { + // Shift the edit over the previous equality. + thisDiff.text = prevDiff.text + + thisDiff.text + .substring( + 0, thisDiff.text.length() + - prevDiff.text.length()); + nextDiff.text = prevDiff.text + nextDiff.text; + pointer.previous(); // Walk past nextDiff. + pointer.previous(); // Walk past thisDiff. + pointer.previous(); // Walk past prevDiff. + pointer.remove(); // Delete prevDiff. + pointer.next(); // Walk past thisDiff. + thisDiff = pointer.next(); // Walk past nextDiff. + nextDiff = pointer.hasNext() ? pointer.next() : null; + changes = true; + } else if (thisDiff.text.startsWith(nextDiff.text)) { + // Shift the edit over the next equality. + prevDiff.text += nextDiff.text; + thisDiff.text = thisDiff.text.substring(nextDiff.text.length()) + + nextDiff.text; + pointer.remove(); // Delete nextDiff. + nextDiff = pointer.hasNext() ? pointer.next() : null; + changes = true; + } + } + prevDiff = thisDiff; + thisDiff = nextDiff; + nextDiff = pointer.hasNext() ? pointer.next() : null; + } + // If shifts were made, the diff needs reordering and another shift sweep. + if (changes) { + diff_cleanupMerge(diffs); + } + } + + /** + * loc is a location in text1, compute and return the equivalent location in + * text2. + * e.g. "The cat" vs "The big cat", 1->1, 5->8 + * @param diffs List of Diff objects. + * @param loc Location within text1. + * @return Location within text2. + */ + public int diff_xIndex(List diffs, int loc) { + int chars1 = 0; + int chars2 = 0; + int last_chars1 = 0; + int last_chars2 = 0; + Diff lastDiff = null; + for (Diff aDiff : diffs) { + if (aDiff.operation != Operation.INSERT) { + // Equality or deletion. + chars1 += aDiff.text.length(); + } + if (aDiff.operation != Operation.DELETE) { + // Equality or insertion. + chars2 += aDiff.text.length(); + } + if (chars1 > loc) { + // Overshot the location. + lastDiff = aDiff; + break; + } + last_chars1 = chars1; + last_chars2 = chars2; + } + if (lastDiff != null && lastDiff.operation == Operation.DELETE) { + // The location was deleted. + return last_chars2; + } + // Add the remaining character length. + return last_chars2 + (loc - last_chars1); + } + + /** + * Convert a Diff list into a pretty HTML report. + * @param diffs List of Diff objects. + * @return HTML representation. + */ + public String diff_prettyHtml(List diffs) { + StringBuilder html = new StringBuilder(); + for (Diff aDiff : diffs) { + String text = aDiff.text + .replace("&", "&") + .replace("<", "<") + .replace(">", ">") + .replace("\n", "¶
"); + switch (aDiff.operation) { + case INSERT: + html + .append("") + .append(text) + .append(""); + break; + case DELETE: + html + .append("") + .append(text) + .append(""); + break; + case EQUAL: + html.append("").append(text).append(""); + break; + } + } + return html.toString(); + } + + /** + * Compute and return the source text (all equalities and deletions). + * @param diffs List of Diff objects. + * @return Source text. + */ + public String diff_text1(List diffs) { + StringBuilder text = new StringBuilder(); + for (Diff aDiff : diffs) { + if (aDiff.operation != Operation.INSERT) { + text.append(aDiff.text); + } + } + return text.toString(); + } + + /** + * Compute and return the destination text (all equalities and insertions). + * @param diffs List of Diff objects. + * @return Destination text. + */ + public String diff_text2(List diffs) { + StringBuilder text = new StringBuilder(); + for (Diff aDiff : diffs) { + if (aDiff.operation != Operation.DELETE) { + text.append(aDiff.text); + } + } + return text.toString(); + } + + /** + * Compute the Levenshtein compare; the number of inserted, deleted or + * substituted characters. + * @param diffs List of Diff objects. + * @return Number of changes. + */ + public int diff_levenshtein(List diffs) { + int levenshtein = 0; + int insertions = 0; + int deletions = 0; + for (Diff aDiff : diffs) { + switch (aDiff.operation) { + case INSERT: + insertions += aDiff.text.length(); + break; + case DELETE: + deletions += aDiff.text.length(); + break; + case EQUAL: + // A deletion and an insertion is one substitution. + levenshtein += Math.max(insertions, deletions); + insertions = 0; + deletions = 0; + break; + } + } + levenshtein += Math.max(insertions, deletions); + return levenshtein; + } + + /** + * Crush the diff into an encoded string which describes the operations + * required to transform text1 into text2. + * E.g. =3\t-2\t+ing -> Keep 3 chars, delete 2 chars, insert 'ing'. + * Operations are tab-separated. Inserted text is escaped using %xx notation. + * @param diffs List of Diff objects. + * @return Delta text. + */ + public String diff_toDelta(List diffs) { + StringBuilder text = new StringBuilder(); + for (Diff aDiff : diffs) { + switch (aDiff.operation) { + case INSERT: + try { + text + .append("+") + .append( + URLEncoder + .encode(aDiff.text, "UTF-8") + .replace('+', ' ')) + .append("\t"); + } catch (UnsupportedEncodingException e) { + // Not likely on modern system. + throw new Error("This system does not support UTF-8.", e); + } + break; + case DELETE: + text.append("-").append(aDiff.text.length()).append("\t"); + break; + case EQUAL: + text.append("=").append(aDiff.text.length()).append("\t"); + break; + } + } + String delta = text.toString(); + if (delta.length() != 0) { + // Strip off trailing tab character. + delta = delta.substring(0, delta.length() - 1); + delta = unescapeForEncodeUriCompatability(delta); + } + return delta; + } + + /** + * Given the original text1, and an encoded string which describes the + * operations required to transform text1 into text2, compute the full diff. + * @param text1 Source string for the diff. + * @param delta Delta text. + * @return Array of Diff objects or null if invalid. + * @throws IllegalArgumentException If invalid input. + */ + public LinkedList diff_fromDelta(String text1, String delta) + throws IllegalArgumentException { + LinkedList diffs = new LinkedList(); + int pointer = 0; // Cursor in text1 + String[] tokens = delta.split("\t"); + for (String token : tokens) { + if (token.length() == 0) { + // Blank tokens are ok (from a trailing \t). + continue; + } + // Each token begins with a one character parameter which specifies the + // operation of this token (delete, insert, equality). + String param = token.substring(1); + switch (token.charAt(0)) { + case '+': + // decode would change all "+" to " " + param = param.replace("+", "%2B"); + try { + param = URLDecoder.decode(param, "UTF-8"); + } catch (UnsupportedEncodingException e) { + // Not likely on modern system. + throw new Error("This system does not support UTF-8.", e); + } catch (IllegalArgumentException e) { + // Malformed URI sequence. + throw new IllegalArgumentException( + "Illegal escape in diff_fromDelta: " + param, e); + } + diffs.add(new Diff(Operation.INSERT, param)); + break; + case '-': + // Fall through. + case '=': + int n; + try { + n = Integer.parseInt(param); + } catch (NumberFormatException e) { + throw new IllegalArgumentException( + "Invalid number in diff_fromDelta: " + param, e); + } + if (n < 0) { + throw new IllegalArgumentException( + "Negative number in diff_fromDelta: " + param); + } + String text; + try { + text = text1.substring(pointer, pointer += n); + } catch (StringIndexOutOfBoundsException e) { + throw new IllegalArgumentException("Delta length (" + pointer + + ") larger than source text length (" + text1.length() + + ").", e); + } + if (token.charAt(0) == '=') { + diffs.add(new Diff(Operation.EQUAL, text)); + } else { + diffs.add(new Diff(Operation.DELETE, text)); + } + break; + default: + // Anything else is an error. + throw new IllegalArgumentException( + "Invalid diff operation in diff_fromDelta: " + token.charAt(0)); + } + } + if (pointer != text1.length()) { + throw new IllegalArgumentException("Delta length (" + pointer + + ") smaller than source text length (" + text1.length() + ")."); + } + return diffs; + } + + // MATCH FUNCTIONS + + /** + * Locate the best instance of 'pattern' in 'text' near 'loc'. + * Returns -1 if no match found. + * @param text The text to search. + * @param pattern The pattern to search for. + * @param loc The location to search around. + * @return Best match index or -1. + */ + public int match_main(String text, String pattern, int loc) { + // Check for null inputs. + if (text == null || pattern == null) { + throw new IllegalArgumentException("Null inputs. (match_main)"); + } + + loc = Math.max(0, Math.min(loc, text.length())); + if (text.equals(pattern)) { + // Shortcut (potentially not guaranteed by the algorithm) + return 0; + } else if (text.length() == 0) { + // Nothing to match. + return -1; + } else if (loc + pattern.length() <= text.length() + && text.substring(loc, loc + pattern.length()).equals(pattern)) { + // Perfect match at the perfect spot! (Includes case of null pattern) + return loc; + } else { + // Do a fuzzy compare. + return match_bitap(text, pattern, loc); + } + } + + /** + * Locate the best instance of 'pattern' in 'text' near 'loc' using the + * Bitap algorithm. Returns -1 if no match found. + * @param text The text to search. + * @param pattern The pattern to search for. + * @param loc The location to search around. + * @return Best match index or -1. + */ + protected int match_bitap(String text, String pattern, int loc) { + assert (Match_MaxBits == 0 || pattern.length() <= Match_MaxBits) : "Pattern too long for this application."; + + // Initialise the alphabet. + Map s = match_alphabet(pattern); + + // Highest score beyond which we give up. + double score_threshold = Match_Threshold; + // Is there a nearby exact match? (speedup) + int best_loc = text.indexOf(pattern, loc); + if (best_loc != -1) { + score_threshold = Math + .min( + match_bitapScore(0, best_loc, loc, pattern), + score_threshold); + // What about in the other direction? (speedup) + best_loc = text.lastIndexOf(pattern, loc + pattern.length()); + if (best_loc != -1) { + score_threshold = Math + .min( + match_bitapScore(0, best_loc, loc, pattern), + score_threshold); + } + } + + // Initialise the bit arrays. + int matchmask = 1 << (pattern.length() - 1); + best_loc = -1; + + int bin_min, bin_mid; + int bin_max = pattern.length() + text.length(); + // Empty initialization added to appease Java compiler. + int[] last_rd = new int[0]; + for (int d = 0; d < pattern.length(); d++) { + // Scan for the best match; each iteration allows for one more error. + // Run a binary search to determine how far from 'loc' we can stray at + // this error level. + bin_min = 0; + bin_mid = bin_max; + while (bin_min < bin_mid) { + if (match_bitapScore(d, loc + bin_mid, loc, pattern) <= score_threshold) { + bin_min = bin_mid; + } else { + bin_max = bin_mid; + } + bin_mid = (bin_max - bin_min) / 2 + bin_min; + } + // Use the result from this iteration as the maximum for the next. + bin_max = bin_mid; + int start = Math.max(1, loc - bin_mid + 1); + int finish = Math.min(loc + bin_mid, text.length()) + pattern.length(); + + int[] rd = new int[finish + 2]; + rd[finish + 1] = (1 << d) - 1; + for (int j = finish; j >= start; j--) { + int charMatch; + if (text.length() <= j - 1 || !s.containsKey(text.charAt(j - 1))) { + // Out of range. + charMatch = 0; + } else { + charMatch = s.get(text.charAt(j - 1)); + } + if (d == 0) { + // First pass: exact match. + rd[j] = ((rd[j + 1] << 1) | 1) & charMatch; + } else { + // Subsequent passes: fuzzy match. + rd[j] = (((rd[j + 1] << 1) | 1) & charMatch) + | (((last_rd[j + 1] | last_rd[j]) << 1) | 1) | last_rd[j + 1]; + } + if ((rd[j] & matchmask) != 0) { + double score = match_bitapScore(d, j - 1, loc, pattern); + // This match will almost certainly be better than any existing + // match. But check anyway. + if (score <= score_threshold) { + // Told you so. + score_threshold = score; + best_loc = j - 1; + if (best_loc > loc) { + // When passing loc, don't exceed our current compare from loc. + start = Math.max(1, 2 * loc - best_loc); + } else { + // Already passed loc, downhill from here on in. + break; + } + } + } + } + if (match_bitapScore(d + 1, loc, loc, pattern) > score_threshold) { + // No hope for a (better) match at greater error levels. + break; + } + last_rd = rd; + } + return best_loc; + } + + /** + * Compute and return the score for a match with e errors and x location. + * @param e Number of errors in match. + * @param x Location of match. + * @param loc Expected location of match. + * @param pattern Pattern being sought. + * @return Overall score for match (0.0 = good, 1.0 = bad). + */ + private double match_bitapScore(int e, int x, int loc, String pattern) { + float accuracy = (float) e / pattern.length(); + int proximity = Math.abs(loc - x); + if (Match_Distance == 0) { + // Dodge divide by zero error. + return proximity == 0 ? accuracy : 1.0; + } + return accuracy + (proximity / (float) Match_Distance); + } + + /** + * Initialise the alphabet for the Bitap algorithm. + * @param pattern The text to encode. + * @return Hash of character locations. + */ + protected Map match_alphabet(String pattern) { + Map s = new HashMap(); + char[] char_pattern = pattern.toCharArray(); + for (char c : char_pattern) { + s.put(c, 0); + } + int i = 0; + for (char c : char_pattern) { + s.put(c, s.get(c) | (1 << (pattern.length() - i - 1))); + i++; + } + return s; + } + + // PATCH FUNCTIONS + + /** + * Increase the context until it is unique, + * but don't let the pattern expand beyond Match_MaxBits. + * @param patch The patch to grow. + * @param text Source text. + */ + protected void patch_addContext(Patch patch, String text) { + if (text.length() == 0) { + return; + } + String pattern = text.substring(patch.start2, patch.start2 + patch.length1); + int padding = 0; + + // Look for the first and last matches of pattern in text. If two different + // matches are found, increase the pattern length. + while (text.indexOf(pattern) != text.lastIndexOf(pattern) + && pattern.length() < Match_MaxBits - Patch_Margin - Patch_Margin) { + padding += Patch_Margin; + pattern = text + .substring( + Math.max(0, patch.start2 - padding), + Math.min(text.length(), patch.start2 + patch.length1 + padding)); + } + // Add one chunk for good luck. + padding += Patch_Margin; + + // Add the prefix. + String prefix = text + .substring( + Math.max(0, patch.start2 - padding), + patch.start2); + if (prefix.length() != 0) { + patch.diffs.addFirst(new Diff(Operation.EQUAL, prefix)); + } + // Add the suffix. + String suffix = text + .substring( + patch.start2 + patch.length1, + Math.min(text.length(), patch.start2 + patch.length1 + padding)); + if (suffix.length() != 0) { + patch.diffs.addLast(new Diff(Operation.EQUAL, suffix)); + } + + // Roll back the start points. + patch.start1 -= prefix.length(); + patch.start2 -= prefix.length(); + // Extend the lengths. + patch.length1 += prefix.length() + suffix.length(); + patch.length2 += prefix.length() + suffix.length(); + } + + /** + * Compute a list of patches to turn text1 into text2. + * A set of diffs will be computed. + * @param text1 Old text. + * @param text2 New text. + * @return LinkedList of Patch objects. + */ + public LinkedList patch_make(String text1, String text2) { + if (text1 == null || text2 == null) { + throw new IllegalArgumentException("Null inputs. (patch_make)"); + } + // No diffs provided, compute our own. + LinkedList diffs = diff_main(text1, text2, true); + if (diffs.size() > 2) { + diff_cleanupSemantic(diffs); + diff_cleanupEfficiency(diffs); + } + return patch_make(text1, diffs); + } + + /** + * Compute a list of patches to turn text1 into text2. + * text1 will be derived from the provided diffs. + * @param diffs Array of Diff objects for text1 to text2. + * @return LinkedList of Patch objects. + */ + public LinkedList patch_make(LinkedList diffs) { + if (diffs == null) { + throw new IllegalArgumentException("Null inputs. (patch_make)"); + } + // No origin string provided, compute our own. + String text1 = diff_text1(diffs); + return patch_make(text1, diffs); + } + + /** + * Compute a list of patches to turn text1 into text2. + * text2 is ignored, diffs are the delta between text1 and text2. + * @param text1 Old text + * @param text2 Ignored. + * @param diffs Array of Diff objects for text1 to text2. + * @return LinkedList of Patch objects. + * @deprecated Prefer patch_make(String text1, LinkedList diffs). + */ + @Deprecated + public LinkedList patch_make(String text1, String text2, + LinkedList diffs) { + return patch_make(text1, diffs); + } + + /** + * Compute a list of patches to turn text1 into text2. + * text2 is not provided, diffs are the delta between text1 and text2. + * @param text1 Old text. + * @param diffs Array of Diff objects for text1 to text2. + * @return LinkedList of Patch objects. + */ + public LinkedList patch_make(String text1, LinkedList diffs) { + if (text1 == null || diffs == null) { + throw new IllegalArgumentException("Null inputs. (patch_make)"); + } + + LinkedList patches = new LinkedList(); + if (diffs.isEmpty()) { + return patches; // Get rid of the null case. + } + Patch patch = new Patch(); + int char_count1 = 0; // Number of characters into the text1 string. + int char_count2 = 0; // Number of characters into the text2 string. + // Start with text1 (prepatch_text) and apply the diffs until we arrive at + // text2 (postpatch_text). We recreate the patches one by one to determine + // context info. + String prepatch_text = text1; + String postpatch_text = text1; + for (Diff aDiff : diffs) { + if (patch.diffs.isEmpty() && aDiff.operation != Operation.EQUAL) { + // A new patch starts here. + patch.start1 = char_count1; + patch.start2 = char_count2; + } + + switch (aDiff.operation) { + case INSERT: + patch.diffs.add(aDiff); + patch.length2 += aDiff.text.length(); + postpatch_text = postpatch_text.substring(0, char_count2) + + aDiff.text + postpatch_text.substring(char_count2); + break; + case DELETE: + patch.length1 += aDiff.text.length(); + patch.diffs.add(aDiff); + postpatch_text = postpatch_text.substring(0, char_count2) + + postpatch_text.substring(char_count2 + aDiff.text.length()); + break; + case EQUAL: + if (aDiff.text.length() <= 2 * Patch_Margin + && !patch.diffs.isEmpty() && aDiff != diffs.getLast()) { + // Small equality inside a patch. + patch.diffs.add(aDiff); + patch.length1 += aDiff.text.length(); + patch.length2 += aDiff.text.length(); + } + + if (aDiff.text.length() >= 2 * Patch_Margin && !patch.diffs.isEmpty()) { + // Time for a new patch. + if (!patch.diffs.isEmpty()) { + patch_addContext(patch, prepatch_text); + patches.add(patch); + patch = new Patch(); + // Unlike Unidiff, our patch lists have a rolling context. + // https://github.com/google/diff-match-patch/wiki/Unidiff + // Update prepatch text & pos to reflect the application of the + // just completed patch. + prepatch_text = postpatch_text; + char_count1 = char_count2; + } + } + break; + } + + // Update the current character count. + if (aDiff.operation != Operation.INSERT) { + char_count1 += aDiff.text.length(); + } + if (aDiff.operation != Operation.DELETE) { + char_count2 += aDiff.text.length(); + } + } + // Pick up the leftover patch if not empty. + if (!patch.diffs.isEmpty()) { + patch_addContext(patch, prepatch_text); + patches.add(patch); + } + + return patches; + } + + /** + * Given an array of patches, return another array that is identical. + * @param patches Array of Patch objects. + * @return Array of Patch objects. + */ + public LinkedList patch_deepCopy(LinkedList patches) { + LinkedList patchesCopy = new LinkedList(); + for (Patch aPatch : patches) { + Patch patchCopy = new Patch(); + for (Diff aDiff : aPatch.diffs) { + Diff diffCopy = new Diff(aDiff.operation, aDiff.text); + patchCopy.diffs.add(diffCopy); + } + patchCopy.start1 = aPatch.start1; + patchCopy.start2 = aPatch.start2; + patchCopy.length1 = aPatch.length1; + patchCopy.length2 = aPatch.length2; + patchesCopy.add(patchCopy); + } + return patchesCopy; + } + + /** + * Merge a set of patches onto the text. Return a patched text, as well + * as an array of true/false values indicating which patches were applied. + * @param patches Array of Patch objects + * @param text Old text. + * @return Two element Object array, containing the new text and an array of + * boolean values. + */ + public Object[] patch_apply(LinkedList patches, String text) { + if (patches.isEmpty()) { + return new Object[] { + text, new boolean[0] + }; + } + + // Deep copy the patches so that no changes are made to originals. + patches = patch_deepCopy(patches); + + String nullPadding = patch_addPadding(patches); + text = nullPadding + text + nullPadding; + patch_splitMax(patches); + + int x = 0; + // delta keeps track of the offset between the expected and actual location + // of the previous patch. If there are patches expected at positions 10 and + // 20, but the first patch was found at 12, delta is 2 and the second patch + // has an effective expected position of 22. + int delta = 0; + boolean[] results = new boolean[patches.size()]; + for (Patch aPatch : patches) { + int expected_loc = aPatch.start2 + delta; + String text1 = diff_text1(aPatch.diffs); + int start_loc; + int end_loc = -1; + if (text1.length() > this.Match_MaxBits) { + // patch_splitMax will only provide an oversized pattern in the case of + // a monster delete. + start_loc = match_main( + text, + text1.substring(0, this.Match_MaxBits), expected_loc); + if (start_loc != -1) { + end_loc = match_main( + text, + text1.substring(text1.length() - this.Match_MaxBits), + expected_loc + text1.length() - this.Match_MaxBits); + if (end_loc == -1 || start_loc >= end_loc) { + // Can't find valid trailing context. Drop this patch. + start_loc = -1; + } + } + } else { + start_loc = match_main(text, text1, expected_loc); + } + if (start_loc == -1) { + // No match found. :( + results[x] = false; + // Subtract the delta for this failed patch from subsequent patches. + delta -= aPatch.length2 - aPatch.length1; + } else { + // Found a match. :) + results[x] = true; + delta = start_loc - expected_loc; + String text2; + if (end_loc == -1) { + text2 = text + .substring( + start_loc, + Math.min(start_loc + text1.length(), text.length())); + } else { + text2 = text + .substring( + start_loc, + Math.min(end_loc + this.Match_MaxBits, text.length())); + } + if (text1.equals(text2)) { + // Perfect match, just shove the replacement text in. + text = text.substring(0, start_loc) + diff_text2(aPatch.diffs) + + text.substring(start_loc + text1.length()); + } else { + // Imperfect match. Run a diff to get a framework of equivalent + // indices. + LinkedList diffs = diff_main(text1, text2, false); + if (text1.length() > this.Match_MaxBits + && diff_levenshtein(diffs) / (float) text1.length() > this.Patch_DeleteThreshold) { + // The end points match, but the content is unacceptably bad. + results[x] = false; + } else { + diff_cleanupSemanticLossless(diffs); + int index1 = 0; + for (Diff aDiff : aPatch.diffs) { + if (aDiff.operation != Operation.EQUAL) { + int index2 = diff_xIndex(diffs, index1); + if (aDiff.operation == Operation.INSERT) { + // Insertion + text = text.substring(0, start_loc + index2) + aDiff.text + + text.substring(start_loc + index2); + } else if (aDiff.operation == Operation.DELETE) { + // Deletion + text = text.substring(0, start_loc + index2) + + text + .substring( + start_loc + diff_xIndex( + diffs, + index1 + aDiff.text.length())); + } + } + if (aDiff.operation != Operation.DELETE) { + index1 += aDiff.text.length(); + } + } + } + } + } + x++; + } + // Strip the padding off. + text = text + .substring( + nullPadding.length(), text.length() + - nullPadding.length()); + return new Object[] { + text, results + }; + } + + /** + * Add some padding on text start and end so that edges can match something. + * Intended to be called only from within patch_apply. + * @param patches Array of Patch objects. + * @return The padding string added to each side. + */ + public String patch_addPadding(LinkedList patches) { + short paddingLength = this.Patch_Margin; + String nullPadding = ""; + for (short x = 1; x <= paddingLength; x++) { + nullPadding += String.valueOf((char) x); + } + + // Bump all the patches forward. + for (Patch aPatch : patches) { + aPatch.start1 += paddingLength; + aPatch.start2 += paddingLength; + } + + // Add some padding on start of first diff. + Patch patch = patches.getFirst(); + LinkedList diffs = patch.diffs; + if (diffs.isEmpty() || diffs.getFirst().operation != Operation.EQUAL) { + // Add nullPadding equality. + diffs.addFirst(new Diff(Operation.EQUAL, nullPadding)); + patch.start1 -= paddingLength; // Should be 0. + patch.start2 -= paddingLength; // Should be 0. + patch.length1 += paddingLength; + patch.length2 += paddingLength; + } else if (paddingLength > diffs.getFirst().text.length()) { + // Grow first equality. + Diff firstDiff = diffs.getFirst(); + int extraLength = paddingLength - firstDiff.text.length(); + firstDiff.text = nullPadding.substring(firstDiff.text.length()) + + firstDiff.text; + patch.start1 -= extraLength; + patch.start2 -= extraLength; + patch.length1 += extraLength; + patch.length2 += extraLength; + } + + // Add some padding on end of last diff. + patch = patches.getLast(); + diffs = patch.diffs; + if (diffs.isEmpty() || diffs.getLast().operation != Operation.EQUAL) { + // Add nullPadding equality. + diffs.addLast(new Diff(Operation.EQUAL, nullPadding)); + patch.length1 += paddingLength; + patch.length2 += paddingLength; + } else if (paddingLength > diffs.getLast().text.length()) { + // Grow last equality. + Diff lastDiff = diffs.getLast(); + int extraLength = paddingLength - lastDiff.text.length(); + lastDiff.text += nullPadding.substring(0, extraLength); + patch.length1 += extraLength; + patch.length2 += extraLength; + } + + return nullPadding; + } + + /** + * Look through the patches and break up any which are longer than the + * maximum limit of the match algorithm. + * Intended to be called only from within patch_apply. + * @param patches LinkedList of Patch objects. + */ + public void patch_splitMax(LinkedList patches) { + short patch_size = Match_MaxBits; + String precontext, postcontext; + Patch patch; + int start1, start2; + boolean empty; + Operation diff_type; + String diff_text; + ListIterator pointer = patches.listIterator(); + Patch bigpatch = pointer.hasNext() ? pointer.next() : null; + while (bigpatch != null) { + if (bigpatch.length1 <= Match_MaxBits) { + bigpatch = pointer.hasNext() ? pointer.next() : null; + continue; + } + // Remove the big old patch. + pointer.remove(); + start1 = bigpatch.start1; + start2 = bigpatch.start2; + precontext = ""; + while (!bigpatch.diffs.isEmpty()) { + // Create one of several smaller patches. + patch = new Patch(); + empty = true; + patch.start1 = start1 - precontext.length(); + patch.start2 = start2 - precontext.length(); + if (precontext.length() != 0) { + patch.length1 = patch.length2 = precontext.length(); + patch.diffs.add(new Diff(Operation.EQUAL, precontext)); + } + while (!bigpatch.diffs.isEmpty() + && patch.length1 < patch_size - Patch_Margin) { + diff_type = bigpatch.diffs.getFirst().operation; + diff_text = bigpatch.diffs.getFirst().text; + if (diff_type == Operation.INSERT) { + // Insertions are harmless. + patch.length2 += diff_text.length(); + start2 += diff_text.length(); + patch.diffs.addLast(bigpatch.diffs.removeFirst()); + empty = false; + } else if (diff_type == Operation.DELETE && patch.diffs.size() == 1 + && patch.diffs.getFirst().operation == Operation.EQUAL + && diff_text.length() > 2 * patch_size) { + // This is a large deletion. Let it pass in one chunk. + patch.length1 += diff_text.length(); + start1 += diff_text.length(); + empty = false; + patch.diffs.add(new Diff(diff_type, diff_text)); + bigpatch.diffs.removeFirst(); + } else { + // Deletion or equality. Only take as much as we can stomach. + diff_text = diff_text + .substring( + 0, Math + .min( + diff_text.length(), + patch_size - patch.length1 - Patch_Margin)); + patch.length1 += diff_text.length(); + start1 += diff_text.length(); + if (diff_type == Operation.EQUAL) { + patch.length2 += diff_text.length(); + start2 += diff_text.length(); + } else { + empty = false; + } + patch.diffs.add(new Diff(diff_type, diff_text)); + if (diff_text.equals(bigpatch.diffs.getFirst().text)) { + bigpatch.diffs.removeFirst(); + } else { + bigpatch.diffs.getFirst().text = bigpatch.diffs.getFirst().text + .substring(diff_text.length()); + } + } + } + // Compute the head context for the next patch. + precontext = diff_text2(patch.diffs); + precontext = precontext + .substring( + Math + .max( + 0, precontext.length() + - Patch_Margin)); + // Append the end context for this patch. + if (diff_text1(bigpatch.diffs).length() > Patch_Margin) { + postcontext = diff_text1(bigpatch.diffs).substring(0, Patch_Margin); + } else { + postcontext = diff_text1(bigpatch.diffs); + } + if (postcontext.length() != 0) { + patch.length1 += postcontext.length(); + patch.length2 += postcontext.length(); + if (!patch.diffs.isEmpty() + && patch.diffs.getLast().operation == Operation.EQUAL) { + patch.diffs.getLast().text += postcontext; + } else { + patch.diffs.add(new Diff(Operation.EQUAL, postcontext)); + } + } + if (!empty) { + pointer.add(patch); + } + } + bigpatch = pointer.hasNext() ? pointer.next() : null; + } + } + + /** + * Take a list of patches and return a textual representation. + * @param patches List of Patch objects. + * @return Text representation of patches. + */ + public String patch_toText(List patches) { + StringBuilder text = new StringBuilder(); + for (Patch aPatch : patches) { + text.append(aPatch); + } + return text.toString(); + } + + /** + * Parse a textual representation of patches and return a List of Patch + * objects. + * @param textline Text representation of patches. + * @return List of Patch objects. + * @throws IllegalArgumentException If invalid input. + */ + public List patch_fromText(String textline) + throws IllegalArgumentException { + List patches = new LinkedList(); + if (textline.length() == 0) { + return patches; + } + List textList = Arrays.asList(textline.split("\n")); + LinkedList text = new LinkedList(textList); + Patch patch; + Pattern patchHeader = Pattern.compile("^@@ -(\\d+),?(\\d*) \\+(\\d+),?(\\d*) @@$"); + Matcher m; + char sign; + String line; + while (!text.isEmpty()) { + m = patchHeader.matcher(text.getFirst()); + if (!m.matches()) { + throw new IllegalArgumentException( + "Invalid patch string: " + text.getFirst()); + } + patch = new Patch(); + patches.add(patch); + patch.start1 = Integer.parseInt(m.group(1)); + if (m.group(2).length() == 0) { + patch.start1--; + patch.length1 = 1; + } else if (m.group(2).equals("0")) { + patch.length1 = 0; + } else { + patch.start1--; + patch.length1 = Integer.parseInt(m.group(2)); + } + + patch.start2 = Integer.parseInt(m.group(3)); + if (m.group(4).length() == 0) { + patch.start2--; + patch.length2 = 1; + } else if (m.group(4).equals("0")) { + patch.length2 = 0; + } else { + patch.start2--; + patch.length2 = Integer.parseInt(m.group(4)); + } + text.removeFirst(); + + while (!text.isEmpty()) { + try { + sign = text.getFirst().charAt(0); + } catch (IndexOutOfBoundsException e) { + // Blank line? Whatever. + text.removeFirst(); + continue; + } + line = text.getFirst().substring(1); + line = line.replace("+", "%2B"); // decode would change all "+" to " " + try { + line = URLDecoder.decode(line, "UTF-8"); + } catch (UnsupportedEncodingException e) { + // Not likely on modern system. + throw new Error("This system does not support UTF-8.", e); + } catch (IllegalArgumentException e) { + // Malformed URI sequence. + throw new IllegalArgumentException( + "Illegal escape in patch_fromText: " + line, e); + } + if (sign == '-') { + // Deletion. + patch.diffs.add(new Diff(Operation.DELETE, line)); + } else if (sign == '+') { + // Insertion. + patch.diffs.add(new Diff(Operation.INSERT, line)); + } else if (sign == ' ') { + // Minor equality. + patch.diffs.add(new Diff(Operation.EQUAL, line)); + } else if (sign == '@') { + // Start of next patch. + break; + } else { + // WTF? + throw new IllegalArgumentException( + "Invalid patch mode '" + sign + "' in: " + line); + } + text.removeFirst(); + } + } + return patches; + } + + /** + * Class representing one diff operation. + */ + public static class Diff { + /** + * One of: INSERT, DELETE or EQUAL. + */ + public Operation operation; + /** + * The text associated with this diff operation. + */ + public String text; + + /** + * Constructor. Initializes the diff with the provided values. + * @param operation One of INSERT, DELETE or EQUAL. + * @param text The text being applied. + */ + public Diff(Operation operation, String text) { + // Construct a diff with the specified operation and text. + this.operation = operation; + this.text = text; + } + + /** + * Display a human-readable version of this Diff. + * @return text version. + */ + public String toString() { + String prettyText = this.text.replace('\n', '\u00b6'); + return "Diff(" + this.operation + ",\"" + prettyText + "\")"; + } + + /** + * Create a numeric hash value for a Diff. + * This function is not used by DMP. + * @return Hash value. + */ + @Override + public int hashCode() { + final int prime = 31; + int result = (operation == null) ? 0 : operation.hashCode(); + result += prime * ((text == null) ? 0 : text.hashCode()); + return result; + } + + /** + * Is this Diff equivalent to another Diff? + * @param obj Another Diff to compare against. + * @return true or false. + */ + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + Diff other = (Diff) obj; + if (operation != other.operation) { + return false; + } + if (text == null) { + if (other.text != null) { + return false; + } + } else if (!text.equals(other.text)) { + return false; + } + return true; + } + } + + /** + * Class representing one patch operation. + */ + public static class Patch { + public LinkedList diffs; + public int start1; + public int start2; + public int length1; + public int length2; + + /** + * Constructor. Initializes with an empty list of diffs. + */ + public Patch() { + this.diffs = new LinkedList(); + } + + /** + * Emulate GNU diff's format. + * Header: @@ -382,8 +481,9 @@ + * Indices are printed as 1-based, not 0-based. + * @return The GNU diff string. + */ + public String toString() { + String coords1, coords2; + if (this.length1 == 0) { + coords1 = this.start1 + ",0"; + } else if (this.length1 == 1) { + coords1 = Integer.toString(this.start1 + 1); + } else { + coords1 = (this.start1 + 1) + "," + this.length1; + } + if (this.length2 == 0) { + coords2 = this.start2 + ",0"; + } else if (this.length2 == 1) { + coords2 = Integer.toString(this.start2 + 1); + } else { + coords2 = (this.start2 + 1) + "," + this.length2; + } + StringBuilder text = new StringBuilder(); + text + .append("@@ -") + .append(coords1) + .append(" +") + .append(coords2) + .append(" @@\n"); + // Escape the body of the patch with %xx notation. + for (Diff aDiff : this.diffs) { + switch (aDiff.operation) { + case INSERT: + text.append('+'); + break; + case DELETE: + text.append('-'); + break; + case EQUAL: + text.append(' '); + break; + } + try { + text + .append(URLEncoder.encode(aDiff.text, "UTF-8").replace('+', ' ')) + .append("\n"); + } catch (UnsupportedEncodingException e) { + // Not likely on modern system. + throw new Error("This system does not support UTF-8.", e); + } + } + return unescapeForEncodeUriCompatability(text.toString()); + } + } + + /** + * Unescape selected chars for compatability with JavaScript's encodeURI. + * In speed critical applications this could be dropped since the + * receiving application will certainly decode these fine. + * Note that this function is case-sensitive. Thus "%3f" would not be + * unescaped. But this is ok because it is only called with the output of + * URLEncoder.encode which returns uppercase hex. + * + * Example: "%3F" -> "?", "%24" -> "$", etc. + * + * @param str The string to escape. + * @return The escaped string. + */ + private static String unescapeForEncodeUriCompatability(String str) { + return str + .replace("%21", "!") + .replace("%7E", "~") + .replace("%27", "'") + .replace("%28", "(") + .replace("%29", ")") + .replace("%3B", ";") + .replace("%2F", "/") + .replace("%3F", "?") + .replace("%3A", ":") + .replace("%40", "@") + .replace("%26", "&") + .replace("%3D", "=") + .replace("%2B", "+") + .replace("%24", "$") + .replace("%2C", ",") + .replace("%23", "#"); + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/DotAbbreviations.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/DotAbbreviations.java new file mode 100644 index 000000000..33183b0f6 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/DotAbbreviations.java @@ -0,0 +1,11 @@ + +package eu.dnetlib.pace.util; + +import com.google.common.base.Function; + +public class DotAbbreviations implements Function { + @Override + public String apply(String s) { + return s.length() == 1 ? s + "." : s; + } +}; diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/IncrementalConnectedComponents.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/IncrementalConnectedComponents.java new file mode 100644 index 000000000..ed35239a8 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/IncrementalConnectedComponents.java @@ -0,0 +1,50 @@ + +package eu.dnetlib.pace.util; + +import java.util.BitSet; + +public class IncrementalConnectedComponents { + final private int size; + + final private BitSet[] indexes; + + IncrementalConnectedComponents(int size) { + this.size = size; + this.indexes = new BitSet[size]; + } + + public void connect(int i, int j) { + if (indexes[i] == null) { + if (indexes[j] == null) { + indexes[i] = new BitSet(size); + } else { + indexes[i] = indexes[j]; + } + } else { + if (indexes[j] != null && indexes[i] != indexes[j]) { + // merge adjacency lists for i and j + indexes[i].or(indexes[j]); + } + } + + indexes[i].set(i); + indexes[i].set(j); + indexes[j] = indexes[i]; + } + + public int nextUnconnected(int i, int j) { + if (indexes[i] == null) { + return j; + } + int result = indexes[i].nextClearBit(j); + + return (result >= size) ? -1 : result; + } + + public BitSet getConnections(int i) { + if (indexes[i] == null) { + return null; + } + return indexes[i]; + } +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/MapDocumentUtil.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/MapDocumentUtil.java new file mode 100644 index 000000000..7dc340663 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/MapDocumentUtil.java @@ -0,0 +1,152 @@ + +package eu.dnetlib.pace.util; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Predicate; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.jayway.jsonpath.DocumentContext; +import com.jayway.jsonpath.JsonPath; +import com.jayway.jsonpath.spi.cache.Cache; +import com.jayway.jsonpath.spi.cache.CacheProvider; + +import eu.dnetlib.pace.config.Type; +import net.minidev.json.JSONArray; + +public class MapDocumentUtil { + + public static final String URL_REGEX = "^(http|https|ftp)\\://.*"; + public static Predicate urlFilter = s -> s.trim().matches(URL_REGEX); + + static { + CacheProvider.setCache(new Cache() { + private final ConcurrentHashMap jsonPathCache = new ConcurrentHashMap(); + + @Override + public JsonPath get(String key) { + return jsonPathCache.get(key); + } + + @Override + public void put(String key, JsonPath value) { + jsonPathCache.put(key, value); + } + }); + } + + public static String getJPathString(final String jsonPath, final String json) { + try { + Object o = JsonPath.read(json, jsonPath); + if (o instanceof String) + return (String) o; + if (o instanceof JSONArray && ((JSONArray) o).size() > 0) + return (String) ((JSONArray) o).get(0); + return ""; + } catch (Exception e) { + return ""; + } + } + + public static double[] getJPathArray(final String jsonPath, final String json) { + try { + Object o = JsonPath.read(json, jsonPath); + if (o instanceof double[]) + return (double[]) o; + if (o instanceof JSONArray) { + Object[] objects = ((JSONArray) o).toArray(); + double[] array = new double[objects.length]; + for (int i = 0; i < objects.length; i++) { + if (objects[i] instanceof BigDecimal) + array[i] = ((BigDecimal) objects[i]).doubleValue(); + else + array[i] = (double) objects[i]; + } + return array; + } + return new double[0]; + } catch (Exception e) { + e.printStackTrace(); + return new double[0]; + } + } + + public static String truncateValue(String value, int length) { + if (value == null) + return ""; + + if (length == -1 || length > value.length()) + return value; + + return value.substring(0, length); + } + + public static List truncateList(List list, int size) { + if (size == -1 || size > list.size()) + return list; + + return list.subList(0, size); + } + + public static String getJPathString(final String jsonPath, final DocumentContext json) { + try { + Object o = json.read(jsonPath); + if (o instanceof String) + return (String) o; + if (o instanceof Number) + return (String) o.toString(); + if (o instanceof JSONArray && ((JSONArray) o).size() > 0) + return (String) ((JSONArray) o).get(0); + return ""; + } catch (Exception e) { + return ""; + } + } + + public static List getJPathList(String path, DocumentContext json, Type type) { + // if (type == Type.List) + // return JsonPath.using(Configuration.defaultConfiguration().addOptions(Option.ALWAYS_RETURN_LIST, + // Option.SUPPRESS_EXCEPTIONS)).parse(json).read(path); + Object jresult; + List result = new ArrayList<>(); + try { + jresult = json.read(path); + } catch (Throwable e) { + return result; + } + + if (type == Type.List && jresult instanceof List) { + ((List) jresult).forEach(x -> result.add(x.toString())); + return result; + } + + if (jresult instanceof JSONArray) { + ((JSONArray) jresult).forEach(it -> { + try { + result.add(new ObjectMapper().writeValueAsString(it)); + } catch (JsonProcessingException e) { + + } + }); + return result; + } + + if (jresult instanceof LinkedHashMap) { + try { + result.add(new ObjectMapper().writeValueAsString(jresult)); + } catch (JsonProcessingException e) { + + } + return result; + } + if (jresult instanceof String) { + result.add((String) jresult); + } + return result; + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/PaceException.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/PaceException.java new file mode 100644 index 000000000..077139482 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/PaceException.java @@ -0,0 +1,14 @@ + +package eu.dnetlib.pace.util; + +public class PaceException extends RuntimeException { + + public PaceException(String s, Throwable e) { + super(s, e); + } + + public PaceException(String s) { + super(s); + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/PaceResolver.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/PaceResolver.java new file mode 100644 index 000000000..746892f0c --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/PaceResolver.java @@ -0,0 +1,61 @@ + +package eu.dnetlib.pace.util; + +import java.io.Serializable; +import java.lang.reflect.InvocationTargetException; +import java.util.Map; +import java.util.stream.Collectors; + +import org.reflections.Reflections; + +import eu.dnetlib.pace.clustering.ClusteringClass; +import eu.dnetlib.pace.clustering.ClusteringFunction; +import eu.dnetlib.pace.tree.support.Comparator; +import eu.dnetlib.pace.tree.support.ComparatorClass; + +public class PaceResolver implements Serializable { + + public static final Reflections CLUSTERING_RESOLVER = new Reflections("eu.dnetlib.pace.clustering"); + public static final Reflections COMPARATOR_RESOLVER = new Reflections("eu.dnetlib.pace.tree"); + + private final Map> clusteringFunctions; + private final Map> comparators; + + public PaceResolver() { + + this.clusteringFunctions = CLUSTERING_RESOLVER + .getTypesAnnotatedWith(ClusteringClass.class) + .stream() + .filter(ClusteringFunction.class::isAssignableFrom) + .collect( + Collectors + .toMap( + cl -> cl.getAnnotation(ClusteringClass.class).value(), cl -> (Class) cl)); + + this.comparators = COMPARATOR_RESOLVER + .getTypesAnnotatedWith(ComparatorClass.class) + .stream() + .filter(Comparator.class::isAssignableFrom) + .collect( + Collectors.toMap(cl -> cl.getAnnotation(ComparatorClass.class).value(), cl -> (Class) cl)); + } + + public ClusteringFunction getClusteringFunction(String name, Map params) throws PaceException { + try { + return clusteringFunctions.get(name).getDeclaredConstructor(Map.class).newInstance(params); + } catch (InstantiationException | IllegalAccessException | InvocationTargetException + | NoSuchMethodException e) { + throw new PaceException(name + " not found ", e); + } + } + + public Comparator getComparator(String name, Map params) throws PaceException { + try { + return comparators.get(name).getDeclaredConstructor(Map.class).newInstance(params); + } catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException + | NullPointerException e) { + throw new PaceException(name + " not found ", e); + } + } + +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/Reporter.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/Reporter.java new file mode 100644 index 000000000..fd6761aa1 --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/Reporter.java @@ -0,0 +1,11 @@ + +package eu.dnetlib.pace.util; + +import java.io.Serializable; + +public interface Reporter extends Serializable { + + void incrementCounter(String counterGroup, String counterName, long delta); + + void emit(String type, String from, String to); +} diff --git a/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/SparkReporter.java b/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/SparkReporter.java new file mode 100644 index 000000000..437fe783b --- /dev/null +++ b/dhp-pace-core/src/main/java/eu/dnetlib/pace/util/SparkReporter.java @@ -0,0 +1,85 @@ + +package eu.dnetlib.pace.util; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.spark.SparkContext; +import org.apache.spark.util.LongAccumulator; + +import eu.dnetlib.pace.config.DedupConfig; +import scala.Serializable; +import scala.Tuple2; + +public class SparkReporter implements Serializable, Reporter { + + private final List> relations = new ArrayList<>(); + + private final Map accumulators; + + public SparkReporter(Map accumulators) { + this.accumulators = accumulators; + } + + public void incrementCounter( + String counterGroup, + String counterName, + long delta, + Map accumulators) { + + final String accumulatorName = String.format("%s::%s", counterGroup, counterName); + if (accumulators.containsKey(accumulatorName)) { + accumulators.get(accumulatorName).add(delta); + } + } + + @Override + public void incrementCounter(String counterGroup, String counterName, long delta) { + + incrementCounter(counterGroup, counterName, delta, accumulators); + } + + @Override + public void emit(String type, String from, String to) { + relations.add(new Tuple2<>(from, to)); + } + + public List> getRelations() { + return relations; + } + + public static Map constructAccumulator( + final DedupConfig dedupConf, final SparkContext context) { + + Map accumulators = new HashMap<>(); + + String acc1 = String.format("%s::%s", dedupConf.getWf().getEntityType(), "records per hash key = 1"); + accumulators.put(acc1, context.longAccumulator(acc1)); + String acc2 = String + .format( + "%s::%s", + dedupConf.getWf().getEntityType(), "missing " + dedupConf.getWf().getOrderField()); + accumulators.put(acc2, context.longAccumulator(acc2)); + String acc3 = String + .format( + "%s::%s", + dedupConf.getWf().getEntityType(), + String + .format( + "Skipped records for count(%s) >= %s", + dedupConf.getWf().getOrderField(), dedupConf.getWf().getGroupMaxSize())); + accumulators.put(acc3, context.longAccumulator(acc3)); + String acc4 = String.format("%s::%s", dedupConf.getWf().getEntityType(), "skip list"); + accumulators.put(acc4, context.longAccumulator(acc4)); + String acc5 = String.format("%s::%s", dedupConf.getWf().getEntityType(), "dedupSimilarity (x2)"); + accumulators.put(acc5, context.longAccumulator(acc5)); + String acc6 = String + .format( + "%s::%s", dedupConf.getWf().getEntityType(), "d < " + dedupConf.getWf().getThreshold()); + accumulators.put(acc6, context.longAccumulator(acc6)); + + return accumulators; + } +} diff --git a/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/city_map.csv b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/city_map.csv new file mode 100644 index 000000000..360221ab7 --- /dev/null +++ b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/city_map.csv @@ -0,0 +1,8595 @@ +city::291074;Ras al-Khaimah;Julfa;Khaimah;RKT;Ra's al Khaymah;Ra's al-Chaima;Ras al Khaimah;Ras al-Khaimah;Ras el Khaimah;Ras el Khaïmah;Ras el-Kheima;Ras-ehl'-Khajma;Ra’s al Khaymah;Ra’s al-Chaima;ras alkhymt;Рас-эль-Хайма;رأس الخيمة; +city::292223;Dubai;DXB;Dabei;Dibai;Dibay;Doubayi;Dubae;Dubai;Dubai emiraat;Dubaija;Dubaj;Dubajo;Dubajus;Dubay;Dubayy;Dubaï;Dubái;Dúbæ;Ehmirat Dubaj;Fort Dabei;Ntoumpai;dby;dbyy;di bai;dobai;du bai;duba'i;dubai;dubay;dubi;dwbyy;tupai;Ντουμπάι;Дубаи;Дубай;Эмірат Дубай;Դուբայի Էմիրություն;דובאי;דוביי;دبئی;دبى;دبي;دبی;دوبەی;دۇبائى;दुबई;দুবাই;துபை;దుబాయ్;ದುಬೈ;ദുബായ്;ดูไบ;დუბაი;ドバイ;杜拜;迪拜;두바이; +city::292672;Sharjah;Al Sharjah;Ash 'Mariqah;Ash Shariqa;Ash Shariqah;Ash Shāriqa;Ash Shāriqah;Ash ’Mariqah;Ash-Shariqah emiraat;Ash-Shāriqah emiraat;Charjah;Ch·ardj·a;Gorad Shardzha;SHJ;Sardza;Sardzsa;Sarika;Sarja;Sarjo;Sarza;Schardscha;Shardza;Shardzha;Shardzha kuorat;Sharga;Sharijah;Shariqah;Sharja;Sharjah;Shārijah;Shāriqah;Shārja;Szardza;Szardża;Xarja;Xarjah;alsharqt;amart alsharqt;carja;charc ah;saraja;sarajaha;sarja;sharja;sharjh;sharuja;syaleuja;sʼrgh;xia er jia;Ŝarĵo;Şarika;Şarja;Šardža;Šardžá;Горад Шарджа;Шарджа;Шарджа куорат;Шарџа;Шарҗә;Շարժա;שארגה;إمارة الشارقة;الشارقة;شارجه;شارجہ;शारजा;शारजाह;ਸ਼ਾਰਜਾ;சார்ஜா;షార్జా;ಶಾರ್ಜ;ഷാർജ;ชาร์จาห์;შარჯა;シャールジャ;夏尔迦;샤르자; +city::292878;Al Fujayrah;Al Fujayrah;Al-Fudjayra;Al-Fujayrah' emiraat;FJR;Fudschaira;Fudzhejra;Fujaira;Fujairah;Fujajro;Fujayrah;Fuĵajro;alfjyrt;fjyrt;fu ji la;fujaira;Фуджейра;الفجيرة;فجيرة;フジャイラ;富吉拉; +city::292913;Al Ain;AAN;Ainas;Al Ain;Al Ajn;Al Ayn;Al `Ayn;Al Ɛayn;Al ‘Ayn;Al-Ain;Al-Ajn;Al-Ayin;Al-Ayn;Al-Aïn;Ehl'-Ajn;El Ain;El-Ajn;ai yin;al ain;al-ain;al-aini;alʿyn;ela ena;Ел Аин;Эль-Айн;Ալ-Ային;אל-עין;العين;العین;एल एन;அல் ஐன்;അൽ ഐൻ;ალ-აინი;アル・アイン;艾因;알아인; +city::292932;Ajman;Ajman;Al Ajman;QAJ;Ujman;ʿjman;عجمان; +city::292968;Abu Dhabi;A-pu-that-pi;AEbu Saby;AUH;Aboe Dhabi;Abou Dabi;Abu Dabi;Abu Dabis;Abu Daby;Abu Daibi;Abu Dhabi;Abu Dhabi emiraat;Abu Zabi;Abu Zaby;Abu Zabye;Abu Zabyo;Abu Ḍabi;Abu Ḑabi;Abu-Dabi;Abu-Dabi khot;Abu-Dabio;Abu-Dzabi;Abú Dabí;Abú Daibí;Abú Zabí;Abû Daby;Abū Dabī;Abū Z̧aby;Abū Z̧abye;Abū Z̧abyo;Abū Z̧abī;Ampou Ntampi;Ebu Dabi;Ebu Dhabi;Gorad Abu-Dabi;a bu zha bi;abu dhabi;abu-dabi;abudabi;abudhabi;abw zby;abwzby;aputapi;xa bud abi;Â-pu-tha̍t-pí;Äbu Saby;Əbu-Dabi;Άμπου Ντάμπι;Αμπου Νταμπι;Αμπού Ντάμπι;Абу Даби;Абу-Даби;Абу-Даби хот;Абу-Дабі;Горад Абу-Дабі;Әбу-Даби;Աբու Դաբի;אבו דאבי;أبوظبي;ئەبووزەبی;ابو ظبى;ابوظبی;ابوظہبی;अबु धाबी;अबू धाबी;আবুধাবি;ਅਬੂ ਧਾਬੀ;ଆବୁଧାବି;அபுதாபி;ಅಬು ಧಾಬಿ;അബുദാബി;අබුඩාබි;อาบูดาบี;ཨ་པོའུ་དྷ་པེ།;အဘူဒါဘီမြို့;აბუ-დაბი;አቡ ዳቢ;アブダビ;阿布扎比;아부다비; +city::1123004;Taloqan;Khanabad;TQN;Taikhan;Taleqan;Talikan;Talikhan;Taliqan;Talkan;Talokan;Taloqan;Talugan;Talukan;Talukanas;Taluqan;Tologan;Tâloqân;Tāleqān;Tāloqān;Tāluqān;Tālīqān;ta lu kan;talokam;talokuvan;taloqana;talqan;Таликан;Талукан;تالقان;तालोक़ान;तालोकां;தலோகுவான்;თალიკანი;塔卢坎; +city::1125444;Shibirghan;Markaz-e Wilayat-e Shibirghan;Markaz-e Wilāyat-e Shibirghan;Seberghan;Sebeṟghān;Shahr-e Sheberghan;Shahr-e Sheberghān;Shayurgan;Shebergan;Sheberghan;Sheberghān;Sheberkhan;Shefrogan;Shibarghan;Shibarghān;Shibergan;Shibirghan;Shibirghān;mrkz wlayt shbrghan;shbrghan;shbrghn;Шеберган;شبرغان;شبرغن;مرکز ولايت شبرغان; +city::1127110;Sar-e Pul;Sar-e Pol;Sar-e Pul;Sar-i-Pul;Sari-Pul';sr pl;Сари-Пуль;سر پل; +city::1130490;Pul-e Khumri;Pol-e Khomri;Pol-e Khomrī;Pul-e Khumri;Pul-e Khumrī;Pul-i-Khomri;Pul-i-Khumri;Pule Khumri;Pule Khumṟi;Puli-Khumri;pl khmry;Пули-Хумри;پل خمری; +city::1133453;Maymana;Daerah Maymana;MMZ;Maimana;Maimanah;Maimāna;Majmana;Maymana;Maymanah;Maïmana;Maīmanah;Meimana;Mejmene;Meymaneh;Meymene;Mimana;Quan Maymana;Quận Maymana;mai ma na;meyamana;mymnh;Меймене;ضلع میمنہ;ميمنه ولسوالۍ;میمنه;میمنہ;मेयमना;迈马纳; +city::1133616;Mazar-e Sharif;MZR;Masar-e Scharif;Mazar-e Sarif;Mazar-e Sharif;Mazar-e Šarif;Mazar-e-Sharif;Mazar-i Szarif;Mazar-i-Sharif;Mazare Srif;Mazari Sharif;Mazari-Sharif;Mazār-e Sharīf;Mazār-e Šarīf;Mazār-i-Sharīf;Mazāre S̄rīf;majaleu-isyalipeu;mazarisharifu;mzar shryf;Мазари-Шариф;مزار شريف;مزار شریف;マザーリシャリーフ;마자르이샤리프; +city::1135689;Kunduz;Kondoz;Konduz;Kondôz;Kondūz;Kundus;Kunduz;Kunduz khot;Kunduzas;Kundúz;Kundūz;Kundūzas;Qonduz;Qondūz;Qunduz;Qundūz;Qunḏūz;Shahr-e Qondoz;UND;kantacu;kndwz;kndz;kuduza;kun dou shi;kundo~uzu;kunduja;kundujeu;kundus;kunduza;qndwz;qndz;Кундуз;Кундуз хот;قندز;قندوز;كندز;کندوز;कुंदुज़;কুন্দুজ;ਕੁੰਦੂਜ਼;கண்டசு;കുന്ദൂസ്;ყუნდუზი;クンドゥーズ;昆都士;쿤두즈; +city::1136469;Khost;KHT;Khost;Khowst;Khōst;Matun;Matūn;khwst;mtwn;Хост;خوست;متون; +city::1136575;Khulm;Bazar-e Khulm;Bāzār-e Khulm;Kholm;Khulm;Tashkurgan;Tashkurghan;Tashqorghan;Tashqurghan;Tāshkurghān;Tāshqorghān;Tāshqurghān;bazar khlm;khlm;tashqrghan;Ташкурган;بازار خلم;تاشقرغان;خلم; +city::1137168;Khanabad;Khanabad;Khānābād;khan abad;Ханабад;خان آباد; +city::1138336;Kandahar;Candahar;Gorad Kandagar;KDH;Kandagar;Kandahar;Kandaharo;Kandahār;Kandehar;Kandhar;Qandahar;Qandahār;Qanḏahāṟ;kan da ha;kandaharu;kndhar;qndhar;qndhʼr;Горад Кандагар;Кандагар;קנדהאר;قندهار;كندهار;カンダハール;坎大哈; +city::1138958;Kabul;Cabool;Caboul;Cabul;Cabul - kabl;Cabul - کابل;Cabura;Cabúl;Caubul;Gorad Kabul;KBL;Kabil;Kaboel;Kabol;Kaboul;Kabul;Kabula;Kabulas;Kabuli;Kabulo;Kabura;Kabúl;Kabûl;Kampoul;Kobul;Kubha;Kábul;Kâbil;Kābol;ka bu er;kabl;kabul;kabula;kabuli;kaburu;kabwl;kapul;ke bu er;khabul;Καμπούλ;Горад Кабул;Кабул;Кобул;Քաբուլ;קאבול;كابل;كابۇل;کابل;کابول;काबुल;কাবুল;ਕਾਬੁਲ;କାବୁଲ;காபூல்;ಕಾಬುಲ್;കാബൂൾ;කාබුල්;คาบูล;ཁ་པལ།;ཁ་པུལ།;ქაბული;ካቡል;ទីក្រុងកាបូល;カブール;カーブル;喀布尔;喀布爾;카불; +city::1139715;Jalalabad;Djelalabad;Dschalalabad;Dzalalabad;Dzhelalabad;Dżalalabad;JAA;Jalakot;Jalal-Kut;Jalalabad;Jalalkoat;Jalalkot;Jalālkot;Jalālābād;Jelalabad;Tarun City;jalalabada;jlal abad;Джелалабад;جلال آباد;جلال‌آباد;জালালাবাদ; +city::1140026;Herat;Gerat;Gorad Gerat;HEA;Herat;Herāt;Hérat;Kherat;Shahr-e Herat;Shahr-e Herāt;he la te;herato;hrat;Герат;Горад Герат;Херат;هراة;هرات;ヘラート;赫拉特; +city::1141269;Ghazni;GZI;Gazni;Ghazni;Ghaznī;Shahr-e Ghazni;Shahr-e Ghaznī;gazni;gazuni;ghznt;ghzny;ghznyn;Газни;غزنة;غزنی;غزنین;ガズニー; +city::1141857;Gardez;GRG;Gardeyz;Gardez;Gardiz;Gardêz;Gardēz;Gardīz;Gaṟḏēz;grdyz;Гардез;گرديز; +city::1145352;Charikar;Caharikar;Carikar;Carikaras;Chaharikar;Chahārīkār;Chairkar;Charekar;Charikar;Chāirkār;Chārīkār;Czarikar;Cāṟikāṟ;Tscharikar;carikar;carikara;charikari;charykar;qia li ka er;Çarikar;Ĉarikar;Čahārikār;Čarikaras;Чарикар;چاريكار;چاریکار;चारीकार;চরিকর;சாரிகார்;ჩარიქარი;恰里卡尔; +city::1147242;Bamyan;BIN;Bamian;Bamiyan;Bamyan;Bāmyān;Bāmīān;Kala Sarkari;Qal`a Sarkarit;Qala Sarkari;Qala Sarkāri;Qal‘a Sarkārit;bamyan;باميان; +city::1147290;Balkh;Bactra;Bactresh;Bakhtar;Balch;Balchas;Balh;Balhika;Balho;Balj;Balkh;Balx;Balĥo;Bamik;Bazirabad;Belh;Belx;Bkahdi;Bākhtar;Daerah Balkh;Quan Balkh;Quận Balkh;Vazirabad;ba er he;balheu;barufu;blk;blkh;Μπαλχ;Балх;Вазирабад;Բալխ;בלך;بلخ;বাল্‌খ;ബൽഖ്;バルフ;巴尔赫;발흐; +city::1147540;Baghlan;Baghlan;Baghlan - bghlan;Baghlan - بغلان;Baghlan-e Jadid;Baghlin;Baghlān;Baghlān-e Jadīd;Baglan;Bagolaggo;Sana `Ati;Sana`ati;bghlan;bghlan jdyd;Şanā ‘Ati;Şanā‘atī;Баглан;بغلان;بغلان جديد;صناعتی; +city::1429434;Bazarak;Bazarak;Bāzārak;bazark;Базарак;بازارك;بازارک; +city::782756;Korce;Corce;Corcë;Coritsa;Coritza;Coriza;Corizza;Corriza;Ghiortsa Corcia;Goerice;Gorica;Goritsa;Görice;Korca;Korce;Korcha;Korche;Korcza;Korica;Korice;Koritsa;Koritza;Korrca;Korrce;Korrça;Korrçë;Korytsa;Korça;Korçë;Korča;Korčė;Körice;ke er cha;koleucheo;korucha;kwrchh;qwrzh;Κορυτσά;Горица;Корча;Կորչա;קורצה;کورچه;کورچہ;コルチャ;科尔察;코르처; +city::783263;Elbasan;Ehl'basan;Elbasan;Elbasani;Elbassan;Эльбасан; +city::3183719;Vlore;Au'lon;Au’lon;Avlon;Avlona;Avlonas;Avlonya;Vallona;Valona;Vl'ora;Vliore;Vliorė;Vljora;Vlona;Vlone;Vlonë;Vlora;Vlore;Vlorë;Vlyora;Vļora;Wlora;beulloleo;fa luo la;flwrh;vurora;wlo rex;wlwrh;Αυλώνας;Валона;Вльора;Влёра;Վլորա;ולורה;فلوره;ولوره;ولورہ;วโลเรอ;ヴロラ;发罗拉;블로러; +city::3183875;Tirana;Gorad Tyrana;TIA;Terana;Theranda;Tiorana;Tiorána;Tiran;Tiran khot;Tiran-a;Tirana;Tiranae;Tirane;Tirano;Tiranë;Tirāna;Tyranna;Tírana;Tîrana;Tėrana;de la na;tilana;tirana;tyrana;tyrnh;Τίρανα;Горад Тырана;Тиран хот;Тиранæ;Тирана;Тиране;Տիրանա;טיראנא;טירנה;تىرانا;تيرانا;تیرانا;तिराना;তিরানা;ਤਿਰਾਨਾ;ଟିରାନା;டிரானா;ടിറാന;ติรานา;ཐིས་རན།;ტირანა;ቲራና;ティラナ;地拉那;티라나; +city::3184081;Shkoder;Iskodra;Scutari;Shkoder;Shkodra;Shkodër;Skadar;Skodra;Szkodra;sqwdr;İşkodra;Škodra;Скадар;Шкодер;Шкодра;שקודר; +city::3185672;Fier;Fearica;Fier;Fieri;Fieris;Fijer;Fjer;Fjeri;a pha'ira;fei xia er;fieru;fyr;pieleu;Фиер;Фиери;Фієрі;Фјер;فیر;अ फाइर;フィエル;非夏爾;피에르; +city::3185728;Durres;Drac;Drach;Drač;Duraso;Durazo;Durazzo;Durazzu;Dures;Duresi;Duresis;Durrazo;Durres;Durresa;Durresi;Durrsi;Durrës;Durrësi;Durts;Durus;Durz;Durësi;Dyrrachio;Dyrrachium;Dyrrakhion;Dyrrhachium;Epidamnos;Gorad Durehs;dou la si;do~urasu;draj;dras;duleoseu;duresi;durres;dwrs;Δυρράχιο;Горад Дурэс;Драч;Дуррес;Дуръс;דורס;دراج;دراس;ดูร์เรส;დურესი;ドゥラス;都拉斯;두러스; +city::616052;Yerevan;Ayrivan;Djerevan;EVN;Eireavan;Eireaván;Ereban;Ereun;Erevan;Erevan osh;Erevana;Erevano;Erevanum;Erevàn;Ereván;Erevāna;Erewan;Erivan;Eriwan;Erywan;Erywań;Gierevan;Gorad Erehvan;Ierevan;Iereván;Iravan;Jerevan;Jerevanas;Jerevani;Jereván;Jerewan;Jerjewan;Revan;Yerevan;Yervandavan;Yerêvan;Yiriwan;Yèrèvan;Yérévan;ayrwan;ereban;erevani;iyerebhana;shhr ayrwan;ye li wen;yeleban;yeravana pranta;yere wan;yerevan;yerevana;yerevhana;yryfan;yrywan;Èrevan;Êrîvan;İrəvan;Γιερεβάν;Ερεβάν;Єреван;Јереван;Горад Ерэван;Ереван;Ереван ош;Երեվան;Երևան;יערעוואן;ירוואן;ایروان;شهر ایروان;يريفان;يېرېۋان;یریوان;یەریڤان;येरवान प्रान्त;येरेवान;येरेव्हान;ইয়েরেভান;யெரெவான்;เยเรวาน;ཡེ་རེ་ཝན།;ერევანი;ዬሬቫን;エレバン;葉里溫;예레반; +city::616530;Vanadzor;Böyük Qarakilsə;Gharak'ilisa;Gharak’ilisa;Gorad Vanadzor;Karakhs;Karakilis;Karaklis;Kirovakan;Kirowakan;Korovakan;Mets Karakilisa;Vanadzor;Vanadzoras;Vanajor;Wanadsor;Wanadzor;banajoleu;vanadzori;vu~anazoru;wa na zuo er;wanadzwr;Ванадзор;Горад Ванадзор;Кировакан;Վանաձոր;وانادزور;ვანაძორი;ヴァナゾル;瓦纳佐尔;바나조르; +city::616635;Gyumri;Alek'pol;Alek'sandrapol;Alek'sandrobol;Aleksandropol';Aleksandropol’;Alek’pol;Alek’sandrapol;Alek’sandrobol;Alexandropol';Alexandropol’;Ghiumri;Gimri;Giumri;Gjoemri;Gjumri;Gorad Gjumry;Guemrue;Gumri;Gumru;Gumry;Gyumri;Gümrü;Kumayri;Kumri;Kyumayri;Kyumri;Kümri;LWN;Leninakan;ghywmry;giumri;gyumeuli;gyumuri;gywmry;jiu mu li;Горад Гюмры;Гюмри;Гјумри;Ґюмрі;Գյումրի;غيومري;گیومری;გიუმრი;ギュムリ;久姆里;규므리; +city::2236568;Uige;Carmona;UGO;Uige;Uije;Uizhe;Uíge;Vila Marchel Carmona;Уиже; +city::2236967;Soio;SZA;Saint Antonio do Zaire;San Antonio;Santo Antoni;Santo Antonio do Zaire;Santo António do Zaire;Santo-Antonio;Santo-António;Sao Antonio;Sazaire;Soio;Soju;Soyo;São Antônio;Сойу; +city::2239076;N'dalatando;Dalatando;N'dalatando;NDF;Ndalatanda;N’dalatando;Salazar;Vila Salazar;Villa Salazar; +city::2239862;Malanje;MEG;Malandje;Malange;Malanje;Malanzhe;Маланже; +city::2240449;Luanda;Gorad Luanda;LAD;Loanda;Louanda;Louanta;Luand;Luanda;Luandae;Luando;Lwanda;Lúanda;Saint Paul de Loanda;Sao Paolo de Loanda;Sao Paulo da Assuncao de Luanda;Sao Paulo de Loanda;Sao Paulo de Luanda;St Paul de Loanda;São Paolo de Loanda;São Paulo da Assunção de Luanda;São Paulo de Loanda;São Paulo de Luanda;lu'anda;luanda;luo an da;luvanta;luxanda;luyanda;lwanda;ruanda;Λουάντα;Горад Луанда;Луандæ;Луанда;Լուանդա;לואנדה;לואנדע;لوآندا;لواندا;لونڈا;लुआंडा;लुआण्डा;লুয়ান্ডা;ਲੁਆਂਦਾ;லுவாண்டா;ลูอันดา;ལའུན་ཌ།;ლუანდა;ሏንዳ;ルアンダ;罗安达;루안다; +city::2243271;Cabinda;CAB;Cabinda;Kabinda;Кабинда; +city::3347019;Namibe;MSZ;Mocamedes;Mossamedes;Moçâmedes;Namibe;Namibė;na mi bei;namibe;namibeu;namybh angwla;Намибе;Намібе;نامیبه، آنگولا;نامیبے;ナミベ;納米貝;나미브; +city::3347762;Lubango;Lubangas;Lubango;SDD;Sa da Bandeira;Sá da Bandeira;lu ban ge;lubang-gu;lwbanghw;lwbngw angwla;rubango;Лубанго;لوبانغو;لوبنگو، آنگولا;ルバンゴ;盧班戈;루방구; +city::3347939;Lobito;LLT;Lobitas;Lobito;Lobitu;Lubitu;lbytw angwla;lobitu;luo bi tuo;robito;Лобито;Лобиту;Лобіту;لبیتو، آنگولا;ロビト;洛比托;로비투; +city::3348078;Cuito;Bie;Bihe;Bihé;Bié;Cuito;Kuito;SVP;Silva Porto;Vila Salva Porto;Куито; +city::3348313;Huambo;Huambas;Huambo;Huamdo;Khuambo;NOV;Nova Lisboa;Uambo;hu'ambo;hwambw angwla;uambu;uanbo;wambu;wan bo;Вилояти Ҳвамбо;Уамбо;Хуамбо;הואמבו;هوامبو، آنگولا;ہوامبو;ਹੁਆਂਬੋ;วัมบู;ウアンボ;万博;우암부; +city::3351663;Benguela;BUG;Bengela;Benguela;Benguella;Sao Felipe de Benguela;São Félipe de Benguela;ben ji la;Бенгела;本吉拉; +city::3427213;Zarate;General J.F. Uriburu;General Jose F. Uriburu;General José F. Uriburu;General Uriburu;Sarate;Saratė;Zarate;Zárate;sa la te;srath;zaraty bwyns ayrs;Зарате;زاراتي، بوينس آيرس;سراته;სარატე;萨拉特; +city::3427833;Tandil;TDL;Tandil;Tandil';Tandilis;tan di er;tandil;tandiru;tandyl;tndyl;Тандил;Тандиль;טנדיל;تانديل;تاندیل;ტანდილი;タンディル;坦迪爾;탄딜; +city::3429577;Resistencia;Ciudad de Resistencia;RES;Resistancia;Resistencia;Resistenseje;Resistensia;Resistensija;Resistensėjė;Resistentia;Resistência;lei xi si teng xi ya;lesiseutensia;re si s ten seiy;reshisutenshia;rsystnsyh;rysystyna;rysystynsya;rzystnsya;rzystnsya chakw;Ресистенсия;Ресистенсија;Ресістенсія;Ռեսիստենսիա;רסיסטנסיה;رزیستنسیا;رزیستنسیا، چاکو;ريسيستينسيا;ریسیستینا;เรซิสเตนเซีย;რესისტენსია;レシステンシア;雷西斯滕西亚;레시스텐시아; +city::3429594;Reconquista;RCQ;Reconquista;Rekonkista;Реконкиста; +city::3429652;Quilmes;Kil'mes;Kilmes;Kilmesas;Quilmes;ji er mei si;kilmeseu;kirumesu;kwylms;kylms;qylms;Килмес;Кильмес;Кільмес;Կիլմես;קילמס;كويلمس;کیلمس;კილმესი;キルメス;基尔梅斯;킬메스; +city::3429790;Puerto Eldorado;Eldorado;Puerto Eldorado; +city::3429886;Posadas;PSS;Posadas;Posadasa;Posadasas;bo sa da si;bwsadas mysywnys;pasadas mysywns;posadaseu;posadasu;pwsadas;Посадас;Պոսադաս;פוסאדאס;بوساداس، ميسيونيس;پاساداس، میسیونس;پوساداس;პოსადასი;ポサーダス;波萨达斯;포사다스; +city::3430340;Obera;Obera;Oberá;Yerbal Viejo;ao wei la;awbra;awbyra;Обера;אוברה;اوبرا;اوبيرا;奧韋拉; +city::3430443;Necochea;NEC;Necochea;Nekoceja;Nekočėja;nei ke qie a;nkwchya;nykwtshya;نيكوتشيا;نکوچئا;ნეკოჩეა;內科切阿; +city::3430545;Moron;6 de Septiembre;Moron;Morón;Seis de Septiembre;mo long;molon;moron;moroni;mwrwn;mwrwn bwyns ayrs;Морон;مورون;مورون، بوينس آيرس;მორონი;モロン;莫龙;모론; +city::3430708;Mercedes;Mercedes;Mercedo;Mersedes;Mersedesas;mei sai de si;mrsds bwynws ayrs;Мерседес;مرسدس، بوئنوس آیرس;مرسيدس، مقاطعة بوينس آيرس;梅塞德斯; +city::3430863;Mar del Plata;Gorad Mar-dehl'-Plata;MDQ;Mar Del Plat;Mar de Plata;Mar del Plata;Mar ntel Plata;Mar-del'-Plata;Mar-del'-Platae;Mar-del-Plata;Mar-del-plata;ma de pu la ta;maleudelpeullata;mar del pla ta;mar dl plata;mara dela plata;maryh dyl blata;Μαρ ντελ Πλάτα;Горад Мар-дэль-Плата;Мар дел Плата;Мар-дель-Платæ;Мар-дель-Плата;Մար-դել-Պլատա;מאר דל פלאטה;مار دل پلاتا;ماريه ديل بلاتا;মার ডেল প্লাটা;มาร์เดลปลาตา;მარ-დელ-პლატა;マル・デル・プラタ;马德普拉塔;마르델플라타; +city::3430988;Lujan;Lujan;Luján;Lukhan;Luxan;lu han;lukhani;lwkhan;Лухан;Լուխան;لوخان;لوخان، مقاطعة بوينس آيرس;ლუხანი;盧漢; +city::3432043;La Plata;Eva Peron;Eva Perón;Gorad La-Plata;LPG;La Plat;La Plata;La-Plata;La-Plata shaary;La-Platae;Laplata;Urbs Platensis;la plata;la pu la ta;lablata;lap lata;lapeullata;rapurata;Λα Πλάτα;Горад Ла-Плата;Ла Плата;Ла-Платæ;Ла-Плата;Ла-Плата шаары;לא פלאטא;לה פלאטה;لا پلاتا;لابلاتا;ला प्लाटा;ला प्लाता;লা প্লাতা;ลาปลาตา;ლა-პლატა;ラプラタ;拉普拉塔;라플라타; +city::3433658;Gualeguaychu;GHU;Gualeguaicu;Gualeguaiču;Gualeguajchu;Gualeguaychu;Gualeguaychú;gua lai gua yi qiu;gualeguaichu;gwalgwaychw;jywlyjyashw antry ryws;Гуалегуайчу;גואלגואיצו;جيوليجياشو، انتري ريوس;گوالگوایچو;გუალეგუაიჩუ;瓜萊瓜伊丘; +city::3433715;Goya;Goja;Gojja;Goya;OYA;Гойя; +city::3433899;Formosa;Ciudad de Formosa;FMA;Formosa;Formoza;farmwsa;forumosa;fu mo sa;fwrmwza;poleumosa;pormosa;pwrmwsh;Формоза;Формоса;Ֆորմոսա;פורמוסה;فارموسا;فورموزا;فورموسا، ارجنٹائن;ფორმოსა;フォルモーサ;福莫萨;포르모사; +city::3435217;Corrientes;CNQ;Ciudad de Corrientes;Corrientes;Gorad Karyentehs;Korientes;Korijentes;Korjentesas;Korrientes;Taragui;ke lian te si;kolienteseu;korientesu;koriyentesa;kwrynts;kwryynts;qwryynts;Горад Карыентэс;Кориентес;Коријентес;Корриентес;Коррієнтес;קוריינטס;كورينتس;کوریئنتس;کورینتس;कोरियेन्टेस;კორიენტესი;コリエンテス;科连特斯;코리엔테스; +city::3435261;Concordia;COC;Concordia;Konkordia;Konkordija;kang ke di ya;kongkoleudia;konkorudia;kwnkwrdya;kwnkwrdya antry ryws;qwnqwrdyh;Конкордия;Конкордија;Կոնկորդիա;קונקורדיה;كونكورديا، انتري ريوس;کونکوردیا;コンコルディア;康科迪亚;콩코르디아; +city::3435264;Concepcion del Uruguay;Concepcion del Uruguay;Concepción del Uruguay;Konseps'jon-del'-Urugvaj;Konseps'on-del'-Urugvaj;Konsepsion del Urugvajus;knspsywn dl awrwgway;kwnsbsywn dyl awrwghway;wu la gui he pan kang sai pu xi weng;Консепсьйон-дель-Уругвай;Консепсьон-дель-Уругвай;קונספסיון דל אורוגוואי;كونسبسيون ديل أوروغواي;کنسپسیون دل اوروگوای;კონსეპსიონ-დელ-ურუგვაი;乌拉圭河畔康塞普西翁; +city::3435810;Campana;Campana;Kampana;Кампана; +city::3435910;Buenos Aires;BUE;Baires;Bonaero;Bonaeropolis;Bonaëropolis;Bos Aires;Bouenos Aires;Bouonezar;Bouonézâr;Buehnos Ajres;Buehnos-Ajres;Buehnos-Ajres osh;Buenos Aires;Buenos Airės;Buenos Ajres;Buenos Ayres;Buenos-Aires;Buenos-Ajres;Buenos-Ayres;Buenos-Aýres;Buenosairesa;Buénos Ayrés;Bwenoze;Bwènozè;Búenos Aíres;Ciudad Autonoma de Buenos Aires;Ciudad Autónoma de Buenos Aires;Ciudad de La Santisima Trinidad y Puerto de Santa Maria del Buen Ayre;Ciudad de La Santísima Trinidad y Puerto de Santa María del Buen Ayre;Gorad Buehnas-Ajrehs;Lungsod ng Buenos Aires;Santa Maria del Buen Ayre;Santa María del Buen Ayre;bawnosxires;bu yi nuo si ai li si;bu'enosa a'iresa;buenos-airesi;buenosaires;buenoseuaileseu;buenosuairesu;buraenosa a'iresa;buyenosa a'iresa;bwyns ayrs;bwynws ayrs;bwynws ayrys;byu'enosa erisa;byunas airis;byunas ayels;bywns ayrs;puvenas airis;Μπουένος ΄Aιρες;Μπουένος Άιρες;Буенос Аирес;Буенос Айрес;Буенос Аірес;Буенос Ајрес;Буенос-Аирес;Буенос-Айрес;Буэнос Айрес;Буэнос-Айрес;Буэнос-Айрес ош;Горад Буэнас-Айрэс;Բուենոս Այրես;בואנוס איירס;בוענאס איירעס;بوئنوس آیرس;بوينس آيرس;بوينوس ايريس;بۆینس ئایرس;بیونس آئرس;बुएनोस आइरेस;ब्युएनॉस एरीस;বুয়েনোস আইরেস;বুৱেনোস আইরেস;புவெனஸ் ஐரிஸ்;ಬ್ಯೂನಸ್ ಐರಿಸ್;ബ്യൂണസ് അയേഴ്സ്;บัวโนสไอเรส;པུ་ཨེ་ནོ་སི་ཨས་རི་སི།;ဗျူနိုအေးရိစ်မြို့;ბუენოს-აირესი;ብዌኖስ አይሬስ;ブエノスアイレス;布宜諾斯艾利斯;布宜诺斯艾利斯;부에노스아이레스; +city::3436124;Barranqueras;Barranqueras;ba lan ke la si;barankywras;بارانكيوراس;巴蘭克拉斯; +city::3436199;Azul;Asulis;Azul;a su er;aswl;Азул;آسول;أزول، مقاطعة بوينس آيرس;阿蘇爾; +city::3832260;Yerba Buena;Yerba Buena; +city::3832694;Villa Maria;Vilja Marija;Villa Maria;Villa María;fyla marya;ma li ya zhen;vilia-maria;wyya marya;wyzh mryh;ויזה מריה;فيلا ماريا;وییا ماریا;ვილია-მარია;瑪麗亞鎮; +city::3832791;Villa Carlos Paz;Karlos-Paz;Vil'ja-Karlos-Pas;Vilja Karlos Pasas;Villa Carlos Paz;Vilya Karlos Pas;fyla karlws baz;ka luo si pa si zhen;wyya karlws pas;Вилья-Карлос-Пас;Карлос-Паз;Վիլյա Կառլոս Պաս;ויזה קרלוס פאס;فيلا كارلوس باز;وییا کارلوس پاس;ვილია-კარლოს-პასი;卡洛斯帕斯鎮; +city::3833062;Venado Tuerto;Neuken;Venado Touerto;Venado Tuertas;Venado Tuerto;bei na duo tu ai tuo;fynadw tywrtw;wanadw twrtw;Βενάδο Τουέρτο;Неукен;ונדו טוארטו;فينادو تيورتو;وانادو تورتو;ვენადო-ტუერტო;貝納多圖埃托; +city::3833367;Ushuaia;Gorad Ushuaja;Ousouaia;Owsuaya;USH;Ushuaia;Ushuaja;Ushuaïa;Usuaja;Usuaya;Usvaja;Uşuaya;Ušuaja;Ušvaja;awshwaya;awshwayya;awswaya;ushuaia;usuaia;usuviya;usuya'iya;wu si huai ya;xusaw ya;Ουσουάια;Горад Ушуая;Ушуая;Ушуаја;Ուշուայա;אושואיה;أوشوايا;اوسوایا;اوشوآئیا;উসুয়াইয়া;ಉಶುವಿಯಾ;อูซัวยา;უშუაია;ウシュアイア;乌斯怀亚;우수아이아; +city::3833883;Trelew;REL;Trelew;Trelju;te lei li wu;teulelle-u;torereu;trlyw;trylyw;טרלאו;ترلئو;تريليو;ტრელევი;トレレウ;特雷利烏;트렐레우; +city::3834601;Tartagal;TTG;Tartagal;Tartagalis;ta ta jia er;tartagal;tartghal;trtgl;Ταρταγάλ;Тартагал;טרטגל;تارتاگال;تارتغال;塔塔加爾; +city::3835793;Santo Tome;Santo Tome;Santo Tomé;Santo Tomė; +city::3835869;Santiago del Estero;Ciudad de Santiago del Estero;Gorad Santjaga-dehl'-Ehstehra;Provincia de Santiago del Estero;Província de Santiago del Estero;SDE;Sanctus Iacobus ad Uligines;Sant'jago-del'-Ehstero;Sant'jago-del'-Estero;Santiago del Estero;Santijago del Estero;Santjago del Esteras;Santjago del Estero;saintiyago dela estro;san teiy ko del xe s te ro;san tyagw dyl astyrw;santiagodel-eseutelo;santyaghw dyl astyrw;santyagw dl astrw;sheng de ya ge-de er ai si te luo;Горад Сантяга-дэль-Эстэра;Сантијаго дел Естеро;Сантьяго-дель-Естеро;Сантьяго-дель-Эстеро;Сантяго дел Естеро;Սանտիագո դել Էստերո;סנטיאגו דל אסטרו;سان تیاگو دیل استیرو;سانتياغو ديل استيرو;سانتیاگو دل استرو;सैन्टियागो डेल एस्त्रो;ซานเตียโกเดลเอสเตโร;სანტიაგო-დელ-ესტერო;サンティアゴ・デル・エステロ;圣地亚哥-德尔埃斯特罗;산티아고델에스테로; +city::3835994;Santa Rosa;Ciudad de Santa Rosa;RSA;Sancta Rosa;Santa Rosa;Santa Rosa de Toaj;Santa Rosa de Toay;Santa-Rosa;santa rwsa;santa rwsa la pampa;santa rwza;santa rwza la bamba;santalosa;santarosa;sheng luo sha;snth rwsh;Санта Роса;Санта Роса де Тоај;Санта-Роса;Սանտա Ռոսա;סנטה רוסה;سانتا روزا;سانتا روزا، لا بامبا;سانتا روسا;سانتا روسا، لا پامپا;სანტა-როსა;サンタローサ;聖羅莎;산타로사; +city::3836277;Santa Fe de la Vera Cruz;Ciudad de Santa Fe;SFN;Santa Fe;Santa Fė;Santa-Fe;Санта Фе;Санта-Фе; +city::3836564;San Salvador de Jujuy;Gorad San-Sal'vador-deh-Zhuzhuj;JUJ;Jujuy;Khukhuj;San Sal'vador de Khukhuj;San Sal'vador de Zhuzhuj;San Salvador de Chuchujus;San Salvador de Jujuy;San Salvador de Khukhuj;San Salvador de Xuxuy;San-Sal'vador-de-Zhuzhuj;Sanctus Salvator Soteriae;san salwadwr dh khwkhwyy;san salwadwr dl khwkhwyy;san slfadwr dy khwkhwy;san-salvador-de-khukhui;sansalbadoleudehuhu-i;sheng sa er wa duo-de hu hu yi;sn slbdwr dh hwhwy;Горад Сан-Сальвадор-дэ-Жужуй;Сан Салвадор де Хухуй;Сан Салвадор де Хухуј;Сан Сальвадор де Жужуй;Сан Сальвадор де Хухуй;Сан-Сальвадор-де-Жужуй;Хухуй;Սան Սալվադոր դե Խուխույ;סן סלבדור דה חוחוי;سان سالوادور دل خوخوئی;سان سالوادور ده خوخوئی;سان سلفادور دي خوخوي;سان سلوادور دی جوجوئے;სან-სალვადორ-დე-ხუხუი;サン・サルバドール・デ・フフイ;圣萨尔瓦多-德胡胡伊;산살바도르데후후이; +city::3836620;San Ramon de la Nueva Oran;ORA;Oran;Orán;San Ramon de la Nueva Oran;San Ramon de la Nueva Oranas;San Ramón de la Nueva Orán;San-Ramon-de-la-Nuehva-Oran;ao lan;san ramwn dh la nwywa awran;san-ramon-de-la-nueva-orani;sanlamondelanuebaolan;whran salta;Сан Рамон де ла Нуева Оран;Сан-Рамон-де-ла-Нуэва-Оран;Սան Ռամոն դե լա Նուևա Օրան;סן רמון דה לה נואבה אוראן;سان رامون ده لا نوئوا اوران;وهران، سالتا;სან-რამონ-დე-ლა-ნუევა-ორანი;奧蘭;산라몬데라누에바오란; +city::3836669;San Rafael;AFA;San Rafael;San Rafaelis;San-Rafaehl';San-Rafael';san rafayl;san rafayyl mndwza;san-rapaeli;sheng la fei er;Сан Рафаел;Сан-Рафаель;Сан-Рафаэль;סן רפאל;سان رافائل;سان رافائيل، مندوزا;სან-რაფაელი;聖拉斐爾; +city::3836772;San Pedro;San Pedro; +city::3836846;San Nicolas de los Arroyos;San Nicolas;San Nicolas de los Arroyos;San Nicolás;San Nicolás de los Arroyos;San Nikolas de los Arojos;San Nikolas de los Arojosas;san ni ko lasdelo sxar ro yos;san nykwlas dh lws arwys;san nykwlas dy lws arwyws;sheng ni gu la si;Сан Николас де лос Аройос;סן ניקולאס דה לוס ארוזוס;سان نيكولاس دي لوس آرويوس;سان نیکولاس ده لوس آرویس;ซานนีโกลาสเดโลสอาร์โรโยส;სან-ნიკოლას-დე-ლოს-აროიოსი;圣尼古拉斯; +city::3836873;San Miguel de Tucuman;Gorad San-Migel'-deh-Tukuman;San Migel De Tukuman;San Migel de Tukuman;San Miguel de Tucuman;San Miguel de Tucumán;San Minkel nte Toukouman;San-Migel'-de-Tukuman;Sanctus Michael Tucumanensis;TUC;Tucuman;Tucumán;Tukuman;Tukumanas;san mi kelde tu ku man;san myghyl dy twkwman;san mygwyyl dy twkwman;sanmigeldetukuman;santyagw dwtwkwman;sheng mi ge er-de tu ku man;Σαν Μιγκέλ ντε Τουκουμάν;Горад Сан-Мігель-дэ-Тукуман;Сан Мигел де Тукуман;Сан-Мигель-де-Тукуман;Сан-Мігель-де-Тукуман;Тукуман;Տուկուման;טוקומאן;سان ميغيل دي توكومان;سان میگوئیل دی توکومان;سانتیاگو دوتوکومان;ซานมีเกลเดตูกูมัน;სან-მიგელ-დე-ტუკუმანი;サン・ミゲル・デ・トゥクマン;圣米格尔-德图库曼;산미겔데투쿠만; +city::3836992;San Martin;General San Martin;General San Martín;San Martin;San Martín;san martyn;sheng ma ding;sn mrtyn;סן מרטין;سان مارتين;سان مارتین;聖馬丁; +city::3837056;San Luis;Ciudad de San Luis;LUQ;San Luis;San Luisas;San-Luis;Sanctus Ludovicus;san lwys;san lwyys;san-luisi;sanlu-iseu;sheng lu yi si;Сан Луис;Сан-Луис;Сан-Луїс;Սան Լուիս;סן לואיס;سان لوئیس;سان لوئیس، ارجنٹائن;سان لويس;სან-ლუისი;サン・ルイス;聖路易斯;산루이스; +city::3837213;San Juan;Ciudad de San Juan;Gorad San-Khuan;Lalawigan ng San Juan;San Chuanas;San Juan;San Juan de la Frontera;San Khuan;San Xuan;San-Khuan;Sanctus Ioannes a Cuio;UAQ;san jwan;san khwan alarjntyn;san khwan arzhantyn;san-khuani;sanfuan;sanhuan;sheng hu an;Горад Сан-Хуан;Сан Хуан;Сан-Хуан;Սան Խուան;סן חואן;سان جوآن;سان خوآن، آرژانتین;سان خوآن، ارجنٹائن;سان خوان، الأرجنتين;სან-ხუანი;サンフアン;圣胡安;산후안; +city::3837675;San Francisco;San Francisco;San Fransiskas;san fransyskw;san fransyskw qrtbt;sheng fu lang xi si ke;sn prnsysqw;סן פרנסיסקו;سان فرانسيسكو، قرطبة;سان فرانسیسکو;聖弗朗西斯科; +city::3837702;San Fernando del Valle de Catamarca;CTC;Catamarca;Katamarka;San Fernando del Vale de Katamarka;San Fernando del Valle de Catamarca;San Fernando del Valye de Katamarka;San-Fernando-del'-Vaje-de-Katamarka;San-Fernando-del'-Val'e-de-Katamarka;San-Fernando-del'-Valle-de-Katamarkae;ka ta ma ka;qtmrqh;san frnandw dyl faly dy katamarka;san frnandw dyl wyla dy katamarka;san frnandwdl wlh dkatamarka;san-pernando-del-valie-de-kʼatʼamarkʼa;sanpeleunandodelbayedekatamaleuka;Катамарка;Сан Фернандо дел Вале де Катамарка;Сан-Фернандо-дель-Вайє-де-Катамарка;Сан-Фернандо-дель-Валле-де-Катамаркæ;Сан-Фернандо-дель-Валье-де-Катамарка;Սան Ֆերնանդո դել Վալյե դե Կատամարկա;קטמרקה;سان فرناندو دل والے دے کاتامارکا;سان فرناندو ديل فالي دي كاتاماركا;سان فرناندو دیل ویلا دی کاتامارکا;سان فرناندودل وله دکاتامارکا;სან-ფერნანდო-დელ-ვალიე-დე-კატამარკა;サン・フェルナンド・デル・バジェ・デ・カタマルカ;卡塔马卡;산페르난도델바예데카타마르카; +city::3838233;Salta;Ciudad de Salta;Gorad Sal'ta;SLA;Sal'ta;Salta;Salta llaqta;Saltaurbo;sa er ta;salta;saruta;slth;Σάλτα;Горад Сальта;Салта;Сальта;Սալտա;סלטה;سالتا;साल्टा;სალტა;サルタ;萨尔塔;살타; +city::3838583;Rosario;ROS;Rasarya;Rosarijas;Rosario;Rosário;Rozariyo;Rozarîyo;Urbs Rosariensis;losalio;luo sa li ao;luo sha li ao;ro sa ri xo;rojhariyo;rosari'o;rosario;rwsaryw;rwsaryw santa fh;Ροσάριο;Расарыа;Росарио;Росаріо;Ռոսարիո;רוסאריו;روساريو;روساریو، سانتا فه;روساریو، سانتا فے;रोझारियो;রোসারিও;โรซารีโอ;როსარიო;ロサリオ;罗萨里奥;羅沙里奧;로사리오; +city::3838793;Rio Tercero;Rio Tercero;Río Tercero; +city::3838859;Rio Gallegos;Gallegos;Puerto Gallegos;Puerto Rio Gallegos;Puerto Río Gallegos;RGL;Rio Galegos;Rio Galjegosas;Rio Gallegos;Rio Galyegos;Rio-Gal'egos;Río Gallegos;li ao jia ye ge si;liogayegoseu;rio-galiegosi;ryw galygws;ryw galygws santa krwz;ryw ghalyghws santa krwz;ryw gzgws;rywgalgws;Рио Галегос;Рио-Гальегос;Ріо-Гальєгос;Ռիո Գալյեգոս;ריו גזגוס;ريو غاليغوس، سانتا كروز;ریو گالیگوس;ریو گالیگوس، سانتا کروز;ریوگالگوس;რიო-გალიეგოსი;リオ・ガジェゴス;里奥加耶戈斯;리오가예고스; +city::3838874;Rio Cuarto;Ciudad de Rio Cuarto;Ciudad de Río Cuarto;RCU;Rio Cuarto;Rio Kuartas;Rio Kuarto;Rio Kvarto;Rio-Kuarto;Rio-Kvarto;Río Cuarto;li ao kua er tuo;liokualeuto;ryw kwartw;ryw kwartw qrtbt;Рио Кварто;Рио Куарто;Рио-Куарто;Ріо-Кварто;Ռիո Կուարտո;ריו קוארטו;ريو كوارتو، قرطبة;ریو کوارتو;რიო-კუარტო;リオ・クアルト;里奥夸尔托;리오쿠아르토; +city::3839479;Rafaela;RAF;Rafaehla;Rafaela;la fei la;ra fa xela;rafayla;rafayyla;rapaela;Рафаэла;רפאלה;رافائلا;رافاييلا;ราฟาเอลา;რაფაელა;拉斐拉; +city::3839982;Punta Alta;Punta Alta;Punta-Al'ta;bwnta alta;peng ta a er ta;puntaalta;Пунта-Альта;بونتا ألتا;蓬塔阿尔塔;푼타알타; +city::3840092;Puerto Madryn;Madryn;Madrynhyd;Madrynhȳð;PMY;Porth Madryn;Pouerto Madrin;Puehrto-Madrin;Puerto Madrinas;Puerto Madryn;Pureto Madrin;bwyrtw madryn;ma de lin gang;pwrtw madryn;Πουέρτο Μάδριν;Пуэрто-Мадрин;Պուրետո Մադրին;פוארטו מדרין;بويرتو مادرين;پورتو مادرین;馬德林港; +city::3840300;Presidencia Roque Saenz Pena;PRQ;Presidencia Roque Saenz Pena;Presidencia Roque Sáenz Peña;Presidensija Roke Saens Penja;Presidente Roque Saenz Pena;Presidente Roque Sáenz Peña;Roque Saenz Pena;Roque Sáenz Peña;SZQ;brysdns rwky saynz bynya;luo ke sa en si pei ni ya zong tong cheng;rwkh saynz pnya;פרסידנסיה רוקה סאנס פניה;بريسدنس روكي ساينز بينيا;روکه سائنز پنیا;პრესიდენსია-როკე-საენს-პენია;羅克薩恩斯培尼亞總統城; +city::3841490;Pergamino;Pergamino;Пергамино; +city::3841956;Parana;Cittae de Parana;PRA;Parana;Paranà;Paraná;ba la na;barana antry ryws;palana;parana;prnh;Çittæ de Paraná;Παρανά;Парана;Պարանա;פרנה;بارانا، انتري ريوس;پارانا;پارانا، انترے ریوس;პარანა;パラナ;巴拉那;파라나; +city::3842670;Olavarria;OVR;Olavarija;Olavarria;Olavarrija;Olavarría;ao la wa li ya;awlafarya;awlawarya;olavaria;xo la bar ri xa;Олаварија;Олаваррия;أولافاريا;اولاواریا;โอลาบาร์รีอา;ოლავარია;奧拉瓦里亞; +city::3843123;Neuquen;Ciuda de Neuquen;Ciudad de Neuquen;Ciudad de Neuquén;Ciudá de Neuquén;Gorad Neuken;NQN;Nequen;Neuken;Neukenas;Neuquen;Neuquén;Vila de Neuquen;Vila de Neuquén;n'yukvina;ne-uken;nei wu ken;neuken;nywkn;nywkwyn;Горад Неўкен;Неукен;Նեուկեն;נאוקן;نئوکن;نيوكوين;نیوکوئن;نیوکوین;न्यूक्वीन;ნეუკენი;ネウケン;内乌肯;네우켄; +city::3844421;Mendoza;Capital megye;Ciuda de Mendoza;Ciudad de Mendoza;Ciudá de Mendoza;Gorad Mendosa;MDZ;Mendos;Mendosa;Mendosae;Mendoza;Mentosa;Vila de Mendoza;men do sa;men duo sa;mendosa;mendoza;mndwsh;mndwza;myndwza;Μεντόσα;Горад Мендоса;Мендоза;Мендосæ;Мендоса;Մենդոսա;מנדוסה;مندوزا;مندوسا، ارجنٹائن;میندوزا;मेन्दोज़ा;เมนโดซา;მენდოსა;メンドーサ;门多萨;멘도사; +city::3848950;La Rioja;A Rioxa;Ciudad de La Rioja;Gorad La-Ryjokha;IRJ;La Riocha;La Rioja;La Rioja llaqta;La Riokha;La Rioxa;La-Riokha;Larjoha;Rioja;Riokha;la li ao ha;la rywja;la rywkha;la rywkha arzhantyn;la-riokha;lalioha;lh rywhh;Горад Ла-Рыёха;Ла Риоха;Ла-Риоха;Ла-Ріоха;Риоха;Լա Ռիոխա;לה ריוחה;لا ريوخا;لا ریؤجا;لا ریوجا، ارجنٹین;لا ریوخا، آرژانتین;ლა-რიოხა;ラ・リオハ;拉里奧哈;라리오하; +city::3853354;Junin;Chuninas;JNI;Junin;Junín;hu ning;khunini;khwnyn;جونين، مقاطعة بوينس آيرس;خونین;ხუნინი;胡寧; +city::3854985;Gobernador Galvez;Galvez;Gobernador Galvez;Gobernador Gálvez;Villa Gobernador Galvez;Villa Gobernador Gálvez; +city::3855065;General Roca;Cheneral Roka;Ciudad de General Roca;Fuerte General Roca;GNR;General Roca;Kheneral';hnrl rwqh;jnral rwka ryw nyghrw;khnral rwka;luo ka jiang jun shi;Хенераль;חנרל רוקה;جنرال روكا، ريو نيغرو;خنرال روکا;ხენერალ-როკა;羅卡將軍市; +city::3855075;General Pico;Cheneral Pikas;GPO;General Pico;Pico;hnrl pyqw;jynral bykw;khnral pykw;pi ke jiang jun zhen;חנרל פיקו;جينرال بيكو;خنرال پیکو;皮科將軍鎮; +city::3860259;Cordoba;COR;Ciudad de Cordoba;Ciudad de Córdoba;Cordoba;Cordoba i Argentina;Cordova;Corduba;Còrdoba;Córdoba;Córdoba i Argentina;Córdova;Gorad Kordava;Kordoba;Kordobo;Kordov;Kordova;Kordova khot;Kordovae;Kuorduoba;Vila de Cordoba;Vila de Córdoba;kardwba;ke er duo wa;koleudoba;kordoba;korudoba;kwrdwba;kwrdwba arzhantyn;kxr do ba;qwrdwbh;Κόρδοβα;Горад Кордава;Кордоба;Кордовæ;Кордова;Кордова хот;Կորդովա;קארדאבע;קורדובה;قرطبہ، ارجنٹائن;كوردوبا;کاردوبا;کوردوبا، آرژانتین;कोर्दोबा;กอร์โดบา;კორდოვა;コルドバ;科尔多瓦;코르도바; +city::3860443;Comodoro Rivadavia;CRD;Comodoro;Comodoro Rivadavia;Komodoro Rivadavija;Komodoro-Rivadavija;Komorodo Rivadavia;komodololibadabia;kwmwdwrw ryfadafya;kwmwdwrw rywadawya;li wa da wei ya hai jun zhun jiang cheng;qwmwdwrw rybdbyh;Комодоро Ривадавия;Комодоро Ривадавија;Комодоро-Ривадавия;Комодоро-Рівадавія;Կոմորոդո Ռիվադավիա;קומודורו ריבדביה;كومودورو ريفادافيا;کومودورو ریواداویا;コモドーロ・リバダビア;里瓦达维亚海军准将城;코모도로리바다비아; +city::3861056;Cipolletti;CPZ;Chipolletti;Cipoletis;Cipoletti;Cipolleti;Cipolletti;kybwlyty;sypwyty;xi bo lie di;zypwlty;Čipoletis;Чиполлетти;Чіполлетті;Չիպոլետի;ציפולטי;سیپویتی;كيبوليتي;სიპოლიეტი;西波列蒂; +city::3861344;Chivilcoy;Chivilcoy;chywylkwy;qi wei er ke yi;tshyfylkwy;تشيفيلكوي;چیویلکوی;奇維爾科伊; +city::3861416;Chimbas;Chimbas; +city::3865086;Bahia Blanca;BHI;Bahia Blanca;Bahija Blanka;Bahía Blanca;Baija Blanka;Baija-Blanka;Baija-Blankae;Bajja-Blanka;bahya blanka;baiabeullangka;baiaburanka;bayya blanka;bu lan ka gang;Баия-Бланкæ;Баия-Бланка;Баија Бланка;Байя-Бланка;Баїя-Бланка;באיה בלנקה;باهيا بلانكا;باییا بلانکا;ბაია-ბლანკა;バイアブランカ;布兰卡港;바이아블랑카; +city::7116866;Villa Mercedes;VME;Vila Mersedes;Vilja Mersedesas;biyameleusedeseu;fyla mrsyds san lwys;mei sai de si zhen;vilia-mersedesi;wyya mrsds;wyzh mrsds;Виља Мерседес;ויזה מרסדס;فيلا مرسيدس، سان لويس;وییا مرسدس;ვილია-მერსედესი;ビジャ・メルセデス;梅塞德斯鎮;비야메르세데스; +city::7647007;San Carlos de Bariloche;BRC;Bariloce;Bariloche;Bariloĉe;San Carlos de Bariloche;San Karlos de Bariloce;San Karlos de Bariloche;San Karlos de Bariločė;San-Karlos-de-Bariloche;barylwchh;barylwtshy;bʼrylwzh;sankaleulloseudebalilloche;sheng ka luo si-de ba li luo qie;Сан Карлос де Барилоче;Сан-Карлос-де-Барилоче;Сан-Карлос-де-Барілоче;Սան Կառլոս դե Բարիլոչե;בארילוצה;باريلوتشي;باریلوچه;باریلۆچی;სან-კარლოს-დე-ბარილოჩე;サン・カルロス・デ・バリローチェ;圣卡洛斯-德巴里洛切;산카를로스데바릴로체; +city::2761369;Vienna;Bec;Bech;Becs;Beç;Beč;Bienne;Bécs;Dunaj;VIE;Vena;Viden;Viden';Vieden;Viedeň;Viena;Vienna;Vienne;Vieno;Viin;Vin;Vinarborg;Vindobona;Viyana;Vídeň;Vín;Vínarborg;Wenen;Wieden;Wiedeń;Wien;bienna;bin;fyyna;weiynna;Βιέννη;Беч;Вена;Виена;Відень;فيينا;เวียนนา;ቪየና;비엔나;빈; +city::2761524;Wels;Ovilava;Vel's;Wels;wls;Вельс;ולס; +city::2762372;Villach;Beljak;Filachas;Filakh;Fillach;Fillaha;Fillakh;Gorad Filakh;QVL;Santicum;Vilac;Villach;Villaco;fei la he;fil lakh;firahha;fylakh;pilakhi;pillaheu;pylʼk;wylakh;Φίλλαχ;Горад Філах;Филах;Филлах;Філлах;פילאך;فیلاخ;ویلاخ;ฟิลลาค;ფილახი;フィラッハ;菲拉赫;필라흐; +city::2766824;Salzburg;Estado de Salzburgo;Gorad Zal'cburg;Ijolati Zaltsburg;Lungsod ng Salzburg;SZG;Saizburg;Salcburg;Salcburk;Salisburgh;Salisburgium;Salisburgo;Salisburgu;Salisburgum;Saltsmpournk;Saltzburg;Salzborg;Salzbourg;Salzburg;Salzburgi liidumaa;Salzburgo;Salzbursko;Sałisburgo;Såizburg;Zal'cburg;Zalcburg;Zalcburga;Zalcburgas;Zaltsburq;chai er ci bei ge;jalcheubuleukeu;jaltsaburga;sa er ci bao;sa er si bao;salajaburga;saljhabarga;sals bur k;salzaborga;salzbrg;salzbwrgh;zaltsburgi;zaltsbwrg;zarutsuburuku;zlzbwrg;Σάλτσμπουργκ;Горад Зальцбург;Залцбург;Зальцбург;Иёлати Залтсбург;Салцбург;Զալցբուրգ;זאלצבורג;זלצבורג;زالتسبورگ;سالزبرگ;سالزبورغ;जाल्त्सबुर्ग;साल्ज़बोर्ग;সলজবুর্গ;સાલ્ઝબર્ગ;ಸಾಲ್ಜ್‌ಬರ್ಗ್‌;ซาลซ์บูร์ก;ზალცბურგი;ザルツブルク;柴尔兹孛格;萨尔斯堡;萨尔茨堡;薩爾斯堡;잘츠부르크; +city::2772400;Linz;Gorad Linc;LNZ;Lentia;Linc;Linca;Lincas;Linec;Lints;Linz;lin ci;lincheu;lins;lintsa;lintsi;lnz;lynts;lyntz;lynz;rintsu;Λιντς;Горад Лінц;Линц;Лінц;Լինց;לינץ;لنز;لينتز;لینتس;लिंत्स;ลินซ์;ლინცი;リンツ;林茨;린츠; +city::2774326;Klagenfurt am Woerthersee;Celovec;Clagenfurtum;KLU;Klagenfurt;Klagenfurte;Klāgenfurte;ke la gen fu;kuragenfuruto;qlgnpwrt;Клагенфурт;קלגנפורט;クラーゲンフルト;克拉根福; +city::2775220;Innsbruck;Gorad Insbruk;INN;Innsbruck;Innschbruck;Insbruc;Insbruk;Insbruka;Insbrukas;Insmprouk;Inzbruk;Pons Aeni;ansbrwk;anzbrk;aynsbrwk;insabruka;inseubeulukeu;insuburukku;xin s brukh;yin si bei lu ke;yin si bu lu ke;İnnsbruck;İnsbruk;Ίνσμπρουκ;Інсбрук;Горад Інсбрук;Инзбрук;Инсбрук;Ինսբրուք;אינסברוק;إنسبروك;انزبرک;اینسبروک;इन्सब्रुक;ইন্সব্রুক;อินส์บรุค;ინსბრუკი;インスブルック;因斯孛鲁克;因斯布鲁克;인스브루크; +city::2778067;Graz;GRZ;Gorad Grac;Grac;Graca;Gracas;Gradec;Graecia;Gratz;Graz;Grác;Gráz;Grāca;Nkrats;Qras;Styrsky Hradec;ge la ci;geulacheu;ghrats;grats;gratsa;gratsi;guratsu;kras;Štýrský Hradec;Γκρατς;Горад Грац;Грац;Գրաց;גראץ;غراتس;گراتس;ग्रात्स;กราซ;გრაცი;グラーツ;格拉茨;그라츠; +city::2062338;Rockingham;Rockingham;Rokingam;Rokingem;Рокингам;Рокінгем;راکنگھم، مغربی آسٹریلیا; +city::2063523;Perth;Gorad Pert;PER;Peairt;Pert;Perta;Pertas;Perth;Perth City;Perthia;Perto;Perþ;Pirth;Purt;Pērta;byrth;part;partha;pasu;peoseu;pert;pheirth;po si;prt;prt';prtھ asٹrylya;Περθ;Горад Перт;Перт;Пертһ;Пърт;Պերթ;פרת';بيرث;پرت;پرتھ، آسٹریلیا;पर्थ;பேர்த்;ಪರ್ತ್;പെർത്ത്;เพิร์ท;ပါ့သ်မြို့;პერთი;パース;珀斯;퍼스; +city::2067119;Mandurah;Mandujura;Mandura;Mandurah;Mandzhera;man du la;mandula;manduraha;mandwrah;manjura;mndwra;mondurahi;Манджера;Мандура;Мандъюра;ماندوراه;ماندورہ;مندورا;مندوراہ;مێندیۆرا;मंदूरह;მონდურაჰი;マンジュラ;曼杜拉;만두라; +city::2073124;Darwin;DRW;Daarwin;Darvin;Darvina;Darvinas;Darvino;Darwin;Dārvina;Gorad Darvin;Ntargouin;Palmerston;Port Darwin;da er wen;da er wen gang;dar win;dara'u'ina;daravina;darvina;darvini;darwyn;dau~in;dawin;drwwyn;tarvin;Ντάργουιν;Горад Дарвін;Дарвин;Дарвін;Դարվին;דארווין;דרווין;داروين;داروین;داروین، قوزئی توپراق‌لاری;ڈارون;डार्विन;ডারউইন;ਡਾਰਵਿਨ;டார்வின்;ഡാർവിൻ;ดาร์วิน;ဒါဝင်မြို့;დარვინი;ダーウィン;达尔文;达尔文港;다윈; +city::2075432;Bunbury;BUY;Banberi;Banberis;Bunbury;ban bo li;banbari;banbary;banberi;beonbeoli;bnbry;Банбери;בנברי;بانباري;بانبوری، ڕۆژاوای ئوسترالیا;بنبری;بنبری، مغربی آسٹریلیا;ბანბერი;バンバリー;班伯利;번버리; +city::2078025;Adelaide;ADL;Adelaida;Adelaidae;Adelaide;Adelaidis;Adelaidė;Adelajda;Adelajdo;Adelaïda;Adelaïde;Adelejd;Adelàida;Adélaïde;Edelaid;Gorad Adehlaida;Tarndanya;Tarndarnya;a de lai de;adelaida;aderedo;adilaid;adiled;adlayd;adylyd;aedeulleideu;atileyit;edile'ida;edileda;Αδελαΐδα;Аделаидæ;Аделаида;Аделаїда;Аделейд;Аделејд;Горад Адэлаіда;Ադելաիդա;אדלייד;آدلاید;أديليد;ئادېلايدې;ایڈیلیڈ;एडिलेड;ॲdaleda;ॲडलेड;એડિલેઇડ;அடிலெயிட்;అడిలైడ్;ಅಡಿಲೇಡ್;അഡിലെയ്‌ഡ്;แอดิเลด;အက်ဒလိတ်မြို့;ადელაიდა;アデレード;阿德来得;阿德莱德;애들레이드; +city::2146142;Townsville;TSV;Taunsvil;Taunsvil';Taunsvilis;Taunsvill;Townsville;ta'unsavhila;ta'unsavila;tang shi wei lu;tang si wei er;taunjeubil;taunzubiru;tawnsfyl;tawnzvyl;tawnzwyl;Таунсвил;Таунсвилл;Таунсвіль;טאונסוויל;تاونزویل;تاونزڤیل;تاونسفيل;ٹاؤنزویلی;ٹاؤنسول;टाउन्सविल;टाउन्सव्हिल;ტაუნზვილი;タウンズビル;汤斯维尔;湯士威路;타운즈빌; +city::2146268;Toowoomba;TWB;Toowoomba;Tuuomba;Tuvumba;teoumba;to~unba;tu wen ba;tuvumba;tuvumpa;twwmba;twwwmba;Тувумба;Тууомба;توومبا;تووومبا;ٹوومبا;ٹووومبا;तूवूम्बा;துவும்பா;ტუვუმბა;トゥーンバ;图文巴;터움바; +city::2147714;Sydney;Gorad Sidnej;SYD;Sanctus Dionysius;Sedniejos;Sek-na;Sidnef;Sidnei;Sidnej;Sidneja;Sidnejo;Sidnejus;Sidney;Sidneý;Sidni;Sidnéy;Sidnėjus;Sit-ni;Sit-nì;Syd;Sydneium;Sydney;Sydney City;Sék-nà̤;Sídney;Sîdney;Sėdniejos;citni;shidoni;sidani;sideuni;sidnei;sidni;sidniy;sydny;xi ni;xue li;Σίδνεϋ;Горад Сідней;Сиднеи;Сидней;Сиднеј;Сидни;Сідней;Сідні;Սիդնեյ;סידני;سيدنى;سيدني;سڈنی;سیدنی;ܣܝܕܢܝ;सिडनी;सिड्नी;सिद्नी;সিডনি;ਸਿਡਨੀ;સીડની;சிட்னி;సిడ్నీ;ಸಿಡ್ನಿ;സിഡ്നി;සිඩ්නි;ซิดนีย์;སིད་ནེ།;ဆစ်ဒနီမြို့;სიდნეი;ሲድኒ;ស៊ីដនីយ៏;シドニー;悉尼;雪梨;시드니; +city::2151437;Rockhampton;ROK;Rockhampton;Rokgempton;Rokkhempton;luo kan pu dun;rakhmptwn;rokahampatana;Рокгемптон;Рокхемптон;רוקהאמפטון;راکهمپتون;راکہیمپٹن;راکہیمپٹون;ڕاکھەمپتن;रोकहाम्पटन;როკჰემპტონი;洛坎普頓; +city::2155472;Newcastle;Avstralyn N'jukasl;Gorad N'jukasl;N'jukasl;NTL;Newcastle;Niukaslas;Njukasl;Njukasul;Novkastelo;n'yukesala;niu ka si er;niyukacil;nyukaeseul;nyukassuru;nyw kasl;nywkasl;nywkasl nyw sawt wlz;nywkasl yyny gwnyy wlz;Њукасл;Австралын Ньюкасл;Горад Ньюкасл;Ньюкасл;Нюкасъл;ניוקאסל;نيوكاسل;نیو کاسل;نیو کیسل، نیو ساؤتھ ویلز;نیوکاسل، نیو ساوت ولز;نیوکاسل، یئنی گونئی ولز;نیوکاسڵ;न्यूकॅसल;நியூகாசில்;ნიუკასლი;ニューカッスル;纽卡斯尔;뉴캐슬; +city::2158177;Melbourne;MEL;Mel'burn;Melbourne;Melbourne City;Melbournum;Melburn;Melburna;Melburnas;Melburno;Melvourni;mel beirn;melaborna;melbeoleun;melbeon;melporn;meruborun;mlbwrn;mo er ben;Μελβούρνη;Мелбурн;Мелбърн;Мельбурн;מלבורן;ملبورن;مېلبۇرن;मेलबोर्न;மெல்போர்ன்;เมลเบิร์น;མེར་བུན;メルボルン;墨尔本;멜버른;멜번; +city::2159045;Maitland;MTL;Maitland;Mehjtlend;Mejtland;Mejtlend;West Maitland;mei te lan;mytlnd yyny gwnyy wlz;Мейтленд;Мејтланд;Мэйтленд;میئٹلینڈ، نیو ساؤتھ ویلز;میتلند، یئنی گونئی ولز;میٹلینڈ;مێیتلەند، نیو ساوت وێلز;მეიტლენდი;梅特兰; +city::2159220;Mackay;MKY;Mackay;Makaj;Makej;Makkaj;maekai;mai kai;make;makkai;mkay;mkay kwyynzlnd;Макай;Макај;Макей;Маккай;מאקאי;مکائے، کوئنزلینڈ;مکای;مکای، کوئینزلند;میکے;مەکای، کوینزلەند;मके;მაკაი;マッカイ;麥凱;매카이; +city::2160517;Launceston;LST;Launceston;Launcestown;Lonseston;Patersonia;lancecutan;lang sai si dun;lansstwn tasmany;lawnsstwn;lonasesatana;lonseoseuteon;lwnstwn;ronsesuton;Лонсестон;לונסטון;لانسستون، تاسمانی;لانسسٹن، تسمانیا;لانسێستن، تاسمانیا;لاونسستون;لاونسسٹن;लॉनसेसटन;லான்செசுடன்;ლონსესტონი;ローンセストン;朗塞斯顿;론서스턴; +city::2163355;Hobart;Chompart;Gobart;Gorad Khobart;HBA;Hobart;Hobart Town;Hobarta;Hobartas;Hobarto;Hobat;Hobārta;Khobart;Khoubart;he ba te;hobarata;hobart;hobarta;hobateu;hobato;hopart;huo ba te;hwbart;Χόμπαρτ;Гобарт;Горад Хобарт;Хобарт;Хоубарт;הובארט;هوبارت;ہابرٹ;ہوبارٹ;होबार्ट;ਹੋਬਾਰਟ;ହୋବାର୍ଟ;ஹோபார்ட்;හෝබාර්ට්;โฮบาร์ต;ཧོ་སྦར་ཐེ།;ჰობარტი;ホバート;荷巴特;霍巴特;호바트; +city::2165087;Gold Coast;City of Gold Coast;Costa Dorada;Gold;Gold Coast;Gold Koust;OOL;gorudokosuto;huang jin hai an;Голд Коуст;ゴールドコースト;ゴールド・コースト;黃金海岸;黄金海岸; +city::2165798;Geelong;Dzhelong;Dzhilong;Dzilong;Dzilongas;Džilongas;GEX;Geelong;Zhelon;ghylwngh;gilonga;gylang;gylwng;jeollong;ji lang;jilongi;jirongu;jylang;jylanq;Џилонг;Джелонг;Джилонг;Желон;גילונג;جیلانق;جیلانگ;جیڵانگ;غيلونغ;گیلانگ;गीलोंग;गीलोङ्ग;ჯილონგი;ジーロング;吉朗;절롱; +city::2171507;Wollongong;City of Greater Wollongong;Gorad Vulangang;Uulongong;Vullongon;Vullongong;Vulongong;Vulongongas;WOL;Wollongong;ulleongong;urongon;vulamgamga;vulongongi;wlwnghwngh;wlwngwng;wo long gang;wo long gang shi;wwlwngwng;wwlwnqwnq;Вуллонгон;Вуллонгонг;Вулонгонг;Горад Вуланганг;Уулонгонг;וולונגונג;ولونغونغ;ولونگونگ;وولونقونق;وولونگونگ;وۆڵۆنگانگ;वूलाँगाँग;ვულონგონგი;ウロンゴン;卧龙岗;卧龙岗市;울런공; +city::2172517;Canberra;CBR;Camberra;Canberra;Canberrah;Gorad Kanbera;Kamberra;Kambra;Kampera;Kanapera;Kanbera;Kanbero;Kanberr;Kanberra;Kanberrae;Kanberre;Kanbérra;Kham-phi-la;Khâm-phì-là;Kānapera;kaenbeola;kainabara;kainberra;kan pei la;kanabera;kanbra;kanpara;kenabera;kyanabara;kyanabera;kyanbera;kynbra;kʼanbera;qnbrh;Καμπέρα;Горад Канбера;Канбера;Канберрæ;Канберра;Канберре;Канбєра;Կանբերրա;קאנבערא;קנברה;كانبرا;کانبرا;کانبێرا;کینبرا;कॅनबेरा;कैनबरा;कैन्बेर्रा;क्यानबरा;ক্যানবেরা;ਕੈਨਬਰਾ;କାନବେରା;கான்பரா;കാൻബറ;කැන්බරා;แคนเบอร์รา;ཁན་པེ་ར།;კანბერა;ካንበራ;キャンベラ;坎培拉;堪培拉;캔버라; +city::2172797;Cairns;CNS;Cairns;Kehrns;Kerns;Kernsa;Kernsas;Kērnsa;jian ci;kai en si;kairnsa;karnz;keanzu;keeonjeu;keeonseu;kernsa;knz;kyrnz;qyyrns;Кернс;Кэрнс;קיירנס;كيرنز;کارنز;کنز;کیرنز;کێنز;केर्न्स;कैर्न्स;ကိန်းမြို့;კერნსი;ケアンズ;凱恩斯;柬兹;케언스;케언즈; +city::2173323;Bundaberg;BDB;Bandaberg;Bandaberga;Bundaberg;Bundaburg;ban de bao;bandabarga;bandabergi;bwndabrg;bwndabyrj;Бандаберг;Бундаберг;Бъндабърг;باندابێرگ;بنڈابرگ;بوندابرگ;بوندابيرج;बण्डाबर्ग;ბანდაბერგი;班德堡; +city::2174003;Brisbane;BNE;Bresbens;Brisbane;Brisbane City;Brisbano;Brisbehn;Brisben;Brisbena;Brisbenas;Brisbin;Brismpein;Brizbejn;Brėsbens;Gorad Brysben;Pu-li-su-pan;Pu-lî-sṳ̂-pân;beulijeubeon;brisabena;brisben;brisbena;brizabana;brizbeni;brsbyn;brysban;bryzbn;bryzbyn;bryzbyyn;bu li si ban;bu li si ben;burisuben;pirispen;Μπρίσμπεϊν;Бризбейн;Бризбејн;Брисбен;Брисбэн;Горад Брысбен;בריזביין;בריזבן;برسبین;برىسبان;بريزبن;بریزبن;بریزبین;بریزبێن;ब्रिसबेन;ब्रिस्बेन;ব্রিসবেন;ਬ੍ਰਿਜ਼ਬਨ;பிரிஸ்பேன்;బ్రిస్బేన్;ಬ್ರಿಸ್ಬೇನ್‌;ബ്രിസ്ബെയ്ൻ;บริสเบน;ဘရစ်စဘိန်းမြို့;ბრიზბენი;ብርዝበን;ブリスベン;布里司班;布里斯本;布里斯班;브리즈번; +city::2176187;Bendigo;BXG;Bendigo;Bentinko;ban de ge;ben di ge;bendigo;bndygw;Μπέντιγκο;Бендиго;Бендіго;בנדיגו;بینڈگو;بینڈیگو;بێندیگۆ;बेन्डिगो;ბენდიგო;ベンディゴ;本迪戈;班地戈;벤디고; +city::2177091;Ballarat;Balarat;Balaratas;Ballaarat;Ballarat;ba la rui te;baelleolaes;balarat;balart;ballarata;bararatto;blrt;Μπαλαράτ;Баларат;Балларат;בלאראט;بالارات;بالاراٹ;بالارت;بلرت;بەلێرات;बल्लारत;ბალარატი;バララット;巴拉瑞特;밸러랫; +city::7281838;Logan City;Citta di Logan;Città di Logan;Logan;Logan City;logani;luo gen shi;lwghan syty;لوغان سيتي;لوگن سٹی;ლოგანი;洛根市; +city::7302628;Adelaide Hills;; +city::146970;Xankandi;Chankaendi;Chankändi;Hankendi;Khankendy;Stepanakert;Xankǝndi;Xankəndi;astpanakrt;stpnqrt;Степанакерт;סטפנקרט;استپاناکرت; +city::147288;Saatli;Saatli;Saatly;Saatlı;Saotly;Саатлы; +city::147429;Nakhchivan;NAJ;Nachitschewan;Nakhchivan;Nakhchyvan;Nakhicevan;Nakhichevan';Nakhichevan’;Nakhichivan;Nakhitchevan;Nakhitsjevan;Nakhjavan;Naxcivan;Naxçıvan;nkhchywan;Нахичевань;نخچیوان; +city::147622;Lankaran;LLK;Lankaran;Lencoran;Lenkoran;Lenkoran';Ljankjaran;Länkäran;Lǝnkǝran;Lənkəran;Ленкорань;Лянкяран; +city::148565;Sirvan;Ali Bairamly;Ali Bayramli;Ali-Bairamli;Ali-Bajramly;Ali-Bayramli;Ali-Bayramly;Aly-Bayramly;Arab Shakhverdi;Arab-Shakhberdy;Arab-Shakhverdy;Shirvan;Sirvan;Zubovka;Şirvan;Əli Bayramlı;Али-Байрамлы;Ширван; +city::584649;Yevlakh;Avlakh;Evlakh;Jewlach;YLV;Yevlakh;Yevlax;Евлах; +city::584923;Sumqayit;Sumgait;Sumgjajet;Sumqayit;Sumqayyt;Sumqayıt;Сумгаит;סומגאיט; +city::585103;Qaracuxur;Garachukhur;Imeni Kaganovicha;Kaganovich;Kaganovicha;Karachekhur;Karachukhur;Poselok Imeni Kaganovicha;Posëlok Imeni Kaganovicha;Qaracuxur;Qaraçuxur;Serebovski;Serebrovskiy;Гарачухур; +city::585170;Sheki;Nucha;Nukha;Nuxa;Saki;Shaki;Sheki;Shäki;Şǝki;Şəki;Шеки; +city::585514;Mingelchaur;Mengechaur;Min'nkatsebir;Mingacevir;Mingachevir;Mingaecevir;Mingechaur;Mingechaurges;Mingeczaur;Mingelchaur;Mingächevir;Mingäçevir;Mingǝçevir;Mingəçevir;ming gai qia wu er;Μινγκατσεβίρ;Мингечаур;明盖恰乌尔; +city::586523;Ganja;Elisavetpol;Elizavetpol';Elizavetpol’;Gaencae;Gaendz;Gaendzjae;Ganca;Gandja;Gandza;Gandzha;Gandzhe;Gandża;Gandža;Ganga;Ganja;Ganjak;Ganĝa;Ganҷa;Gence;Gendzakh;Gendze;Gendže;Gendžė;Gjandzha;Gjanzha;Gyandzha;Gäncä;Gändzjä;Gändž;Gǝncǝ;Gəncə;KVD;Kirovabad;Kirowabad;Nkantza;Yelizavetpol';Yelizavetpol’;ganja;gngh;gnjh;gyanja;jnja;knjh;zhan gu;Γκαντζά;Ганджа;Гандза;Ганџа;Ганҷа;Гянджа;Гянжа;Гәнжә;Елизаветполь;Գանձակ;גנגה;جنجا;كنجه;گانجا شہر;گنجه;گنجہ;განჯა;ギャンジャ;占贾;간자; +city::587084;Baku;BAK;Bacu;Bacú;Baki;Bako;Bakoe;Bakou;Baku;Bakue;Bakuo;Bakuu;Baky;Bakó;Bakú;Bakû;Bakü;Bakı;Baqu;Boku;Gorad Baku;Mpakou;ba ku;bakku;bako;baku;bakw;bakww;pakku;Μπακού;Баку;Бакы;Баҡы;Боку;Горад Баку;Բաքու;באקו;باكو;باکو;باکوو;बाकु;बाकू;বাকু;பாக்கு;ബക്കു;บากู;པཱ་ཁི།;ბაქო;ባኩ;バクー;巴库;바쿠; +city::824003;Bakixanov;Bakikhanov;Bakikhanova;Bakixanov;Bakıxanov;Бакиханова; +city::3186573;Zenica;Zenica;Zenicja;jenicha;se nit sa;ze ni cha;zenitsa;zenitsu~a;znyka;znytsa;znyzh;zynytsa;Зеница;Зениця;Զենիցա;זניצה;زنیتسا;زنیکا;زينيتسا;زینیتسا;เซนีตซา;ზენიცა;ゼニツァ;泽尼察;제니차; +city::3188582;Tuzla;Donja Tuzla;Gorad Tuzla;Soli;TZL;Tuzl;Tuzla;to~uzura;tu ci la;tujeulla;twzla;tzla;Горад Тузла;Тузла;تزلا;تزلہ;توزلا;ტუზლა;トゥズラ;图兹拉;투즐라; +city::3191281;Sarajevo;Bosna-Sarai;Gorad Saraeva;SJJ;Saarayego;Saireavo;Sairéavó;Saraevo;Saraevo osh;Saragebo;Saragiebo;Saragievo;Sarajeva;Sarajevas;Sarajevo;Sarajevs;Sarajevu;Sarajevó;Sarajewo;Sarajèvo;Saraxevo;Saraybosna;Sarayevo;Sarayevu;Seraium;Serayevo;Szarajevo;Szarajevó;Vrh Bosna;carayevo;sa la re wo;sai la ye fu;salayebo;saraevo;saraevu~o;sarajyww;sarayavea;sarayebho;sarayevho;sarayevo;sarayewo;sarayh ww;sarayww;sarayyfw;srayyfw;srayyww;sryybw;Σαράγεβο;Σαράγιεβο;Σαραγιεβο;Горад Сараева;Сараево;Сараево ош;Сараєво;Сарајево;Сараѥво;Սարաևո;סאראיעווא;סרייבו;ساراجیوو;ساراييفو;سارايېۋو;سارایه وو;سارایوو;سارایێڤۆ;سرائیوو;سراييفو;सारायेव्हो;সারায়েভো;ਸਾਰਾਯੇਵੋ;சாரயேவோ;സരയാവോ;ซาราเยโว;ས་ར་ཇི་བོ།;სარაევო;ሳራዬቮ;サラエヴォ;塞拉耶佛;薩拉熱窩;사라예보; +city::3194828;Mostar;Mandetrium;Mostar;Mostara;Mostaras;Mostari;OMO;mo si ta er;moseutaleu;mosutaru;mwstar;mwstr;Μόσταρ;Мостар;מוסטר;موستار;モスタル;莫斯塔爾;모스타르; +city::3204222;Bihac;Bichacas;Bichačas;Bihac;Bihacium;Bihacs;Bihaç;Bihać;Bihács;Bikhach;Bikhak;bi ha qi;bi hach;bihachi;byhach;byhʼz;bykhach;bykhatsh;Бихач;Бихаћ;Бихаќ;Біхач;ביחאץ;بيخاتش;بیخاچ;بیهاچ;بیہاج;บีฮาช;ビハチ;比哈奇;비하치; +city::3204541;Banja Luka;BNX;Bagnaluka;Bana Luka;Bania Louka;Bania Luka;Banialuca;Banja Luka;Banja Luka - Bana Luka;Banja Luka - Бања Лука;Banja-Luka;Banja-Lukae;Banjaluka;Banjaluko;Banya Luka;Baņa Luka;Gorad Banja-Luka;ba ni ya lu ka;ban ya luk a;banja luka;banja lwka;banya lwka;banyaluka;Μπάνια Λούκα;Баня Лука;Баня-Лукæ;Баня-Лука;Банꙗ Лоука;Бања Лука;Горад Баня-Лука;Բանյա Լուկա;באניה לוקה;بانجا لوکا;بانيا لوكا;بانیا لوکا;बंजा लुका;บันยาลูกา;ბანია-ლუკა;バニャ・ルカ;巴尼亚卢卡;바냐루카; +city::3374036;Bridgetown;BGI;Bridgetown;Bridzhtaun;Bridztaun;Bridztaunas;Bridžtaunas;The Bridge Town;beulijitaun;brydj tawn;bu li qi dun;burijjitaun;Бриджтаун;Бриџтаун;ברידג'טאון;بريدج تاون;ብርጅታውን;ブリッジタウン;布里奇敦;브리지타운; +city::1185092;Thakurgaon;TKR;Thakurgaom;Thakurgaon;Thakus Gaon;Thākurgaom;Thākurgaon; +city::1185098;Tungi;Tangi;Tongi;Tungi;tangi;টঙ্গী; +city::1185099;Sylhet;Jalalabad;Rajnagar;Rājnagar;Silet;Sileţ;Silhatas;Silhatta;Silkhet;Silot;Silôţ;Sreehatta;Srihotto;Srihôţţo;Sylhet;Szilhet;ZYL;cil'het;shiretto;silahata;sileta;silles;sylht;sylt;xi er he te shi;Силхет;Сілет;سلہٹ;سيلهت;سیلت;सिलहट;সিলেট;சில்ஹெட்;സിൽഹെറ്റ്;シレット;錫爾赫特市;실렛; +city::1185106;Jamalpur;Jamaipur;Jamalpur;Jamālpur;Singhjani;Singhjāni; +city::1185107;Shibganj;Shibgandzh;Shibganj;Sibganj;Шибгандж; +city::1185111;Satkhira;Satkhira;Shatkhira;Sātkhira; +city::1185115;Sirajganj;SAJ;Serajganj Municipality;Siradzhgandzh;Sirajganj;Siranganj;Sirājganj;sirajaganja;Сираджгандж;সিরাজগঞ্জ; +city::1185116;Netrakona;Netrakona;Satpai;Sātpāi; +city::1185117;Narsingdi;Narsingdi;Narsinghdi;Satirpara;Satirpāra; +city::1185120;Sandwip;Sandvip;Sandwip;Sandwīp;Сандвип; +city::1185121;Shahzadpur;Sahzadpur;Shahzadpur;Shāhzādpur; +city::1185127;Ramganj;Ramganj;Ratanpur;Rāmganj; +city::1185128;Rajshahi;RJH;Radzhshakhi;Rajshahi;Rampur Baolia;Rampur Bauleah;Rampur Boalia;Rājshāhi;rajasahi;Раджшахи;রাজশাহী; +city::1185138;Pirojpur;Perijpur;Perojpur Municipality;Pirojpur; +city::1185148;Patiya;Patia;Patiya; +city::1185155;Narayanganj;Narajanganj;Narayanganj;Nārāyanganj; +city::1185159;Nagarpur;Nagarpur;Nagurpoor;Nāgarpur; +city::1185162;Mymensingh;Majmensingkh;Mymensing;Mymensingh;Nasirabad;Nasirābād;mayamanasinha;Майменсингх;ময়মনসিংহ; +city::1185166;Maulavi Bazar;Maulavi Bazar;Maulavi Bāzār;Maulvi Bazar;Maulvi Bāzār;Moulvi Bazar;Moulvi Bazar Municipality;Moulvi Bāzār; +city::1185181;Lalmanirhat;Lalmanir Hat;Lalmanirat;Lalmanirhat;Lalmonirhat;Lālmanir Hāt; +city::1185183;Laksham;Laksam;Laksham;Lākshām; +city::1185186;Comilla;CLA;Comilla;Komila;Komilla;Komille;Kumilla;Kumillā;khu mi l la;komilla;kumilla;kumirra;kwmyla;Комилла;Комилле;کومیلا;कोमिल्ला;কুমিল্লা;คูมิลลา;クミッラ; +city::1185188;Rangpur;Kotwali;Kotwāli;Mosque Rangpur;RAU;Rangpur;Rangpur City;Rangpuras;Rongpur;lang bu er shi;langpuleu;rampura;ranpuru;Рангпур;رنگپور شہر;রংপুর;ランプル;朗布尔市;랑푸르; +city::1185191;Kushtia;Khustia;Kushtia; +city::1185206;Joypur Hat;Jaipur Hat;Jaipur Hāt;Jaypur Hat;Joypur Hat;Joypur Hāt; +city::1185207;Ishurdi;IRD;Ishurda;Ishurdi; +city::1185209;Habiganj;Habiganj;Habiganj Bazar;Habiganj Sadar;Hobiganj; +city::1185224;Feni;Feni;Feni Bangladesh;Fenny; +city::1185236;Raipur;Deyanatpur;Deyānatpur;Raipur;Rajpur;Raypur;Rāipur;Райпур; +city::1185241;Dhaka;DAC;Daaka;Daca;Dacca;Dacca - dhaka;Dacca - ঢাকা;Daka;Dakah;Dakk;Dakka;Dakkae;Dakke;Dako;Deka;Dgaka;Dhaka;Dháka;Dhâkâ;Dəkkə;Gorad Daka;Mujib City;Ntaka;Ntakka;da ka;daka;dakka;dhaka;dhakka;dka;takka;thaka;Ντάκα;Ντάκκα;Горад Дака;Даака;Дака;Даккæ;Дакка;Дакке;Дгака;Դաքքա;דאקא;דאקה;داكا;داکا;دكا;ڈھاکہ;ޑާކާ;ढाका;ঢাকা;ਢਾਕਾ;ઢાકા;ଢାକା;டாக்கா;ఢాకా;ಢಾಕಾ;ഢാക്ക;ඩකා;ธากา;དྷ་ཁ།;ဒါကာမြို့;დაკა;ዳካ;ダッカ;达卡;達卡;다카; +city::1185252;Khagrachhari;Changrachhari;Khabangpari;Khagrachari;Khagrachhari;Khagrāchari;Khagrāchhari;Kkhagrachari;Кхаграчари; +city::1185263;Bhairab Bazar;Bhairab Bazar;Bhairab Bāzār;Bhairab Town; +city::1185281;Bagerhat;Bagerhat;Bagerhat Town;Bagerkhat;Bagherhat;Bāgerhāt;Bāgherhāt;Багерхат; +city::1185293;Narail;Aladatpur;Alādātpur;Narail;Naral;Narāl; +city::1185920;Tungipara;Tongipara;Tungipara;Tungipāra; +city::1187530;Sonargaon;Sonargaon;Sonārgaon;Сонаргаон; +city::1188569;Sarishabari;Sarisabar;Sarisabari;Sarishabari;Sarishābāri;Sarsabari; +city::1191368;Palang;; +city::1192366;Par Naogaon;Par Naogaon;Pār Naogaon; +city::1196292;Lakshmipur;Lakshmipur;Lakshmipur Jela;Lakshmipur Zila;Lakshmīpur;laksmipura jela;লক্ষ্মীপুর জেলা; +city::1203344;Faridpur;; +city::1203891;Dinajpur;Dinajpur;Dinājpur; +city::1205733;Chittagong;CGP;Cattagram;Caṭṭagrām;Cetagons;Chitagong;Chittagong;Chittagong Ghat;Chottogram;Chôţţogram;Citagaon;Citagong;Citagonga;Citagongas;Citagongo;Cittaqonq;Cottogram;Csittagong;Islamabad;Tsitankon'nk;catagamva;cattagrama;chitagong;chittagon;chytagwng;cirragean;cit ta kxng;citagonga;cittagang;cittagonga;cittakon;ji da gang;ji da gang shi;shytaghwngh;shytajwnj;zytgwng;Çitagong;Çittaqonq;Ćottogram;Ĉitagongo;Čattagrám;Čitagonga;Čitagongas;Čitágáon;Čėtagons;Τσιταγκόνγκ;Читагонг;Читтагонг;Читтаґонґ;טשיטאגאנג;ציטגונג;شيتاجونج;شيتاغونغ;چٹاگانگ;چیتاگونگ;चटगाँव;चट्टग्राम;चिटागोंग;চট্টগ্রাম;ચિત્તાગોંગ;சிட்டகொங்;చిట్టగాంగ్;ಚಿತ್ತಗಾಂಗ್;ചിറ്റഗോങ്;จิตตะกอง;စစ်တကောင်းမြို့;ჩიტაგონგი;チッタゴン;吉大港;吉大港市;치타공; +city::1336133;Satkania;Satkania;Sātkania; +city::1336134;Cox's Bazar;CXB;Cox's Bazar;Cox’s Bāzār;Koks-Bazar;Кокс-Базар; +city::1336135;Khulna;Khulna;Khulnâ;Kkhelna;Kkhulna;Kulna;Kulno;khulana;khwlna;ku er na shi;kulna;kuruna;Кулна;Кхелна;Кхулна;خولنا;کھلنا;खुलना;খুলনা;குல்னா;クルナ;库尔纳市;쿨나; +city::1336136;Bhola;Bhola;Bhola District;Bkhola;Huyen Bhola;Huyện Bhola;bhola jela;bhola jila;bo la xian;Бхола;ضلع بھولا;ভোলা জিলা;ভোলা জেলা;波拉縣; +city::1336137;Barisal;BZL;Barisal;Barisal Sadar;Barisāl;Barīsal Sadar;barisala;Барисал;বরিশাল; +city::1336140;Jessore;JSR;Jessore; +city::1336143;Pabna;Pabna;Pabne;Pābna;Пабне; +city::1336144;Tangail;Tangail;Tāngāil; +city::1337233;Bogra;Bogora;Bogra;bagura;bogura;bwgra;Богра;بوگرا;বগুড়া;ボグラ; +city::1337240;Nawabganj;Nawabganj;Nawābganj; +city::1337245;Madaripur;; +city::1337248;Sherpur;Sherpur; +city::1337249;Kishorganj;Kisharganj;Kishoreganj;Kishoreganj Municipality;Kishorganj; +city::6545349;Saidpur;SPD;Syedpur;saiyadapura;সৈয়দপুর; +city::7483743;Puthia;Puthia;Putkhija;Путхия; +city::7483813;Natore;Nator;Natore;Nātor;Натор; +city::7701354;Azimpur;Azimpur Dhaka Bangladesh; +city::9827976;Paltan;Paltan Dhaka Bangladesh; +city::2784821;Verviers;Verv'e;Verve;Vervi;Vervia;Vervie;Verviers;Vervje;Vervjė;Vervî;beleubie;vervie;vu~eruvu~ie;wei er wei ye;wrwyh;Вервие;Вервье;Вервє;Вервје;ورویه;ვერვიე;ヴェルヴィエ;韦尔维耶;베르비에; +city::2785341;Tournai;Doornik;Doornyk;Tornai;Tournai;Tournay;Turnacum;Turne;Turnė;ZGQ;to~urune;tu er nai;tuleune;twrnay;twrnh;Τουρναί;Турне;טורנה;تورناي;تورنه;ตูร์แน;トゥルネー;图尔奈;투르네; +city::2786578;Sint-Niklaas;Saint-Nicolas;Sint-Niklaas;Sint-Niklas;Синт-Никлас; +city::2786824;Seraing;Seraing;Sere;Seren;Serenas;Serranius;Serè;se lan;selaeng;seran;sex ræng;srn;Серен;سرن;เซอแร็ง;セラン;瑟兰;세랭; +city::2787889;Roeselare;Roeselare;Roeselare vald;Roeselave;Roeseloare;Roulers;Rouselare;Ruselare;Ruselarė;lu se la lei;lusellale;ruserare;rwslarh;Руселаре;روسلاره;ルーセラーレ;鲁瑟拉勒;루셀라레; +city::2789786;Ostend;OST;Oostende;Oostenn;Ostend;Ostenda;Ostende;Ostendo;Ostendė;ao si teng de;astent;awstndh;oseutendeo;osutende;Οστένδη;Остенде;אוסטנדה;اوستنده;ஆஸ்டெண்ட்;オーステンデ;奥斯滕德;오스텐더; +city::2790471;Namur;Gorad Namjur;Name;Namen;Nameur;Namir;Namira;Namiuras;Namiūras;Namjur;Namouer;Namur;Namurcum;Namuro;Namyr;Namyur;Namīra;QNM;na mu er;namu r;namwileu;namwr;namyuru;nmwr blzhyk;Ναμύρ;Горад Намюр;Намир;Намюр;Նամյուր;נאמור;نامور;نمور، بلژیک;นามูร์;ናሙር;ナミュール;那慕爾;나뮈르; +city::2790595;Mouscron;MWW;Moeschroen;Moeschroên;Moeskroen;Moucron;Mouscron;Mukronas;Musera;Muskron;Muskrono;museukeulong;musukuron;mwzkrwn;Мускрон;موزکرون;ムスクロン;무스크롱; +city::2790869;Mons;Berge;Bergen;Bergn;Gorad Mons;Mon;Mons;Monsa;Monsas;Mont;Montes;mamsa;meng si;mngs;mongseu;monsu;mwn;mwns;Μονς;Горад Монс;Монс;Մոնս;מונס;مون;مونس;माँस;มงส์;モンス;蒙斯;몽스; +city::2791537;Mechelen;Gorad Mekhelen;Malinas;Malines;Mechele;Mechelen;Mechelenas;Mecheln;Mechlinia;Mehleno;Mekhelen;Meĥleno;ZGP;me khexlein;mehellen;meheren;mei he lun;mkln;mshlan;Горад Мехелен;Мехелен;מכלן;مشلان;เมเคอเลิน;メヘレン;梅赫伦;메헬렌; +city::2792413;Liege;Gorad L'ezh;L'ezh;LGG;Leck;Leodic;Leodicum;Leodium;Lidje;Liege;Liegi;Liego;Lieja;Liex;Liez;Liezh;Lieĝo;Lige;Lijezh;Liège;Lièja;Ljez;Ljeza;Ljezas;Ljež;Lježas;Ljēža;Luettich;Luik;Luttich;Lutych;Luuk;Léck;Lüttich;Lēodic;Suguru;Sùguru;lie ri;lieju;liezhi;lija;lyj;lyyj;lyyz;lyzh;rieju;Λιέγη;Горад Льеж;Лиеж;Лијеж;Льеж;Льєж;Լիեժ;לייז;ליעזש;لييج;لیج;لیژ;लीज;ลีแยฌ;လိဂျမြို့;ლიეჟი;リエージュ;列日;리에주; +city::2792482;Leuven;L'oven;Leouben;Leuve;Leuven;Ljoven;Loewen;Louvain;Lovaina;Lovan;Lovanio;Lovanium;Lovaň;Loveno;Luven;Löwen;ZGK;lu wen;revu~en;ruvu~en;Λέουβεν;Лувен;Льовен;Лёвен;ルーヴェン;レーヴェン;鲁汶; +city::2793508;La Louviere;El Lovire;La Louviere;La Louvière;La Luvjer;La Luvjeras;La-Luv'er;Louvierre;Luparia;Luvier;la lu wei ye er;la lwwyr;lalubieleu;Ла Лувјер;Ла-Лувьер;Лувиер;لا لوویر;ラ・ルヴィエール;拉卢维耶尔;라루비에르; +city::2794055;Kortrijk;Contrai;Cortoriacum;Cortrique;Courtrai;Gorad Kortrehjk;KJK;Kortrajk;Kortreika;Kortreikas;Kortrejk;Kortrejko;Kortrijk;Kortrik;Kortryk;ke te lai ke;khxrth rikh;koleuteuleikeu;kortrejk;korutoreiku;kwrtryk;qwrtryyq;Горад Кортрэйк;Кортрајк;Кортрейк;קורטרייק;کورتریک;คอร์ทไรค์;コルトレイク;科特赖克;코르트레이크; +city::2796491;Hasselt;Asselt;Gasselt;Gorad Khaselt;Haselt;Haseltas;Haselto;Hasselt;Khaselt;Khasselt;QHA;aslt;ha se er te;has sel th;haselteu;hasseruto;Άσσελτ;Гасселт;Горад Хаселт;Хаселт;Хасселт;Հասելտ;اسلت;ฮัสเซลท์;ハッセルト;哈瑟尔特;하셀트; +city::2797656;Gent;GNE;Gaent;Gand;Gandavum;Gandawa;Gande;Gant;Gante;Ganti;Gent;Gentas;Gente;Gento;Ghent;Gint;Gorad Gent;Gænt;gen te;genta;ghnt;gnt;henteu;hento;jenta;jnt;ken t;khenta;khnt;Γάνδη;Гент;Горад Гент;Գենտ;גנט;جنت;خنت;غنت;غینٹ;खेंट;गेंट;জেন্ট;เกนต์;ဂင့်မြို့;გენტი;ヘント;根特;헨트; +city::2797670;Genk;Genck;Genk;Генк; +city::2800481;Charleroi;Carleroe;Carleroé;Caroloregium;Charleroi;Gorad Sharlerua;Sarleroua;Sarlerua;Sarlrua;Sharleroa;Sharlerua;Sharlroa;Tchalerwe;Tchålerwè;char lex raw;charlyrwyy;sha lei luo wa;sharlerua;sharlrwa;sharlwrwa;sharururowa;syaleullua;Šarlerua;Šarlruā;Σαρλερουά;Горад Шарлеруа;Шарлероа;Шарлеруа;Шарлроа;Շառլեռուա;שרלרואה;شارلروآ;شارلوروا;چارلیروئی;ชาร์เลอรัว;შარლერუა;シャルルロワ;沙勒罗瓦;샤를루아; +city::2800866;Brussels;An Bhruiseil;An Bhruiséil;BRU;Breissel;Brisel;Brisele;Briuselis;Brjuksel;Brjusel';Brjussel';Brueksel;Bruessel;Bruesszel;Bruiseal;Bruksel;Bruksela;Brukseli;Brukselo;Brusehl';Brusel;Brusela;Bruselas;Bruseles;Bruselj;Bruselo;Brusel·les;Brussel;Brussele;Brussels;Brussel·les;Bruxel;Bruxelas;Bruxellae;Bruxelles;Brwsel;Bryssel;Bryusel;Bryxelles;Bréissel;Brüksel;Brüssel;Brüsszel;Citta di Bruxelles;Città di Bruxelles;City of Brussels;Kota Brusel;beulwisel;braselsa;brassels;briuseli;brwksl;brysl;bu lu sai er;buryusseru;Βρυξέλλες;Брисел;Брусэль;Брюксел;Брюсель;Брюссель;Բրյուսել;בריסל;بروكسل;بروکسل;بريۇسسېل;ܒܪܘܟܣܠ;ब्रसेल्स;บรัสเซลส์;ბრიუსელი;ブリュッセル;布魯塞爾;布鲁塞尔;브뤼셀; +city::2800931;Brugge;Brige;Briuge;Briugė;Briz;Brizh;Briž;Brjuge;Brjugge;Broegge;Brudje;Bruegge;Brugae;Bruges;Brugge;Bruggy;Brugia;Brugo;Bruhhe;Brujas;Bruxas;Bruza;Bruĝo;Brycg;Brygge;Bryugge;Bryz;Brögge;Brügge;Gorad Brugeh;beulwiheo;briuge;bruch;bruja;brwj;brwkhh;brwyz;brwz;bu lu he;bu lu ri li shi zhong xin;buruhhe;Μπρυζ;Бриж;Брюгге;Брюге;Горад Бругэ;Բրյուգգե;ברוז;بروج;بروخه;برویز;ब्रूज;บรูช;ბრიუგე;ブルッヘ;布吕赫;布鲁日历史中心;브뤼허; +city::2803138;Antwerpen;ANR;Amberes;Amberis;Amversa;Anberes;Antuairp;Antuerpen;Antuerpia;Antuérpia;Antverpen;Antverpenas;Antverpene;Antverpeno;Antverpens;Antverpia;Antverpy;Antwarp;Antwerp;Antwerpa;Antwerpe;Antwerpen;Antwerpia;Antwerpium;Antwerpn;Antwyrpijo;Antwérp;Anvers;Anversa;Anverse;Anvèrs;Anvérse;Gorad Antverpen;Kota Antwerpen;On-thit-vi-phu;amtavarpa;an te wei pu;anteubeleupen;antou~erupen;antowapu;antverp;antwrb;antwrp;antwyrb;Ôn-thi̍t-ví-phú;Αμβέρσα;Антверпен;Горад Антверпен;Անտվերպեն;אנטווערפן;אנטוורפן;آنتورپ;أنتويرب;انتورب;انتويرب;انٹیورپ;अँटवर्प;ஆண்ட்வெர்ப்;ആന്റ്‌വെർപ്;แอนต์เวิร์ป;အန့်တွပ်မြို့;ანტვერპენი;アントウェルペン;アントワープ;安特卫普;安特衞普;안트베르펜; +city::2803448;Aalst;Aalst;Alost; +city::2357043;Ouahigouya;OUG;Ouahigouya;Uahiguja;Uakhiguja;Vakhiguja;Waiguya;wa xi gu ya;wahiguya;waiguya;Вахигуя;Уахігуя;ואיגויה;واہیگؤیا;ワヒグヤ;瓦希古亞;와이구야; +city::2357048;Ouagadougou;Gorad Uagadugu;Huagadugu;OUA;Ouagadouga;Ouagadougou;Ouankantounkou;Ougadougou;Owagadugu;Uagadougou;Uagadugu;Uagaduguo;Uagadugú;Uaqaduqu;Vagadugu;Wagadugu;awagadwgw;uagadugu;vagadugu;vakatuku;wa jia du gu;wa ka du ku;wagado~ugu;wagadugu;wagadwgw;wagadwwgww;waghadwghw;Ουαγκαντουγκού;Ουαγκαντούγκου;Горад Уагадугу;Уагадугу;Ուագադուգու;ואגאדוגו;וואגאדוגו;آواگادوگو;اوآگادوگو;اوگاڈوگو;واغادوغو;واگادووگوو;واگادوگو;वागाडुगू;ਵਾਗਾਦੁਗੂ;வாகடூகு;วากาดูกู;ཨོ་འ་ག་དོའུ་གོའུ།;უაგადუგუ;ዋጋዱጉ;ワガドゥグー;瓦加杜古;와가두구; +city::2358946;Koudougou;Kondougou;Koudougou;Kudugu;Kuduguo;khu du ku;ku du gu;kudo~ugu;kudugu;kwdwgw;Кудугу;کؤدؤگؤ;کودوگو;คูดูกู;クドゥグ;库杜古;쿠두구; +city::2362344;Bobo-Dioulasso;BOY;Bobo Dioulasso;Bobo Diulasas;Bobo-Dioulasso;Bobo-Diulaco shaary;Bobo-Diulaso;Bobo-Diulasso;Bobodjulaso;bo bo di wu la suo;bobodiullaso;bwbw dywlasw;bwbw-dywlasw;bwbwdywlasw;Бобо-Диулаco шаары;Бобо-Диуласо;Бобо-Діуласо;بوبو دیولاسو;بوبو-دیؤلاسو;بوبوديولاسو;ボボ・ディウラッソ;博博迪乌拉索;보보디울라소; +city::2362909;Banfora;BNR;Banfora;Banforu;banfora;banfwra;bang fu la;bangpola;Банфора;Банфору;באנפורה;بانفورا;バンフォラ;邦福拉;방포라; +city::725578;Yambol;Iambol;JAM;Jambol;Jamboli;Yambol;Yampolis;Ямбол; +city::725712;Vratsa;Ivraca;Vraca;Vracae;Vrata;Vratca;Vratsa;Vrattsa;Vratza;Vrața;Wraca;Wraza;beulacha;fratsa;fu la cha;vratsa;vuratsu~a;wratsa;İvraca;Βράτσα;Врацæ;Враца;וראצה;فراتسا;وراتسا;ڤراتسا;ヴラツァ;弗拉察;브라차; +city::725905;Vidin;Vidin;Vidinas;Vidine;Vidinu;Vintin;Widin;Widyn;Widyń;bidin;fydn;vu~idin;wdyn;wei ding;wydyn;Βίντιν;Видин;Видинъ;וידין;فيدن;ودین;ویدین;ヴィディン;維丁;비딘; +city::725993;Veliko Turnovo;Tarnovo;Tarnowo;Ternovo;Tirnovo;Trnova;Trnovo;Turnovo;Tărnovo;Tărnowo;Tŭrnovo;Veliko T"rnovo;Veliko Tarnovo;Veliko Tărnovo;Weliko Tarnowo;Wielkie Tyrnowo;vu~eriko・tarunovu~o;Велико Търново;ヴェリコ・タルノヴォ; +city::726050;Varna;Barna;Gorad Varna;Odessos;Odessus;Stalin;VAR;Varna;Varna khot;Varnae;Várna;Warna;baleuna;farna;varna;vharna;vu~aruna;wa er na;war na;warna;wʼrnh;Βάρνα;Варнæ;Варна;Варна хот;Горад Варна;Վառնա;וארנה;فارنا;وارنا;व्हर्ना;วาร์นา;ვარნა;ヴァルナ;瓦爾納;바르나; +city::726418;Dobrich;Bazargic;Dobric;Dobrich;Dobrici;Dobricius;Dobricz;Dobritch;Dobritj;Dobrits;Dobritsch;Dobritsj;Dobritx;Dobritš;Dobriç;Dobriĉ;Dobrič;Dobričius;Dòbritx;Gorad Dobrych;Hadzi-Oghlu-Pazardzik;Hadži-Oghlu-Pazardžik;Khadzhioglu Bazardzhik;Khadzhioglu Pazardzhik;Ntomprits;Tolbuhin;Tolbukhin;dobeulichi;doburichi;duo bu li qi;dwbrch;dwbrych;dwbrytsh;dwbryz;Ντόμπριτς;Горад Добрыч;Добрич;Դոբրիչ;דובריץ;دوبريتش;دوبرچ;دوبریچ;ドブリチ;多布里奇;도브리치; +city::726848;Stara Zagora;Eski Zagra;Eski Zağra;Gorad Stara-Zagora;SZR;Stara Sagora;Stara Zagora;Stara-Zagora;Stara-Zagorae;Stará Zagora;astara zagwra;jiu zha ge la;seutalajagola;stara zaghwra;stara zagwra;Στάρα Ζαγόρα;Горад Стара-Загора;Стара Загора;Стара Ꙁагора;Стара-Загорæ;Стара-Загора;Ստարա Զագորա;סטארה זאגורה;استارا زاگورا;ستارا زاغورا;ستارا زاگورا;სტარა-ზაგორა;スタラ・ザゴラ;舊扎戈拉;스타라자고라; +city::727011;Sofia;Gorad Safija;SOF;Serdica;Sofi;Sofia;Sofiae;Sofie;Sofii;Sofij;Sofija;Sofija osh;Sofijo;Sofio;Sofiya;Sofiä;Sofiýa;Sofja;Sofya;Sofía;Soifia;Sophia;Sredets;Suofeje;Suofėjė;Szofia;Szófia;Sòfia;Sófia;Sófía;Sóifia;Ulpia Serdica;cohviya;saphiya;seaphiya;sofeiy;sofi'a;sofia;sophiya;sopia;suo fei ya;swfya;swfyh;swpyh;Σόφια;Горад Сафія;Софи;Софий;София;София ош;Софија;Софія;Софїꙗ;Սոֆիա;סאפיע;סופיה;سوفىيە;سۆفیا;صوفيا;صوفیه;صوفیہ;صوٙفیە;सोफिया;সফিয়া;ਸੋਫ਼ੀਆ;சோஃவியா;സോഫിയ;โซเฟีย;སོ་ཧྥི་ཡ།;სოფია;ሶፊያ;ソフィア;索菲亞;소피아;𐍃𐍉𐍆𐌹𐌰; +city::727079;Sliven;Gorad Sliven;Islimiye;Islimje;Sliven;Slivenas;Slivno;Sliwen;aslmyh;aslywn;seulliben;si li wen;sliveni;slybn;slyfn;slywyn;surivu~en;sylwyn;Σλίβεν;Горад Слівен;Сливен;Слівен;סליבן;اسلمیه;اسلیون;سليفن;سلیوین;سلیڤێن;سیلوین;სლივენი;スリヴェン;斯利文;슬리벤; +city::727233;Shumen;Choumen;Choumèn;Kolarovgrad;Schumen;Shoumen;Shumen;Shumla;Sjumen;Sumen;Sumla;Sumnu;shumen;Şumnu;Šumen;Šumla;Шумен; +city::727523;Ruse;ROU;Roese;Rouse;Rousse;Roussé;Roustchouk;Ruschuk;Ruschuq;Rusciuk;Rusclink;Ruscuk;Ruse;Rushchuk;Rushtuk;Russe;Rustschuk;Rusze;Rusçuk;Rusė;Ruzo;Ruščuk;Saray-Makhle;Sexantaprista;lu sai;luse;ru se;ruse;rwsh;rwsh blgharstan;Ρούσε;Роусє;Русе;Ռուսե;רוסה;روسه;روسه، بلغارستان;روسے، بلغاریہ;ڕوسێ;รูเซ;რუსე;ルセ;鲁塞;루세; +city::728193;Plovdiv;Eumolpias;Filiba;Filibe;Filipopol;Filipopul;Filippopol;Filippopol';Filippopoli;Flavia;Julia;PDV;Philippopel;Philippopoli;Philippopolis;Philippoupole;Pinople;Plodin;Ploudin;Plovdin;Plovdiv;Plovdiva;Plovdivas;Plowdiw;Plóvdiv;Poulpoudeva;Płowdiw;Sinople;Trimontium;Ulpia;Vinipoppolis;blwfdyf;peullobeudipeu;phlx fdif;plovhadivha;plwbdyb;plwwdyf;plwwdyw;pu luo fu di fu;purovudifu;Φιλιππούπολη;Пловдив;Фїлїппополь;Պլովդիվ;פלאוודיוו;פלובדיב;بلوفديف;پلوودیف;پلوودیو;प्लॉव्हडिव्ह;พลอฟดิฟ;პლოვდივი;プロヴディフ;普罗夫迪夫;플로브디프; +city::728203;Pleven;Gorad Pleven;Pleven;Plevenas;Plevna;Plevne;Plewen;Plyeven;blfn;peulleben;plbn;plwn;plywyn;pu lie wen;purevu~en;Πλέβεν;Горад Плевен;Плевен;Պլևեն;פלבן;بلفن;پلون;پلیوین;პლევენი;プレヴェン;普列文;플레벤; +city::728330;Pernik;Dimitrovo;Gorad Pernik;Pernik;Pernikas;brnyk;pei er ni ke;peleunikeu;per nik;peruniku;prnyk;prnyq;pyrnk;Πέρνικ;Горад Пернік;Перник;פרניק;برنيك;پرنیک;پیرنک;پێرنیک;เปร์นิก;ペルニク;佩尔尼克;페르니크; +city::728378;Pazardzhik;Pasardschik;Pasardshik;Pazarcik;Pazarcık;Pazardjik;Pazardsjik;Pazardzhik;Pazardzik;Pazardzikas;Pazardzjik;Pazardĵik;Pazardżik;Pazardžik;Pazardžikas;Pazartzik;Pàzardjik;Tatar Bazardzik;Tatar Bazardžik;Tatar Pazardjik;Tatar Pazardzhik;Tatar Pazardzik;Tatar Pazardžik;Tatar-Bazardzhik;bazarjyk;pa sar cik;pa zha er ji ke;pajaleujikeu;pazarjk;pazarjyk;pazarjyk blgharstan;pazarjyk bwlgarya;pazarujiku;Πάζαρτζικ;Пазарджик;Пазарџик;פאזארדזיק;بازارجيك;پازارجک;پازارجیک;پازارجیک، بلغارستان;پازارجیک، بولگاریا;ปาซาร์จีก;パザルジク;帕扎爾吉克;파자르지크; +city::729794;Kardzhali;Exrdzhali;Kardjali;Kardschali;Kardshali;Kardzali;Kardzhali;Kardzjali;Kardĵali;Kardžali;Kartzali;Kerdzalai;Kerdzhali;Kerdžalai;Kerjali;Kircaali;Kirdjalu;Kirdjalü;Kirdzali;Kirdzalu;Kirdzhali;Kirdžali;Kirdžalü;Kirjali;Krdjali;Krdzali;Krdžali;Kudjaly;Kurdzali;Kurdzhale;Kurdzhali;Kurdzhalii;Kyakyrdzhali;Kyrdzali;Kyrdzhali;Kyrdżali;Kărdjali;Kărdzhali;Kărdžali;Kırcaali;Kŭrdzhale;Kŭrdzhali;Kŭrdzhalii;Kŭrdžali;kardzhaly;karjly;ke er gu li;keoleujalli;kurujari;Κάρτζαλι;Кирджалі;Крџали;Кърджали;Кырджали;קרדזאלי;كارجلي;کاردژالی;კირჯალი;クルジャリ;克爾賈利;커르잘리; +city::730435;Haskovo;Chaskoi;Chaskovas;Chaskovo;Chaskowo;Chasköi;Gorad Khaskava;HKV;Haskioj;Haskiöj;Haskovo;Haskoy;Hasköy;Khaskovo;Khàskovo;ha si ke wo;haseukobo;haskwfw;hasukovu~o;khaskww;Ĥaskovo;Χάσκοβο;Горад Хаскава;Хасково;חאסקובו;خاسکوو;خاسکۆڤۆ;هاسكوفو;هاسکوفو;ہسکوا;ハスコヴォ;哈斯科沃;하스코보; +city::730496;Kazanlak;Kasanlak;Kasanlăk;Kazanl"k;Kazanlak;Kazanlako;Kazanlek;Kazanlik;Kazanlk;Kazanluk;Kazanlyk;Kazanlăk;Kazanlık;Kazanlŭk;Kazanłyk;qʼzʼnlq;Казанлък;Казанлык;קאזאנלק; +city::731549;Gabrovo;Gabrova;Gabrovas;Gabrovo;Gabrowo;Gorad Gabrava;Gàbrovo;Nkamprovo;gabeulobo;gabrww;gabrwww;gaburovu~o;gbrwbw;gbrwwa;ghabrwfw;jia bu luo wo;Γκάμπροβο;Габрово;Горад Габрава;Գաբրովո;גברובו;غابروفو;گابروو;گابرووو;گابرۆڤۆ;گبرووا;ガブロヴォ;加布羅沃;가브로보; +city::732770;Burgas;BOJ;Boergas;Bourgas;Bournkas;Burgas;Burgas khot;Burgasa;Burgasas;Burgaso;Burgasz;Burgaz;Burghaz;Burgàs;Burqas;Gorad Burgas;Mpournkas;brgas;bu er jia si;buleugaseu;burgasa;burgasi;burugasu;bwrgas;bwrghas;bwrgs;Μπουργκάς;Μπουργκας;Μπούργκας;Бургас;Бургас хот;Горад Бургас;Пѷргъ;Բուրգաս;בורגס;برگاس;بورغاس;بورگاس;बुर्गास;ბურგასი;ブルガス;布爾加斯;부르가스; +city::733191;Blagoevgrad;Blagoevgrad;Blagoewgrad;Blagojevgrad;Blagojevgradas;Blagojewgrad;Blagoëvgrad;Blagòevgrad;Blankoevnkrant;Blaqoyevqrad;Błagojewgrad;Djumaja;Dzhumaya;Dzuma;Dzumaja;Džuma;Džumaja;Gorad Blagoeugrad;Gorna Djoumaia;Gorna Djumaya;Gorna Dshumaja;Gorna Dzhumaja;Gorna Dzhumaya;Gorna Dzumaja;Gorna Džumaja;Yukari Cuma;Yukarı Cuma;beullago-ebeugeuladeu;blaghwyfghrad;blagoevgradi;blagwwgrad;blagwyywgrad;bu la ge ye fu ge lei;buragoevugurato;Μπλαγκόεβγκραντ;Благоевград;Благоєвград;Горад Благоеўград;Горна Джумая;Բլագոևգրադ;בלגואבגרד;بلاغويفغراد;بلاگوئیوگراد;بلاگووگراد;ბლაგოევგრადი;ブラゴエヴグラト;布拉戈耶夫格勒;블라고에브그라드; +city::733618;Asenovgrad;Asenovgrad;Assenovgrad;Assenovgrade;Assenowgrad;Stanimaka;Асеновград; +city::290247;Madinat Hamad;Hamad Town;Madinat Hamad;Madīnat Ḩamad;madinat hamad;مَدِينَة حَمَد; +city::290269;Dar Kulayb;Dar Chulaib;Dar Kulaib;Dar Kulayb;Dār Kulaib;Dār Kulayb;dar kulayb;دَار كُلَيْب; +city::290332;Al Muharraq;Al Muharrak;Al Muharraq;Al Muḩarraq;Al'-Mukharrak;Al-Muharrak;Al-Muharraq;Al-Muḥarrak;Moharek;Muharrak;Muharraq;Muharraq Town;Muhurraq;aalmuharaq;mhrq;Аль-Мухаррак;اَلْمُحَرَّق;محرق; +city::290340;Manama;Al Manama;Al Manamah;Al Manāma;Al Manāmah;Al-Manama;Al-Manamah;Al-Manāmah;Gorad Manama;Maenamae;Manaama;Manam;Manama;Manamae;Manamah;Manameh;Manamo;Manáma;Manāma;Menama;Mename;Mänamä;WGF;aalmanamat;almnamh;almnamt;mai na ma;mai na mai;manama;mnamh;mnamہ;Μανάμα;Горад Манама;Манамæ;Манама;Մանամա;מנאמה;المنامة;المنامه;اَلْمَنَامَة;منامه;منامہ;مەنامە;मनामा;মানামা;ਮਨਾਮਾ;ମାନାମା;மனாமா;മനാമ;มานามา;མ་ན་མ།;მანამა;ማናማ;マナーマ;麥納瑪;麦纳麦;마나마; +city::385038;Ar Rifa';Ar Rifa;Ar Rifa`;Ar Rifā‘;Riffa;اَلرِّفَاع; +city::425378;Bujumbura;BJM;Boujoumboura;Budzumbura;Bujumbura;Bujumburo;Bujumbúra;Buj·umbura;Buyumbura;Buzhumbura;Buzumbura;Buĵumburo;Bużumbura;Bužumbura;Bužumbūra;Bújúmbúra;Bûjûmbûra;Gorad Buzhumbura;Mpouzoumpoura;Usumbura;bajmbwra;bu cum bur a;bu qiong bu la;bu song bu la;bujubura;bujumabura;bujumbula;bujumbura;bujunbura;buzhumbura;bwgwmbwrh;bwjwmbra;bwjwmbwra;pucumpura;Μπουζουμπούρα;Бужумбура;Буџумбура;Буҷумбура;Горад Бужумбура;Բուժումբուրա;בוגומבורה;בוזשומבורע;باجمبورا;بوجومبرا;بوجومبورا;बुजुंबुरा;ਬੁਜੁੰਬੁਰਾ;ବୁଜୁମବୁରା;புசும்புரா;บูจุมบูรา;བུ་ཇུམ་བུ་ར།;ბუჟუმბურა;ቡጁምቡራ;ブジュンブラ;布松布拉;布琼布拉;부줌부라; +city::431748;Muyinga;Mujinga;Muyinga;Муйинга; +city::2391893;Save;SVF;Save;Savé; +city::2392087;Porto-Novo;Borto-Novo;Gorad Porta-Nova;Porto Neuvo;Porto Nobo;Porto Novas;Porto Novo;Porto-Novo;Portonovo;Portus Novus;Poto-Novo;Pòrto Neuvo;Pòto-Novo;Pôrto-Novo;bo duo nuo fu;bo tu nu bu;bwrtw nwfw;poleutonobo;porato-novo;porto-novho;porutonobo;pwrtw nwbw;pwrtw nwww;pxr to-no wo;xin gang;Πόρτο Νόβο;Πόρτο-Νόβο;Горад Порта-Нова;Порто Ново;Порто-Ново;Պորտո Նովո;פארטא-נאווא;פורטו נובו;بورتو نوفو;پورتو نووو;پورٹو نووو;پۆرتۆ نۆڤۆ;पोर्तो-नोव्हो;ਪੋਰਤੋ-ਨੋਵੋ;ปอร์โต-โนโว;པོར་ཊོ་-ནོ་བོ།;პორტო-ნოვო;ፖርቶ ኖቮ;ポルトノボ;新港;波圖奴埠;波多诺伏;포르토노보; +city::2392204;Parakou;PKO;Parakou;Paraku;pa la ku;palaku;paraku;parakw bnyn;Параку;פאראקו;پاراکو، بنین;パラクー;帕拉庫;파라쿠; +city::2392308;Ouidah;Fortaleza de Sao Joao Baptista de Ajuda;Fortaleza de São João Baptista de Ajudá;Ouidah;Sao Joao Baptista de Ajuda;São João Baptista de Ajudá;Vidy;Whydah;Wida;sheng yue han bao;Виды;圣约翰堡; +city::2392505;Nikki;Nikki;Никки; +city::2392601;Natitingou;NAE;Natitingou;Natitingu;Натитингу; +city::2392897;Lokossa;Locossa;Lokossa; +city::2393693;Kandi;KDC;Kandi;Kandis;kandi;kandy bynn;kang di;kndy bnyn;Канди;کاندی، بینن;کندی، بنین;カンディ;康迪;칸디; +city::2394560;Djougou;DJA;Djougou;Jugu; +city::2394819;Cotonou;Appi;COO;Catonou;Cotonou;Cotonu;Cotonú;Gorad Katanu;Kotonou;Kotonu;Kotonuo;Kutonu;Kútọnu;ji da nu;ke tuo nu;kotonu;kottonau;kwtwnw;qwtwnw;Κοτονού;Горад Катану;Котону;קוטונו;كوتونو;کوتونو;कोतोनू;ਕੋਤੋਨੂ;கொட்டொனௌ;კოტონუ;コトヌー;吉大奴;科托努;코토누; +city::2395049;Bohicon;Bohicon; +city::2395914;Abomey-Calavi;Abome Calavi;Abomej-Kalavi;Abomey-Calavi;Kalavi;Абомей-Калави; +city::2395915;Abomey;Abome;Abomei;Abomej;Abomey;Palacios Reais de Abomei;Palácios Reais de Abomei;Абомей; +city::1820906;Bandar Seri Begawan;BWN;Banda Seri;Bandar Seri Begauan;Bandar Seri Begavan;Bandar Seri Begavanas;Bandar Seri Begawan;Bandar Sery Begawan;Bandar-Seri-Begavan;Bandar-Seri-Begavano;Bandarseribegavana;Brunei;Brunei Town;Bruni;Gorad Bandar-Sery-Begavan;Mpantar Seri Mpenkaban;badara seri begavana;ban dar se ribe ka wan;bandaleuseulibeugawan;bandar seri bagevan;bandar-seri-begavani;bandara seri bega'oyana;bandara seri begavana;bandara sri bagavana;bandarusuribugawan;bndr sry bgawan;bndr sry bkawan;bndr sry bygwan;pantar ceri pekavan;si li ba jia wan;si li ba jia wan shi;sry bgawan;Μπαντάρ Σερί Μπεγκαβάν;Бандар Сери Бегаван;Бандар-Сери-Бегаван;Бандар-Сері-Бегаван;Горад Бандар-Серы-Бегаван;Բանդար Սերի Բեգավան;בנדר סרי בגוואן;باندار سەرى بەگاۋان;بندر سري بكاوان;بندر سری بگاوان;بندر سری بیگوان;بەندەر سێری بێگاوان;سری بگاوان;बंदर स्री बगवान;बन्दर सेरी बेगवान;बन्दर सेरी बेगावान;বন্দর সেরি বেগাওয়ান;ਬੰਦਰ ਸੇਰੀ ਬੇਗਵਾਨ;பண்டர் செரி பெகாவான்;ಬಂದರ್ ಸೆರಿ ಬಗೆವನ್;ബന്ദർ സെരി ബെഗവൻ;บันดาร์เสรีเบกาวัน;སི་རི་པེ་ཀ་མཚོ་ཁུགས་གྲོང་ཁྱེར།;ဘန်ဒါဆရီဘဂါဝမ်မြို့;ბანდარ-სერი-ბეგავანი;ባንዳር ሰሪ ቤጋዋን;バンダルスリブガワン;斯里巴加湾市;斯里巴加灣;斯里巴加灣市;반다르스리브가완; +city::3901178;Yacuiba;BYC;Jakuiba;Yacuiba;Yacuíba;Якуиба; +city::3902377;Trinidad;Ciudad Trinidad;Kimsantin llaqta;La Santisima Trinidad;TDD;Trinidad;Trinidadas;te li ni da;teulinidadeu;torinida;trynydd;Тринидад;Тринідад;טרינידד;ٹرینیڈاڈ، بولیویا;ტრინიდადი;トリニダ;特立尼达;트리니다드; +city::3903320;Tarija;Ciudad Tarija;TJA;Taricha;Tarija;Tarikha;Tarixa;ta li ha;taliha;tariha;tarykha;Тариха;Таріха;تاریخا;ტარიხა;タリハ;塔里哈;타리하; +city::3903987;Sucre;Chuqichaka;Chuquisaca;Ciudad Sucre;Gorad Sukreh;Ijoloti Sukre;SRE;Sik;Soukre;Sucre;Sucre toertenelmi ovarosa;Sucre történelmi óvárosa;Sukre;Sukri;Sukro;Sukrė;Súkre;su ke lei;su ker;sukare;sukeule;sukre;sukure;swkrh;swkry;swqrh;Σούκρε;Горад Сукрэ;Иёлоти Сукре;Сукре;Սուկրե;סוקרה;سوكري;سوکره;سکرے;سۇكرې;सुक्रे;ਸੂਕਰੇ;ซูเกร;སུ་ཁུ་རེ།;სუკრე;スクレ;苏克雷;蘇克雷;수크레; +city::3904906;Santa Cruz de la Sierra;Ciudad Santa Cruz;Ciudad de Santa Cruz de la Sierra;SRZ;Santa Cruz;Santa Cruz da Serra;Santa Cruz de la Sierra;Santa-Krus-de-la-Sierra;santakurusu;Санта-Крус-де-ла-Сиерра;سانتا کروز دلاسیه‌را;サンタクルス; +city::3906466;Riberalta;RIB;Riberal'ta;Riberalta;li wei la er ta;libelalta;riberaruta;Рибералта;Риберальта;რიბერალტა;リベラルタ;里韋拉爾塔;리베랄타; +city::3907584;Potosi;Ciudad Potosi;POI;Potosi;Potosí;Putusi;bo tuo xi;bwtwsy;po to si;potoshi;potosi;pwtwsy;Ποτοσί;Потоси;Потосі;Պոտոսի;פוטוסי;بوتوسي;پوتوسی;पोतोसी;โปโตซี;პოტოსი;ポトシ;波托西;포토시; +city::3909234;Oruro;Ciudad Oruro;Gruro;ORU;Oruras;Oruro;Uru Uru;Ururu;ao lu luo;awrwrw;awrwrw bwlywya;olulo;oruro;Оруро;Օրուրո;أورورو;اورورو، بولیویا;ორურო;オルロ;奥鲁罗;오루로; +city::3910027;Montero;Monteras;Montero;Vibora;Víbora;meng te luo;montelo;montero;Монтеро;მონტერო;モンテロ;蒙特羅;몬테로; +city::3911925;La Paz;A Paz;Chukiyawu;Chuqi Yapu;Chuqiyapu;Ciudad La Paz;Gorad La-Pas;LPB;La Pas;La Pasas;La Paz;La-Pas;La-Pas shaary;La-Pazo;Lapasa;Pax;Soukre/La Paz;la ba si;la paja;la pajha;la pas;la pasa;la paz;labaz;lapaja;lapas;lapaseu;lapaz;rapasu;Λα Πας;Σούκρε/Λα Παζ;Горад Ла-Пас;Ла Паз;Ла Пас;Ла-Пас;Ла-Пас шаары;Լա Պաս;לא פאז;לה פאס;لا پاز;لاباز;لاپاز;ला पाझ;ला पास;লা পাজ;ਲਾ ਪਾਸ;ଲାପାଜ;லா பாஸ்;ലാ പാസ്;ลาปาซ;ლა-პასი;ላፓዝ;ラパス;拉巴斯;라파스; +city::3919968;Cochabamba;CBB;Ciudad Cochabamba;Cochabamba;Kocabamb;Kocabamba;Kochabamba;Kočabamb;Kočabamba;Kuchawampa;Quchapampa;ke qia ban ba;ko cha bam ba;kochabamba;kochabanba;kwchabamba;kwtshabamba;qwzbmbh;Кочабамба;קוצבמבה;كوتشابامبا;کوچابامبا;โกชาบัมบา;ཀོ་ཅ་བང་ལྦ་;კოჩაბამბა;コチャバンバ;科恰班巴;코차밤바; +city::3384987;Vitoria de Santo Antao;Victoria;Vitoria;Vitorija-de-Santu-Antan;Vitória;Витория-де-Санту-Антан; +city::3385935;Tucurui;Alcobaca;Alcobaça;TUR; +city::3386361;Timon;Flores;Timon;Тимон; +city::3386496;Teresina;Gorad Tehrehzina;Poti;THE;Teresina;Terezina;Theresina;Therezina;Vila Nova do Poti;te lei xi na;te re si na;telejina;terejina;teresina;trzynh;tyrysyna;Горад Тэрэзіна;Терезина;Терезіна;תרזינה;تيريسينا;تیریسینا;টেরেসিনা;เตเรซีนา;ტერეზინა;テレジーナ;特雷西納;테레지나; +city::3387296;Sobral;Januaria de Acaracu;Januária de Acaracu;QBX;Sobral;Sobrat;Собрал; +city::3387786;Serra Talhada;Serra-Tal'jada;Vila Bela;Villa Bella;sai la ta li ya da;serara talahada;Серра-Тальяда;সেররা টালহাডা;塞拉塔利亚达; +city::3388368;Sao Luis;Maranhao;Maranhão;SLZ;San Luisas;San-Luis;Sao Louis;Sao Luis;Sao Luis do Maranhao;Sao Luiz;Sao Luiz de Maranhao;Sao Luiz do Maranhao;Saun Luis;Saun Luís;São Luis;São Luiz;São Luiz de Maranhão;São Luiz do Maranhão;São Luís;São Luís do Maranhão;cavo luyicu;sa'o lu'isa;san-luisi;sanglu-iseu;saw lwyys;saw lwyz;sayw lwyys maranhaw;sheng lu yi si;Σάο Λουίς;Сан-Луис;Сан-Луіс;Сан-Луїс;Сао Луис;סאו לואיס;ساؤ لوئیس;ساؤ لوئیس، مارانہاؤ;سائو لوئیس، مارانهاو;ساو لويز;साओ लुईस;সাও লুইস;சாவோ லூயிசு;სან-ლუისი;サン・ルイス;圣路易斯;상루이스; +city::3388376;Sao Lourenco da Mata;San-Lorensu-da-Mata;Sao Lourenco;Sao Lourenco da Matta;São Lourenço;São Lourenço da Matta;Сан-Лоренсу-да-Мата; +city::3389321;Santa Rita;; +city::3389353;Santarem;STM;Santarem;Santarem i Brasil;Santaren;Santarenas;Santarém;Santarém i Brasil;sang ta rey;santaleng;santaren;santary para;sheng ta lun;sntrm;Сантарем;Сантарен;סנטרם;سانتاری، پارا;ซังตาเรย์;サンタレン;聖塔倫;산타렝; +city::3389609;Santa Ines;Ines;Inês;Santa-Ines;Санта-Инес; +city::3389652;Santa Cruz do Capibaribe;Capibaribe;Santa Cruz;Santa-Krus-du-Kapibaribi;santa kruja do kapibaribe;sheng ke lu si-du ka pi ba li bi;Санта-Крус-ду-Капибариби;সান্টা ক্রুজ ডো কাপিবারিবে;圣克鲁斯-杜卡皮巴里比; +city::3390288;Rio Largo;; +city::3390760;Recife;Arrecife;Fernambucum;Gorad Rehsifi;Mauricea;Mauricéa;Pernambuco;REC;Recife;Resife;Resifi;Resifė;hesiphi;hesipi;lei xi fei;li si fei;re sifi;recihpi;reshife;resiphe;resipi;risifi;rsyph;rysyf;rysyfy;Ρεσίφε;Горад Рэсіфі;Ресифе;Ресифи;Ресіфі;Ռեսիֆի;רסיפה;ريسيفي;ریسیف;रिसीफ़ी;रेसिफे;রেসিফে;হেসিফি;ரெசிஃபி;เรซีฟี;რესიფი;レシフェ;李斯腓;累西腓;헤시피; +city::3391360;Santana;Porto;Porto de Santana;Pôrto;Pôrto de Santana;Santana;Сантана; +city::3392167;Picos;PCS;Picos;Pikus;pi ku si;pikosa;pikuseu;pikusu;Пикус;পিকোস;ピークス;皮库斯;피쿠스; +city::3392242;Petrolina;PNZ;Petrolina;bi de luo li na;petrolina;Петролина;পেট্রোলিনা;彼得羅利納; +city::3392734;Paulo Afonso;Barra;Brejo;PAV;Paulu-Afonsu;pa'ulo aphonso;Паулу-Афонсу;পাউলো আফোন্সো;პაულუ-ალფონსუ;保罗·阿方索城; +city::3392740;Paulista;Paulista;Паулиста; +city::3392887;Patos;Patus;pa tu si;patosa;Патус;Պատուս;পাটোস;帕图斯; +city::3392998;Parnamirim;Eduardo Gomes;Parnamirim;Parnamirin;parnamirima;Парнамирин;পার্নামিরিম; +city::3393001;Parnaiba;Feitoria;PHB;Parnahiba;Parnahyba;Parnaiba;Parnaimpa;Porto das Barcas;Pôrto das Barcas;Sao Joao da Parnahiba;São Joao da Parnahiba;ba na yi ba;parna'iba;Παρναΐμπα;Парнаиба;পার্নাইবা;巴纳伊巴; +city::3393008;Parintins;PIN;Parintins;Parintinsa;Паринтинса; +city::3393106;Paragominas;; +city::3393400;Pacatuba;; +city::3393536;Olinda;Olinda;ao lin da;olinda;ollinda;orinda;xo ling da;Олинда;Олінда;אולינדה;ওলিন্ডা;โอลิงดา;ოლინდა;オリンダ;奧林達;올린다; +city::3394023;Natal;NAT;Natal;Natalo;Натал;נאטאל; +city::3394682;Mossoro;MVF;Mocoro;Mosoro;Moçoró;mo suo luo;mosasoro;mosoro;Мосоро;মোসসোরো;モソロー;莫索罗; +city::3395395;Marechal Deodoro;Alagoas;Alagôas;Madalena; +city::3395473;Maracanau;; +city::3395503;Maraba;MAB;Maraba;Marabá;ma la ba;malaba;maraba;Мараба;مارابا;মারাবা;马拉巴;마라바; +city::3395981;Maceio;MCZ;Macayo;Maceio;Maceió;Masejas;Masejo;Maseyo;Maçayó;ma sai yue;ma se xo;masayw;mase'i'o;maseio;masyyw;msyyʼw;Масейо;Масејо;מסייאו;ماسئیو;ماسايو;মাসেইও;มาเซโอ;მასეიო;マセイオ;马塞约;마세이오; +city::3396016;Macapa;MCP;Macapa;Macapá;Makapa;ma ka pa;makaba;makapa;Макапа;מקאפה;ماكابا;ماکاپا;मकापा;মাকাপা;มากาปา;მაკაპა;マカパ;馬卡帕;마카파; +city::3397147;Juazeiro do Norte;JDO;Jaozeiro;Joazeiro;Juazeiro;Juazeiro do Norte;Zhuazeiro do Norte;Zhuazejru-du-Norti;Zuazeiro do Norte;bei ru a ze lu;juraajaye'iro do norte;Žuazeiro do Nortė;Жуазеиро до Норте;Жуазейру-ду-Норти;জুৱাজয়েইরো ডো নোর্টে;ჟუაზეირუ-დუ-ნორტი;北茹阿澤魯; +city::3397277;Joao Pessoa;Cidade Felipea;Cidade Felipéa;Fredericia;Frederícia;Gorad Zhuan-Pesoa;JPA;Joan-Pesoo;Joao Pessoa;João Pessoa;Parahiba;Parahyba;Paraiba;Paraíba;Zhoao Pesoa;Zhuan-Pesoa;Zhuan-Pessoa;Zoan Pesoa;Zoao Pesoa;co xea pes so xa;ho'ava peso'a;joanpesoa;joya'o pesasoya;juangpesoa;jwaw byswa;jwaw pyswa;ruo ang pei suo a;zhwaw pswa parayyba;zwʼʼw pswʼh;Ĵoan-Pesoo;Žoan Pesoa;Ζοάο Πεσόα;Горад Жуан-Песоа;Жоао Песоа;Жуан-Песоа;Жуан-Пессоа;ז'ואאו פזואה;זואאו פסואה;جوآو پیسوآ;جواو بيسوا;جواو پیسوا;ژواو پسوا، پارائیبا;होआव पेसोआ;জোয়াও পেসসোয়া;โจเอาเปสโซอา;ჟუან-პესოა;ジョアンペソア;若昂佩索阿;주앙페소아; +city::3397893;Itacoatiara;ITA;Itacoatiara;Serpa; +city::3397909;Itapipoca;Imperatriz;Itapipoka;Итапипока; +city::3397967;Itaituba;ITB;Itaituba; +city::3398115;Ipojuca;Ipozhuka;Pojuca;Ипожука; +city::3398269;Imperatriz;IMP;Imperatris;Imperatrisas;Imperatriz;Vila Nova de Imperatriz;imaperatrija;yin pei la te li si;Императриз;Императрис;ইমপেরাট্রিজ;იმპერატრისი;因佩拉特里斯; +city::3398331;Iguatu;QIG;Telha; +city::3398352;Igarassu;Igaracu;Igarasu;Igaraçu;Iguaracu;Iguarassu;Iguarassú;Iguaraçu;igarasasu;yi jia la su;Игарасу;ইগারাসসু;伊加拉苏; +city::3398450;Horizonte;; +city::3398691;Gravata;Gravata;Gravatá; +city::3399058;Garanhuns;Garan'juns;QGP;Гараньюнс; +city::3399415;Fortaleza;Ceara;Ceará;FOR;Fortalaetia;Fortaleza;Fortaleza Nova de Braganca;Fortaleza Nova de Bragança;Fortaleza de Nova Braganca;Fortaleza de Nova Bragança;Fortalezae;Fortalezo;Gorad Fartaleza;f xr tale sa;forutareza;fu ta lei sa;fwrtalyza;fwrtalza;phartalija;phortaleja;phortalejha;poleutalleja;pwrtlzh;Φορταλέζα;Горад Фарталеза;Форталезæ;Форталеза;פורטלזה;فورتالزا;فورتاليزا;फोर्तालेझा;ফর্তালিজা;ফোর্টালেজা;ฟอร์ตาเลซา;ფორტალეზა;フォルタレザ;福塔雷萨;福塔雷薩;포르탈레자; +city::3401545;Crato;Crato;Kratu;Vila Real do Crato;ke la tu;Крату;კრატუ;克拉图; +city::3401548;Crateus;Cratheus;Cratheús;Piranhas;Principe Imperial;Príncipe Imperial; +city::3402000;Codo;Codo;Codó;Urubu; +city::3402383;Caxias;Caxias das Aldeias Altas;Kashias;Kasias;Kasijasas;Kašijasas;ka xi ya si;Кашиас;Կաշիաս;კაშიასი;卡希亚斯; +city::3402429;Caucaia;Soure; +city::3402591;Castanhal;Kastan'jal;ka si ta ni ya er;kastanahala;Кастаньял;কাস্টানহাল;卡斯塔尼亞爾; +city::3402613;Cascavel;; +city::3402655;Caruaru;CAU;Caruaru;Karuaru;Каруару; +city::3402721;Carpina;Karpina;Карпина; +city::3403642;Campina Grande;CPV;Campina Grande;Kampina Grande;Kampina Grandi;Kampina Grandė;Kampina-Grande;Kampina-Grandi;Kampinagrando;da kan pi na;kamapina grande;kampinageulanji;kanpinagurande;Кампина Гранде;Кампина Гранди;Кампина-Гранде;Кампина-Гранди;কামপিনা গ্রান্ডে;カンピナグランデ;大坎皮納;캄피나그란지; +city::3404117;Caico;Kajko;ka'iko;kai ke;Кайко;কাইকো;凯科; +city::3404545;Cabo;; +city::3404558;Cabedelo;Cabedello;Cabedelos;Kabedelu;ka bei de lu;kabedelo;Кабеделу;Կաբեդելու;কাবেডেলো;卡贝德卢; +city::3405006;Braganca;; +city::3405738;Bezerros;Bezerrus;Безеррус; +city::3405870;Belem;BEL;Belem;Belem do Para;Belem do Pará;Belen;Belena;Belenas;Belém;Belém do Pará;Bethlehem;Para;Pará;Santa Maria de Belem do Grao Para;Santa Maria de Belém do Grão Pará;Vele;Velẽ;bei lun;belem;belema;beleng;beleni;belleng;beren;blm;bylym;Μπελέμ;Белем;Белен;בלם;بلم;بيليم;بیلیم;बेलेम;বেলেঁ;বেলেম;เบเลง;ბელენი;ベレン;贝伦;벨렝; +city::3405940;Bayeux;; +city::3406317;Barra do Corda;BDC; +city::3406545;Balsas;BSS;Bal'sas;Sant' Antonio de Balsas;Santo Antonio de Balsas;Бальсас; +city::3406910;Bacabal;Bacabal;Bakabal;Бакабал; +city::3407216;Arcoverde;Arkoverdi;Rio Branco;Арковерди; +city::3407327;Arapiraca;APQ; +city::3407357;Araguaina;AUX;Araguaina;Araguaína;Lontra;a la gua yi na;Арагуаина;阿拉瓜伊纳; +city::3407407;Aquiraz;; +city::3407669;Ananindeua;Ananindeua;a na ning de wa;ananinde-ua;ananinderaa;ananindeua;Ананиндеуа;Ананіндеуа;Անանինդեուա;אננינדאואה;انانین‌دوا، پارا;আনানিন্ডেৱা;アナニンデウア;阿納寧德瓦;아나닌데우아; +city::3407882;Altamira;ATM;Al'tamira;Altamira;Altamira vald;a er ta mi la;altamira;altmyra para;Алтамира;Альтамира;Ալտամիրա;التمیرا، پارا;আল্টামিরা;阿爾塔米拉; +city::3408404;Abreu e Lima;Abreu e Lima;Abreu-i-Lima;Maricota;a bu lei wu ai li ma;abre'u e lima;abrw a lyma prnambwka;Абреу-и-Лима;Абреу-і-Ліма;ابرو ا لیما، پرنامبوکا;আব্রেউ এ লিমা;阿布雷乌埃利马; +city::3408424;Abaetetuba;Abaete;Abaetetuba;Abaeté; +city::3444864;Votuporanga;VOT; +city::3444866;Votorantim;Voturantim; +city::3444876;Volta Redonda;Gorad Volta-Rehdonda;V Redonda;Volta Redonda;Volta-Redonda;bholata redonda;wo er ta lei dong da;Волта Редонда;Волта-Редонда;Горад Волта-Рэдонда;ভোলটা রেডোন্ডা;沃尔塔雷东达; +city::3444914;Vitoria da Conquista;Conquista;VDC;Vitoria da Conquista;Vitorija da Konkista;Vitorija-da-Konkista;Vitória da Conquista;bhitoriya da konaku'ista;wei duo li ya-da kong ji si ta;Витория-да-Конкиста;Виторија да Конкиста;ভিটোরিয়া ডা কোনকুইস্টা;ვიტორია-და-კონკისტა;ヴィトリア・ダ・コンキスタ;维多利亚-达孔基斯塔; +city::3444924;Vitoria;VIX;Victoria;Vitoria;Vitorija;Vitória;bitoria;wytwryh;Витория;ויטוריה;ビトリア; +city::3445014;Vinhedo;Rocinha; +city::3445026;Vila Velha;Vila Vela;Vila Velha;Vila Velja;Vila-Vel'ja;bhila bhelaha;billabellya;wei li ya zhen;wylh wlyh;Вила Веля;Вила Веља;Вила-Велья;וילה וליה;ভিলা ভেলহা;ヴィラ・ヴェーリャ;韦利亚镇;빌라벨랴; +city::3445133;Vicosa;Visoza;bisoja;vu~isoza;wei suo sa;Висоза;Вісоза;Վիսոզա;ヴィソーザ;維索薩;비소자; +city::3445153;Viana;Jabaete;Jabaeté;Viana;Vianna;Виана; +city::3445156;Viamao;Viaman;Viamao;Viamão;Vijamao;bhi'ama'o;wei ya mang;Виаман;Вијамао;ভিআমাও;维亚芒; +city::3445162;Vespasiano;; +city::3445446;Varzea Paulista;Secundino Veiga; +city::3445451;Varzea Grande;Varzea Grande;Várzea Grande; +city::3445487;Varginha;VAG;Varzhin'ja;bharginaha;wa er ren a;Варжинья;ভার্গিনহা;瓦尔任阿; +city::3445578;Valinhos;Valin'jus;Vallinhos;bhala'inahosa;wa li ni wu si;Валиньюс;Валіньюс;ভালইনহোস;瓦利尼乌斯; +city::3445596;Valenca;Marques de Valenca;Marquês de Valença;Valensa;ballensa;wa lun sa;Валенса;Վալենսա;瓦倫薩;발렌사; +city::3445597;Valenca;VAL;Valenca;Valença; +city::3445630;Vacaria;Ibia'e;Ibia'é;Vaccaria;Vakarija;Вакария; +city::3445679;Uruguaiana;URG;Uruguaiana;Uruguajana;Uruguayana;Urugvajana;uruguraa'iyana;wu lu gua ya na;Уругваяна;Уругуаяна;উরুগুৱাইয়ানা;乌鲁瓜亚纳; +city::3445764;Unai;Capim Branco;Unahy;Unaj;Унай; +city::3445782;Umuarama;UMU; +city::3445831;Uberlandia;UDI;Uberlandia;Uberlandija;Uberlândia;ubeleullanjia;uberlandiya;uberuranjia;wu bei lan di ya;xu ber lang deiy;Уберландия;Уберландија;উবের্লান্ডিয়া;อูเบร์ลังเดีย;ウベルランジア;烏貝蘭迪亞;우베를란지아; +city::3445839;Uberaba;UBA;Uberaba;uberaba;wu bei la ba;Убераба;উবেরাবা;烏貝拉巴; +city::3445847;Ubatuba;UBT;Ubatuba;ubatuba;wu ba tu ba;Убатуба;উবাটুবা;乌巴图巴; +city::3445859;Uba;Uba;uba;wu ba;Уба;উবা;乌巴; +city::3445942;Tupa;Tupa;Tupan;tu pang;tupaya;Тупа;Тупан;টুপয়া;图庞; +city::3445993;Tubarao;Tubaran;tu ba lang;tubara'o;Тубаран;টুবারাও;图巴朗; +city::3446038;Trindade;Trindadi;te lin da di;trindade;Триндади;Տրինդադի;ট্রিন্ডাডে;ტრინდადი;特林达迪; +city::3446065;Tres Rios;Entre-Rios;QIH;Tres-Rius;te lei si li ao si;tresa ri'osa;Трес-Риус;ট্রেস রিওস;特雷斯里奥斯; +city::3446098;Tres Lagoas;Lagoas;TJL;Tres Lagoas;Tres-Lagoas;Três Lagoas;tresa lagoyasa;trys laghwas;Трес-Лагоас;تريس لاغواس;ট্রেস লাগোয়াস; +city::3446138;Tres Coracoes;Tres Coracoes;Tres Korasojns;Tres-Korasojns;Três Corações;te lei si ke la song yi si;tresa korakoyesa;Трес Корасойнс;Трес-Корасойнс;טרס קוראסואס;ট্রেস কোরাকোয়েস;特雷斯科拉松伊斯; +city::3446370;Toledo;TOW;Toledo;Толедо; +city::3446445;Timoteo;Timofej;Timoteu;Timothea;di mo te wu;tima'ote'o;timoteo;Тимотеу;Тимофей;টিমওটেও;ティモテオ;蒂莫特乌; +city::3446606;Teresopolis;Terezopolis;Therezopolis;te lei suo bo li si;teresopolisa;Терезополис;টেরেসোপোলিস;特雷索波利斯; +city::3446621;Teofilo Otoni;TFL;Teofilo Otoni;Teofilu-Otoni;Teófilo Otoni;Teófilo Otôni;Theophilo Ottoni;te ao fei lu ao tuo ni;te xxfi lu xo to ni;te'ophilo otoni;tywfylw awtwny;Теофилу-Отони;تيوفيلو أوتوني;টেওফিলো ওটোনি;เตออฟีลูโอโตนี;特奥菲卢奥托尼; +city::3446652;Telemaco Borba;TEC;Telemachus Borba;Telemaco Borba;Telemako Borba;Telemaku-Borba;tayelemako borba;te lai ma ku bo er ba;Телемако Борба;Телемаку-Борба;টয়েলেমাকো বোর্বা;特莱马库博尔巴; +city::3446682;Taubate;Taubate;Taubatea;Taubatė;Tava yvate;Táva yvate;ta'ubate;tao ba te;taubate;tea ba te;Таубате;টাউবাটে;เตาบาเต;タウバテ;陶巴特; +city::3446692;Tatui;Tatuhy;Tatui;Tatuí;ta tu yi;tatu'i;Татуи;টাটুই;塔图伊; +city::3446753;Taquaritinga;Takuaritinga;ta kua li ting jia;takuraaritinga;takwarytyngha;Такуаритинга;تاكواريتينغا;টাকুৱারিটিঙ্গা;塔夸里廷加; +city::3447186;Taboao da Serra;Tabuao da Serra;Tabuão da Serra; +city::3447212;Suzano;Susano;Suzano;Suzanu;su zha nuo;sujano;suzano;Сузано;Сузану;সুজানো;スザノ;蘇扎諾; +city::3447259;Sumare;RWS;Reboucas;Rebouças;Sumare;Sumaré;su ma lei;sumare;Сумаре;সুমারে;蘇馬雷; +city::3447399;Sorocaba;SOD;Sorocaba;Sorokaba;solokaba;sorokaba;suo luo ka ba;Сорокаба;সোরোকাবা;ソロカーバ;索羅卡巴;소로카바; +city::3447624;Sete Lagoas;Sete Lagoas;Seti-Lagoas;sete lagoyasa;Сете Лагоас;Сети-Лагоас;সেটে লাগোয়াস; +city::3447651;Sertaozinho;; +city::3447779;Serra;Serra;Серра; +city::3447785;Seropedica;Seropedika;sai luo pei di ka;sera'opedika;Серопедика;সেরওপেডিকা;塞罗佩迪卡; +city::3447854;Senador Canedo;; +city::3447998;Sarandi;; +city::3448011;Saquarema;; +city::3448031;Sapucaia;Acapucai;Açapucaí;Guianuba;Güianuba;Sapucaia;Sapukaja;Сапукая; +city::3448063;Sapiranga;Sapyranga; +city::3448136;Sao Vicente;San Visente;San Visentė;San-Visenti;Sao Visente;Sao Visenti;sangbisenchi;sheng wei sen te shi;Сан-Висенти;Сан-Вісенті;Сао Висенте;Сао Висенти;סאו ויסנטה;聖維森特市;상비센치; +city::3448221;Sao Sebastiao do Paraiso;San-Sebast'jan-du-Paraiso;San-Sebast'jan-du-Paraizu;Sao Sebastiao Paraiso;Sao Sebastiao do Paraizo;São Sebastião Paraíso;São Sebastião do Paraizo;sa'o sebasatiya'o do para'iso;sheng sai ba si di ang-du pa la yi su;Сан-Себастьян-ду-Параизу;Сан-Себастьян-ду-Параисо;সাও সেবাসটিয়াও ডো পারাইসো;圣塞巴斯蒂昂-杜帕拉伊苏; +city::3448257;Sao Sebastiao;San-Sebast'jan;sa'o sebasatiya'o;sheng sai ba si di ang;Сан-Себастьян;সাও সেবাসটিয়াও;聖塞巴斯蒂昂; +city::3448300;Sao Roque;; +city::3448351;Sao Pedro da Aldeia;San-Pedru-da-Aldeja;Sao Pedro d'Aldeia;São Pedro d'Aldeia;sa'o pedro da alade'iya;sheng pei de luo-da a er de ya;Сан-Педру-да-Алдея;সাও পেড্রো ডা আলডেইয়া;圣佩德罗-达阿尔德亚; +city::3448439;Sao Paulo;SAO;Sampa;San Paolo;San Paul ed Brasil;San Paulas;San Paulo;San Paulu;San Paulu du Brasili;San Paulu dû Brasili;San Pauluw;San Pawlo;San Polo del Braxil;San Poulo;San Poło del Braxil;San Pàul ëd Brasil;San-Paulo;San-Paulu;San-Paŭlo;Sanpaulu;Sao Paolo;Sao Paulo;Sao Paulo capital;Saun Paulu;Sawo Palo;Sawo Pålo;São Paolo;São Paulo;São Paulo capital;Urbs Paulistana;cavo pavulo;sa'o pa'ulo;sa'o paulo;samu pa'ulu;sangpaollo;sangpaollu;sangpaullo;sangpaullu;sankt. paulos;sanpauro;savea pealea;savo palo;saw bawlw;saw palw;saw pwlw;saywpaywlw;sea pea lu;sheng bao luo;Σάο Πάολο;Сан Пауло;Сан Паулу;Сан-Паулу;Сан-Паўлу;Сао Паоло;Сао Пауло;Սան Պաուլու;סאו פאולא;סאו פאולו;ساؤ پالو;ساؤ پولو;سائوپائولو;ساو باولو;ܣܐܘ ܦܐܘܠܘ;ސައޮ ޕައުލޯ;साओ पाउलो;সাঁউ পাউলু;সাও পাউলো;சாவோ பாவுலோ;శఒ పౌలొ;ಸಾವೊ ಪಾಲೊ;സാവോ പോളോ;เซาเปาลู;ဆောပိုလိုမြို့;სან-პაულუ;ሳው ፓውሉ;サンパウロ;聖保羅;상파올로;상파올루;상파울로;상파울루; +city::3448519;Sao Mateus;SBJ;San-Mateus;Sao Mateus;Sao Matheus;São Mateus;São Matheus;Сан-Матеус; +city::3448622;Sao Leopoldo;San-Leopoldu;Sao Leopoldo;São Leopoldo;sa'o le'opolado;sangle-opoldu;sheng li ao bo er du;Сан-Леополду;Сао Леополдо;সাও লেওপোলডো;サン・レオポルド;圣利奥波尔杜;상레오폴두; +city::3448632;Sao Jose dos Pinhais;San-Zhoze-dus-Pin'jajs;Sao Jose dos Pinhaes;Sao Jose dos Pinhais;Sao Zhose dos Pinajs;São José dos Pinhaes;São José dos Pinhais;sa'o jose dosa pinaha'isa;saw khwzh dws pynhays;sheng ruo ze du si pi ni ai si;Сан-Жозе-дус-Пиньяйс;Сан-Жозе-дус-Піньяйс;Сао Жосе дос Пињајс;סאו זוזה דוס פיניאיס;ساو خوزه دوس پینهایس;সাও জোসে ডোস পিনহাইস;聖若澤杜斯皮尼艾斯; +city::3448636;Sao Jose dos Campos;SJC;SJCampos;SJK;San Zoze dos Kamposas;San Žozė dos Kamposas;San-Zhoze-dus-Kampus;Sao Jose dos Campos;Sao Zhose dos Kampos;Sao Zhoze dos Kampos;Sao jose dos Campos;São José dos Campos;São josé dos Campos;Vale Paraiba;Vale do Paraiba;Vale do Paraíba;sa'o jose dosa kamposa;sangjojeduseukampuseu;sayw khwzh dws kamps;sheng ruo ze duo si kan bo si;Сан-Жозе-дус-Кампус;Сао Жозе дос Кампос;Сао Жосе дос Кампос;سائو خوزه دوس کامپس;সাও জোসে ডোস কাম্পোস;サン・ジョゼ・ドス・カンポス;聖若澤多斯坎波斯;상조제두스캄푸스; +city::3448639;Sao Jose do Rio Preto;Rio Preto;SJP;San Zoze do Rio Pretas;San Žozė do Rio Pretas;San-Zhoze-du-Riu-Pretu;Sao Zhoze do Rio Preto;pu lei tu he pan sheng ruo ze;sa'o jose do ri'o preto;Сан-Жозе-ду-Риу-Прету;Сан-Жозе-ду-Ріу-Прету;Сао Жозе до Рио Прето;সাও জোসে ডো রিও প্রেটো;サン・ジョゼー・ド・リオ・プレト;普雷图河畔圣若泽; +city::3448742;Sao Jose;; +city::3448877;Sao Joao de Meriti;Gorad San-Zhuan-dy-Meryty;Meriti;Merity;San Zuan de Meritis;San Žuan de Meritis;San-Zhuan-di-Meriti;Sao Zhoao de Meriti;Sao Zhoao di Meriti;sa'o joya'o de meriti;sheng ruo ang di mei li di;Горад Сан-Жуан-ды-Мерыты;Сан-Жуан-ди-Мерити;Сао Жоао де Мерити;Сао Жоао ди Мерити;সাও জোয়াও ডে মেরিটি;聖若昂迪梅里蒂; +city::3448879;Sao Joao del Rei;JDR;San-Zhuan-del-Rej;Sao Joao del Rei;Sao Joao del-Rei;Sao Jose del Rey;São José del Rey;São João del Rei;São João del-Rei;sa'o joya'o dela re'i;sangjoangjiulei;sheng ruo ang-de lei;Сан-Жуан-дел-Рей;সাও জোয়াও ডেল রেই;サン・ジョアン・デル・レイ;圣若昂-德雷;상조앙지우레이; +city::3448902;Sao Joao da Boa Vista;; +city::3449099;Sao Gabriel;; +city::3449310;Sao Cristovao;San Kristovanas;San-Kristovan;Sao Christovao;São Christovão;sa'o karisatobhya'o;sangkeuliseutobang;sheng ke li si tuo wang;Сан-Кристован;সাও করিসটোভ্যাও;სან-კრისტოვანი;サン・クリストヴァン;聖克里斯托旺;상크리스토방; +city::3449319;Sao Carlos;QSC;San Karlosas;San-Karlos;San-Karlus;Sao Carlos;Sao Carlos do Pinhal;Sao Karlos;São Carlos;São Carlos do Pinhal;Urbs Carlopolitana;sa'o karlosa;sangkaleulluseu;saw karlws;sheng ka luo si;Сан-Карлос;Сан-Карлус;Сао Карлос;ساو كارلوس;ساو کارلوس;সাও কার্লোস;聖卡洛斯;상카를루스; +city::3449324;Sao Caetano do Sul;QCX;San-Kaehtano-du-Sul;Sao Caetano do Sul;São Caetano do Sul;Сан-Каэтано-ду-Сул; +city::3449340;Sao Borja;San-Borkha;Sao Borja;São Borja;Сан-Борха; +city::3449344;Sao Bernardo do Campo;QSB;SBC;SBCampo;San-Bernardo-du-Kampu;Sao Bernardo;Sao Bernardo do Campo;São Bernardo;São Bernardo do Campo;Сан-Бернардо-ду-Кампу; +city::3449350;Sao Bento do Sul;San-Bentu-du-Sul;Sao Bento;Sao Bento do Sul;Serra Alta;São Bento;São Bento do Sul;Сан-Бенту-ду-Сул; +city::3449433;Santos;Baixada Santista;Gorad Santus;SSZ;Santos;Santosas;Santus;Santus khot;Santusa;Urbs Sanctorum;sang tuo si;sang tus;santosa;santosu;santuseu;santws;santws saw pawlw;sntws;Σάντος;Горад Сантус;Сантос;Сантус;Сантус хот;סנטוס;سانتوس;سانتوس، ساؤ پاؤلو;সান্টোস;ซังตูส;サントス;桑托斯;산투스; +city::3449521;Santo Antonio de Jesus;; +city::3449696;Santo Angelo;GEL;Santo Angelo;Santo Ângelo;Santu-Andzhelo;Santu-Anzhelu;santo anagelo;sheng an re lu;Санту-Анджело;Санту-Анжелу;সান্টো আনগেলো;圣安热卢; +city::3449701;Santo Andre;Santo Andre;Santo André;Santu-Andre;Санту-Андре; +city::3449822;Santa Rosa;SRA; +city::3449936;Santana do Livramento;LVB;Livramento;Sant'Anna do Livramento;Santana do Livramento;Santana-du-Livramentu;santana do libhramenato;sheng an na-li fu la men tu;sntnh dw lybrmntw;Сантана-ду-Ливраменту;סנטנה דו ליברמנטו;সান্টানা ডো লিভ্রামেনটো;サンタナ・ド・リヴラメント;圣安娜-利弗拉门图; +city::3449948;Santana de Parnaiba;Parnahyba;Parnaiba;Parnaíba;Sant'Ana-de-Paranaiba;Sant'Ana-de-Paranaíba; +city::3450083;Santa Maria;RIA;Santa Maria da Boca do Monte;Santa Marija;Santa-Marija;san ta ma reiy;santa marya;santamalia;sheng ma li ya;snth mryh;Санта Марија;Санта-Мария;סנטה מריה;سانتا ماریا;ซานตามาเรีย;聖瑪麗亞;산타마리아; +city::3450144;Santa Luzia;Santa Lucia;Santa Luzija;Santa Lúcia;Santa-Lusija;Santa-Luzija;sheng lu xi ya;Санта Лузија;Санта-Лузия;Санта-Лусия;聖盧西亞; +city::3450269;Santa Cruz do Sul;CSU;Santa Cruz;Santa-Krus-du-Sul;nan sheng ke lu si;santa kruja do sula;Санта-Крус-ду-Сул;সান্টা ক্রুজ ডো সুল;南圣克鲁斯; +city::3450404;Santa Barbara d'Oeste;Barbara do Oeste;Bárbara do Oeste;Santa Barbara do Oeste;Santa Bárbara do Oeste;Sata Barbar dOeste;Sata Bárbar dOeste; +city::3450554;Salvador;Bahia;Baia;Baía;SSA;Sal'vador;Salvador;Salvador da Bahia;Salvador de Bahia;Salvador de Bahio;Salvador de Bahía;Salvadora;Salvadoras;Sao Salvador;Soteropolis;sa er wa duo;sal wad xr;salabhadora;salfadwr bahya;salvadori;salvhadora da ba'iya;salwadwr;sarubadoru;saruvu~adoru;saubadoleu;slbdwr;slwadwr;Σαλβαδόρ;Салвадор;Сальвадор;סלבדור;سالفادور، باهيا;سالوادور;سلوادور;साल्व्हादोर दा बाईया;সালভাদোর;ซัลวาดอร์;სალვადორი;サルバドール;サルヴァドール;萨尔瓦多;사우바도르; +city::3450594;Salto;Sal'to;Salto do Itu;Salto do Itú;Saltu;sa er tu;Салту;Сальто;萨尔图; +city::3450909;Rondonopolis;ROO;Rodonopolis;Rodonópolis;Rondonopolis;Rondonópolis; +city::3450964;Rolandia;Caviuna;Caviúna; +city::3451138;Rio Grande;RIG;Rio Grande;Rio Grande do Sul;Rio-Grande;San Pedro do Rio Grande;Sao Pedro do Rio Grande do Sul;São Pedro do Rio Grande do Sul;Рио-Гранде; +city::3451152;Rio do Sul;Itajahy do Sul;QRU;Rio Sul;Riu-du-Sul;nan he zhen;ri'o do sula;Риу-ду-Сул;রিও ডো সুল;南河镇; +city::3451190;Rio de Janeiro;Ciutat de Rio de Janeiro;Gorad Rya-deh-Zhanehjra;RIO;Rio;Rio De Janeiro;Rio d Janeiro;Rio de Janeiro;Rio de Janeiru;Rio de Janero;Rio de Janeyro;Rio de Janèro;Rio de Janêro;Rio de Zaneiras;Rio de Zaneiros;Rio de Zaneyro;Rio de Zhaneiro;Rio de Zhanejro;Rio de Žaneiras;Rio dé Janéyro;Rio dė Žaneiros;Rio nte Tzaneiro;Rio-de-Janejro;Rio-de-Janeyro;Rio-de-Zaneiro;Rio-de-Zanejro;Rio-de-Zaneyro;Rio-de-Zhanejro;Rio-de-janeiro;Rio-de-Ĵanejro;Rio-de-Žaneiro;Rio-de-Žaneýro;Riodezaneiro;Riodežaneiro;Riu de Janeiro;Riu de Janeiru;Riviethe de Janvyi;Riviéthe dé Janvyi;Río de Janeiro;Sao Sebastiao do Rio de Janeiro;São Sebastião do Rio de Janeiro;Urbs Fluminensis;iriyo ti ceniro;li yue re nei lu;liudejaneilu;rath ri xode ca ne ro;ri xode ca ne ro;ri'o di janero;ri'o di jeneri'o;ri'o di jeniro;rio-de-zhaneiro;riodejaneiro;rios. dis. djaneiros;riyea di janirea;riyo di janairo;riyo di janero;riyo di jeneriyo;riyo di jenero;riyo di jyaneriyo;ryw dh znyyrw;ryw dw zhanyrw;ryw dwzhanyrw;ryw dy janyrw;Ρίο ντε Τζανέιρο;Горад Рыа-дэ-Жанэйра;Рио де Жанеиро;Рио де Жанейро;Рио-де-Жанейро;Ріо де Жанейро;Ріо-де-Жанейро;Ռիո դե Ժանեյրո;ריא דע זשאנערא;ריו דה זניירו;ريو دى جانيرو;ريو دي جانيرو;ریو دو ژانیرو;ریو دوژانیرو;ریو دے جینیرو;ریو ڈی جینرو;ڕیۆ دێ ژانێرۆ;रियो डि जेनेरो;रियो दि जानेरो;रियो दि ज्यानेरियो;रियो दी जेनेरियो;রিও ডি জেনিরো;রিও দি জেনেরিও;ਰਿਓ ਡੀ ਜਨੇਰੋ;இரியோ டி செனீரோ;ರಿಯೋ ಡಿ ಜನೈರೊ;റിയോ ഡി ജനീറോ;รัฐรีโอเดจาเนโร;รีโอเดจาเนโร;རིའོ་ཌེ་ཇ་ནེའུ་རའོ།;ရီယို ဒီ ဂျီးနေးရိုးမြို့;რიო-დე-ჟანეირო;ሪዮ ዴ ጃኔይሮ;リオデジャネイロ;里約熱內盧;里约热内卢;리우데자네이루; +city::3451205;Rio das Ostras;; +city::3451234;Rio Claro;QIQ; +city::3451328;Ribeirao Preto;Entre Rios;RAO;Ribeiran Pretas;Ribeirao;Ribeirao Preto;Ribeirão;Ribeirão Preto;Ribejran-Pretu;Ribejrao Preto;hibeilangpeuletu;li bei lang pu lei tu;ribe'ira'o preto;Рибеирао Прето;Рибейран-Прету;Рибейрао Прето;Рібейран-Прету;রিবেইরাও প্রেটো;リベイラン・プレト;里貝朗普雷圖;히베이랑프레투; +city::3451329;Ribeirao Pires;; +city::3451353;Ribeirao das Neves;Neves;Nevez;Ribeirao das Neves;Ribeirão das Neves; +city::3451668;Resende;QRZ;REZ;Resende;Rezende;Rezendi;hejenji;lei sen di;rysndy;Резенди;Резенді;ریسندی;雷森迪;헤젠지; +city::3452073;Queimados;; +city::3452324;Presidente Prudente;PPB;Prezidente Prudente;Prezidente Prudentė;Prezidenti-Prudenti;per sideng chi pru deng chi;presidente prudente;pu lu deng te zong tong cheng;Президенте Пруденте;Президенти-Пруденти;Презіденті-Пруденті;প্রেসিডেন্টে প্রুডেন্টে;เปรซีเดงชีปรูเดงชี;普鲁登特总统城; +city::3452465;Praia Grande;Praja Grande;Praja-Grandi;Prajja-Grandi;da pu la ya;pra'iya grande;Прайя-Гранди;Прая-Гранди;Прая-Гранді;Праја Гранде;প্রাইয়া গ্রান্ডে;大普拉亚; +city::3452525;Pouso Alegre;PPY;Pozu-Alegri;Puzu Alegri;bo su a lai ge li;pa'uso alegre;po su xa lek ri;Позу-Алегри;Пузу Алегри;পাউসো আলেগ্রে;โปซูอาเลกรี;波苏阿莱格里; +city::3452640;Porto Seguro;BPS;Portu-Seguru;bwrtw syjwrw;parto seguro;sai gu lu gang;Порту-Сегуру;بورتو سيجورو;পর্টো সেগুরো;პორტუ-სეგურუ;ポルト・セグーロ;塞古鲁港; +city::3452925;Porto Alegre;Gorad Portu-Alegry;POA;Porto Alegre;Porto Alegri;Porto Alegrė;Porto Alenkre;Porto de Sao Francisco dos Casaes;Porto-Alegro;Portu-Alegre;Portu-Alegri;Portualegri;Portus Alacer;Puerto Alegre;Pôrto de São Francisco dos Casaes;a lei ge li gang;bwrtw alyghry;parto alegre;poleutuallegeuli;portu alegri;pwrtw algrh;Πόρτο Αλέγκρε;Горад Порту-Алегры;Порто Алегре;Порто Алегри;Порту-Алегре;Порту-Алегри;Порту-Алегрі;פורטו אלגרה;بورتو أليغري;پورتو الگره;پورتو الیگرے;पोर्तू अलेग्री;পর্টো আলেগ্রে;პორტუ-ალეგრი;ポルト・アレグレ;阿雷格里港;포르투알레그리; +city::3453150;Ponta Pora;PMG;Ponta Pora;Ponta Porã;Ponta-Poran;Punta Pora;Punta Porá;ponta pora;Понта-Поран;পোন্টা পোরা; +city::3453186;Ponta Grossa;PGZ;Ponta Grosa;Ponta Grossa;Ponta-Grosa;peng ta ge luo sa;pon ta krx s sa;ponta grosasa;pwnta grwsa;Понта Гроса;Понта-Гроса;پونتا گروسا;পোন্টা গ্রোসসা;โปนตากรอสซา;蓬塔格羅薩; +city::3453303;Pocos de Caldas;POO;Poco Caldas;Pocos de Caldas;Posus-di-Kaldas;Poço Caldas;Poços de Caldas;bo su si-di ka er da si;pokosa de kaladasa;Посус-ди-Калдас;পোকোস ডে কালডাস;波苏斯-迪卡尔达斯; +city::3453406;Poa;; +city::3453420;Planaltina;Alta Mir;Altamira;Planaltina; +city::3453546;Pirapora;PIV;Pirapora;pi la bo la;pirapora;Пирапора;পিরাপোরা;皮拉波拉; +city::3453639;Pirassununga;Pirassinunga;Pirassununga;Pirasununga;QPS;pi la su nong jia;pirasasununga;Пирасунунга;পিরাসসুনুঙ্গা;皮拉苏农加; +city::3453643;Piracicaba;Piracicaba;Pirasikaba;Pirasykava;QHB;pi la xi ka ba;pirasikaba;Пирасикаба;Пірасікаба;পিরাসিকাবা;皮拉西卡巴; +city::3453837;Pindamonhangaba;Pindamon'jangaba;Pindamonhangaba;pindamonahanagaba;ping da mo ni yang jia ba;Пиндамоньянгаба;পিন্ডামোনহানগাবা;平达莫尼扬加巴; +city::3454031;Petropolis;Petropolis;Petròpolis;Petrópolis;bi de luo bo li si;peteulopolliseu;petoroporisu;petropolisa;ptrwpwlys;Петрополис;Петрополіс;פטרופוליס;পেট্রোপোলিস;ペトロポリス;彼得罗波利斯;페트로폴리스; +city::3454061;Peruibe;Peruhybe;Peruibi;caraguava;pei lu yi bi;peru'ibe;Перуиби;পেরুইবে;佩鲁伊比; +city::3454235;Penapolis;Penapolis;Pennapolis;Пенаполис; +city::3454244;Pelotas;PET;Pelotas;Pelotasas;Sao Francisco de Paula;São Francisco de Paula;pei luo ta si;pellotaseu;pelotasa;Пелотас;পেলোটাস;佩洛塔斯;펠로타스; +city::3454690;Paulinia;Paulinia;Paulinija;Pauliniya;Paulinjo;Urbs Paulinia;bao li ni ya;bbawlysta;pa'ula'iniya;paurinia;paywlynya;Паулиния;Паулінія;פאוליניה;بباوليستا;پائولینیا;পাউলইনিয়া;パウリニア;保利尼亚; +city::3454763;Patrocinio;Patrosiniu;pa te luo xi ni wu;patroka'ini'o;Патросиниу;পাট্রোকইনিও;帕特罗西尼乌; +city::3454783;Patos de Minas;POJ;Patos;Patos de Minas;Patus-di-Minas;pa tu si di mi na si;patosa de minasa;Патус-ди-Минас;পাটোস ডে মিনাস;帕图斯迪米纳斯; +city::3454818;Pato Branco;PTO;Pato Branco;Patu-Branku;pa tu bu lan ku;pato branko;Пату-Бранку;পাটো ব্রাঙ্কো;帕图布兰库; +city::3454847;Passos;PSW;Passos;Pasus;pa su si;pasasosa;Пассос;Пасус;পাসসোস;帕苏斯; +city::3454857;Passo Fundo;PFB;Passo Fundo;Pasu-Fundu;pa su feng du;pas su fun du;pasaso phunado;Пасу-Фунду;পাসসো ফুনডো;ปาสซูฟูนดู;帕苏丰杜; +city::3455051;Paranavai;Fazenda Ivai;Fazenda Ivaí;PVI;Paranvai;Paranvaí; +city::3455070;Paranagua;PNG;Paranagua;Paranaguá;Paranankoua;ba la na gua;paranagu'a;paranagua;Παραναγκουά;Паранагуа;পারানাগুআ;パラナグア;巴拉那瓜; +city::3455161;Para de Minas;Para;Para-di-Minas;Pará;pa la di mi na si;para de minasa;Пара-ди-Минас;পারা ডে মিনাস;パラ・デ・ミナス;帕拉迪米纳斯; +city::3455168;Paracatu;Parakatu;pa la ka tu;parakatu;Паракату;পারাকাটু;帕拉卡图; +city::3455478;Palhoca;Pal'osa;pa e sa;palahoka;Пальоса;পালহোকা;帕略萨; +city::3455671;Ouro Preto;Oro Pretas;Oro Preto;Oru-Pretu;Ouro Preto;auro preto;olupeuletu;ou lu pu lei tu;xo ru per tu;Оро Прето;Ору-Прету;אורו פרטו;ঔরো প্রেটো;โอรูเปรตู;ორუ-პრეტუ;オウロ・プレット;欧鲁普雷图;오루프레투; +city::3455729;Ourinhos;OUS;Orin'jus;Ourinhos;Urbs Parvauratana;aurinahosa;ou li ni ao si;Ориньюс;ঔরিনহোস;欧里尼奥斯; +city::3455775;Osasco;Osasku;QOC;Осаску; +city::3456068;Novo Hamburgo;Novo Amburgo;Novo Hamburg;Novo Hamburgo;Novu-Amburgu;Potiguara;QHV;nobho hamaburgo;nobuambuleugu;nowu xam bur ku;xin han bao;Ново Амбурго;Нову-Амбургу;নোভো হামবুর্গো;โนวูอัมบูร์กู;ノヴォ・アンブルゴ;新漢堡;노부암부르구; +city::3456102;Nova Vicosa;Maroba;Marobá;Vicosa;Viçosa; +city::3456147;Nova Lima;Nova Lima;Nova-Lima;Нова-Лима; +city::3456160;Nova Iguacu;Nova Iguacu;Nova Iguassu;Nova Iguassú;Nova Iguasu;Nova Iguaçu;Nova Iguaçú;Nova-Iguasu;nobaiguasu;nobha iguraaku;nova-iguasu;novha igvasu;xin yi gua su;Нова Игуасу;Нова-Ігуасу;Нова-Игуасу;नोव्हा इग्वासु;নোভা ইগুৱাকু;ნოვა-იგუასუ;ノヴァ・イグアス;新伊瓜蘇;노바이구아수; +city::3456166;Nova Friburgo;Nova Friburgo;Nova-Friburgu;Nueva Friburgo;QGJ;nobha phriburgo;xin fu li bao;Нова Фрибурго;Нова-Фрибургу;নোভা ফ্রিবুর্গো;新弗里堡; +city::3456223;Nossa Senhora do Socorro;Contiguiba;Cotinguiba;Cotingüiba;Soccorro;Socorro; +city::3456283;Niteroi;Nictheroi;Nictheroy;Niteroi;Niteroj;Niterói;Vila Real da Praia Grande;Villa Real da Praia Grande;niteroi;Нитерой;ニテロイ; +city::3456290;Nilopolis;Nilopolis;ni luo bo li si;nilopolisa;Нилополис;নিলোপোলিস;尼洛波利斯; +city::3456500;Muriae;Muriae;Muriaeh;Muriahe;Muriahé;Muriaé;Murihe;Murriae;mu li ya ai;muriyaye;Муриаэ;মুরিয়ায়ে;มูเรียแอ;穆里亚埃; +city::3456814;Montes Claros;MOC;Montes Klaros;Montis Klaros;Montis-Klarus;meng di si ke la lu si;monatesa kalarosa;Монтес Кларос;Монтис Кларос;Монтис-Кларус;মোনটেস কলারোস;蒙蒂斯克拉鲁斯; +city::3456826;Montenegro;Chernogorija;Montenegru;Sao Joao do Monte Negro;São João do Monte Negro;meng te nei ge lu;Монтенегру;Черногория;蒙特内格鲁; +city::3456998;Mogi Mirim;Mogi-Mirim;Mogy-Mirim;Moji-Mirim;Mozhi-Mirin;mo ji mi lin;moji-mirima;Можи-Мирин;মোজি-মিরিম;莫吉米林; +city::3457000;Mogi Guacu;Mogi-Guacu;Mogi-Guaçu;Mogy Guassu;Mogy Guassú;Moji-Guacu;Moji-Guaçu;Mozhi-Guasu;mo ji gua su;mogi guraaku;Можи-Гуасу;মোগি গুৱাকু;莫吉瓜苏; +city::3457001;Mogi das Cruzes;Mogy das Cruzes;Moji das Cruzes; +city::3457025;Mococa;QOA; +city::3457381;Maua;Maua;mao a;maraa;Мауа;মাৱা;毛阿; +city::3457509;Matao;Mattao;Mattão; +city::3457671;Maringa;MGF;Maringa;Maringá;ma lin jia;maling-ga;marinaga;maringa;Маринга;মারিনগা;マリンガ;馬林加;마링가; +city::3457692;Marilia;MII;Maril'ja;Marilia;Marilija;Marília;ma li li ya;mariliya;Марилия;Марилија;Марилья;মারিলিয়া;馬里利亞; +city::3457708;Marica;; +city::3457952;Manhuacu;Man'juasu;Manhuassu;Manhuassú;ma niu a su;manahoyaku;Маньюасу;মানহোয়াকু;马纽阿苏; +city::3458131;Mairipora;Mairipora;Mairiporã;Majriporan;QMC;Майрипоран; +city::3458266;Macae;MEA;Macae;Macahe;Macahé;Macaé;Makae;Makaeh;ma ka ai;makaye;Макае;Макаэ;মাকায়ে;马卡埃; +city::3458329;Luziania;Luzilandia;Luzilândia;Santa-Luzia; +city::3458425;Lorena;Lorena;lorena;luo lei na;Лорена;লোরেনা;洛雷纳; +city::3458449;Londrina;LDB;Londrina;londeulina;londrina;long de li na;lwndryna;rondorina;Лондрина;لوندرينا;لوندرینا;লোন্ড্রিনা;ロンドリーナ;隆德里納;론드리나; +city::3458494;Lins;Albuquerque Lins;LIP;Lins;lin si;lingseu;linsa;rinsu;Линс;লিন্স;リンス;林斯;링스; +city::3458498;Linhares;Lin'jaris;linaharesa;Линьярис;লিনহারেস; +city::3458575;Limeira;Limeira;Limejra;QGB;li mei la;li mey ra;limaye'ira;Лимеира;Лимейра;লিময়েইরা;ลีเมย์รา;利梅拉; +city::3458645;Lencois Paulista;Lencoes;Lencois;Lençoes;Lençóis;Ubirama; +city::3458662;Leme;Lem;Leme;Lemi;lai mi;leme;Лем;Леми;লেমে;莱米; +city::3458696;Lavras;Lavras;la fu la si;labhrasa;lfras;Лаврас;لفراس;লাভ্রাস;拉夫拉斯; +city::3458930;Lages;LAJ;Lages;Lajes;Lazesas;Lazhis;Laĵes;Lažesas;la re si;lagesa;Лажис;লাগেস;拉热斯; +city::3459035;Lajeado;Costao;Costão;Lageado;Lazheadu;la re a du;laje'ado;Лажеаду;লাজেআডো;拉热阿杜; +city::3459462;Jundiai;Jundiahy;Jundiai;Jundiaí;Jurundiay;QDV;Zhundiai;Zhundijai;Zundiajus;jundiya'i;jwndyay;rong di ya yi;Žundiajus;Жундиаи;Жундијаи;Жундіаї;جوندياي;জুন্ডিয়াই;容迪亞伊; +city::3459505;Juiz de Fora;JDF;Juiz de Fora;Zhuis-di-Fora;Zhuiz de Fora;Zhuiz di Fora;Zhuiz-di-Fora;Zuis de Fora;chwis di f xra;ju'ija de phora;ju-iseujipola;ru yi si di fu la;Žuis de Fora;Жуиз де Фора;Жуиз ди Фора;Жуис-ди-Фора;Жуїз-ді-Фора;জুইজ ডে ফোরা;ชวีซ์ดีฟอรา;ジュイス・デ・フォーラ;茹伊斯迪福拉;주이스지포라; +city::3459712;Joinville;JOI;Joinville;Zhoinvile;Zhoinvili;Zhojnvili;Zoinvilis;jo'inabhilale;join'vu~ire;joinbilli;ruo yin wei lai;zwynwwyly;Žoinvilis;Жоинвиле;Жоинвили;Жойнвили;זוינווילי;জোইনভিললে;ジョインヴィレ;若茵维莱;조인빌리; +city::3459796;Joao Monlevade;Joao;João;Monlevade;Zhuan-Monlevadi;joya'o monala'ibhade;ruo ang meng lai wa di;Жуан-Монлевади;জোয়াও মোনলইভাডে;若昂蒙莱瓦迪; +city::3459943;Jequie;Jequie;Jequié;Jiquie;Jiquié;Jiquy;Zhekie;jekie;jeku'iye;re ji ye;Жекие;জেকুইয়ে;ჟეკიე;ジェキエー;热基耶; +city::3460005;Jau;Jahu;Jahú;Jau;Jaú;Zhau;ja'u;ya wu;Жау;জাউ;雅乌; +city::3460064;Jatai;JTI;Jatahy;Jatai; +city::3460102;Jaragua do Sul;Jaragua;Jaragua do Sul;Jaraguá;Jaraguá do Sul;Zharagua-du-Sul;jaragu'a do sula;nan ya la gua;Жарагуа-ду-Сул;জারাগুআ ডো সুল;南雅拉瓜; +city::3460132;Japeri;; +city::3460170;Jandira;; +city::3460174;Janauba;; +city::3460370;Jacarei;Jacarehy;Jacarei;Jacareí;Zhakarei;jakare'i;ya ka lei yi;Жакареи;জাকারেই;雅卡雷伊; +city::3460441;Jaboticabal;Jaboticabal;Zhabotikabal;jabotikabala;ya bo di ka ba er;Жаботикабал;জাবোটিকাবাল;雅博蒂卡巴尔; +city::3460522;Itumbiara;ITR;Itumbiara;Paranaiba;Paranaíba;Santa Rita;Santa Rita do Paranahyba;Santa Rita do Paranaib;Santa Rita do Paranaiba;Santa Rita do Paranaiha;Santa Rita do Paranaíba;itsunbiara;itumabiraara;yi tong bi ya la;Итумбиара;ইটুমবিৱারা;イツンビアラ;伊通比亚拉; +city::3460523;Ituiutaba;Itijutaba;Ituiutaba;Ituyutaba;itu'i'utaba;yi tu you ta ba;Итиютаба;ইটুইউটাবা;伊图尤塔巴; +city::3460535;Itu;Itu;QTU;Ytu;Ytua;ito~u;itu;yi tu;Іту;Иту;ইটু;イトゥー;伊图;이투; +city::3460584;Itauna;Itauna;ita'una;yi ta wu na;Итауна;Իտաունա;ইটাউনা;伊塔乌纳; +city::3460598;Itatiba;; +city::3460644;Itaquaquecetuba;Itaquaquicetuba; +city::3460699;Itapira;Itapira;itapira;yi ta pi la;Итапира;ইটাপিরা;伊塔皮拉; +city::3460718;Itapevi;Itapevy; +city::3460723;Itapeva;Faxina; +city::3460728;Itapetininga;Itapetinga;Itapetininga;ZTP;itapetininga;yi ta pei di ning jia;Ітапетінінга;Итапетининга;ইটাপেটিনিঙ্গা;イタペティニンガ;伊塔佩蒂宁加; +city::3460730;Itapetinga;Itatinga;QIT; +city::3460733;Itaperuna;ITP;Itaperuna;itaperuna;xi tapi ru na;yi ta pei lu na;Итаперуна;ইটাপেরুনা;อีตาปิรูนา;伊塔佩鲁纳; +city::3460748;Itapecerica da Serra;Itapecerica;Itapeserika-da-Serra;Итапесерика-да-Серра; +city::3460791;Itanhaem;Itan'jaehn;Itanhaen;Nossa Senhora da Conceicao de Itanhaem;Nossa Senhora da Conceição de Itanhaém;itanahayema;yi ta ni ya en;Итаньяэн;ইটানহায়েম;伊塔尼亚恩; +city::3460834;Itajuba;Itazhuba;itajuba;yi ta ru ba;Ітажуба;Итажуба;ইটাজুবা;伊塔茹巴; +city::3460845;Itajai;Itajahi;Itajahy;Itajai;Itajaí;Itazhai;itaja'i;yi da gu yi;Итажаи;ইটাজাই;伊達賈伊; +city::3460899;Itaguai;Itaguai;Itaquahy;itaguraa'i;yi ta gua yi;Итагуаи;ইটাগুৱাই;伊塔瓜伊; +city::3460949;Itabuna;ITN;Itabuna;itabuna;yi ta bu na;Итабуна;ইটাবুনা;იტაბუნა;イタブーナ;伊塔布纳; +city::3460950;Itaborai;Itaborahy;Itaborai;itabora'i;yi ta bo la yi;Итабораи;ইটাবোরাই;伊塔博拉伊; +city::3460960;Itabira;Itabira;Itabira de Mato Dentro;Itabira de Matto Dentro;Presidente Vargas;itabira;yi ta bi la;Итабира;ইটাবিরা;伊塔比拉; +city::3460974;Itabaiana;; +city::3461013;Irece;IRE; +city::3461144;Ipatinga;IPN;Ipatinga;ipachinga;ipatinga;yi pa ting jia;Ипатинга;ইপাটিঙ্গা;イパチンガ;伊帕廷加; +city::3461311;Indaiatuba;Indaiatuba;Indajatuba;inda'iyatuba;yin da ya tu ba;Индаятуба;ইন্ডাইয়াটুবা;因达亚图巴; +city::3461408;Ilheus;IOS;Il'eus;Ileus;Ilheos;Ilheus;Ilhéos;Ilhéus;Iljeusas;Sao Jorge dos Ilheos;São Jorgé dos Ilhéos;ilahe'usa;ileusi;iryeusu;yi lie wu si;Ильеус;Иљеус;ইলহেউস;ილეუსი;イリェウス;伊列乌斯; +city::3461444;Ijui;IJU;Ijuhy;Izhui;iju'i;yi ru yi;Ижуи;ইজুই;伊茹伊; +city::3461519;Icara;Aliatar;Isara;Исара; +city::3461563;Ibirite;Ibirite;Ибирите; +city::3461655;Hortolandia;Hortolandia;Hortolândia;Ortolandija;ao tuo lan di ya;hortolandiya;Ортоландия;হোর্টোলান্ডিয়া;奥托兰迪亚; +city::3461724;Gurupi;GRP;Gurupi;Гурупи; +city::3461786;Guarulhos;GRU;Guarulhos;QCV; +city::3461789;Guaruja;Guaruzha;Guyrajara;Guyrajára;Gvaruzha;gua lu ya;guaruja;guraaruja;Гваружа;Гуаружа;গুৱারুজা;グアルジャ;瓜魯雅; +city::3461859;Guaratingueta;Guaratingeta;guraaratinguyeta;Гуаратингета;Гуаратінгета;গুৱারাটিঙ্গুয়েটা; +city::3461879;Guarapuava;GPB;Guarapuava;gua la pu a wa;guraarapuraabha;Гуарапуава;গুৱারাপুৱাভা;瓜拉普阿瓦; +city::3461888;Guarapari;GUZ;Guarapari;Гуарапари;גוארפארי; +city::3461973;Guanambi;GNM;Guanambi;Guanamby;gua nan bi;guanambi;guraanamabi;Гуанамби;গুৱানামবি;გუანამბი;瓜南比; +city::3462089;Gravatai;Gravatahy;Gravatai;Gravataí;Karavatay;ge la wa ta yi;grabhata'i;Граватаи;গ্রাভাটাই;格拉瓦塔伊; +city::3462315;Governador Valadares;Figueira;GVR;Gov. Valadares;Governador Valadares;Governador Valadaresas;Governador Valadaris;Governador-Valadares;Governador-Valadaris;Valadares;gobeleunadoleuballadaleseu;gobhernador bhaladaresa;ko wer na dor wa la da ris;wa la da li si zhou zhang shi;Говернадор Валадарес;Говернадор Валадарис;Говернадор-Валадарес;Говернадор-Валадарис;Գովերնադոր Վալադարիս;গোভের্নাডোর্ ভালাডারেস;โกเวร์นาโดร์วาลาดาริส;ゴベルナドール・バラダレス;瓦拉達里斯州長市;고베르나도르발라다레스; +city::3462377;Goiania;Ciutat de Goiania;Ciutat de Goiânia;GYN;Goiana;Goiania;Goianá;Goiânia;Gojani;Gojanija;Goyania;Goyaniya;ge ya ni ya;ghwyanya;go'iyaniya;goiania;gwyyanya;ko ya neiy;Гояни;Гояния;Гоянія;Гојанија;גואיאניה;غويانيا;گوئیانیا;গোইয়ানিয়া;โกยาเนีย;გოიანია;ゴイアニア;戈亚尼亚;고이아니아; +city::3462964;Franco da Rocha;Francisco da Rocha; +city::3462980;Francisco Morato;; +city::3462996;Francisco Beltrao;Beltran-Francisko;FBE;Francisco Beltrao;Francisco Beltrão;Fransisku-Beltran;bei er de lang;phransisako belatra'o;Белтран-Франциско;Франсиску-Белтран;ফ্রান্সিসকো বেলট্রাও;贝尔德朗; +city::3463011;Franca;FRC;Franca;Franka;Franko;franka;fu lang ka;furanka;phranka;Франка;Франко;فرانكا;ফ্রাঙ্কা;フランカ;弗朗卡; +city::3463030;Foz do Iguacu;Fos do Iguasu;Fos-du-Iguasu;Foz de Iguassu;Foz de Iguazu;Foz do Iguacu;Foz do Iguassu;Foz do Iguassú;Foz do Iguasu;Foz do Iguaçu;IGU;Iguassu;Iguassú;fwz dw ayghwasw;fwz dw lwachw;phoja do iguraaku;poseudu-iguasu;yi gua su;Фоз до Игуасу;Фос до Игуасу;Фос-ду-Іґуасу;Фос-ду-Игуасу;פאס דו איגוואסו;פוז דו איגואסו;فوز دو إيغواسو;فوز دو لوآچو;ফোজ ডো ইগুৱাকু;フォス・ド・イグアス;伊瓜苏;포스두이구아수; +city::3463140;Formosa;Formosa;fu mo sa;poleumoja;福莫薩;포르모자; +city::3463174;Formiga;Formiga;fu mi jia;phormiga;Формига;ফোর্মিগা;福米加; +city::3463237;Florianopolis;Destero;Desterro;FLN;Florianopolis;Florianópolis;Florijanopolis;Floripa;Florjanopolisa;Nossa Senhora do Desterro;Nossa Senhora do Destêrro;flwryanwbwlys;flwryanwplys;flwryanwpwls;fol reiyn x polis;fpolis;fu luo li ya nuo bo li si;furorianoporisu;peullolianopolliseu;phloriyanopolisa;Флорианополис;Флоријанополис;Флоріанополіс;פלוריאנופוליס;فلوريانوبوليس;فلوریانوپلیس;فلوریانوپولس;ফ্লোরিয়ানোপোলিস;โฟลเรียนอโปลิส;ფლორიანოპოლისი;フロリアノーポリス;弗洛里亚诺波利斯;플로리아노폴리스; +city::3463422;Ferraz de Vasconcelos;; +city::3463432;Fernandopolis;; +city::3463478;Feira de Santana;FEC;Feira;Feira De Saint Anna;Feira de Sant'Anna;Feira de Santana;Fejra di Santana;Fejra-de-Santana;Fejra-di-Santana;fei la di sheng an na;peilajisantana;phe'ira de santana;Феира де Сантана;Фейра ди Сантана;Фейра-де-Сантана;Фейра-ди-Сантана;ফেইরা ডে সান্টানা;ფეირა-დი-სანტანა;フェイラ・デ・サンタナ;費拉迪聖安娜;페이라지산타나; +city::3463605;Farroupilha;; +city::3463690;Eunapolis;; +city::3463859;Esteio;; +city::3463900;Estancia;; +city::3464008;Esmeraldas;Ehsmeral'das;Santa Quiteria;Эсмеральдас; +city::3464073;Erechim;Boa Vista do Erechim;Bôa Vista do Erechim;ERM;Ehreshin;Erechim;Erequim;Erexim;Jose Bonifacio;José Bonifacio;Paiol Grande;ai lei xin;ereca'ima;Эрешин;এরেচইম;埃雷欣; +city::3464304;Embu Guacu;Imbu-Guacu;Imbu-Guaçu; +city::3464305;Embu;Ehmba;Embu Arte;Embu das Artes;Imbu;M'Boy;Эмба; +city::3464374;Duque de Caxias;Caxias;Duke de Kashijas;Duke de Kasijasas;Duke de Kašijasas;Duki di Kashias;Duki di Kasias;Duki-di-Kashias;QDQ;duki ci ka cheiy s;dukijikasiaseu;dukuye de kaksa'iyasa;dwky dy kashys ryw dw zhanyrw;dwq dy kaksyas;ka xi ya si gong jue cheng;Дуке де Кашијас;Дуки ди Кашиас;Дуки-ди-Кашиас;Դուկի դի Կաշիաս;دوق دي كاكسياس;دوکی دی کاشیس، ریو دو ژانیرو;ডুকুয়ে ডে কাক্সইয়াস;ดูกีจีกาเชียส;დუკი-დი-კაშიასი;ドゥケ・デ・カシアス;卡希亞斯公爵城;두키지카시아스; +city::3464460;Dourados;DOU;Doradus;Dourados;do'uradosa;duo la du si;dwradws;Дорадус;دورادوس;ডোউরাডোস;多拉杜斯; +city::3464688;Divinopolis;DIQ;Divinopolis;Divinópolis;di wei nuo bo li si;dibhinopolisa;Дивинополис;ডিভিনোপোলিস;迪维诺波利斯; +city::3464739;Diadema;Diadema;QDW;Диадема; +city::3464891;Curvelo;Curvello;Kurvelu;ku er wei lu;kurbhelo;Курвелу;কুর্ভেলো;库尔韦卢; +city::3464975;Curitiba;CWB;Corityba;Curitiba;Curityba;Curytiba;Gorad Kurytyba;Kouritiba;Kouritimpa;Kuritib;Kuritiba;Kuritibae;Kuritibo;Kuritiwa;Kuritiyba;Kuriytyva;Kuriytýva;Kuriṭiba;Kuryciba;Kurytyba;Kùrìtíbà;gu li ti ba;ku li qi ba;ku ri ti ba;kulichiba;kurichiba;kuritcibas;kuritiba;kuritipe;kwrytyba;qwrytybh;Κουριτίμπα;Горад Курытыба;Коуритиба;Куритибæ;Куритиба;Курыціба;Կուրիտիբա;קוריטיבא;קוריטיבה;كوريتيبا;کوریتیبا;ܩܘܪܝܛܝܒܐ;कुरितिबा;কুরিটিবা;কুরিতিবা;ਕੁਰੀਤੀਬਾ;குரிடிபே;కురితీబా;ಕುರಿಟಿಬ;กูรีตีบา;კურიტიბა;ኩሪቺባ;ᎫᎵᏘᎦ;クリチバ;古里提巴;庫里奇巴;쿠리치바;𐌺𐌿𐍂𐌹𐍄𐌹𐌱𐌰; +city::3465038;Cuiaba;CGB;Cuiaba;Cuiabá;Cuyaba;Cuyabá;Kouiampa;Kujaba;Kuyaba;Vila Real do Senhor Bom Jesus de Cuiaba;Vila Real do Senhor Bom Jesus de Cuiabá;ku ya ba;ku-iaba;kuiaba;kuyaba;kwyaba;kwyyaba;Κουιαμπά;Куяба;Кујаба;קויאבה;كويابا;کوئیابا;کویابا;कुयाबा;কুয়াবা;กุยาบา;კუიაბა;クイアバ;库亚巴;쿠이아바; +city::3465059;Cubatao;; +city::3465090;Cruzeiro;Kruzejru;ke lu sai luo;Крузейру;克鲁赛罗; +city::3465108;Cruz Alta;CZB;Cruz Alta;Krus-Alta;shang ke lu si;Крус-Алта;上克鲁斯; +city::3465196;Criciuma;CCM;Creciuna;Creciúna;Cresciuma;Cresciúma;Criciuma;Criciúma;Krisiuma;karisi'uma;ke li xi wu ma;Крисиума;করিসিউমা;克里西烏馬; +city::3465284;Cotia;Cutia; +city::3465342;Corumba;CMG;Corumba;Corumbá;Korumba;kolumba;korumaba;korunba;kwrwmba;Корумба;كورومبا;কোরুমবা;コルンバ;코룸바; +city::3465476;Coronel Fabriciano;Koronel-Fabrisianu;Koronelfabrisjanu;fa bu li xi ya nuo shang xiao cheng;koronela phabrisiyano;Коронел-Фабрисиану;Коронел-Фабрісіану;কোরোনেল ফাব্রিসিয়ানো;コロネル・ファブリシアーノ;法布里西亚诺上校城; +city::3465624;Contagem;Kontazhen;kong ta ren;kontagema;kontajen;kontajeng;Контажен;কোন্টাগেম;コンタジェン;孔塔任;콘타젱; +city::3465644;Conselheiro Lafaiete;Conselheiro Lafaiete;Conselheiro Lafayete;Konsel'ejru-Lafaeti;Konseljeiro Lafajete;Konseljeiro Lafajetė;Lafaiete;QDF;konselahe'iro lapha'iyete;la fa ye di gu wen cheng;Консельейру-Лафаети;কোন্সেলহেইরো লাফাইয়েটে;拉法耶蒂顾问城; +city::3465721;Concordia;CCI;Konkordija;Конкордия; +city::3465927;Colombo;Kolombo;Kolombu;ge lun bu;kollombu;kolomabo;koronbo;Коломбо;Коломбу;কোলোমবো;コロンボ;哥伦布;콜롬부; +city::3465944;Colatina;Colatina;Collatina;Kolatina;QCH;kolatina;qwltynh;Колатина;קולטינה;কোলাটিনা; +city::3466174;Cianorte;Sianorte;Сианорте; +city::3466296;Chapeco;Chapeco;Chapecó;Shapeko;XAP;Xapeco;Xapecó;capeko;sha pei ke;Шапеко;চাপেকো;沙佩科; +city::3466537;Caxias do Sul;CXJ;Caxias;Caxias do Sul;Caxius do Sul;Kashias do Sul;Kashias-du-Sul;Kashijas do Sul;Kasijas do Sulas;Kašijas do Sulas;kaksa'iyasa do sula;kasiaseudusul;nan ka xi ya si;Кашиас до Сул;Кашиас-ду-Сул;Кашијас до Сул;কাক্সইয়াস ডো সুল;カシアス・ド・スル;南卡希亞斯;카시아스두술; +city::3466692;Catanduva;Catanduva;Katanduva;katanadubha;Катандува;কাটানডুভা; +city::3466696;Catalao;; +city::3466698;Cataguases;Cataguases;Cataguazes;Kataguazis;QCG;ka ta gua xi si;ka tak wa sis;kataguraasesa;Катагуазис;কাটাগুৱাসেস;กาตากวาซิส;卡塔瓜西斯; +city::3466779;Cascavel;CAC;Cascavel;Kaskavel;Kaskavelas;Krotalias;Naer-ourouler;Serpentes tintinnabulati;Tłʼiish áníní;Ular derik;bang-ulbaem;ka si ka wei er;kasakabhela;mar zngy;ngu hang krading;Κροταλίας;Каскавел;עכסנים;الأفعى ذات الجرس;مار زنگی;কাসকাভেল;র‌্যাটল সাপ;റാറ്റിൽസ്നേക്;งูหางกระดิ่ง;卡斯卡韋爾;방울뱀; +city::3466978;Carazinho;Carasinho;Karazin'ju;QRE;Каразинью; +city::3466988;Caratinga;Karatinga;QTL;ka la ting jia;ka ra ti ngka;karatinga;Каратинга;কারাটিঙ্গা;การาตีงกา;卡拉廷加; +city::3466998;Carapicuiba;; +city::3467081;Caraguatatuba;Caragua;Karaguatatuba;QCQ;Карагуататуба; +city::3467467;Canoas;Canoas;Kanoas;Kanoasas;ka nuo a si;kanoasu;kanoyasa;Каноас;কানোয়াস;カノアス;卡諾阿斯; +city::3467684;Campos do Jordao;Kampus-du-Zhordau;kamposa do jorda'o;kan pu si-du ruo er dang;Кампус-ду-Жордау;কাম্পোস ডো জোর্ডাও;カンポス・ド・ジョルドン;坎普斯-杜若尔当; +city::3467693;Campos dos Goytacazes;CAW;Campos dos Goitacazes;Campos dos Goytacazes;Kampos;Kampus-dus-Gojtakazis;Sao Salvador dos Campos;São Salvador dos Campos;kamposa dosa goyatakajasa;kan pu si ge yi ta ka ji si;Кампос;Кампус-дус-Гойтаказис;Кампус-дус-Гойтаказіс;কাম্পোস ডোস গোয়টাকাজাস;坎普斯戈伊塔卡濟斯; +city::3467717;Campo Mourao;CBW;Mourao;Mourão; +city::3467736;Campo Largo;Kampu-Largu;kampo largo;kan pu la gu;Кампу-Ларгу;কাম্পো লার্গো;坎普拉古; +city::3467747;Campo Grande;CGR;Campo Grande;Campus Magnus;Gorad Kampu-Grandy;Kampo Grande;Kampo Grandi;Kampo Grandė;Kampu-Grande;Kampu-Grandi;Kampu-Grandy;ge lan de ying;kambw ghrandy;kampo grande;kampugeulanji;kampwgrandh;kang pu krang ci;kympw grandے;kʼampʼu-grandi;qmpw grʼndh;Горад Кампу-Гранды;Кампо Гранде;Кампо Гранди;Кампу-Гранде;Кампу-Гранди;Кампу-Гранды;Кампу-Гранді;קמפו גראנדה;كامبو غراندي;کامپوگرانده;کیمپو گراندے;কাম্পো গ্রান্ডে;กังปูกรังจี;კამპუ-გრანდი;カンポ・グランデ;格蘭德營;캄푸그란지; +city::3467865;Campinas;CPQ;Campinas;Campinas e Regiao;Campinas e Região;Conceicao de Campinas;Conceição de Campinas;Gorad Kampinas;Kampinas;Kampinasas;Regiao de Campinas;Região de Campinas;kamapinasa;kambynas;kampinaseu;kan pi na si;kanpinasu;kmpynas;Горад Кампінас;Кампинас;Кампінас;קמפינאס;كامبيناس;کمپیناس;কামপিনাস;კამპინასი;カンピーナス;坎皮纳斯;캄피나스; +city::3467978;Cambe;Nova Dantzig; +city::3468014;Camaqua;Sao Joao de Camaquam;São João de Camaquam; +city::3468031;Camacari;Camacari;Camacary;Camassari;Camassary;Camaçari;Kamasari;QCC;ka ma sa li;kamakari;kamasari;Камасари;কামাকারি;კამასარი;カマサリ;卡馬薩里; +city::3468100;Caldas Novas;CLV;Kaldas-Novas;Koldas Novas;ka er da si nuo wa si;kaladasa nobhasa;Калдас-Новас;Կոլդաս Նովաս;কালডাস নোভাস;კალდას-ნოვასი;卡尔达斯诺瓦斯; +city::3468158;Cajamar;Agua Fria;Água Fria; +city::3468215;Caieiras;; +city::3468376;Cachoeiro de Itapemirim;CDI;Cacheiro;Cachoeiro de Itapemirim;Cachoeiro do Itapemirim;Kashuehjru-di-Itapemirin;Kasoeiro de Itapemirinas;Kašoeiro de Itapemirinas;QXD;aytabymyrym dy katshwyrw;kakahoye'iro de itapemirima;qswʼyyrw dh ʼytpmyryn;Кашуэйру-ди-Итапемирин;קשואיירו דה איטפמירין;ايتابيميريم دي كاتشويرو;কাকহোয়েইরো ডে ইটাপেমিরিম;カショエイロ・ジ・イタペミリン; +city::3468403;Cachoeirinha;Cachoeirinha; +city::3468436;Cachoeira do Sul;Cachoeira;Kashuehjra-du-Sul;Кашуэйра-ду-Сул; +city::3468562;Cacapava;; +city::3468570;Cacador;CFC;Cacador;Caçador;Kasador;Rio Cacador;Rio Caçador;ka sa duo er;kakador;Касадор;কাকাডোর্;卡萨多尔; +city::3468615;Cabo Frio;CFB;Cabo Frio;Cabo Frío;Caput Frigidum;Kabu-Friu;QCK;ka bo fu li ao;kabo phri'o;Кабу-Фриу;কাবো ফ্রিও;卡波弗里奧; +city::3468879;Brusque;Bruski;brusakuye;bu lu si ke;Бруски;ব্রুসকুয়ে;布吕斯克; +city::3469058;Brasilia;BSB;Bahsihleihya;Brasilia;Brasiliopolis;Brasilía;Brasília;Braxilia;Braxiłia;Braxìlia;Brazileje;Brazilia;Braziliavaros;Brazilija;Brazilija shaary;Brazilja;Braziljo;Brazilėjė;Brazília;Brazíliaváros;Breselya;Bràsílíà;Gorad Brazilija;Mprazilia;ba xi li ya;beulajillia;bra si leiy;brajhiliya;brasili'a;brasiliya;brasylya;brazili'a;brazilia;brazylya;bresiliya;brzylyh;burajiria;byrazylya;piraciliya;Μπραζίλια;Бразилиа;Бразилия;Бразилия шаары;Бразилија;Бразиліа;Горад Бразілія;Ҳавзаи федералии Бразилиа;Բրազիլիա;בראזיליא;ברזיליה;بئرازیلیا;برازيليا;برازیلیا;برازیلیہ;براسیلیا;بەڕازیلیا;ބްރަސީލިއާ;ब्रसिलिया;ब्राझिलिया;ब्रासीलिया;ব্রাসিলিয়া;ਬ੍ਰਾਜ਼ੀਲੀਆ;ବ୍ରାସିଲିଆ;பிரசிலியா;ಬ್ರೆಸಿಲಿಯಾ;ബ്രസീലിയ;บราซีเลีย;པུ་རུ་ཟི་ལི་ཡ།;ဘရာစေးလေးယားမြို့;ბრაზილია;ብራዚሊያ;ブラジリア;巴西利亚;巴西利亞;브라질리아; +city::3469092;Braganca Paulista;BJP;Baraganca;Baragança;Braganca;Bragansa-Paulista;Bragança;bra kang sa pea li s ta;braga'anaka pa'ulista;bu la gan sa-bao li si ta;Браганса-Паулиста;ব্রাগআনকা পাউলিস্টা;บรากังซาเปาลิสตา;布拉干薩-保利斯塔; +city::3469136;Botucatu;Botucatu;Botukatu;QCJ;bo tu ka tu;botukatu;Ботукату;বোটুকাটু;博图卡图; +city::3469968;Blumenau;BNU;Blumenau;balumena'u;beullumenau;blwmynaw;bu lu mei nao;burumenau;Блуменау;بلوميناو;বলুমেনাউ;ブルメナウ;布盧梅瑙;블루메나우; +city::3469989;Birigui;Biriguei;Birigui;Biriguy;Birigüi;QCF;bi li ji;birigu'i;Биригуи;বিরিগুই;比里吉; +city::3470003;Biguacu;Biguassu;Biguassú; +city::3470044;Betim;Betim;Betin;QBK;bechin;bei ting;betima;Бетим;Бетин;বেটিম;ベチン;貝廷; +city::3470073;Bento Goncalves;BGV;Bento Goncalves;Bento Gonçalves; +city::3470127;Belo Horizonte;B.H.;BH;BHZ;Bel-Horizonto;Bello Horizonte;Belo Horizonte;Belo Horizontė;Belo Hte;Belo Khorizonte;Belo Orizonte;Belo Orizonti;Belu Orizonti;Belu-Orizonti;Bhte;Cidade de Minas;Gorad Belu-Aryzonty;Urbs Pulchri Horizontis;bailo orizonti;bei luo ao li cang te;belluolijonchi;belo horijhonte;belo horijonte;belo xo ri sxn chi;beroorizonchi;beroorizonte;blw hwryzwnth;bylw hwryzwnty;pelo aricanc;Μπέλο Οριζόντε;Бело Оризонте;Бело Оризонти;Бело Хоризонте;Белу-Оризонти;Белу-Оризонті;Горад Белу-Арызонты;בלו הוריזונטה;بلو هوریزونته;بيلو هوريزونتي;بیلو ہوریزونتے;बेलो होरिझोन्ते;বেলো হোরিজোন্টে;ਬੈਲੋ ਓਰੀਜ਼ੋਂਤੀ;பெலோ அரிசாஞ்ச்;เบโลโอรีซอนชี;ბელუ-ორიზონტი;ベロオリゾンチ;ベロオリゾンテ;貝洛奥里藏特;贝洛奥里藏特;벨루오리존치; +city::3470142;Belford Roxo;Belford Rosho;Belford Roxo;Belford-Roshu;bei er fu luo shu;belaphorda rokso;Белфорд Рошо;Белфорд-Рошу;বেলফোর্ড রোক্সো;ベルフォード・ロッショ;貝爾福羅舒; +city::3470264;Bebedouro;QAU; +city::3470279;Bauru;Bauru;JTC;Yvauru;ba wu lu;ba'uru;bauru;Бауру;באורו;বাউরু;バウル;巴烏魯; +city::3470324;Batatais;Batataes;Batatajs;Бататайс; +city::3470353;Barueri;Baruehri;Barueri;Tambore;Tamboré;ba lu ai li;barueri;baruyeri;Баруери;Баруері;Баруэри;বারুয়েরি;バルエリ;巴魯埃里; +city::3470451;Barretos;BAT;Baretosas;Barretos;Barretus;ba lei tu si;barretosa;barrytws;Барретус;بارريتوس;বার্রেটোস;巴雷图斯; +city::3470583;Barreiras;BRA;Barrejras;Баррейрас; +city::3470636;Barra Mansa;Bara Mansa;Barra Mansa;Barra-Mansa;QBN;ba la man sa shi;barra mansa;Барра-Манса;বার্রা মান্সা;巴拉曼萨市; +city::3470691;Barra do Pirai;Bara do Pirajus;Barra do Parai;Barra do Pirahy;Barra do Pirai;Barra do Piraí;Barra-du-Pirai;QBD;ba la du pi lai;barra do pira'i;Барра-ду-Пираи;বার্রা ডো পিরাই;巴拉杜皮莱; +city::3470709;Barra do Garcas;BPG;Barra do Garcas;Barra do Garças;Barra-du-Garsas;ba la-du jia sa si;Барра-ду-Гарсас;巴拉-杜加萨斯; +city::3470858;Barbacena;QAK; +city::3471196;Bage;BGX;Bag;Bage;Bagé;Baje;Bajé;Baze;Bazhe;Bažė;ba re;bage;Баг;Баже;বাগে;巴熱; +city::3471291;Avare;; +city::3471335;Atibaia;Atibaja;QTA;a di ba ya;achibaia shi;atiba'iya;Атибая;আটিবাইয়া;アチバイア市;阿蒂巴亚; +city::3471374;Assis;AIF;Assis;Assis Sao Paulo;Assis São Paulo;Assis SP;Assiz;Ассис; +city::3471393;Aruja;Aruja;Arujá;Uruja;Urujá;ZFU; +city::3471691;Araxa;Arasha;Araxa;Araxá;Ouro Minas Araxa;Ouro Minas Araxá;a la sha;raaraksa;Араша;ৱারাক্সা;阿拉沙; +city::3471697;Araucaria;Araucaria;Araucária;Araukarija;Араукария; +city::3471715;Araruama;Araruama;a la lu a ma;raararu'ama;Араруама;ৱারারুআমা;阿拉鲁阿马; +city::3471758;Araras;Araras;a la la si;raararasa;Арарас;ৱারারাস;阿拉拉斯; +city::3471766;Araraquara;AQA;Ararakuara;Ararakvara;Araraquara;a la la kua la;ararakuara;raararakuraara;Араракуара;ৱারারাকুৱারা;アララクアラ;阿拉拉夸拉; +city::3471798;Arapongas;APX;Araponga;Arapongas;a la peng jia si;raarapongasa;Арапонгас;ৱারাপোঙ্গাস;阿拉蓬加斯; +city::3471830;Araguari;Araguar;Araguari;Araguary;Aragvaris;a la gua li;raaraguraari;Арагуари;ৱারাগুৱারি;阿拉瓜里; +city::3471848;Aracruz;Arakrus;Sauacu;Sauaçu;a la ke lu si;raarakruja;Аракрус;Արակրուս;ৱারাক্রুজ;არაკრუსი;阿拉克魯斯; +city::3471859;Aracatuba;ARU;Aracatuba;Arasatuba;Araçatuba;a la sa tu ba;raarakatuba;Арасатуба;ৱারাকাটুবা;阿拉萨图巴; +city::3471872;Aracaju;AJU;Aracaju;Arakazhu;Arakazu;Arakažu;Gorad Arakazhu;a la ka ru;alakaju;arakaju;arakajw;xa ra ka cu;ʼrʼqzw;Аракажу;Горад Аракажу;אראקזו;اراکاجو;আরাকাজু;อารากาจู;არაკაჟუ;アラカジュ;阿拉卡茹;아라카주; +city::3471910;Apucarana;APU; +city::3472177;Angra dos Reis;Angra;Angra dos Reis;Angra-dus-Rejs;an ge la du si lei si;anagra dosa re'isa;Ангра-дус-Рейс;আনগ্রা ডোস রেইস;安格拉杜斯雷斯; +city::3472248;Andradina;; +city::3472287;Anapolis;APS;Anapolis;Anápolis;a na bo li si;anapolisa;anaporisu;Анаполис;আনাপোলিস;アナポリス;阿纳波利斯; +city::3472343;Americana;Amerikana;QWJ;Vila Americana;Villa Americana;amrykna sayw paywlw;ya mei li jia na;Американа;امریکنا، سائو پائولو;亚美利加纳; +city::3472518;Almirante Tamandare;Almiranti-Tamandare;Tamandare;Tamandaré;Timaneira;Timoneira;a er mi lan te ta man da lei;alamirante tamandare;almyranth tamandarh;Алмиранти-Тамандаре;آلمیرانته تامانداره;আলমিরান্টে টামান্ডারে;阿尔米兰特塔曼达雷; +city::3472603;Alfenas;Alfenas;QXW;a er fei na si;alaphenasa;Алфенас;আলফেনাস;阿尔费纳斯; +city::3472638;Alegrete;ALQ;Alegrete;Alegreti;alegrete;Алегрети;আলেগ্রেটে; +city::3472766;Alagoinhas;Alagoin'jas;Alagoinhas;Alagoinjasas;QGS;a la ge yi ni ya si;alago'inahasa;alagoniasi;Алагоиньяс;আলাগোইনহাস;ალაგონიასი;阿拉戈伊尼亚斯; +city::3473964;Guaiba;Guaiba;Guaíba; +city::3474574;Palmas;PMW;Palmas;plms;Палмас;פלמס; +city::3662574;Rio Branco;Penapolis;Penápolis;RBR;Rio Bran'ko;Rio Branco;Rio Brankas;Rio Branko;Riu Branco;Riu-Branku;Riubranku;Río Branco;hiubeulangku;li yue bu lan ke;ri xu brang ku;ri'o branko;rioburanko;riyo branko;ryw brankw;ryw brnqw;Ρίο Μπράνκο;Рио Бранко;Риу-Бранку;Ріу-Бранку;ריו ברנקו;ريو برانكو;ریو برانکو;रियो ब्रांको;রিও ব্রাঙ্কো;รีอูบรังกู;რიუ-ბრანკუ;リオブランコ;里約布蘭科;히우브랑쿠; +city::3662762;Porto Velho;PVH;Porto Vel'o;Porto Velho;Porto Veljas;Porto Velo;Portu-Vel'ju;Portu-Velju;Pôrto Velho;Velho;bwrtw falyw;parto bhelaho;poleutubellyu;por tu wel yu;pwrtw wlyw;wei liu gang;Порто Вельо;Порто Вељо;Порту-Велью;Порту-Велю;פורטו ולאהו;פורטו וליו;بورتو فاليو;پورتو ویلہو;পর্টো ভেলহো;โปร์ตูเวลยู;პორტუ-ველიუ;ポルト・ヴェーリョ;韋柳港;포르투벨류; +city::3663517;Manaus;Barra do Rio Negro;MAO;Manaos;Manaus;Manos;Manáos;ma nao si;manausu;Манаус;Манаўс;מנאוס;マナウス;马瑙斯; +city::3663529;Manacapuru;Manakapuru;Манакапуру; +city::3664464;Cruzeiro do Sul;CZS;Jurua;Juruá;Kruzejro do Sul;Kruzejru-du-Sul;Kruzeyru du Sul;krwzyrw dw swl;nan ke lu sai luo;qrwzyyrw dw swl;Крузейро до Сул;Крузейру-ду-Сул;Կրուզեյրու դու Սուլ;קרוזיירו דו סול;کروزیرو دو سول;南克魯賽羅; +city::3664539;Coari;CIZ;Choary;Coari Amazonas;Coary;Koari;Quari;Quarí;Коари; +city::3664980;Boa Vista;BVB;Boa Vista;Boa Vista (Roraima);Boa Vista do Rio Branco;Boa Višta;Boa-Vista;Боа-Виста;בואה ויסטה; +city::3665199;Ariquemes;Arikemes;Arikemis;arikoyemesa;Арикемис;আরিকোয়েমেস; +city::3924679;Vilhena;BVH;Vilena;Vilhena;Вилена; +city::3925033;Ji Parana;JPR; +city::3925212;Cacoal;Cacoal;Cacual;Kakoal;OAL;Какоал; +city::6316406;Aparecida de Goiania;Aparesida de Gojanija;Aparesida di Gojanija;Aparesida-di-Gojanija;a pa lei xi da di ge ya ni ya;aparesida de go'iyaniya;Апаресида де Гојанија;Апаресида ди Гояния;Апаресида-ди-Гояния;আপারেসিডা ডে গোইয়ানিয়া;アパレシダ・デ・ゴイアニア;阿帕雷西達迪戈亞尼亞; +city::6317344;Jaboatao dos Guararapes;Zhaboatan-dus-Guararapis;Zhaboatao dos Guararapis;Zhaboatao dos Gvararapes;Zhabuatan-dus-Guararapis;jaboatangduseugualalapeseu;jaboraata'o dosa guraararapesa;re bo a tao;Жабоатан-дус-Гуарарапис;Жабоатао дос Гварарапес;Жабоатао дос Гуарарапис;Жабуатан-дус-Гуарарапіс;জাবোৱাটাও ডোস গুৱারারাপেস;ジャボアタン・ドス・グアララペス;熱博阿陶;자보아탕두스구아라라페스; +city::6317464;Lauro de Freitas;; +city::6317953;Pinhais;; +city::6318694;Simoes Filho;; +city::6318696;Sinop;OPS; +city::3571824;Nassau;City of Nassau;Gorad Nasau;NAS;Nasau;Nasauo;Nasaŭo;Naso;Nassaou;Nassau;Nassau City;Nassau pa Bahamas;Nassau på Bahamas;Nasáu;na sao;nasa'u;nasau;nasaw;nasayw;nasea;naso;nasso;neco;nsaw;Νασσάου;Горад Насау;Насау;Нассау;Նասաու;נסאו;ناسائو;ناساو;نساؤ;नासाउ;নাসাউ;ਨਸਾਊ;நேசோ;നാസോ;แนสซอ;ན་སའོ།;ნასაუ;ናሶ;ナッソー;拿騷;拿骚;나사우;나소; +city::1252416;Thimphu;Gorad Tkhimpkhu;Tempu;Thimbu;Thimfou;Thimpago;Thimphou;Thimphu;Thimpu;Timbu;Timbuo;Timfou;Timfu;Timfú;Timphu;Timpou (therine) Pounaka (cheimerine);Timpu;Timpû;Tkhimpkhu;Tėmpu;thim phu;thimphu;thimpu;thiphu;thymphw;timbu;timphu;timpu;ting bu;tinpu;tymfw;tymfww;tympw;Θίμφου;Τιμπού (θερινή) Πουνάκα (χειμερινή);Горад Тхімпху;Тимбу;Тхимпху;Тхімпху;Թհիմփհու;טהימפהו;تىمپۇ;تيمفو;تھمپو;تیمفو;تیمفوو;تیمپو;ٹھمپھو;थिंफू;थिम्पु;थिम्पू;थिम्फू;থিম্ফু;ਥਿੰਫੂ;ଥିମ୍ପୁ;திம்பு;థింపూ;ಥಿಂಪು;തിംഫു;තිම්පු;ทิมพู;ཐིམ་ཕུ།;ཐིམ་ཕུུུུ;თიმფუ;ጢምጱ;ティンプー;廷布;팀부; +city::933099;Selebi-Phikwe;PKW;Phikwe;Pikwe;Pikwe-Selibe;Selebi;Selebi Pikve;Selebi Pikvė;Selebi Pikwe;Selebi-Phikwe;Selebi-Pikwe;Selebi-Pkhikve;Selempi-Fikoue;Selibe;Selibe Phikwe;Selibe-Phikwe;Selibe-Pikwe Mine Lease Area;sai lai bi-pi kui;sellebipikwe;slyb fykwh bwtswana;Σελέμπι-Φίκουε;Селеби-Пхикве;Селебі-Пхікве;سلیب فیکوه، بوتسوانا;سیلیبی-فیکوے;セレビ・ピクウェ;塞莱比-皮奎;셀레비피퀘; +city::933305;Molepolole;Molepolole;Molepololė;mo lai bo luo lai;mollepollolle;moreporore;mwlpwlwlh;mwlpwlwlh bwtswana;Μολεπολόλε;Молепололе;מולפולולה;مولپولوله، بوتسوانا;モレポロレ;莫萊波洛萊;몰레폴롤레; +city::933773;Gaborone;GBE;Gaberones;Gaberones Village;Gaberono;Gaboron;Gaboronas;Gaborone;Gaboròn;Gaboróne;Gorad Gabaroneh;IGaborone;Nkamporone;Qaborone;gabolone;gaborone;gaboroni;gabwrwn;gbrwn;gebaroni;goborni;haborone;jabwrwn;jia bai long li;jia bo long li;ka bo rone;kaparoni;Γκαμπορόνε;Габороне;Горад Габаронэ;Գաբորոնե;גאבאראן;גאבורון;جابورون;گابورون;گابۆرۆن;گبرون;गॅबारोनी;गोबोर्नी;ਗਾਬੋਰੋਨੀ;காபரோனி;กาโบโรเน;ག་བོ་རོ་ནི།;გაბორონე;ጋበሮኔ;ጋቦሮን;ハボローネ;嘉柏隆里;嘉波隆里;가보로네; +city::933778;Francistown;FRW;Francistown;Fransistaoun;Fransistaun;Frensistaun;Frensistaunas;Gorad Fransistaun;fransystwwn bwtswana;fu lang xi si dui;furanshisutaun;peulaensiseutaun;Φράνσισταουν;Горад Франсістаўн;Франсистаун;פרנסיסטאון;فرانسس ٹاؤن;فرانسیستوون، بوتسوانا;แฟรนซิสทาวน์;フランシスタウン;弗朗西斯敦;프랜시스타운; +city::618800;Horad Zhodzina;Gorad Zhodzina;Gorod Zhodino;Horad Zhodzina;Schodsina;Zhodino;Zhodzina;Zodino;Zodzina;Żodino;Горад Жодзіна;Жодзiна;Жодзіна;Жодино; +city::618806;Zhlobin;Korpilovka;Zhlobin;Zlobin;Жлобин;Жлобін; +city::620127;Vitebsk;VTB;Vicebsk;Vicebsko;Vicebszk;Viciebsk;Vit'b'sku;Vitebs'k;Vitebscum;Vitebsk;Vitebska;Vitebskas;Vitepsk;Vitsebsk;Vitsemp'sk;Vitsiebsk;Vitsyebsk;Vítebsk;Vítsiebsk;Witebsk;Wizebsk;bichebseukeu;fytybsk;vu~itsu~epusuku;wei jie bu si ke;wi tebskh;wtybsk;wytbsq;Βιτσέμπσκ;Витебск;Витепск;Витьбьскъ;Вітебськ;Віцебск;Վիտեբսկ;וויטעבסק;ויטבסק;فيتيبسك;وتیبسک;วีเต็บสค์;ვიტებსკი;ヴィーツェプスク;维捷布斯克;비쳅스크; +city::621074;Svyetlahorsk;Shatilki;Shatsilki;Svetlagorsk;Svetlogorsk;Svyetlahorsk;Светлагорск;Светлогорск; +city::621741;Slutsk;Gorad Sluck;Sloetsk;Sloutsk;Sluc'k;Sluck;Slucka;Sluckas;Slutsk;Sluzk;Słuck;seullucheukeu;si lu ci ke;slutskh;slwzq;suutsuku;Горад Слуцк;Слуцк;Слуцьк;סלוצק;สลูตสค์;スウツク;斯盧茨克;슬루츠크; +city::621754;Slonim;Slanimas;Slonim;Slonima;Sloņima;Słonim;seullonim;si luo ni mu;slonimi;slwnym;suronimu;Слоним;Слонім;סלאנים;סלונים;სლონიმი;スロニム;斯洛尼姆;슬로님; +city::622428;Salihorsk;Chizhevichi;Saligorsk;Salihorsk;Salihorska;Salihorskas;Salyhorsk;Saļihorska;Soligors'k;Soligorsk;Szalihorszk;salliholeuseukeu;salyhwrsk;suo li ge er si ke;Салигорск;Салігорск;Солигорск;Солігорськ;سالیهورسک;索利戈尔斯克;살리호르스크; +city::622794;Rechytsa;Rechica;Rechitsa;Rechysta;Rechytsa;Rehchyca;Ryechitsa;Речица;Рэчыца; +city::623317;Polatsk;Gorad Polack;Podolsk;Polack;Polatsk;Polazk;Poloc'k;Polock;Polocka;Polockas;Polot'sku;Polotia;Polotk;Polotsk;Polozk;Poloțk;Potolsk;Połack;Połock;Pòlatsk;Pólatsk;bo luo ci ke;pollacheukeu;poratsuku;Горад Полацк;Полацк;Полотьскъ;Полоцк;Полоцьк;Պոլոցկ;פולאצק;პოლოცკი;ポラツク;波洛茨克;폴라츠크; +city::623549;Pinsk;Pins'k;Pinscum;Pinsk;Pinska;Pinskas;Pinszk;Pińsk;ping si ke;pinseukeu;pinsuku;pynsq;Пинск;Пінск;Пінськ;פינסק;ピンスク;平斯克;핀스크; +city::624079;Orsha;Orsa;Orscha;Orsha;Orsza;Orŝa;Orša;Vorsja;ao er sha;boleusya;vu~orusha;Орша;ヴォルシャ;奥尔沙;보르샤; +city::624400;Novoye Medvezhino;Medvezhino;Novoye Medvezhino;Медвежино; +city::624784;Navapolatsk;Navapolack;Navapolackas;Navapolatsk;Navapołack;Navapólatsk;Nawapolazk;Novopoloc'k;Novopolock;Novopolocka;Novopolotsk;Nowopolock;Nowopołock;Polotskiy;nabapollacheukeu;nwfwbwlwtsk;xin bo luo ci ke;Наваполацк;Новополоцк;Новополоцьк;نوفوبولوتسك;新波洛茨克;나바폴라츠크; +city::625144;Minsk;Gorad Minsk;MSQ;Mins'k;Minsc;Minscum;Minsk;Minsk - Minsk;Minsk - Мінск;Minsk osh;Minska;Minskaj;Minskas;Minsko;Minszk;Mińsk;Myensk;Myenyesk;Mînsk;ming si ke;ming si ke shi;minseukeu;minsk;minsuku;mnsk;mynsk;mynsq;mynysky;Μινσκ;Горад Мінск;Минск;Минск ош;Минскай;Мінск;Мінськ;Мѣньскъ;Մինսկ;מינסק;منسک;مىنىسكى;مينسك;مینسک;मिन्‍स्‍क;மின்ஸ்க்;ಮಿನ್ಸ್ಕ್;മിൻസ്ക്;มินสก์;མིན་སིཀ།;მინსკი;ミンスク;明斯克;明斯克市;민스크; +city::625324;Mazyr;Masyr;Mazir;Mazira;Mazyr;Mozir;Mozyr;Mozyr';Mozyrius;Mozyrz;Mozyr’;majileu;mazu~iru;mo ji li;moziri;Мазыр;Мозир;Мозырь;מאזיר;მოზირი;マズィル;莫济里;마지르; +city::625625;Maladzyechna;Maladzechna;Maladzyechna;Molodechno;Molodeczno;Маладзечна;Молодечно; +city::625665;Mahilyow;MVQ;Magiljou;Maguilov;Mahileu;Mahiliou;Mahilioŭ;Mahiljou;Mahiljov;Mahiljow;Mahiljoŭ;Mahilou;Mahiloŭ;Mahilyow;Mahilëŭ;Mogil'ov;Mogilev;Mogileva;Mogilew;Mogiliavas;Mogiliovas;Mogiljov;Mogilov;Mogilëv;Mogiļeva;Moguilev;Mohylew;Магілёў;Могилев;Могильов;Могилёв;Могиљов; +city::626081;Lida;Lida;Lieda;Lyda;li da;lida;lyda;rida;Ļida;Лида;Ліда;לידא;ليدا;ლიდა;リダ;利达;리다; +city::627145;Kobryn;Gorad Kobryn;Kobrin;Kobrin';Kobrina;Kobriny;Kobryn;Kobrynas;Kobryń;Kóbriny;ke bu lin;koburu~in;qwbryn;Горад Кобрын;Кобрин;Кобринь;Кобрын;קאברין;קוברין;コブルィン;科布林; +city::627904;Hrodna;GNA;Gardinas;Gorad Grodna;Goradnia;Grodna;Grodno;Grodņa;Hrodna;furodona;ge luo de nuo;ghrwdnw;grwdna;heulodeuna;hwrdnh;krxd no;Горад Гродна;Гродна;Гродно;הורדנה;غرودنو;گرودنا;กรอดโน;フロドナ;格罗德诺;흐로드나; +city::627907;Gomel;GME;Gomel;Gomel';Gomela;Gomelis;Gomel’;Gomeļa;Gorad Gomel';Gómel;Homel;Homel';Homeľ;Homiel;Homyel;Homyel';Homyel’;Hòmiel;ge mei li;ghwmyl;gwml;homel;homeri;hwml;komel;kx mel;Γόμελ;Гомел;Гомель;Гомељ;Горад Гомель;הומל;غوميل;گومل;கோமெல்;กอเมล;ホメリ;戈梅利;호멜; +city::629634;Brest;BQT;Beras'ce;Berestja;Brehst;Bressicia;Brest;Brest Litovsk;Brest i Kviterussland;Brest-Litovsk;Brest-Litowsk;Bresta;Brestas;Bresto;Breszt;Brzesc;Brzesc nad Bugiem;Brzesc-Litewsk;Brzesc-Litewski;Brześć;Brześć nad Bugiem;Brześć-Litewsk;Brześć-Litewski;Brėst;Byeras'tsye;Byeras’tsye;be rst;beuleseuteu;bresta;brst;brst blarws;brysq;bu lie si te;buresuto;Берасьце;Берестя;Брест;Брэст;בריסק;ברסט;برست;برست، بلاروس;بریسٹ، بیلاروس;ब्रेस्त;เบรสต์;ბრესტი;ブレスト;布列斯特;브레스트; +city::630376;Horad Barysaw;Barysaw;Borisov;Borissow;Gorad Barysau;Gorod Borisov;Horad Barysaw;Горад Барысаў;Город Борисов; +city::630429;Baranovichi;Baranavichy;Baranavitsjy;Baranawitschy;Baranoviche;Baranovichi;Baranovichi - Baranavichy;Baranovichi - Баранавiчы;Baranoviciai;Baranovitchi;Baranovitsi;Baranovitši;Baranovičiai;Baranowicze;Баранавічы;Барановичи; +city::630468;Babruysk;Babroejsk;Babruisk;Babrujsk;Babruysk;Bobruisk;Bobruiskas;Bobrujsk;Bobruysk;bwbrwysq;Бабруйск;Бобруйск;בוברויסק; +city::3582677;Belize City;Altepetl Belice;BZE;Bandaraya Belize;Belice;Beliz;Beliz Siti;Belizas;Belize;Belize Ceety;Belize City;Belize-stad;Belizurbo;Cidade de Belize;Ciudad de Belice;Dinas Belize;Kota Belize;Poli tou Beliz;Syudad han Belize;Thanh pho Belize;Thành phố Belize;be lis si ti;belijha siti;beliza siti;bellijeusiti;berizushiti;blyz syty;bo li ci shi;Πόλη του Μπελίζ;Белиз;Белиз Сити;Белизе;Беліз;בליז סיטי;بلیز سیتی;بیلیز شہر;بېلىز شەھىرى;बेलीज़ सिटी;बेलीझ सिटी;เบลีซซิตี;ဘလိဇ်မြို့;ベリーズシティ;伯利兹市;벨리즈시티; +city::5881791;Abbotsford;Abbotsford;Abotsford;Abotsfordas;YXX;abottsufodo;abwtsfwrd;abwtsfwrd brytysh klmbya;aebeocheupeodeu;ya bo si fu;Абботсфорд;Аботсфорд;أبوتسفورد;ابوتسفورد، بریتیش کلمبیا;ایباٹسفورڈ;ایبٹس فورڈ، برٹش کولمبیا;アボッツフォード;亞博斯福;애버츠퍼드; +city::5882873;Ajax;Adzhaks;Ehjdzhaks;Ejdzaks;ajaks;ajaks antaryw;eijaegseu;eijakkusu;ya ji shi;Аджакс;Ејџакс;Эйджакс;أجاكس;اجاکس، انتاریو;エイジャックス;亞積士;에이잭스; +city::5885383;Anmore;; +city::5894171;Barrie;Bari;Baris;Barri;Barrie;Berri;YLK;ba li;baeli;bari;bary;bry antaryw;Бари;Барри;Беррі;باري;باری;باری، اونٹاریو;بری، انتاریو;バリー;巴里;배리; +city::5907364;Brampton;Brampton;Bramptonas;Bramptono;Bramptun;XPN;baraimpatana;beulaemteon;braimpatana;brambtwn;bramptan;bramtana;bremptana;brmptwn antaryw;bu lan pu dun;buranputon;piramptan;Брамптон;Брамптън;برامبتون;برامپٹن، انٹاریو;برمپتون، انتاریو;بریمپٹن;ब्राम्टन;ब्रैंपटन;ਬਰੈਂਪਟਨ;બ્રેમ્પ્ટન;பிராம்ப்டன்;బ్రాంప్టన్;ബ്രംപ്ടൺ;බ්‍රැම්ටන්;ブランプトン;布兰普顿;브램턴; +city::5907990;Brantford;Brantford;Brantfordas;XFV;beulaenteupeodeu;brantfwrd;brntfwrd antaryw;bu lan te fu de;burantofodo;Брантфорд;برانتفورد;برانٹفورڈ;برنتفورد، انتاریو;برینٹفورڈ;ブラントフォード;布兰特福德;브랜트퍼드; +city::5909629;Brossard;Brosar;bao le sha;brwsar;burosado;Бросар;بروسار;بروسارڈ;ブロサード;寶樂沙; +city::5911592;Burlington;Berlington;barinton;beollingteon;bo ling dun;brlngٹn awnٹaryw;brlyngtwn antaryw;byrlynjtwn;Берлингтон;Берлінгтон;برلنگٹن;برلنگٹن، اونٹاریو;برلینگتون، انتاریو;بيرلينجتون;バーリントン;伯灵顿;벌링턴; +city::5911606;Burnaby;Barnabis;Bernabi;Bernabija;Bjornabi;Burnabi;Burnaby;Bērnabija;banabi;banabi shi;ben na bi;beoneobi;brnaby;brnabے;brnyby;bwrnby;Бернаби;Бернабі;Бърнаби;Бёрнаби;Бөрнаби;برنابی;برنابے;برنیبی;بورنبي;バーナビー;バーナビー市;本拿比;本那比;버너비; +city::5913490;Calgary;Calgaria;Calgary;Gorad Kalgary;Kalgari;Kalgario;Kalgaris;Kalnkari;Kalqari;Kelgery;YYC;ka er jia li;ka jia li;kaelgeoli;kailagari;kalgari;kalghary;kalgry;kalkari;karugari;kelgari;klgry;kyalgari;kylgry;qlgry;Κάλγκαρι;Горад Калгары;Калгари;Калгарі;Կալգարի;קלגרי;كالغاري;کالگری;کلگری;کیلگری;कॅल्गारी;कैलगरी;ਕੈਲਗਰੀ;கால்கரி;కాల్గరీ;ಕ್ಯಾಲ್ಗರಿ;แคลกะรี;ကယ်လ်ဂရီမြို့;კალგარი;カルガリー;卡加利;卡尔加里;캘거리; +city::5913695;Cambridge;Kejmbridzh;Kembridz;Kembridzh;Kembrigo;Kembriĝo;jian qiao;kambrydj;keimbeuliji;kenburijji;kmbryj antaryw;kymbrj;Кеймбридж;Кембридж;Кембриџ;كامبريدج;کمبریج، انتاریو;کیمبرج;کیمبرج، انٹاریو;ケンブリッジ;剑桥;케임브리지; +city::5921356;Chilliwack;YCW; +city::5927689;Coquitlam;Coquitlam;kokittoramu;kokittoramu shi;kokuittoramu;コキットラム;コキットラム市;コクイットラム; +city::5935277;Dartmouth;dateumeoseu;ഡാർട്മൗത്;다트머스; +city::5937615;Delta;Del'ta;Delta;delta;deruta;dlth;dylta;san jiao zhou;Делта;Дельта;דלתה;ديلتا;デルタ;三角洲;델타; +city::5942845;Drummondville;Drammondvill;Drammonvil';Dramondvil;Drummondville;XDM;de la meng shi;doramonbiru;drwmwndwyl;drwmwnfyl;Драммонвіль;Драммондвилл;Драмондвил;دروموندویل;درومونفيل;ڈرمنڈولے;ڈرمونڈویل;ドラモンビル;德拉蒙市; +city::5946768;Edmonton;Edmonton;Edmontona;Edmontonas;Edmontono;Edmundopolis;Edmuntun;Ehdmonton;Entmonton;Gorad Ehdmantan;YEA;admwntwn;ai de meng dun;aidamatana;edamantana;edeumeonteon;edomonton;etmantan;xe dman tan;Édmonton;Έντμοντον;Горад Эдмантан;Едмонтон;Едмънтън;Эдмонтон;Էդմոնտոն;אדמונטון;إدمونتون;ادمونتون;ایڈمنٹن;एडमंटन;ਐਡਮੰਟਨ;எட்மன்டன்;เอดมันตัน;ཨེ་ཏི་མོན་ཐོན།;ედმონტონი;ᐊᒥᐢᑲᐧᒋᐊᐧᐢᑲᐦᐃᑲᐣ;エドモントン;埃德蒙顿;에드먼턴; +city::5950267;Etobicoke;Ehtobiko;Etobiko;etobiko;etopikok;itobiko;yi tao bi gu;Етобіко;Этобико;எடோபிகோக்;エトビコ;怡陶碧谷;이토비코; +city::5955895;Fort McMurray;Fort Makmari;Fort-MakMerrej;Fort-MakMerrey;YMM;fotomakumare;fwrt makmwray;mai ke mo li bao;poteumaegmeoli;Форт Макмари;Форт-МакМеррей;فورت ماكموراي;فورت مک‌موری;フォートマクマレー;麦克默里堡;포트맥머리; +city::5957776;Fredericton;Fredericopolis;Fredericton;Frederikton;Frederiktonas;Frederiktono;Frederiktun;Gorad Frehdehryktan;Phrentrikton;YFC;frdryktwn;frydryktwn;fu lei de li ke dun;furederikuton;hpireteriktan;peuledeoligteon;phredariktana;prdryqtwn;Φρέντρικτον;Горад Фрэдэрыктан;Фредериктон;Фредериктън;Фредеріктон;פרדריקטון;فردریکتون;فريدريكتون;فریڈرکٹن;فریڈریکٹن;फ्रेडरिक्टन;ஃபிரெடெரிக்டன்;ფრედერიკტონი;フレデリクトン;弗雷德里克頓;프레더릭턴; +city::5959974;Gatineau;Gatineau;Gatino;Sablono:TabelKapoLauCarta;gatino;gatynw;ghatynw;gytynw;jia di nuo;jia di nuo shi;kettinov;Ŝablono:TabelKapoLaŭĈarta;Гатино;Гатіно;غاتينو;گاتینو;گیتینؤ;گیٹینیو;கெட்டினோவ்;გატინო;ガティノー;加蒂諾;加蒂诺市;가티노; +city::5964215;Granby;Gorad Granbi;Granbi;Granby;ge lan bi;ghranby;granby kbk;grymby;Горад Гранбі;Гранби;Гранбі;غرانبي;گرانبی، کبک;گریمبی;格兰比; +city::5964700;Greater Sudbury;Bol'shoj Sadberi;Gran Sudbury;Grand Sudbury;Granda Sudbury;Greater Sudbury;Sadberi;Sadberis;Sudbury;Veliki Sadberi;YSB;catpari perumpakam;da sa de bo li;ghrytr swdbwry;gryytr sdbry;sadbry bzrg;sadobari;seodeubeli;Большой Садбери;Велики Садбери;Садбері;גרייטר סדברי;سادبری بزرگ;غريتر سودبوري;گریٹر سڈبری;சட்பறி பெரும்பாகம்;サドバリー;大薩德伯里;서드베리; +city::5967629;Guelph;Guehlf;Guelfas;Guelph;Gvelf;XIA;gerufu;ghwylf;gui hu;gwelpeu;gwlf;gwylf;gywlf;Гвелф;Гуэлф;غويلف;گولف;گویلف;گیولف;ゲルフ;貴湖;궬프; +city::5969782;Hamilton;Gamil'ton;Gamilton;Gorad Gamil'tan;Hamilton;Hamilton i Ontario;Hamiltona;Hamiltonas;Hamiltono;Khamilton;Khamiltun;amiltan;ha mi er dun;haemilteon;hamiruton;hamyltwn;hemiltana;hmyltwn;hmyltwn antaryw;Гамильтон;Гамільтон;Горад Гамільтан;Хамилтон;Хамилтън;Համիլտոն;המילטון;هاميلتون;همیلتون، انتاریو;ہاملٹن;ہیملٹن، انٹاریو;हॅमिल्टन;ஆமில்டன்;හැමිල්ටන්;ჰამილტონი;ハミルトン;哈密尔顿;해밀턴; +city::5989045;Kamloops;Kamloops;Kamlups;YKA;kaimalupasa;kamlwbs;kamlwps;kamurupusu;kan lu pu si;Камлупс;קאמלופס;كاملوبس;کاملوپس;ਕੈਮਲੂਪਸ;カムループス;坎卢普斯; +city::5990579;Kelowna;Kelouna;Kelowna;YLW;ji long na;kellona;kerouna;klwna;kylwna;kylwwna;qlwnh;Келоуна;קלונה;كيلونا;کلونا;کیلوونا;ケロウナ;基隆拿;켈로나; +city::5992500;Kingston;Cataraqui;Kingstan;Kingston;Kingstonas;Kingstun;YGK;jin si dun;jing shi dun;kingseuteon;kingusuton;kynghstwn;kyngstwn antaryw;Кингстон;Кингстън;Кінгстан;Кінгстон;كينغستون;کنگسٹن;کنگسٹن، اونٹاریو;کینگستون، انتاریو;キングストン;京士頓;金斯顿;킹스턴; +city::5992996;Kitchener;Gorad Kitchehner;Kiceneris;Kicenero;Kichener;Kitchener;Kiĉenero;Kičeneris;ji qin na;kchnr;khitche nex r;kichineo;kitchina;kychnr;kytshnr;qyznr;Горад Кітчэнер;Китченер;Киченер;Кіченер;קיצנר;كيتشنر;کچنر;کیچنر;คิตเชเนอร์;კიტჩენერი;キッチナー;基秦拿;키치너; +city::6049430;Langley;Distretu de Langley;Distrikto Langley;Distrito de Langley;Distritu de Langley;Langley British Columbia;Lengli;Township of Langley;lan li qu;lan li zhen;ranguri;Ленглі;لینگلی، برٹش کولمبیا;ラングリー;蘭里區;蘭里鎮; +city::6050610;Laval;Gorad Laval';Laval;Laval';Lavalis;Lavalo;la wa lei;lafal;lawal kbk;lawl;ravu~aru;Λαβάλ;Горад Лаваль;Лавал;Лаваль;לאוואל;لافال;لاوال، کبک;لاول;ラヴァル;拉瓦勒; +city::6053154;Lethbridge;Letbric;Letbridz;Letbridzas;Letbridzh;Letbridžas;Lethbridge;YQL;lai si bu li qi;leseubeuliji;ltbrydg;lythbrydj;resuburijji;Летбридж;Летбриџ;לתברידג;لث‌بریج;ليثبريدج;لیتھ برج;لیتھبریج;レスブリッジ;萊斯布里奇;레스브리지; +city::6058560;London;Landona;London;Londonas;Londono;YXU;leondeon;lndn;lndn antaryw;londoni;lun dui;lun dun;lwndwn;rondon;Лондон;לונדון;لندن;لندن، انتاریو;لندن، اونٹاریو;ლონდონი;ロンドン;伦敦;런던; +city::6059891;Longueuil;Gorad Langjoj;Long'oj;Longej;Longejlo;Longjoj;Longueuil;lang ji er;long-goei;lwnghwy;lwngwl;lwngwy;rongeru;Горад Лангёй;Лонгеј;Лонгьой;Лонгёй;لونغوي;لونگؤل;لونگوی;ロンゲール;朗基爾;롱괴이; +city::6065686;Maple Ridge;Mehpl-Ridzh;feng shu ling;mabl rydj;meipeulliji;meipururijji;Мэпл-Ридж;مابل ريدج;メイプルリッジ;楓樹嶺;메이플리지; +city::6066513;Markham;Markam;Markem;Markhamo;Markum;makamu;markam;markam antaryw;wan jin shi;Маркам;Маркем;Маркъм;ماركام;مارکام، انتاریو;مارکھم، انٹاریو;マーカム;萬錦市; +city::6071618;Medicine Hat;Medicine Hat;Medikan Hat;Medisin Hetas;Medisin Khat;Medisin-Get;Medisin-Khat;YXH;mdsyn hat;mdysyn ht;mei di xin ha te;Медисин Хат;Медисин-Гет;Медисин-Хат;مدسين هات;مدیسین هت;میڈیسن ہیٹ;梅迪辛哈特; +city::6074377;Milton;Gorad Miltan;Milton;mi er dun;miruton;myltwn;Горад Мілтан;Милтон;Мілтон;ميلتون;ミルトン;米尔顿; +city::6075357;Mississauga;Misisaga;Misisoga;Misisogo;Missisoga;Mississauga;Mississoga;mi xi sha jia;mishisaga;misisaga;misisogeo;mss saga;mssaga;mysysaga;mysysagha;mysyswgh;mysyswja;Мисисага;Мисисога;Миссиссога;Міссісога;מיסיסוגה;مسس ساگا;مسساگا;ميسيساغا;ميسيسوجا;میسیساگا;मिसिसागा;ਮਿਸੀਸਾਗਾ;මිසිසාගා;ミシサガ;密西沙加;미시소거; +city::6076211;Moncton;Mon'kton;Moncton;Monkton;Monktonas;Monktono;YQM;meng ke dun;meongkeuteon;monkuton;mwnktwn;mwnqtwn;mx ngk tan;Μόνκτον;Монктон;מונקטון;مانکٹن;مونكتون;مونکتون;مونکٹون;มองก์ตัน;モンクトン;蒙克顿;멍크턴; +city::6077243;Montreal;Lungsod ng Montreal;Lungsod ng Montréal;Monreal;Monreal';Monreala;Monrealis;Monreyal;Monreāla;Mons Regius;Mont-real;Montreal;Montreal - Montreal;Montreal - Montréal;Montreal City;Montreali;Montrealo;Montréal;YMQ;meng te li er;monreali;monteuliol;montorioru;mwntral;mwntryal;Μοντρεαλ;Μόντρεαλ;Монреал;Монреаль;Монтреал;מונטריאול;مونترآل;مونتریال;مونترېئال;მონრეალი;ᒧᕆᐊᓪ;モントリオール;蒙特利尔;몬트리올; +city::6085772;Nanaimo;Nanaimo;Nanajmo;YCD;na nai mo;nanaimo;nanaymw;nanaymw brytysh klmbya;nanyamw ay;nnayymw;Нанаймо;Нанајмо;نانائمو;نانایمو;نانایمو، بریتیش کلمبیا;نانيامو إي;ننائیمو;ナナイモ;纳奈莫;나나이모; +city::6087701;Newmarket;N'jumarket;Njumarket;niu ma ke te;nyumakes;nyumaketto;nywmarkt;nywmarkt antaryw;Њумаркет;Ньюмаркет;نيوماركت;نیومارکت، انتاریو;ニューマーケット;纽马克特;뉴마켓; +city::6087844;New Westminster;N'ju-Uehstminster;New Westminister;New Westminster;Nju Vestminster;YBD;nyuuesutominsuta;nyuweseuteuminseuteo;nyw wstmynstr;nyw wystmynystr;xin wei si min si te;xin xi min;Њу Вестминстер;Нью-Уэстминстер;ניו וסטמינסטר;نيو ويستمينيستر;نیو وسٹمنسٹر;نیو ویسٹ منسٹر;ニューウエストミンスター;新威斯敏斯特;新西敏;뉴웨스트민스터; +city::6087892;Niagara Falls;Najagara Fols;Niagara Falls;Niagara Folsas;Niagara-Folls;Niagara-Fols;XLV;naiagalapolseu;naiagaraforuzu;ni ya jia la pu bu cheng;nyagara falz antaryw;nyagra falz;nyajara fwlz;Најагара Фолс;Ниагара-Фолс;Ніагара-Фоллс;نياجارا فولز;نیاگارا فالز، انتاریو;نیاگرا فالز;نیاگرا فالز، انٹاریو;ナイアガラフォールズ;尼亚加拉瀑布城;나이아가라폴스; +city::6089125;Norfolk County;; +city::6089426;North Bay;Gorad Nort-Bej;Nort Bej;Nort-Bej;YYB;bei wan;nosubei;nwrth bay;nwrth by;Горад Норт-Бей;Норт Беј;Норт-Бей;نارتھ بے;نورث باي;نورث بی;ノースベイ;北灣; +city::6091104;North York;Nort-Jork;bei yue ke;nort york;nosuyoku;Норт-Йорк;நோர்த் யோர்க்;ノースヨーク;北約克; +city::6092122;Oakville;Okvil;Okvill;XOK;ao ke wei er;awkfyl;okeubil;okubiru;Оквил;Оквилл;Оквілл;أوكفيل;اوک‌ویل;オークビル;奥克维尔;오크빌; +city::6094578;Oshawa;Osava;Oshava;Ošava;QWA;YOO;ao sha hua;awshawa;oshava;oshawa;osyawa;Ошава;أوشاوا;اوشاوا;ოშავა;オシャワ;奧沙華;오샤와; +city::6094817;Ottawa;Gorad Atava;Otava;Otavo;Otawa;Ottaba;Ottahua;Ottava;Ottavae;Ottawa;YOW;atawa;atoya;attava;awtawa;otava;otawa;ottava;wo tai hua;xxttawa;ŸAA¬²±;Οττάβα;Οτταβα;Горад Атава;Отава;Оттавæ;Оттава;Օտտավա;אוטווה;אטאווא;أوتاوا;ئۆتاوا;اتاوا;اوتآوآ;اوٹاوا;اٹاوہ;ओटावा;অটোয়া;ਓਟਾਵਾ;ଓଟାୱା;ஒட்டாவா;ಆಟ್ಟಾವಾ;ഓട്ടവ;ออตตาวา;ཨོ་ཏ་ཝ།;အော့တဝမြို့;ოტავა;ኦታዋ;ᎠᏔᏩ;ᐊᑐᕚ/atavaa;オタワ;渥太華;오타와; +city::6101645;Peterborough;Peterborough;Piterboro;YPQ;bi de bao;bytyrbwrwgh;pitaboro;piteobeoleo;pytrbwrw antaryw;Питерборо;Пітерборо;بيتيربوروغ;پیتربورو، انتاریو;پیٹربرو، انٹاریو;پیٹربروہ;ピーターボロ;彼得堡;피터버러; +city::6104111;Pickering;Pikering;bykryngh;pi ke ling;pikaringu;pikeoling;pkrng;pykryng antaryw;Пикеринг;Пікерінг;بيكرينغ;پکرنگ;پیکرینگ، انتاریو;ピカリング;皮克靈;피커링; +city::6113365;Prince George;Prince George;Prins DZordz;Prins-Dzhordzh;YXS;bryns jwrj;peulinseujoji;phrins cxrc;prns jrj brytysh klmbya;pryns gwrg;qiao zhi wang zi cheng;Принс Џорџ;Принс-Джордж;Прінс-Джордж;פרינס גורג;برينس جورج;پرنس جارج، برٹش کولمبیا;پرنس جرج، بریتیش کلمبیا;พรินซ์จอร์จ;乔治王子城;프린스조지; +city::6118158;Red Deer;Red Deer;Red Dir;Red Dyras;Red-Dir;YQF;hong lu shi;rd dyr;reddodia;ryڈ ڈyyr albrٹa;Ред Дир;Ред-Дир;Ред-Дір;רד דיר;رد دير;رد دیر;ریڈ ڈئر;ریڈ ڈئیر، البرٹا;レッドディア;红鹿市; +city::6119109;Regina;Gorad Rehdzhajna;Redzaina;Redzajna;Redzhajna;Redzhajnae;Redžaina;Regina;Regina i Saskatchewan;Regino;Rejayna;Rengina;Reĝino;Ridzaina;Ridzhajna;Ridžaina;Régina;Urbs Reginae;YQR;li gu na;li jia na;lijaina;rejaina;rejina;rgyynh;rija'ina;rjayna;ryjayna;ryjyna saskchywan;Ρεγγίνα;Горад Рэджайна;Реджайнæ;Реджайна;Реџајна;Риджайна;Ռեջայնա;רגיינה;رجاینا;ريجاينا;ریجینا، ساسکچیوان;रेजिना;ਰਿਜਾਇਨਾ;ரெஜைனா;რეჯაინა;レジャイナ;里賈納;里贾纳;리자이나; +city::6119518;Repentigny;Repantin'i;Repantini;Repentigny;rpantyny kbk;rybntynyy;Репантиньи;Репантињи;ريبنتينيي;رپانتینی، کبک; +city::6122085;Richmond;Richmond;Richmund;Ricmondas;Ričmondas;lichimeondeu;lie zhi wen;ricamada;ritchimondo;rytshmwnd;Ричмонд;Ричмънд;Річмонд;ريتشموند;رچمنڈ، برٹش کولمبیا;رچمونڈ;ਰਿਚਮੰਡ;リッチモンド;列治文;리치먼드; +city::6122091;Richmond Hill;Richmond Khil;Richmond-Gill;Richmond-Khill;lichimeondeuhil;lie zhi wen shan;ritchimondohiru;rychmwnd hyl antaryw;rytshmwnd hyl;Ричмонд Хил;Ричмонд-Гілл;Ричмонд-Хилл;ريتشموند هيل;ریچموند هیل، انتاریو;リッチモンドヒル;列治文山;烈治文山;리치먼드힐; +city::6137270;Saguenay;Sagene;Sagenej;Sagenė;Sagne;Saguenay;YBG;sa ge nai;sageune;saghynyh;sagune;sagwnh kbk;Сагеней;Сагне;סאגנה;ساغينيه;ساگونه، کبک;سگینے، کیوبک;サグネ;薩格奈;사그네; +city::6138374;Saint-Hyacinthe;Gorad Sen-Iasent;Saint-Hyacinthe;Sankt-Giacint;Sent Ijasent;Sent-Iasent;XIM;san hyasnt kybk;sn-ayysnt kbk;Горад Сен-Іасент;Санкт-Гиацинт;Сент Ијасент;Сент-Іасент;Сент-Иасент;سان هياسنت، كيبك;سن-اییسنت، کبک; +city::6138495;Saint-Jean-sur-Richelieu;Saint-Jean-sur-Richelieu;Sen Zhan sir Rishele;Sen-Zhan-sjur-Rishel'e;Sen-Zhan-sjur-Rishel'jo;YJN;san jan swr ryshlyw;sn-zhan-swr-ryshwlyw;Сен Жан сир Ришеље;Сен-Жан-сюр-Ришелье;Сен-Жан-сюр-Рішельйо;سان جان سور ريشليو;سن-ژان-سور-ریشولیو;سینٹ-ژاں -سر-ریچلیو; +city::6138501;Saint-Jerome;Saint-Jerome;Saint-Jérôme;Sen Zherom;Sen-Zherom;san jyrwm;sn-zhrwm kbk;Сен Жером;Сен-Жером;سان جيروم;سن-ژروم، کبک; +city::6138517;Saint John;Gorad Sent-Dzhon;Saint John;Saint-Jean;Sejnt Dzhon;Sent DZon;Sent-Dzhon;Urbs Sancti Ioannis Canadensis;YSJ;seinteujon;senta jona;sentcxhn;sentojon;sheng yue han;snt gwn;snt jan;Горад Сент-Джон;Сейнт Джон;Сент Џон;Сент-Джон;סנט גון;سنت جان;سینٹ جان;سینٹ جان، نیو برنسوک;सेंट जॉन;เซนต์จอห์น;სენტ-ჯონი;セントジョン;セント・ジョン;圣约翰;세인트존; +city::6141190;Sarnia;Gorad Sarnija;Sarnia;Sarnija;YZR;carniya;sa ni ya shi;sania;sarnya;Горад Сарнія;Сарния;Сарнија;Сарнія;سارنيا;سارنیا;سارنیہ;சார்னியா;サーニア;薩尼亞市;사니아; +city::6141256;Saskatoon;Gorad Saskatun;Saskatoon;Saskatoun;Saskatun;Saskatuna;Saskatunas;Saskatuno;Saskatūna;Saskatūnas;YXE;caskatun;sa si ka tong;saeseukeotun;saskatuna;saskatwn;sasukato~un;ssqtwn;Σασκατούν;Горад Саскатун;Саскатун;Սասկատուն;ססקטון;ساسكاتون;ساسکاتون;ساسکاٹون;सास्काटून;சாஸ்கடூன்;სასკატუნი;サスカトゥーン;萨斯卡通;새스커툰; +city::6141439;Sault Ste. Marie;Sault Sainte Marie;Sault Ste. Marie;Sault-Sainte-Marie;Su Sent Mari;Su-Sent-Mari;YAM;su sent ma ri;su sheng ma li;suseinteumali;susentomari;sw saynt mary;Су Сент Мари;Су-Сент-Мари;Су-Сент-Марі;سالٹ سٹی ماری;سو ساينت ماري;سو سنت‌ماری;سو سینت ماری، انٹاریو;ซูเซนต์มารี;სუ-სენტ-მარი;スーセントマリー;蘇聖瑪麗;수세인트마리; +city::6146143;Sherbrooke;Gorad Shehrbruk;Serbrukas;Sherbrooke;Sherbruk;YSC;she bu lu;she bu lu ke;sheruburukku;shrbrwk;shyrbrwk;syeleubeulukeu;Šerbrukas;Горад Шэрбрук;Шербрук;شربروک;شيربروك;شیربروک;შერბრუკი;シェルブルック;舍布碌;舍布魯克;셰르브루크; +city::6146279;Sherwood Park;Shervud Park;Шервуд Парк; +city::6155033;St. Albert;Saint Albert;Saint-Albert;Sen Alberas;Sent Albert;sant albrt;seinteuaelbeoteu;sheng ai bo te;snt albrt;Сент Алберт;سانت ألبرت;سنت آلبرت;سینٹ البرٹ;سینٹ البرٹ، البرٹا;სენტ-ალბერტი;圣艾伯特;세인트앨버트; +city::6155721;St. Catharines;Gorad Sent-Kataryns;Saint Catharines;Sankta Katarino;Sent Katerinsas;Sent Ketrins;Sent-Katarins;Sent-Keterins;St. Catharines;YCM;sant kathrynz;seinteukaeseolinseu;sentokyasarinzu;sheng kai se lin si;snt katrynz antaryw;Горад Сент-Катарынс;Сент Кетринс;Сент-Катаринс;Сент-Кетерінс;Սենթ Քաթարինս;سانت كاثرينز;سنت کاترینز، انتاریو;سینٹ کیتھرائنز;เซนต์แคเทอรีนส์;სენტ-კატარინსი;セントキャサリンズ;圣凯瑟琳斯;세인트캐서린스; +city::6159905;Surrey;Sari;Suri;Surrej;sare;seoli;su li;swry;swry kwlwmbya albrytanyt;Сари;Суррей;Съри;סארי;سوري، كولومبيا البريطانية;سوری;サレー;素里;서리; +city::6163012;Terrebonne;Terbon;trbwn kbk;tyrbwn;Тербон;تربون، کبک;تيربون; +city::6166142;Thunder Bay;Tander Bej;Tander Bejus;Tander Bėjus;Tander-Bej;Thunder Bay;Tundurbej;YQT;sandabei;sang de bei;seondeobei;thandr bay;thandr by;Тандер Беј;Тандер-Бей;Тъндърбей;תאנדר ביי;تھنڈر بے;تھنڈربے، انٹاریو;ثاندر باي;ثاندر بی;തണ്ടർ ബേ;サンダーベイ;桑德贝;선더베이; +city::6167865;Toronto;Gorad Taronta;Torontas;Toronto;Torontu;Torontum;Torontó;YTO;duo lun duo;roranro;taronto;teareantea;tho rxn to;tolonto;toramto;toranto;toronto;twrntw;twrwntw;Τορόντο;Горад Таронта;Торонто;Տորոնտո;טאראנטא;טורונטו;تورنتو;تورونتو;ٹورانٹو;ٹورنٹو;टोरण्टो;टोरन्टो;टोराँटो;तोरन्तो;টরোন্টো;ਟੋਰਾਂਟੋ;ரொறன்ரோ;టొరంటో;ಟೊರಾಂಟೋ;ടോറോണ്ടോ;โทรอนโต;တိုရွန်တိုမြို့;ტორონტო;トロント;多伦多;多倫多;토론토; +city::6169141;Trois-Rivieres;Gorad Trua-Ryuer;Troa Rivier;Troa Rivjer;Trois-Rivieres;Trois-Rivières;Trua Rivjeras;Trua-Riv'er;Trua-River;Urbs Trifluvianensis;YRQ;san he shi;teulualibieleu;torowaribieru;torowarivu~ieru;trw-rywyayr;trwa ryfyyr;trwa rywyr;Горад Труа-Рыўер;Троа Ривиер;Троа Ривјер;Труа-Ривьер;Труа-Рівєр;ترو-ریویائر;تروا ريفيير;تروا ریویر;トロワリビエール;トロワリヴィエール;三河市;트루아리비에르; +city::6173331;Vancouver;Ban'kouber;Fankuver;Fankûver;Gorad Vankuver;Vancouver;Vancover;Vancuverium;Vancôver;Vanguve;Vangúve;Vankuver;Vankuvera;Vankuveris;Vankuvero;Vankuvur;Vankūvera;Venkuver;Venkûver;Wankuwer;Wankuwér;YVR;baenkubeo;bankuba;bankuba shi;bhyanakubhara;fankwfr;vainakuvara;vainkuvara;vankuvar;vhamkuvhara;wen ge hua;wnkwwr;wnkwwr brytysh klmbya;wnqwbr;wynkwwr;Βανκούβερ;Ванкувер;Ванкувър;Горад Ванкувер;Վանկուվեր;ונקובר;فانكوفر;ونکوور;ونکوور، بریتیش کلمبیا;وینکوور;वैंकूवर;व्हँकूव्हर;ভ্যানকুভার;ਵੈਨਕੂਵਰ;வான்கூவர்;แวนคูเวอร์;ཝན་ཁུ་ཝེར།;ဗန်ကူးဗားမြို့;ვანკუვერი;ቫንኩቨር;バンクーバー;バンクーバー市;溫哥華;밴쿠버; +city::6173577;Vaughan;Von;bon;fawjan;vu~on;wan;wang shi;Вон;فاوجان;وان;وان، انٹاریو;واگھن;ヴォーン;旺市;본; +city::6174041;Victoria;Victoria;Victòria;Viktori;Viktoria;Viktoria Vretanikis Kolomvias;Viktorija;Viktorio;Viktoriya;Wiktoriye;YYJ;bigtolia;bikutoria;fktwrya;vhiktoriya;vikatori'a;viktoriya;vu~ikutoria;wei duo li ya;wiktxreiy;wyktwrya brytysh klmbya;wyqtwryh;Βικτώρια Βρετανικής Κολομβίας;Виктори;Виктория;Викторија;Вікторія;Վիկտորիա;ויקטוריה;فكتوريا;وکٹوریا;وکٹوریا، برٹش کولمبیا;ویکتوریا، بریتیش کلمبیا;व्हिक्टोरिया;ਵਿਕਟੋਰੀਆ;விக்டோரியா;วิกตอเรีย;ვიქტორია;ビクトリア;ヴィクトリア;維多利亞;빅토리아; +city::6176823;Waterloo;Uoterlu;Vaterloo;Voterlu;hua tie lu;u~otaru;watrlw;watrlw antaryw;woteollu;Ватерлоо;Вотерлу;Уотерлу;واترلو;واترلو، انتاریو;واٹرلو، انٹاریو;ウォータールー;滑鐵盧;워털루; +city::6177869;Welland;Veland;Velland;u~erando;wei lan;wellaendeu;wlnd antaryw;wyland;Веланд;Велланд;ولند، انتاریو;ويلاند;ویلینڈ;ウェランド;威蘭;웰랜드; +city::6180961;White Rock;Vajt Rok;White Rock;bai shi;howaitorokku;hwaiteulog;wayt rak brytysh klmbya;wayt rwk;Вајт Рок;وائٹ راک;وائٹ راک، برٹش کولمبیا;وايت روك;وایت راک ، بریتیش کلمبیا;ホワイトロック;白石;화이트록; +city::6182962;Windsor;Uindzur;Uinsor;Vindzor;Vindzoras;Windsor;YQG;u'indasara;uindzori;uinza;u~inza;wen sha;winjeo;wndswr;wyndzwr;wynzr antaryw;Виндзор;Віндзор;Уиндзър;Уинсор;וינדזור;وندسور;ونڈسر، انٹاریو;ونڈسور;وینزر، انتاریو;উইন্ডসর;უინძორი;ウィンザー;ウインザー;温莎;윈저; +city::6183235;Winnipeg;Gorad Vinipeg;Gouinipenk;Uinipeg;Uinnipeg;Vinipeg;Vinipega;Vinipegas;Vinipego;Vinnipeg;Vinnipega;Vinnipeq;WPG;Winnipeg;Winnipeg City;Winnipég;YWG;u~inipegu;vinipaiga;vinipega;vinippek;wen ni bo;win ni phek;winipeg;wny pyg;wnypg;wynybygh;wynypg;Γουίνιπεγκ;Винипег;Виннипег;Вінніпег;Вінніпеґ;Горад Вініпег;Уинипег;Уиннипег;Վիննիպեգ;ויניפג;ونی پیگ;ونیپگ;وينيبيغ;وینیپگ;विनिपेग;ਵਿਨੀਪੈਗ;வினிப்பெக்;วินนิเพก;ဝင်နီပက်မြို့;უინიპეგი;ᐄᐧᓂᐯᐠ;ウィニペグ;温尼伯;위니펙; +city::6324729;Halifax;Galifaks;Halifax;YHZ;Галифакс; +city::6324733;St. John's;Agios Ioannis Neas Gis;Baile Naoimh Eoin;Baile Naoimh Eòin;Baile Sheain;Baile Sheáin;Gorad Sent-Dzhons;Saint John;Saint John's;Saint-Jean;Saint-Jean de Terre-Neuve;San Juan de Terranova;Sanctus Ioannes Terrae Novae;Sejnt Dzhons;Sent DZons;Sent Dzonsas;Sent Džonsas;Sent-Dzhons;St Johns;St. John's;St. John's pa Newfoundland;St. John's på Newfoundland;St. John’s;YYT;ceyint jans;sant jwnz;seinteujonseu;sentojonzu;sheng yue han si;snt g'wns;Άγιος Ιωάννης Νέας Γης;Горад Сент-Джонс;Сейнт Джонс;Сент Џонс;Сент-Джонс;סנט ג'ונס;سانت جونز;سینٹ جان;سینٹ جانز، نیوفنلینڈ اور لیبراڈار;செயின்ட் ஜான்ஸ்;სენტ-ჯონზი;セントジョンズ;聖約翰斯;세인트존스; +city::6325494;Quebec;Altepetl Quebec;Bandaraya Quebec;Cathair Quebec;Cathair Québec;Ciutat de Quebec;Gorad Kvebek;Jiji la Quebec;Kebec Vile;Kebek;Kebeko;Kebeku;Kempek;Kevek tava;Kota Quebec;Kuehbehk;Kvebek;Kvebeka;Kvebekas;Kwebek;Kwebek Shehiri;Kwébék;Kwébék Shehiri;Kébéc Vile;Kévek táva;Lungsod ng Quebec;Lungsod ng Québec;Quebec;Quebec Ceety;Quebec City;Quebec Hiria;Quebec llaqta;Quebec-chhi;Quebec-su;Quebecborg;Quebecceaster;Quebecstad;Quebecum urbs;Québec;Québec-chhī;Québec-sṳ;Québecborg;Siudad ti Quebec;Tchubec;Thanh pho Quebec;Thành phố Québec;Vila de Quebec;Vila de Quebèc;Ville de Quebec;Ville de Québec;YQB;kbk;kebaika sahira;kh wibek;kiyupek nakaram;kui bei ke shi;kvebeka siti;kwebeg;kyubeka nagara;mdynt kybk;qwwybq syty;Κεμπέκ;Горад Квебек;Квебек;Куэбэк;Քվեբեկ;קוויבק סיטי;مدينة كيبك;کبک;کیوبک شہر;क्यूबेक नगर;क्वेबेक सिटी;ਕੇਬੈਕ ਸ਼ਹਿਰ;கியூபெக் நகரம்;ควิเบก;კვებეკი;ケベック・シティー;魁北克市;퀘벡; +city::6325521;Levis;Levi;li wei;lwy kbk;lyfys;lyws;revu~i;Леви;Леві;لوی، کبک;ليفيس;لیوس;レヴィ;利维; +city::6354908;Sydney;Baile Shidni;Sidni;Sydney;YQY;shidoni;sydny. nwa askwshya;Сидни;سیدنی٬ نوا اسکوشیا;シドニー; +city::6948711;Scarborough;Skarboro;icukkarparo;seukabeoleo;shi jia bao;sukabaro;Скарборо;இசுக்கார்பரோ;スカーバロー;士嘉堡;스카버러; +city::7602078;Ladner;; +city::7870925;East York;Ist Jork;Istochni Jork;isutoyoku;Ист Јорк;Источни Јорк;イーストヨーク; +city::204405;Uvira;Uvinza;Uvira;Увира; +city::204953;Tshikapa;Chikapa;TSH;Tshikapa;qi ka pa;tshykaba;tsu~ikapa;Чикапа;تشيكابا;ツィカパ;奇卡帕; +city::207570;Mwene-Ditu;Mvene-Ditu;Mwene-Ditu;Мвене-Диту; +city::207596;Mweka;MEW;Mueka;Mveka;Mweka;Мвека; +city::209228;Mbuji-Mayi;Bakwanga;MJM;Mbuji-Mayi;Mbuy Mayi;Mbuzhi-Maji;Мбужи-Майи; +city::211647;Lodja;LJA;Lodja;Lodzh;Loja;Лодж; +city::211734;Lisala;LIQ;Lisala;Lisale;Lizala;Лисале; +city::212730;Kisangani;FKI;Kisan'nkani;Kisangani;Kisanganis;Kisangáni;Singitini;Stanleystad;Stanleyville;ji sang jia ni;kisang-gani;kisangani;Κισανγκάνι;Кисангани;Кісангані;Կիսանգանի;キサンガニ;基桑加尼;키상가니; +city::212902;Kindu;KND;Kindu;Kindu-Port-Empain;Port de Kindu;Port-Empain;jin du;kindo~u;kindu;kndw;Кинду;Кінду;کندو;キンドゥ;金杜;킨두; +city::213940;Kasongo;Kasongo;Kazongo;Tongoni;Tongoni Kapaya;Касонго; +city::214481;Kananga;KGA;Kananga;Kanange;Lulua;Luluabourg;Luluaburg;ka nan jia;kanang-ga;kananga;kanangha;Кананга;Կանանգա;كانانغا;カナンガ;卡南加;카낭가; +city::214614;Kamina;KMN;Kamina;Kaminy;Камины; +city::214974;Kalemie;Albertstad;Albertville;FMI;Kalemi;Kalemie;Kalemije;Kalemijė;ka lai mi;kallemi;karemi;Калеми;Калемие;Калеміє;カレミ;卡萊米;칼레미; +city::215527;Kabinda;KBN;Kabinda; +city::215771;Isiro;IRP;Isirio;Isiro;Paulis;Исиро; +city::215976;Ilebo;Franqui;Ilebo;PFR;Port-Francqui;Илебо; +city::216281;Goma;GOM;Goma;Ngoma;Nkoma;ge ma;ghwma;goma;gwma;Γκόμα;Гома;غوما;گوما;ゴマ;戈马;고마; +city::216404;Gbadolite;BDT;Bado;Badolite;Gbadolite;Гбадолите; +city::216449;Gandajika;GDJ;Gandajika; +city::217562;Butembo;Butembo;RUE;Бутембо; +city::217570;Buta;BZU;But;Buta;Бут; +city::217695;Bunia;BUX;Bunia;Bunija;Bunya;Búnya;bu ni ya;Буниа;Буния;Буніа;布尼亞; +city::217745;Bumba;BMB;Bumba;Бумба; +city::217831;Bukavu;BKY;Bukavu;Costermansstad;Costermansville;Букаву; +city::219057;Beni;BNC;Beni;Бени; +city::922704;Lubumbashi;E'ville;Elisabethville;Elizabethstad;Elizabethville;E’ville;FBM;Gorad Lubumbashy;Lubumbashi;Lubumbashi shaary;Lubumbasi;Lubumbasis;Lubumbaši;Lubumbašis;Lumumbashi;lu ben ba xi;lubumabasi;lubumbasi;lubumbasi si;lwbmbashy;lwbwmbashy;rubunbashi;Élisabethville;Горад Лубумбашы;Лубумбаши;Лубумбаши шаары;Лубумбаші;לובומבאשי;لوبمباشی;لوبومباشي;لوبومباشی;ਲੂਬੁਮਬਾਸ਼ੀ;ルブンバシ;盧本巴希;루붐바시;루붐바시 시; +city::922741;Likasi;Jadotstad;Jadotsville;Jadotville;Likasi;Likasis;li ka xi;likasi;rikashi;Ликаси;Лікасі;リカシ;利卡西;리카시; +city::922773;Kolwezi;KWZ;Kolvezi;Kolwezi;Колвези; +city::922806;Kipushi;Kipushi;Кипуши; +city::2312888;Mbanza-Ngungu;Mbanza-Ngungu;Thystad;Thysville;Мбанза-Нгунгу; +city::2312895;Mbandaka;Bandaka;Cocquilhatville;Coquilhalville;Coquilhatstad;Coquilhatville;MDK;Mbandaka;Mbándáká;Wangata;eumbandaka;mbandaka;mu ban da ka;mubandaka;Мбандака;مبانداکا;ムバンダカ;姆班达卡;음반다카; +city::2313002;Matadi;Gorad Matady;MAT;Matadi;Matadis;Matidi;Matádi;ma ta di;matadi;matady;Горад Матады;Матади;Матаді;מאטדי;ماتادی;マタディ;马塔迪;마타디; +city::2314302;Kinshasa;FIH;Gorad Kinshasa;Kincasa;Kinchasa;Kinchassa;Kinsas;Kinsasa;Kinsaso;Kinshasa;Kinshase;Kinsjasa;Kinszasa;Kinsásá;Kinxasa;Kinŝaso;Kinşasa;Kinšas;Kinšasa;Kînşasa;Leopoldstad;Leopoldville;Léopoldville;Quinxassa;jin sha sa;jin xia sha;kin cha sa;kinasasa;kinsaca;kinsasa;kinshasa;kinsyasa;knshasa;kynshasa;Κινσάσα;Горад Кіншаса;Киншаса;Киншасе;Кіншаса;Կինշասա;קינשאזע;קינשאסה;كينشاسا;کنشاسا;کنشاسہ;کینشاسا;किन्शासा;ਕਿਨਸ਼ਾਸਾ;கின்ஷாசா;കിൻഷസ;กินชาซา;ཀིན་ཤ་ས།;ကင်ရှာဆာမြို့;კინშასა;ኪንሻሳ;キンシャサ;金夏沙;金沙薩;킨샤사; +city::2314705;Kikwit;KKW;Kicwite;Kikvit;Kikvitas;Kikvite;Kikwit;Kitwit;ji kui te;kikuu~ito;kikwiteu;Киквит;Киквите;Кіквіт;キクウィト;基奎特;키퀴트; +city::2315728;Gemena;GMA;Gemena;Gemene;Гемене; +city::2317397;Bandundu;Bandundu;Bandundu Boelgesi;Bandundu Bölgesi;Bandundu Province;Bandundu tartomany;Bandundu tartomány;Banningville;FDU;Pravincyja Bandundu;Provincia di Bandundu;Provinco Bandundu;Provinsi Bandundu;ban dun du sheng;bandandw;bando~undo~u zhou;bandundu ju;bandundu pranta;Бандунду;Правінцыя Бандунду;באנדונדו;بانداندو;باندوندو صوبہ;बान्दुन्दु प्रान्त;バンドゥンドゥ州;班顿杜省;반둔두 주; +city::2593460;Masina;; +city::2384770;Mbaiki;Mbaiki;Mbaïki; +city::2386012;Kaga Bandoro;Crampel;Fort-Crampel;Kaga Bandoro;Kaga-Bandoro; +city::2388873;Bimbo;Bimbo;Bimo; +city::2389086;Berberati;BBT;Berberati;Berbérati;Берберати; +city::2389853;Bangui;BGF;Bangi;Bangis;Bangui;Mpan'nkoui;ban ji;bang-gi;bangi;bangwyy;Μπανγκουί;Банги;Бангі;בנגואי;بانگوئی;ባንጊ;バンギ;班基;방기; +city::2255414;Pointe-Noire;PNR;Pointe-Noire;Puehnt-Nuar;Puent Nuaras;puaengteunualeu;Пуэнт-Нуар;푸앵트누아르; +city::2258261;Dolisie;DIS;Dolisi;Dolisie;Dolisje;Dolizi;Dolosie;Loubomo;Lubomo;dolliji;dorishi;duo li xi;dwlysy;Долиси;Лубомо;دولیسی;ドリシー;多利西;돌리지; +city::2260535;Brazzaville;BZV;Braza;Brazavil;Brazavilis;Brazavilo;Brazzavil';Brazzaville;Maya-Maya;Mprazabil;N'Tamo;beulajabil;brazafyl;brazawyl;brzwwyl;bu la chai wei er;burazavu~iru;Μπραζαβίλ;Браззавиль;ברזוויל;برازافيل;برازاویل;ብራዛቪል;ブラザヴィル;布拉柴维尔;브라자빌; +city::2657896;Zurich;Cirihe;Cirikh;Ciurichas;Cjurikh;Cjurikh khot;Cuerih;Curych;Cürih;Cīrihe;Gorad Cjurykh;Lungsod ng Zuerich;Lungsod ng Zürich;Su-la-sie;Suerix;Syurix;Sürix;Sŭ-là̤-sié;Tsuerix;Tsurique;Tsürix;Turicum;Turitg;ZRH;Zeurich;Zirich;Zirik;Zuerich;Zuerigh;Zuerih;Zuric;Zurich;Zuricu;Zurigh;Zurigo;Zuriko;Zurique;Zurych;Zurìcu;Zyriche;Zyrihu;Zúric;Zúrich;Zürich;Zürigh;Zürih;churihhi;chwilihi;curikku;jhyurika;jurikha;su li shi;su rik;suricc;tsiurikhi;tsyryk;zi'urikha;zwrykh;zyryk;zyurikha;zywrch;zywrh;zywrkh;Ζυρίχη;Горад Цюрых;Цирих;Цюрих;Цюрих хот;Ցյուրիխ;ציריך;زوريخ;زوریخ;زيورخ;زیورخ;زیورچ;سيۇرىخ;څوریخ;ܙܝܘܪܚ;ܬܣܝܪܝܟ;ज़्यूरिख़;झ्युरिक;জুরিখ;ਜ਼ਿਊਰਿਖ;சூரிக்கு;സൂറിച്ച്;ซูริก;ဇူးရစ်ချ်မြို့;ციურიხი;ዙሪክ;チューリッヒ;苏黎世;蘇黎世;취리히; +city::2657970;Winterthur;Eulachstadt;Gorad Vintehrtur;Vintertour;Vintertur;Vintertura;Vinterturas;Vinterturi;Vinterturo;Vintertūra;Vintertūras;Vitudurum;Winterthour;Winterthur;ZLI;binteotueo;fyntrtwr;vu~intato~uru;wen te tu er;wntrtwr;Βίντερτουρ;Винтертур;Вінтертур;Горад Вінтэртур;فينترتور;ونترتور;ونٹرتھر;ვინტერთური;ヴィンタートゥール;温特图尔;빈터투어; +city::2658822;Sankt Gallen;Saint Gallen;Saint-Gall;San Gallo;San Gallu;San Galo;Sanctogallum;Sankt Gallen;Sankt-Gallen;Sankt-Galo;Son Gagl;St. Gallen;sant ghaln;Санкт-Галлен;سانت غالن; +city::2659811;Luzern;Canton Lucerne;Gorad Ljucehrn;Liucerna;Ljucern;Loukerne;Lucern;Lucerna;Lucerne;Lucerni;Lucerno;Luezerna;Luxerna;Luzern;Luzerna;Lüzerna;Medicago sativa;lu sai en;lucheleun;lutsarna;lutserni;lwsrn;lwzrn;rutsu~erun;Łuxerna;Λουκέρνη;Горад Люцэрн;Луцерн;Люцерн;לוצערן;לוצרן;لوسرن;लुत्सर्न;ལུ་ཛེར་ན།;ლუცერნი;ルツェルン;卢塞恩;루체른; +city::2659994;Lausanne;Lausana;Lausanne;Lausonium;Lauzano;Laŭzano;Losanna;Losena;Lozan;Lozana;Lozane;Lozanna;QLS;lo san;luo sang;rozan'nu;Λωζάνη;Лозана;Лозанна;לוזאן;โลซาน;ローザンヌ;洛桑; +city::2660646;Geneve;Cenevre;GVA;Genava;Genebe;Genebra;Geneue;Geneva;Geneve;Genevi;Genevo;Genevra;Genewa;Genf;Genève;Ginebra;Ginevra;Gorad Zhehneva;Jenewa;Jenwe;Xenebra;Zeneva;Zheneva;Znev;jeneba;jineva;jnyf;jnywa;junevu;ri nei wa;zheneva;znbh;Ĝenevo;Ženeva;Ženēva;Γενέβη;Γενευη;Γενεύη;Горад Жэнева;Женева;Ժնև;זנבה;جنيف;جنیوا;जिनेवा;ჟენევა;ジュネーヴ;日内瓦;제네바; +city::2661552;Bern;BRN;Bann;Beirn;Ben;Bern;Bern osh;Berna;Bernas;Berne;Berno;Bundesstadt;Bèn;Bèrna;Gorad Bern;atharvaveda;ban he na;barana;barna;beirn;beleun;berna;berni;berun;bo en;bo er ni;brn;byrn;pern;Βέρνη;Берн;Берн ош;Горад Берн;Բեռն;בערן;ברן;برن;بيرن;بێرن;بېرن;ܒܪܢ;अथर्ववेद;बर्न;বের্ন;ਬਰਨ;ବର୍ନ;பேர்ன்;ബേൺ;เบิร์น;པེར་ནེ།;ბერნი;ቤርን;ベルン;伯尔尼;伯恩;办合纳;베른; +city::2661604;Basel;Bala;Bale;Basel;Basilea;Basileia;Basilej;Basilia;Basilèa;Basle;Baxilea;Baxiłea;Bazel;Bazel';Bazel' khot;Bazele;Bazeli;Bazelis;Bazelo;Bazilej;Bazylea;Bázel;Bâla;Bâle;Bāsel;Bāzele;EAP;Gorad Bazel';Robur;Vasileia;ba sai er;ba seil;bai cai er;bajel;bajela;basala;bazeli;bazeru;bazl;bzl;pecel;Βασιλεία;Базел;Базель;Базель хот;Горад Базель;Բազել;באזעל;בזל;بازل;बासल;বাজেল;பேசெல்;บาเซิล;པ་སེལ།;ბაზელი;ባዝል;バーゼル;巴塞尔;巴塞爾;白才尔;바젤; +city::2279755;Yamoussoukro;ASK;Giamoussoukro;Gorad Jamusukra;Jamusukras;Jamusukro;Jamusukro khot;Yamosukro;Yamousoukro;Yamoussokro;Yamoussoukro;Yamoussoukrou;Yamussukro;Yamusukro;ya mu su ke lei;ya mu su ke luo;ya mussu kor;yamucukro;yamusasutro;yamusukaro;yamusukeulo;yamusukro;yamusukuro;yamwsswkrw;yamwswkrw;yamwwswwkrۆ;ywmwswkrw;Γιαμουσσούκρο;Јамусукро;Горад Ямусукра;Ямусукро;Ямусукро хот;Յամուսուկրո;יאמוסאקרא;יאמוסוקרו;ياموسوكرو;يامۇسسۇكرو;یاموسسوکرو;یاموسوکرو;یامووسووکرۆ;یوموسوکرو;यामूसूक्रो;ਯਾਮੂਸੂਕਰੋ;ୟାମୁସସୁତ୍ରୋ;யாமூசூக்ரோ;ยามุสซุโกร;ཡམ་སོ་ཁེ་རོ།;იამუსუკრო;ያሙሱክሮ;ヤムスクロ;亚穆苏克罗;雅穆蘇克雷;야무수크로; +city::2281606;Sinfra;Sinfra; +city::2282006;San-Pedro;SPY;San Pedras;San Pedro;San Pédro;San-Pedro;San-Pédro;san bydrw;san=pedoro;sangpedeulo;sheng pei de luo;Сан-Педро;سان بيدرو;サン=ペドロ;聖佩德羅;상페드로; +city::2282827;Oume;Oume;Oumé;Ume; +city::2284647;Man;MJC;Man; +city::2286304;Korhogo;HGO;Korhogas;Korhogo;Korogo;ke huo ge;kologo;korogo;Корого;コロゴ;科霍戈;코로고; +city::2287298;Katiola;KTC;Katiola;Lafouka; +city::2287790;Issia;Issia; +city::2288115;Grand-Bassam;Gran Basamas;Gran-Basam;Gran-Bassam;Grand Bassam;Grand-Bassam;da ba sa mu;gran-basami;grayanda-bas'sama;Гран-Басам;Гран-Бассам;גראן-בסאם;ग्रयाण्ड-बस्सम;გრან-ბასამი;グラン・バッサム;大巴薩姆; +city::2288829;Gagnoa;GGN;Gagnoa;Gan'oa;Ganjoa;Gragnoa;gagnoa;jia ni ao a;Ганьоа;გაგნოა;加尼奧阿; +city::2289049;Ferkessedougou;Ferkesedugu;Ferkessedougou;Ferkessédougou;Firkessedougou;Firkessedugu;Firkessédougou;Firkessédugu;Pofire;Serkessedougou;Феркеседугу; +city::2289887;Divo;Boudougou;DIV;Divas;Divo;di wo;Диво;迪沃; +city::2289983;Dimbokro;DIM;Dimbokro; +city::2290462;Danane;Danane;Danané;Fort Hittos;Данане; +city::2290486;Daloa;DJO;Daloa;da luo ya;dalloa;daroa;Далоа;דאלואה;ダロア;達洛亞;달로아; +city::2290582;Dabou;Dab;Dabou;Dabu;Даб; +city::2290956;Bouake;BYK;Bouake;Bouaké;Buake;Bvake;Bvakė;Bwake;baw ke;bu wa kai;buake;bwaky;Буаке;بواكي;บัวเก;ბუაკე;ブアケ;布瓦凯;부아케; +city::2290964;Bouafle;Bouafle;Bouaflé;Buafle; +city::2291136;Bondoukou;BDK;Bondoukau;Bondoukou;Bonduku;Boudoukou;Gontoukou;bang du ku;bwndwqw;Бондуку;בונדוקו;邦杜庫; +city::2291580;Bingerville;Bingerville; +city::2292852;Anyama;An'jame;Aniama;Anyama;Anyama Sossokoua;Аньяме; +city::2293268;Agboville;Agbovil';Agbovile;Agbovilis;Agboville;a bo wei er;agbawyl;agbwwyl;Агбовиле;Агбовиль;Агбовіль;اگباویل;اگبوویل;阿博維爾; +city::2293342;Adzope;Adzope;Adzopé;Адзопе; +city::2293521;Abobo;Abobo;Abobo-Gare; +city::2293538;Abidjan;ABJ;Abican;Abidjan;Abidzan;Abidzana;Abidzanas;Abidzans;Abidzhan;Abidzhan shaary;Abidżan;Abidžan;Abidžana;Abidžanas;Abidžans;Abigano;Abijan;Abiyan;Abiyán;Abizhan khot;Abiĝano;Ampitzan;Gorad Abidzhan;a bi rang;a bi ren;abdjan;abijan;abijana;abijang;abijani;abydjan;abyjan;xabi can;ʼbydgʼn;Αμπιτζάν;Абиджан;Абиджан шаары;Абижан хот;Абиџан;Абіджан;Горад Абіджан;Աբիջան;אבידגאן;אבידזשאן;آبدجان;آبیجان;أبيدجان;आबिजान;আবিজান;ਅਬੀਜਾਨ;അബിജാൻ;อาบีจาน;აბიჯანი;アビジャン;阿必仁;阿比让;아비장; +city::2293549;Abengourou;Abengourou;Abenguru;OGO;a ben gu lu;abang-gulu;abngwrw;Абенгуру;ابنگورو;阿本古鲁;아방구루; +city::2596934;Seguela;SEO;Segele;Seguela;Séguéla;Сегеле; +city::2598243;Soubre;Soubre;Soubré; +city::3868121;Vina del Mar;KNA;Vin'ja-del'-Mar;Vina del Mar;Vinea Maris;Vinja del Mar;Vinja del Maras;Vinja-del'-Mar;Vinya del Mar;Viña del Mar;bi ni ya de er ma;binyadelmaleu;fynya dyl mar;wynya dl mar;Винья-дель-Мар;Виня дел Мар;Виња дел Мар;Віня-дель-Мар;Վինյա դել Մար;ויניה דל מאר;فينيا ديل مار;وینیا دل مار;ビニャ・デル・マール;比尼亚德尔马;비냐델마르; +city::3868192;Villa Alemana;Vil'ja-Alemana;Vila Alemana;Villa Alemana;a lai ma na zhen;biyaallemana;wwylʼ ʼlʻmʼnʼ;wya almana;Вилья-Алемана;Виља Алемана;Вілья-Алемана;ווילא אלעמאנא;ویا آلمانا;ビジャ・アレマーナ;阿萊馬納鎮;비야알레마나; +city::3868626;Valparaiso;Balparaiso;Ciudad de Valparaiso;Ciudad de Valparaíso;Dakbayan sa Valparaiso;Dakbayan sa Valparaíso;Gorad Val'paraisa;VAP;Val'paraiso;Vallis Paradisi;Valparaesos;Valparais;Valparaisas;Valparaiso;Valparayso;Valparaíso;Valparaėsos;Waer pa lai suo;Wǎěr pà lái suǒ;bal pa ra xi so;balapara'iso;balpalaiso;balpara'i esa;balparaysw;balparejho;baruparaiso;bhalapara'iso;falbaraysw;valapara'iso;valaparaiso;valpara'iso;valparaijo;valparaysۆ;valpeyracov;wa er pa lai suo;walparayzw;walprayysw;walprayzw;Βαλπαραΐσο;Валпараисо;Вальпараисо;Вальпараїсо;Горад Вальпараіса;Վալպարաիսո;וואלפאראיסא;ולפראיסו;بآلپارایسو;فالبارايسو;والپارایزو;والپرائیسو;والپرایزو;ڤالپارایسۆ;ܒܐܠܦܐܪܐܝܣܘ;ވަލޕަރައިސޮ;बाल्परेझो;वालपाराईसो;वालपारैसो;ভালপারাইসো;ਬਾਲਪਰਾਈਸੋ;વાલ્પારાઇસો;ବଲ୍ପରଇ େସା;வல்பெய்ரசோவ்;వల్పరైజో;വൽപറാസിയോ;වල්පරයිසෝ;บัลปาราอีโซ;བལྤ་རཨིསོ;ဗလၲပရမိစော;ვალპარაისო;ቫልፓራይሶ;ᕙᓪᐸᕃᓱ;バルパライソ;瓦尔帕莱索;瓦爾帕萊索;발파라이소; +city::3868707;Valdivia;Ciudad de Valdivia;Ciudad de Valdivía;Gorad Val'dyvija;Val'divija;Valdeveje;Valdivia;Valdivija;Valdėvėjė;ZAL;bal di beiy;baldibia;baldybya;barudibia;valdivia;wa er di wei ya;waldywya;Βαλδίβια;Валдивия;Валдивија;Вальдивия;Вальдівія;Горад Вальдывія;ואלדיביה;וואלדיוויא;بالدیبیا;والدیویا;บัลดีเบีย;ვალდივია;バルディビア;瓦尔迪维亚;발디비아; +city::3870011;Temuco;Ciudad Temuco;Temouko;Temuco;Temukas;Temuko;Temuks;ZCO;te mu ke;temu ko;temuko;temyukea;tymwkw;Τεμούκο;Тeмуко;Темуко;Տեմուկո;טעמוקא;تیموکو;ടെമ്യൂകോ;เตมูโก;ტემუკო;テムコ;特木科;테무코; +city::3870282;Talcahuano;Gorad Tal'kauana;Tal'kauano;Talcahuano;Talkahuanas;Talkauano;Talkavano;Talkawanu;ta er ka wa nuo;tal kaxaw no;talkahwanw;talkauano;tarukawano;Горад Талькауана;Талкауано;Талькауано;טאלקאוואנא;تالكاهوانو;تالکاهوانو;ตัลกาอัวโน;タルカワノ;塔爾卡瓦諾;탈카우아노; +city::3870294;Talca;Gorad Tal'ka;TLX;Tal'ka;Talca;Talka;Talkao;ta er ka;talka;taruka;Τάλκα;Горад Талька;Талка;Талька;تالكا;تالکا;ტალკა;タルカ;塔爾卡;탈카; +city::3870306;Talagante;Talagante;ta la gan te;tallagante;Талаганте;塔拉甘特;탈라간테; +city::3871336;Santiago;Ciles Santjagas;CiudadSantiago;SCL;Sanctiacobi;Sant'jago;Santiago;Santiago de Chile;Santiago de Xile;Santiago del Cile;Santiago do Chile;Santiago du Chili;Santiago du Ch·ili;Santianko;Santjago;Santjago de Chile;Santjago de Chili;Stgo.;santiago;santixako;santyaghw;santyagw;santyyagw;sheng de ya ge;Čilės Santjagas;Σαντιάγκο;Σαντιάγο;Сантьяго;Сантяго де Чиле;Сантяго де Чили;סנטיאגו דה צ'ילה;سانتىياگو;سانتياغو;سانتیاگو;ซันติอาโก;სანტიაგო დე ჩილე;ሳንቲያጎ;サンティアゴ;圣地亚哥;산티아고; +city::3872255;San Felipe;San Felipe; +city::3872348;San Bernardo;San Bernardo;San-Bernardo;sheng bei er na duo;Сан-Бернардо;聖貝爾納多; +city::3872395;San Antonio;QTN;San Antonio;San-Antonio;sheng an dong ni ao;Сан Антонио;Сан-Антонио;聖安東尼奧; +city::3873775;Rancagua;QRC;Ran'kagoua;Rancagua;Rankagua;Rankagva;Rankawa;lan ka gua;langkagwa;rangka kwa;rankagua;rankagwa;Ρανκάγουα;Ранкагуа;ראנקאגווע;رانکاگوآ;รังกากวา;რანკაგუა;ランカグア;兰卡瓜;랑카과; +city::3874096;Quilpue;Kil'pueh;Quilpue;Quilpué;ji er pu ai;kirupue;Кильпуэ;キルプエ;基爾普埃; +city::3874119;Quillota;Kijota;Kil'ota;Kiljota;Kilota;Quillota;ji yue ta;ki yo ta;kiyota;Кийота;Кильота;Киљота;กีโยตา;基約塔;키요타; +city::3874787;Punta Arenas;Gorad Punta Arehnas;Magallanes;PUQ;Ponta Arenasos;Pounta Arenas;Promontorium Arenosum;Punta Arenas;Punta Arenasas;Punta-Arenas;Puntaarenasa;peng ta a lei na si;pun ta xa renas;puntaalenaseu;punta・arenasu;pwnta arnas;pwnta arynas;Πούντα Αρένας;Горад Пунта Арэнас;Пунта Аренас;Пунта-Аренас;פּונטא ארענאס;פונטה ארנס;پونتا آرناس;پونتا اریناس;ปุนตาอาเรนัส;პუნტა-არენასი;プンタ・アレーナス;蓬塔阿雷纳斯;푼타아레나스; +city::3874960;Puerto Montt;Ciudad de Puerto Montt;PMC;Port Montt;Portus Monttii;Pouerto Mont;Puehrto-Mont;Puerta Muonts;Puerto Mont;Puerto Montas;Puerto Montt;Puerto-Montt;Puertomonta;Puertu Montt;meng te gang;prtw mwnt;pueleutomonteu;puerutomonto;pytrw mwnt;Πουέρτο Μοντ;Пуерто Монт;Пуерто-Монтт;Пуэрто-Монт;פּארטא מאנט;פוארטו מונט;پرتو مونت;پیترو مونت;პუერტო-მონტი;プエルトモント;蒙特港;푸에르토몬트; +city::3875024;Puente Alto;Puehnte-Al'to;Puente Alto;shang pu en te;Пуенте Алто;Пуэнте-Альто;პუენტე-ალტო;上普恩特; +city::3876685;Penaflor;Pen'jaflor;Penaflor;Peñaflor;Пеньяфлор; +city::3877918;Ovalle;OVL;Oval'e;Ovalje;Ovaljė;Ovalle;ao wa lie;Овалье;奧瓦列; +city::3877949;Osorno;Osorno;ZOS;Осорно; +city::3880107;Melipilla;Melipil'ja;Melipila;Melipilla;Mellipilla;mei li pi ya;mellipiya;Мелипилья;Мелипиља;梅利皮亞;멜리피야; +city::3882428;Los Angeles;Angeles;Angelopolis;Ciudad de Los Anjeles;LSQ;Los Anceles;Los Angeles;Los Anjeles;Los Ángeles;Los-Andzheles;Los-Ankheles;lo sxang heles;loseuanghelleseu;luo sang he lai si;lws ankhls;Лос-Анджелес;Лос-Анхелес;לאס אנדזשעלעס;לוס אנחלס;لوس آنخلس;โลสอังเฮเลส;ロス・アンヘレス;洛桑赫萊斯;로스앙헬레스; +city::3882434;Los Andes;Andes;Ciudad Los Andes;LOB;Los-And;Los-Andes;luo si an di si;Лос-Анд;Лос-Андес;洛斯安第斯; +city::3883167;Linares;Linares;ZLR;li na lei si;linaleseu;Линарес;利納雷斯;리나레스; +city::3884373;La Serena;LSC;La Serena;La-Serena;Laserena;Serena;la sai lei na;la syryna;la syryna chly;la-serena;laselena;lasrna;lasyryna;lh srnh;Ла Серена;Ла-Серена;Серена;Լա Սերենա;לה סרנה;لا سيرينا;لا سیرینا، چلی;لاسرنا;لاسیرینا;ლა-სერენა;ラ・セレナ;拉塞雷纳;라세레나; +city::3887127;Iquique;IQQ;Ikike;Ikikė;Iquique;akwyykyw;ikike;yi ji ke;Ικίκε;Ікіке;Икике;Իկիկե;איקיקה;اکوئیکیو;იკიკე;イキケ;伊基克;이키케; +city::3892870;Curico;Curico;Curicó;Kuriko;ku li ke;ku ri ko;kuliko;kuriko;kwrykw;kwrykw shyly;Курико;Куріко;كوريكو;کوریکو، شیلی;กูรีโก;クリコ;庫里科;쿠리코; +city::3893532;Coronel;Coronel;Koronel;Koronel';ke luo nei er;koroneru;kwrwnl;Коронел;Коронель;קאראנעל;كورونل;コロネル;科羅內爾; +city::3893629;Coquimbo;COW;Ciudad de Coquimbo;Coquimbo;Kokimbas;Kokimbo;Kukimpu;Mkoa wa Coquimbo;ke jin bo;koki m bo;kokimbo;kokinbo;kwkwymbw;Кокимбо;Кокімбо;كوكويمبو;โกกิมโบ;コキンボ;科金博;코킴보; +city::3893656;Copiapo;CPO;Copiapo;Copiapó;Kop'japo;Kopiapo;Kopijapo;Kopjapo;Kuopejapa;Kuopėjapa;Qhupiyapu;ke pi ya bo;kopiapo;kwbyabw;kwpyapw;kwpyapw shyly;Κοπιαπό;Копиапо;Копијапо;Копьяпо;Копіапо;كوبيابو;کوپیاپو;کوپیاپو، شیلی;კოპიაპო;コピアポ;科皮亞波;코피아포; +city::3893894;Concepcion;CCP;Ciudad de Concepcion;Ciudad ti Concepcion;Concepcion;Concepcioun;Concepción;Conceptio;Gorad Kanseps'jon;Koncepciono;Koncepsion;Konsep'sion;Konsepcion;Konseps'jon;Konseps'on;Konsepshon;Konsepsion;Konsepsjon;Konsepsjona;Konsepsjonas;Konsepsjons;Konsepsjuons;Konsepsyon;Koνσεπσιόν;kancepciyan;kang sai pu xi weng;kansepsiyan;kansepsiyana;knspsywn shyly;konsebsion;konsepSION;konsepsi'ona;konsepushion;kwnsbsywn tshyly;kwnsypshywn;kwnthbthywn tshyly;kxn sep si xxn;qwnspsywn;Κονσεπσιόν;Горад Кансепсьён;Конceпсіон;Консeпcион;Консепçион;Консепсион;Консепсьйон;Консепсьон;Консепшон;Կոնսեպսիոն;קאנסעפסיאן;קונספסיון;كونثبثيون، تشيلي;كونسبسيون ، تشيلى;کنسپسیون، شیلی;کونسیپشیون;ܩܘܢܣܦܣܝܘܢ;कन्सेप्सियान;कान्सेप्सियान्;कॉन्सेप्सिओन;கன்செப்சியான்;กอนเซปซีออน;კონსეფსიონი;ኮንሴፕሲዮን;コンセプシオン;康塞普西翁;康賽普西翁;콘셉시온;𐌺𐍉𐌽𐌸𐌴𐍀𐌸𐌹𐍉𐌽; +city::3895088;Chillan;YAI; +city::3895138;Chiguayante;Chiguajante;Chiguayante;chiguayante;chigwayante;qi gua yang te;shyghwanty;shygwanty shyly;Чигуаянте;Чигуајанте;טשיגואיאנטע;شيغوانتي;شیگوانتی، شیلی;チグアヤンテ;奇瓜揚特;치과얀테; +city::3897347;Calama;CJC;Calama;Kalama;ka la ma;kala ma;kalama;kallama;karama;Калама;كالاما;کالاما;กาลามา;カラマ;卡拉馬;칼라마; +city::3897774;Buin;Buin;Буин; +city::3899361;Arica;ARI;Areka;Arica;Arika;Arėka;a li ka;a lie ka;alika;arika;aryka;erika;Αρίκα;Арика;Аріка;Արիկա;אריקא;אריקה;آریکا;أريكا;एरिका;ਆਰੀਕਾ;არიკა;アリカ;阿列卡;阿里卡;아리카; +city::3899539;Antofagasta;ANF;Antafagasta;Antofagast;Antofagasta;Antuofagasta;an tuo fa jia si ta;antaphagasta;antofagasuta;antopagaseuta;antophagasta;antwfagasta;antwfaghasta;antwfajasta;antwfakwsta;entofagasta;xan to faka s ta;Αντοφαγάστα;Антафагаста;Антофагаста;אנטאפאגאסטא;אנטופגסטה;آنتوفاگاستا;أنتوفاغاستا;انتوفاجاستا;انتوفاکوستا;انتوفاگاستا;ܐܢܛܘܦܐܓܐܣܛܐ;अंतोफागास्ता;एंटोफ़गास्टा;অন্তফাগস্টা;อันโตฟากัสตา;ཨན་ཏོ་ཕ་ག་སི་ཏ;ანტოფაგასტა;ኣንቶፋጋስታ;アントファガスタ;安托法加斯塔;안토파가스타; +city::7281017;La Pintana;La Pintana;La-Pintana;la ping ta na;lapintana;Ла Пинтана;Ла-Пинтана;لا پینٹانا;拉平塔納;라핀타나; +city::7281020;Lo Prado;Lo Prado;Lo-Prado;lopeulado;luo pu la duo;Ло Прадо;Ло-Прадо;洛普拉多;로프라도; +city::2220957;Yaounde;Giaounte;Gorad Jaundeh;Jande;Jaunde;Jaundeo;Jaundė;Jaúnde;Jánde;YAO;Yaounde;Yaoundé;Yaunde;Yaundé;Yawunde;iaunde;ya wen de;ya'unde;yaunde;yavunte;yawndy;yaxunde;yaywndh;ye wen de;Γιαουντέ;Јаунде;Горад Яўндэ;Яунде;Յաունդե;יאונדה;יאונדע;ياوندي;یاؤندے;یائونده;یائوندێ;یاونڈی;याउंदे;ਯਾਊਂਦੇ;யாவுண்டே;ยาอุนเด;ཡོན་དྷི།;იაუნდე;ያዉንዴ;ヤウンデ;耶溫得;雅温得;야운데; +city::2221030;Yagoua;GXX;Jagua;Jágua;Yagoua;Yagua; +city::2221053;Wum;Wum; +city::2221504;Tiko;TKC;Tiko; +city::2222230;Sangmelima;Sangmelima;Sangmelina;Sangmélima;Сангмелима; +city::2223734;Nkoteng;Nkoteng; +city::2223763;Nkongsamba;NKS;Nkongsamba;Nkongsomba;Нконгсамба; +city::2224827;Ngaoundere;NGE;Ngaoundere;Ngaoundéré;Ngaundere;Ngaunderė;en gang dai lei;eung-gaundele;nugaundere;Нгаундере;نگاؤندیرے;ヌガウンデレ;恩冈代雷;응가운데레; +city::2225991;Mora;Mora;More;Море; +city::2226275;Mokolo;Mokolo; +city::2227402;Meiganga;Meiganda;Meiganga;Mejgange;Meïganga;Мейганге; +city::2227613;Mbouda;Mbouda; +city::2228079;Mbalmayo;Mbal'majo;Mbalmajo;Mbalmayo;Мбальмайо; +city::2228373;Maroua;MVR;Maroua;Marua;Marva;ma lu a;malua;marua;marwa;Μαρουά;Маруа;مارؤا;マルア;马鲁阿;마루아; +city::2229152;Loum;Loum;Lum;Лум; +city::2229411;Limbe;Limbe;Limbé;Limbė;VCC;Victoria;limbe;lin bei;rinbe;Лимбе;リンベ;林贝;림베; +city::2229748;Kumbo;Kumbo; +city::2229752;Kumba;Kumba;Kumboj;Кумбой; +city::2229761;Kribi;KBI;Kribi;Криби; +city::2229798;Kousseri;Fort Fureau;Fort-Foureau;Kousseri;Kousséri;Kusseri; +city::2230876;Guider;Gider;Guidder;Guider; +city::2231320;Garoua;GOU;Garoua;Garua;Garva;galua;garua;garwa;gharwa;jia lu a;Гаруа;غاروا;گارؤا;ガルア;加鲁阿;가루아; +city::2231504;Foumbot;Foumbat;Foumbot; +city::2231506;Foumban;FOM;Foumbam;Foumban;Fumban;feng ban;Фумбан;豐班; +city::2232239;Edea;Edea;Edeja;Edéa;Edėja;Ehdea;adya;ai dai a;edea;Édéa;Едеа;Эдеа;إديا;エデア;埃代阿; +city::2232283;Ebolowa;EBW;Ebolova;Ebolowa;Ébolowa; +city::2232444;Dschang;Chang;DSC;Dchang;Djang;Dschang;Dzhang;Tchang;jiang zhen;Джанг;姜鎮; +city::2232593;Douala;DLA;Douala;Doula;Dual;Duala;Dualao;Dóúala;Gorad Duala;Ntouala;dau'ala;do~uara;du a la;du xa la;dualla;dwala;Ντουάλα;Горад Дуала;Дуала;דואלה;دوالا;दौआला;ਦੌਆਲਾ;ดูอาลา;ドゥアラ;杜阿拉;두알라; +city::2234359;Bertoua;BTA;Bertoua;Bertua;Bertva;Gamane;bei er tu a;beleutua;beruto~ua;bytwa;Μπερτουά;Бертуа;بیتؤا;ベルトゥア;贝尔图阿;베르투아; +city::2234865;Bangangte;Bangangte;Bangangté;Bangante;Banganté; +city::2234974;Bamenda;BPC;Bamenda;Bamendy;ba men da;bamenda;bamynda;Баменда;Баменды;بامیندا;バメンダ;巴门达;바멘다; +city::2235029;Bali;BLC;Bali;Бали; +city::2235189;Bafoussam;BFX;Bafousam;Bafoussam;Bafusam;Bafusama;Bafusamas;Bafussama;Befoussam;ba fu sa mu;bafusamu;bafwsam;bapusam;Μπαφουσάμ;Бафусам;Бафуссама;بافؤسام;バフーサム;巴富薩姆;바푸삼; +city::2235194;Bafia;Bafia;Bafia Ngitakuba;Bafiā Ngitakuba; +city::2235196;Bafang;Bafang; +city::1279715;Rikaze;Gigatze;Hsi-ko-tzu;Hsi-ko-tzü;Jih-k'a-tse;Jih-k'e-tze;Jih-k'o-tse;Jih-k’a-tse;Jih-k’e-tze;Jih-k’o-tse;RKZ;Rikaze;Samdruptse;Samzhubze;Samzhubze District;Samzhubzê;Samzhubzê District;Sh'i-ka-tse;Shigadze;Shigatse;Shigatsé;Shigatze;Sh’i-ka-tse;Siketze;Xigaze;Xigazê;Zhikatse;ri ka ze;samudo~uputsu~e qu;sang zhu zi qu;ssangjujjeu gu;Шигадзе;サムドゥプツェ区;日喀则;桑珠孜区;쌍주쯔 구; +city::1279945;Jiuquan;Chiu-ch'uan;Chiu-ch'uan-hsien;Chiu-ch'uan-shih;Chiu-choan-chhi;Chiu-ch’üan;Chiu-ch’üan-hsien;Chiu-ch’üan-shih;Chiú-choân-chhī;Ciu-ciong;Ciū-ciòng;Czjucjuan';Jiuquan;Jiuquan Shi;Kiuchoan;Kiuchuan;Kiuchuan-hsien;Kiuchüan;Kiuchüan-hsien;Su-chou;Suchow;Suchzhou;Suzhou;Tiou-cchuean;Tsin-tsuan-tsiun;Tuu Tuyen;Tửu Tuyền;Zhjuchuan';jiu quan;jiu quan shi;juchwian si;jywchwan;su zhou;Ťiou-čchüan;Жючуань;Сучжоу;Цзюцюань;جیوچوآن;جیوچوان;肃州;酒泉;酒泉市;주취안 시; +city::1280037;Shache;QSZ;Shache;So-ch'e;So-ch'e-chen;So-ch'e-hsien;So-ch'e-shih;So-ch’e;So-ch’e-chen;So-ch’e-hsien;So-ch’e-shih;Yangi-shahr;Yarkand;Yarkand New City;Yarkand Yangi-shahr;Yarkant;Yarkend;Yarkent;Yeken;Yəkən;Якән;يەكەن; +city::1280281;Qamdo;BPX;Ch'a-mu-to;Ch'ang-tu;Ch'ang-tu-hsien;Ch'ang-tu-tsung;Chamdo;Chamudo;Changdu;Chhamdo;Ch’a-mu-to;Ch’ang-tu;Ch’ang-tu-hsien;Ch’ang-tu-tsung;Qamdo;chang dou;昌都; +city::1280737;Lhasa;LXA;La-sa-shih;Lasa;Lasao;Lassa;Lhas;Lhasa;Lhasa Shi;Lhasa-chhi;Lhasa-chhī;Lhasa-su;Lhasa-sṳ;Lhassa;Lhasza;Lhásza;Lkhas;Lkhasa;Lkhasa shaary;Lkhasae;Lkhase;Lása;l'hasa;la sa;la sa shi;laca;lasa;lassa si;lhasa;lhsh;rasa;rasa shi;Λάσα;Ласа;Лхас;Лхасæ;Лхаса;Лхаса балһсн;Лхаса шаары;Лхасе;Һаса;להסה;لاسا;لاسا شەھىرى;لهاسا;لہاسا;ल्हासा;লাসা;ਲਾਸਾ;ଲାସା;லாசா;ลาซา;ལ་ས།;ལྷ་ས།;ლჰასა;ラサ;ラサ市;拉萨;拉萨市;拉薩;拉薩市;라사;라싸 시; +city::1280757;Laojunmiao;Lao-chun-miao;Lao-chün-miao;Laojunmiao;Laojunmiao Zhen;Yu-men-shih;Yu-men-yu-k'uang-ch'u;Yumen;Yü-men-shih;Yü-men-yu-k’uang-ch’ü;lao jun miao;lao jun miao zhen;yu men;玉门;老君庙;老君庙镇; +city::1280849;Kashgar;K'a-shih;K'o-shih;KHG;Kachgar;Kaixgar;Kaschgar;Kasgar;Kasgara;Kasgaras;Kash;Kashgar;Kashgar Kona Shahr;Kashgar Kone Shahr;Kashi;Kashi Shi;Kashkar;Kasjgar;Kaszgar;Kaxgar;Kaŝgar;Kaşgar;Kašgar;Kašgara;Kašgaras;Kona Shahr;K̩əxk̩ər;K’a-shih;K’o-shih;Qashqar;Qasqar;Qaşqar;Qeshqer;Shu-fu;Su-fu;ka shen;kasagara;kaseu si;kasgara;kashghr;kashqar;kashugaru;kashugaru shi;ke shen shi;Кашгар;Кашкар;Қәшқәр;Կաշգար;קאשגאר;قەشقەر;كاشغر;کاشغر;کاشقار;काश्गर;কাশগর;କାଶଗର;カシュガル;カシュガル市;喀什;喀什市;카스 시; +city::1280957;Jiayuguan;Ch'ia-hsu-kuan;Chia-yu-kuan;Chia-yü-kuan;Chiayukwan;Ch’ia-hsu-kuan;Czjajujguan';Ga-uk-guang;Gia Duc Quan;Gia Dục Quan;Gă-ṳ̆k-guăng;JGN;Jiayuguan;Jiayuguan Ceety;Jiayuguan City;Jiayuguan Lakanbalen;Ka-iok-koan-chhi;Ka-io̍k-koan-chhī;Kia-yu-kuan;Kiayukwan;Tia-jue-kuan;Tseyasyuyguan';Tseyasyuyguan’;Yumen;jawigwan si;jia yu guan shi;jyaywgwan;Ťia-jü-kuan;Цзяюйгуань;Ցզյայույգուան;جائیوگوان شہر;جیایوگوآن;嘉峪关市;嘉峪関市;嘉峪關市;자위관 시; +city::1281019;Hotan;Chotan;Ciudad de Jotan;Ciudad de Jotán;HTN;Hetian;Hetianshi Gujiang Bage Jiedao;Ho-t'ien;Ho-t'ien-chen;Ho-tien-hsien;Ho-t’ien;Ho-t’ien-chen;Hotan;Hotanas;Hoten;Hotən;Khotan;Xotan;Xoten;he tian;he tian shi;he tian shi gu jiang ba ge jie dao;heotyen si;hotan shi;khotana;khtn;Хотан;Хотән;ختن;خوتەن;خوتەن شەھىرى;ख़ोतान;ホータン市;和田;和田市;和田市古江巴格街道;허톈 시; +city::1281368;Deqen;Dechen;Deqing;de qing;Дечен;བདེ་ཆེན;德庆; +city::1529102;UEruemqi;Dikhua;OEremce;Ouroumtchi;Ouroumtsi;Ti-hua;Ti-hua-ch'eng;Ti-hua-ch’eng;Ti-hua-hsien;Ti-hua-shih;Tihwa;Tihwafu;Tikhua;Tikhva;UEruemchi-su;UEruemcsi;UEruemqi;UEruemqi-chhi;URC;Urumchi;Urumci;Urumcio;Urumcis;Urumczi;Urumptsi;Urumqi;Urumqi Shi;Urumtschi;Urumtsi;Urumutsi;Urumçi;Urumĉio;Urumči;Urumčis;Urunchi;Wu-lu-mu-ch'i;Wu-lu-mu-ch'i-shih;Wu-lu-mu-ch’i;Wu-lu-mu-ch’i-shih;Wulumuqi;Wurumch'ih;Wurumch’ih;arwmchy;awrwmchy;awrwmtshy;ulumuchi si;urumaci;urumaki;urumchi;urumucci;urumuchi;urumuchi shi;wu lu mu qi;wu lu mu qi shi;xu rum chi;Öremçe;Ürümchi;Ürümchi-sṳ;Ürümcsi;Ürümqi;Ürümqi Shi;Ürümqi-chhī;Ουρούμτσι;Урумчи;Урумчі;Урумћи;Үрімжі;Үрүмчи;Үрүмчү;Өрөмч хот;Ուրումչի;אורומצי;أورومتشي;ئۈرۈمچى;ئۈرۈمچى شەھىرى;ئۈرۈمچی;ارومچی;اورومچی;उरुमची;उरुम्छी;ਉਰੂਮਕੀ;உருமுச்சி;อุรุมชี;ཨུ་རུམ་ཆི་གྲོང་ཁྱེར།;ウルムチ;ウルムチ市;乌鲁木齐;乌鲁木齐市;烏魯木齊;烏魯木齊市;우루무치 시; +city::1529114;Turpan;Gorad Turfan;Lukchun;T'u-lu-fan;T'u-lu-fan-chen;T'u-lu-fan-hsien;T'urfang;TLQ;Tourfan;Tufan;Tulupan;Tulupan Xian;Turfan;Turfán;Turpan;T’u-lu-fan;T’u-lu-fan-chen;T’u-lu-fan-hsien;T’urfang;torufan shi;tu lu fan;tu lu fan shi;tu lu fan xian;tulupan si;Горад Турфан;Турпан;Турфан;تۇرپان;トルファン市;吐鲁番;吐鲁番县;吐鲁番市;투루판 시; +city::1529195;Shihezi;SHF;Shih-ho-tzu;Shih-yen-tzu;Shihezi;Shihezi Xiang;Shikhedze;Shikhedzy;Shikhehczy;Shixenze;Xihənzə;seuheojeu;shi he zi;shi he zi shi;shi he zi xiang;Шихэцзы;Шихәнзә;شىخەنزە;شىخەنزە شەھرى;شىخەنزە شەھىرى;石河子;石河子乡;石河子市;스허즈; +city::1529363;Kuqa;K'u-ch'e;K'u-ch'e-chen;K'u-ch'e-hsien;KCA;Kocha;Koutcha;Kucha;Kuchar;Kuche;Kuche Xian;Kuchel;Kuchi;Kuchu;Kuga;Kuqa;K’u-ch’e;K’u-ch’e-chen;K’u-ch’e-hsien;ku che;ku che xian;Куча;كۇچا;库车;库车县; +city::1529376;Korla;K'o-erh-lo;K'u-erh-le;K'u-erh-lo;K'u-erh-lo-chen;K'u-erh-lo-hsien;K'u-erh-lo-she-chih-chu;KRL;Khorol khot;Koria;Korla;Korla Shi;Kourla;Ku'erle;Ku'erle Shi;Kuerhlei;Kuerhli;Kuerle;Kuriya;Kurla;Kurlya;Ku’erle;Ku’erle Shi;K’o-erh-lo;K’u-erh-le;K’u-erh-lo;K’u-erh-lo-chen;K’u-erh-lo-hsien;K’u-erh-lo-she-chih-chü;Sayibage;korura;korura shi;ku er lei;ku er lei shi;kueolleo si;kwrla;sa yi ba ge;Корла;Корла балһсн;Хорол хот;كورلا;كورلا شەھىرى;کورلا;コルラ;コルラ市;库尔勒;库尔勒市;萨依巴格;쿠얼러 시; +city::1529484;Hami;Chamil;HMI;Ha-mi-ch'eng-chen;Ha-mi-chen;Ha-mi-ch’eng-chen;Ha-mi-hsien;Ha-mi-shih;Hami;Kamil;Kha-mi;Khami;Khamil;Komul;Koumoul;Kumul;K̩umul;Qomul;Qumul;ha mi de qu;ha mi shi;hami;kumuru shi;Хами;Қумул;قۇمۇل;قۇمۇل شەھىرى;クムル市;哈密地区;哈密市;하미; +city::1529569;Changji;Ch'ang-chi;Ch'ang-chi-chen;Ch'ang-chi-hsien;Chanczi;Changji;Changji Shi;Changki;Chanki;Chantszi;Ch’ang-chi;Ch’ang-chi-chen;Ch’ang-chi-hsien;Ning-pien-i;Sandzhi;Sanji;Yan'an Beilu;Yan’an Beilu;chang ji shi;sanjy;yan an bei lu;Санҗи;Чанцзи;سانجى;延安北路;昌吉市; +city::1529626;Baijiantan;Baijiantan;Baijiantan Zhen;Pai-chien-t'an;Pai-chien-t’an;bai jian tan;bai jian tan zhen;白碱滩;白碱滩镇; +city::1529641;Aral;A-la-erh;Ala'er;Ala'er Shi;Ala’er;Ala’er Shi;Aral;Aral'skoe;a la er;a la er shi;yaral;Арал;Аральское;ئارال;阿拉尔;阿拉尔市; +city::1529651;Altay;A-erh-t'ai;A-erh-t’ai;A-le-t'ai;A-le-t’ai;A-lo-t'ai;A-lo-t'ai-chen;A-lo-t'ai-hsien;A-lo-t’ai;A-lo-t’ai-chen;A-lo-t’ai-hsien;A-shan;AAT;Aletai;Aletai Zhen;Altai;Altai-Sharasume;Altaj;Altajskaja;Altay;Ch'eng-hua;Ch'eng-hua-hsien;Ch'eng-hua-ssu;Cheng-hua-sze;Chenghwa;Chenghwasze;Chenkhua;Ch’eng-hua;Ch’eng-hua-hsien;Ch’eng-hua-ssu;Shara-Sumu;Sharasume;T'u-lo-t'a;Tulta;T’u-lo-t’a;a lei tai;a lei tai shi;a lei tai zhen;aleotai;altay qalasy;yaltay;yaltay shەھyry;Ālètài;Алтай;Алтайская;ئالتاي;ئالتاي شەھىرى;التاي قالاسى;阿勒泰;阿勒泰市;阿勒泰镇;아러타이; +city::1529660;Aksu;A-k'o-su;A-k'o-su-chen;A-k'o-su-hsien;A-k'o-su-hsin-ch'eng;A-k’o-su;A-k’o-su-chen;A-k’o-su-hsien;A-k’o-su-hsin-ch’eng;AKU;Ak Su Yangi Shahr;Akesu;Akesu Shi;Akoso;Aksou;Aksu;Aksu New City;Ak̩su;Aqsu;Aqsu New City;Aqsu Yangi Shahr;Ciudad de Aksu;New Aksu;Yangi-shahr;a ke su;a ke su shi;akeossu si;aksw snkyang;aksw zynjyang;akusu;akusu shi;aqsw;Аксу;Ақсу;آکسو، سنکیانگ;أقسو;ئاقسۇ;ئاقسۇ شەھىرى;اکسو، زینجیانگ;アクス;アクス市;阿克苏;阿克苏市;아커쑤 시; +city::1783621;Zunyi;Chun-gi-chhi;Chun-gī-chhī;Cong-ngie;Cuenji;Cun-i;Czun'i;Cŏng-ngiê;Dzuni;Gunji;Tsun-i;Tsun-i-ch'eng;Tsun-i-ch’eng;Tsun-i-hsien;Tsun-i-shih;Tsunyi;Tsunyi-hsien;Tuan Nghia;Tuân Nghĩa;ZYI;Zunyi;jjun-i si;zun yi;zun yi shi;zwnyay;zwnyy;zwnyyy;Ĝunji;Цзуньи;Цуенји;زونئی;زونیئی;زونیای;遵义市;遵義;遵義市;쭌이 시; +city::1783633;Zoucheng;Chou-hsien;Czouchehn;Czouchen;Trau Thanh;Trâu Thành;Tsou;Tsou-hsien;Tsowhsien;Zoucheng;Zouxian;jjeoucheong si;zou cheng shi;Цзоучен;Цзоучэн;邹城市;鄒城市;쩌우청 시; +city::1783683;Yanjiang;Czyjan;Tszoyan;Tszöyan;Tzeyang;Tzeyang-hsien;Tzu-yang;Tzu-yang-hsien;Yanjiang;Ziyang;yan jiang;Цзыян;雁江; +city::1783745;Zigong;C-kung;Ceu-gong;Chu-kong-chhi;Chū-kòng-chhī;Cigung;Czygun;Cê̤ṳ-góng;Dzigongas;Dzugun;Tu Cong;Tzekung;Tzeliuching;Tzeliutsing;Tzu-kung;Tzu-kung-shih;Tzu-liu-ching;Tzuliutsing;Tự Cống;ZKL;Zigong;jjeugung si;zi gong;zi gong shi;zygang;zygwng;zyjwnj;Дзъгун;Цзыгун;Цигунг;زيجونج;زیگانگ;زیگونگ;自貢;自貢市;自贡;自贡市;쯔궁 시; +city::1783763;Zhuzhou;Chu Chau;Chu Châu;Chu-chiu-chhi;Chu-chiu-chhī;Chu-chou;Chu-chou-shih;Chu-chu-su;Chu-chû-sṳ;Chuchow;Chzhuchzhou;Cu-cou;Cyu Cou;DHU;Dzhudzhou;Dzudzou;Džudžou;Gugou;Jianning;Tu-ciu;Tṳ̆-ciŭ;Zhutsjou;Zhuzhou;Zhuzhou Shi;jujeou si;zhanzhw;zhu zhou;zhu zhou shi;zhwzhww;Çyu Cou;Ču-čou;Ĝuĝou;Џуџоу;Джуджоу;Чжучжоу;ژانژو;ژوژوو;ཞུས་ཀྲོའུ།;株洲;株洲市;주저우 시; +city::1783873;Zhumadian;Chu-ma-tien;Chu-ma-tien-chen;Chu-ma-tien-shih;Chzhumadjan';Hsin-chuang;Zhumadian;zhu ma dian shi;Чжумадянь;驻马店市; +city::1783920;Zhujiajiao;Ching-t'ing-chiang;Ching-t’ing-chiang;Chu-chia-chiao;Chu-chieh-ko;Chzhuczjaczjao;Zhujiajiao;Zhujiajiao Zhen;zhu jia jiao;zhu jia jiao zhen;Чжуцзяцзяо;朱家角;朱家角镇; +city::1783934;Shangqiu;Chu-chi;Chu-kia-tsi;Chu-sun-chi;Sang-cchiou;Shancju;Shang-ch'iu;Shang-ch'iu-shih;Shang-ch’iu;Shang-ch’iu-shih;Shangqiu;Siong-khiu-chhi;Siong-khiu-chhī;Siong-kiu;Siŏng-kiŭ;Sjangqiu;Thuong Khau;Thương Khâu;Zhuji;sangchu si;shang qiu;shang qiu shi;shangchyw;shanghkyw;Šang-čchiou;Шанцю;شانغكيو;شانگچیو;ሻንግጭዩ;商丘;商丘市;상추 시; +city::1783940;Zhuji;Chu-chi;Chu-chi-hsien;Chu-chi-hsien-ch'eng;Chu-chi-hsien-ch’eng;Chuki;Chukihsien;Zhuji;Zhuji Shi;zhu ji;zhu ji shi;诸暨;诸暨市; +city::1783988;Mizhou;Chu-ch'eng;Chu-ch’eng;Chu-hsien;Mizhou;mi zhou;密州; +city::1784055;Zhuanghe;Chuang-ho;Chuang-ho-chen;Chuang-ho-chieh;Chuang-ho-hsien;Chwangho;Zhuanghe; +city::1784130;Zhoukou;Chiu-khau-chhi;Chiu-kháu-chhī;Chou-chia-k'ou;Chou-chia-k’ou;Chou-k'ou;Chou-k'ou-chen;Chou-k’ou;Chou-k’ou-chen;Chow-kia-kow;Chu Khau;Chu Khẩu;Chzhouko;Chzhoukou;Ciu-kau;Ciŭ-kāu;Cou-kchou;Dzoukou;Juko shehiri;Shang-shui-hsien;Tsjoukou;Zhoukou;Zhoukouzhen;jeoukeou si;zhou kou;zhou kou shi;zhwkw;zhwwkww;Čou-kchou;Џоукоу;Чжоуко;Чжоукоу;زهوكو;ژووکوو;周口;周口市;저우커우 시; +city::1784178;Zhoucun;Chou-lin-chen;Chou-ts'un;Chou-ts'un-chen;Chou-ts’un;Chou-ts’un-chen;Chowtsun;Zhoucun; +city::1784185;Yuxi;Giok-khe-chhi;Gio̍k-khe-chhī;Hongta;Hongta Qu;Hsin-hsing;Jue-si;Jujsi;Jü-si;Ngoc Khe;Nguk-ka;Ngṳ̆k-kă̤;Ngọc Khê;Sinhing;Sinhingchow;Yu-ch'i;Yu-ch'i-hsien;Yu-hsi;Yuki;Yuki-hsien;Yuxi;Yü-ch’i;Yü-ch’i-hsien;Yü-hsi;Yüki;Yüki-hsien;Zhoucheng;hong ta;hong ta qu;wisi si;ygzy;yu si;yu xi;yu xi shi;Юйси;یگزی;ยู่ซี;玉渓市;玉溪;玉溪市;红塔;红塔区;위시 시; +city::1784253;Zhongxing;Chung-hsing;Chung-hsing-chen;Chunghing;Chunking;Siyang;Ssu-yang;Ssu-yang-hsien;Szeyang;Zhongxing; +city::1784310;Zhongshu;Chung-shu-chen;Chzhunshu;Kuang-hsi;Kwangsi-hsien;Kwangsichow;Lu-hsi;Lu-hsi-hsien;Lusi-hsien;Luxi;Zhongshu;zhong shu;Чжуншу;中枢; +city::1784553;Zhicheng;Ch'ang-hsing;Ch'ang-hsing-hsien;Ch'ang-hsing-hsien-ch'eng;Changhing;Changhing-hsien;Changxing Xian;Ch’ang-hsing;Ch’ang-hsing-hsien;Ch’ang-hsing-hsien-ch’eng;Zhicheng;Zhicheng Zhen;zhang xing xian;zhi cheng;zhi cheng zhen;长兴县;雉城;雉城镇; +city::1784554;Zhicheng;Chi-Kiang;Chih-ch'eng;Chih-chiang;Chih-chiang-chen;Chih-chiang-hsien;Chih-ch’eng;Chihkiang;Chihkianghsien;Zhicheng;Zhicheng Zhen;zhi cheng;zhi cheng zhen;枝城;枝城镇; +city::1784580;Zhenzhou;I-chang;I-cheng;I-cheng-hsien;I-tcheng;Icheng Ku;Yangtzehsien;Yicheng;Yizheng Shi;Zhenzhou;Zhenzhou Zhen;yi zheng shi;zhen zhou;zhen zhou zhen;仪征市;真州;真州镇; +city::1784642;Zhenjiang;Chen-chiang;Chen-chiang-ch'eng;Chen-chiang-ch’eng;Chen-chiang-hsien;Chen-chiang-shih;Chenkiang;Chinkiang;Chinkiang Fu;Chinking;Tan-t'a;Tan-t'u;Tan-t’a;Tan-t’u;Tantuhsien;ZUJ;Zhenjiang;Zhenjiang Shi;zhen jiang;zhen jiang shi;جېنجياڭ شەھىرى;鎮江;镇江;镇江市; +city::1784647;Zhaobaoshan;Chen-hai;Chen-hai-hsien;Chen-hai-hsien-ch'eng;Chen-hai-hsien-ch’eng;Chinhai;Zhaobaoshan;Zhaobaoshan Jiedao;Zhenhai;Zhenhai Qu;zhao bao shan;zhao bao shan jie dao;zhen hai;zhen hai qu;招宝山;招宝山街道;镇海;镇海区; +city::1784658;Zhengzhou;CGO;Cencou;Ceng-cou;Cengcou;Cheng;Cheng-chou;Cheng-chou-shih;Cheng-hsien;Chengchow;Chhiang-chu-su;Chhiáng-chû-sṳ;Chzhehnchzhou;Chzhenchzhou;Cjencjou;Csengcsou;Cwngcouh;Czengczou;Dang-ciu;Dzendzou;Dzengdzou;Dzhundzhou;Dâng-ciŭ;Džendžou;Džengdžou;Genggouo;Trinh Chau;Trịnh Châu;Tsentsoou;Tēⁿ-chiu-chhī;Zengzou;Zhengtsjou;Zhengzhou;Zhengzhou Shi;canaco;cancau;ceing cow;cencavu;jeongjeou si;jhengajho'u;tshnghtshw;zheng zhou;zheng zhou shi;zhngzhw;zhyngzhw;Çengçou;Çjençjou;Čeng-čou;Ĝengĝoŭo;Žengžou;Τσεντσόου;Џенгџоу;Джънджоу;Жөнжоу;Чженчжоу;Чжэнчжоу;Чжэнчжоў;تشنغتشو;جېڭجۇ شەھىرى;ژنگژو;ژینگژو;चंचौ;झेंगझोऊ;ਚੰਙਚੋ;செங்சவு;เจิ้งโจว;ကျင့်ကျိုးမြို့;郑州;郑州市;鄭州;鄭州市;정저우 시; +city::1784820;Xinghua;Hsin-hsing;Hsing-hua;Hsing-hua-ch'eng;Hsing-hua-ch’eng;Hsing-hua-hsien;Sinkhua;Xinghua;Xinxing;Zhaoyang;Синхуа; +city::1784841;Zhaotong;Cao-tchung;Chao-t'ung;Chao-t'ung-hsien;Chao-t’ung;Chao-t’ung-hsien;Chiau-thong-chhi;Chiau-thong-chhī;Chieu Thong;Chiêu Thông;Chzhaotun;Cieu-tung;Ciĕu-tŭng;En-an;En-an-hsien;ZAT;Zhaotong;cea thng;jaotung si;zhao tong;zhao tong shi;zhawtwng;Čao-tchung;Чжаотун;ژاوتونگ;เจาทง;昭通;昭通市;자오퉁 시; +city::1784853;Zhaoqing;Cao-cching;Chao-ch'ing;Chao-ch'ing-chen;Chao-chou;Chao-ch’ing;Chao-ch’ing-chen;Chao-king;Chzhaocin;Dieu-keng;Diêu-kéng;Dzaocing;Kao-yao;Kao-yao-hsien;Koyiu;Koyiu-hsien;Koynihsien;Sau-khin-su;Sau-khin-sṳ;Shiuhing;Shiuhingfu;Tiau-kheng-chhi;Tiāu-khèng-chhī;Trieu Khanh;Triệu Khánh;Zhaoqing;gʼwzyng;jaoching si;zhao qing;zhao qing shi;zhawchng;zhawchyng;zhawkyng;Čao-čching;Џаоћинг;Чжаоцин;גאוצינג;ژاؤچینگ;ژاوچنگ;ژاوکینگ;肇庆;肇庆市;肇慶;肇慶市;자오칭 시; +city::1784929;Zhaogezhuang;Chao-chia-chuang;Chao-ko-chuang;Chaokochwang;Zhaogezhuang;zhao ge zhuang;赵各庄; +city::1784953;Luofeng;Chao-yuan;Chao-yuan-hsien;Chao-yüan;Chao-yüan-hsien;Luofeng;Zhaocheng;Zhaoyuan;Zhaoyuan Shi;luo feng;zhao yuan shi;招远市;罗峰; +city::1784990;Zhanjiang;Chan-chiang;Chan-chiang-shih;Chankiang;Chzhan'czjan;Fort Bayard;Hsi-ying;Kwangchow;Kwangchowan;Kwangchowwan;Tram Giang;Trạm Giang;Tsamkong;ZHA;Zhanjiang;Zhanjiang Shi;zhan jiang;zhan jiang shi;Чжаньцзян;جاڭجياڭ شەھىرى;湛江;湛江市; +city::1785018;Zhangzhou;Cang-cou;Chang-chou;Chang-chou-shih;Changchow;Changchowfu;Chiang-chiu-chhi;Chiang-chiu-chhī;Chong-chu-su;Chuong Chau;Chzhanchzhou;Chông-chû-sṳ;Chương Châu;Ciong-ciu;Ciŏng-ciŭ;Dzangdzou;Dzhandzhou;Gangou;Jyangju shehiri;Lung-ch'i;Lung-ch'i-hsien-ch'eng;Lung-ch’i;Lung-ch’i-hsien-ch’eng;Lungki;Lunki;Zhangtsjou;Zhangzhou;jangjaw;jangjeou si;shou zhou shi;zhang zhou;zhang zhou shi;zhangzhw;Čang-čou;Ĝanĝou;Џангџоу;Джанджоу;Чжанчжоу;جانگجاو;ژانگژو;ショウ州市;漳州;漳州市;장저우 시; +city::1785036;Zhangye;Cang-jie;Chang-i;Chang-yeh;Chang-yeh-hsien;Chang-yeh-shih;Changyen;Chzhanue;Diong-ik;Diŏng-ĭk;Dzhanie;Ganzhou;Kan-chou;Kanchow;Tiuⁿ-e̍k-chhī;Truong Dich;Trương Dịch;Zhangye;Zhangye Shi;Zhanue;jang-ye si;zhang ye;zhang ye shi;Čang-jie;Джание;Жанъе;Чжанъе;Չժանիե;ژانگیے;ژانگیۓ;张掖;张掖市;張掖;張掖市;장예 시; +city::1785286;Zibo;C-po;Chang-chou-shih;Chang-tien;Chang-tien-shih;Chu-phok-chhi;Chu-phok-chhī;Cu-bauk;Czybo;Cṳ̆-báuk;Dzubo;Truy Bac;Truy Bác;Tzu-po;Zhangdian;Zibo;jjeubo si;shi bo shi;zaybw;zi bo;zi bo shi;zibo;zybw;Дзъбо;Цзыбо;زایبو;زىبو شەھىرى;زيبو;زیبو;ਜ਼ੀਬੋ;シ博市;淄博;淄博市;쯔보 시; +city::1785294;Anyang;AYN;Ahn Yang;An Duong;An Dương;An'jan;An'jang;An-jang;An-yang-hsien;Anjan;Anjang;Anjangas;Anyang;Chang-te;Changte-fu;Changteh;Changten;Dengtalu;Zhangde;an yang shi;an-yang si;anyangh;deng ta lu;Аньян;Аньянг;Анян;Анјанг;انيانغ;അൻയാങ്;安阳市;安陽市;灯塔路;안양 시; +city::1785453;Zaozhuang;Cao-cuang;Cao-čuang;Cho-chng-chhi;Chó-chng-chhī;Co-cong;Czaochzhuan;Cō̤-cŏng;I-hsien;Tao Trang;Tsao-chuang;Tsao-chuang-shih;Tsaochwang;Tssaochwang;Tảo Trang;Zaozhuang;jjaojwang si;zao zhuang;zao zhuang shi;zawzhwang;Цзаочжуан;زاوژوانگ;枣庄市;棗荘市;棗莊;짜오좡 시; +city::1785462;Zaoyang;Tsao-yang;Tsao-yang-hsien;Zaoyang; +city::1785545;Yuyao;Ju-kao;Jujao;YYP;Yuyao;yu yao;Юяо;余姚; +city::1785566;Yingchuan;Yingchuan;Yu;Yu-hsien;Yuchow;Yuxian;Yuzhou;Yü;Yü-hsien;ying chuan;颍川; +city::1785572;Yuxia;Yu-hsia;Yu-hsia-li;Yuxia;Yuxia Zhen;Yü-hsia;Yü-hsia-li;yu xia;yu xia zhen;余下;余下镇; +city::1785623;Kunshan;Con Son;Côn Sơn;K'un-shan-ch'eng;K'un-shan-hsien;KVN;Kan-shan;Kun'shan';Kunsanas;Kunshan;Kunshan Shi;Kunšanas;K’un-shan-ch’eng;K’un-shan-hsien;Yushan;Yushan Zhen;kun shan;kun shan shi;kunsan si;kwnshan;yu shan;yu shan zhen;Куншан;Куньшань;کونشان;崑山;崑山市;昆山;昆山市;玉山;玉山镇;쿤산 시; +city::1785655;Yunyang;Chiu-nan-chao;Jiunanzhao;Nan-chao;Nan-chao Old City;Nan-chao-chiu-chiu;Nan-chao-hsien;Nan-chao-ku-chih;Yunyang;yun yang;云阳; +city::1785698;Yunmeng Chengguanzhen;Yun-meng-hsien;Yunmeng;Yunmeng Chengguanzhen;Yün-meng-hsien;yun meng cheng guan zhen;云梦城关镇; +city::1785710;Jinghong;Ch'e-li;Ch'e-li-hsien;Chianghung;Ching-hung;Ching-te;Chiu-lung-chiang;Ch’e-li;Ch’e-li-hsien;JHG;Jinghong;Kenghung;Kianghung;Kinlungkiang;Kiulungkiang;Kiulunkiang;Kuilung-kiang;Pan-na-ching-hung;Pan-na-yun-ching-hung;Pan-na-yün-ching-hung;Yun-ching-hung;Yun-ching-hung-chen;Yunjinghong;Yün-ching-hung;Yün-ching-hung-chen;cheiyng rung;jing hong;jing hong shi;เชียงรุ้ง;景洪;景洪市; +city::1785716;Pizhou;P'ei-hsien;Peixian;Pizhou;P’ei-hsien;Yun-ho;Yun-ho-ch'e-chan;Yun-ho-chen;Yunhe;Yün-ho;Yün-ho-chen;Yün-ho-ch’e-chan; +city::1785725;Yunfu;Hun-phu-chhi;Hung-pu;Hùng-pù;Hûn-phû-chhī;Juen-fu;Jun'fu;Jün-fu;Tung-an;Van Phu;Vân Phù;Wanfow;Yun-ch'eng;Yun-ch'eng-chen;Yun-fou;Yun-fou-hsien;Yunfu;Yün-ch’eng;Yün-ch’eng-chen;Yün-fou;Yün-fou-hsien;winpu si;yanfw;ynfw;yun fu;yun fu shi;ywnfw;Юньфу;یانفو;ینفو;یونفو;云浮;云浮市;雲浮;雲浮市;윈푸 시; +city::1785738;Yuncheng;An-i-hsien;Anyi;Anyihsien;Juen-ccheng;Jun'chehn;Juncheng;Jün-čcheng;Ong-siang;Van Thanh;Vận Thành;YCU;Yun'chen;Yun-ch'eng-chen;Yuncheng;Yuncheng Shi;Yun’chen;Yün-ch’eng-chen;an yi;wincheong si;yangchng;yun cheng;yun cheng shi;ywnchyng;Ông-siàng;Ūn-siâⁿ-chhī;Јунченг;Юньчэн;یانگچنگ;یونچینگ;安邑;运城;运城市;運城;運城市;윈청 시; +city::1785777;Yulinshi;Du Lam;Du Lâm;Jiu-lim-chhi;Jiû-lîm-chhī;Jue-lin;Jujlin';Jü-lin;U-ling;UYN;Yu-lin-hsien;Yulin;Yulinfu;Yulinshi;Yü-lin-hsien;wilin si;yu lin;yu lin shi;ywln shangzy;Юйлинь;یولن، شانگزی;Ṳ̀-lìng;楡林;楡林市;榆林;榆林市;위린 시; +city::1785781;Yulin;Giok-lim-chhi;Gio̍k-lîm-chhī;Jue-lin;Jujlin';Jü-lin;Ngiuk-lim-su;Ngiu̍k-lìm-sṳ;Ngoc Lam;Nguk-ling;Ngṳ̆k-lìng;Ngọc Lâm;Watlam;Watlam-hsien;Yo-ling;Yoglinz;Yu-lin-chen;Yu-lin-hsien;Yulin;Yü-lin-chen;Yü-lin-hsien;wilin si;yu lin;yu lin shi;ywlayn;ywln;ywln gwangshy;Юйлинь;یولاین;یولن;یولن، گوانگشی;玉林;玉林市;위린 시; +city::1785805;Wulingyuan;Wulingyuan;Wulingyuan Qu;Yujiazui;wu ling yuan;wu ling yuan qu;武陵源;武陵源区; +city::1785964;Yudong;Baxian;Chi-chia-t'o;Chi-chia-t’o;Jujdun;Pa;Pa-hsien;Yu-tung-ch'i;Yu-tung-chen;Yu-tung-hsi;Yudong;Yudongxi;Yü-tung-chen;Yü-tung-ch’i;Yü-tung-hsi;Юйдун; +city::1785974;Yuci;Yu-tz'u;Yu-tz'u-hsien;Yu-tz'u-shih;Yuci;Yuci Qu;Yutzehsien;Yü-tz’u;Yü-tz’u-hsien;Yü-tz’u-shih;Yützehsien;yu ci;yu ci qu;榆次;榆次区; +city::1785980;Yucheng;Chiu-yu-t'ai;Chiu-yü-t’ai;Hitaihsien;Jujchehn;Yu-t'ai;Yu-t'ai-hsien;Yucheng;Yü-t’ai;Yü-t’ai-hsien;Юйчэн; +city::1786060;Yuanping;Yuanping;Yuanping Shi;yuan ping;yuan ping shi;原平;原平市; +city::1786067;Qianjiang;Ch'ien-chiang;Ch'ien-chiang-hsien;Chien-kou;Ch’ien-chiang;Ch’ien-chiang-hsien;JQJ;Juan'lin';Qianjiang;Qiánjiāng;Tsienkiang;Yuanlin;Yuanlin Jiedao;yuan lin;yuan lin jie dao;Юаньлинь;园林;园林街道; +city::1786112;Heyuan;Che-juean;Che-jüan;Ha Nguyen;Heyuan;Ho-goan-chhi;Ho-ngien-su;Ho-yuan;Ho-yuan-hsien;Ho-yüan;Ho-yüan-hsien;Hoyun;Hoyunhsien;Hoyün;Hà Nguyên;Hò-ngièn-sṳ;Hô-goân-chhī;Khehjuan';O-nguong;Yuancheng;he yuan;he yuan shi;heowian si;hywan;Ò̤-nguòng;Хэюань;هیوان;ہی یوآن;ہیئوان;河源;河源市;허위안 시; +city::1786357;Yongfeng;Shuangfeng;Yongfeng;Yung-feng;Yung-feng-chen;Yung-feng-shih;Yungfengsze;yong feng;永丰; +city::1786378;Yongchuan;Jungchunghsien;Yongchang;Yongchuan;Yung-ch'uan;Yung-ch'uan-hsien;Yung-ch’uan;Yung-ch’uan-hsien;Yungchwan;Yungchwan-hsien;yong chuan;永川; +city::1786455;Yishui;I-shui;I-shui-hsien;Yishui; +city::1786546;Zhongxiang;An-lu;Anlu;Anlufu;Chung-hsiang;Chung-hsiang-hsien;Chungsiang;Yingzhong;Zhongxiang; +city::1786587;Yingshang Chengguanzhen;Yin-shang;Ying-shang-hsien;Yingshang;Yingshang Chengguanzhen;ying shang cheng guan zhen;颖上城关镇; +city::1786640;Chengzhong;Chengzhong;Chengzhong Jiedao;Ying-ch'eng-hsien;Ying-ch’eng-hsien;Yingcheng;cheng zhong;cheng zhong jie dao;ying cheng;城中;城中街道;应城; +city::1786657;Yinchuan;Gin-chhoan-chhi;Gîn-chhoan-chhī;Ho-lan;INC;In'chuan';Inchuan;Incuanas;Inčuanas;Jin-cchuan;Jin-čchuan;Jinchuan;Ngan Xuyen;Ngung-chiong;Ngân Xuyên;Ngṳ̀ng-chiŏng;Ning-hsia;Ningsia;Ningsia-hsien;Ningsiafu;Thanh pho Ngan Xuyen;Thành phố Ngân Xuyên;Yin-ch'uan-shih;Yin-ch’uan-shih;Yinchuan;Yinchuan Shi;Yinzconh;inchwan si;mdynt ynshwan;yin chuan;yin chuan shi;ynchwan;yynchwan;Їньчуань;Јинчуан;Инчуан;Иньчуань;مدينة ينشوان;يىنچۈئەن شەھىرى;ینچوآن;ینچوان;یینچوان;യിഞ്ചുവാൻ;ཡིན་ཁྲོའོན་གྲོང་ཁྱེར།;銀川;銀川市;银川;银川市;인촨 시; +city::1786676;Yima;I-ma;Jimy;Yima;Йимы; +city::1786720;Yigou;I-kou;I-kou-chen;I-kou-i;Igoui;Yigou; +city::1786731;Qingzhou;Ch'ing-chou;Ch’ing-chou;Cinchzhou;I-tu;I-tu-hsien;Qingzhou;Tsingchow;Tsingchowfu;Yidu;Yitu;Цинчжоу; +city::1786746;Yichun;Gi-chhun-chhi;Gî-chhun-chhī;I-cchun;I-ch'un;I-ch'un-chen;I-ch'un-hsien;I-ch’un;I-ch’un-chen;I-ch’un-hsien;I-čchun;Ichun';Nghi Xuan;Nghi Xuân;Ngi-chung;Ngì-chŭng;Ni-chhun-su;Nî-chhûn-sṳ;YIC;Yichun;Yichun Shi;Yichun i Jiangxi;Yuan-chou;Yuanchow;Yuen-chow-fu;Yüan-chou;Yüanchow;ichun si;ychan;yi chun;yi chun shi;yyshwn jyangshy;Ичунь;یچان;ییشون، جیانگشی;宜春;宜春市;이춘 시; +city::1786759;Yicheng;Hsuan-ch'eng;Hsüan-ch’eng;I-ch'eng;I-ch'eng-hsien;I-ch’eng;I-ch’eng-hsien;Tzu-chung;Tzu-chung-hsien;Yicheng;Yicheng Jiedao;yan cheng;yan cheng jie dao;鄢城;鄢城街道; +city::1786760;Yicheng;I-ch'eng-chen;I-ch’eng-chen;I-hsing;I-hsing-ch'eng;I-hsing-ch’eng;I-hsing-hsien;Ihing;Yicheng;Yicheng Jiedao;Yixing;Yixing Shi;yi cheng;yi cheng jie dao;yi xing shi;宜兴市;宜城;宜城街道; +city::1786764;Yichang;Che-Keou-chan;Che-Kéou-chan;Gi-chhiong-chhi;Gî-chhiong-chhī;I-cchang;I-ch'ang-hsien;I-ch'ang-shih;I-chang;I-ch’ang-hsien;I-ch’ang-shih;I-čchang;Ican;Ichan;Ichang;Ičan;Jicang;Jichang;Jiĉang;Nghi Xuong;Nghi Xương;Ngi-chiong;Ngì-chiŏng;Tung-hu;YIH;Yichang;aychang;ichang si;ychng;yi chang;yi chang shi;Ічан;Јичанг;Ичан;ایچانگ;يىچاڭ شەھىرى;یچنگ;宜昌;宜昌市;이창 시; +city::1786770;Yibin;Gi-pin-chhi;Gî-pin-chhī;Hsu-chou;Hsü-chou;I-pin;I-pin-hsien;I-pin-shih;Ibin;Ibin';Jibin;Nghi Tan;Nghi Tân;Ngi-bing;Ngì-bĭng;Suchow;Suifu;Süchow;Xufu;Xuzhou Cheng;YBP;Yibin;Yibin Shi;ayblyn;ibin si;xu fu;xu zhou cheng;ybyn;yi bin;yi bin shi;Јибин;Ибин;Ибинь;ایبلین;یبین;叙州城;叙府;宜宾;宜宾市;宜賓;宜賓市;이빈 시; +city::1786855;Yatou;Jung-ch'eng;Jung-ch'eng-hsien;Jung-ch’eng;Jung-ch’eng-hsien;Rongcheng;Rongcheng Shi;Yai-t'ou;Yai-t'ou-chi;Yai-t’ou;Yai-t’ou-chi;Yatou;Yatou Jiedao;Zhunchehn;rong cheng;rong cheng shi;ya tou;ya tou jie dao;Жунчэн;崖头;崖头街道;荣成;荣成市; +city::1786867;Yashan;; +city::1787031;Yanzhou;Ch'ie-fou;Ch’ie-fou;Tzeyang;Tzu-yang;Tzu-yang-ch'eng;Tzu-yang-ch’eng;Tzu-yang-hsien;Yanzhou;Yen-chou;Yenchow;Yenchow-fu;Yenzhou; +city::1787093;Yantai;Cheefoo;Chefoo;Chifu;Ian-tai-chhi;Ian-tâi-chhī;Ieng-dai;Iĕng-dài;Jan'taj;Jantai;Jantaj;Jen-tchaj;YNT;Yantai;Yantái;Yen GJai;Yen-t'ai;Yen-t'ai-shih;Yen-t’ai;Yen-t’ai-shih;Yên Đài;yan tai;yan tai shi;yantay;yantayy;yentai si;yeondae;yeontae;Јантај;Янтай;Яньтай;يەنتەي شەھىرى;یانتائی;یانتای;烟台市;煙台市;煙臺;연대;연태;옌타이 시; +city::1787144;Yanliang;Yanliang;Yen-liang;Yen-liang-chen;yan liang;阎良; +city::1787227;Yangzhou;Chiang-tu;Chiang-tu-hsien;Duong Chau;Dương Châu;Han-chiang;Iong-chiu-chhi;Iong-ciu;Iòng-ciŭ;Iông-chiu-chhī;Janchzhou;Jancjou;Jandzhou;Jang-cou;Jang-čou;Jangdzou;Janĉĵou;Kiangtu;YTY;Yang-chou;Yang-chou-shih;Yang-chow-fu;Yangchow;Yangjo shehiri;Yangtsjou;Yangzhou;yang zhou;yang zhou shi;yanghtshw;yangjeou si;yangzhw;Јангџоу;Янджоу;Янчжоу;יאנגצו;يانغتشو;یانگژو;ཡྰང་ཀྲོའུ།;扬州市;揚州;揚州市;양저우 시; +city::1787323;Yangshuo;Jansho;Yang-shuo-chen;Yang-shuo-hsien;Yangso;Yangso-hsien;yang shuo;Яншо;阳朔; +city::1787331;Zhangjiagang;Sha-chou;Shazhou;Yang-she-chen;Yang-she-ying;Yangshe;Zhangjiagang Shi; +city::1787351;Yangquan;Duong Tuyen;Dương Tuyền;Iong-choan-chhi;Iong-ciong;Iòng-ciòng;Iông-choân-chhī;Jancjuan;Jancjuan';Jang-cchuean;Jang-čchüan;Jangcuen;Yang-ch'uan;Yang-ch'uan-chan;Yang-ch'uan-shih;Yang-ch’üan;Yang-ch’üan-chan;Yang-ch’üan-shih;Yangquan;Yangquan Shi;yang quan;yang quan shi;yangchwan;yangchwian si;yangkwan;Јангћуен;Янцюань;یانگچوان;یانگکوان;阳泉;阳泉市;陽泉;陽泉市;양취안 시; +city::1787437;Yangliuqing;Yang-liu-ch'ing;Yang-liu-ch'ing-chen;Yang-liu-ch’ing;Yang-liu-ch’ing-chen;Yangliuqing;yang liu qing;杨柳青; +city::1787601;Yanggu;Jang;Yang-ku;Yang-ku-hsien;Янг; +city::1787646;Yangcun;Wu-ch'ing;Wu-ch'ing-hsien;Wu-ch’ing;Wu-ch’ing-hsien;Wuqing;Yang-ts'un;Yang-ts’un;Yangcun; +city::1787746;Yancheng;Diem Thanh;Diêm Thành;Iâm-siâⁿ-chhī;Jan'chehn;Jancengo;Jancheng;Janĉengo;Jen-ccheng;Jen-čcheng;Jenchun;Sieng-siang;Sièng-siàng;YNZ;Yancheng;Yen-ch'eng;Yen-ch'eng-chen;Yen-ch'eng-hsien;Yen-ch’eng;Yen-ch’eng-chen;Yen-ch’eng-hsien;yan cheng;yan cheng shi;yanchng;yencheong si;ynchyng;Јанченг;Йенчън;Яньчэн;يەنچېن شەھىرى;یانچنگ;ینچینگ;塩城市;盐城;盐城市;鹽城;옌청 시; +city::1787824;Tongshan;Hsu-chou;Hsu-chou-shih;Hsü-chou;Hsü-chou-shih;Sjujchzhou;Suchow;Suchow-fu;Süchow-fu;T'ung-shan;Tongshan;T’ung-shan;Xuzhou;swijeou si;xu zhou;xu zhou shi;Сюйчжоу;شۈجو شەھىرى;徐州;徐州市;쉬저우 시; +city::1787837;Xucheng;Hsu-wen;Hsu-wen-hsien;Hsü-wen;Hsü-wen-hsien;Suwen;Suwenyun;Tsuimen;Xucheng;Xucheng Jiedao;Xucheng Zhen;Xuwen;xu cheng;xu cheng jie dao;xu cheng zhen;徐城;徐城街道;徐城镇; +city::1787858;Shangrao;Kuanghsin;Kwangsin;SQD;Sang-zao;Shang-jao;Shang-jao-hsien;Shang-jao-shih;Shangrao;Shangrao Shi;Shangzhao;Shanzhao;Siong-jiau-chhi;Siong-ngieu;Siông-ngièu;Siōng-jiâu-chhī;Sjangrao;Song-ngieu-su;Song-ngièu-sṳ;Thuong Nhieu;Thượng Nhiêu;Xuri;sanglao si;shang rao;shang rao shi;shangraw;Šang-žao;Шангжао;Шанжао;شانگراو;上饒;上饒市;上饶;上饶市;상라오 시; +city::1787901;Xunchang;Xunchang;xun chang;巡场; +city::1788046;Jiangguanchi;Hsu-ch'ang;Hsu-ch'ang-hsien;Hsu-ch'ang-shih;Hsu-chou;Hsuchow;Hsü-chou;Hsü-ch’ang;Hsü-ch’ang-hsien;Hsü-ch’ang-shih;Hsüchow;Jiangguanchi;Syuychan;Xuchang;jiang guan chi;将官池; +city::1788081;Xuanzhou;Hsuan-ch'eng;Hsuan-ch'eng-hsien;Hsüan-ch’eng;Hsüan-ch’eng-hsien;Ning-kuo;Ningkwo;Ningkwofu;Suancheng;Suancheng-hsien;Süancheng;Süancheng-hsien;Xuancheng;Xuanzhou; +city::1788206;Xixiang;Hsi-hsiang;Xixiang; +city::1788245;Xiuying;Hsiu-ying;Xiuying;xiu ying;秀英; +city::1788268;Xiulin;Shi-shau;Shih-shou;Shih-shou-hsien;Shih-show-hsien;Shishou;Shishow;Xiulin; +city::1788402;Xiongzhou;Namyung;Nan-hsiung;Nan-hsiung-hsien;Nanxiong;Nanyung-hsien;Xiongzhou;xiong zhou;雄州; +city::1788406;Guixi;Guixi;Guixi Shi;Kuei-ch'i;Kuei-ch'i-hsien;Kuei-ch'i-hsien-ch'eng;Kuei-ch’i;Kuei-ch’i-hsien;Kuei-ch’i-hsien-ch’eng;Kuei-hsi;Kweiki;Kweikihsien;Xiongshi;gui xi;gui xi shi;贵溪;贵溪市; +city::1788450;Xinzhou;Gorad Sin'dzhou;Han Chau;Hian-chiu-chhi;Hian-chiu-chhī;Hsin;Hsin-hsien;Hsin-hsien-ch'eng;Hsin-hsien-ch’eng;Hsin-ting;Hung-ciu;Hãn Châu;Hṳ̆ng-ciŭ;Sin'chzhou;Sin-cou;Sin-čou;Sinchow;Sinhsien;WUT;Xinfu Qu;Xinxian;Xinzhou;Xinzhou Shi;shnzhww;shynjw;sinjeou si;xin fu qu;xin zhou;xin zhou shi;Горад Сіньджоў;Синьчжоу;شنژوو;شینجو;忻州;忻州市;忻府区;신저우 시; +city::1788452;Xinzhou;Hsin-chou;Hsin-chou-chen;Sinchow;Xinzhou; +city::1788462;Xinzhi;Hsin-chih;Hsin-chih-ts'un;Hsin-chih-ts’un;Pei-ts'un;Pei-ts’un;Xinzhi; +city::1788508;Xinyu;Hsin-yu;Hsin-yu-chen;Hsin-yu-hsien;Hsin-yu-hsien-ch'eng;Hsin-yu-shih;Hsin-yü;Hsin-yü-chen;Hsin-yü-hsien;Hsin-yü-hsien-ch’eng;Hsin-yü-shih;Sin'juj;Sin-jue;Sin-jü;Sin-u-chhi;Sin-yi-su;Sin-û-chhī;Sing-u;Sinyu-hsien;Sinyü-hsien;Sîn-yì-sṳ;Sĭng-ṳ̀;Tan Du;Tân Dư;Xinyu;Xinyu Shi;shynyw;sin-wi si;xin yu;xin yu shi;Синьюй;شینیو;新余;新余市;新喻;신위 시; +city::1788522;Hancheng;Hancheng;Hsin-yeh;Hsin-yeh-hsien;Sin-ye-hsien;Sinyeh-hsien;Xinye;han cheng;汉城; +city::1788534;Xinyang;Czinan';Hsin-yang;Hsin-yang-hsien;Hsin-yang-shih;Sinyang;Sinyang-hsien;XYW;Xinyang;Цзинань; +city::1788572;Nangandao;Hsin-hsiang;Hsin-hsiang-hsien;Hsin-hsiang-shih;Hsinghsiang;Nangandao;Sin'sjan;Singsieng;Sinsiang-hsien;Xinxiang;nan gan dao;Синьсян;南干道; +city::1788618;Xintai;Hsin-t'ai;Hsin-t'ai-hsien;Hsin-t’ai;Hsin-t’ai-hsien;Hsing-t'ai;Hsing-t’ai;Sintai;Sintaihsien;Sintoihsien;Xintai; +city::1788638;Xinshi;Ching-shan;Ching-shan-hsien;Jingshan;Kingshan;Kingshanhsien;Xinshi;xin shi;新市; +city::1788694;Xinpu;Hsien-p'u;Hsien-p’u;Hsin-hai-lien;Hsin-hai-lien-shih;Hsin-p'u;Hsin-p'u-chen;Hsin-p’u;Hsin-p’u-chen;Lianyungang;Lien-yun-chiang;Lien-yun-chiang-shih;Lien-yun-kang;Lien-yün-chiang;Lien-yün-chiang-shih;Lien-yün-kang;Sinpuchen;Tsin-pu;Xinpu;lian yun gang;lian yun gang shi;lyen-wingang;xin pu;ليەنيۈنگاڭ شەھىرى;新浦;连云港;连云港市;連雲港;連雲港市;롄윈강; +city::1788816;Xinji;Hsin-chi;Hsin-chi-chen;Shu-lu-hsien;Shulu;Sin'tszi;Sin’tszi;Xinji; +city::1788852;Xining;Gorad Sinin;Hsi-ning;Hsi-ning-shih;Hszining;Sa-ning;Se-leng-chhi;Se-lêng-chhī;Shinin;Shining shehiri;Si-nen-su;Si-ning;Sihningz;Siniin;Sinin;Sining;Sining-hsien;Siningas;Siningfu;Sinino;Sî-nèn-sṳ;Să̤-nìng;Tay Ninh;Tây Ninh;XNN;Xining;Xining Shi;shynyng;shynyngh;sinin;sining si;sininga;sinini;synyng;xi ning;xi ning shi;Горад Сінін;Синиин;Синин;Сининг;Сінін;Шинин;שינינג;شينينغ;شینینگ;शिनिंग;ཟི་ལིང་།;სინინი;西宁;西宁市;西寧;西寧市;시닝 시; +city::1788869;Shangmei;Hsin-hua;Hsin-hua-hsien;Shangmei;Sinhwa;Sinhwa-hsien;Xinhua;shang mei;上梅; +city::1788927;Xingtai;Chin-t'ai;Chin-t’ai;Heng-tai-chhi;Hing-dai;Hinh GJai;Hsing-t'ai;Hsing-t'ai-hsien;Hsing-tai-shih;Hsing-t’ai;Hsing-t’ai-hsien;Hêng-tâi-chhī;Hìng-dài;Hình Đài;Setay;Shun'de;Shun-te;Shunteh;Shuntehfu;Shun’de;Sing-tchaj;Singtai;Singtaj;Sintaj;XNT;Xingtai;Yingtaihsien;kei tai shi;shngtayy;shyngtay;singtai si;xing tai;xing tai shi;Сингтај;Синтай;Сінтай;شنگتائی;شینگتای;ケイ台市;邢台;邢台市;싱타이 시; +city::1789065;Ankang;AKA;An-k'ang-hsien;An-k’ang-hsien;Ankan;Ankang;Hingan;Hinganfu;Hsing-an;Xing'an;Xing’an;an kang;an kang shi;Анкан;安康;安康市; +city::1789118;Xindian;Hsin-tien;Hsingtien;Sintien;Xindian; +city::1789137;Xindi;Honghu;Hsin-ti;Hsin-ti-chen;Hung-hu;Jingsee;Shin-ti;Sing Ti;Singti;Sinti;Xindi; +city::1789176;Feicheng;Fei-ch'eng-hsien;Fei-ch’eng-hsien;Feicheng;Feychen;Xincheng; +city::1789273;Sanshui;Hsi-man;Hsi-nan-chen;Hsin-nan;Sainam;Sainan;Sanshui;Xinan;san shui;三水; +city::1789289;Ximei;Ch'i-mei-chen;Ch'i-wei;Ch’i-mei-chen;Ch’i-wei;Naman;Nan'an;Nan-an-hsien;Nan’an;Ximei;Xizhai;xi mei;西美; +city::1789427;Wacheng;Hsi-hua;Hsi-hua-hsien;Sihwahsien;Sikhua;Wacheng;Xihua;wa cheng;娲城; +city::1789462;Xihe;Hsi-ho;Hsi-ho-chen;Sihochen;Xihe;Xihe Zhen;xi he;xi he zhen;淅河;淅河镇; +city::1789647;Xichang;Hsi-ch'ang;Hsi-ch'ang-hsien;Hsi-ch’ang;Hsi-ch’ang-hsien;Ning-yuan;Ning-yüan;Ningyuanfu;Sichan;Sichang;Sichanghsien;XIC;Xichang;sichang;xi chang;xi chang shi;Сичан;西昌;西昌市;ꀒꎂ;시창; +city::1789693;Xiazhuang;Hsia-chuang;Hsia-chuang-chen;Linshu;Xiazhuang; +city::1789703;Xiazhen;Hsia-chen;Weishan;Xiazhen;Xiazhencun; +city::1789799;Xiashi;Hai-ning-hsien;Haining;Hsia-shih;Hsia-shih-chen;Siashih;Xiashi;Xiashi Jiedao;xia shi;xia shi jie dao;硖石;硖石街道; +city::1789897;Zijinglu;Gongyi;Hsiao-i;Hsiao-i-chen;Kung-hsien;Xiaoyi;Zijinglu;zi jing lu;紫荆路; +city::1789945;Xiaoweizhai;; +city::1789998;Xiaoshan;Hsiao-chan;Hsiao-chi-shan;Hsiao-shan;Hsiao-shan-hsien;Hsiao-shan-hsien-ch'eng;Hsiao-shan-hsien-ch’eng;Siaoshan;Siaoshanhsien;Sjaoshan';Xiaoshan;Xiaoshan Xian;xiao shan;xiao shan xian;Сяошань;萧山;萧山县; +city::1790100;Xiaolingwei;Hsiao-ling-wei;Xiaolingwei;Xiaolingwei Jiedao;xiao ling wei;xiao ling wei jie dao;孝陵卫;孝陵卫街道; +city::1790254;Xiaogan;Hau-gang;Hau-kam-chhi;Hieu Cam;Hiếu Cảm;Hsiao-kan;Hsiao-kan-hsien;Hàu-kám-chhī;Háu-gāng;Siao-kan;Siaokan;Siaokanhsien;Sjaogan';XJW;Xiaogan;shyawgan;syaogan si;xiao gan;xiao gan shi;Сяогань;شياۋگەن شەھىرى;شیاوگان;孝感;孝感市;샤오간 시; +city::1790353;Xianyang;Ham Duong;Ham-iong-chhi;Hang-iong;Hsien-yang;Hsien-yang-hsien;Hsien-yang-shih;Hszienjang;Hàm Dương;Hàng-iòng;Hâm-iông-chhī;San'jan;Sianjangas;Sien-jang;Sienjan;Sienyanghsien;Sjan'jan;Sjanjang;Sjanjango;Syanyan;Xianyang;Xianyang Shi;seiy n hyang;shyanyang;syen-yang si;xian yang;xian yang shi;Ŝjanjango;Саньян;Сиенян;Сяньян;Сјанјанг;شیانیانگ;شیان‌یانگ;เสียนหยาง;咸阳;咸阳市;咸陽;咸陽市;셴양 시; +city::1790371;Xiantao;Hsien-t'ao-chen;Hsien-t’ao-chen;Mianyang;Mien-yang;Mien-yang Hsien;Sientaochen;XTQ;Xiantao;Xiantaozhen; +city::1790379;Xianshuigu;Hsien-shui-ku;Jinnan;Jinnan Qu;T'ien-ching;T'ien-ching-hsien;T’ien-ching;T’ien-ching-hsien;Xianshuigu;Xianshuigu Zhen;jin nan;jin nan qu;xian shui gu;xian shui gu zhen;咸水沽;咸水沽镇;津南;津南区; +city::1790392;Xiannu;Chiang-tu;Hsien-nu-chen;Hsien-nu-miao;Hsien-nu-miao-chen;Hsien-nü-chen;Hsien-nü-miao;Hsien-nü-miao-chen;Jiangdu Shi;Siennumiao;Siennümiao;Xiannu;Xiannumiao;Xiannü;Xiannümiao;jiang dou shi;xian nu;仙女;江都市; +city::1790396;Xianning;Hsien-ning;IUO;Sjan'nin;Xianning;Сяньнин; +city::1790413;Xianju;Hsien-chu;Hsien-chu-hsien;Hsien-chu-hsien-ch'eng;Hsien-chü;Hsien-chü-hsien;Hsien-chü-hsien-ch’eng;Sienku;Sienkuhsien;Sienkü;Xianju;xian ju;仙居; +city::1790437;Zhuhai;Chau Hai;Chu Hai;Chu Hải;Chu-hai;Chu-hai-chhi;Chu-hoi-su;Chu-hái-chhī;Chzhukhaj;Châu Hải;Chû-hói-sṳ;Cio-hai;Ciŏ-hāi;Cu-chaj;Dzhukhaj;Dzukhaj;Guhaj;Heung chau;Hsiang-chou;Hsiang-chou-chen;Hsiang-chou-fou;Huengchow;Juxey shehiri;Xiangzhou;ZUH;Zhuhai;juhai si;jwhay;zhu hai;zhu hai shi;zwhay;Ču-chaj;Ĝuhaj;Џухај;Джухай;Чжухай;جوهای;زوهاي;ژوہوئی;珠海;珠海市;주하이 시; +city::1790451;Wenxing;Hsiang-yin;Hsiang-yin-hsien;Siang-Yin;Siangyin;Siangyinhsien;Wenxing;Xiangyin;Xiangyin Xian;wen xing;xiang yin xian;文星;湘阴县; +city::1790471;Xiangxiang;Hsan-shan;Hsiang-hsiang;Hsiang-hsiang-hsien;Siangsiang;Siangsianghsien;Siong-hiong-su;Siong-hiông-sṳ;Tuong Huong;Tương Hương;Xiangxiang;syangsyang si;xiang xiang;xiang xiang shi;湘乡;湘乡市;湘郷市;샹샹 시; +city::1790492;Xiangtan;Hsiang-t'an-ch'eng;Hsiang-t'an-hsien;Hsiang-t'an-shih;Hsiang-tan;Hsiang-t’an-ch’eng;Hsiang-t’an-hsien;Hsiang-t’an-shih;Siang-tchan;Siangtan;Siangtanhsien;Siong-tang;Siong-tham-chhi;Siong-tham-su;Siong-thâm-chhī;Siong-thâm-sṳ;Siŏng-tàng;Sjangtan;Sjantan;Sjantan';Tuong GJam;Tương Đàm;Xiangtan;Xiangtan Shi;shyangtan;syangtan si;xiang tan;xiang tan shi;Сянтан;Сянтань;Сјангтан;شیانگتان;სიანტანი;湘潭;湘潭市;샹탄 시; +city::1790587;Xiangyang;Fancheng;Fancheng Zhen;Hsiang-fan;Hsiang-yang;Hsiang-yang-hsien;Siangfan;Siangyang;Siangyang-hsien;Sjanfan';XFN;Xiangfan;Xiangfan Shi;Xiangyang;Xiangyang Shi;Xiangyangfu;fan cheng;fan cheng zhen;xiang fan;xiang fan shi;xiang yang;xiang yang fu;xiang yang shi;Сянфань;شياڭفان شەھىرى;樊城;樊城镇;襄樊;襄樊市;襄阳;襄阳市;襄阳府; +city::1790601;Xiangcheng Chengguanzhen;Hsiang-ch'eng;Hsiang-ch'eng-hsien;Hsiang-ch’eng;Hsiang-ch’eng-hsien;Xiangcheng;Xiangcheng Chengguanzhen;xiang cheng;xiang cheng cheng guan zhen;襄城;襄城城关镇; +city::1790630;Xi'an;Ch'ang-an;Ch'ang-an-hsien;Ch’ang-an;Ch’ang-an-hsien;Hsi Gnan Fu;Hsi-an;Hsi-an-shih;Hsi-ching;Hsi-ching-shih;Hsingan;SIA;Si-Gan-Fu;Sian;Sian';Siana;Sianas;Sianfu;Siano;Siaņa;Siking;Singan;Tay An;Tây An;Xi'an;Xi'an - xi an;Xi'an - 西安;Xi'an Shi;Xian;Xi’an;Xi’an Shi;Xī'ān;si xan;sian si;xi an;xi an shi;Ŝiano;Сиань;شىئەن شەھىرى;ซีอาน;西安;西安市;시안 시; +city::1790645;Xiamen;A-muong;Amoy;E-mng-chhi;Ha Mon;Ha-mun-su;Ha-mùn-sṳ;Hiyamin;Hsia-men;Hsia-men-shih;Hsziamen;Hạ Môn;Shamen;Sia-men;Siamen;Siamenas;Sjamehn';Sjamen;Sjamen';Sjamun;Sjamyn';Ssu-ming;Ssu-ming-hsien;Szeming-hsien;XMN;Xiamen;Xiamen - sha men;Xiamen - 厦门;Xiamen Shi;seiy he min;sha men;sha men shi;shyamn;shyamyn;siamini;syameon si;Â-muòng;Ē-mn̂g-chhī;Σιαμέν;Сямень;Сямън;Сямынь;Сямэнь;Сјамен;שיאמן;شيامن;شيامېن شەھىرى;شیامن;شیامین;เซี่ยเหมิน;სიამინი;厦门;厦门市;廈門;廈門市;샤먼 시; +city::1790840;Wuzhou;Ng-chu-su;Ngo Chau;Ngo-chiu-chhi;Ngouzcouh;Ngu-ciu;Ngô Châu;Ngô͘-chiu-chhī;Ngù-ciŭ;Ts'ang-wu;Ts'ang-wu-hsien;Ts’ang-wu;Ts’ang-wu-hsien;Uchzhou;Vudzou;WUZ;Wu-chou;Wu-chou-shih;Wu-cou;Wu-čou;Wuchow;Wuzhou;ujeou si;wazhw;wu zhou;wu zhou shi;wwzhww;Ǹg-chû-sṳ;Вуџоу;Учжоу;واژو;ووژوؤ;ووژوو;梧州;梧州市;우저우 시; +city::1790885;Wuyang;Wu-yang-chi;Wuyang; +city::1790894;Wuxue;Guangji;Kuang-chi;Kuang-chi-hsien;Wu-hsueh;Wu-hsueh-chen;Wu-hsüeh;Wu-hsüeh-chen;Wuhiutsun;Wusueh;Wuxue;Wuxue Jiedao;wu xue;wu xue jie dao;武穴;武穴街道; +city::1790923;Wuxi;Bu-sek-chhi;Bû-sek-chhī;Gorad Usi;U-sek;Usi;Usis;Vo Tich;Vuhszi;Vusi;Vusio;Vuzsiz;Vuŝio;Vô Tích;WUX;Wu-hsi;Wu-hsi-hsien;Wu-hsi-shih;Wu-si;Wusih;Wusih-hsien;Wusihsien;Wuxi;Wuxi Shi;usi si;vukasi;wu xi;wu xi shi;wwshy;wwsy;xu si;Ù-sék;Вуси;Горад Усі;Уси;Усі;Үshi;Үши;וושי;ووشي;ووشی;ۋۇشى شەھىرى;ਵੁਕਸੀ;อู๋ซี;ཝུའུ་ཞི།;无锡;无锡市;無錫;無錫市;우시 시; +city::1791056;Dongyang;Dongyang;Dongyang Shi;Tung-yang;Tung-yang-hsien;Tung-yang-hsien-ch'eng;Tung-yang-hsien-ch’eng;Wuning;dong yang;dong yang shi;东阳;东阳市; +city::1791121;Changde;CGD;Cangde;Cchang-te;Ch'ang-te;Ch'ang-te-ch'eng;Ch'ang-te-hsien;Ch'ang-te-shih;Chandeh;Changde;Changde Shi;Changteh;Changteh-hsien;Ch’ang-te;Ch’ang-te-ch’eng;Ch’ang-te-hsien;Ch’ang-te-shih;Siong-daik;Siong-tek-chhi;Siòng-dáik;Siông-tek-chhī;Song-tet-su;Sòng-tet-sṳ;Thuong GJuc;Thường Đức;Wuling;chang de;chang de shi;changda;changdeo si;changdy;Čangdė;Čchang-te;Чангде;Чандэ;چانگدا;چانگدی;常徳;常徳市;常德;常德市;창더 시; +city::1791236;Wuhu;Bu-ho-chhi;Bû-hô͘-chhī;Ouhu;U-hu;Ukhu;Vu Ho;Vu Hồ;Vuhu;Vukhu;Vuĥu;WHU;Wu-chu;Wu-hu-hsien;Wu-hu-shih;Wuhu;Wuhu Shi;uhu si;waha;wu hu;wu hu shi;Ù-hù;Вуху;Уху;Վուհու;واها;ووہو;芜湖;芜湖市;蕪湖;蕪湖市;우후 시; +city::1791247;Wuhan;Bu-han-chhi;Bú-hàn-chhī;Gorad Ukhan';Gouchan;Owhan;U-hang;Uhan;Uhana;Uhanas;Uhaņa;Ukhan;Ukhan';Uxan;Vu Han;Vu-hon-su;Vuhan;Vuhani;Vuhano;Vujhan;Vukhan;Vú-hon-sṳ;Vũ Hán;WUH;Wu-chan;Wu-han-shih;Wuhan;Wuhan Shi;uhan si;ukhani;uuxan;vuhana;vukan;vukhana;wu han;wu han shi;wwhan;xu han;Ū-háng;Γουχάν;Вухан;Вухан балһсн;Горад Ухань;Ухан;Ухань;Үkhan';Үхань;Үһән;Ուհան;ווהאן;ووهان;ووھان;ووہان;ۋۇخەن شەھىرى;ܘܘܗܐܢ;वूहान;ਵੂਖ਼ਨ;வுகான்;വൂഹാൻ;อู่ฮั่น;ཝུའུ་ཧན་གྲོང་ཁྱེར།;ဝူဟန့်မြို့;უხანი;ዉሃን;武汉;武汉市;武漢;武漢市;우한 시;𐍅𐌿𐌷𐌰𐌽; +city::1791249;Wuhai;Hai-p'o-wan-shih;Hai-po-wan;Hai-p’o-wan-shih;Haibowan;O Hai;O-hai-chhi;O͘-hái-chhī;U-hai;Uhajus;Ukhaj;Vu-hoi-su;Vuhajo;Vû-hói-sṳ;WUA;Wu-chaj;Wu-hai-shih;Wuhai;hai bo wan;uhai si;wu hai;wu hai shi;wwhay;Ô Hải;Ŭ-hāi;Ухай;Үхай хот;ووهای;ووہائی;乌海;乌海市;海勃湾;烏海;烏海市;우하이 시; +city::1791325;Wuda;Bayinsai;Ud;Wu-ta;Wu-ta-shih;Wuda;Wuda Qu;ba yin sai;wu da;wu da qu;乌达;乌达区;巴音赛; +city::1791347;Wucheng;Wucheng;Wucheng Zhen;wu cheng;wu cheng zhen;五城;五城镇; +city::1791388;Wenzhou;On Chau;Un-chiu-chhi;Un-chiu-chhī;Ung-ciu;Uundzhou;Vehn'chzhou;Ven'chzhou;Vencsou;Vendzou;Vendžou;Vengou;Venĝou;Vun-chu-su;Vûn-chû-sṳ;WNZ;Wen-chou;Wen-chou-shih;Wen-cou;Wen-čou;Wenchow;Wenchow-fu;Wenju shehiri;Wentsjou;Wenzhou;Wenzhou Shi;Wénju shehiri;Yung-chia;Yung-chia-hsien;Yungkai;Yungkia;Yungkia-hsien;wen zhou;wen zhou shi;wntshw;wnzhw;wonjeou si;Ôn Châu;Ŭng-ciŭ;Веньчжоу;Венџоу;Вэньчжоу;Уънджоу;ونتشو;ونژو;温州;温州市;溫州市;원저우 시; +city::1791428;Wenshang;Wen-shang-hsien;Wenshang; +city::1791464;Wenling;T'ai-p'ing;Taipinghsien;T’ai-p’ing;Wen-ling-hsien;Wen-ling-hsien-ch'eng;Wen-ling-hsien-ch’eng;Wenlin;Wenling;wen ling;温岭; +city::1791536;Tianfu;Chiu-wen-teng;K'un-yu;K’un-yü;Tianfu;Tianfu Jiedao;Wen-teng;Wen-teng-ch'eng;Wen-teng-ch’eng;Wen-teng-hsien;Wencheng;Wendeng;Wendeng Shi;tian fu;tian fu jie dao;wen deng;wen deng shi;天福;天福街道;文登;文登市; +city::1791636;Weinan;Oi-nang;Ui-lam-chhi;Vehjnan';Veinan;Vejnan;Veynan;Vi Nam;Vị Nam;Wei-nan-hsien;Weinan;Weinan Shi;Wej-nan;waynan;wei nan;wei nan shi;weinan si;wyynan;Ôi-nàng;Ūi-lâm-chhī;Вејнан;Вэйнань;وئینان;واینان;渭南;渭南市;웨이난 시; +city::1791673;Weihai;Ui-hai;Ui-hai-chhi;Ui-hái-chhī;Uy Hai;Uy Hải;Vehjkhaj;Veihai;WEH;Wei-hai-shih;Wei-hai-wei;Wei-hai-wei-shih;Weihai;Weihai Shi;Wej-chaj;wei hai;wei hai shi;weihai si;wey hi;wyhay;Ŭi-hāi;Вэйхай;ویهای;وییہائی;ۋېيخەي شەھىرى;เวยไห่;威海;威海市;웨이하이 시; +city::1791681;Weifang;Duy Phuong;Duy Phường;I-hng-chhi;Vehjfan;Vejfang;WEF;Wei;Wei-fang-shih;Wei-hsien;Weifang;Wej-fang;i fang shi;wei fang;wei fang shi;weipang si;wyfang;Î-hng-chhī;Вејфанг;Вэйфан;ویفانگ;イ坊市;潍坊市;濰坊;웨이팡 시; +city::1791748;Wanxian;Wan;Wan-hsien;Wan-hsien-shih;Wanxian; +city::1791779;Wanning;Maning;Manning;Manyun;Van Leng;WXJ;Wan;Wan-ch'eng-chen;Wan-ch’eng-chen;Wan-hsien;Wan-ning-hsien;Wancheng;Wanning;Wanning Shi;wan cheng;wan ning;wan ning shi;wanning si;wannyng;واننینگ;万城;万宁市;万寧;万寧市;萬寧;완닝 시; +city::1792087;Yinzhu;Chiao-nan;Wang-ko-chuang;Wanggezhuang;Yinzhu;yin zhu;隐珠; +city::1792260;Wafangdian;Fu;Fu-hsien;Fuxian;Wa-fan-tien;Wa-fang-tien;Wa-fang-tien-chen;Wafangdian; +city::1792359;Huangshan;Chuang-san;Chuang-šan;Hoang Son;Hoàng Sơn;Huangshan;Huangshan City;Huangshan Shi;Khuanshan';N̂g-soaⁿ-chhī;T'un-ch'i;T'un-ch'i-chen;T'un-ch'i-shih;T'un-hsi;TXN;Tun'si;Tunki;Tunqi;Tunxi;Tunxi Qu;T’un-ch’i;T’un-ch’i-chen;T’un-ch’i-shih;T’un-hsi;Uong-sang;Uòng-săng;huang shan;huang shan shi;hwangsan si;hwangshan;tun xi;tun xi qu;Туньси;Хуаншань;هوانگشان;ہوآنگشان;ہوانگشان شہر;屯溪;屯溪区;黃山市;黄山;黄山市;황산 시; +city::1792516;Loushanguan;Loushanguan;Loushanguan Zhen;T'ung-tzu;T'ung-tzu-ch'eng;T'ung-tzu-hsien;Tongzi;Tongzi Xian;Tungtze;Tungtze-hsien;T’ung-tzu;T’ung-tzu-ch’eng;T’ung-tzu-hsien;lou shan guan;lou shan guan zhen;tong zi;tong zi xian;娄山关;娄山关镇;桐梓;桐梓县; +city::1792520;Tongzhou;T'ung;T'ung-chen;T'ung-chou;T'ung-chou-ch'u;T'ung-chou-shih;T'ung-hsien;T'ung-hsien-chen;Tingchow;Tongxian;Tongzhou;Tunchzhou;Tunsyan';Tunsyan’;T’ung;T’ung-chen;T’ung-chou;T’ung-chou-ch’ü;T’ung-chou-shih;T’ung-hsien;T’ung-hsien-chen;tong zhou;Тунчжоу;通州; +city::1792585;Fuding;Fu-ting;Fu-ting-hsien;Fuding;Tongshan;fu ding;福鼎; +city::1792592;Tongren;Kiangkowhsien;T'ung-jen;T'ung-jen-hsien;T'ung-yen;TEN;Tongren;Tongren Shi;T’ung-jen;T’ung-jen-hsien;T’ung-yen; +city::1792621;Wusong;T'ung-ling;T'ung-ling-hsien;Tongling;T’ung-ling;T’ung-ling-hsien;Wusong;Yuan-hsien-ch'eng;Yüan-hsien-ch’eng;tong ling;tong ling shi;wu song;五松;铜陵;铜陵市; +city::1792692;Tongchuan;San'tay;San-t'ai-hsien;San-t’ai-hsien;Santai;San’tay;T'ung-ch'uan;Tongchuan;Tunchuan;Tungchwan;Tungchwan-fu;T’ung-ch’uan;tong chuan;潼川; +city::1792892;Tianshui;THQ;Tianshui;Tiānshuǐ;tian shui;天水; +city::1792916;Tianpeng;P'eng;P'eng-hsien;Pengxian;Pensyan';Pensyan’;P’eng;P’eng-hsien;Tianpeng;tian peng;天彭; +city::1792947;Tianjin;T'ien-chin;T'ien-ching;T'ien-ching-shih;TSN;Tchien-tin;Tchien-ťin;Tehnd'iin;Thien Tan;Thien-tsin;Thiên Tân;Thiên-tsîn;Tiandzinas;Tianjin;Tianjin Shi;Tianjing;Tianjín;Tiantzin;Tiencin;Tiencsin;Tiendzin;Tientsin;Tiençin;Tjan'czin';Tjandzina;Tjangino;Tjanĝino;Tjaņdziņa;Tjencin;Tyantszin;T’ien-chin;T’ien-ching;T’ien-ching-shih;cheonjin;theiyn cin;ti'anjina;tian jin;tian jin shi;tiyanjin;tyanjina;tyanjn;tyanjyn;tyenjin si;tyyng'yn;Τιαντζίν;Тиендзин;Тэндьиин;Тяньцзинь;Тяньцзінь;Тјенцин;טיינג'ין;تيانجين;تيەنجىن شەھىرى;تیانجن;تیانجین;तिआंजिन;त्यांजिन;ਤਿਆਂਜਿਨ;தியான்ஜின்;ടിയാൻജിൻ;เทียนจิน;ཐན་ཅིན ་གྲོང་ཁྱེར།;ထျန်းကျင်းမြို့;ტიანძინი;天津;天津市;천진;톈진 시; +city::1793036;Chengtangcun;Chengtangcun;T'eng;T'eng-hsien;Tehnchzhou;Teng Xian;Tengzhou;Tengzhou Shi;T’eng;T’eng-hsien;cheng tang cun;teng xian;teng zhou;teng zhou shi;Тэнчжоу;滕县;滕州;滕州市;程堂村; +city::1793089;Taozhuang;T'ao-chuang;Taozhuang;T’ao-chuang; +city::1793230;Tantou;Tantou;Tantou Zhen;tan tou;tan tou zhen;潭头;潭头镇; +city::1793286;Tangzhai;Chu-tzu-chieh;Chü-tzu-chieh;Tang-chai;Tangzhai; +city::1793346;Tangshan;GJuong Son;T'ang-shan-chen;T'ang-shan-shih;TVS;Tangsanas;Tangsano;Tangshan;Tangŝano;Tangšanas;Tanshan;Tanshan';Tchang-san;Tchang-šan;Tongshan;T’ang-shan-chen;T’ang-shan-shih;tang shan;tang shan shi;tangasana;tangsan si;tangsana;tangshan;Đường Sơn;Таншан;Таншань;تانگشان;تاڭشەن شەھىرى;तांग्शान;ਤਾਂਗਸ਼ਾਨ;ടാങ്ഷാൻ;唐山;唐山市;탕산 시; +city::1793364;Tangping;Ho-t'ang;Ho-t’ang;T'ang-p'ing-hsu;Tangping;Tangping Zhen;T’ang-p’ing-hsü;tang ping;tang ping zhen;塘坪镇;塘平; +city::1793385;Tangjiazhuang;T'ang-chia-chuang;T'ang-chia-chuang-tzu;Tangjiazhuang;Tangkiachwang;T’ang-chia-chuang;T’ang-chia-chuang-tzu;tang jia zhuang;唐家庄; +city::1793419;Binhe;Binhe;Pi-yuan;Pi-yüan;T'ang-ho;T'ang-ho-hsien;Tanghe;T’ang-ho;T’ang-ho-hsien;bin he;滨河; +city::1793424;Tanggu;T'ang-ku;Taku;Tanggu;Tango;Tung-ku;T’ang-ku;tang gu;Танго;塘沽; +city::1793505;Taizhou;T'ai;T'ai-chou;T'ai-chou-shih;T'ai-hsien;T'ai-hsien-ch'eng;Tai-ciu;Taichow;Taitsjou;Taizhou;Taizhou Shi;Taizhou i Jiangsu;Tajchzhou;Tajdzhou;Tajdzou;Tajgou;Tajĝou;Tchaj-cou;Tchaj-čou;Teyju shehiri;Thai Chau;Thai-chiu-chhi;Thài-chiu-chhī;Thái Châu;Tái-ciŭ;T’ai;T’ai-chou;T’ai-chou-shih;T’ai-hsien;T’ai-hsien-ch’eng;YTY;tai zhou;tai zhou shi;taijeou si;tayyzhw jyangsw;tayzhw;Тайджоу;Тайчжоу;Тајџоу;تائیژو، جیانگسو;تایژو;泰州;泰州市;타이저우 시; +city::1793511;Taiyuan;Daiyienz;T'ai-yuan-shih;TYN;Tai-nguong;Taigiouan;Taijuan;Taijuana;Taijuaņa;Taiyuan;Taiyuan Shi;Taiyuan-fu;Taiyuenum;Taiyüan-fu;Tajjuan';Tajjuean;Tajjuen;Tajjüan;Tajuanas;Tajuano;Tayyuan;Tchaj-juean;Tchaj-jüan;Thai Nguyen;Thai-goan-chhi;Thài-goân-chhī;Thái Nguyên;Tái-nguòng;T’ai-yüan-shih;Yang-ch'u;Yang-ch’ü;Yangku;Yangkü;Yanka;ta'iyu'ana;tai yuan;tai yuan shi;taiwian si;tay ywan;tayy ywan;tayywan;thayyu'ana;thi hywn;Ταϊγιουάν;Таијуан;Тайюань;Тайюен;טאי-יואן;تائی یوآن;تائی‌یوان;تاي يوان;تاییوان;تەييۈەن شەھىرى;ताइयुआन;थाय्युआन;ਤਾਈਯੂਆਨ;ไท่หยวน;太原;太原市;타이위안 시; +city::1793533;Taixing;T'ai-hsing;T'ai-hsing-ch'eng;T'ai-hsing-chen;T'ai-hsing-hsien;Taihing;Taishing;Taixing;Taixing Shi;Taixing Zhen;T’ai-hsing;T’ai-hsing-chen;T’ai-hsing-ch’eng;T’ai-hsing-hsien;tai xing;tai xing shi;tai xing zhen;泰兴;泰兴市;泰兴镇; +city::1793700;Taishan;GJai Son;Hsin-ning;Sunning;Sunninghsien;Sünninghsien;Taicheng;Taicheng Jiedao;Taishan;Taishan Shi;Tajshan';Thoi-san-su;Thòi-sân-sṳ;Toishan;Toyshan;ZCA;tai cheng;tai cheng jie dao;tai shan;tai shan shi;taisan si;tayshan;tayyshan;Đài Sơn;Тайшань;טאישאן;تائشان;تائیشان;تايشان;تایشان;台城;台城街道;台山;台山市;타이산 시; +city::1793724;Tai'an;T'ai-an-hsien;T'ai-an-shih;Tai'an;Taianfu;Tai’an;Tajan';T’ai-an-hsien;T’ai-an-shih;Тайань; +city::1793743;Suzhou;Su-hsien;Suchow;Suchzhou;Suxian;Suzhou;su zhou shi;Сучжоу;شيۇجۇ شەھىرى;宿州市; +city::1793774;Suozhen;Huantai;So-chen;Suozhen;Suozhencun; +city::1793879;Suizhou;Suej-cou;Suej-čou;Suejdzou;Sui;Sui-chiu-chhi;Sui-ciu;Sui-hsien;Suichow;Suixian;Sujchzhou;Suî-chiu-chhī;Sùi-ciŭ;Tuy Chau;Tùy Châu;ssu-ijeou si;sui zhou;sui zhou shi;swyzhw;Суејџоу;Суйчжоу;سویژؤ;随州市;隨州;쑤이저우 시; +city::1793889;Suixi;Sui-ch'i;Sui-ch'i-k'ou;Sui-ch'i-shih;Sui-chi-chen;Sui-ch’i;Sui-ch’i-k’ou;Sui-ch’i-shih;Sui-hsi;Suixi;sui xi;濉溪; +city::1793899;Suicheng;Sui-ch'eng-chen;Sui-ch’eng-chen;Sui-ning-ch'eng;Sui-ning-ch’eng;Sui-ning-hsien;Suicheng;Suining; +city::1793900;Suining;Soi-ning;Suej-ning;Sui-leng-chhi;Sui-nen-su;Sui-ning-hsien;Suining;Sujnin;Suynin;Sôi-nìng;Súi-nèn-sṳ;Sūi-lêng-chhī;Toai Ninh;Toại Ninh;ssu-ining si;sui ning;sui ning shi;swynyng;Суйнин;سوئنینگ;سوینینگ;遂宁;遂宁市;遂寧;遂寧市;쑤이닝 시; +city::1794035;Songjiang;Songjiang;Songjiang Qu;Sunchiang;Sung-chiang;Sung-chiang-hsien;Sungkiang;Sungkiang-hsien;Sunkiang;Sunkiangfu;song jiang;song jiang qu;松江;松江区; +city::1794140;Sishui;Sishui;Ssu-shui;Ssu-shui-hsien;Szeshuihsien; +city::1794479;Laixi;Lai-hsi;Laixi;Laixi Shi;Shui-chi;Shui-kou-t'ou;Shui-kou-t’ou;Shuiji;Shuikowtow; +city::1794794;Shouguang;Chiu-shou-kuang;Shou-kuang;Shou-kuang-hsien;Shouguan;Shouguang;Showkwang;Шоугуан; +city::1794806;Shizuishan;Shih-tsui;Shih-tsui-shan;Shih-tsui-shan-shih;Shih-tsui-tzu;Shitszuyshan';Shitszuyshan’;Shizuishan; +city::1794825;Shizilu;Chu-nan;Chü-nan;Junan;Shih-tzu-lu;Shizilu; +city::1794903;Shiyan;Chap-ian-chhi;Cha̍p-ián-chhī;S-jen;Sek-ieng;Shih-yen;Shih-yen-chen;Shih-yen-shih;Shijan';Shijen;Shiyan;Shiyan Shi;Shujen;Sĕk-iēng;Thap Yen;Thập Yển;WDS;seuyen si;shi yan;shi yan shi;shyyan;Š-jen;Шиянь;Шијен;Шъйен;شییان;十堰;十堰市;스옌 시; +city::1794904;Shiyan;Shih-yen;Shijan;Shiyan;Шиян; +city::1794947;Shiwan;Shih-wan;Shiwan;Shiwan Jiedao;shi wan;shi wan jie dao;石湾;石湾街道; +city::1794971;Shitanjing;Shih-t'an-ching;Shih-t’an-ching;Shitanjing; +city::1795055;Shiqiao;P'an-yu-hsien;Panyu;P’an-yu-hsien;Shekkiu;Shih-ch'iao;Shih-ch'iao-chen;Shih-ch’iao;Shih-ch’iao-chen;Shikiu;Shiqiao;Shiqiao Jiedao;fan yu;shi qiao;shi qiao jie dao;市桥;市桥街道;番禺; +city::1795060;Shiqi;Chung-shan;Chung-shan-ku-chih;Heungschan;Heungshan;Hsiang-shan;Shekki;Shih-ch'i;Shih-ch'i-chen;Shih-ch’i;Shih-ch’i-chen;Shiqi;Shiqi Jiedao;Shiqizhen;Zhongshan;shi qi;shi qi jie dao;石岐;石岐街道; +city::1795166;Shima;Longhai;Lung-hai;Shih-ma;Shih-ma-chen;Shima;shi ma;Шима;石码; +city::1795184;Shilong;Shehlung;Sheklung;Shih-lung;Shilong;Shilong Zhen;shi long;shi long zhen;石龙;石龙镇; +city::1795196;Tongchuanshi;Deng-chiong;Dè̤ng-chiŏng;GJong Xuyen;Shih-li-p'u;Shih-li-p’u;Shilipu;T'ung-ch'uan;T'ung-ch'uan-shih;Tang-chhoan-chhi;Tchung-cchuan;Tchung-čchuan;Tongchuan;Tongchuanshi;Tunchuan';Tungchuan;Tâng-chhoan-chhī;T’ung-ch’uan;T’ung-ch’uan-shih;tong chuan;tong chuan shi;tungchwan si;twngchwan;Đồng Xuyên;Тунгчуан;Тунчуань;تونگچوان;銅川;銅川市;铜川市;퉁촨 시; +city::1795270;Shijiazhuang;Chen-t'ou;Chen-t’ou;Chentow;Chioh-ka-chng-chhi;Chio̍h-ka-chng-chhī;S'-tia-cuang;SJW;Shiczjachzhuan;Shih-chia-chuang;Shih-chia-chuang-shih;Shih-chuang-shih;Shih-men;Shih-men-shih;Shihjiazhuang;Shihkiachwan;Shihkiachwang;Shijiazhuang;Shijiazhuang Shi;Shitszyachzhuan;Shizhjazhuan;Shudzjadzhuan;Sicsiacsuang;Sidziadzuangas;Sidzjadzuana;Sigjaguango;Sioh-ga-cong;Sitziazouank;Siŏh-gă-cŏng;Swzgyahcuengh;Thach Gia Trang;Thạch Gia Trang;chux ceiy cwng;sa-cyacvanga;seujajwang si;sh-gyʼgwwʼng;shi jia zhuang;shi jia zhuang shi;shidziajuani;shyjyatshwangh;shyjyazhwang;sijiyajhu'anga;sizi'azu'anga;Ŝiĝjaĝŭango;Šidziadžuangas;Šidzjadžuana;Š’-ťia-čuang;Σιτζιαζουάγκ;Шижяжуан;Шицзячжуан;Шиђаџуанг;Шъдзяджуан;Շիցզյաչժուան;שה-גיאגוואנג;شىجياجۇاڭ شەھىرى;شيجياتشوانغ;شیجیاژوانگ;शिजियाझुआंग;ष-च्याच्वांग;ਸ਼ੀਜ਼ੀਆਜ਼ੂਆਂਗ;ฉือเจียจวง;შიძიაჯუანი;石家庄;石家庄市;石家荘;石家荘市;石家莊;石家莊市;스자좡 시; +city::1795565;Shenzhen;Bao'an;Chhum-chun-su;Chhṳ̂m-chun-sṳ;Gorad Shehn'chzhehn';Pao-an;Pao-an-hsien;SZX;Sen-cen;Sencsen;Sendzenas;Senjeno;Senzen;Sham Chun Hu;Shehn'chzhehn';Shen'chzhen';Shen-ch'uan;Shen-ch'uan-chen;Shen-ch'uan-hsu;Shen-ch'üan;Shen-ch'üan-chen;Shen-ch'üan-hsü;Shen-chen;Shen-chun;Shendzen;Shenzhen;Shiem Chun;Shumchun;Shumchün;Shundzhun;Tham Quyen;Thâm Quyến;Tschhimtschun;cenccen;sainazaina;sein cein;senacena;sencena;senjhena;seonjeon si;shen zhen;shen zhen shi;shensen shi;shynzhyn;shynzyn;simcheon;sng'n;Ŝenĵeno;Šen-čen;Šendženas;Šenžen;Горад Шэньчжэнь;Шеньчжень;Шенџен;Шънджън;Шэньчжэнь;שנג'ן;شن‌ژن;شينزين;شینژین;شېنجېن شەھىرى;शेन्झेन;षेंचेन;শেনচেন;ਸ਼ੈਨਜ਼ੈਨ;சென்ச்சென்;షెన్‌జెన్;เซินเจิ้น;深セン市;深圳;深圳市;선전 시;심천; +city::1795579;Yanta;Hsin;Hsin-hsien;Hsin-hsien-ch'eng;Hsin-hsien-ch’eng;Shen-hsien;Shenxian;Sinhsien;Yanta;yan ta;雁塔; +city::1795632;Shenjiamen;P'u-t'o;Putuo;P’u-t’o;San Ka Mun;Shen-chia-men;Shen-chia-men-chen;Shenjiamen;Shenjiamen Jiedao;Shenjiamenzhen;Shenkiamen;Sinkeamun;chen jia men;chen jia men jie dao;沈家门;沈家门街道; +city::1795816;Shashi;SHS;Sha-shih;Sha-shih-shih;Sha-sze;Shashi;Shasi;Shaze;Shazhe;Шаши; +city::1795842;Shaping;Gaohe;Hao-shan;Kao-hao;Kao-ho;Sha-p'ing;Sha-p'ing-chen;Sha-p'ing-hsu;Sha-p’ing;Sha-p’ing-chen;Sha-p’ing-hsü;Shaping;Shaping Jiedao;sha ping;sha ping jie dao;沙坪;沙坪街道; +city::1795855;Shaoxing;RNX;Sao-sing;Saosing;Shao-hsing;Shaohing;Shaohingfu;Shaosin;Shaosing;Shaoxing;Shawshin shehiri;Siau-heng-chhi;Sieu-hing;Siêu-hĭng;Siāu-heng-chhī;Sjaoxing;Thieu Hung;Thiệu Hưng;saosing si;shao xing;shao xing shi;shawksynj;shawshng;shawshyng;soheung;Ŝaosing;Šao-sing;Шаосин;Шаосинг;شاوشنگ;شاوشینگ;شاوكسينج;紹興;紹興市;绍兴;绍兴市;사오싱 시;소흥; +city::1795857;Shaowu;Shao-wu-hsien;Shaowu;shao wu;邵武; +city::1795874;Shaoguan;Ch'u-chiang;Ch'u-chiang-hsien;Chao-kuan;Ch’ü-chiang;Ch’ü-chiang-hsien;HSC;Kakong;Kiukianghsien;Kukiang;Kukong;Kukong-hsien;Kükiang;Kükong;Kükong-hsien;Sao-kuan;Saoguan;Seu-koan-su;Shao-chou;Shao-kuan;Shaoguan;Shaoguan';Shaokwan;Shiuchow;Shiukuan;Siau-koan-chhi;Sieu-guang;Siâu-koan-chhī;Sièu-guăng;Sèu-kôan-sṳ;Thieu Quan;Thiều Quan;saogwan si;shao guan;shao guan shi;shawgwan;Ŝaoguan;Šao-kuan;Шаогуан;Шаогуань;שאוגואן;شاؤگوآن;شاوگوان;韶关;韶关市;韶関市;韶關;韶關市;사오관 시; +city::1795919;Shancheng;Shan;Shan-hsien;Shancheng;Shanxian; +city::1795928;Shanwei;San Vi;San-mi-su;San-mî-sṳ;San-wej;Sang-muoi;Shan'vehj;Shanwei;Swabue;Sán Vĩ;Sáng-muōi;Sòaⁿ-bóe-chhī;san-wei si;shan wei;shan wei shi;shanwy;shanwyy;shanwyyy;Šan-wej;Шаньвэй;شانوئی;شانوی;شانویئی;汕尾;汕尾市;산웨이 시; +city::1795940;Shantou;SWA;San GJau;San-tchou;San-theu-su;Sang-tau;Santou;Santouo;Shan'tou;Shan-t'ou-shih;Shan-t’ou-shih;Shantou;Shantow;Sjantou;Swatow;Sán Đầu;Sáng-tàu;Sân-thèu-sṳ;Sòaⁿ-thâu-chhī;santeou si;saw thea;shan tou;shan tou shi;shantw;shantww;Ŝantoŭo;Šan-tchou;Šantou;Шантоу;Шаньтоу;שנטאו;شانتو;شانتوؤ;شەنتۇ شەھىرى;ซัวเถา;汕头;汕头市;汕頭;汕頭市;산터우 시; +city::1795941;Shanting;; +city::1796236;Shanghai;SHA;San'nkae;Sanchajus;Sangaj;Sangay;Sanghaj;Sanghay;Sanhaja;Sanhajo;Sanxay;Schanghai;Shang-hai;Shang-hai-shih;Shangai;Shangaj;Shanghai;Shanghai - shang hai;Shanghai - 上海;Shankhaj;Sjanghae;Sjanghai;Sjanghæ;Szanghaj;Thuong Hai;Thượng Hải;Xangai;cankay;sanghae;sanghai;seiynghi;shang hai;shang hai shi;shanghay;shanghhay;shanhai;zhong guo shang hai;Ŝanhajo;Şangay;Şanghay;Şanxay;Šanchajus;Šangaj;Šanghaj;Šanhaja;Σανγκάη;Шангај;Шанхай;שאנגחאי;شانغهاي;شانگهای;شاڭخەي;شاڭخەي شەھىرى;சாங்காய்;เซี่ยงไฮ้;შანჰაი;上海;上海市;中国上海;상하이;상해; +city::1796421;Shahecheng;Sha-ho;Sha-ho-ch'eng-kuan;Sha-ho-ch’eng-kuan;Sha-ho-hsien;Shahe;Shahecheng;Shahhsien;Shakhe; +city::1796556;Sanya;Gorad San'ja;SYX;Sam-a-chhi;Sam-a-chhī;Sama;Samah;San'ja;San-ah;San-ja;San-ya-chen;San-ya-chiang;San-ya-chiang-shih;Sang-a;Sanj;Sanya;Senya shehiri;Săng-ā;Tam A;Tam Á;Ya Xian;Ya-hsien;Yai-hsien;Yehsien;san ya;san ya shi;sanya;ssan-ya si;Горад Санья;Санья;سانيا;سانیا;ซานย่า;སན་ཡ་གྲོང་ཁྱེར།;三亚;三亚市;三亜市;三亞;싼야 시; +city::1796663;Sanming;SQJ;Sam-beng-chhi;Sam-bêng-chhī;Sam-min-su;San'min;San-ming;San-ming-hsien;San-ming-shih;San-yuan;San-yuan-hsien;San-yüan;San-yüan-hsien;Sang-ming;Sanming;Senming shehiri;Sâm-mìn-sṳ;Săng-mìng;Tam Minh;san ming;san ming shi;sanmng;sanmyng;ssanming si;Санминг;Саньмин;سانمنگ;سانمینگ;三明;三明市;싼밍 시; +city::1797038;Runing;Ju-nan;Ju-nan-hsien;Juning;Runan;Runing;ru ning;汝宁; +city::1797120;Fuqing;Fu-ch'ing;Fu-ch'ing-hsien;Fu-ch'ing-hsien-ch'eng;Fu-ch’ing;Fu-ch’ing-hsien;Fu-ch’ing-hsien-ch’eng;Fucin';Fuqing;Futsing;Putsinghsien;Rongcheng;Фуцинь; +city::1797121;Jieyang;Chieh-yang;Chieh-yang-hsien;Chieh-yung;Chien Yang;Czejan;Giek-iong;Giék-iòng;Jieyang;Kiat-iong-chhi;Kiat-iông-chhī;Kiehyang;Kityang;Kityang-hsien;Rongcheng;SWA;Tie-jang;Yet Duong;Yết Dương;jie yang;jie yang shi;jieyang si;jy yang;jyyyang;Ťie-jang;Цзеян;جی یانگ;جیئیانگ;جیه‌یانگ;掲陽市;揭阳;揭阳市;揭陽;지에양 시; +city::1797132;Rizhao;Donggang;Jichaohsien;Jih-chao;Jih-chao-hsien;Rijao;Rizhao;Rizhao Jiedao;dong gang;ri zhao;ri zhao jie dao;ri zhao shi;东港;日照;日照市;日照街道; +city::1797181;Renqiu;Jen-ch'iu;Jen-ch'iu-ch'eng-kuan;Jen-ch'iu-hsien;Jen-ch’iu;Jen-ch’iu-ch’eng-kuan;Jen-ch’iu-hsien;Jenkiu;Jenkiuhsien;Renqiu;Zhen'tsyu;Zhen’tsyu;ren qiu shi;任丘市; +city::1797264;Quzhou;Cchue-cou;Ch'u;Ch'u-chou;Ch'u-hsien;Ch'u-hsien-ch'eng;Chu-chow;Chuchowfu;Ch’ü;Ch’ü-chou;Ch’ü-hsien;Ch’ü-hsien-ch’eng;Cjujchzhou;Cu Chau;Cù Châu;Gu-ciu;Gṳ̀-ciŭ;JUZ;Ku-chiu-chhi;Kû-chiu-chhī;Quxian;Quzhou;chwijeou si;chywzhww;kw zhw;kwjaw;qu zhou;qu zhou shi;Čchü-čou;Цюйчжоу;كو زهو;چیوژوو;کوجاو;衢州;衢州市;취저우 시; +city::1797318;Qujing;Cchue-ting;Ch'u-ching;Ch'u-ching-hsien;Chiu-ch'u-ching;Chiu-ch’ü-ching;Ch’ü-ching;Ch’ü-ching-hsien;Cjujczin;Khiok-cheng-chhi;Khiok-chēng-chhī;Khuc Tinh;Khúc Tĩnh;Ku-tsing-fu;Kuoh-ceng;Kutsing;Kutsinghsien;Kuóh-cêng;Kü-tsing-fu;Kütsing;Nan-ning;Qujing;Qujing Hiria;chu cing;chwijing si;chwjng;qu jing;qu jing shi;Čchü-ťing;Цюйцзин;چوجنگ;ฉู่จิ้ง;曲靖;曲靖市;취징 시; +city::1797333;Qufu;Cchue-fu;Ch'u-fou;Ch'u-fou-hsien;Ch'u-fou-hsien-ch'eng;Ch'u-fu-hsien;Chu-fu;Chü-fu;Ch’u-fu-hsien;Ch’ü-fou;Ch’ü-fou-hsien;Ch’ü-fou-hsien-ch’eng;Cjujfu;Csuefu;Csüfu;Khuc Phu;Khúc Phụ;Kinfowhsien;Kufow;Küfow;Qufu;chwipu si;cufu;cuphu;qu fu shi;qwfw;tshywfw;tsiuipu;zwpw;Čchü-fu;Цюйфу;צופו;تشيوفو;قوفو;चूफ़ू;ചൂഫു;ციუიფუ;ጩፉ;曲阜市;취푸 시; +city::1797353;Quanzhou;Cchuean-cou;Ch'uan-chou;Ch'uan-chou-shih;Chhien-chu-su;Chhièn-chû-sṳ;Chin-chiang;Chin-chiang-hsien;Chinchew;Chinchu;Choan-chiu-chhi;Chuanchowfu;Chueenju shehiri;Chôan-chiu-chhī;Chüanchowfu;Chüenju shehiri;Ch’üan-chou;Ch’üan-chou-shih;Ciong-ciu;Ciuandzou;Ciòng-ciŭ;Cjuan'chzhou;JJN;Quantsjou;Quanzhou;Tsin-chiang;Tsingkianghsien;Tsinkiang;Tuyen Chau;Tuyền Châu;Zaitun;Zayton;che wiyn cow;chwanzhw;chwianjeou si;chwynzhw;kwanzhw;quan zhou;quan zhou shi;tshwantshw;Čchüan-čou;Čiuandžou;Цюаньчжоу;تشوانتشو;چوئنژو;چوانژو;کوانژو;เฉวียนโจว;泉州;泉州市;취안저우 시; +city::1797417;Wuxi;Ch'i-yang;Ch'i-yang-ch'eng;Ch'i-yang-hsien;Ch’i-yang;Ch’i-yang-ch’eng;Ch’i-yang-hsien;Kiyang;Kiyang-hsien;Qiyang;Wuxi;Wuxi Zhen;wu xi;wu xi zhen;浯溪;浯溪镇; +city::1797438;Zhuangyuan;Ch'i-hsia;Ch'i-hsia-hsien;Ch’i-hsia;Ch’i-hsia-hsien;Qixia;Qixia Shi;Tsisia;Zhuangyuan;qi xia shi;zhuang yuan;庄园;栖霞市; +city::1797535;Qiongshan;Ch'iung-chou;Ch'iung-shan;Ch'iung-shan-hsien;Ch’iung-chou;Ch’iung-shan;Ch’iung-shan-hsien;Hoihow;Kiung chow fu;Kiungchow;Kiungshan;Kiungshan-hsien;Qiongshan;Qiongzhou; +city::1797543;Qionghu;Qionghu;Yuan-chiang;Yuan-chiang-hsien;Yuanjiang Shi;Yuankiang;Yuankiang-hsien;Yuen Kong;Yüan-chiang;Yüan-chiang-hsien;Yüankiang;Yüankiang-hsien;qiong hu;yuan jiang shi;沅江市;琼湖; +city::1797551;Qinzhou;Cchin-cou;Ch'in;Ch'in-chou;Ch'in-chou-chen;Ch'in-chou-chuang-tsu-tzu-chih-hsien;Ch'in-hsien;Chinchow;Ch’in;Ch’in-chou;Ch’in-chou-chen;Ch’in-chou-chuang-tsu-tzu-chih-hsien;Ch’in-hsien;Cin'chzhou;Ginhcouh;Kham Chau;Khim-chiu-chhi;Khim-chiu-chhī;Khim-chu-su;Khâm Châu;Khîm-chû-sṳ;King-ciu;Kĭng-ciŭ;Qinzhou;Yamchow;Yamhsien;chinjeou si;chnzhww;kynzhw;qin zhou;qin zhou shi;Čchin-čou;Циньчжоу;چنژوؤ;چنژوو;کینژو;欽州;欽州市;钦州;钦州市;친저우 시; +city::1797575;Qinnan;Ch'in-nan;Ch'in-nan-ts'ang;Qinnancang; +city::1797595;Qinhuangdao;BPE;Cchin-chuang-tao;Ch'in-huang-tao;Ch'in-huang-tao-shih;Chin-hong-to-chhi;Ching Wang Tao;Chinwangtao;Chinxuangdaw shehiri;Chîn-hông-tó-chhī;Ch’in-huang-tao;Ch’in-huang-tao-shih;Cin'khuandao;Cing-huong-do;Cinhuangdao;Cinhuangdauo;Cinkhuandao;Cinkhuangdao;Cjinhuandao;Cjiņhuandao;Cìng-huòng-dō̤;Qinhuangdao;Qínhuángdǎo;SHP;Tan Hoang GJao;Tần Hoàng Đảo;chinhwangdao si;kynghwangdaw;qin huang dao;qin huang dao shi;tshnhwanghdaw;Ĉinhŭangdaŭo;Čchin-chuang-tao;Činhuangdao;Ћинхуангдао;Цинхуандао;Циньхуандао;Ціньхуандао;تشنهوانغداو;چینہوانگداو;کینگهوانگداو;秦皇岛;秦皇岛市;秦皇島;秦皇島市;친황다오 시; +city::1797658;Jinjiang;Ceng-gong;Ch'ing-yang;Ch'ing-yang-chen;Chin-chiang;Chin-kang-chhi;Chìn-kang-chhī;Ch’ing-yang;Ch’ing-yang-chen;Czin'czjan;Céng-gŏng;JJN;Jinjiang;Jinjiang Shi;Jìnjiāng;Qingyang;Qingyang Zhen;Tan Giang;Tsin-kong-su;Tsìn-kông-sṳ;Tấn Giang;jin jiang;jin jiang shi;jinjang si;jnjyang;jnjyang fwjyan;jynjyang;qing yang;qing yang zhen;Цзиньцзян;جنجیانگ;جنجیانگ، فوجیان;جینجیانگ;晉江;晋江;晋江市;青阳;青阳镇;진장 시; +city::1797793;Qingquan;Ch'i-shui;Ch'i-shui-hsien-ch'eng;Ch’i-shui;Ch’i-shui-hsien-ch’eng;Cincjuan';Hsi-shui;Hsi-shui-hsien;Kishui-hsien;Qingquan;Qingshui Zhen;Sishui;Xishui;Xishui Xian;qing quan;qing quan zhen;xi shui xian;Цинцюань;浠水县;清泉;清泉镇; +city::1797873;Huai'an;Ch'ing-chiang;Ch'ing-chiang-p'u;Ch'ing-chiang-shih;Ch’ing-chiang;Ch’ing-chiang-p’u;Ch’ing-chiang-shih;HIA;Huai'an;Huai-yin;Huai-yin-ch'eng;Huai-yin-ch’eng;Huai-yin-hsien;Huai-yin-shih;Huaiyin;Hwaiyin;Hwaiyin-hsien;Qingjiang;Tsingkiangpo;Tsinkiangpu; +city::1797929;Qingdao;Cching-tao;Ch'ing-tao;Ch'ing-tao-shih;Chheng-to-chhi;Chheng-tó-chhī;Chindao;Ching-do;Chĭng-dō̤;Ch’ing-tao;Ch’ing-tao-shih;Cindao;Cingdao;Cjindao;Csingtao;Qingdao;Qingdao Shi;Sindao;TAO;Thanh GJao;Thanh Đảo;Tsin'nktao;Tsingtao;Tsingtau;ching tea;chingdao si;chngڈaw;chyngdaw;chyng‌dayw;cingada'o;kigada'o;kuyintavo;qing dao;qing dao shi;tshynghdaw;zyngdʼw;Čching-tao;Čingdao;Τσινγκτάο;Ћингдао;Циндао;Ціндао;Чиндао;Чиңдау;Ցինդաո;צינגדאו;تشينغداو;چنگڈاؤ;چىڭداۋ شەھىرى;چینگداؤ;چینگ‌دائو;चिंगदाओ;ਕਿੰਗਦਾਓ;குயிங்தவோ;ชิงเต่า;ချင်းတောင်မြို့;青岛;青岛市;青島;青島市;칭다오 시; +city::1797945;Qingyuan;Cching-juean;Ch'ing-yuan;Ch'ing-yuan-hsien;Chheng-oan-chhi;Chheng-oán-chhī;Chhin-yen-su;Chhîn-yén-sṳ;Ching-uong;Chĭng-uōng;Ch’ing-yüan;Ch’ing-yüan-hsien;Cinujuan';Qingcheng;Qingyuan;Thanh Vien;Thanh Viễn;Tsingyuan;Tsingyun;Tsingyunhsien;Tsingyüan;Tsingyün;Tsingyünhsien;ching-wian si;chngywan;chyngywan;kyngwan;qing yuan;qing yuan shi;Čching-jüan;Цинъюань;چنگیوآن;چینگیوان;کینگوان;清远;清远市;清遠;清遠市;칭위안 시; +city::1798082;Hongqiao;Ch'i-tung;Ch’i-tung;Hongqiao;Hung-ch'iao;Hung-ch'iao-chen;Hung-ch'iao-shih;Hung-ch’iao;Hung-ch’iao-chen;Hung-ch’iao-shih;Hungkiao;Khuncjao;Qidong;hong qiao;Хунцяо;洪桥; +city::1798422;Puyang Chengguanzhen;K'ai-chou;Kaichow;K’ai-chou;P'u-yang-hsien;Puyan';Puyang;Puyang Chengguanzhen;Puyan’;P’u-yang-hsien;pu yang;pu yang cheng guan zhen;濮阳;濮阳城关镇; +city::1798425;Puyang;P'u-chiang;P'u-chiang-hsien-ch'eng;P'u-yang-chen;Pujiang;Pukiang;Pukianghsien;Puyang;Puyang Jiedao;P’u-chiang;P’u-chiang-hsien-ch’eng;P’u-yang-chen;pu yang;pu yang jie dao;浦阳;浦阳街道; +city::1798449;Putian;Buo-dieng;Buò-dièng;Hinghwa;Hinghwafu;Hsing-hua;P'u-t'ien;P'u-t'ien-hsien;P'u-t'ien-hsien-ch'eng;Pchu-tchien;Pho-chhan-chhi;Phu GJien;Phu-thien-su;Phô͘-chhân-chhī;Phù-thièn-sṳ;Phủ Điền;Putian;Putian Shi;Putjan';Putjen;Putyen shehiri;P’u-t’ien;P’u-t’ien-hsien;P’u-t’ien-hsien-ch’eng;ho tian;ho tian shi;pu tian;pu tian shi;putyen si;pwtyan;Путянь;Путјен;پوتیان;ホ田;ホ田市;莆田;莆田市;푸톈 시; +city::1798473;Puqi;P'u-ch'i;P'u-ch'i-hsien;Puchihhsien;Puqi;P’u-ch’i;P’u-ch’i-hsien; +city::1798480;Pumiao;P'u-ching;P'u-ching-chen;P'u-ching-hsu;P'u-maio;P'u-miao-chen;P'u-miao-hsu;Pu chi;Pumiao;Pumiao Zhen;P’u-ching;P’u-ching-chen;P’u-ching-hsü;P’u-maio;P’u-miao-chen;P’u-miao-hsü;Yongning;Yung-ning;Yung-ning-hsien;pu miao;pu miao zhen;蒲庙;蒲庙镇; +city::1798490;Pulandian;Adams;Hou-lung-fang;Hsin-chin;Huranten;P'u-lan-tien;P'u-lan-tien-chen;Po-lan-te;Pulandian;P’u-lan-tien;P’u-lan-tien-chen;Xinjin; +city::1798548;Poyang;Boyang;Jao-chou;Jaochow;P'o-yang-chen;P'o-yang-hsien;P'o-yang-hsien-ch'eng;Pojankhu;Poyang;Poyang Xian;Poyang Zhen;P’o-yang-chen;P’o-yang-hsien;P’o-yang-hsien-ch’eng;po yang;po yang xian;po yang zhen;Поянху;鄱阳;鄱阳县;鄱阳镇; +city::1798632;Pingyin;P'ing-yin-hsien;Pingyin;P’ing-yin-hsien; +city::1798634;Pingyi;P'ing-i;P'ing-i-chen;P'ing-i-chi;Pingyi;P’ing-i;P’ing-i-chen;P’ing-i-chi;Ta-p'ing-i;Ta-p’ing-i; +city::1798654;Pingxiang;Bing-hiong;Binh Huong;Bìng-hiŏng;Bình Hương;Dingsiang;P'ing-hsiang;P'ing-hsiang-chen;P'ing-hsiang-hsien;P'ing-hsiang-hsien-ch'eng;P'ing-hsiang-shih;PXG;Pching-siang;Pheng-hiong-chhi;Phin-hiong-su;Phêng-hiong-chhī;Phìn-hiông-sṳ;Pingsiang;Pingsiang-hsien;Pingsjang;Pingxiang;Pingxiang Shi;Pinsjan;P’ing-hsiang;P’ing-hsiang-chen;P’ing-hsiang-hsien;P’ing-hsiang-hsien-ch’eng;P’ing-hsiang-shih;ping xiang;ping xiang shi;pingsyang si;pngshyang;pyngshyang;Пингсјанг;Пинсян;پنگشیانگ;پینگشیانگ;萍乡;萍乡市;萍郷;萍郷市;萍鄉;핑샹 시; +city::1798713;Pingshan;Hui-tung;Huidong;Ping-shan-hsu;Ping-shan-hsü;Pingshan;ping shan;平山; +city::1798733;Pingnan;Pingnam;Pingnam-hsien;Pingnamyun;Pingnamyün;Pingnan;Pingnan Zhen;ping nan;ping nan zhen;平南;平南镇; +city::1798760;Pingliang;Bing-liong;Binh Luong;Bìng-liòng;Bình Lương;P'ing-liang-hsien;P'ing-liang-shih;Pching-liang;Peng-liang-chhi;Pilian;Pingliang;Pingliang Shi;Pinljan;Pinlyan;Pêng-liâng-chhī;P’ing-liang-hsien;P’ing-liang-shih;ping liang;ping liang shi;pinglyang si;pnglyang;Пинлян;Պիլիան;پنگلیانگ;平凉;平凉市;平涼;平涼市;핑량 시; +city::1798821;Pingdu;P'ing-tu;P'ing-tu-hsien;Pindu;Pingdu;P’ing-tu;P’ing-tu-hsien;Пинду; +city::1798827;Pingdingshan;Bing-ding-sang;Binh GJinh Son;Bìng-dīng-săng;Bình Đỉnh Sơn;Chu-ko-chen;Chu-ko-miao;P'ing-ting-shan;P'ing-ting-shan-shih;Pching-ting-san;Pching-ting-šan;Peng-teng-san-chhi;Pindinshan;Pindinshan';Pindinshan’;Pingdingsano;Pingdingshan;Pingdingsjan;Pingdingŝano;Pêng-téng-san-chhī;P’ing-ting-shan;P’ing-ting-shan-shih;Tekshi choqqiliq tagh shehiri;ping ding shan;ping ding shan shi;pingdingsan si;pyngdyngshan;Пингдингшан;Пиндиншан;Пиндиншань;پنگڈنگشان;پینگدینگشان;平頂山;平頂山市;平顶山;平顶山市;핑딩산 시; +city::1798946;Pengcheng;P'eng-ch'eng-chen;Penchenchzhen';Penchenchzhen’;Pengcheng;P’eng-ch’eng-chen; +city::1798998;Dadukou;Dadukou;Dadukou Jiedao;Dukou;Pan'chzhikhua;Panzhihua;Ta-tu-k'ou;Ta-tu-k’ou;Tu-k'ou;Tu-k'ou-shih;Tu-k’ou;Tu-k’ou-shih;da du kou;da du kou jie dao;Паньчжихуа;大渡口;大渡口街道; +city::1799348;Ningyang;Ning-yang-hsien;Ningyang;Ninyan; +city::1799352;Yutan;Ning-hsiang;Ning-hsiang-hsien;Ningsiang;Ningsiang-hsien;Ningxiang;Ningxiang Xian;Yutan;ning xiang xian;yu tan;宁乡县;玉潭; +city::1799383;Ninghai;Mou-p'ing;Mou-p'ing-hsien;Mou-p’ing;Mou-p’ing-hsien;Mowping;Muping;Ning-hai;Ninghai;Ninghai Jiedao;Ninghaichow;ning hai;ning hai jie dao;宁海;宁海街道; +city::1799384;Ninghai;Ning-hai-hsien;Ninghai;ning hai;宁海; +city::1799397;Ningbo;Chiang-pei-an;Gorad Ninbo;Leng-pho-chhi;Lêng-pho-chhī;NGB;Nen-po-su;Ninbo;Ning-hsien;Ning-po;Ning-po-shih;Ningbo;Ningbo Shi;Ningbó;Ningpo;Ninh Ba;Nèn-pô-sṳ;Nìng-pŏ̤;Yin-hsien;hning paw;nangbw;ning bo;ning bo shi;ningbo si;nngbw;nynghbw;Горад Нінбо;Нинбо;Нингбо;Нінбо;نانگبو;ننگبو;نىڭبو شەھىرى;نينغبو;หนิงปัว;宁波;宁波市;寧波;寧波市;닝보 시; +city::1799491;Neijiang;Lai-kang-chhi;Lāi-kang-chhī;Nehjczjan;Nei-chiang;Nei-chiang-hsien;Nei-chiang-shih;Neijiang;Neikiang;Neikianghsien;Nej-tiang;Nej-ťiang;Nejgjan;Nejĝjan;Noi Giang;Noi-geng;Nui-kong-su;Nui-kông-sṳ;Nô̤i-gĕ̤ng;Nội Giang;nayjyang;nei jiang;nei jiang shi;neijang si;Нејђанг;Нэйцзян;نائجیانگ;نایجیانگ;內江;内江;内江市;네이장 시; +city::1799552;Nanzhou;Nan;Nan Xian;Nan-hsien;Nanchowting;Nanxian;Nanzhou;nan xian;nan zhou;南县;南洲; +city::1799574;Nanzhang Chengguanzhen;Nan-chang;Nan-chang-hsien;Nanzhang;Nanzhang Chengguanzhen;nan zhang cheng guan zhen;南漳城关镇; +city::1799629;Nanyang;Lam-iong-chhi;Lâm-iông-chhī;NNY;Nam Duong;Nam Dương;Nan'jan;Nan-jang;Nan-yang-shih;Nang-iong;Nanjang;Nanyan;Nanyang;Nanyang i Henan;Nenyang shehiri;Nàng-iòng;nan yang;nan yang shi;nan-yang si;Наньян;Нанјанг;نانیانگ، ہینان;南阳市;南陽;南陽市;난양 시; +city::1799722;Nantong;Lam-thong-chhi;Lâm-thong-chhī;NTG;Nam Thong;Nam Thông;Nan'tun;Nan-t'ung;Nan-t'ung-hsien;Nan-t'ung-shih;Nan-tchung;Nan-t’ung;Nan-t’ung-hsien;Nan-t’ung-shih;Nang-tung;Nantong;Nantun;Nantung;Nentung shehiri;Nàng-tŭng;T'ung-chou;Tunchow;Tungchow;T’ung-chou;hna nthng;nan tong;nan tong shi;nantang;nantung si;nantwng;Нантун;Нантунг;Наньтун;نانتانگ;نانتونگ;หนานทง;南通;南通市;난퉁 시; +city::1799832;Pucheng;Fu-chang;Nanpu;Nanpu Zhen;P'u-ch'eng-hsien;Pucheng;Pucheng Xian;P’u-ch’eng-hsien;nan pu;nan pu zhen;pu cheng;pu cheng xian;南浦;南浦镇;浦城;蒲城县; +city::1799846;Nanping;Lam-peng-chhi;Lâm-pêng-chhī;Nam Binh;Nam Bình;Nam-phin-su;Nan'pin;Nan-p'ing-hsien;Nan-p'ing-hsien-ch'eng;Nan-p'ing-shih;Nan-pching;Nan-p’ing-hsien;Nan-p’ing-hsien-ch’eng;Nan-p’ing-shih;Nang-bing;Nanping;Nenping shehiri;Nàm-phìn-sṳ;Nàng-bìng;Yenping;Yenping-fu;nan ping;nan ping shi;nanping si;nanpng;nanpyng;Наньпин;نانپنگ;نانپینگ;南平;南平市;난핑 시; +city::1799869;Nanning;Lam-leng-chhi;Lâm-lêng-chhī;NNG;Nam Ninh;Nam-nen-su;Namzningz;Nan'nin;Nan-ning;Nan-ning-shih;Nang-ning;Nanin;Naning;Naningas;Naningo;Nannin;Nannina;Nanning;Nanning Shi;Naņnina;Nàm-nèn-sṳ;Nàng-nìng;Yung-ning;Yung-ning-hsien;hnan hning;nan ning;nan ning shi;nananinga;nanning si;nannyng;nanyng;nanyngh;Нанин;Нанинг;Наньнин;Наньнін;ناننینگ;نانينغ;نانینگ;نان‌نینگ;نەننىڭ شەھىرى;नाननींग;หนานหนิง;ནན་ཉིང་གྲོང་ཁྱེར།;南宁;南宁市;南寧;南寧市;난닝 시; +city::1799897;Nanma;I-yuan;I-yüan;Nanma;Nanma Zhen;Yiyuan;nan ma;nan ma zhen;南麻;南麻镇; +city::1799908;Nanlong;Nan-pu;Nan-pu-hsien;Nanbu;Nanlong;nan long;南隆; +city::1799962;Nanjing;Gorad Nankin;Lâm-kiaⁿ-chhī;NKG;Nam Kinh;Nam-kin-su;Namkin;Nan'czin;Nan'zhin;Nan-ching;Nan-ching-shih;Nanchino;Nanchinum;Nandzing;Nandzjina;Nandžing;Nang-ging;Nanjing;Nanjing Shi;Nankijn;Nankin;Nankinas;Nanking;Nankingo;Nankín;Nanquim;Nanquin;Nanquín;Nantsin'nk;Nanzging;Naņdzjina;Nàm-kîn-sṳ;Nàng-gĭng;hnan cing;namgyeong;nan jing;nan jing shi;nanajiga;nanajinga;nancin;nanjina;nanjing;nanjing si;nanjinga;nanjng;nanjyng;nanjyngh;nʼngyng;Ναντσίνγκ;Горад Нанкін;Нанкин;Нанкинг;Нанкін;Наньжин;Наньцзин;Нәнҗиң;Նանկին;נאנגינג;نانجنگ;نانجينغ;نانجینگ;نەنجىڭ شەھىرى;नांजिंग;नानजिंग;नान्जिङ;ਨਾਨਜਿੰਗ;நாஞ்சிங்;നാൻജിങ്;หนานจิง;နန်ကျင်းမြို့;ნანკინი;南京;南京市;난징;난징 시;남경; +city::1800065;Nangong;Nan'gun;Nan-kung;Nan-kung-ch'eng-kuan;Nan-kung-ch’eng-kuan;Nan-kung-hsien;Nangong;Nan’gun; +city::1800088;Nanfeng;Hoikin;Hoikin-hsien;K'ai-chien;K'ai-chien-hsien;K’ai-chien;K’ai-chien-hsien;Nan-feng-chen;Nanfeng;Nanfeng Zhen;nan feng;nan feng zhen;南丰;南丰镇; +city::1800101;Nandu;Nan-tu;Nan-tu-hsu;Nan-tu-hsü;Nandu; +city::1800107;Nanding;Nan-ting;Nanding; +city::1800146;Nanchong;Lam-chhiong-chhi;Lâm-chhiong-chhī;NAO;Nam Sung;Nan'chun;Nan-cchung;Nan-ch'ung;Nan-ch'ung-hsien;Nan-ch'ung-shih;Nan-ch’ung;Nan-ch’ung-hsien;Nan-ch’ung-shih;Nan-čchung;Nanchong;Nanchung;Nang-chung;Nan’chun;Nàng-chṳ̆ng;Shun'tsin;Shun-ch'ing;Shun-ch’ing;Shunking;Shun’tsin;nan chong;nan chong shi;nanchung si;nanchwng;Нанчунг;Наньчун;نانچونگ;南充;南充市;난충 시; +city::1800163;Nanchang;Gorad Nan'chan;KHN;Lam-chhiong-chhi;Lâm-chhiong-chhī;Nam Xuong;Nam Xương;Nam-chhong-su;Nan'chan;Nan-cchang;Nan-ch'ang-hsien;Nan-ch'ang-shih;Nan-ch’ang-hsien;Nan-ch’ang-shih;Nan-čchang;Nancana;Nancangas;Nancano;Nanchan;Nanchang;Nanchang-fu;Nancianga;Nancsang;Nang-chiong;Nanzcangh;Nanĉano;Nančangas;Naņčana;Nàm-chhông-sṳ;Nàng-chiŏng;nan chang;nan chang shi;nanacanga;nanacham;nanachanna;nanchang;nanchang si;nantshangh;nʼnzʼng;Горад Наньчан;Нанчан;Нанчанг;Наньчан;נאנצאנג;نانتشانغ;نانچانگ;نەنچاڭ شەھىرى;नानचांग;নানছাং;ਨਾਨਛਾਂਙ;နန်ချောင့်မြို့;南昌;南昌市;난창 시; +city::1800430;Miyang;Mi-lo;Mi-lo-hsien;Mi-lo-hsien-i-tsu-tzu-chih-ch'u;Mi-lo-hsien-i-tsu-tzu-chih-ch’ü;Mile;Mile Xian;Miyang;mi lei;mi lei xian;mi yang;弥勒;弥勒县;弥阳; +city::1800498;Mingshui;Chang-ch'iu;Chang-ch’iu;Ming-shui-chen;Mingshui;Zhangqiu; +city::1800519;Mingguang;Chia-shan;Chia-shan-hsien;Jiashan;Ming-kuang;Ming-kuang-chen;Mingguang;Mingkwang; +city::1800521;Minggang;Ming-chiang;Ming-kang;Minggang;Mingkiang;Mintszyan; +city::1800627;Mianyang;Bian-iong-chhi;Biân-iông-chhī;MIG;Mianyang;Mianyang Shi;Mien Duong;Mien-chou;Mien-jang;Mien-yang;Mien-yang-hsien;Mienchow;Mieng-iong;Mienjan;Mièng-iòng;Miên Dương;Mjan'jan;Mjenjang;Myan'yan;Myan’yan;mian yang;mian yang shi;myanyang;myen-yang si;Миенян;Мяньян;Мјенјанг;ميەنياڭ شەھىرى;میانیانگ;綿陽;綿陽市;绵阳;绵阳市;몐양 시; +city::1800657;Mentougou;Men-t'ou-kou;Men-t'ou-kou-ho-t'an;Men-t’ou-kou;Men-t’ou-kou-ho-t’an;Mentougou;men tou gou;门头沟; +city::1800675;Mengyin;Meng-yin-hsien;Mengyin; +city::1800764;Mengcheng Chengguanzhen;Meng-ch'eng-hsien;Meng-ch’eng-hsien;Mengcheng;Mengcheng Chengguanzhen;meng cheng cheng guan zhen;蒙城城关镇; +city::1800779;Meizhou;Chia-ying;Kaying;MXZ;Mai Chau;Mai Châu;Mehjchzhou;Mei;Mei-ch'eng-chen;Mei-ch’eng-chen;Mei-hsien;Meixian;Meizhou;Meizhou Shi;Mej-cou;Mej-čou;Moi-chiu-su;Mui-chiu-chhi;Mui-ciu;Mòi-chiu-sṳ;Mùi-ciŭ;Mûi-chiu-chhī;mawzhwa;mei zhou;mei zhou shi;meijeou si;myyyzhww;myyzhw;Мэйчжоу;مئیژو;ماوژوا;میئیژوؤ;梅州;梅州市;메이저우 시; +city::1800829;Wuchuan;Hai-lu;Mei-lu-shih;Mei-mao;Meilu;Muiluk;Wuchuan;wu chuan;吴川; +city::1801401;Majie;Ma-chieh;Majie;Majiezi;ma jie;马街; +city::1801455;Zhijiang;Chih-chiang;Chikiang;GJN;Ma-chia-tien;Majiadian;Zhijiang; +city::1801582;Macheng;HBM;Ma-ch'eng-hsien;Ma-ch’eng-hsien;Macheng;Máchéng;ma cheng;ma cheng shi;macheong si;麻城;麻城市;마청 시; +city::1801615;Maba;Ch'u-chiang;Ch’ü-chiang;Ma-pa;Ma-pa-hsu;Ma-pa-hsü;Maba;Qujiang;ma ba;马坝; +city::1801722;Lushun;Lu-shun-k'ou;Lu-shun-k'ou-ch'u;Lu-shun-shih;Lueshun;Lueshunkou;Lushun;Lusunkchou;Lušunkchou;Lü-shun-k’ou;Lü-shun-k’ou-ch’ü;Lü-shun-shih;Lüshun;Lüshunkou;Por Arthur;Port Arthur;Port-Artur;Redzyun;Riojun;Ryojun;Rëdzyun;lu shun;lu shun kou qu;lwisun;port-artur;Порт-Артур;פורט ארתור;旅順;旅顺口区;뤼순; +city::1801757;Luqiao;Lu-ch'iao;Lu-ch'iao-chen;Lu-ch’iao;Lu-ch’iao-chen;Luqiao;Luqiaozhen;lu qiao;路桥; +city::1801792;Luoyang;Gorad Lajan;Honan;Honanfu;LYA;Lac Duong;Lo-yand;Lo-yang;Lo-yang-hsien;Lo-yang-shih;Lojan;Lojan shaary;Lojang;Lok-iong;Lok-iong-chhi;Lo̍k-iông-chhī;Luo-jang;Luojan;Luojang;Luojangas;Luojango;Luoyang;Lŏk-iòng;Lŭojango;Lạc Dương;lk xei yng;loiani;lu'oyanga;luo yang;luo yang shi;lwoyang si;lwwyang;lwyangh;lwywyang;Горад Лаян;Лоян;Лоян шаары;Луоян;Луојанг;לוו-יאנג;لوئویانگ;لوویانگ;لويانغ;لوياڭ شەھىرى;लुओयांग;ลกเอี๋ยง;ལུའོ་དབྱང་།;ლოიანი;洛阳;洛阳市;洛陽;洛陽市;뤄양 시; +city::1801797;Luoyang;Lo-yang;Lojan;Luoyang;luo yang;Лоян;洛阳; +city::1801799;Luoyang;Boluo;Fu-ch'eng;Fu-ch'eng-chen;Fu-ch’eng;Fu-ch’eng-chen;Hsien-ch'eng-chen;Hsien-ch’eng-chen;Lojan;Luoyang;Luoyang Zhen;Po-ch'eng-chen;Po-ch’eng-chen;Po-lo;Po-lo-hsien;Poklo;Poklohsien;luo yang;Лоян;罗阳; +city::1801850;Luorong;Chiu-lo-jung;Lo-jung;Lo-jung-hsien;Lo-jung-hsien-ch'eng;Lo-jung-hsien-ch’eng;Loyung-hsien;Luorong; +city::1801934;Luohe;Lo-he;Lo-ho;Lo-ho-chai;Lo-ho-shih;Lokheh;Lui-ho-chhi;Luo-che;Luohe;Luokhe;Lúi-hô-chhī;T'a-ho;T'a-ho-chai;Tak-o;Thap Ha;Tháp Hà;Ták-ò̤;T’a-ho;T’a-ho-chai;luo he;luo he shi;lwhy;lwoheo si;raku he shi;Лохэ;Луохе;لوهی;ラク河市;漯河;漯河市;뤄허 시; +city::1801983;Luocheng;Lo-ch'eng-p'u;Lo-ch’eng-p’u;Luocheng;luo cheng;罗城; +city::1802068;Lucheng;Lu-chiang;Lu-chiang-hsien;Lucheng;Lujiang;Lujiang Xian;Lukiang;Lukiang-hsien;lu cheng;lu jiang xian;庐城;庐江县; +city::1802171;Kangding;Dardo;K'an-ting;K'ang-ting;K'ang-ting-hsien;KGT;Kandin;Kangding;Ta-chien-lu;Tarchendo;Tatsienlu;Tatsientu;Кандин;དར་མད།;དར་མདོ།; +city::1802177;Lubu;Lu-pu;Lubu;Lubu Zhen;lu bu;lu bu zhen;禄步;禄步镇; +city::1802204;Luancheng;Luan'chen;Luan-ch'eng-ch'eng-kuan;Luan-ch'eng-hsien;Luan-ch’eng-ch’eng-kuan;Luan-ch’eng-hsien;Luancheng;Luan’chen;Lwanchenghsien; +city::1802238;Loudi;Lau GJe;Leu-di;Lo-te-chhi;Lou-ti;Lou-ti-chen;Lou-ti-shih;Loudi;Lâu Để;Lèu-dī;Lô͘-té-chhī;lou di;lou di shi;lwady;lwdy;lwodi si;Лоуди;لؤدی;لوادی;娄底市;婁底;婁底市;뤄디 시; +city::1802476;Longquan;I-men;I-men-hsien;Longquan;Longquan Zhen;Luncjuan';Yimen;Yimen Xian;long quan;yi men;yi men xian;Лунцюань;易门;易门县;龙泉; +city::1802550;Longgang;Longgang;Longgang Jiedao;Longkou;Lung-k'ou;Lung-kou-shih;Lung-k’ou;Lungkow;long gang;long gang jie dao;龙港;龙港街道; +city::1802788;Licheng;Li-ch'eng-chen;Li-ch’eng-chen;Li-yang-ch'eng;Li-yang-ch’eng;Li-yang-hsien;Licheng;Licheng Zhen;Liyang;Liyang Shi;li cheng;li cheng zhen;li yang shi;凓城;凓城镇;溧阳市; +city::1802875;Guankou;Guankou;Liu-yang-hsien;Liujang;Liuyang;Liuyang Shi;guan kou;liu yang;liu yang shi;Лиуянг;关口;浏阳;浏阳市; +city::1802940;Puning;Liu-sha-chen;Liu-sha-hsu;Liu-sha-hsü;Liusha;OPQ;P'u-ning-hsien;Pho Ninh;Phổ Ninh;Puning;P’u-ning-hsien;pu ning;pu ning shi;puning si;pwnyng;پونینگ;普宁;普宁市;普寧;普寧市;푸닝 시; +city::1803245;Lishui;Ch'u-chou;Chuchow;Chuchowfu;Chuzhoufu;Ch’u-chou;La-cui;Le Thuy;Le-chui-chhi;Li-shui-hsien;Li-suej;Li-šuej;Lishui;Lishui Shi;Lishui Xian;Lishui i Zhejiang;Lishuj;Lisjui;Lâ̤-cūi;Lē-chúi-chhī;Lệ Thủy;chu zhou fu;li shui;li shui shi;li shui xian;lisu-i si;lyshay;lyshwy;lyshwyy;Лишуй;ليشوي;لیشای;لیشوئی;丽水;丽水县;丽水市;处州府;麗水;麗水市;리수이 시; +city::1803266;Lintong;Lin'tun;Lin-t'ung;Lin-t'ung-hsien;Lin-t’ung;Lin-t’ung-hsien;Lintong;Lin’tun;Lishan;lin tong;临潼; +city::1803318;Linyi;I-chou;Ichow;Ichowfu;LYI;Lam Nghi;Lan-shan;Lim-ki-chhi;Lin'i;Lin-i;Lin-i-hsien;Lin-i-shih;Ling-gi;Linji;Linyi;Liuyihsien;Lâm Nghi;Lìng-gì;Lîm-kî-chhī;Yichow;lin yi;lin yi shi;lin-i si;lnyy;lynyay;Линьи;Линји;لنیی;لینیای;临沂;临沂市;臨沂;臨沂市;린이 시; +city::1803331;Linxia Chengguanzhen;Ho-chou;Khechzhou;Lin'sja;Lin'sya;Lin-hsia;Lin-hsia-hsien;Lin-hsia-shih;Lin-hsin;Linsia;Linxia;Linxia Chengguanzhen;Linxia Shi;Lin’sya;lin xia cheng guan zhen;lin xia shi;Линься;临夏城关镇;临夏市; +city::1803334;Linxi;Lin-hsi;Lin-hsi-chuang;Linsi;Linxi;lin xi;林西; +city::1803352;Linshui;; +city::1803364;Linqu;Lin-ch'u;Lin-ch'u-hsien;Lin-ch’ü;Lin-ch’ü-hsien;Linqu; +city::1803365;Linqiong;Ch'iung-lai;Chiung-lai-hsien;Chiungchou;Ch’iung-lai;Kiungchow;Kiunglaihsien;Kung-lai;Linqiong;Qionglai;Tsyunlay;lin qiong;临邛; +city::1803367;Qingnian;Lin-ch'ing;Lin-ch'ing-hsien;Lin-ch'ing-shih;Lin-ch’ing;Lin-ch’ing-hsien;Lin-ch’ing-shih;Linqing;Lintsing;Lintsingchow;Qingnian;lin qing;qing nian;临青;青年; +city::1803374;Linping;Lin-p'ing-chen;Lin-p’ing-chen;Linping;Linpingzhen;Yu-hang Hsien;Yuhang;Yü-hang Hsien;lin ping;lin ping zhen;临平;临平镇; +city::1803422;Linhai;LHC;Lin-hai-hsien;Linhai;T'ai-chou;Taichow;Taichowfu;Taizhou;T’ai-chou;lin hai;临海; +city::1803551;Lingcheng;Beiliu;Lingcheng;Paklow;Paklow-hsien;Pei-liu;Pei-liu-hsien;Pie-liu; +city::1803560;Lincheng;Hsien-ch'eng-chen;Hsien-ch’eng-chen;Limkao-hsien;Limko;Limkohsien;Limkou;Limkow;Lin'chehn;Lin-kae;Lin-kao;Lin-kao-chen;Lin-kao-hsien;Lincheng;Lincheng Zhen;Lingao;Lingao Xian;Lunkao;lin cheng;lin cheng zhen;lin gao xian;Линьчэн;临城;临城镇;临高县; +city::1803567;Linfen;LFQ;Lam Phan;Lim-hun-chhi;Lin'fehn';Lin'fyn';Lin-fen;Lin-fen-hsien;Linfen;Linfen Shi;Ling-hung;Lâm Phần;Lìng-hŭng;Lîm-hun-chhī;Pingyang;Pingyangfu;Saratsi;Yaodu Qu;lin fen;lin fen shi;linpeon si;lynfn;lynfyn;ping yang;ping yang fu;yao dou qu;Линфен;Линьфынь;Линьфэнь;لینفن;لینفین;临汾;临汾市;尧都区;平阳;平阳府;臨汾;臨汾市;린펀 시; +city::1803616;Xishan;Li-ling-ch'eng;Li-ling-ch’eng;Li-ling-hsien;Lilin;Liling;Liling Shi;Xishan;li ling;li ling shi;xi shan;Лилин;西山;醴陵;醴陵市; +city::1803782;Lichuan;Li-ch'uan-hsien;Li-ch’uan-hsien;Lichuan;Lichuan';Lichwan-hsien;Личуань; +city::1803791;Licheng;Licheng;Licheng Jiedao;Tseng-ch'eng;Tseng-ch'eng-hsien;Tseng-ch’eng;Tseng-ch’eng-hsien;Tsengching;Tsengshing;Zengcheng;ceng cheng;li cheng;li cheng jie dao;曾城;荔城;荔城街道; +city::1803834;Liaocheng;Liao-ccheng;Liao-ch'eng-hsien;Liao-ch'eng-shih;Liao-ch’eng-hsien;Liao-ch’eng-shih;Liao-čcheng;Liaoceng;Liaocheng;Liaoĉeng;Lieu Thanh;Lieu-siang;Liâu-siâⁿ-chhī;Lièu-siàng;Liêu Thành;Ljaochehn;Ljaocheng;Tung-ch'ang;Tung-ch’ang;Tungchangfu;liao cheng;liao cheng shi;lyaocheong si;lyawchyng;Љаоченг;Ляочэн;لیاوچینگ;聊城;聊城市;랴오청 시; +city::1803841;Lianzhou;Lianxian;Lianzhou;Lianzhou Zhen;Lien;Lien-chou;Lien-chou-chen;Lien-chou-ko-tsu-tzu-chih-hsien;Lien-hsien;Lien-yang;Linchow;Linhsien;lian zhou;lian zhou zhen;连州;连州镇; +city::1803842;Lianzhou;Hepu;Ho-p'u;Ho-p'u-hsien;Ho-p’u;Ho-p’u-hsien;Hoppo;Hoppohsien;Lianzhou;Lianzhou Zhen;Lien-chou;Lien-chou-chen;Limchow;Limchowfu;Linchow;lian zhou;lian zhou zhen;廉州;廉州镇; +city::1803886;Lianran;Anning;Anning Shi;Anning-chow;Lianran;Lianran Zhen;an ning;an ning shi;lian ran;lian ran zhen;安宁;安宁市;连然;连然镇; +city::1803936;Wuwei;Liang-chou;Liang-chow;Liangzhou;Wu-wei-hsien;Wuwei;Wuwei Shi;wu wei;wu wei shi;武威;武威市; +city::1803948;Liangxiang;Liang-hsiang;Liang-hsiang-chen;Liang-hsiang-hsien;Liangsiang;Liangxiang;Liangxiangzhen;Lyansyan;liang xiang;良乡; +city::1804120;Lianjiang;Lei-pei;Liancheng;Lianjiang;Lien-chiang;Lien-chiang-hsien;Limkong;Limkong-hsien;Lunkong;Shih-ch'eng;Shih-ch’eng;lian jiang;廉江; +city::1804153;Leshan;Chia-ting;Kiating;Kiatingfu;Lac Son;Le-san;Le-šan;Lehshan';Leshan;Lo-shan;Lo-shan-hsien;Lok-san-chhi;Lok-sang;Lo̍k-san-chhī;Lŏk-săng;Lạc Sơn;le shan;le shan shi;leosan si;lyshan;Лэшань;لیشان;乐山;乐山市;楽山市;樂山;러산 시; +city::1804162;Lengshuitan;Leng-shui-t'an-shih;Leng-shui-t'ang;Leng-shui-t’an-shih;Leng-shui-t’ang;Lengshuitan;Lengshuitanqu;leng shui tan;冷水滩; +city::1804169;Lengshuijiang;Lanh Thuy Giang;Leng-chiang;Leng-chiang-shih;Leng-shui-chen;Leng-shui-chiang;Leng-shui-chiang-shih;Lengshuijiang;Lãnh Thủy Giang;leng shui jiang;leng shui jiang shi;leongsu-ijang si;冷水江;冷水江市;렁수이장 시; +city::1804208;Leiyang;Lei-yang-hsien;Leiyang;lei yang;耒阳; +city::1804252;Lecheng;Lechang;Lecheng;Lecheng Jiedao;Lo-ch'ang;Lo-ch'ang-hsien;Lo-ch’ang;Lo-ch’ang-hsien;Loh Ch'ang;Loh Ch’ang;Lohchong-hsien;Lokcheon;Lokchong;le cheng;le cheng jie dao;乐城;乐城街道; +city::1804386;Laohekou;Guanghua;Ho-k'ou-chen;Ho-k’ou-chen;Kuang-hua;LHK;Lao-ho-k'ou;Lao-ho-k’ou;Laohekou;Laohokow;Lǎohékǒu;lao he kou;老河口; +city::1804430;Lanzhou;Kao-lan-hsien;Kaolan;LHW;Lan Chau;Lan Châu;Lan'chzhou;Lan'chzhou shaary;Lan'zhou;Lan-chiu-chhi;Lan-chou;Lan-chou-shih;Lan-cou;Lan-čou;Lanchjou;Lanchow;Lanchowfu;Lancsou;Landzhou;Landzou;Landžou;Lang-ciu;Langouo;Lantsjou;Lantsoou;Lanzcouh;Lanzhou;Lanzhou Shi;Lanĝoŭo;Laņdžou;Làng-ciŭ;Lân-chiu-chhī;hlan cow;lan zhou;lan zhou shi;lanazu;lanjeou si;lanjhu;lantshw;lanzhw;Λαντσόου;Ланджоу;Ланьжоу;Ланьчжоу;Ланьчжоу шаары;Ланџоу;لانتشو;لانزہو;لانژو;لەنجۇ شەھىرى;लान्झू;ਲਾਨਜ਼ੂ;หลานโจว;ལན་ཀྲོའུ།;兰州;兰州市;蘭州;蘭州市;란저우 시; +city::1804442;Lanxi;Lan-ch'i;Lan-ch'i-hsien;Lan-ch'i-hsien-ch'eng;Lan-ch’i;Lan-ch’i-hsien;Lan-ch’i-hsien-ch’eng;Lan-hsi;Lanxi; +city::1804451;Lianyuan;Lan-t'ien;Lan-t'ien-chen;Lan-t'ien-shih;Lan-t’ien;Lan-t’ien-chen;Lan-t’ien-shih;Lantian;Lianyuan;Lien Nguyen;Lien-yuan;Lien-yüan;Liên Nguyên;lian yuan;lian yuan shi;lyen-wian si;涟源;涟源市;漣源市;롄위안 시; +city::1804540;Langfang;An-tz'u;An-tz’u;Anci;LFA;Lanfan;Lang-fang-chen;Langfang;lang fang shi;Ланфан;廊坊市; +city::1804578;Weichanglu;I;I-hsien;Lai-chou;Lai-chow-fu;Laichow;Laizhou;Laizhou Shi;Weichanglu;Weichanglu Jiedao;Ye Xian;Yeh;Yehsien;Yixian;lai zhou;lai zhou shi;wen chang lu;wen chang lu jie dao;ye xian;掖县;文昌路;文昌路街道;莱州;莱州市; +city::1804586;Laiyang;Lai-yang-hsien;Lai-yank;Laiyang; +city::1804591;Laiwu;Chiu-lai-wu;Lai Vu;Lai-bu-chhi;Lai-wu-hsien;Laiwu;Laj-wu;Laju;Lâi-bû-chhī;lai wu;lai wu shi;laiu si;layww;Лайу;لائوو;莱芜市;莱蕪市;萊蕪;라이우 시; +city::1804609;Laibin;Lai Tan;Lai Tân;Lai-bing;Lai-pin;Lai-pin-chen;Lai-pin-chhi;Lai-pin-hsien;Laibin;Laiping;Laj-pin;Lajbin';Leizbingz;Loi-pin-su;Lài-bĭng;Lâi-pin-chhī;Lòi-pîn-sṳ;lai bin;lai bin shi;laibin si;laybn;laybyn;layybn;Лайбинь;لائبن;لائیبن;لایبین;來賓;来宾市;来賓市;라이빈 시; +city::1804645;Kunyang;Kunyang;P'ing-yang-hsien;P'ing-yang-hsien-ch'eng;Pingyang;P’ing-yang-hsien;P’ing-yang-hsien-ch’eng; +city::1804651;Kunming;Con Minh;Côn Minh;Gvwnhmingz;K'un-ming-hsien;K'un-ming-shih;KMG;Kchun-ming;Khun-beng-chhi;Khun-bêng-chhī;Kong-ming;Kounmink;Kuenming;Kun'min;Kun'min shaary;Kun'min';Kunmin;Kunmina;Kunming;Kunming Shi;Kunmingas;Kunmingo;Kuņmina;Kŏng-mìng;Kүn'min;K’un-ming-hsien;K’un-ming-shih;Yun-nan;Yunnanfu;Yün-nan;Yünnanfu;kanamiga;khunh ming;kun ming;kun ming shi;kunaminga;kunming si;kunminga;kwnmng;kwnmyng;kwnmyngh;qwnmyng;Κουνμίγκ;Куенминг;Кунмин;Куньмин;Куньмин шаары;Куньминь;Куньмін;Күньмин;Կունմին;קונמינג;كونمينغ;كۈنمىڭ شەھىرى;کونمنگ;کونمینگ;کون‌مینگ;कुनमिंग;कुन्मिंग;ਕਨਮਿੰਗ;คุนหมิง;ကူမင်းမြို့;კუნმინი;昆明;昆明市;쿤밍 시; +city::1804850;Kaiyuan;A-mi;Ami-hsien;Amichow;K'ai-yuan-hsien;Kaiyuan;Kajjuan';K’ai-yüan-hsien;kai yuan;Кайюань;开远; +city::1804874;Kaihua;Kaihua;Kaihwa;Kaihwafu;Wen-shan-hsien;Wenshan;kai hua;开化; +city::1804879;Kaifeng;Gorad Kajfehn;K'ai-feng-hsien;K'ai-feng-shih;Kai Feng;Kai-feng Fu;Kai-fêng Fu;Kai-hung;Kaifeng;Kajfehn;Kajfen;Kajfeng;Kajfyn;Kayfin;Kchaj-feng;Keyfeng shehiri;Keyféng shehiri;Khai Phong;Khai-hong-chhi;Khai-hong-chhī;Kăi-hŭng;K’ai-feng-hsien;K’ai-feng-shih;kai feng;kai feng shi;kaipeong si;kayfng;kayfngh;kayfyng;khi feing;Горад Кайфэн;Кайфен;Кайфын;Кайфэн;Кајфенг;קאיפנג;كايفنغ;کائفینگ;کایفنگ;ไคเฟิง;კაიფინი;ካይፈንግ;开封;开封市;開封;開封市;카이펑 시; +city::1804892;Juye;Chin-yeh;Chu-yeh;Chu-yeh-hsien;Chü-yeh;Chü-yeh-hsien;Juye;Juye Zhen;Kuyehhsien;ju ye;ju ye zhen;巨野;巨野镇; +city::1804979;Juegang;Chueh-chiang;Chueh-chiang-chen;Chueh-kang;Chuehkiang;Chüeh-chiang;Chüeh-chiang-chen;Chüeh-kang;Chüehkiang;Ju-tung;Juegang;Juegang Zhen;Juegangzhen;Rudong Xian;jue gang;jue gang zhen;ru dong xian;如东县;掘港;掘港镇; +city::1805179;Jiujiang;Chiu-chiang;Chiu-chiang-hsien;Chiu-chiang-shih;Ciuciang;Cuu Giang;Czjuczjan;Cửu Giang;Dzjudzjan;JIU;Jiujiang;Kiukiang;Kiukiang-hsien;Te-hua;Tiou-tiang;jiu jiang;jiu jiang shi;jujang si;Ťiou-ťiang;Ђуђанг;Дзюдзян;Цзюцзян;ཅིའུ་ཅང་།;九江;九江市;주장 시; +city::1805267;Jishui;Chi-shui;Chi-shui-chi;Jishui; +city::1805270;Qianzhou;Ch'ien-ch'eng;Chi-shou;Chi-shou-hsien;Ch’ien-ch’eng;Jishou;Jishou Shi;Kishow;Qianzhou;So-li;gan zhou;ji shou;ji shou shi;乾州;吉首;吉首市; +city::1805298;Jinzhou;Chin;Chin-chou;Chin-chou-chen;Chin-chow;Chin-hsien;Czin'chzhou;Jinxian;Jinzhou;Kin;Kinchow;Kinhsien;Kinshu;Kinsyu;Tschintschou;Цзиньчжоу; +city::1805334;Jinxiangzhen;Chin-chen-wei;Chin-chen-wei-ch'eng;Chin-chen-wei-ch’eng;Chin-hsiang;Jinxiang;Jinxiangzhen;Kinchenwei;Kinsiang;jin xiang;金乡; +city::1805379;Jinshi;Chin-shih;Ching-shih;Ching-shih-chen;Ching-shih-shih;Jinshi;Jinshi Shi;Tsingshih;jin shi;jin shi shi;津市;津市市; +city::1805408;Jinsha;Chin-sha;Chin-sha-chen;Czin'sha;Jinsha;Jinsha Zhen;Kinsha;Nan-t'ung;Nan-t'ung-hsien;Nan-t’ung;Nan-t’ung-hsien;Nantong;Tongzhou;Tongzhou Shi;jin sha;jin sha zhen;tong zhou;tong zhou shi;Цзиньша;通州;通州市;金沙;金沙镇; +city::1805505;Jinjiang;Ch'eng-mai New City;Ch'eng-mai-hsien;Chengmai;Chengmai Xian;Chin-chiang;Chin-chiang-chen;Chin-chiang-shih;Ching-mae;Chinkiang;Ch’eng-mai New City;Ch’eng-mai-hsien;Fa Hi;Jinjiang;Kimkang;Teng-mai-hsien;Tsingmai;Tsingmai-hsien;cheng mai xian;jin jiang;澄迈县;金江; +city::1805515;Jinji;Chin-chi;Chin-chi-hsu;Chin-chi-hsü;Jinji; +city::1805518;Jining;Ca-ning;Che-leng-chhi;Chi-ning;Chi-ning-hsien;Chi-ning-shih;Chè-lêng-chhī;Csining;Czinin;Cá̤-nìng;Gjining;JNG;Jining;Te Ninh;Ti-ning;Tsi-ning-hsien;Tsining;Tế Ninh;gynyng;ji ning;ji ning shi;jining si;jnyng;jynyng;Ĝjining;Ťi-ning;Цзинин;גינינג;جنینگ;جینینگ;济宁市;済寧市;濟寧;지닝 시; +city::1805528;Jinhua;Chin-hua;Chin-hua-hsien;Chin-hua-hsien-ch'eng;Chin-hua-hsien-ch’eng;Chin-hua-shih;Czin'khua;Ging-hua;Gĭng-huà;Jinhua;Jinhua Shi;Kim Hoa;Kim-fa-su;Kim-hoa-chhi;Kim-hoâ-chhī;Kinhwa;Kinhwa-hsien;Kinhwafu;Kîm-fà-sṳ;Tin-chua;jin hua;jin hua shi;jin hua xian;jinhwa si;jynhwa;Ťin-chua;Цзиньхуа;جنہوا;جينهوا;جینهوا;金华;金华市;金華;金華市;金華縣;진화 시; +city::1805540;Jingzhou;Chiang-ling;Chiang-ling-hsien;Ching-chou;Chingchou-fu;Czinchzhou;Dzindzhou;Ging-ciu;Gĭng-ciŭ;Jiangling;Jingtsjou;Jingzhou;Keng-chiu-chhi;Keng-chiu-chhī;Kiangling;Kiangling-hsien;Kingchow;Kingchowfu;Kingling;Kinh Chau;Kinh Châu;SHS;Ting-cou;jing zhou;jing zhou shi;jingjeou si;jngzhww;jyangzhw;Ťing-čou;Дзинджоу;Цзинчжоу;جنگژوو;جیانگژو;荆州市;荊州;荊州市;징저우 시; +city::1805563;Tianchang;Ching-ching;Ching-hsing;Ching-hsing-hsien;Ching-nan;Chiu-ching-hsing;Jingnan;Jingxing;Jiujingxing;Tianchang;Tianchang Zhen;Tsingsinghsien; +city::1805611;Jingmen;Ching-men;Ching-men-hsien;Czinmehn';Ging-muong;Gĭng-muòng;Jingmen;Keng-bun-chhi;Keng-bûn-chhī;King monn;King mönn;King-men-chow;Kingmen;Kingmen-hsien;Kinh Mon;Kinh Môn;Ting-men;jing men;jing men shi;jingmeon si;jngmyn;Ťing-men;Цзинмэнь;جنگمین;جىڭمېن شەھىرى;荆门市;荊門;荊門市;징먼 시; +city::1805618;Jingling;Jingling;T'ien-men;T'ien-men-hsien;Tianmen;T’ien-men;T’ien-men-hsien; +city::1805680;Jingdezhen;Ching-te-chen;Ching-te-chen-shih;Czindehchzhehn';Fou-liang;Fou-liang-hsien;Fowliang;Fowliang-hsien;JDZ;Jingdezhen;Jingdezhen Shi;Kingtechen;Kingteh;Kingtehchen;Kingtehchin;jing de zhen;jing de zhen shi;Цзиндэчжэнь;景徳鎮;景德镇;景德镇市; +city::1805733;Jinchang;Baijiazui;Czin'chan;Ging-chiong;Gĭng-chiŏng;JIC;Jinchang;Jinchang Shi;Jinchuan;Jinchuanzhen;Kim Xuong;Kim Xương;Kim-chhiong-chhi;Kim-chhiong-chhī;Tin-cchang;jin chang;jin chang shi;jinchang si;jnchang;Ťin-čchang;Цзиньчан;Ցզինչան;جنچانگ;金昌;金昌市;진창 시; +city::1805741;Jincheng;Ceng-siang;Chin-ch'eng;Chin-ch'eng-hsien;Chin-ch’eng;Chin-ch’eng-hsien;Chìn-siâⁿ-chhī;Czin'chehn;Céng-siàng;Dzinchun;Jincheng;Jincheng Shi;Tan Thanh;Tse-chou;Tseh-chow-fu;Tsehchow;Tsincheng;Tsinchenghsien;Tấn Thành;jin cheng;jin cheng shi;jincheong si;jnchyng;jynchn;Ђинченг;Дзинчън;Цзиньчэн;جنچینگ;جینچن;晉城;晋城;晋城市;진청 시; +city::1805753;Jinan;Ca-nang;Che-lam-chhi;Chi-nam-su;Chi-nan;Chi-nan-shih;Chi-nàm-sṳ;Chè-lâm-chhī;Cijnanz;Cinanum;Csinan;Czinan';Cá̤-nàng;Dzinan;Dzinanas;Dzjinana;Dzjinaņa;Ginano;Gorad Czinan';Jinan;Jinan Shi;Li-ch'eng;Li-ch’eng;Szinan;TNA;Te Nam;Ti-nan;Tsi-nan-fu;Tsinah;Tsinan;Tzinan;Tế Nam;Zhinan';ci hnan;cinana;gynʼn;ji nan;ji nan shi;jinan si;jinana;jynan;Ĝinano;Ťi-nan;Τζινάν;Ђинан;Горад Цзінань;Дзинан;Жинань;Цзинань;Цзінань;Ցզինան;גינאן;جىنەن شەھىرى;جينان;جینان;जीनान;ਚੀਨਾਨ;จี่หนาน;ཅི་ནན།;ကျီနန်မြို့;济南;济南市;済南;済南市;濟南;濟南市;지난 시; +city::1805757;Jimo;Chi-mo;Chi-mo-hsien;Jimo;Tsimo;Tsimohsien;ji mo shi;即墨市; +city::1805798;Jijiang;Chiang-chin;Chiang-ching;Chiang-ching-ch'eng;Chiang-ching-ch’eng;Chiang-ching-hsien;Jiangjin Qu;Jijiang;Jijiang Jiedao;Kiangtsin;Kiangtsing-hsien;ji jiang;ji jiang jie dao;jiang jin qu;几江;几江街道;江津区; +city::1805833;Jiexiu;Chieh-hsien;Chieh-hsiu;Chieh-hsiu-hsien;Czesju;Gioi Huu;Giới Hưu;Jiexiu;Jiexiu Shi;Kiehsiu;Kiehsuihsien;jesyu si;jie xiu;jie xiu shi;jyyshyw;Цзесю;جیئشیو;介休;介休市;제슈 시; +city::1805844;Jieshou;Chieh-shou;Chieh-shou-chen;Chieh-shou-chi;Chieh-shou-shih;Chiehshow;Shou-t'ai;jie shou;jie shou shi;界首;界首市; +city::1805857;Jieshi;Chieh-shih;Chieh-shih-ch'eng;Chieh-shih-ch’eng;Jieshi;Jieshi Zhen;Kitchioh;jie shi;jie shi zhen;碣石;碣石镇; +city::1805884;Jiehu;Chieh-hu;Chieh-hu-chi;I-nan;Jiehu;Yinan; +city::1805935;Jiazi;Chia-tzu;Jiazi;Jiazi Zhen;Kapchi;Kapohi;jia zi;jia zi zhen;甲子;甲子镇; +city::1805953;Jiaxing;Chia-hsing;Chia-hsing-hsien;Chia-hsing-hsien-ch'eng;Chia-hsing-hsien-ch’eng;Chiahsing-Fu;Czjasin;Dziasingas;Dzjasin;Ga-hing;Gia Hung;Gia Hưng;Gă-hĭng;JXS;Jiaxing;Ka-heng-chhi;Ka-heng-chhī;Ka-shing-fu;Kashing;Kashing-hsien;Tia-sing;jasing si;jia xing;jia xing shi;jyashng;jyshang;Ťia-sing;Ђасинг;Дзясин;Цзясин;Цзясін;جياشىڭ شەھىرى;جیاشنگ;جیشانگ;嘉兴;嘉兴市;嘉興;嘉興市;자싱 시; +city::1805987;Jiaozuo;Chiao-tso;Chiao-tso-chen;Chiao-tso-kung-k'uang-ch'u;Chiao-tso-kung-k’uang-ch’ü;Chiao-tso-shih;Chiau-chok-chhi;Chiau-chok-chhī;Cieu-cauk;Ciĕu-cáuk;Czjaoczo;Gjaoguo;Jiaozuo;Tiao-cuo;Tieu Tac;Tiêu Tác;Tsiaotso;Tszyaotszochzhen;jaojjwo si;jiao zuo;jiao zuo shi;jyawzww;zhyawzw;Ĝjaoĝuo;Ťiao-cuo;Ђаоцуо;Цзяоцзо;جیاوزوو;ژیاوزو;焦作;焦作市;자오쭤 시; +city::1806096;Jiaozhou;Chiao;Chiao-hsien;Jiaocheng;Jiaoxian;Jiaozhou;Kiaochow;Kiaohsien; +city::1806097;Ningde;Jiaocheng;Ning-te;Ning-te-hsien;Ningde;Ningteh;Ningtehhsien;ning de;ning de shi;نىڭدې شەھىرى;宁德;宁德市; +city::1806167;Jian'ou;Chien-ning;Chien-ou;Chien-ou-hsien;Chien-ou-hsien-ch'eng;Chien-ou-hsien-ch’eng;Jian'ou;Jian'ou Shi;Jian’ou;Jian’ou Shi;Kienning;Kienningfu;Kienow;Kienowhsien;Zhicheng;jian ou;jian ou shi;zhi cheng;建瓯;建瓯市;芝城; +city::1806218;Jiangyan;Chiang-yen;Chiang-yen-chen;Jiangyan;Jiangyan Shi;Jiangyan Zhen;Kiangyen;T'ai-hsien;Taixian;T’ai-hsien;jiang yan;jiang yan shi;jiang yan zhen;姜堰;姜堰市;姜堰镇; +city::1806248;Jianguang;Feng-ch'eng-hsien;Feng-ch’eng-hsien;Fengcheng;Fengcheng Shi;Jianguang;feng cheng;feng cheng shi;丰城;丰城市; +city::1806299;Jiangmen;Chiang-men;Chiang-men-ch'eng;Chiang-men-ch’eng;Chiang-men-shih;Czjanmehn';Czjanmyn';Dziangmenas;Dzjanmun;Geng-muong;Giang Mon;Giang Môn;Gjanmen;Gĕ̤ng-muòng;Hsin-hui;Hsin-hui-hsien;Jiangmen;Kang-mng-chhi;Kang-mn̂g-chhī;Kong-mun-su;Kongmoon;Kongmoon City;Kongmun;Kông-mùn-sṳ;Pakhai;Sunwui;Tiang-men;Wom Moon;ZBD;jangmeon si;jiang men;jiang men shi;jyangmn;jyangmyn;zhyangmn;Ĝjanmen;Ťiang-men;Ђангмен;Дзянмън;Цзянмынь;Цзянмэнь;جیانگمن;جیانگمین;ژیانگمن;江門;江門市;江门;江门市;장먼 시; +city::1806327;Jiangkou;Chiang-k'ou;Chiang-k’ou;Jiangkou;Jiangkou Zhen;Kiang-k'ou;Kiang-k’ou;Kiangkow;jiang kou;jiang kou zhen;江口;江口镇; +city::1806408;Yangjiang;Chiang-ch'eng-chen;Chiang-ch’eng-chen;Duong Giang;Dương Giang;Iong-gong;Iong-kang-chhi;Iòng-gŏng;Iông-kang-chhī;Janczjan;Jang-tiang;Jang-ťiang;Jiangcheng;Liang-yang;Yang-chiang;Yang-chiang-hsien;Yangjiang;Yeungkong;Yeungkong-hsien;Yong-kong-su;Yòng-kông-sṳ;yang jiang;yang jiang shi;yang jyang;yangjang si;yangzhyang;yngjyang;Јангђанг;Янцзян;یانگ جیانگ;یانگژیانگ;ینگجیانگ;阳江;阳江市;陽江;陽江市;양장 시; +city::1806445;Ji'an;Chi-an;Chi-an-shih;Czian';JGS;Ji'an;Ji'an Shi;Ji’an;Ji’an Shi;Kian;Kian-hsien;Kianfu;Luling;ji an;ji an shi;Цзиань;吉安;吉安市; +city::1806466;Guangyuan;GYS;Guangjuen;Guangyuan;Guanujuan';Guong-nguong;Guōng-nguòng;Gǔangyúan;Jialing;Kong-goan-chhi;Kuan-yuan;Kuan-yüan;Kuang-juean;Kuang-jüan;Kuang-yuan;Kuang-yuan-hsien;Kuang-yüan;Kuang-yüan-hsien;Kwangyuan;Kwangyuanhsien;Kwangyüan;Kwangyüanhsien;Kóng-goân-chhī;Quang Nguyen;Quảng Nguyên;guang yuan;guang yuan shi;gwang-wian si;gwangywan;Гуангјуен;Гуанъюань;گوانگیوان;广元;广元市;広元市;廣元;광위안 시; +city::1806535;Huzhou;HZC;Hu-chou;Hu-chou-shih;Huchow;Huchowfu;Huhinghsien;Huzhou;Huzhou Shi;Wu-hsing;Wu-hsing-hsien;Wu-hsing-hsien-ch'eng;Wu-hsing-hsien-ch’eng;Wuhing;Wuxing;Wuxing Qu;hu zhou;hu zhou shi;wu xing;wu xing qu;吴兴;吴兴区;湖州;湖州市; +city::1806591;Hutang;Hutang;hu tang;湖塘; +city::1806651;Huoqiu Chengguanzhen;Ho-ch'iu;Ho-ch'iu-hsien;Ho-ch’iu;Ho-ch’iu-hsien;Huo-ch'iu;Huo-ch’iu;Huoqiu;Huoqiu Chengguanzhen;Hwokiu;Hwokiu-hsien;huo qiu cheng guan zhen;霍邱城关镇; +city::1806696;Humen;Fumunchai;Fumuntschai;Hu-men-chai;Hu-nien;Humen;Humen Zhen;Khumehn';hu men;hu men zhen;Хумэнь;虎门;虎门镇; +city::1806776;Huizhou;Chuej-cou;Chuej-čou;Fi-chu-su;Fi-chû-sṳ;HUZ;Hie-ciu;Hiê-ciŭ;Hue Chau;Hui-chiu-chhi;Hui-chou;Hui-chou-ch'eng;Hui-chou-chen;Hui-chou-ch’eng;Hui-chou-shih;Hui-yang;Hui-yang-hsien;Huichou-fu;Huitsjou;Huizhou;Huệ Châu;Hūi-chiu-chhī;Khojchzhou;Khuehjchzhou;Khuejdzou;Kuei-shan;Waichow;Waichowfu;Waiyeung;Weichow;Xuyjo shehiri;hu-ijeou si;hui zhou;hui zhou shi;hwyzhw;Хойчжоу;Хуејџоу;Хуэйчжоу;هویژو;ہوئیژوؤ;ہوئیژوو;恵州;恵州市;惠州;惠州市;후이저우 시; +city::1806840;Huilong;Ch'i-tung;Ch'i-tung-hsien;Chen-yang-shih;Ch’i-tung;Ch’i-tung-hsien;Huilong;Huilong Zhen;Kvidonga;Qidong;Qidong Shi;Wei-tung-chen;Weidong;hui long;hui long zhen;qi dong;qi dong shi;Квидонга;启动;启动市;汇龙;汇龙镇; +city::1806881;Huicheng;Hui-ch'eng-chen;Hui-ch’eng-chen;Hui-lai-hsien;Huicheng;Huilai;Hweilai;Hweilai-hsien;hui cheng;惠城; +city::1806882;Xinhui;Chiu-hsin-hui;District de Xinhui;Hsin-hui;Hsin-hui Old City;Hsin-hui-chiu-ch'eng;Hsin-hui-chiu-ch’eng;Hsin-hui-hsien;Hsin-hui-ku-chih;Hui-ch'eng-chen;Hui-ch’eng-chen;Huicheng;Sanwui;Sin-fi-khi;Sun-hui;Sun-wei;Sunweihsien;Sunwui;Sunwui Old City;Sîn-fi-khî;Tan Hoi;Tân Hội;Xinhui;Xinhui District;shynhwy;sinhu-i gu;xin hui;xin hui qu;شینهوی;新会;新会区;新會;新會區;신후이 구; +city::1806960;Huazhou;Fachow;Fahsien;Fu-ch'eng-chen;Fu-ch’eng-chen;Hau-hsien;Hua;Hua-chou;Hua-hsien;Huazhou; +city::1806988;Huayin;Hua-yin-hsien;Hua-yin-hsien-ch'eng;Hua-yin-hsien-ch’eng;Huayin;Hwayinhsien;Khuayanchuan; +city::1807112;Huangzhou;Huang-chou;Huang-chou-chen;Huang-chou-fu;Huang-kang;Huang-kang-hsien;Huang-kang-ku-chih;Huanggang;Huangzhou;Hwangchow;Hwangchow-fu;Hwangkang;Hwangkang-hsien;Khuanchzhou;Wongkong;Хуанчжоу; +city::1807143;Huangyan;HYN;Huang-yen;Huang-yen-hsien;Huang-yen-hsien-ch'eng;Huang-yen-hsien-ch’eng;Huangyan;Hwang-yen-hsien;Hwangyen;huang yan;黄岩; +city::1807234;Huangshi;Chuang-s;Chuang-š;HSD;Hoang Thach;Hoàng Thạch;Huan-shi;Huan-shih;Huang-shih;Huang-shih-shih;Huangshi;Huangshi Shi;Huangsi;Huangsji;Huangŝi;Huangši;Hwangshih;Khuangshi;Khuanshi;Khuanshu;Ng-chioh-chhi;N̂g-chio̍h-chhī;Shi hui yao;Shi-hu-yao;Shihhweiyao;Shihpao;Shikhoyya;Uong-sioh;Uòng-siŏh;huang shi;huang shi shi;hwangseu si;hwangshy;Хуангши;Хуанши;Хуаншъ;خۇئاڭشى شەھىرى;هوانگشی;ہوانگشی;黃石市;黄石;黄石市;황스 시; +city::1807301;Dasha;Dasha;Dasha Jiedao;Huangpu;Whampoa;da sha;da sha jie dao;Даша;大沙;大沙街道; +city::1807308;Huangpi;Huang-p'o;Huang-pei;Huang-pei-hsien;Huang-p’o;Huangpi;Huangpi Qu;Hwangpei;Hwangpei-hsien;huang bei;huang bei qu;黄陂;黄陂区; +city::1807339;Huangmei;Huang-mei-hsien;Huangmei;Hwangmei;Hwangmei-hsien;huang mei;黄梅; +city::1807508;Huanggang;Huang-kang;Huang-kang-ch'eng;Huang-kang-chen;Huang-kang-ch’eng;Huanggang;Huanggang Zhen;Jao-p'ing;Jao-p’ing;Khuangan;Ng kng;Raoping;Ung Kung;huang gang;Хуанган;黄冈; +city::1807544;Daxing;Dasin;Daxing;Huang-ts'un;Huang-ts'un-chen;Huang-ts’un;Huang-ts’un-chen;Huangcun;Ta-hsing;Ta-hsing-hsien;da xing;Дасин;大兴; +city::1807553;Dingcheng;Dingcheng;Huang-ch'uan-hsien;Huang-chou;Huang-ch’uan-hsien;Huangchuan;Hwangchwan;Hwangchwan-hsien;Hwangehwan;Kuang-chou;Kwangchow;ding cheng;定城; +city::1807645;Huaiyuan Chengguanzhen;Huai-yuan-hsien;Huai-yüan-hsien;Huaiyuan;Huaiyuan Chengguanzhen;Hwaiyuan;Hwaiyuanhsien;Hwaiyüan;huai yuan cheng guan zhen;怀远城关镇; +city::1807681;Huainan;; +city::1807687;Huaicheng;Huai-ch'eng-chen;Huai-chi;Huai-chi-hsien;Huai-ch’eng-chen;Huaicheng;Huaicheng Zhen;Huaiji;Waitsap;Waitsap-hsien;huai cheng;huai cheng zhen;怀城;怀城镇; +city::1807689;Huaihua;Chuaj-chua;HJJ;Hoai Hoa;Hoai-hoa-chhi;Hoài Hóa;Hoâi-hoà-chhī;Huai-hua;Huaihua;Huài-huá;Khuajkhua;Yu-shu-wan-chen;Yushuwan;Yü-shu-wan-chen;huai hua;huai hua shi;hwaihwa si;Хуайхуа;ہوایہوا;怀化市;懐化市;懷化;화이화 시; +city::1807695;Huaidian;Huai-tien;Huai-tien-chen;Huaidian;Khuaydyan;Shen-ch'iu;Shen-ch’iu;Shenqiu; +city::1807700;Huaibei;Chuaj-pej;Hoai Bac;Hoai-pak-chhi;Hoài Bắc;Hoâi-pak-chhī;Hsu-kou;Hsü-kou;Huai-baek;Huai-pei;Huai-pei-shih;Huaibei;Huaibejus;Huaibėjus;Huajbej;Huaybey;Huài-báe̤k;Khuajbehj;Khuajbej;Sui-hsi-shih;huai bei;huai bei shi;hwaibei si;hwayby;Хуайбей;Хуайбэй;Хуајбеј;Հուայբեյ;هوایبی;ہوآئیبئی;ہوائیبوئی;淮北;淮北市;화이베이 시; +city::1808106;Hongjiang;Ch'ien-yang;Ch’ien-yang;Hongjiang;Hung-chiang;Hung-chiang-chen;Hung-chiang-shih;Hungkiang;Khuntszyan; +city::1808198;Heze;Caozhou;Che-ce;Ha Trach;Ha-tek-chhi;He-tse;Heze;Ho-dek;Ho-tse;Ho-tse-shih;Hotseh;Hotseh-hsien;Hà Trạch;Hâ-te̍k-chhī;Hê-tse;Hò̤-dĕk;Khece;Khehczeh;Ko-tse;Ko-tse-hsien;Ts'ao-chou;Ts'aochow;Tsaochowfu;Ts’ao-chou;Ts’aochow;he ze;he ze shi;heojjeo si;hzh;ka ze shi;Хеце;Хэцзэ;هزه;ہازا;カ沢市;菏泽;菏泽市;菏澤;허쩌 시; +city::1808212;Hechuan;Hechuan;Heyang;Ho-ch'uan;Ho-ch'uan-hsien;Ho-ch'uan-shih;Ho-chou;Ho-ch’uan;Ho-ch’uan-hsien;Ho-ch’uan-shih;Hochow;Hochwan;Hochwan-hsien;he chuan;合川; +city::1808316;Yiyang;Heshan;I-yang;I-yang-ch'eng;I-yang-ch’eng;I-yang-hsien;I-yang-shih;I-yeng;Ijan;Yiyang;Yiyang-hsien;Иян; +city::1808336;Hepo;Chieh-hsi;Hepo;Ho-p'o;Ho-p'o-hsu;Ho-p’o;Ho-p’o-hsü;Jiexi;Khehpo;he po;Хэпо;河婆; +city::1808370;Hengyang;Cheng-jang;Fen-yong-su;Fên-yòng-sṳ;HNY;Hanh Duong;Henan;Henchow;Heng-chou;Heng-iong;Heng-iong-chhi;Heng-nan;Heng-nan-hsien;Heng-yang-ch'eng;Heng-yang-ch’eng;Heng-yang-shih;Hengchow;Hengchowfu;Hengjang;Hengjangas;Hengyang;Hengyang-hsien;Hành Dương;Hèng-iòng;Hêng-iông-chhī;Khehnujan;Khengjang;Khunjan;Xengyang shehiri;Xéngyang shehiri;heng yang;heng yang shi;heong-yang si;hngyang;Хенгјанг;Хънян;Хэнъян;Հենան;هنگیانگ;ہینگیانگ;衡阳市;衡陽;衡陽市;헝양 시; +city::1808392;Hengshui;Cheng-suej;Cheng-šuej;Hanh Thuy;Heng-chui-chhi;Heng-cui;Heng-shui-ch'eng-kuan;Heng-shui-ch’eng-kuan;Heng-shui-hsien;Hengshui;Hành Thủy;Hèng-cūi;Hêng-chúi-chhī;Khehnshuj;Khengshuej;Khenshuy;heng shui;heng shui shi;heongsu-i si;hngshwy;Хенгшуеј;Хэншуй;هنگشوی;ہینگشوئی;衡水;衡水市;헝수이 시; +city::1808722;Hefei;Che-fej;Chefei;HFE;Hak-bui;Hap-pui-chhi;Ha̍p-pûi-chhī;Hefei;Hefei Shi;Hefejo;Hefejus;Hefėjus;Heyfey;Ho-fei;Ho-fei-hsien;Ho-fei-shih;Hofej;Hop Phi;Hozfeiz;Hăk-bùi;Hợp Phì;Khefej;Khehfehj;Khufej;Lu-chou;Luchow;Luchowfu;Lunchow;haphai;he fei;he fei shi;hefe'i;heopei si;hexfey;hfyy;khfy;Χεφέι;Хефей;Хефеј;Хъфей;Хэфэй;Хөфэй;Հեյֆեյ;خفي;خېفېي شەھىر;هفئی;ہیفئی;ہیفیئی;हफै;हेफ़ेई;เหอเฝย์;合肥;合肥市;허페이 시; +city::1808744;Hede;Hede;Ho-te;Ho-te-chen;Ho-te-kung-ssu;Hsia-ssu-chiang;Khede;Sheyang;he de;she yang;Хеде;合德;射阳; +city::1808747;Hecun;Hecun;Ho-ts'un;Ho-ts'un-ch'ien;Ho-ts'un-chen;Ho-ts’un;Ho-ts’un-chen;Ho-ts’un-ch’ien; +city::1808770;Hebi;Che-pi;Hac Bich;Hao-pi;Hao-pi-chen;Hao-pi-chi;Hao-pi-shih;Hebi;Ho-pi;Ho-pi-shih;Hok-biah;Hok-piah-chhi;Hopitsi;Ho̍k-piah-chhī;Hŏk-biáh;Hạc Bích;Khebi;Khehbi;he bi;he bi shi;heobi si;Хеби;Хэби;ہئبی;鶴壁;鶴壁市;鹤壁市;허비 시; +city::1808857;Hanzhong;Chan-cung;Chan-čung;HZG;Han Trung;Han-chung;Han-chung-fu;Han-chung-shih;Han-tiong-chhi;Hang-dung;Hantai;Hantai Qu;Hanzhong;Hanzhong Shi;Hàn-tiong-chhī;Hán Trung;Háng-dṳ̆ng;Khan'chzhun;Khan’chzhun;Nan'chzhen;Nan-cheng;Nan-cheng-hsien;Nan’chzhen;han tai;han tai qu;han zhong;han zhong shi;hanjung si;Ханьчжун;ہانژونگ;汉中;汉中市;汉台;汉台区;漢中;漢中市;한중 시; +city::1808872;Chengyang;Chengyang;Chengyang Xiang;Fu'an;Fu'an Shi;Fu-an-hsien;Fuanja;Fu’an;Fu’an Shi;Hanyang;cheng yang;cheng yang xiang;fu an;fu an shi;Фуаня;城阳;城阳乡;福安;福安市; +city::1808879;Hanting;Han-t'ing-chen;Han-t’ing-chen;Hanting;Hanting Qu;Hantingchieh;Wei Xian;Wei-hsien;han ting;han ting qu;wei xian;寒亭;寒亭区;潍县; +city::1808926;Hangzhou;Chan'nktsoou;Chang-cou;Chang-čou;Gorad Khanchzhou;HGH;Hancheum;Hanchow-fu;Hanczou;Handzou;Handžou;Hang;Hang Chau;Hang-chiu-chhi;Hang-chou;Hang-chou-shih;Hang-hsien;Hangchow;Hangcsou;Hangdzou;Hangdžou;Hanggouo;Hangtsjou;Hangzcouh;Hangzhou;Hangzhou Shi;Hangĝoŭo;Hančžou;Hong-chu-su;Hong-ciu;Hàng Châu;Hâng-chiu-chhī;Hòng-chû-sṳ;Hòng-ciŭ;Khanchzhou;Khandzhou;Khangdzou;Khanzhou;Xanchjou;hang cow;hang zhou;hang zhou shi;hangacau;hangajho'u;hanghtshw;hangjeou;hangjeou si;hangju;hangzhw;hanjha;hannaco;hʼnggwʼw;kancu;Χανγκτσόου;Горад Ханчжоу;Хангџоу;Ханджоу;Ханжоу;Ханчжоу;האנגגואו;خاڭجۇ شەھىر;هانغتشو;هانگژو;ہانگژو;हांगचौ;हांगझोऊ;ਹਾਂਙਚੋ;காங்சூ;ഹാങ്ഝൗ;หางโจว;ཧང་ཀྲོའུ།;杭州;杭州市;항저우;항저우 시;항주; +city::1808931;Hangu;Han-ku;Han-ku-shih;Hangu;Khanga;Ханга; +city::1808963;Handan;Chan-tan;HDG;Ham GJan;Han-tan;Han-tan-chhi;Han-tan-hsien;Han-tan-shih;Handan;Handan Shi;Handanas;Handano;Hang-dang;Hàm Đan;Hàng-dăng;Hân-tan-chhī;Khan'dan';Khandan;han dan;han dan shi;handan;handan si;Хандан;Ханьдань;האנדאן;خەندەن شەھىرى;هاندان;ہاندان;邯郸市;邯鄲;邯鄲市;한단 시; +city::1808977;Hanchuan;Han-ch'uan-hsien;Han-ch’uan-hsien;Hanchuan;Hanchwan;Hanchwanhsien; +city::1808981;Hancheng;Han-ch'eng-hsien;Han-ch’eng-hsien;Hancheng;Khanchen; +city::1809003;Haizhou;Chiu-tung-hai;Hai-chou;Haichow;Haizhou;Tung-hai;Tung-hai-ch'eng;Tung-hai-ch’eng;Tung-hai-hsien;hai zhou;海州; +city::1809061;Jiaojiang;Hai-men-chen;Haimen;Jiaojiang; +city::1809062;Haimen;Hai-men-so;Haimen;Haimen Zhen;Haimun;Haimung;Hoimoon;hai men;hai men zhen;海门;海门镇; +city::1809077;Haikou;Haikou;Haikou Zhen;hai kou;hai kou zhen;海口;海口镇; +city::1809078;Haikou;Chaj-kchou;Gorad Khajkou;HAK;Ha k'uo-shih;Ha k’uo-shih;Hai Khau;Hai-k'ou-shih;Hai-k'ou-so-ch'eng;Hai-kau;Hai-khau-chhi;Hai-k’ou-shih;Hai-k’ou-so-ch’eng;Haijgouj;Haik-how;Haikou;Haikou Shi;Haikow;Hajkou;Hajkouo;Hajkoŭo;Heihow;Hoi Hao;Hoihau;Hoihow;Hái-kháu-chhī;Hāi-kāu;Hải Khẩu;Khajkou;Xeyko shehir;ha'iko'u;hai kou;hai kou shi;haikeou si;haykw;Горад Хайкоу;Хайкоу;Хајкоу;هايكو;هایکو;ہائکو;ہائیکؤ;हाइकोऊ;ཧའེ་ཁོའུ་གྲོང་ཁྱེར།;ဟိုင်းခိုမြို့;海口;海口市;하이커우 시; +city::1809263;Guozhen;Baoji;Chencang Qu;Gochzhen;Guo Zhen;Guo zhen;Guozhen;Guozhen zhen;Ko-chen;Kuo-chen;Pao-chi;Pao-chi-hsien;chen cang qu;guo zhen;guo zhen zhen;虢镇;虢镇镇;陈仓区; +city::1809412;Guli;Guli;Yongkang;Yung-k'ang;Yung-k'ang-hsien;Yung-k’ang;Yung-k’ang-hsien;Гули; +city::1809461;Guiyang;Goi-iong;Guejang;Guejjan;Guijangas;Guijango;Guiyang;Guiyang Shi;Gujjan;Guyan;Guyyan;Gveiyangz;Gói-iòng;Gŭijango;KWE;Kuei-chu;Kuei-yang;Kuei-yang-shih;Kuej-jang;Kui-iong-chhi;Kweichu;Kweiyang;Kweiyangfu;Kùi-iông-chhī;Queiyanga;Quy Duong;Quý Dương;ghwyyangh;gu'iyanga;gu-iyang si;gui yang;gui yang shi;gwyyang;kuy hyang;Гуейян;Гуејанг;Гуйян;Ґуйян;Գույան;غوييانغ;گوئیانگ;گۇيياڭ شەھىرى;गुइयांग;ਗੁਈਯਾਂਗ;กุ้ยหยาง;ကွေ့ယန်မြို့;貴陽;貴陽市;贵阳;贵阳市;구이양 시; +city::1809483;Guiren;Guiren;Kuei-jen;Kuei-jen-chi; +city::1809486;Guiping;Guiping;Guiping Zhen;Hsun-chou;Hsün-chou;Kuei-p'ing;Kuei-p'ing-hsien;Kuei-p’ing;Kuei-p’ing-hsien;Kweiping;Kweiping-hsien;Sun-chow-fu;Sunchow;Sunshow;Sün-chow-fu;Sünchow;gui ping;gui ping zhen;桂平;桂平镇; +city::1809498;Guilin;Garadskaja akruga Gujlin';Guejlin;Guilin;Guilin Shi;Gujlin;Gujlin';Gveilinz;KWL;Kuei-lin;Kuei-lin-shih;Kuej-lin;Kui-lim-su;Kui-lìm-sṳ;Kweilin;Kweilin-hsien;Lin-kuei;Lin-kuei-hsien;Lin-kwei;Ling-ch'uan;Ling-ch’uan;Que Lam;Quế Lâm;gu'ilina;gu-ilin si;gui lin;gui lin shi;kuy hlin;Гарадская акруга Гуйлінь;Гуейлин;Гуејлин;Гуйлинь;گۇيلىن شەھىرى;गुइलिन;กุ้ยหลิน;桂林;桂林市;구이린 시; +city::1809532;Guigang;Goi-geng;Guicheng;Guigang;Guixian;Gujgan;Gveigangj;Gói-gē̤ng;Kuei;Kuei-hsien;Kuej-kang;Kui-kang-chhi;Kui-kong-su;Kui-kóng-sṳ;Kweihsien;Kùi-káng-chhī;Quy Cang;Quý Cảng;gu-igang si;gui gang;gui gang shi;gwygang;gwyygang;Гуйган;گوئگانگ;گوئیگانگ;گویگانگ;貴港;貴港市;贵港市;구이강 시; +city::1809610;Gucheng Chengguanzhen;Gucheng;Gucheng Chengguanzhen;Ku-ch'eng;Ku-ch'eng-hsien;Ku-ch’eng;Ku-ch’eng-hsien;gu cheng cheng guan zhen;古城城关镇; +city::1809858;Guangzhou;CAN;Cantao;Canton;Cantão;Cantón;Fan-yu;Fan-yü;Guanchjou;Guanchzhou;Guanczou;Guand'ou;Guandzhou;Guandzou;Guandžou;Guangdzou;Guangdzov;Guangdžou;Guangdžov;Guangjow;Guangzhou;Guangzhou Shi;Guanzhou;Guančžou;Guaңҗu;Guong-ciu;Guōng-ciŭ;Gvangjcouh;Kanton;Kantono;Kng-chiu-chhi;Kong-chu-su;Kouan'nktsoou;Kouang-chou;Kuang-chou;Kuang-chou-shih;Kwang-chowfu;Kwangchow;Kwangtsjou;Kóng-chû-sṳ;Kńg-chiu-chhī;P'an-yu;Puyun;Puyün;P’an-yü;Quancheum;Quancjou;Quang Chau;Quançjou;Quảng Châu;Shengcheng;ghwanzw;gu'angazu;guang zhou;guang zhou shi;guanjou;gvangajho'u;gvanjea;gwangjeou;gwangjeou si;gwangzhw;gwʼnggwʼw;kantwn;kuvanco;kvangacau;kwang cow;shynyang;Κουανγκτσόου;Гуангџоу;Гуанджоу;Гуандьоу;Гуанжоу;Гуанчжоу;Гуанчжоў;Гуаңҗу;Кантон;Գուանչժոու;גואנגגואו;شینیانگ;غوانزو;کانتون;گوانگژو;گوانگ‌ژو;گۇاڭجۇ شەھىرى;क्वांगचौ;ग्वांगझोउ;ਗੁਆਂਗਜ਼ੂ;குவாங்சோ;ഗ്വാങ്ജോ;กว่างโจว;ກວ່າງໂຈວ;ཀོང་ཀྲོའུ་གྲོང་ཁྱེར།;ကွမ်ကျိုးမြို့;გუანჯოუ;广州;广州市;広州;広州市;廣州;廣州市;광저우;광저우 시; +city::1809879;Guangshui;Guangshui;Guangshui Jiedao;Kuang-shui;Kuang-shui-chen;Kuang-shui-shih;Kwangshia;Kwangshui;guang shui;guang shui jie dao;广水;广水街道; +city::1810240;Gejiu;Gejiu;Ko-chiu;Ko-chiu-hsien;Ko-chiu-shih;Kokiu;Kokiu-hsien;Kokiuchang;Ku-chiu;ge jiu shi;xi cheng;个旧市;锡城; +city::1810295;Gaozhou;Gaozhou;Kao-chou;Kaochow;Kochow;Kochowfu;Mao-ming;Mao-ming-hsien;Mowming;gao zhou;高州; +city::1810309;Gaoyou;Gaoyou;Gaoyou Shi;Gaoyou Zhen;Kao-yu;Kao-yu-ch'eng;Kao-yu-ch’eng;Kao-yu-hsien;Kaoyuchow;gao you;gao you shi;gao you zhen;高邮;高邮市;高邮镇; +city::1810437;Gaoping;Gaoping;Nan-ch'ung;Nan-ch’ung;Nanchong;gao ping;高坪; +city::1810458;Gaomi;Gaomi;Kao-mi;Kao-mi-hsien; +city::1810553;Gaogou;Gaogou;Gaogou Zhen;Kao-chia-kou;Kao-kou;Kao-kou-chen;gao gou;gao gou zhen;高沟;高沟镇; +city::1810821;Fuzhou;FOC;Focheum;Foochow;Foutsoou;Fouzhou;Fu-chou;Fu-chou-shih;Fu-cou;Fu-čou;Fuchau;Fucheu;Fuchzhou;Fucsou;Fudzhou;Fudzou;Fudžou;Fugouo;Fuk-chu-su;Fuk-chû-sṳ;Futsjou;Fuzcouh;Fuzhou;Fuĝoŭo;Hok-chiu-chhi;Hok-chiu-chhī;Hok-ciu;Hók-ciŭ;Lin-sen;Lin-sen-hsien;Min Hsien;Min-hou;Min-hou-hsien;Min-hou-hsien-ch'eng;Min-hou-hsien-ch’eng;Minhow;Minhow-hsien;Phuc Chau;Phúc Châu;fu zhou;fu zhou shi;fuco;fujho'u;fwjw;fwzhw;phucau;pujeou si;Φουτσόου;Фуджоу;Фучжоу;Фуџоу;فوجو;فوزهو;فوژو;فۇجو شەھىرى;फ़ूझोउ;फूचौ;ਫ਼ੂਚੋ;ဖူကျိုးမြို့;福州;福州市;푸저우 시; +city::1810845;Fuyang;FUG;Fou-yang;Fou-yang-hsien;Fowyang;Fowyang-hsien;Fu-jang;Fu-yang-shih;Fujan;Fuyan;Fuyang;Hu-iong-chhi;Hū-iông-chhī;Inchzhou;Paiu-iong;Phu Duong;Phụ Dương;Puyanghsien;Pâiu-iòng;Ying-chou;Yingchow;Yingchow-fu;fu yang;fu yang shi;fwyang;puyang si;Фуян;Ֆույան;فویانگ;阜阳市;阜陽;阜陽市;푸양 시; +city::1810846;Fuyang;Fu-yang-hsien;Fujan';Fuyang;Fuyang Shi;Puyang;fu yang;fu yang shi;Фуянь;富阳;富阳市; +city::1810920;Qingyang;Fu-shan-hsien;Fushan;Fushan Qu;Qingyang;Qingyang Jiedao;fu shan;fu shan qu;qing yang;qing yang jie dao;清洋;清洋街道;福山;福山区; +city::1810979;Fuling;Fou-chou;Fou-ling;Fou-ling-hsien;Fowchou;Fowchow;Fowling;Fowlinghsien;Fuchou;Fulin;Fuling;Pei-ling;fu ling;Фулин;涪陵; +city::1811103;Foshan;FUO;Fachan;Fatshan;Fo-san;Fo-shan-chen;Fo-shan-shih;Fo-šan;Fosan;Fosanas;Foshan;Foshan';Fosjan;Foŝan;Fošanas;Fu-shan-chen;Fut-san-su;Fu̍t-sân-sṳ;Huk-sang;Hut-san-chhi;Hu̍t-san-chhī;Hŭk-săng;Namhoi;Nan-hai;Nanhai-hsien;Nanhoi;Nom Hoy;Phat Son;Phật Sơn;fo shan shi;fu shan;fu shan shi;fwshan;pocan;posan si;Φοσάν;Фошан;Фошань;فوشان;فۇشەن شەھىر;பொசன்;仏山市;佛山;佛山市;포산 시; +city::1811114;Fenyi;Chieh-ch'iao;Chieh-ch'iao-chen;Chieh-ch’iao;Chieh-ch’iao-chen;Fen-i;Fen-i-chen;Fenyi;Fenyi Xian;Fenyi Zhen;I-chieh-ch'iao;I-chieh-ch’iao;fen yi;fen yi xian;fen yi zhen;分宜;分宜县;分宜镇; +city::1811200;Fengxian;Feng;Feng-hsien;Fengxian; +city::1811260;Fengrun;Chiu-feng-jun;Feng-jun;Feng-jun-ch'eng-kuan;Feng-jun-ch’eng-kuan;Feng-jun-hsien;Fengrun; +city::1811305;Fengkou;Fengkou;Fengkou Zhen;Fengkow;feng kou;feng kou zhen;峰口;峰口镇; +city::1811440;Feicheng;Chiu-fei-hsien;Fei;Fei-hsien;Fei-hsien-ch'eng;Fei-hsien-ch’eng;Feicheng;Feixian;Pi-hsien; +city::1811542;Fangshan;Chou-k'ou-tien-ch'u;Chou-k’ou-tien-ch’ü;Fang-shan-hsien;Fangshan;Ta-fang-shan;fang shan;房山; +city::1811619;Ezhou;Echeng;Echeng-hsien;Ezhou;O-ch'eng;O-ch'eng-hsien;O-ch’eng;O-ch’eng-hsien;Shou-ch'ang;Shou-ch’ang;Wuchanghsien; +city::1811720;Enshi;ENH;Ehn'shi;En-shih;En-shih-hsien;Enshi;Shih-nan;Shihnanfu;en shi;Ēnshī;Эньши;恩施; +city::1811729;Encheng;Ehn'pin;En-p'ing-chen;En-p'ing-hsien;En-p’ing-chen;En-p’ing-hsien;Encheng;Encheng Jiedao;Enping;Yan-ping-hsien;Yanping;Yin Ping;en cheng jie dao;en ping;si cheng;Эньпин;思城;恩城街道;恩平; +city::1811764;Duyun;Dujun;Duyun;Dūyún;OCD;Pingchowhsien;Tu-yun;Tu-yun-ch'eng;Tu-yun-hsien;Tu-yun-shih;Tu-yün;Tu-yün-ch’eng;Tu-yün-hsien;Tu-yün-shih;dou yun;Дуюн;都勻;都匀; +city::1811829;Duobao;Duobao;Duobao Zhen;Duobaowan;To-pao-wan;Topaowan;Topaowanchen;duo bao;duo bao zhen;多宝;多宝镇; +city::1811929;Ducheng;Dosing;Ducheng;Ducheng Zhen;Tu-ch'eng;Tu-ch'eng-hsu;Tu-ch’eng;Tu-ch’eng-hsü;Yunan;dou cheng;dou cheng zhen;都城;都城镇; +city::1812057;Xinyi;Dongzhen;Hsin-i;Tung-chen;Tung-chen-chen;Tung-chen-hsu;Tung-chen-hsü;Xinyi;xin yi;信宜; +city::1812101;Shengli;DOY;Dongying;Dun'in;Dungjing;Dunuin;GJong Dinh;Shengli;Shengli Jiedao;Tung-jing;Tung-ying;dong ying;dong ying shi;dung-ing si;sheng li;sheng li jie dao;Đông Dinh;Дунгјинг;Дунъин;Дуньин;东营市;東営市;東營;胜利;胜利街道;둥잉 시; +city::1812228;Dongtai;Dongtai;Dongtai Shi;Dongtai Zhen;Tung-t'ai;Tung-t'ai-chen;Tung-t'ai-hsien;Tung-t’ai;Tung-t’ai-chen;Tung-t’ai-hsien;dong tai;dong tai shi;dong tai zhen;东台;东台市;东台镇; +city::1812256;Dongsheng;DSN;Dongsheng;Dongsheng Qu;Dunshen;Tung-sheng;Tung-sheng-hsien;dong sheng;dong sheng qu;东胜;东胜区; +city::1812427;Dongkan;Binhai;Dongkan;Pin-hai;Tung-k'an;Tung-k'an-chen;Tung-k’an;Tung-k’an-chen; +city::1812521;Donghai;Donghai;Donghai Jiedao;Lu-feng-hsien;Lu-feng-hsien-ch'eng;Lu-feng-hsien-ch’eng;Lufeng;Lufung;Lukfung;dong hai;lu feng;东海;陆丰; +city::1812545;Dongguan;Deng-uang;Dongguan;Dongguan City;Dongwen shehiri;Dunguan;Dunguan';Dĕ̤ng-uāng;GJong Hoan;Ntonkouan;Tong-koan-chhi;Tong-kóan-chhī;Tung-kon-su;Tung-kuan;Tungkuan;Tungkun;Tûng-kón-sṳ;XHO;dong guan;dong guan shi;dong wan shi;donggu'ana;dung-gwan si;dwnghqwan;dwngwan;tonkuvan;Đông Hoản;Ντογκουάν;Донггуан;Дунгуан;Дунгуань;Дунґуань;דונגגוואן;دونغقوان;دونگوان;ڈwngwan;ڈونگ گوآن;ڈونگوان;डोंग्गूआन;டொங்குவான்;东莞;东莞市;東莞;東莞市;둥관 시; +city::1812597;Dongdu;Dongdu;Tung-tu; +city::1812621;Dongcun;Dongcun;Haiyang;Tung-ts'un;Tung-ts'un-chi;Tung-ts’un;Tung-ts’un-chi; +city::1812728;Dingzhou;Dingxian;Dingzhou;Dinsyan;T'ang-hsien;Ting;Ting-hsien;Ting-hsien-ch'eng-kuan;Ting-hsien-ch’eng-kuan;Tingchow;T’ang-hsien; +city::1812754;Dingtao;Dingtao;Ting-t'ao;Ting-t'ao-hsien;Ting-t’ao;Ting-t’ao-hsien;ding tao;定陶; +city::1812955;Dezhou;Daik-ciu;Dedzou;Degou;Dehchzhou;Detsjou;Dezhou;Deĝoŭ;Dáik-ciŭ;GJuc Chau;Te;Te-chou;Te-chou-shih;Te-cou;Te-hsien;Te-čou;Techow;Teh-hsien;Tehchow;Tehetsouen;Tek-chiu-chhi;Tek-chiu-chhī;de zhou;de zhou shi;deojeou si;dyzhww;dzhw;Đức Châu;Деџоу;Дэчжоу;دژو;دیژوو;徳州市;德州;德州市;더저우 시; +city::1812961;Deyang;DEY;Daik-iong;Dehjan;Deyan;Deyang;Dáik-iòng;GJuc Duong;Te-jang;Te-yang;Te-yang-hsien;Tehyang;Tehyang-hsien;Tek-iong-chhi;Tek-iông-chhī;de yang;de yang shi;deoyang si;dyyang;Đức Dương;Дэян;Դեյան;دییانگ;徳陽市;德阳市;德陽;더양 시; +city::1812981;Deqing;Deqing;Deqing Xian;Te-ch'ing;Te-ch'ing-hsien;Te-ch'ing-hsien-ch'eng;Te-ch’ing;Te-ch’ing-hsien;Te-ch’ing-hsien-ch’eng;Tehtsing;de qing;de qing xian;德清;德清县; +city::1812988;Dengzhou;Dengzhou;Dengzhou Jiedao;P'eng-lai-hsien;PNJ;Pehnlaj;Penglai;Penglai Shi;P’eng-lai-hsien;Teng-Chow-Fu;Teng-chou;Tengchow;Tengchowfu;deng zhou;deng zhou jie dao;peng lai;peng lai shi;Пэнлай;登州;登州街道;蓬莱;蓬莱市; +city::1812990;Huazhou;Dengxian;Dengzhou;Huazhou;Teng;Teng-hsien;hua zhou;花洲; +city::1813016;Songyang;Dengfeng;Songyang;Teng-feng;Teng-feng-hsien;song yang;嵩阳; +city::1813088;Dazhong;Dafeng;Dazhong;Dazhong Zhen;Dazhongji;Ta-chung-chen;Ta-chung-chi;Ta-feng;da zhong;da zhong zhen;大中;大中镇; +city::1813171;Zhangjiajie;Cang-tia-tie;Chong-ka-kie-su;Chzhanczjacze;Chông-kâ-kie-sṳ;DYG;Dayong;Diong-ga-gai;Diŏng-gă-gái;Ta-yung;Ta-yung-hsien;Tiuⁿ-ka-kè-chhī;Truong Gia Gioi;Trương Gia Giới;Yongding;Yongding Qu;Yung-ting;Yung-ting-chen;Zhangjiajie;Zhangjiajie Shi;jangjaje si;yong ding;yong ding qu;zanghjyajy;zhang jia jie;zhang jia jie shi;Čang-ťia-ťie;Чжанцзяцзе;זאנגגיאגיה;زانغجياجي;ژانگجیانیے;ကျန်းကျားကျဲသဘာဝဥယျာဉ်;张家界;张家界市;張家界;張家界市;永定;永定区;장자제 시; +city::1813206;Daye;Daye;Ta-ye-li;Ta-yeh;Ta-yeh-ch'eng;Ta-yeh-ch’eng;Ta-yeh-hsien; +city::1813253;Lijiang;Cidade Antiga de Lijiang;LJG;La-gong;Le Giang;Le-kang-chhi;Li-chiang;Li-tiang;Li-ťiang;Liczjan;Liczjan shaary;Lidziangas;Lijiang;Likiang-hsien;Liszyan;Lâ̤-gŏng;Lìjiāng;Lē-kang-chhī;Lệ Giang;Ta-yen-chen;li ceiyng;li jiang;li jiang shi;lidziani;lijang si;liji'anga;liji'anga yunnana;lyjyang;lyjyang shەھyry;lyjyanj;Лицзян;Лицзян шаары;Лиђанг;ליגיאנג;لىجياڭ شەھىرى;ليجيانج;لیجیانگ;लिजिआंग;लिजिआंग युन्नान;ลี่เจียง;ლიძიანი;丽江市;麗江;麗江市;리장 시; +city::1813325;Dazhou;DAX;Dachzhou;Dak-ciu;Dasyan';Dasyan’;Daxian;Dazhou;Dăk-ciŭ;GJat Chau;Sui-ting;Sui-ting-fu;Suting;Suydin;Ta;Ta-cou;Ta-hsien;Ta-čou;Tat-chiu-chhi;Ta̍t-chiu-chhī;That-chu-su;Tha̍t-chû-sṳ;da zhou;da zhou shi;dajeou si;dazhw;dazhww sychwan;Đạt Châu;Дачжоу;داژو;داژوو، سیچوان;达州;达州市;達州;達州市;다저우 시; +city::1813344;Dawukou;Dawukou;Shih-tsui-shan;Shizuishan;Ta-wei-k'ou;Ta-wei-k’ou;Ta-wu-k'ou;Ta-wu-k’ou; +city::1813451;Datong;Datong;Datun;Ta-t'ung;Ta-t’ung;Датун; +city::1813658;Fenghua;Chung-cheng;Daqiao;Daqiaozhen;Feng-hua-hsien;Fenghua;Fenghua Shi;Fenghwa;Fenghwahsien;Ta-ch'iao;Ta-ch’iao;feng hua;feng hua shi;奉化;奉化市; +city::1813775;Daokou;Daokou;Hua-hsien;Huaxian;Tao-k'ou;Tao-k'ou-chen;Tao-k’ou;Tao-k’ou-chen;Taokow;dao kou;道口; +city::1813812;Danshui;Dan'shuem;Danshui;Danshui Jiedao;Huiyang Qu;Huiyangshi;Tamshui;Tamshuihu;Tamshuihü;Tan-shui;Tanshuihu;dan shui;hui yang qu;Даньшуем;惠阳区;淡水; +city::1813828;Danjiangkou;Chun-hsien;Chün-hsien;Dan'czjankou;Danjiangkou;Junxian;Junxian Danjiang;Sha-t'o-ying;Sha-t’o-ying;Shatoin;Tan-chiang;Tan-chiang-k'ou;Tan-chiang-k’ou;Даньцзянкоу; +city::1813851;Gushu;Dangtu;Gushu;Tai Ping;Taiping;Taiping-fu;Tang-t'u;Tang-t'u-hsien;Tang-t’u;Tang-t’u-hsien;gu shu;姑熟; +city::1813892;Xincheng;Dancheng;Tan-ch'eng;Tan-ch'eng-chi;Tan-ch’eng;Tan-ch’eng-chi;Xincheng;xin cheng;新城; +city::1814082;Daliang;Daliang;Daliang Jiedao;Daljan;P'an-shun;P’an-shun;Schuntak;Shun-te;Shun-te-hsien;Shunde;Shuntak;Ta-liang;Ta-liang-chen;da liang;da liang jie dao;shun de qu;Далян;大良;大良街道;顺德区; +city::1814087;Dalian;DLC;Dairen;Dal'niy;Dalian;Dalian Shi;Daljan';Dalny;Dal’niy;Lu-ta;Lu-ta-shih;Luda;Lü-ta;Lü-ta-shih;Lüda;Ntalian;Ta-lien;Ta-lien-shih;da lian;da lian shi;daelyeon;dalyan;dalyen si;dʼlyyn;ta heliyn;Νταλιάν;Далянь;דאליין;داليان;دالیان;ต้าเหลียน;大连;大连市;大連;大連市;다롄 시;대련; +city::1814093;Dali;Chung-ho-chen;DLU;Dali;Ta-ho;Ta-li;Talifu;da li;da li shi;Дали;大理;大理市; +city::1814757;Chuzhou;Cchu-cou;Ch'u;Ch'u-ch'uan;Ch'u-hsien;Chuchow;Chuchzhou;Chudzhou;Chudzou;Chuju shehiri;Chutsjou;Chuxian;Chuzhou;Ch’u;Ch’u-ch’üan;Ch’u-hsien;Du-ciu;Dṳ̀-ciŭ;Tru Chau;Trừ Châu;Tu-chiu-chhi;Tû-chiu-chhī;chajwa;chu zhou;chu zhou shi;chujeou si;chwzhww;jo zhou shi;Čchu-čou;Чуджоу;Чучжоу;Чуџоу;Չուչժոու;چاجوا;چوژوؤ;چوژوو;ジョ州市;滁州;滁州市;추저우 시; +city::1814786;Yangchun;Ch'un-ch'eng-chen;Chuncheng;Ch’un-ch’eng-chen;Yang-ch'un-hsien;Yang-ch’un-hsien;Yangchun;Yeungchun;yang chun;阳春; +city::1814870;Yiwu;Choucheng;I-wu;I-wu-hsien;Iu;YIW;Yiwu;Yiwuhsien;yi wu;yi wu xian;Иу;义乌;義烏縣; +city::1814906;Chongqing;CKG;Cchung-cching;Ch'ung-ch'ing;Ch'ung-ch'ing-shih;Chongqing;Chongqing - zhong qing;Chongqing - 重庆;Chongqing Shi;Chuncin;Chungking;Ch’ung-ch’ing;Ch’ung-ch’ing-shih;Congcing;Congcingas;Congcingo;Csungking;Cuncjina;Pa;Pa-hsien;Trung Khanh;Trùng Khánh;Tshung-khin;Tshùng-khin;Tsjoengking;Yu-chou;Yuzhou;Yü-chou;caungakiga;ceancin;chng ching;chungching si;chwng kyng;chwngchng;congachinga;congkinga;conkin;tshwnghtshyngh;z'wngz'yng;zhong qing;zhong qing shi;Çongçing;Ĉongĉingo;Čchung-čching;Čongčingas;Čuncjina;Чунгкинг;Чунцин;Чунцін;צ'ונגצ'ינג;تشونغتشينغ;چونگ کینگ;چونگچنگ;چونگ‌کینگ;چۇڭچىڭ شەھىرى;चोंगछिंग;चोंग्किंग;ਚੌਂਗਕਿੰਗ;சோங்கிங்;ചോങ്ചിങ്;ฉงชิ่ง;ཁྲུང་ཆིན་གྲོང་ཁྱེར།;重庆;重庆市;重慶;重慶市;충칭 시; +city::1814919;Chonglong;Chonglong;Tzechow;Tzechung;Tzechung-hsien;Tzu-chou;Tzu-chung;Tzu-chung-hsien;Zizhong;zhong long;重龙; +city::1814934;Chizhou;Ch'ih-chou;Ch'ih-chou-chen;Chichau;Chih-chow-fu;Chihchow;Chizhou;Chizhou Shi;Ch’ih-chou;Ch’ih-chou-chen;Guichi;JUH;Kuei-ch'ih;Kuei-ch'ih-hsien;Kuei-ch’ih;Kuei-ch’ih-hsien;Kweichih;Kweichih-hsien;Kweighih;Tche Tcheou;chi zhou;chi zhou shi;池州;池州市; +city::1815059;Chenzhou;Ch'en;Ch'en-chou-shih;Ch'en-hsien;Chehn'chzhou;Chenchow;Chenzhou;Ch’en;Ch’en-chou-shih;Ch’en-hsien;LQP;chen zhou;Чэньчжоу;郴州; +city::1815184;Chengyang;Chengyang;Chu;Chu-hsien;Chuchow;Chü;Chü-hsien;Chüchow;Juxian; +city::1815251;Jiangyin;Chengjiang;Chengjiang Jiedao;Chiang-yin;Chiang-yin-ch'eng;Chiang-yin-ch’eng;Chiang-yin-hsien;Jiangyin;Jiangyin Shi;Kiang Ying;Kiangyin;cheng jiang;cheng jiang jie dao;jiang yin shi;江阴市;澄江;澄江街道; +city::1815286;Chengdu;CTU;Ccheng-tu;Cendu;Cengdu;Cengduo;Ch'eng-tu;Ch'eng-tu-hsien;Ch'eng-tu-shih;Chehndu;Chendu;Chengdu;Chengdu Shi;Chengdú;Chundu;Chөndү;Ch’eng-tu;Ch’eng-tu-hsien;Ch’eng-tu-shih;Csengtu;Cwngzduh;Hua-yang;Sang-tu-su;Seng-to-chhi;Sing-du;Sàng-tû-sṳ;Sêng-to͘-chhī;Sìng-dŭ;Thanh Do;Thành Đô;Tsen'nkntou;Txengdu;cengadu;centu;chantu;cheing tu;cheng dou;cheng dou shi;cheongdu si;chngdw;chyngdw;chېngdۇ shەھyr;tshnghdw;zngdw;Çengdu;Ĉengduo;Čcheng-tu;Čendu;Čengdu;Τσενγκντού;Ченгду;Ченду;Чънду;Чыңду;Чэнду;Чөндү;Չենդու;צנגדו;تشنغدو;چنگدو;چینگدو;چېڭدۇ شەھىر;चेंगदू;छंतू;ਚੇਂਗਦੂ;செங்டூ;เฉิงตู;ချင်းဒူမြို့;成都;成都市;청두 시; +city::1815302;Chenghua;Ch'eng-hai-hsien;Chengcheng;Chenghai;Chenghua;Ching hai;Ch’eng-hai-hsien;Tenghai;Tenghai-hsien;Tsai-ch'eng-chen;Tsai-ch’eng-chen;cheng hai;cheng hua;澄华;澄海; +city::1815395;Chaozhou;Caodzou;Caogou;Cchao-cou;Ch'ao-an-hsien;Ch'ao-chou;Ch'ao-chou-chen;Ch'ao-chou-shih;Chao'an;Chaochow;Chaochowfu;Chaochzhou;Chaodzou;Chaotsjou;Chaozhou;Chao’an;Chau chu fu;Chauchow;Chheu-chu-su;Chhèu-chû-sṳ;Ch’ao-an-hsien;Ch’ao-chou;Ch’ao-chou-chen;Ch’ao-chou-shih;Dieu-ciu;Dièu-ciŭ;SWA;Tio-chiu-chhi;Tiô-chiu-chhī;Trieu Chau;Triều Châu;chao zhou;chao zhou shi;chaojeou si;chawzhw;chawzhww;tæciw;Ĉaoĝou;Čaodžou;Čchao-čou;Чаочжоу;Чаоџоу;چاؤژوؤ;چاوژو;چاوژوو;แต้จิ๋ว;潮州;潮州市;차오저우 시; +city::1815427;Chaohu;Ch'ao;Ch'ao-hsien;Chaohu;Chaoxian;Ch’ao;Ch’ao-hsien;Ts'ao-chen;Ts’ao-chen;chao hu shi;巢湖市; +city::1815456;Changzhou;CZX;Cangdzou;Canggouo;Cchang-cou;Ch'ang-chou;Ch'ang-chou-shih;Chanchzhou;Chandzhou;Chang-chow-fu;Changchow;Changdzou;Changtsjou;Changzhou;Chanzhou khot;Ch’ang-chou;Ch’ang-chou-shih;Csangcsou;Siong-chiu-chhi;Siong-ciu;Siòng-ciŭ;Siông-chiu-chhī;Thuong Chau;Thường Châu;Wu-chin;Wu-chin-hsien;Wujin;Wutsin;chang zhou;chang zhou shi;changjeou si;changzhw;Ĉangĝoŭo;Čangdžou;Čchang-čou;Чангџоу;Чанджоу;Чанжоу хот;Чанчжоу;چانگژو;چاڭجو شەھىر;常州;常州市;창저우 시; +city::1815463;Changzhi;Ch'ang-chih;Chanchzhi;Changzhi;Ch’ang-chih;Shih-t'ou-ko-t'a;Shih-t’ou-ko-t’a;Shitougeta;Чанчжи; +city::1815577;Changsha;CSX;Cangsa;Cangzsah;Cansa;Cchang-sa;Ch'ang-sha-hsien;Ch'ang-sha-shih;Changsha;Changsja;Chansha;Chhong-sa-su;Chhòng-sâ-sṳ;Ch’ang-sha-hsien;Ch’ang-sha-shih;Csangsa;Diong-sa;Diòng-să;Tng-soa-chhi;Tn̂g-soa-chhī;Truong Sa;Trường Sa;Tsan'nksa;cangasa;chang cha;changsa;changsa si;changsha;changsha shەھyr;channasa;tshanghsha;zhang sha;zhang sha shi;Ĉangŝa;Čangša;Čanša;Čchang-ša;Τσανγκσά;Чангша;Чанша;Չանշա;تشانغشا;چانگشا;چاڭشا شەھىر;चांगशा;छांग्षा;ਛਾਂਙਸ਼ਾ;ฉางชา;ချနဆားမြ;ချန်ဆားမြို့;長沙;長沙市;长沙;长沙市;창사 시; +city::1815585;Changqing;Ch'ang-ch'ing;Ch'ang-ch'ing-hsien;Chancin;Changqing;Changtsing;Ch’ang-ch’ing;Ch’ang-ch’ing-hsien;Чанцин; +city::1815656;Changli;Ch'ang-li-ch'eng-kuan;Ch'ang-li-hsien;Changli;Chanli;Ch’ang-li-ch’eng-kuan;Ch’ang-li-hsien;Чанли; +city::1815667;Changleng;Ch'ang-ling-chen;Ch'ang-t'ou-ling;Changleng;Ch’ang-ling-chen;Ch’ang-t’ou-ling;Hsin-chien;Xinjian; +city::1816026;Caohe;Caohe;Caohe Zhen;Caojiahe;Ch'i-ch'un;Ch’i-ch’un;Qichun;Ts'ao-chia-ho;Ts'ao-ho;Ts'ao-ho-chen;Ts'ao-ho-cheng;Ts'ao-ho-chien;Ts’ao-chia-ho;Ts’ao-ho;Ts’ao-ho-chen;Ts’ao-ho-cheng;Ts’ao-ho-chien;cao he;cao he zhen;漕河;漕河镇; +city::1816028;Weining;Caohai;Vehjnin;Wei-ning-hsien;Wei-ning-hsien-i-tsu-hui-tsu-miao-tsu- tzu-chih-ch'u;Wei-ning-hsien-i-tsu-hui-tsu-miao-tsu- tzu-chih-ch’ü;Wei-ning-i-tsu-hui-ysu-miao-tsu-tzu-chih-hsien;Weining;Вэйнин; +city::1816080;Cangzhou;Canchzhou;Candzhou;Cangdzou;Cangou;Cangzhou;Cangzou;Canĝou;Cchang-cou;Cchang-čou;Changhsien;Chhong-chiu-chhi;Chhong-chiu-chhī;Chong-ciu;Chŏng-ciŭ;T'sang-chou-shih;Thuong Chau;Thương Châu;Ts'ang-chen;Ts'ang-chou;Ts'ang-hsien;Tsan'syan';Tsang;Tsangchow;Tsan’syan’;Ts’ang-chen;Ts’ang-chou;Ts’ang-hsien;T’sang-chou-shih;cang zhou;cang zhou shi;changjeou si;kangdhww;kangjw;sangjw shەھyry;Цангџоу;Цанджоу;Цанчжоу;ساڭجو شەھىرى;کانگجو;کانگذوو;沧州市;滄州;滄州市;창저우 시; +city::1816176;Caidian;Caidian;Caidian Jiedao;Caidian Qu;Han-yang-hsien;Hanyang;Ts'ai-tien;Ts'ai-tien-chen;Tsaitien;Ts’ai-tien;Ts’ai-tien-chen;cai dian;cai dian jie dao;cai dian qu;蔡甸;蔡甸区;蔡甸街道; +city::1816221;Buhe;Buhe;Buhe Zhen;Bukheh;Pu-ho;bu he;bu he zhen;Бухэ;埠河;埠河镇; +city::1816234;Bozhou;Bac Chau;Bochzhou;Bok-ciu;Boxian;Bozhou;Bŏk-ciŭ;Bạc Châu;Po;Po-cou;Po-hsien;Po-čou;Pochow;Pok-chiu-chhi;Po̍k-chiu-chhī;bo zhou;bo zhou shi;bojeou si;bwjwa;bwzhw;bwzhww;Бочжоу;Բոչժոու;بوجوا;بوژؤ;بوژوو;亳州;亳州市;보저우 시; +city::1816256;Botou;Bota;Botou;Botuchzhen';Botuchzhen’;Bozhen;Chiao-ho;Nan-p'i;Nan-p’i;Po-chen;Po-t'ou;Po-t'ou-chen;Po-t’ou;Po-t’ou-chen;Potowchen;Бота; +city::1816265;Boshan;Boshan;Po-shan;Tzu-po;Tzu-po-shih; +city::1816269;Baise City;AEB;Baicheng Jiedao;Baise;Baise City;Baise Zhen;Baksaek;Bose;Bose Zhen;Boze;Bósè;Bǎisè;Pai-se;Pai-se-chen;Pai-se-hsien;Po-se;Poseh;Poseh-hsien;bai cheng;bai cheng jie dao;bai se;bai se zhen;Бозе;百城;百城街道;百色;百色镇; +city::1816336;Binzhou;Beizhen;Bin'chzhou;Bindzhou;Bing-ciu;Bintsjou;Binzhou;Bĭng-ciŭ;Gorad Bin'chzhou;Hui-min;Pei-chen;Pin-chiu-chhi;Pin-chiu-chhī;Pin-cou;Pin-hsien;Pin-čou;Tan Chau;Tân Châu;bang zhou shi;bin zhou;bin zhou shi;binjeou si;bnzhww;bynzhw;Бинджоу;Биньчжоу;Горад Біньчжоу;بنژوو;بینژو;浜州市;滨州市;濱州;빈저우 시; +city::1816338;Luxu;Binyang;Binzhou;Lu-hsu;Lu-hsu-chen;Lu-hsü;Lu-hsü-chen;Luxu;Pin-yang;Pin-yang-hsien;lu wei;芦圩; +city::1816373;Bijie;BFJ;Bek-ciek;Bicze;Bijie;Bék-ciék;Bìjíe;Pi-tie;Pi-ťie;Pit-chiat-chhi;Pit-chiat-chhī;Prefecture de Bijie;Préfecture de Bijie;Tat Tiet;Tất Tiết;bi jie;bi jie shi;bije si;byjay;byjyy;Бицзе;بیجئی;بیجای;毕节;毕节市;畢節;畢節市;비제 시; +city::1816406;Bianzhuang;Bianzhuang;Cangshan;Hsia-chuang;Pien-chuang;Ts'ang-shan;Ts’ang-shan; +city::1816440;Bengbu;BFU;Bang Phu;Bangbu;Behnbu;Benbu;Bengbu;Bunbu;Bạng Phụ;Pang-fou;Pang-fou-shih;Pang-po-chhi;Pang-pu;Paung-buo;Peng-pu;Pâung-buô;Pāng-pō-chhī;bang bu;bang bu shi;beongbu si;bngbw;byngbw;bېngbۇ shەھەry;Бенгбу;Бънбу;Бэнбу;Բենբու;بنگبو;بینگبو;بېڭبۇ شەھەرى;蚌埠;蚌埠市;벙부 시; +city::1816670;Beijing;BJS;Bac Kinh;Baek-ging;Baekging;Behehzhin;Beijing;Beijing Shi;Beising;Beixin;Beixín;Bejdzing;Bejdżing;Bejing;Beyjing;Beȝcinȝ;Báe̤k-gĭng;Béising;Bắc Kinh;Gorad Pekin;Pechin;Pechino;Pechinu;Pechinum;Pecinum;Pei-ching;Pei-ching-shih;Pei-p'ing;Pei-p'ing-shih;Peken;Pekin;Pekin';Pekina;Pekinas;Peking;Pekini;Pekino;Pekín;Pekîn;Peping;Pequim;Pequin;Pequín;Pet-kin;Pet-kîn;Peycing;Pikkin;Pèquin;Pékin;Péqùin;Péycing;be'ijim;be'ijina;be'ijinga;bei jing;bei jing shi;beidjin;beijing;bijiga;bijing;bijinga;bkyn;buggyeong;byjng;bykyn;byyg'yng;byyzsyng;pakking;peyjin;pkn;Πεκίνο;Бейжің;Бээжин;Бәәҗң балһсн;Горад Пекін;Пекин;Пекинг;Пекін;Пекінґ;Պեկին;בייג'ינג;בייזשינג;بكين;بيكين;بیجنگ;بېجینګ;بېيجىڭ;بېيجىڭ شەھىرى;پکن;پێکەن;ބީޖިންގ;बीजिंग;बेइजिङ;বেইজিং;ਬੀਜਿੰਗ;બેઇજિંગ;பெய்ஜிங்;బీజింగ్;ಬೀಜಿಂಗ್;ബെയ്‌ജിങ്ങ്‌;බෙයිජිං;ปักกิ่ง;པེ་ཅིང་གྲོང་ཁྱེར།;ပေကျင်းမြို့;პეკინი;ቤዪጂንግ;ប៉េកាំង;北京;北京市;베이징;북경; +city::1816705;Beihai;BHY;Bac Hai;Baek-hai;Baekhaij;Behjkhaj;Beihai;Beihai i Guangxi;Beihajus;Bejkhaj;Beyhay;Báe̤k-hāi;Bắc Hải;Pak-hai-chhi;Pak-hái-chhī;Pakhoi;Pei-hai;Pei-hai-shih;Pej-chaj;Pet-hoi-su;Pet-hói-sṳ;bei hai;bei hai shi;beihai si;byhay;Бейхай;Бејхај;Бэйхай;Բեյհայ;بیئہائی;بیئیہائی;بیهای;بېيخەي شەھىرى;北海;北海市;베이하이 시; +city::1816751;Beidao;Beidao;Beidao jiedao;Beidaobu;Maji Qu;Pei-tao-pu;T'ien-shui;Tianshui;T’ien-shui;bei dao;bei dao jie dao;mai ji qu;北道;北道街道;麦积区; +city::1816753;Beidaihehaibin;Beidaihehaibin;Bejdajkheh;Pehtaiho;Pehtaiho Beach;Pei-tai-ho Hai-pin;Бейдайхэ; +city::1816790;Beibei;Behj;Beibei;Paipei;Pehpei;Pei-p'ei-ch'ang;Pei-p'ei-kuan-li-chu;Pei-p'ei-shih;Pei-p’ei-ch’ang;Pei-p’ei-kuan-li-chü;Pei-p’ei-shih;bei bei;Бэй;北碚; +city::1816890;Baoying;Baoying;Pao-ying;Pao-ying-ch'eng;Pao-ying-ch’eng;Pao-ying-hsien; +city::1816924;Langzhong;Baoning;Lang-chung;Lang-chung-hsien;Langzhong;Pao-ning-fu;Paoning;lang zhong;阆中; +city::1816971;Baoding;BVN;Bao GJinh;Baodin;Baodina;Baoding;Baodingas;Bawding shehiri;Bo-deng;Báoding;Bō̤-dêng;Bảo Định;Ch'ing-yuan-hsien;Ching-yuang;Ch’ing-yüan-hsien;Pao-ting;Pao-ting-shih;Po-teng-chhi;Prefettura di Baoding;Pó-tēng-chhī;Tsingyuan;Tsingyuan-hsien;Tsingyüan-hsien;bao ding;bao ding shi;baoding si;baywdyng;pea ting;Баодин;Баодинг;Բաոդին;באודינג;بائودینگ;باوڈنگ;เป่าติ้ง;保定;保定市;바오딩 시; +city::1817240;Baiyin;Aho Chia Chuan;Bach Ngan;Bah-ngung;Baiyin;Baiyin Shi;Bajin';Bayin;Băh-ngṳ̀ng;Bạch Ngân;Hao-chia-ch'uan;Hao-chia-ch’uan;Ho-chia-ch'uan;Ho-chia-ch’uan;Pai-yin;Pai-yin-ch'ang;Pai-yin-ch’ang;Pai-yin-shih;Paj-jin;Peh-gin-chhi;Pe̍h-gîn-chhī;bai yin;bai yin shi;baiin si;bayy yn;bayyyn;Байинь;Բային;بائی ین;بائیین;白銀;白銀市;白银;白银市;바이인 시; +city::1817701;Baihe;Baihe;bai he;百合; +city::1817720;Shangyu;Baiguan;Pai-kuan;Pai-kuan-chen;Pekwan;Pokwan;Shangyu; +city::1817858;Babu;Babu;Hexian;Ho;Ho-hsien;Pa-pu;Pa-pu-chen;Patpo;Бабу; +city::1817952;Anxiang;An-hsiang;An-hsiang-hsien;Ansiang;Ansiang-hsien;Anxiang;Anxiang Chengguanzhen;an xiang;an xiang cheng guan zhen;安乡;安乡城关镇; +city::1817968;Anshun;AVA;An Thuan;An Thuận;An'shun';An-shun-hsien;An-shun-hsien-ch'eng;An-shun-hsien-ch’eng;An-shun-shih;An-sun;An-sun-chhi;An-sūn-chhī;An-šun;Ang-song;Anshun;Anshunfu;Ansunas;Anšunas;P'u-ting;P’u-ting;an shun;an shun shi;anshwn;ansun si;Ăng-sông;Аншун;Аньшунь;انشون;安順;安順市;安顺市;안순 시; +city::1817990;Anqiu;An-ch'iu;An-ch'iu-hsien;An-ch’iu;An-ch’iu-hsien;An-kiu;Ankiuhsien;Anqiu; +city::1817993;Anqing;AQG;An Khanh;An Khánh;An'cin;An-cching;An-ch'ing;An-ch'ing-ch'eng;An-ch'ing-shih;An-ch’ing;An-ch’ing-ch’eng;An-ch’ing-shih;An-čching;Ancin;Ancing;Ancingas;Anking;Anqing;Anqing Shi;Ančingas;Ganking;Huai-ning;Huai-ning-hsien;Hwaining;Hwaining-hsien;Nganking;an qing;an qing shi;anching si;ankng;Анцин;Аньцин;Аньцін;Анћинг;ئەنچىڭ شەھىرى;انکنگ;安庆;安庆市;安慶;安慶市;안칭 시; +city::1818004;Mabai;Anping;Ma-kuan;Ma-kuan-hsien;Ma-pai-kuan;Mabai;Maguan;Makwan;Makwan-hsien;Mapai;ma bai;马白; +city::1818016;Anlu;An-lu-hsien;Anlu;Te-an;Tean-fu;Teian;Teianfu;an lu;安陆; +city::1818051;Anjiang;An-chiang;An-chiang-chen;Anjiang;Ankiang;Ch'ien-yang;Ch'ien-yang-hsien;Ch’ien-yang;Ch’ien-yang-hsien;Qianyang; +city::1818116;Anbu;An-pu;Anbu;Anbu Zhen;an bu;庵埠; +city::1885823;Jiangyou;; +city::1886760;Suzhou;SZV;So-chiu-chhi;Soutsoou;So͘-chiu-chhī;Su-chou;Su-chu-su;Su-ciu;Su-cou;Su-čou;Suchjou;Suchzhou;Sudzhou;Sudzou;Sudžou;Sugouo;Sutsjou;Suzhou;Suzhou Shi;Suzhou i Jiangsu;Suĝoŭo;Szucsou;Sû-chû-sṳ;Sŭ-ciŭ;To Chau;Tô Châu;Wu-hsien;cuco;ssujeou si;su cow;su zhou;su zhou shi;sujho'u;suzu;swgwʼw;swjw;swzhw;swzhww;Σουτσόου;Суджоу;Сучжоу;Сучжоў;Суџоу;Сүжоу;Սուչժոու;סוגואו;سوجو;سوژو;سوژوو;سۇجۇ شەھىرى;सूझोऊ;ਸੂਜ਼ੂ;சுசோ;ซูโจว;苏州;苏州市;蘇州;蘇州市;쑤저우 시; +city::1886762;Zhoushan;Chzhoushan';Dinghai Qu;HSN;Zhoushan;Zhoushan Shi;ding hai;ding hai qu;zhou shan;zhou shan shi;Чжоушань;定海;定海区;舟山;舟山市; +city::1898359;Mudu;Mu-tu;Mu-tu-chen;Mudu;Mudu Zhen;mu du;mu du zhen;Муду;木渎;木渎镇; +city::1898494;Songling;Songling;Songlingzhen;Sunlin;Wu-chiang;Wukiang;song ling;Сунлин;松陵; +city::1915223;Zhongshan;Zhongshan;zhong shan;zhong shan shi;中山;中山市; +city::1917790;Dadonghai;Dadonghai;Dadunkhaj;Дадунхай; +city::1919014;Lianghu;Lianghu;Lianghu Zhen;liang hu;liang hu zhen;梁湖;梁湖镇; +city::1920772;Zhoucheng;; +city::1921372;Dalianwan;; +city::1927639;Yueyang;Juee-jang;Juehjan;Juejang;Jüe-jang;Ngok-yong-su;Ngo̍k-yòng-sṳ;Nhac Duong;Nhạc Dương;YUG;Yo Chau;Yochau;Yochow;Youchou;Youchow;weyang si;yue yang shi;Юэян;岳阳市;岳陽市;웨양 시; +city::2033128;Zhenlai;Ch'a-kan-nao;Ch'a-kan-shao;Chen-lai;Chen-lai-chen;Chen-tung;Chen-tung-hsien;Chzhendun;Ch’a-kan-nao;Ch’a-kan-shao;Zhenlai;zhen lai;镇赉; +city::2033135;Zhengjiatun;Cheng-chia-t'un;Cheng-chia-t'un-chen;Cheng-chia-t’un;Cheng-chia-t’un-chen;Chengkiatun;Liao-yuan;Liao-yuan-hsien;Liao-yüan;Liao-yüan-hsien;Shuangliao;Zhengjiatun; +city::2033147;Zhaozhou;Chao Chow;Chao-chi;Chao-chou;Chao-chou-chen;Chao-chou-hsien;Chzhaochzhou;Lao-ch'eng-chi;Lao-chieh-chi;Lao-ch’eng-chi;Zhaozhou;Чжаочжоу; +city::2033149;Zhaoyuan;Chao-chou;Chao-yuan;Chao-yuan-chen;Chao-yuan-hsien;Chao-yüan;Chao-yüan-chen;Chao-yüan-hsien;Chaochow;Chzhaochzhou;Chzhaoyuan';Chzhaoyuan'gay;Chzhaoyuan’;Chzhaoyuan’gay;Gokhoutsi;Kuo-erh-lo-ssu-hou-ch'i;Kuo-erh-lo-ssu-hou-ch’i;Kuo-hou-ch'i;Kuo-hou-ch’i;Zhaoyuan; +city::2033168;Zhaodong;Chao-tung;Chao-tung-chen;Chzhaodun;Man'gou;Man-kou;Man’gou;T'ien-tsao-kang;T’ien-tsao-kang;Zhaodong;Zhaodong Shi;Zhaodong Zhen;zhao dong;zhao dong shi;zhao dong zhen;肇东;肇东市;肇东镇; +city::2033196;Zhangjiakou;Cang-tia-kchou;Chang-chia-k'ou;Chang-chia-k'ou-shih;Chang-chia-k’ou;Chang-chia-k’ou-shih;Chang-kia-k'ou;Chang-kia-k’ou;Changchiakow;Changkiakow;Chzhanczjakou;Chzhantseyakou;Diong-ga-kau;Diŏng-gă-kāu;Dzhandzjakou;Ganjakou;Kalgan;Khaalgan;Tiuⁿ-ka-kháu-chhī;Truong Gia Khau;Trương Gia Khẩu;Wan-ch'uan;Wan-ch'uan-hsien;Wan-ch’üan;Wan-ch’üan-hsien;ZQZ;Zhangjiakou;jangjakeou si;jangjyakw;zhang jia kou;zhang jia kou shi;zhangjyakww;Čang-ťia-kchou;Ĝanjakou;Џангђакоу;Джандзякоу;Хаалган;Чжанцзякоу;جانگجیاکو;ژانگجیاکوو;张家口市;張家口;張家口市;장자커우 시; +city::2033225;Zhalantun;Butha Qi;Cha-lan-tun;Chzhalan'tun';Chzhalantun;Cjalanjtunj;NZL;Pu-t'e-ha-ch'i;Pu-t’e-ha-ch’i;Tsa-lan-t'un;Tsa-lan-t’un;Xinghua;Xinghua Jiedao;Ya-lu;Ya-lu-hsien;Zalantun;Zhalantun;Zhalantun Shi;bu te ha qi;xing hua;xing hua jie dao;zha lan tun;zha lan tun shi;Чжаланьтунь;兴华;兴华街道;布特哈旗;扎兰屯;扎兰屯市; +city::2033242;Yushu;Jujshu;Ku-yu-shu;Ku-yü-shu;Yu-shu-chen;Yu-shu-hsien;Yushu;Yü-shu-chen;Yü-shu-hsien;Юйшу; +city::2033301;Youhao;Youhao;Youhao Jiedao;Youhao Qu;Yu-hao;you hao;you hao jie dao;you hao qu;友好;友好区;友好街道; +city::2033370;Yingkou;Eiko;Inkou;Newchwang;Niu-chuang;YDD;YKH;Ying-k'ou-hsien;Ying-k'ou-shih;Ying-k’ou-hsien;Ying-k’ou-shih;Yingkou;Yingkou Shi;Yingkow;ingkeou si;ying kou;ying kou shi;Инкоу;営口;営口市;營口;营口;营口市;잉커우 시; +city::2033403;Yilan;I-lan;I-lan-chen;I-lan-hsien;San-hsing;Sang-hsing;Sansing;Sen-hsing;YLN;Yilan;Yilan Xian;Yilan Zhen;yi lan;yi lan xian;yi lan zhen;依兰;依兰县;依兰镇; +city::2033413;Yichun;I-cchun;I-chhun-chhi;I-chhun-chhī;I-chung;I-čchun;Ichun';LDS;Y Xuan;Y Xuân;Yichun;Yichun i Heilongjiang;Yīchūn;ichun si;ichuni;yaychan;yi chun;yi chun shi;Ĭ-chŭng;Ичунь;یایچان;یکھن، ہیلونگجیانگ;იჩუნი;伊春;伊春市;이춘 시; +city::2033423;Yebaishou;Chien-p'ing;Chien-p’ing;Jianping;Teh-pai-shou;Tszyan'pin;Tszyan’pin;Yebaishou;Yeh-pai-shou;Yeh-pai-shou-chen;Yeh-pai-shu;Yeh-po-shou; +city::2033449;Yantongshan;Yantongshan;Yen-t'ung-shan;Yen-t’ung-shan; +city::2033467;Yanji;Chu-tzu-chieh;Chu-tzu-kai;Chü-tzu-chieh;Chü-tzu-kai;Dien Cat;Diên Cát;Jan'czi;YNJ;Yang-chi-t'eng;Yen-chi;Yen-chi-shih;yan ji shi;yangzhy;yanjy;yenji si;yeongil;Јанђи;Яньцзи;يانجي;یانجی;یانگژی;延吉市;연길;옌지 시; +city::2033536;Yakeshi;Hsi-kuei-t'u;Hsi-kuei-t’u;Jakehshi;Shih-k'o-ya;Shih-k’o-ya;Xingong Jiedao;Xuguit Qi;Ya-k'o-shih;Ya-k’o-shih;Yakeshi;Yakeshi Shi;xi gui tu qi;xin gong jie dao;ya ke shi;ya ke shi shi;Якэши;喜桂图旗;新工街道;牙克石;牙克石市; +city::2033574;Zhangjiakou Shi Xuanhua Qu;Ch'ang-chia-k'ou-shih;Ch’ang-chia-k’ou-shih;Hsuan-hua;Hsuan-hua-ch'eng;Hsuan-hua-hsien;Hsuan-hua-shih;Hsüan-hua;Hsüan-hua-ch’eng;Hsüan-hua-hsien;Hsüan-hua-shih;Suanhwa;Xuanhua;Zhangjiakou Shi Xuanhua Qu;zhang jia kou shi xuan hua qu;张家口市宣化区; +city::2033602;Xiuyan;Hsiu-yen;Hsiu-yen-chen;Hsiu-yen-hsien;Hsiujen;Siuyen;Xiuyan;Yu-yen;xiu yan;岫岩; +city::2033667;Xinqing;Xinqing;xin qing;新青; +city::2033675;Xinmin;Hsin-min;Hsin-min-chen;Hsin-min-hsien;Hsin-ming-t'ing;Hsin-ming-t’ing;Sin'min';Sinmin;Xinmin;Синьминь; +city::2033739;Xinglongshan;Hsing-lung-shan;Xinglongshan; +city::2033766;Xingcheng;Hingcheng;Hsing-ch'eng;Hsing-ch'eng-chen;Hsing-ch'eng-hsien;Hsing-ch’eng;Hsing-ch’eng-chen;Hsing-ch’eng-hsien;Ning-yuan;Ning-yuan-chou;Ning-yüan;Ning-yüan-chou;Shinchon;Sinchehn;Xingcheng;Синчэн; +city::2033824;Xilin Hot;A-pa-ha-na-erh-ch'i;A-pa-ha-na-erh-ch’i;A-pa-ha-na-erh-tso-i-ch'i;A-pa-ha-na-erh-tso-i-ch’i;A-pa-ha-na-erh-yu-i-ch'i;A-pa-ha-na-erh-yu-i-ch’i;A-pa-k'a-pei-tzu-fu;A-pa-k’a-pei-tzu-fu;Abaga Pei-tzu-fu;Abagnar Qi;Hsi-lin-hao-t'e;Hsi-lin-hao-t’e;Hsi-lin-kuo-ch'in;Hsi-lin-kuo-ch’in;Pei-tzu-fu;Pei-tzu-miao;Peitzemiao;Silinghot;XIL;Xilin Hot;Xilinhaote Shi;Xilinhot;a ba ha na er qi;xi lin hao te;xi lin hao te shi;锡林浩特;锡林浩特市;阿巴哈纳尔旗; +city::2033866;Xifeng;Hsi-feng;Hsi-feng-chen;Hsi-feng-hsien;Sifeng;T'ao-lu;T’ao-lu;Xifeng; +city::2033934;Xiaoshi;Benxi;Benxi Xian;Hsiao-shih;Hsiao-shih-chen;Pen-ch'i;Pen-ch'i-hsien;Pen-ch’i;Pen-ch’i-hsien;Pen-hsi;Pen-hsi-hsien;Xiaoshi;Xiaoshi Zhen;ben xi;ben xi xian;xiao shi;xiao shi zhen;小市;小市镇;本溪;本溪县; +city::2034141;Wuchang;Huan-hsi-ling;Uchan;Wu-ch'ang-chen;Wu-ch'ang-hsien;Wu-ch'ang-t'ing;Wu-ch’ang-chen;Wu-ch’ang-hsien;Wu-ch’ang-t’ing;Wuchang;Wuchang Shi;Wuchang Zhen;Wutschangting;wu chang;wu chang shi;wu chang zhen;Учан;五常;五常市;五常镇; +city::2034221;Wangqing;Ta-tu-ch'uan;Ta-tu-ch’uan;Ta-wang-kou;Vancine;Wang-ch'ing;Wang-ch'ing-chen;Wang-ch'ing-hsien;Wang-ch’ing;Wang-ch’ing-chen;Wang-ch’ing-hsien;Wangqing;Wangqing Xian;Wangqing Zhen;wang qing;wang qing xian;wang qing zhen;Ванцине;汪清;王清县;王清镇; +city::2034226;Hepingjie;Hepingjie;Wan-kou;Wangou;Wangou Zhen;he ping jie;wan gou;wan gou zhen;和平街;湾沟;湾沟镇; +city::2034228;Wangkui;Shuang-lung;Ta-wu-ching-tzu;Wang-k'uei;Wang-k'uei-chen;Wang-k'uei-hsien;Wang-k’uei;Wang-k’uei-chen;Wang-k’uei-hsien;Wangkui;Wangkui Xian;Wangkui Zhen;wang kui;wang kui xian;wang kui zhen;望奎;望奎县;望奎镇; +city::2034312;Ulanhot;HLH;Horqin Youyi Qianqi;Huai-yuan-chen;Huai-yuän-chen;K'o-erh-ch'in-yu-ch'ien-ch'i;K'o-erh-ch'in-yu-i-ch'ien-ch'i;K’o-erh-ch’in-yu-ch’ien-ch’i;K’o-erh-ch’in-yu-i-ch’ien-ch’i;Ulan Hot;Ulan Hoto;Ulan-Khoto;Ulanhot;Ulanhot Shi;Van''yemyao;Van’’yemyao;Wang-yeh-miao;Wangyemiao;Wu-lan-hao-t'e;Wu-lan-hao-t'e-shih;Wu-lan-hao-t’e;Wu-lan-hao-t’e-shih;Wulanhaote Shi;wang ye miao;wu lan hao te;wu lan hao te shi;乌兰浩特;乌兰浩特市;王爷庙; +city::2034340;Tumen;T'u-men-chan;T'u-men-shih;Tjumenskij;Tumen;T’u-men-chan;T’u-men-shih;Тюменский; +city::2034400;Tongliao;Bayan Tala;Horqin Qu;Ke'erqin Qu;Ke’erqin Qu;Pa-lin-ai-hsin;Pai-an-ta-la;Pai-yin-t'ai-lai;Pai-yin-t’ai-lai;Payintala;T'ung-liao;T'ung-liao-hsien;T'ung-liao-shih;TGO;Thong Lieu;Thong-liau-chhi;Thong-liâu-chhī;Thung-liau-su;Thông Liêu;Thûng-liàu-sṳ;Tongliao;Tongliao Shi;Tonljao khot;Tung-lieu;Tunglao;Tungliaochen;Tunljao;Tŭng-lièu;T’ung-liao;T’ung-liao-hsien;T’ung-liao-shih;ba yan ta la;ke er qin qu;tong liao;tong liao shi;tunglyao si;twnglyaw;Тонляо хот;Тунгљао;Тунляо;تونگلیاو;ٹونگلیاو;巴彦塔拉;科尔沁区;通辽;通辽市;通遼;通遼市;퉁랴오 시; +city::2034439;Tieling;T'e-ling;T'ieh-ling;T'ieh-ling-hsien;TTV;Telin;Tieling;Tiělíng;T’e-ling;T’ieh-ling;T’ieh-ling-hsien;tie ling;tyeling si;zhi ling shi;Телин;鉄嶺市;鐵嶺;铁岭;톄링 시; +city::2034440;Tieli;T'ieh-li;T'ieh-li-chen;T'ieh-li-hsien;T'ieh-shan-pao;Teli;Tieli;Tieli Shi;Tieli Zhen;T’ieh-li;T’ieh-li-chen;T’ieh-li-hsien;T’ieh-shan-pao;tie li;tie li shi;tie li zhen;铁力;铁力市;铁力镇; +city::2034497;Guangming;Guangming;T'ao-nan-chen;T'ao-nan-fu;T'ao-nan-hsien;Tao'an;Taonan;Taonan Shi;Taonan';Tao’an;T’ao-nan-chen;T’ao-nan-fu;T’ao-nan-hsien;guang ming;tao nan shi;Таонань;光明;洮南市; +city::2034599;Tailai;T'ai-lai-chen;T'ai-lai-hsien;Tailai;Tailai Xian;Tailai Zhen;Tailaichi;T’ai-lai-chen;T’ai-lai-hsien;tai lai;tai lai xian;tai lai zhen;泰来;泰来县;泰来镇; +city::2034600;Taikang;Dorbod;Du'erbote;Du'erbote Mengguzu Zizhixian;Duerbotetsi;Durvet;Du’erbote;Du’erbote Mengguzu Zizhixian;Hsiao-hao-tzu;Syaokhaotszy;T'ai-k'ang-chen;T'ai-k'ang-hsien;Taikang;Taikang Zhen;Taykan;Tu-erh-po-t'e;Tu-erh-po-t'e-ch'i;Tu-erh-po-t'e-meng-ku-tsu-tzu-chih-hsien;Tu-erh-po-t’e;Tu-erh-po-t’e-ch’i;Tu-erh-po-t’e-meng-ku-tsu-tzu-chih-hsien;T’ai-k’ang-chen;T’ai-k’ang-hsien;du er bo te;du er bo te meng gu zu zi zhi xian;tai kang;tai kang zhen;杜尔伯特;杜尔伯特蒙古族自治县;泰康;泰康镇; +city::2034615;Tahe;Ku-ch'i-ku;Ku-ch’i-ku;T'a-ho;Tahe;T’a-ho; +city::2034638;Sujiatun;Hsu-chia-t'un;Hsu-chia-t’un;Ssu-chia-t'un;Ssu-chia-t’un;Su-chia-t'un;Su-chia-t’un;Suczjatun';Sujiatun;Sukiatun;Суцзятунь; +city::2034651;Suileng;K'o-yin-ho;K’o-yin-ho;Sui-leng Hsien;Sui-leng-chen;Suileng;Suileng Xian;Suileng Zhen;sui leng;sui leng xian;sui leng zhen;绥棱;绥棱县;绥棱镇; +city::2034655;Suihua;Chui-hua;Chŭi-huá;Pei-lin-tzu;Pei-t'uan-lin-tzu;Pei-t’uan-lin-tzu;Suej-chua;Suejkhua;Sui-hoa-chhi;Sui-hoà-chhī;Sui-hua-chen;Sui-hua-hsien;Sui-hwa;Suihua;Suihua Shi;Sujkhua;Tuy Hoa;Tuy Hóa;sayhwa;ssu-ihwa si;sui hua;sui hua shi;Суејхуа;Суйхуа;سایهوا;سوئہوا;綏化;綏化市;绥化;绥化市;쑤이화 시; +city::2034691;Songjianghe;Songjianghe;Songjianghe Zhen;Sung-chiang-ho;song jiang he;song jiang he zhen;松江河;松江河镇; +city::2034714;Siping;OSQ;S-pching;Se-bing;Siping;Sipingjie;Ssupingkai;Su-peng-chhi;Supin;Sypin;Szeping;Szepingkai;Sé-bìng;Sìpíng;Sìpíngjiē;Sù-pêng-chhī;Tu Binh;Tứ Bình;si ping;si ping jie;si ping shi;spng jyln;sseuping si;sypyng;Сипинг;Съпин;Сыпин;سپنگ، جیلن;سیپینگ;四平;四平市;四平街;쓰핑 시; +city::2034754;Shunyi;Shun'i;Shun-i;Shun-i-ch'u;Shun-i-ch’ü;Shun-i-hsien;Shunyi;shun yi;Шуньи;顺义; +city::2034761;Shulan;Shu-lan-chen;Shu-lan-chieh;Shulan;Shulan';Ssu-chia-fang;Шулань; +city::2034786;Shuangyashan;Chien-shan;Seng-ak-sang;Shuang-ya-shan-shih;Shuangjashan;Shuangyashan;Shuanujashan';Siang-ah-san-chhi;Siang-ah-san-chhī;Song Ap Son;Song Áp Sơn;Suang-ja-san;Sĕ̤ng-ák-săng;shuang ya shan;shuang ya shan shi;shwangyashan;swang-yasan si;Šuang-ja-šan;Шуангјашан;Шуанъяшань;شوانگیاشان;双鴨山市;双鸭山市;雙鴨山;솽야산 시; +city::2034791;Shuangyang;Shuang-yang-chen;Shuang-yang-ho;Shuang-yang-hsien;Shuangyang;Shwangyang;Suan-yang-ho; +city::2034834;Shuangcheng;Schwang-tschong-ting;Schwang-tschöng-ting;Schwangcheng;Shuang-ch'eng-chen;Shuang-ch'eng-hsien;Shuang-ch'eng-pao;Shuang-ch’eng-chen;Shuang-ch’eng-hsien;Shuang-ch’eng-pao;Shuangcheng;Shwangcheng; +city::2034918;Shiguai;Shiguai;Shiguai Jiedao;Shiguai Qu;Shiguaigou;Shih-kuai;Shih-kuai-chen;Shih-kuai-kou;Shih-kuai-kou-kung-ch'u;Shih-kuai-kou-kung-ch’ü;Shih-kuai-tzu;Shih-kuai-tzw;Shihkuaitsun;Xiguit Kuangqu;shi guai;shi guai jie dao;shi guai kuang qu;shi guai qu;石拐;石拐区;石拐矿区;石拐街道; +city::2034937;Shenyang;Feng-t'ien;Feng-t’ien;Gorad Shehn'jan;Moukden;Mukden;SHE;Sen'gian'nk;Sen-jang;Senjana;Senjang;Senjangas;Senjango;Shehn'jan;Shehn'jan khot;Shen'jan;Shen-yang-hsien;Shen-yang-shih;Shengking;Shenjang;Shenyan;Shenyang;Shenyang Shi;Shunjan;Sim-iong-chhi;Sing-iong;Sjenyang;Swnjyangh;Sím-iông-chhī;Sīng-iòng;Tham Duong;Thẩm Dương;cenyan;chen yang;chen yang shi;san'yanga;sein hyang;sen'yan;senayanga;seon-yang;seon-yang si;shen yang;shen yang shi;shnyang;shnyangh;shynyang;sim-yang;Ŝenjango;Šen-jang;Šenjangas;Šeņjana;Σενγιάνγκ;Горад Шэньян;Шеньян;Шеньяң;Шенјанг;Шънян;Шэньян;Шэньян хот;שן-יאנג;شنيانغ;شنیانگ;شن‌یانگ;شینیانگ;شېنياڭ شەھىرى;शेनयांग;षन्यांग;ਸ਼ੇਨਯਾਂਗ;சென்யாங்;ഷെന്യാങ്;เสิ่นหยาง;沈阳;沈阳市;沉阳市;瀋陽;瀋陽市;선양;선양 시;심양; +city::2034995;Shanhecun;Shan-ho-t'un;Shan-ho-t’un;Shanhecun;Shanhetun;shan he cun;山河村; +city::2034996;Shanhaiguan;Lin-yu;Lin-yü;SHF;Shan'khajguan';Shan-hai-kuan;Shanhaiguan;Shanhaikwan;shan hai guan;Шаньхайгуань;山海关; +city::2035002;Shangzhi;Chu-he;Chu-ho;Chu-ho-hsien;Shang-chih;Shang-chih-chen;Shangzhi;Shangzhi Shi;Uchzukhe;Wu-chi-mi-ho;Wu-chu-ho;Wukimichan;Wukimiho;shang zhi;shang zhi shi;尚志;尚志市; +city::2035182;Sanchazi;Hsia-tien-tzu;San-ch'a-tze;San-ch'a-tzu;San-ch’a-tze;San-ch’a-tzu;Sanchazi; +city::2035196;Salaqi;Sa-hsien;Sa-la-ch'i;Sa-la-ch'i-hsien;Sa-la-ch’i;Sa-la-ch’i-hsien;Salaqi;Salatsi;Salqin;Saratsi;Saratsi-ting;T'u-mo-t'e-yu-ch'i;Tumd Youqi;Tumoteyou Qi;T’u-mo-t’e-yu-ch’i;sa la qi;tu mo te you qi;土默特右旗;萨拉齐; +city::2035225;Fendou;Fendou;Fendou Jiedao;Jang-hu-lu;Ranghulu;Ranghulu Qu;Ya-hu-lu-p'ao;Ya-hu-lu-p’ao;fen dou;fen dou jie dao;rang hu lu;rang hu lu qu;奋斗;奋斗街道;让胡路;让胡路区; +city::2035261;Taihecun;Ch'i-ho-ho;Ch'i-t'ai-ho;Ch’i-ho-ho;Ch’i-t’ai-ho;Qitaihe;Taihe;Taihecun;tai he;tai he cun;太和;太河村; +city::2035265;Qiqihar;Ca-ca-hak-i;Ch'i-ch'i-ha-erh;Ch'i-ch'i-ha-erh-shih;Chhe-chhe-ha-ngi-su;Chhè-chhè-hâ-ngì-sṳ;Ch’i-ch’i-ha-erh;Ch’i-ch’i-ha-erh-shih;Ciciharas;Ciciharo;Cicikar;Cicikhar;Cà̤-cà̤-hăk-ī;Lung-chiang;Lung-chiang-hsien;Lungkiang;NDG;Qiqiha'er;Qiqiha'er Shi;Qiqihaer;Qiqihar;Qiqihar Shi;Qiqihar-chhi;Qiqihar-chhī;Qiqiha’er;Qiqiha’er Shi;Te Te Cap Nhi;Tsitsihar;Tề Tề Cáp Nhĩ;Zizikar;chichi har;chichiha-eol si;chichiharu;chichiharu shi;chychyhar;qi qi ha er;qi qi ha er shi;Ĉiĉiharo;Čičiharas;Ћићихар;Цицикар;Цицихар;Ціцікар;چىچىخار شەھىرى;چیچیهار;چیچیہار;ฉีฉีฮาร์;チチハル;チチハル市;齊齊哈爾;齊齊哈爾市;齐齐哈尔;齐齐哈尔市;치치하얼 시; +city::2035325;Qinggang;Ch'ing-kang;Ch'ing-kang-chen;Ch'ing-kang-hsien;Ch’ing-kang;Ch’ing-kang-chen;Ch’ing-kang-hsien;Qinggang;Qinggang Xian;Qinggang Zhen;Tsingkang;Tso-shu-kang;qing gang;qing gang xian;qing gang zhen;青冈;青冈县;青冈镇; +city::2035399;Songyuan;Songyuan;Sunujuan';Sōngyuán;YSQ;sangywan;song yuan;ssung-wian si;Сунъюань;سانگیوان;松原;쑹위안 시; +city::2035453;Pingzhuang;P'ing-chuang;Pingzhuang;Pingzhuang Zhen;P’ing-chuang;Yuanbaoshan Qu;ping zhuang;ping zhuang zhen;yuan bao shan qu;元宝山区;平庄;平庄镇; +city::2035511;Panshi;Mo-p'a-shan;Mo-p'an-shan;Mo-p’a-shan;Mo-p’an-shan;P'an-shih;P'an-shih-chen;P'an-shih-hsien;Pan'shi;Panshi;Panshihtun;P’an-shih;P’an-shih-chen;P’an-shih-hsien;Паньши; +city::2035513;Panshan;P'an-shan-chen;P'an-shan-hsien;Panshan;P’an-shan-chen;P’an-shan-hsien;Shuang-t'ai-tzu;Shuang-t’ai-tzu; +city::2035593;Nianzishan;Ch'ien-nien-tzu-shan;Ch’ien-nien-tzu-shan;Nianzishan;Nien-tzu-shan;Nien-tzu-shan-chan; +city::2035601;Nenjiang;Mergen;Mo-erh-ken;Nen-ch'eng;Nen-ch'eng-hsien;Nen-chiang;Nen-chiang-chen;Nen-ch’eng;Nen-ch’eng-hsien;Nenjiang;Nenjiang Xian;Nenkiang;Nun Cheng;Nun-ch'iang;Nun-ch'ien;Nun-ch’iang;Nun-ch’ien;Nunkiang;Nunkianghsien;Nünkianghsien;nen jiang;nen jiang xian;嫩江;嫩江县; +city::2035610;Nehe;Bordo;Bordotschan;Na-ho;Ne-ho;Nehe;Nehkheh;Nekhe;No-ho;No-ho-chen;No-ho-hsien;Nê-ho;Po-erh-to;Porto;Нэхэ; +city::2035635;Nantai;Nantai;Nantai Zhen;nan tai;nan tai zhen;南台;南台镇; +city::2035644;Nanpiao;Nanpiao;Pien-lien-tzu;nan piao;南票; +city::2035669;Lianhe;Lianhe;Lianhe Jiedao;Nan-ch'a-t'un;Nan-ch’a-t’un;Nancha;Nancha Qu;lian he;lian he jie dao;nan cha;nan cha qu;南岔;南岔区;联合;联合街道; +city::2035707;Mujiayingzi;; +city::2035715;Mudanjiang;Bo-tan-kang-chhi;Bó͘-tan-kang-chhī;MDG;Mau GJon Giang;Mu-dang-geng;Mu-tan-chiang;Mu-tan-chiang-shih;Mu-tan-tiang;Mu-tan-ťiang;Mudan'czjan;Mudancjan;Mudandziangas;Mudandzjan;Mudanjiang;Mudanjiang Shi;Mutankiang;Mū-dăng-gĕ̤ng;Mẫu Đơn Giang;mu dan jiang;mu dan jiang shi;mudanjang si;mwdanjyang;Мудандзян;Муданьцзян;Муданђанг;مودانجیانگ;مۇدەنجياڭ شەھىرى;牡丹江;牡丹江市;무단장 시; +city::2035746;Mishan;Dunan;Hsin-mi-shan;Mi-shan-chen;Mishan;Mishan';Tung-an;Мишань; +city::2035754;Mingyue;An-t'u;An-t'u-hsien;An-t’u;An-t’u-hsien;Antuzhan;Ming-yueh-chen;Ming-yueh-kou;Ming-yueh-kou-chen;Ming-yüeh-chen;Ming-yüeh-kou;Ming-yüeh-kou-chen;Mingyue;Mingyuegou;Weng-sheng-la-tzu;ming yue;明月; +city::2035758;Mingshui;Hsing-lung-chen;Ming-shui-chen;Ming-shui-hsien;Mingshui;Mingshui Xian;Mingshui Zhen;ming shui;ming shui xian;ming shui zhen;明水;明水县;明水镇; +city::2035801;Meihekou;Hai-lung;Hai-lung-hsien;Hailong;Mei-ho-k'ou;Mei-ho-k'ou-chen;Mei-ho-kow;Mei-ho-k’ou;Mei-ho-k’ou-chen;Meihekou; +city::2035836;Manzhouli;Lu-pin-hsien;Lupin;Man-chou-li;Man-chou-li-shih;Man-chow-li;Manchuli;Manchuria;Manchuriya;Manchzhuriya;Mandschurei;Manzhouli;NZH;man zhou li;man zhou li shi;man'chzhurija;manjeouli;manzhuur;Манжуур;Маньчжурия;満州里;満州里市;满洲里市;만저우리; +city::2035966;Longjing;Liu-tao-kou;Longjing;Lung-ching;Lung-ching-chen;Lung-ching-chieh;Lung-ching-shih;Lung-ching-ts'un;Lung-ching-ts’un;Luntszintsun;Ryuseison;Ryūseison;Yanji;Yen-chi-hsien;Yonjontsuon;long jing;龙井; +city::2035970;Longjiang;Chu-chia-k'an;Chu-chia-k’an;Chukiakan;Lonczjan;Longjiang;Longjiang Xian;Longjiang Zhen;Lung-chiang;Lung-chiang-chen;T'u-erh-ch'ih-ha;T’u-erh-ch’ih-ha;long jiang;long jiang xian;long jiang zhen;Лонцзян;龙江;龙江县;龙江镇; +city::2035980;Longfeng;Longfeng;Longfeng Jiedao;Longfeng Qu;Lung-feng;Lung-feng-shan;long feng;long feng jie dao;long feng qu;龙凤;龙凤区;龙凤街道; +city::2036033;Liuhe;Liu-ho;Liu-ho-chen;Liu-ho-hsien;Liu-hu-ch'eng;Liu-hu-ch’eng;Liu-shu-ho-tzu;Liuhe;Ljukheh;Luiho;liu he;Люхэ;柳河; +city::2036055;Lishu;Chiu-li-shu;Feng-hua;Fenghwa;Li-shu-chen;Li-shu-hsien;Lishat';Lishu;Mai-mai-chieh;li shu;Лишать;梨树; +city::2036066;Linkou;Lin-k'ou-chen;Lin-k'ou-hsien;Lin-k’ou-chen;Lin-k’ou-hsien;Linkou;Linkou Xian;Linkow;lin kou;lin kou xian;林口;林口县; +city::2036069;Linjiang;Lin'czjane;Lin-chiang;Lin-chiang-hsien;Linjiang;Mao-erh-shan;Mao-tzu-shan;Maoerhshanchan;lin jiang;Линьцзяне;临江; +city::2036075;Lingyuan;Chien-ch'ang;Kienchang;Ling-yuan-chen;Ling-yuan-hsien;Ling-yüan-chen;Ling-yüan-hsien;T'a-kou; +city::2036081;Lingdong;Ling-tung;Lingdong; +city::2036106;Liaozhong;A-shih-niu-lu;A-ssu-niu;A-ssu-niu-lu;Chiu-liao-chung;Liao-chung;Liao-chung-chen;Liao-chung-hsien;Liaozhong;Lyaochzhun; +city::2036109;Liaoyuan;Dongliao;Hsi-an;Laeojuan;Liao-juean;Liao-jüan;Liao-yuan-shih;Liao-yüan-shih;Liaojuanas;Liaoyuan;Liau-goan-chhi;Lieu Nguyen;Lieu-nguong;Liâu-goân-chhī;Lièu-nguòng;Liêu Nguyên;Ljaojuan';Ljaojuen;Läojuan;Pei-feng;Pei-feng-hsien;Shian;Sian;T'a-k'a-ta;Ta-ko-tan;Tung-liao;T’a-k’a-ta;liao yuan;liao yuan shi;lyaowian si;lyawywan;Љаојуен;Ляоюань;لیاویوان;辽源市;遼源;遼源市;랴오위안 시; +city::2036113;Liaoyang;LQQ;Liao-jang;Liao-yang-hsien;Liao-yang-shih;Liaojangas;Liaoyang;Liau-iong-chhi;Lieu Duong;Lieu-iong;Liâu-iông-chhī;Lièu-iòng;Liêu Dương;Ljaojan;Ljaojang;liao yang;liao yang shi;lyaoyang si;lyawyang;Љаојанг;Ляоян;لياۋياڭ شەھەر;لیاویانگ;辽阳市;遼陽;遼陽市;랴오양 시; +city::2036226;Lanxi;Lan-hsi;Lan-hsi-chen;Lan-hsi-hsien;Lansi;Lanxi;Lanxi Xian;Lanxi Zhen;Shuang-miao-tzu;lan xi;lan xi xian;lan xi zhen;兰西;兰西县;兰西镇; +city::2036237;Langxiang;Lang-hsiang;Langxiang;Langxiang Zhen;lang xiang;lang xiang zhen;朗乡;朗乡镇; +city::2036241;Langtou;Lang-t'ou-chen;Lang-t’ou-chen;Langtou; +city::2036283;Kuandian;K'uan-tien;K'uan-tien-chen;K'uan-tien-hsien;Kuandian;Kwan-tien;K’uan-tien;K’uan-tien-chen;K’uan-tien-hsien; +city::2036337;Kaiyuan;Jih-pen-tsu-chieh-ti;K'ai-yuan-chen;Kaiyuan;Kajjuan';K’ai-yüan-chen;Sun-chia-t'ai;Sun-chia-t’ai;Кайюань; +city::2036338;Kaitong;Ch'i-ching-tsa;Ch'i-ching-tzu;Ch’i-ching-tsa;Ch’i-ching-tzu;K'ai-t'ung;K'ai-t'ung-chen;K'ai-t'ung-hsien;Kaibung;Kaitong;Kaitun;K’ai-t’ung;K’ai-t’ung-chen;K’ai-t’ung-hsien;T'ung-yu;Tongyu;T’ung-yü;kai tong;开通; +city::2036389;Jixi;Chi-hsi;Chi-hsi-shih;Chi-ning;Chi-ning-chieh;Czisi;Dzisi;Gie-sa;Giĕ-să̤;JXA;Jixi;Jixi Shi;Ke Tay;Ke-se-chhi;Ke-se-chhī;Kisi;Kê Tây;Ti-si;ji xi;ji xi shi;jisi si;jyshy;Ťi-si;Ђиси;Цзиси;جیشی;鶏西;鶏西市;鷄西;鸡西;鸡西市;지시 시; +city::2036401;Jiutai;Chiu-t'ai;Chiu-t'ai-chen;Chiu-t'ai-hsien;Chiu-t’ai;Chiu-t’ai-chen;Chiu-t’ai-hsien;Hsia-chiu-t'ai;Hsia-chiu-t’ai;Jiutai;Shachutai;Shāchūtai;Siakiutai;T'eu-t'ai;Teutay;Teymau;Teymaū;T’eu-t’ai; +city::2036403;Jiupu;; +city::2036418;Jishu;Chi-shu;Jishu; +city::2036427;Jinzhou;Cam Chau;Chien-hsien;Chin;Chin-chou;Chin-chou-shih;Chin-hsien;Chinchow;Czin'chzhou;Cẩm Châu;Dzindzou;Dzindžou;Ging-ciu;Gjingou;Gīng-ciŭ;JNZ;Jintsjou;Jinzhou;Kim-chiu-chhi;Kinchou;Kintschou;Kím-chiu-chhī;Tin-cou;dzinjou;jin zhou;jin zhou shi;jinjeou si;jnzhww;jynjw;Ĝjinĝou;Ťin-čou;Ђинџоу;Цзиньчжоу;Цзіньчжоу;جنژوو;جینجو;ძინჯოუ;錦州;錦州市;锦州市;진저우 시; +city::2036434;Lianshan;Chin-hsi;Chin-hsi-chen;Chinshi;Chinsi;Jinxi;Leinshan;Lianshan;Lianshan Qu;Lien-shan;lian shan;lian shan qu;连山;连山区; +city::2036458;Jining;Chi-ning;Chi-ning-hsien;Chi-ning-shih;Czinin;Jining;Jining Qu;P'ing-ti-ch'uan;P'ing-ti-ch'uan-chen;P’ing-ti-ch’üan;P’ing-ti-ch’üan-chen;Tsining;Tszinin;ji ning;ji ning qu;ping de quan zhen;Цзинин;平地泉镇;集宁;集宁区; +city::2036502;Jilin;Cat Lam;Chi-lin;Chi-lin-shih;Chi-ling;Ciudad de Jilin;Csilin;Czilin';Cát Lâm;Dzilin;Dzilinas;Gek-ling;Gilino;Girin;Girin khot;Gék-lìng;JIL;Jilin;Jilin Ceety;Jilin City;Jilin Hiria;Jilin Shi;Jilin i Jilin;Jilinstad;Kiat-lim-chhi;Kiat-lîm-chhī;Kilin;Kirin;Kota Jilin;Ti-lin;Yung-chi;Yung-chi-hsien;Yung-chi-shih;Yungki;gylyn;ji lin;ji lin shi;jilin si;jilina;Ĝilino;Ťi-lin;Ђилин;Гирин;Гирин хот;Дзилин;Цзилинь;גילין;جىلىن شەھىرى;جیلن شہر;جی‌لین;ਜਿਲਿਨ;吉林;吉林市;지린 시; +city::2036519;Jidong;Chi-tung;Chi-tung-chen;Jidong; +city::2036536;Minzhu;Chiacho;Chiao-ho;Chiao-ho-chen;Chiao-ho-hsien;Czjaokheh;Jiaohe;Kiaoho;Minzhu;O-mu-hsien;Omu;Ta-chiao-ho;Tachiaho;Takiaoho;min zhu;Цзяохэ;民主; +city::2036581;Jiamusi;Ch'a-mu-ssu;Chia-mu-ssu;Chia-mu-ssu-shih;Chieh-mu-ssu;Ch’a-mu-ssu;Czjamusy;Dziamusi;Ga-muk-su;Giai Moc Tu;Giai Mộc Tư;Gjamusi;Gă-mŭk-sṳ̆;Hua-ch'uan-hsien;Hua-chuan;Hua-ch’uan-hsien;Hwachwan;JMU;Jiamusi;Jiamusi Shi;Ka-bok-su-chhi;Ka-bo̍k-su-chhī;Kiamusas;Kiamusze;Tia-mu-s';jamusseu si;jamusu;jamusu shi;jia mu si;jia mu si shi;jyamwsy;Ťia-mu-s’;Ђамуси;Цзямусы;جيامۇسى شەھىرى;جیاموسی;ジャムス;ジャムス市;佳木斯;佳木斯市;자무쓰 시; +city::2036595;Jalai Nur;Cha-lai-no-erh;Chaiainor;Chalainor;Chzhalajnor;Chzhalaynor;Dalainur;Dalaynur;Jalai Nur;Zhalai Nuo'er;Zhalai Nuo’er;zha lai nuo er;Чжалайнор;扎赉诺尔; +city::2036597;Jiagedaqi;Chia-ko-ta-ch'i;Chia-ko-ta-ch’i;JGD;Jagdaqi;Jiagedaqi;Jiāgédáqí;K'u-erh-ch'i;K'u-lu-ch'i;Kurchi;K’u-erh-ch’i;K’u-lu-ch’i;jageodachi gu;jia ge da qi qu;加格达奇区;加格達奇区;加格達奇區;자거다치 구; +city::2036619;Hushitai;Hu-shih-t'ai;Hu-shih-t’ai;Hushitai; +city::2036653;Hunchun;Hui-ch'un;Hui-ch’un;Hun-ch'un-chen;Hun-ch'un-hsien;Hun-ch'ung;Hun-ch’un-chen;Hun-ch’un-hsien;Hun-ch’ung;Hunchun;Hunchun Shi;Hungtschung;Khun'chun';hui chun;hui chun shi;Хуньчунь;珲春;珲春市; +city::2036670;Hulan Ergi;Fu-erh-la-chi;Fu-la-erh-chi;Fularki;Hulan Ergi;Lung-chiang; +city::2036671;Hulan;Chu-lan-tschong;Chu-lan-tschöng;Hu-lan-chen;Hu-lan-hsien;Hu-lang-ch'eng;Hu-lang-ch’eng;Hulan;Khulan;Хулан; +city::2036685;Huinan;Chiu-hui-nan;Hui-nan-chen;Hui-nan-hsien;Huinan;Huinanzhen;Hwei-nan;Hweinan-ting; +city::2036713;Huanren;Chiu-huai-jen;Huai-jen;Huan-jen;Huan-jen-chen;Huan-jen-hsien;Huanren;Hwanjen;Yuan Jen; +city::2036734;Huangnihe;Huang-ni-ho;Huang-ni-ho-tzu;Huangnihe; +city::2036753;Huanan;Ch'ien-chen-chieh;Ch'ien-chen-hsiang;Ch’ien-chen-chieh;Ch’ien-chen-hsiang;Hu-nan-ying;Hu-nan-ying-chen;Hua-ch'uan;Hua-ch'uan-chen;Hua-ch’uan;Hua-ch’uan-chen;Hua-nan-chen;Huanan;Huanan Xian;Huanan Zhen;hua nan;hua nan xian;hua nan zhen;桦南;桦南县;桦南镇; +city::2036776;Huadian;Hua-tien;Hua-tien-chen;Hua-tien-hsien;Huadian;Huen-tien;Hwatien;K'uang-kai;Koangai;Kuan-chieh;K’uang-kai; +city::2036876;Honggang;Honggang;Honggang Jiedao;Honggang Qu;hong gang;hong gang jie dao;hong gang qu;红岗;红岗区;红岗街道; +city::2036892;Hohhot;Choech Chot;Choech chot;Chöch Chot;Chöch chot;HET;Hohhot;Hohhot Shi;Hohhot-chhi;Hohhot-chhī;Hohhot-su;Hohhot-sṳ;Hohotas;Hohoto;Hou-ho;Hoĥoto;Hu-ho-hao-t'e;Hu-ho-hao-t'e-shih;Hu-ho-hao-t’e;Hu-ho-hao-t’e-shih;Huhe Hoter;Huhehaote;Huhehot;Huhhot;Khokh khot;Khokhot;Khukh-Khoto;Koekxot shehiri;Kuei-hua;Kuei-sui;Kuei-sui-hsien;Kuei-sui-shih;Kuku-khoto;Kwei-hwa-cheng;Kwei-hwa-ting;Kweihwa;Kweihwa-Suiyuan;Kweisui;Kweisui-hsien;Kökxot shehiri;Suiyuan;Suiyüan;fufuhoto;fufuhoto shi;hohota;hu he hao te;hu he hao te shi;hu hxt;huheohaoteo si;hwhhwt;hwhwt;Хох хот;Хохот;Хух-Хото;Хөх хот;חוחחוט;هوهوت;ہوہوٹ;होहोत;ฮูฮอต;མཁར་སྔོན་གྲོང་ཁྱེར།;ᠬᠥᠬᠡᠬᠣᠲᠠ;フフホト;フフホト市;呼和浩特;呼和浩特市;후허하오터 시; +city::2036920;Fendou;Fendou;Hengshan;Hengshan Qu;fen dou;heng shan qu;奋斗;恒山区; +city::2036933;Helong;Helong;Helong Shi;Helong Zhen;Ho-lung;Ho-lung-chen;Khehlune;Longcheng Zhen;San-tao-kou;he long;he long shi;he long zhen;long cheng zhen;Хэлуне;和龙;和龙市;和龙镇;龙城镇; +city::2036959;Heishan;Chen-an;He Shan;Hei-shan-chen;Hei-shan-hsien;Heishan; +city::2036973;Heihe;Ai-hun;Ai-hun-hsien;Aigun;Aihui;Chej-che;HEK;Hac Ha;Haik-o;Hei-ho;Hei-ho-chen;Hei-ho-t'un;Hei-ho-t’un;Heihe;Heihe Shi;Hek-ho-chhi;Hek-hô-chhī;Háik-ò̤;Hắc Hà;Khehjkheh;Sa-ha-liang;Sachaljan;Sakhalyan;Ta-hei-ho;hayhy;hei he;hei he shi;heiheo si;Хэйхэ;هایهی;ہئیہے;黑河;黑河市;黒河;黒河市;헤이허 시; +city::2036986;Hegang;Che-kang;Hac Cuong;Hao-kang;Hao-kang-shih;Hegang;Hegang Shi;Hegangas;Hingshanchen;Hinshanchen;Ho-kang;Hok-gong;Hok-kong-chhi;Ho̍k-kong-chhī;Hsian-yuan-t'un;Hsian-yüan-t’un;Hsiangyuantun;Hsing-shan;Hsing-shan-chen;Hsing-shan-chieh;Hsinganchen;Hŏk-gŏng;Hạc Cương;Khegan;Khegang;Khehgan;Khugan;Sinshan Chzhen;he gang;he gang shi;heogang si;hngang;Хеганг;Хъган;Хэган;هنگانگ;ہیگانگ;鶴崗;鶴崗市;鹤岗;鹤岗市;허강 시; +city::2037013;Harbin;Cap Nhi Tan;Charbin;Charbinas;Charmpin;Cáp Nhĩ Tân;Gorad Kharbin;HRB;Ha'erbin;Ha-erh-pin;Ha-erh-pin-shih;Harbin;Harbin Shi;Harbin-chhi;Harbin-chhī;Harbina;Harbino;Ha’erbin;Kharbin;Lungsod ng Harbin;Pin-chiang;Pin-chiang-hsien;Pinkiang;Xarbin;ha er bin;ha er bin shi;ha-eolbin si;har bin;harabina;harbn;harbyn;harpina;harubin;harubin shi;hrbyn;kharbini;Χαρμπίν;Горад Харбін;Харбин;Харбін;Խարբին;חרבין;خاربىن شەھىرى;هاربن;هاربین;ہاربن;हारबिन;हार्पिन;ਹਾਰਬਿਨ;ฮาร์บิน;ဟာရ်ပင်းမြို့;ხარბინი;ハルビン;ハルビン市;哈尔滨;哈尔滨市;哈爾濱;하얼빈 시; +city::2037069;Hailun;Hai-lun-chen;Hai-lun-hsien;Hailun;Hailun Shi;Hailun Zhen;T'ung-ken;T'ung-ken-ho;Tung-kei;T’ung-ken;T’ung-ken-ho;hai lun;hai lun shi;hai lun zhen;海伦;海伦市;海伦镇; +city::2037075;Hailin;Hai-lin-chen;Hai-lin-ts'un;Hai-lin-ts’un;Hailin;Hailin Shi;Khajlin;hai lin;hai lin shi;Хайлин;海林;海林市; +city::2037078;Hailar;HLD;Hai-la-erh;Hai-la-erh-shih;Hailar;Hailar Shi;Hairaru;Hairāru;Hu-lun;Khailar;Khajlar;hai la er qu;hairaru qu;Хайлар;ハイラル区;海拉尔区; +city::2037086;Haicheng;Hai-ch'eng-chen;Hai-ch'eng-hsien;Hai-ch’eng-chen;Hai-ch’eng-hsien;Haicheng;Haicheng Shi;Haitschong;Haitschöng;Lo-lang;hai cheng;hai cheng shi;海城;海城市; +city::2037222;Gongzhuling;Gunchzhulina;Huai-te;Huai-to-hsien;Huaide;Kung-chu-ling;Kung-chu-ling-chen;Гунчжулина; +city::2037240;Gongchangling;Gongchangling;Kung-ch'ang-ling;Kung-ch’ang-ling; +city::2037252;Genhe;Ergun Zuoqi;Genhe;Genhe Shi;Hexi;Hexi Jiedao;Ken-ho;O-erh-ku-na-ch'i;O-erh-ku-na-ch’i;O-erh-ku-na-tso-ch'i;O-erh-ku-na-tso-ch’i;O-tso-ch'i;O-tso-ch’i;e er gu na zuo qi;gen he;gen he shi;he xi;he xi jie dao;根河;根河市;河西;河西街道;额尔古纳左旗; +city::2037311;Gannan;Erh-chan;Gannan;Gannan Xian;Gannan Zhen;Kan-ching-tzu;Kan-nan;Kan-nan-chen;Kan-nan-hsien;gan nan;gan nan xian;gan nan zhen;甘南;甘南县;甘南镇; +city::2037334;Fuyu;Fu-yu-chen;Fu-yü-chen;Fuyu;Fuyu Xian;Fuyu Zhen;Fuyuy;Ning-nien;Ning-nien Chan;Yantszyatun';Yantszyatun’;fu yu;fu yu xian;fu yu zhen;富裕;富裕县;富裕镇; +city::2037335;Fuyu;Betuna;Bodune;Fu-yu-chen;Fu-yu-hsien;Fu-yü-chen;Fu-yü-hsien;Fuyu;Hsin-ch'eng;Hsin-ch'eng-hsien;Hsin-ch’eng;Hsin-ch’eng-hsien;Petuna;Po-tu-na;Po-tu-no;Sincheng; +city::2037345;Fuxin;A-chin;Fou-hsin;Fou-hsin-chen;Fou-hsin-hsien;Fou-hsin-hsien-t'u-mo-t'e-ch'i;Fou-hsin-hsien-t’u-mo-t’e-ch’i;Fou-hsin-meng-ku-tsu-tzu-chih-hsien;Fu-hsin;Fu-sin;Fushin;Fusin';Fuxin;Hsin-fou-hsien-t'u-mo-t'e-ch'i;Hsin-fou-hsien-t’u-mo-t’e-ch’i;Фусинь; +city::2037346;Fuxin;Fou-hsin;Fou-hsin-shih;Fu-hsin;Fu-sin;Fusin;Fusin';Fusinas;Fuxin;Hu-sin-chhi;Hū-sin-chhī;Paiu-sing;Phu Tan;Phụ Tân;Pâiu-sĭng;faksyn;fu xin;fu xin shi;fwshn;pusin si;Фусин;Фусинь;Фүшинь хот;فاکسین;فوشن;阜新;阜新市;푸신 시; +city::2037355;Fushun;Bu-sun-chhi;Bú-sūn-chhī;Chiu-fu-shun;Fu-shan;Fu-shun-hsien;Fu-shun-shih;Fu-sun;Fu-šun;Fushun;Fushun';Fushuncheng;Fusjun;Fusun;Fusunas;Fusuno;Fuŝuno;Fušunas;Phu Thuan;Phủ Thuận;U-song;fu shun;fu shun shi;fusuna;fwshwn;pusun si;pwswn;Ū-sông;Фушун;Фушунь;פושון;فوشون;ਫ਼ੁਸ਼ੁਨ;抚顺市;撫順;撫順市;푸순 시; +city::2037370;Fuli;Chi-hsien;Fu-li-chen;Fuli;Fulitun;Jixian;Фули; +city::2037375;Fujin;Fu-chin;Fu-chin-chen;Fu-chin-hsien;Fu-k'o-chin;Fu-k’o-chin;Fuczin';Fujin;Fukin;Фуцзинь; +city::2037391;Beichengqu;Beichengqu;Beichengqu Jiedao;Feng-chen;Feng-chen-hsien;Fengzhen;Fengzhen Shi;bei cheng qu;bei cheng qu jie dao;feng zhen;feng zhen shi;li zhen;li zhen shi;丰镇;丰镇市;北城区;北城区街道;豊鎮;豊鎮市; +city::2037411;Fengcheng;Feng-ch'eng-chen;Feng-ch'eng-hsien;Feng-ch’eng-chen;Feng-ch’eng-hsien;Feng-huang-ch'eng;Feng-huang-ch’eng;Fengcheng;Fenghwangcheng; +city::2037494;Erdaojiang;Erdaojiang;Erh-tao-chiang;Erh-tao-kou; +city::2037534;Dunhua;Ao-tung-ch'eng;Ao-tung-ch’eng;Dun'khua;Dunhua;Tun-hua;Tun-hua-chen;Tun-hua-hsien;Tung Hua;Tunhwa;Дуньхуа; +city::2037611;Dongning;Dongning;Dongning Xian;Dongning Zhen;Hsiao-ch'eng-tzu;Hsiao-ch’eng-tzu;Tung-ning;Tung-ning-chen;Tung-ning-hsien;dong ning;dong ning xian;dong ning zhen;东宁;东宁县;东宁镇; +city::2037620;Dongling;Dongling;Donlin;Tung-ling;Донлин; +city::2037658;Dongfeng;Dongfeng;Ta-tu-ch'uan;Ta-tu-ch’uan;Tung-feng;Tung-feng-chen;Tung-feng-hsien;Tung-p'ing-hsien;Tung-p’ing-hsien;dong feng;东丰; +city::2037685;Dongxing;Didao;Didao Qu;Dongxing;Ti-tao;di dao;di dao qu;dong xing;东兴;滴道;滴道区; +city::2037712;Dehui;Chang-chia-wan;Dehui;Te-hui;Te-hui-chen;Tszhantszyavan';Tszhantszyavan’;Yao-men; +city::2037799;Datong;DAT;Dagu;Daido;Datong;Datongas;Datongo;Datun;Datung;GJai GJong;Ta-jen;Ta-jen-hsien;Ta-ku;Ta-t'ung;Ta-t'ung-hsien;Ta-t'ung-shih;Ta-tchung;Ta-t’ung;Ta-t’ung-hsien;Ta-t’ung-shih;da tong shi;datung si;datwng;Đại Đồng;Датун;Датунг;داتونگ;داتۇڭ شەھىر;大同市;다퉁 시; +city::2037820;Dashitou;Dashitou;Ta-shih-t'ou;Ta-shih-t'ou-ho-tzu;Ta-shih-t’ou;Ta-shih-t’ou-ho-tzu;Tashitou; +city::2037823;Dashiqiao;Dashiqiao;Dashiqiao Shi;Ta-shih-ch'iao;Ta-shih-ch'iao-chen;Ta-shih-ch’iao;Ta-shih-ch’iao-chen;Tashihkiao;Yingkou;da shi qiao;da shi qiao shi;大石桥;大石桥市; +city::2037860;Daqing;An-ta;An-ta-shih;Anda;DQA;Dachin;Dacin;Dai-keng;Daqing;Dâi-kéng;GJai Khanh;Gorad Dacyn;Sa-erh-t'u;Sa-erh-t’u;Sartu;Sha-erh-t'u;Sha-erh-t’u;Ta-cching;Ta-čching;Tai-kheng-chhi;Tāi-khèng-chhī;da qing;da qing shi;daching si;dachyng;dakyng;Đại Khánh;Горад Дацын;Дацин;Дачин;داچىڭ شەھىر;داچینگ;داکینگ;大庆市;大慶;大慶市;다칭 시; +city::2037886;Dandong;An-tung-hsien;An-tung-shih;Antung;DDG;Dan'dun;Dandong;Dandong - dan dong;Dandong - 丹东;Dandong Shi;Dandun;Dandung;Dang-dung;Dăng-dŭng;GJan GJong;Sha-ho-ch'en;Sha-ho-ch’en;Sha-ho-tzu;Tan-tong-chhi;Tan-tong-chhī;Tan-tung;Tan-tung-shih;dan dong;dan dong shi;dandung si;dandwng;dandwngh;dandwnj;tan tng;Đan Đông;Дандун;Дандунг;Даньдун;Դանդուն;داندونج;داندونغ;داندونگ;ഡാൻദോങ്;ตานตง;丹东市;丹東;丹東市;단둥 시; +city::2037913;Linghai;Chin;Chin-hsien;Dalinghe;Jinxian;Linghai;Linghai Shi;Ta-ling-ho;Ta-ling-ho-chen;Ta-ling-ho-tien;Ta-ling-ho-tien-tzu; +city::2037930;Dalai;Da'an;Dalai;Dalaysyan';Dalaysyan’;Da’an;Mo-lo-hung-kang-tzu;Ta-an;Ta-lai;Ta-lai-chen;Ta-lai-hsien;Talaicheng; +city::2038067;Chifeng;CIF;Cch'-feng;Ch'ih-feng;Ch'ih-feng-chou;Ch'ih-feng-hsien;Ch'ih-feng-shih;Chhak-fung-su;Chhak-fûng-sṳ;Chhek-hong-chhi;Chhek-hong-chhī;Chiah-hung;Chifehn;Chifeng;Chifeng Shi;Chiáh-hŭng;Ch’ih-feng;Ch’ih-feng-chou;Ch’ih-feng-hsien;Ch’ih-feng-shih;Ha-ta;Hongshan Qu;Tschifoeng;Tschiföng;Ulaan Hada;Ulaankhad;Ulanhad;Wu-lan-ha-ta;Xich Phong;Xích Phong;cheupeong si;chi feng;chi feng shi;chyfng;chyfyng;hong shan qu;Čch’-feng;Улаанхад;Чифенг;Чифэн;چیفنگ;چیفینگ;红山区;赤峰;赤峰市;츠펑 시; +city::2038080;Chengzihe;Ch'eng-tzu-ho;Chengzihe;Ch’eng-tzu-ho; +city::2038087;Chengde;CDE;Ccheng-te;Cengde;Ch'eng-te;Ch'eng-te-hsien;Ch'eng-te-shih;Chehndeh;Chengde;Chengdé;Chengteh;Ch’eng-te;Ch’eng-te-hsien;Ch’eng-te-shih;Je-ho;Jehoi;Jehol;Jo-ho;Seng-tek-chhi;Sing-daik;Sêng-tek-chhī;Sìng-dáik;Thua GJuc;Thừa Đức;Tschongto;cheng de;cheng de shi;cheongdeo si;chngdh;Čcheng-te;Čengdė;Ченгде;Чэндэ;چنگده;چینگدے;承徳市;承德;承德市;청더 시; +city::2038118;Chaoyang;Ch'ao-yang-chen;Ch'ao-yang-shen;Chaojan;Chaoyang;Ch’ao-yang-chen;Ch’ao-yang-shen;Huinan;chao yang;Чаоян;朝阳; +city::2038120;Chaoyang;CHG;Ch'ao-yang-chen;Ch'ao-yang-hsien;Ch'ao-yang-shih;Chaiyang;Chaojan;Chaoyang;Ch’ao-yang-chen;Ch’ao-yang-hsien;Ch’ao-yang-shih;San-tso-t'a;San-tso-t’a;chao yang shi;chaoyang si;chawyang;Чаоян;چاویانگ;朝陽市;차오양 시; +city::2038139;Changtu;Ch'ang-t'u-chen;Ch'ang-tu-chan;Changtu;Changtu Xian;Chantu;Ch’ang-tu-chan;Ch’ang-t’u-chen;chang tu;chang tu xian;Чанту;昌图;昌图县; +city::2038154;Changping;Ch'ang-p'ing-ch'u;Ch'ang-p'ing-chen;Ch'ang-p'ing-hsien;Changping;Chanpin;Ch’ang-p’ing-chen;Ch’ang-p’ing-ch’ü;Ch’ang-p’ing-hsien;chang ping;Чанпин;昌平; +city::2038158;Changling;Ch'ang-ling-chen;Ch'ang-ling-hsien;Ch'ang-ling-tzu;Changling;Ch’ang-ling-chen;Ch’ang-ling-hsien;Ch’ang-ling-tzu;zhang ling;长岭; +city::2038180;Changchun;CGQ;Cancuna;Cangcun;Cangcunas;Cangcuno;Cangzcenh;Cchang-cchun;Ch'ang-ch'un-hsien;Ch'ang-ch'un-shih;Chanchun;Chanchun';Changchuen;Changchun;Changchun Shi;Chhong-chhun-su;Chhòng-chhûn-sṳ;Chángchūn;Ch’ang-ch’un-hsien;Ch’ang-ch’un-shih;Csangcsun;Diong-chung;Diòng-chŭng;Gorad Chanchun';Hsin-chin;Hsin-ching;Hsinking;K'ua-ch'eng-tzu;Kwan-cheng-tze;K’ua-ch’eng-tzu;Tiong-chhun-chhi;Tiông-chhun-chhī;Truong Xuan;Trường Xuân;cangacuna;changachuna;changchun si;changchwn;jangchun;tshanghtshwn;zhang chun;zhang chun shi;Çangçun;Ĉangĉuno;Čangčun;Čangčunas;Čančuņa;Čchang-čchun;Горад Чанчунь;Чангчуен;Чанчун;Чанчунь;Чанчүнь хот;Չանչուն;צאנגצון;تشانغتشون;چانگچون;چاڭچۈن شەھىرى;चांगचून;छांगछुन;ਚਾਂਗਚੁਨ;ചാങ്ചൻ;ချောင်ချွန်းမြို့;長春;長春市;长春;长春市;장춘;창춘 시; +city::2038198;Chaihe;Ch'ai-ho;Chaihe;Chaihe Zhen;Ch’ai-ho;chai he;chai he zhen;柴河;柴河镇; +city::2038274;Boli;Boli;Boli Xian;P'o-li;P'o-li-chen;P'o-li-hsien;P’o-li;P’o-li-chen;P’o-li-hsien;bo li;bo li xian;Боли;勃利;勃利县; +city::2038283;Binzhou;Bin Xian;Binsyan;Binxian;Binzhou;Pin;Pin-chou;Pin-chou-chen;Pin-chow;Pin-hsien;Pintschou;Wei-tzu-kou;bin xian;bin zhou;bin zhou zhen;宾县;宾州;宾州镇; +city::2038300;Benxi;Ban Khe;Behn'si;Ben'si;Bensi;Benxi;Bunsi;Bản Khê;Pen Shi;Pen-ch'i;Pen-ch'i-hsien;Pen-ch'i-hu;Pen-ch'i-shih;Pen-ch’i;Pen-ch’i-hsien;Pen-ch’i-hu;Pen-ch’i-shih;Pen-hsi;Pen-hsi-shih;Pen-si;Penki;Penkihu;Pun-khe-chhi;Pún-khe-chhī;ben xi;ben xi shi;beonsi si;bnshy;bnsy;bynshy;Бенси;Беньсі;Бънси;Бэньси;Բենսի;בנשי;بنشی;بینشی;本渓;本渓市;本溪;本溪市;번시 시; +city::2038342;Beipiao;Beipiao;Pehpiao;Pei-p'iao;Pei-p'iao-chen;Pei-p'iao-hsien;Pei-p’iao;Pei-p’iao-chen;Pei-p’iao-hsien; +city::2038365;Bei'an;Bei'an;Bei’an;Lungchen;Pehanchen;Pei-an;Pei-an-chen;Pei-an-hsien;Pei-an-shih; +city::2038421;Bayan;Bajan;Bayan;Bayan Xian;Bayan Zhen;Pa Jen;Pa-yen-chen;Pa-yen-hsien;Pa-yen-su;Pa-yen-su-su;Payen;ba yan;ba yan xian;ba yan zhen;Баян;巴彦;巴彦县;巴彦镇; +city::2038432;Baotou;BAV;Bao GJau;Bao Đầu;Baotou;Baotou Shi;Baotou shaary;Bau-tau;Bautouo;Baŭtoŭo;Bugat khot;Bău-tàu;Pao-t'ou;Pao-t'ou-hsien;Pao-t'ou-shih;Pao-tchou;Pao-tow;Pao-t’ou;Pao-t’ou-hsien;Pao-t’ou-shih;Paotou;Pau-thau-chhi;Pau-theu-su;Pau-thâu-chhī;Pâu-thèu-sṳ;ba'otu;bao tou;bao tou shi;baoteou si;baywtw;Баотоу;Баотоу шаары;Бугат хот;Բաոտոու;بائوتو;باۋتۇ شەھىر;ਬਾਓਟੂ;包头市;包頭;包頭市;바오터우 시; +city::2038438;Baoshan;Baoshan;Baoshan';Pao-shan;Баошань; +city::2038446;Baoqing;Baocin;Baoqing;Baotsin;Pao-ch'ing;Pao-ch'ing-chen;Pao-ch'ing-hsien;Pao-ch’ing;Pao-ch’ing-chen;Pao-ch’ing-hsien;Paotsing;Баоцин; +city::2038482;Bamiantong;Bamiantong;Mu-leng;Mu-leng-hsien;Muleng Shi;Muling;Pa-mien-t'ung;Pa-mien-t'ung-chen;Pa-mien-t’ung;Pa-mien-t’ung-chen;ba mian tong;mu leng shi;八面通;穆棱市; +city::2038529;Baishishan;Baishishan;Pai-shih-shan; +city::2038541;Baiquan;Baiquan;Baiquan Xian;Baiquan Zhen;Pai-ch'uan;Pai-ch'uan-chen;Pai-ch'uan-hsien;Pai-ch’üan;Pai-ch’üan-chen;Pai-ch’üan-hsien;Ta-p'ao-tzu;Ta-p’ao-tzu;bai quan;bai quan xian;bai quan zhen;拜泉;拜泉县;拜泉镇; +city::2038569;Baicheng;Bach Thanh;Bah-siang;Baicheng;Baicheng Shi;Bajchehn;Bajchen;Bajcheng;Băh-siàng;Bạch Thành;DBC;Pai-ch'eng;Pai-ch'eng-shih;Pai-ch'eng-tzu;Pai-ch’eng;Pai-ch’eng-shih;Pai-ch’eng-tzu;Paichengtze;Paj-ccheng;Paj-čcheng;Pe̍k-siâⁿ-chhī;T'ao-an;T'ao-an-hsien;T'ao-yen;T’ao-an;T’ao-an-hsien;T’ao-yen;bai cheng;bai cheng shi;baicheong si;baychng;baychyng;Байчен;Байчэн;Бајченг;بائچینگ;بایچنگ;白城;白城市;바이청 시; +city::2038584;Baishan;Bach Son;Badaojiang;Bah-sang;Baishan;Baishan Shi;Bajshan';Băh-săng;Bạch Sơn;Hun-chiang;Hun-chiang-shih;Hunjiang;NBS;Pa-tao-chiang;Pa-tao-kou;Paj-san;Paj-šan;Pek-san-chhi;Pe̍k-san-chhī;ba dao jiang;bai shan;bai shan shi;baisan si;bayshan;Байшань;بائشان;بایشان;八道江;白山;白山市;바이산 시; +city::2038632;Anshan;AOG;An Son;An Sơn;An'shan';An-san;An-san-chhi;An-san-chhī;An-shan-shih;An-šan;Ang-sang;Ansanas;Ansano;Anshan;Anshan Shi;Ansjan;Anxan;Anŝano;Anšanas;an shan;an shan shi;anasana;ansan si;anshan;Ăng-săng;Аншан;Аньшань;אנשאן;آنشان;ئەنشەن شەھىرى;انشان;ਅਨਸ਼ਾਨ;鞍山;鞍山市;안산 시; +city::2038650;Anda;An-ta;An-ta-chan;An-ta-chen;An-ta-hsien;An-ta-shih;Anda;Anda Shi;Anda Zhen;an da;an da shi;an da zhen;Анда;安达;安达市;安达镇; +city::2038665;Oroqen Zizhiqi;A-li;A-li-ho;Alihe;Alihe Zhen;Alikheh;Ari;Elunchun Zizhiqi;O-lun-ch'un-tsu-tzu-chih-ch'i;O-lun-ch'un-tzu-chih-ch'i;O-lun-ch’un-tsu-tzu-chih-ch’i;O-lun-ch’un-tzu-chih-ch’i;Oroqen Zizhiqi;a li he;a li he zhen;e lun chun zi zhi qi;Алихэ;鄂伦春自治旗;阿里河;阿里河镇; +city::2038679;Acheng;A-ch'eng-chen;A-ch'eng-hsien;A-ch’eng-chen;A-ch’eng-hsien;A-shih-ho;A-shih-ko;Acheng;Acheng Shi;Akheng;Asche-ho;Ashiho;a cheng;a cheng shi;Ахенг;阿城;阿城市; +city::2047837;Songling;Songling;Sung-ling;song ling;松岭; +city::6825277;Shilin;Kamennyj les;Shilin;Shilin Zhen;shi lin;shi lin zhen;Каменный лес;Шилин;石林;石林镇; +city::7283386;Changshu City;; +city::7290013;Shixing;; +city::7304020;Fenghuang;Fenkhuan';Фенхуань; +city::7602670;Zhu Cheng City;; +city::7910932;Shangri-La;Shangelila;Shangri-La;Шангри-Ла; +city::8347664;Ordos;DSN;Erdos;Ordos;Ordos khot;e er duo si shi;eoeoldwosseu si;orudosu shi;Ордос;Ордос хот;オルドス市;鄂尔多斯市;어얼둬쓰 시; +city::8505006;Wenshan City;WNH;Wenshan;Wenshan City;Wénshān;wen shan;wen shan shi;wonsan si;文山;文山市;원산 시; +city::8533133;Liupanshui;LPF;Lek-buang-cui;Liou-pchan-suej;Liou-pchan-šuej;Lio̍k-poâⁿ-chúi-chhī;Liupanshui;Ljupan'shuj;Luc Ban Thuy;Lĕ̤k-buàng-cūi;Lục Bàn Thủy;liu pan shui;liu pan shui shi;lyupansu-i si;lywbanshyw;lywpanshay;lywpanshwyy;Люпаньшуй;ليوبانشيو;لیوپانشای;لیوپانشوئی;六盘水市;六盤水;六盤水市;류판수이 시; +city::3665542;Zipaquira;Sipakira;Zipaquira;Zipaquirá;sipakila;sypagyra;xi pa ji la;Сипакира;سیپاگیرا;სიპაკირა;錫帕基拉;시파키라; +city::3665657;Yumbo;Yumbo; +city::3665688;Yopal;EYP;El Yopal;Jopal';Jopalis;Juopales;Juopalės;Marroquin;Marroquín;Yopal;yopal;yue pa er;ywpal;Йопаль;یوپال;約帕爾;요팔; +city::3665900;Villavicencio;Cantarrana;Caserio Villavicencio;VVC;Vijavisensio;Vil'javisensio;Viljavisensijas;Viljavisensio;Villavicencio;Villavicêncio;bi ya wei sen xi ao;biryabisenshio;biyabisensio;viliavisensio;wlawyknsyw;Вильявисенсио;Вилявисенсио;Віявісенсіо;ولاویکنسیو;ვილიავისენსიო;ビリャビセンシオ;比亚维森西奥;비야비센시오; +city::3665913;Villa del Rosario;Rosario;Vil'ja-del'-Rosario;Villa Rosario;Villa del Rosario;Вилья-дель-Росарио; +city::3666304;Valledupar;VUP;Val'edupar;Valedupar;Valjeduparas;Valledupar;ba ye du pa er;bajedo~uparu;twrbw;wylydwpar;yedupaleu;Валедупар;Вальедупар;توربو;ویلیدوپار;ვალიედუპარი;バジェドゥパル;巴耶杜帕尔;예두파르; +city::3666570;Turbo;TRB;Turbo; +city::3666577;Turbaco;Turbaco; +city::3666608;Tunja;Toun'cha;Tuncha;Tunja;Tunkha;tnja;tong ha;to~unha;tunha;twnkha;Τούνχα;Тунха;تنجا;تونخا;トゥンハ;通哈;툰하; +city::3666640;Tumaco;San Andres de Tumaco;San Andrés de Tumaco;TCO;Tucano;Tumaco;Tumakas;Tumako;tu ma ke;Тумако;圖馬科; +city::3666645;Tulua;Tulua;Tuluá;Tulúa;ULQ;tu lu a;twlwa;Тулуа;تولوآ;ტულუა;图卢阿; +city::3667849;Soledad;Soledad; +city::3667873;Sogamoso;SOX;Sogamosas;Sogamoso;suo jia mo suo;Согамосо;索加莫索; +city::3667905;Soacha;Soacha;Soachu;Соачу; +city::3667983;Sincelejo;Cincelejo;Sincelejo;Sinselechas;Sinselekho;sinselekho;sinselleho;snsylkhw;snsylyw;synslkhw;xin sai lai huo;Синселехо;سنسیلخو;سنسیلیو;سینسلخو;სინსელეხო;辛塞萊霍;신셀레호; +city::3668454;Santa Rosa de Cabal;Santa Rosa;Santa Rosa Cabal;Santa Rosa de Cabal;Santa-Rosa-de-Kabal';Санта-Роса-де-Кабаль; +city::3668605;Santa Marta;SMR;Santa Marta;santa marta;snth mrth;Санта Марта;סנטה מרתה;سانتا مارتا; +city::3670218;San Andres;ADZ;San Andres;San Andrés; +city::3670419;Sahagun;Sahagun;Sahagún; +city::3670502;Sabanalarga;Sabanalarga;Sabanalargo; +city::3670730;Rionegro;Rionegro;li ao nei ge luo;lionegeulo;rionegro;rywngrw;Ριονέγρο;Рионегро;ریونگرو;რიონეგრო;里奧內格羅;리오네그로; +city::3670745;Riohacha;RCH;Riochacha;Riohacha;Ríohacha; +city::3671116;Quibdo;Kibdo;Kimpdo;Quibdo;Quibdó;UIB;ji bu duo;kib do;kibeudo;kwbdw;kybdw;qybdw;Κιμπδό;Кибдо;קיבדו;قیبدو;كيبدو;کوبدو;کیبدو;กิบโด;基布多;키브도; +city::3671315;Puerto Tejada;; +city::3671916;Popayan;PPN;Popajan;Popajanas;bo pa yang;popayan;pwpayan;Попаян;پوپایان;ポパヤン;波帕扬;포파얀; +city::3672110;Pitalito;PTX;Pitalitas;Pitalito;pi ta li tuo;Питалито;პიტალიტო;皮塔利托; +city::3672328;Piedecuesta;; +city::3672486;Pereira;Antigua Cartago;Cartago Viejo;PEI;Pereira;Perejra;Villa de Robledo;Перейра; +city::3672778;Pasto;PSO;Pastas;Pasto;San Juan de Pasto;Пасто; +city::3673045;Pamplona;Pamplona;Памплона; +city::3673164;Palmira;Palmira; +city::3673662;Ocana;Ocana;Ocaña;Okan'ja;Okanja;ao ka ni ya;awkanya;Оканья;اوکانیا;ოკანია;奧卡尼亞; +city::3673899;Neiva;NVA;Neiva;Nejva;Нейва; +city::3674453;Monteria;MTR;Monteria;Monterija;Montería;San Jeronimo de Buenavista;San Jerónimo de Buenavista;Монтерия; +city::3674470;Montelibano;MTB;Montelibano;Montelíbano; +city::3674962;Medellin;Gorad Medehl'in;MDE;Medegin;Medel'in;Medelim;Medelin;Medeljina;Medeljinas;Medeljino;Medellin;Medellín;mai de lin;mdlyn;mdyyn;me de yin;medein;medejin;medelini;medeyina;meteyin;mydyllyn;mydylyn;Μεδεγίν;Горад Медэльін;Меделин;Медельин;Медельїн;Медељин;מדיין;مدلین;ميديللين;ميديلين;میڈیلن;मेदेयीन;মেদেয়িন;ਮੇਦੇਯੀਨ;மெதெயின்;เมเดยิน;მედელინი;ទីក្រុងមេឌេយីណ;メデジン;麦德林;메데인; +city::3675443;Manizales;MZL;Manisales;Manisalesas;Manizales;ma ni sa lai si;manisalesi;manisalleseu;manisaresu;manyzalys;mnyzals;Манисалес;Манісалес;مانيزاليس;منیزالس;მანისალესი;マニサレス;馬尼薩萊斯;마니살레스; +city::3675595;Malambo;Malambo; +city::3675657;Maicao;MCJ;Maicao; +city::3675692;Magangue;MGN;Magange;Magangue;Magangué;Magangė;Manague;Mangue;ma gan ge;magange;Маганге;მაგანგე;馬甘格; +city::3675707;Madrid;Madrid;Serrezuela;Мадрид; +city::3675975;Los Patios;Los Patios; +city::3679277;La Dorada;Dorada;La Dorada;La-Dorada;Ла-Дорада; +city::3680450;Itaguei;Itagoui;Itagui;Itagüí;atagwy;aytagwyy;yi ta gui;Ιταγουί;Итагуи;اتاگوی;ایتاگویی;伊塔圭; +city::3680539;Ipiales;Gorad Ipijales;IPI;Ip'jales;Ipiales;Ipjalesas;yi pi ya lai si;Горад Іпіялес;Ипьялес;伊皮亞萊斯; +city::3680656;Ibague;Gorad Ibageh;IBE;Ibage;Ibague;Ibagué;Ibagė;abajy;ibage;yi wa ge;Ібаге;Горад Ібагэ;Ибаге;أباجي;اباگوۓ;იბაგე;イバゲ;伊瓦格;이바게; +city::3682018;Giron;Giron;Girón;Khiron;Хирон; +city::3682028;Girardot City;GIR;Girardot;Zhirardo;Жирардо; +city::3682274;Fusagasuga;Fusagasuga; +city::3682281;Funza;Funza; +city::3682292;Fundacion;Fundacion;Fundación; +city::3682385;Floridablanca;Florida;Floridablanca; +city::3682426;Florencia;FLA;Florencia; +city::3682516;Facatativa;Facatativa;Facatativá;Fakatativa;fa ka ta di wa;fakatatywa;Φακατατιβά;Факататива;فاکاتاتیوا;فیکاٹیٹوا;ფაკატატივა;法卡塔蒂瓦; +city::3682573;Espinal;Ehspinal';El Espinal;Espinal;Эспиналь; +city::3682631;Envigado;Ehnvigado;Envigadas;Envigado;anwygadw;aymbygadw;en wei jia duo;Ενβιγάδο;Енвигадо;Энвигадо;انویگادو;ایمبیگادو;恩維加多; +city::3684917;El Banco;Banco;ELB;Ehl'-Banka;El Banco;Эль-Банка; +city::3685084;Duitama;Douitama;Duitama;du yi ta ma;Δουιτάμα;Дуитама;杜伊塔馬; +city::3685095;Dos Quebradas;Dos Quebradas; +city::3685533;Cucuta;CUC;Cucuta;Cúcuta;Gorad Kukuta;Kukuta;San Jose de Cucuta;San Jose de Guacimal;San José de Cùcuta;San José de Cúcuta;San José de Guacimal;ku ku ta;kukuta;kwkwta;swswta;Горад Кукута;Кукута;سوسوتا;کوکوتا;กูกูตา;კუკუტა;ククタ;库库塔;쿠쿠타; +city::3686279;Cienaga;Cienaga;Ciénaga;San Juan de Cienaga;San Juan de Ciénaga;Sienaga;Сиенага; +city::3686561;Chinchina;Chinchina;Chinchiny;Chinchiná;Чинчины; +city::3686675;Chia;Chia;Chía; +city::3686922;Cerete;Cerete;Cereté; +city::3687025;Caucasia;CAQ;Canafistola;Caucasia;Cañafístola;Kaukasija;Kavkaz;kao ka xi ya;kawkasya;Кавказ;Каукасия;کاوکاسیا;კაუკასია;考卡西亞; +city::3687230;Cartago;CRC;Cartago; +city::3687238;Cartagena;CTG;Caratagena de Indias;Cartagena;Cartagena das Indias;Cartagena das Índias;Cartagena de Indias;Cartaxena de Indias;Carthagene;Carthagene des Indes;Carthagène;Carthagène des Indes;Kartachena;Kartageno;Kartakhena;Kartakhena de Indijas;ka ta he na;kaleutahena;kartagyna;kartajyna;karutahena;qrtajnt kwlwmbya;qrthnh;Картахена;Картахена де Индијас;קרטחנה;قرطاجنة، كولومبيا;کارتاجینا;کارتاگینا;კარტახენა;カルタヘナ;卡塔赫纳;카르타헤나; +city::3687925;Cali;CLO;Cali;Calium;Cáli;Kali;Kalis;Santiago de Cali;ka li;kali;kalli;kaly;santiago・de・kari;Кали;Калі;סנטיאגו דה קאלי;كالي;کالی;กาลี;サンティアゴ・デ・カリ;卡利;칼리; +city::3687952;Caldas;Caldas;Kal'das;Kaldas;ka er da si;kaldas;Κάλδας;Кальдас;کالداس;კალდასი;卡爾達斯; +city::3687964;Calarca;Calarca;Calarcá; +city::3688256;Buga;Buga;Guadalajara de Buga;bu jia;buga;bwga;Буга;بوگا;ბუგა;布加; +city::3688451;Buenaventura;BUN;Buehnaventura;Buenaventura;bu ai na wen tu la;bwynawntwra;Буенавентура;Буэнавентура;بوئناونتورا;بوئناونتورا، ویے دیل کاؤکا;ბუენავენტურა;布埃納文圖拉; +city::3688465;Bucaramanga;BGA;Bucaramanga;Bukaramanga;Gorad Bukaramanga;bu ka la man jia;bukalamang-ga;bukaramanga;bwkaramanga;Букараманга;Букараманґа;Горад Букараманга;بوکارامانگا;ბუკარამანგა;ブカラマンガ;布卡拉曼加;부카라망가; +city::3688689;Bogota;BOG;Bogot;Bogota;Bogoto;Bogotà;Bogotá;Boqota;Buoguota;Bógóta;Gorad Bagata;Mponkota;Santa-Fe-de-Bogota;Santafe de Bogota;Santafe de Bogotá;Santafé de Bogotá;Wukuta;beageatta;bo ge da;bogota;bokota;bwghwta;bwgwta;bwgwth;bwjwta;pokotta;Μπογκοτά;Богота;Боґота;Горад Багата;Санта-Фе-де-Богота;Բոգոտա;באגאטא;בוגוטה;بوجوتا;بوغوتا;بوگوتا;بگوٹا;بۆگۆتا;बोगोटा;बोगोता;বোগোতা;ਬੋਗੋਤਾ;ବୋଗୋଟା;பொகோட்டா;ಬೊಗೋಟ;ബൊഗോട്ട;โบโกตา;པོ་གོ་ཏ;ဘိုဂိုတာမြို့;ბოგოტა;ቦጎታ;ទីក្រុងបូកូតា;ボゴタ;波哥大;보고타; +city::3688928;Bello;Begio;Bejo;Bel'o;Beljas;Bella;Bello;bei yue;belio;byyw;byyw antywkya;Μπέγιο;Бейо;Белла;Бельо;بییو;بییو، انتیوکیا;ბელიო;貝約; +city::3689147;Barranquilla;BAQ;Barankila;Barankilija;Barankilja;Barran'kigia;Barrancas de San Nicolas;Barrancas de San Nicolás;Barrankil'ja;Barrankilya;Barranquilha;Barranquilla;Gorad Barankil'ja;ba lan ji ya;ba leng ji ye;balangkiya;bar rang ki ya;baranakiya;barankija;barankwla;barankwyla;brnqyyh;byarenkvila;Μπαρρανκίγια;Баранкиля;Баранкиља;Барранкилья;Барранкілья;Горад Баранкілья;ברנקייה;بارانكويلا;بارانکولا;ब्यारेन्क्विला;ਬਾਰਾਙਕੀਯਾ;บาร์รังกียา;ბარანკილია;バランキージャ;巴兰基亚;巴冷基也;바랑키야; +city::3689169;Barrancabermeja;Barankabermecha;Barracana Bermeja;Barrancabermeja;Barrankabermekha;EJA;ba lan ka wei mei ha;barankaberumeha;Барранкабермеха;ბარანკაბერმეხა;バランカベルメハ;巴蘭卡韋梅哈; +city::3689560;Armenia;AXM;Armenia; +city::3689570;Arjona;; +city::3689718;Arauca;AUC;Arauca;Arauka;Arauko;Araŭko;a lao ka;alauka;arawka;arawka arawka;araywka;Араука;آراؤکا;آرائوکا;آراوکا، آراوکا;არაუკა;阿劳卡;아라우카; +city::3689798;Apartado;APO; +city::3690465;Aguachica;Aguachica;Aguachika;Aquachia;Aquachía;Агуачика; +city::3792383;Agustin Codazzi;Agustin Codazzi;Agustin-Kodassi;Agustín Codazzi;Codazzi;agstn kwdazy;agwstyn kwdazy;ke da qi;Агустин-Кодасси;آگستن کودازی;اگوستین کودازی;კოდასი;科達齊; +city::3621849;San Jose;Gorad San-Khaseh;SJO;San Chose;San Chosė;San Hose;San Jose;San Jose de Costa Rica;San Jose i Costa Rica;San José;San José de Costa Rica;San José i Costa Rica;San Joze;San Jozé;San Jusiy;San Khose;San Khoze;San Xose;San Xosé;San-Joseo;San-Khose;San-Xose;Sanhose;Sanhosē;Urbs Sancti Iosephi in Costarica;can hoce;san jwz;san khwsyh;san khwzh;san khwzے kwsٹaryka;san-khose;sana hoje;sana hose;sana hoze;sanhose;sheng he xi;sn hwsh;syana hose;Σαν Χοσέ;Горад Сан-Хасэ;Сан Хозе;Сан Хосе;Сан-Хосе;Սան Խոսե;סאן חוסה;סן חוסה;سان جوز;سان خوزه;سان خوزے، کوسٹاریکا;سان خوسيه;سان خوسې;सान होज़े;सान होजे;স্যান হোসে;ਸਾਨ ਹੋਸੇ;சான் ஹொசே;ซันโฮเซ;སན་ཇོ་སེ།;სან-ხოსე;ሳን ሆዜ;サンホセ;聖荷西;산호세; +city::3621911;San Francisco;; +city::3622247;Limon;Ciudad de Limon;Ciudad de Limón;LIO;Limon;Limonas;Limón;Pouerto Limon;Provincia de Limon;Provinsi Limon;Provinsi Limón;Província de Limón;Puehrto-Limon;Puerto Limon;Puerto Limón;li meng;limon;lymwn;rimon;Πουέρτο Λιμόν;Лимон;Пуэрто-Лимон;Լիմոն;לימון;لیمون;リモン;利蒙;리몬; +city::3534915;Trinidad;Gorad Trynidad;TND;Trinidad;Trinidadas;te li ni da;teulinidadeu;torinida;trinidada;trynydad kwba;trynydd;Горад Трынідад;Тринидад;Тринідад;טרינידד;ترینیداد، کوبا;ٹرینیڈاڈ، کیوبا;त्रिनिदाद;ტრინიდადი;トリニダ;特立尼达;트리니다드; +city::3536729;Santiago de Cuba;Gorad Santjaga-deh-Kuba;Kubos Santjagas;SCU;Sant'jago-de-Kuba;Sant'jago-de-Kubae;Santiago;Santiago de Cuba;Santiago de Cúba;Santiago de Kubo;Santiago di Cuba;Santiago nte Kouva;Santijago de Kuba;Santjago de Kuba;santiagodekuba;santyaghw dy kwba;santyagw d kwba;sheng de ya ge-de gu ba;Σαντιάγο ντε Κούβα;Горад Сантяга-дэ-Куба;Сантијаго де Куба;Сантьяго-де-Кубæ;Сантьяго-де-Куба;Сантяго де Куба;סנטיאגו דה קובה;سانتياغو دي كوبا;سانتیاگو د کوبا;სანტიაგო-დე-კუბა;サンティアーゴ・デ・クーバ;圣地亚哥-德古巴;산티아고데쿠바; +city::3537906;Santa Clara;SNU;Santa Clara;Santa Klara;Santa-Klara;santa klara;santa klara kywba;santakeullala;sheng ke la la;snth qlrh;Σάντα Κλάρα;Санта Клара;Санта-Клара;סנטה קלרה;سانتا كلارا;سانتا کلارا;سانتا کلارا، کیوبا;სანტა-კლარა;サンタ・クララ;圣克拉拉;산타클라라; +city::3539093;San Luis;San Luis; +city::3539560;San Jose de las Lajas;; +city::3540667;Sancti Spiritus;Sancti Spiritus;Sancti Spíritus;Sankti-Spiritus;USS;Санкти-Спиритус; +city::3540680;San Cristobal;San Cristobal;San Cristóbal; +city::3541440;Sagua la Grande;Sagua;Sagua la Grande; +city::3543299;Puerto Padre;Puehrto-Padre;Puerto Padre;Пуэрто-Падре; +city::3543961;Placetas;Placetas; +city::3544091;Pinar del Rio;LCL;Pinar del Rio;Pinar del Rioko probintzia;Pinar del Río;Pinar-del'-Rio;Пинар дел Рио;Пинар-дель-Рио; +city::3545064;Palma Soriano;Palma Soriano; +city::3545841;Nuevitas;Nuevitas; +city::3546434;Moron;Moron;Morón;mo long;moroni;Морон;მორონი;莫隆; +city::3546791;Moa;MOA;Minas de Hierro Moa;Moa;Puerto Cayo Moa;Моа; +city::3547398;Matanzas;Gorad Matansas;Matansas;Matansasas;Matanzas;QMA;VRO;ma tan sa si;matansasu;Горад Матансас;Матанзас;Матансас;მატანსასი;マタンサス;馬坦薩斯; +city::3547867;Manzanillo;MZO;Mansanil'o;Mansaniljas;Manzanillo;Manzanilo;man sa ni yue;mansanilio;mansaniyo;mnsnyw;mnzanylw kywba;Манзаниљо;Мансанильо;מנסניו;منزانیلو، کیوبا;მანსანილიო;曼薩尼約;만사니요; +city::3550598;Las Tunas;Las Tunas;Las Tunasas;Las-Tunas;Tunas;VTU;Victoria;Victoria de Las Tunas;Victoria de las Tunas;Viktoria de las Tunas;Viktorija de Las Tunas;las twnas;laseutunaseu;wei duo li ya-de la si tu na si;Викторија де Лас Тунас;Лас-Тунас;Тунас;Վիկտորիա դե լաս Տունաս;ויקטוריה דה לאס טונאס;لاس توناس;ლას-ტუნასი;维多利亚-德拉斯图纳斯;라스투나스; +city::3553478;Havana;A Habana;Abana;Gavana;Gavanae;Gavane;Gorad Gavana;HAV;Habana;Hafana;Hahvaxnaz;Havan;Havana;Havanna;Havano;Hawana;Khavana;L'Avana;LAvan-a;LAvana;LAvann-a;LHabana;LHavana;La Ahuana;La Avan;La Avàn;La Habana;La Havana;La Havane;abana;avana;ha wa na;habana;habhana;hafana;havana;hawana;xia wan na;Ħavana;ŁAvana;Αβάνα;Гaванa;Гаванæ;Гавана;Гаване;Горад Гавана;Хавана;Ҳавана;Հավանա;האוואנע;הוואנה;هافانا;هاوانا;ہوانا;हवाना;হাভানা;ਹਵਾਨਾ;ହାଭାନା;அவானா;ഹവാന;ฮาวานา;ཧ་ཝན;ဟာဗားနားမြို့;ჰავანა;ሀቫና;ሀኖይ;ハバナ;哈瓦那;夏灣拿;아바나; +city::3556268;Jesus Menendez;Chaparra;Jesus Menendez;Jesús Menéndez; +city::3556437;Jaguey Grande;Jaguey Grande;Jagüey Grande; +city::3556969;Holguin;Gorad Ol'gin;HOG;Holginas;Holguin;Holguín;Holquin;Ol'gin;Olgin;ao er jin;olgini;orugin;ʼwlgyn;Горад Ольгін;Олгин;Ольгин;אולגין;ოლგინი;オルギン;奧爾金; +city::3557347;Guira de Melena;Gueira de Melena;Guira de Melena;Güira de Melena; +city::3557378;Gueines;Guines;Güines;Гуинес; +city::3557689;Guantanamo;GAO;Guantanama;Guantanamo;Guantánamo;Guatanamo;guantanamo;Гуантанама;Гуантанамо;גואנטנמו;グアンタナモ; +city::3558771;Florida;Florida;La Florida;Флорида; +city::3563317;Corralillo;Coralillo;Corralillo; +city::3563504;Contramaestre;Contramaestre; +city::3563559;Consolacion del Sur;Consolacion;Consolacion del Sur;Consolación;Consolación del Sur; +city::3563843;Colon;Colon;Colón;Kolon;Kolonas;QCO;ke long;kwlwn kywba;Колон;کولون، کیوبا;კოლონი;科隆; +city::3564124;Cienfuegos;CFG;Cienfuegos;Gorad S'enfuehgas;S'enfuegos;S'enfuehgos;Sjenfuegos;Sjenfuegosas;seiyn fwy kos;shienfuegosu;sienpuegosi;synfwyghws;xi en fu ge si;Горад Сьенфуэгас;Сьенфуэгос;Сьєнфуегос;Сјенфуегос;סיינפואגוס;سينفويغوس;เซียนฟวยโกส;სიენფუეგოსი;シエンフエーゴス;西恩富戈斯; +city::3564178;Ciego de Avila;AVI;Ciego de Avila;Ciego de Ávila; +city::3565432;Cardenas;Cardenas;Cárdenas;Gorad Kardehnas;Kardenas;Kardenasas;ka er de na si;Горад Кардэнас;Карденас;کارڈیناس، کیوبا;კარდენასი;卡爾德納斯; +city::3566067;Camaguey;CMW;Camagueey;Camaguey;Camagüey;Kamaguehj;Kamaguej;Puerto Principe;kamaguei;Камагуей;Камагуэй;קמאגואיי;カマグエイ; +city::3567597;Bayamo;BYM;Bajamo;Bayamo;Баямо; +city::3567669;Bartolome Maso;Bartolome Maso;Bartolomé Masó; +city::3567869;Banes;Banes; +city::3568312;Artemisa;Artemisa;Артемиса; +city::3568342;Arroyo Naranjo;Arroyo Naranjo;Ponce; +city::3374333;Praia;Braia;Cidade da Praia;Gorad Praja;Municipio da Praia;Município da Praia;Pragia;Praia;Praja;Praje;Prajo;Prajė;Praya;RAI;braya;pei ya;peulaia;pirxa;pra'i'a;pra'iya;praya;prayya;puraia;Πράγια;Πράια;Горад Прая;Прая;Праја;Պրայա;פראיה;برايا;پرائا;پرائیا;پرايا;پرایا;پڕایا;प्राईया;ਪ੍ਰਾਈਆ;ไปรอา;ཕུ་ར་ཡ།;პრაია;ፕራያ;プライア;培亞;프라이아; +city::3374462;Mindelo;Mihdelo;Mindelas;Mindello;Mindelo;Mindelu;Mintelo;mindellu;mindero;ming de lu;Μιντέλο;Минделу;Мінделу;ミンデロ;明德盧;민델루; +city::3513090;Willemstad;Gorad Vilemstad;Vilemstad;Vilemstadas;Vilemstade;Vilemstado;Villemstad;Villemstant;Villemştad;Willemstad;Willemsted;Willemstêd;billemseutateu;u~iremusutatto;vilemastada;villemstatu;wei lian si ta de;willems tad;wylmstad;Βίλλεμσταντ;Вилемстад;Виллемстад;Віллемстад;Горад Вілемстад;וילמסטאד;ويلمستاد;ویلمستاد;ویلمسٹیڈ;विलेमश्टाड;வில்லெம்ஸ்டாடு;วิลเลมสตัด;ვილემსტადი;ウィレムスタット;威廉斯塔德;빌렘스타트; +city::146268;Nicosia;An Leafcois;An Leafcóis;Gorad Nikasija;Lefkosa;Lefkosha;Lefkosia;Lefkosian;Lefkosía;Lefkoşa;Leucosia;NIC;Nekoseje;Nicosea;Nicosia;Nicosia (Lefkosia);Nicosia - Leukosia;Nicosia - Λευκωσία;Nicosie;Nicoséa;Nicosìa;Nicusia;Nicusìa;Nicòsia;Nicósia;Nikosi;Nikosia;Nikosie;Nikosii;Nikosij;Nikosija;Nikosija osh;Nikosiya;Nikozi;Nikozia;Nikozija;Nikozio;Nikozja;Nikósie;Nikósía;Nikózia;Niqusya;Nėkosėjė;ni ke xi ya;ni kho seiy;nikkeasya;nikkociya;nikojya;nikoshia;nikosi'a;nikosia;nikosiya;nikozia;nykwsya;nykwzya;nyqwsya;nyqwsyh;Λευκωσία;Λευκωσίαν;Горад Нікасія;Лефкоша;Никозия;Никозија;Никоси;Никосий;Никосия;Никосия ош;Нікосія;Նիկոսիա;ניקאסיע;ניקוסיה;نىكوسىيە;نيقوسيا;نيكوسيا;نیکوزیا;نیکوسیا;نیکۆسیا;निकोज्या;निकोसिया;নিকোসিয়া;ਨਿਕੋਸੀਆ;ନିକୋସିଆ;நிக்கோசியா;ನಿಕೋಸಿಯ;നിക്കോഷ്യ;นิโคเซีย;ནེ་ཁོ་ཤི་ཡ།;ნიქოზია;ሌፍኮዚያ;ニコシア;尼科西亚;尼科西亞;니코시아; +city::146384;Limassol;Gorad Limasol;Lemesos;Lemessus;Lemesós;Leymosun;Limasol;Limasol shaary;Limasolis;Limasolo;Limassol;Limisso;QLI;li ma suo er;li ma sxl;limasol;limasoli;lymaswl;lymswl;rimasoru;Λεμεσός;Горад Лімасол;Лимасол;Лимасол шаары;Лімасол;Լիմասոլ;לימסול;ليماسول;لیماسول;ലിമസ്സോൾ;ลีมาซอล;ლიმასოლი;リマソール;利马索尔;리마솔; +city::146400;Larnaca;Chittim;Citium;Kition;Kitium;Kittim;Kozan;LCA;Lapithou;Larnaca;Larnaka;Làrnaca;Lárnaca;Lárnaka;Salina;Salines;la na ka;laleunaka;lar na ka;larnaka;larnka;lrnaka;lrnqh;rarunaka;Λάρνακα;Ларнака;Լառնակա;לרנקה;لارناکا;لارنكا;لرناکا;ลาร์นากา;ལར་ན་ཀ།;ლარნაკა;ラルナカ;拉纳卡;라르나카; +city::3061370;Zlin;Gottvoldov;Gottwald;Gottwaldov;Sillein;Z'lin;Zlin;Zlín;Ζλιν;Злин;Зьлін; +city::3063548;Usti nad Labem;Aussig;Aussig an der Elbe;Auszig;Usti;Usti nad Labem;Usti-nad-Labem;Ustina Labe;usti nad labom;Ústina Labe;Ústí;Ústí nad Labem;Усти над Лабом;Усти-над-Лабем; +city::3064288;Teplice;Cieplice;Teplice;Teplice-Sanov;Teplice-Šanov;Teplicė;Teplitse;Teplitz;Teplitz-Schoenau;Teplitz-Schönau;tblytsh;te pu li cai;tepeulliche;tepuritsu~e;tplytsh;tplyzh;Теплитсе;Теплице;Тепліце;טפליצה;تبليتسه;تپلیتسه;ტეპლიცე;テプリツェ;特普利采;테플리체; +city::3067696;Prague;PRG;Praag;Prag;Praga;Pragae;Prago;Prague;Praha;Pràg;Prág;Prága;Prâg;Prāga;bragh;bu la ge;peulaha;prag;praga;prak;prg;puraha;Πράγα;Праг;Прагæ;Прага;פראג;براغ;پراگ;پراگا;ܦܪܓ;ปราก;པུ་ལ་ཁེ;პრაღა;ፕራግ;プラハ;布拉格;프라하; +city::3068160;Pilsen;P'lzen;Pilsen;Pilsna;Pilzen;Pilzenas;Pilzeń;Pilzno;Pl'zen';Plzen;Plzena;Plzeņa;Plzeň;bi er sen;blzn;peil sen;pelaja'ina;peuljen;plzn;puruzeni;pylzn;Πίλζεν;Πίλσεν;Пилзен;Плзен;Плзењ;Пльзень;П’лзењ;פילזן;פילזען;بلزن;پلزن;पेलजाईन;เปิลเซน;პლზენი;プルゼニ;比尔森;플젠; +city::3068582;Pardubice;PED;Pardubice;Pardubices;Pardubicy;Pardubicės;Pardubitse;Pardubitz;Parntoumpitse;bardwbytsh;pa er du bi cai;paleudubiche;par du bit se;pardwbytsh;parudo~ubitsu~e;prdwbyzh;Παρντούμπιτσε;Пардубитсе;Пардубице;פרדוביצה;باردوبيتسه;پاردوبیتسه;پاردوبیتسے;ปาร์ดูบีตเซ;პარდუბიცე;パルドゥビツェ;帕尔杜比采;파르두비체; +city::3068799;Ostrava;OSR;Ostraba;Ostrava;Ostrawa;ao si te la wa;awstrafa;e si te la fa;oseuteulaba;osutoravu~a;Οστράβα;Острава;אוסטרבה;أوسترافا;オストラヴァ;俄斯特拉發;奥斯特拉瓦;오스트라바; +city::3068927;Opava;Gorad Opava;Opava;Opawa;Oppavia;Troppau;Uopawa;ao pa wa;awbafa;awpawa;opaba;opavu~a;Горад Опава;Опава;أوبافا;اوپاوا;ოპავა;オパヴァ;奥帕瓦;오파바; +city::3069011;Olomouc;Aebura;Eburum;Gorad Olamauc;OLO;Olmic;Olmuetz;Olmütz;Olomouc;Olomouca;Olomoucas;Olomouch;Olomouts;Olomucium;Olomuniec;Ołomuniec;Wolomuc;Wołomuc;ao luo mu ke;awlwmwk;awlwmwts;ollomoucheu;olomauka;olomoutsi;oromoutsu;xxlx mots;ʼwlwmwʼwz;Όλομουτς;Горад Оламаўц;Оломоутс;Оломоуц;אולומואוץ;أولوموتس;اولوموتس;اولوموڅ;اولوموک;ओलोमौक;ออลอโมตซ์;ოლომოუცი;オロモウツ;奧洛穆克;올로모우츠; +city::3070291;Most;Bruex;Brüx;Most;Мост; +city::3071961;Liberec;Gorad Liberac;Liberec;Liberec';Libereca;Liberecas;Liberets;Limperets;Reichenberg;Reichenberga;li bei lei ci;libelecheu;liberetsi;lybrts;lybrz;lybyryts;riberetsu;Λίμπερετς;Горад Ліберац;Либеретс;Либерец;Ліберець;Լիբերեց;ליברץ;ليبيريتس;لیبرتس;ლიბერეცი;リベレツ;利贝雷茨;리베레츠; +city::3073699;Kladno;Cladna;Gorad Kladna;Kladnas;Kladno;Klantno;ke la de nuo;keulladeuno;klad no;kladnw;klandw;kuradono;Κλάντνο;Горад Кладна;Кладно;كلادنو;کلادنو;کلاندو;กลาดโน;კლადნო;クラドノ;克拉德诺;클라드노; +city::3073789;Karvina;Freistadt;Frystat;Frysztat;Fryštát;Karvina;Karvina 1;Karviná 1;Карвина; +city::3073803;Karlovy Vary;Carlsbad;Gorad Karlavy Vary;KLV;Karl Vary;Karlove Vari;Karlove Vary;Karlovi Varai;Karlovi Vari;Karlovi-Vari;Karlovy Vary;Karlovı Varı;Karlowe Ware;Karlowe Wary;Karlowé Warë;Karlsbad;Thermae Carolinae;ka luo wei fa li;kaleullobibali;karlwfy fary;karlwwy wary;karlwy wary;Κάρλοβι Βάρι;Горад Карлавы Вары;Карлове Вари;Карлови Вари;Карлови-Вари;Карловы Вары;Карлові Вари;Կառլովի Վարի;קרלובי וארי;كارلوفي فاري;کارلووی واری;کارلوی واری;კარლოვი-ვარი;カルロヴィ・ヴァリ;卡罗维发利;카를로비바리; +city::3074199;Jihlava;Iglau;Iglawa;Igława;Jiglava;Jihlava;Jikhlava;Јихлава;Йиглава; +city::3074967;Hradec Kralove;Chrantets Kralove;Gorad Gradzec-Kralave;Gradec Kralove;Gradec'-Kralove;Gradec-Kralove;Gradets Kralove;Gradets-Kralove;Hradec Kralove;Hradec Kralovė;Hradec Králové;Khradec Kralove;Koeniggraetz;Kraljicin Gradac;Kraljičin Gradac;Königgrätz;Reginogradecium;h ra dets kral xwe;he la de ci-ke la luo wei;heuladecheukeulallobe;hradts kralwfh;hradts kralwwh;Χράντετς Κράλοβε;Горад Градзец-Кралаве;Градетс-Кралове;Градец Кралове;Градец-Кралове;Градець-Кралове;Храдец Кралове;Һрадец-Кралове;הראדץ קראלובה;هرادتس كرالوفه;هرادتس کرالووه;ہاردک کارلوف;ฮราเดตส์กราลอเว;ჰრადეც-კრალოვე;フラデツ・クラーロヴェー;赫拉德茨-克拉洛韦;흐라데츠크랄로베; +city::3075921;Havirov;Chavirov;Gavirsov;Gavirzhov;Gorad Gavirzhau;Havirov;Havirzova;Havirzovas;Haviržovas;Havířov;Havīržova;Hawierzow;Hawierzów;Khavirzhov;ha wei ruo fu;ha weiychxf;habileujopeu;hafrwf;havirzhovi;havu~ijofu;hawyrzhw;Χάβιροβ;Гавиржов;Гавіржов;Гавіршов;Горад Гавіржаў;Хавиржов;هافروف;هاویرژو;ہاوہروف;ฮาเวียชอฟ;ჰავირჟოვი;ハヴィジョフ;哈维若夫;하비르조프; +city::3076127;Frydek-Mistek;Fridek-Mistek;Fridekmisteka;Friedeck;Friedek;Frydek;Frydek Mystekas;Frydek-Mistek;Frýdek;Frýdek-Místek;Frīdekmīsteka;Gorad Frydak-Mistak;Mistek;fri dek-mi s tek;frydk-mystk;fu li dai ke-mi si tai ke;furideku=misuteku;peulidekeumiseutekeu;Горад Фрыдак-Містак;Мистек;Фридек-Мистек;Фрідек-Містек;فريدك-ميستك;فریدک-میستک;ฟรีเดก-มีสเตก;ფრიდეკ-მისტეკი;フリーデク=ミーステク;弗里代克-米斯泰克;프리데크미스테크; +city::3077244;Decin;Dechin;Decin;Decina;Decynas;Dečynas;Dečīna;Djechin;Děčín;Gorad Dzechyn;Tetschen;dechin;dechini;dychyn;dytshyn;dyychyn;jechin;jie qin;Горад Дзечын;Дечин;Дјечин;ديتشين;دیچین;دییچین;დეჩინი;ジェチーン;杰钦;데친; +city::3077685;Chomutov;Chomutov;Chomutovas;Khomutov;Komotau;homutofu;homutopeu;huo mu tuo fu;khmwtw;khwmtw;khwmwtwf;Хомутов;خموتو;خومتو;خوموتوف;ხომუტოვი;ホムトフ;霍穆托夫;호무토프; +city::3077916;Ceske Budejovice;Boehmisch Budweis;Budejovice;Budweis;Böhmisch Budweis;Ceske Budejovicai;Ceske Budejovice;Ceské Budejovice;Cheshke Budjejovice;Cheske Budejovice;Cheske-Budejovice;Czeskie Budziejowice;Tseske Mpountegiobitse;Česke Budejovicai;České Budějovice;Τσέσκε Μπουντεγιόβιτσε;Ческе Будейовице;Ческе-Будеёвице;Чешке Будјејовице;Чешке Буђејовице; +city::3078610;Brno;BRQ;Berno;Brno;Brno osh;Bruenn;Bruna;Brunn;Brünn;Burno;Gorad Brno;Mprno;beuleuno;bexr no;brano;brno;brnw;bryn;bu er nuo;buruno;Μπρνο;Брно;Брно ош;Бърно;Горад Брно;Բռնո;ברין;ברנו;برنو;ब्रनो;เบอร์โน;ბრნო;ブルノ;布爾諾;브르노; +city::2803560;Zwickau;Cvikau;Cvikava;Cvikkau;Cygnea;Gorad Cvikau;Stadt Zwickau;Swikawa;Zwickau;cheubikau;ci wei kao;tsfykaw;tsuvu~ikkau;tswykaw;Šwikawa;Горад Цвікау;Цвикау;Цвиккау;Цвікау;צוויקאו;تسفيكاو;تسویکاو;ツヴィッカウ;茨维考;츠비카우; +city::2805615;Wuerzburg;Birtsmpournk;Gorad Vjurcburg;Herbipolis;Herbopolis;Vircburg;Vircburga;Virteburh [a. 704];Virtibriga;Viurcburgas;Vjurcburg;Vuirziburga [a. 779];Vyurcʻburg;Wiazburg;Wirciburc;Wirzaburg [a. 742];Wirziburg [a. 779];Wuerzboerj;Wuerzburg;Wurtzbourg;Wurtzburgo;Wurzburg;Wurzburgo;Wûrzburg;Würzburg;Würzbörj;bwileucheubuleukeu;fwrtsbwrgh;viurtsburgi;vu~yurutsuburuku;wei er ci bao;weu xr sburk;wrzbrg;wwrtsbwrg;wyrzbwrg;Βίρτσμπουργκ;Вирцбург;Вюрцбург;Горад Вюрцбург;Վյուրցբուրգ;וירצבורג;فورتسبورغ;ورزبرگ;وورتسبورگ;เวือร์ซบูร์ก;ვიურცბურგი;ヴュルツブルク;维尔茨堡;뷔르츠부르크; +city::2805753;Wuppertal;Boupertal;Gorad Vupertal';UWP;Vupertal;Vupertale;Vupertalis;Vupertāle;Vuppertal;Vuppertal';Wupperdaal;Wuppertal;bupeotal;fwbrtal;vupartala;vuppataru;wu po ta er;wuph phe xrthal;wwprtal;wwprtl;Βούπερταλ;Вупертал;Вупперталь;Горад Вуперталь;Վուպերտալ;וופרטל;فوبرتال;ووپاٹال;ووپرتال;وپرٹال;वुपर्टाल;วุพเพอร์ทัล;ვუპერტალი;ヴッパータール;伍珀塔尔;부퍼탈; +city::2806142;Worms;Borbetomagus;Gorad Vorms;Vormatia;Vorms;Vormsa;Vormsas;Woms;Wormacja;Wormatia;Worms;ZQV;boleumseu;fwrms;vu~orumusu;wo er mu si;wrmz alman;wwrms;Βορμς;Вормс;Горад Вормс;ווארמז;וורמס;فورمس;ورمز، آلمان;ቩርምዝ;ヴォルムス;沃尔姆斯;보름스; +city::2806654;Wolfsburg;BWE;Gorad Vol'fsburg;Vol'fsburg;Volfsburg;Volfsburgas;Volfsmpournk;Wolfsboerj;Wolfsbourg;Wolfsburg;Wolfsburgo;Wolfsbuurich;Wolfsbörj;Wulfsborg;bolpeuseubuleukeu;fwlfsbwrgh;volpsburgi;vu~orufusuburuku;wlfzbrg;wo er fu si bao;wwlfsbwrg;wwlfzbwrg;wwlpsbwrg;Βόλφσμπουργκ;Волфсбург;Вольфсбург;Горад Вольфсбург;Վոլֆսբուրգ;וולפסבורג;فولفسبورغ;ولفزبرگ;وولفزبورگ;وولفسبورگ;ვოლფსბურგი;ヴォルフスブルク;沃尔夫斯堡;볼프스부르크; +city::2806914;Wolfenbuettel;Guelpherbytum;Vol'fenbjuttel';Volfembutel;Volfenbitel;Volfenbjutel;Wolfenbuettel;Wolfenbuttel;Wolfenbüttel;Wulfenbuettel;Wulfenbüttel;fwlfnbwtl;wlfnbwtl;wo er fen bi te er;Волфенбител;Волфенбютел;Вольфенбюттель;فولفنبوتل;ولفنبوتل;沃爾芬比特爾; +city::2807363;Witten;Gorad Vitehn;Viten;Vitenas;Vitten;Witten;ZQR;biten;fytn;vu~itten;wei teng;wytn;Витен;Виттен;Віттен;Горад Вітэн;فيتن;ویتن;ویٹن;ヴィッテン;维滕;비텐; +city::2808559;Willich;Vilikh;Villikh;Villix;Willich;fylysh;wei li xi;wylysh;Вилих;Виллих;Вілліх;فيليش;ویلیش;維利希; +city::2808720;Wilhelmshaven;Gorad Vil'gel'mskhafen;Vil'gel'msgafen;Vil'gel'mskhafen;Vilchelmschafen;Vilhelmshafenas;Vilkhelmskhafen;WVN;Wilhelmshaven;Willelmeshaefen;Willelmeshæfen;Willemshaven;Wuelmshoawen;Wülmshoawen;bilhelleumseuhapen;fylhlmshafn;vu~iruherumusuhafen;wei lian gang;wylhmshafn;Βιλχελμσχάφεν;Вилхелмсхафен;Вильгельмсхафен;Вільгельмсгафен;Горад Вільгельмсхафен;וילהלמסהאפן;فيلهلمسهافن;ویلهمسهافن;ヴィルヘルムスハーフェン;威廉港;빌헬름스하펜; +city::2809346;Wiesbaden;Aquae Mattiacae;Aquae Mattiacorum;Aquae Matticae;Gorad Visbadehn;Uisibada;Visbaden;Visbadene;Vizmpanten;Vysbadenas;Vīsbādene;WIE;Wiasban;Wiasbån;Wiesbaden;Wisibada;Wissbade;biseubaden;fysbadn;visabadena;visbadeni;vu~isubaden;wayzbadn;wei si ba deng;wi sba dein;wysbadn;Βιζμπάντεν;Висбаден;Вісбаден;Горад Вісбадэн;Վիսբադեն;וויסבאדן;ויסבאדן;فيسبادن;وائزبادن;ویسبادن;वीसबाडेन;วีสบาเดิน;ვისბადენი;ヴィースバーデン;威斯巴登;비스바덴; +city::2809889;Wetzlar;Betslar;Gorad Veclar;Veclar;Veclara;Veclaras;Veclaro;Veclāra;Vetclar;Vetzlar;Weslar;Weslår;Wetzlar;Wetzlaria;ZQQ;becheulla-eo;ftslar;vetslari;vu~ettsura;wei ci la er;weth s lar;wtslar;wzlr;Βέτσλαρ;Ветцлар;Вецлар;Горад Вецлар;וצלר;فتسلار;وتسلار;เวทซลาร์;ვეცლარი;ヴェッツラー;韦茨拉尔;베츨라어; +city::2810678;Wesel;Vezel;Vezel';Wesel;wei sai er;wzl;Везел;Везель;وزل;韋塞爾; +city::2812482;Weimar;Gorad Vejmar;Vaimari;Vajmar;Vajmaro;Veimar;Veimara;Veimaras;Veimāra;Vejmar;Veymar;Vimaria;Vymar;Výmar;Wehimala;Weimar;baimaleu;faymr;va'imara;vaimari;vu~aimaru;waymar;waymr;wei ma;wi mar;Βαϊμάρη;Ваймар;Вајмар;Веймар;Горад Веймар;ויימאר;فايمر;وائمر;وایمار;वाईमार;ไวมาร์;ვაიმარი;ヴァイマル;魏玛;바이마르; +city::2815330;Waiblingen;Vajblingen;Vayblingen;Waiblinga;fayblynghn;wayblyngn;wei bu lin gen;Вайблинген;Вайблінген;Вајблинген;فايبلينغن;وایبلینگن;魏布林根; +city::2817220;Villingen-Schwenningen;Filingen-Shveningen;Filingenas-Sveningenas;Filingenas-Šveningenas;Fillingen-Shvenningen;Villingen Schwenningen;Villingen-Schwenningen;Villingen-Shvenningen;ZQL;fei lin gen-shi wen ning gen;fylynghn-shfnynghn;fylyngn-ashwnyngn;Виллинген-Швеннинген;Филинген-Швенинген;Филлинген-Швеннинген;Філлінген-Швеннінген;فيلينغن-شفنينغن;فیلینگن-اشونینگن;菲林根-施文宁根; +city::2817311;Viersen;Firzen;Veeese;Veeëse;Viersen;ZQK;fei er sen;fyrzn;Фирзен;Фірзен;فيرزن;فیرزن;菲爾森; +city::2817724;Velbert;Fel'bert;Felbert;Velbed;Velbert;Vèlbed;ZQJ;fei er bei te;flbrt;Фелберт;Фельберт;فلبرت;費爾貝特; +city::2820087;Unna;Una;Unna;ZQI;awna;weng na;Уна;Унна;اونا;翁納; +city::2820256;Ulm;Gorad Ul'm;Oulm;Owlm;QUL;Ul'm;Ulm;Ulma;Ulmas;alm;awlm;ulleum;ulma;ulmi;urumu;wu er mu;xulm;Ουλμ;Горад Ульм;Улм;Ульм;Ուլմ;אולם;أولم;الم;اولم;उल्म;উল্‌ম;อุล์ม;ულმი;ウルム;乌尔姆;울름; +city::2820860;Tuebingen;Gorad Cjubingen;ITuebingen;ITübingen;Tibingen;Tibingene;Tiubingenas;Tjubingen;Tubinga;Tuebinga;Tuebingen;Tybinga;Tybingen;Tympinken;Tübinga;Tübingen;Tībingene;di bin gen;te~yubingen;thu xbing ngein;tu bin gen;twbynghn;twbyngn;twibing-gen;tybyngn;tyubin'gana;Τύμπιγκεν;Горад Цюбінген;Тибинген;Тюбинген;Тюбінген;Түбинген;טובינגן;טיבינגן;توبينغن;توبینگن;ٹوبنگن;ट्युबिन्गन;ทือบิงเงิน;テュービンゲン;图宾根;蒂宾根;튀빙겐; +city::2821029;Troisdorf;Troisdorf;Trojsdorf;ZQG;te luo si duo fu;trwysdwrf;trwyzdwrf;Троисдорф;Тройсдорф;ترويسدورف;ترویزدورف;特羅斯多夫; +city::2821164;Trier;Augusta Treverorum;Gorad Tryr;Treier;Trevere;Treveri;Treveris;Treves;Trevir;Treviri;Treviro;Trevèri;Trevír;Trewir;Trier;Trir;Trire;Triri;Tryras;Trèveris;Trèves;Tréier;Tréveris;Trīre;ZQF;te li er;teulieo;the riyr;toria;tryr;Τρηρ;Горад Трыр;Трир;Трір;טריר;ترير;تری‌یر;ٹریر;เทรียร์;ტრირი;ትሪር;トリーア;特里尔;트리어; +city::2825297;Stuttgart;Estugarda;Gorad Shtutgart;STR;Shhutgart;Shtutgart;Shtutgarti;Shtuttgart;Stocarda;Stoccarda;Stoutnkarde;Stucarda;Stuggart;Stutgardia;Stutgartas;Stutgarte;Stutgarto;Stutqart;Stuttgart;ashtwtgart;ch tuthth kar th;icututkart;shtwtgart;shtwtghart;shuto~uttogaruto;si tu jia te;stutagarta;stwtgrt;syututeugaleuteu;Ştutqart;Štutgartas;Štutgarte;Στουτγκάρδη;Горад Штутгарт;Штутгарт;Штуттгарт;Щутгарт;שטוטגארט;שטוטגרט;اشتوتگارت;سٹٹگارٹ;شتوتغارت;شتوتگارت;شٹوٹگارٹ;श्टुटगार्ट;স্টুটগার্ট;સ્ટુટગાર્ટ;இசுடுட்கார்ட்;സ്റ്റുട്ട്ഗാർട്ട്;ชตุทท์การ์ท;შტუტგარტი;シュトゥットガルト;斯图加特;슈투트가르트; +city::2826287;Stralsund;BBH;Gorad Shtral'zund;Shhralzund;Shtral'zund;Shtralzund;Stralsund;Stralsunda;Stralzunde;Strzalowo;Strzałowò;ashtralzwnd;shi te la er song;shi te la er song de;shutoraruzunto;strlzwnd;syuteulaljunteu;Štrālzunde;Горад Штральзунд;Штралзунд;Штральзунд;Щралзунд;שטרלזונד;اشترالزوند;შტრალზუნდი;シュトラールズント;施特拉尔松;施特拉爾松德;슈트랄준트; +city::2826595;Stolberg;Shtol'berg;Shtolberg;Sjtolberg;Stolberg;Stolbersch;ashtwlbrg;shi tuo er bei ge;shtwlbrgh;shutoruberuku;Штолберг;Штольберг;اشتولبرگ;شتولبرغ;シュトルベルク;施托尔贝格; +city::2830582;Speyer;Espira;Gorad Shpaer;Noviomagus;Schbaya;Shpaer;Shpajer;Shpejer;Spaier;Speyer;Spira;Spire;Spires;Spyr;ZQC;ashpyr;ch pi xexr;shi pai er;shupaia;spyyr;syupaieo;Špýr;Σπάιερ;Горад Шпаер;Шпайер;Шпаєр;Шпајер;Шпейер;שפייר;اشپیر;ชไปเออร์;ስፓየር;シュパイアー;施派尔;슈파이어; +city::2831580;Solingen;Gorad Zolingen;Solich;Solingen;ZIO;Zolin'nken;Zolingen;Zolingenas;Zolingene;jolling-gen;so ling ngein;suo lin gen;swlngn;zolingeni;zoringen;zwlynghn;zwlyngn;Ζόλινγκεν;Горад Золінген;Золинген;Золінген;זולינגן;زولينغن;زولینگن;سولنگن;โซลิงเงิน;ზოლინგენი;ゾーリンゲン;索林根;졸링겐; +city::2831948;Sindelfingen;Sindelfingen;ZPZ;Zindel'fingen;Zindelfingen;Zintelfinken;jinderufingen;xin de er fen gen;zindelpingeni;zyndlfynghn;zyndlfyngn;Ζίντελφιγκεν;Зинделфинген;Зиндельфинген;Зіндельфінген;Զինդելֆինգեն;زيندلفينغن;زیندلفینگن;ზინდელფინგენი;ジンデルフィンゲン;辛德尔芬根; +city::2832495;Siegen;SGE;Siegen;Zigen;jigen;Зиген;ジーゲン; +city::2834265;Schwerte;Schweierte;Schwerte;Shverte;Sverte;ZPX;shfyrth;shi wei te;shwrth;Švertė;Шверте;شفيرته;شورته;施韦特; +city::2834282;Schwerin;Gorad Shveryn;SZW;Schwerin;Shverin;Shverini;Suerinum;Sverin;Sverinas;Sverine;Swerin;Zwerin;Zwěrin;ch weri n;shen wei lin;shfyryn;shuvu~erin;shwryn;sverina;swwryn;syubelin;Šverinas;Šverīne;Σβερίν;Горад Шверын;Шверин;Шверін;Շվերին;שוורין;شفيرين;شورین;श्वेरिन;ชเวริน;シュヴェリーン;什未林;슈베린; +city::2834498;Schweinfurt;Gorad Shvajnfurt;Schweinfurt;Shvajnfurt;Suevofortum;ZPW;shfaynfwrt;shi wei yin fu te;shwaynfwrt;Горад Швайнфурт;Швайнфурт;Швајнфурт;شفاينفورت;شواینفورت;施韦因富特; +city::2835482;Schwabisch Gmund;Gamundia;Gmund;Gmünd;Schwaebisch Gmuend;Schwäbisch Gmünd;Shvebish Gmind;Shvebish Gmjund;Shvebish-Gmjund;Svabijos Gmiundas;chwe bi chk mun d;shfaybysh ghmwnd;shi wa ben ge ming de;shvebish-gmiundi;shwbysh gmwnd;Švabijos Gmiundas;Швебиш Гминд;Швебиш Гмюнд;Швебиш-Гмюнд;Швебіш-Гмюнд;شفايبيش غموند;شوبیش گموند;ชเวบิชกมึนด์;შვებიშ-გმიუნდი;施瓦本格明德; +city::2841648;Sankt Augustin;Sankt Augustin;Sankt-Avgustin;Zankt-Augustin;sheng ao gu si ding;zankt agstyn;zankt awghstyn;Занкт-Аугустін;Санкт Аугустин;Санкт-Августин;زانكت آوغستين;زانکت آگستین;圣奥古斯丁; +city::2842647;Saarbruecken;Gorad Saarbruken;SCN;Saarbrecken;Saarbrigge;Saarbrjuken;Saarbrjukken;Saarbrucken;Saarbruecken;Saarbruekken;Saarbrécken;Saarbrücken;Saarbrükken;Saarmpryken;Saravipons;Sarbriken;Sarbriukenas;Sarbruch;Sarebryken;Sarrebruck;Sarëbryken;Sárbrúch;Zarbrikene;Zārbrikene;jaleubeulwiken;jarabryukana;sa er bu lu ken;sar brukhkhein;sarabrukena;sarbrkn;sarbrwkn;sha bo qin;zarbrwkn;zaruburyukken;Σααρμπρύκεν;Горад Саарбрукен;Саарбрюкен;Саарбрюккен;Сарбрикен;Սաարբրյուքեն;זארבריקן;زاربروکن;ساربروكن;ساربروکن;ساربرکن;जारब्र्युकन;सारब्रुकेन;ซาร์บรึคเคิน;ზაარბრიუკენი;ザールブリュッケン;沙卜勤;萨尔布吕肯;자르브뤼켄; +city::2842884;Ruesselsheim;Gorad Rusel'sgajm;Riselsheima;Riselskhajm;Rjussel'sgajm-am-Majn;Rjussel'skhajm;Rjusselskhajm;Rouselschaim;Ruesselsheim;Ruesselsheim am Main;Russelsheim;Rüsselsheim;Rüsselsheim am Main;lu sai er si hai mu;rwslshaym;rwslshyym;rwslzhaym;ryusserusuhaimu;Ρουσελσχάιμ;Горад Русельсгайм;Риселсхајм;Рюсселсхайм;Рюссельсгайм-ам-Майн;Рюссельсхайм;רוסלסהיים;روسلزهایم;روسلسهايم;リュッセルスハイム;吕塞尔斯海姆; +city::2844588;Rostock;Gorad Rostak;RLG;Roshhok;Roshtok;Rostochium;Rostock;Rostok;Rostoka;Rostokas;Roztok;loseutokeu;luo si tuo ke;rosutokku;rwstwk;rwstwq;rxs thxkh;Ρόστοκ;Горад Ростак;Росток;Рошток;Рощок;רוסטוק;روستوك;روستوک;روسٹاک;รอสทอค;როსტოკი;ロストック;罗斯托克;로스토크; +city::2844988;Rosenheim;Gorad Rozenkhajm;Pons Aeni;Rosenheim;Rousnam;Rozengajm;Rozenkhajm;ZPR;lojenhaim;luo sen hai mu;rozenhaimu;rznhaym;Горад Розенхайм;Розенгайм;Розенхайм;Розенхајм;رزنهایم;ローゼンハイム;罗森海姆;로젠하임; +city::2847645;Rheine;Rajn;Rajne;Rene;Rheine;ZPQ;lai nei;laine;raynh;Райн;Райне;Рајне;راينه;赖内;라이네; +city::2847736;Reutlingen;Rejtlingen;Reutlingen;Roitlingenas;Roitlinken;Rojtlingen;ZPP;loiteulling-gen;luo yi te lin gen;roitoringen;rwytlynghn;rwytlyngn;Ρόιτλιγκεν;Рейтлинген;Ройтлинген;Ройтлінген;Ројтлинген;רויטלינגן;رويتلينغن;روٹلنگن;ロイトリンゲン;罗伊特林根;로이틀링겐; +city::2848273;Remscheid;Remsaint;Remsayd;Remscheid;Remseidas;Remshajd;Remşayd;Remšeidas;ZPN;lei mu sha yi de;lemsyaiteu;remshaidi;remushaito;rmshayd;rmsyyd;Ρέμσαϊντ;Ремшайд;Ремшајд;רמשייד;رمشايد;رمشاید;ریمشیڈ;რემშაიდი;レムシャイト;雷姆沙伊德;렘샤이트; +city::2849483;Regensburg;Gorad Rehgensburg;Ratisbon;Ratisbona;Ratisbonne;Ratyzbona;Regensboerj;Regensburg;Regensburga;Regensburgas;Regensburgo;Regensbörj;Regenzburg;Rengschburg;Renkensmpournk;Rezno;Rēgensburga;Rėgensburgas;Rězno;ZPM;legenseubuleukeu;lei gen si bao;regensburgi;regensuburuku;rgnsbwrg;ryghnsbwrgh;rygnzbrg;Řezno;Ρέγκενσμπουργκ;Горад Рэгенсбург;Регензбург;Регенсбург;Реґенсбурґ;רגנסבורג;ريغنسبورغ;رگنسبورگ;ریگنزبرگ;რეგენსბურგი;レーゲンスブルク;雷根斯堡;레겐스부르크; +city::2849647;Recklinghausen;Recklinghausen;Recklinghusium;Reklinghauzenas;Reklingkhauzen;Riaekelhusen;Riäkelhusen;lei ke lin hao sen;lekeullinghaujen;rekkuringuhauzen;rklynghawzn;Реклингхаузен;Реклінгхаузен;رکلینگهاوزن;ریکلنگہاؤسن;რეკლინგჰაუზენი;レックリングハウゼン;雷克林豪森;레클링하우젠; +city::2850174;Ratingen;Ratingen;ZPJ;la ting gen;lating-en;ratlyngn;Ратинген;راتلینگن;拉廷根;라팅엔; +city::2851746;Pulheim;Pul'gajm;Pul'khajm;Pulheim;Pulkhajm;Pullem;bwlhaym;pu er hai mu;pwlhaym;Пулхајм;Пульгайм;Пульхайм;بولهايم;پولهایم;普爾海姆; +city::2852458;Potsdam;Poczdam;Podstupim;Postupim;Potsdam;Potsdamo;Poztupimi;bo ci tan;pocheudam;potsudamu;pwtsdm;Πότσδαμ;Потсдам;פוטסדאם;פוטסדם;ポツダム;波茨坦;포츠담; +city::2853292;Plauen;Plauehn;Plauen;Plauenas;Plauene;Plavia Variscorum;Plavno;Plawno;Pławno;blawyn;peullauen;phe la xein;plauehn;plawyn;pu lao en;purauen;Плауен;Плауэн;פלאואן;بلاوين;پلاوئن;เพลาเอิน;プラウエン;普劳恩;플라우엔; +city::2853969;Pforzheim;Gorad Pforckhajm;Pforcheimas;Pforckhajm;Pfortschaim;Pforzheim;Phorca;Porta Hercyneae;bfwrtshaym;fwrtshaym;poleucheuhaim;pu fu er ci hai mu;puforutsuhaimu;Πφόρτσχαϊμ;Горад Пфорцхайм;Пфорцхайм;Пфорцхајм;بفورتسهايم;فورتسهایم;فورزہائم;პფორცჰაიმი;プフォルツハイム;普福尔茨海姆;포르츠하임; +city::2855328;Passau;Bassa;Batavia Bavariae;Båssa;Gorad Pasau;Pasau;Pasavia;Pasawa;Pasov;Passaou;Passau;Passavia;ZPF;pa shao;pasau;pasaw;passau;phas sea;psaw;Πάσσαου;Горад Пасау;Пасау;Пассау;پاساو;پساؤ;พาสเซา;パッサウ;帕绍;파사우; +city::2855745;Paderborn;Gorad Padehrborn;PAD;Paderborn;Paderborna;Paderbornas;Paderbronna;Patterbuorn;Pāderborna;badrbwrn;pa de bo en;pa de xr bxrn;padaborun;padeoboleun;padrbwrn;Горад Падэрборн;Падерборн;بادربورن;پادربورن;پیڈربورن;ปาเดอร์บอร์น;პადერბორნი;パーダーボルン;帕德博恩;파더보른; +city::2856883;Osnabrueck;Gorad Asnabruk;Osnabrik;Osnabrika;Osnabriukas;Osnabrjuk;Osnabruck;Osnabrueck;Osnabruga;Osnabrugensis;Osnabrück;Ossenbruegge;Ossenbrügge;ao si na bu lu ke;asnabrwk;awsnabrwk;oseunabeulwikeu;osunaburyukku;Горад Аснабрук;Оснабрик;Оснабрюк;אוסנבריק;أسنابروك;اسنابروک;اوسنابروک;ოსნაბრიუკი;オスナブリュック;奥斯纳布吕克;오스나브뤼크; +city::2857458;Oldenburg;Aldenboarch;Aldinborg;Byen Oldenburg;Gorad Ol'dehnburg;Ol'denburg;Oldemburgh;Oldemburgo;Oldenboerj;Oldenbourg;Oldenburg;Oldenburgas;Oldenburgo;Oldenburgum;Oldenbörj;Ollnborg;Ooldenbuurich;ao er deng bao;awldnbwrg;awldnbwrgh;oldenbuleukeu;oldenburgi;orudenburuku;Горад Ольдэнбург;Олденбург;Ольденбург;Өльдэнбург;אולדנבורג;أولدنبورغ;اولدنبورگ;اولڈنبرگ;ოლდენბურგი;オルデンブルク;奥尔登堡;올덴부르크; +city::2857798;Offenburg;Ofenburg;Offenbourg;Offenburg;Offenburgum;ZPA;ao fen bao;awfnbwrg;awfnbwrgh;offenburuku;Офенбург;Оффенбург;אופנבורג;أوفنبورغ;اوفنبورگ;オッフェンブルク;奥芬堡; +city::2857807;Offenbach;Offenbach;Offenbach am Main; +city::2860410;Oberhausen;Obergauzen;Oberhausen;Oberhauzen;Oberhauzenas;Oberhauzene;Oberkhauzen;Omperchaouzen;Overhus;ao bo hao sen;awbrhawzn;obahauzen;obeohaujen;oberhauzeni;Ομπερχάουζεν;Обергаузен;Оберхаузен;אוברהאוזן;أوبرهاوزن;اوبرهاوزن;ობერჰაუზენი;オーバーハウゼン;奥伯豪森;오버하우젠; +city::2861650;Nuernberg;Gorad Njurnberg;NUE;Neurenberch;Neurenberg;Niamberg;Nirnberg;Nirnberga;Niurnbergas;Njurnberg;Norimberg;Norimberga;Norimberk;Norimbèrga;Norymberga;Nuernbarg;Nuernberg;Nuernberq;Nuremberg;Nuremberga;Nurembergo;Nuremburg;Nurembèrg;Nurenberg;Nurenbergo;Nurenburg;Nurnberg;Nyremberg;Nyremberge;Nyremvergi;Nyrëmberg;Nyurnberg;Nyurnbérg;Núremberg;Nürnbarg;Nürnberg;Nürnberq;n'yurnabarga;niu lun bao;niurnbergi;niyuramperk;nurem beirk;nwileunbeleukeu;nwrnbrg;nwrnbyrgh;nyrnbrg;nyurunberuku;nywrmbrg;Νυρεμβέργη;Νυρεμβεργη;Горад Нюрнберг;Нирнберг;Нюрнберг;Нӳрнберг;נירנבערג;נירנברג;نورنبرگ;نورنبيرغ;نۆریمبێرگ;نیورمبرگ;न्युर्नबर्ग;நியூரம்பெர்க்;นูเรมเบิร์ก;เนือร์นแบร์ก;ნიურნბერგი;ニュルンベルク;纽伦堡;뉘른베르크; +city::2861934;Nordhorn;Nordhorn;Nordkhorn;Nothoorn;nuo de huo en;nwrdhwrn;Нордхорн;نوردهورن;諾德霍恩; +city::2862026;Norderstedt;Nordershtedt;Nordershtet;Norderstedt;Norderstedt Stadt;ZOV;nrdrashtt;nuo de shi tai te;nwrdrshtyt;nwrdrstt;Нордерштедт;Нордерштет;נורדרשטט;نردراشتت;نوردرشتيت;諾德施泰特; +city::2863840;Neuwied;Langendorf;Neuweid;Neuwied;Nojvid;ZOU;noivu~ito;nwyfyd;nwywwyd;nwywyd;xin wei de;Нойвид;Нойвід;Нојвид;נויוויד;نويفيد;نویوید;ノイヴィート;新維德; +city::2863941;Neu-Ulm;Gorad Noj-Ul'm;Nei-Ulm;Neu Ulm;Neu-Ulm;Noea Ulma;Noj-Ul'm;Noj-Ulm;Nova Ulma;Noy Owlm;Nuevo Ulm;Nuova Ulma;Nöa Ulma;Subdistrikto Neu-Ulm;ZOT;noiulleum;noiurumu;nwy-awlm;xin wu er mu;Горад Ной-Ульм;Ной-Ульм;Ној-Улм;Նոյ Ուլմ;נוי-אולם;نوي-أولم;نوی-اولم;ノイウルム;新乌尔姆;노이울름; +city::2864054;Neustadt;Naischdadt;Neustadt;Neustadt an der Haardt;Neustadt an der Weinstrasse;Neustadt an der Weinstraße;Neustadt ce la Vinstrato;Neustadt ĉe la Vinstrato;Nojshhat an der Vajnshhrase;Nojshtadt-an-der-Vajnshtrase;Nojshtadt-an-der-Vajnshtrasse;Nojshtat an der Vajnshtrase;pu tao jiu zhi lu shang de xin cheng;Нойштадт-ан-дер-Вайнштрасе;Нойштадт-ан-дер-Вайнштрассе;Нойщат ан дер Вайнщрасе;Нојштат ан дер Вајнштрасе;نوی‌اشتات آن در واین‌اشترایه;葡萄酒之路上的新城; +city::2864118;Neuss;Gorad Nojs;Neuss;Neuß;Noisas;Nojs;Novaesium;Nuess;Nueuess;Nuus;Nüss;Nüüß;noiseu;noisi;noisu;nuo yi si;nwys;nyws;Горад Нойс;Нойс;Нојс;نويس;نویس;نیوس;ნოისი;ノイス;诺伊斯;노이스; +city::2864475;Neumuenster;EUM;Naimuenster;Naimünster;Neumuenster;Neumunster;Neumünster;Niemuenster;Niemünster;Nojminster;Nojmjunster;Novum Monasterium;noimwinseuteo;noimyunsuta;nywmnstr;xin ming si te;Ноймюнстер;Нојминстер;نوی‌مونستر;نیومنستر;ノイミュンスター;新明斯特;노이뮌스터; +city::2866110;Neubrueck;; +city::2866135;Neubrandenburg;FNB;Neibrandenburga;Neubrandenbourg;Neubrandenburg;Noibrandenburgas;Nojbrandenburg;Nojbrandenburge;Nuevo Brandeburgo;noibeulandenbuleukeu;noiburandenburuku;nwybrndnbwrg;xin bo lan deng bao;Нойбранденбург;Нойбранденбурге;Нојбранденбург;نویبرندنبورگ;ノイブランデンブルク;新勃兰登堡;노이브란덴부르크; +city::2867543;Muenster;FMO;Gorad Mjunstehr;Minster;Minstere;Miunsteris;Mjunster;Moenster;Monasterium;Muenster;Munistri;Munster;Mynster;Mönster;Münster;ming si te;mwinseuteo;mwnstr;mynstr;myunsuta;Μύνστερ;Горад Мюнстэр;Минстер;Мюнстер;מינסטר;مونستر;მიუნსტერი;ミュンスター;明斯特;뮌스터; +city::2867714;Munich;Gorad Mjunkhen;Lungsod ng Muenchen;Lungsod ng München;MUC;Minca;Minche;Minga;Minhen;Minhene;Minkhen;Miunchenas;Mjunkhen;Mnichov;Mnichow;Mníchov;Monachium;Monacho;Monaco de Baviera;Monaco di Baviera;Monaco e Baviera;Monacu;Monacu di Baviera;Monacum;Muenchen;Muenegh;Muenhen;Muenih;Munchen;Munhen;Munic;Munich;Munich ed Baviera;Munih;Munike;Munique;Munix;Munkeno;Munkhen;Munîh;Mynihu;Myunxen;Myunxén;Mònacu;Mùnich ëd Baviera;Múnic;Múnich;München;Münegh;Münhen;Münih;mi wnik;mi'unikha;miunkheni;miyunik;mu ni hei;mwinhen;mwnykh;mynkn;myunhen;myunik;myunikha;myunsena;mywnkh;mywnykh;Μόναχο;Горад Мюнхен;Минхен;Мюнхен;Мүнхен;Мүнхэн;Мӱнхен;Մյունխեն;מינכן;مونیخ;ميونخ;ميونيخ;میونخ;म्युन्शेन;म्यूनिख;মিউনিখ;மியூனிக்;ಮ್ಯೂನಿಕ್;มิวนิก;မြူးနစ်ချ်မြို့;მიუნხენი;ミュンヘン;慕尼黑;뮌헨; +city::2867838;Muelheim;ESS;Milchaim;Mjul'khajm-na-Rure;Moelm;Moeln;Muelheim;Muelheim (Ruhr);Muelheim an der Ruhr;Mulheim;Mulheim-on-Ruhr;Mölm;Möln;Mülheim;Mülheim (Ruhr);Mülheim an der Ruhr;Mülheim-on-Ruhr;Μιλχάιμ;Мюльхайм-на-Руре;מילהיים על הרוהר; +city::2869894;Moenchengladbach;Jlabbach;M'onkhengladbakh;Men'chen'nklantmpach;Menchengladbachas;Menhengladbaha;Menkhengladbakh;Mjonkhengladbakh;Moenchengladbach;Monchengladbach;Muenchen-Gladbach;Mönchengladbach;dwsldwrf;mein chen klad bakh;men xing ge la de ba he;menhyenguratobahha;menkhengladbakhi;mnsngldbk;moenhengeullateubaheu;mwnshnghladbakh;myonsanagladabakha;Μενχενγκλάντμπαχ;Менхенгладбах;Мьонхенгладбах;Мёнхенгладбах;מנשנגלדבך;دوسلدورف;مونشنغلادباخ;مونشن‌گلادباخ;म्योन्शनग्लाडबाख;เมินเชนกลัดบัค;მენხენგლადბახი;メンヒェングラートバッハ;门兴格拉德巴赫;묀헨글라트바흐; +city::2870221;Moers;Gorad Mjors;M'ors;Mers;Mersas;Meurs;Mjors;Moers;Mors;Mörs;Mėrsas;ZON;meirs;mo er si;moeleuseu;mwrz;mwyrs;myrs;Горад Мёрс;Мерс;Морс;Мьорс;Мёрс;مئرس;مورز;مويرس;เมิร์ส;默爾斯;뫼르스; +city::2871039;Minden;Minden;Minn;min dein;minden;ming deng;mndn;myndn;Минден;Мінден;مندن;میندن;มินเดิน;ミンデン;明登; +city::2871983;Menden;Menden;Mennen;men deng;mndn;Менден;مندن;门登; +city::2872504;Meerbusch;Meerbusch;Merbush;ZOK;mei er bu shi;myrbwsh;Мербуш;ميربوش;میربوش;梅尔布施; +city::2873263;Marl;Alt-Marl;Marl;Marl';ma er;marl alman;Марл;Марль;مارل، آلمان;马尔; +city::2873759;Marburg an der Lahn;Marbourg;Marburg;Marburg an der Lahn;Marburgo;Marmpournk;maruburuku;Μάρμπουργκ;Марбург;マールブルク; +city::2873891;Mannheim;Gorad Mangejm;MHG;Man'chaim;Man'geym;Man'géym;Mangejm;Manhajmi;Manheima;Manheimas;Manhemium;Mankhajm;Mannheim;Monnem;man hai mu;man him;manaha'ima;manhaim;manhaimi;manhaimu;manhaym;mnhyym;Μάνχαϊμ;Горад Мангейм;Мангейм;Манхайм;Манхајм;מנהיים;مانهايم;مانهایم;मानहाइम;มันไฮม์;მანჰაიმი;ማንሃይም;マンハイム;曼海姆;만하임; +city::2874225;Mainz;Gorad Majnc;Maeaenz;Maganza;Magonza;Maguncia;Maguntzia;Magunza;Magúncia;Maianca;Maiança;Mainca;Maincas;Maints;Mainz;Majenco;Majnc;Majnci;Mayence;Mayns;Meenz;Mogontiacum;Moguncia;Moguncja;Moguntiacum;Mogúncia;Mohuc;Mohuč;Määnz;ma'intsa;maincheu;maintsi;maintsu;maynts;maynz;mei yin ci;mins;myynz;Μάιντς;Горад Майнц;Майнц;Мајнц;מיינץ;مائنز;ماينتس;ماینتس;माइंत्स;ไมนซ์;მაინცი;ማይንጽ;マインツ;美因茨;마인츠; +city::2874545;Magdeburg;CSO;Dzewin;Dźěwin;Gorad Magdehburg;Maagdenburg;Madeborch;Magathaburg [a. 936];Magdeboerj;Magdeborg;Magdeborgh;Magdebourg;Magdebourgo;Magdebuag;Magdeburg;Magdeburga;Magdeburgas;Magdeburgh;Magdeburgo;Magdeburgu;Magdeburgum;Magdeburk;Magdebörj;Makekepuka;Meideborg;Meyburch [a. 1275];ma ge de bao;magadeburga;magdbwrg;magdeburgi;mageudebuleukeu;maghdybwrgh;mak de bur k;makdeburga;makudeburuku;mgdbwrg;Μαγδεβούργο;Горад Магдэбург;Магдебург;מגדבורג;ماغديبورغ;ماگدبورگ;مگڈیبرگ;माक्देबुर्ग;मागदेबुर्ग;มักเดบูร์ก;მაგდებურგი;マクデブルク;马格德堡;마그데부르크; +city::2875107;Luenen;Hliunon;Linen;Ljunen;Luenen;Lunen;Lünen;lu nen;lwinen;lwnn;ryunen;Линен;Люнен;لونن;リューネン;吕嫩;뤼넨; +city::2875115;Lueneburg;Glain;Gorad Ljuneburg;Lineburg;Ljuneburg;Luemborg;Lueneburg;Luneberg;Lunebourg;Luneburg;Luneburgo;Luneburgum;Lyneburgu;Lynempournk;Lümborg;Lüneburg;lu ne bao;lu nei bao;lwinebuleukeu;lwnbwrg;lwnbwrgh;lynbwrg;ryuneburuku;Λύνεμπουργκ;Горад Люнебург;Линебург;Люнебург;לינבורג;لونبورغ;لونبورگ;リューネブルク;吕内堡;吕讷堡;뤼네부르크; +city::2875376;Ludwigshafen am Rhein;Liudvigshafenas prie Reino;Ljudvigsgafen-na-Rejni;Ljudvigskhafen-na-Rejne;Lountvichschafen;Ludovici Portus Rhenanus;Ludvigskhafen;Ludvigskhafen na Rajni;Ludwichshafe;Ludwigshafen;Ludwigshafen am Rhein;Ludwigshafen sul Reno;Luedviqshafen;Lüdviqshafen;lu de wei xi gang;ludaviksahaphena;luteubihiseuhapen;lwdfyghshafn;lwdwygshafn;rainis ludvigshapeni;rutovu~ihhisuhafen;rutovu~ihisuhafen;Λουντβιχσχάφεν;Лудвигсхафен;Лудвигсхафен на Рајни;Людвигсхафен-на-Рейне;Людвіґсгафен-на-Рейні;לודוויגסהאפן;لودفيغسهافن;لودویگسهافن;لڈوگشافن;लुडविक्सहाफेन;რაინის ლუდვიგსჰაფენი;ルートヴィッヒスハーフェン;ルートヴィヒスハーフェン;路德维希港;루트비히스하펜; +city::2875392;Ludwigsburg;Gorad Ljudvigsburg;Liudvigsburgas;Ljudvigsburg;Lountvinksmpournk;Ludoviciburgum;Ludvigsburg;Ludwigsbourg;Ludwigsburg;Ludwigsburgo;Luedviqsburq;Luisburgo;Lüdviqsburq;lu de wei xi bao;lud wics bur k;lwdfyghsbwrgh;lwdwygzwbwrg;rutovu~ihisuburuku;Λούντβιγκσμπουργκ;Горад Людвігсбург;Лудвигсбург;Людвигсбург;Людвігсбург;لودفيغسبورغ;لودویگزوبورگ;ลุดวิจส์บูร์ก;ルートヴィヒスブルク;路德维希堡; +city::2875457;Luedenscheid;Leudenscheid;Lidenshajd;Liudolvescetha;Ljudenshajd;Ludenscheid;Luedenscheid;Luensche;Lüdenscheid;Lünsche;lu deng sha yi de;lwdnshayd;Лиденшајд;Люденшайд;لودنشايد;لودن‌شاید;吕登沙伊德; +city::2875601;Luebeck;Gorad Ljubek;Libek;Libeka;Limpek;Liubekas;Ljubek;Lubeca;Lubecca;Lubeck;Lubeck Hansestadt;Lubeka;Lubeko;Lubëcca;Luebeca;Luebeck;Lybeku;Lyypekki;Lübeca;Lübeck;Lübeck Hansestadt;Lībeka;lu bei ke;lux bekh;lwbk;lwbyk;lwibekeu;lybq;lyubeka;ryubekku;Λίμπεκ;Горад Любек;Либек;Любек;ליבק;لوبيك;لوبک;ल्युबेक;ลือเบค;ლიუბეკი;リューベック;吕贝克;뤼베크; +city::2876865;Lippstadt;Lip'stant;Lippshtadt;Lippshtadte;Lippstadt;Lipshhat;Lipshtat;li pu shi ta te;lybshtat;Λίπσταντ;Липпштадт;Липпштадте;Липштат;Липщат;Ліппштадт;ليبشتات;لیپ‌اشتات;利普施塔特; +city::2877088;Lingen;Gorad Lingen;Lingen;lin gen;lynghn;lyngn;ringen;Горад Лінген;Линген;لينغن;لینگن;リンゲン;林根; +city::2878234;Leverkusen;Laevverkuuse;Leberkouzen;Leverkusen;Leverkuzen;Leverkuzenas;Leverkuzene;Leverkūzene;Lävverkuuse;Lėverkuzenas;ZOA;lbrqwzn;le fexr khu sein;lebeokujen;lei wo ku sen;lwrkwzn;lyfrkwzn;lywrkwsn;rebakuzen;Λεβερκούζεν;Леверкузен;לברקוזן;لورکوزن;ليفركوزن;لیورکوسن;เลเฟอร์คูเซิน;ლევერკუზენი;レバークーゼン;勒沃库森;레버쿠젠; +city::2879139;Leipzig;Gorad Lejpcyg;LEJ;Laeipcig;Lajpcig;Lajpcigu;Lajpcik;Leipciga;Leipcigas;Leipsia;Leipzig;Lejpcig;Leypsiq;Leypzig;Lipcse;Lipekika;Lipsca;Lipsia;Lipsk;Lipsko;Läipcig;Léypzig;Lípsia;la'ipajhisa;la'ipasisa;lai bi xi;laipcik;laipeuchihi;laiptsigi;laybzygh;laypzsh;laypzyg;lip sik;lipajiga;liph sik;lypzsh;lyypzyg;raiputsu~ihi;Λειψία;Горад Лейпцыг;Лайпциг;Лајпциг;Лейпциг;Լայպցիգ;לייפציג;لائپزش;لايبزيغ;لایپزیگ;لیپزش;लाइपझिश;लिपजिग;লাইপ্‌ৎসিশ;ਲਾਈਪਸਿਸ਼;லைப்சிக்;ไลป์ซิก;ไลพ์ซิก;လိုက်ပဆစ်မြို့;ლაიფციგი;ላይፕጽግ;ライプツィヒ;莱比锡;萊比錫;라이프치히; +city::2881062;Langenhagen;Langenhagen;Langenhogen;Langenkhagen;Nienhagen [a. 1312];lang gen ha gen;langhnhaghn;langnhagn;Лангенхаген;لانغنهاغن;لانگنهاگن;朗根哈根; +city::2881085;Langenfeld;Langefaeael;Langefääl;Langenfel'd;Langenfeld;ZNX;lang gen fei er de;langnfld;Лангенфелд;Лангенфельд;لانگنفلد;朗根费尔德; +city::2881485;Landshut;Gorad Landsgut;Landishuta;Landsgut;Landshuad;Landshut;Landshutas;Landskhut;Lantschout;QLG;lan ci hu te;lan dshuth;lancheuhuteu;landshwt;rantsufuto;Λάντσχουτ;Горад Ландсгут;Ландсгут;Ландсхут;Լանդսհուտ;لاندسهوت;ลันด์สฮูท;ლანდსჰუტი;ランツフート;兰茨胡特;란츠후트; +city::2884509;Krefeld;Crefeld;Gorad Krehfel'd;Krefel'd;Krefeld;Krefeld-Uerdingen;Krefeldas;Krefelde;Krefelnt;Krieevel;Krievel;Krēfelde;Krėfeldas;QKF;ke lei fei er de;keulepelteu;kher fel d;krfld;kryfld;kureferuto;qrpld;Κρέφελντ;Горад Крэфельд;Крефелд;Крефельд;Կրեֆելդ;קרפלד;كريفلد;کرفلد;کریفیلڈ;เครเฟลด์;კრეფელდი;クレフェルト;クレーフェルト;克雷费尔德;크레펠트; +city::2885679;Konstanz;Constanca;Constance;Constanta;Constantia;Constanza;Constança;Constanța;Costansa;Costanza;Costnitz;Gorad Kanstanc;Konstanc;Konstanca;Konstancas;Konstancja;Konstanco;Konstantia;Konstantza;Konstanz;Kostnica;Kostnice;Kostnitz;QKZ;kang si tan ci;knstants;konseutancheu;konstensa;konsutantsu;kwnstans;qwnstnz;Κωνσταντία;Горад Канстанц;Констанц;קונסטנץ;كونستانس;کنستانتس;کونسٹانس;कॉन्स्टेंस;კონსტანცი;コンスタンツ;康斯坦茨;콘스탄츠; +city::2886242;Koeln;Augusta Ubiorum;CGN;Cologna;Cologne;Colonha;Colonia;Colonia Agrippina;Colonia Agrippinensis;Colonia Claudia Ara Agrippinensium;Colònia;Colônia;Cołogna;Culonia;Cwlen;Gorad Kjol'n;K'oln;Kel'n;Keln;Kelnas;Kelne;Kelni;Keulen;Kiolns;Kjol'n;Koelle;Koeln;Kol'n;Kolin nad Rynem;Kolin nad Rynom;Koln;Koloin;Kolon;Kolonia;Kolonjo;Kolín nad Rýnem;Kolín nad Rýnom;Kyoln;Këlni;Kölle;Köln;Lungsod ng Cologne;Oppidum Ubiorum;gu long;kalana;kalon;ke long;kerun;kholoy;kln;klwn;koelleun;koln;kolon;kwlwn;kwlwnya;kyolna;qln;Ķelne;Κολωνία;Горад Кёльн;Келн;Кельн;Кьолн;Кёльн;Кӧльн;Көлн;Քյոլն;קלן;קעלן;كولونيا;کلن;کلون;کولون;क्योल्न;ਕਲਨ;கோல்ன்;కొలోన్;ಕಲೋನ್;โคโลญ;კელნი;ኮልን;ケルン;古龍;科隆;쾰른; +city::2886946;Koblenz;Coblenca;Coblence;Coblentz;Coblenz;Coblenza;Coblença;Confluentes;Gorad Koblenc;Koblenc;Koblencas;Koblenci;Koblencja;Koblenco;Koblentza;Koblenz;Komplents;ZNV;ke bu lun ci;kobeullencheu;koburentsu;kwblns;kwblnts;kwblnz;qwblnz;Κόμπλεντς;Горад Кобленц;Кобленц;קובלנץ;كوبلنس;کوبلنتس;کوبلنز;コブレンツ;科布倫茨;코블렌츠; +city::2891122;Kiel;Gorad Kil';KEL;Kiel;Kielia;Kielo;Kil;Kil';Kile;Kilo;Kilonia;Kyle;Kylis;Kíl;ji er;khil;kil;kila;kiru;kyl;qyl;Ķīle;Κίελο;Горад Кіль;Кил;Киль;Кіль;Քիլ;קיל;كيل;کیل;कील;কিল;คีล;კილი;キール;基尔;킬; +city::2891524;Kerpen;Kerpe;Kerpen;ke er peng;Керпен;克尔彭; +city::2891621;Kempten (Allgaeu);Kempten; +city::2892518;Kassel;Cassala;Cassel;Castellum;Chasalla [a. 913];Gorad Kasel';KSF;Kasel;Kasele;Kaseli;Kaselis;Kaselo;Kassel;Kassel';ka sai er;ka sai er shi;kasel;kasl;kasseru;khas seil;kysl;Κάσσελ;Горад Касель;Касел;Кассель;קאסל;كاسل;کاسل;کیسل;คัสเซิล;კასელი;カッセル;卡塞尔;卡塞爾市;카셀; +city::2892794;Karlsruhe;Carlsruhe;Carolsruha;FKB;Gorad Karlsrueh;Kallsruh;Karlsroue;Karlsrue;Karlsrueh;Karlsruhe;Karlsruje;Karlsrūe;Karlsrūjė;ka er si lu e;kaleulseulue;karlsaruha;karlsrwh;karlsrwhh;karusurue;qrlsrwhh;Καρλσρούη;Горад Карлсруэ;Карлсруе;Карлсруэ;קרלסרוהה;كارلسروه;کارلزروہے محل;کارلسروهه;कार्ल्सरूह;კარლსრუე;カールスルーエ;卡尔斯鲁厄;카를스루에; +city::2894003;Kaiserslautern;K-Town;KLT;Kaiserlautern;Kaiserslantern;Kaiserslautern;Kaizerslauternas;Kajzerslautern;Lutra;kai sa si lao teng;kaijeoseullauteleun;kaizasurauterun;ki se xrs lea theirn;Кайзерслаутерн;Кајзерслаутерн;קייזרסלאוטרן;کائزرسلائوٹرن;ไกเซอร์สเลาเทิร์น;カイザースラウテルン;凯撒斯劳滕;카이저슬라우테른; +city::2895044;Jena;Ena;Gorad Iena;Iena;Iéna;Jena;Jena (Thueringen);Jéna;Jēna;Jėna;ZJS;iena;i~ena;jena;jyna;ye na;yena;yna;yyna;yynh;Ιένα;Єна;Јена;Горад Іена;Йена;יינה;جینا;يينا;ینا;जेना;জেনা;იენა;イェーナ;耶拿;예나; +city::2895669;Iserlohn;Iserlaun;Iserlohn;Iserlon;Izerlon;Izerlonas;ZNR;ayzlwn;azrlwn;ijeollon;izaron;yi se long;Ізерлон;Изерлон;Исерлон;إزرلون;ایزلون;イーザーローン;伊瑟隆;이절론; +city::2895992;Ingolstadt;IGS;Ingol'shtadt;Ingolshhat;Ingolshtat;Ingolstadt;ingorushutatto;Инголштат;Инголщат;Ингольштадт;インゴルシュタット; +city::2896817;Ibbenbueren;Ibbenbjuren;Ibbenbueren;Ibbenbüren;Ibenbiren;aybnbwrn;aynnbwrnn;yi ben bi lun;Іббенбюрен;Иббенбюрен;Ибенбирен;إيبنبورن;ایننبورنن;伊本比伦; +city::2897216;Huerth;Gjurt;Hiurtas;Huerth;Hürth;Khirt;Khjurt;ZNP;hwrt;xu er te;Гюрт;Хирт;Хюрт;هورت;许尔特; +city::2904789;Hildesheim;Chilnteschaim;Gil'desgajm;Gorad Gil'dehsgajm;Hildesheim;Hildesheima;Hildesheimas;Hildesia;Hilmessen;Khil'deskhajm;Khildeskhajm;ZNO;hildeseuhaim;hirudesuhaimu;hyldshaym;hyldshyym;hylds‌haym;xi er de si hai mu;Χίλντεσχαϊμ;Горад Гільдэсгайм;Гільдесгайм;Хилдесхайм;Хилдесхајм;Хильдесхайм;הילדסהיים;هيلدسهايم;هیلدس‌هایم;ہیلڈشیم;ヒルデスハイム;希尔德斯海姆;힐데스하임; +city::2904795;Hilden;Gil'den;Hilde;Hilden;Khil'den;Khilden;ZNN;hyldn;xi er deng;Гільден;Хилден;Хильден;هيلدن;هیلدن;希爾登; +city::2905560;Herten;Gerten;Heritono;Herten;Hiaetten;Hiätten;Hėritono;Kherten;hei er teng;hrtn;hyrtn;Гертен;Хертен;هرتن;هيرتن;黑尔滕; +city::2905891;Herne;Gerne;Gorad Kherneh;Herne;Hernė;Kherne;hei er ne;heleune;herne;herune;hrnh;hyrnh;Герне;Горад Хернэ;Херне;هرنه;هيرنه;ہرنے;ჰერნე;ヘルネ;黑尔讷;헤르네; +city::2906121;Herford;Herford;Hiarwede;Kherford;ZNK;hei er fu de;heruforuto;hrfwrd;Херфорд;هرفورد;ヘルフォルト;黑爾福德; +city::2907669;Heilbronn;Chailmpron;Gajl'bronn;Hailprunna;Hajlbrono;Heilbronas;Heilbronn;Heilbronn Neckar;Khajl'bronn;Khajlbron;hai er bu long;hailbeulon;hailbroni;hairuburon;haylbrwn;hyylbrwn;Χαϊλμπρόν;Гайльбронн;Хайлброн;Хайльбронн;Хајлброн;היילברון;هايلبرون;هایلبرون;ہیلبرون;ჰაილბრონი;ハイルブロン;海尔布隆;하일브론; +city::2907851;Heidenheim an der Brenz;Chainten'chaim;Gajdengajm-na-Brenci;Haidenhaim Brencal;Heidenheim;Heidenheim an der Brenz;Heidenheim in Wurttemberg;Heidenheim in Württemberg;Hoana;Khajdenkhajm an der Brenc;Khajdenkhajm na Brencu;Khajdenkhajm-an-der-Brenc;Khajdenkhajm-na-Brence;hai deng hai mu;haydnhaym;haydnhaym an dr brnts;Χάιντενχαϊμ;Гайденгайм-на-Бренці;Хайденхайм ан дер Бренц;Хайденхайм-ан-дер-Бренц;Хайденхайм-на-Бренце;Хајденхајм на Бренцу;هايدنهايم;هایدنهایم آن در برنتس;海登海姆; +city::2907911;Heidelberg;Chaidelvergi;Gajdel'berg;Gejdel'berg;Gorad Gejdehl'berg;HDB;Haidelbergu;Haidlbaersch;Haidlbärsch;Heidelbarg;Heidelberch;Heidelberg;Heidelberga;Heidelbergas;Heidelburg;Heidlberg;Hejdelbergo;Heydelberg;Heydelberq;Héydélbérg;Khajdel'berg;Khajdelberg;hai de bao;haidelbeleukeu;haidelbergi;haideruberuku;hayadelabarga;haydlbrg;haydlbrgh;hyydlbrg;Χαϊδελβέργη;Гайдельберг;Гейдельберг;Горад Гейдэльберг;Хайделберг;Хайдельберг;Хајделберг;היידלבערג;היידלברג;هايدلبرغ;هایدلبرگ;ہائیڈلبرگ;हायडेलबर्ग;ჰაიდელბერგი;ハイデルベルク;海德堡;하이델베르크; +city::2909230;Hattingen;Chatin'nken;Hattingen;Khatingen;Khattingen;ha ting gen;hatyngn;Χάτινγκεν;Хатинген;Хаттинген;هاتینگن;ہیٹنگن;哈廷根; +city::2910831;Hannover;Annobero;Gannovehr;Gannover;Gorad Ganover;HAJ;Hannauver;Hannober;Hannova;Hannover;Hannovera;Hannovere;Hannower;Hannóver;Hanobhar;Hanofer;Hanofér;Hanover;Hanoveri;Hanoveris;Hanovra;Hanovre;Hanovro;Hanower;Hanowery;Hanóver;Hanôver;Honovere;Hànobhar;IHanoveri;Khannover;Khanover;han no wexr;han nuo wei;hanobeo;hanofa;hanophara;hanoveri;hanwfr;hnwbr;Αννόβερο;Ганновер;Ганновэр;Горад Гановер;Ханновер;Хановер;Հաննովեր;האנאווער;הנובר;هانوفر;ھانۆفەر;ہینوور;हानोफर;হানোফার;ฮันโนเวอร์;ჰანოვერი;ハノーファー;汉诺威;漢諾威;하노버; +city::2911007;Hanau am Main;Chanaou;Hanau;Hanau am Main;Khanau;hanau;Χάναου;Ханау;ハーナウ; +city::2911240;Hamm;Gamm;Gorad Kham;Hamas;Hamm;Hammona;Kham;Khamm;ha mu;ham;hami;hamu;Гамм;Горад Хам;Хам;Хамм;هام;ہام;ჰამი;ハム;哈姆;함; +city::2911271;Hameln;Gamel'n;Gorad Khamel'n;Hamala;Hamelen;Hamelin;Hameln;Hamelín;Khamel'n;Khameln;ZEZ;ha mo er en;hamelleun;hamerun;hamln;hmlyn;Гамельн;Горад Хамельн;Хамелн;Хамельн;המלין;هاملن;ハーメルン;哈默爾恩;하멜른; +city::2911298;Hamburg;Amborg;Ambourgo;Amburgo;Amburgu;Augusta Gambriviorum;Ciutat d'Hamburg;Estat d'Hamburg;Gamburg;Gorad Gamburg;HAM;HH;Hamboarch;Hamboerg;Hamboerj;Hamborg;Hambourg;Hamburch;Hamburg;Hamburga;Hamburgas;Hamburgo;Hamburgu;Hamburgum;Hamburk;Hambuurich;Hambörg;Hambörj;Hambùrk;Hambûrg;Hamepuka;Hammaburg [a. 832];Hampuri;Hanburgo;Khamburg;ham bur k;hambuleukeu;hamburgi;hambwrg;hambwrgh;han bao;han bao shi;hanburuku;hemburga;hmbwrg;hyambarg;hʼambwrg;Ħamburg;Αμβούργο;Гамбург;Гамбурґ;Горад Гамбург;Хамбург;Համբուրգ;האַמבורג;המבורג;هامبورغ;هامبورگ;ہymbrg;ہیمبرگ;ܗܡܒܘܪܓ;हॅम्बुर्ग;ಹ್ಯಾಂಬರ್ಗ್;ฮัมบูร์ก;ჰამბურგი;ハンブルク;汉堡;汉堡市;함부르크; +city::2911522;Halle (Saale);Galle;Halle;Halle (Saale);Halle an der Saale;Halle sul Saale;Halle-on-the-Saale;Khale;hale;hare;Галле;Хале;ჰალე;ハレ; +city::2912621;Hagen;Hagen;Khagen;ZEY;hagen;hageni;Хаген;ჰაგენი;ハーゲン; +city::2913366;Guetersloh;GUT;Giterslokh;Giuterslas;Gjuterslo;Guetersloh;Gutersloh;Gütersloh;gwiteoseullo;gwtrzlwh;ju te si luo;kux the xrslo;kwtrslwh;Гитерслох;Гютерсло;كوترسلوه;گوترزلوه;กือเทอร์สโล;居特斯洛;귀터슬로; +city::2913761;Gummersbach;Gumersbakh;Gummersbach;Gummersbakh;ZEW;ghwmrsbakh;gu mei er si ba he;gwmrzbakh;Гумерсбах;Гуммерсбах;غومرسباخ;گومرزباخ;古梅尔斯巴赫; +city::2917540;Grevenbroich;Grefenbrojkh;Grevenbroich;Grevenbroichas;Grevenbroikh;Grevenbrokh;ZEV;ge lei wen bu luo yi xi;ghrfnbrwysh;grfnbrwysh;gurevu~enburoho;Гревенброих;Гревенброх;Грефенбройх;غرفنبرويش;گرفنبرویش;グレーヴェンブローホ;格雷文布羅伊希; +city::2917788;Greifswald;Gorad Grajfsval'd;Grajfsval'd;Grajfsvald;Greifsvaldas;Greifsvalde;Greifswald;Griefswald;Griepswohld;Gripiew Las;ZGW;ge lai fu si wa er de;geulaipeuseubalteu;ghrayfsfalt;graipsvaldi;grayfswald;guraifusuvu~aruto;Горад Грайфсвальд;Грайфсвалд;Грайфсвальд;Грајфсвалд;גרייפסוואלד;غرايفسفالت;گرایفسوالد;گریفزوالڈ;გრაიფსვალდი;グライフスヴァルト;格赖夫斯瓦尔德;그라이프스발트; +city::2918632;Goettingen;Choettingen;Chöttingen;G'otingen;Getingen;Getingenas;Getingene;Getynga;Gjottingen;Goettingen;Gorad Gjotyngen;Gotinga;Gottinga;Gottingen;Göttingen;Nketin'nken;ZEU;gatingen;ge ting gen;gettingen;ghwtynghn;goeting-gen;gtyngn;gwtyngn;gyotingana;keiththing ngein;Γκέτινγκεν;Гетинген;Горад Гётынген;Гьотинген;Гёттинген;Ґетінґен;Գյոթինգեն;גטינגן;غوتينغن;گوتینگن;گوٹنگن;ग्यॉटिंगन;ಗಾಟಿಂಗೆನ್;เกิททิงเงิน;გეტინგენი;ゲッティンゲン;哥廷根;괴팅겐; +city::2918987;Goerlitz;G'orlic;Gerlic;Gerlica;Giorlicas;Gjorlic;Goerlitz;Gorad Gjorlic;Gorlicium Germaniae;Gorlitz;Görlitz;Nkerlits;Zgorjelc;Zgórjelc;Zhorelec;Zhorjelc;Zhořelec;ge er li ci;gerlitsi;gerurittsu;ghwrlyts;goeleullicheu;grlytz;grlyz;Γκέρλιτς;Герлиц;Герліц;Горад Гёрліц;Гьорлиц;Гёрлиц;Гөрлиц;גרליץ;غورليتس;گرلیتز;گورلٹز;გერლიცი;ゲルリッツ;格尔利茨;괴를리츠; +city::2919054;Goeppingen;G'opingen;Gepingen;Geppingen;Gjoppingen;Goeppingen;Göppingen;ZES;ge ping gen;geppingen;ghwbynghn;gwpyngn;Гепинген;Геппінген;Гьопинген;Гёппинген;غوبينغن;گوپینگن;ゲッピンゲン;格平根; +city::2920236;Gladbeck;Gladbeck;Gladbek;Gladbeki;Gladbėki;Gorad Gladbek;ZEK;ge la de bei ke;geullateubekeu;ghladbyk;gladbk;Гладбек;Горад Гладбек;غلادبيك;گلادبک;格拉德貝克;글라트베크; +city::2920512;Giessen;Gieseni;Giessa;Giessen;Gießen;Gisen;Gissen;Gorad Gisen;Gysenas;Nkisen;ghysn;gisen;giseni;gysn;ji sen;kis sein;Γκίσεν;Гисен;Гиссен;Горад Гісен;Гіссен;גיסן;غيسن;گیسن;กีสเซิน;გისენი;ギーセン;吉森;기센; +city::2921232;Gera;Gera;Gerapolis;Gorad Gera;Gėra;ZGA;ge la;gela;gera;gra;gyra;Гера;Горад Гера;گرا;گیرا;ゲーラ;格拉;게라; +city::2921466;Gelsenkirchen;Gel'zenkirkhen;Gelsenkiaerken;Gelsenkirchen;Gelsenkiärken;Gelzenkirchenas;Gelzenkirhene;Gelzenkirheni;Gelzenkirkhen;Gorad Gel'zenkirkhen;Helzenkirxen;Nkelzen'kirchen;ZEJ;gai er sen ji xing;geljenkileuhen;gelsanakarsana;geruzenkiruhyen;ghylsnkyrshn;glsnkrchn;glznkyrshn;glznqyrkn;kel sen kheiyr khein;Γκελζενκίρχεν;Гелзенкирхен;Гельзенкирхен;Гельзенкірхен;Горад Гельзенкірхен;גלזנקירכן;غيلسنكيرشن;گلزنکیرشن;گلسنکرچن;गेल्सनकर्शन;เกลเซนเคียร์เคิน;გელზენკირხენი;ゲルゼンキルヒェン;盖尔森基兴;겔젠키르헨; +city::2922586;Garbsen;Altgarbsen;Garbsen;Garbzen;Gerbernessen [a. 1286];Olengarbsen;ZEH;garbzn;jia bu sen;Гарбзен;Гарбсен;گاربزن;加布森; +city::2923544;Furth;Firt;Fiurtas;Fjurt;Fuerth;Fürth;Gorad Fjurt;fei er te;fu~yuruto;fwrt;pwileuteu;Горад Фюрт;Фирт;Фюрт;פיורדא;فرتھ;فورت;ფიურტი;フュルト;菲尔特;퓌르트; +city::2923822;Fulda;Foulnta;Ful'da;Fulda;Gorad Ful'da;ZEE;fu er da;furuda;fwlda;pulda;pwldh;Φούλντα;Горад Фульда;Фулда;Фульда;פולדה;فولدا;フルダ;富尔达;풀다; +city::2924585;Friedrichshafen;FDH;Fridrikhsgafen;Fridrikhskhafen;Fridrixshafen;Friedrichshafen;Gorad Frydrykhsgafen;fei te lie gang;frydryshshafn;furidorihisuhafen;peulideulihiseuhapen;phridariksahaphena;pridrikhshapeni;Горад Фрыдрыхсгафен;Фридрихсхафен;Фрідріхсгафен;Ֆրիդրիխսհաֆեն;פרידריכסהאפן;فريدريشسهافن;فریدریشسهافن;फ्रीडरिक्सहाफेन;ფრიდრიხსჰაფენი;フリードリヒスハーフェン;腓特烈港;프리드리히스하펜; +city::2925177;Freiburg;Frajburg;Freiburg;Freiburg im Breisgau;Fribourg-en-Brisgau;Friburg de Brisgovia;Friburg de Brisgòvia;Friburgo de Brisgovia;Friburgo in Brisgovia;Fryburg Bryzgowijski;Phraimpournk;fraybwrg;fraybwrgh;fu lai bao;furaiburuku;Φράιμπουργκ;Фрайбург;Фрајбург;فرايبورغ;فرایبورگ;フライブルク;弗莱堡; +city::2925533;Frankfurt am Main;FRA;Francfort;Francfort - Frankfurt am Main;Francfort d'o Meno;Francfort del Meno;Francfort sul Main;Francfort-sur-le-Main;Francfòrt sul Main;Francoforte;Francoforte sul Meno;Francofurtum ad Moenum;Francuforti supro Menu;Francuforti suprô Menu;Frankford-on-Main;Frankfort;Frankfort an'n Main;Frankfort an’n Main;Frankfort on the Main;Frankfurt;Frankfurt am Main;Frankfurt del Main;Frankfurt na Majn;Frankfurt na Majni;Frankfurt nad Menem;Frankfurt nad Mohanem;Frankfurt nad Mohanom;Frankfurt-na-Majne;Frankfurt/Main;Frankfurtas prie Maino;Frankfurte pie Mainas;Frankfurto ce Majno;Frankfurto ĉe Majno;Fráncfort;Fráncfort - Frankfurt am Main;Fráncfort d'o Meno;Fráncfort del Meno;Phran'kphourte;fa lan ke fu;frankfwrt;peulangkeupuleuteu;prnqpwrt;Φρανκφούρτη;Франкфурт на Майн;Франкфурт на Мајни;Франкфурт-на-Майне;פרנקפורט;فرانكفورت;فرانکفورت;แฟรงค์เฟิร์ต;ფრანკფურტ-ამ-მაინი;フランクフルト・アム・マイン;法兰克福;프랑크푸르트; +city::2925535;Frankfurt (Oder);Francfort;Francfort del Oder;Francfort del Odra;Francfort-sur-l'Oder;Francoforte sull'Oder;Frankfort an de Oder;Frankfort on the Oder;Frankfurt;Frankfurt (Oder);Frankfurt Oderi aeaeres;Frankfurt Oderi ääres;Frankfurt an der Oder;Frankfurt de l'Oder;Frankfurt len Oder;Frankfurt na Oder;Frankfurt na Odri;Frankfurt nad Odra;Frankfurt nad Odrą;Frankfurt pe Oder;Frankfurt-na-Odere;Frankfurt/Oder;Frankfurtas prie Oderio;Frankfurto ce Odro;Frankfurto ĉe Odro;Fráncfort;Fráncfort del Odra;Fráncfort del Óder;ZFR;furankufuruto;oderis prankʼpurtʼi;Франкфурт на Одер;Франкфурт-на-Одере;פרנקפורט על האודר;ოდერის ფრანკფურტი;フランクフルト; +city::2926271;Flensburg;FLF;Flensboarch;Flensborag;Flensborg;Flensbourg;Flensburg;Flensburga;Flensburgas;Flensburgh;Flensburgo;Flensbuurich;Flensmpournk;Flenzburg;Gorad Flensburg;flnsbwrg;flnsbwrgh;flnzbrg;fu lun si bao;furensuburuku;peullenseubuleukeu;phlensaburga;plnsbwrg;Φλένσμπουργκ;Горад Фленсбург;Флензбург;Фленсбург;פלנסבורג;فلنزبرگ;فلنسبورغ;فلنسبورگ;ফ্লেন্সবুর্গ;フレンスブルク;弗伦斯堡;플렌스부르크; +city::2928396;Euskirchen;Euskirchen;OEskerche;Ojskirkhen;ZED;ao yi si ji xing;aywskyrsh;Öskerche;Ойскирхен;Ојскирхен;ائوسکیرش;奧伊斯基興; +city::2928751;Esslingen;Ehslingen-am-Nekkar;Eslinga;Eslingen;Esslingen;Esslingen am Neckar;Eszlingen;Eszlingen am Neckar;ZEB;Еслинген;Эслинген-ам-Неккар; +city::2928810;Essen;Asnithi;Assindia;ESS;Ehssen;Esen;Esenas;Esene;Esse;Essen;Gorad Ehsehn;ai sen;aisana;asn;aysn;aysyn;ecan;esen;esena;eseni;essen;xes sein;Ésén;Έσσεν;Горад Эсэн;Есен;Ессен;Эссен;Էսսեն;אסן;إسن;اسن;ایسن;ایسین;एसेन;এসেন;ਐੱਸਨ;எசன்;เอสเซิน;ესენი;エッセン;埃森;에센; +city::2928963;Eschweiler;Aischwiele;Ascvilare;Ehshvajler;Eschweiler;Eshvajler;Esvayler;Esveilere;Esveileris;Esveilers;Eşvayler;Ešveilere;Ešveileris;Ešveilers;ZEA;ai shi wei lei;ashwaylr;ayshfaylr;eshuvu~aira;eshvaileri;esyubailleo;Ешвайлер;Ешвајлер;Эшвайлер;אשוויילר;إيشفايلر;اشوایلر;ეშვაილერი;エシュヴァイラー;埃施韦勒;에슈바일러; +city::2929567;Erlangen;Ehrlangen;Erlanga;Erlangen;Erlangenas;Erlangene;Erlanken;Gorad Ehrlangen;ZCZ;ai er lan gen;ai er lang gen;arlangn;arlnjn;arlynjn;earangen;eleullang-gen;Έρλαγκεν;Горад Эрланген;Ерланген;Эрланген;ארלנגן;ارلانگن;ارلنجن;ارلینجن;エアランゲン;埃尔朗根;埃爾蘭根;에를랑겐; +city::2929670;Erfurt;ERF;Ehrfurt;Erfesfurt [a. 1144];Erfordia;Erfurt;Erfurtas;Erfurte;Erfurti;Erfurto;Erpesforth [a. 1133];Erphesfurt [a. 742];Erphord [a. 1210];Erphourte;Erpisfurt;Erpsfordia [a. 1222];Erpsfurd [a. 1196];Gorad Ehrfurt;Jarobrod;ai er fu te;arfwrt;eafuruto;eleupuleuteu;eraphurta;Érfurt;Ερφούρτη;Горад Эрфурт;Ерфурт;Эрфурт;ארפורט;ערפורט;إرفورت;ارفرٹ;ارفورت;एरफुर्ट;แอร์ฟูร์ท;ერფურტი;エアフルト;埃尔福特;에르푸르트; +city::2929671;Erftstadt;Ehrftshtadt;Erftshtadt;Erftshtat;Erftstadt;ai er fu te shi ta te;arftshtat;Ерфтштадт;Ерфтштат;Эрфтштадт;إرفتشتات;ارفت‌اشتات;埃尔夫特施塔特; +city::2930596;Emden;Amuthon;EME;Ehmden;Emda;Emden;Gorad Ehmdehn;Oamde;ai mu deng;amdn;emden;emtan;emuden;Āmūthon;Горад Эмдэн;Емден;Эмден;אמדן;إمدن;امدن;எம்டன்;エムデン;埃姆登;엠덴; +city::2934246;Duesseldorf;DUS;Diseldorf;Diseldorfa;Disseldorf;Diuseldorfas;Djuseldorf;Djussel'dorf;Duesseldoerp;Duesseldorf;Duessldorf;Duseldorfo;Dusseldoerp;Dusseldorf;Dusseldorpium;Dusseldörp;Dyuseldorf;Dyzeldorfi;Dzjusel'dorf;Düsseldorf;Düsseldörp;Düssldorf;Ntiselntorph;Ntysselntorf;daseladorfa;de~yusserudorufu;diao su duo er fu;diuseldorpi;du sai er duo fu;dus se ld xrf;dwiseldoleupeu;dwsldwrf;dysldwrp;dyuseladorpha;tiyucaltorhpu;Ντίσελντορφ;Ντύσσελντορφ;Дзюсельдорф;Диселдорф;Дюселдорф;Дюссельдорф;Дүсселдорф;Դյուսելդորֆ;דיסלדורף;دوسلدورف;دوسلدۆرف;ڈسلڈورف;डसेलडॉर्फ़;ड्युसेलडॉर्फ;தியூசல்டோர்ஃபு;ഡൂസൽഡോർഫ്;ดึสเซลดอร์ฟ;ဒပ်ဆဲလ်ဒေါ့ဖ်မြို့;დიუსელდორფი;ዲውስልዶርፍ;デュッセルドルフ;杜塞尔多夫;調素多爾夫;뒤셀도르프; +city::2934486;Dueren;Diren;Djuren;Dueren;Duren;Düren;di lun;dwilen;Дирен;Дюрен;ዲውረን;迪伦;뒤렌; +city::2934691;Duisburg;DUI;Disburga;Duisboerj;Duisborg;Duisbourg;Duisburch;Duisburg;Duisburg and Hamborn;Duisburg-Hamborn;Duisburgas;Duisburgo;Duisbörj;Duizburg;Dujsburg;Duusboerg;Duusbörg;Duysburg;Dīsburga;Gorad Dujsburg;Ntouismpournk;Thuiscoburgum;de~yusuburuku;du sburk;du yi si bao;du'isaburga;duisburgi;dwiseubuleukeu;dwysbwrg;dwysbwrgh;dysbwrg;Ντούισμπουργκ;Горад Дуйсбург;Дуизбург;Дуйсбург;Дујсбург;Դույսբուրգ;דיסבורג;دويسبورغ;دویسبورگ;ڈوئسبرگ;ڈیسبورگ;डुइसबुर्ग;ดืสบูร์ก;დუისბურგი;ዱይስቡርግ፣ ጀርመን;デュースブルク;杜伊斯堡;뒤스부르크; +city::2935022;Dresden;DRS;Drazdany;Drazgany;Dresda;Dresde;Dresden;Dresdenas;Dresdeno;Dresdn;Drezda;Drezden;Drezdene;Drezno;Drjezdzany;Drježdźany;Drážďany;Drèsda;Drézdén;Drēzdene;Gorad Drehzdehn;de lei si dun;de rs dein;deuleseuden;doresuden;dresdena;drezdeni;drsdn;drysdn;drzdn;Δρέσδη;Горад Дрэздэн;Дрезден;Դրեզդեն;דרזדן;דרעזדן;درسدن;دريسدن;ڈریسڈن;ड्रेस्डेन;เดรสเดิน;დრეზდენი;ドレスデン;德累斯顿;드레스덴; +city::2935517;Dortmund;DTM;Dortmund;Dortmundas;Dortmunde;Dortmundi;Dueoerpm;Düörpm;Gorad Dortmund;Ntortmount;Throtmenni;Tremonia;d xr thmund;doleuteumunteu;dortamunda;dorutomunto;duo te meng de;dwrtmwnd;Ντόρτμουντ;Горад Дортмунд;Дортмунд;דורטמונד;دورتموند;دۆرتمۆند;ڈارٹمنڈ;डॉर्टमुंड;ดอร์ทมุนด์;დორტმუნდი;ドルトムント;多特蒙德;도르트문트; +city::2935530;Dorsten;Doessen;Dorsten;Dössen;ZCX;duo si teng;dwrstn;Дорстен;دورستن;多斯滕; +city::2935825;Dormagen;Dormagen;Dormaje;ZCW;duo er ma gen;dwrmaghn;dwrmagn;Дормаген;دورماغن;دورماگن;ዶርማገን;多爾馬根; +city::2936871;Dinslaken;Dinslaken;Dinslakena;Ntinslaken;ZCV;ding si la ken;dynslakn;dynzlakn;Ντίνσλακεν;Динслакен;Динслакена;Дінслакен;دينسلاكن;دینزلاکن;丁斯拉肯; +city::2937936;Detmold;Detmol'd;Detmold;Detmolda;Detmoldas;dai te mo er de;deteumolteu;deth mx ld;detomoruto;dtmwld;Детмолд;Детмольд;دتمولد;เดทมอลด์;デトモルト;代特莫尔德;데트몰트; +city::2937959;Dessau;Desau;Desava;Dessau;Dessau-Rosslau;Dessau-Roßlau;Dessavia;Ntesaou;de shao;desau;dessau;dsayw;dysaw;Ντεσάου;Десау;Дессау;דסאו;دسائو;ديساو;დესაუ;デッサウ;德绍;데사우; +city::2938323;Delmenhorst;Del'menkhorst;Delmenhorst;Delmenkhorst;Demost;Gorad Dehl'menkhorst;ZCT;dai er men huo si te;derumenhorusuto;dlmnhwrst;Горад Дэльменхорст;Делменхорст;Дельменхорст;دلمنهورست;デルメンホルスト;代尔门霍斯特; +city::2938913;Darmstadt;Darmshhat;Darmshtadi;Darmshtadt;Darmshtat;Darmstadium;Darmstadt;Darmstat;Darmstatas;Darmstate;Darmundestadt;Darmştat;Darmštatas;Darmštate;Gorad Darmshtat;Ntarmstat;ZCS;da mu shi ta te;daleumsyutateu;darmastata;darmshtat;darumushutatto;drmstdt;Ντάρμστατ;Горад Дармштат;Дармштадт;Дармштат;Дармщат;דרמשטדט;دارمشتات;ڈریمسٹڈ;डार्मश्टाट;დარმშტადტი;ダルムシュタット;达姆施塔特;다름슈타트; +city::2939658;Cuxhaven;Cux;Cuxhaven;Cuxhoben;Cuxhuuwen;FCN;Kuksgafen;Kukskhafen;Kukskhaven;ku ke si gang;kugseuhapen;kukkusuhafen;kwkshafn;kwkshawn;Куксгафен;Куксхавен;Куксхафен;Կուքսհաֆեն;كوكسهافن;کوکسهاون;ککسہیون;クックスハーフェン;库克斯港;쿡스하펜; +city::2939811;Cottbus;CBU;Chocebuz;Chociebuz;Chociebuż;Chosebuz;Chotebuz;Chotěbuz;Choćebuz;Chośebuz;Chóśebuz;Cotbusium;Cottbus;Kotbus;Kotbusa;Kotbusas;Kottbus;ke te bu si;khxthth bus;kosbuseu;kotobusu;ktbws;kwtbws;qwtbws;Котбус;קוטבוס;كوتبوس;کتبوس;کوٹبس;คอทท์บุส;კოტბუსი;コトブス;科特布斯;콧부스; +city::2940132;Chemnitz;Chemnicas;Chemnicium;Chemnitz;Gorad Khemnic;Hemnica;Kamenica;Kamjenica;Karl-Marx-Stadt;Kemnic;Kemnits;Khemnic;Saska Kamenice;Saská Kamenice;chymntz;kai mu ni ci;kemnicheu;kemunittsu;khe mniths;kmnytz;kymnts;qmnyz;Κέμνιτς;Горад Хемніц;Кемниц;Хемниц;Хемніц;קמניץ;קעמניץ;كيمنتس;چیمنتز;کمنیتز;เคมนิทซ์;კემნიცი;ケムニッツ;开姆尼茨;켐니츠; +city::2940213;Celle;Cele;Cella;Celle;Celle i Tyskland;Celė;Gorad Cehle;ZCN;ce lei;chelle;sel lex;slh;syly;tsu~ere;Горад Цэле;Целе;Целле;سله;سيلي;เซลเลอ;ツェレ;策勒;첼레; +city::2940231;Castrop-Rauxel;Castrop-Rauxel;Kastrop-Rauksel;Kastrop-Rauksel';Stadt Castrop-Rauxel;ZCM;ka si te luo pu-lao ke sai er;kastrwb rawksl;kastrwp-rawksl;khas thrx ph-rea seil;Кастроп-Рауксел;Кастроп-Рауксель;كاستروب راوكسل;کاستروپ-راوکسل;คัสทรอพ-เราเซิล;卡斯特罗普-劳克塞尔; +city::2944368;Bremerhaven;BRV;Bremergafen;Bremerhafenas;Bremerhafene;Bremerhaven;Bremerhoawen;Bremerhoben;Bremerhuuwen;Bremerkhafen;Brēmerhāfene;Brėmerhafenas;Wesermuende;Wesermünde;beulemeohapen;bremerhaveni;brmrhafn;bu lai mei ha fen;buremahafen;Бремергафен;Бремерхафен;Брэмэрһаффен;برمرهافن;بریمرہیون;ბრემერჰავენი;ブレーマーハーフェン;不来梅哈芬;브레머하펜; +city::2944388;Bremen;BRE;Brehmehn;Brema;Breme;Bremen;Bremen hiria;Bremenas;Bremene;Bremeni;Bremeno;Bremy;Brèma;Bréma;Brémy;Brémén;Brême;Brēmene;Brėmenas;Byen Bremen;Gorad Brehmen;ber mein;beulemen;bremena;bremeni;brmn;brymn;bu lai mei;buremen;mdynt brymn;Βρέμη;Бремен;Брэмэн;Горад Брэмен;Բրեմեն;ברמן;برمن;بريمن;مدينة بريمن;ब्रेमेन;เบรเมิน;ဘရီမန်မြို့;ბრემენი;ブレーメン;不来梅;브레멘;𐌱𐍂𐌴𐌼𐌴𐌽; +city::2945024;Braunschweig;BWE;Braounsvaich;Braunschweig;Braunshvajg;Braunshvejg;Braunshweyg;Braunshwéyg;Braunsveiga;Braunsveigas;Braunšveiga;Braunšveigas;Bronswiek;Brunsvicum;Brunsvik;Brunswick;Brunswik;Brunswyck;Brunswyk;Brunszwik;Brunšwik;Brúnsvík;Gorad Braunshvejg;beulaunsyubaikeu;bra'unasva'iga;branjavika;branshwyg;braunshvaigi;brawnshfaygh;brawnshwayg;bu lun rui ke;buraunshuvu~aiku;Μπράουνσβαϊχ;Брауншвайг;Брауншвајг;Брауншвейг;Горад Браўншвейг;בראונשווייג;برانشویگ;براونشفايغ;براونشوایگ;ब्रंजविक;ब्राउनश्वाइग;ბრაუნშვაიგი;ブラウンシュヴァイク;不伦瑞克;브라운슈바이크; +city::2945358;Brandenburg an der Havel;Brandebourg-sur-la-Havel;Brandeburgas;Brandeburgo sulla Havel;Brandenburg;Brandenburg na Khafelu;Brandenburg un der Havel;Brandenburg-na-Khafele;Brandenburg-na-Khafeli;Brandenburgas;Brandenburgum;Brannenborg an de Havel;Ciudad de Brandeburgo;beulandenbuleukeuandeeohapel;brandenburgi;brndnbwrg;brndnbwrg an dr hawl;ha fu er he pan bo lan deng bao;Бранденбург;Бранденбург на Хафелу;Бранденбург-на-Хафеле;Бранденбург-на-Хафелі;ברנדנבורג;برانڈنبرگ آن ڈیر ہاول;برندنبورگ آن در هاول;ბრანდენბურგი;ブランデンブルク・アン・デア・ハーフェル;哈弗尔河畔勃兰登堡;브란덴부르크안데어하펠; +city::2945756;Bottrop;Botrop;Botropas;Bottrop;ZCJ;bo te luo pu;boteulopeu;botoroppu;bttrwp;Ботроп;Боттроп;بتتروپ;بوٹروپ;ბოტროპი;ボトロップ;博特罗普;보트로프; +city::2946447;Bonn;BNJ;Bon;Bona;Boni;Bonn;Bonna;Gorad Bon;Vonni;bn;bo en;bon;bona;boni;bwn;bxnn;Βόννη;Бон;Бонн;Горад Бон;באן;בון;بن;بون;बॉन;บอนน์;བྷོ་ཨིན།;ბონი;ボン;波恩;본; +city::2947416;Bochum;Baukem;Bochoum;Bochum;Bochumas;Bohuma;Bokhem;Bokhum;Bōkhêm;Gorad Bokhum;QBO;bo hong;bo khum;bofumu;bohum;bokhuma;bokhumi;bwkhm;bwkhwm;bwkwm;Μπόχουμ;Бохум;Горад Бохум;בוכום;بوخم;بوخوم;बोखुम;โบคุม;ბოხუმი;ボーフム;波鸿;보훔; +city::2947421;Bocholt;Bocholt;Bokelt;Bokhol't;Bokholt;Bōkholt;ZCI;bo huo er te;bwshwlt alman;Бохолт;Бохольт;بوشولت، آلمان;博霍爾特; +city::2949186;Bielefeld;BFE;Bielefeld;Bilefel'd;Bilefeld;Bilefelde;Bilifeld;Bilivelda;Builefeld;Bylefeldas;Bīlefelde;Bīlifeld;Gorad Bilefel'd;Mpilephelnt;bi lei fei er de;bilephelda;bilepildi;billepelteu;bireferuto;bylyfyld;Μπίλεφελντ;Билефелд;Билефельд;Білефельд;Горад Білефельд;بيليفيلد;بیلفیلڈ;بیله‌فلد;बीलेफेल्ड;ბილეფილდი;ビーレフェルト;比勒费尔德;빌레펠트; +city::2950159;Berlin;BER;Beirlin;Beirlín;Berleno;Berlien;Berliin;Berliini;Berlijn;Berlim;Berlin;Berline;Berlini;Berlino;Berlyn;Berlynas;Berlëno;Berlín;Berlîn;Berlīne;Berolino;Berolinum;Birlinu;Bèrlîn;Estat de Berlin;Estat de Berlín;bai lin;barlina;beleullin;berlini;berurin;bexrlin;brlyn;perlin;Βερολίνο;Берлин;Берлін;Бэрлін;Բերլին;בערלין;ברלין;برلين;برلین;بېرلىن;ܒܪܠܝܢ;बर्लिन;বার্লিন;பெர்லின்;เบอร์ลิน;ბერლინი;ベルリン;柏林;베를린; +city::2950344;Bergkamen;Bergkamen;Berkamen;Biaergkoamen;Biärgkoamen;ZCH;bei ge ka men;brghkamn;brgkamn;Бергкамен;Беркамен;برغكامن;برگکامن;贝格卡门; +city::2950349;Bergisch Gladbach;Bergisch Gladbach;Bergish Gladbakh;Jlaebbisch;Jläbbisch;ZCG;Бергиш Гладбах; +city::2950438;Bergheim;Bergem;Bergheim an der Erft;Бергем; +city::2951825;Bayreuth;BYU;Bairoit;Bajrojt;Baruthum;Bayreith;Bayreuth;Gorad Bajrojt;bai luo yi te;bailoiteu;bairoito;bayrwyt;byyrwyt;Μπαϊρόιτ;Байройт;Бајројт;Горад Байройт;ביירוית;بايرويت;بایرویت;ضلع بیرتھ;バイロイト;拜罗伊特;바이로이트; +city::2952984;Bamberg;Bambarg;Bamberg;Bamberga;Bambergas;Bamberk;Bampernk;Gorad Bamberg;ZCD;ba mu bei ge;bambeleukeu;bambergi;bambrg;bambrgh;ban bao;banberuku;bmbrg;Μπάμπεργκ;Бамберг;Горад Бамберг;במברג;بامبرغ;بامبرگ;บัมแบร์ก;ბამბერგი;バンベルク;巴姆贝格;班堡;밤베르크; +city::2953358;Bad Salzuflen;Bad Zalcuflen;Bad-Zal'cuflen;ba te sa er ci wu fu lun;bad zaltswfln;Бад Залцуфлен;Бад-Зальцуфлен;باد زالتسوفلن;バート・ザルツウフレン;巴特萨尔茨乌夫伦; +city::2953436;Bad Homburg vor der Hoehe;Bad Homburg;Bad Homburg v.d. Hoehe;Bad Homburg v.d. Höhe;Bad Homburg vor der Hoehe;Bad Homburg vor der Höhe;Bad Khomburg;Bad-Gomburg;Bad-Khomburg;Bant Chompournk;Gorad Bad-Khomburg;Homburg vor der Hohe;Homburg vor der Höhe;ba te hong bao;bad h xm bur kf xrde xr hex xex;bad hwmbwrg fwr dr hwhh;bateuhombuleukeupo-eodeeohoee;Μπαντ Χόμπουργκ;Бад Хомбург;Бад-Гомбург;Бад-Хомбург;Горад Бад-Хомбург;באד הומבורג;باد هومبورگ فور در هوهه;บัดฮอมบูร์กฟอร์เดอร์เฮอเออ;巴特洪堡;바트홈부르크포어데어회에; +city::2953504;Baden-Baden;Aquae Aureliae;Baden;Baden-Baden;Badenas-Badenas;Badenbadene;Banten-Banten;Bādenbādene;FKB;Gorad Badehn-Badehn;b+b;ba deng-ba deng;baden=baden;badenbaden;badn badn;badn-badn;Μπάντεν-Μπάντεν;Баден-Баден;Горад Бадэн-Бадэн;Բադեն-Բադեն;באדן-באדן;بادن بادن;بادن-بادن;バーデン=バーデン;巴登-巴登;바덴바덴; +city::2954172;Augsburg;AGY;Agsborg;Aounksmpournk;Augsberg;Augsboerj;Augsborg;Augsbourg;Augsburg;Augsburga;Augsburgas;Augsburgo;Augsbörj;Augschburg;Augusta;Augusta Vindelicorum;Augzburg;Auqsburq;Gorad Augsburg;a'ugsaburga;agzbrg;ao ge si bao;aucupurku;augsburga;augsburgi;augusuburuku;aukeuseubuleukeu;aukusuburuku;awghsbwrgh;awgsbwrg;xea k sburk;Ágsborg;Άουγκσμπουργκ;Аугзбург;Аугсбург;Горад Аўгсбург;אאוגסבורג;آوغسبورغ;آوگسبورگ;اگزبرگ;आउग्सबुर्ग;औग्स्बुर्ग;আউগ্‌সবুর্গ;ஔசுபூர்கு;เอาก์สบูร์ก;აუგსბურგი;アウクスブルク;アウグスブルク;奥格斯堡;아우크스부르크; +city::2955272;Aschaffenburg;A-Burg;Asafenburga;Asafenmpournk;Aschaffenbourg;Aschaffenburg;Aschaffenburgum;Ashafenburg;Ashaffenburg;Auscheffenburg;Ašafenburga;Gorad Ashafenburg;ZCB;a sha fen bao;ashaffenburuku;ashafnbwrg;ashafnbwrgh;asshyfnbrg;asyapenbuleukeu;Ασάφενμπουργκ;Ашафенбург;Ашаффенбург;Горад Ашафенбург;آشافنبورگ;أشافنبورغ;اسشیفنبرگ;アシャッフェンブルク;阿沙芬堡;아샤펜부르크; +city::2955471;Arnsberg;Arensperg;Arnsberg;Arnsberga;Arnsbergas;Arnsberge;Gorad Arnsberg;a en si bei ge;arnsbrg;arnsbrgh;Арнсберг;Арнсберге;Горад Арнсберг;آرنسبرغ;آرنسبرگ;阿恩斯貝格; +city::2959223;Ahlen;Ahlen;Alen;Alenas;Alene;Alna;Alnon;Aulen;a lun;ahln;allen;aren;Ālene;Ālna;Ālnon;Ален;اهلن;اہلن;アーレン;阿伦;알렌; +city::2959927;Aalen;Aalen;Ala;Alen;Alenas;Alene;a lun;aaleni;allen;aln;alyn;aren;Ālene;Άαλεν;Аален;Ален;آلن;آلین;აალენი;アーレン;阿倫;알렌; +city::3247449;Aachen;AAH;Aachen;Aakhen;Aaxen;Achen;Achenas;Ahene;Aix-la-Chapelle;Aken;Akhen;Akisgran;Akwizgran;Aoke;Aquae Grani;Aquisgra;Aquisgran;Aquisgrana;Aquisgrano;Aquisgranum;Aquisgrà;Aquisgrán;Axhe;Axin;Axın;Cachy;Cáchy;Kreisfreie Stadt Aachen;Lungsod ng Aachen;Oche;Oochen;a chen;aakheni;achn;ahen;ahkan;akhana;akhn;xa khein;ya chen;Åxhe;Āhene;Άαχεν;Аахен;Ахен;Աախեն;אאכן;آخن;آچن;आखन;ஆஃகன்;ആക്കൻ;อาเคิน;აახენი;アーヘン;亚琛;阿臣;아헨; +city::223817;Djibouti;Byen Djibouti;Cibuti;Dinas Jibwti;Diobuiti;Diobúití;Djiboeti;Djibouti;Djibouti Chhi;Djibouti Chhī;Djibuti;Dschibuti;Dzhibuti;Dzibuti;Dzibutis;Dzjibuty;Dzjibûty;Dzsibuti;Dżibuti;Džibuti;Džibutis;Džíbútí;Gibuti;Gibuto;Gibutum;Gorad Dzhybuci;Ilu Djibouti;JIB;Jabuuti;Jiboti;Jibouti;Jibuti;Lungsod ng Djibouti;Mbanza ya Djibuti;Sita Jibouti;Syudad han Djibouti;Tzimpouti;Xibuti;Xibutí;Yibuti;Zhibuti shaary;ci buti;ciputti;dzsybwty;gybwty;jbwty;jbwty ʿlaqہ;ji bu de shi;ji bu ti cheng;jibuchi shi;jibuti;jybwty;jybwwty;Ìlú Djibouti;Ĝibuto;Τζιμπουτί;Џибути;Горад Джыбуці;Джибути;Джибуті;Жибути шаары;Ҷибути;Ջիբութի;גיבוטי;דזשיבוטי;جبوتی;جبوتی علاقہ;جيبوتي;جیبوتی;جیبووتی;जिबूती;জিবুতি;ਜਿਬੂਤੀ;சீபூத்தீ;จิบูตี;ཇི་བའོ་ཊི།;ჯიბუტი;ジブチ市;吉布地市;吉布提城;지부티; +city::2610613;Vejle;Vaile;Vailė;Vajle;Vejle;baille;vaile;vu~aire;wa ai lei;waylh;wile;Вайле;Вајле;Вејле;وایله;ไวเล;ვაილე;ヴァイレ;瓦埃勒;바일레; +city::2615006;Randers;Randers;Randersa;Randersas;Raners;Ranners;Ranters;ZIR;lan ne si;laneleuseu;ra nex s;ranasu;randrs;ranersi;Ράντερς;Рандерс;Ранерс;Раннерс;راندرس;رانڈرز;ราเนอส์;რანერსი;ラナース;蘭訥斯;라네르스; +city::2615876;Odense;Gorad Odehnseh;ODE;Odensa;Odense;Odensė;Odinsve;Ontense;Othania;adnsh;awdnsh;odense;odinse;ou deng sai;xo den se;Óðinsvé;Όντενσε;Горад Одэнсэ;Оденсе;Օդենսե;אודנזה;أودنسه;ادنسه;اودنسے;اوڈینس;ओडिन्से;โอเดนเซ;ოდენსე;オーデンセ;欧登塞;오덴세; +city::2618425;Copenhagen;CPH;Cobanhavan;Copenaga;Copenaghen;Copenaguen;Copenhaga;Copenhagen;Copenhague;Copenhaguen;Copenhaguen - Kobenhavn;Copenhaguen - København;Cóbanhávan;Hafnia;Kapehngagen;Kaupmannahoefn;Kaupmannahöfn;Keypmannahavn;Kjobenhavn;Kjopenhamn;Kjøpenhamn;Kobenhamman;Kobenhaven;Kobenhavn;Kodan;Kodaň;Koebenhavn;Koeoepenhamina;Koepenhamn;Kopenage;Kopenchage;Kopengagen;Kopenhaagen;Kopenhag;Kopenhaga;Kopenhage;Kopenhagen;Kopenhagena;Kopenhago;Kopenhāgena;Kopenkhagen;Koppenhaga;Koppenhága;Kòpenhaga;Köbenhavn;Köpenhamn;Kööpenhamina;København;Københámman;ge ben ha gen;khopenheken;kopanahagana;kopenahagena;kopenahegena;kopenhagen;kwbnhaghn;kwpnhgn;qwpnhgn;Κοπεγχάγη;Капэнгаген;Копенгаген;Копенхаген;Կոպենհագեն;קופנהאגן;קופנהגן;كوبنهاغن;كوپېنھاگېن;ܟܘܦܢܗܓܢ;कोपनहागन;কোপেনহাগেন;কোপেনহেগেন;โคเปนเฮเกน;ཀའོ་པེན་ཧ་ཀེན;კოპენჰაგენი;ኮፐንሀገን;ኮፕንሀግ;コペンハーゲン;哥本哈根;코펜하겐; +city::2618528;Kolding;Gorad Kol'dyng;Kol'ding;Kolding;Koldinga;Koldingas;Koldingo;Kolling;ZBT;ke ling;khxleng;kolling;koringu;kwldngh;kwldyng;Горад Кольдынг;Колдинг;Коллинг;Кольдинг;كولدنغ;کولدینگ;کولڈنگ;คอเลง;კოლინგი;コリング;科靈;콜링; +city::2619771;Horsens;Horsens;Horsensas;Khorsens;h xr sens;holeusenseu;horsensi;hosensu;huo er sen si;hwrsyns;hwrzns;Хорсенс;هورزنس;هورسينس;ہارسنز;ฮอร์เซนส์;ჰორსენსი;ホーセンス;霍尔森斯;호르센스; +city::2621942;Frederiksberg;Frederiksberg;Frederiksberg Kommune;Frederiksbergin kunta;Frenteriksmpernk;fei te lie si bei;frydryksbrgh;peuledeligseubeleu;prederikʼsbergi;Φρέντερικσμπεργκ;Фредериксберг;Фредеріксберг;فريدريكسبرغ;فریڈرکسبرگ;ფრედერიკსბერგი;腓特烈斯贝;프레데릭스베르; +city::2622447;Esbjerg;EBJ;Ehsb'erg;Esber;Esberg;Esbjaerg;Esbjerg;Esbjerga;Esbjergas;Esbjærg;Esbyerq;ai si bi yue;asbjrg;asbyrg;aysbyrgh;esbieri;eseubieleu;esubyau;xe sbiyer;Есбер;Есбєрг;Есбјерг;Эсбьерг;אסביירג;إيسبيرغ;اسبجرگ;اسبیرگ;เอสบีเยร์;ესბიერი;エスビャウ;埃斯比约;에스비에르; +city::2624652;Arhus;Aarhus;Aarhusium;Archous;Arhus;Arhuzo;Arosar;Orhusa;Orhūsa;Orkhus;ao hu si;ofusu;Árósar;Århus;Άρχους;Орхус;אורהוס;オーフス;奥胡斯; +city::2624886;Aalborg;AAL;Aalborg;Alaborg;Alborg;Almpornk;Gorad Ol'barg;Ol'borg;Olbor;Olborg;Olborga;Olborgas;albrg;albw;albwrg;albwrgh;ao er bao;olboleu;olborgi;orubo;xx lb xr;Álaborg;Ålborg;Άλμποργκ;Горад Ольбарг;Олбор;Олборг;Ольборг;Օլբորգ;אולבורג;آلبرگ;آلبو;آلبورغ;آلبورگ;ออลบอร์;ოლბორგი;オールボー;奥尔堡;올보르; +city::3492908;Santo Domingo;Ciudad Trujillo;SDQ;Saint Domingue;Santo Domingo;Santo Domingo City;Santo Domingo de Guzman;Santo Domingo de Guzmán;Santo Ntomin'nko;Santo-Domingo;santodoming-go;Σάντο Ντομίνγκο;Санто-Доминго;산토도밍고; +city::3492914;Santiago de los Caballeros;STI;Sant'jago-de-los-Kabal'eros;Sant'jago-de-los-Trejnta-Kabal'eros;Santiago;Santiago de los Caballeros;Santiago de los Kampagieros;Santjago de los Kabaljerosas;santiagodeloseukabayeloseu;sheng de ya ge;Σαντιάγο δε λος Καμπαγιέρος;Сантьяго-де-лос-Кабальерос;Сантьяго-де-лос-Трейнта-Кабальерос;Сантьяго-де-лос-Трейнта-Кабальєрос;סנטיאגו דה לוס קביירוס;سانتیاغو دے لوس کابائیروس;サンティアゴ・デ・ロス・カバリェロス;聖地牙哥;산티아고데로스카바예로스; +city::3492985;Santa Cruz de Barahona;BRX;Barahona;Santa Cruz de Barahona;Santa-Krus-de-Baraona;Санта-Крус-де-Бараона; +city::3493032;San Pedro de Macoris;San Pedro Macoris;San Pedro de Macoris;San Pedro de Macorís; +city::3493081;San Juan de la Maguana;SJM;San Juan;San Juan de la Maguana; +city::3493146;San Francisco de Macoris;San Francisco de Macoris;San Francisco de Macorís; +city::3493175;Puerto Plata;POP;Port Plata;Puerto Plata;San Antonio de Guerra;San Felipe de Puerto Plata;San-Felipe-de-Puehrto-Plata;San-Felipe-de-Puerto-Plata;Vilojati Puehrto Plata;pueleutopeullata;pwrtw plata;sheng fei li-yin gang;Вилояти Пуэрто Плата;Сан-Фелипе-де-Пуэрто-Плата;Сан-Феліпе-де-Пуерто-Плата;פוארטו פלטה;پورتو پلاتا;プエルト・プラタ;聖斐利-銀港;푸에르토플라타; +city::3493240;Salvaleon de Higueey;Higueey;Higuey;Higüey;Salvaleon de Higueey;Salvaleón de Higüey; +city::3494242;Punta Cana;PUJ;Punta Cana;Punta Kana;Punta-Kana;Пунта Кана;Пунта-Кана; +city::3496331;Moca;Moca; +city::3500957;La Romana;LRM;La Romana;La-Romana;Romana;lalomana;lh rwmnh;luo ma na;Ла-Романа;לה רומנה;لا رومانا، جمہوریہ ڈومینیکن;ラ・ロマーナ;羅馬納;라로마나; +city::3509382;Concepcion de La Vega;Concepcion de La Vega;Concepcion de la Vega;Concepción de La Vega;Concepción de la Vega;Konsep'sion de La Vega;Konseps'jon-de-la-Vega;Konsepsion-de-la-Vega;La Vega;la wei jia;la wygha;labega;qwnspsywn dh lh wgh;Κονσεπσιόν δε Λα Βέγα;Консепсион-де-ла-Вега;Консепсьйон-де-ла-Вега;קונספסיון דה לה וגה;لا ویغا;コンセプシオン・デ・ラ・ベガ;拉維加;라베가; +city::3511233;Bonao;Banao;Bonao;Monsenor Nouel;Monseñor Nouel;Бонао; +city::3511540;San Cristobal;Benemerita de San Cristobal;Benemérita de San Cristóbal;San Cristobal;San Cristóbal; +city::3512067;Bani;Ban;Bani;Banti;Bany;Baní;Бан; +city::3512128;Bajos de Haina;Bajos de Haina;Bajos de Jaina; +city::3512208;Azua;Asua-de-Kompostela;Azua;Azua de Compostela;Compostela de Azua;Асуа-де-Компостела; +city::7874116;Santo Domingo Oeste;; +city::8601412;Santo Domingo Este;Santo Domingo Este; +city::2474141;Boumerdas;Bou-Merdes;Boumerdas;Bumerdes;Cite de Boumerdes;Cité de Boumerdes;Le Rocher Noir;Roche Noire;Rocher Noir;Бумердес; +city::2475612;Tolga;Tolga;Толга; +city::2475687;Tlemcen;Gorad Tlemsen;Pomaria;TLM;Termicen;Termicén;Tilimsan;Tilimsen;Tlemcen;Tlemsen;Tlemsenas;Tremecen;Tremecén;Wilaya ya Tlemcen;te lai mu sen;teullemsen;tlem sen;tlmsan;toremusen;Горад Тлемсен;Тлемсен;Тлемсен қаласы;תלמסאן;تلمسان;ตเลมเซน;トレムセン;特莱姆森;틀렘센; +city::2475744;Tizi Ouzou;QZI;Tizi Ouzou;Tizi Uzu;Tizi Wuzu;Tizi-Ouzou;Tizi-Uzu;ti ji wu zu;tijiuju;tyzy wzw;Тизи Узу;Тизи-Узу;تيزي وزو;تیزی وزو;提济乌祖;티지우주; +city::2475860;Tissemsilt;Tissemsil;Tissemsilt;Vialar;tsmsylt;تسمسيلت; +city::2476897;Tiaret;TID;Tiaret;Tiaretas;Tijarat;ti ya lei te;tyart;Тиарет;Тіарет;تيارت;تیارت;提亚雷特; +city::2477255;Telerghma;Telerghma;Telergma; +city::2477461;Tebessa;TEE;Tebesa;Tebessa;Theveste;Tibissa;Tébessa;tai bei sa;tbsh aljzayr;tbst;Тебесса;Тебесса қаласы;تبسة;تبسه، الجزایر;تیبازہ;泰贝萨; +city::2478216;Tamanrasset;Fort Laperine;Fort Laperrine;TMR;Tamahrasset;Tamanghasset;Tamanraset;Tamanrasetas;Tamanrasset;Tamanrassete;Tamenghasset;Tamenɣest;ta man la sai te;tamanlaseteu;tamanrasetto;tamnrast;tmnrast;Таманрасет;Таманрассет;Таманрассете;תאמאנראסט;تامنراست;تمنراست;タマンラセット;塔曼拉塞特;타만라세트; +city::2479161;Sour el Ghozlane;Aumale;Aumale-d'Algerie;Aumale-d’Algérie;Aumate;Sour el Ghozlane; +city::2479215;Souk Ahras;QSK;Souk Ahras;Souk-Ahras;Soukaras;Souq Ahras;Suk Ahras;Suk Ahrasas;Suk Aras;Suk-Akhras;Suq Ahras;Szuk Ahrasz;Szúk Ahrász;Tagaste;su ge ai he la si;sukeualaseu;swq ahras;swq ahras aljzayr;Сук-Ахрас;سوق أهراس;سوق اهراس، الجزایر;سوق اہراس;苏格艾赫拉斯;수크아라스; +city::2479247;Sougueur;Nadhora;Nador;Sougueur;Trezel;Trézel; +city::2479536;Skikda;Gorad Skikda;Philippeville;Phillippville;SKI;Skikda;Sukajkida;seukigda;si ji ke da;skikada;skykdt;Горад Скікда;Скикда;Скикда қаласы;Скікда;سكيكدة;سکیکدہ;ولاية سعيدة;স্কিকদা;斯基克达;스킥다; +city::2479609;Sig;QIL;Saint-Denis-du-Sig;Sig; +city::2479966;Sidi Moussa;Sidi Moussa; +city::2480368;Sidi Khaled;Sidi Khaled;Sidi Kraled; +city::2481007;Sidi Bel Abbes;BFW;Gorad Sidy-Bel'-Abes;Sid Bel Abbes;Sid Bel Abbès;Sidi Bel Abbes;Sidi Bel Abbès;Sidi Bel Abes;Sidi Belabbas;Sidi Belɛebbas;Sidi Bilabbas;Sidi Bu-l-Abbas;Sidi bel Abbes;Sidi bel Abbès;Sidi bel Abesas;Sidi-Bal-Abbes;Sidi-Bal-Abbès;Sidi-Bel'-Abbes;Sidi-Bel-Abbes;Sidi-Bel-Abbès;Sidi-bel-Abbes;Sidi-bel-Abbès;sidibel-abeseu;xi di bei lei a ba si;Горад Сіды-Бель-Абес;Сиди Бел Абес;Сиди-Бель-Аббес;Сиди-Бель-Аббес қаласы;Сіді-Бель-Аббес;סידי בל-עבאס;سيدي بلعباس;سیدی بلعباس;سیدی بلعباس، الجزایر;ولاية سيدي بلعباس;西迪贝勒阿巴斯;시디벨아베스; +city::2481246;Sidi Aissa;Sid Aissa;Sid Aïssa;Sidi Aissa;Sidi Aïssa;Sidi-Aissa;Сиди-Аисса; +city::2481700;Setif;Gorad Setyf;QSF;Sathif;Satif;Setif;Setifas;Sitifis;Stif;Sétif;sai ti fu;setifu;setipeu;stf;styf;styp;wlayt styf;Горад Сетыф;Сетиф;Сетиф қаласы;Сетіф;סטיף;سطف;سطيف;ولاية سطيف;Ṣṭif;セティフ;塞提夫;세티프; +city::2482090;Sedrata;Sedrata; +city::2482572;Saida;Sa'ida;Saida;Sajda;Saïda;Sa’ida;sai yi da;saida;Саида;Сайда;Саїда;سعيدة;سعیده، الجزایر;سعیدہ، الجزائر;サイダ;塞伊达;사이다; +city::2482886;Rouissat;Rouissat; +city::2483649;Remchi;Montagnac;Remchi; +city::2483668;Relizane;Ighil Izane;Prowincja Relizane;QZN;Relizan;Relizane;ghlyzan;wlayt ghlyzan;غلیزان;ولاية غليزان; +city::2483746;Reguiba;Reguiba;alrqybt;الرقيبة; +city::2483757;Reghaia;La Reghaia;La Reghaïa;La Reghia-Alma;Reghaia;Reghaïa; +city::2483936;Ras el Oued;Ras el Oued;Ras-ehl'-Uehd;Rass el Oued;Râs el Oued;Tocqueville;Рас-эль-Уэд; +city::2484620;Oum el Bouaghi;Canrobert;Oum el Bouaghi;Oum-el-Bouachi;QMH; +city::2485582;Oued Rhiou;Inkermann;Oued Rhiou;Oued Riou;QOU; +city::2485801;Ouargla;OGX;Ouargla;Quargla;Uargla;Warkala;Warqla;ualeugeulla;wa er ge la;war kla;warugura;wrqlh aljzayr;wrqlt;Уаргла;Уаргла қаласы;ورقلة;ورقله، الجزایر;ورقلہ;วาร์กลา;ワルグラ;瓦尔格拉;우아르글라; +city::2485926;Oran;Gorad Aran;ORN;Ora;Oran;Orana;Oranas;Orano;Orà;Orán;Orã;Orāna;Ouahran;Wahran;Wahrān;Waradinne;Wehran;olang;oran;orana;orani;vahirana;wa he lan;whran;whran aljzayr;wlayt whran;xx ran;Οράν;Горад Аран;Оран;Оран қаласы;אוראן;ولاية وهران;وهران;وهران، الجزایر;وہران;وەھران;ওরান;ਵਹਿਰਾਨ;ออราน;ორანი;オラン;瓦赫蘭;오랑; +city::2486690;M'Sila;M'Sila;MSila;M’Sila;ZZS;almsylt;المسيلة; +city::2487134;Mostaganem;MQV;Mastaganeam;Mostaganem;Mostaganemas;Mustaghanam;Mustaghanim;Mustɣanem;mostaghanemi;mstaghanm;mstghanm;mu si ta jia nai mu;Мостаганем;مستاغانم;مستغانم;მოსთაღანემი;穆斯塔加奈姆; +city::2487452;Mila;Mila;milla;mylt;Мила;ميلة;میلہ، الجزائر;밀라; +city::2487620;Metlili Chaamba;Metlili;Metlili Chaamba;Metlili-les Chaamba;Mettlili Chaamba; +city::2487772;Messaad;Messaad;Messad;Мессад; +city::2488722;Meftah;Meftah;Meftakh;Rivet;Мефтах; +city::2488835;Medea;Al-Madijja;Lambdia;Lemdiyyet;Medea;Medeah;Medeja;Medėja;Médéa;almdyh aljzayr;almdyt;mai di ya;medea;Медеа;Медея;المدية;المدیه، الجزایر;مدیہ;麦迪亚;메데아; +city::2490098;Mascara;MUW;Mascara;Maskara;Mu'askar;Muaskar;Mu’askar;maseukala;maskara;masukara;mu a si kai er;mʿskr‎;Маскара;معسكر;معسكر‎;معسکر، الجزائر;মাস্কারা;マスカラ;穆阿斯凯尔;마스카라; +city::2490183;Mansoura;Mansoura;Mansourah;Mansoûra;Mansura;Мансура; +city::2491050;Larbaa;Arba;El-Arba;L'Arba;Larba;Larbaa;Larbaâ;L’Arba;ZZL;Ларба; +city::2491134;Lakhdaria;Lakhdaria;Palestro; +city::2491191;Laghouat;Al-Aghwat;LOO;Laghouat;Laguat;Laguatas;Larhouat;aghwat;ai ge wa te;alaghwat;alaghwat aljzayr;Лагуат;לאגוואט;اغواط;الأغواط;الاغواط، الجزایر;艾格瓦特; +city::2491323;Ksar el Boukhari;Boghari;Borhari;Ksar el Boukhari; +city::2491335;Ksar Chellala;Chellala;Chellala-Reibell;Ksar Chellala;Reibel;Reibell;Reïbell;Shelala; +city::2491889;Khenchela;Khenchela;Krenchela;QKJ;khnshlt;خنشلة; +city::2491911;Khemis Miliana;Affreville;El Khemis;El Khemis Miliana;Khemis Miliana;ZZK; +city::2492913;Jijel;Djedjelli;Djidjelli;Dzhidzhel';Dzidzelis;Dzidzili;Dżidżili;Džidželis;GJL;Giger;Gíger;Igilgili;Jijelli;ji jie lei;jijeru;jyjl;jyjl aljzayr;Джиджель;جيجل;جیجل;جیجل، الجزایر;ジジェル;吉杰勒; +city::2494029;Hassi Messaoud;HME;Hassi Messaoud;Khasi Mesaud;Khassi-Messaud;ha xi mai sa wu de;hasimesaudeu;Хаси Месауд;Хасси-Мессауд;حاسي مسعود;哈西迈萨乌德;하시메사우드; +city::2494610;Hamma Bouziane;Hamma;Hamma Bouniane;Hamma Bouziane;Hamma-Plaisance;Le Hamma;Le Hamma-Plaisance; +city::2495662;Guelma;Calama;Galma;Gel'ma;Gelma;Guelma;Kalima;QGE;gai lei ma;qalmh aljzayr;qalmt;Гельма;قالمة;قالمه، الجزایر;قالمہ;盖勒马; +city::2496049;Ghardaia;GHA;Gardaja;Gardaya;Ghardaia;Ghardaja;Ghardaïa;Ghardája;Jimbo ya Ghardaia;Jimbo ya Ghardaïa;Rhardaia;Rhardaïa;Tagerdayt;Taγerdayt;gai er da ye;galeudaia;garudaia;ghrdayh;ghrdayt;wlayt ghrdayt;Гардая;Гардая қаласы;غرداية;غردایه;ولاية غرداية;ガルダイア;盖尔达耶;가르다이아; +city::2496232;Frenda;Frenda; +city::2497060;Es Senia;Es Senia;La Senia;La Sénia; +city::2497411;El Oued;Al-Wadi;ELU;Ehl'-Uehd;El Oued;El Qued;Oued Souf;Uedas;alwady;wa de;wady;wady swf;Эль-Уэд;Эль-Уэд қаласы;אל-ואד;الوادي;اﻟﻮادى;وادي سوف;وادی;瓦德; +city::2497849;El Khroub;El Khroub;El-Kroub;Kroubs;Le Khroub;Le Kroub; +city::2498392;El Eulma;El Eulma;Saint-Arnaud;ZAE; +city::2498543;El Bayadh;EBH;El Bayadh;El-Bayadh;Geryville;Géryville;Prowincja El Bayadh;Wilaya de El Bayadh;alblydh;wlayt albyd;البلیده;ولاية البيض; +city::2498611;Chlef;CFK;Castellum Tingitanum;Chlef;Ech Cheliff;Ech Chlef;El Asnam;Orleansville;Orléansville;Selifas;Shlef;Szalif;alshlf;shlf;shurefu;xie li fu;Šelifas;Шлеф;الشلف;شلف;シュレフ;谢利夫; +city::2498766;El Achir;El Achir; +city::2498954;Ech Chettia;Ech Chetia;Ech Chettia;Ech Chettiâ;Ech Chétia; +city::2499055;Drean;Drean;Mondovi; +city::2500017;Djelfa;Djelfa;Dzilfa;Dżilfa;Jelfa;QDJ;jlfh;wlayt aljlft;جلفه;ولاية الجلفة; +city::2500282;Djamaa;Djama;Djamaa;Djemaa;Djemâa;جامعة; +city::2500904;Dar Chioukh;Dar Chioukh;Diar el Chioukh; +city::2501152;Constantine;CZL;Cirta;Constantine; +city::2501404;Cheria;Cheria; +city::2501541;Chelghoum el Aid;Chateaudun;Chateaudun de Rhumel;Chateaudun-du Rummel;Chateaudun-du-Rhumel;Chateaudun-du-Rhummel;Chelghoum el Aid;Chelghoum el Aïd;Châteaudun;Châteaudun de Rhumel;Châteaudun-du Rummel;Châteaudun-du-Rhumel;Châteaudun-du-Rhummel;Ghelghoum Elaid;Ghelghoum Elaïd;Ghelgoum Elaid;Ghelgoum Elaïd; +city::2502958;Bouira;Bouira;Bouïra;QBZ; +city::2503147;Bougara;Bougara;Bouguera;Bouguerra;Rovigo; +city::2503181;Boufarik;Boufarik;QFD; +city::2503661;Bordj el Kiffan;Bordj El Kifan;Bordj el Kiffan;Fort de l'Eau;Fort de l’Eau; +city::2503701;Bordj Bou Arreridj;Bordj Bou Arerridj;Bordj Bou Arreridj;Bordj-Bou-Arreridj;Borj Bu Arrerij;Burdz Bu Urajridz;Burdż Bu Urajridż;QBJ;brj bwʿryryj;برج بوعريريج; +city::2503755;Boghni;Boghari;Boghni;Borhni; +city::2503769;Blida;Al-Bulajda;Bilda;Blida;Buleyde;Dilida;El Bouleida;Gorad Blida;QLD;alblydh;alblydt;b li da;beullida;bo li da;burida;Блида;Бліда;Горад Бліда;البليدة;البلیده;بلیدہ;บลีดา;ブリダ;卜利达;블리다; +city::2503826;Biskra;BSK;Biskira;Biskra;Briskra;Tibeskert;bi si ke la;bisakra;biseukeula;bisukura;bskrh;bskrt;wlayt bskrt;Бискра;Біскра;بسكرة;بسکره;بسکرہ;ولاية بسكرة;বিসক্রা;ビスクラ;比斯克拉;비스크라; +city::2503847;Birkhadem;Birkadem;Birkhadem; +city::2503852;Birine;Birin;Birine; +city::2503874;Bir el Djir;Arcole;Bir el Djir; +city::2503878;Bir el Ater;Bir el Ater; +city::2504072;Besbes;Besbes;Randon; +city::2504099;Berrouaghia;Berrouaghia;Berrouarhia; +city::2504622;Beni Mered;Beni Mered; +city::2505329;Bejaia;BJA;Bedzaja;Bejaia;Bejaïa;Bijaya;Bougie;Bugia;Bugía;Béjaïa;bjayt;Беџаја;بجاية; +city::2505530;Bechar;Basyar;Baszszar;Bechar;Besaras;Beshar;Beshare;Bexar;Bešaras;Béchar;CBH;Colomb-Bechar;Colomb-Béchar;Wilaya de Beshar;bei sha er;besharu;besyaleu;bshar;bshar aljzayr;Бешар;Бешаре;بشار;بشار، الجزایر;ベシャール;贝沙尔;베샤르; +city::2505572;Batna;BLJ;Batina;Batna;Batna City;Batnah;Gorad Batna;Tbatent;Wilaya de Batna;ba te na;bateuna;batnh aljzayr;batnt;batona;wlayt batnt;Батна;Батна қаласы;Горад Батна;باتنة;باتنه، الجزایر;باتنہ;باتنہ، الجزائر;ولاية باتنة;バトナ;巴特纳;바트나; +city::2505629;Barika;Barika;ZZB;Барика; +city::2505653;Baraki;Baraki; +city::2505854;Bab Ezzouar;Bab Ezzouar;Le Retour de la Chasse; +city::2505915;Azzaba;Azzaba;Jemmapes; +city::2506999;Annaba;AAE;Anaba;Annaba;Annaba - syaht;Annaba - سياحة;Annába;Bona;Bone;Bône;Hippo;Hippo Regius;Unknown;an na ba;an'naba;annaba;Анаба;Аннаба;Аннаба қаласы;Աննաբա;عنابة;عنابه;عنابہ;আন্নাবা;アンナバ;安纳巴;안나바; +city::2507480;Algiers;ALG;Al Jazair;Al-jezair;Alcher;Alge;Algeirsborg;Alger;Algeri;Algero;Algier;Algiers;Algir;Alg·èr;Algê;Algír;Alje;Aljer;Aljir;Alse;Alxer;Alzer;Alzhir;Alzhir khot;Alzhir shaary;Alziir;Alzir;Alzira;Alzirs;Alzyras;Alĝero;Alžiir;Alžir;Alžyras;Alžír;Alžěr;Alžīra;Alžīrs;Argel;Argier;Argièr;Arhel;Arjel;Arxel;Caesair;Cathair na hAilgeire;Cathair na hAilgéire;Cezayir;Cäsair;Gorad Alzhyr;Icosium;Jazoir;Zzayer;a er ji er;ala-jaza'ira;alajiyarsa;alje;alji'ersa;aljiyars;aljiyarsa;aljyrz;aljzayr;aljzyrh;alzhiri;aruje;jەzayyr;yaljyr;Əlcəzair;ʼlgyr;Αλγέρι;Алжир;Алжир хот;Алжир шаары;Алҷазоир;Горад Алжыр;Ալժիր;אלגיר;אלזשירס;ئالجىر;الجزائر;الجزائر شہر;الجزيره;الجزیره;الجیرز;جەزائیر;ܓܙܐܐܪ;अल्जीएर्स;अल्जीयर्स;আলজিয়ার্স;ਅਲ-ਜਜ਼ਾਇਰ;அல்ஜியர்ஸ்;അൾജിയേഴ്സ്;แอลเจียร์;ཨཱལ་ཇི་ཡར་སི།;အယ်လဂျီးယားမြို့;ალჟირი;አልጀርስ;アルジェ;阿爾及爾;알제; +city::2507646;Akbou;Akbou;Aqbu;Metz;aqbw;أقبو; +city::2507877;Ain Touta;Ain Touta;Aïn Touta;Mac Mahon; +city::2507901;Ain Temouchent;Aebura;Ain Temonchent;Ain Temoucheni;Ain Temouchent;Ain Temushent;Aine Temouchent;Albulae;Aïn Temouchent;Aïn Témoucheni;Aïne Temouchent; +city::2507943;Ain Sefra;Ain Sefra;Aine Sefra;Aïn Sefra;Aïne Sefra; +city::2507972;Ain Oussera;Ain Oussera;Aïn Oussera;El Oussera;Paul Cazelles; +city::2508102;Ain Fakroun;Ain Fakroun;Aine Fakroun;Aïn Fakroun;Aïne Fakroun; +city::2508228;Ain Defla;Ain Defla;Aïn Defla;Duperre;Duperré;ʿyn aldfly‎;عين الدفلى‎; +city::2508287;Ain Beida;Ain Beida;Aine Beida;Aïn Beïda;Aïne Beïda;QBP; +city::2508737;Aflou;Aflou;Aflu; +city::3650472;Tulcan;Gorad Tul'kan;TUA;Tul'kan;Tulcan;Tulchan;Tulcán;Tulkan;Tulkanas;to~urukan;tu er kan;tulkan;twlkan;Горад Тулькан;Тулькан;تولکان;トゥルカン;圖爾坎;툴칸; +city::3651297;Santo Domingo de los Colorados;Santo Domingo;Santo Domingo de los Colorados;Santo-Domingo-de-los-Kolorados;Санто-Доминго-де-лос-Колорадос; +city::3652350;Riobamba;Riobamba;Rispampa;li ao ban ba;liobamba;ri xoba m ba;riobamba;rywbamba;rywbmbh;Риобамба;Ріобамба;ריובמבה;ريوبامبا;ریؤبامبا;ریوبامبا;รีโอบัมบา;რიობამბა;里奧班巴;리오밤바; +city::3652462;Quito;Gorad Kita;Kitas;Kito;Kitu;Kuito;Quito;Quitu;Quitum;San Francisco de Quito;UIO;ji duo;ki to;kito;kitto;kvirrea;kvito;kwytw;kytw;qytw;Κίτο;Горад Кіта;Кито;Кіто;Կիտո;קיטא;קיטו;كىتو;كيتو;کوئتو;کیتو;کیٹو;क्वितो;क्वीटो;ਕੀਤੋ;கித்தோ;ക്വിറ്റോ;กีโต;ཁེ་ཐོ།;კიტო;ኪቶ;キト;基多;키토; +city::3652567;Quevedo;Kevedas;Kevedo;Quevedo;ke wei duo;Кеведо;კევედო;克韋多; +city::3652941;Portoviejo;Gorad Partauekha;PVO;Portov'ekho;Portoviejo;Portovjechas;bo tuo wei ye huo;poleutobieho;pwrtw wyyjw;pwrtwbykhw;Горад Партаўеха;Портовьехо;پورتو ویئجو;پورتوبیخو;პორტოვიეხო;波托維耶霍;포르토비에호; +city::3654215;Milagro;Milagras;Milagro;San Francisco de Milagro;mi la ge luo;milagro;მილაგრო;米拉格羅; +city::3654410;Manta;Gorad Manta;MEC;Manta;Manta Ecuador;Puerto de Manta;man ta;manta;Горад Манта;Манта;მანტა;曼塔;만타; +city::3654533;Machala;Gorad Machala;MCH;Macala;Machala;Maĉala;Mačala;ma cha la;machala;machalla;machara;matshala;mchala;Горад Мачала;Мачала;מצאלה;ماتشالا;ماچالا;مچالا;მაჩალა;マチャラ;馬查拉;마찰라; +city::3654667;Loja;LOH;Locha;Loha;Loja;Lokha;loha;lokha;luo ha;lwja;Лоха;لوجا;لوخا، ایکواڈور;ლოხა;洛哈;로하; +city::3654870;Latacunga;Gorad Latakunga;LTX;Latacunga;Latakunga;Latakunka;la ta kun jia;latakung-ga;latakwnga;latakwnga akwadwr;Горад Латакунга;Латакунга;لاتاکونگا;لاتاکونگا، اکوادور;拉塔昆加;라타쿵가; +city::3655131;La Libertad;La Libertad; +city::3655673;Ibarra;Ibarra;Ибарра; +city::3657509;Guayaquil;GYE;Gorad Guajakil';Gouagiakil;Guaiaquil;Guaiaquilum;Guajakil;Guajakil';Guayaquil;Gvajakil;Gvajakila;Gvajakilis;Santiago de Guayaquil;Wayakil;ghwayakyl;gu'a'i'akila;gua ya ji er;guayakiru;gvayakila;gwayakil;gwayakl;gwayakwyl;gwayakywl;kwa yaki l;Γουαγιακίλ;Гвајакил;Горад Гуаякіль;Гуаякил;Гуаякиль;Ґуаякіль;גואיאקיל;غواياكيل;گوآیاکوئل;گوایاکل;گوایاکیول;ग्वायाकिल;ਗੁਆਇਆਕੀਲ;กวายากิล;გუაიაკილი;グアヤキル;瓜亞基爾;과야킬; +city::3657990;Esmeraldas;ESM;Esmeraldas;Volcan Chimborazo;Volcán Chimborazo; +city::3658192;Eloy Alfaro;Alfaro;Duran;Durán;Eloy Alfaro; +city::3658666;Cuenca;CUE;Cuenca;Gorad Kuehnka;Kuehnka;Kuehnka shaary;Kuehnkae;Kuenka;Santa Ana de los cuatro rios de Cuenca;Santa Ana de los cuatro ríos de Cuenca;Tumipampa;ke wng ka;kuengka;kuenka;kun ka;kwanka;kwynka;Горад Куэнка;Куенка;Куэнкæ;Куэнка;Куэнка шаары;Կուենկա;קואנקה;کوئنکا;کوئنکا، ایکواڈور;کوانکا;เกวงกา;კუენკა;クエンカ;昆卡;쿠엥카; +city::3660418;Babahoyo;Babahojas;Babahoya;Babahoyo;ba ba ao yue;babaoyo;babawyw;باباویو;باباہویو;巴巴奧約;바바오요; +city::3660689;Ambato;ATF;Ambata;Ambatas;Ambato;Ampatu llaqta;San Juan de Ambato;ambato;ambatw;ambatw akwadwr;an ba tuo;anbato;Амбата;Амбато;Ամբատո;آمباتو، اکوادور;أمباتو;امباتو;امباتو، ایکواڈور;ამბატო;アンバート;安巴托;암바토; +city::588335;Tartu;Derpt;Dorpat;TAY;Tarbatum;Tartto;Tartu;Terbata;Tērbata;Yur'yev;Yurev;taleutu;taruto~u;trtw;Тарту;טרטו;ტარტუ;タルトゥ;타르투; +city::588409;Tallinn;Castrum Danorum;Gorad Talin;Kallinn;Kolyvan;Lindanaes;Lindanäs;Raeaeveli;Reval;Revel;Revel';Rääveli;TLL;Taillinn;Talin;Talinas;Talini;Talino;Talins;Tallidn;Tallin;Tallin osh;Tallina;Tallinn;Tallinna;Talín;Tàllin;ta lin;talin;talina;tallin;tallina;tallyn;talyn;tarin;thallin n;Ταλίν;Ταλιν;Ταλλίν;Горад Талін;Талин;Таллин;Таллин ош;Таллинн;Таллінн;Տալլին;טאלין;تاللىن;تالين;تالین;تاڵین;ٹالن;तालिन;ताल्लिन;তাল্লিন;ਤਾਲਿਨ;தாலின்;ടാലിൻ;ทาลลินน์;ཏཱལ་་ལིན།;ტალინი;ታሊን;タリン;塔林;탈린; +city::590031;Narva;Gorad Narva;Naarva;Narv;Narva;Narva osh;Narvae;Narve;Narwa;Nаrvа;na er wa;naleuba;nar wa;narfa;naruvu~a;narva;narwa;nrbh;Νάρβα;Горад Нарва;Наарва;Нарвæ;Нарва;Нарва ош;Нарве;Նառվա;נרבה;نارفا;ناروا;นาร์วา;ნარვა;ナルヴァ;纳尔瓦;나르바; +city::346030;Zifta;Zifta;Ziftá;zfty;Зифта;زفتى; +city::347236;Toukh;Toukh;Tukh;Tukh al Malaq;Tukh el-Malaq;Tûkh;Tûkh el-Malaq;twkh;Ţūkh;Ţūkh al Malaq;Тух;طوخ; +city::347497;Tanda;Tanda;Tanta;Tantā;tnta;tnth;Ţanţā;Танта;טנטא;טנטה;طنطا;Ṭanṭa;Ṭanṭā; +city::347591;Talkha;Talha;Talkha;tlkha;Ţalkhā;طلخا;Ṭalkha;Ṭalkhā; +city::347612;Tala;Tala;Tale;Talla;Talā;Тале; +city::347634;Tahta;Tahta;Takhta;Ţahţā;Тахта; +city::347796;Sohag;HMB;Sauhadz;Sauhadż;Sawhaj;Sawhāj;Sevhac;Sogag;Sohag;Sohagas;Sokhag;Souhag;Suhag;Suhaj;Suwhaj;sohageu;suhagi;suo ha jie;swhaj;Согаґ;Сохаг;سوهاج;სუჰაგი;索哈傑;소하그; +city::349114;Shirbin;Sharbin;Sharbīn;Sherbin;Shirbin;Shirbîn;Shirbīn;shrbyn;شربين; +city::349156;Shibin al Qanatir;Shabin al Qanatir;Shabir al-Kanatir;Shabīn al Qanātir;Shibin al Qanatir;Shibin el-Qanatir;Shibîn el-Qanâṭir;Shibīn al Qanāţir;shbyn alqnatr;شبين القناطر; +city::349158;Shibin al Kawm;Shabin al-Kum;Shebin al-Kom;Shibin al Kawm;Shibin el-Kom;Shibîn el-Kôm;Shibīn al Kawm;shbyn alkwm;شبين الكوم; +city::349715;Samannud;Samannud;Samannûd;Samannūd;Samnud;Samnūd;Sebennytos;smnwd;سمنود; +city::349717;Samalut;Samalut;Samālūţ; +city::350203;Rosetta;Ar-Rasid;Ar-Rašíd;Bolbitine;Er-Rashid;Rachid;Rashid;Rashîd;Rashīd;Rasid;Rasido;Raŝido;Rašid;Resid;Reşid;Roseta;Rosetta;Rosette;Rozeta;lojeta;luo sai ta;rashidi;rozetta;rshyd;rsyd;Ροζέτα;Рашид;Розета;רשיד;رشيد;رشید;რაშიდი;ロゼッタ;羅塞塔;로제타; +city::350422;Kousa;Apollinopolis Parva;Apollonopolis Parva;Kousa;Qus;Qūş;qws;قوص; +city::350550;Qina;Caene;Kena;Keneh;Qana;Qanā;Qena;Qina;Qinā;astan qna;qna;استان قنا;قنا; +city::350789;Qalyub;Kal'jub;Kalyub;Kalyûb;Qaliub;Qalyub;Qalyūb;qlywb;Кальюб;قليوب; +city::352344;Minyat an Nasr;MINYAT AN-NASR;MINYAT AN-NAṢR;Minyat an Nasr;Minyat an Naşr;Minyet el-Nasr;Minyet el-Naṣr;mnyt alnsr;منية النصر; +city::352354;Munuf;MINUF;MINŪF;Manuf;Manūf;Menouf;Menoufis;Menuf;Munuf;Munūf;mnwf;منوف; +city::352733;Mersa Matruh;MUH;Madara;Marsa Matruh;Marsa-Matrukh;Marsá Maţrūḩ;Matruh;Maţrūḩ;Mersa Matrouh;Mersa Matruh;Mhadara;Paraetonium;mrsy mtrwh;Марса-Матрух;مرسى مطروح; +city::352913;Manfalut;Manfalut;Manfalūţ;Monfalut;mnflwt;منفلوط; +city::352951;Mallawi;Mallauri;Mallavi;Mallawi;Mallawī;Маллави; +city::353802;Kawm Umbu;Kawm Ombo;Kawm Umbu;Kawm Umbū;Kom Ombo;Kom Ombo - kwm ambw;Kom Ombo - كوم أمبو;Kum Ombu;Kôm Ombo;Omboi;Ombos;kom-ombo;Ком-Омбо;コム・オンボ; +city::354365;Kafr az Zayyat;Kafr az Zayat;Kafr az Zayyat;Kafr az Zayyāt;Kafr az Zayāt;Kafr el-Zaiyat;Kafr el-Zaiyât;Kafr el-Zayat;Kafr ez Zaiyat;Kafraz Zayyt;kfr alzyat;كفر الزيات; +city::354502;Kafr ash Shaykh;Kafr al-Sheikh;Kafr ash Shaykh;Kafr el-Sheikh;Kafr-Sheikh;kfr alshykh;كفر الشيخ; +city::354775;Kafr ad Dawwar;Kafr ad Dawwar;Kafr ad Dawwār;Kafr al-Dawar;Kafr ed-Dauwar;Kafr ed-Dauwâr;Kafr el Dawdar;Kafr el-Dauwar;Kafr el-Dauwâr;kfr aldwar;كفر الدوار; +city::355026;Jirja;Girga;Jirja;Jirjā; +city::355449;Isna;Asna;Asnā;Ehsna;Esna;Esneh;Isna;Isnā;Latonpolis;Latopolia;Latopolis;Latónpolis;asna;Эсна;איסנא;אסנא;إسنا; +city::355628;Idku;Edkou;Idku;Idkū;adkw;Идку;إدكو; +city::355635;Idfu;Apollinopolis Magna;Apollonopolis Magna;Edfou;Edfu;Edfú;Ehdfu;Idfu;Idfu Bahari;Idfu Bahri;Idfu Baḥari;Idfū;Idfū Baḩri;adfw;edofu;Едфу;Эдфу;إدفو;エドフ; +city::355648;Ibshaway;Ibshawai;Ibshaway;Ibshawāy; +city::355795;Halwan;Halwan;Helouan;Helouan-les-Bains;Helwan;Helwan Les Bains;Hilwan;Hulwan;Hélouan-les-Bains;Kheluan;hlwan;Хелуан;حلوان;Ḥelwân;Ḩalwān;Ḩulwān; +city::356000;Hawsh `Isa;Haush `Isa;Haush ‘Isá;Hawsh `Isa;Hosh `Isa;Ḥôsh ‘Îsa;Ḩawsh ‘Īsá; +city::356806;Fuwwah;Fawwah;Fouah;Fowa;Fuwa;Fuwah;Fuwwah;fwt;فوة; +city::356933;Farshut;Farshut;Farshuut;Farshūţ; +city::356945;Faraskur;Faraskur;Faraskûr;Fariskur;Fâriskûr;Fāraskūr;Fāriskūr;farskwr;فارسكور; +city::356989;Faqus;Fakous;Fakus;Faqus;Fāqūs;faqws;فاقوس; +city::358048;Damietta;Damiata;Damieta;Damieti;Damietta;Damiette;Damijeta;Dimyat;Dimyath;Dimyāṭ;Doemjat;Dumiat;Dumjat;Dumjata;Dumjatas;Dumját;Dumjāta;Dumqat;Dumujat;Dumyat;Dumyâṭ;Dumyāţ;QDX;Tamiathis;da meiy t ta;dami'ata;damieta;dimuyato;dmyat;du mu ya te;Δαμιέτη;Дамиета;Дамијета;Думъят;Думят;Դամիետա;דמיאט;دمياط;دمیاط;ਦਮੀਆਤ;ดาเมียตตา;დუმიატი;ディムヤート;杜姆亚特;다미에타; +city::358095;Diyarb Najm;Diarb Negm;Diyarb Najm;Diyarb Nigm;Diyarb Nijm;dyrb njm;ديرب نجم; +city::358108;Disuq;Dasuq;Dasūq;Dessouk;Disuk;Disuq;Disūq;dswq;Дисук;دسوق; +city::358115;Dishna;Dashna;Dashnā;Dechna;Deshna;Dishna;Dishnā; +city::358172;Dikirnis;DIKIRNIS;Dekernes;Dikinis;Dikirnis;dkrns;Дикирнис;دكرنس; +city::358269;Dayrut;Dairut;Dairut el Mahatta;Dairût;Dairût el Maḥaṭṭa;Dayrut;Dayrut al Mahattah;Dayrūţ;Dayrūţ al Maḩaţţah;Deirout;Deirut; +city::358448;Damanhur;Bandar Damanhur;Bandar Damanhūr;Damanhour;Damanhur;Damanhûr;Damanhūr;Damankhur;Hermopolis Parva;Hermupolis Parva;dmnhwr;Даманхур;دمنهور; +city::358600;Bush;; +city::358619;Port Said;Bor Sa`id;Bor Sa‘īd;Bur Sa`id;Bursaid;Būr Sa‘īd;Madinat Bur Sa`id;Madinet Port Said;Madînat Būr Sa‘īd;Madînet Port Said;PORTSAINT;PSD;Port Said;Port Saidas;Port Saíd;Port-Said;Port-Saïd;Porto Said;Puerto Said;Puerto Saíd;sai de gang;ΠΟΡΤΣΑΪΝΤ;Порт-Саид;פורט סעיד;بور سعيد;بورسعيد;塞德港; +city::358821;Bilqas;Balqas;Balqās;Bilqas;Bilqas Qism Auwal;Bilqas Qism Awwal;Bilqâs;Bilqâs Qism Auwal;Bilqās;Bilqās Qism Awwal;blqas;بلقاس; +city::358840;Bilbays;Belbeis;Bilbays;Bilbeis;Bilbes;Bilbês;blbys;بلبيس; +city::358970;Basyun;Basyun;Basyûn;Basyūn; +city::359173;Bani Suwayf;Bani Suwayf;Banī Suwayf;Beni Souef;Beni Sue;Beni Suef;Beni Suweif;bny swyf;بني سويف; +city::359212;Bani Mazar;Bani Mazar;Banī Mazār;Beni Mazar;Beni Mazâr; +city::359280;Banha;Athribis;Bandar Banha;Bandar Banhā;Banha;Banhā;Bankha;Benha;Benna;bnha;Банха;بنها; +city::359493;Zagazig;Az Zaqaziq;Az Zaqāzīq;Ehz-Zakazik;Ez Zaqaziq;Ez Zaqāzīq;QZZ;Zagazig;Zaqaziq;Zaqazîq;alzqazyq;jagajigeu;zai jia ji ge;Эз-Заказик;الزقازيق;宰加济格;자가지그; +city::359576;Awsim;Ausim;Ausîm;Awsim;Awsīm;Letopolis;Letous Polis;Usiim;awsym;أوسيم; +city::359710;At Tall al Kabir;At Tall al Kabir;At Tall al Kabīr;At Tell al Kebir;At Tell al Kebīr;El-Tell el-Kebir;El-Tell el-Kebîr;Et Tell el Kebir;Et Tell el Kebīr;Tel el Kebir;Tell el- Kebir;Tell el- Kebîr;altl alkbyr;التل الكبير; +city::359783;Asyut;ATZ;As'jut;Assiout;Assiut;Assuit;Asyut;Asyūţ;Licopolis;Likupulis;Lycopolis;Līkūpūlīs;Siut;asywt;Асьют;أسيوط; +city::359792;Aswan;ASW;Assouan;Assuan;Assuao;Assuão;Asszuan;Asszuán;Asuan;Asuanas;Asuano;Asuán;Asvan;Aswan;Aswán;Aswân;Aswān;Es-Suan;Eswan;Gorad Asuan;Syena;Syene;Syeue;a si wang;aseuwan;asuani;asuwan;asvana;aswan;Ασσουάν;Асуан;Горад Асуан;אסואן;أسوان;اسوان;आस्वान;ასუანი;アスワン;阿斯旺;아스완; +city::359796;Suez;Al Qulzum;As Suways;Clysma;El Seweis;El Suweis;El-Qulzum;Es Suweis;Klysma;Souez;Suais;Suec;Suecas;Suehc;Suehckij;Sues;Suesia;Suess;Sueveys;Suez;Suezi;Suezo;Suvajs;Suèz;Suës;Szuez;Súes;Süveyş;alswys;su yi shi;su'ejha;suejeu;suetsi;suezu;swys;swyyz;swyz;Σουέζ;Сувайс;Суец;Суэц;Суэцкий;Սուեզ;סואץ;السويس;سوئز;سوئیز;سويس;सुएझ;სუეცი;スエズ;苏伊士;蘇伊士;수에즈; +city::360048;Ashmun;ASHMUN;ASHMŪN;Ashmun;Ashmūn;ashmwn;أشمون; +city::360502;Luxor;Al Uqsur;El Aqsur;El Kusur;El Qusur;El Uqsor;El-Aksur;El-Uksur;Gorad Luksor;LXR;Louksor;Louxor;Loxor;Loxòr;Lucsar;Luksor;Luksor shaary;Luksora;Luksoras;Luksoro;Luqsor;Luxor;Luxor- alaqsr;Luxor- الأقصر;Lúxor;al-ukcur;alaqsr;aqsr;lak sxr;lakasara;laksara;le shu;lksr;lugsoleu;luksora;luksori;lwqswr;rukusoru;Λούξορ;Горад Луксор;Луксор;Луксор шаары;Լուքսոր;לוקסור;اقصر;الأقصر;الاقصر;لکسر;लक्सर;लुक्सोर;ਲਕਸਰ;அல்-உக்சுர்;ลักซอร์;ლუქსორი;ルクソール;樂蜀;룩소르; +city::360526;Al Qusiyah;Al Qusiyah;Al Qūşīyah;Cusae;El Qusiya;El Qūsīya; +city::360542;Al Qurayn;Al Qurayn;Al Qurayn wa Tawahin al Haysamiyah;Al Qurayn wa Ţawāḩīn al Ḩayşamīyah;Al'-Ehl'-Kurajn;El Qurein and Tawahin el Heisamiya;El Qurein and Tawaḥîn el Heiṣamîya;El-Qurein;El-Qurein wa Tawahir;El-Qurein wa Ṭawâḥîr;alqryn;Аль-Эль-Курайн;القرين; +city::360615;Al Qanatir al Khayriyah;Al Qanatir al Khayriyah;Al Qanāţir al Khayrīyah;Barrage;Delta Barrage;Delta Barrage Station;Delta-Barrage;El-Qanatir el-Khairiya;El-Qanâtir el-Khairîya;El-Qanâṭir el-Khairîya;Muhammed `Ali Barrage;Muhammed ‘Ali Barrage;`Ezbet Shalaqan;`Izbat Shalqan;alqnatr alkhyryt;القناطر الخيرية;‘Ezbet Shalaqân;‘Izbat Shalqān; +city::360630;Cairo;Al Qahirah;Al Qāhirah;CAI;Caire;Cairo;Cairo - alqahrt;Cairo - القاهرة;Cairu;Cairus;Caïro;El Caire;El Cairo;El Kahira;El Kahirah;El-Qahira;El-Qâhira;Il Cairo;Kaherah;Kahira;Kahirae;Kahire;Kahirä;Kair;Kaira;Kairas;Kairo;Kairó;Kajro;Kayro;Kaíró;Kaïro;Káhira;Le Caire;Lo Cayiro;Lungsod ng Cairo;Masr;Misr;Qahirə;alqahrt;kai luo;kailo;kairo;keyro;khiro;qahrh;qhyr;Ël Cairo;Ël Càiro;Κάιρο;Каир;Каиро;Кайро;Каїр;קהיר;القاهرة;قاهره;قاھىرە;قاہرہ;கெய்ரோ;ไคโร;ཁ་ཡི་རོ;ქაირო;ካይሮ;カイロ;开罗;카이로; +city::360686;Al Minya;Al Minya;Al Minyā;EMY;Ehl'-Min'ja;El Minia;El-Minya;Minia;Minieh;Minya;almnya;Эль-Минья;المنيا; +city::360716;Al Matariyah;Al Matariyah;Al Maţarīyah;El Mataria;El-Matariya;El-Maṭarîya;Matarieh;almtryt;المطرية; +city::360754;Al Manzalah;Al Manzalah;Al Manzilah;El-Manzala;almnzlt;المنزلة; +city::360761;Al Mansurah;Al Mansurah;Al Manşūrah;Al-Mansura;Al-Mansurah;Al-Manṣūrah;El Mansura;El-Mansura;El-Manṣûra;El-Masura;El-Masûra;Manoura;Mansoura;Mansourah;Mansura;Mansurah;Mansûra;almnswrt;mnswrh;mnswrt;المنصورة;منصورة;منصوره; +city::360773;Al Manshah;Al Manshah;Al Manshāh;El Manshah;El Manshāh;Ptolemais Hernnon;Ptolemaîs Hernnon; +city::360829;Al Mahallah al Kubra;Al Mahallah al Kubra;Al Maḩallah al Kubrá;Al-Mahallah al-Kubra';Al-Maḥallah al-Kubra’;El Mahalla;El Mahalla el Kubra;El Mehalla el Kubra;El-Mahalla el-Kubra;El-Maḥalla el-Kubra;Mahalla el Kubra;Mehalla el Kobra;almhlt alkbry;المحلة الكبرى; +city::360923;Al Kharijah;Al Kharijah;Al Khārijah;Al-Kharga;El Kharga;El Khârga;El-Charge;Kharga;Kharga Oasis;UVL;alkharjt;الخارجة; +city::360928;Al Khankah;Al Khankah;Al Khānkah;El-Khanka;El-Khankah;El-Khânka;El-Khânkâh;Khanka; +city::360995;Giza;Al Jizah;Al Jīzah;El Gizeh;El-Giza;El-Gîza;Ghizeh;Giza;Gizah;Gize;Gizeh;Gizo;Gizé;Guiza;Gíza;Gîza;SPX;aljyzt;giza;jyzh;Гиза;الجيزة;جیزه;ギーザ; +city::361029;Al Jammaliyah;Al Jamaliyah;Al Jammaliyah;Al Jammālīyah;Al Jamālīyah;El-Gamaliya;El-Gamalîya;al-Jammaliyyah;al-Jammāliyyah;aljmalyt;الجمالية; +city::361055;Ismailia;Al Isma`iliya;Al Isma`iliyah;Al Ismā‘īlīya;Al Ismā‘īlīyah;Al-Isma'iliyah;Al-Ismā’īlīyah;Gorad Ismailija;Ismailia;Ismailieh;Ismailija;Ismailiya;Ismailiyah;Ismailiye;Ismailía;Ismailîya;Ismayilia;Ismaília;Ismaïlia;Ismoiliya;Ismáílíja;Iszmailija;Iszmáilija;QIV;asmaʿylyh;iseumaillia;isma'iliya;ismailia;isumairia;xis me xi li xa;yi si mei li ya;İsmailiye;Ισμαηλία;Ісмаїлія;Горад Ісмаілія;Исмаилия;Исмаилија;Իսմայիլիա;איסמעיליה;اسماعيليه;اسماعیلیه;اسماعیلیہ;الإسماعيلية;مدينة الإسماعيلية;इस्माइलिया;อิสเมอิลีอา;ისმაილია;イスマイリア;伊斯梅利亚;이스마일리아; +city::361058;Alexandria;ALY;Al Iskandariyah;Al Iskandarīyah;Alegsandiri;Alegsàndiri;Alehandriya;Aleixandria;Aleixandría;Alejandria;Alejandría;Aleksandria;Aleksandrii;Aleksandrij;Aleksandrija;Aleksandrio;Aleksandriya;Aleksandrje;Aleksandryjo;Alesandria dEgito;Alessandria;Alessandria d'Egitto;Alessandria dEggittu;Alessandria e Naggitto;Alexandreia;Alexandria;Alexandria Magna;Alexandrie;Alexandrië;Alexandría;Alexàndria;Ałesandria dEgito;Cathair Alastair;El Iskandariya;El Iskandarīya;Gorad Aleksandryja;Iskandariah;Iskandariya;Iskandariyah;Iskandri;Iskenderiye;Iskindiriya;Iskindirîya;Lisandria dEgittu;Lisàndria dEgittu;Ol'oksandrija;Taskendrit;alaksantriya;alaskndryt;alegjandriya;alekajandriya;alekcantiriya;alekjhandriya;aleksandria;aleksandriya;allegsandeulia;arekusandoria;askndryh;elekjhandriya;sikadari'a;sikandariya;xa lek san de riy;ya li shan da gang;ya li shan zhuo;yەskەndەryە;İsgəndəriyyə;İskenderiye;Αλεξάνδρεια;Александрий;Александрия;Александрија;Александрія;Горад Александрыя;Искандри;Искәндәриә;Ӧльӧксандрия;Ալեքսանդրիա;אלכסנדריה;אלעקסאנדריע;ئەسکەندەریە;اسكندريه;اسکندریه;اسکندریہ;الإسكندرية;ܐܠܟܣܢܕܪܝܐ;अलेक्झांड्रिया;सिकन्दरिया;আলেকজান্দ্রিয়া;আলেক্সান্ড্রিয়া;ਸਿਕੰਦਰੀਆ;એલેક્ઝાન્ડ્રિયા;அலெக்சாந்திரியா;అలెగ్జాండ్రియా;ಅಲೆಕ್ಸಾಂಡ್ರಿಯ;അലക്സാണ്ട്രിയ;อะเล็กซานเดรีย;ཡ་ལི་ཧྲན་ད;အလက်ဇန္ဒရီးယားမြို့;ალექსანდრია;እስክንድርያ;アレクサンドリア;亚历山大港;亞歷山卓;亞歷山大港;알렉산드리아; +city::361179;Al Hawamidiyah;Al Hawamidiyah;Al Ḩawāmidīyah;El-Hawamdiya;El-Ḥawâmdîya;Hawamidyah; +city::361291;Hurghada;Al Ghardaqah;Al-Ghardaqa;Chournkanta;El-Ghardaqa;Gorad Khurgada;Gurdaka;HRG;Hurgada;Hurghada;Khurgada;Khurgade;Urgada;alghrdqh;alghrdqt;furugada;ghrdqh;hong jia da;huleugada;Χουργκάντα;Горад Хургада;Хургада;Хургаде;Հուրգադա;ערדקה;الغردقة;الغردقه;غردقه;غردقہ;ელ-გურდაკა;フルガダ;洪加達;후르가다; +city::361320;Al Fayyum;Al Fayyum;Al Fayyūm;Al'-Fajum;Al-Fayyum;Arsinoe;Arsinoë;Crocodilopolis;El Faiyum;El Faiyûm;El-Fayum;Faijum;Faium;Fajum;Fayoom;Fayoum;Fayum;Fayyoum;Fayyum;Madinat al-Fayyum;Madinet el Faiyum;Madīnet el Faiyūm;Medinat Fayum;Medinat el-Fayoum;Médinat el-Fayoum;Shedit;alfywm;astan fywm;mhafzt alfywm;Аль-Фаюм;استان فیوم;الفيوم;محافظة الفيوم; +city::361329;Al Fashn;Al Fashn;El Fashn;Fashn; +city::361546;Arish;AAC;Al 'Arish;Al Arish;Al `Arish;Al ‘Arīsh;Al-'Arish;Al-Arisch;Al-Arish;Al-Arisz;Al-Arix;Al-‘Arīsh;Alarixe;Aris;Arisas;Arish;Arišas;Aríš;City of Cut Noses;Ehl'-Arish;El Aris;El Arish;El Ariŝ;El Ariş;El'-Arish;El-'Arish;El-Arich;El-‘Arîsh;Rhinocolorum;Rhinocolura;Rhinocorura;Rhinokorura;a li shen;alisi;arishu;el-arishi;Ариш;Ель-Аріш;Эль-Ариш;אל עריש;על אריש;العريش;عریش;ელ-არიში;アリーシュ;阿里什;아리시; +city::361661;Akhmim;Akhmim;Akhmun;Akhmûn;Akhmīm;Ekhmin;Khemmis;Paloupolis;Panopolis;Panospolis;Ахмим; +city::362004;Abu Tij;Abu Tig;Abu Tij;Abu Tîg;Abū Tīj; +city::362277;Abu Qurqas;Abu Gurgas;Abu Kerkae;Abu Kirkas;Abu Qurqas;Abu-Qirqas;Abū Qurqāş; +city::362485;Abu Kabir;Abu Kabir;Abu Kebir;Abu Kebîr;Abu Kibir;Abū Kabīr;Abū Kibīr;Kafr Abu Kabir;Kafr Abu Kebir;Kafr Abu Kebîr;Kafr Abū Kabīr;abw kbyr;أبو كبير; +city::362973;Abnub;Abnub;Abnūb; +city::2462881;Laayoune;Aaium;Aaiun;Aaiún;Aiun;Ajuno;Al Ayoun;Al-Aaiun;Al-Ajoen;Al-Ayun;Al-Ujun;EUN;Ehl'-Ajun;Ejbei Uad el Aabd;El Aaiun;El Aaiún;El Aium;El Aiun;El Aiún;El Ajun;El Ayun;El-Aaiun;El-Aaiún;La'Youn;Laayoune;Laâyoune;La’Youn;O Aiún - العيون;a you en;aiun;el-aiun;Ел Ајун;Эль-Аюн;العيون;العیون;アイウン;阿尤恩;엘아이운; +city::2463447;Dakhla;Ad - Dakhla;Ad Dakhla;Dajla;Dakhla;Dakhlah;Factoria Villa Cisneros;VIL;Villa Cisneras;Villa Cisneros;aldakhlt;dakhlh;Дахла;الداخلة;داخله; +city::333287;Keren;Cheren;Hamelmalo;Kehrehn;Keren;Kerenas;Kereno;ke lun;kelen;keren;krn;kyryn artrya;qrn;Κερέν;Керен;Кэрэн;קרן;كرن;کرن;کیرین، ارتریا;კერენი;ከረን;ケレン;克伦;케렌; +city::343300;Asmara;ASM;Asmar;Asmara;Asmaro;Asmehra;Asmera;Aszmara;Gorad Asmara;a si ma la;asamara;aseumala;asmara;asmera;asmrh;asmrt;asumara;yەsmەrە;Əsməra;Ασμάρα;Асмара;Асмэра;Асмєра;Горад Асмара;Ասմարա;אסמרה;أسمرة;ئەسمەرە;اسمارا;اسمره;अस्मारा;ਅਸਮਾਰਾ;அஸ்மாரா;അസ്മാറ;แอสมารา;ཨཱ་སི་མི་ར།;ასმერა;አስመራ;ኣስመራ;アスマラ;阿斯馬拉;아스마라; +city::2509509;Vila-real;Vila-Real;Vila-real;Villareal;Villarreal;Вила-Реал; +city::2509769;Velez-Malaga;Beleth-Malaga;Veles Malaga;Veles-Malaga;Velez-Malaga;Vélez-Màlaga;Vélez-Málaga;bei lai si-ma la jia;beresu=maraga;fylyth-malqt;Μπέλεθ-Μάλαγα;Вeлес-Мaлага;Велез-Малага;Велес-Малага;Վելես Մալագա;فيليث-مالقة;ベレス=マラガ;贝莱斯-马拉加; +city::2509954;Valencia;Balenzia;Gorad Valensija;Pa-lun-si-a;Pâ-lùn-sî-â;VLC;Valantsa;Valence;Valencia;Valencia - Valencia;Valencia - València;Valencie;Valencija;Valencio;Valenseje;Valensi;Valensia;Valensii;Valensij;Valensija;Valensiya;Valensyaa;Valensėjė;Valenthia;Valentia;Valentzia;Valenza;València;Valéncia;Valência;Vałénsia;Walencja;Walensiye;Walénsiye;ba len seiy;ba lun xi ya;ballensia;barenshia;blnsyt;hua lun xi ya;valainsi'a;valenciya;valensia;valensiya;valynsya;wa lun xi ya;walnsya;wlnsyh;wylnsya;Βαλένθια;Валенси;Валенсиа;Валенсий;Валенсия;Валенсија;Валенсія;Горад Валенсія;Վալենսիա;וואלענציע;ולנסיה;بلنسية;والنسیا;ویلنسیا;ویلنسیہ;ڤالينسيا;ڤالێنسیا;वालेन्सिया;ਵਾਲੈਂਸੀਆ;வாலேன்சியா;บาเลนเซีย;ვალენსია;バレンシア;巴倫西亞;瓦伦西亚;瓦倫西亞;華倫西亞;발렌시아; +city::2510073;Utrera;Utrera;Утрера; +city::2510253;Torrevieja;Malnovturo;Toreviekha;Toreviexa;Torevijekha;Torrev'ekha;Torrevekha;Torrevella;Torrevella de la Mata;Torrevieja;torebieha;trbykha;tuo lei wei ye ha;twrbyyhh;twrryfyykha;twryfayja;Торевиеха;Торевијеха;Торревьеха;Торревєха;Տոռեվիեխա;טורבייחה;تربیخا;تورريفييخا;توريفايجا;トレビエハ;托雷维耶哈; +city::2510279;Torrent;Torrent;Torrente; +city::2510281;Torremolinos;Toremolinos;Toremolinos-Malaga;Toremolinos-Málaga;Torremolinos;Torremolinos-Malaga;Torremolinos-Málaga;UTL;tuo lei mo li nuo si;twrymwlynws;Τορρεμολίνος;Торемолинос;Торремолинос;Торремолінос;توريمولينوس;托雷莫利诺斯; +city::2510409;Toledo;Gorad Taleda;Toledas;Tolede;Toledo;Toledo i Spania;Toledu;Toletum;Toleu;Tolède;XTJ;tlytlt;to le do;toledo;toleto;tolledo;toredo;tuo lai duo;tuo li duo;twldw;twldw aspanya;twlydw;Τολέδο;Горад Таледа;Толедо;Տոլեդո;טאלעדא;טולדו;تولدو، اسپانیا;توليدو;طليطلة;طلیطلہ;तोलेदो;ਤੋਲੇਦੋ;டொலேடோ;โตเลโด;ტოლედო;ቶሌዶ;トレド;托利多;托萊多;톨레도; +city::2510542;Telde;Tel'de;Telde;te er de;tyldy;Телде;Тельде;تيلدي;特尔德; +city::2510693;Talavera de la Reina;Aebura;Caesarobriga;Ebora;Ebura;Elbora;QWT;Talavera de la Reina;Talavera de la Rejna;Talavera de la reina;Talavera del Tajo;Talavera-de-la-Rejna;ta la be ra de la rey na;ta la wei la de la lei na;talavera di la rina;tlbyrt;Талавера де ла Реина;Талавера де ла Рейна;Талавера-де-ла-Рейна;طلبيرة;टालावेरा दी ला रीना;ตาลาเบราเดลาเรย์นา;ታላቬራ ዴ ላ ሬና;タラベラ・デ・ラ・レイナ;塔拉韦拉德拉雷纳; +city::2510911;Sevilla;Gorad Sevil'ja;Hispalis;Lungsod ng Sevilla;SVQ;Sebilla;Sebille;Sevidzheh;Sevil'ja;Sevila;Sevileje;Sevilha;Sevilia;Sevilija;Sevilja;Sevilla;Seville;Sevilo;Sevilya;Sevilėjė;Seviya;Seweliye;Sewilla;Sibilia;Siviglia;Sivilja;Séville;Séwéliye;ashbylyt;ceviya;isabili'a;sai wei li ya;sai wei ya;sbylyh;sebi ya;sebiria;sebirya;sebiya;sevilia;swya;sybyya;Σεβίλλη;Горад Севілья;Севиджэ;Севилья;Севиля;Севилја;Севиља;Севілья;Սևիլյա;סביליה;סעווילא;إشبيلية;اشبیلیہ;سویا;سيبييا;سێڤیلیا;सेबिया;ਇਸ਼ਬੀਲੀਆ;செவீயா;เซบียา;სევილია;セビリア;セビリャ;塞維亞;塞维利亚;세비야; +city::2511032;San Vicent del Raspeig;San Vicente;San Vicente del Raspeig;Sant Vicent del Raspeig;Sanvi; +city::2511150;Santa Lucia;Santa Lucia de Tirajana;Santa Lucía de Tirajana;sheng lu xi ya;圣卢西亚; +city::2511174;Santa Cruz de Tenerife;Gorad Santa-Krus-deh-Tehnehryfeh;Sancta Crux Nivariae;Santa Cruz;Santa Cruz Tenerifekoa;Santa Cruz de Tenerife;Santa Cruz de Ténérife;Santa Krouth nte Tenerife;Santa Krus de Tenerife;Santa Kruz de Tenerife;Santa-Krus-de-Tenerife;Santakrusa de Tenerife;TCI;Tenerife;Tenerifes Santa Krusas;Teneriffa;Tenerifės Santa Krusas;san ta kru sde te ne rife;santa kruja de teneriphe;santa krujha de teneripha;santa krusa de tenarifa;santa krws;santa krws dy tynyryfa;santa krwth dy tynyryfh;santa krwz dy tynyrf;santakeuluseudetenelipe;sheng ke lu si-de te nei li fei;snth qrws dh tnryph;Σάντα Κρουθ ντε Τενερίφε;Горад Санта-Крус-дэ-Тэнэрыфэ;Санта Круз де Тенерифе;Санта Крус де Тенерифе;Санта-Крус-де-Тенерифе;Санта-Крус-де-Тенеріфе;סאנטא קרוז דע טענעריפע;סנטה קרוס דה טנריפה;سانتا كروث دي تينيريفه;سانتا كروس دى تينيريفا;سانتا کروز دی تینیرف;سانتا کروز ٹینرائف;سانتا کروس;सांता क्रुझ दे तेनेरीफ;सान्ता क्रूस दे तेनरीफ़;সান্টা ক্রুজ দে তেনেরিফে;ซานตากรุซเดเตเนรีเฟ;სანტა-კრუს-დე-ტენერიფე;サンタ・クルス・デ・テネリフェ;圣克鲁斯-德特内里费;산타크루스데테네리페; +city::2511306;Sanlucar de Barrameda;San Lucar de Barrameda;Sanlucar de Barrameda;Sanlukar de Barameda;Sanlukar-de-Barrameda;Sanlúcar de Barrameda;Sunlucar de Barrameda;san luk arde bar ra me da;sang lu ka er de wa la mei da;sanlukaleudebalameda;shlwqt;Санлукар де Барамеда;Санлукар-де-Баррамеда;شلوقة;ซานลูการ์เดบาร์ราเมดา;სანლუკარ-დე-ბარამედა;サンルーカル・デ・バラメーダ;桑卢卡尔德瓦拉梅达;산루카르데바라메다; +city::2511388;San Fernando;San Fernanando;San Fernando;San Fernando i Spania;San-Fernando;san frnandw qads;sheng fei er nan duo;Сан Фернандо;Сан-Фернандо;سان فرناندو، قادس;サン・フェルナンド;圣费尔南多; +city::2511401;La Laguna;La Laguna;La-Laguna;San Cristobal de La Laguna;San Cristóbal de La Laguna;Ла-Лагуна; +city::2511440;San Bartolome de Tirajana;San Bartolome Tirajana;San Bartolome de Tirajana;San Bartolomé Tirajana;San Bartolomé de Tirajana; +city::2511619;Sagunto;Morvedre;Sagonte;Sagunt;Sagunto;Saguntum;sgwntwm;Сагунто;סגונטום; +city::2511716;Roquetas de Mar;Roketas de Mar;Roketas-de-Mar;Roquetas;Roquetas de Mar;luo ke ta si de ma er;rktas d mar;rwkwytas dy mar;Рокетас де Мар;Рокетас-де-Мар;روكويتاس دي مار;رکتاس د مار;ロケタス・デ・マル;罗克塔斯德马尔; +city::2512177;Puertollano;Puehrtol'jano;Puertojano;Puertolano;Puertollano;Puertolyano;UER;bwrtwlanw;pu ai er tuo li ya nuo;puerutoryano;Пуертояно;Пуертољано;Пуэртольяно;Պուերտոլյանո;بورتولانو;プエルトリャノ;普埃尔托利亚诺; +city::2512862;Paterna;Paterna;pa te er na;pateruna;Патерна;パテルナ;帕特尔纳; +city::2512989;Palma;Ciutat de Mallorca;Madina Mayurqa;PMI;Pal'ma;Palma;Palma Mallorcakoa;Palma de Maiorca;Palma de Majorque;Palma de Malhorca;Palma de Malhòrca;Palma de Mallorca;Palma di Maiorca;mywrqt;pa er ma;palmademayoleuka;plmh dh mywrqh;Пальма;פלמה דה מיורקה;ميورقة;パルマ・デ・マリョルカ;帕爾馬;팔마데마요르카; +city::2513076;Orihuela;Auraiola;Aurariola;Orihuela;Oriola;Oriouela;Oriuehla;Oriuela;Orivela;ao li wei la;aryhwyla;awrywyla;oriuera;Οριουέλα;Оривела;Ориуэла;Оріуела;Օրիուելա;أوريويلا;اریهوئلا;اوریہیولا;オリウエラ;奥里韦拉; +city::2513416;Murcia;Ciutat de Murcia;Ciutat de Múrcia;MJV;Murcia;Murcie;Murcio;Murcja;Mursia;Mursija;Múrcia;mrsyt;mu er xi ya;murushia;mwrsya;mwrsyh;Мурсия;מורסיה;مرسية;مورسیا;ムルシア;穆尔西亚; +city::2513477;Motril;Motril;Motril';mo te li er;motoriru;mwtryl;Мотрил;Мотриль;Мотріль;موتريل;モトリル;莫特里尔; +city::2513759;Molina de Segura;Molina;Molina de Segura;Molina-de-Segura;mo li na de sai gu la;mwlyna dy syghwra;Молина де Сегура;Молина-де-Сегура;Моліна-де-Сегура;مولينا دي سيغورا;モリナ・デ・セグラ;莫利纳德塞古拉; +city::2513882;Mijas;Mijas;Mikhas;mi ha si;mihasu;mykhas;Михас;Міхас;ميخاس;ミハス;米哈斯; +city::2513917;Merida;Emerita Augusta;Merida;Merido;Mérida;QWX;merida;mryda;mrydh;Мерида;מרידה;مریدا;メリダ; +city::2513947;Melilla;Ciudad Autonoma de Melilla;Ciudad Autónoma de Melilla;Ciudad de Melilla;Korisnik:Slaven Kosanovic/Melila;Lungsod ng Melilla;M'lila;MLN;Melil'ja;Melila;Melilla;Melilo;Melilya;Meliya;Millela;Rusaddir;Rusadir;Russadir;me li ya;mei li li ya;melilia;melliya;merirya;mlylyh;mlylyt;mlyyh;Корисник:Славен Косановић/Мелиља;Мелила;Мелилья;Мелиља;מלייה;مليلية;ملیلیه;เมลียา;მელილია;メリリャ;梅利利亚;멜리야; +city::2514169;Marbella;Gorad Marbellja;Marbel'ja;Marbela;Marbelja;Marbella;Marbelya;Marvegia;QRL;ma bei la;maleubeya;marbella;marbla;marbya;marbyla;maruberya;Μαρβέγια;Горад Марбелля;Марбeлья;Марбелья;Марбеля;Марбеља;Մարբելյա;ماربلا;ماربيا;ماربيلا;ماربیا;मार्बेल्ला;マルベーリャ;马贝拉;마르베야; +city::2514256;Malaga;AGP;Gorad Malaga;Malaca;Malaga;Malagae;Malago;Malaqa;Màlaga;Málaga;ma la jia;malaga;malaja;malaka;malga;mallaga;malqt;maraga;mlqt;Μάλαγα;Горад Малага;Малагæ;Малага;Մալագա;מאלגה;מלאגה;مالاجا;مالاگا;مالقة;مالگا;ملقة;مەلەگا;मलागा;மாலாகா;มาลากา;მალაგა;マラガ;馬拉加;马拉加;말라가; +city::2514891;Lorca;Llorca;Lorca;Lorka;Lorko;XJR;lwrka mrsyt;lwrqh;roruka;Лорка;לורקה;لوركا، مرسية;ロルカ; +city::2515045;Linares;Linares;Линарес; +city::2515270;Las Palmas de Gran Canaria;Kanaria Handiko Las Palmas;LPA;Las Palmas;Las Palmas de G.C.;Las Palmas de Gran Canaria;Las Palmas de Gran Kanaria;Las-Pal'mas-de-Gran-Kanarija;Laspalmasa;Les Palmes de Gran Canaria;Les Palmes de Gran Canària;Palmas;Palmas de Gran Canaria;la si pa er ma si;Лас Палмас де Гран Канариа;Лас-Пальмас-де-Гран-Канария;ラス・パルマス・デ・グラン・カナリア;拉斯帕尔马斯; +city::2515812;La Linea de la Concepcion;La Linea;La Linea de la Concepcion;La Línea;La Línea de la Concepción;La-Linea-de-la-Konseps'jon;La-Linea-de-la-Konseps'on;La-Linea-deh-la-Kanseps'jon;Linea de Konsepsion;la li nei ya de la kong sai pu xi weng;la lnya dy la kanspchyan;la yyna dy la kwnsybsywn;Ла-Линеа-де-ла-Консепсьон;Ла-Лінеа-де-ла-Консепсьйон;Ла-Лінеа-дэ-ла-Кансепсьён;Линеа де Консепсион;لا لنیا دی لا کانسپچیان;لا يينا دي لا كونسيبسيون;ラ・リネア・デ・ラ・コンセプション;拉利内亚德拉孔塞普西翁; +city::2516326;Jerez de la Frontera;Cheres de la Frontera;Gorad Kherehs-deh-la-Frantehra;Herezo;Jarez de la Frontera;Jerez;Jerez de la Frontera;Kheres de la Frontera;Kheres-de-la-Frontera;Kherez de la Frontera;XRY;Xeres;Xeresium;Xerez de la Frontera;Xerès;Xérès;he lei si-de la fu long te la;heleseudelapeulontela;hrs dh lh prwntrh;jyraz dy la frwntyra;shrysh;Ĥerezo;Горад Херэс-дэ-ла-Франтэра;Херез де ла Фронтера;Херес де ла Фронтера;Херес-де-ла-Фронтера;חרס דה לה פרונטרה;جیراز دی لا فرونتیرا;شريش;ヘレス・デ・ラ・フロンテーラ;赫雷斯-德拉弗龙特拉;헤레스데라프론테라; +city::2516395;Jaen;Aurgi;Haeno;JEA;Jaen;Jaén;Khaehn;Xaen - Jaen;Xaén - Jaén;haen;jyan;Ĥaeno;Хаэн;جيان;ハエン; +city::2516548;Huelva;HEV;Huelva;Onubo;Uehl'va;ueruba;u~eruba;Уэльва;ウェルバ;ウエルバ; +city::2517117;Granada;GRX;Girnata;Gorad Granada;Grana;Granada;Granada - Grenada;Granado;Granata;Graná;Grenada;Grenade;Grenado;Grenayd;Gırnata;Lungsod ng Granada;Qranada;ge la na da;ge lin na da;geulanada;ghrnatt;granada;grndh;guranada;gurenada;jranada;jrynada;kiranata;kran a da;Γρανάδα;Горад Гранада;Гранада;Гренада;גרנדה;جرانادا;جرينادا;غرناطة;غرناطہ;ګرېنادا;گرانادا;گرېنادا;ग्रानादा;গ্রানাডা;கிரனாதா;กรานาดา;გრანადა;ግራናዳ;グラナダ;グレナダ;格拉纳达;格林纳达;그라나다; +city::2517367;Gandia;Gandia;Gandie;Gandija;Gandía;Гандия; +city::2517595;Fuengirola;FGR;Fuehnkhirola;Fuengirola;Fuenkhirola;feng xi luo la;fu en ji luo la;fwynkhyrwla;Фуенхирола;Фуенхірола;Фуэнхирoла;Фуэнхирола;فوينخيرولا;丰希罗拉;福恩吉罗拉; +city::2517816;Estepona;EVO;Ehstepona;Estepona;ai si te bo na;astybwna;esutepona;Естепона;Эстепона;إستيبونا;エステポナ;埃斯特波纳; +city::2518207;El Puerto de Santa Maria;Ehl'-Puehrto-de-Santa-Marija;El Puerto;El Puerto de Santa Maria;El Puerto de Santa María;El'-Puerto-de-Santa-Marija;PXS;Portus Sanctae Mariae;Pto. de Sta. Maria;Pto. de Sta. María;Puerto;Puerto de Santa Maria;Puerto de Santa Marija;Puerto de Santa María;al bwyrtw dy santa marya;elpueleutodesantamalia;sheng ma li ya gang;xelpwyr to de san ta ma ri xa;Ель-Пуерто-де-Санта-Марія;Пуерто де Санта Марија;Эль-Пуэрто-де-Санта-Мария;إل بويرتو دي سانتا ماريا;เอลปวยร์โตเดซานตามารีอา;エル・プエルト・デ・サンタ・マリア;圣玛丽亚港;엘푸에르토데산타마리아; +city::2518494;El Ejido;Barriada El Ejido;Ehl'-Ehkhido;Ejido;Ekhido;El Edzido;El Ejido;El'-Ekhido;ai lai xi duo;al akhydw;alayjaydw;Ел Еџидо;Ель-Ехідо;Ехидо;Эль-Эхидо;إلإيجايدو;ال اخیدو;エル・エヒド;埃莱希多; +city::2518505;Elda;Ehl'da;El'da;Elda;ai er da;alda;xe lda;Елда;Ельда;Эльда;Էլդա;إلدا;الدا;เอลดา;埃尔达; +city::2518559;Elche;Ehl'ch;Ehl'che;El'che;Elce;Elch;Elche;Elig;Elx;Elčė;Illici;ai er qie;alchh;alsh;elche;eruche;xelche;ʼls;Елч;Елче;Ельче;Эльч;Эльче;אלש;إلش;الش;الچه;เอลเช;ელჩე;エルチェ;埃爾切;엘체; +city::2518794;Dos Hermanas;Dos Ermanas;Dos Hermanas;Дос Ерманас; +city::2519240;Cordoba;Cardoue;Cordoa;Cordoba;Cordoba i Spania;Cordoue;Cordova;Corduba;Còrdoa;Còrdova;Córdoba;Córdoba i Spania;Córdova;Córduba;Gorad Kordava;Kordoba;Kordova;Kordovo;Kordowa;ODB;ge duo hua;ke er duo wa;koleudoba;kordoba;korudoba;kurtupa;kwrdwba;kxr do ba;kۆrdۆba;qrtbh;qrtbt;qwrdwbh;Κόρδοβα;Горад Кордава;Кордоба;Кордова;Կորդովա;קארדאבע;קורדובה;قرطبة;قرطبه;قرطبہ;كوردوبا;کوردوبا;کۆردۆبا;कोर्दोबा;குர்துபா;กอร์โดบา;კორდობა;コルドバ;哥多華;科爾多瓦;코르도바; +city::2519402;Ciudad Real;CQM;Cidade Real;Ciuda Real;Ciudad Real;Ciudá Real;Gorad S'judad-Rehal';S'judad-Real';Sijudad Real;Villa-Real;lei a er cheng;siudadeuleal;sywdad ryal;thywdad ryal;Горад Сьюдад-Рэаль;Сијудад Реал;Сьюдад-Реаль;סיודאד ריאל;ثيوداد ريال;سیوداد رئال;シウダー・レアル;雷阿爾城;시우다드레알; +city::2519513;Chiclana de la Frontera;Chiclana;Chiclana de la Frontera;Chiklana-de-la-Frontera;Чиклана-де-ла-Фронтера; +city::2519752;Castello de la Plana;CDT;Castello;Castello de la Plana;Castellon;Castellon de la Plana;Castelló;Castelló de la Plana;Castellón;Castellón de la Plana;Kastel'on-de-la-Plana;Kastelon de la Plana;ka si te li weng-de la pu la na;qʼstywn dh lh plʼnh;Кастельон-де-ла-Плана;Кастељон де ла Плана;קאסטיון דה לה פלאנה;カステリョン・デ・ラ・プラナ;卡斯特利翁-德拉普拉納; +city::2520058;Cartagena;Cartachena;Cartagena;Cartagena i Spania;Cartaxena;Carthagene;Carthago Nova;Carthagène;Gorad Kartakhena;Kartachena;Kartagena;Kartagina;Kartagjena;Kartahena;Kartaheno;Kartakhena;Kartaĥeno;Karthageni;XUF;ka ta he na;kaleutahena;kartagna;kartajena;kartajina;kartakhyna;kartygana;karutahena;qrthnh;Καρθαγένη;Горад Картахена;Картагена;Картагина;Картахена;קרטחנה;كارتاخينا;کارتاگنا;کارتیگانا;कार्टाजेना;कार्ताजिना;კარტახენა;ካርታሔና;カルタヘナ;卡塔赫纳;카르타헤나; +city::2520425;Campina;Campina;Campiña;Caserio Campina;Caserío Campiña; +city::2520493;Calvia;Calvia;Calvià;Calviá;Kal'vija;Kalvia;Kalvija;ka er wei ya;kalbi xa;kalbya;kalfya;karubia;Калвиа;Калвија;Кальвия;Кальвія;كالفيا;کالبیا;กัลบีอา;カルビア;卡尔维亚; +city::2520600;Cadiz;CDZ;Cadice;Cadis;Cadix;Cadiz;Cai;Càdice;Cádice;Cádis;Cádiz;Gadeira;Gades;Gadir;Gaðes;Iungadir;Kadis;Kadisas;Kadiz;Kadizo;Kadyks;Kantith;La tacita de plata;jia de si;kadi s;kadiseu;kadisu;kads;kadydh;kadys;qads;qdys;Κάντιθ;Кадиз;Кадис;Кадіс;קדיס;قادس;كاديذ;کادس;کادیس;กาดิซ;კადისი;ካዲዝ;カディス;加的斯;카디스; +city::2520611;Caceres;Caceres;Caceres i Spania;Cacris;Caçris;Càceres;Cáceres;Cáceres i Spania;Gorad Kaserehs;Kaseres;Kaseresa;Kaseresas;Katheres;Norba Caesarina;QUQ;ka sai lei si;ka se res;ka sha li si;kakeresa;kakyrys spyn;kaseleseu;kaseresu;kasrs;katheresa;qsrs;qsrsh;Κάθερες;Горад Касерэс;Касерес;קסרס;قصرش;کاسرس;کاسیریس، ہسپانیہ;کاکیریس، سپین;काकेरेस;ਕਾਥੇਰੇਸ;กาเซเรส;კასერესი;カセレス;卡塞雷斯;卡沙利斯;카세레스; +city::2521088;Benidorm;Benidorm;Benidormo;bei ni duo er mu;benidoleum;benidorumu;bnydwrm;Бенидорм;Бенідорм;Բենիդորմ;بنيدورم;بنیدورم;ベニドルム;贝尼多尔姆;베니도름; +city::2521139;Benalmadena;Benal'madena;Benalmadena;Benalmádena;bei na er ma de na;benalmadena;bnalmadna;bynalmadyna;Беналмадена;Бенальмадена;Բենալմադենա;بنالمادنا;بينالمادينا;贝纳尔马德纳;베날마데나; +city::2521420;Badajoz;Ara Pacis Augustalis;BJZ;Badahozo;Badajoz;Badakhos;Badaĥozo;badahosu;badakhwz;Бадахос;باداخوز;バダホス; +city::2521570;Arrecife;ACE;Aresife;Arrecife;Аресифе; +city::2521582;Arona;Aron;Arona;Arona pa Tenerife;Arona på Tenerife;a luo na;arwna asbanya;Арон;Арона;أرونا، إسبانيا;阿罗纳; +city::2521886;Almeria;Al'meri;Al'merija;Almeria;Almerija;Almerio;Almería;Gorad Al'meryja;LEI;Unci;a er mei li ya;almelia;almeriya;almrya;almryt;almyrya;arumeria;Αλμερία;Алмерия;Алмерија;Альмери;Альмерия;Альмерія;Горад Альмерыя;Ալմերիա;אלמריה;آلمریا;ألمرية;المریہ;المیریا;अल्मेरिया;आल्मेरिया;அல்மேரீயா;アルメリア;阿尔梅里亚;알메리아; +city::2521978;Alicante;A-li-kham-thit;ALC;Akra Leuke;Alacant;Alakanto;Alicant;Alicante;Alicanti;Alikante;Alikantė;Alíkante;Gorad Alikanteh;Lucentum;a li kan te;alikante;allikante;alykant;alykanth;alykanty;arikante;xa li kan te;Â-li-kham-thi̍t;Αλικάντε;Аликанте;Аліканте;Горад Алікантэ;Ալիկանտե;אליקנטה;آلیکانته;أليكانتي;الیکانت;الیکانتے;आलिकांते;आलिकान्ते;อาลีกันเต;ალიკანტე;アリカンテ;阿利坎特;알리칸테; +city::2522013;Algeciras;AEI;Al Jezita;Al'khesiras;Alchesirasas;Alchethiras;Alchezira;Algeciras;Algecires;Algesiras;Algesires;Algésiras;Alkhesiras;Alxeciras;a er he xi la si;alghykras;alhesilaseu;alkhythyras;aruheshirasu;Αλχεθίρας;Алхесирас;Альхесирас;Альхесірас;الجزيرة الخضراء;الخيثيراس;الغیکراس;アルヘシラス;阿尔赫西拉斯;알헤시라스; +city::2522098;Alcoy;Al'ka;Al'koj;Alco;Alcodium;Alcoi;Alcoy;Alkoj;Alkojus;a er ke yi;alkwy;arukoi;Алкој;Алька;Алькой;آلکوی;ألكوي;アルコイ;阿尔科伊; +city::2522165;Alcala de Guadaira;Al'kala-de-Gvadaira;Alcala de Guadaira;Alcalá de Guadaira;Alcalá de Guadaíra;Алькала-де-Гвадаира; +city::2522258;Albacete;ABC;Al'basete;Albacet;Albacete;Albasete;Albasetė;Gorad Al'baseteh;a er wa sai te;albasete;albasth;albsyt;arubasete;Албасете;Альбасете;Горад Альбасетэ;אלבסטה;آلباسته;الباچیتے;البسيط;アルバセテ;阿尔瓦塞特;阿爾瓦塞特;알바세테; +city::2567529;Grao de Murviedro;; +city::3104324;Zaragoza;Caesaraugusta;Caesarea Augusta;Caragoca;Salduba;Salduie;Saragoca;Saragosa;Saragosae;Saragoso;Saragossa;Saragosse;Saragoza;Saragozza;Saragoça;Saragòssa;Saraqosa;ZAZ;ZGZ;Zaragosa;Zaragoza;Zaragozo;Zargoza;sa la ge sa;sa ra ko sa;salagosa;saragosa;saragwsa;sarajwsa;srgwsh;srqstt;sەrەgۆsa;taragota;Çaragoça;Żaragoża;Σαραγόσα;Сарагосæ;Сарагоса;Сарагосо;Սարագոսա;סאראגאסא;סרגוסה;ساراجوسا;ساراگوسا;سرقسطة;سەرەگۆسا;सारागोसा;ਤਾਰਾਗੋਤਾ;ซาราโกซา;სარაგოსა;サラゴサ;萨拉戈萨;사라고사; +city::3104342;Zamora;Samora;ZOB;Zamora;Zamoro;samora;thamora;zamwra;Самора;زامورا;থামোরা;サモラ; +city::3104499;Gasteiz / Vitoria;Bittorixa;Gasteiz;VIT;Victoriacum;Vitoria;Vitoria-Gasteiz;Vitorija;Vitorio;Vitòria;Vitória;bitoria;wytwryh;Витория;ויטוריה;ビトリア; +city::3105184;Vilanova i la Geltru;Vilanova;Vilanova i la Geltru;Vilanova i la Geltrú; +city::3105935;Viladecans;Biladakans;Viladekans;bi la de kan si;fyladykans;Біладаканс;Виладеканс;فيلاديكانس;比拉德坎斯; +city::3105976;Vigo;Bigo;Gorad Viga;VGO;Vigas;Vigo;Vigo shaary;Vigu;bi ko;bigo;bygw;fyghw;vigo;wei ge;wgw;wygw;Βίγο;Виго;Виго шаары;Віго;Горад Віга;Վիգո;ויגו;بیگو;فيغو;وگو;ویگو;वीगो;บีโก;ვიგო;ビーゴ;維戈;비고; +city::3106672;Valladolid;Gorad Val'jadalid;Lungsod ng Valladolid;Pincia;Pucela;VLL;Vagiadolid;Val'jadolid;Valadoli;Valadolid;Valadolido;Valdoletum;Valhadolid;Valjadolid;Valjadolida;Valjadolidas;Valladolid;Valladolis;Valladolit;Valladolíd;Valladolís;Vallis Tolitum;Valyadolid;Vayadolid;Vaładołì;ba li ya duo li de;ba ya do lid;baryadoriddo;bayadollideu;bld alwlyd;fayadwlydh;valiadolidi;vayadolida;wayadwlyd;wʼyʼdwlyd;Βαγιαδολίδ;Вальядолид;Вальядолід;Валядолид;Ваљадолид;Горад Вальядалід;ואיאדוליד;بلد الوليد;فايادوليذ;والاڈولڈ;وایادولید;ڤایادۆلید;वायादोलिद;บายาโดลิด;ვალიადოლიდი;バリャドリッド;巴利亚多利德;바야돌리드; +city::3106868;Valdemoro;Val'demoro;Valdemoro;Vallis Mauri;ba er de mo luo;fladymwrw;Валдеморо;Вальдеморо;فلاديمورو;巴尔德莫罗; +city::3107112;Rivas-Vaciamadrid;Vaciamadrid;Vasiamadrid;Васиамадрид; +city::3107775;Torrelavega;Torelavega;Torrelavega;torerabega;tuo lei la wei jia;twrylafyja;Торелавега;Торрелавега;Տոռելավեգա;توريلافيجا;ٹوریلاویگا;トレラベーガ;托雷拉韦加; +city::3107784;Torrejon de Ardoz;Torechon de Ardosas;Torekhon de Ardos;Torrejon de Ardoz;Torrejón de Ardoz;Torrekhon-de-Ardos;Turricula Ardozensis;tuo lei hong de ya er duo si;Торехон де Ардос;Торрехон-де-Ардос;トレホン・デ・アルドス;托雷洪德亚尔多斯; +city::3108286;Terrassa;Terasa;Terrassa;telasa;terrasa;Τεράσα;Террасса;テッラーサ;테라사; +city::3108288;Tarragona;QGN;Taragono;Tarraco;Tarrago;Tarragona;Tarragone;taragona;taragwna;trgwnh;Таррагона;טרגונה;تاراگونا;タラゴナ; +city::3109256;Segovia;Gorad Segovija;Segovia;Segovie;Segovija;Segovio;Segowia;Segòvia;Segóvia;Segóvía;Senkovia;Ségovie;XOU;sai ge wei ya;se ko beiy;segobia;segovi'a;segovia;sgwbya;sgwbyh;shqwbyt;syjwvya;Σεγκόβια;Горад Сеговія;Сеговия;Сеговија;Сеговія;סגוביה;سيجوڤيا;سگوبیا;شقوبية;सेगोविआ;เซโกเบีย;სეგოვია;セゴビア;塞哥维亚;세고비아; +city::3109402;Cerdanyola del Valles;Cerdanyola;Cerdanyola del Valles;Cerdanyola del Vallès; +city::3109453;Barakaldo;Baracaldo;Barakaldo;Done Bikendi;San Bizente;San Bizenti-Barakaldo;San Vicente de Baracaldo;Sanbi; +city::3109642;Santiago de Compostela;Compostela;Compostelako Donejakue;Compostella;Compostèla;Gorad Santjaga-deh-Kampastehla;Lungsod ng Santiago de Compostela;SCQ;Saint-Jacques-de-Compostelle;Sant'jago-de-Kompostela;Sant'jago-de-Kompostelae;Santiago;Santiago de Compostela;Santiago de Compostella;Santiago de Compostel·la;Santiago de Kompostela;Santiago di Compostela;Santiago nte Kompostela;Santiagu de Compostela;Santiaqo de Kompostela;Santijago de Kompostela;Santjago de Kompostela;Sint-Djake-el-Galice;Sint-Djåke-el-Galice;cantiyako te kompocutela;kong bo si te la de sheng de ya ge;san teiy ko dek xm po s te la;santi'ago de komaposatela;santi'ago de kompostela;santiagodekomposeutella;santiyago de kompostela;santyaghw dy kwmbwstyla;santyagw d kmpwstla;santyajw dy kwmbwstyla;sheng de ya ge jin bo si te la;sheng de ya ge-de kong bo si te la;Σαντιάγο ντε Κομποστέλα;Горад Сантяга-дэ-Кампастэла;Сантијаго де Компостела;Сантьяго-де-Компостелæ;Сантьяго-де-Компостела;Сантяго де Компостела;Сантјаго де Компостела;Սանտիագո դե Կոմպոստելա;סאנטיאגא דע קאמפאסטעלא;סנטיאגו דה קומפוסטלה;سانتياجو دى كومبوستيلا;سانتياغو دي كومبوستيلا;سانتیاگو د کمپوستلا;سانتیاگو دے کومپوستیلا;सांतिआगो दे कोम्पोस्तेला;सांतियागो दे कोंपोस्तेला;ਸਾਂਤੀਆਗੋ ਦੇ ਕੋਮਪੋਸਤੇਲਾ;சாந்தியாகோ தே கோம்போசுதேலா;සන්තියාගෝ ඩි කොම්පොස්ටෙලා;ซานเตียโกเดกอมโปสเตลา;სანტიაგო-დე-კომპოსტელა;サンティアゴ・デ・コンポステーラ;孔波斯特拉的聖地牙哥;聖地亞哥-德孔波斯特拉;聖地亞哥金波斯特拉;산티아고데콤포스텔라; +city::3109718;Santander;Gorad Santandehr;Portus Victoriae Iuliobrigensium;SDR;Sanandere;Santandel;Santander;Santandera;Santanderas;Santandero;Santandèr;Santandér;cantanter;sang tan de;santandeleu;santandera;santanderu;santandr;santandyr;sntndr;Горад Сантандэр;Сантандер;סנטנדר;سانتاندر;سانتاندير;سانٹانڈر;सांतांदेर;சான்தான்தேர்;サンタンデール;桑坦德;산탄데르; +city::3109981;Santa Coloma de Gramenet;Santa Coloma de Gramenet;Santa-Koloma-de-Gramanet;Санта-Колома-де-Граманет; +city::3110040;San Sebastian de los Reyes;S.S. de los Reyes;SS de los Reyes;San Sebastian de los Rejesas;San Sebastian de los Reyes;San Sebastijan de los Rejes;San Sebastián de los Reyes;San-Sebast'jan-de-los-Rees;San-Sebastian-de-los-Rejes;Sanctus Sebastianus Regum;Sanse;san sbastyan dy lws ryys;sheng sai wa si di an de luo si lei ai si;Сан Себастијан де лос Рејес;Сан-Себастиан-де-лос-Рейес;Сан-Себастьян-де-лос-Реєс;سان سباستيان دي لوس رييس;サン・セバスティアン・デ・ロス・レイエス;圣塞瓦斯蒂安德洛斯雷埃斯; +city::3110044;San Sebastian;Donosti;Donostia;Donostia-San Sebastian;Donostia-San Sebastián;Donostio;EAS;La Bella Easo;Saint-Sebastien;Saint-Sébastien;San Sebastian;San Sebastián;San-Sebast'jan;Sanse;Sant Sebastia;Sant Sebastià;Sao Sebastiao;São Sebastião;san sbastyan;sheng sai wa si ti an;Сан-Себастьян;סן סבסטיאן;سان سباستيان;サン・セバスティアン;圣塞瓦斯提安; +city::3110718;Sant Cugat del Valles;Sant Cugat;Sant Cugat del Valles;Sant Cugat del Vallès; +city::3110834;Sant Boi de Llobregat;Sant Boi de Llobregat; +city::3111108;Salamanca;Helmantica;SLM;Salamanca;Salamanka;Salamanko;Salamanque;Salmantica;saramanka;slmnqt;Саламанка;سلمنقة;サラマンカ; +city::3111199;Sabadell;QSA;Sabadell; +city::3111294;Rubi;Rubi;Rubí;Руби; +city::3111933;Reus;REU;Reus;Реус; +city::3112989;Pozuelo de Alarcon;Posuehlo-de-Alarkon;Posuelo-de-Alarkon;Pozolum;Pozuelo;Pozuelo de Alarcon;Pozuelo de Alarcón;Pozuelo de Alarkon;bo su ai luo de ya la er kong;bwzwylw dy alarkwn;posuellodeallaleukon;Позуело де Аларкон;Посуело-де-Аларкон;Посуэло-де-Аларкон;بوزويلو دي الاركون;波苏埃洛德亚拉尔孔;포수엘로데알라르콘; +city::3113209;Pontevedra;PTE;Pontevedra;Pontevedro;pontebedora;Понтеведра;ポンテベドラ; +city::3113236;Ponferrada;PFE;Pomeriada;Ponferada;Ponferado;Ponferrada;bwnfyrada;peng fei la da;ponferada;ponpelada;Понферада;Понферрада;بونفيرادا;ポンフェラーダ;蓬费拉达;폰페라다; +city::3114256;Parla;Parla;barla;pa er la;Парла;بارلا;帕尔拉; +city::3114472;Pamplona;Gorad Pamplona;Iruinea;Iruna;Irunea;Iruña;Iruñea;Lungsod ng Irunea;Lungsod ng Iruñea;PNA;Pampalona;Pampeluna;Pampelune;Pamplona;Pamplonae;Pamplono;Pompaelo;bnblwnt;iruniya;pam po lna;pampalona;pampeullona;pamplwna;pan pu luo na;panpurona;pmplwnh;Горад Памплона;Памплонæ;Памплона;Պամպլոնա;פמפלונה;بنبلونة;پامپلونا;पाम्पलोना;இருனியா;ปัมโปลนา;პამპლონა;パンプローナ;潘普洛納;팜플로나; +city::3114531;Palencia;Gorad Palensija;Liste del villagies locata in Palencia;PCI;Palencia;Palencio;Palensija;Palentzia;Pallantia;Palència;Paléncia;Palência;balnthya;pa lun xi ya;pallensia;palnsya;parenshia;Горад Паленсія;Паленсия;Паленсија;Паленсія;بالنثيا;پالنسیا;パレンシア;帕伦西亚;팔렌시아; +city::3114711;Oviedo;Gorad Aueda;OVD;Ov'edo;Ovedo;Ovetum;Oviedo;Oviedu;Ovieu;Ovijedo;Ovjedas;Ovjedo;Uvieu;Uviéu;abydw;ao wei ye duo;awfyydw;awwydw;obiedo;ovhiyedo;oviedo;oviyeto;xo beiy do;Горад Аўеда;Овиедо;Овиједо;Овьедо;Овєдо;אוביידו;أوفييدو;ابیدو;اوویدو;ओव्हियेदो;ஒவியேதோ;โอเบียโด;ოვიედო;オビエド;奥维耶多;오비에도; +city::3114965;Ourense;OUQ;Orance;Orense;Orenso;Ourense;ourense;Оренсе;オウレンセ; +city::3116025;Mostoles;Gorad Mostales;Monsteles;Mostoles;Mostolesas;Mostolo;mo si tuo lai si;moseutolleseu;mosutoresu;mwstwls;mwstwlys;Горад Мосталес;Мостолес;מוסטולס;موستولس;موستوليس;მოსტოლესი;モストレス;莫斯托莱斯;모스톨레스; +city::3116553;Mollet del Valles;Mollet del Valles;Mollet del Vallès;Mollet del Vallés; +city::3117164;Mataro;Iluro;Mataro;Mataró;ma ta luo;matalo;mataro;matarw brshlwnt;Матаро;ماتارو، برشلونة;मातारो;マタロー;马塔罗;마타로; +city::3117533;Manresa;Manresa;Манреса; +city::3117667;Majadahonda;Majadahonda;Makhadaonda;Maxadahonda;ma ha da weng da;majadahwnda;Махадаонда;ماجاداهوندا;马哈达翁达; +city::3117735;Madrid;Gorad Madryd;La Villa y Corte de Madrid;Los Madriles;Lungsod ng Madrid;MAD;Ma-daik-li;Ma-tet-li;Madrid;Madrid osh;Madridas;Madride;Madridi;Madrido;Madrids;Madril;Madrit;Madrite;Madryt;Madríd;Madrîd;Magerit;Maidrid;Mairil;Makelika;Matritum;Mâ-tet-lî;Mā-dáik-lī;Sanchinarro;ma de li;madarida;madeulideu;madorido;madorido shi;madri;madrid;madrida;madridi;madryd;matrit;mdryd;myadrida;mydrd;Μαδρίτη;Горад Мадрыд;Мaдрид;Мадрид;Мадрид ош;Мадрід;Մադրիդ;מאדריד;מדריד;مادرىد;مادرید;مدريد;میدرد;مەدرید;ܡܕܪܝܕ;मद्रिद;मद्रिद्;माद्रिद;माद्री;म्याड्रिड;মাদ্রিদ;ਮਾਦਰੀਦ;ମାଡ୍ରିଦ;மத்ரித்;ಮಡ್ರಿಡ್;മാഡ്രിഡ്;มาดริด;མ་ད་རིད།;မဒရစ်မြို့;მადრიდი;ማድሪድ;マドリード;マドリード市;馬德里;马德里;마드리드; +city::3117814;Lugo;LUY;Lugo;lwghw;rugo;Луго;لوغو;ルーゴ; +city::3118150;Logrono;Gorad Lagron'ja;Logron'jo;Logron'o;Logronh;Logronio;Logronjas;Logronjo;Logrono;Logronu;Logronyo;Logroño;Logroñu;Lucronium;RJL;lgrnyw;lo koryo;logeulonyo;logron'yo;logronyo;luo ge luo ni ao;lwghrwnyw;lwgrwnw;lwgrwnyw;roguronyo;Λογρόνιο;Горад Лагронья;Логроньйо;Логроньо;Логроњо;Լոգրոնյո;לוגרוניו;لوغرونيو;لوگرونو;لگرنیو;लोग्रोंयो;लोग्रोन्यो;โลโกรโญ;ログローニョ;洛格罗尼奥;로그로뇨; +city::3118514;Lleida;ILD;Ilerda;Ilerdo;Lerida;Lheida;Lhèida;Ljeida;Lleida;Lérida;lyydh;rerida;ryeida;Љеида;Лерида;ליידה;リェイダ;レリダ; +city::3118532;Leon;Ciuda de Llion;Ciudá de Llión;LEN;Leon;Leono;León;Lleo;Lleon;Lleó;Lleón;lywn;reon;Леон;ليون;レオン; +city::3118594;Leganes;Gorad Leganes;Legamar;Leganes;Leganesas;Leganés;lai jia nei si;leganeseu;lyjanys;reganesu;Горад Леганес;Леганес;ليجانيس;レガネス;萊加內斯;레가네스; +city::3118848;Las Rozas de Madrid;Las Rozas;Las Rozas de Madrid;Las-Rosas-de-Madrid;Rozae Matritenses;Rozas de Madrid;la si luo sa si de ma de li de;las rwzas dy mdryd;Лас-Росас-де-Мадрид;Розас де Мадрид;لاس روزاس دي مدريد;拉斯罗萨斯德马德里德; +city::3119841;A Coruna;A Coruna;A Coruña;A Cruna;A Cruña;A Koruna;A-Korun'ja;Akoruna;Akoruņa;Caronium;Coruna;Corunako;Corunha;Corunya;Coruña;Coruñako;Corùna;In Coruna;In Coruña;Koruna;Korunjo;LCG;La Corogne;La Coronha;La Coruna;La Coruña;La Koruna;La Korunja;La Korunya;La-Karun'ja;La-Korun'ja;La-Korunya;The Groyne;la ke lu ni ya;la kwrwnya;lakolunya;lakrwnya;xa ko ruya;А Коруња;А-Корунья;Коруња;Ла Коруня;Ла-Карунья;Ла-Корунья;Լա Կորունա;א קורוניה;اے کرونا;لا كورونيا;لا کۆرونیا;لاکرونیا;อาโกรูญา;ლა-კორუნია;ア・コルーニャ;拉科魯尼亞;라코루냐; +city::3120304;Irun;Irun;Irun-Uranzu;Irún;Irún-Uranzu;yi lun;Ирун;伊倫; +city::3120514;Huesca;Gorad Uehska;Gueesca;Güesca;HSK;Huesca;Hueska;Osca;Oska;Uehska;Uesca;Ueska;hwyska;ueseuka;uesuka;wei si ka;wshqt;Òsca;ʼwʼsqh;Горад Уэска;Уеска;Уэска;אואסקה;هوئسکا;وشقة;ウエスカ;韦斯卡;우에스카; +city::3120619;L'Hospitalet de Llobregat;Hospitalet de Llobregat;Ospitalet-de-L'obregat;l'Hospitalet;l'Hospitalet de Llobregat;Оспиталет-де-Льобрегат; +city::3121007;Getxo;Getxo;Guecho; +city::3121070;Guadalajara;GDU;Guadalajara;Gvadalaharo;Gvadalakhara;guadarahara;Гвадалахара;グアダラハラ; +city::3121145;Granollers;Granollers; +city::3121424;Gijon;Chichonas;Gigia;Gijon;Gijón;Gorad Khikhon;Hihono;Khikhon;Kixoi;QIJ;Xixon;Xixón;gyjwn;hihon;hyhwn;khi khxn;khikhoni;khykhn;khykhwn;kikon;xi hong;Ĥiĥono;Горад Хіхон;Хихон;Хіхон;חיחון;خيخون;خیخن;خیخۆن;گیجون;கிகோன்;คีคอน;ხიხონი;ヒホン;希洪;히혼; +city::3121437;Getafe;Chetafe;Chetafė;Getafe;Gorad Khetafeh;Khetafe;Tituacia;Xetafe;he ta fei;hetafe;hetape;khe tafe;khytafy;Χετάφε;Горад Хетафэ;Хетафе;خيتافي;เคตาเฟ;ヘタフェ;赫塔费;헤타페; +city::3121456;Girona;GRO;Gerona;Gerone;Girona;Girono;Gérone;Kherona;Zherona;jirona;Ĝirono;Жерона;Херона;ジローナ; +city::3121960;Fuenlabrada;Fons Laborata;Fuehnlabrada;Fuenlabrada;Gorad Fuehnlabrada;feng la fu la da;fuenraburada;fwynlabrada;Горад Фуэнлабрада;Фуенлабрада;Фуэнлабрада;פואנלברדה;فوينلابرادا;フエンラブラダ;丰拉夫拉达; +city::3123329;El Prat de Llobregat;Al-Prat-da-Ljubragat;Ehl' Prat;Ehl'-Prat-de-L'obregat;El Prat de Llobregat;Prat de LJobregat;Prat de Llobregat;Prat del Llobregat;ai er pu la te de e fu lei jia te;al bart dy ywbryghat;el Prat;el Prat de Llobregat;Ал-Прат-да-Любрагат;Прат де Љобрегат;Эль Прат;Эль-Прат-де-Льобрегат;إل بارت دي يوبريغات;アル・プラ・ダ・リョブレガート;埃尔普拉特德略夫雷加特; +city::3123493;Ferrol;El Ferrol;Ferrol; +city::3124132;Cuenca;CEJ;Conca;Cuenca;Cuenca i Spania;Gorad Kuehnka;Kouen'ka;Kuehnka;Kuenka;Kvenko;ke wng ka;ku'ainaka;ku'ainka;kuengka;kuenka;kun ka;kwynka;qwnkt;Κουένκα;Горад Куэнка;Куенка;Куэнка;Կուենկա;קואנקה;قونكة;کوئنکا;کوینکا، ہسپانیہ;कुऐनका;ਕੁਐਂਕਾ;เกวงกา;კუენკა;クエンカ;昆卡;쿠엥카; +city::3124408;Coslada;Coslada;Coslata;Koslada;Koslado;ke si la da;kosurada;kwslada;Кослада;كوسلادا;コスラーダ;科斯拉达; +city::3124569;Cornella de Llobregat;Cornella de Llobregat;Cornellà de Llobregat; +city::3124794;Collado-Villalba;Collado Villalba;Kol'jado-Vil'jal'ba;Кольядо-Вильяльба; +city::3124964;Ciudad Lineal;Barrio Ciudad Lineal;Ciudad Lineal;Ciudad Lineal distritu;Linia Urbo;swydad lynyal;سويداد لينيال;シウダー・リネアル; +city::3125239;Chamartin;Chamartin;Chamartin de la Rosa;Chamartín;Chamartín de la Rosa;Distrito Chamartin;Distrito Chamartín; +city::3125897;Castelldefels;Castelldefels; +city::3127461;Burgos;Bourgos;Burgi;Burgos;Burgosa;Burgosas;Burgoso;Burgus;Burqos;Gorad Burgas;RGS;brghsh;brgws;bu er ge si;buleugoseu;bur kos;burgosa;burugosu;bwrgws;Μπούργος;Бургос;Горад Бургас;Բուրգոս;בורגוס;برغش;برگوس;بورگوس;बुर्गोस;บูร์โกส;ブルゴス;布尔戈斯;부르고스; +city::3128026;Bilbao;BIO;Bil'bao;Bilbao;Bilbau;Bilbaum;Bilbaw;Bilbo;Bilbo / Bilbao;Bilmpao;El Bocho;Gorad Bil'baa;bi er ba e;bil ba xo;bilba'o;bilbao;birubao;blbaw;bylbaw;bylbayw;Μπιλμπάο;Билбао;Бильбао;Більбао;Горад Більбаа;Բիլբաո;בילבאו;بلباو;بیلبائو;بیلباو;बिल्बाओ;บิลบาโอ;ბილბაო;ビルバオ;毕尔巴鄂;빌바오; +city::3128760;Barcelona;BCN;Barcellona;Barcellonn-a;Barcelona;Barcelone;Barcelono;Barceluna;Barcelůna;Barcełona;Barcillona;Barcino;Barkelone;Barseloana;Barselon;Barselona;Barselonae;Barselono;Barseluna;Barseluona;Barselóna;Barslon-a;Barsélona;Bartzellona;Bartzelona;Barzelona;Barçellonn-a;Barċellona;Gorad Barselona;Lungsod ng Barcelona;ba sa long na;ba sai luo na;baleusellona;balsaleana;bar se lon a;barasilona;barselona;barsilona;barslwn;barslwna;barsylwna;barsێlۆna;baruserona;brshlwnt;brshlwnہ;brzlwnh;la Ciudad Condal;parcelona;Βαρκελώνη;Барселон;Барселонæ;Барселона;Барселоно;Горад Барселона;Բարսելոնա;בארצעלאנע;ברצלונה;بارسلون;بارسلونا;بارسیلونا;بارسێلۆنا;برشلونة;برشلونہ;बार्सिलोना;बार्सेलोना;বার্সেলোনা;ਬਾਰਸੀਲੋਨਾ;பார்செலோனா;ബാഴ്സലോണ;บาร์เซโลนา;ບາກເຊໂລນ;བྷར་སེ་ལོ་ནཱ།;ဘာစီလိုနာမြို့;ბარსელონა;ባርሴሎና;バルセロナ;巴塞罗那;巴薩隆拿;바르셀로나; +city::3129028;Badalona;Badalona;Gorad Badalona;ba da lon a;ba da luo na;badallona;badalona;badalwna;badarona;Μπαδαλόνα;Бадалона;Горад Бадалона;Բադալոնա;بادالونا;बाडालोना;บาดาโลนา;ბადალონა;バダロナ;巴达洛纳;바달로나; +city::3129135;Aviles;Aviles;Avilesas;Avileso;Avilés;a wei lai si;abilleseu;abiresu;abyls;afylys;awyls;Авилес;Авілес;آبیلس;أفيليس;اویلس;アビレス;阿维莱斯;아빌레스; +city::3129136;Avila;AVJ;Abela;Abila;Abula;Aebura;Albicella;Avela;Avila;Avila de los Caballeros;Avila de los Leales;Avila de los Santos;Avila del Rey;Avilo;Obila;abira;Àvila;Ávila;Ávila de los Caballeros;Ávila de los Leales;Ávila de los Santos;Ávila del Rey;Авила;アビラ; +city::3129636;Arganda;Arganda;Arganda del Rey;Арганда; +city::3129857;Aranjuez;Aranchuesas;Aranguesia;Aranjuez;Arankhuehs;Arankhues;Arankhuez;a lan hu ai si;alanhueseu;aranfuesu;arnkhwyth;Аранхуез;Аранхуес;Аранхуэс;ארנחואס;آرنخويث;アランフエス;阿兰胡埃斯;아란후에스; +city::3130564;Alcorcon;Al'korkon;Alcorcon;Alcorconum;Alcorcón;Alkorkon;Alkorkonas;Alkorkono;Gorad Al'karkon;a er ke er kong;alkoleukon;alkwrkwn;arukorukon;Алкоркон;Алькоркон;Горад Алькаркон;ألكوركون;アルコルコン;阿尔科尔孔;알코르콘; +city::3130583;Alcobendas;Al'kobendas;Alcobendas;Alcovendae;Alkobendas;Alkobendasas;a er ke wen da si;alkobendaseu;alkwbyndas;arukobendasu;Алкобендас;Алькобендас;ألكوبينداس;アルコベンダス;阿尔科文达斯;알코벤다스; +city::3130616;Alcala de Henares;Al'kala-de-Ehnares;Al'kala-de-Enares;Alcala de Henares;Alcalá de Henares;Alcála de Henares;Alkala de Enares;Alkala de Henaresas;Alkala nte Enares;Compluto;Complutum;Cómpluto;Gorad Al'kala-deh-Ehnarehs;ai na lei si bao;alkala dy aynarys;alkalladeenaleseu;arukara・de・enaresu;xal ka lade xe na res;Αλκαλά ντε Ενάρες;Алкала де Енарес;Алькала-де-Енарес;Алькала-де-Энарес;Горад Алькала-дэ-Энарэс;אלקלה דה אנארס;ألكالا دي إيناريس;الكالا دى ايناريس;อัลกาลาเดเอนาเรส;ალკალა-დე-ენარესი;アルカラ・デ・エナーレス;埃纳雷斯堡;알칼라데에나레스; +city::6362987;Ceuta;Ceuta;JCU;Seuta;Сеута; +city::6618856;Santutxu;; +city::328689;Shashemene;Sciasciamanna;Sciasciamanne;Shashamana;Shashamane;Shashamani;Shashamanna;Shashamanni;Shashamané;Shashemene;Shashemenē;Shāshamani;ሻሸመኔ; +city::330186;Nazret;Adama;Hadama;Nazareth;Nazret;Nazreth;Nazrēt; +city::331180;Mek'ele;MQX;Macalle;Macallè;Makale;Makalle;Maqale;Maqalle;Maqalē;Mehkehle;Mek'ele;Mekele;Mekelie;Mekelle;Mek’ele;me khele;mo ke lai;mqlh;Мекеле;Мэкэле;מקלה;میکیلے;เมเคเล;መቀሌ;默克萊; +city::333373;Kombolcha;Cambolcia;Combolcha;Combolcia;DSE;Kambolcha;Kambolchā;Kembolcha;Kombol'cha;Kombolcah;Kombolcha;Комбольча; +city::333772;Jimma;Djimma;Gima;Gimma;JIM;Jima;Jimma;Jīma; +city::333795;Jijiga;Djidjiga;Djigdjiga;Dschidschiga;Dzhidzhiga;Dzidziga;Dżidżiga;Džidžiga;Giggiga;Giggigga;Gigiga;JIJ;Jigjiga;Jigjigga;Jijiga;gygygh;ji ji jia;jijiga;jyjyga;Ĝiĝiga;Джиджига;גיגיגה;جیجیگا;ጅጅጋ;吉吉加;지지가; +city::334227;Inda Silase;Enda Salassie;Enda Selase;Enda Selassie;Enda Selassye;Enda Sellassie;Endā Selāsē;Inda Selassie;Inda Silase;Inda Silasē;SHC;Shire Inda Silase;Shirē Inda Silasē;Ynda Syllase; +city::335035;Harar;Charar;Gorad Kharehr;Harar;Harar Jugol;Hararas;Harer;Harrar;Hārar;Hārer;Kharar;Kharehr;Kharer;ha lei er;halaleu;harara;harari;hararu;hrr;Χαράρ;Горад Харэр;Харар;Харер;Харэр;הרר;هرر;ہرار;हरार;ਹਾਰਰ;ჰარარი;ሐረር;ハラール;哈勒尔;하라르; +city::336014;Gondar;GDQ;Gondar;Gondehr;Gonder;Gonderas;Gondero;Gwender;Gwonder;Nkontair;gondaleu;gondaru;gong de er;gwndr;Γκόνταιρ;Гондар;Гондэр;גונדר;ጎንደር ከተማ;ゴンダール;貢德爾;곤다르; +city::338832;Dire Dawa;D'ire Daua;DIR;Daredawa;Dirdabo;Dirdabò;Dire Daba;Dire Daua;Dire Dawa;Dire Dewa;Dire-Daoua;Direaoua;Diredavy;Dirediua;Diré-Daoua;Dirē Dawa;D’ire Daua;dile dawa;dyrt dawa;Диредавы;דירה דאווה;ديرة داوا;ድሬዳዋ;디레 다와; +city::339219;Dese;Dase;Dasē;Dese;Desje;Dessa;Dessi;Dessie;Dessye;Desē;Desė; +city::339666;Bishoftu;Biscioftu;Biscioftù;Bishoftu;Debra Zeit;Debre Zeit;Debre Zeyit;Debre Zeyt; +city::339708;Debre Mark'os;DBM;Dabra Marko's;Dabra Mārko’s;Dabra-7arqos;Dabra-7ārqos;Debra Marcos;Debra Markos;Debre Marcos;Debre Mark'os;Debre Mark’os;Moncorer;Monkorer; +city::339734;Debre Birhan;Dabra Berham;Dabra-Berhan;Dabra-Berhān;Debra Berham;Debra Berhan;Debra Birhan;Debra Brehan;Debre Berhan;Debre Birhan; +city::342884;Bahir Dar;BJR;Babardur Georgis;Bachr-Ntar;Bahar;Bahar Dar;Bahar Dar Ghiorghis;Baher Dar;Baherdar-Giyorgis;Bahir Dar;Bahr Dar;Bahrdar Giyergio;Bahrdar Giyorgis;Bahyr Dar;Bakhir Dar;Bakhr-Dar;Bāherdār-Giyorgis;ba he da er;bahileudaleu;bahr-dari;bhr dar;bhr dr;Μπαχρ-Νταρ;Бахир Дар;Бахр-Дар;בהר דר;بحر دار;ბაჰრ-დარი;ባሕር-ዳር;巴赫達爾;바히르다르; +city::343137;Hawassa;AWA;Avase;Awasa;Awassa;Hawassa;Āwasa;ʼwwsh;Авасе;אווסה; +city::343663;Arba Minch;AMH;Arba Mench;Arba Minch;Arba Mintch;Arba-Mynch;Gantar;Minghi;Арба-Мынч;አርባ ምንጭ; +city::344979;Addis Ababa;ADD;Addis Ababa;Addis Abbaba;Addis Abeba;Addis-Abeba;Addis-Abebae;Addisz-Abeba;Adis Abeba;Adis-Abebo;Adisabeba;Adís Abeba;Antis Ampempa;Neanthopolis;a di si a bei ba;adisa ababa;adiseuababa;adisuabeba;adys ababa;Ādīs Ābeba;Αντίς Αμπέμπα;Аддис-Абебæ;Аддис-Абеба;Адис Абеба;Ադիս Աբեբա;אדיס אבבה;آدیس آبابا;أديس أبابا;ئەددىس -ئەبىبە;अदिस अबाबा;አዲስ አበባ;アディスアベバ;阿迪斯阿貝巴;아디스아바바; +city::345149;Adigrat;; +city::632453;Vantaa;Gorad Vantaa;Vanda;Vanta;Vantaa;Vantania;Vantā;banta;fanta;vhanta;vu~anta;wan ta;wanta;wnth;Βάνταα;Ванта;Вантаа;Горад Вантаа;ונטה;فانتا;وانتا;व्हंटा;ვანტაა;ヴァンター;万塔;반타; +city::632978;Vaasa;Gorad Vasa;Nikolainkaupunki;Nikolaistad;VAA;Vaasa;Vas;Vasa;Wasa;basa;fasa;vu~asa;wa sa;wasa;Βάασα;Вааса;Васа;Горад Васа;ואסה;فآسا;وآسا;วาซา;ヴァーサ;瓦萨;바사; +city::633679;Turku;Abo;Aboa;Gorad Turku;TKU;Tourkou;Turcu;Turku;Turkù;Turu;Túrcú;to~uruku;trkw;tu er ku;tu rku;tuleuku;turku;twrkw;twrqw;Åbo;Τούρκου;Горад Турку;Турку;Տուրկու;טורקו;ترکو;توركو;تورکو;तुर्कू;টুর্কু;ตุรกุ;တားကူးမြို့;ტურკუ;ቱርኩ;トゥルク;图尔库;圖爾庫;투르쿠; +city::634963;Tampere;Gorad Tampereh;TMP;Tammerfors;Tammerforsia;Tampere;Tampereh;Tamperė;amabere;tambyry;tampele;tampere;tamprh;tan pei lei;tanpere;tmprh;Τάμπερε;Горад Тамперэ;Тампере;Տամպերե;טמפרה;تامبيري;تامپره;تامپیرے;ٹیمپیر;तांपेरे;আমবেরে;ตัมเปเร;ტამპერე;タンペレ;坦佩雷;탐페레; +city::640999;Pori;Arctopolis;Berneborg;Bjoerneborg;Björneborg;Bërneborg;Gorad Pory;POR;Pori;Poris;bo li;bwry;poli;pori;pwry;Πόρι;Горад Поры;Пори;Порі;Պոռի;פורי;بوري;پوری;ポリ;波里;포리; +city::643492;Oulu;Gorad Oulu;OUL;Ooulou;Oulo;Oulu;Oulu linn;Ovlu;Oŭlo;Uleaborg;Uleoborg;Uleåborg;Uloa;ao lu;awlu;awlw;awlw fnland;awwlw;oullu;ouru;xow lu;Όουλου;Горад Оўлу;Овлу;Оулу;אואולו;أولو;اوؤلو;اولو، فنلاند;اولُو;โอวลุ;オウル;奥卢;奧盧;오울루; +city::648900;Lappeenranta;Gorad Lapeehnranta;LPP;Lapeenranta;Lapenrand;Lapenranta;Lappeehnranta;Lappeenranta;Lappeenranta linn;Lappenranta;Lapēnranta;Villmanstrand;la peng lan ta;la pu lan da;labynrnta;lapenlanta;laprnta;lapynranta;lpyn rnta;rappenranta;Λαπεενράντα;Горад Лапеэнранта;Лапенранта;Лаппеенранта;Лаппенранта;Лаппеэнранта;לאפנראנטה;لابينرنتا;لاپرنتا;لاپینرانتا;لپین رنتا;ლაპეენრანტა;ラッペーンランタ;拉彭兰塔;拉普兰大;라펜란타; +city::649360;Lahti;Gorad Lakhty;Lachti;Laht;Lahti;Lahtis;Lakhti;Laxti;QLF;la he di;lah ti;lahty;lakhty;lati;rahati;Λάχτι;Горад Лахты;Лахти;Лахті;לאהטי;لاختی;لاهتي;لاہتی;ลาห์ตี;ラハティ;拉赫蒂;라티; +city::650224;Kuopio;KUO;Kouopio;Kuopijas;Kuopio;Kuopio linn;ko peiyw;ku ao pi ao;kuopio;kwwbyw;kwwpyw;qwpyw;Κουόπιο;Куопио;Куопіо;קופיו;كووبيو;کؤوپیو;کووپیو;โกเปียว;კუოპიო;クオピオ;庫奧皮奧;쿠오피오; +city::650946;Kotka;Gorad Kotka;Kotk;Kotka;Kotka linn;Kotko;Kòtka;Ruotsinsalmi;Svensksund;ke te ka;koska;kotoka;kwtka;qwtqh;Κότκα;Горад Котка;Котка;קוטקה;كوتكا;کوتکا;コトカ;科特卡;콧카; +city::655194;Jyvaeskylae;Gorad Juvjaskjulja;Granivicus;Gyvaskyla;JYV;Jiveskile;Jjuvjaskjulja;Juevaeskuelae;Juvaskula;Juveskiule;Juveskiulė;Juvjaskjulja;Jyvaeskylae;Jyvaeskylae linn;Jyvaskyla;Jyväskylä;Jyväskylä linn;Jüväskülä;iwibeseukwille;jywaskyla;yu wei si qu lai;yuvu~asukyura;ywaskwla;ywfaskwla;yybsqylh;yywaskyla;Γυβάσκυλα;Јивескиле;Горад Ювяскюля;Йювяскюля;Йӱвӓскӱлӓ;Ювяскюля;ייבסקילה;جیواسکیلا;يوفاسكولا;یواسکولا;ییواسکیلا;ยูแวสกูแล;ユヴァスキュラ;于韦斯屈莱;이위베스퀼레; +city::655808;Joensuu;JOE;Joehnsu;Joehnsu osh;Joehnsuu;Joensu;Joensuu;Joensuu linn;Joensū;Jogensu;Jovensuu;Ostia Carelorum;Yoensu;jwynsw;yoensu;yue en su;ywynsw;Ёэнсу;Јоенсу;Йоенсуу;Йоэнсу ош;Йоэнсуу;יואנסואו;جوئنسو;يوينسو;یوئنسو;ヨエンスー;约恩苏;요엔수; +city::658225;Helsinki;Elsin'ki;Elsinki;Elzinki;Gel'sinki;Gorad Khel'sinki;HEL;Heilsinci;Heilsincí;Hel'sinki;Helsenkis;Helsingfors;Helsingi;Helsingia;Helsinki;Helsinkis;Helsinkium;Helsinko;Helsinky;Helsinqui;Helsinquia;Helsset;Helsínquia;Helsînkî;Helsėnkis;Hèlsinki;Khel'sinki;Khel'sinki osh;Khelsinki;Khelzinki;Lungsod ng Helsinki;Stadi;Xelsinki;Xélsinki;elcinki;hailasiki;he er xin ji;helasinki;helsingki;helsinki;herushinki;hlsnky;hlsnqy;hlsynky;hlsynqy;hylsynky;Èlzinki;Ħelsinki;Ελσίνκι;Гельсінкі;Горад Хельсінкі;Хелзинки;Хелсинки;Хельсинки;Хельсинки ош;Ҳелсинкӣ;Һel'sinki;Һельсинки;Հելսինկի;הלסינקי;העלסינקי;هلسنكي;هلسنڪي;هلسینکی;هيلسينكى;هیلسینکی;ھێلسینکی;ہلسنکی;ہیلسنکی;ܗܠܣܢܩܝ;हेलसिंकी;हेल्सिन्की;হেলসিঙ্কি;ਹੈਲਸਿੰਕੀ;எல்சிங்கி;ಹೆಲ್ಸಿಂಕಿ;ഹെൽസിങ്കി;เฮลซิงกิ;ཧེལ་སིན་ཀི།;ဟယ်လ်ဆင်ကီမြို့;ჰელსინკი;ሄልሲንኪ;Ḥélsinki;ヘルシンキ;赫尔辛基;赫爾辛基;헬싱키; +city::660158;Espoo;Ehspoo;Esbo;Espo;Espoo;ai si bo;esupo;Έσποο;Еспо;Еспоо;Эспоо;ესპოო;エスポー;埃斯波; +city::2198148;Suva;Gorad Suva;SUV;Souba;Souva;Sufa;Suv;Suva;Suva City;Suvae;Suvo;Suwa;cuva;su wa;suba;subha;suva;suwa;swbh;swfa;swwa;Σούβα;Горад Сува;Сувæ;Сува;Սուվա;סובה;سوفا;سووا;सुवा;সুভা;ਸੂਵਾ;சுவா;ซูวา;སུ་ཝ།;სუვა;ሱቫ;スバ;蘇瓦;수바; +city::2204506;Lautoka;Lautok;Lautoka;lao tuo ka;lautoka;lawtwka;lutokka;lwtwqh;rautoka;Лаутока;לוטוקה;لاوتوكا;لاوتوکا;लौतोका;லூடோக்கா;ラウトカ;劳托卡;라우토카; +city::2967849;Vitry-sur-Seine;Port-de-Marat;Vitri sir Sen;Vitri sjur Sen;Vitri-sjur-Sen;Vitry;Vitry-sur-Seine;biteuliswileusen;fytry swr syn;sai na he pan wei ti;vu~itori=shuru=senu;wytry swr sn;wytry-swr-sn;Витри сир Сен;Витри сюр Сен;Витри-сюр-Сен;Вітрі-сюр-Сен;فيتري سور سين;ویتری سور سن;ویتری-سور-سن;ヴィトリー=シュル=セーヌ;塞纳河畔维提;비트리쉬르센; +city::2968254;Villeurbanne;Gorad Vijorban;Vijjorban;Vilerban;Vilerbana;Vilerbanas;Vilerbāna;Viljurban;Villerbann;Villeurbanne;billoeleuban;fylwrban;vilerbani;vu~iruruban'nu;wei lei ban;wei lei he peng na;wywrbn;Вийёрбан;Вилербан;Вилюрбан;Віллербанн;Горад Віёрбан;וילרבאן;فيلوربان;ولےاربین;ویوربن;ვილერბანი;ヴィルールバンヌ;维勒班;维嘞合朋纳;빌뢰르반; +city::2969679;Versailles;Berceau-de-la-Liberte;Berceau-de-la-Liberté;Bersallies;Versailles;Versaj;Versajlo;Versal';Versalhes;Versalia;Versaliae;Versalis;Versalles;Wersal;XVE;beleusayu;vu~erusaiyu;Βερσαλλίες;Версай;Версаль;ורסאי;ヴェルサイユ;베르사유; +city::2970072;Venissieux;Venis'e;Venis'jo;Venisje;Venissieux;Venissioex;Vènissiœx;Vénissieux;benisioe;vu~enishu;wei ni xi e;wnysyw;Венисье;Венисьё;Венисје;Венісьє;ونیسیو;ヴェニシュー;維尼西厄;베니시외; +city::2970777;Vannes;Dariorigum;Gwened;VNE;Van;Vanas;Vann;Vannes;Venetens;ban;fan;vani;vu~an'nu;wa ne;wns;Ван;Ванн;באניס;ואן;فان;ونس;ვანი;ヴァンヌ;瓦讷;반; +city::2971053;Valence;VAF;Valenca;Valence;Valencia;Valença;valansa;vu~aransu;वलांस;ヴァランス; +city::2971549;Troyes;QYR;Trecae;Troa;Troias;Troua;Troyes;Trua;Tròias;te lu wa;teulua;thraw;torowa;trwa;trwa fransh;Τρουά;Троа;Труа;טרואה;تروئے;تروا;تروا، فرانسه;ทรัว;トロワ;特鲁瓦;트루아; +city::2972191;Tours;Augusta-Turonum;Gorad Tur;La Reunion-du-Nord;La Réunion-du-Nord;TUF;Teurgn;Tors;Tour;Tours;Tur;Tura;Turas;Turones;Tūra;Tūras;to~uru;tu er;tuleu;tura;twr;Τουρ;Горад Тур;Тур;Տուր;טור;تور;ٹورز;टुर;तुर;ტური;トゥール;图尔;투르; +city::2972284;Tourcoing;Terkoeje;Toerkonje;Tourco;Tourcoing;Turcundium;Turkoan;Turkuehn;Turkuen;XTN;to~urukowan;tu er kuan;tuleukuaeng;turk wng;twrkwan;twrkwyngh;Туркоан;Туркуен;Туркуэн;توركوينغ;تورکوآن;ٹورکونگ;ตูร์กวง;トゥールコワン;图尔宽;투르쿠앵; +city::2972315;Toulouse;Gorad Tuluza;Lapangan Terbang Blagnac;TLS;Tolosa;Tolosa Okzitania;Tolosa de Francia;Tolosa de Llenguadoc;Toloxa;Toloza;Toulouse;Toulouz;Tołoxa;Tuluz;Tuluza;Tuluzae;Tuluzo;Tulūza;Tólóza;to~uruzu;tu lu zi;tu lus;tullujeu;tulujha;tulus;tuluza;twlwz;Τουλούζ;Горад Тулуза;Тулузæ;Тулуза;Тулузо;Թուլուզ;טולוז;تولوز;तुलूज़;तुलूझ;ਟੁਲੂਜ਼;துலூஸ்;ടൂളൂസ്;ตูลูซ;ཊོའུ་ལོའུ་སེ།;ტულუზა;ቱሉዝ;トゥールーズ;圖盧茲;圖魯茲;툴루즈; +city::2972328;Toulon;Gorad Tulon;Port-la-Montagne;TLN;Telo Martius;Tolo;Tolon;Tolone;Toló;Tolón;Toulon;Toulon-sur-Mer;Tulon;Tulona;Tulonas;Tuluni;to~uron;tu lng;tu lun;tulam;tullong;tulom;tulon;twlwn;Τουλόν;Горад Тулон;Тулон;Տուլոն;טולון;تولون;طولون;तुलाँ;तुलों;துலோன்;ടൂളാൻ;ตูลง;ტულონი;トゥーロン;土伦;土倫;툴롱; +city::2973385;Tarbes;Tarb;Tarba;Tarbas;Tarbe;Tarbes;XTB;ta bu;taleubeu;tarb;tarubu;Ταρμπ;Тарб;تارب;ཊར་བེ།;タルブ;塔布;타르브; +city::2973783;Strasbourg;Argentoratum;Estrasborg;Estrasbou;Estrasburg;Estrasburgo;Estrasburgu;Gorad Strasbur;Lungsod ng Strasbourg;SXB;Sjtraasburg;Straasburch;Straasbuurich;Straatsburg;Strasborg;Strasborgh;Strasbourg;Strasbourgo;Strasbura;Strasburas;Strasburg;Strasburgo;Strasburgu;Strasburk;Strasburq;Strasbwrg;Strasbôrg;Strasbūra;Strasbūras;Strassborg;Strassbourg;Strassburg;Straszburg;Strazbur;Strazburg;Strazburgu;Straßborg;Straßburg;Strażburgu;Stroatsburg;Stroosburi;Stroossbuerg;Strossburg;Strǣtburg;astrasbwrg;s thra sbur;satarasabaraga;seuteulaseubuleu;si te la si bao;stiraspurk;strasabarga;strasaborga;strasaburga;strasbwrg;strasbwrgh;strsbwrg;sutorasuburu;Štrasburg;Štrasburk;Στρασβούργο;Горад Страсбур;Стразбур;Страсбург;Ստրասբուրգ;שטראסבורג;שטרסבורג;استراسبورگ;ستراسبورغ;ستراسبورگ;شٹراسبرگ;स्ट्रासबर्ग;स्त्रासबुर्ग;ਸਟਰਾਸਬਰਗ;સ્ટ્રાસબોર્ગ;ஸ்திராஸ்பூர்க்;സ്ട്രാസ്ബർഗ്;สทราซบูร์;སི་ཐི་རཱ་སི་བུར།;სტრასბური;ስትራዝቡርግ;ストラスブール;斯特拉斯堡;스트라스부르; +city::2975921;Sartrouville;Sartrouville;Sartruvil;Sartruvil';sa te lu wei er;saleuteulubil;sartrwfyl;sartrwwyl;sarutoruvu~iru;srtrwwyl;Сартрувил;Сартрувиль;Сартрувіль;سارتروفيل;سارتروویل;سرتروویل;サルトルーヴィル;薩特魯維爾;사르트루빌; +city::2976043;Sarcelles;Sarcelles;Sarcelles-Lochere;Sarcelles-Lochère;Sarsel;Sarsel';sa er sai lei;saleusel;sarsl;sarsyl;saruseru;srsl;Сарсел;Сарсель;סרסל;سارسل;سارسيل;سرسل;サルセル;薩爾塞勒;사르셀; +city::2977295;Saint-Quentin;Egalite-sur-Somme;Egalité-sur-Somme;Linon-sur-Somme;Saint-Quentin;Somme-Libre; +city::2977921;Saint-Nazaire;Fanum Sancti Nazarii in Sinnuario;SNR;Sain-Nazair;Saint-Nazaire;Sant-Nazer;Sen Nazer;Sen Nazeras;Sen-Nazer;cen nacer;saengnajeleu;san=nazeru;sheng na ze er;sn nzr;sn-nzr;Σαιν-Ναζαίρ;Сен Назер;Сен-Назер;سن نزر;سن-نزر;سینٹ-نظارے;சென் நசேர்;แซ็ง-นาแซร์;サン=ナゼール;圣纳泽尔;생나제르; +city::2978179;Saint-Maur-des-Fosses;Saint-Maur;Saint-Maur-des-Fosses;Saint-Maur-des-Fossés;Saint-Maur-les-Fosses;Saint-Maur-les-Fossés;Sen Mor de Fose;Sen-Mor-de-Fosse;Vivant-sur-Marne;saengmoleudepose;san mwr dyh fwsyh;san=moru=de=fosse;sheng mo dai fu sai;sn mwr dfwsh;sn-mr-d-fwsh;Сен Мор де Фосе;Сен-Мор-де-Фоссе;سان مور ديه فوسيه;سن مور دفوسه;سن-مر-د-فوسه;سینٹ-موڑ-دس-فوسسس;サン=モール=デ=フォッセ;圣莫代福塞;생모르데포세; +city::2978640;Saint-Malo;Commune-de-la-Victoire;DNR;Maclovium;Mont-Mamet;Port-Malo;Sain-Malo;Saint Malo;Saint Mâlo;Saint-Malo;Sant-Malou;Sant-Maloù;Sen Malo;Sen-Malo;Senmalo;St-Malo;saengmallo;san malw;sen-malo;sheng ma luo;sn mlw;sn-mlw;Σαιν-Μαλό;Сен Мало;Сен-Мало;סן-מלו;سان مالو;سن ملو;سن-ملو;سینٹ-ملو;แซ็ง-มาโล;სენ-მალო;サン・マロ;圣马洛;생말로; +city::2980291;Saint-Etienne;Armes-Ville;Canton-d'Armes;Commune-d'Armes;EBU;Libre-Ville;Lungsod ng Saint-Etienne;Lungsod ng Saint-Étienne;Saint-Etien;Saint-Etienne;Saint-Étienne;Sainte;Sainté;Sanctus Stephanus de Furano;Sankta-Stefano;Sant Esteve;Sant Estève;Sant-Etieve;Sant-Etiève;Sent Etien;Sent Etjen;Sent Etjenas;Sent-Ehc'en;Sent-Eht'en;Sent-Et'en;Sent-Etyen;Sentetjena;Sentetjēna;St Etienne;St Étienne;saengtetien;san=techien'nu;san=tetien'nu;sant atyan;senta-etyena;sheng ai di an;sn-atyn;snt atyn;Σαιντ-Ετιέν;Сент Етиен;Сент Етјен;Сент-Етьєн;Сент-Этьен;Сент-Эцьен;Սենտ Էտիեն;סנט אטיין;سانت إتيان;ساں اتین;سن-اتین;سنت اتین;سینٹ-ایٹیینے;सेंत-एत्येन;แซ็งเตเตียน;სენტ-ეტიენი;サン=テチエンヌ;サン=テティエンヌ;圣艾蒂安;생테티엔; +city::2980916;Saint-Denis;Kamuna Sen-Dehni;Sain-Nteni;Saint-Denis;Sanctus Dionysius;Sen Deni;Sen-Deni;Sendeni;Sendenī;saengdeuni;san dwny;san=doni;senta denisa;senta-denisa;sheng dan ni;sn-dny;Σαιν-Ντενί;Камуна Сен-Дэні;Сен Дени;Сен-Дени;Сен-Дені;سان دوني;ساں ڈینس;سن-دنی;سینٹ-ڈینس;सेंट डेनिस;सेंत-देनिस;แซ็ง-เดอนี;サン=ドニ;聖但尼;생드니; +city::2981280;Saint-Brieuc;Fanum Sancti Brioci;Port-Brieuc;SBK;Sain-Briek;Saint-Brieu;Saint-Brieuc;Sant-Brieg;Sen Brijek;Sen-Brie;Sen-Brijo;Sent-Brie;saengbeulioe;san=buriyu;sant brywk;sen-brie;sheng bu li e;sn brywk;sn-bryw;Σαιν-Μπριέκ;Сен Бријек;Сен-Брие;Сен-Бриё;Сен-Бріє;Сент-Брие;סן-בריו;سانت بريوك;سن بریوک;سینٹ-بریک;სენ-ბრიე;サン=ブリユー;圣布里厄;생브리외; +city::2982235;Rueil-Malmaison;Rijej Malmezon;Rjuehj-Mal'mezon;Rjuej Malmezon;Rjuej-Mal'mezon;Rodolium;Rueil;Rueil-Malmaison;lu ai ma er mei song;lwieyumalmejong;rwy mlmzwn;rwy-malmyzwn;ryueiyu=marumezon;Ријеј Малмезон;Рюей Малмезон;Рюей-Мальмезон;Рюэй-Мальмезон;روي-مالميزون;روی ملمزون;リュエイユ=マルメゾン;吕埃马尔梅松;뤼에유말메종; +city::2982652;Rouen;Erruan;Gorad Ruan;Roan;Rodem;Roeaan;Rothomagus;Rouan;Rouen;Rovan;Roðem;Ruan;Ruana;Ruanas;Ruao;Ruduborg;Rueno;Ruán;Ruão;Ruāna;Rúðuborg;URO;lu ang;luang;ro'am;ru x xng;ru'am;ruan;ruani;rwan;rwn;Ρουέν;Горад Руан;Руан;Ռուան;רואן;رؤن;روان;रुआं;रोआँ;รูอ็อง;რუანი;ሩዋን;ルーアン;盧昂;鲁昂;루앙; +city::2982681;Roubaix;Robaais;Rosbacum;Roubaix;Roubes;Roubés;Rube;Rubē;Rubė;XRX;lu bei;lube;ru bæ;rube;rwbh;rwbyh;Рубе;רובה;روبه;روبيه;روبے;รูแบ;ルーベ;鲁贝;루베; +city::2983990;Rennes;Condate Redonum;Gorad Rehn;RNS;Ren;Renas;Renes;Renn;Renn Shehiri;Renna;Rennes;Roazhon;Rènes;Rénn Shehiri;lei en;len;ren;ren'nu;reni;rhena;rn;ryn;Ρεν;Горад Рэн;Рен;Ренн;Ռեն;רן;رن;رين;رین;رینے;ऱ्हेन;ரேன்;แรน;რენი;レンヌ;雷恩;렌; +city::2984114;Reims;Durocortorum;Gorad Rehjms;RHE;Reims;Reimsa;Reimsas;Rejms;Remes;Remeš;Rems;Rens;Reyms;Rheims;laengseu;lan si;rans;ransu;rayym;reimsi;rensa;rms;rns;ryyms;Ρενς;Горад Рэймс;Реймс;Ремс;Ռեյմս;ריימס;رائیم;رانس;رمس;رنس;रेंस;แร็งส์;რეიმსი;ランス;兰斯;랭스; +city::2984701;Quimper;Coriosopitum;Kemper;Kempera;Kempēra;Montagne-sur-Odet;Quimper;Tchimper;Tchîmpèr;UIP;kaengpeleu;kambar;kan pei er;kanperu;kmpr;kwympr;Кемпер;كامبار;کمپر;کویمپر;კემპერი;カンペール;坎佩尔;캥페르; +city::2986495;Poitiers;Gorad Puac'e;PIS;Peitieus;Pictavium;Piteus;Poatie;Poatje;Poitiers;Pouatie;Pouetiers;Pouètiérs;Puat'e;Puatie;Puatje;Puatjē;Puatjė;bwatyyh;paw tiye;po'iti;powachie;pu wa jie;puatie;pwatyh;Πουατιέ;Горад Пуацье;Поатие;Поатје;Пуатье;Пуатьє;Պուատիե;פואטייה;بواتييه;پوئیٹیرز;پواتیه;पॉइती;ปัวตีเย;პუატიე;ポワチエ;普瓦捷;푸아티에; +city::2987805;Pessac;Pecac;Pecac de Bordeu;Pesak;Pessac;Pessak;Pessake;Peçac;Peçac de Bordèu;pei sa ke;pesakeu;pesakku;pwsk;Песак;Пессак;Пессаке;پوسک;ペサック;佩萨克;페사크; +city::2987914;Perpignan;Gorad Perpin'jan;PGF;Perpignan;Perpignan la Catalane;Perpignano;Perpin'jan;Perpinan;Perpinana;Perpinha;Perpinhan;Perpinhã;Perpinia;Perpinian;Perpinianum;Perpinjan;Perpinjanas;Perpinjano;Perpinya;Perpinya la Catalana;Perpinyan;Perpinyà;Perpinyà la Catalana;Perpinyán;Perpiñán;Perpiņāna;Villa Perpiniarum;ban he bi rang;byrbynya;pei pi ni ang;peleupinyang;perpinam;perupinyan;prpynan;prpynya;prpynyan;Περπινιάν;Горад Перпіньян;Перпиньян;Перпинян;Перпињан;Перпіньян;פערפיניאן;פרפיניאן;بيربينيا;پرپگناں;پرپینان;پرپینیا;پرپینیان;पेर्पिञां;ペルピニャン;佩皮尼昂;班合比让;페르피냥; +city::2988358;Pau;PUF;Pau;Paue;po;Пау;ポー; +city::2988507;Paris;Baariis;Bahliz;Gorad Paryzh;Lungsod ng Paris;Lutece;Lutetia;Lutetia Parisorum;Lutèce;PAR;Pa-ri;Paarys;Palika;Paname;Pantruche;Paraeis;Paras;Pari;Paries;Parigge;Pariggi;Parighji;Parigi;Pariis;Pariisi;Pariizu;Pariižu;Parij;Parijs;Paris;Parisi;Parixe;Pariz;Parize;Parizh;Parizh osh;Parizh';Parizo;Parizs;Pariž;Parys;Paryz;Paryzius;Paryż;Paryžius;Paräis;París;Paríž;Parîs;Parĩ;Parī;Parīze;Paříž;Páras;Párizs;Ville-Lumiere;Ville-Lumière;ba li;barys;pairisa;pali;pari;paris;parys;paryzh;perisa;pryz;pyaris;pyarisa;pyrs;Παρίσι;Горад Парыж;Париж;Париж ош;Парижь;Париз;Парис;Паріж;Փարիզ;פאריז;פריז;باريس;پارىژ;پاريس;پاریس;پیرس;ܦܐܪܝܣ;पॅरिस;पेरिस;पैरिस;প্যারিস;ਪੈਰਿਸ;પૅરિસ;பாரிஸ்;పారిస్;ಪ್ಯಾರಿಸ್;പാരിസ്;ปารีส;ཕ་རི།;ပါရီမြို့;პარიზი;ፓሪስ;ប៉ារីស;パリ;巴黎;파리; +city::2988621;Pantin;Panten;Pantin;bantan;pang tan;pangtaeng;pantan;pantn;Пантен;Пантин;بانتان;پانتن;パンタン;庞坦;팡탱; +city::2989317;Orleans;Aurelianum;Gorad Arlean;ORE;Orleaes;Orlean;Orleana;Orleanas;Orleani;Orleans;Orleañs;Orleáns;Orleães;Orleāna;Orliens;Orlèans;Orléans;ao er liang;awrlyan;awrlynz;oleulleang;orleani;orleyom;orurean;xxr lex xng;Ορλεάνη;Горад Арлеан;Орлеан;Օռլեան;אורליאן;أورليان;اورلئان;اورلینز;ओर्लेयों;ออร์เลอ็อง;အော်လီယန်းမြို့;ორლეანი;オルレアン;奥尔良;奧爾良;오를레앙; +city::2990189;Noisy-le-Grand;Noazi le Gran;Noisy;Noisy-le-Grand;Nuazi-le-Gran;Shumnaja-le-Gran;da nuo wa xi;nowaji=ru=guran;nwazy lw ghran;nwazy-lw-grand;Ноази ле Гран;Нуази-ле-Гран;Нуазі-ле-Гран;Шумная-ле-Гран;نوآزی-لو-گراند;نوازي لو غران;ノワジー=ル=グラン;大诺瓦西; +city::2990355;Niort;N'or;NIT;Nior;Niort;Niortium;Niòrt;Njoras;ni ao er;nioleu;nioru;nywr;Ниор;Ньор;Ніор;ניור;نيور;نیور;ニオール;尼奥尔;니오르; +city::2990363;Nimes;FNI;Gorad Nim;Nemausus;Nim;Nima;Nimas;Nime;Nimes;Nimo;Nismes;Nîme;Nîmes;Nīma;nayym;ni mu;nim;nimi;nimu;nym;Νιμ;Горад Нім;Ним;Нім;Նիմ;נים;نائیم;نيم;نیم;นีม;ნიმი;ニーム;尼姆;님; +city::2990440;Nice;Gorad Nica;NCE;Nica;Nicaea;Nicc;Nicca;Niccae;Nice;Nicea;Nico;Nikaia;Nis;Nisa;Nissa;Nissa Maritima;Nissa Marìtima;Nitza;Niza;Nizza;Niça;Nìsa;ni si;nis;nisa;niseu;nisu;nitsa;nys;Νίκαια;Горад Ніца;Ница;Ниццæ;Ницца;Ніцца;Նիս;ניס;نيس;نیس;नीस;নিস;ਨੀਸ;நீஸ்;నీస్;นิส;ნიცა;ニース;尼斯;니스; +city::2990611;Neuilly-sur-Seine;Kamuna Njoi-sjur-Sen;N'oj sjur Sen;Neigi-syr-Sen;Neiji pie Senas;Neijī pie Sēnas;Neji na Seni;Neji-sjur-Sen;Neuilly;Neuilly sur Seine;Neuilly-sur-Seine;Njoji-sjur-Sen;Noeyi-suer-Sen;Noviliacum ad Sequanam;Nöyi-sür-Sen;QNL;noeiswileusen;nuii=shuru=senu;nwy-swr-sn;nwyy-swr-syn;nyy-syr-sn;sai na he pan na yi;sai na he pan ne yi;Νεϊγί-συρ-Σεν;Камуна Нёі-сюр-Сен;Нейи-сюр-Сен;Нейї-сюр-Сен;Неји на Сени;Ньой сюр Сен;Нёйи-сюр-Сен;ניי-סיר-סן;نويي-سور-سين;نوی-سور-سن;ヌイイ=シュル=セーヌ;塞纳河畔纳伊;塞纳河畔讷伊;뇌이쉬르센; +city::2990919;Narbonne;Gorad Narbona;NNE;Narbo;Narbon;Narbona;Narbonas;Narbonn;Narbonna;Narbonne;arbwnt;na bo ne;naleubon;narubon'nu;nrbwn;Горад Нарбона;Нарбон;Нарбонн;Нарбонна;נרבון;أربونة;نربون;ናርቦን፣ ፈረንሳይ;ナルボンヌ;纳博讷;나르본; +city::2990969;Nantes;NTE;Nant;Nante;Nantes;Nanto;Naoned;Portus Namnetus;nan te;nant;nanta;nanto;Нант;נאנט;نانت;नांत;ナント;南特; +city::2990970;Nanterre;Gorad Nantehr;Nanter;Nanteras;Nanterr;Nanterre;Nemetodurum;nan tai er;nangteleu;nanteru;nantr;nantyr;Горад Нантэр;Нантер;Нантерр;نانتر;نانتير;نانتیرے;ナンテール;楠泰尔;낭테르; +city::2990999;Nancy;ETZ;Nanceium;Nancio;Nancy;Nansi;Nanzeg;nan xi;nanshi;nansi;nansy;Нанси;נאנסי;نانسي;نانسی;नांसी;ナンシー;南希; +city::2991214;Mulhouse;EAP;Gorad Mjuluz;MLH;Miluz;Miluza;Miuluzas;Miulūzas;Mjuluz;Mueihausn;Muelhausen;Mulhouse;Mulhousen;Mulhusia;Mylhuzy;Mylhúzy;Mylouz;Müihausn;Mülhausen;mi lu si;miuluzi;mwillujeu;mwlwz;mylwz;myulujha;myuruzu;Μυλούζ;Горад Мюлуз;Милуз;Мюлуз;ملہاؤز;مولوز;ميلوز;म्युलुझ;მიულუზი;ミュルーズ;米卢斯;뮐루즈; +city::2992090;Montreuil;Montrej;Montreuil;Montreuil-sous-Bois;Монтрей; +city::2992166;Montpellier;Gorad Manpel'e;MPL;Monpel'e;Monpele;Monpelie;Monpelje;Monpeljē;Monpeljė;Monpelye;Monspessulanus;Montpelhier;Montpelhièr;Montpeller;Montpellier;Montpelyier;Montpelyiér;mamtapeli'e;meng bi li ai;meng bi li ye;mngpex liye;mongpellie;monperie;mwnblyyh;mwnplyh;mwnplyyh;Μονπελιέ;Горад Манпелье;Монпелие;Монпелье;Монпельє;Монпелје;Монпеље;Մոնպելիե;מונפלייה;مونبلييه;مونٹپلائیر;مونپلیه;مونپیلیے;مون‌پلیه;माँतपेलिए;มงเปอลีเย;მონპელიე;モンペリエ;夢比利耶;蒙庇利埃;蒙彼利埃;몽펠리에; +city::2993002;Montauban;Mons Albanus;Montalban;Montauban;Montoban;Montobanas;Montompan;Rive-Civique;XMW;meng tuo bang;mng to b xng;mongtobang;montoban;mwntwban;Μοντωμπάν;Монтобан;مونتوبان;มงโตบ็อง;モントーバン;蒙托邦;몽토방; +city::2994160;Metz;Divodurum;ETZ;Gorad Mec;Mec;Meca;Mecas;Mediomatricum;Meds;Mets;Mettis;Mety;Metz;Mètz;Méty;Métz;mei si;mesa;meseu;mesu;metcu;metsi;mtz;mytz;mz;Μετς;Горад Мец;Мец;Մեց;מעץ;מץ;متز;میتز;میٹز;मेस;மெட்சு;แม็ส;མེ་ཊི་ཛི།;მეცი;መትዝ;メス;梅斯;메스; +city::2994393;Merignac;Meirinhac;Merignac;Merignae;Mérignac; +city::2994798;Meaux;Meldis;Mo;mo;mo cheng;mw;mw fransh;Мо;مو;مو، فرانسه;モー;莫城;모; +city::2995469;Marseille;Gorad Marsel';MRS;Marseggia;Marsegia;Marseglia;Marseilla;Marseille;Marseilles;Marsej;Marseja;Marsejlo;Marsel;Marsel';Marsela;Marsele;Marselha;Marselis;Marsella;Marsella - Marseille;Marselye;Marsey;Marseya;Marseļa;Marsiella;Marsigghia;Marsiglia;Marsiho;Marsilha;Marsilia;Marsilija;Marsilya;Marsylia;Marsylijo;Marsèja;Marsêle;Marsêy;Massalia;Massilia;ma sai;maleuseyu;mar se;mar sæy;marcey;marsaiya;marsela;marseli;marsy;marsylya;marsylz;maruseiyu;mrsylya;mrsyy;Μασσαλία;Горад Марсель;Марсель;Марсеј;Марсељ;Марсилия;Մարսել;מארסיי;מרסיי;مارسيليا;مارسی;مارسیلز;مارسێی;مرسيليا;मार्सेल;मार्सैय;மர்சேய்;มาร์เซ;มาร์แซย์;မာဆေးမြို့;მარსელი;ማርሴ;マルセイユ;马赛;마르세유; +city::2996568;Maisons-Alfort;Maisons-Alfort;Mezon Alfor;Mezon-Al'for;Mezonz-Al'for;mai song a er fu;mejong-alpoleu;mezon=aruforu;myzwn alfwr;mzwn alfwr;mzwn-alfwr;Мезон Алфор;Мезон-Альфор;Мезонз-Альфор;مزون الفور;مزون-آلفور;ميزون ألفور;メゾン=アルフォール;邁松阿爾福;메종알포르; +city::2996944;Lyon;Gorad Lijon;LYS;Leon do Roine;León do Roine;Lio;Lion;Liona;Lionas;Lione;Lioni;Liono;Liun;Liyon;Lió;Lión;Lugdunum;Lyon;Lyons;li ang;li yng;li'om;li'ona;lion;liong;lioni;liyon;lyom;lywn;riyon;Λυών;Горад Ліён;Лион;Ліон;Լիոն;ליאן;ליון;ليون;لیون;لیۆن;ल्यों;ਲਿਓਂ;ଲିଓନ;லியோன்;ลียง;ལི་ཡོང་།;လီယွန်းမြို့;ლიონი;ልዮን;リヨン;里昂;리옹; +city::2997577;Lorient;An Oriant;Gorad Larjan;LRT;Lor'jan;Lorian;Lorient;Lorjan;Lorjanas;Lorjen;Oriens;loliang;luo li ang;lwryan;rorian;Λοριάν;Горад Ларян;Лориан;Лорьян;Лорян;Лорјен;لوریان;ロリアン;洛里昂;로리앙; +city::2998286;Limoges;Augustoritum;Gorad Limozh;LIG;Lemojez;Lemotges;Lemòtges;Limages;Limoges;Limogo;Limog·es;Limotges;Limoz;Limoza;Limozas;Limozh;Limoĝo;Limoža;Limožas;Limòtges;Llemotges;li meng;li mo ri;limoja;limoju;limozhi;lymwj;lymwz;lymwzh;rimoju;Λιμόζ;Горад Лімож;Лимож;Лімож;Լիմոժ;לימוז;ليموج;لیموژ;لیموگے;लिमोज;ლიმოჟი;リモージュ;利摩日;里蒙;리모주; +city::2998324;Lille;Gorad Lil';Insula;LIL;Lil;Lila;Lile;Lilis;Lill;Lill';Lilla;Lille;Lillo;Rijsel;Risel;Rysel;li er;lil;lil.;lila;lili;lly;lyl;riru;Λιλ;Горад Ліль;Лил;Лилль;Лілль;Լիլ;ליל;للی;ليل;لیل;लील;ਲੀਲ;லீல்;ลีล;ლილი;リール;里尔;里爾;릴; +city::2998975;Levallois-Perret;Levallois;Levallois-Perret;Levallua Pere;Levallua-Perre;Levaloa Pere;QBH;lei wa lu wa-pei lei;leuballuapele;lwalwa-prh;lwfalwa-byry;lwwlwa-prh;ruvu~arowa=pere;Леваллуа-Перре;Левалоа Пере;Լևալլուա Պերե;لوالوآ-پره;لوفالوا-بيري;لوولوآ-پره;ルヴァロワ=ペレ;勒瓦卢瓦-佩雷;르발루아페레; +city::3003603;Le Mans;Ar Mans;Ar Mañs;Cenomanum;L'Unite-sur-Sarthe;L'Unité-sur-Sarthe;L'o Man;LME;Le Man;Le Manas;Le Mans;Le-Man;Lemana;Lemāna;Lo Mans;le mam;le-mani;lei mang;leumang;lw man;lwman;ly mans;lya mamsa;Ле Ман;Ле-Ман;Льо Ман;לה מאן;لو مان;لومان;لی مانس;ले मां;ল্য মঁস;ლე-მანი;ル・マン;勒芒;르망; +city::3003796;Le Havre;An Havr Nevez;An Havr-Nevez;Avr;Chabre;El Havre;Franciscopolis;Gavr;Gorad Gaur;Grasville-Lheure;Havr;Havra;Havras;Havre;Havro;Hawr;Khavur;LEH;La Havro;Le Havre;Le port de Grace;Le port de Grâce;Lé Hâvre;O Havre;Saint-Jean-sur-Mer;havri;la avra;le avar;lei a fu er;leuabeuleu;lex xafwr;lh hbr;lw awr;lw hafr;xia hua;Χάβρη;Авр;Гавр;Горад Гаўр;Хавър;Հավր;לה הבר;لو آور;لو اور;لو هافر;لی ہاور;ला आव्र;லே ஆவர்;เลออาฟวร์;ჰავრი;ル・アーヴル;勒阿弗尔;夏華;르아브르; +city::3005866;Laval;LVA;Laval';Лаваль; +city::3006414;La Seyne-sur-Mer;La Sanha;La Sen sir Mer;La Seyne;La Seyne sur Mer;La Seyne-sur-Mer;La-Sejn-sjur-Mer;La-Sen-sjur-Mer;bin hai la sai ne;la syny-swr-myr;lasenswileumeleu;lsn swr mr;Ла Сен сир Мер;Ла-Сейн-сюр-Мер;Ла-Сен-сюр-Мер;لا سینی-سور-میر;لسن سور مر;ラ・セーヌ=シュル=メール;濱海拉塞訥;라센쉬르메르; +city::3006767;La Roche-sur-Yon;EDM;La Roche-sur-Yon;La Rosh sir Jon;La-Roche-sur-Yon;La-Rosh-sjur-Ion;La-Rosh-sjur-Jon;Les Fromages;Les Mineraux;Les Minéraux;Roche-sur-Yon;Rupes ad Yonem;la rwsh-swr-ywn;lalosyuswileuyong;larwsh swr ywn;lh rws-swr-ywn;lrwsh swr ywn;yong he pan la luo shen;Ла Рош сир Јон;Ла-Рош-сюр-Іон;Ла-Рош-сюр-Йон;לה רוש-סור-יון;لا روش-سور-یون;لا روشے-سور-یون;لاروش سور يون;لروش سور یون;ラ・ロッシュ=シュル=ヨン;永河畔拉罗什;라로슈쉬르용; +city::3006787;La Rochelle;Ar Rochell;Arroxela;Gorad La-Rashehl';LRH;La Cote;La Côte;La Rochela;La Rochelle;La Rochèla;La Rosel;La Roselis;La Roshel;La Roşel;La Rošelis;La-Rosel;La-Roshel';La-Rošel;Larosela;Larošela;Proclamation;Rupella;la luo xie er;la rocyala;la rwshl;la rwshyl;la-rosheli;lalosyel;lh rwsl;lrwshl;Λα Ροσέλ;Горад Ла-Рашэль;Ла Рошел;Ла-Рошель;Լա Ռոշել;לה רושל;لا روشل;لا روشيل;لا روشیل;لروشل;লা রোচ্যাল;ลารอแชล;ལ་རོ་ཅེ་ལེ།;ლა-როშელი;ラ・ロシェル;拉罗歇尔;라로셸; +city::3012621;Ivry-sur-Seine;Ivri sir Sen;Ivri sjur Sen;Ivri-sjur-Sen;Ivry;Ivry sobre Sena;Ivry-sur-Seine;ayfry swr syn;aywry swr sn;aywry-swr-sn;ibeuliswileusen;ivuri=shuru=senu;sai na he pan yi fu li;ʼybry-syr-sn;Іврі-сюр-Сен;Иври сир Сен;Иври сюр Сен;Иври-сюр-Сен;איברי-סיר-סן;إيفري سور سين;ایوری سور سن;ایوری-سور-سن;イヴリー=シュル=セーヌ;塞纳河畔伊夫里;이브리쉬르센; +city::3012649;Issy-les-Moulineaux;Isi le Mulino;Issi-le-Mulino;Issy;Issy-les-Moulineau;Issy-les-Moulineaux;L'Union;aysy-lh-mwlynw;aysy-lmwlynw;ishi=re=murino;isilemollino;yi xi lai mu li nuo;Іссі-ле-Муліно;Иси ле Мулино;Исси-ле-Мулино;ایسی-لمولینو;ایسی-له-مولینو;イシー=レ=ムリノー;伊西萊穆利諾;이시레몰리노; +city::3012937;Hyeres;Er;Hyeres;Hyerès;Hyères;Ier;Ieras;Jer;ayyr;hyyrys;ieru;yeleu;yi ai lei;Єр;Јер;Иер;Йер;ایئر;هييريس;イエール;伊埃雷;예르; +city::3014728;Grenoble;GNB;Gorad Grehnobl';Gratianopolis;Grelibre;Grenobel;Grenobl;Grenobl';Grenoble;Grenoblis;Grenoblo;Grenobul;Grenòble;Nkrenompl;Qroenobl;Qrönobl;ge lei nuo bu er;geuleunobeul;ghrwnwbl;granobala;grenobala;grenobla;grenobli;grnwbl;grwnwbl;grynwbl;gurunoburu;kiranopil;Γκρενόμπλ;Горад Грэнобль;Грeнобль;Гренобл;Гренобль;Гренобъл;Գրենոբլ;גרנובל;גרענאבלע;غرونوبل;گرونوبل;گرینوبل;ग्रेनोबल;ग्रेनोब्ल;গ্রনোবল;கிரனோபிள்;გრენობლი;グルノーブル;格勒诺布尔;그르노블; +city::3017253;Frejus;FRJ;Forum Iulii;Frejus;Frejús;Frezhis;Frezhjus;Frezhus;Fréjus;frzhw;fu lei rui si;furejusu;peulejwiseu;Фрежис;Фрежус;Фрежюс;فرژو;フレジュス;弗雷瑞斯;프레쥐스; +city::3017910;Fontenay-sous-Bois;Fontenay;Fontenay-sous-Bois;Fontene su Bua;Fontene-su-Bua;Fontenė su Bua;Fontne su Boa;fontone=su=bowa;fwntnh-sw-bwa;fwntny sw bwa;fwntwny sw bwa;lin pan feng te nai;pongteunesubua;Фонтене-су-Буа;Фонтне су Боа;فونتنه-سو-بوآ;فونتنی سو بوآ;فونتوني سو بوا;フォントネー=スー=ボワ;林畔丰特奈;퐁트네수부아; +city::3019256;Evry;Evry;Evry-Petit-Bourg;evuri;Évry;Évry-Petit-Bourg;エヴリー; +city::3019265;Evreux;Aebura;EVX;Ebroicum;Eburovici;Ehvrjo;Evre;Evreaux;Evreus;Evreux;Evreux-le-Coudray;Evrieis;afrw;ai fu lei;awrw;ebeuloe;evuru;xe wer x;Évreux;Евре;Эврё;אוורה;إفرو;اورو;เอเวรอ;エヴルー;埃夫勒;에브뢰; +city::3020686;Dunkerque;CQF;Denkerk;Denkerka;Diunkerkas;Djunkerk;Doun'kerki;Duenkirchen;Duinkerke;Duinkerken;Dukark;Dun-Libre;Dune-Libre;Dunes-Libres;Dunkeke;Dunkerk;Dunkerque;Dunkierka;Dunkirk;Dunkèke;Dunquerca;Dunquerque;Dunquèrca;Duntsjerk;Duunkerke;Dúntsjerk;Dünkirchen;Gorad Dzjunkerk;Lungsod ng Dunkerque;dainkarka;dankarka;dankeruku;dnkrk;dnqrq;doengkeleukeu;dui ke er ke;dun ke er ke;dun ku e ke;dwnkrk;dwnkyrk;tankirk;Δουνκέρκη;Горад Дзюнкерк;Денкерк;Дюнкерк;דונקערק;דנקרק;دنکرک;دونكيرك;دونکرک;ڈنکرک;डंकर्क;दैंकर्क;டன்கிர்க்;დიუნკერკი;ダンケルク;敦刻尔克;顿库厄克;됭케르크; +city::3020839;Drancy;Drancy;Dransi;de lang xi;deulangsi;doranshi;dr xng si;dransy;Дранси;Дрансі;דראנסי;درانسي;درانسی;ดร็องซี;ドランシー;德朗西;드랑시; +city::3021372;Dijon;DIJ;Digion;Digione;Dijon;Dij·on;Divio;Diviodunum;Dizhon;Dizon;Dizona;Dizonas;Dižon;Dižona;Dižonas;Gorad Dyzhon;Ntizon;di rong;dichng;dijam;dijom;dijon;dijong;dizhoni;dyjwn;dyzhwn;dyzwn;Ντιζόν;Горад Дыжон;Дижон;Діжон;Դիժոն;דיזון;ديجون;دیجون;دیژون;ڈیجون;दिजाँ;दीजों;ดีฌง;དི་ཇཱོན།;დიჟონი;ディジョン;第戎;디종; +city::3022530;Creteil;Creteil;Créteil;Kretej;Kretejus;Kretėjus;ke lei tai yi;keuleteyu;krty;krytay;kureteiyu;qrtyy;Кретей;Кретеј;Կրեթեյ;קרטיי;كريتاي;کرتی;کریٹیل;クレテイユ;克雷泰伊;크레테유; +city::3023141;Courbevoie;Curbavia;Kurb'ovoa;Kurbevua;Kurbvoa;QEV;ku er bu wa;kuleubeubua;kurubuvu~oa;kwrbfwa;kwrbwa;Курбвоа;Курбевуа;Курбьовоа;كوربفوا;کوربوآ;کوربیوۓ;კურბევუა;クールブヴォア;库尔布瓦;쿠르브부아; +city::3024266;Colombes;Colombes;Columbae;Kolomb;Kolombas;bai ge cheng;klwmb;kollongbeu;koronbu;kwlwmb aw dw syn;qwlwmb;Коломб;קולומב;كولومب، أو دو سين;کلومب;コロンブ;白鸽城;콜롱브; +city::3024297;Colmar;CMR;Colmar;Colmaria;Gorad Kal'mar;Koimar;Kol'mar;Kolmar;Kolmara;ke er ma;klmar;kolmaleu;korumaru;kwlmar;kwlmr;kx lmar;qwlmr;Κολμάρ;Горад Кальмар;Колмар;Кольмар;קולמר;كولمار;کلمار;کولمر;กอลมาร์;コルマール;科尔马;콜마르; +city::3024597;Clichy;Clichy;Clichy-la-Garenne;Clichy-sur-Seine;Clicy;Klishi;Клиши; +city::3024635;Clermont-Ferrand;Augustonemetum;CFE;Clarmont;Clarmont dAlvernia;Clarmont dAlvèrnia;Clarmont-Ferrand;Clermont;Clermont-Ferrand;Cllarmont-Ferrand;Cllârmont-Fèrrand;Gorad Klermon-Feran;Klermon Feran;Klermon-Feran;Klermon-Ferran;Klermonas-Feranas;Klermonferana;Klermonferāna;ke lai meng fei lang;keulleleumongpelang;kleramam feram;kleramam-pheram;klrmwn fran;klrmwn-fran;klymwn-fyrand;klyrmwn fyran;kurerumon=feran;Κλερμόν-Φεράν;Горад Клермон-Феран;Клермон Феран;Клермон-Феран;Клермон-Ферран;Կլերմոն Ֆերան;קלרמון-פראן;كليرمون فيران;کلرمون فران;کلرمون-فران;کلیمون-فیراند;क्लेरमाँ फ़ेराँ;क्लेरमाँ-फेराँ;แกลร์มง-แฟร็อง;კლერმონ-ფერანი;クレルモン=フェラン;克莱蒙费朗;클레르몽페랑; +city::3024783;Clamart;Clamart;Clemartium;Klamar;Le Vignoble;ke la ma;keullamaleu;klamar;klmr;kuramaru;Кламар;كلامار;کلمر;クラマール;克拉马;클라마르; +city::3025053;Cholet;CET;Cauletum;Shole;Sole;shao lai;shore;shwlh;shwlh fransh;syolle;Šolė;Шоле;شوله;شوله، فرانسه;ショレ;紹萊;숄레; +city::3026204;Chateauroux;CHR;Castrum Radulphi;Chateauroux;Châteauroux;Gorad Shataru;Indrelibre;Indreville;Satoru;Shatoru;sha tuo lu;shatoru;shatwrw;shtwrw;syatolu;Šatoru;Горад Шатару;Шатору;שאטורו;شاتورو;شتورو;シャトールー;沙托鲁;샤토루; +city::3026613;Charleville-Mezieres;Caroli Villa;Charleville;Charleville-Mezieres;Charleville-Mézières;Libreville;Mezieres;Mézières;Sarlevil Mezyer;Sarlevilis-Mezjeras;Sarlvil-Mezier;Sarlvill-Mezyer;Sharlevil Mezjer;Sharlevil'-Mez'er;Sharlvil Mezjer;sarlavhila-mejhi'eya;sha lei wei er-mei ji ye er;sharlwyl-mzyr;sharuruvu~iru=mejieru;shrlwyl-mzyh;srlwwyl-mzyyr;syaleulleubilmejieleu;Şarlevil Mezyer;Šarlevilis-Mezjeras;Σαρλβίλ-Μεζιέρ;Шарлвил Мезјер;Шарлевил Мезјер;Шарлевиль-Мезьер;Шарлевіль-Мезьєр;Շառլվիլլ-Մեզյեր;שרלוויל-מזייר;شارلویل-مزیر;شرلویل-مزیه;शार्लव्हिल-मेझिएया;シャルルヴィル=メジエール;沙勒维尔-梅济耶尔;샤를르빌메지에르; +city::3027105;Champigny-sur-Marne;Campinio-ce-Marno;Champigny;Champigny-sur-Marne;Shampin'i-sjur-Marn;Shampini na Marni;Shampini sjur Marn;ma en he pan shang pi ni;shambyny swr marn;shampayn swr mrn;shampyny-swr-mrn;shanpini=shuru=marunu;syangpiniswileumaleun;Ĉampinio-ĉe-Marno;Шампини сюр Марн;Шампиньи-сюр-Марн;Шампињи на Марни;Шампіньї-сюр-Марн;شامبيني سور مارن;شامپاین سور مرن;شامپینی-سور-مرن;シャンピニー=シュル=マルヌ;马恩河畔尚皮尼;샹피니쉬르마른; +city::3027422;Chambery;CMF;Camberiacum;Chamberi;Chambery;Chambery-le-Vieux;Chamberí;Chambèri;Chambéry;Chambéry-le-Vieux;Gorad Shambery;Samberi;Shamberi;shambry;shambyry;shanberi;shang bei li;syangbeli;Šamberi;Горад Шамберы;Шамбери;Шамбері;שאמברי;شامبری;شامبيري;شامبیری;シャンベリ;尚贝里;샹베리; +city::3027487;Chalons-en-Champagne;Chalons;Chalons-en-Champagne;Chalons-sur-Marne;Châlons;Châlons-en-Champagne;Châlons-sur-Marne;Durocatalaunum;Gorad Shalon-an-Shampan';Salon an Sampayn;Sampanes Salonas;Shalon an Shampan;Shalon-an-Shampan';cha lng-x xng-ch xng pay;salo-am-sampena;shalwn-an-shampany;sharon=an=shanpanyu;shlwnzan shampayn;shylwnz ayn shympayn;syallong-angsyangpanyu;xiang bin sha long;Šampanės Šalonas;Горад Шалон-ан-Шампань;Шалон ан Шампањ;Шалон-ан-Шампань;Շալոն ան Շամպայն;שאלון-אן-שמפאן;شالون-آن-شامپانی;شلونزان شامپاین;شیلونز این شیمپائن;शालो-आं-शाँपेन;ชาลง-อ็อง-ช็องปาญ;შალონ-ან-შამპანი;シャロン=アン=シャンパーニュ;香槟沙隆;샬롱앙샹파뉴; +city::3027883;Cergy;Cergeium;Cergy;Serzhi;sai er ji;seleuji;seruji;srzhy;syrjy;Сержи;Сержі;سرژی;سيرجي;セルジー;塞尔吉;세르지; +city::3028808;Cannes;CEQ;Canas;Canes;Cannes;Canua;Chalier;Châlier;Gorad Kany;Kan;Kanai;Kann;Kannad;Kannas;Kannash;Kannes;Kanni;Kanntae;Kanny;jia na;kaina;kan;kan'nu;kana;kang cheng;kn;Κάννες;Горад Каны;Кан;Канн;Каннаш;Канни;Каннтæ;Канны;Կանն;קאן;كان;کان;کن;कान;कैन;ਕੈਨ;கான்;กาน;კანი;カンヌ;康城;戛纳;칸; +city::3029162;Calais;CQF;Calais;Cales;Calesium;Calés;Gorad Kale;Kalai;Kale;Kale shaary;Kales;Kalē;Kalė;jia lai;kale;kalh;kalle;kalyh;kare;Καλαί;Горад Кале;Кале;Кале шаары;Կալե;קאלה;كاليه;کاله;کالے;கலே;กาแล;カレー;加来;加莱;칼레; +city::3029241;Caen;CFR;Cadomum;Cadum;Caen;Can;Caën;Caðum;Gorad Kan;Kaen;Kan;Kana;Kanas;Kāna;k xng;ka ang;kam;kan;kang;kayn;kyn;qn;Καέν;Горад Кан;Кан;Կան;קן;كاين;کان;کین;कां;கன்;ก็อง;კანი;ካየን;カーン;卡昂;캉; +city::3029974;Brive-la-Gaillarde;BVE;Briv la Gajar;Briv-la-Gajard;Briva;Brive;Brive-la-Gaillarde;beulibeulagayaleudeu;bryw lgyrd;bryw-la-gyard;bu li fu la gai ya er de;burivu=ra=gaiyarudo;Брив ла Гајар;Брив-ла-Гайард;Брив-ла-Гаярд;Бриве-ла-Гаилларде;بریو لگیرد;بریو-لا-گیارد;ブリーヴ=ラ=ガイヤルド;布里夫拉盖亚尔德;브리브라가야르드; +city::3030300;Brest;BES;Brest;Brestia;braista;bu lei si te;buresuto;Брест;ब्रैस्त;ブレスト;布雷斯特; +city::3031005;Bourges;Avaricum Biturigum;BOU;Borges;Bourges;Bourz;Burza;Burzas;Burzh;Burža;Buržas;Gorad Burzh;bu er ri;buleuju;buruju;bwrjyz;bwrz;bwrzh;Μπουρζ;Бурж;Горад Бурж;בורז;بورجيز;بورژ;ቡርዥ;ブールジュ;布尔日;부르주; +city::3031137;Boulogne-Billancourt;Billancourt;Bononia ad Sequanam;Boulogne;Boulogne e Billancourt;Boulogne-Billancourt;Boulogne-sur-Seine;Bulon Bijankur;Bulon'-Bijankur;Bulona-Bijankura;Bulone-Bijankuras;Bulonė-Bijankūras;Buloņa-Bijankūra;XBT;bu luo nie-bi yang gu;bullonyubiyangkuleu;buronyu=biyankuru;bwlwn-blankwr;bwlwn-byankwr;bwlwny byankwr;bwlwny-byankwr;Булон Биянкур;Булонь-Бийанкур;Булонь-Биянкур;Булонь-Біянкур;Булоњ Бијанкур;بولون-بلانکور;بولون-بيانكور;بولونی بیانکور;بولونی-بیانکور;ბულონ-ბიანკური;ブローニュ=ビヤンクール;布洛涅-比扬古;불로뉴비양쿠르; +city::3031582;Bordeaux;BOD;Bordeaux;Bordele;Bordeos;Bordeu;Bordeus;Bordo;Bordox;Bordozo;Bordèu;Bordéus;Bordò;Bordôx;Bornto;Bourdel;Burdeos;Burdeus;Burdigala;Gorad Bardo;bo er duo;boleudo;borado;bordo;bordu;borudo;bwrdw;bwrڈw;bxr do;porto;Μπορντό;Бордо;Горад Бардо;Բորդո;בארדא;בורדו;بوردو;بورڈو;बोर्दू;बोर्दो;ਬੋਰਦੋ;பொர்தோ;บอร์โด;ບອກໂດ;ბორდო;ቦርዶ;ボルドー;波尔多;波爾多;보르도; +city::3032213;Blois;Bleaz;Bles;Blesae;Bloa;Blois;Bloua;Blua;Gorad Blua;XBQ;beullua;blaw;blwa;bu lu wa;burowa;Μπλουά;Блоа;Блуа;Горад Блуа;Բլոիս;بلوآ;بلوا;บลัว;ブロワ;布卢瓦;블루아; +city::3032833;Beziers;BZR;Baeterrae;Besers;Besiers;Besièrs;Bez'e;Bezie;Beziers;Bezije;Bezje;Bezjė;Béziers;bei ji ye;bejie;byzyyh;bzyh;bzyyh;Μπεζιέ;Безие;Безије;Безье;Безьє;Безје;בזייה;بزیه;بيزييه;ベジエ;贝济耶;베지에; +city::3033123;Besancon;Becoinson;Besancon;Besanson;Besanzon;Besanzón;Besançon;Bezanson;Bezansona;Bezansonas;Gorad Bezanson;Vesuntio;bei sang song;bejhamsom;beujangsong;bexs xngsng;bezansoni;buzanson;byzanswn;byznswn;bzanswn;Μπεζανσόν;Безансон;Бесансон;Горад Безансон;Բեզանսոն;בזאנסון;בעזאנסאן;بزانسون;بيزنسون;بیزانسون;بیسانکاں;बेझाँसों;เบอซ็องซง;ბეზანსონი;ブザンソン;贝桑松;브장송; +city::3033791;Belfort;BOR;Beffert;Bel'for;Belfor;Belfort;Belfortium;Belfòrt;Gorad Bel'for;bei er fu;belpoleu;beruforu;blfwr;Μπελφόρ;Белфор;Бельфор;Горад Бельфор;بلفور;แบลฟอร์;ベルフォール;贝尔福;벨포르; +city::3034006;Beauvais;Beauvais;Bellovacum;Bieuvais;Bove;Bovoa;Bovė;Duthil-la-Montagne;La Chaussee-de-la-Montagne;La Chaussée-de-la-Montagne;bo wei;bobe;bovu~e;bwwh;Бове;Бовоа;בווה;بووه;ቦቬ;ボーヴェ;博韦;보베; +city::3035681;Avignon;AVN;Abinion;Avennio;Avignon;Avignone;Avignuni;Avin'jon;Avin'on;Avinhao;Avinhon;Avinhão;Avinjonas;Avinjono;Avinon;Avinon - Avignon;Avinona;Avinyo;Avinyon;Avinyó;Avinyón;Aviñón;Aviñón - Avignon;Aviņona;Awinion;Gorad Avin'jon;abinyong;afynywn;avhiyom;avinioni;avu~inyon;awynywn;xa wiyng;ya wei nong;Αβινιόν;Авиньон;Авињон;Авіньйон;Горад Авіньён;Ավինյոն;אביניון;آوینیون;أفينيون;اوینیون;ایوگناں;आव्हियों;อาวีญง;ཨ་ཝི་ཉོང་།;ავინიონი;アヴィニョン;亞維農;아비뇽; +city::3036145;Aulnay-sous-Bois;Aulnay;Aulnay-sous-Bois;Ol'ne-su-Bua;Olne su Boa;One-su-Bua;ao nai cong lin;awlnh sw bwa;awlnyh sw bwa;olne su boa;olnesubua;orune=su=bowa;Олне су Боа;Ольне-су-Буа;Оне-су-Буа;أولنيه سو بوا;اولنه سو بوآ;オルネー=スー=ボワ;奧奈叢林;올네수부아; +city::3036386;Aubervilliers;Aubervilles;Aubervilliers;Obervil'e;Obervilije;ao bei wei ai;awbarfylyyh;awbrwyh;awbrwylyh;obeleubillie;oberuvu~irie;Обервилије;Обервилье;Обервільє;أوبارفيلييه;اوبرویلیه;اوبرویه;オーベルヴィリエ;奥贝维埃;오베르빌리에; +city::3036572;Asnieres-sur-Seine;An'er-sjur-Sen;Anier sjur Sen;Anijer na Seni;Asinariae;Asnieres;Asnieres sur Seine;Asnières;Asnières sur Seine;anieleuswileusen;anieru=shuru=senu;anyar swr syn;anyyr-swr-sn;aznyr swr sn;sai na he pan a nie lei;Аниер сюр Сен;Анијер на Сени;Аньер-сюр-Сен;Аньєр-сюр-Сен;أنيار سور سين;ازنیر سور سن;انییر-سور-سن;アニエール=シュル=セーヌ;塞纳河畔阿涅勒;아니에르쉬르센; +city::3036938;Arles;Arelate;Arl;Arl';Arla;Arle;Arles;Arles-Trinquetaille;Arles-sur-Rhone;Arles-sur-Rhône;Arlet;Arlis;Arlés;Gorad Arl';a er lei;aleul;arl;arli;aruru;Αρλ;Арл;Арль;Горад Арль;Առլ;ארל;آرل;ارل;არლი;アルル;阿爾勒;아를; +city::3037044;Argenteuil;Argenteuil;Arzhantej;Arzhentoj;arujanto~uiyu;Аржантей;Аржантеј;Аржентој;アルジャントゥイユ; +city::3037423;Antony;Antony;Ontoni;Онтони; +city::3037456;Antibes;Antib;Antiba;Antibas;Antibes;Antibol;Antipolis;Antíbol;XAT;amtiba;ang di bu;angtibeu;antibu;antyb;Αντίμπ;Антиб;Антіб;Անթիբ;אנטיב;آنتیب;أنتيب;अँतिब;アンティーブ;昂蒂布;앙티브; +city::3037656;Angers;ANE;Andecavis;Angero;Angers;Angieus;Anje;Anze;Anzhe;Anzier;Anĝero;Anžē;Anžė;Añje;Bonne-Terre;Fruits-Sucres;Fruits-Sucrés;Gorad Anzheh;amji;ang re;angje;anje;anjyh;anzhe;anzhh;anzhw;ayngrz;x xngche;ʼnzh;Ανζέ;Анже;Горад Анжэ;אנזה;آنژه;آنژو;آنژہ;أنجيه;اینگرز;अँजी;อ็องเฌ;ანჟე;አንዤ;アンジェ;昂热;앙제; +city::3037854;Amiens;Am'en;Amen;Amian;Amians;Amien;Amiens;Amijen;Amjen;Amjena;Amjenas;Amjēna;Amyen;Anmyin;Gorad Amen;QAM;Samarobriva;amiaeng;amian;amieni;amiyam;amyan;xa meiyng;ya mian;Αμιάν;Амиен;Амијен;Амьен;Амєн;Амјен;Горад Амен;Ամյեն;אמיין;آمیاں;أميان;امیان;आमियां;อาเมียง;ამიენი;アミアン;亞眠;아미앵; +city::3038261;Albi;Al'bi;Albi;Albia;Alby;Albí;Albī;Almpi;LBI;a er bi;albi;alby;arubi;xa lbi;Αλμπί;Алби;Альби;Альбі;אלבי;ألبي;البی;ಆಲ್ಬಿ;อาลบี;ཨཱལ་ཕི།;ალბი;アルビ;阿尔比;알비; +city::3038334;Ajaccio;AJA;Adiacium;Aiacciu;Ajacas;Ajaccio;Ajacciu;Ajachcho;Ajacho;Ajacio;Ajaçio;Ajačas;Azaksjo;Azaxio;Azhaksio;Ažaksjo;Gorad Ajacha;a ya ke xiao;aiacho;ajagsio;ajaksyw;ajakushio;ajakyw;ajhaksiyo;azhaksy aw;azhaksyw;ʼzʼqsyw;Αζαξιό;Ажаксио;Аячо;Аяччо;Ајачо;Горад Аяча;Այաչչո;אזאקסיו;آژاکسیو;أجاكسيو;اجاکیو;اژاکسی او;अझाक्सियो;ཨ་ཇཀ་སིའོ།;აიაჩო;アジャクシオ;阿雅克肖;아작시오; +city::3038354;Aix-en-Provence;AEx-in-Profentse;Aikso Provenca;Ais de Provenca;Ais de Provença;Aix;Aix-an-Provans;Aix-en-Provence;Aquae Sextiae;Ehks-an-Provans;Eks an Provans;Eks-an-Provans;Eksanprovansa;Provanso Eksas;QXB;aks awn brwfans;aks-an-prwans;ayks ayn prwns;egsangpeulobangseu;ekusu=an=purovu~ansu;pu luo wang si de qu ai ke si;ya sang pu fang;Æx-in-Profentse;Ēksanprovansa;Αιξ-αν-Προβάνς;Екс ан Прованс;Екс-ан-Прованс;Экс-ан-Прованс;Էքս-ան-Պրովանս;אקס-אן-פרובאנס;آكس أون بروفانس;اکس-آن-پروانس;ایکس این پرونس;ཨེག་སི་-ཨེན་-ཕོ་རོའོ་ཝང་སི།;ექს-ან-პროვანსი;エクス=アン=プロヴァンス;亞桑蒲坊;普罗旺斯地区艾克斯;엑상프로방스; +city::6543862;Villeneuve-d'Ascq;Neuvile-Ask;Vil'nev-d'Ask;Vil'njov-d'Ask;Villeneuve d'Ascq;Villeneuve-d'Ascq;Villeneuve-d’Ascq;Villenyev d'Ask;Viln'ov d'Ask;Vilnev d'Ask;Vilnev d'Askas;Vilneva d'Aska;Vilnēva d'Aska;a si ke xin cheng;fylynwf dask;vu~irunuvu=dasuku;wynw dsk;Вилнев д’Аск;Вилньов д'Аск;Вильнев-д'Аск;Вильнёв-д’Аск;Вільнев-д'Аск;וילנב-ד'אסק;فيلينوف داسك;وینو دسک;ヴィルヌーヴ=ダスク;阿斯克新城; +city::7284889;Marseille 08;; +city::7284890;Marseille 10;Marseille 10;Marseille 10e arrondissement;Masalia;Massalia;Massilia;Μασσαλία; +city::7284891;Marseille 09;; +city::7284892;Marseille 11;; +city::7284893;Marseille 12;; +city::7284894;Marseille 13;; +city::7284895;Marseille 14;; +city::7284896;Marseille 15;; +city::8533870;Saint-Quentin-en-Yvelines;Communaute d'agglomeration de Saint-Quentin-en-Yvelines;Communauté d’agglomération de Saint-Quentin-en-Yvelines;Saint-Quentin-en-Yvelines; +city::2396518;Port-Gentil;Mandji;POG;Port Gentil;Port Zantilis;Port Zhantil;Port Žantilis;Port-Gentil;Port-Jantil;Port-Zhantil';bwrt jntyl;poleujangti;porujanti;pwrt-gntyl;rang di er gang;Порт Жантил;Порт-Жантиль;פורט-גנטיל;بورت جنتيل;ポールジャンティ;让蒂尔港;포르장티; +city::2399697;Libreville;Gorad Librehvil';LBV;Libarwil;Liberopolis;Librefille;Librevil;Librevil';Librevila;Librevilis;Libreville;Librevilo;Librvil;Libvil;Limprebil;Limprvil;Liuravila;lbrwl;lbrywyl;li be rx wil;li bo wei er;libaravila;libarevile;libeuleubil;librevhila;librevili;lipravil;lybrfyl;lybrwwyl;lybrwyl;riburuvu~iru;Λιμπρβίλ;Λιμπρεβίλ;Горад Лібрэвіль;Либрвил;Либревил;Либревиль;Лібревіль;Լիբրևիլ;ליברוויל;ליברעוויל;لبرول;لبریویل;ليبرفيل;لیبرویل;لیبرێڤیل;लिबरेविले;लिब्रेव्हिल;ਲਿਬਰਵਿਲ;லிப்ரவில்;ลีเบรอวิล;ལིབ་རེ་ཝིལ།;ლიბრევილი;ሊብረቪል;リーブルヴィル;利伯維爾;利伯维尔;리브르빌; +city::2633352;York;Aebura;Eabhrac;Eabhraig;Eboracum;Efrog;Eoforwic;Everoui;Evrek;Giork;Gorad Jork;Jork;Jorka;Jorkas;Jorvik;Jórvík;QQY;York;yark;yokeu;yoku;yorka;yue ke;ywrk;ywrq;yxrk;Évèroui;Γιορκ;Јорк;Горад Ёрк;Йорк;Յորք;יורק;يورك;یارک;یورک;یۆرک;यॉर्क;யார்க்;ยอร์ก;იორკი;ヨーク;約克;요크; +city::2633485;Wrexham;Reksamas;Reksem;Reksum;Rexam;Wrecsam;Wreksam;Wrexham;legseom;lei ke si han mu;rekusamu;wrksam;Ρέξαμ;Рексем;Рексъм;Ռեքսհեմ;רקסהאם;ورکسام;レクサム;雷克斯漢姆;렉섬; +city::2633521;Worthing;Vorting;Worthing;wajingu;wwrtyng;Вортинг;وورتینگ;ワージング; +city::2633563;Worcester;Caerwrangon;City of Worcester;Gorad Vustehr;UWC;Ustur;Vigornia;Vuster;Vusteris;Wiogoraceastre;Worcester;useuteo;usuta;vuster;wo shi da;wrkstr;wstr;wu si te;wurs texr;wwstr;Вустер;Горад Вустэр;Устър;Վուսթեր;ورکستر;وستر;وورسسٹر;ووستر;ووسٹر;วุร์สเตอร์;ウスター;伍斯特;窩士打;우스터; +city::2633691;Wolverhampton;Goulverchampton;Heantun;Ulvurkhamptun;Vulvergempton;Vulverhamptonas;Vulverhempton;Vulverhemptona;Vulverkhempton;Wolverhampton;Wulfrunehantona;XVW;ulbeohaempeuteon;u~oruvu~ahanputon;wlwrhmptwn;wu er fu han pu dun;wwlbrhmptwn;wwlfrhambtwn;Γουλβερχάμπτον;Вулвергемптон;Вулверхемптон;Улвърхамптън;Վուլվերհեմպտոն;וואלווערהאמפטאן;וולברהמפטון;ولورهمپتون;وولفرهامبتون;وولورہیمپٹن;วุลเวอร์แฮมป์ตัน;ვულვერჰემპტონი;ウォルヴァーハンプトン;伍爾弗漢普頓;울버햄프턴; +city::2633709;Woking;Uoking;Uokinge;Vokingas;Woking;XWO;u~okingu;wo jin;wwdkyng;wwkng;Уокинг;Уокинге;وودکینگ;ووکنگ;ウォキング;沃金; +city::2633948;Wigan;Uigan;Uigun;Vigan;Viganas;Wigan;XWI;la uigyn;u~igan;wei gan;wei gen;wigeon;wygan;Виган;Віган;Уиган;Уигън;ویگان;ウィガン;威根;维甘;위건; +city::2633954;Widnes;Vidnes;Widnes;wei de ni si;wydnz;Виднес;ویدنز;威德尼斯; +city::2634202;Weymouth;Uehjmut;Uejmut;Vejmut;Vimutium;Weymouth i Dorset;u~eimasu;waymth;wei mao si;weimeoseu;wymwth dwrst;Вејмут;Уеймът;Уэймут;وايمث;ویموث، دورست;ウェイマス;韦茅斯;웨이머스; +city::2634308;Weston-super-Mare;Uehston-s'juper-Mehr;Uest"n sjup"r Me"r;Uestun-Sjupur-Meur;Veston na Meru;Weston super Mare;Weston-super-Mare;u~esuton=supa=mea;weseuteonsyupeomeeo;wstwn-swpr-mar;Вестон на Меру;Уестън сюпър Меър;Уестън-Сюпър-Меър;Уэстон-сьюпер-Мэр;وستون-سوپر-مار;ウェストン=スーパー=メア;웨스턴슈퍼메어; +city::2634491;West Bromwich;Bromwich Thiar;Uehst-Bromidzh;Uest Bromich;Vest Bromicas;Vest Bromičas;Vest Bromvich;Vest-Bromvich;West Bromwich;weseuteubeulomichi;west br xm mich;wst brwmwych;xi bu lang;xi bu luo mi qi;Вест Бромвич;Вест-Бромвіч;Уест Бромич;Уэст-Бромидж;Վեստ Բրոմվիչ;وست برومویچ;เวสต์บรอมมิช;ウェスト・ブロムウィッチ;西布朗;西布羅米奇;웨스트브로미치; +city::2634552;Welwyn Garden City;Garden City;Uehlin-Garden-Siti;Welvyn Garden City;Welwyn Garden;Welwyn Garden City;wei lin hua yuan shi;wellingadeunsiti;wlwyn gardn syty;Уэлин-Гарден-Сити;ولوین گاردن سیتی;ウェリン・ガーデン・シティ;韋林花園市;웰린가든시티; +city::2634578;Wellingborough;Uehllingboro;Uelingburou;Velingboro;Vellingboro;Wellingborough;XWE;wei ling bo lei;Велингборо;Веллингборо;Уелингбъроу;Уэллингборо;ولینگ‌بورو;韋靈伯勒; +city::2634677;Watford;Uotford;Votford;Votfordas;WXF;Watford;waspeodeu;watfwrd;watofodo;wo te fu de;wtpwrd;wwtpwrd;Вотфорд;Уотфорд;ווטפורד;וטפורד;واتفورد;ワトフォード;沃特福德;왓퍼드; +city::2634686;Waterlooville;Uoterluvil';Voterluvil;Waterloo;Waterlooville;watrlwwyl;Вотерлувил;Уотерлувиль;واترلوویل; +city::2634715;Washington;Vashington;Washington;Washington New Town;Washington i Tyne and Wear;hua sheng dun;washyngtn;Вашингтон;واشینگتن;華盛頓; +city::2634739;Warrington;Uorrington;Vorington;Warrington;waryngtwn;wo ling dun;wolingteon;Ворингтон;Уоррингтон;وارینگتون;沃灵顿;워링턴; +city::2634853;Walsall;Owolsol;Uolsol;Uolsoll;Volslas;Volsol;Walhshalh;Wallsall;Walsall;u~orusoru;walsal;wo er suo er;wolsol;Волсол;Уолсол;Уолсолл;Ուոլսոլ;والسال;ウォルソール;沃爾索爾;월솔; +city::2634873;Wallasey;Uollasi;Volasi;Wallasey;walasy;wo lei xi;wolleosi;Воласи;Уолласи;والاسی;沃勒西;월러시; +city::2634910;Wakefield;Uehjkfild;Uejkfijld;Veikfildas;Vejkfild;Wakefield;XWD;u~eikufirudo;wei ke fei er de;weikeupildeu;wykfyld;Вејкфилд;Уейкфийлд;Уэйкфилд;Ուեյքֆիլդ;ويكفيلد;ウェイクフィールド;韦克菲尔德;웨이크필드; +city::2635650;Torquay;Torcaium;Torki;Torkvej;Torquay;toki;tuo ji;twrky;twrqy;Торквей;Торки;Торкі;טורקי;تورکی;トーキー;托基;토키; +city::2636177;Taunton;TTY;Tantonia;Taunton;Tonton;Tountun;tang dun;tawntwn;tonteon;tonton;Тонтон;Тоунтън;تاونتون;ولٹن، سومرسیٹ;トーントン;湯頓;톤턴; +city::2636276;Tamworth;Tamvertas;Tamvort;Tamworth;Tomtun;ta mu wo si;Тамворт;تم‌وورث، استافوردشایر;塔姆沃思; +city::2636389;Swindon;SWI;Suindon;Suindun;Svindon;Svindonas;Swindon;XWS;s win dan;seuwindeon;si wen dun;suu~indon;swyndwn;swyyndwn;Свиндон;Свіндон;Суиндон;Суиндън;Սուինդոն;سوئیندون;سويندون;สวินดัน;スウィンドン;斯温顿;스윈던; +city::2636432;Swansea;Abertawe;SWS;Souonsi;Suonsi;Suonzi;Svonsi;Svonsis;Svonzi;Swansea;s wxn si;seuwanji;si wang xi;suuae~onji;suu~onji;svanzi;svonjhi;swansy;swanzy;swwnsy;Σουόνσι;Свонзи;Свонсі;Суонзи;Суонси;Սուոնսի;סוונסי;سوانزي;سوانزی;سوانسی;स्वान्ज़ी;स्वॉन्झी;สวอนซี;スウæォンジ;スウォンジ;斯旺西;스완지; +city::2636486;Sutton Coldfield;Saton Koldfild;Saton Koldfildas;Sutton Coldfield;satn kwldfyld;seoteonkoldeupildeu;Сатон Колдфилд;ساتن کولدفیلد;サットン・コールドフィールド;서턴콜드필드; +city::2636503;Sutton;London Borough of Sutton;Satton;Sutton;Sutton keruelet;Sutton kerület;Саттон; +city::2636531;Sunderland;Sanderland;Sanderlandas;Sanderlend;Sanderlenda;Santerlant;Sunderland;Sundurland;sandaralamda;sandarando;sandrlnd;sandrlnd tayn w wr;sang de lan;seondeollaendeu;sndrland;sndrlnd;Σάντερλαντ;Сандерланд;Сандерленд;Съндърланд;Սանդերլենդ;סנדרלנד;ساندرلند;ساندرلند، تاین و ور;سندرلاند;संडरलँड;サンダーランド;桑德兰;선덜랜드; +city::2636616;Stroud;Straud;Stroud;astrwd glastrshr;seuteulaudeu;Страуд;استرود، گلاسترشر;스트라우드; +city::2636769;Stourbridge;Stauerbridz;Stauerbridzas;Stauerbridžas;Staurbridzh;Stourbridge;Stourbridzh;astawrbryj;s tea r bridc;Стауербриџ;Стаурбридж;Стоурбридж;استاوربریج;สเตาร์บริดจ์; +city::2636841;Stoke-on-Trent;Gorad Stok-on-Trehnt;Stok-on-Trent;Stoka pie Trentas;Stokas prie Trento;Stoke;Stoke-on-Trent;Stoke-upon-Trent;Stoouk on Trent;Stouk na Trent;Stouk na Trentu;Stouk on Trent;The Potteries;XWH;astwk-an-trnt;seutokeuonteulenteu;stwk-awn-trynt;te lun te he pan si tuo ke;Στόουκ ον Τρεντ;Горад Сток-он-Трэнт;Сток-он-Трент;Стоук на Трент;Стоук на Тренту;Стоук он Трент;استوک-آن-ترنت;ستوك-أون-ترينت;سٹاک اون ٹرینٹ;ストーク・オン・トレント;特倫特河畔斯托克;스토크온트렌트; +city::2636876;Stockton-on-Tees;Stockton;Stockton-on-Tees;Stokton na Tizu;Stokton-on-Tis;Stoktun on Tijs;astaktwn-an-tyz;di si he pan si tuo ke dun;sutokkuton=on=tizu;Стоктон на Тизу;Стоктон-он-Тис;Стоктън он Тийс;استاکتون-آن-تیز;ストックトン=オン=ティーズ;蒂斯河畔斯托克頓; +city::2636882;Stockport;Gorad Stokpart;Stockport;Stokport;Stokportas;XVA;seutogpoteu;si tuo ke bo te;st xk phxrt;stwkbwrt;sutokkupoto;Горад Стокпарт;Стокпорт;Ստոկպորտ;استاک‌پورت;ستوكبورت;สต็อกพอร์ต;ストックポート;斯托克波特;스톡포트; +city::2636940;Stevenage;Stevenage;Stiden Ac;Stivenedzh;Stivenidz;Stīðen Āc;XVJ;astywnj;seutebeoniji;si di fu ni qi;srrivanej;sti weni c;sutibunijji;Стивенедж;Стивениџ;استیونج;سٹیوینڈیج;സ്റ്റീവനേജ്;สตีเวนิจ;スティーブニッジ;斯蒂夫尼奇;스테버니지; +city::2637126;Staines;Staines;Staines-upon-Thames;Stejns;astaynz;si tan si;Стејнс;استاینز;斯坦斯; +city::2637142;Stafford;Staefford;Stafford;Staford;Stæfford;XVB;astafwrd anglstan;seutaepeodeu;si ta fu de;sutaffodo;Стафорд;Стаффорд;استافورد، انگلستان;スタッフォード;斯塔福德;스태퍼드; +city::2637329;South Shields;Saut Shijlds;Saut Shilds;Saut-Shilds;Shields;Shields Theas;South Shields;nan xi er ci;sauseusiljeu;sawt shyldz;Саут Шийлдс;Саут Шилдс;Саут-Шилдс;ساوت شیلدز;サウス・シールズ;南希尔兹;사우스실즈; +city::2637343;Southport;Sautport;Southport;sauseupoteu;sausupoto;shao si bo te;Саутпорт;ساوت‌پورت;サウスポート;紹斯波特;사우스포트; +city::2637433;Southend-on-Sea;SEN;Sautend-on-Si;Southend;Southend-on-Sea;Саутенд-он-Си; +city::2637487;Southampton;Gorad Sautgemptan;Hantonia;Hantonne;SOU;Saouthampton;Sautamptonas;Sautgempton;Sauthempton;Sauthemptona;Sautkhamptun;Sautkhempton;Southampton;nan an pu dui;sausaempeuteon;sausanputon;sawthhambtwn;Σαουθάμπτον;Горад Саўтгемптан;Саутгемптон;Саутхамптън;Саутхемптон;סאות'המפטון;ساؤتھمپٹن;ساوت‌همپتون;ساوثهامبتون;เซาแทมป์ตัน;ဆောက်သမ္ပတန်မြို့;サウサンプトン;南安普敦;사우샘프턴; +city::2637490;Southall;Southall;sa'uthala;sa'uthola;sawthal;shao suo er;ساؤتھ ہال;ساوتهال;साउथॉल;ਸਾਊਥਾਲ;紹索爾; +city::2637546;Solihull;Solihalas;Solihull;Solikhal;Solikhall;solliheol;sorifuru;suo li he er;swlyhal;swlyhl;Солихал;Солихалл;سوليهل;سولیهال;ソリフル;索利赫爾;솔리헐; +city::2637627;Slough;Slau;Slough;Слау; +city::2637891;Shrewsbury;Amwythig;Shrewsbury;Shrjusburi;Shrusberi;Шрусбери;Шрюсбъри; +city::2638077;Sheffield;DSA;Gorad Shehfild;Seffild;Sefild;Sefilda;Sefildas;Sefilnt;Sheffield;Sheffild;Shefild;chef fi ld;sefilda;sephild;sephilda;shefirudo;shepildi;shfyld;shyfyld;spyld;syepildeu;xie fei er de;Şeffild;Šefildas;Šefīlda;Σέφιλντ;Горад Шэфілд;Шефилд;Шеффилд;Шеффілд;Շեֆիլդ;שעפילד;שפילד;شفيلد;شفیلد;شيفيلد;شیفیلڈ;شێفیڵد;शेफ़ील्ड;शेफील्ड;షెఫీల్డ్;เชฟฟีลด์;შეფილდი;シェフィールド;谢菲尔德;셰필드; +city::2638324;Scunthorpe;Scunthorpe;Skantorp;Skantorpas;Skantorpe;seukeonsopeu;si ken suo pu;sukansopu;Сканторп;Сканторпе;اسکان‌ثورپ;スカンソープ;斯肯索普;스컨소프; +city::2638419;Scarborough;Scarborough;Skarboro;Skarburou;seukabeoleo;si ka bu luo;skarbwrw;sqrbwrw;sukabura;Скарборо;Скарбъроу;סקרבורו;اسکاربرو، یورک‌شر شمالی;سكاربورو;スカーブラ;斯卡布羅;스카버러; +city::2638671;Salford;Gorad Solfard;Salford;Salfordas;Solford;salfwrd;sarufodo;solpeodeu;suo er fu de;Горад Солфард;Солфорд;سالفورد;サルフォード;索爾福德;솔퍼드; +city::2638678;Sale;Sale i Stor-Manchester;Sejl;sai er;seil;syl mnchstr bzrg;Сейл;Сејл;سیل، منچستر بزرگ;塞爾;세일; +city::2638703;Saint Peters;Saint Peter Extra;Saint Peters;Thanet; +city::2638785;St Helens;Saint Helens;Sent-Khelens;St Helens;St. Helens;Сент-Хеленс; +city::2638867;St Albans;Fanum Sancti Albani;Gorad Sent-Olbans;Saint Albans;Sejnt Olbans;Sent Olbans;Sent-Ehlbans;Sent-Olbans;St Albans;St. Albans;sant albanz;seinteuolbeonseu;sheng ao er ben si;snt albnz;Горад Сент-Олбанс;Сейнт Олбанс;Сент Олбанс;Сент-Олбанс;Сент-Элбанс;سانت ألبانز;سنت آلبنز;セント・オールバンズ;聖奧爾本斯;세인트올번스; +city::2638960;Runcorn;Rankorn;Runcorn;XRC;lang ke en;rankwrn;Ранкорн;رانکورن;朗科恩; +city::2638978;Rugby;Ragbi;Rugby i Warwickshire;XRU;la ge bi;leogbi;ragubi;rajby;rakbi;rakpi;Рагби;راجبي;راگبی، وارویک‌شایر;ரக்பி;รักบี้;ラグビー;拉格比;럭비; +city::2639022;Royal Tunbridge Wells;Rojal Tanbridz Vels;Royal Tunbridge Wells;Tunbridge Wells;Turnbridge Wells;huang jia tang qiao jing;rwyal tanbryj wlz;Ројал Танбриџ Велс;رویال تانبریج ولز;皇家唐橋井; +city::2639093;Rotherham;Roderamas;Rodurum;Roteram;Roterem;Rotergem;Rotherdam;Rotherham;lodeoleom;luo se lei mu;ratrham;rozaramu;Родъръм;Ротерам;Ротергем;Ротерем;Ռոտերեմ;راترهام;ロザラム;羅瑟勒姆;로더럼; +city::2639272;Rochdale;Recedham;Rocdeilis;Rochdale;Rochdejl;Ročdeilis;lochideil;luo qi dai er;rotchideru;rwchdyl;Рочдейл;Рочдејл;راچڈیل;روچدیل;ロッチデール;羅奇代爾;로치데일; +city::2639447;Rhondda;Rhondda;Ronda;Ronta;Y Rhondda;rwnta;Ронда;Ронта;رونتا; +city::2639506;Reigate;Rajgejt;Rajgit;Reigate;rygyt;Райгейт;Райгит;ریگیت; +city::2639545;Redhill;KRH;Redhill; +city::2639557;Redditch;Radditch;Reddich;Redditch;Redicas;Redich;Redičas;ledichi;lei di qi;rdych;reditchi;Реддитч;Реддич;Редич;ردیچ;レディッチ;雷迪奇;레디치; +city::2639577;Reading;Reading;Reding;XRE;Рединг; +city::2639842;Purley;Purley; +city::2639912;Preston;Gorad Prehstan;Preston;Prestonas;Prestun;XPT;brstwn;peuleseuteon;prestana;prstwn;pu lei si dun;puresuton;Горад Прэстан;Престон;Престън;Պրեստոն;פרסטון;برستون;پرستون;پریسٹن، لنکاشائر;प्रेस्टन;プレストン;普雷斯顿;프레스턴; +city::2639996;Portsmouth;Gorad Portsmut;Porchemue;Porchémue;Portsmouth;Portsmut;Portsmuta;Portsmutas;Portus Ostium;bwrtsmwth;phxrt smath;pocheumeoseu;portasmatha;potsumasu;pu ci mao si;pwrtsmwt';pwrtsmwth;Πόρτσμουθ;Горад Портсмут;Портсмут;Портсмът;Պորտսմութ;פורטסמות';بورتسموث;پورتسموث;پۆرتسموت;पोर्टस्मथ;পোর্টস্‌মাথ;พอร์ตสมัท;ポーツマス;朴次茅斯;포츠머스; +city::2640101;Poole;POQ;Poole;Pul;Pulas;Puul;pu er;puru;pwl anglstan;Пул;Պուլ;پول، انگلستان;プール;普爾; +city::2640194;Plymouth;Aberplymm;PLH;Pliemue;Plimmuta;Plimouth;Plimowt;Plimut;Plimuta;Plimutas;Pliémue;Plymouth;Suthtun on Defnum;Sūþtun on Defnum;blymwth;peullimeoseu;phli math;plimatha;plymwt;plymwt';plymwth;pu li mao si;purimasu;Πλίμουθ;Плимут;Плимът;Плімут;פלימות';بليموث;پلائیموتھ;پلیموت;پلیموث;प्लिमथ;พลิมัท;プリマス;普利茅斯;플리머스; +city::2640354;Peterborough;Peterborough;Peterbrough;Petersborough;Petroburgum;Piterboras;Piterboro;Pīterboro;XVH;bi de bo lei;pitabara;piteobeoleo;pytrbwrw;Питерборо;Пітерборо;پیتربورو;پیٹربرا;ピーターバラ;彼得伯勒;피터버러; +city::2640677;Paisley;Gorad Pejsli;Paislig;Peislis;Pejsli;Pejzli;Peysli;Pàislig;Páislig;pei si li;peijeulli;peizuri;pyyzly;pyzly;Горад Пейслі;Пейзли;Пейсли;Пейслі;Пејсли;פייזלי;پیزلی;پیزلے;ペイズリー;佩斯利;페이즐리; +city::2640729;Oxford;Ath nan Damh;Gorad Oksfard;OXF;Oksford;Oksforda;Oksfordas;Oksfordo;Oksfuords;Oxford;Oxnaford;Oxonia;Oxphorde;Rhydychen;Rysoghen;akasaforada;akcuportu;aksaphorda;aksfwrd;awksfwrd;niu jin;ogseupeodeu;okkusufodo;oksapharda;oksaphorda;okspordi;x xksf xrd;Àth nan Damh;Οξφόρδη;Горад Оксфард;Оксфорд;Оқсфорд;אוקספורד;אקספארד;آکسفورد;آکسفورڈ;أكسفورد;اوكسفورد;ऑक्सफर्ड;ऑक्सफोर्ड;অক্সফোর্ড;ਆਕਸਫ਼ੋਰਡ;ஆக்சுபோர்டு;ఆక్స్‌ఫర్డ్;ಆಕ್ಸ್‌ಫರ್ಡ್;อ๊อกซฟอร์ด;အောက်စဖို့မြို့;ოქსფორდი;オックスフォード;牛津;옥스퍼드; +city::2641022;Oldham;Oldam;Oldamas;Oldem;Oldema;Oldham;Oldum;Olntam;ao er de mu;awldham;oldeom;orudamu;xo ldam;Όλνταμ;Олдам;Олдем;Олдъм;Օլդեմ;אולדהאם;أولدهام;اولدهام;โอลดัม;オールダム;奧爾德姆;올덤; +city::2641157;Nuneaton;Naniton;Nonne Etone;Nuneaton;XNV;na ni dun;nanytwn;nuniton;Нанитон;نانیتون;ヌニートン;納尼頓; +city::2641170;Nottingham;NQT;Nottigham;Nottingem;Nottingham;nottingamu;nuo ding han;nuo ding xian;nwtnghham;Ноттингем;Ноттингҳам;נוטינגהאם;نوتنغهام;ノッティンガム;諾定咸;诺丁汉; +city::2641181;Norwich;NWI;Nordovicum;Norgouits;Norich;Noridzas;Noridzh;Noridžas;Norvic;Norvich;Norviç;Norwich;narwch;nolichi;noritchi;nuo li qi;nwrwych;nwrwytsh;nx rich;Νόργουιτς;Норвіч;Норидж;Норич;ناروچ;نورويتش;نورویچ;นอริช;ノリッチ;諾里奇;노리치; +city::2641430;Northampton;Norsempton;Nortamptonas;Nortgempton;Northampton;Northamptonia;Nortkhamptun;Nortkhempton;ORM;bei an pu dun;nosaempeuteon;nozanputon;nwrthambtwn;nwrthhambtwn;Νορθάμπτον;Нортгемптон;Нортхамптън;Нортхемптон;Նորթհեմփթոն;نارتھیمپٹن;نورثامبتون;نورثهامبتون;نورث‌همپتون;നോർത്താംപ്റ്റൺ;ノーザンプトン;北安普顿;노샘프턴; +city::2641520;Newtownabbey;Baile na Mainistreach;N'jutaunabbi;N'jutonehbbej;Newtownabbey;Njutaunabi;Njutonabi;niu dui a bi;Њутонаби;Ньютаунабби;Ньютонэббей;Нютаунаби;تیوتاون‌ابی;紐敦阿比; +city::2641598;Newport;Casnewydd;Gorad N'jupart;N'juport;Newport;Niouport;Niuportas;Njuport;Novus Burgus;Nuporta;Nyuport;Trefdraeth;XNE;n'yuporta;niu bo te;niw phxrt;nyupoteu;nyupoto;nywbwrt;nywpwrt;Ņūporta;Νιούπορτ;Њупорт;Горад Ньюпарт;Ньюпорт;Нюпорт;Նյուպորտ;ניופורט;نيوبورت;نیوپورت;نیوپورٹ;نیوپورٹ، ویلز;न्यूपोर्ट;นิวพอร์ต;ニューポート;纽波特;뉴포트; +city::2641673;Newcastle upon Tyne;An Caisteal Nuadh;Gorad N'jukasl-apan-Tajn;N'jukasl;N'jukasl-apon-Tajn;NCL;Neuchate;Neuchâté;Newcastle;Newcastle tren song Tyne;Newcastle trên sông Tyne;Newcastle upon Tyne;Newcastle-on-Tyne;Newcastle-upon-Tyne;Nioukasl;Niukaslas prie Taino;Njukasl na Tajnu;Njukasul upon Tajn;Novum Castellum;Nukasla pie Tainas;Nyukasl apon Tayn;n'yukesala apona ta'ina;ni'ukyasala apana tya'ina;niw khas seilxa phxn thin;nyukaeseul-eopontain;nywkasl;nywkasl abwn tayn;tai en he pan niu ka si er;Ņūkāsla pie Tainas;Νιούκασλ;Њукасл на Тајну;Горад Ньюкасл-апан-Тайн;Ньюкасл;Ньюкасл-апон-Тайн;Нюкасъл ъпон Тайн;ניוקאסטל;ניוקאסל;نيوكاسل أبون تاين;نیوکاسل;نیوکاسڵ;न्यूकॅसल अपॉन टाईन;নিউক্যাসল আপন ট্যাইন;นิวคาสเซิลอะพอนไทน์;ნიუკასლ-აპონ-ტაინი;ニューカッスル・アポン・タイン;泰恩河畔纽卡斯尔;뉴캐슬어폰타인; +city::2641674;Newcastle under Lyme;Newcastle under Lyme;Newcastle-under-Lyme; +city::2642189;Morley;Morley i West Yorkshire;Morli;mwrly ywrkshayr ghrby;Морли;مورلی، یورکشایر غربی; +city::2642214;Morecambe;Morecambe;Morkam;Morkamas;Morkem;mo ke mu;mwrkm;Моркам;Моркем;مورکم;莫克姆; +city::2642465;Milton Keynes;KYN;MK;Middeltūn þǣra de Cahaignes;Milton Keinsas;Milton Keynes;Milton Kins;Milton-Kins;Milton-Kinz;mi er dun kai en si;milteonkeinseu;myltwn kynz;Милтон-Кинс;Мілтон-Кінз;Միլթոն-Քինս;ميلتون كينز;میلتون کینز;ミルトン・キーンズ;米尔顿凯恩斯;밀턴케인스; +city::2642607;Middlesbrough;Gorad Midlsbra;Middlebrough;Middlesborough;Middlesbrough;Midlsbro;Midulzbro;Mintlesmpro;mi de er si bo lei;mid deilsbe rx;midalsabro;mideuljeubeuleo;midlzbro;midoruzubura;mydlsbrw;mydlzbrt;mydlzbwrw;Μίντλεσμπρο;Горад Мідлсбра;Мидлсбро;Мидълзбро;Мідлсбро;מידלזברא;מידלסברו;ميدلزبرة;میدلزبورو;मिडल्सब्रो;มิดเดิลส์เบรอ;მიდლზბრო;ミドルズブラ;米德爾斯伯勒;미들즈브러; +city::2643044;Margate;Margate;Margejt;Margit;ma gai te;mageito;margyt;Маргейт;Маргејт;Маргит;مارگیت;マーゲイト;马盖特; +city::2643097;Mansfield;Mansfield;Mansfijld;Mansfildas;Mehnsfild;Mensfild;ZMA;maenseupildeu;man si fei er de;mansufirudo;mnspyld;mnzfyld;Мансфийлд;Менсфилд;Менсфілд;Мэнсфилд;מנספילד;منزفیلد;マンスフィールド;曼斯菲爾德;맨스필드; +city::2643123;Manchester;Gorad Manchehstehr;MAN;Mameceaster;Manceinion;Mancesteris;Mancestra;Manchain;Manchester;Manchestur;Manchetre;Manchuin;Manchéstér;Manchêtre;Mancunium;Mantsester;Mančesteris;Mančestra;Mánchester;maencheseuteo;maincestara;mamcestara;man che si te;mancestar;manchesuta;manshstr;mnchstr;mnchystyr;mnz'str;myanacestara;myancestar;Μάντσεστερ;Горад Манчэстэр;Манчестер;Манчестър;מאנטשעסטער;מנצ'סטר;مانشستر;مانچسٹر;منچئستئر;منچستر;मँचेस्टर;मैन्चेस्टर;ম্যানচেস্টার;மான்செஸ்டர்;మాంచెస్టర్;ಮ್ಯಾಂಚೆಸ್ಟರ್;മാഞ്ചസ്റ്റർ;แมนเชสเตอร์;მანჩესტერი;ማንችስተር;マンチェスター;曼彻斯特;맨체스터; +city::2643179;Maidstone;Maidstone;Meintstooun;Mejdston;Mejdstoun;medosuton;mei de si tong;meideuseuton;mydnstwn;Μέιντστοουν;Мейдстон;Мейдстоун;Мејдстон;میدنستون;میڈسٹون;メードストン;梅德斯通;메이드스톤; +city::2643186;Maidenhead;Maidenhead;Mejdenkhed;mei deng hei de;meidenheddo;mydnhd;Мейденхед;Мејденхед;میدنهد;メイデンヘッド;梅登黑德; +city::2643266;Macclesfield;Maklsfild;Maklsfildas;Makulsfijld;XMZ;meikeuljeupildeu;Маклсфилд;Макълсфийлд;مک‌کلسفیلد;메이클즈필드; +city::2643339;Luton;Luton;Lutonas;Lutun;lu dun;luteon;lwtn;lwtwn;ruton;Лутон;Лутън;لوتن;لوتون;ルートン;卢顿;루턴; +city::2643490;Lowestoft;Loustoft;Lowestoft;loseutopeuteu;luo si tuo fu te;lwystaft;Лоустофт;لوئستافت;洛斯托夫特;로스토프트; +city::2643567;Loughborough;Lafboro;Loughborough;Lufburou;la fu bao;lafba ra;lafbwrw;leopeubeoleo;rafubara;Лафборо;Лъфбъроу;لافبورو;ลัฟบะระ;ラフバラー;拉夫堡;러프버러; +city::2643736;Derry;Derae;Deri;Derri;Derry;Derry / Londonderry;Derry City;Dhoire;Doire;Doire Choluim Chille;Ker Dherow;LDY;Londenderry;Londonderis;Londonderry;Lunnonderry;de li;deli;dry;dyry;lun dui de li cheng;rondonderi;Дери;Дерри;Деррі;דרי;دری;ديري;ڈیری;ロンドンデリー;伦敦德里城;德里;데리; +city::2643743;London;Gorad Londan;ILondon;LON;Lakana;Landan;Landen;Ljondan;Llundain;Lodoni;Londain;Londan;Londar;Londe;Londen;Londin;Londinium;Londino;Londn;London;London osh;Londona;Londonas;Londoni;Londono;Londons;Londonu;Londra;Londres;Londrez;Londri;Londro;Londye;Londyn;Londýn;Lonn;Lontoo;Loundres;Luan GJon;Lun-tun;Lunden;Lundra;Lundun;Lundunir;Lundúnir;Lung-dung;Lunnainn;Lunnin;Lunnon;Luân Đôn;Lùn-tûn;Lùng-dŭng;Lûn-tun;Lākana;Lůndůn;Lọndọnu;Ranana;Rānana;ilantan;ladana;landan;landana;leondeon;lndn;london;londoni;lun dui;lun dun;lwndwn;lxndxn;rondon;Łondra;Λονδίνο;Горад Лондан;Лондан;Лондон;Лондон ош;Лондонъ;Лёндан;Լոնդոն;לאנדאן;לונדון;لأندأن;لندن;لوندون;لەندەن;ܠܘܢܕܘܢ;लंडन;लंदन;लण्डन;लन्डन्;लन्दन;লন্ডন;ਲੰਡਨ;લંડન;ଲଣ୍ଡନ;இலண்டன்;లండన్;ಲಂಡನ್;ലണ്ടൻ;ලන්ඩන්;ลอนดอน;ລອນດອນ;ལོན་ཊོན།;လန်ဒန်မြို့;ლონდონი;ለንደን;ᎫᎴ ᏗᏍᎪᏂᎯᏱ;ロンドン;伦敦;倫敦;런던; +city::2644204;Livingston;Baile Dhun Leibhe;Baile Dhunleibhe;Baile Dhùnlèibhe;Baile Dhún Léibhe;Baile Leibhinn;Baile Lèibhinn;Leivinstoun;Livingston;Livingston i Skottland;Livingstonas;Livinqston;li wen si tong;lywyngstwn askatlnd;Ливингстон;Лівінгстон;لونگسٹن;لیونگسٹن، مغربی لوتھیان;لیوینگستون، اسکاتلند;利文斯通; +city::2644210;Liverpool;Gorad Liverpul;LPL;Learpholl;Lerphoyll;Lerpwl;Liberpoul;Liverpolium;Liverpool;Liverpuil;Liverpul;Liverpul';Liverpule;Liverpulis;Liverpūle;Livurpul;Liwerpol;Liwérpol;Poll a' Ghruthain;Poll a' Ghrùthain;li wu pu;libeopul;livarapula;livarpul;livharapula;liwexrphul;lybrpwl;lyfrbwl;lywr pwl;lywrpwl;rivu~apuru;Λίβερπουλ;Горад Ліверпул;Ливерпул;Ливерпуль;Ливерпүүл;Ливърпул;Ліверпуль;Լիվերպուլ;ליברפול;ליווערפול;ليفربول;لیور پول;لیورپول;لیڤەرپوول;ܠܝܒܪܦܘܠ;लिवरपूल;लिव्हरपूल;லிவர்பூல்;ಲಿವರ್‌ಪೂಲ್;ലിവർപൂൾ;ลิเวอร์พูล;ლივერპული;ሊቨርፑል፣ እንግሊዝ;リヴァプール;利物浦;리버풀; +city::2644319;Littlehampton;Litlkhempton;Littlehampton;li te er han pu dun;liteulhaempeuteon;Литлхемптон;لیتل‌هامپتون;利特爾漢普頓;리틀햄프턴; +city::2644411;Lisburn;Districtul Lisburn;Lios na gCearrbhach;Lisbern;Lisbernas;Lisburn;Lizbern;li si ben;lijeubeon;lsbrn;lysbwrn;risuban;Лизберн;Лисберн;Лисбърн;لسبرن;لیسبورن;リスバーン;利斯本;리즈번; +city::2644487;Lincoln;Gorad Linkal'n;Lincoln;Lincoln i England;Lindum;Linkol'n;Linkoln;Linkolnas;Linkuln;lin ken;ling khxln;lingkeon;linkona;lnkn anglstan;lnkwln;lynkln anglstan;lynqwln;rinkan;Горад Лінкальн;Линколн;Линкольн;Линкълн;Лінкольн;Լինքոլն;לינקולן;لنكولن;لنکن، انگلستان;لینکلن، انگلستان;লিঙ্কোন;ลิงคอล์น;လင်ကွန်းမြို့၊ အင်္ဂလန်;ლინკოლნი;リンカン;林肯;링컨; +city::2644668;Leicester;Caerlyr;Caerlŷr;Gorad Lestehr;Leicester;Leicestria;Leiscester;Lester;Lestera;Lesteris;Lestur;Leysester;Léyséstér;QEW;lai si te;laystr;les texr;leseuteo;lstr;resuta;Λέστερ;Горад Лестэр;Лестер;Лестър;לסטר;לעסטער;لايستر;لستر;لیسسٹر;เลสเตอร์;レスター;莱斯特;레스터; +city::2644688;Leeds;Gorad Lids;LBA;Ledesia;Leeds;Lids;Lidsa;Lidsas;Lijds;Lints;Loidis;Līdsa;Ritis;li ci;lidjha;lids;lidsa;lidzi;lie si;lijeu;lyds;lydz;rizu;Ληντς;Горад Лідс;Лидс;Лийдс;Лідс;Լիդս;לידז;לידס;ليدز;لیدز;لیڈز;ܠܝܕܣ;लीड्स;લીડ્ઝ;లీడ్స్;ಲೀಡ್ಸ್;ลีดส์;ლიდზი;リーズ;列斯;利兹;리즈; +city::2644737;Royal Leamington Spa;Leamington;Leamington Spa;Lemington;Lemington Spa;Rojal Lemington Spa;Rojal-Lemington-Spa;Royal Leamington Spa;huang jia li ming dun wen quan;rwyal lymyngtwn aspa;Лемингтон;Лемингтон Спа;Ройал-Лемингтон-Спа;Ројал Лемингтон Спа;رویال لیمینگتون اسپا;ロイヤル・レミントン・スパ;皇家利明頓溫泉; +city::2645418;Kingswood;Kingsvud;Kingswood;Кингсвуд; +city::2645425;Kingston upon Hull;Hull;Kingston upon Hull;Kingston-apon-Khall;Kingston-upon-Hull;he er he pan jing shi dun;Кингстон-апон-Халл;האל;赫爾河畔京士頓; +city::2645724;Kidderminster;Kidderminster;Kiderminster;Kiderminsteris;ji de ming si te;kydrmynstr;Кидерминстер;کیدرمینستر;基德明斯特; +city::2645753;Kettering;Ketering;Kettering;Keturing;kai te ling;ketaringu;keteoling;ktryng;Кетеринг;Кеттеринг;Кетъринг;کترینگ;ケタリング;凱特靈;케터링; +city::2645889;Keighley;Keighley;Kejli;Kitli;ji si li;kyly;Кейли;Китли;کیلی;کیگلے;基斯利; +city::2646003;Islington;District londonien d'Islington;Islington;Islinqton;Izlingtan;ayzlyntn;ijeullingteon;izurinton;yi si ling dun;İslinqton;Ізлінгтан;Ислингтон;איזלינגטון;ازلنگٹن، لندن;ایزلینتن;იზლინგტონი;イズリントン;伊斯靈頓;이즐링턴; +city::2646057;Ipswich;Gippevicum;IPW;Ipsuich;Ipsvicas;Ipsvich;Ipsvičas;Ipswich;abswtsh;aypswyych;ibseuwichi;ipsuichi;ipsvic;ipusuu~itchi;xips wich;yi pu si wei qi;ʼypswwyz;Іпсвіч;Ипсвич;Ипсуич;Իպսուիչ;איפסוויץ;إبسوتش;ایپسوییچ;இப்ஸ்விச்;อิปสวิช;იფსუიჩი;イプスウィッチ;伊普斯威奇;입스위치; +city::2646329;Huyton;Huyton;Huyton with Roby;Khejton;Хейтон; +city::2646458;Huddersfield;Chantersfilnt;Gaddersfild;Gorad Khadehrsfild;Haddersfild;Hadersfild;Hadersfildas;Huddersfield;Khaddersfild;Khadersfild;Khudursfijld;attarcupiltu;ha de si fei er de;hadasufirudo;haderzpildi;hadrzfyld;hdrsfyld;heodeojeupildeu;Χάντερσφιλντ;Гаддерсфілд;Горад Хадэрсфілд;Хаддерсфилд;Хадерсфилд;Хъдърсфийлд;Հադերսֆիլդ;هادرزفیلد;هدرسفيلد;அட்டர்சுபீல்டு;ჰადერზფილდი;ハダースフィールド;哈德斯菲爾德;허더즈필드; +city::2646504;Hove;Hove;Hove i England;Khouv;Khov;hovu;hww anglstan;Хов;Хоув;هوو، انگلستان;ホヴ; +city::2646557;Horsham;Horsham;Khorsham;Khorshehm;Khorshum;West Horsham;hwrshm;Хоршам;Хоршъм;Хоршэм;هورشم; +city::2646914;High Wycombe;Chepping;HYC;High Wycombe;Khaj Uikumb;Khaj Vikom;Khaj-Uikom;Wycombe;hai wei ke mu;haiwikeom;hay waykamb;hi wi khamb;Хай Уикъмб;Хай-Уиком;Хај Виком;های وایکامب;ไฮวิคัมบ์;ハイ・ウィカム;海威科姆;하이위컴; +city::2647074;Hereford;Gereford;HFH;Henffordd;Hereford;Herefordas;Herefordia;Hererford;Khereford;Khereforde;he li fu de;he ri f xrd;helipeodeu;herefodo;hrfwrd;hrfwrd anglstan;hrpwrd;xi fu;Герефорд;Херефорд;Херефорде;Հերերֆորդ;הרפורד;هرفورد;هرفورد، انگلستان;ہیریفورڈ;เฮริฟอร์ด;ヘレフォード;禧福;赫里福德;헤리퍼드; +city::2647138;Hemel Hempstead;Hemel;Hemel Hempstead;Khemel Khempsted;he mo er heng pu si te de;hemeolhempeuseutedeu;hml hmpstd;Хемел Хемпстед;همل همپستد;ヘメル・ヘムステッド;赫默爾亨普斯特德;헤멀헴프스테드; +city::2647356;Hastings;Gastings;Hastings;Heistingsas;Khejstings;hai si ting si;heiseutingseu;heisutingusu;hystnghs;hystyngz;Гастингс;Гастінгс;Хейстингс;Хејстингс;Հասթինգս;هيستنغس;هیستینگز;ヘイスティングス;海斯廷斯;헤이스팅스; +city::2647400;Hartlepool;Harlepolis;Hartlepool;Hartlepulas;Khartlpul;ha te er pu;har tli phul;hatorupuru;Хартлпул;هارتل‌پول;ฮาร์ตลีพูล;ハートルプール;哈特爾浦; +city::2647428;Harrogate;HRT;Harrogate;Kharrogejt;ha luo gai te;harogeito;harwghyt;hrwgyt;Харрогейт;هاروغيت;هروگیت;ჰეროგეიტი;ハロゲイト;哈罗盖特; +city::2647461;Harlow;Gorad Kharlau;Harlow;Kharlou;hallo;harlw;harou;Горад Харлаў;Харлоу;هارلو;ہارلو;ハーロウ;할로; +city::2647570;Hamilton;Baile Hamaltan;Gamil'ton;Hamaltan;Hamilton i Skottland;Hamiltonas;Hamiltoun;Həmilton;Khamiltun;hamiruton;han mi er dun;hmyltwn;Гамильтон;Гамільтон;Хамилтън;همیلتون;ہملٹن;ہیملٹن، جنوبی لینکاشائر;ハミルトン;漢密爾頓; +city::2647632;Halifax;Galifaks;Halifax;Halifax i England;Khalifaks;ha li fa ke si;haellipaegseu;harifakusu;hlyfks;Галифакс;Халифакс;האליפאקס;هلیفکس;ハリファクス;哈利法克斯;핼리팩스; +city::2647639;Halesowen;Halesowen;Heilsovenas;Khejlsoven;hylzawwn;Хейлсовен;Хејлсовен;هیلزاوون; +city::2647793;Guildford;Gildfordas;Gilford;Gilfordia;Guildford;Guilford;ghldfwrd;gilpeodeu;girufodo;gyldfwrd;ji er fu de;Гилфорд;Гілфорд;غلدفورد;گیلدفورد;گیلڈفورڈ;ギルフォード;吉爾福德;길퍼드; +city::2647878;Grimsby;GSY;Great Grimsby;Grimsbi;Grimsbis;Grimsby;Grimzbi;ge li mu si bi;geulimjeubi;grymsbay;gurimuzubi;Гримзби;Гримсби;گریمسبای;グリムズビー;格里姆斯比;그림즈비; +city::2647984;Great Yarmouth;Gorad Grehjt-Jarmut;Grejt Jarmut;Grejt-Jarmut;Yarmouth;geuleiteuyameoseu;gryt yarmwth;Горад Грэйт-Ярмут;Грейт-Ярмут;Грејт Јармут;گریت یارموث;グレート・ヤーマス;그레이트야머스; +city::2648182;Grays;Grays;Grays Thurrock;Grejz;ge lei si;geuleiseu;gryz anglstan;Грејз;گریز، انگلستان;格雷斯;그레이스; +city::2648187;Gravesend;Gravesend;Grejvsend;Grejvzend;ge lei fu sen de;geuleibeujendeu;grywznd;Грейвзенд;Грејвсенд;گریوزند;格雷夫森德;그레이브젠드; +city::2648272;Gosport;Gosport;gaspwrt;ge si bo te;Госпорт;گاسپورت;戈斯波特; +city::2648404;Gloucester;Caerloyw;GLO;Glevum;Gloster;Glosteris;Glostur;Gloucester;Glutsester;Glutséstér;Gorad Glostehr;gao luo shi da;ge luo si te;geulloseuteo;ghlwstr;glastr;glwstr;gurosuta;jlwstr;klxs texr;Глостер;Глостър;Горад Глостэр;Գլոստեր;גלאסטער;גלוסטר;جلوستر;غلوستر;گلاستر;گلوسسٹر;گلوسٹر;กลอสเตอร์;グロスター;告羅士打;格洛斯特;글로스터; +city::2648579;Glasgow;GLA;Glascho;Glaschu;Glaschú;Glasgovo;Glasgow;Glasgua;Glaskobe;Glazgas;Glazgo;Glazgos;Glazgou;Glazgov;Glazgova;Glazgua;Glesga;Glázgua;Glāzgova;Gorad Glazga;Kak-la-su-ko;Kak-là-sṳ̂-kô;Qlazqo;galasago;ge la si ge;geullaeseugo;ghlaskw;glasago;glasgo;glasgw;glasgwv;glazgo;glyasgo;gurasugo;jlasjw;kilasko;klas kow;Γλασκώβη;Глазго;Глазгов;Глазгоу;Горад Глазга;Գլազգո;גלאזגא;גלאזגו;جلاسجو;غلاسكو;گلاسگو;گلاسگوۋ;گلاسگۆ;ग्लासगो;ग्लास्गो;গ্লাসগো;ਗਲਾਸਗੋ;கிளாஸ்கோ;గ్లాస్గో;ಗ್ಲ್ಯಾಸ್ಗೋ;กลาสโกว์;ဂလပ်စဂိုးမြို့;გლაზგო;ግላዝጎ;グラスゴー;格拉斯哥;글래스고; +city::2648657;Gillingham;Dzhillingem;Dzilingam;Dzilingamas;Džilingamas;Gillingham;gylynghʼm;jiringamu;jylyngham knt;Џилингам;Джиллингем;גילינגהאם;جیلینگهام، کنت;ジリンガム; +city::2648773;Gateshead;Gateshead;Gateshead-on-Tyne;Geitshedas;Gejtskhed;Gorad Gejtskhed;gai ci hei de;geicheuhedeu;getsuheddo;gyytshd;jytshyd;Гейтсхед;Гејтсхед;Горад Гейтсхед;גייטסהד;גייטסהעד;جيتشيد;گیتس‌هد;გეიტსჰედი;ゲーツヘッド;蓋茨黑德;게이츠헤드; +city::2648970;Fylde;Borough of Fylde;Fylde;Fylde Borough;Fylde Coast; +city::2649258;Folkestone;Fokston;Folkestone;Folkston;fu ke si tong;fwkstwn;fwlkstwn;Фокстон;Фолкстон;فولكستون;فوکستون;福克斯通; +city::2649672;Farnborough;FAB;Farnboro;Farnborough;Farnborough i Hampshire;fa en bo lei;farnbrt;farn‌bwrw hmpshr;Фарнборо;פארנבורו;فارنبرة;فارن‌بورو، همپشر;法恩伯勒; +city::2649692;Fareham;farham;fei lei mu;فارهام;แฟร์อัม;費勒姆; +city::2649808;Exeter;Caerwysg;EXT;Ehkseter;Ekseter;Eksetera;Ekseteris;Eksetur;Exanceaster;Exeter;Exonia;Karesk;ai ke sai te;akstr;akztr;egseoteo;ekuseta;xek se texr;xek si texr;ya xi te;Ексетер;Ексетър;Эксетер;Էքսետեր;אקסטר;עקסעטער;إكزتر;اکستر;ایکسٹر;เอกเซเตอร์;เอ็กซิเตอร์;エクセター;埃克塞特;雅息特;엑서터; +city::2649911;Esher;Ehsher;Esher;Эшер; +city::2649997;Enfield Town;Enfield; +city::2650096;Ellesmere Port;Ellesmere Port;Elsmir Port;ai er si mi er gang;alzmr pwrt;Елсмир Порт;الزمر پورت;埃爾斯米爾港; +city::2650225;Edinburgh;Aebura;Caeredin;Dinedin;Doon Edin;Dun Eideann;Dùn Èideann;Dún Éideann;EDI;Ebora;Edimborg;Edimborgh;Edimbourg;Edimbourgo;Edimburg;Edimburgh;Edimburgo;Edimburgo - Dun Eideann;Edimburgo - Dùn Èideann;Edimburgu;Edimburgum;Edimbùrgh;Edinbo;Edinboarch;Edinborg;Edinburc;Edinburg;Edinburga;Edinburgas;Edinburgh;Edinburgo;Edinburq;Edinburrie;Edynburg;Ehdinburg;Embra;Gorad Ehdynburg;Idinburg;adnbrt;adynbrw;ai ding bao;edeunbeoleo;edinabara;edinbara;edinburgi;etinparo;xedinbara;Édimbourg;Εδιμβούργο;Горад Эдынбург;Единбург;Эдинбург;Էդինբուրգ;אדינבורו;עדינבורג;إدنبرة;ئێدینبەرە;ادینبرو;ایڈنبرا;एडिनबरा;एदिनबरा;এডিনবরা;எடின்பரோ;ಎಡಿನ್‌ಬರ್ಗ್‌‌;എഡിൻബറോ;เอดินบะระ;အက်ဒင်ဗာရာမြို့;ედინბურგი;エディンバラ;爱丁堡;에든버러; +city::2650396;Eastleigh;Eastleigh;Istli;yi si te li;Истли;ایست‌لی;伊斯特利; +city::2650405;East Kilbride;Cille Bhrighde an Ear;Cille Bhrìghde an Ear;Cille Bhríghde an Ear;East Kilbride;East Kilbridge;Ist Kilbraidas;Ist Kilbrajd;Ist Kilbrayd;Ist-Kilbrajd;Keeill Vreeshey Hiar;ayst kylbrayd;dong ji er bu lai de;iseuteukilbeulaideu;İst Kilbrayd;Іст-Кілбрайд;Ист Килбрайд;Ист Килбрајд;ایست کیلبراید;ایسٹ کلبرائیڈ;イースト・キルブライド;東基爾布萊德;이스트킬브라이드; +city::2650497;Eastbourne;Eastbourne;Istborn;Istbornas;isutobon;yi si te ben;Істборн;Истборн;ایست‌بورن;イーストボーン;伊斯特本; +city::2650657;Dunstable;Danstabl;Dunstable;Ntansteimpl;danstybl;dansutaburu;deng si te bu er;dwnstabl;Ντάνστεϊμπλ;Данстабл;دانستیبل;دونستابل;ダンスタブル;鄧斯特布爾; +city::2650732;Dunfermline;Danfermlin;Danfermlinas;Danfrmlin;Dun Pharlain;Dunfaurlin;Dunfermline;Dunfurmlin;Dùn Phàrlain;Dún Phárlain;Gorad Danfermlin;dan feir mlin;danfamurin;deng fu mu lin;dmfrlyn;Горад Данфермлін;Данфермлин;Данфермлін;Дънфърмлин;Դանֆրմլին;دانفرم‌لاین;دمفرلين;ڈنفرملائن;ดันเฟิร์มลิน;ダンファームリン;鄧弗姆林; +city::2650752;Dundee;DND;Dandi;Dandī;Dun De;Dun Deagh;Dundee;Dundi;Dùn Dè;Dùn Dèagh;Dún Déagh;Gorad Dandy;Ntanti;Taodunum;dan di;dandi;dandy;deng de;deng di;deondi;dndy;Νταντί;Горад Данды;Данди;Данді;Дънди;Դանդի;דנדי;داندی;دندي;ڈنڈی شہر;ڈنڈی، سکاٹ لینڈ;डंडी;ดันดี;დანდი;ダンディー;登地;邓迪;던디; +city::2650839;Dudley;Dadli;Dadlis;Dudley;Dudli;Ntantlei;da de li;dad liy;dadly anglstan;dadori;Ντάντλεϊ;Дадли;Дадлі;Дъдли;Դադլի;دادلی، انگلستان;ดัดลีย์;ダドリー;達德利; +city::2651123;Doncaster;DSA;Denocestria;Doncaster;Donkaster;Donkasteris;Donkastur;Gorad Dankastehr;dongkeoseuteo;donkasuta;dwnkastr;dxng khas texr;tang ka shi da;tang ka si te;Горад Данкастэр;Донкастер;Донкастър;دونكاستر;دونکاستر;ดองคัสเตอร์;ドンカスター;唐卡士打;唐卡斯特;동커스터; +city::2651286;Dewsbury;D'jusberi;Dewsbury;Diusberis;Djusburi;Djuzberi;ZEQ;di si bo li;dwzbry;Дьюсбери;Дюсбъри;Дјузбери;دوزبری;迪斯伯里; +city::2651347;Derby;Darbi;Deoraby;Derbi;Derbia;Derbis;Derby;Derby i Derbyshire;Dérbi;Dārbi;Dēoraby;Gorad Dehrbi;Ntermpi;dabi;dar bi;darbi;darby anglstan;de bi;deobi;drby;dyrby;Ντέρμπι;Горад Дэрбі;Дарби;Дерби;Дербі;Դերբի;דארבי;דרבי;داربی، انگلستان;ديربي;ڈربی;डर्बी;ডার্বি;ดาร์บี;ደርቢ;ダービー;德比;더비; +city::2651500;Dartford;Dartford;Dartfordas;Dartforde;da te fu de;dartfwrd;dateupeodeu;Дартфорд;Дартфорде;دارتفورد;達特福德;다트퍼드; +city::2651513;Darlington;Darlington;Darlingtonas;Ntarlin'nkton;XVG;da ling dun;dallingteon;darinton;darlynghtwn;darlyngtwn;Ντάρλινγκτον;Дарлингтон;Дарлінгтон;دارلينغتون;دارلینگتون;ダーリントン;达灵顿;達靈頓;달링턴; +city::2651621;Dagenham;da gen lin;daegeoneom;dagenamu;dagnham;dajnham;deganahama;داجنهام;داگنهام;डेगनहम;ダゲナム;達根林;대거넘; +city::2651715;Cumbernauld;Comar nan Allt;Cummernaud;Kambernold;Kambernoldas;Kumburnold;kambrnwld;kan bo nuo er de;kanbanorudo;kham bexr nx ld;Камбернолд;Къмбърнолд;کامبرنولد;کمبرنالڈ;คัมเบอร์นอลด์;カンバーノールド;坎伯諾爾德; +city::2651817;Croydon;Croydon;Croydon Grants;Croydon London;Krojdun;Kroydon;ke luo yi deng;krwydwn;kuroidon;Кройдън;کرویدون;クロイドン;克羅伊登; +city::2652002;Crewe;Crewe;Krju;Kru;XVC;ke lu;keulu;krw chshr;kuru;Кру;Крю;کرو، چشر;クルー;克魯;크루; +city::2652053;Crawley;Crawley;Krolis;Krouli;ke lao li;Кроули;克劳利; +city::2652221;Coventry;CVT;Coventria;Coventry;Gorad Koventry;Koventri;Koventrija;Koventris;Kovuntri;kao wen chui;kawntry;khx wen thri;kobeonteuli;kovhentri;kovu~entori;kwfntry;qwbntry;Κόβεντρι;Горад Ковентры;Ковентри;Ковентрі;Ковънтри;קובנטרי;كوفنتري;کاونتری;کونٹری;कॉव्हेंट्री;คอเวนทรี;ကိုဗင်ထရီမြို့;კოვენტრი;コヴェントリー;考文垂;코번트리; +city::2652381;Corby;Corby;Korbi;kobi;kwrby;Корби;کوربی;コービー; +city::2652618;Colchester;CLB;Camulodunum;Colchester;Colneceaster;Kolcesteris;Kolchest"r;Kolchester;Kolčesteris;gao che shi da;ke er qie si te;kolcheseuteo;koruchesuta;kwlchstr;kwlshystr;kwltshystr;qwlzstr;Колчестер;Колчестър;Կոլչեստր;קולצסטר;كولتشيستر;كولشيستر;کولچستر;コルチェスター;科尔切斯特;高車士打;콜체스터; +city::2652974;Clacton-on-Sea;Clacton;Clacton al Mar;Clacton-on-Sea;Klakton na Moru;Klakton-on-Si;Pajurio Klaktonas;Pajūrio Klaktonas;klktwn-an-sy;Клактон на Мору;Клактон-он-Си;کلکتون-آن-سی; +city::2653225;Chesterfield;Cesterfildas;Chesterfield;Chesterfild;Chesturfijld;ZFI;che shi da fei te;cheseuteopildeu;chesutafirudo;chstrfyld;Česterfildas;Честерфилд;Честърфийлд;Չեստըրֆիլտ;چسترفیلد;چیسٹرفیلڈ;ჩესტერფილდი;チェスターフィールド;車士打菲特;체스터필드; +city::2653228;Chester;CEG;Caer;Cesteris;Cestria;Chester;Chestur;Deva;Tsester;Yn Chaayr;Yn Çhaayr;che shi da;ches texr;cheseuteo;chesuta;chstr;qie si te;tshstr;zstr;Česteris;Τσέστερ;Честер;Честър;Չեստեր;צסטר;تشستر;چستر;چیسٹر;เชสเตอร์;ချက်စတာမြို့;ቸስተር;チェスター;切斯特;車士打;체스터; +city::2653232;Cheshunt;Chesant;Cheshunt;chznt;qie sen te;Чесант;چزنت;切森特; +city::2653261;Cheltenham;CHW;Celtnamas;Cheltenam;Cheltenham;Cheltnem;Cheltnum;chelteuneom;cheltnam;cherutonamu;chltnham;qie er teng na mu;shltnham;Čeltnamas;Челтенам;Челтнем;Челтнъм;צ'לטנהאם;شلتنهام;چلتنهام;เชลต์นัม;チェルトナム;切爾滕納姆;첼트넘; +city::2653266;Chelmsford;Celmsfordas;Celmsfuords;Chelmsford;chelleumseupeodeu;cherumusufodo;chlmzfwrd;qie er mu si fu de;tshylmsfwrd;zlmspwrd;Čelmsfordas;Čelmsfuords;Челмсфорд;צלמספורד;تشيلمسفورد;چلمزفورد;چلمسفورڈ;ቸልምስፎርድ;チェルムスフォード;切爾姆斯福德;첼름스퍼드; +city::2653305;Chatham;Catamas;Chatam;Chatem;Chatham;Chatham i Kent;chaeteom;chatamu;chatham knt;Čatamas;Чатам;Чатем;چاتهام، کنت;チャタム;채텀; +city::2653558;Castlereagh;; +city::2653584;Castleford;Kasulford;kslfwrd;Касълфорд;کسلفورد; +city::2653775;Carlisle;CAX;Caerliwelydd;Carliolum;Carlisle;Cathair Luail;Karlail;Karlailas;Karlajl;Karlayl;Luel;ka lai er;kallail;karairu;karlayl;karlayl kambrya;kharlil;Καρλάιλ;Карлайл;Карлајл;Կարլայլ;كارلايل;کارلایل، کامبریا;คาร์ไลล์;კარლაილი;カーライル;卡萊爾;칼라일; +city::2653822;Cardiff;CWL;Caerdydd;Cairdiff;Cardiff;Cardiffa;Cayr Deeth;Gorad Kardyf;Kadif;Kardif;Kardifa;Kardifas;Kardiff;Kardip;Kardydh;Karntif;Kerdiz;Kārdifa;jia de fu;kadifu;kadipeu;karadifa;kardifa;kardipha;kardyf;kartihp;khardif f;Κάρντιφ;Горад Кардыф;Кардиф;Кардифф;Кардіфф;Քարդիֆ;קארדיף;كارديف;کاردیف;کارڈف;कार्डिफ;कार्डिफ़;কার্ডিফ;ਕਾਰਡਿਫ਼;கார்டிஃப்;കാർഡിഫ്;คาร์ดิฟฟ์;ကားဒစ်မြို့;კარდიფი;カーディフ;加的夫;카디프; +city::2653877;Canterbury;Caergaint;Canterbury;Cantorbery;Cantorbéry;Cantuaria;Cantuária;Cantwaraburg;Cantwarebyrig;Durovernum;Durovernum Canticorum;Gorad Kentehrbery;Kantaraborg;Kanterberi;Kantermperi;Kenterberi;Kenterberija;Kenterberis;Kenturburi;gen de bo li;kaenteobeli;kan te bo lei;kantaberi;kantrbyry;kntrbry;qntrbry;Κάντερμπερι;Горад Кентэрберы;Кантербери;Кентербери;Кентербері;Кентърбъри;Քենթերբերի;קנטרברי;كانتربيري;کنتربری;カンタベリー;坎特伯雷;根德伯里;캔터베리; +city::2653883;Cannock;Cannock;Kannok;Kanok;Kanokas;Kanuk;kaeneog;kanwk;Каннок;Канок;Канък;کانوک;캐넉; +city::2653941;Cambridge;CBG;Caergrawnt;Cambridge;Cantabrigia;Gorad Kembrydzh;Grantanbrycg;Kambrij;Kejmbridzh;Kembric;Kembridz;Kembridza;Kembridzas;Kembridzh;Kembridža;Kembridžas;Kembrigo;Kembriĝo;Kempritz;Kiam-khiau;Kiam-khiâu;jian qiao;kambrydj;keimbeuliji;kembridj;kembrij;kembrija;kenburijji;khem bridc;kmbryj;kyamabrija;kymbrj;qyymbrydg';Κέμπριτζ;Горад Кембрыдж;Кеймбридж;Кембридж;Кембриџ;Кембриҷ;Кембрідж;Քեմբրիջ;קיימברידג';كامبريدج;کمبریج;کیمبرج;केंब्रिज;ক্যামব্রিজ;ಕೇಂಬ್ರಿಜ್;കേംബ്രിഡ്ജ്;เคมบริดจ์;ကိန်းဘရစ်ချ်မြို့;კემბრიჯი;ケンブリッジ;劍橋;케임브리지; +city::2654187;Bury;Beri;Beris;Bury;bei li;beli;beri;bo li;bry;Бери;Бері;بری;ベリー;伯里;貝利;베리; +city::2654200;Burton upon Trent;Berton-apon-Trent;Bertonas prie Trento;Burton upon Trent;Burton-on-Trent;Burton-upon-Trent;Burtun upon Trent;bartwn apwn trnt;beoteon-eoponteulenteu;te lun he pan bo dun;Бертон-апон-Трент;Бъртън ъпон Трент;بارتون آپون ترنت;特倫河畔伯頓;버턴어폰트렌트; +city::2654264;Burnley;Bernlei;Bernli;Bernlis;Burnley;Burnli;ban ni;banri;beonli;bo en li;brnly;Μπέρνλεϊ;Бернли;Бернлі;Бърнли;ברנלי;برنلی;バーンリー;伯恩利;般尼;번리; +city::2654394;Buckley;Buckley;Bukli;Bwcle;Бъкли; +city::2654675;Bristol;BRS;Bricgstōƿ;Briosto;Briostó;Bristo;Bristol;Bristol';Bristole;Bristolis;Bristolium;Bristolo;Briston;Bristul;Bristullu;Bristón;Bryste;Brístol;Gorad Brystal';beuliseuteul;bris txl;bristala;brystwl;bu li si tuo er;burisutoru;Μπρίστολ;Бристол;Бристоль;Бристъл;Горад Брысталь;Բրիստոլ;בריסטאל;בריסטול;برسٹل نگر;بريستول;بریستول;ब्रिस्टल;ಬ್ರಿಸ್ಟಲ್‌;บริสตอล;ბრისტოლი;ブリストル;布里斯托尔;브리스틀; +city::2654710;Brighton;BSH;Braiton;Braitona;Braitonas;Brajton;Brajtono;Brajtun;Brighton;Brightonia;Gorad Brajtan;bai li dun;beulaiteon;bir tan;bra'itana;brayatana;braytwn;bryytwn;bu lai dun;buraiton;Μπράιτον;Брайтон;Брайтън;Брајтон;Горад Брайтан;Բրայթոն;ברייטון;برائٹن;برايتون;برایتون;ब्रायटन;ব্রাইটন;ไบรตัน;ბრაიტონი;ブライトン;布赖顿;白禮頓;브라이턴; +city::2654755;Bridgend;Bridgend;Bridgend County Borough;Bridzendas;Bridzhend;Bridžendas;Pen-y-bont ar Ogwr;beulijendeu;burijendo;Бридженд;ブリジェンド;브리젠드; +city::2654782;Brentwood;Brentud;Brentvud;Brentwood;Brentwood i Essex;beulenteuudeu;brntwwd asks;bu lun te wu de;Брентвуд;Брентуд;برنتوود، اسکس;برینٹووڈ، ایسیکس;布倫特伍德;브렌트우드; +city::2654938;Braintree;Braintree;Braintree i Essex;Brejntrij;WXF;brayntry asks;Брейнтрий;براینتری، اسکس; +city::2654993;Bradford;BRF;Bradanford;Bradford;Bradfordas;Brantfornt;Bredford;Bredforda;Brehdford;Brədford;Gorad Brehdfard;ba la fu te;beulaedeupeodeu;bradfwrd;brdpwrd;bredpordi;bu la de fu de;buraddofodo;Μπράντφορντ;Брадфорд;Бредфорд;Брэдфорд;Горад Брэдфард;Բրեդֆորդ;בראדפארד;ברדפורד;برادفورد;بریڈفورڈ;ბრედფორდი;ብራድፎርድ;ブラッドフォード;巴拉福特;布拉德福德;브래드퍼드; +city::2655009;Bracknell;Bracknell;Braknel;braknl;bu la ke nei er;Бракнел;براکنل;布拉克內爾; +city::2655095;Bournemouth;BOH;Bornemouth;Bornmut;Bornmutas;Bournemouth;bo en mao si;bonmasu;bonmeoseu;bor nmath;bornmuti;bwrnmwth;Борнмут;Борнмът;بورنموث;বোর্ন্‌মাথ;โบร์นมัท;ბორნმუთი;ボーンマス;伯恩茅斯;본머스; +city::2655198;Bootle;Bootle;Butl;Butlis;bu te er;bwtl anglstan;Бутл;بوتل، انگلستان;布特爾; +city::2655237;Bolton;Bolton;Boltonas;Boltonium;Boltun;bao dun;bo er dun;bol tan;bolteon;boruton;bwltn;bwltwn;Болтон;Болтън;Բոլթոն;بولتن;بولتون;โบลตัน;ბოლტონი;ボルトン;保頓;博尔顿;볼턴; +city::2655262;Bognor Regis;Bognor;Bognor Regis;Bognor Ridzis;Bognor Ridzisas;Bognor Ridžisas;bagnwr rjys;bo ge nuo li ji si;Богнор Риџис;باگنور رجیس;博格諾里吉斯; +city::2655351;Bletchley;Blechli;blchly;bu lai qi li;Блечли;بلچلی;布莱奇利; +city::2655459;Blackpool;BLK;Blackpool;Blakpul;Blakpulas;Blehkpul;Blekpul;Bləkpul;beullaegpul;blakbwl;blyakapula;burakkupuru;hei tan;Блакпул;Блекпул;Блэкпул;بلاكبول;بلک‌پول;ব্ল্যাকপুল;แบล็กพูล;ბლეკპული;ブラックプール;黑潭;블랙풀; +city::2655524;Blackburn;Blackburn;Blakbernas;Blakboern;Blakbörn;Blehkbern;Blekbern;Blekburn;beullaegbeon;blk‌brn;blqbrn;bu lai ke ben;bu li ban;burakkuban;Блекберн;Блекбърн;Блэкберн;Բլեկբերն;בלקברן;بلک‌برن;แบล็กเบิร์น;ブラックバーン;布力般;布莱克本;布萊克本;블랙번; +city::2655603;Birmingham;BHX;Birmin'gxam;Birmingam;Birmingamas;Birmingem;Birmingema;Birmingham;Birminghamia;Birminghem;Gorad Birmingem;Mpermincham;bamingamu;barming'hyam;barmingahama;barmingahema;barmingham;barminghama;beoming-eom;birmingemi;bo ming han;bo ming han shi;brmngm;brmynghham;byrmngam;parminkam;Μπέρμιγχαμ;Бирмингам;Бирмингем;Бірмінгем;Горад Бірмінгем;Բիրմինգհեմ;בירמינגהאם;ברמינגהאם;برمنگم;برمينغهام;بیرمنگام;बर्मिंगहॅम;बर्मिंघम;बर्मिङ्घम्;બર્મિંગહામ;பர்மிங்காம்;బర్మింగ్‌హామ్;ಬರ್ಮಿಂಗ್ಹ್ಯಾಮ್;เบอร์มิงแฮม;ბირმინგემი;በርሚንግሃም;バーミンガム;伯明翰;伯明翰市;버밍엄; +city::2655613;Birkenhead;Berkenged;Berkenhedas;Berkenkhed;Birkenhead;Birkenkhed;Kione Beih;Penbedw;bakenheddo;beokeonhedeu;bexr khen hed;Беркенгед;Беркенхед;Биркенхед;برکن‌هد;ബ്രിക്കൻഹെഡ്;เบอร์เคนเฮด;バーケンヘッド;버컨헤드; +city::2655984;Belfast;BFS;Beal Feirste;Beeal Feirshtey;Belfast;Belfast City;Belfasta;Belfastas;Belfasto;Belfastum;Belffast;Belfāsta;Belpas;Beul-Feirste;Bèlfast;Béal Feirste;Bélfast;Gorad Belfast;Mpelphast;baelpaseuteu;bei er fa si te;belaphasta;belfast;belpaseuteu;berufasuto;blfast;pelpast;Μπέλφαστ;Белфаст;Горад Белфаст;Բելֆաստ;בלפאסט;בעלפאסט;بلفاست;بیلفاسٹ;बेलफास्ट;বেলফাস্ট;பெல்பாஸ்ட்;ಬೆಲ್‌ಫಾಸ್ಟ್‌;เบลฟัสต์;ဗဲလဖတ်မြို့;ბელფასტი;ベルファスト;貝爾法斯特;贝尔法斯特;밸파스트;벨파스트; +city::2656046;Bedford;Bedford;Bedfordia;XQD;bdfwrd anglstan;bedeupeodeu;bydfwrd;Бедфорд;בעדפארד;بدفورد، انگلستان;بيدفورد;베드퍼드; +city::2656065;Beckenham;Beckenham;bekenahama;bekkunamu;bknham;بکنهام;بیکنہیم، لندن;बेकेनहम;ベックナム; +city::2656168;Batley;Batley;Batli;ba te li;batly;Батли;باتلی;巴特利; +city::2656173;Bath;Aquae Sulis;Ba;Badanceaster;Bat;Bata;Batas;Bath;Baðanceaster;Bāta;Caerfaddon;Gorad Bat;QQX;ba si;baseu;basu;bath;bati;bʼt;Μπαθ;Бат;Горад Бат;Բաթ;באת;باتھ;باتھ، سومرسیٹ;باث;บาธ;ბათი;バース;巴斯;바스; +city::2656192;Basingstoke;Basingstoke;Behjsingstok;Beisin'nkstoouk;Bejzingstouk;XQB;basyngstwk;bei xin si tuo ke;beijingusutoku;beisingseutokeu;byysyngstwq;Μπεϊσινγκστόουκ;Бејзингстоук;Бэйсингсток;בייסינגסטוק;باسینگستوک;ベイジングストーク;貝辛斯托克;베이싱스토크; +city::2656194;Basildon;Basildon;Bazildon;Bazildonas;Bazildun;Gorad Bazildan;ba xi er deng;baejildeon;bajirudon;bzyldwn;Базилдон;Базилдън;Басилдон;Горад Базілдан;بزیلدون;バジルドン;巴西爾登;배질던; +city::2656235;Barry;Bari;Baris;Barri;Barry;Barry i Wales;Beri;Y Barri;ba li;bry wlz;Бари;Барри;Баррі;Бери;בארי;بری، ولز;巴里; +city::2656284;Barnsley;Barnsley;Barnsli;Barnslis;Barnzli;Beornesleah;Beorneslēah;Gorad Barnsli;ba en si li;ban shi li;banjeulli;banzuri;barnzly;Барнзли;Барнсли;Барнслі;Горад Барнслі;بارنزلي;بارنزلی;バーンズリー;巴恩斯利;班士利;반즐리; +city::2656333;Barking;Barking;Barking Town;Barking i England;bakingu;barkinga;barkyng;بارکینگ;बार्किंग;バーキング; +city::2656396;Bangor;Bangor;Bangor i Nord-Irland;Bangoras;Beannchar;ban ge;banga;bngwr kanty dawn;Бангор;بنگور، کانتی داون;バンガー;班戈; +city::2656719;Aylesbury;AEgelesburg;Aelesburia;Aylesbury;Ehjlsberi;Eilsberis;Ejlsberi;Gorad Ehjlsbery;ai er si bo li;arisubari;aylzbry;eiljeubeli;Ægelesburg;Горад Эйлсберы;Ејлсбери;Эйлсбери;آیلزبری;أيلزبري;アリスバーリー;艾爾斯伯里;에일즈베리; +city::2656955;Ashford;Asfordas;Ashford;Ashford i Kent;Ašfordas;Ehshford;Eshford;QDH;a shen fu de;aesyupeodeu;ashfwrd knt;Ешфорд;Эшфорд;اشفورد، کنت;阿什福德;애슈퍼드; +city::2657540;Aldershot;Aldershot;Oldershot;Oldersotas;Olderšotas;aldrshat;aldrshwt;ao er de xiao te;arudashotto;oldeosyos;Олдершот;אלדרשוט;ألدرشوت;الدرشات;アルダーショット;奧爾德肖特;올더숏; +city::2657697;Acton;Acton i London;Akton;Aktun;aiktana;aktwn lndn;akuton;e dun;Актон;Актън;آکتون، لندن;ایکٹون، لندن;ऐक्टन;アクトン;厄頓; +city::2657832;Aberdeen;A-pak-ten;ABZ;Aberdeen;Aberdin;Aberdina;Aberdins;Aberdon;Aberdonia;Aberdynas;Aberdzin;Aberdīna;Aberdīns;Aburdijn;Aiberdeen;Amperntin;Devanha;Obar Dheathain;a bo ding;abadin;aberdin;aberdini;abrdyn;aebeodin;ebaradina;ya ba dian;Â-pak-tên;Αμπερντήν;Абердзін;Абердин;Абърдийн;Աբերդին;אבערדין;אברדין;أبردين;ابردین;ابرڈین;अ‍ॅबर्डीन;एबरडीन;অ্যাবরদিন;అబెర్డీన్;അബർഡീൻ;แอเบอร์ดีน;အဘာဒင်းမြို့;აბერდინი;アバディーン;阿伯丁;鴨巴甸;애버딘; +city::3209584;Crosby;; +city::3345283;Tonypandy;Tonupandi;tang ni pan di;Тонъпанди;湯尼潘帝; +city::3345439;Telford;Gorad Tehlfard;Telford;Telfordas;te er fu de;terufodo;tlfwrd;Горад Тэлфард;Телфорд;Թելֆորդ;تلفورد;テルフォード;特爾福德; +city::3345440;Craigavon;Craigavon;Creag Abhann;Districtul Craigavon;Krejgavon;Krejgejvun;ke lei jia wen;krygaywn;qryygbwn;Крейгавон;Крейгейвън;Крејгавон;קרייגבון;کریگایون;کریگ‌آوون;克雷加文; +city::610824;Zugdidi;Sugdidi;Zugdidi;Zugdidis;Zygdidi;zugdidi;zwgdydy;Зугдиди;זוגדידי;ზუგდიდი; +city::611717;Tbilisi;Gorad Tbilisi;TBS;Tbilis;Tbilisi;Tbilisi - tbilisi;Tbilisi - თბილისი;Tbilisi osh;Tbilisis;Tbiliso;Tbilissi;Tbilisy;Tbiliszi;Tbilsi;Tblisi;Thbilisi;Tibilisi;Tiblisi;Tiblissi;Tiblíssi;Tibîlîsî;Tiflis;Tiphlida;Tpilisi;Triphelis;Ttuplis;Tíblisi;Tíflis;Tıflis;di bi li si;karti;tbilisi;tblys;tblysy;tbylysy;teubillisi;tfls;tflys;thbi li si;thbilisi;tipilici;tobirishi;Τιφλίδα;Горад Тбілісі;Тбилис;Тбилиси;Тбилиси ош;Тбилисӣ;Тбілісі;Ттуплис;Қарҭ;Թբիլիսի;טביליסי;تبليسي;تبلیس;تبلیسی;تبىلىسى;تفلیس;طفلس;ܛܒܝܠܝܣܝ;त्बिलिसी;थ्बिलीसी;তিবি‌লিসি;திபிலீசி;ทบิลิซิ;ཁྲེ་བྷི་ལི་སི།;თბილისი;ქართი;ትብሊሲ;トビリシ;第比利斯;트빌리시; +city::611847;Sokhumi;Akva;Aҟəa;SUI;Sochumi;Sohum;Sohumi;Sokhumi;Soukhoumi;Ssuchum;Suchum;Suchumi;Suhhumi;Suhumi;Suhumo;Sujumi;Sukhum;Sukhumi;Suĥumo;su hu mi;sufumi;suhumi;swhwmy;Аҟәа;Сухум;Сухуми;סוחומי;スフミ;苏呼米;수후미; +city::613607;Kutaisi;KUT;Khuthaisi;Koetaisi;Koutaissi;Koutaïssi;Kutais;Kutaisi;Kutaisk;Kutaiso;Kutaissi;Kutayis;Kutayıs;Kutaïsi;kutaishi;kutaisi;Кутаиси;Кутаїсі;כותאיסי;קוטאיסי;ქუთაისი;クタイシ;쿠타이시; +city::615532;Batumi;BUS;Bat'umi;Bathumi;Batoemi;Batomis;Batoum;Batoumi;Batum;Batumi;Batumis;Batumo;Batûm;ba tong;bato~umi;batumi;batwmy;btwmy;Μπατούμι;Батуми;Батумі;Баҭым;Բաթում;בטומי;בתומי;باتومی;باطومي;बातुमी;ბათუმი;バトゥミ;巴统;바투미; +city::3382160;Cayenne;CAY;Caiena;Caienna;Cajen-a;Cajena;Cayena;Cayene;Cayenne;Gorad Kaena;Kaenna;Kagien;Kajen;Kajena;Kajenna;Kajennae;Kajenneh;Kajeno;Kayen;Kayene;Kayenna;kai yun;kaien'nu;kaiyana;kayen;kayena;kayn;kayyn;Καγιέν;Горад Каена;Кайен;Кайеннæ;Кайенна;Кайеннэ;Каєнна;Кајена;Կայեննա;קאיין;كايين;کائین;کاین;कायेन;ਕੈਯਨ;கயேன்;กาแยน;კაიენა;カイエンヌ;開雲;카옌; +city::2294206;Wa;Va;Wa;wa;Ва;وا، گھانا;วา;와; +city::2294700;Tema;Tema;Temma;Toma;te ma;tema;tma;Тема;تما;テマ;特马;테마; +city::2294727;Techiman;Takyiman;Techiman;Tekyiman;Tekyiman-Brong; +city::2294877;Tamale;TML;Tamale;Тамале; +city::2294915;Takoradi;TKD;Takoradi; +city::2294938;Tafo;Old Tafo;Tafo; +city::2294962;Swedru;Agona;Agona Swedru;Jwewuhu;Swedru; +city::2295021;Sunyani;NYI;Sun'jani;Sunjanis;Sunyani;su ni ya ni;suniani;Суньяні;蘇尼亞尼;수니아니; +city::2295458;Sekondi-Takoradi;Gorad Sekandy-Takarady;Sekondi;Sekondi Takoradi;Sekondi-Takoradi;Sekondis-Takoradis;Sékondi;se kan di-ta ko ra di;sekonditakoladi;skwndy-takwrady;sqwndy-tqwrdy;sykwndy takwrady;Горад Секанды-Такарады;Секонди;Секонди Такоради;Секонди-Такоради;Секонді-Такораді;סקונדי-טקורדי;سيكوندي تاكورادي;سکوندی-تاکورادی;سیکونڈی-ٹاکوراڈی;เซกันดี-ตาโกราดี;セコンディ・タコラディ;塞康第─塔科拉迪;세콘디타코라디; +city::2296564;Akim Oda;Akim Oda;Insuaim;Nsuaem;Oda;Ода; +city::2296606;Obuasi;Oboase;Obuasi;Obuasis;Obuassi;Обуаси; +city::2297313;Nkawkaw;Nkawkaw;Nkokoo; +city::2298330;Medina Estates;Madina;Medina Estates; +city::2298890;Kumasi;Coomassie;Gorad Kumasi;KMS;Kumase;Kumasi;Kumasi shaary;Kumasis;Kumassi;Kumasy;ku ma xi;kumashi;kumasi;kwmasy;Горад Кумасі;Кумаси;Кумаси шаары;Кумасі;Կումասի;كوماسي;کوماسی;ਕੁਮਾਸੀ;クマシ;库马西;쿠마시; +city::2299522;Koforidua;Koforidua;ke fu li du ya;kopolidua;kwfwrydwa;kwfwrydwya;Кофоридуа;کوفوریدوئا;کوفوریدوا;科福里杜亞;코포리두아; +city::2300372;Hohoe;Chochoe;Chokhoe;Hohoe;Khokhoe; +city::2300379;Ho;Ho;Hohoe;Kho;No;ho;hw. ghna;Но;Хо;هو٬ غنا;ہو، گھانا;ホ;호; +city::2301217;Ejura;Ejura; +city::2302357;Cape Coast;Cabo Corso;Cape Coast;Cape Coast Castle;Igua Ogwa;Keip Kostas;Kejp-Kost;Ogwa;hai an jiao;keipeukoseuteu;kyp kwst;Кейп-Кост;کیپ کوست;کیپ کوسٹ;ケープ・コースト;海岸角;케이프코스트; +city::2302821;Bolgatanga;Bolagatanga;Bolgatanga;Bolgatange;bo er jia tan jia;bolgatang-ga;borugatanga;Болгатанга;Болгатанге;ボルガタンガ;博爾加坦加;볼가탕가; +city::2303125;Berekum;Berekum; +city::2303287;Bawku;Bawku; +city::2306079;Achiaman;; +city::2306104;Accra;ACC;Aakra;Aakrá;Accra;Acra;Akara;Akkr;Akkra;Akkrae;Akra;Akrao;Akʻra;Gorad Akra;Nkran;a ke la;akara;akeula;akra;akura;xak kra;yەkra;΄Aκκρα;Άκκρα;Аккрæ;Аккра;Акра;Горад Акра;Աքրա;אקרא;אקרה;آکرا;أكرا;ئەکرا;اكرا;اکرا;عکرہ;अक्रा;आक्रा;আক্রা;ਅਕਰਾ;ଆକ୍ରା;அக்ரா;അക്ര;อักกรา;ཨ་ཁ་ར།;အက်ခရာမြို့;აკრა;አክራ;アクラ;阿克拉;아크라; +city::2413753;Brikama;Brikama;Brikame;beulikama;brykama;bu li ka ma;burikama;Брикама;Брикаме;بریکاما;ブリカマ;布里卡馬;브리카마; +city::2416969;Nzerekore;NZE;Nzerekore;Nzerekorė;Nzérékoré;eunjelekole;nzerekore;Нзерекоре;Նզերեկորե;نزیریکورے;ンゼレコレ;은제레코레; +city::2418362;Labe;LEK;Laba;Labe;Labé;Лаба; +city::2419533;Kindia;Kindia;Kindla;Киндиа; +city::2419992;Kankan;KNN;Kankan;Kankanas;kangkan;kankan;Канкан;کانکان;カンカン;캉칸; +city::2420056;Kamsar;Kamissar;Kamsar;Kansar;Komsar;Port Kamsar;ka mu sa er;Комсар;卡姆薩爾; +city::2420562;Gueckedou;Gueckedou;Guekedou;Guéckédou;Guékédou; +city::2422457;Coyah;Coya;Coyah;Koyah; +city::2422465;Conakry;CKY;Conacri;Conakry;Konakri;Konakrio;Konakris;Konakry;ke na ke li;konakeuli;konakuri;Κόνακρι;Конакри;קונאקרי;コナクリ;科納克里;코나크리; +city::2422488;Camayenne;Camayen;Camayenne; +city::3578959;Les Abymes;Abeymes;Abymes;Les Abymes;Lez-Abim;PTP;lzabym;lzbym;rezabimu;sa lai bi mei;Лез-Абім;לז אבים;لزابيم;لزبیم;レザビーム;薩萊比梅; +city::2309527;Malabo;Ciudad de Malabo;Malaba;Malabas;Malabo;Malabó;Malampo;Port Clarence;Rev Malebo;SSG;Santa Isabel;ma la bo;mala bo;malabo;malabw;malapo;mallabo;marabo;mlabw;Μαλάμπο;Малаба;Малабо;Մալաբո;מלאבו;مالابو;مالابۆ;ملابو;मलाबो;ਮਲਾਬੋ;மலாபோ;มาลาโบ;མ་ལ་བོ།;მალაბო;ማላቦ;マラボ;馬拉博;말라보; +city::2310046;Bata;BSG;Bata;Batao;Gorad Bata;Kokapipa;ba ta;bata;Бата;Горад Бата;באטה;باتا;ბატა;バタ;巴塔;바타; +city::251833;Volos;Bolus;Iolcus;VOL;Volo;Volos;Vólos;Wolos;wwlws;Βόλος;Волос;וולוס; +city::251948;Vyronas;Viron;Vyron;Vyronas;Víron;Výronas;Βύρων;Βύρωνας; +city::252664;Trikala;Tirhala;Trikala;Trikalon;Trikkaion;Trikkala;Trikkaíon;Trikálon;Tríkala;Tríkkala;Tırhala;trhalh;Τρίκαλα;Трикала;ترحاله; +city::255274;Piraeus;El Pireo;El Pireu;Gorad Pirehj;Il Pireo;Le Piree;Le Pirée;Lo Pireu;Lo Pirèu;O Pireo;Peiraeus;Peiraia;Peiraias;Peiraiefs;Peiraieus;Peiraievs;Peiraiá;Peiraiás;Peiraiéfs;Piraeus;Piraievs;Piraiévs;Piraus;Pire;Pireas;Pireefs;Pirej;Pireja;Pirejas;Pireo;Pireu;Pireus;Pireusz;Piräus;Piræus;Piréefs;Pirėjas;bi lei ai fu si;byrayws;phiri xas;pileaseu;pireusu;pyrh;Πειραιάς;Πειραιεύς;Горад Пірэй;Пирей;Пирея;Пиреј;Пірей;פיראוס;بيرايوس;پیره;ไพรีอัส;ピレウス;比雷埃夫斯;피레아스; +city::255377;Petroupolis;Kipoupolis;Kipoúpolis;Petroupoli;Petroupolis;Πετρούπολη;Петроуполис; +city::255524;Peristeri;Peristeri;Peristeri Attikes;Peristerion;Peristéri;Peristérion;Περιστέρι;Περιστέρι Αττικής;Περιστέριον;Перистерион; +city::255683;Patra;Patra;Patrae;Patrai;Patras;Patrasse;Patrasso;Patres;Patrás;Pátra;Pátrai;Pátras;pa te lei;patora;ptrs;Πάτρα;Патра;פטרס;パトラ;帕特雷; +city::256075;Palaio Faliro;Alt Phaleron;Old Faliron;Palaio Faliro;Palaion Faliron;Palaió Fáliro;Palaión Fáliron;Paleo Faliro;Palio Faliro;Παλαιό Φάληρο;Παλαιόν Φάληρον;Παλιό Φάληρο; +city::256429;Nikaia;Nea Kokkinia;Neokokinis;Nikaia;Nikea;Néa Kokkiniá;Níkaia;Νέα Κοκκινιά;Νίκαια; +city::256575;Nea Smyrni;Nea Smirni;Nea Smyrne;Nea Smyrni;Néa Smírni;Néa Smýrni;Νέα Σμύρνη; +city::256601;Ilion;Ilion;Kato Liosia;Káto Liósia;Nea Liosia;Néa Liósia;Ílion;Ίλιον;Νέα Λιόσια; +city::256614;Nea Ionia;Nea Ionia;Néa Ionía;Podharadhes;Podharádhes;Νέα Ιωνία; +city::258576;Larisa;Larisa;Larissa;Lárisa;Lárissa;Yenisehir;Yenişehir;Λάρισα;Лариса; +city::258620;Lamia;Izdin;Lamia;Lamija;Lamía;lmyaʾ;Λαμία;Ламия;لمياء; +city::260114;Chania;CHQ;Candia;Canea;Chania;Chanion;Chaniá;Cydonia;Càndia;Hania;Hanio;Hanià;Hanya;Khan'ja;Khania;Khaniá;Kreta;La Canea;La Canee;La Canée;Ĥanio;Χανίων;Χανιά;Ханья; +city::260133;Chalkida;Calcide;Calcis;Chalcis;Chalkida;Chalkis;Chalkída;Chalkís;Euripos;Khalkida;Khalkis;Khalkís;klqys;Χαλκίδα;Χαλκίς;Халкида;כלקיס; +city::260172;Khalandrion;Chalandri;Chalandrion;Flya;Khalandhrion;Khalandri;Khalándhrion;Khalándri;Phlya;Φλύα;Χαλάνδρι;Χαλάνδριον; +city::260204;Keratsini;Agios Georgios Keratsiniou;Ayios Yeoryios;Ayios Yeoryios Keratsiniou;Hagios Georgios Keratsiniou;Keratsini;Keratsinion;Keratsiniou;Keratsiníou;Keratsíni;Keratsínion;Tseratsinion;Áyios Yeóryios;Άγιος Γεώργιος Κερατσινίου;Κερατσίνι;Κερατσίνιον;Τσερατσίνιον; +city::261414;Kallithea;Kalitea;Kaliteja;Kalithea;Kalithéa;Kalitėja;Kallifeja;Kalliteja;Kallithea;Kallithéa;kalythya;kalyth‌a;Καλλιθέα;Калитеа;Каллифея;Каллітея;كاليثيا;کالیته‌آ; +city::261604;Kalamata;KLX;Kalamae;Kalamai;Kalamata;Kalamatas;Kalamato;Kalamáta;Kalmata;Kalámai;kalamata;Καλάμαι;Καλαμάτα;Каламата;كالاماتا; +city::261745;Irakleion;Candia;Candie;Càndia;Erakleion;HER;Heracleum;Heracliao;Heraclion;Heraclião;Heraclión;Herakleion;Heraklion;Herákleion;Héraklion;Iraclio;Iraclion;Irakleio;Irakleio Kritis;Irakleion;Iraklija;Iraklio;Iraklion;Iráclio;Irákleio;Irákleion;Iráklio;Iráklion;Kandiye;Khandax;Megalokastro;Megalokastron;hrqlywn;irakurion;yi la ke li weng;Ērakleion;Ηράκλειο;Ηράκλειο Κρήτης;Ираклио;Ираклион;הרקליון;イラクリオン;伊拉克利翁; +city::261779;Ioannina;Giannena;Giannina;IOA;Ioaa;Ioanina;Ioannina;Ioánina;Ioánnina;Ioäa;Janina;Yanina;Yannina;Yanya;yue a ni na;Γιάννενα;Γιάννινα;Ιωάννινα;Янина;约阿尼纳; +city::262036;Glyfada;Aixone;Glifadha;Glifádha;Glyfada;Glyfáda;Γλυφάδα;Γλυφαδα; +city::262135;Galatsi;Galatsi;Galatsion;Galátsi;Galátsion;Γαλάτσι;Γαλάτσιον; +city::263986;Agios Dimitrios;Agios Dimitrios;Ayios Dhimitrios;Brakhami;Brakhámi;Áyios Dhimítrios;Άγιος Δημήτριος; +city::264194;Agia Paraskevi;Agia Paraskeue;Agia Paraskevi;Agía Paraskeví;Ayia Paraskevi;Ayía Paraskeví;Αγία Παρασκευή; +city::264371;Athens;athenon;ATH;Afina;Afini;Afiny;An Aithin;Ateena;Atehny;Aten;Atena;Atenai;Atenas;Atenas - Athena;Atenas - Αθήνα;Αθηνών;Atene;Atenes;Ateni;Ateno;Atenoj;Ateny;Athen;Athena;Athenae;Athenai;Athene;Athenes;Athens;Atheny;Athina;Athinai;Athinia;Athènes;Athén;Athénes;Athény;Athína;Athínai;Atina;Atény;Atēnas;Atėnai;Aþena;Kota Athena;Lungsod ng Athina;Lungsod ng Athína;atene;atene si;ateni;athensa;athyna;atn;etens;xethens;ya dian;Αθήνα;Αθήναι;Αθηνα;Αθηναι;Атина;Атэны;Афины;Афіни;Аѳины;Աթենք;אתונה;آتن;أثينا;ئافېنا;ܐܬܝܢܐ;अथेन्स;ஏதென்ஸ்;เอเธนส์;ათენი;Ἀθῆναι;アテネ;雅典;아테네;아테네 시; +city::265243;Marousi;Amarousio;Amarousion;Amaroúsion;Marousi;Maroussi;Maroúsi;Αμαρούσιον;Μαρούσι; +city::265488;Acharnes;Acharnae;Acharnai;Acharne;Acharnes;Akharnai;Akharnaí;Menidhi;Menidhion;Menidi;Menidion;Menioi;Menídhi;Menídhion;Meníoi;Αχαρνές;Αχαρναί;Μενίδι;Μενίδιον; +city::265533;Aigaleo;Aegaleo;Aigaleo;Aigáleo;Egaleo;Αιγάλεω; +city::400666;Rodos;RHO;Rhodes;Rhodes Town;Rhodos;Rodas;Rodes;Rodhos;Rodi;Rodos;Rodos Town;Ródhos;Ródos;Ρόδος;Родос; +city::734077;Thessaloniki;Ftohomana;Ftohomána;I Protevoussa ton Prosfigon;I Protévoussa ton Prosfígon;SKG;Salonic;Salonica;Salonicco;Salonik;Salonika;Salonikai;Salonike;Saloniki;Salonique;Saloníki;Saluniccu;Salónica;Saruna;Selanik;Selânik;Solun;Soluň;Solún;Săruna;THessalonika;Tesalonica;Tesaloniki;Tesalonîkî;Tesalónica;Tessalonica;Tessalònica;Thessalonica;Thessalonike;Thessaloniki;Thessalonique;Thessaloníki;Thessaloníkē;sai sa luo ni ji;salwnyk;slwnyqh;slwnyqy;tessaroniki;Þessalóníka;Θεσσαλονίκη;Σαλονίκη;Σαλονικη;Салоники;Салоніки;Солун;Ѳessalonika;Ѳєссалонїка;סלוניקה;סלוניקי;سالونيك;テッサロニキ;塞萨洛尼基; +city::734330;Serres;Ser;Seres;Serez;Serra;Serrae;Serrai;Serre;Serres;Serrès;Sjar;Szeresz;Széresz;Sérrai;Sérres;Sѣru;sai lei;seleseu;seres;seresu;Σέρρα;Σέρραι;Σέρρες;Сер;Серре;Серрес;Сяр;Сѣръ;סֶרֶס;セレス;塞雷;세레스; +city::735861;Kavala;Cavala;Cavalla;KVA;Kaballa;Kavala;Kavalla;Kavála;Kaválla;Kawala;Neapolis;ka wa la;kavu~ara;qwlt;Καβάλα;Кава̀ла;Кавала;قولة;カヴァラ;卡瓦拉; +city::735914;Katerini;Aikaterini;Aikateríni;Katerina;Katerini;Kateríni;Κατερίνη;Катерини; +city::736083;Kalamaria;Kalamaria;Kalamarija;Kalamariá;Kalamarya;Καλαμαριά;Каламария; +city::736928;Alexandroupoli;AXD;Alejandropolis;Alejandrópolis;Aleksandrupolis;Alessandropoli;Alexandhroupolis;Alexandhroúpolis;Alexandropolis;Alexandroupoli;Alexandroupolis;Alexandroúpoli;Alexandroúpolis;Dedeagac;Dedeagach;Dedeagatch;Dedeağaç;Dedéagach;alyksandrwbwly;Αλεξανδρούπολη;Αλεξανδρούπολις;Александруполис;Дедеагач;أليكساندروبولي; +city::8310138;Ilioupoli;Ilioupoli;Ilioúpoli;Ηλιούπολη; +city::8310183;Korydallos;Korydallos;Korydallós;Κορυδαλλός; +city::8358544;Zografos;Zografos;Zografou;Zográfos;Ζωγράφος;Ζωγράφου; +city::3587902;Villa Nueva;Vil'ja-Nuehva;Vilja Nueva;Viljanueva;Villa Nueva;bi ya nu ai wa;wya nwywa gwatymala;Вилья-Нуэва;Вилянуева;ویا نویوا، گواتیمالا;比亞努埃瓦; +city::3587923;Villa Canales;Villa Anales;Villa Canales; +city::3588258;Totonicapan;Totonicapan;Totonicapán;Totonikapan;Тотоникапан; +city::3589289;Santa Lucia Cotzumalguapa;Santa Lucia;Santa Lucia Cotzumalguapa;Santa Lucía;Santa Lucía Cotzumalguapa; +city::3589452;Santa Catarina Pinula;Santa Catarina Pinula; +city::3589885;San Juan Sacatepequez;San Juan Sacatepequez;San Juan Sacatepéquez; +city::3590219;San Francisco El Alto;San Francisco;San Francisco El Alto; +city::3590979;Quetzaltenango;AAZ;Kecaltenangas;Kecaltenango;Kesal'tenango;Ketsaltenan'nko;Ketzaltenango;Quetzaltenanco;Quetzaltenango;Quetzaltenānco;Quexaltenango;Quezaltenango;ke sa er te nan ge;keteusaltenang-go;ketsu~arutenango;Κετσαλτενάνγκο;Кесальтенанго;Кецалтенанго;ケツァルテナンゴ;克薩爾特南戈;케트살테낭고; +city::3591062;Puerto Barrios;PBR;Puehrto-Barrios;Puerto Barijosas;Puerto Barios;Puerto Barrios;ba li ao si gang;Пуерто Бариос;Пуэрто-Барриос;פוארטו באריוס;巴里奧斯港; +city::3591415;Petapa;Petapa;San Miguel Petapa; +city::3592519;Mixco;Mishko;Mixco;Мишко; +city::3595416;Huehuetenango;HUG;Huehuetenangas;Huehuetenango;Uehuehtenango;Ueuetenango;ue-uetenang-go;u~eu~etenango;wei wei te nan ge;Уеуетенанго;Уэуэтенанго;ウェウェテナンゴ;韋韋特南戈;우에우에테낭고; +city::3595803;Escuintla;Ehskuintla;Escuintla;Esquintla;esuku~intora;Эскуинтла;エスクィントラ; +city::3598119;Coban;Coban;Cobán;Koban;Kobanas;ke wan;koban;Кобан;קובאן;科萬;코반; +city::3598132;Guatemala City;Cidade da Guatemala;Citta del Guatemala;Città del Guatemala;Ciudad Guatemala;Ciudad de Guatemala;Ciutat de Guatemala;GUA;Guate;Guatemala;Guatemala City;Guatemala Hiria;Guatemala by;Guatemala la Nueva;Guatemala-Stadt;Guatemala-Urbo;Guatemala-stad;Gvatemala;Gvatemalurbo;Gwatemala;New Guatemala;Nueva Guatemala;Nueva Guatemala de la Asuncion;Nueva Guatemala de la Asunción;Pole tes Gouatemalas;Santiago de Guatimala;gua de ma la shi;guatemarashiti;gwatemalla si;gwatemallasiti;kawtemalasiti;mdynt ghwatymala;shhr gwatmala;Πόλη της Γουατεμάλας;Гватемала;גואטמלה סיטי;גוואטמלה סיטי;شهر گواتمالا;مدينة غواتيمالا;กัวเตมาลาซิตี;グアテマラシティ;瓜地馬拉市;과테말라 시;과테말라시티; +city::3598529;Chinautla;Chignautla;Chinautla;Santa Cruz de Chinautla; +city::3598572;Chimaltenango;Chimal'tenango;Chimaltenango;Santa Ana Chimaltenango;Чимальтенанго; +city::3598655;Chichicastenango;Chichicastenango;Chichikastenango;Santo Tomas Chichicastenango;Santo Tomás Chichicastenango;Чичикастенанго; +city::3599735;Amatitlan;Amatitlan;Amatitlán;San Juan Amatitlan;San Juan Amatitlán; +city::2374775;Bissau;Bisao;Bisau;Bisau - Bissau;Bisauo;Bisava;Bisaŭo;Biso;Bissa;Bissao;Bissau;Bissá;Bisáu;Gorad Bisau;Mpissaou;OXB;Sao Jose de Bissau;São José de Bissáu;Wisaw;bi shao;bis sea;bis'sa'u;bisa'u;bisau;bsaw;bysaw;bysayw;picavu;Μπισσάου;Бисао;Бисау;Бісау;Горад Бісау;Բիսաու;ביסאו;بساؤ;بيساو;بیسائو;بیساو;बिसाउ;বিসাউ;বিস্সাউ;ਬਿਸਾਊ;பிசாவு;บิสเซา;བི་སའོ།;ბისაუ;ቢሳው;ビサウ;比紹;比绍;비사우; +city::3378644;Georgetown;Demerara;Dzhordzhtaun;Dzordztaun;Dzordztauna;Dzordztaunas;Dzordztauns;Džordžtaun;Džordžtauna;Džordžtaunas;Džordžtauns;GEO;Georgetown;Georgetown i Guyana;Georgiopolis;Georgurbo;Gorad Dzhordzhtaun;Jojton;Jòjtòn;Tzortztaoun;Zhorzhtaun;cxrc thawn;gwrgtʼwn;jarajata'una;jarj ٹawn gyana;jarjata'una;jojitaun;jorjata'una;jorjtavun;jrj‌tawn;jwrj tawn;jwrj twghn;qiao zhi dui;qiao zhi dun;zuo zhi cheng;Τζορτζτάουν;Τζώρτζταουν;Џорџтаун;Горад Джорджтаўн;Джорджтаун;Жоржтаун;Ջորջթաուն;גורגטאון;جارج ٹاؤن، گیانا;جرج‌تاون;جورج تاون;جورج توغن;جورج‌تاو;जॉर्जटाउन;ਜਾਰਜਟਾਊਨ;ଜର୍ଜଟାଉନ;ஜோர்ஜ்டவுண்;ജോർജ്ജ് ടൗൺ;จอร์จทาวน์;ཅོར་ཅི་ཐོན།;ჯორჯტაუნი;ጆርጅታውን;ジョージタウン;乔治敦;佐治城;조지타운; +city::1818209;Tsuen Wan;Ch'uan-wan;Ch’üan-wan;Tsuen Wan;Tsun Wan;Tsun Wan Wai;quan wan;荃灣; +city::1818223;Yuen Long Kau Hui;Yuen Long Kau Hui;yuan lang jiu xu;元朗舊墟; +city::1819609;Kowloon;Chiu-lung;Czjulun;Kaulunas;Koulun;Kowloon;jiu long;julung;yi fa ban;Цзюлун;九龍;意法半;주룽; +city::1819729;Hong Kong;Chon'nk Kon'nk;Gankong;Gon Kong;Gonkong;HKG;Hiong-geng;Hiŏng-gē̤ng;Hong Kong;Hongkong;Honkong;Hồng Kông;Khongkong;Khonkong;Victoria;ankan;hamga kamga;hanakana;hang kang;hang kang nagaram;hangakanga;hang‌kang;hankam;heankean;hng kng;hon'ga kon'ga;hong-kʼongi;hongakonga;hongkong;honkongu;hwng kwng;hwng qwng;hwngh kwngh;hwnj kwnj;hxngkng;hʼng qʼng;shyanggang;xiang gang;Χονγκ Κονγκ;Ганконг;Гонконг;Хонгконг;Хонконг;Һoң Koң;Һоң Коң;Հոնկոնգ;האנג קאנג;הונג קונג;شياڭگاڭ;هانگ کانگ;هنگ کنگ;هونج كونج;هونغ كونغ;هونگ کونگ;ھwng kwng;ھونگ کونگ;ھۆng kۆng;ھۆنگ کۆنگ;ہang kang;ہانگ کانگ;ހޮންކޮންގު;हङकङ;हाँग काँग;हांगकांग;हांग् कांग् नगरम्;हॉन्ग कॉन्ग;হংকং;ਹਾਂਗਕਾਂਗ;હોંગકોંગ;ହଂକଂ;ஆங்காங்;హాంగ్‌కాంగ్;ಹಾಂಗ್ ಕಾಂಗ್;ഹോങ്കോങ്;හොංකොං;ฮ่องกง;ཧང་ཀང་།;ཧོང་ཀོང་།;ဟောငကောင;ဟောင်ကောင်;ჰონგ-კონგი;ሆንግ ኮንግ;ហងកង;ហុងកុង;香港;홍콩; +city::3600949;Tegucigalpa;Gorad Tehgusigal'pa;TGU;Tegousigalpa;Tegousigoualpa;Tegucigalpa;Tegucigalpo;Tegucigucigalpa;Tegusigal'pa;Tegusigalp;Tegusigalpa;Teguzigalpa;Tenkousinkalpa;Tequsiqalpa;Teuctzincalpan;Tègucigalpa;de gu si jia ba;te gu xi jia er ba;tegushigarupa;tegusigalapa;tegusigalpa;tekucikalpa;tekusikalpa;tgwsygalpa;tgwsyglph;tyghwsyghalba;Τεγκουσιγκάλπα;Τεγουσιγάλπα;Горад Тэгусігальпа;Тегусигалпа;Тегусигальпа;Тегусігальпа;Տեգուսիգալպա;טגוסיגלפה;טעגוסיגאלפע;تيغوسيغالبا;تگوسیگالپا;ٹیگوسیگلپا;तेगुसिगल्पा;তেগুসিগালপা;ਤੇਗੂਸੀਗਾਲਪਾ;டெகுசிகல்பா;ടെഗൂസിഗാൽപ;เตกูซิกัลปา;ཐེ་གུ་སི་གེ་པ།;ტეგუსიგალპა;ቴጉሲጋልፓ;テグシガルパ;德古斯加巴;特古西加爾巴;테구시갈파; +city::3601782;San Pedro Sula;Gorad San-Pedra-Sula;SAP;San Pedro;San Pedro Sula;San Pedro Zollan;San Pedro Zōllān;San-Pedro-Sula;san bydrw swla;san pe dor su la;sanpedeulosulla;san・pedoro・sura;sheng pei de luo su la;Горад Сан-Педра-Сула;Сан Педро Сула;Сан-Педро-Сула;سان بيدرو سولا;سان پیڈرو سولا;ซานเปโดรซูลา;サン・ペドロ・スーラ;圣佩德罗苏拉;산페드로술라; +city::3608248;La Ceiba;Ceiba;LCE;La Ceiba;La Seiba;La Sejba;La-Sejba;la sai wa;Ла Сейба;Ла-Сейба;ラ・セイバ;拉塞瓦; +city::3610613;El Progreso;Ehl'-Progreso;El Progreso;El Progress;Progreso;Эль-Прогресо; +city::3613321;Comayagua;Comayagua;XPL; +city::3613528;Ciudad Choluteca;Chollolteca;Choluteca;Ciudad Choluteca; +city::3613533;Choloma;; +city::3186886;Zagreb;Agram;Andautonia;Gorad Zagrab;Lungsod ng Zagreb;Sagrab;Sagreb;Sagwzlwgbouh;Sakreb;Ságrab;ZAG;Zabrag;Zabreg;Zagabbria;Zagabria;Zagavria;Zagrab;Zagrabia;Zagreb;Zagreba;Zagrebas;Zagrebi;Zagrebo;Zagrebs;Zagrep;Zagrev;Zagrzeb;Zagrèb;Zagréb;Zagrėbs;Zagàbria;Zahreb;Zankremp;Zaqreb;Zágráb;Záhreb;Záhřeb;cakirep;jagareba;jageulebeu;jagriba;jhagreba;sa ge lei bu;sa kerb;sagreb;zagaraba;zaghrb;zagrb;zagrebi;zagurebu;zajryb;zghrb;Żagreb;Ζάγκρεμπ;Горад Заграб;Загреб;Զագրեբ;זאגרב;זאגרעב;زاجريب;زاغرب;زاگرب;زاگرێب;زغرب;जग्रिब;झाग्रेब;জাগরেব;ਜ਼ਾਗਰਬ;சாகிரேப்;സാഗ്രെബ്;ซาเกร็บ;ཛག་རེབ།;ზაგრები;ዛግሬብ;ザグレブ;萨格勒布;薩格勒布;Ꙁагрєбъ;자그레브; +city::3186952;Zadar;Chadra;Gorad Zadar;Iadera;ZAD;Zadar;Zadara;Zadaras;Zantar;Zara;jadaleu;zadar;zadari;zadaru;zdar;zha da er;zʼdʼr;Ζαντάρ;Горад Задар;Задар;זאדאר;زادار;زدار;ზადარი;ዛዳር;ザダル;扎達爾;자다르; +city::3190261;Split;Gorad Split;SPU;Spalato;Spalatum;Split;Split / Dalmatien;Splita;Splitas;Spàlato;asplyt;sblyt;seupeulliteu;si pu li te;splita;splyt;supurito;Σπλιτ;Горад Спліт;Сплит;Спліт;Սպլիտ;ספליט;اسپلیت;سبليت;سپلٹ، کروشیا;स्प्लिट;სპლიტი;スプリト;斯普利特;스플리트; +city::3190586;Slavonski Brod;Brod;Bród;Marsonia;Slavons'kij Brod;Slavonski Brod;Slavonski Brodas;Slavonski brod;Slavonski-Brod;Slawonisch Brod;aslawnsky brd;seullabonseukibeulodeu;si la wo ni ya bu luo de;sla wxn ski br xd;slafwnsky brwd;slbwnsqy brwd;Славонски Брод;Славонски брод;Славонски-Брод;Славонський Брод;סלבונסקי ברוד;اسلاونسکی برد;سلافونسكي برود;سلاڤۆنسکی برۆد;สลาวอนสกีบรอด;スラヴォンスキ・ブロド;斯拉沃尼亞布羅德;슬라본스키브로드; +city::3190966;Sesvete;Sesvete;Сесвете; +city::3191648;Rijeka;Estado libre de Fiume;Fiume;Fkumen;Flumen Sancti Viti;RJK;Reka;Rieka;Rijeka;Rijeko;Rěka;Sankt Veit am Flaum;Sankt Veit am Pflaum;Slobodna Drzava Rijeka;Slobodna Drzhava Rijeka;Slobodna Država Rijeka;Stato libero di Fiume;Vitipolis;rieka;Риека;Ријека;Слободна Држава Ријека;リエカ; +city::3192224;Pula;PUY;Pietas Iulia;Pluj;Pola;Poula;Poła;Pul;Pula;Pulj;bwla;pu la;pulla;pura;pwla;pwlh;Πούλα;Пула;Պուլա;פולא;פולה;بولا;پولا;პულა;プーラ;普拉;풀라; +city::3193935;Osijek;Colonia Aelia Mursa;Esseg;Essegg;Essek;Eszek;Eszék;Mursa;Mursia;OSI;Osek;Osiek;Osigiek;Osijek;Osijeka;Osijekas;Osik;oshieku;xo siyekh;Οσιγιέκ;Осиек;Осијек;โอซีเยค;オシエク; +city::3716667;Thomazeau;Thomazeau;Tomazo; +city::3717588;Saint-Marc;Saint-Marc;Sen-Mark;Сен-Марк; +city::3718420;Port-de-Paix;PAX;Podepe;Podpe;Por-de-Pe;Port Paix;Port-de-Paix;Porto-da-Paz;Pòdepè;Pòdpè;he ping gang;poleudeupe;poleudeupei;porudope;Пор-де-Пе;پورت دے پئے;ポールドペ;和平港;포르드페;포르드페이; +city::3718426;Port-au-Prince;Gorad Port-o-Prehns;PAP;Port au Prince;Port o Prens;Port o Prensas;Port-au-Prince;Port-o-Prens;Port-o-Prins;Porto Principe;Porto Príncipe;Portoprensa;Portoprinco;Portus Principis;Potoprens;Puerto Principe;Puerto Príncipe;Pòtoprens;Ville de Port-au-Prince;bwrt aw brans;poleutopeulaengseu;porata-o-prainsa;port-o-pirins;porta-a-prinsa;porta-au-prinsa;porta-o-prinsa;porutopuransu;pwrtw prns;pwrtwprns;tai zi gang;Πορτ-ο-Πρενς;Горад Порт-о-Прэнс;Порт о Пренс;Порт-о-Пренс;Պորտ-օ-Պրենս;פורט או פרינס;פורט-או-פרנס;بورت أو برانس;پورتو پرنس;پورتوپرنس;پورٹ او پرنس;पोर्ट-ऑ-प्रिंस;पोर्ट-औ-प्रिन्स;পোর্ট-অ-প্রিন্স;ਪੋਰਤ-ਓ-ਪ੍ਰੈਂਸ;போர்ட்-ஓ-பிரின்ஸ்;പോർട്ട്-ഔ-പ്രിൻസ്;ปอร์โตแปรงซ์;པོ་རོ་ཊི་ཨའུ་པི་རིན་སི།;პორტ-ო-პრენსი;ፖርቶፕሪንስ;ポルトープランス;太子港;포르토프랭스; +city::3718962;Tigwav;Petit Goave;Petit Goâve;Petit-Goave;Petit-Goâve;Tigwav;Ville de Petit Goave;Ville de Petit Goâve; +city::3719028;Petionville;Petionville;Petyon-Vil;Pétionville;Ville de Petion-Ville;Ville de Pétion-Ville; +city::3720824;Miragoane;; +city::3722286;Leogane;Leogan;Leogane;Leyogan;Leyogàn;Léogâne;Ville de Leogane;Ville de Léogane;Yaguana;lai ao gan;reogan;Леоган;レオガン;萊奧甘; +city::3723593;Jeremie;JEE;Jeremi;Jeremias;Jeremie;Jérémie;Zheremi;jelemi;jeremi;jyrymy;re lei mi;zrmy;Жереми;Жеремі;זרמי;جیریمی;ジェレミー;熱雷米;제레미; +city::3723779;Jacmel;JAK;Jacmel;Jakmel;Jakmèl;Yaquimo;Yáquimo;Zhakmel';Zhakmele;jakeumel;jakumeru;jkml;ya ke mei lei;zʼqml;Жакмеле;Жакмель;זאקמל;جکمل;ジャクメル;雅克梅勒;자크멜; +city::3724696;Gonayiv;Gonaiv;Gonaives;Gonayiv;Gonaïves;Les Gonaives;Les Gonaïves;Ville des Gonaives;Ville des Gonaïves;Гонаив; +city::3726786;Delmas 73;; +city::3727135;Croix-des-Bouquets;Croix des Bouquets;Croix-des-Bouquets; +city::3728097;Les Cayes;Aux Cayes;CYA;Cayes;Le Kajus;Le-Ke;Les Cayes;Los Cayos;Okay;Ville des Cayes;lai kai;leukaye;rekai;Ле-Ке;لے سائیس;レカイ;萊凱;르카예; +city::3728474;Okap;CAP;Cabo Haitiano;Cap Haitien;Cap-Francais;Cap-Français;Cap-Haitien;Cap-Haïtien;Cape Haitien;Cape Haytien;Guarico;Guárico;Haitia Kabo;Kap Ayisyen;Kap-Ait'en;Kap-Ait'ene;Kap-Aitien;Le Cap;Okap;Ville du Cap-Haitien;hai de jiao;kap-hayytyn;kapaishan;kapeuaisiaeng;Καπ-Αϊτιέν;Кап-Аитьен;Кап-Аитьене;Кап-Аїтьєн;کاپ-هائیتین;カパイシャン;海地角;카프아이시앵; +city::715126;Szolnok;Gorad Sol'nak;Sol'nok;Solnoca;Solnok;Solnokas;Szolnok;shwlnwk;slnwk;solnokeu;sorunoku;suo er nuo ke;swlnwq;Горад Сольнак;Солнок;Сольнок;סולנוק;سلنوک;شولنوک;სოლნოკი;ソルノク;索尔诺克;솔노크; +city::715429;Szeged;Kiskundorozsma;QZD;Seged;Segedin;Seghedin;Szegedin;Szeghed;Tape;Tápé;skdyn;Сегед;سکدین; +city::716935;Nyiregyhaza;Gorad N'irehdz'khaza;N'ired'gaza;N'ired'khaza;Nired'khaza;Niredkhaza;Nireghaza;Njiredhaz;Njireghaza;Njiregkhaza;Njiređhaza;Nyirszollos;Nyirszolos;Nyredhaza;Nyírszőllős;Nyírszőlős;Níreďháza;ni lai ji ha zuo;nilejihajeo;niredhaza;nirejihaza;nyrghhaza;nyrghza;Њиређхаза;Њиреѓхаза;Горад Ньірэдзьхаза;Ниредхаза;Ниредьхаза;Ньиредьхаза;Ньїредьгаза;נירגהאזה;נירעדהאז;نيرغهازا;نیرادہازا;نیرگهزا;ნირედჰაზა;ニーレジハーザ;尼賴吉哈佐;니레지하저; +city::717582;Miskolc;MCQ;Mishkol'c;Mishkolc;Miskolc;Miskolca;Miskolcas;Miskolcz;Miskole;Miskovec;Miszkolc;Miškolc;Miškolca;Miškolcas;Miškovec;mi shen ke er ci;mishukorutsu;misyukolcheu;mskwls;myshkwlts;mysqwlz;Мишколц;Мишкольц;Мішкольц;מישקולץ;مسکولس;ميشكولتس;میشکولتس;მიშკოლცი;ミシュコルツ;米什科尔茨;미슈콜츠; +city::721239;Eger;Agria;Eger;Egera;Egeris;Egra;Egri;Ehger;Erlau;Eğri;Gorad Ehger;Jager;Jegra;Jáger;Szarvasko;Szarvaskő;agr;ai ge er;aygyr;egeleu;egeri;egeru;Јегра;Горад Эгер;Егер;Еґер;Эгер;אגר;ערלוי;اگر;ایگیر;ეგერი;エゲル;埃格爾;에게르; +city::721472;Debrecen;DEB;Debrecen;Debrecena;Debrecenas;Debrecin;Debrecinum;Debreczyn;Debrecín;Debretin;Debrețin;Ntempretsen;dbrsn;dbrtsn;dbrzn;de bu lei sen;debeulechen;debretseni;deburetsu~en;dybrysyn;Ντέμπρετσεν;Дебрецен;Дебрецин;Դեբրեցեն;דברצן;دبرتسن;دبرسن;دیبریسین;დებრეცენი;デブレツェン;德布勒森;데브레첸; +city::722437;Bekescsaba;Bekescab;Bekescaba;Bekescsaba;Bekeshchaba;Bekesska Caba;Bekeščab;Bekeščaba;Bichisciaba;Bichișciaba;Békešská Čaba;Békéscsaba;Gerla;Mezomegyer;Mezőmegyer;Nagymajor;bei kai shen qiao bao;bekeshuchaba;bekesyucheobeo;bykyschaba;bykyshchaba;Бекешчаба;בקשצאבה;بیکیسچابا;بیکیشچابا;ბეკეშჩაბა;ベーケーシュチャバ;貝凱什喬包;베케슈처버; +city::3042638;Zalaegerszeg;Jegersek;Zalaederseg;Zalaegerseg;Zalaegersegas;Zalaegerszeg;Zalaegerszegium;Zalaehgerseg;jeolleoegeleusegeu;zalaegersegi;zalaygrsg;zalaygyrshyg;zaraegerusegu;zuo luo ai ge sai ge;Залаегерсег;Залаеґерсеґ;Залаэгерсег;זאלאגרסג;زالائگرسگ;زالائگیرشیگ;ზალაეგერსეგი;ザラエゲルセグ;佐洛埃格塞格;절러에게르세그; +city::3042929;Veszprem;Comitatul Veszprem;Comitatul Veszprém;Gyulafiratot;Gyulafirátót;Kadarta;Kádárta;Vesprem;Vespremas;Vesprim;Vesprimia;Vesprém;Vesprėmas;Vessprem;Vessprém;Veszprem;Veszprem megye;Veszprim;Veszprém;Veszprém megye;Wesprim;ZFP;beseupeulem;vu~esupuremu;wei si pu lei mu;wei si pu lei mu zhou;wshprym;wsprm;wsprym;Веспрем;וספרם;وسپریم;وشپریم;ვესპრემი;ヴェスプレーム;維斯普雷姆;維斯普雷姆州;베스프렘; +city::3044082;Tatabanya;Tataban'ja;Tatabana;Tatabania;Tatabanj;Tatabanja;Tatabanya;Tatabánya;tao tao ba ni ao;tatabanya;teoteobanyeo;Татабанья;Татабаня;Татабања;טאטאבניה;تاتابانیا;ტატაბანია;タタバーニャ;陶陶巴尼奧;터터바녀; +city::3044310;Szombathely;Gorad Sombatkhej;Gyongyosherman;Gyöngyöshermán;Hereny;Herény;Kamon;Kámon;Olad;Perint;Sabaria;Sambotel;Savaria;Sombatgej;Sombathejus;Sombathel;Sombathelj;Sombathėjus;Sombatkhej;Sombatkhel;Sombotel;Steinamanger;Szentkiraly;Szentkirály;Szombatehly;Szombathely;Szombatnely;ZBX;Zanat;smbathy;som bxt he;sombeoteuhei;sonbatohei;song bo te hai yi;swmbthy;Горад Сомбатхей;Сомбатгей;Сомбатхей;Сомбатхељ;סומבטהי;سمباتهی;شامباتہیلی;โซมบอตเฮ;სომბატჰეი;ソンバトヘイ;松博特海伊;솜버트헤이; +city::3044774;Szekesfehervar;Alba Regalis;Alba Regia;Albareale;Gorad Sekeshfekhervar;Sekesfehervar;Sekesfehervara;Sekesfehervaras;Sekeshfegervar;Sekeshfekhervar;Sekešfehervar;Stolicny Belehrad;Stoličný Belehrad;Stolni Beograd;Stolni Biograd;Stuhlweissenburg;Stuhlweißenburg;Szekesfehervar;Székesfehérvár;Sēkešfehērvāra;Sėkešfehėrvaras;sai ke shen bai bao;sekeshufeheruvu~aru;sekesyupeheleubaleu;sekhesfe her war;sykshfhrwar;sykshfhyrfar;Горад Секешфехервар;Секешфегервар;Секешфехервар;Столни Београд;סקשפהרוואר;سيكشفهيرفار;سیکشفهروار;شیکیسفیہیروار;เซเคซเฟเฮร์วาร์;სეკეშფეჰერვარი;セーケシュフェヘールヴァール;塞克什白堡;세케슈페헤르바르; +city::3045190;Sopron;OEdenburg;Scarabantia;Scarbantia;Shopron;Sopron;Sopronas;Sopronium;shopuron;shprn;shwbrwn;soparona;swprwn;syopeulon;xiao pu lang;Ödenburg;Šopron;Šopronas;Σόπρον;Шопрон;שאפראן;שופרון;سوپرون;شوبرون;شپرن;सोपरोन;შოპრონი;ショプロン;肖普朗;쇼프론; +city::3046526;Pecs;Cinquechiese;Fuenfkirchen;Funfkirchen;Fünfkirchen;Gorad Pech;Hird;Magyarurugy;Magyarürügy;Malom;Meced Sabolc;Mecek Sabolc;Mecsekalja;Mecsekszabolcs;Málom;Nadapipad;Nadarpad;Nagyarpad;Nagyárpád;PEV;Paetkostolie;Patacs;Pec;Peca;Pecas;Pech;Pechuj;Pecs;Pecuh;Pecuj;Pecuy-;Pecz;Pets;Peçuy-;Peč;Pečuh;Pečuj;Päťkostolie;Pécs;Pēča;Pėčas;Quinque Ecclesiae;Racvaros;Rácváros;Somogy;Sopianae;Vasas;bytsh;pch;peca;pechi;pei qi;pych;pz;Πετς;Горад Печ;Печ;Печуј;פעטש;פץ;بيتش;پچ;پیچ;पेच;პეჩი;ペーチ;佩奇;페치; +city::3046619;Paradsasvar;Paradsasvar;Paradshashvar;Ureghuta;Uveghuta;Üreghuta;Üveghuta;Парадшашвар; +city::3047679;Nagykanizsa;Bagola;Bagolasanc;Bagolasánc;Bajcsa;Gross Kanischa;Grosz Kanischa;Kanije;Korpavar;Korpavár;Miklosfa;Miklósfa;Nad'kanizha;Nadkaniza;Nadkanizha;Nadkaniža;Nagykanizsa;Somogyszentmiklos;Somogyszentmiklós;Velika Kaniza;Velika Kanizha;Velika Kaniža;Velika Kanjiza;Velika Kanjiža;nadkanyzha;nadkanyzsa;najikanija;nao ji kao ni rao;neojikeonijeo;qnyzhh;Велика Канижа;Надканижа;Надьканижа;Надьканіжа;قنیژه;نادکانیزسا;نادکانیژا;ნადკანიჟა;ナジカニジャ;瑙吉考尼饒;너지커니저; +city::3050434;Kecskemet;Heteny;Hetenyegyhaza;Hetény;Hetényegyháza;Kechkemet;Keckemet;Keckemetas;Kecskemet;Kecskemét;Kečkemet;Kečkemėtas;kai qi kai mei te;kchkmyt;kchkymt;kechikemeteu;kechikemeto;khechkhe met;qz'qmt;Кечкемет;קצ'קמט;کچکمیت;کچکیمت;เคชเคเมต;ケチケメート;凯奇凯梅特;케치케메트; +city::3050616;Kaposvar;Kaposfured;Kaposfüred;Kaposhvar;Kaposszentjakab;Kaposvar;Kaposvaras;Kaposvár;Kapošvar;Kapošvaras;Toponar;Toponár;Torocske;Töröcske;kao bo shen bao;kaposhuvu~aru;kapshwar;kapwswar;keoposyubaleu;Капошвар;קאפושוואר;کاپشوار;کاپوسوار;კაპოშვარი;カポシュヴァール;考波什堡;커포슈바르; +city::3052009;Gyor;Arrabona;D'er;D'jor;D'or;Deras;Djor;Dėras;GJer;Gera;Gjer;Gjur;Gorad Dz'jor;Gyirmot;Gyirmót;Gyor;Gyorszentivan;Győr;Győrszentiván;Iaurinum;Jura;Menfocsanak;Ménfőcsanak;Pinnyed;Pinnyéd;Raab;cexr;diori;dywr;gywr;jeru;jie er;joeleu;Đer;Ģēra;Ђер;Ѓер;Горад Дзьёр;Дьер;Дьйор;Дьор;Дьёр;Дьӧр;גיור;دیؤر;گیور;เจอร์;დიორი;ジェール;杰尔;죄르; +city::3053281;Erd;Andzabeg;Ehrd;Erd;Hamzsabeg;Hamzsabég;ai er de;ayrd;eleudeu;erdi;erudo;Érd;Ерд;Эрд;ארד;ایرد;ერდი;エールド;埃爾德;에르드; +city::3053438;Dunaujvaros;Duna Pentele;Dunapentele;Dunauivarosas;Dunauivarošas;Dunaujvaros;Dunaujvarosh;Dunaujvaroš;Dunaújváros;Pentela;Stalinvaros;Sztalinvaros;Sztálinváros;do~unauivu~aroshu;dunauivaroshi;duneou-ibalosi;duo nao xin cheng;dwnawywarws;dwnayywrwsh;Дунауйварош;Дунаујварош;دوناؤئواروس;دونائیوروش;დუნაუივაროში;ドゥナウーイヴァーロシュ;多瑙新城;두너우이바로시; +city::3054643;Budapest;BUD;Boedapes;Boedapest;Boudapes;Boudapeste;Boudapès;Budaipeist;Budapescht;Budapeshha;Budapesht;Budapesht osh;Budapest;Budapesta;Budapestas;Budapeste;Budapesti;Budapestinum;Budapesto;Budapeszt;Budapeŝto;Budapeşt;Budapeşte;Budapešt;Budapešta;Budapeštas;Budapešť;Budapèst;Budapésht;Budimpeshta;Budimpesta;Budimpešta;Bùdapest;Bùdapeszt;Búdaipeist;Búdapest;Gorad Budapesht;bu da pei si;budapaisata;budapeseuteu;budapesrr;budapest;budapesta;budapesuto;bwdabst;bwdabyst;bwdapst;bwdpst;putapest;Βουδαπέστη;Будапешт;Будапешт ош;Будапеща;Будимпешта;Горад Будапешт;Բուդապեշտ;בודאפעשט;בודפשט;بودابست;بودابيست;بوداپست;بوداپێست;بوډاپسټ;बुडापेस्ट;बुदापेस्त;বুদাপেস্ট;ਬੁਦਾਪੈਸਤ;બુડાપેસ્ટ;ବୁଦାପେଷ୍ଟ;புடாபெஸ்ட்;ಬುಡಾಪೆಸ್ಟ್;ബുഡാപെസ്റ്റ്;บูดาเปสต์;བུ་ད་ཕེ་སིད།;ဗူးဒပက်မြို့;ბუდაპეშტი;ቡዳፔስት;ブダペスト;布达佩斯;부다페스트; +city::1213500;Tebingtinggi;Tebingtinggi; +city::1213547;Tanjungbalai;Tandjoengbalai;Tandjungbalai;Tanjungbalai; +city::1213614;Sunggal;Sungal;Sunggal; +city::1213855;Sibolga;FLZ;Kota Sibolga;Sibolga;Сиболга; +city::1214073;Rantauprapat;Rantauprapat; +city::1214189;Percut;Percut;Pertjoet;Pertjut; +city::1214191;Perbaungan;Baoengan;Baoengar;Baungan;Perbaungan; +city::1214204;Pematangsiantar;Pematangsiantar;Pematangsieantar; +city::1214369;Padangsidempuan;Padangsidempuan;Padangsidimpoean;Padangsidimpuan; +city::1214520;Medan;Gorad Medan;Kota Medan;Kuta Medan;Kuta Mèdan;Kutha Medan;MES;Medan;Medana;Medanas;Medano;Mentan;mdan;me dan;medan;metan;mian lan;mydan;Μεντάν;Горад Медан;Медан;مدان;ميدان;میدان ، انڈونیشیا;மேடான்;เมดาน;メダン;棉蘭;메단; +city::1214658;Lhokseumawe;Kota Lhokseumawe;LSW;Lho'seumawe;Lhokseumawe;Lhoksumawe;Lho’seumawe;Lokseumave;Локсеумаве; +city::1214724;Langsa;Langsa;Langsar; +city::1214882;Kisaran;Kisaran;Kisaran Baru; +city::1214965;Kabanjahe;Kabandjahe;Kabanjahe; +city::1215355;Binjai;Bindjai;Bindjei;Binjai;Kota Binjai;min li;民禮; +city::1215412;Belawan;Belawan; +city::1215502;Banda Aceh;BTJ;Baiturahman;Banda Aceh;Banda Aceha;Banda Acehas;Banda Acheh;Banda Achekh;Banda Achem;Banda Achém;Banda Atjeh;Banda Ačeha;Banda Ačehas;Banda-Achekh;Banta Atsech;Koetaradja;Kota Banda Aceh;Kota Banda Acéh;Kuta Banda Aceh;Kuta Banda Acèh;Kuta Raja;Kutaradja;Kutha Banda Aceh;Kutha Banda Acèh;ban da ya qi;ban dar xa ceah;banda ash;banda atshyh;bandaache;Μπάντα Άτσεχ;Банда Ачех;Банда-Ачех;باندا آتشيه;باندا آسه;بندا آچے;บันดาร์อาเจะห์;バンダ・アチェ;班達亞齊;반다아체; +city::1621177;Yogyakarta;DI Yogyakarta;DIY;Daerah Istimewa Yogyakarta;Djogjakarta;Djokja;Djokjakarta;Dzhodzhakarta;Dzhok'jakarta;Dzhokjakarta;Dzogdzakarta;Dzogjakarta;Džogjakarta;Gionkiakarta;JOG;Jogjakarta;Jogjakarto;Jogyakarta;Jokjakarta;Jokyakarta;Kota Yogyakarta;Kuta Yogyakarta;Kutha Ngayogyakarta;Special Region of Yogyakarta;Yogyakarta;jogujakaruta shi;ri re;yog-yakaleuta;yogyakarta;ywgyakarta;ywjyakrta;yxk ya kar ta;Γιογκιακάρτα;Џогџакарта;Джоджакарта;Джокьякарта;Джокякарта;يوجياكرتا;یوگیاکارتا;योग्यकर्ता;योग्यकार्ता;ยอกยาการ์ตา;ჯოკიაკარტა;ジョグジャカルタ市;日惹;욕야카르타; +city::1621395;Wonosobo;Wanasaba;Wonosabo;Wonosobo; +city::1621613;Weru;Weru; +city::1621655;Weleri;Weleri; +city::1621678;Wedi;Wed;Wedi; +city::1621884;Watampone;Bone;Boni;Watampone; +city::1622636;Ungaran;Oengaran;Ungaran;Unggaran; +city::1622786;Makassar;Djumpandang;Kota Makassar;Macassar;Makasar;Makasaras;Makassar;Makasser;UPG;Udjung Pandang;Ujungpandang;makasaleu;makasar;makassaru;Макассар;ماکاسار;マカッサル;마카사르; +city::1623080;Tulungagung;Toeloengagoeng;Toeloengoeng;Tulungagung; +city::1623096;Tulangan Utara;Toelangan;Tulangan;Tulangan Utara; +city::1623180;Tuban;Toeban;Tuban;Тубан; +city::1624041;Ternate;Kota Ternate;Ternate;teleunate seom;terunate dao;Тернате;テルナテ島;테르나테 섬; +city::1624058;Terbanggi Besar;Terbanggi Besar;Terbanggi-besar; +city::1624494;Tegal;Kota Tegal;Kutha Tegal;Tegal;tgal;tygal wsty jawa;tyghal;zhi ge;Тегал;تيغال;تگال;تیگال، وسطی جاوا;ტეგალი;直葛; +city::1624647;Tasikmalaya;Kota Tasikmalaya;TSY;Tasikmalaja;Tasikmalaya;Tasikmalaya kutha; +city::1624668;Tarub;; +city::1624725;Tarakan;Kota Tarakan;Kutha Tarakan;TRK;Tarakan;ta la ka en;tarakan;tarakan shmaly kalymantan;Таракан;تاراكان;تاراکان;تاراکان، شمالی کالیمانتان;塔拉卡恩; +city::1624863;Tanjungpinang;Tandjoengpinang;Tandjungpinang;Tanjungpinang; +city::1624877;Tanjung Pandan;Pandan;TJQ;Tandjoengpandan;Tandjong-pandan;Tandjungpandan;Tanjong Pandan;Tanjung Pandan;Tanjungpandan; +city::1624917;Bandar Lampung;Bandar Lampung;Bandar-Lampung;Bandarlampung;Kota Bandar Lampung;TKG;Tanjungkarang;Tanjungkarang-Telukbetung;Telukbetung;ban da nan bang;bandaleulampung;bandaruranpun;bndr lampwng;Бандар-Лампунг;بندر لامپونگ;バンダールランプン;班達楠榜;반다르람풍; +city::1624987;Tanjungagung;Tandjoengagoeag;Tandjoengagoeng;Tandjungagung;Tanjungagung; +city::1625084;Tangerang;Gorad Tangerang;Kota Tangerang;Kutha Tangerang;Tangarang;Tangerang;Tangerangas;tan ge lang;tang-elang;tangeran;tangrang;Горад Тангеранг;Тангеранг;تانگرانگ;ტანგერანგი;タンゲラン;坦格朗;탕에랑; +city::1625812;Surakarta;Gorad Surakarta;Kota Surakarta;Kutha Surakarta;SOC;Soerakarta;Solo;Sourakarta;Surakarta;Surakarte;sulakaleuta;suo luo;suo luo shi;surakarta;surakaruta;swrakarta;Σουρακάρτα;Горад Суракарта;Суракарта;Суракарте;سوراكارتا;سوراکارتا;सुरकर्ता;სურაკარტა;スラカルタ;梭罗市;索罗;수라카르타; +city::1625822;Surabaya;Gorad Surabaja;Kota Surabaya;Kutha Surabaya;SUB;Soerabaja;Soerabaya;Sourabaya;Sourampagia;Surabaia;Surabaja;Surabajo;Surabaya;si shui;sulabaya;sura ba ya;surabaia;surabaya;swrabaya;swrbyh;Σουραμπάγια;Горад Сурабая;Сурабайа;Сурабая;Сурабаја;סורביה;سورابايا;سورابایا;สุราบายา;სურაბაია;スラバヤ;泗水;수라바야; +city::1625929;Sungai Penuh;Soengaipenoeh;Sungai Penuh;Sungeipenu; +city::1625958;Sungailiat;Soengailiat;Soengei Liat;Sungailiat; +city::1626099;Sumenep;SUP;Soemanep;Soemenap;Soemenep;Sumenep; +city::1626103;Sumedang;Soemadang;Soemedang;Sumedang; +city::1626183;Sumber;Soember;Sumber; +city::1626185;Sumbawa Besar;SWQ;Soembawa;Soembawa-besar;Sumbawa;Sumbawa Besar; +city::1626312;Sokaraja;Soekaradja;Sokaraja;Sukaradja;Sukaraja; +city::1626381;Sukabumi;Kota Sukabumi;Kutha Sukabumi;Soekaboemi;Sukabumi;su jia wu mei;swkabwmy;Сукабуми;Сукабумі;سوکابومی;სუკაბუმი;蘇加武眉; +city::1626498;Sragen;Spagen;Sragen;Sregen; +city::1626542;Sorong;Kota Sorong;SOQ;Sorong;Соронг; +city::1626560;Soreang;Sereang;Soreang; +city::1626754;Sleman;Sleman;Suleman; +city::1626758;Slawi;Selawi;Slawi;Slawj; +city::1626801;Situbondo;Sitoebanda;Sitoebondo;Situbando;Situbondo; +city::1626899;Singosari;Singasari;Singosari;Сингосари; +city::1626916;Singkawang;Sekawang;Singkawang; +city::1626921;Sengkang;Sengkang;Singkang; +city::1626932;Singaraja;Boeleleng;Boelèlèng;Singaradja;Singaradzha;Singaraja;shigaraja;Сингараджа;シガラジャ; +city::1627253;Sidoarjo;Sidaardja;Sidoardio;Sidoardja;Sidoardjo;Sidoarjo;Sidohardjo; +city::1627357;Sewon;; +city::1627459;Serpong;; +city::1627549;Serang;Kabupaten Serang;Serang; +city::1627610;Sepatan;Sepaitan;Sepatan; +city::1627896;Semarang;Gorad Semarang;Kota Semarang;Kutha Semarang;SRG;Samarang;Semaran'nk;Semarang;Semarangas;cemaran;san bao long;san ma leng;se ma rang;semarangi;seumalang;smarang;sumaran;symarang;symaranj;Σεμαράνγκ;Горад Семаранг;Семаранг;سمارانگ;سيمارانج;سیمارانگ;செமாராங்;เซมารัง;სემარანგი;スマラン;三孖冷;三宝垄;三寶瓏;스마랑; +city::1628453;Sawangan;; +city::1628884;Sampit;SMQ;Sampit;Tanah Hevea; +city::1628899;Sampang;Sampand;Sampang; +city::1629001;Samarinda;Batoeng Panggol;Gorad Samarynda;Kota Samarinda;Kuta Samarinda;Kutha Samarinda;SRI;Samarinda;camarinta;sa ma rin da;samalinda;samarinda;samarynda;sha ma lin da;Горад Самарында;Самаринда;ساماريندا;ساماریندا;سامارینڈا;சமாரிண்டா;ซามารินดา;サマリンダ;沙馬林達;사마린다; +city::1629131;Salatiga;; +city::1629710;Rengasdengklok;Rengasdengklok; +city::1630058;Rangkasbitung;Rangkas Betung;Rangkasbitoeng;Rangkasbitung;Rangkasibitoeng; +city::1630328;Purwokerto;Kota Purwokerto;PWL;Poerwakerta;Poerwokerto;Purwakerta;Purwokerto; +city::1630333;Purwodadi;Poerwadadi;Poerwodadi;Purwadadi;Purwodadi;Purwodadi Grobogan; +city::1630341;Purwakarta;Kota Purwakarta;Poerwakarta;Purwakarta; +city::1630366;Purbalingga;Poerbalingga;Poerbolinggo;Purbalingga;Purbolinggo;Purbolingo; +city::1630634;Probolinggo;Kota Probolinggo;Prabalingga;Probalingga;Probalinggo;Probolinggo; +city::1630789;Pontianak;Kota Pontianak;Kuta Pontianak;Kutha Pontianak;PNK;Pontianak;Pontianakas;Pontijanak;bwntyanak;kun dian;pn ti xa nak;pontianag;pontianakku;pwntyanak;pwnٹyank anڈwnyshya;Понтианак;פונטיאנק;بونتياناك;پونتیاناک;پونٹیاناک;پونٹیانک، انڈونیشیا;ปนตีอานัก;ポンティアナック;坤甸;폰티아낙; +city::1630798;Ponorogo;Panaraga;Ponogoro;Ponorogo; +city::1630935;Polewali;Polewali; +city::1630997;Plumbon;Pelumbon;Ploembon;Plumbon; +city::1631271;Petarukan;Petaroekan;Petarukan; +city::1631393;Prabumulih;Peraboemoelih;Perabumulih;Praboemoelih;Prabumuli;Prabumulih; +city::1631648;Pemalang;Pemalang; +city::1631761;Pekanbaru;Kota Pekanbaru;Kutha Pekanbaru;PKU;Pakanbahru;Pakanbaroe;Pakanbaru;Pekanbaroe;Pekanbaru;bei gan ba lu;pekanbalu;pkanbarw;pukanbaru;pykanbarw;Пеканбару;پکانبارو;پیکانبارو;プカンバル;北干巴魯;페칸바루; +city::1631766;Pekalongan;Kota Pekalongan;Pekalongan; +city::1631851;Pecangaan;Pecangaan;Pecangakan;Petjangaan;Petjangakan;Petjangkan; +city::1631905;Payakumbuh;Kota Payakumbuh;Paja Kombo;PajaKumbuh;Pajakoemboeh;Payakumbuh;Rayakumbuh; +city::1631992;Pati;Pati;Пати; +city::1632033;Pasuruan;Kota Pasuruan;Pasoeroean;Pasuruan; +city::1632197;Paseh;Paseh; +city::1632228;Pasarkemis;Pasarkemis; +city::1632276;Parung;Paroeng;Parung; +city::1632334;Pariaman;Kota Pariaman;Pariaman; +city::1632353;Parepare;Parepare; +city::1632358;Pare;Pare; +city::1632654;Pangkalpinang;Merawang;PGK;Pangkalpinang;Pankal Pinang; +city::1632823;Pandeglang;Pandegelang;Pandeglang; +city::1632861;Pandak;; +city::1632937;Pamulang;; +city::1632978;Pamekasan;Pamekasan;Ramekasan; +city::1632998;Pamanukan;Pamanoekan;Pamanukan; +city::1633034;Palu;Kabupaten Poso;Kota Palu;PLW;Pal;Paloe;Palu;Пал; +city::1633037;Palopo;LLO;Palopo;Paloppo;Wara; +city::1633056;Palimanan;Palimanan; +city::1633070;Palembang;Gorad Palembang;Kota Palembang;Kutha Palembang;PLM;Palembang;Palembangas;Palempan'nk;Palimbao;Palimbão;Palèmbang;balymbanj;ju gang;pa lem bang;palembanga;pallembang;palmbang;palymbang;parenban;Παλεμπάνγκ;Горад Палембанг;Палембанг;باليمبانج;پالمبانگ;پالم‌بانگ;پالیمبانگ;पालेंबांग;ปาเล็มบัง;パレンバン;巨港;팔렘방; +city::1633118;Palangkaraya;Kota Palangka Raya;PKY;Pahandoet;Pahandut;Palangka Raya;Palangkaraja;Palangkaraya;Plangkaraja;pa lang ka la ya;帕朗卡拉亚; +city::1633308;Pagar Alam;PXA;Pagar Alam;Pageralam; +city::1633419;Padang;Gorad Padang;Kota Padang;Kuta Padang;Kutha Padang;PDG;Padang;Padangas;Padango;ba dong;badangh;pa dang;padan;padang;padanga;padng andwnzy;Горад Паданг;Паданг;بادانغ;پادانگ;پادنگ، اندونزی;پاڈانگ;पादांग;ปาดัง;パダン;巴東;파당; +city::1634131;Nganjuk;Ngandjoek;Ngandjuk;Nganjuk; +city::1634718;Muncar;Moentjar;Muncar;Muntjar; +city::1635111;Mojokerto;Kota Mojokerto;Madjakerta;Modjokerto;Mojokerto; +city::1635283;Metro;Kota Metro;Metra;Metro;Метро; +city::1635342;Mertoyudan;Mertajoedan;Mertojoedan;Mertojudan;Mertoyudan; +city::1635660;Melati;Melati;Mlati; +city::1635882;Mataram;AMI;Kota Mataram;Kutha Mataram;Mataram;Mataram-Lombok;Mataramas;ma ta lan;matalam;mataram;mataramu;Матарам;ماتارام;ماٹارام;მატარამი;マタラム;馬塔蘭;마타람; +city::1636022;Martapura;Martapoera;Martapura; +city::1636125;Margahayukencana;Margahajoe;Margahaju;Margahayu;Margahayukencana; +city::1636308;Manokwari;Kabupaten Manokwari;Kutha Manokwari;MKW;Manokvari;Manokvaris;Manokwari;Menoekwari;man nuo wa li;manokuwari;manokwali;manwkwary;Маноквари;مانوكواري;مانوکواری;მანოკვარი;マノクワリ;曼諾瓦里;마노콰리; +city::1636507;Mendaha;Mandahara;Mendaha;Mendahara; +city::1636544;Manado;Kota Manado;Kutha Manado;MDC;Manadas;Manado;Menado;ma na do;manado;manadw;wan ya lao;Манадо;مانادو;مناڈو;मानदो;มานาโด;マナド;万鸦老;萬鴉老;마나도; +city::1636722;Malang;Kabupaten Malang;Kota Malang;Kutha Malang;MLG;Maland;Malang;ma lang;malangh;malangi;mallang;malng;maran;Маланг;مالانغ;مالنگ;მალანგი;マラン;瑪琅;말랑; +city::1636816;Majalengka;Madjalengka;Majalengka; +city::1636884;Magelang;Kota Magelang;Kutha Magelang;Magelang;ma ge lang;magelangi;maglang;Магеланг;ماگلانگ;მაგელანგი;馬格朗; +city::1636930;Madiun;Kota Madiun;Madioen;Madiun; +city::1637090;Lumajang;Kabupaten Lumajang;Loemadjang;Lumadjang;Lumajang; +city::1637158;Lubuklinggau;Kota Lubuklinggau;Loeboeklinggau;Lubuklinggao;Lubuklinggau; +city::1637510;Loa Janan;Loa Djanan;Loa Janan; +city::1638063;Lembang;Lembang;Lembang 1;Lembange;Лембанге; +city::1638284;Lawang;Lawang; +city::1638562;Lamongan;; +city::1638775;Lahat;Lahat;PXA; +city::1638868;Labuan Bajo;Badjo;LBJ;Laboean Bajo;Laboehanbadjo;Labuan Bajo;Labuanbadzho;Labuanbajo;Labuhanbadjo;Labuhanbajo;Лабуанбаджо; +city::1639094;Kuningan;Koeningan;Kuningan; +city::1639215;Kudus;Koedoes;Kudus; +city::1639362;Kresek;Keresek;Kresek; +city::1639900;Klaten;Kabupaten Klaten;Klaten;Klathen; +city::1639925;Klangenan;Klangenan; +city::1640185;Kertosono;Pelem;Pĕlĕm; +city::1640296;Kepanjen;Kepandjen;Kepanjen; +city::1640344;Kendari;KDI;Kendari;Kendaris;Kota Kendari;Kutha Kendhari;ken da li;ken da ri;kendari;keundali;kndary;kndry andwnzy;Кендари;کنداری;کندری، اندونزی;เก็นดารี;ケンダリ;肯達里;큰다리; +city::1640581;Kedungwuni;Kedoengwoeni;Kedungwuni; +city::1640585;Kedungwaru;; +city::1640660;Kediri;Kediri;Kota Kediri;Kutha Kedhiri;jian yi li;kdyry;kydyry mshrqy jawa;Кедири;كديري;کیدیری، مشرقی جاوا;კედირი;諫義里; +city::1640765;Kebomas;; +city::1640902;Kawalu;Kawaloe;Kawalu; +city::1641184;Karangsembung;Karangsemboeng;Karangsembung; +city::1641333;Karanganom;Karanganom; +city::1642414;Jombang;Djombang;Jombang;Kabupaten Jombang; +city::1642588;Jember;Djember;JBB;Jember; +city::1642684;Jatiwangi;Djatiwangi;Jatiwangi; +city::1642692;Jatiroto;Djatiroto;Jatiroto; +city::1642726;Jatibarang;Djatibarang;Jatibarang; +city::1642858;Jambi City;DJB;Djambi;Dzhambi;Jambi;Jambi City;Sriindrapura;Telanaipura;jamby;Джамби;جامبي; +city::1642911;Jakarta;Batavia;Cakarta;D'akarta;Daerah Khusus Ibukota Jakarta;Djakarta;Djogkarta;Dki Jakarta;Dzakarta;Dzhakarta;Dzhakartae;Dżakarta;Džakarta;Gakarto;Giacarta;Gorad Dzhakarta;Iacarta;Iacárta;JKT;Jacarta;Jakarta;Jogkarta;Nga-ka-that Su-tu Thit-khi;Ngâ-kâ-tha̍t Sú-tû Thi̍t-khî;Tzakarta;Xacarta;Xhakarta;Yajgyadaz;Yakarta;Zhakarta;cakarta;g'qrth;jakaleuta;jakarata;jakarta;jakartta;jakaruta;jkarta;ya jia da;Ĝakarto;Τζακάρτα;Џакарта;Горад Джакарта;Джакартæ;Джакарта;Дьакарта;Жакарта;Ջակարտա;ג'קרטה;דזשאקארטא;جاكارتا;جاکارتا;جکارتا;جکارتہ;जकार्ता;জাকার্তা;ਜਕਾਰਤਾ;જાકાર્તા;ଜାକର୍ତା;ஜகார்த்தா;జకార్తా;ಜಕಾರ್ತ;ജക്കാർത്ത;จาการ์ตา;ཊ་ཁར་ཏ།;ဂျကာတာမြို့;ჯაკარტა;ጃካርታ;ចាការតា;ジャカルタ;雅加达;자카르타; +city::1643078;Indramayu;Indramajoe;Indramaju;Indramayu; +city::1643761;Grogol;; +city::1643776;Gresik;Geresik;Gersik;Gresik;Grise;Grisee;Grissee; +city::1643837;Gorontalo;Gorontalo;Горонтало; +city::1643981;Godean;Godean;Godejan; +city::1644178;Genteng;Genteng-kulon; +city::1644349;Gedangan;; +city::1644605;Galesong;Galesong; +city::1644932;Ende;ENE;Ende;Endeh;Kota Ende; +city::1645133;Dumai;DUM;Doemai;Dumai;Dumaj;Kota Dumai;Думай; +city::1645154;Dukuhturi;; +city::1645518;Depok;; +city::1645524;Depok;Depok;Depok kutha;Depokas;Kota Depok;Kota Dépok; +city::1645528;Denpasar;DPS;Dempasar;Dempassar;Denpasar;Denpasar Bali;Denpasaras;Gorad Dehnpasar;Kota Denpasar;Kutha Denpasar;Ntenpasar;dan pa sha;denapasara;denpasaleu;denpasaru;dnpasar;Ντενπασάρ;Горад Дэнпасар;Денпасар;דנפסאר;دنپاسار;ڈنپاسار;ڈنپسار;देनपसार;દેનપસાર;ဒန်ပါဆာမြို့;დენპასარი;デンパサール;丹帕沙;덴파사르; +city::1645895;Curug;Curug;Tjoeroeg;Tjurug; +city::1645976;Comal;Chiomal;Chomal;Comal;Tjomal; +city::1646034;Citeureup;Citeurep;Citeureup;Tjiteureup; +city::1646170;Cirebon;CBN;Cheribon;Chirebon;Cirebon;Cirebon kutha;Kota Cirebon;Kutha Cirebon;Tjerebon;Tjeribon;Tjirebon;chileubon;chireboni;chirubon;jing li wen;syrybwn;Чиребон;سيريبون;سیریبون;ჩირებონი;チルボン;井裡汶;치르본; +city::1646194;Ciputat;Ciputat;Tjipoetat;Tjipoetat 2;Tjiputat;Tjiputat 2; +city::1646448;Cimahi;Chimahi;Cimahi;Cimahi kutha;Kota Cimahi;Tjimahi;Tjimaki; +city::1646492;Cileunyi;Cileunyi;Tjileunji;Tjileunji 2; +city::1646494;Cileungsir;Cileungsi;Cileungsir;Tjileungsir; +city::1646678;Cikarang;Chikarang;Cikarang;Tjikarang; +city::1646698;Cikampek;Chikampek;Cikampek;Tjikampek; +city::1646893;Cicurug;Cicurug;Tjitjoeroeg;Tjitjurug; +city::1647003;Cibinong;Chibinong;Chibinung;Cibinong;Sibinonge;Tjibinong;Сибинонге; +city::1647149;Ciamis;Chiamis;Ciamis;Tjiamis; +city::1647179;Cepu;CPF;Cepu;Chepu;Panolan;Tjepoe;Tjepu; +city::1647298;Caringin;Caringin;Caringin 2;Tjaringin; +city::1647383;Ciampea;Campea;Ciampea;Tjampea;Tjampea 1; +city::1647866;Bukittinggi;Bukittinggi;Bukittingi;Fort de Kock;Fort de Rock;Kota Bukittinggi;Kutha Bukittinggi;bukitingi;wu ji ding yi;Букиттинги;ブキティンギ;武吉丁宜; +city::1648084;Boyolali;Bajalali;Bajalili;Bojolali;Boyolali; +city::1648186;Bontang;BXT;Bontang;Kota Bontang; +city::1648266;Bondowoso;Bandawasa;Bandowoso;Bondawasa;Bondowoso; +city::1648451;Bojonegoro;Bodjanegara;Bodjonegoro;Bojonegoro; +city::1648473;Bogor;Bogor;Buitenzorg;Kota Bogor;Kutha Bogor;bogoleu;bogori;bogoru;bwgwr;bwkwr;mao wu;Богор;بوكور;بوگور;ბოგორი;ボゴール;茂物;보고르; +city::1648568;Blora;Blora; +city::1648580;Blitar;Belitar;Blitar;Kota Blitar; +city::1648636;Bitung;Bitoeng;Bitung;Kota Bitung; +city::1648759;Bima;BMU;Bim;Bima;Бим; +city::1648918;Besuki;Besoeki; +city::1649150;Bengkulu;BKS;Bangkahulu;Bengkoeloe;Bengkulu;Benkoelen;Benkulen;Benkulu;Kota Bengkulu;Kutha Bengkulu;beungkullu;bngkwlw;bngkwlw andwnzy;bnjkwlw;ming gu lu shi;Бенгкулу;Бенкулу;بنجكولو;بنگکولو;بنگکولو، اندونزی;明古魯市;븡쿨루; +city::1649378;Bekasi;Bekasi;Bekasis;Gorad Bekasi;Kota Bekasi;Kutha Bekasi;beukasi;bkasy;bukashi;bykasy;wu jia si;Бекаси;Горад Бекасі;בקאסי;بيكاسي;بکاسی;ბეკასი;ᎠᎴᏂ;ブカシ;勿加泗;브카시; +city::1649593;Baturaja;Batoeradja;Batoerradja;Batu Radia;Baturadja;Baturaja; +city::1649824;Batu;Batoe;Batu;Batyj;Kota Batu;Sisir;Батый; +city::1649881;Batang;Batang; +city::1650064;Barabai;; +city::1650077;Banyuwangi;Banjoewangi;Banjuwangi;Banyuwangi; +city::1650119;Bantul;Bantoel;Bantul; +city::1650213;Banjarmasin;BDJ;Bandgermasin;Bandjarmasin;Bandjermasin;Bandjermassin;Banjarmasin;Banjermasin;Banyermasin; +city::1650227;Banjaran;Bandjaran;Banjaran; +city::1650232;Banjar;Bandjar;Banjar; +city::1650298;Bangkalan;Bangkalan;Pangkalan; +city::1650319;Bangil;; +city::1650357;Bandung;BDO;Bandoeng;Banduna;Bandung;Bandungas;Bandungo;Bantoun'nk;Gorad Bandung;Kota Bandung;Kuta Bandung;Kutha Bandhung;ban dung;bandon;bandung;bandungi;bandwng;bandwnj;bndwng;pantun;wan long;Μπαντούνγκ;Бандунг;Бандуң;Горад Бандунг;Բանդունգ;באנדונג;باندونج;باندونگ;بندونگ;بنڈونگ;பண்டுங்;บันดุง;ဘန်ဒေါင်းမြို့;ბანდუნგი;バンドン;万隆;萬隆;반둥; +city::1650527;Balikpapan;BPN;Balikpapan;Balikpapanas;Kota Balikpapan;Kutha Balikpapan;ba li ba ban;ba lik pa pan;balligpapan;balyk‌papan;barikupapan;Баликпапан;بالیک‌پاپان;บาลิก์ปาปัน;ဘာလစ်ပါပန်မြို့;ბალიკპაპანი;バリクパパン;巴厘巴板;발릭파판; +city::1650600;Balaipungut;Balaipoengoet;Balaipungut; +city::1650670;Baki;; +city::1650815;Baekrajan;Bae;Baekrajan;Beh;Tjendono;Бэ; +city::1651112;Astanajapura;Astanadjapura;Astanajapura; +city::1651226;Arjawinangun;Ardjawinangoen;Ardjawinangoen-Koelan;Ardjawinangun;Arjawinangun; +city::1651461;Amuntai;Amoentai; +city::1651531;Ambon;AMQ;Amboina;Ambon;Ambon City;Ambonas;Amboyna;Ambun;Gorad Ambon;Kota Ambon;Kutha Ambon;ambn;ambon;ambwn;ambwn malwkw;an wen;anbon;Амбон;Горад Амбон;آمبن;آمبون;أمبون;امبون، مالوکو;アンボン;安汶;암본; +city::1651555;Ambarawa;Ambarava;Ambarawa; +city::1651887;Adiwerna;Adiwerna;Adiwerno; +city::1963770;Padalarang;; +city::1964032;Ciranjang-hilir;Ciranjang-hilir;Tjirandjang-hilir; +city::1985663;Cikupa;; +city::1990589;Teluknaga;Teluknaga; +city::2005057;Gamping Lor;; +city::2005237;Kasihan;; +city::2010985;Kartasura;; +city::2057087;Kupang;Gorad Kupang;KOE;Koepang;Kota Kupang;Kupang;Kupangas;Kupange;Kupango;Kupanq;Kutha Kupang;gu bang;kupan;kupang;kwpang;Горад Купанг;Купанг;Купанге;کوپانگ;クパン;古邦;쿠팡; +city::2082600;Jayapura;DJJ;Djajapoera;Djajapura;Dzajapura;Dzhajapura;Džajapura;Hollandia;Jaya Pura;Jayapura;Kota Jayapura;Kotabaru;Noordwijk;Port Numbay;Port-Numbaj;Sukarnapura;Sukarnopura;ca ya pu ra;cha ya pu la;japapwra;jayapula;jayapura;Џајапура;Джаяпура;Порт-Нумбай;جاپاپورا;จายาปุระ;ジャヤプラ;查雅普拉;자야푸라; +city::2082727;Abepura;Abepura; +city::8224624;City of Balikpapan;; +city::8581443;South Tangerang;Tangerang Selatan; +city::2961284;Tallaght;Talagtas;Talat;Talla;Tallaght;Tallakht;Tamhlacht;ta la;talla;tla;Талат;Талла;Таллахт;تلا;塔拉;탈라; +city::2962943;Luimneach;Limereick;Limerick;Limerick city;Limerik;Limerika;Limerikas;Luimneach;lymryq;rimurikku;Лимерик;לימריק;リムリック; +city::2964180;Gaillimh;GWY;Gaillimh;Galway;Galway - Gaillimh;Galway city;Goluehj;Goluej;Golveja;Golvejus;Golvėjus;ge er wei;goruu~ei;Голуей;Голуэй;ゴールウェイ;戈尔韦; +city::2964506;Dun Laoghaire;Dan Lere;Dan Leri;Dan Lerė;Dan Liri;Dun Laoghaire;Dun Laoire;Dun-Lehare;Dunleary;Dunum Loigarii;Dún Laoghaire;Dún Laoire;Kingstown;danlyry;deng lai li;deonleleo;dn lyry;dunlere;Дан Лері;Дан Лири;Дун-Лэаре;דן לירי;دانلیری;ڈون لاری;ดูนเลเร;ダン・レアリー;邓莱里;던레러; +city::2964574;Dublin;Baile Atha Cliath;Baile Átha Cliath;Ciuda de Dublin;Ciudá de Dublín;DUB;Dablin;Diblin;Difelin;Divlyn;Doublino;Dublin;Dublin city;Dublina;Dublinas;Dublini;Dublino;Dublinu;Dublín;Dublîn;Dueblin;Dulenn;Dulyn;Dyflinn;Düblin;Eblana;Gorad Dublin;dabalina;dablin;dablina;daburin;dbln;dblyn;deobeullin;dou bai lin;dublini;dwblyn;taplin;Δουβλίνο;Горад Дублін;Даблин;Дублин;Дублін;Дъблин;Դուբլին;דבלין;דובלין;دبلن;دوبلين;دوبلین;دۇبلىن;ڈبلن;ډبلن;ܕܒܠܢ;डब्लिन;दब्लिन;ডাবলিন;ਡਬਲਿਨ;டப்லின்;ಡಬ್ಲಿನ್;ഡബ്ലിൻ;ดับลิน;དུབ་ལིན།;ဒပ်ဗလင်မြို့;დუბლინი;ደብሊን;ダブリン;都柏林;더블린; +city::2965140;Cork;Corc;Corcagia;Corcaigh;Cork;Cork - Corcaigh;Cork city;Corkee;Gorad Kork;Kork;Korka;Korkas;Korkig;ORK;ke ke;khxrk;kokeu;koku;korka;kwrk;qwrq;Κορκ;Горад Корк;Корк;Կորկ;קורק;كورك;کورک;कॉर्क;คอร์ก;კორკი;コーク;科克;코크; +city::281184;Jerusalem;Adonai-jireh;Aelia Capitolina;Al Quds;Al-Kuds;Al-Qudis;Al-Quds;Al-Qudıs;Ariel;Baitul Maqdis;Baitulmuqaddis;Bajtul Makudis;Bayt al-Maqdis;Bayt al-Muqaddas;Cherusalem;Colonia Aelia Capitolina;Djeruzalem;El Kuds;El Quds esh Sherif;Erusagem;Erusalim;Geruesalem;Gerusalem;Gerusalemme;Gerüsalem;Gierusalemme;Girusalemmi;Gorad Ierusalim;Herusale;Herusalem;Herusalẽ;Hierosolyma;Hierousalem;Hierousalēm;Hierusalem;Hiruharama;IJerusalem;Ia-lo-sak-leng;Ia-lo-sat-leng;Iarusaileim;Iarúsailéim;Iebous;Iebus;Ierosolyma;Ierousalem;Ierousalimu;Ierusalem;Ierusalema;Ierusalim;Ir David;Ir Ha-Qdoosha;Ir Ha-Qodesh;Iyerusalim;Ià-lô-sák-lēng;Iâ-lō͘-sat-léng;Iýerusalim;JRS;Jarusalen;Jeriwsalem;Jerozale;Jerozalė;Jerozolema;Jerozolima;Jerozolëma;Jerusalem;Jerusalemi;Jerusalemo;Jerusalemu;Jerusalen;Jerusalim;Jerusalèm;Jerusalém;Jerusalén;Jeruusalemm;Jeruzale;Jeruzalem;Jeruzaleme;Jeruzalim;Jeruzalém;Jeruzalė;Jeruzsalem;Jeruzsálem;Jerúsalem;Jerúsálẹ́mù;Jorsala;Jorsalaborg;Jorsalir;Jérusalem;Jórsalaborg;Jórsalir;Kouds;Kudues;Kudus;Kudüs;Kuuds-GӀala;Moria;Morias;Orcalim;Orselim;Orşelîm;Quddus;Qudus;Queds;Qüds;Salem;Shalem;Sion;Solyma;Ursalimmu;Urselim;Urshalim;Urusalim;Urušalim;Urşelim;Uršalimmu;Xerusalen;Xerusalén;Ya-lu-sat-lang;Yerusalem;Yerusalemi;Yerusalemu;Yerusalémi;Yerushalayim;Yirushalayim;Yirushalāyim;Yâ-lu-sat-lâng;Yérusalem;Zion;al-Balat;al-Quds as-Sarif;al-Quds aš-Šarīf;albla;alqds;alqds alshryf;aryyyl;awrshlym;byt almqds;erucalem;erusaremu;haqodes;ierusalimi;jerusalama;jerusalem;jerusalema;jeruselama;lqds;mrya;mworiyah;mwryh;qudus;qۇds;salem;salym;shywn;slm;wrshlym;yarusalama;ybws;ye lu sa leng;ye ru sa lem;yebws;yelusallem;yerwsalami;yerwsalayim;yerwselem;yrwshlm;yrwslm;yrwslym;ywrshەlym;ziywon;zywn;Αριηλ;Ιεβους;Ιεροσολυμα;Ιεροσόλυμα;Ιερουσαλήμ;Ιερουσαλημ;Μωριας;Σαλημ;Σιων;Σολυμα;Єрусалим;Їєроусалимъ;Јерусалим;Байтул Макъдис;Горад Іерусалім;Ерусалим;Иерусалим;Йерусалим;Кудус;Къудс-ГӀала;Уршалим;Երուսաղեմ;אֵילִיָּה קַפִּיטוֹלִינָה;הַקֹּדֶשׁ;יְבוּס;יְרוּשְׁלֶם;יְרוּשָׁלַיִם;יְרוּשָׁלַםִ;יְרוּשָׁלָםִ;יבוס;ירושלים;ירושלם;מוֹרִיָּה;מוריה;צִיּוֹן;ציון;שָׁלֵם;שלם;إيلياء;ئورشەلیم;اريئيل;البلا;القدس;القدس الشريف;اورشلیم;بيت المقدس;بیت المقدس;ساليم;صهيون;قۇدس;لقدس;مريّا;ورشليم;يبوس;یروشلم;ܐܘܪܫܠܡ;ܨܗܝܘܢ;ޤުދުސް;जेरुसलेम;जेरुसेलम;जेरूसलम;यरुशलम;জেরুসালেম;ਜੇਰੂਸਲਮ;ଜେରୁସାଲେମ;எருசலேம்;జెరూసలేం;ಜೆರುಸಲೆಂ;ജെറുസലേം;เยรูซาเลม;ເຢ​ຣູ​ຊາ​ເລັມ;ཇེ་རུ་ས་ལེམ།;ဂျေရုဆလင်မြို့;იერუსალიმი;እየሩሳሌም;エルサレム;耶路撒冷;예루살렘;𐌹𐌰𐌹𐍂𐌿𐍃𐌰𐌿𐌻𐍅𐌼𐌰; +city::282926;Modi'in Makkabbim Re'ut;Gane Modi'in;Gane Modi‘in;Makkabbim;Makkabbim Re`ut;Makkabbim Re‘ut;Makkabim;Modi'in;Modi'in Makkabbim Re'ut;Modiin;Modi‘in;Modi‘in Makkabbim Re‘ut;Nahal Modi'im;Naẖal Modi‘im;Ramot Modi'in;Ramot Modi‘in;Re`ut;Re‘ut;mwdyʻyn;מודיעין;מודיעין מכבים רעות;מכבים רעות;רעות; +city::293397;Tel Aviv;Lungsod ng Tel Aviv-Yafo;TLV;Tehl'-Aviu;Tel Avevs;Tel Aviv;Tel Aviv Yaffo;Tel Aviv Yafo;Tel Aviv-Jaffa;Tel Aviv-Jafo;Tel Aviv-Yafo;Tel Avivas;Tel Avív;Tel Avėvs;Tel Awiw;Tel Eviv;Tel'-Aviv;Tel-Aviv;Tel-Avivo;Tel-aviv;Tel-Əviv;Telaviva;Telavivum;Tell Abib;Tell Abīb;Tell Afif;te la wei fu;tel aviv;tel-abibeu;tel-avivi;tela abhibha;tela abhiva;tela aviva;teruabibu;thel xa wif;tl abyb;tl ʼbyb;tێl yەvyv;Τελ Αβίβ;Тел Авив;Тел-Авив;Тель-Авив;Тель-Авів;Тэль-Авіў;Թել Ավիվ;תל אביב;תל אביב-יפו;تل أبيب;تل ابيب;تل ابیب;تل‌آویو;تێل ئەڤیڤ;تېلاۋىف;ܬܠ ܐܒܝܒ;तेल अभिव;तेल अविव;तेल अवीव;তেল আভিভ;டெல் அவீவ்;ടെൽ അവീവ്;เทลอาวีฟ;თელ-ავივი;ቴል አቪቭ;テルアビブ;特拉維夫;特拉维夫;텔아비브; +city::293703;Rishon LeZiyyon;Ayun Kara;Le Tsiyon;Le Tsīyōn;Richon le Sion;Rischon LeZion;Rishon Le Zion;Rishon LeTsiyyon;Rishon LeZion;Rishon LeZiyyon;Rishon Letsiyon;Rishon LeẔiyyon;Rishon Lsiyon;Rishon le Siyon;Rishon le Ziyon;Rishon-le-Cion;Risjon Letsion;Rison-Le-Ciono;Riszon le-Cijjon;Riŝon-Le-Ciono;`Uyun Qara;rʼswn lzywn;Ришон-ле-Цион;ראשון לציון;‘Uyūn Qāra; +city::293725;Rehovot;Khirbet Deiran;Khirbet Deirān;Rechovot;Rechowot;Rehobot;Rehovot;Rehovoth;Rejovot;Reẖovot;Rhovot;Ruhaybah;rekhovot;rhwbwt;Реховот;רחובות; +city::293768;Ramla;Er Ramle;Ramla;Ramle;Ramlo;alrmlt;la mu la;lameulla;ramla;ramura;rmlh;Рамла;רמלה;الرملة;رمله;رملہ، اسرائیل;ラムラ;拉姆拉;라믈라; +city::293788;Ramat Gan;Gan;Gorad Ramat-Gan;Ramat Gan;Ramat Ganas;Ramat Nkan;Ramat-Gan;Ramat-Qan;la ma gan;lamateugan;ramat-gani;rmat ghan;rmt ghan;rmt gn;Ραμάτ Γκαν;Горад Рамат-Ган;Рамат Ган;Рамат-Ган;רמת גן;رمات غان;رمت غان;رمت گن;რამათ-განი;ラマト・ガン;拉馬干;라마트간; +city::293807;Ra'anana;Ra'anana;Ra'ananah;Ra'ananna;Raanana;Ra‘anana;Ra‘ananah;Ra‘ananna;rʻnnh;רעננה; +city::293918;Petah Tiqwa;Mulebbis;Petach Tikva;Petah Tikva;Petah Tikwah;Petah Tiqwa;Petaẖ Tikva;Petaẖ Tiqwa;Pethah Tiqva;Pethah Tiqvā;Tigrah;pth tqwh;pth tqwwh;pth tyqwh;pth tyqwwh;פתח תיקוה;פתח תיקווה;פתח תקוה;פתח תקווה; +city::294071;Netanya;Gorad Netanija;Lungsod ng Ntanya;Natania;Natanya;Nathanya;Netan'ja;Netania;Netanija;Netanja;Netanya;Netánja;Ntanya;na ta neiy;nattaniya;nei tan ya;netaniya;netanya;ntanya;ntnyh;Νετάνια;Горад Нетанія;Нетания;Нетанья;Нетаня;Нетанја;נתניה;نتانيا;نتانیا;நத்தானியா;นาตาเนีย;ネタニヤ;内坦亚;네타냐; +city::294098;Nazareth;En Nasira;En Nāsira;Lungsod ng Nazaret;Naatsaret;Nasaret;Nasira;Nasıra;Natserat;Natseret;Natsrat;Natséret;Natzaret;Nazara;Nazare;Nazaret;Nazaretas;Nazareth;Nazareto;Nazaré;Nazerat;Nazzerat;Naẕerat;Naẕẕerat;Nātsrat;alnasrt;na sa lei;nacarettu;nasales;nasrt;nazare;nsrt;nzrt;Ναζαρέτ;Назарет;נצרת;الناصرة;ناصرة;ܢܨܪܬ;நாசரேத்து;ナザレ;拿撒勒;나사렛; +city::294117;Nahariya;Nagarija;Naharia;Nahariia;Naharija;Naharijja;Nahariya;Nahariyah;Nahariyya;Nakharija;na ha li ya;naharia;nahariya;nharya;nhryh;Нагария;Нагарія;Нахария;Нахарија;נהריה;نهاريا;نهاریا;نہاریا;ნაჰარია;‏nhryh;‏נהריה;ナハリヤ;納哈里亞; +city::294421;Lod;Lida;Lidd;Lod;Lodas;Lont;Lud;Ludd;Lydda;Lūd;alld;lad;ld;lodeu;lodi;lu de;ludd;lwd;rodo;Λοντ;Лод;לד;לוד;اللد;لاد;لد;ലുദ്ദ്;ლოდი;ロード;卢德;로드; +city::294514;Kfar Saba;Kafr Saba;Kefar Saba;Kefar Sava;Kefar Sawa;Kefar-Sava;Kefár Saba;Kfar Saba;Kfar Sava;Kfar-Sava;ka fa sa ba;kfar saba;kfr sba;Кефар-Сава;Кфар Сава;Кфар-Сава;כפר סבא;كفار سابا;کفار سابا;کفر سبا;卡法薩巴; +city::294751;Holon;Cholon;Holon;H̱olon;Jolon;Jolón;Kholon;hwlwn;Холон;חולון;حولون; +city::294778;Herzliya;Gerclija;Herclijja;Herseliya;Hertseliyya;Hertsliyah;Hertsliyya;Hervlia;Hervlia B;Herzlia;Herzlia B;Herzliya;Herzliyah;Herzliyya;Herẕliyya;Lungsod ng Herzliyya;Lungsod ng Herẕliyya;hrzlyh;hrzlyyh;Герцлия;הרצליה;הרצלייה; +city::294801;Haifa;Aifa;Caiffa;Chaifa;Gorad Khajfa;HFA;Haifa;Hajfa;Hajfo;Hayfa;Haífa;Haïfa;Hefa;Heifa;Heifā;Hepha;Heyfa;H̱efa;Khajfa;Khajfae;Lungsod ng Hefa;Lungsod ng Ḥefa;ha'ipha;hai fa;haifa;haipa;haipha;hifa;hph;hyfa;hyph;kaihpa;khaipa;Ĥajfo;Χάιφα;Горад Хайфа;Хайфæ;Хайфа;Хајфа;Հայֆա;חיפה;חפה;حيفا;حیفا;حەیفا;ܚܝܦܐ;हाइफा;हैफ़ा;हैफा;கைஃபா;ಹೈಫ;ഹൈഫ;ไฮฟา;ხაიფა;Ḥeyfa;ハイファ;海法;하이파; +city::294946;Hadera;Chadera;El Khudeira;Hadera;Haderah;Hadeyra;Hedora;Hudeira;H̱adera;Khadera;Khederah;hdrh;Хадера;חדרה; +city::295432;Bet Shemesh;Beit Semes;Beit Şemeș;Beit-Shemesh;Bejt-Shemesh;Bet Schemesch;Bet Shemesh;Betxemeix;Betxèmeix;Maabarat Hartuv;byt sms;Бейт-Шемеш;בית שמש; +city::295514;Bnei Brak;Benai Beraq;Bene Berak;Bene Beraq;Benei Beraq;Beney Beraq;Bené Berak;Bené Beraq;Bne Beraq;Bnei Brak;Bné Beraq;bny brq;בני ברק; +city::295530;Beersheba;B'er Sheva';B'eyr-Sheva';BEV;Be'er Scheva;Be'er Sheva;Be'er Sheva`;Beehr-Sheva;Beer Scheva;Beer Seba;Beer Seva;Beer Sheba;Beer Sheva;Beer Sjeva;Beer Szewa;Beer Ŝeba;Beer Ševa;Beer Șeva;Beer-Seva;Beer-Sheva;Beer-Xeva;Beer-Şeva;Beerseba;Beerseva;Beersheba;Beerxeba;Beerşeba;Beerševa;Ber Seva;Bersabee;Bersabée;Berseba;Bersebá;Bersheva;Bersyeba;Berséba;Beér-Seva;Beër Sjeva;Beėršėva;Be’er Scheva;Bir el Saba;Bir es Sab`;Bir es Sabe;Birsheba;B’er Sheva‘;beer-sheva;beerusheba;bei er xie ba;beiyr chi ba;beleusyeba;bʼr sbʻ;pircepa;Μπερ Σεβά;Беер Шева;Беер-Шева;Бершева;Беэр-Шева;Биршеба;Բեեր Շևա;באר שבע;بئر السبع;بئرشبع;பீர்சேபா;เบียร์ชีบา;ბეერ-შევა;ቤርሳቤ;ベエルシェバ;贝尔谢巴;베르셰바; +city::295548;Bat Yam;Bat Jam;Bat Jamas;Bat Yam;Bat-Jam;ba te ya mu;bat yam;bat-iami;bateuyam;bt yam;bt ym;Бат Јам;Бат Ям;Бат-Ям;בת ים;بات يام;بات یام;بت یام;ბათ-იამი;バト・ヤム;巴特亚姆;바트얌; +city::295620;Ashqelon;Al Majdal;Ashkelon;Ashqelon;Ashquelon;El Majdal;El Medjdel;Majdal;Majdal `Asqalan;Majdal ‘Asqalān;Migdal Ascalon;Migdal Ashqelon;Migdal Gad;ʼsqlwn;Ашкелон;אשקלון; +city::295629;Ashdod;Aschdod;Asdod;Asdodas;Asdode;Asdód;Ashdod;Ashdod Yam;Ashdod on the Sea;Asjdod;Asntont;Asot;Aszdod;Axdod;Azotus;Aŝdod;Aşdod;Ašdod;Ašdodas;Așdod;Ukreir;a shen du de;asdead;ashdodi;ashdwd;ashudoddo;astotu;asyudodeu;ʼsdwd;Ασντόντ;Ашдод;Աշդոդ;אשדוד;أشدود;اشدود;அஸ்தோது;അഷ്ദോദ്;აშდოდი;アシュドッド;阿什杜德;아슈도드; +city::8199378;Modiin Ilit;מודיעין עילית; +city::1252758;Yelahanka;Yelahanka;yalahanka;ye la han ka;yelahanka;یلہانکا;यलहंक;য়েলাহান্কা;ಯಲಹಂಕ;耶拉汉卡; +city::1252770;Yavatmal;Yavatmal;Yavatmāl;Yeotmal;Yeotmāl; +city::1252797;Yamunanagar;Abdullahpur;Abdullapur;Abdullāhpur;Jamna Nagar;Yamuna Nagar;Yamunanagar;Yamunānagar; +city::1252822;Yadgir;Yadgir;Yādgīr; +city::1252840;Wokha;Wokha; +city::1252908;Washim;Basim;Băsim;Washim;Wāshīm; +city::1252942;Wardha;Vardha;Vardhá;Vardkha;Varntcha;Wardha;oyaradha;raaradha;vardha;varta;waruda;wo er ta;Βαρντχά;Вардха;وردھا;वर्धा;ওয়ারধা;ৱারধা;વર્ધા;வர்தா;ワルダー;沃尔塔; +city::1252948;Warangal;Ekasila Nagaram;Orugallu;Varangal;Varangalas;WGC;Warangal;raarangala;varangal;varangal jilla;varangala;varangala-nagaram;varankal;wa lang jia er;walang-gal;warangala;warangaru;warangl;wrnjl;Варангал;وارانگل;ورنجل;वरंगल;वरङ्गल-नगरम्;वारंगल;वारंगळ;ৱারাঙ্গাল;વારંગલ;ୱାରଙ୍ଗଲ;வாரங்கல்;వరంగల్ జిల్లా;ವರಂಗಲ್;വാറങ്കൽ;ワランガル;瓦朗加尔;와랑갈; +city::1252956;Wanparti;Wanaparthy;Wanparti; +city::1252960;Wani;Vanja;Wani;Wun;Wūn;Ваня; +city::1253079;Vrindavan;Brindaban;Brindāban;Vrindaban;Vrindavan;Vrindāban;Vrindāvan;Вриндаван; +city::1253080;Vriddhachalam;; +city::1253084;Vizianagaram;Viguyanagram;Vizianagaram;Vizianagarm;Vizianagram;Vizianagram City;Vizijanagaram;bijayanagarama;bijianagalam;bijiyanagarama;fyzynjarm;vijayanagara;vijayanagaram;vijayanagarama;vijayanakaram;vu~ijayanagaramu;wei ji ya ne ge lei mu;wjayangrm;Визианагарам;Визијанагарам;فيزينجارم;وجایانگرم;विजयनगरम;विजयनगरम्;বিজিয়ানগরম;વિજયનગર;ବିଜୟନଗରମ;விஜயநகரம்;విజయనగరం;ヴィジャヤナガラム;维济亚讷格勒姆;비지아나가람; +city::1253095;Visnagar;Visnagar; +city::1253102;Visakhapatnam;Gorad Vishakkhapatnam;VTZ;Vaisakhapattanam;Vaisākhapattanam;Visak;Visakha;Visakhapatnam;Visakhapatnamas;Vishakhapatnam;Vishakkhapatnam;Vishākhapatnam;Visákhapatnam;Vizag;Vizag City;Vizagapatam;Vizagapatnam;bisakhapatana;bisakhapattama;bisyakapateunam;fysakhabatnam;vicakappattinam;visakhapatanama;visakhapatnam;visakhapattanam;visakhapattanama;vu~ishakapatonamu;wei sha ka pa te nan;wisakha pat tnam;wshakھapٹnm;wysakapatnam;Визагапатнам;Вишакхапатнaм;Вишакхапатнам;Вішакхапатнам;Горад Вішакхапатнам;فيساخاباتنام;وشاکھاپٹنم;ويساکاپټنام;ویساکاپاتنام;ویساکھاپتنام;विशाखपट्टणम्;विशाखापट्टणम;विशाखापत्तनम;বিশাখাপত্তম;વિશાખાપટનમ;ବିଶାଖାପାଟଣା;விசாகப்பட்டினம்;విశాఖపట్నం;ವಿಶಾಖಪಟ್ಟಣಂ;വിശാഖപട്ടണം;วิศาขาปัตตนัม;ვიშაქაპატნამი;ვიშაქჰაპატნამი;ヴィシャーカパトナム;维沙卡帕特南;비샤카파트남; +city::1253113;Virudunagar;Virudhupatti;Virudunagar;Virudupatti; +city::1253133;Virar;Virar;Virār; +city::1253150;Vinukonda;Vinukonda; +city::1253166;Villupuram;Villapurum;Villupuram; +city::1253184;Vijayawada;Bezawada;Bezwada;Bezwāda;VGA;Vidzajavada;Vidzhajavada;Vidzsajavada;Vidzsajavádá;Vidžajavada;Vijajauada;Vijajaŭada;Vijayavada;Vijayavādā;Vijayawada;Vijayawāda;Widzajawada;Widźajawada;bejavada;bijayabada;bijayarada;bijayawada;bijayawara;fyjayawada;vicayavata;vijaiavada;vijaivara;vijayavada;vijayavara;vu~ijayawada;wei jie ya wa da;wyjyawada;Виджаявада;Виџајавада;Віджаявада;ויגיאוואדה;فيجاياوادا;وجئے واڑہ;ويجیواډا;ویجایاواڈا;ویجیاوادا;विजयवाड़ा;विजयवाडा;বিজযবাডা;বিজয়াৱদা;ਵਿਜਯਵਾਡਾ;ਵਿਜੈਵਾੜਾ;વિજયવાડા;ବିଜୟୱାଡ଼ା;ଵିଜଯଵାଡା;விசயவாடா;బెజవాడ;విజయవాడ;ವಿಜಯವಾಡ;വിജയവാഡ;ვიჯაიავადა;ヴィジャヤワーダ;维杰亚瓦达;비자야와다; +city::1253200;Vidisha;Bhilsa;Bhīlsa;Vidisa;Vidisha;Vidiša;bidisa;vidisa;vu~idisha;wdysha;wei di si ha;Видиша;ودیشا;विदिशा;বিদিশা;વિદિશા;ヴィディシャー;维迪斯哈; +city::1253237;Veraval;Veraval;Verāval; +city::1253286;Vellore;Gorad Veluru;Vellor;Vellore;Velluru;Velur;Veluru;belloleu;bellore;bhellora;vellor;vellora;vellura;velluru;velur;velura;vu~eruru;wei luo er;wylwr;Веллор;Веллуру;Горад Велуру;ویلور;भेल्लोर;वेल्लूर;वेल्लूरु;वेल्लोर;বেল্লোরে;ਵੇਲੂਰ;વેલ્લોર;வேலூர்;ವೆಲ್ಲೋರ್;വെല്ലൂർ;ヴェールール;韦洛尔;벨로르; +city::1253315;Vejalpur;Vejalpur; +city::1253367;Vasco Da Gama;Vasco;Vasco Da Gama;Vasco da Gama;Vasko-da-Gama;Vāsco Da Gāma;Васко-да-Гама; +city::1253405;Varanasi;Banaras;Banares;Banāras;Benares;Benarés;Kashi;Kasi;Kāsi;VNS;Varanasi;Varanasio;Varanasis;Varanassi;Vârânasî;Vārānasi;Waranasi;balanasi;baranasi;kasi;pha ran si;varanaci;varanasi;wa la na xi;waranashi;Варанаси;काशी;वाराणसी;বারানসি;வாரணாசி;พาราณสี;ワーラーナシー;瓦臘納西;바라나시; +city::1253437;Vaniyambadi;Vanivambadi;Vaniyambadi;Vānivambādi;Vāniyambādi;baniyamabari;fanymbdy;vaniyamabadi;vaniyampati;wa ni ye mu ba di;wanyyambady;wnymbdy;فانيمبدي;وانییامبادی;ونیمبدی;वनियामबादी;বানিয়ামবড়ি;வாணியம்பாடி;瓦尼耶姆巴迪; +city::1253468;Valsad;Bulsar;Bulsār;Valsad;Valsād;Walsad;Walsād; +city::1253472;Valparai;Valparai;Vālpārai; +city::1253573;Vadodara;BDQ;Baroda;Vadodara;Vapadedara;ba luo da;badodala;barodara;fadwdara;radodara;vadeadara;vadodara;vatotara;vu~adodara;wadwdara;wdwdrh;Вaдодaрa;Вадодара;Վադոդարա;فادودارا;وادودارا;واڈوڈارا;ودودره;وڈودرا;बड़ोदरा;वडोदरा;वदोदरा;বড়োদরা;ৱডোদরা;ਵਡੋਦਰਾ;વડોદરા;ବଡ଼ୋଦରା;வடோதரா;వడోదర;ವಡೋದರಾ;വഡോദര;ვადოდარა;ヴァドダラ;ヴァドーダラー;巴罗达;바도다라; +city::1253736;Upleta;Upleta; +city::1253744;Uppal Kalan;Oopal;Pedda Uppal;Upal;Uppal;Uppal Kalan; +city::1253747;Unnao;Unao;Unnao;Unnāo; +city::1253750;Unjha;Unjha; +city::1253783;Una;Una; +city::1253807;Umred;Umred;Umrer; +city::1253888;Ullal;Ulaul;Ullai;Ullal;Ullāl; +city::1253894;Ulhasnagar;Ulasnagar;Ulhasnagar;Ulhāsnagar;Ulkhasnagar;alہasngr;awlasnagr;awlhsngr;ul'hasanagara;ulahasanagara;ulhaseunagaleu;ullasanagara;uruhasunagaru;wu er ha si ne ge er;Уласнагар;Улхаснагар;الھاس نگر ممبئي;الہاسنگر;الہسنگر;اولاسناگر;اولهسنگر;उल्हासनगर;উল্লাসনগর;ਉਲਹਾਸਨਗਰ;ウルハースナガル;烏爾哈斯訥格爾;울하스나가르; +city::1253914;Ujjain;Uddzhajn;Uddzsain;Uddzsaín;Udzajin;Udzdzain;Udždžain;Ujjain;ajyn;awjayn;awjayyn;awjyn;ujain;ujaina;ujaini;ujjain;ujjaina;ujjayini;ujjeyan;wu du yan na;Удджайн;Уџајин;اجین;اوجائین;اوجاين;اوجین;اوجېن;उज्जैन;উজ্জয়িনী;উজ্জৈন;ਉੱਜੈਨ;ઉજ્જૈન;ଉଜ୍ଜୟିନୀ;உஜ்ஜைன்;ಉಜ್ಜೆಯನ್;ഉജ്ജയിൻ;უჯაინი;ウッジャイン;鄔闍衍那;우자인; +city::1253918;Ujhani;Ujhani;Ujhāni; +city::1253944;Udumalaippettai;Udamalpet;Udumalaippettai; +city::1253952;Udipi;Udipi;Udupi;udupi;wu du pi;ಉಡುಪಿ;乌杜皮; +city::1253956;Udhampur;Udhampur;Udkhampur;udamapura;udhamapura;udhamapuram;utampur;wu da mu pu er;Удхампур;ادھم پور;اودہم پور;उधमपुर;उधमपुरम्;उधमपूर;উদমপুর;ਉਧਮਪੁਰ;ઉધમપુર;உதம்பூர்;乌达姆普尔; +city::1253958;Udgir;Udgir;Udgīr; +city::1253986;Udaipur;Oodeypore;UDR;Udaipur;Udajpur;adے pwr;awdy pwr;udaipuleu;udaipura;udaipuru;udayapur;udayapura;udayapuram;utayappur;wu dai pu;Удайпур;Удајпур;ادے پور;اودہےپور;اودی پور;اودی‌پور;उदयपुर;उदयपुरम्;उदयपूर;উদয়পুর;ਉਦੈਪੁਰ;ઉદયપુર;ଉଦୟପୁର;உதயப்பூர்;ఉదయపూర్;ಉದಯಪುರ;ഉദയ്‌പൂർ;ウダイプル;烏代浦;우다이푸르; +city::1253993;Ooty;Ootacamund;Ooty;Udagamandalam;Udagamandalām;Udakamandalam;Udhagai;Udhagamandalam;Utakamand;udagamandalama;udakamandaramu;udhagamandalama;utakai;utakamantalam;Утакаманд;उदगमंदलम;উধগমন্ডলম;உதகமண்டலம்;உதகை;ウダカマンダラム; +city::1254046;Tura;Tura; +city::1254054;Tuni;Tuni; +city::1254069;Tundla;Tundla;Tūndla; +city::1254089;Tumkur;Tumakooru;Tumakuru;Tumakūru;Tumkur;Tumkūr;tumakuru;ತುಮಕೂರು; +city::1254163;Thiruvananthapuram;City of Lord Anantha;Gorad Tkhiruvanantkhapuram;TRV;Thiruvananthapuram;Tiruvananantapuram;Tiruvanantapuram;Tiruvanantapuramas;Trivandrum;te li fan de lang;thyrwfananthabwram;tilubanantapulam;tiru'anantapuram;tirubanantapurama;tiruvanantapuram;tiruvanantapurama;tiruvu~anantapuramu;tribanadrama;tribendrama;trywandrwm;trywwndrwm;Горад Тхіруванантхапурам;Тируванантапурам;טריוונדרום;تریواندروم;تریوینڈرم;تھیروواننتھاپورم;ثيروفانانثابورام;तिरुअनन्तपुरम्;तिरुवनंतपुरम;तिरुवनन्तपुरम;तिरुवनन्तपुरम्;তিরুবনন্তপুরম;ত্রিবানদ্রাম;તિરુવનંતપુરમ્;ତ୍ରିବେନ୍ଦ୍ରମ;திருவனந்தபுரம்;తిరువనంతపురం;ತಿರುವನಂತಪುರಮ್;തിരുവനന്തപുരം;ティルヴァナンタプラム;特里凡得琅;티루바난타푸람; +city::1254187;Trichur;Thrissur;Trichura;tiruccur;trssuർ;Тричура;திருச்சூர்;തൃശ്ശൂർ; +city::1254241;Tonk;Tonk;Tonk City; +city::1254274;Tohana;Tohana;Tohāna; +city::1254309;Titagarh;Titagarh;Titāgarh; +city::1254320;Tiruvottiyur;Tiruvattiyur;Tiruvattiyūr;Tiruvottiyur;Tiruvottiyūr; +city::1254327;Tiruvannamalai;Tirruvannamalai;Tiruvannamalai;Tiruvannamalaj;Tiruvannāmalai;tiruvannamalai;tiruvu~an'namarai;Тируваннамалай;திருவண்ணாமலை;ティルヴァンナーマライ; +city::1254335;Tiruvalla;Thiruvalla;Tiruvalla; +city::1254343;Tiruttangal;; +city::1254346;Tirur;Tirur;Tirur Station;Tirūr;di lu er;tirur;tirura;tyrwr;تیرور;তিরুর;திரூர்;തിരൂർ;蒂鲁尔; +city::1254348;Tiruppur;Tiruppur;Tiruppūr;Tirupur;di lu pu;tiruppur;tiruppura;tiruppuru;tirupura;tyrwpwr;Тируппур;Тирупур;تيروپور;تیروپور;तिरुपुर;तिरुपूर;तिरूपुर;তিরুপ্পুর;திருப்பூர்;ತಿರುಪ್ಪೂರು;തിരുപ്പൂർ;蒂魯普; +city::1254360;Tirupati;TIR;Tirumala - Tirupati;Tirumalai;Tirupati;di lu pa di;tirumala;tirupati;tirupatih;tiruppati;trwpty;tyrwpaty;tyrwpty;Тирупати;Тірупаті;تروپتی;تیروپاتی;تیروپتی;तिरुपति;तिरुपतिः;तिरुपती;तिरुप्पति;তিরুমালা;ତିରୁପତି;திருப்பதி;తిరుపతి;తిరుమల;ತಿರುಪತಿ;蒂鲁帕蒂; +city::1254361;Tirunelveli;Nellai;Tinnevelli;Tinnevelly;Tinnevelly Junction;Tirunelveli;Tirunelweli;di lu nei er wei li;tilunelbelli;tirunalaveli;tirunelabeli;tirunelaveli;tirunelveli;tiruneruvu~eri;trwnlwyly;tyrwnlfly;tyrwnlwly;tyrwnlwyly;tyrwnylwyly;Тирунелвели;ترونلویلی;تيرونلفلي;تيرونيلويلي;تیرونلولی;تیرونلویلی;तिरुनलवेली;तिरुनॆल्वेलि;तिरुनेल्वेली;तिरूनेलवेली;তিরুনেলবেলি;તિરુનેલવેલી;திருநெல்வேலி;తిరునెల్వేలి;ತಿರುನೆಲ್ವೆಲಿ;തിരുനെൽ‌വേലി;ティルネルヴェーリ;蒂魯內爾維利;티루넬벨리; +city::1254385;Tiruchengode;di lu qin ge ao de;tiruccenkotu;tirucengode;تروچینگوڑے;তিরুচেঙ্গোডে;திருச்செங்கோடு;蒂鲁琴格奥德; +city::1254388;Tiruchirappalli;TRZ;Tiruccirappalli;Tiruccsirapalli;Tiruccsirápalli;Tiruchchinappalli;Tiruchchināppalli;Tiruchchirappalli;Tiruchchirāppalli;Tiruchi;Tiruchirapali;Tiruchirapalli;Tiruchirappalli;Tiruchirappal·li;Tirucirapali;Tiruĉirapali;Tiruččiráppalli;Trichinapalli;Trichinopoli;Trichinopoly;Trichy;Trinchinopoly;di lu ji la pa li;tiluchilapalli;tiruccirappalli;tiruchiraparri;tirucirapalli;tirutchirapparri;tricimalaidurgam;trwchraply;tyrwchyrapaly;tyrwchyraply;Тиручирапали;Тируччираппалли;Тіручірапаллі;تروچراپلی;تيروچيراپلي;تیروچیراپالی;ٹyrwchyrapaly;ٹیروچیراپالی;ट्रिचिमलैदुर्गम्;तिरुचिरापल्ली;तिरुचिरापळ्ळि;তিরুচিরাপল্লী;திருச்சிராப்பள்ளி;ತಿರುಚ್ಚಿರಾಪ್ಪಳ್ಳಿ;തിരുച്ചിറപ്പള്ളി;ティルチラーパッリ;ティルッチラーッパッリ;蒂魯吉拉帕利;티루치라팔리; +city::1254420;Tiptur;Tiptur;Tiptūr; +city::1254432;Tinsukia;Tinsukia; +city::1254444;Tindivanam;Tindivanam;Tindivangam; +city::1254481;Tilhar;Tilhar; +city::1254534;Tikamgarh;Tikamgarh;Tīkamgarh; +city::1254589;Thiruvarur;Thiruvarur;Thiruvārūr;Tirnvalur;Tiruvalur;Tiruvarur;Tiruvālūr;di lu wa lu er;thirubarura;tiruvarur;tiruvarura;tiruvaruru;tiruvu~aruru;Тируварур;تھرووارور;तिरुवरुर;तिरुवारूर;तिरुवारूरु;থিরুবারুর;திருவாரூர்;ティルヴァールール;蒂鲁瓦鲁尔; +city::1254649;Tanjore;TJV;Tanjavur;Tanjavûr;Tanjor;Tanjore;Tanjāvūr;Thanjavur;Thanjāvūr;Tkhandzhavur;tancavur;tancavuർ;tanjavura;tanjavuru;Тханджавур;तंजावुर;தஞ்சாவூர்;തഞ്ചാവൂർ;タンジャーヴール; +city::1254657;Thanesar;Thanesar;Thānesar; +city::1254661;Thane;Tanja;Tanna;Thana;Thane;Thāna;Thāne;Таня; +city::1254710;Tezpur;Darrang;TEZ;Tezpur;tai ci pu er;tejapura;tyzpwr;Тезпур;تیزپور;तेजपुर;तेजपूर;তেজপুর;তেজপুৰ;ତେଜପୁର;泰兹普尔; +city::1254744;Thenkasi;Tenkasi;Tenkāsi; +city::1254780;Tellicherry;Talasseri;Tellicherri;Tellicherry;Tellichery;Thalassery;ta la si sai er yi;talacceri;talasseri;thalas'serya;tlshyry;تلشیری;থালস্সের্য;தலச்சேரி;തലശ്ശേരി;塔拉斯塞尔伊; +city::1254868;Tarn Taran;Tarn Taran;Tarn Tāran; +city::1254953;Tanuku;Tanuku;ta nu ku;tanukku;tanuku;tanuku mandala;tnwkw;تنوکو;तणुकु मण्डल;তানুকু;ତାନୁକୁ;தணுக்கு;తణుకు;塔努库; +city::1255004;Tandur;Tandur;Tāndūr; +city::1255024;Tanda;Tanda;Tāndā; +city::1255062;Tambaram;Tambaram;ta mu ba la mu;tambarama;tamparam;तांबरम;তাম্বারাম;தாம்பரம்;塔姆巴拉姆; +city::1255121;Talipparamba;Taliparamba;Talipparamba;Tullipurmbu;ta li pa la mu ba;taliparamba;talipparamp;talipparampa;টলিপরম্ব;தளிப்பறம்பா;തളിപ്പറമ്പ്;塔利帕拉姆巴; +city::1255254;Tadpatri;Tadpatri;Tādpatri; +city::1255264;Tadepallegudem;Tadepallegudem;Tadepalligudem;Tādepallegūdem;Tādepalligūdem; +city::1255344;Suriapet;Suriapet;Suriāpet;Suryapet; +city::1255349;Surendranagar;Civil Station;Surendranagar;Wadhwan;Wadhwan Camp;Wadhwan City;Wadhwan Civil Station;Wadhwān;Wadhwān Civil Station; +city::1255361;Suratgarh;Suratgarh;Suratgarkh;Sūratgarh;Суратгарх; +city::1255364;Surat;STV;Surat;Suratas;Surate;Sūrat;su la te;surata;surato;Сурат;सुरत;সুরাত;સુરત;スーラト;苏拉特; +city::1255396;Supaul;Supaul; +city::1255449;Sunam;Sunam;Sunām; +city::1255491;Sultanpur;Sultanpur;Sultānpur; +city::1255560;Sujangarh;Sujangarh;Sūjāngarh; +city::1255616;Srivilliputhur;si li wei li pu tu er;sribilliputhura;srivilli putturu;tiruvilliputtur;শ্রীবিল্লিপুথুর;ଶ୍ରୀବିଲ୍ଲିପୁଥୁର;திருவில்லிபுத்தூர்;శ్రీవిల్లి పుత్తూరు;斯里维利普图尔; +city::1255634;Srinagar;Caspira;Gorad Srynagar;SXR;Shrinagar;Srinagar;Srinagaras;Srinagaro;Srinankar;Srinigar;Srīnagar;Suryanagar;Szrinagar;cirinakar;seulinagaleu;shurinagaru;si li na jia;sirinagara;siry nagar;srinagar;srinagara;srinagaram;srinagari;srinkhr;sry ngr;srynaghar;sryngr;Śrinagar;Šrinagaras;Šrínagar;Σριναγκάρ;Горад Срынагар;Сринагар;Срінагар;Шринагар;Սրինագար;סרינגאר;جموں;سري نگر;سريناغار;سری نگر;سرینگر;سِری نَگَر;श्रीनगर;श्रीनगरम्;सिरीनगर;শ্রীনগর;ਸ੍ਰੀਨਗਰ;શ્રીનગર;ଶ୍ରୀନଗର;சிறிநகர்;శ్రీనగర్;ಶ್ರೀನಗರ;ശ്രീനഗർ;ศรีนคร;სრინაგარი;シュリーナガル;斯利那加;스리나가르; +city::1255647;Chicacole;Chicacole;Srikakulam;Srīkākulam;srikakulam;శ్రీకాకుళం; +city::1255714;Sopur;Sopor;Sopore;Sopur; +city::1255744;Sonipat;Sonepat;Sonepat Punjab;Sonipat;Sonīpat; +city::1255927;Siwan;Savan;Sivan;Siwan;Siwān;Сиван; +city::1255947;Sivakasi;Sivakasi;Sivakāsi;civakaci;sibakasi;sivakasi;xi wa ka xi;चिवकाचि;शिवकाशी;শিবকাশী;ਸਿਵਾਕਾਸੀ;ଶିବକାଶୀ;சிவகாசி;శివకాశి;ശിവകാശി;西瓦卡西;시바카시; +city::1255955;Siuri;Siuri;Suri;Sūri; +city::1255969;Sitapur;Sitapur;Sītāpur; +city::1255983;Sitamarhi;Sitamarhi;Sītāmarhi; +city::1256039;Sirsilla;Sirsilla;sirisilla;సిరిసిల్ల; +city::1256047;Sirsi;Sirsi;sirasi;sirsi;xi er xi;शिरसि;सिरसी;ସିର୍ସି;ಶಿರಸಿ;西尔西; +city::1256052;Sirsa;Sirsa;sirasa;sirsa;syrsa;xi er sa;Сирса;سیرسا;ضلع سرسہ;सिरसा;ସିର୍ସା;西尔萨; +city::1256087;Sirhind;Sirhind; +city::1256104;Sira;Sira;Sīra; +city::1256207;Sindhnur;Sindhnur;Sindhnūr; +city::1256237;Shimla;SLV;Shimla;Simla;Simlá;cimla;shimla;shimura;shymla;simala;simla;sinla;symlh;xi mu la;Ŝimla;Şimla;Šimla;Шимла;Шімла;שימלה;شملہ;شيملا;شیملا;शिमला;শিমলা;ਸ਼ਿਮਲਾ;શિમલા;ଶିମଲା;சிம்லா;సిమ్లా;ಶಿಮ್ಲಾ;ഷിംല;შიმლა;シムラ;シムラー;西姆拉;심라; +city::1256269;Sillod;Sillod; +city::1256287;Silchar;IXS;Silchar;silacara;silacara-nagaram;xi er qia er;Силчар;शिलचर-नगरम्;सिलचर;শিলচর;শিলচৰ;સિલચર;ସିଲ୍‌ଚର୍;西尔恰尔; +city::1256320;Sikar;Sikar;Sīkar; +city::1256329;Sikandarabad;Sikandarabad;Sikandarābād;Sikandrabad; +city::1256343;Sihor;Shihor;Sihara;Sihor;sihora;xi huo er;سِہور;सिहोर;সিহোর;સિહોર;西霍尔; +city::1256369;Sidhi;Sidhi;Sidi;Sidkhi;Сидхи; +city::1256377;Siddipet;Siddipet;siddipeta;సిద్దిపేట; +city::1256382;Siddhapur;Siddhapur;Sidhpur; +city::1256388;Sibsagar;Sibsagar;Sibsagor Naga Bhumi;Sibsāgar;Сибсагар; +city::1256409;Shyamnagar;Shamnagar;Shamnagore;Shyamnagar;Syamnagar;Syāmnagar; +city::1256422;Shrirampur;Serampore;Serampur;Shrirampur;Shrīrāmpur; +city::1256436;Solapur;SSE;Sholapur;Sholāpur;Solapur;Solāpur;solapura;sollapura;sorapuru;Солапур;सोलापूर;ಸೊಲ್ಲಾಪುರ;ソーラープル; +city::1256451;Shivpuri;Shivpuri;Shivpurī;si xi wo pu li;sibapuri;sivapuri;Шивпури;शिवपुरी;শিবপুরি;શિવપુરી;ଶିବପୁରି;斯希沃普里; +city::1256475;Shirpur;Shirpur;Shirpure;Ширпуре; +city::1256515;Shimoga;Shimoga;Shimogga;Shivamogga;Shivamoggi;cimakka;shymwga;shywamwga;simeaga;simoga;sivamogga;xi mo jia;Шимога;شیموگا;شیواموگا;शिमोगा;শিমোগা;શિમોગા;சீமக்கா;శివమొగ్గ;ಶಿವಮೊಗ್ಗ;ഷിമോഗ;希莫加; +city::1256523;Shillong;SHL;Shillong;Shilong;Silongas;cillan;shilongi;shiron;shylang;shylwngh;silam;silamga;silanga;sillang;silleann;sillong;silonga;xi long;Šilongas;Шиллонг;Шилонг;شيلونغ;شیلانگ;शिलाँग;शिलांग;शिलाङ्ग;शिलोंग;শিলং;ਸ਼ਿਲਾਂਗ;શિલોંગ;ଶିଲଂ;சில்லாங்;షిల్లాంగ్;ಶಿಲ್ಲಾಂಗ್;ഷില്ലോങ്ങ്;შილონგი;シロン;西隆;실롱; +city::1256525;Shiliguri;Shiliguri;Silguri;Siligun;Siliguri;Silīguri;Silīgurí;siliguri;xi li gu li;Силигури;सिलीगुड़ी;শিলিগুড়ি;西里古里; +city::1256529;Shikohabad;Shikohabad;Shikohābād; +city::1256569;Sherkot;Bijnor;Sherkot; +city::1256593;Sheopur;Sheopur;Sheopur Kalan;se'opura;serapura;si he ao pu er;syopura;syopuram;श्योपुरम्;শেওপুর;শেৱপুর;શ્યોપુર;ଶେଓପୁର;斯赫奥普尔; +city::1256620;Shegaon;Shegaon;segamo;seganva;si he jia ao en;شے گاؤں;शेगांव;শেগাঁও;ଶେ‌‌ଗାଓଁ;斯赫加奥恩; +city::1256639;Shantipur;Santipur;Shantipur;Shāntipur;Sāntipur; +city::1256671;Shamli;Shamli;Shāmli; +city::1256693;Shajapur;Shajapur;Shājāpur; +city::1256728;Shahjanpur;Shahjahanpur;Shahjanpur;Shāhjahānpur;Shāhjānpur; +city::1256739;Shahdol;Sahdol;Shahdol;sahadola;saharola;satol;si ha he duo er;शहडोल;शहदोल;শাহদোল;શાહડોલ;ଶାହଡ଼ୋଲ;ஷடோல்;斯哈赫多尔; +city::1256750;Shahada;; +city::1256755;Shahabad;Hardoi;Shahabad;Shāhābād; +city::1256759;Shahabad;Shahabad;Shahabad Deccan;Shāhābād; +city::1256826;Seoni;Seoni;Seonī; +city::1256854;Sendhwa;Sendhawa;Sendhwa; +city::1256913;Sehore;Sehore; +city::1256922;Secunderabad;Sekunderabad;cikkantarapat;sai kang de la ba de;sekkandrabad;sekundarabada;sekundelabadeu;shikandarabado;sikandarabada;sikindrabad;skndr abad;Секундерабад;سکندر آباد;सिकंदराबाद;সেকুন্দারাবাদ;சிக்கந்தராபாத்;సికింద్రాబాద్;സെക്കന്ദ്രാബാദ്;シカンダラーバード;塞康德拉巴德;세쿤데라바드; +city::1256949;Sawai Madhopur;Sawai Madhopur;Sawāi Mādhopur; +city::1257001;Sattenapalle;Sattenapalle; +city::1257022;Satna;Satna;TNI; +city::1257055;Satara;Satara;Sātāra;Сатара; +city::1257198;Sardarshahr;; +city::1257402;Sangrur;Sangrur;Sangrūr; +city::1257416;Sangli;Sangla;Sangli;Sāngli;Turmeric city; +city::1257431;Sangareddi;Sangareddi;Sangareddipet;Sangareddypeta;Sangāreddi;sangareddi;సంగారెడ్డి; +city::1257436;Sangamner;Sangamner;Sangamnor; +city::1257459;Sandila;Sandila;Sandīla; +city::1257540;Sambhal;Sambal;Sambhal;sambal;sambhala;Самбал;سامبال;سنبھل;संभल;সাম্ভাল;ସମ୍ଭାଲ; +city::1257542;Sambalpur;Sambalpore;Sambalpur;sa mu ba er pu er;sambalapura;sambalpuleu;sanbarupuru;smblpwr;Самбалпур;سمبلپور;संबलपुर;संबलपूर;সাম্বালপুর;સંબલપુર;ସମ୍ବଲପୁର;సంబల్‌పుర్;サンバルプル;萨姆巴尔普尔;삼발푸르; +city::1257551;Samastipur;Samastipur;Samastīpur;Samāstipur; +city::1257565;Samalkot;; +city::1257587;Salur;Salur;Sālūr;saluru;సాలూరు; +city::1257629;Salem;Gorad Salem;SXV;Salem;Selam;Szalem;Szálem;celam;sai lei mu;salema;sallem;salm;selam;selama;seramu;Горад Салем;Салем;سالم;سالم ،تامل ناڈو;سیلم، تامل ناڈو;सेलम;সালেম;સેલમ;ସେଲମ୍;சேலம்;సేలం;ಸೇಲಂ‌;സേലം;セーラム;塞勒姆;살렘; +city::1257794;Sahibganj;Sahibganj;Sāhibganj; +city::1257800;Sahaswan;Sahaswan;Sahaswān; +city::1257804;Saharsa;Saharsa;Sakharsa;sa ha er sa;saharasa;saharsa;Сахарса;ساهارسا;سہرسہ;सहरसा;सहर्सा;সহর্ষ;সহর্ষা;સહરસા;ସାହାର୍ସା;సహర్సా;萨哈尔萨; +city::1257806;Saharanpur;Saharanpur;Sahāranpur; +city::1257845;Saugor;Sagar;Saugor;Sāgar;Сагар; +city::1257851;Sagar;Sagar;Sāgar; +city::1257951;Ropar;Ropar;Rupar;Rupnagar;Rūpar;Rūpnagar; +city::1258044;Roorkee;Roorkee;Rurki;luo ao er kai ai;roraki;rraki;ruraki;rurki;rurkki;Рурки;Руркі;روڑکی;रुड़की;रूरकी;রোরকি;ଋଡ଼କୀ;ரூர்க்கி;రూర్కీ;罗奥尔凯埃; +city::1258076;Rohtak;Rohtak;Rokhtak;luo he ta ke;rohataka;rwhtak;rwtk;Рохтак;روتک;روهتاك;روہتک;रोहतक;রোহতক;રોહતક;ରୋହତକ;罗赫塔克; +city::1258099;Roha;Roha;Roha-Kolaba;rohe;روہا;रोहे; +city::1258109;Robertsonpet;Robertsonpet; +city::1258126;Rishra;Rishra; +city::1258128;Rishikesh;Rikhikesh;Rishikesh;Rishīkesh;Ришикеш; +city::1258178;Rewari;Rewari;Rewāri; +city::1258182;Rewa;REW;Reva;Rewa;Rewah;lei wa;reva sahara;rewa;riva;riwa;rywa;Рева;ریوا;रीवा;रेवा शहर;રીવા;ରେୱା;リーワー;雷瓦; +city::1258207;Renukut;Renukoot;Renukut;Renukūt; +city::1258290;Rayadrug;; +city::1258291;Rayachoti;Rayachoti;Rāyachoti; +city::1258338;Ratnagiri;RTC;Ratnagiri;Ratnāgiri;Rutnagherry;irattinakiri;la te na ji li;ratnagiri;rtnagry;Ратнагири;رتناگری;रत्नगिरी;रत्नागिरि;रत्‍नागिरी;রত্নগিরি;રત્નાગિરી;ରତ୍ନଗିରି;இரத்தினகிரி;ರತ್ನಾಗಿರಿ;拉特纳吉里; +city::1258342;Ratlam;Hatlam;Ratlam;Ratlām; +city::1258352;Rath;Rata;Rath;Rāth;Рата; +city::1258366;Ratangarh;; +city::1258470;Raniganj;Ranigandzhe;Raniganj;Rānīganj;Ранигандже; +city::1258474;Ranibennur;Ranibennur;Renibennur;Rānībennur; +city::1258526;Ranchi;IXR;Ranchi;Ranci;Rancis;Rancsi;Ranĉi;Rančis;Ráncsí;Ráňčí;Rānchi;Rānchī;lan qi;lanchi;raci;ramci;ranchi;ranchy;ranci;ranci jilla;ranshy;rʼnzy;Ранчи;Ранчі;ראנצי;رانشي;رانچي;رانچی;राँची;रांची;रांची जिल्ला;রাঁচি;রাচি;ਰਾਂਚੀ;રાંચી;ରାଞ୍ଚି;ராஞ்சி;రాంచీ;ರಾಂಚಿ;റാഞ്ചി;რანჩი;ラーンチー;蘭契;란치; +city::1258546;Ranaghat;Ranaghat;Rānāghāt; +city::1258581;Rampur Hat;; +city::1258599;Rampur;Rampur;Rāmpur; +city::1258637;Ramnagar;Ramnagar;Rāmnagar; +city::1258662;Ramgundam;Ramagundam;Ramgundam;Rāmgundam;ramagundam;రామగుండం; +city::1258686;Ramgarh;Ramgarh;Rāmgarh; +city::1258740;Ramanathapuram;Ramanathapuram;Ramanatkhapuram;Ramanatkhapurama;Ramanthapuram;Ramnad;Rāmanāthapuram;iramanatapuram;la ma na ta pu la mu;ramanatapuramu;ramanathapuram;ramanathapurama;ramanthapurama;Раманатхапурам;Раманатхапурама;रामनाथपुरम;रामनाथपुरम्;রমন্থাপুরম;રામનાથપુરમ;ରାମନାଥପୁରମ;இராமநாதபுரம்;ラーマナータプラム;拉马纳塔普拉姆; +city::1258744;Closepet;Closepet;Ramanagaram;Rāmanagaram;Раманагарам; +city::1258797;Rajsamand;Rajsamand;Rājsamand; +city::1258803;Rajpura;Kajpura;Rajpura;Rājpura; +city::1258831;Raj-Nandgaon;Raj Nandga;Raj Nandgaon;Raj-Nandgaon;Rāj Nāndgaon;Rāj-Nāndgaon; +city::1258847;Rajkot;RAJ;Radzhkot;Radzkot;Radzkotas;Radźkot;Radžkotas;Rajkot;Rājkot;rajikotto;Раджкот;ラージコット; +city::1258916;Rajapalaiyam;Rajapalaiyam;Rajapalayam;Rājapālaiyam; +city::1258932;Rajahmundry;RJA;Radzhamandri;Rajahmondry;Rajahmundry;Rajamahendravaram;Rajamahendri;Rajamandri;Rājahmundry;Rājamahendravaram;rajamandri;Раджамандри;రాజమండ్రి; +city::1258980;Raipur;RPR;Raipur;Raipura;Raipuras;Rajpur;Rajpuro;Rayapura;Raypur;Rájpur;lai bu er;laipuleu;ra'ipura;raipuru;ray pwr;rayapura;raybwr;rayppur;raypur;Райпур;Рајпур;Ռայպուր;رائے پور;رايبور;رای پور;رای‌پور;راۓپور;रायपुर;रायपूर;রাইপুর;রায়পুর;ਰਾਇਪੁਰ;રાયપુર;ରାୟପୁର;ராய்ப்பூர்;రాయ్‌పుర్;ರಾಯ್ಪುರ್;റായ്‌പൂർ;რაიპური;ラーイプル;賴布爾;라이푸르; +city::1259005;Raigarh;Raigarh;Raigârh;Rajgarkh;lai jia er;rayagadha;rayagara;rayjarh;Райгарх;رائے گڑھ;رايجاره;रायगढ;রায়গড়;રાયગઢ;ରାୟଗଢ;赖加尔; +city::1259009;Raiganj;Raiganj;Rayganj;Rāiganj; +city::1259012;Raichur;Raichur;Rajchur;Rāichūr;Райчур; +city::1259056;Raghogarh;Raghogarh;Raghugarh;Rāghogarh;Rāghugarh; +city::1259064;Raebareli;Rae Bareli;Raebareli;Rāe Bareli; +city::1259083;Rabkavi;; +city::1259091;Kollam;Coilum;Coulao;Coulão;Desinganadu;Kolam;Kolamo;Kollam;Kol·lam;Kullamalai;Kvilon;Quilon;keallam;kollam;kollama;korramu;kui long;kwlam;kwlm;Квилон;Колам;Коллам;کولام;کولم;कोल्लम;कोल्लम्;কোল্লম;কোল্লাম;કોલ્લમ;କୋଲ୍ଲାମ୍;கொல்லம்;കൊല്ലം;コッラム;奎隆;콜람; +city::1259124;Puttur;Puttur;Puttūr; +city::1259154;Pusad;Pusad; +city::1259163;Puruliya;Purulia;Puruliya; +city::1259166;Purnia;Purnia;Purnija;Pūrnia;bwrnya;pu er ni ya;puraniya;purni'a;purniya;pwrnya;Пурния;Пурнија;بورنيا;پورنیا;پورنیہ;पुर्णिया;पूर्णिया;পুরনিয়া;পূর্ণিয়া;ପୁର୍ନିଆ;பூர்ணியா;普尔尼亚; +city::1259184;Puri;Jagannath;Jagannathpur;Jagannāth;Puri;Puri District;Purî;puri;pwry;Пури;פורי;পুরি;பூரி;プーリ; +city::1259229;Pune;PNQ;Pona;Poona;Poune;Pun;Puna;Pune;Puneo;Puno;Puné;Púna;bwnh;poona;pu na;puna;pune;pune sahara;punyapattanam;pwna;pwnh;pwny;pwnہ;Πούνε;Пуна;Пуне;Пуно;Պունա;פונה;بونه;پونا;پونه;پونہ;پونی;पुणे;पुणे शहर;पुण्यपट्टनम्;পুনে;ਪੂਨਾ;પુના;ପୁଣେ;புனே;పూణే;ಪುಣೆ;പൂണെ;პუნა;プネー;浦那;푸네; +city::1259239;Punasa;; +city::1259263;Puliyangudi;Puliyangudi;Puliyankudi; +city::1259297;Pudukkottai;Poodoocottah;Puducotai;Pudukattai;Pudukkottai;Pudukkottai-Trichinopoly;Pudukkottaj;Pudukotah;Pudukottai;pu du ke tai;pudo~ukottai;pudukkotta'i;purukkotta'i;putukkottai;Пудуккоттай;পুড়ুক্কোত্তাই;ପୁଡୁକ୍କୋଟ୍ଟାଇ;புதுக்கோட்டை;プドゥコーッタイ;普杜科泰; +city::1259312;Proddatur;Proddatur;Proddatūr;prodduturu;ప్రొద్దుటూరు; +city::1259385;Port Blair;Gorad Port-Blehr;IXZ;Port Blair;Port Bler;Port Bleras;Port-Blehr;Port-Bler;Portus Blairensis;bu lai er gang;porata bale'ara;port bler;port piler;porta blera;porta bleyara;portableyara;poteubeulleeo;potoburea;pwrt blr;pwrt blyyr;Горад Порт-Блэр;Порт Блер;Порт-Блер;Порт-Блэр;פורט בלייר;پورت بلر;پورٹ بلیئر;पोर्ट ब्लेयर;पोर्ट ब्लेर;पोर्टब्लेयर;পোর্ট ব্লেয়ার;ਪੋਰਟ ਬਲੇਅਰ;પોર્ટ બ્લૅર;ପୋର୍ଟ ବ୍ଲେୟର;போர்ட் பிளேர்;ಪೋರ್ಟ್ ಬ್ಲೇರ್;പോർട്ട് ബ്ലെയർ;พอร์ตแบลร์;პორტ-ბლერი;ポートブレア;布萊爾港;포트블레어; +city::1259395;Porbandar;PBD;Poorbunder;Porbandar;Porbandarom;Port Porbandar;Purbandar;bo er ben de er;bwrbndr;poleubandaleu;porabandara;porpantar;Порбандар;Порбандаром;بوربندر;पोरबंदर;पोरबन्दर;পোরবন্দর;પોરબંદર;ପୋରବନ୍ଦର;போர்பந்தர்;పోర్‌బందర్;പോർബന്തർ;博尔本德尔;포르반다르; +city::1259408;Ponnuru;; +city::1259411;Ponnani;Ponani;Ponnani;Ponnāni; +city::1259425;Puducherry;PNY;Pondicero;Pondicheri;Pondicherri;Pondicherry;Pondichery;Pondichéri;Pondichéry;Pondiseri;Pondisheri;Pondiĉero;Ponducherry;Pondy;Poudhucherry;Puduchcheri;Puducherri;Puducherry;Puduvai;Territoire de Pondichery;Territoire de Pondichéry;ben de zhi li;ben de zhi li shi;pandiceri;panticceri;pondiceri;pondisheri;Пондишери;Пондішері;पॉण्डिचेरी;পন্ডিচেরী;પૉંડિચેરી;பாண்டிச்சேரி;პონდიშერი;ポンディシェリ;本地治里;本地治里市; +city::1259440;Pollachi;Pollachi;Pollāchi;bo la qi;peallacci;pollacci;pollaci;pwlachy;پولاچی;पोल्लाची;পোল্লাচি;ପୋଲ୍ଲାଚି;பொள்ளாச்சி;పొల్లాచి;പൊള്ളാച്ചി;波拉奇; +city::1259508;Pithapuram;Pithapuram;Pithāpuram; +city::1259652;Pimpri;Pimpri; +city::1259680;Pilkhua;Pilkhua;Pilkhuwa; +city::1259686;Pilibhit;Pilibhhit;Pilibhit;Pilibkhit;Pīlibhīt;Pīlībhīt;Пилибхит; +city::1259811;Phaltan;Phaltan;pa er tan;phalatana;پھلتان;फलटण;ফালটান;ફલટણ;ଫଲଟନ;帕尔坦; +city::1259827;Phagwara;Phagwara;Phagwāra; +city::1259841;Petlad;Petlad;Petlād; +city::1259994;Payyannur;Payyannur;Payyannūr;Payyanur; +city::1260040;Pattukkottai;Pattukkottai;pa tu ke tai;pattukkotta'i;pattukkottai;pattukotta'i;পাত্তুক্কোত্তাই;ପାତ୍ତୁକୋଟ୍ଟାଇ;பட்டுக்கோட்டை;帕图科泰; +city::1260086;Patna;New Patna;PAT;Patna;Patna New City;Patnao;ba te na;batna;pat na;patana;pateuna;patna;patona;ptnh;Πάτνα;Патна;Պատնա;פטנה;باتنا;پتنه;پٹنہ;پټنا;पटना;पाटणा;पाट्ना;পাটনা;ਪਟਨਾ;પટના;ପାଟଣା;பட்னா;பாட்னா;పాట్నా;ಪಟ್ನಾ;പട്ന;ปัฏนา;პატნა;パトナ;パトナー;巴特那;파트나; +city::1260107;Patiala;Pat'jala;Patiala;Patiāla;Патьяла; +city::1260137;Pathankot;IXP;Pathankot;Pathānkot;Patkhankot;Rathankot;pa tan ke te;pathanakota;Патханкот;پٹھان کوٹ;पठानकोट;পাঠানকোট;পাথানকোট;帕坦科特; +city::1260173;Patan;Patan;Pātan;Патан; +city::1260222;Parvatipuram;Parvatipuram;Pārvatipuram;Pārvatīpuram;parvatipuram;పార్వతీపురం; +city::1260290;Parli Vaijnath;Parli;Parli Vaijnath;Parli Vaijnāth;Purli;Purli Vaijnath; +city::1260341;Parbhani;Parbaini;Parbani;Parbhani;Parbkhani;pa er ba ni;parabhani;parbhani;prbany;Парбани;Парбхани;پربانی;پربھنی;परभणी;পারভানি;ପାର୍ଭାନି;帕尔巴尼; +city::1260387;Paramagudi;; +city::1260393;Paradip Garh;Paradeep;Paradip;Paradip Garh;Paradipur;Paradwip;Parādīp Garh;Pārādwīp; +city::1260434;Panvel;Panvel;Panwel;pan wei er;pana'oyela;panabela;panaraela;panavela;panvel;panwl;pnwyl;پانول;پنویل;पनवेल;পানওয়েল;পানৱেল;ପାନବେଲ;பன்வேல்;潘韦尔; +city::1260448;Panruti;Panruti;pan lu di;panaruti;pannurutti;পানরুটি;ପାନରୁତି;பண்ணுருட்டி;潘鲁蒂; +city::1260476;Panipat;Panipat;Panipata;Pānīpat;Панипата; +city::1260482;Panihati;Panihati;Pānihāti; +city::1260546;Pandharpur;Pandharpur;Pandkharpur;padharapura;pan da er pu er;pandaripuramu;pandharapura;pantaripuram;Пандхарпур;پانڈھراپور;पंढरपुर;पंढरपूर;পাধরপুর;ପାଣ୍ଢାରପୁର;பண்டரிபுரம்;పండరీపురము;ಪಂಢರಪುರ;潘达尔普尔; +city::1260607;Panaji;Nova Goa;Panadzhi;Panadzi;Panadzis;Panadzsi;Panadžis;Panadží;Panaji;Pangim;Panjim;pa na ji;panaji;panjy;pn chi;pnjy;Панаджи;پانجی;پنجی;पणजी;পানাজি;ਪਣਜੀ;ପାଣାଜୀ;பணஜி;பானஜி;పనజీ;ಪಣಜಿ;പനജി;ปณชี;პანაჯი;パナジ;帕纳吉;파나지; +city::1260637;Palwal;Palval;Palwal;balwal;pa er wa er;pala'oyala;palaraala;palavala;palawala;Палвал;بالوال;पलवल;পালওয়াল;পালৱাল;ପଲୱାଲ;帕尔瓦尔; +city::1260667;Paloncha;; +city::1260671;Palani;Palani;Palni;pa la ni;palani;Палани;पलनी;पळणी;पळनी;পালানি;ପାଲାନି;பழனி;പഴനി;帕拉尼; +city::1260692;Pallavaram;Pallavaram;Pallāvaram; +city::1260707;Palitana;Palitana;Pālitāna;Палитана; +city::1260716;Pali;Pali;Pali-Marwar;Pāli;Пали; +city::1260728;Palghat;Palakkad;Palghat;Palgkhat;Pālghāt;pa la ke ka de;palakkad;palakkada;palakkara;palakkat;palakkatu;Палгхат;پالگھاٹ;पालक्काड;पालक्काड़;পালক্কাদ;પલક્કડ;ପାଲାକ୍କଡ଼;பாலக்காடு;పాలక్కాడ్;പാലക്കാട്;帕拉克卡德; +city::1260730;Palghar;Palghar;Pālghar; +city::1260771;Palasa;Palasa;Palāsa;palasa;పలాస; +city::1260777;Palanpur;Palanpur;Pālanpur; +city::1260792;Palakollu;Palacole;Palakollu;Pālakollu; +city::1261008;Ottappalam;Ottapalam;Ottappalam;Ottappālam; +city::1261012;Osmanabad;OMN;Osmanabad;Osmānābād;Usmanabad;ao si ma na ba de;osamanabada;osmanabada;usamanabada;usmanabada;usumanabado;Османабад;عثمان آباد;उस्मानाबाद;ওসমানাবাদ;ਉਸਮਾਨਾਬਾਦ;ઉસ્માનાબાદ;ଓସ୍ମାନାବାଦ;ウスマーナーバード;奥斯马纳巴德; +city::1261039;Orai;Orai; +city::1261045;Ongole;Ongole;anagole;awngl;awngwl;ongol-nagaram;ongola;ongole;ongolu;onkol;weng guo er;Онголе;اونگل;اونگول;ओंगोल;ओङ्गोल्-नगरम्;অনগোলে;ઓંગોલે;ଓଙ୍ଗୋଲେ;ஒங்கோல்;ఒంగోలు;翁果爾; +city::1261086;Obra;Obra; +city::1261110;Nuzvid;Nuzvid;Nūzvīd; +city::1261162;Nowrangapur;Nabarangapur;Nabarangpur;Nowrangpur; +city::1261181;North Lakhimpur;IXI;Lakhimpur;North Lakhimpur;auyam laksipura;lakhimapura;nuo er te la ji mu pu er;uttara lakhimapura;uttara laksmipura;uttara-lakhimapuram;uttari lakhimapura;شمالی لیکھمپور;उत्तर लखिमपुर;उत्तर-लखिमपुरम्;उत्तरी लखीमपुर;लखीमपुर;উত্তর লখিমপুর;উত্তৰ লখিমপুৰ;ঔয়াং লক্ষিপুর;લખિમપુર;ଉତ୍ତର ଲକ୍ଷ୍ମୀପୁର;诺尔特拉基姆普尔; +city::1261227;Nokha;Noka;Nokha;Nokha mani;Nokhamandi; +city::1261258;Nizamabad;Nizamabad;Nizāmābād;nijamabad;నిజామాబాద్; +city::1261288;Nirmal;Nirmal;Nirmala;ni er ma er;nirmal;nirmala;nrml;Нирмала;نرمل;निर्मल;নির্মল;ନିର୍ମଲ;నిర్మల్;尼尔马尔; +city::1261309;Nipani;Nimpani;Nipani;Nipāni; +city::1261369;Nimbahera;Nimbahera;Nīmbāhera; +city::1261470;Neyyattinkara;Neyattinkara;Neyyattinkara;Neyyāttinkara; +city::1261481;New Delhi;Dellium Novum;Dilli;Dillí;N'ju-Deli;Neo Delchi;Neu-Delhi;Nev Deli;New Delhi;New Dilli;Nju Delkhi;Nov-Delhio;Nova Delhi;Nova Deli;Nova Deli - na'i dilli;Nova Deli - नई दिल्ली;Nova-Delhi;Nove Dilli;Nové Dillí;Nueba Deli;Nueva Delhi;Nuova Delhi;Nyja Deli;Nyu Deli;Nòva Delhi;Nýja Delí;Yeni Delhi;na'i dilli;naya dilli;niu-deli;niwde li;nyudelli;nyuderi;nyw dlhy;nywdlhy;putu tilli;xin de li;Νέο Δελχί;Њу Делхи;Нев Дели;Нью-Дели;Նյու Դելի;ניו דלהי;نيودلهي;नई दिल्ली;নয়া দিল্লী;புது தில்லி;นิวเดลี;ནེའུ་དིལ་ལིའི;ნიუ-დელი;ኒው ዴሊ;ニューデリー;新德里;뉴델리; +city::1261529;Nellore;Nellore;Nellur;Nelluru;Nelor;nei luo er;nellare;nellaura;nellora;nellur;nelluru;nelluru-nagaram;neruru;nlwr;nylwr;nylwry;sinhapuri;Неллуру;Нелор;نلور;نيلور;نيلوری;نیلور;नेल्लूरु-नगरम्;नेल्लोर;नेल्लौर;নেল্লরে;ନେଲ୍ଲୋର;நெல்லூர்;నెల్లూరు;సింహపురి;ネルール;內洛爾; +city::1261553;Nedumangad;Nedumangad;Nedumangād; +city::1261613;Nawalgarh;Nawalgarh;na wa er jia er;navalagadha;नवलगढ;纳瓦尔加尔; +city::1261631;Nawada;Nawada;Nawāda; +city::1261641;Nawabganj;Nawabgang;Nawabganj;Nawābganj; +city::1261669;Navadwip;Nabadurip;Nabadwip;Nadia;Navadvip;Navadwip;Navadwīp;Навадвип; +city::1261727;Nasirabad;Nasirabad;Nasīrābād; +city::1261731;Nashik;ISK;Nashik;Nasik;Nasikas;Nasiko;Naszik;Našikas;Nászik;na xi ke;nacik;nashiku;nashk;nasik;nasika;nasikeu;nask;nasyk;Насик;Нашик;Нашік;ناسک;ناسیک;ناشک;नाशिक;नाशीक;नासिक;নাশিক;ਨਾਸ਼ਿਕ;નાસિક;ନାଶିକ;நாசிக்;నాసిక్;ನಾಸಿಕ್;ნაშიკი;ナーシク;纳西克;나시크; +city::1261739;Narwana;Narwana;Narwanal;Narwāna; +city::1261772;Narnaul;Narnaul;Nārnaul; +city::1261848;Narasaraopet;Narasaraopet;na la sa la ao pei te;narasara'opet;narasara'opeta;narasaravupeta;نراساراو پیٹ;नरसरावुपेट;নারাসারাওপেত;ନାରସାରାଓପେଟ୍;నరసరావుపేట;纳拉萨拉奥佩特; +city::1261852;Narasapur;Narasapur;Narasapuram;Narsapur;na er sa pu er;naracapuram mantalam;narasapuram;narasapuram mandala;نراساپور، مغربی گوداوری ضلع;नरसापुरं मण्डल;ନାରସାପୁରମ୍;நரசாபுரம் மண்டலம்;నరసాపురం;纳尔萨普尔; +city::1261910;Nanjangud;Nanjangud;Nanjangud Town;Nanjangūd; +city::1261913;Nangloi Jat;Nangloi;Nangloi Jat;Nāngloi Jāt; +city::1261927;Nandyal;Nandial;Nandyal;Nandyala;Nandyāl;Nandyāla;nandyala;నంద్యాల; +city::1261931;Nandurbar;Nandurbar;Nandurbār; +city::1261977;Nanded;NDC;Nandair;Nanded;Nander;Nānded;Nānder;nadera;nan dai de;nan ded;nan theth;nandd;nandeda;nandedeu;nandedo;nandera;nandyd;nantet;nantetu;nndyd;Нандед;Нандер;ناندد;ناندید;ناندیڑ;ننديد;नांदेड;नांदेड़;नान्देड;ਨੰਦੇੜ;நாந்தேடு;நான்தேட்;นันเดด;นันเทฑ;ナーンデード;楠代德;난데드; +city::1262039;Namakkal;Namakkal; +city::1262067;Nalgonda;Nalgonda;na er ge en da;nalaganada;nalagonda;nalgonda;nalgonda-nagaram;naljwnda;nalkonta;Налгонда;نالجوندا;नलगोंडा;नल्गोण्डा-नगरम्;नल्गोन्डा;नालगोंडा;নলগনদা;ନାଲଗୋଣ୍ଡା;நல்கொண்டா;నల్గొండ;纳尔戈恩达; +city::1262092;Naksalbari;Nakalbari;Nakalbāri;Naksalbari;Naksalbāri;Naxalbari; +city::1262109;Najibabad;Najibabab;Najibabad;Najībābāb;Najībābād; +city::1262131;Naihati;Naihati;Naihāti; +city::1262180;Nagpur;Ajni;Gorad Nagpur;NAG;Nagpore;Nagpur;Nagpura;Nagpuras;Nankpour;Nágpur;Nāgpur;Nāgpura;na ge pu er;nagapur;nagapura;nagapuram;nageupuleu;naghbwr;nagpwr;nagupuru;nakpur;Ναγκπούρ;Горад Нагпур;Нагпур;Наґпур;נאגפור;ناغبور;ناگپور;नागपुर;नागपुरम्;नागपूर;নাগপুর;ਨਾਗਪੁਰ;નાગપુર;ନାଗପୁର;நாக்பூர்;నాగపూర్;ನಾಗಪುರ;നാഗ്‌പൂർ;ნაგპური;ナーグプル;那格浦尔;나그푸르; +city::1262200;Nagina;Nagina;Nagīna; +city::1262204;Nagercoil;Nagarkoil;Nagarkovil;Nagercoil;Nāgercoil;nakarkovil;நாகர்கோவில்; +city::1262209;Nagda;Nagda;Nagda-Dhar; +city::1262216;Nagaur;Nagaur;Nagaur Marwar;Nāgaur; +city::1262260;Negapatam;Nagapatinam;Nagapattinam;Nagappattinam;Negapainttam City;Negapatam;Negapattinam;Nāgappattinam;nagapattinamu;nagappattinamu;nakappattinam;நாகப்பட்டினம்;ナーガッパッティナム;ナーガパッティナム; +city::1262292;Nadiad;Hadiad;Nadiad;Nadiād;Naidad; +city::1262319;Nabha;Nabha;Nābha; +city::1262321;Mysore;MYQ;Mahisur;Mahisūr;Maisur;Maisuru;Maisúr;Maisūr;Maisūru;Majsor;Majsur;Majszur;Mysooru;Mysore;Mysuru;Mysūru;Májszúr;ma'isora;mahisura;mai suo er;maicur;maisoleu;maisoru;maisura;maisuru;mayswr;mhaisura;myswr;Майсур;Мајсор;مايسور;میسور;मैसूर;मैसूरु;म्हैसूर;মহীশূর;মাইসোর;ਮੈਸੂਰ;મૈસૂર;ମହୀଶୂର;மைசூர்;మైసూరు;ಮೈಸೂರು;മൈസൂരു;මයිසූර්;マイソール;迈索尔;마이소르; +city::1262330;Muzaffarpur;MZU;Muzaffarpur;Tirhoot; +city::1262332;Muzaffarnagar;Muzafarnagar;Muzaffarnagar;mu zha fa er na jia er;mujapharanagara;mujaphpharanagara;mujaphpharanagaram;mujhaphpharanagara;muzaffara nagara;muzaffarunagaru;mzfr ngr;mzfrngr;Музафарнагар;مظفر نگر;مظفرنگر;मुजफ्फरनगरम्;मुज़फ़्फ़र नगर;मुझफ्फरनगर;મુજફ્ફરનગર;ମୁଜଫରନଗର;ムザッファルナガル;穆扎法尔纳加尔; +city::1262395;Murwara;Katni;Murwara;Murwāra; +city::1262453;Muradnagar;Muradnagar;Muravnagar;Murādnagar; +city::1262463;Munnar;Munnar;munar;munara;munnar;munnara;mwnar;Муннар;مونار;मुन्नार;मुन्नार्;મુનાર;மூணார்;మున్నార్;മൂന്നാർ; +city::1262482;Monghyr;Manger;Monghyr;Munger;Мангер; +city::1262578;Muktsar;Muktsar; +city::1262634;Mughal Sarai;Moghal Sarai;Moghulserdai;Mughal Sarai;Mughal Sarāi; +city::1262678;Mubarakpur;Azamgarh;Mubarakpur;Mubārakpur; +city::1262710;Mothihari;Mothihari;Mothīhāri;Motihan;Motihari;Motīhāri;motihari;मोतिहारी; +city::1262771;Morena;Morena;Pech Morena;mo lei na;morena;muraina;mwryna;Морена;مورینا;मुरैना;मोरेना;মোরেনা;મુરૈના;ମୋରେନା;莫雷纳; +city::1262775;Morbi;Morbi;Morvi; +city::1262801;Moradabad;Moradabad;Morādābād;Muradabad;Murādābād;Морадабад; +city::1262852;Mokameh;Mokama;Mokamah;Mokameh;Mokāma; +city::1262951;Moga;Moga;Mogu;moga;moka;mwga;mwga pnjab;Мога;Могу;موگا;موگا، پنجاب;मोगा;ਮੋਗਾ;મોગા;ମୋଗା;மோகா; +city::1262958;Modasa;Modasa;Modassa;Modāsa; +city::1262995;Mirzapur;Mirzapur;Mirzapur-cum-Vindhyachal;Mirzarpur;Mirzāpur;Мирзапур; +city::1263012;Mirialguda;Mirialguda;Miriyalguda;Miriālgūda;Miryalguda; +city::1263101;Mettur;Mettur;Mettūr; +city::1263103;Mettupalayam;Mettupalaiyam;Mettupalayam-Coimbatore;Mettuppalaiyam;Mettuppālaiyam;Mettupālaiyam;mettupalayam koyambatturu;mettupalayama;mettuppalaiyam;मेट्टुपालयम;மேட்டுப்பாளையம்;మెట్టుపాలయం కోయంబత్తూరు; +city::1263214;Meerut;Meerut;Meerut City;Merath;Meratkh;Mirat;Miratas;Mirut;Mirát;meluteu;meratha;merato;mi la te;mirarr;mirat;mirat nagaram;mirata;miruta;myrwt;Меерут;Мератх;Мирут;Мірут;מיראט;ميروت;ميروټ;میروت;میرٹھ;मीरत;मेरठ;মীরুট;ਮੇਰਠ;મેરઠ;ମିରଟ;மீரட்;మీరట్ నగరం;മീററ്റ്;メーラト;密拉特;메루트; +city::1263220;Medinipur;Medinipur;Medinīpur;Midnapor;Midnapore;Midnapur;Миднапор; +city::1263247;Mayiladuthurai;Mayavaram;Mayaveram;Mayuram;Māyavaram;Māyuram;Māyūram;ma yi la du tu lai;mailadutturai;mayalanduthura'i;mayiladuthuraya;mayiladuturai;mayilatuturai;میئیلاڈوتھورائے;मयिलदुथुराय;मयीलाडूतुरै;মায়লান্দুথুরাই;மயிலாடுதுறை;మైలాదుత్తురై;马伊拉杜图赖; +city::1263275;Mawana;Mawana;Mawāna; +city::1263311;Mau;Mau;Mau Nath Bhanjan;Mau Nathbhanjan;Maunath Bhanjan;Maunāth Bhanjan;ma'u;ma'unatha bhanjana;mao na te ban zhan;mau;mavu;maw;myw;Мау;مئو;ماؤ;ماؤ ناتھ بھنجن;ماو;मऊ;मऊनाथ भंजन;मवु;मौ;মৌ;મઊ;毛纳特班詹; +city::1263364;Mathura;Madhura;Mandura;Mathura;Matkhura;Matura;Muttra;ma tu la;mathura;mato~ura;matula;matura;matwra;Матура;Матхура;Մաթհուրա;ماتورا;متھرا;मथुरा;মথুরা;મથુરા;ମଥୁରା;மதுரா;మథుర;ಮಥುರಾ;മഥുര;マトゥラー;马图拉;마투라; +city::1263427;Masaurhi Buzurg;Masaurhi;Masaurhi Buzurg;Masaurki; +city::1263494;Mormugao;Goa;Marmagao;Marmagoa;Marmugao;Mermugao;Mormugao;Porio;Мармагао; +city::1263504;Markapur;Markapur;Mārkāpur; +city::1263622;Mansa;Mansa;Mānsa; +city::1263659;Mannargudi;Mannargudi;Mannārgudi;ma na er gu di;mannaraguri;mannargudi;mannarkuti;मन्नर्गुडी;মান্নারগুড়ি;மன்னார்குடி;马纳尔古迪; +city::1263661;Mannarakkat;; +city::1263664;Manmad;Manmad;Manmād; +city::1263694;Manjeri;Manjeri;man jie li;manceri;manjeri;mnjyry;منجیری;मंजेरी;মঞ্জেরী;மஞ்சேரி;മഞ്ചേരി;曼杰里; +city::1263752;Mangrol;Mangral;Mangrol;Mungrol;Māngral;Māngrol;Mūngrol; +city::1263780;Mangalore;IXE;Kodial;Kudla;Maikala;Mangalooru;Mangalor;Mangalore;Mangaloro;Mangalur;Mangaluru;Mangalúru;Mangalūru;Manglapuram;Tulu Nadu;kodiyal;maingalura;mang kha l xr;mang-galloleu;mangalora;mangalore;mangalura;mangaluru;mangaroru;manghlwr;manglwr;mankalur;men ge luo er;mengalora;mnglwr;myangalora;Мангалор;Мангалур;Мангалуру;مانغلور;مانگلور;منگلور;मंगळूर;मङ्गलूरु;मङ्गळूरु;मैंगलूर;মাঙ্গালোর;ম্যাঙ্গালোর;મેંગલોર;ମାଙ୍ଗାଲୋରେ;மங்களூர்;మంగళూరు;ಕೊಡಿಯಾಲ್;ಮಂಗಳೂರು;മംഗളൂരു;มังคาลอร์;マンガロール;门格洛尔;망갈로르; +city::1263797;Mangalagiri;Mangalagiri;mang ge a la ji li;mangalagiri;mankalakiri;मंगलगिरी;মঙ্গলাগিরি;மங்களகிரி;మంగళగిరి;芒格阿拉吉里; +city::1263814;Mandya;Mand'ja;Mandya;man di ya;mandaya;mandya;mantiya;Мандья;مانڈیا;मंड्या;मांड्या;মান্দায়া;માંડ્યા;ମାନ୍ଦ୍ୟ;மண்டியா;మండ్య;ಮಂಡ್ಯ;曼迪亚; +city::1263833;Mandu;Mandu;Māndu; +city::1263834;Mandsaur;Mandasor;Mandsaur;man de shao er;mandasaura;mandosauru;mandsa'ur;mndswr;مندسور;मंदसौर;मन्दसौर;মান্দসৌর;મંદસૌર;ମାନ୍ଦ୍ସାଉର୍;マンドサウル;曼德绍尔; +city::1263936;Mancheral;Mancheral;Mancherial;Mancherāl;manciryala;మంచిర్యాల; +city::1264071;Malkapur;Malkapur;Malkāpur; +city::1264111;Maler Kotla;Maler Kotla;Māler Kotla; +city::1264115;Malegaon;Malegaon;Mālegaon;Малегаон; +city::1264138;Malaut;; +city::1264154;Malappuram;Malappuram;ma la pu nan;ma la pu pu la mu;malabwram;malappuram;malappurama;mlapwrm;Малаппурам;مالابورام;ملاپورم;मलप्पुरम;মালাপ্পুরম;மலப்புறம்;മലപ്പുറം;马拉普普拉姆;马拉浦南; +city::1264206;Makrana;Makrana;Makrāna; +city::1264292;Mainpuri;Mainpuri; +city::1264359;Mahoba;Mahoba;Mahobā; +city::1264407;Mahbubnagar;Mahboobnagar;Mahbubnagar;Mahbūbnagar; +city::1264414;Mahasamund;Mahasamund;Mahāsamund; +city::1264521;Madurai;IXM;Madura;Madurai;Maduraj;Madurajus;Maduráj;Mathurai;m thu ri;ma du lai;madhura;madhurai;mado~urai;madulai;madura'i;madurai;madwray;maturai;mdwray;mdwrayy;Мадурай;Мадурај;مادورائ;مادوراي;مادورای;مدورائی;مدورای;मदुरई;मदुराई;मदुरै;मधुरै;মদুরাই;ਮਦੁਰਈ;મદુરાઇ;ମଦୁରାଇ;மதுரை;మదురై;ಮಧುರೈ;മധുര;มทุไร;მადურაი;マドゥライ;马杜赖;마두라이; +city::1264527;Chennai;Cenaj;Cenajo;Cenajus;Cenay;Cennai;Cennaj;Chenaj;Chennai;Chennai - cennai;Chennai - சென்னை;Chennaj;Csennai;Gorad Chehnai;MAA;Maderaspatanum;Madras;Madrás;Tamizhagam;Tamulinadu;Tsennai;cen ni;cena'i;cenna'i;cennai;chen'nai;chenai;chennai;chnay;chnayy;chynay;chynayy;jin nai;qing nai;tshynay;znʼy;Çenay;Çennai;Ćennaj;Ĉenajo;Čenaj;Čenajus;Čennai;Čennaí;Τσεννάι;Горад Чэнаі;Ченай;Ченај;Ченнаи;Ченнай;Ченнаї;Չեննայ;צנאי;تشيناي;چنائی;چنای;چينای;چینائی;चेन्नई;चेन्नै;চেন্নাই;ਚੇਨਈ;ચેન્નઈ;ଚେନ୍ନାଇ;சென்னை;చెన్నై;ಚೆನ್ನೈ;ചെന്നൈ;චෙන්නායි;เจนไน;ချန်နိုင်းမြို့;ჩენაი;チェンナイ;清奈;金奈;첸나이; +city::1264543;Madhyamgram;Maddham Gram;Madhyamgram;ma di ya mu ge la mu;madhyagrama;madhyamagrama;مدھیامگرام;मध्यमग्राम;মধ্যগ্রাম;মধ্যমগ্রাম;马迪亚姆格拉姆; +city::1264551;Madhupur;Madhupur; +city::1264555;Madhubani;Madhubani;Madkhubani;Мадхубани; +city::1264570;Madhipura;Madhipura;Madhupura; +city::1264588;Madgaon;Madgaon;Margao;Margão;Маргао; +city::1264621;Madanapalle;Madanapalle;ma da na pa er lai;ma da na pa li;madanapalle;madanapalle mandala;madanapalli;matanappalli;mdnply;Маданапалле;مدنپلی;मदनपल्ली;मदनपल्ले मण्डल;মদনাপাল্লে;ମାଦାନାପାଲ୍ଲେ;மதனப்பள்ளி;మదనపల్లె;མ་ད་ནཱ་པལ་ལི།;馬達納帕利;马达纳帕尔莱; +city::1264637;Machilipatnam;Bandar;Kistna;Krishna;Machilipatnam;Machilīpatnam;Masulipatam;Masulipatao;Masulipatnam;Masulipatão;macilipatnam;మచిలీపట్నం; +city::1264647;Macherla;Macherla;Mācherla; +city::1264688;Lunglei;Lungleh;Lunglei;Lungliah;lnglyy;long ge lai yi;lun'gale'i;lungalai;lungle'i;lunle'i;lunley;lwngly;Лунглеи;لنگلئی;لونگلی;लुंग्लेइ;लुंग्लेई;लुङ्गलै;লুংলেই;લુન્ગલેઇ;ଲୁଙ୍ଗ୍ଲେଇ;லுங்லேய்;隆格莱伊; +city::1264728;Ludhiana;LUH;Ludhiana;Ludhijana;Ludhiāna;Ludkhijana;ludhi'ana;ludhiyana;lutiyana;rudiana;rudiyana;Лудхияна;लुधियाना;ਲੁਧਿਆਣਾ;லூதியானா;ルディアーナ;ルディヤーナー; +city::1264733;Lucknow;LKO;Lakhnau;Lakkhnau;Lakkhnau shaary;Laknaou;Laknau;Laknauo;Laknava;Laknaú;Laknaŭo;Lucknow;Lucknow City;Luknow;ilakno;lakh nea;lakhana'u;lakhanau;laknau;lakno;laksnau;lei ke nao;leokeunau;lkhnw;lknaw;rakunau;Λάκναου;Лакнау;Лакхнау;Лакхнау шаары;לאקנאו;لكهنؤ;لكهنو;لکناو;لکهنو;لکھنؤ;लखनऊ;लखनौ;লক্ষ্ণৌ;লখনৌ;ਲਖਨਊ;લખનૌ;ଲକ୍ଷ୍ନୌ;இலக்னோ;లక్నో;ಲಕ್ನೋ;ലഖ്‌നൗ;ลัคเนา;ლაქნაუ;ラクナウ;ラクナウー;勒克瑙;러크나우; +city::1264735;Luckeesarai;Lakhisarai;Luckeesarai;Luckesserai; +city::1264773;Loni;Lone;Loni;Лоне; +city::1264793;Lonavla;Lonauli;Lonavala;Lonavla; +city::1264839;Lohardaga;Lohardaga;Lohārdagā; +city::1265014;Latur;LTU;Latur;la du er;latr;latur;latura;latwr;rato~uru;Латур;لاتر;لاتور;लातूर;লাতুর;લાતૂર;ଲାତୁର୍;ラートゥール;拉杜爾; +city::1265157;Lalitpur;Lalitpur;lalipura;lalitapura;lalitapuram;lalitpur;lallispuleu;Лалитпур;للت پور، بھارت;ललितपुर;ललितपुरम्;ललितपूर;ললিতপুর;લલિતપુર;ଲାଲିପୁର;லலித்பூர்;랄릿푸르; +city::1265242;Lakhimpur;Lakhimpur;Lakhīmpur; +city::1265310;Laharpur;Laharpur;Lāharpur; +city::1265331;Ladnun;; +city::1265579;Kunnamkulam;Kunamkulam;Kunnamkulam;kun na mu ku lan;kunnamakulama;kunnamkulam;kunnankulam;kwnamkwlm;کونامکولم;कुन्नम्कुलम्;কুন্নামকুলম;କୁନ୍ନାମକୁଲାମ;குன்னங்குளம்;കുന്നംകുളം;昆纳姆库兰; +city::1265605;Kundla;; +city::1265683;Kumbakonam;Kumbakonam;ku mu ba ke na mu;kumbakonama;kumbhakeanam;kumbhakonam;kumbhakonama;kumpakonam;Кумбаконам;कुंभकोणम;कुम्बकोनाम;কুম্ভকোনম;கும்பகோணம்;కుంభకోణం;കുംഭകോണം;库姆巴科纳姆; +city::1265711;Kulti;Kulti;Култи; +city::1265767;Kukatpalli;Kukatpalli;Kukatpally;Kūkatpalli; +city::1265828;Kuchaman;Kuchaman;Kuchawan;Kuchāman;Kuchāwan; +city::1265859;Krishnanagar;Krishnagar;Krishnagar City;Krishnagiri;Krishnanagar;Krishnigar;ke li si he na na jia er;kirusnanakar;krsnanagara;Кришнанагар;Крішнанаґар;कृष्णनगर;कृष्णानगर;কৃষ্ণনগর;கிருஷ்ணாநகர்;克里斯赫纳纳加尔; +city::1265863;Krishnagiri;Krishnagiri;ke li si he na ji li;kiruttinakiri;krshnagry;krsnagiri;kurishunagiri;Кришнагири;کرشناگری;कृष्णगिरि;कृष्णगिरी;কৃষ্ণগিরি;કૃષ્ણાગિરિ;கிருட்டினகிரி;クリシュナギリ;克里斯赫纳吉里; +city::1265873;Kozhikode;CCJ;Calecute;Calicut;Calicutium;City of Spices;Kal'kutta;Kalicut;Kalikuto;Kojikode;Kolikod;Kozhikkot;Kozhikod;Kozhikode;Kozikkot;Kozikode;Kozsikode;Kozsíkóde;Kožikodė;Kóžikkót;kajahikode;kajhikada;kalikotu;kalykwt;karikatto;ke ze ke de;kealikkeat;kealikkeat jilla;kho chi khod;kojhikora;kojikodeu;kolikkot;kolikkota;kolikkotu;kolikod;kolikoda;kolikora;qwzyqwd;Калькутта;Кожикод;Кожикоде;Կոժիկոդե;קוזיקוד;كاليكوت;کالیکوت;کالیکٹ;کوزیکوڈ;ކާލީކޯޓު;कोलिक्कोट;कोळिकोड;कोष़िक्कोड;কজহিকোদে;কঝিকড;কোঝিকোড়;કોળિક્કોટ્;କୋଳିକୋଡ଼;கோழிக்கோடு;కోళికోడ్;കോഴിക്കോട്;കോഴിക്കോട് ജില്ല;കോഴിക്കോട്‌;โคชิโคด;カリカット;科泽科德;코지코드; +city::1265891;Kovilpatti;Koilpatti;Kovilpatti;ke wei er pa di;kobhilapatti;kobilapatti;kovilpatti;कोभिलपट्टी;কোবিলপাত্তি;கோவில்பட்டி;科维尔帕蒂; +city::1265911;Kottayam;Kotayam;Kottajam;Kottayam;kattayama;ke te ta ye mu;keattayam;kotayam;kottayam;kottayama;Коттаям;کوٹایم;कोट्टयम्;कोट्टायम;কত্তায়াম;কোট্টায়ম;કોટ્ટયમ;କୋତ୍ତାୟମ;கோட்டயம்;కోట్టాయం;കോട്ടയം;科特塔耶姆;코타얌; +city::1265938;Kottagudem;Kothagudem;Kottagudem;Kottagūdem; +city::1266049;Kota;KTU;Kota;Kotah;Kotah City;ke ta;kota;kotta;kwta;Кота;کوتا;کوٹا;कोटा;ਕੋਟਾ;કોટા;கோட்டா;コーター;科塔;코타; +city::1266073;Kosi;; +city::1266122;Korba;Korba;koraba jila;Корба;कोरबा जिला; +city::1266124;Koratla;Koratla; +city::1266154;Koppal;Kappal;Kopbal;Koppal;ke pu pa er;koppal;koppala;Коппал;कोप्पल;कोप्पळ;কোপ্পাল;કોપ્પલ;கொப்பள்;科普帕尔; +city::1266162;Kopargaon;Kopargaon; +city::1266179;Konnagar;Konnagar; +city::1266217;Konch;Konch;Kunch;Kūnch; +city::1266267;Kollegal;Collegal;Kollegal;Kollegalam;Kollegāl;Kollegālam; +city::1266285;Kolhapur;KLH;Kolhapur;Kolhāpur; +city::1266305;Kolar;Kolar;Kolār;Колар; +city::1266366;Kohima;Kohima;Kohīma;Kokhima;ke xi ma;keahima;kohima;kokima;Кохима;Кохіма;کوہیما;कोहिमा;কোহিমা;ਕੋਹਿਮਾ;કોહિમા;କୋହିମା;கோகிமா;കൊഹിമ;კოჰიმა;コヒマ;科希马;코히마; +city::1266416;Kodar;; +city::1266436;Koch Bihar;COH;Cooch Behar;Koch Bihar;Koch Bihār;Kuch Bihar;Kuch Bihār; +city::1266486;Kishangarh;KQH;Kishangarh;Kishangarkh;kil'ha harikrisanagarha;kisanagadha;kisanagara;kisanagarha;kʼishangarhi;Кишангарх;किशनगढ़;किशानगढ;কিষানগড়;ਕਿਲ੍ਹਾ ਹਰਿਕ੍ਰਿਸ਼ਨਗੜ੍ਹ;კიშანგარჰი; +city::1266489;Kishanganj;Kishanganj;Kishanganj Bazar; +city::1266509;Kiratpur;Kiratpur;Kīratpur; +city::1266607;Khurja;Khurja; +city::1266666;Khopoli;Khopoli;ke bo li;khopoli;کھوپولی;खोपोली;খোপোলি;科波利; +city::1266849;Khatauli;Khatauli; +city::1266928;Khargone;Khargon;Khargone; +city::1266945;Khardah;Khardah;Khardaha; +city::1266976;Kharagpur;Kharagpur;Khargpur;karakpur;ke lei ge bu er;kharagapura;khargapura;khragpwr;Харагпур;خراگپور;खरगपुर;खरगपूर;খড়্গপুর;ଖଡ଼ଗପୁର;கரக்பூர்;ಖರಗ್‌ಪುರ;克勒格布爾; +city::1267016;Khanna;Khanna;Ханна; +city::1267031;Khandwa;Kandva;Khandwa;kan de wa;khandava;khando'oya;khandoraa;khandva;Кандва;खंडवा;खण्डवा;खन्द्वा;खांडवा;খান্দোওয়া;খান্দোৱা;ખંડવા;坎德瓦; +city::1267076;Khammam;Khammam;Khammamett;Khammamette;Kkhammam;ka mu ma mu;kam'mam;kham'mam;kham'mama;khamam;Кхаммам;خامام;کھمم;खम्मम;खम्माम;খাম্মাম;ଖମ୍ମମ;கம்மம்;ఖమ్మం;卡姆马姆; +city::1267084;Khamgaon;Khamgaon;Khāmgaon; +city::1267090;Khambhat;Cambay;Kambay;Khambayat;Khambhat;Khambhāt;Khambāyat; +city::1267187;Khagaul;Khagaul; +city::1267195;Khadki;Khadki;Kirkee; +city::1267227;Keshod;IXK;Keshod;Kesod; +city::1267360;Kayankulam;Kayamkulam;Kayangulam;Kayankulam;Kāyankulam; +city::1267394;Kavali;Kavali;Kāvali; +city::1267439;Katras;Katras;Kātrās; +city::1267457;Katoya;Katoya;Katwa;Kātoya; +city::1267480;Katihar;Hafiz Saifganj;Katihar;Katihār; +city::1267579;Kashipur;Kashipur;Kāshīpur;ka si xi pu er;kashypwr;kasipura;Кашипур;Кашіпур;کاشی پور، اتراکھنڈ;کاشیپور;काशीपुर;काशीपूर;কাশিপুর;କାଶିପୁର;卡斯希普尔; +city::1267588;Kasganj;Kasganj;Kāsganj; +city::1267616;Kasaragod;Kasaragod;Kasaragod Fort;Kāsaragod; +city::1267635;Karwar;Karvar;Karwar;Kawar;Kárvár;Kārwār;ka er wa er;kara'oyara;kararaara;karavara;karavaram;karvar;karwar;krwar;Карвар;کاروار;کروار;कारवार;कारवारम्;কারওয়ার;কারৱার;કારવાર;କାର୍ୱାର୍;கார்வார்;ಕಾರವಾರ;卡尔瓦尔; +city::1267648;Karur;Karur;Karūr;ka lu er;kaluleu;karur;karura;karuru;karwr;krwr;Карур;كرور;کارور;करुर;करूर;करूरु;কারুর;કરુર;କାରୁର୍;கரூர்;ಕರೂರ್;കരൂർ;カルール;卡鲁尔;카루르; +city::1267708;Karnal;Karnal;Karnāl;Карнал; +city::1267755;Karimnagar;Karimnagar;Karīmnagar;karinnagar;కరీంనగర్; +city::1267758;Karimganj;Karimganj;Karīmganj;karimaganja;করিমগঞ্জ; +city::1267819;Karauli;Karauli;ka lao li;karauli;Караули;करौली;কারৌলি;કરૌલી;卡劳利; +city::1267853;Karanja;Karandzha;Karanja;Karanja Bibi;Kāranja;Kāranja Bibi;Каранджа; +city::1267885;Karaikkudi;Karaikkudi;Karaikudi;Kāraikkudi; +city::1267887;Karaikal;Karaikal;Karikal;Kārikāl;karaikal;kāraikāl; +city::1267904;Karad;Karad;Karād; +city::1267911;Kapurthala;Kapurtala;Kapurthala;Kapurthala Town;Kapūrthala; +city::1267995;Kanpur;Cawnpore;KNU;Kanpur;Kanpuras;Kanpwr;Kānpur;Kānpwr;kanapura;kanpur;kanpuru;Канпур;קאנפור;कानपुर;कानपूर;কানপুর;கான்பூர்;カーンプル; +city::1268011;Kannauj;Kanaudzh;Kanauj;Kannaudzh;Kannauj;Kânnauj;ka nao jie;kanauja;kanauji;kannauja;kannoci;kannoja;qnwj;Канаудж;Каннаудж;قنوج;कनौज;कन्नौज;কন্নৌজ;ਕੰਨੌਜ;કન્નોજ;கன்னோசி;კანაუჯი;カナウジ;卡瑙杰;카나우지; +city::1268015;Kannangad;Kanhangad;Kannangad;Kānnangād; +city::1268111;Kandukur;Kandukur;Kandukūr; +city::1268135;Kandi;Kandi;Kāndi; +city::1268159;Kanchipuram;Conjeeveram;Conjevaram;Conjeveram;Kancheepuram;Kanchipuram;Kancipuram;Kanjippuram;Kańćipuram;Kānchipuram;gan ji bu lei mu;kanchipuramu;kancipuram;kancipurama;Канчипурам;কাঞ্চিপুরম;காஞ்சிபுரம்;カーンチープラム;甘吉布勒姆; +city::1268189;Kankanhalli;Kanakapura;Kanakpura;Kankanhalli;Kānkānhalli; +city::1268205;Kamthi;Kamptee;Kamtha;Kamthi;Kāmtha;Kāmthi;kampti; +city::1268246;Cumbum;Kambam; +city::1268257;Kamarhati;Kamarhati;Kamarhatty;Kāmārhāti; +city::1268259;Kamareddi;Kamareddi;Kamareddipet;Kamaredi;Kāmāreddi; +city::1268293;Kalyani;Kalyani;ka li ya ni;kalyani;কল্যাণী;கல்யாணி;卡利亚尼; +city::1268295;Kalyan;Kal'jan;Kalyan;Kalyān;Кальян; +city::1268341;Kalna;Kalna;Kālna;Кална; +city::1268383;Kaliyaganj;Kaliaganj;Kaliyagan;Kaliyaganj;Kāliyāgan;Kāliyāganj; +city::1268561;Kakinada;Cocanada;Coconada;East Godavari;Godavari;Kakinada;Kākināda;kakinada;Какинада;కాకినాడ; +city::1268593;Kaithal;Kaithal;Kajtkhal;ka'ithala;kai ta er;kaithala;kythal;Кайтхал;كيتهال;کیتھل;कैथल;কাইথাল;ਕੈਥਲ;କୈଥଲ;凯塔尔; +city::1268601;Kairana;Kairana;Kairāna; +city::1268673;Kadiri;Kadiri;Кадири; +city::1268680;Kadi;Kadi; +city::1268707;Kadayanallur;Kadaiyanallur;Kadaiyanallūr;Kadayanallur; +city::1268715;Kanchrapara;Kachrapara;Kancharapara;Kanchrapara;Kāchrāpāra;Kānchrāpāra; +city::1268773;Junagadh;Junagad;Junagadh;Junagarh;Junaghur;Jūnāgadh; +city::1268775;Jumri Tilaiya;Jhumri Telaiya;Jhumri Tellaya;Jumri Tilaiya;Jumri Tilaiyā;Kodarma; +city::1268782;Jalandhar;Dzalandar;Dzalandhar;Dzhalandkhar;Dzsalandhar;Dzsálandhár;Dźalandhar;Galangar;Jalandar;Jalandhar;Jullundur;Jullundur City;QJU;gu lang da er;jaladhara;jalandhar;jalandhara;jalandhari;jalantar;jallandaleu;jarandaru;jlndr;Ĝalanĝar;Џаландар;Джаландхар;جالندھر;جلندر;جەلەندەر;जलंधर;जलन्धर;জলন্ধর;ਜਲੰਧਰ;જલંધર;ଜଳନ୍ଧର;ஜலந்தர்;ಜಲಂಧರ್;ജലന്ധർ;ჯალანდჰარი;ジャランダル;賈朗達爾;잘란다르; +city::1268820;Jorhat;Dzhorkhat;JRH;Jorhat;Jorhāt;Sibsagar;Sibságar;Джорхат; +city::1268865;Jodhpur;Codpur;Dzhodkhpur;Dzodhpur;Dzodhpura;Dzodhpuras;Dzodpur;Dzsodhpur;Dzsódhpur;Dźodhpur;Džodhpura;Džodhpuras;Džódpur;Godhpur;JDH;Jodhpur;Jodhpur City;Tzontchpour;cotpur;gwdpwr;jiao te bu er;jodeupuleu;jodhapura;jodhapuram;jodopuru;jwdapwr;jwdbwr;jwdpwr;jwdھpwr;yodapura;yodhapura;Ĝodhpur;Τζοντχπούρ;Џодпур;Джодхпур;גודפור;جوداپور;جودبور;جودپور;جودھ پور;جودھپور;जोधपुर;जोधपुरम्;जोधपूर;যোদপুর;যোধপুর;ਜੋਧਪੁਰ;જોધપુર;ଯୋଧପୁର;சோத்பூர்;ჯოდპური;ジョドプル;ジョードプル;焦特布尔;조드푸르; +city::1268907;Jind;Jind;Jīnd; +city::1268936;Jhunjhunun;Jhunjhunu;Jhunjhunun;Jhunjhunūn;Jhūnjhunu; +city::1268977;Jharsugra;Jharsaguda;Jharsguda;Jharsogra;Jharsugra;Jharsuguda;Jharsugude;Jhārsugra;Jhārsuguda; +city::1268988;Jharia;Jharia;gu li ya;jhariya;झरिया;贾里亚; +city::1268990;Jhargram;Jharagram;Jhargram;Jhāragrām;Jhārgrām; +city::1269006;Jhansi;Jhansi;Jhānsi; +city::1269027;Jhalawar;Brijnagar;Jhalawar;Jhālāwār; +city::1269065;Jetpur;Jetpur; +city::1269092;Jeypore;Jaypur;Jeyepore;Jeypore;PYB; +city::1269135;Jaunpur;Caunpur;Dzhaunpur;Jaunpur;Jawnpur;jaunapura;jaunapuram;jaunpuru;jauyanapura;jwn pwr;jwnfwr;jwnpwr;jwnpwr atrprdysh;qiao en pu er;Джаунпур;جون پور;جونفور;جونپور;جونپور، اترپردیش;जौनपुर;जौनपुरम्;জৌয়ানপুর;જૌનપુર;ジャウンプル;乔恩普尔; +city::1269154;Jatani;Jatani;Jatni;Jātni; +city::1269217;Jaora;Jaora;Jaorā; +city::1269247;Jangipur;; +city::1269280;Jamuria;Jamuria;Jaykayanagar;Jaykaynagar;Jāmuria; +city::1269291;Jamui;Jamui;Jamūi;Jamūī; +city::1269300;Jamshedpur;Cemsidpur;Cemşidpur;Dzamshedpur;Dzhamshedpur;Dzsamsedpur;Gamsedpur;IXW;Jamshedpur;Jarnshedpur;Tatanagar;chamseth pu ra;gu mu xie de bu er;jamasedapura;jamcetpur;jamsedapura;jamsyedeupuleu;jamushedopuru;jia mu xie de bu er;jmshdpwr;jmshyd pwr;jmshydbwr;jmshydpwr;Ĝamŝedpur;Џамшедпур;Джамшедпур;جمشدپور;جمشيد پور;جمشيدبور;جمشیدپور;जमशेदपुर;जमशेदपूर;जम्शेदपुर;জমশেদপুর;জামশেদপুর;જમશેદપુર;ଜାମସେଦପୁର;ஜம்சேத்பூர்;జంషెడ్‌పూర్;ಜಮ್ಶೆಡ್‌ಪುರ;ชัมเศทปุระ;ჯამშედპური;ジャムシェドプル;ジャムシェードプル;賈姆謝德布爾;贾姆谢德布尔;잠셰드푸르; +city::1269317;Jamnagar;Dzhamnagarom;JGA;Jamnagar;Jamnogar;Jāmnagar;Navanagar;Navangar;Nawanagar;Nowanagar;Nowanuggur;Джамнагаром; +city::1269321;Jammu;Dzammu;Dzamu;Dzhammu;Džammú;Džamu;Gamu;Gorad Dzhamu;IXJ;Jammu;Jammu City;cam'mu;gu mu mu;jam'mu;jammu;jamu;janmu;Ĝamu;Џаму;Горад Джаму;Джамму;جموں;जम्मू;জম্মু;ਜੰਮੂ;சம்மு;ജമ്മു;ジャンムー;贾姆穆;잠무; +city::1269328;Jamkhandi;Jamkhandi; +city::1269374;Jamalpur;Jamalpur;Jamālpur; +city::1269388;Jalpaiguri;Jalpaiguri;Jalpāiguri;Paiguri; +city::1269395;Jalna;Jalna;Jālna; +city::1269407;Jalgaon;Dzalgaon;Dzhalgaon;Dzhalgaone;Galgaon;Jalgaon;Jālgaon;jalagamo;jalagamva;jalaganva;jalagava;jalgaw;jalgawn;jalkav;jia er gang;jlgawn;Ĝalgaon;Џалгаон;Джалгаон;Джалгаоне;جالگاو;جالگاون;جلگاؤن;جلگاؤں;जलगाँव;जलगाव;जळगाव;জালগাঁও;જલગાંવ;ஜள்காவ்;加爾岡; +city::1269422;Jalaun;Jalaun;Jālaun; +city::1269507;Jaisalmer;Dzaisalmer;Dzhajsalmer;Dzsaiszalmer;Džaisalmér;Gorad Dzhajsalmer;JSA;Jailsamer;Jaisalmer;Tzaisalmer;gu sha mei er;jaisalamera;jaisalmeleu;jaisarumeru;jayasalamera;jesalamera;jeycalmer;jyslmyr;Τζαϊσαλμέρ;Горад Джайсалмер;Джайсалмер;جیسلمیر;जेसलमेर;जैसलमेर;জয়সলমের;জয়সালমের;ਜੈਸਲਮੇਰ;જેસલમેર;ଜୈସଲମେର;ஜெய்சல்மேர்;ജയ്സാൽമീർ;ジャイサルメール;贾沙梅尔;자이살메르; +city::1269515;Jaipur;Caypur;Dzaipur;Dzaipuras;Dzajpur;Dzajpura;Dzhajpur;Dzsaipur;Dźajpur;Džaipur;Džaipuras;Džajpur;Džajpura;Gajpuro;Gorad Dzhajpur;Iaipura;JAI;Jainagar;Jaipur;Jaipur City;Jayapur;Jaypur;Jeypore;Tzaipour;Zhajpur;ceyppur;chay pu ra;gʼypwr;jaipuleu;jaipura;jaipuru;jayapura;jayapuram;jaybwr;jaypwr;jypwr;zhai pu er;zhai pu ya;Ĝajpuro;Τζαϊπούρ;Џајпур;Горад Джайпур;Джайпур;Жайпур;Ջայպուր;גאיפור;جايبور;جایپور;جيپور;جے پور;जयपुर;जयपुरम्;जयपूर;জয়পুর;জয়পুৰ;ਜੈਪੁਰ;જયપુર;ଜୟପୁର;செய்ப்பூர்;ജയ്‌പൂർ;ชัยปุระ;ჯაიპური;ジャイプル;齋浦爾;齋葡亞;자이푸르; +city::1269551;Jahangirabad;; +city::1269557;Jahanabad;; +city::1269562;Jagtial;Jagtial;Jagtiāl;jagityala;జగిత్యాల; +city::1269564;Jagraon;Jagraon;gu ge la ao en;jagara'um;jagararana;jagra'om;jagravam;جگروں;जग्रावं;জাগরাৱন;ਜਗਰਾਉਂ;ଜାଗ୍ରାଓଁ;贾格拉奥恩; +city::1269578;Jagdalpur;Dzhagdalpur;JGB;Jagdalpur;gu ge da er pu er;jagadalapura;jagadalpura;jgdlpwr;Джагдалпур;جگدلپور;जगदलपुर;जगदलपूर;जगदल्पुर;জগদলপুর;જગદાલપુર;ଜଗଦଲପୁର;జగదల్‌పుర్;贾格达尔普尔; +city::1269605;Jagadhri;Jagadhri;Jagādhri; +city::1269633;Jabalpur;Dzabalpur;Dzabalpuras;Dzhabalpur;Dzsabalpur;Dżabalpur;Džabalpur;Džabalpuras;Gabalpur;JLR;Jabalpur;Jubbulpore;gu ba er pu er;jabalapura;jabalapuram;jabalpuleu;jabalpur;jabarupuru;japalpur;jbl pwr;jblbwr;Ĝabalpur;Џабалпур;Джабалпур;Ջաբալպուր;جبال‌پور;جبل پور;جبلبور;जबलपुर;जबलपुरम्;জবলপুর;જબલપુર;ଜାବାଲପୁର;ஜபல்பூர்;జబల్పూర్;ജബൽ‌പൂർ;ჯაბალპური;ジャバルプル;贾巴尔普尔;자발푸르; +city::1269653;Itarsi;Itarsi;Itārsi; +city::1269665;Islampur;Islampur;Islāmpur; +city::1269723;Ingraj Bazar;English Bazar;English Bāzār;Ingraj Bazar;Ingrāj Bāzār; +city::1269743;Indore;IDR;Indaur;Indor;Indore;Indore Madhya Pradesh;Induras;andwr;ayndwr;idaura;indaura;indoleu;indor;indora;indori;indoru;indura;intor;yin duo er;Індаур;Индаур;Индор;إندور;اندور;ایندور;इंदूर;इन्दोर;इन्दौर;ইন্দোর;ਇੰਦੌਰ;ઈંદોર;ଇନ୍ଦୋର;இந்தோர்;ఇండోర్;ಇಂದೋರ್;ഇൻ‌ഡോർ;ინდორი;インドール;印多尔;인도르; +city::1269771;Imphal;IMF;Imphal;Imphāl;Impkhal;impal;imphala;inparu;Импхал;इंफाल;इम्फाल;ইম্ফল;இம்பால்;インパール; +city::1269784;Ilkal;Ilkal; +city::1269819;Idappadi;Edapadi;Edappadi;Idappadi;Idāppādi; +city::1269834;Ichalkaranji;Icalkarandzi;Ichalkaranji;aychalkaranjy;aychl krnjy;aychlkyrnjy;icalakaranaji;icalakaranji;icalkaranji;yi qie er ge lun ji;Ицалкаранџи;ایچالکارانجی;ایچل کرنجی;ایچلکیرنجی;इचलकरंजी;ईचल्करंजी;ইচালকরনজি;ଇଚାଲକରଞ୍ଜି;伊切尔格伦吉; +city::1269843;Hyderabad;Bhaganagar;HYD;Haidarabadas;Haiderabad;Hajdarabad;Hajdarábád;Hyderabad;Hyderabad-Deccan;Hyderābād;Khajdarabad;Khajderabad;hai de la ba;haidarabada;haidarabadu;haiderabado;haitarapat;hayadarabada ema. karporesana;hayadrabada;hydr abad;hydr abad dkn;hydrabad;Хайдарабад;Хајдерабад;حیدر آباد;حیدر آباد دکن;حیدرآباد;हैदराबाद;হায়দরাবাদ এম. কর্পোরেশন;হায়দ্রাবাদ;ஹைதராபாத்;హైదరాబాదు;ハイデラバード;海得拉巴; +city::1269910;Hugli;Hooghly;Hooghly-Chinsura;Hooghly-Chinsurah;Hugli;Khugli;Хугли; +city::1269920;Hubli;HBX;Hubballi;Hubli;Hubli City;hubballi;ಹುಬ್ಬಳ್ಳಿ; +city::1269934;Hosur;Hosur;Hosūr;Oossoor; +city::1269935;Hospet;Hosapete;Hospet;Hoszpet;Khospet;hosapeta;hosapete;hospeta;hospete;huo si pei te;hwspt;Хоспет;هوسپت;ہوسپٹ;होसपेटे;होस्पेट;হোসপেত;ಹೊಸಪೇಟೆ;ಹೊಸ್ಪೇಟೆ;霍斯佩特; +city::1269939;Hoshangabad;Hoshangabad;Hoshangābād; +city::1270022;Hisar;HSS;Hisar;Hissar;Hissār;Hisār;Khisar;hisara;hsar;xi sa er;Хисар;حصار;ہسار;ہیسار;हिसार;હિસાર;ହିସାର;希萨尔; +city::1270032;Hiriyur;Hiriyur;Hiriyūr; +city::1270072;Hingoli;Hingoli;Khingoli;hingoli;xing ge ao li;Хинголи;ہنگولی;हिंगोली;हिङ्गोली;হিঙ্গোলি;હિંગોલી;兴格奥利; +city::1270077;Hinganghat;Hinganghat;Hinganghāt; +city::1270079;Hindupur;Hindupur; +city::1270090;Hindaun;Hindaun;Hindaun City;hinda'una;hindauna;hindauna siti;hindaunanagaram;hindona;xin dao en;हिंडोन;हिण्डौन;हिण्डौन सिटी;हिण्डौननगरम्;হিন্দাউন;欣道恩; +city::1270099;Himatnagar;Ahmadnagar;Ahmednagar;Himatnagar; +city::1270164;Hazaribag;Hazaribag;Hazaribagh;Hazarybaugh;Hazāribāgh;Hazārībāg;Khazaribag;hajaribaga;Хазарибаг;हजारीबाग; +city::1270171;Haveri;Haveri;Hāveri; +city::1270216;Hathras;Hathras;Hāthras; +city::1270239;Hassan;Hassan;Khasan;ha sang;hasana;Хасан;ಹಾಸನ;哈桑; +city::1270251;Hasanpur;Hasanpur; +city::1270349;Harihar;Harihar;ha li ha er;harihara;हरिहर;হরিহর;ಹರಿಹರ;哈里哈尔; +city::1270351;Haridwar;Hardwar;Hardwār;Haridvar;Haridvár;Haridwar;Haridwār;Khardvar;Kharidvar;arittuvar;haraduraara;haradvara;haridowaru;haridu'ara;haridvar;haridvara;haridvaram;he er de wa er;Хардвар;Харидвар;Харідвар;ہریدوار;हरिद्वार;हरिद्वारम्;হরদুৱার;ਹਰਿਦੁਆਰ;હરદ્વાર;ହରିଦ୍ଵାର;அரித்துவார்;హరిద్వార్;ಹರಿದ್ವಾರ;ഹരിദ്വാർ;ハリドワール;赫尔德瓦尔; +city::1270370;Hardoi;Hardoi;Hardoī; +city::1270375;Harda Khas;Harda;Harda Khas;Harda Khās; +city::1270393;Hapur;Hapur;Hāpur; +city::1270396;Haora;Haora;Haura;Hawrah;Howrah;Hāora;ha'ora;haura;হাওড়া;ハウラー;ハーウラー; +city::1270407;Hanumangarh;Hanumangarh;Hanumāngarh;Sadulgarh; +city::1270417;Hansi;Hansi;Hānsi;Khansi;Ханси; +city::1270484;Halisahar;Halisahar;Halishahar;Hālīsahar; +city::1270498;Haldwani;Haldwani;Haldwani-cum-Kathgodam;Haldwāni;Khaldvani;ha er de wa ni-qiu mu-ka te ge da mu;haladuraani-tilakara-kathagodama;haladwani;haldvani;haldvani-va-kathagodama;Халдвани;Халдвані;ہلدوانی;हल्द्वानी;हल्द्वानी-व-काठगोदाम;হলদুৱানি-তিলকরা-কাঠগোদাম;ହାଲଦ୍ୱାନି;哈尔德瓦尼-丘姆-卡特戈达姆; +city::1270525;Hajipur;Hajipur;Hājīpur;Khadzhipur;Хаджипур; +city::1270568;Habra;Habra;Hābra; +city::1270583;Gwalior;GWL;Gvalior;Gwalior;Гвалиор; +city::1270642;Gurgaon;Gurgaon;Gurgáon;gu er gang;gudaganva;guleugaon;guraga'om;guragamo;guraganv;guraganva;guragavam;gurugaon;gwrgan;gwrgaw;jwrjawn;khur khean;kurkan;Гургаон;Ґурґаон;جورجاون;گرگاؤں;گورگان;گورگاو;گڑگاؤں;गुडगांव;गुरगांव;গুরগাঁও;ਗੁੜਗਾਵਾਂ;ଗୁଡ଼ଗାଓଁ;குர்கான்;ಗುರಗಾಂವ್;ഗുഡ്‌ഗാവ്;คุร์เคาน์;グルガーオン;古爾岡;구르가온; +city::1270668;Guntur;Guntur;Guntura;Guntūr;guntur;gunturu;Гунтура;గుంటూరు;గుంటూర్; +city::1270670;Guntakal Junction;Guntakai;Guntakal;Guntakal Junction;Guntakul;gantalaka;gong ta ka er;guntakala;guntakallu;kuntakkal;गंतलक;गुंटकल;গুন্তকাল;குண்டக்கல்;గుంతకల్లు;贡塔卡尔; +city::1270711;Guna;GUX;Guna; +city::1270752;Gulbarga;Gul'barga;Gulbarga;Gulburga;Kalaburgi;Kalburgi;Kulbarga;glbrgh;gu er bo jia;gulabarga;gulbaleuga;gulbarga;gurubaruga;kalaburagi;kalaburgi;klbrkt;kulparka;Гулбарга;Гульбарга;كلبركة;گلبرگه;گلبرگہ;गुलबर्ग;गुलबर्गा;गुल्बर्गा;গুলবার্গ;ગુલબર્ગ;குல்பர்கா;గుల్బర్గా;ಕಲಬುರಗಿ;ಕಾಲಬೂರ್ಗಿ;ഗുൽബർഗ;გულბარგა;グルバルガ;古尔伯加;굴바르가; +city::1270791;Gudur;Gudur;Gūdūr; +city::1270800;Gudiyatham;; +city::1270801;Gudivada;Gudivada;Gudivāda; +city::1270845;Goyerkata;; +city::1270896;Gosaba;Gosaba;Gosaha;Gosāba; +city::1270926;Gorakhpur;Gorakhpur;Gorakpura;Горакпура; +city::1270927;Gorakhpur;GOP;Gorakhpur;Gorakkhpur;Gorakpur;Gorakpura;Goruckpur;Korakhpur;ge lei ke bu er;golakeupuleu;gorakhapura;gorakhapuram;gorakupuru;gwrakpwr;kho rakh pu ra;korakpur;Горакпур;Горакпура;Горакхпур;گوراکپور;گورکھپور;गोरखपुर;गोरखपुरम्;गोरखपूर;গোরখপুর;ਗੋਰਖਪੁਰ;ગોરખપુર;கோரக்பூர்;ಗೋರಖಪುರ;ഗോരഖ്പൂർ;โคราฆปุระ;ゴーラクプル;戈勒克布爾;고라크푸르; +city::1270947;Gobichettipalayam;Gobichettipalaiyam;Gobichettipalayam;Gobichettipalyam;Gopichettipalaiyam;Gopichettipālaiyam;ge bi qie di pa la ye mu;gobicettipalayama;kopiccettippalaiyam;گوبیچیٹیپلیام;गोबिचेट्टिपलयम;গোবিচেত্তিপালায়াম;ଗୋବିଚେତ୍ତିପାଲୟମ;கோபிச்செட்டிப்பாளையம்;戈比切蒂帕拉耶姆; +city::1270965;Gopalganj;Gopalganj;Gopālganj; +city::1270990;Gondia;Gondia;Gondija;Gondiya;Gondiā;gonadiya;gondiya;gondiya jila;gondiya jille;gong di ye;Гондия;गोंदिया;गोंदिया जिला;गोण्डिया;গোনদিয়া;ಗೊಂದಿಯಾ ಜಿಲ್ಲೆ;贡迪耶; +city::1270994;Gondal;Gondal; +city::1270996;Gonda City;Gonda;Gonda City;Gonda Oudh;Gondā City;Гонда; +city::1271049;Gola Gokarannath;Gola;Gola Gokarannath;Gola Gokarannāth; +city::1271067;Gokak;Gokak;Gokāk;Гокак; +city::1271079;Gohana;Gohana;Gohāna; +city::1271083;Gohadi;Gohad;Gohadi; +city::1271107;Godhra;Godhr;Godhra;Godkhra;Godkhre;ge de la;godhara;godhra;Годхра;Годхре;گودھرا;गोधरा;গোধরা;ગોધરા;ଗୋଧ୍ରା;戈德拉; +city::1271151;Goalpara;Goalpara;Goālpāra; +city::1271175;Giridih;Giridih;Girīdīh;girid'iha;girid'iha jila;giridi;gryڈyہ;گریڈیہ;गिरीडीह;गिरीडीह जिला;গিরিডি; +city::1271306;Ghazipur;Ghazipur;Ghazīpur;Ghāzīpur; +city::1271308;Ghaziabad;Gaziabad;Ghaziabad;Ghazibad;Ghāziābād;Газиабад; +city::1271346;Ghatal;Ghatal;Ghātāl; +city::1271439;Gaya;GAY;Gaya; +city::1271476;Guwahati;GAU;Gauhati;Gauháti;Gauhāti;Gaukhati;Guvahati;Guvahatis;Guvakhati;Guwahati;gauhati;gu wa ha ti;gu'ahati;guhati;guraahati;guvahati;guvahatti;guwahati;guyahati;gwahty;gwaty;gwwaہaty;jwahaty;kuvahatti;kuvakatti;Гаухати;Гувахати;Ґувахаті;جواهاتي;گواتی;گواهتي;گوواہاتی;گوہاٹی;गुवहाटी;गुवाहाटी;গুয়াহাটি;গুৱাহাটি;গুৱাহাটী;ਗੁਹਾਟੀ;ગુવાહાટી;ଗୁଆହାଟୀ;குவகாத்தி;குவஹாத்தி;గౌహతి;ಗುವಾಹಾಟಿ;ഗുവഹാത്തി;グワハティ;グワーハーティー;古瓦哈提;구와하티; +city::1271644;Gangoh;Gangoh; +city::1271662;Gangawati;Gangavati;Gangawati;Gangāwati; +city::1271670;Gangarampur;Gangarampur;Gangārāmpur; +city::1271675;Gangapur;; +city::1271685;Ganganagar;Ganganagar;Gangānagar;Sri Ganganagar;Sri Gangānagar;Sriganga Najar; +city::1271715;Ghandinagar;Gandhinagar;Gandinagar;Ghandinagar;Gāndhīnagar;gandhinagara;gandhinagaram;gandinagaru;ganjinagaru;kantinakar;Гандинагар;गान्धीनगरम्;গান্ধিনগর;গান্ধীনগর;ગાંધીનગર;காந்திநகர்;ガンジナガル;ガンディーナガル; +city::1271717;Gandhidham;Gandhidham;Gandi Dham;Gāndhīdhām; +city::1271780;Gajraula;Gajraula; +city::1271819;Gadwal;Gadwal;Gadwāl; +city::1271850;Gadag;Gadag; +city::1271883;Ferozepore;Ferozepore;Ferozepur;Feruzpur;Firozpur;Fērūzpur;Fīrozpur; +city::1271885;Firozabad;Firozabad;Fīrozābād; +city::1271891;Fazilka;Fazika;Fazilka;Fāzilka; +city::1271910;Fatehpur;; +city::1271912;Fatehpur;Fatehpur;Fatehpur City;Fatekhpur;Фатехпур; +city::1271934;Fatehabad;Fatahabad;Fatehabad;Fatehābād; +city::1271942;Farrukhabad;Farrukhabad;Farrukhābād; +city::1271947;Faridpur;Bharatpur;Faridpur;Farīdpur; +city::1271949;Faridkot;Faridkot;Farīdkot; +city::1271951;Faridabad;Faridabad;Faridabadas;Farīdābād;QNF;faridabado;pharidabada;Фаридабад;फरीदाबाद;ファリダバード;ファリーダーバード; +city::1271976;Fyzabad;Faizabad;Faizābād;Fajzabad;Fyzabad;Fyzābād;Файзабад; +city::1271987;Etawah;Etawah;Etāwah; +city::1272013;Erode;Brod;Erode;Irodu;Periyar;Periyār;ai luo de;elodeu;eroda;erode;iread;iroda;irodo~u;irotu;Брод;Ироду;اروڑ;इरोड;ईरोड;एरोड;এরোডে;ઇરોડ;ଇରୋଡ;ஈரோடு;ഈറോഡ്;イーロードゥ;埃罗德;에로드; +city::1272045;Emmiganur;Emmiganur;Emmiganuru;Emmiganūr;Emmiganūru;Yemmiganur; +city::1272051;Ellore;Ellore;Eluru;Elūru;West Godavari;West Godāvari; +city::1272175;Durgapur;Durgapur;RDP;do~urugapuru;drgapwr;du er jia bu er;duleugapuleu;durgapura;duർgapuർ pascima bangaൾ;dwrgapwr;turkapur;turkapur merku vankalam;Дургапур;درگاپور;دورگاپور;दुर्गापुर;दुर्गापूर;দুর্গাপুর;துர்காபூர்;துர்காபூர் மேற்கு வங்காளம்;ദുർഗാപൂർ;ദുർഗാപൂർ പശ്ചിമ ബംഗാൾ;ドゥルガプル;杜爾加布爾;두르가푸르; +city::1272181;Durg;Drug;Durg;Durga;drg;du er ge;durga;dwrg;dwrj;Дург;درگ;دورج;دورگ;ڈرگ;दुर्ग;দুর্গ;ଦୁର୍ଗ;杜爾格; +city::1272225;Dumraon;Dumraon; +city::1272243;Dam Dam;Dam Dam;Dum Dum; +city::1272423;Dombivli;Dombivali; +city::1272473;Dod Ballapur;Dod Ballapur;Dod Ballāpur; +city::1272513;Disa;Deesa;Dis;Disa;Dīsa;Дис; +city::1272525;Diphu;Diphn;Diphu; +city::1272543;Dindigul;Dhundgal;Dindigul;Dindukkal;Dundigal;dindigul;dindigula;dindukkala;ding di gu er;dyndygwl;tindo~ukkaru;tindo~ukkaru xian;tintukkal;Диндигул;Диндуккал;دیندیگول;दिंडुक्कल;दिण्डुक्कल;दिन्दिगुल;দিন্দিগুল;திண்டுக்கல்;ദിണ്ടിഗൽ;ティンドゥッカル;ティンドゥッカル県;丁迪古爾;딘디굴; +city::1272552;Dimapur;DMU;Dampur;Dimapur;Dimāpur;Димапур; +city::1272606;Diglur;Deglur;Diglur;Dīglūr; +city::1272648;Dibrugarh;DIB;Dibrugarh;Dibrugarkh;Lakhinpur;di bu lu jia er;dibraugara;dibrgara;dibrugadh;dibrugadha;dibrugara;dibrugara-nagaram;dibrugarha;dybrwjarh;tiprukar;Дибругарх;ديبروجاره;ڈبروگڑھ;डिब्रुगर-नगरम्;डिब्रूगढ़;दिब्रुगढ;ডিব্রুগড়;ডিব্ৰুগড়;દિબ્રુગઢ;ଦିବୃଗଡ଼;திப்ருகார்;ദിബ്രുഗഢ്;迪布鲁加尔; +city::1272670;Dhuri;Dhuri;Dhūri; +city::1272689;Dhulian;Dhulian;Dhuliān; +city::1272691;Dhulia;Dhule;Dhulia;Dhūlia;Dkhule;Dule;dhule;dwlh;tu lai;Дуле;Дхуле;دوله;دھول;धुले;धुळे;ধুলে;圖萊; +city::1272694;Dhuburi;Dhubri;Dhuburi;Dubri;dhubari;धुबरी; +city::1272701;Dhrangadhra;Dhrangadhra;Dhrangadra;Dhrāngadhra;Dhrāngadra; +city::1272720;Dhoraji;Dhorail;Dhoraji;Dhorāji; +city::1272733;Dholka;Dholka; +city::1272780;Dhenkanal;Dhenkanal;Dhenkānāl; +city::1272805;Dhaulpur;Dhaulpur;Dholpur; +city::1272842;Dharmavaram;Dharmavaram; +city::1272847;Dharmapuri;Dharmapuri;Dkharmapuri;da er ma pu li;darumapuri;dharmapuri;tarmapuri;Дхармапури;धर्मपुरी;ধর্মাপুরি;தர்மபுரி;ダルマプリ;达尔马普里; +city::1272873;Dharapuram;Dharapuram;Dhārāpuram;da la pu la mu;dharapurama;tarapuram;धारापुरम;ধারাপুরম;தாராபுரம்;达拉普拉姆; +city::1272892;Dhar;Dhar;Dhār;Dkhar;Дхар; +city::1272979;Dhanbad;DBD;Dhanabad;Dhanbad;Dhanbaid;Dhanbād;Dkhanbad;danbado;dhanabada;Дханбад;धनबाद;ধানাবাদ;ダンバード; +city::1272997;Dhamtari;Dhamtari; +city::1273066;Dewas;Devas;Dewas;Dewās;de wa si;de'oyasa;deraasa;devasa;dewasu;dwas;dywas;Девас;دواس;دیواس;देवस;देवास;দেওয়াস;দেৱাস;દેવાસ;デーワース;德瓦斯; +city::1273193;Deoria;Deoria;Deorija;de ao li ya;de'uriya;devariya;dywrya;dywrya atrprdysh;Деория;دیوریا;دیوریا، اترپردیش;देवरिया;দেউরিয়া;德奥里亚; +city::1273232;Deolali;Deolali;Deolāli; +city::1273265;Deoband;Deoband;Deobande;Деобанде; +city::1273294;Delhi;DEL;Daehli;Dehli;Dehlī;Delchi;Delhi;Delhio;Delhí;Delhî;Deli;Delis;Delkhi;Dellium;Delí;Dilhi;Dilli;Dillí;Dillī;Dähli;Déhli;Faritani Delhi;Gorad Dehli;New Delhi;Old Delhi;Sahdzahanabad;Stare Deli;de li;dehali;deli;delli;deri;dhilli;dhly;dhly qdym;dil'hi;dili;dilli;dlhy;dly;dlھy;dylhy;na'i dilli;prany dہly;tilli;Šáhdžahanabád;Δελχί;Горад Дэлі;Дели;Делхи;Делі;Деҳли;Старе Делі;Դելի;דלהי;דעלהי;دلهي;دلھی;دلی;دهلي;دهلی قدیم;ديلهى;دہلی;دێھلی;پرانی دہلی;ډېلي;ދިއްލީ;दिल्ली;देहली;नई दिल्ली;দিল্লি;দিল্লী;ਦਿੱਲੀ;દિલ્હી;ଦିଲ୍ଲୀ;தில்லி;ఢిల్లీ;ದೆಹಲಿ;ഡെൽഹി;เดลี;დელი;デリー;德里;델리; +city::1273309;Dehri;Dehm;Dehri; +city::1273313;Dehra Dun;Dehra;Dehra Dun;Dehra Dūn;Dehradun;Dekhradune;Дехрадуне; +city::1273369;Dausa;Daosa;Dausa;da'usa;dao sa;dausa;Дауса;دوسہ;दौसा;দাউসা;દૌસા;道萨; +city::1273403;Datia;Datia; +city::1273467;Darjiling;Dardzhiling;Dardzilingas;Dardžilingas;Dargiling;Darjeeling;Darjiling;Darĝiling;Dārjiling;Rdorje gling;da ji ling;daleujilling;dar jylng;darjilim;drgylyng;Дарджилинг;דרגילינג;دار جیلنگ;দার্জিলিং;大吉嶺;다르질링; +city::1273491;Darbhanga;Darbanga;Darbhanga;Darbkhanga;Gorad Darbkhanga;da er bang ge a;darabhaga;darabhanga;darbanga;darbhanga;darbhanja;drbnga;Горад Дарбханга;Дарбанга;Дарбханга;داربهانجا;دربنگا;دربھنگا;دربھنگہ;दरभंगा;दरभङ्गा;দারভাঙ্গা;ਦਰਭੰਗਾ;ଦାରଭଙ୍ଗା;దర్భాంగా;ದರ್ಬಂಗ;达尔邦格阿; +city::1273574;Dandeli;Dandeli; +city::1273581;Dinapore;Danapur;Dinapore;Dānāpur; +city::1273587;Damoh;Damoh;da mo;dameah;damoha;दमोह;दामोह;দামোহ;દામોહ;ദമോഹ്;达莫; +city::1273626;Daltonganj;Daltenganj;Daltongandzh;Daltonganj;Daltongganj;Dāltenganj;Medininagar;Medninagar;da er tong ge a en jie;daltanaganja;daltanaganjanagaram;Далтонгандж;डाल्टनगंज;डाल्टनगञ्ज;डाल्टनगञ्जनगरम्;দাল্টনগঞ্জ;ଡାଲଟନ୍‌ଗଞ୍ଜ;达尔通格阿恩杰; +city::1273687;Dohad;Dahod;Dohad;Dāhod; +city::1273724;Dadri;Dadri;Dādri; +city::1273745;Dabwali;; +city::1273751;Dabra;Dabra; +city::1273766;Dabhoi;Dabhoi; +city::1273780;Cuttack;Katak;Kataka;Kattak;Kattake;katak;kataka;katakam;katakku;katk;kattak;ke ta ke;kutakeu;kuttaka;Катак;Каттак;Каттаке;کاتک;کوٹاک;کٹک;کټاک;कटक;कटकम्;কটক;কুত্তক;ਕਟਕ;કટક;କଟକ;கட்டக்;కటక్;കട്ടക്;カタック;克塔克;쿠타크; +city::1273800;Cuddapah;CDP;Cuddapah;Kadapa;Kurpah;kadapa;katappa;கடப்பா;కడప; +city::1273802;Cuddalore;Cuddalore;Gondelour;Gudalur;Kudalur;Kuddalor;Kuddalore;Kūdalūr;gu da luo er;kadalura;kadaluru;kadaruru;kaddalora;katalur;kudalloleu;kuddalore;Куддалор;Куддалоре;कडलूर;कडलूरु;कड्डालोर;কুদ্দালোরে;કડલૂર;கடலூர்;കടലൂർ;カダルール;古达罗尔;쿠달로르; +city::1273865;Coimbatore;CJB;Coimbatore;Koimbator;Koimbatore;Koimbatur;Kojambuttur;Kojambuttúr;Kovai;Koyambattur;Koyambattūr;Koyamuttur;Koyamuttūr;ge yin bai tuo;keayampattuർ;ko'ibatura;ko'imabatore;ko'imbatora;ko'imbatura;koimbatoleu;kovai;koyambattura;koyambatturu;koyambatura;koyampattur;koyamputtur;koyanbutto~uru;kwymbatwr;kwymbtwr;Коимбатор;Коимбатур;Коїмбатор;كويمباتور;کوئمباتور;کويمبتور;کویمباتور;کویمبٹور;कोइंबतूर;कोयंबतूर;कोयम्बत्तूर;कोयम्बत्तूरु;কোইমবাতোরে;ਕੋਇੰਬਟੂਰ;કોઇમ્બતુર;କୋଇମ୍ବାଟୋର;கோயம்பத்தூர்;கோயம்புத்தூர்;கோவை;కోయంబత్తూరు;ಕೊಯಂಬತ್ತೂರು;കോയമ്പത്തൂർ;ကိုအင်ဘတောမြို့;კოიამპუტური;コーヤンブットゥール;哥印拜陀;코임바토르; +city::1273874;Cochin;British Cochin;COK;Cochim;Cochin;Cochín;Fort Cochin;Kochi;Kochin;Koczin;Kuchi Bandar;Malabar;ke zhi;keacci;kocci;kochi;koci;qwzy;Кочин;קוצי;कोच्चि;কোচি;கொச்சி;കൊച്ചി;コーチ;柯枝; +city::1273892;Churu;Churu;Chūru; +city::1273992;Chopda;Chopda; +city::1274040;Chittaurgarh;Chitor;Chitorgarh;Chittaurgarh;Chittor;Chittorgarh; +city::1274056;Chitradurga;Chitaldroog;Chitaldrug;Chitaldurg;Chitradurg;Chitradurga;Chitrakaldurga;Chitteldrug;citradurga;citradurga nagara;citradurgam;citraturka;Читрадурга;चित्रदुर्ग;चित्रदुर्गम्;চিত্রদুর্গ;சித்ரதுர்கா;ಚಿತ್ರದುರ್ಗ ನಗರ; +city::1274106;Chirala;Chirala;Chīrāla; +city::1274119;Chiplun;Chiplun;Chiplūn; +city::1274129;Chintamani;Chintamani;Chintāmani;Чинтамани; +city::1274213;Chilakalurupet;; +city::1274220;Chikmagalur;Chickmagalur;Chikkamagaluru;Chikkamagalūru;Chikmagalur;Chikmagalūr;Chikmanglur;Chikmugalur;Chikmugalūr;cikkamagaluru;ಚಿಕ್ಕಮಗಳೂರು; +city::1274237;Chikhli;Chikhli; +city::1274243;Chik Ballapur;Chik Ballapur;Chik Ballāpur; +city::1274256;Chidambaram;Chidambaram;Chitdambaram;Cidambaram;cidambaram;cidambarama;citamparam;ji deng bo lei mu;Ćidambaram;Чидамбарам;चिदाम्बरम;চিদাম্বরম;சிதம்பரம்;చిదంబరం;ചിദംബരം;吉登伯勒姆; +city::1274304;Chhindwara;Chhindwara;Chhindwāra;Chindwara;Sindwara; +city::1274315;Chhibramau;Chhibramau;Chhibrāmau; +city::1274337;Chhatarpur;Chantarpur;Chhatarpur;Chkatarpur; +city::1274353;Chapra;Chapra;Chhapra;Chkhapra;Chupra;Chāpra;capara;capra;chapara;chapra;qia pu la;Чапра;Чхапра;چاپرا;चप्रा;छपरा;छप्रा;চাপরা;恰普拉; +city::1274430;Chingleput;Chengalpat;Chengalpattu;Chingleput;cengalapattu;cenkalpattu;qin ge a er pa tu;चेंगलपट्टु;चेंगलपट्टू;চেঙ্গালপাত্তু;செங்கல்பட்டு;琴格阿尔帕图; +city::1274553;Chas;Chas;Chās;Час; +city::1274571;Charkhi Dadri;Charkhi Dadri;Charkhi Dādri;Charki Dadrai;Charki Dadri;Dadri;Dādri; +city::1274641;Channapatna;Channapatan;Channapatna; +city::1274664;Changanacheri;Changanacheri;Changanacherry;Changanācheri; +city::1274693;Chanda;Candrapur;Chanda;Chandrapur;Chānda;candrapur;candrapura;candrapura jille;candrapuram;chandrapwr;chndrapwr;chndrpwr;qian de la pu er;Ćandrapur;Чандрапур;چاندراپور;چندراپور;چندرپور;चंद्रपूर;चन्द्रपुर;चन्द्रपुरम्;চন্দ্রপুর;ચંદ્રપૂર;చంద్రపూర్;ಚಂದ್ರಪುರ ಜಿಲ್ಲೆ;钱德拉普尔; +city::1274714;Chandpur;Bijnor;Chandpur;Chāndpur; +city::1274746;Chandigarh;Candigarchas;Candigarh;Chandigar;Chandigarh;Chandigarkh;Chandīgarh;Czandigarh;IXC;cadigarha;candhigad;candigadh;candigadha;candigara;candigarha;cantikar;chandigadh;chandigarhi;chandigaru;chang di jia er;Čandigarchas;Čandígarh;Чандигар;Чандигарх;צ'אנדיגאר;चंडीगढ़;চন্ডিগড়;চন্ডীগড়;ਚੰਡੀਗੜ੍ਹ;ચંડીગઢ;சண்டிகர்;చండీగఢ్;ఛండీగఢ్;ചണ്ഢീഗഡ്;ჩანდიგარჰი;チャンディーガル;昌迪加尔; +city::1274767;Chanduasi;Chandausi;Chanduasi; +city::1274784;Chandannagar;Candanagaro;Chandan Nagar;Chandannagar;Chandernagor;Chandernagore;candananagara;cantannakar;chandanagaleu;chandanagari;chndngr;jin de ne ge er;shanderunagoru;Ĉandanagaro;Чанданнагар;Чанданнаґар;چندنگر;चन्दननगर;চন্দননগর;சந்தன்நகர்;ჩანდანაგარი;シャンデルナゴル;金德訥格爾;찬다나가르; +city::1274821;Chamrajnagar;; +city::1274862;Challakere;Challakere; +city::1274868;Chalisgaon;Chalisgaon;Chālisgaon; +city::1274928;Chaibasa;Chaibasa;Chāībāsa; +city::1274987;Kannur;CNN;Cananor;Cannanore;Kananorskom;Kannanur;Kannur;Kanoor;kan'nuru;kannanuru;kannara;kannur;kannura;kannuർ;kanura;kanwr;knwr;Кананорском;Каннур;کانور;کنور;कण्णुर;कण्णूर;कन्नूर;কন্নুর;ਕਨੂਰ;કણ્ણૂર;କାନ୍ନର;கண்ணூர்;ಕಣ್ಣಾನೂರು;ಕಣ್ಣೂರ್;കണ്ണൂർ;カンヌール; +city::1275004;Kolkata;CCU;Calcuta;Calcutta;Calcutá;Calcúta;Caligardamana;Kaelkuettae;Kal'kuta;Kal'kutta;Kal'kuttae;Kalikata;Kalikātā;Kalkata;Kalkota;Kalkouta;Kalkueta;Kalkuta;Kalkutta;Kalkútta;Kalküta;Kolkat;Kolkata;Kolkate;Kolkato;Kälküttä;Kəlkətə;Sealdah;jia er ge da;jia li ji da;kalakata;kalakatta;kalikata;kalkata;keaൽkkatta;klkta;klkth;klkwth;ko l ka ta;kolakata;kolkata;kolkatta;kol‌kata;korukata;kwlkata;kʼolkʼatʼa;qwlqth;Καλκούτα;Калькута;Калькуттæ;Калькутта;Колката;Колкате;Կալկաթա;כלכותה;קאלקאטא;קולקטה;كلكتا;كولكاتا;کلکته;کلکتہ;کولکاتہ;کَلٕکَتا;کەلکەتە;कलकत्ता;कोलकाता;কলকাতা;ਕੋਲਕਾਤਾ;કોલકાતા;କଲିକତା;கொல்கத்தா;కోల్‌కాతా;ಕೊಲ್ಕತ್ತ;കൊൽക്കത്ത;โกลกาตา;ཀ་ལི་ཀུ་ཏ;ကာလကတ္တားမြို့;კოლკატა;ኮልካታ;コルカタ;加尔各答;架利吉打;콜카타; +city::1275019;Buxar;Buxar; +city::1275068;Burhanpur;Burhanpur;Burhānpur; +city::1275103;Bundi;Bundi;Bundi City;Būndi;Бунди; +city::1275117;Buldana;; +city::1275120;Bulandshahr;Buelendsehr;Bulandshahr;Bulandshakhr;Bulandshakhre;Bulandshar;Bülendşehr;blndshhr;bu lan de si ha he er;bulandasahara;pulantacakar;Буландшар;Буландшахр;Буландшахре;بلند شہر;بلندشهر;बुलन्दशहर;बुलन्दसहर;বুলান্দশহর;புலந்தசகர்;布兰德斯哈赫尔; +city::1275163;Budaun;Badajun;Badaun;Budaun;badanyu;badauna;badayum;bu dao en;budauna;patavun;Бадаюн;بدایوں;बदांयू;बदायूँ;बुडौन;বুদৌন;બદૌન;பதாவுன்;布道恩; +city::1275194;Brajarajnagar;Brajarajnagar;Brajrajnagar;Brājarājnagar; +city::1275198;Brahmapur;Berhampore;Berhampur;Berkhampur;Brahmapur;Brahmapuramu;Brahmapuras;Bramapur;Ganjam;barampuram;brahmapura;brahmapuram;brhmapwr;bu la he ma pu er;Берхампур;Брамапур;برهماپور;برہماپور، اڑیسہ;برہمپور;ब्रह्मपुर;ব্রহ্মপুর;ব্রহ্মাপুর;ବ୍ରହ୍ମପୁର;బరంపురం;బ్రహ్మపురం;布拉赫马普尔; +city::1275218;Botad;Botad;Botād; +city::1275230;Borsad;Borsad; +city::1275248;Borivli;Borivali;Borivli; +city::1275321;Bongaigaon;Bongaigaon; +city::1275339;Mumbai;Asumumbay;BOM;Bombai;Bombaim;Bombaj;Bombay;Bombaya;Bombej;Bombejus;Bombėjus;Bumbaj;Bůmbaj;Dakbayan sa Bombay;Gorad Mumbai;Lungsod ng Mumbai;Moembaai;Mumbai;Mumbai - मुम़बई;Mumbaj;Mumbaja;Mumbajo;Mumbajus;Mumbay;Mumbaî;Numbai;Vomvai;bamba'i;bmbyy;gretara mumba'i;meng mai;mmbay;mmbyy;mu0bai;muba'i;mum bi;mumba'i;mumbai;mumpai;munbai;mwmbay;mwmbyy;mymbais;pullapa mumba'i;Βομβάη;Бомбай;Бомбей;Горад Мумбаі;Мумбаи;Мумбай;Мумбаі;Мумбаї;Мумбај;Մումբայ;מומבאי;מומביי;بمبئی;بَمبَے;ممبئي;ممبئی;ممبای;مومباى;مومباي;مومبای;މުންބާއީ;ग्रेटर मुम्बई;बम्बई;मुंबई;मुम्बई;পুল্লাপ মুম্বাই;মুম্বই;মুম্বাই;ਮੁੰਬਈ;મુંબઈ;ମୁମ୍ବାଇ;மும்பை;ముంబై;ಮುಂಬೈ;ಮು೦ಬೈ;മുംബൈ;มุมไบ;འབོམ་སྦེ;မွမ်ဘိုင်းမြို့;მუმბაი;ムンバイ;孟买;뭄바이; +city::1275346;Bolpur;Bolpur;bo er pu er;bolapura;bolapura pascima bangala;बोलपुर;बोलपुर पश्चिम बंगाल;বোলপুর;博尔普尔; +city::1275362;Bokaro;Bokaro;Bokaro Steel City;Bokāro;Бокаро; +city::1275388;Bodinayakkanur;Bodinayakanur;Bodinayakkanur;Bodināyakkanūr; +city::1275391;Bodhan;Bodhan;bodhan;బోధన్; +city::1275406;Bobbili;Bobbili;babbili;bo bu bi li;bobbili;bobbiri;bwbly;poppili;بوبلی;बोब्बिलि;বব্বিলি;ବୋବ୍ବିଲି;பொப்பிலி;బొబ్బిలి;ボッビリ;博布比利; +city::1275435;Biswan;Biswan;Biswān; +city::1275462;Bishnupur;Bishnupur;Vishnupur;Бишнупур; +city::1275481;Bisalpur;Bisalpur;Bīsalpur; +city::1275582;Etawa;Bina-Etawa;Bīna-Etāwa;Etawa;Etawah;Etāwa; +city::1275610;Bilimora;Bilimor;Bilimora;Mora; +city::1275637;Bilaspur;Bilaspur;Bilaspura;Bilāspur;PAB;Биласпура; +city::1275665;Bikaner;BKB;Bikaner;Bîkâner;Bīkaner;Bīkāner;bikanera;Биканер;बीकानेर; +city::1275679;Bijnor;Bidzhnor;Bijnor;bi jie nuo er;bijanaura;bijanora;bijnora;bjnwr;pijnor;Биджнор;بجنور;बिजनोर;बिजनौर;बिज्नोर;বিজনোর;બિજનૌર;பிஜ்னோர்;比杰诺尔; +city::1275701;Bijapur;Bidzapur;Bidzapuras;Bidzhapur;Bidzsapur;Bidźapur;Bidžapuras;Bijapur;Bijāpur;Bídzsápur;Bîjâpur;Districte de Bijapur;Vijapura;Vijayapur;Vijayapura;Visiapur;bi gu bu er;bi jia bu er;bijapuleu;bijapura;bijapuram;bijapuru;byjapwr;pijappur;vijapura;Биджапур;Биџапур;بیجاپور;बिजापुरम्;बीजापुर;विजापूर;ਬੀਜਾਪੁਰ;பிஜாப்பூர்;ಬಿಜಾಪುರ;ബിജാപ്പൂർ;ビジャープル;比贾布尔;비자푸르; +city::1275716;Bihar Sharif;Behar;Bihar;Bihar Sharif;Bihār;Bihār Sharīf; +city::1275738;Bidar;Bidar;Bīdar;Бидар; +city::1275778;Bhusaval;Bhusaval;Bhusawal;Bhusāval;Bhusāwal; +city::1275812;Bhuj;BHJ;Bhooj;Bhuj;Bkhudzh;bhoja;bhuja;bwj;puj;Бхудж;بوج;بھوج;ڀڄ;भुज;भूज;ভোজ;ભુજ;ଭୁଜ;புஜ்; +city::1275817;Bhubaneshwar;BBI;BBSR;Bhubaneshwar;Bhubaneswar;Bhubaneśwar;Bkhubaneshvar;Temple City of India;bhubanesbara;bhuvanesvara;bubaneshuwaru;puvanecuvaram;Бхубанешвар;בובנשוואר;भुवनेश्वर;ভুবনেশ্বর;புவனேசுவரம்;ブバネーシュワル; +city::1275841;Bhopal;BHO;Bhojpal;Bhopal;Bhopala;Bhopalas;Bhopalo;Bhopál;Bhopāl;Bhopāla;Bhópál;Bkhopal;Bopal;Bópal;Gorad Bkhapal;bhopal;bhopala;bo pa er;bopal;boparu;bwbal;bwpal;popal;Μποπάλ;Бопал;Бхопал;Горад Бхапал;בופאל;بوبال;بوپال;بھوپال;بہوپال;भोपाल;भोपाळ;ভোপাল;ਭੋਪਾਲ;ભોપાલ;ଭୋପାଳ;போபால்;భోపాల్;ಭೊಪಾಲ್;ഭോപ്പാൽ;ბჰოპალი;ボパール;ボーパール;博帕尔;보팔; +city::1275848;Bhongir;Bhongir;Bhongīr; +city::1275899;Bhiwani;Bhiwani;Bhiwāni; +city::1275901;Bhiwandi;Bhivandi;Bhivándi;Bhiwandi;Bhiwndi;Bivandi;Bkhivandi;bhi'oyadi;bhivandi;bhiwandi;biwandi;bywandy;pi wen di;Биванди;Бхиванди;بيوانډي;بھیواندی;بھیونڈی;بیواندی;भिवंडी;भिवन्दी;ভিওয়াদি;ભિવંડી;ଭିୱାନ୍ଦି;ビワンディー;皮文迪;비완디; +city::1275926;Bhind;Bhind; +city::1275947;Bhimavaram;Bhimavaram;Bhīmavaram; +city::1275960;Bhilwara;Bhilwara;Bhīlwāra; +city::1275971;Bhilai;Bhilai;Bhilai Nagar;Bhilaj Nagar;Bhilajus;Bhilāī;Bilaj;Bkhilai;balay;bhila'i;bhila'i nagara;bhilai nagara;bi lai;billai;birai;pilay;Билај;Бхилаи;بالای;بھلائی;بھیلائ;भिलाई;भिलै नगर;ভিলাই নগর;ଭିଲାଇ;பிலாய்;ビラーイー;比萊;빌라이; +city::1276014;Bhayandar;Bhayandar;Bhayndar;Bhayundar; +city::1276023;Bhawanipatna;Bhawanipatna;Bhawānipatna; +city::1276032;Bhavnagar;BHU;Baunagar;Bharnagar;Bhaunagar;Bhavnagar;Bhunagar;Bhāvnagar;Bkhavnagarom;ba fu na jia er;babeunagaleu;bavunagaru;bawngr;bhavanagara;bhav‌nagar;bھawngr;pavanakar;Бхавнагаром;باونگر;بھاونگر;भावनगर;ભાવનગર;பவநகர்;భావ్‌నగర్;バーヴナガル;巴夫那加尔;바브나가르; +city::1276058;Bhatpara;Bhatpara;Bhātpāra; +city::1276070;Bathinda;BUP;Bathinda;Bkhatinda;ba ting da;bathida;bathinda;batynda;bhatinda;pattinta;Бхатинда;باتیندا;बठिंडा;बठिण्डा;বাথিন্দা;ভাটিণ্ডা;ਬਠਿੰਡਾ;ଭଟିଣ୍ଡା;பட்டிண்டா;ബഠിംഡാ;巴廷達; +city::1276084;Bhatapara;Bhatapara;Bhātāpāra; +city::1276100;Bharuch;Baroach;Bharoch;Bharuch;Bharūch;Broach; +city::1276128;Bharatpur;Batarpur;Bharatpur;Bkharatpur;baratopuru;bharatapura;bharatapuram;po lei de bu er;Батарпур;Бхаратпур;بھارتپور;भरतपुर;भरतपुरम्;भरतपूर;ভরতপুর;ਭਰਤਪੁਰ;ભરતપુર;ଭରତପୁର;ഭരത്പൂർ;バラトプル;珀勒德布爾; +city::1276191;Bhandara;Bhandara;Bhandāra;Bkhandara;Бхандара; +city::1276300;Bhagalpur;Bhagalpur;Bhāgalpur; +city::1276320;Bhadreswar;Bhadreswar; +city::1276321;Bhadravati;Bhadravati;Bhadrāvati; +city::1276325;Bhadrakh;Bhadrak;Bhadrakh; +city::1276335;Bhadohi;Bhadohi;Bhadohī;XXB;ba duo xi;bhadohi;bhanadohi;بھدوہی;भदोही;ভানদোহি;巴多希; +city::1276378;Beypore;Beipur;Beppur;Beypore;Beypur;bei yi bo lei;bepura;beyapare;peppur;बेपुर;বেয়পারে;பேப்பூர்;ബേപ്പൂർ;贝伊波雷; +city::1276389;Betul;Badnur;Badnúr;Betul;Betūl; +city::1276393;Bettiah;Bettiah;Bettiakh;bei te di ya;betiya;betti'ah;bettiya;Беттиах;بیتیاہ;बेतिया;बेत्तिया;বেত্তিয়া;ବେଟ୍ଟିଆଃ;贝特蒂亚; +city::1276509;Bellary;BEP;Ballari;Ballāri;Belari;Belaris;Bellari;Bellary;Bellāri;ballari;bei la li;bellari;blary;bllary;bylary;pellari;Белари;Беллари;بلاری;بللاری;بیلاری;बळ्ळारी;बेल्लारी;বেল্লারী;ବଲ୍ଲାରୀ;பெல்லாரி;బళ్లారి;ಬಳ್ಳಾರಿ;贝拉里; +city::1276533;Belgaum;Belagaavi;Belagavi;Belagoavi;Belagāvi;Belgaavi;Belgaon;Belgaum;Belgaumas;Gorad Belgaan;IXG;bei er gao mu;belaga'uma;belagam;belagamva;belaganva;belagavi;belgam;belgaum;berugaumu;blgam;blgaywm;bylgawm;bylgwm;pelkam;Белгаум;Горад Белгаан;بلگام;بلگایوم;بيلگوم;بیلگاؤم;बेलगाँव;बेलगांव;बेळगांव;बेळगावी;বেলগাউম;ବେଲଗାଁ;பெல்காம்;బెల్గాం;ಬೆಳಗಾವಿ;ബെൽഗാം;ベルガウム;贝尔高姆;벨가움; +city::1276574;Bela;Bela;Bela Partabgarh;Partapgarh;Pratapgarh;Бела; +city::1276609;Begusarai;Begusarai;Begusaraj;begusara'i;begusaraya;bei gu sa lai;bjsaray;pekucaray;Бегусарай;Бегусарај;بجساراي;بیگوسرائے;बेगुसराई;बेगुसराय;बेगूसराय;বেগুসারাই;ବେଗୁସରାଇ;பேகூசராய்;贝古萨赖; +city::1276634;Beawar;Beawar;Beāwar; +city::1276720;Batala;Batala;Batāla;Butala; +city::1276736;Basti;Basti;Bastī;Басти; +city::1276752;Basoda;Basoda;Bāsoda; +city::1276757;Basmat;Basmat;Basmath; +city::1276783;Basavakalyan;Basavakalyan;Basavakalyān;Kalyani;Kalyāni; +city::1276829;Baruni;Barani;Baruni;Bāruni;Баруни; +city::1276856;Barsi;Barshi;Barsi;Bārsi; +city::1276895;Barnala;Anahadgarh;Anāhadgarh;Barnala;Barnāla;Барнала; +city::1276901;Barmer;Barmer;Bārmer; +city::1276948;Bari;Bari;Bāri; +city::1276988;Bargarh;Baragarh;Bargarh;Bargarkh;ba er jia er;baragadha;baragara;bargadh;parkaht;Баргарх;برگرہ;बरगढ;বারগড়;બરગઢ;ବରଗଡ଼;பர்கஃட்;బర్గఢ్;巴尔加尔; +city::1277013;Bareilly;BEK;Bareilly;Barejli;Bareli;Barelī;ba lei li;baleilli;baraili;bareli;bareri;bereli;bryly;pareli;Барейли;Барели;Барејли;بريلي;بریلی;बरेली;बरैली;বেরেলি;બરેલી;பரேலி;ಬರೇಲಿ;ബറേലി;バレーリー;巴雷利;바레일리; +city::1277022;Bardoli;Bardoli;Bardoti;Bārdoli;Бардоли; +city::1277029;Barddhaman;Barddhaman;Barddhamān;Bardhaman;Bardhamān;Bordhoman;Burdwan;Burdwān;bardhamana;বর্ধমান; +city::1277044;Baraut;Baraut; +city::1277065;Barasat;Barasat;Bārāsat; +city::1277066;Barasat;Barasat;Bārāsat; +city::1277084;Baran;Baran;Bārān;Баран; +city::1277085;Baramula;; +city::1277091;Baramati;Baramati;Bārāmati;Барамати; +city::1277100;Barakpur;Barakpur;Barrackpore;Bārākpur;Chanak; +city::1277183;Bapatla;Bapatla;Bāpatla; +city::1277214;Banswara;Banswara;Bānswāra; +city::1277240;Bansbaria;Bansbaria;Bansberia;Bānsbāria; +city::1277264;Bankura;Bankura;Bānkura;Банкура; +city::1277322;Bangaon;Bangaon; +city::1277324;Bangaon;Bangaon;Bongaon;banagam;banagamo;banagavam;bang ge a ao en;Бангаон;बानगावं;বনগাঁ;বনগাঁও;邦格阿奥恩; +city::1277333;Bengaluru;BLR;Ban'nkalor;Bangalor;Bangalora;Bangalore;Bangalore - bengaluru;Bangalore - ಬೆಂಗಳೂರು;Bangalore City;Bangalur;Bangaluri;Bangalúr;Bengalour;Bengaluras;Bengaluro;Bengaluru;Bengalurus;Bengalúru;Bengalūras;Bengalūru;Gorad Bangalor;baeng-geollo;bagalaura;ban jia luo er;bang kha l xr;bang-galloleu;bangalaura;bangalora;bangalura;bangaroru;beng-gallulu;bengalora;bengaluru;benguluru;bnghalwr;bnglwr;bynglwr;penkalur;Μπανγκαλόρ;Бангалор;Бенгалуру;Бенґалуру;Горад Бангалор;בנגלור;بنغالور;بنگلور;بینگلور;बंगलौर;बंगळूर;बेङ्गलूरु;बेङ्गलोर;बेङ्गळूरु;বাঙ্গালোর;বেঙ্গালুরু;ਬੰਗਲੌਰ;બેંગલોર;ବେଙ୍ଗାଳୁରୁ;பெங்களூர்;బెంగుళూరు;ಬೆಂಗಳೂರು;ബെംഗളൂരു;බැංගලෝර්;บังคาลอร์;ဘန်ဂလိုမြို့;ბენგალურუ;バンガロール;班加罗尔;班加羅爾;방갈로르;뱅걸로;벵갈루루; +city::1277397;Banda;Banda;Bānda; +city::1277508;Balurghat;Balurghat;Bālurghāt;RGH; +city::1277525;Balrampur;Balrampur;Balrāmpur; +city::1277527;Balotra;Balotra;Bālotra; +city::1277539;Bali;Bali;Bally;Bāli;Бали; +city::1277599;Balasore;Balasor;Balasore;Baleshwar;Baleswar;Bāleshwar;ba la suo er;balasor;balaswr;balesbara;balesvara;bareshuwaru;palesvar;Баласор;بالاسور;बालेश्वर;বালেশ্বর;બાલેશ્વર;ବାଲେଶ୍ଵର;பாலேஸ்வர்;బాలాసోర్;ಬಾಲಸೊರ್;バーレーシュワル;巴拉索尔; +city::1277643;Balangir;Balangir;Balāngīr;Bolangir;Bolāngir; +city::1277661;Balaghat;Balaghat;Burha;Bālāghāt; +city::1277723;Baj Baj;Baj Baj;Budge Budge; +city::1277780;Baidyabati;Baidyabati;Baidyabāti; +city::1277799;Bahraigh;Bahraich;Bahraigh; +city::1277814;Baheri;Baheri; +city::1277820;Baharampur;Baharampur;Bahrampur;Bahrāmpur;Bakharampur;Berhampore;ba ha la mu pu er;baharamapura;Бахарампур;بهرام‌پور;بہرام پور;बहरमपुर;बहरामपुर;बहरामपूर;বহরমপুর;বাহারামপুর;ବହରମ୍‌ପୁର୍;巴哈拉姆普尔; +city::1277835;Bahadurgarh;Bahadurgarh;Bahādurgarh; +city::1277936;Bagalkot;Bagalakote;Bagalkot;Bāgalkot;ba jia er ke te;bagalakota;pakalkot;Багалкот;बागलकोट;বাগলকোট;பாகல்கோட்;బాగల్‌కోట్;巴加尔科特; +city::1277939;Bagaha;Bagaha; +city::1277940;Bagaha;Bagaha;Bagaha Division; +city::1277976;Badlapur;Badlapur;ba de la pu er;badalapura;bdlapwr;بدلاپور;बदलापूर;बादलपुर;বাদলাপুর;巴德拉普尔; +city::1278023;Badagara;Badagara;Vatakara; +city::1278026;Bada Barabil;Bada Barabil;Bada Barabīl;Barabil; +city::1278083;Azamgarh;Azamgarh;Azamgarkh;a zha mu jia er;ajamagadha;ajamagadha jilla;ajamagadha-nagaram;ajamagara;ajhamagadha;azamagarha;azamugaru;Āzamgarh;Азамгарх;اعظم گڑھ;आजमगढ;आजमगढ जिल्ला;आजमगढ-नगरम्;आज़मगढ़;आझमगढ;আজমগড়;આઝમગઢ;ଆଜମ୍‌ଗଡ଼;アーザムガル;阿扎姆加尔; +city::1278094;Ajodhya;Ajodhija;Ajodhjo;Ajodhya;Ajodkh'e;Ajodkh'ja;Ajodkhja;Ayodhya;Oudh;a yue ti ya;ayead'dhya;ayod'dha;ayodhi'a;ayodhya;ayodhye;ayodia;ayodiya;ayotti;aywdya;x yoth ya;Айодхье;Айодхья;Айодхя;أيوديا;ایودھیا;ایودیا;अयोद्धा;अयोध्या;অযোধ্যা;ਅਯੋਧਿਆ;અયોધ્યા;ଅଯୋଧ୍ୟା;அயோத்தி;అయోధ్య;ಅಯೋಧ್ಯೆ;അയോദ്ധ്യ;อโยธยา;ཨ་ཡོ་དྷི་ཡ།;アヨーディヤー;阿约提亚;아요디아; +city::1278130;Avadi;Avadi;Āvadi;Авади; +city::1278148;Aurangabad;Aurangabad;Aurangābād; +city::1278149;Aurangabad;Aurangabad;Aurangabad - aurangabada;Aurangabad - औरंगाबाद;Aurangabadas;Aurangâbâd;Aurangābād;IXU;a'orangabada;a'urangabada;aurangabada;aurangabada sahara;aurangabado;Аурангабад;औरंगाबाद;औरंगाबाद शहर;আউরঙ্গাবাদ;আওরঙ্গাবাদ;アウランガーバード; +city::1278152;Auraiya;Auraiya;Aurajja;Etawah;a'ura'iya;ao lai ye;aura'iya;auraiya;awrya;Аурайя;اورایہ;اوریا;औराइया;औरैया;আউরাইয়া;ઔરૈયા;奥赖耶; +city::1278173;Attur;Attur;Atur-Salem;attur;attura;Āttūr;अत्तुर;আত্তুর;ஆத்தூர்; +city::1278178;Attili;Attili; +city::1278297;Ashoknagar;Ashok Nagar;Ashoknagar;Pachhar;Pachhār;a si huo ke na jia er;acok nakar;ashwk ngr;asokanagara;asokanagara jilla;asokanagaram;اشوک نگر;अशोकनगर;अशोकनगर जिल्ला;अशोकनगरम्;অশোকনগর;ଅଶୋକନଗର;அசோக் நகர்;阿斯霍克纳加尔; +city::1278314;Asansol;Asanol;Asansol;asanasola;asansoru;Āsansol;Асансол;आसनसोल;আসানসোল;アサンソル; +city::1278340;Aruppukkottai;Aruppukkottai; +city::1278432;Arcot;Arcot;Arkota;Аркота; +city::1278446;Araria;Araria;Ararija;Arāria;arariya;Арария;अररिया; +city::1278454;Arni;Arani;Arni;Ārani; +city::1278466;Arambagh;Arambagh;Arāmbāgh; +city::1278471;Arakkonam;Arakkonam;Arkonam; +city::1278483;Arrah;Ara;Arrah;Arrakh;Shahabad;a la;ara;araraha;arrah;Ара;Аррах;آرا;آراہ;اراہ;आरा;আররাহ;ਆਰਾ;આરા;ଆର୍ରାହ୍;阿拉; +city::1278498;Aonla;Aonla;Aonla Kila; +city::1278553;Ankleshwar;Ankleshwar;Anklesvar; +city::1278573;Anjar;Andzharom;Anjar;Anjār;Анджаром; +city::1278580;Anjangaon;Anjangaon; +city::1278667;Anantnag;Anantnag;Anantnāg;Islamabad;Islāmābād;a na en te na ge;anantanaga;anantanak;anantnag;anantnaj;anatanaga;annt nag;anntnag;Анантнаг;أنانتناج;انانتناگ;اننت ناگ;اننتناگ;अनंतनाग;अनन्तनाग;ਅਨੰਤਨਾਗ;અનંતનાગ;ଅନନ୍ତନାଗ;அனந்தநாக்;അനന്ത്നാഗ്;阿纳恩特纳格; +city::1278672;Anantapur;Anantapour;Anantapur;Anantapuramu;Anantapure;a na en ta pu er;anantapur;anantapura;anantapuram;anantapwr;annt pwr;Ανάνταπουρ;Анантапур;Анантапуре;آنانتاپور;اننت پور;اننتپور، آندھرا پردیش;अनंतपूर;अनन्तपुर;अनन्तपुरम्;অনন্তপুর;ଅନନ୍ତପୁର;அனந்தபூர்;అనంతపురం;అనంతపూర్;ಅನಂತಪುರ;阿纳恩塔普尔; +city::1278685;Anand;Aimand;Anand;Anaud;QNB;Ānand;Ананд; +city::1278688;Anakapalle;Anakapalle;Anakāpalle;anakapalli;అనకాపల్లి; +city::1278708;Amroha;Amroha; +city::1278710;Amritsar;ATQ;Amricar;Amritsar;Amritsar - amritasara;Amritsar - ਅੰਮ੍ਰਿਤਸਰ;Amritsara;Amritsaras;Amritszar;Amritszár;a mu li ze;amlichaleu;amritasara;amritcar;amrtasara;amrtasarah;amrtsr;amrytsar;amrytsr;amuritosaru;xm vt sar;yamrytsar;ʼmrytsr;Амритсар;Амрицар;Амрітсар;Ամրիթսար;אמריטסר;أمريتسار;ئامریتسار;امرتسر;امريتسر;امریتسار;अमृतसर;अमृतसरः;অমৃতসর;ਅੰਮ੍ਰਿਤਸਰ;અમૃતસર;ଅମୃତସର;அம்ரித்சர்;అమృత్‌సర్;ಅಮೃತಸರ;അമൃത്‌സർ;อมฤตสาร์;ამრიტსარი;アムリトサル;阿姆利则;암리차르; +city::1278715;Amreli;Amreli;Amrelis;amareli;amreli;amrly;amryly;an lei li;Амрели;امرلی;امریلی;अमरेली;অমরেলী;ਅਮਰੇਲੀ;અમરેલી;ଆମ୍ରେଲି;அம்ரேலி;ಅಮ್ರೇಲಿ;安雷利; +city::1278718;Amravati;Amaravati;Amraoti;Amraotī;Amravati;Amrāvati; +city::1278815;Ambur;Ambur;a mu bu er;ambura;amburu;ambwr;ampur;Āmbūr;آمبور;امبور;अम्बुर;আম্বুর;ஆம்பூர்;ಆಂಬೂರು;阿姆布尔; +city::1278827;Ambikapur;Ambikapur;Ambikāpur;Surguja;Surquja; +city::1278840;Ambattur;Ambattur;Ambattūr; +city::1278860;Ambala;Ambala;Ambata;Ambāla; +city::1278862;Ambajogai;Ambajogai;Ambe;Ambejogai;Ambājogāi;Mominabad;Mominābād; +city::1278903;Amarnath;Amarnath;Amarnatkh;Amarnāth;Ambarnath;Амарнатх; +city::1278931;Amalner;Amalner;a ma er nei er;amalanera;amalner;amalnera;amalnr;aml nyr;آمل نیر;امالنر;अमल्नेर;अमळनेर;আমালনের;અમલનેર;ଅମଳନେର;ಅಮಲ್ನೇರ್;阿马尔内尔; +city::1278935;Amalapuram;Amalapuram;Amalāpuram; +city::1278946;Alwar;Alvar;Alvaras;Alvaro;Alwar;Alwar City;District d'Alwar;a er wa er;ala'oyara;alaraara;alavara;alawara;alvar;alvara;alvari;alwar;aruwaru;Álvaro;Алвар;الوار;अलवर;अल्वर;আলওয়ার;আলৱার;ਅਲਵਰ;અલવર;ଅଲୱର;அல்வார்;ಅಳ್ವಾರ್;ალვარი;アルワル;阿尔瓦尔; +city::1278985;Alleppey;Alapalli;Alapolai;Alappula;Alappuzha;Alapulai;Aleppi;Allapuza;Alleppey;Alleppi;Aulapolai;alappula;Алаппужа;ആലപ്പുഴ; +city::1278994;Allahabad;Alahabadas;Alla Abba Habab;Allahabad;Allahabad - ilahabada;Allahabad - इलाहाबाद;Allahābād;Allakhabad;Allāhābād;IXD;Ilahabad;Ilāhābād;Prayag;Prayāg;alakapat;an la a ba de;arahabado;elahabada;ilahabada;irahabado;Аллахабад;إلٰه‌آباد;الہ آباد;इलाहाबाद;এলাহাবাদ;அலகாபாத்;アラハバード;イラーハーバード;安拉阿巴德; +city::1279017;Aligarh;Aligarh;Aligarkh;Alīgarh;Koil;aligara;aligarha;Алигарх;علی گڑھ;अलीगढ़;আলিগড়; +city::1279094;Akot;Akot;a ke te;akat;akota;آکوٹ;اکات;अकोट;अकोत;অকোট;ଆକୋଟ;阿科特; +city::1279105;Akola;AKD;Akola;Akolá;a ke la;akola;akolla;akwla;Акола;اکولا;اکولہ;अकोला;অকোলা;আকোলা;ਅਕੋਲਾ;અકોલા;ଅକୋଲା;அகோலா;ಅಕೋಲಾ;阿科拉;아콜라; +city::1279159;Ajmer;Acmer;Adzhmer;Adzmer;Adzmera;Adzmeras;Adzsmir;Adźmer;Adžmera;Adžmeras;Adžmér;Agmer;Ajmer;Ajmer City;Aĝmer;KQH;a jie mei er;ajamera;ajamira;ajimeleu;ajmer;ajmeri;ajmir;ajmyr;ajumeru;Ádzsmír;Аджмер;Аџмер;أجمير;اجمیر;اجمېر;अजमेर;অজমের;আজমির;ਅਜਮੇਰ;અજમેર;ଆଜମେର;அஜ்மீர்;అజ్మీర్;ಅಜ್ಮೇರ್;അജ്മീർ;აჯმერი;アジュメール;阿杰梅尔;아지메르; +city::1279186;Aizawl;AJL;Ai jal;Aidzhal;Aijal;Aizal;Aizavlis;Aizawl;Aizol;Aizwal;Ajzol;a'ijala;a'ijola;a'izola;ai zao er;aijali;aijaul;aijavla;aijhavala;aijhola;aijola;aizauru;aycal;ayyzwl;ayzal;ayzwal;Āīzawl;Аиджал;Аїджал;Ајзол;آئزال;آئیزول;ایزوال;आइज़ोल;आइजोल;ऐजव्ल;ऐजोल;ऐझॉल;আইজল;ਆਈਜ਼ੋਲ;ઐઝવાલ;ଆଇଜୋଲ;அய்சால்;ఐజ్‌వాల్;ഐസോൾ;აიჯალი;アイザウル;艾藻尔;아이자울; +city::1279228;Ahmadnagar;Ahmadnagar;Ahmadnâgar;Ahmednagar;ahamadanagara;ahamedanagara;ahmd ngr;akamatnakar;احمد نگر;अहमदनगर;আহমেদনগর;அகமத்நகர்; +city::1279233;Ahmedabad;AMD;Achmentampant;Ahmadabad;Ahmadabadas;Ahmadabado;Ahmadobod;Ahmadábád;Ahmadābād;Ahmedabad;Ahmedabad - amadavada;Ahmedabad - અમદાવાદ;Akhmadabad;Akhmadabad shaary;Akhmedabad;Amadavad;Amdavada;Amdāvāda;Amedebatum;Exmetabad;Gorad Akhmedabad;a mei da ba de;afumadabado;aham'madabad;ahamadabada;ahamedabada;ahimadabada;ahmadabad;ahmadabadi;ahmd abad;ahmdabad;ahmdabad - hyndystan;ai ha mai da ba de;ai ha mai de bao;akamatapat;amadabadeu;amadaraada;amadavada;xah mda bad;Αχμενταμπάντ;Ахмадабад;Ахмадабад шаары;Ахмедабад;Аҳмадобод;Горад Ахмедабад;אחמדאבאד;أحمد آباد;احمد آباد;احمدآباد;احمدآباد - هیندیستان;احمداباد;अमदावाद;अहमदाबाद;অমদাৱাদ;আহমেদাবাদ;ਅਹਿਮਦਾਬਾਦ;અમદાવાદ;ଅହମଦାବାଦ;அகமதாபாத்;అహ్మదాబాద్;ಅಹ್ಮದಾಬಾದ್;അഹമ്മദാബാദ്;อัห์มดาบาด;အမယ်ဒါဘတ်မြို့;აჰმადაბადი;アフマダーバード;艾哈迈德堡;艾哈迈达巴德;阿美達巴德;아마다바드; +city::1279259;Agra;AGR;Agra;Agra - agara;Agra - आगरा;Lungsod ng Agra;a ge la;agara;ageula;agra;agura;akra;Āgra;Āgrā;Агра;Аґра;אגרה;آگرہ;आगरा;আগ্রা;ஆக்ரா;ಆಗ್ರಾ;アーグラ;アーグラー;阿格拉;아그라; +city::1279290;Agartala;Agartala;Agratala;Ajarthala;Ankartala;Aqartala;IXA;a jia er ta la;agaleutalla;agaratala;agartala;agarutara;agrtla;akartala;Αγκαρτάλα;Агартала;اگارتالا;اگرتلا;अगरतला;अगरताल;अगरताला;अगर्तला;আগরতলা;ਅਗਰਤਲਾ;અગરતલા;ଅଗରତାଲା;அகர்தலா;అగర్తలా;ಅಗರ್ತಲ;അഗർത്തല;აგარტალა;アガルタラ;阿加尔塔拉;아가르탈라; +city::1279335;Adoni;Adoni;Ādoni;Адони; +city::1279344;Adilabad;Adilabad;Edlabad;Edlābād;adilabad;adilabadu;atilapat;Ādilābād;ஆதிலாபாத்;ఆదిలాబాదు;ఆదిలాబాద్; +city::1279390;Achalpur;Achalpur;Ellichpur;a qia er pu er;acalapura;accalpur;acharupuru;achlpwr;akalpwr;alacapura;اچلپور;اکالپور;अचलपूर;अलचपुर;অচলপুর;আচলপুর;ଅଚଳପୁର;அச்சல்பூர்;アチャルプル;阿恰尔普尔; +city::1279394;Abu Road;Abu Road;Ābu Road; +city::1279403;Abohar;Abohar;a bo he er;abohara;abwhar;apohar;آبوهار;ابوہر;अबोहर;আবোহার;ਅਬੋਹਰ;அபோஹர்;阿博赫尔; +city::1344069;Contai;Contai; +city::1344377;Haldia;Haldia; +city::1348747;Bankra;Bankra; +city::1348818;Nangi;; +city::1430991;Soyibug;; +city::6690108;Panchkula;Panchkula;Panchkula Urban Estate;Pusat Bandar Panchkula;bantshkwla;pancakula;pancakula upa sahara;Панчкула;بانتشكولا;پنج‌کولا;पंचकुला;पञ्चकुला;পঞ্চকুলা উপ শহর;ପଞ୍ଚକୁଲା;ಪಂಚಕುಲ; +city::6943660;Shivaji Nagar;; +city::6954929;Greater Noida;Didzioji Noida;Didžioji Noida;Velika Nojda;gretara no'eda;noyta perunakar;Велика Нойда;گریٹر نوئیڈا;ग्रेटर नोएडा;நொய்டா பெருநகர்; +city::6992326;Mohali;; +city::7279595;Pithampur;; +city::7279597;Barbil;; +city::7279599;Airoli;; +city::7279734;Kotkapura;; +city::7279741;Vapi;Wapi;Wāpi;bapi;vapi;vappi;wapy;wpy;واپی;وپی;वापि;वापी;বাপি;વાપી;வாப்பி; +city::7279746;Noida;Naveen;New Okhla Industrial Development Authority;Noida;Nojda;neayda;no'eda;no'era;no'ida;noyada;noyida;noyta;nuo yi da;nwyda;Ноида;Нойда;نوئدا;نوئیڈا;نويډا;نویدا;नोइडा;नोएडा;नोयडा;নোইদা;ਨੋਇਡਾ;નોઇડા;ନୋଏଡ଼ା;நொய்டா;నోయిడా;നോയ്ഡ;诺伊达; +city::7279754;Singrauli;Singrauli;singara'uli;singarauli;sinra'uli;sngrawly;syngrawly;xin ge lao li;Синграули;سنگراؤلی;سینگراولی;सिंगरौली;সিংরাউলি;ସିଙ୍ଗରାଉଲି;辛格劳利; +city::7284820;Jaigaon;; +city::7302806;Bellampalli;Bellampalle;bellampalli;బెల్లంపల్లి; +city::7302810;Gaddi Annaram;Gaddi Annaram;Gaddiannaram; +city::7302826;Lal Bahadur Nagar;L.B.Nagar;Lal Bahadur Nagar;Lalbahadur Nagar; +city::7302828;Malkajgiri;ma er ka jie ji li;makajgyry;malakajagiri;malkajaganja;mlkajgyry;ماکاجگیری;ملکاجگیری;मल्कजगञ्ज;মালকাজগিরি;మల్కాజ్‌గిరి;马尔卡杰吉里; +city::7302829;Mandamarri;mandamarri;మందమర్రి; +city::7302830;Chinnachowk;Chinna Chowk;Chinnachowk; +city::7302833;Gajuwaka;gajuvaka;గాజువాక; +city::7302844;Ponnur;; +city::7302845;Quthbullapur;Quthbullapur;Qutubullapur; +city::7302847;Palwancha;Paloncha;Palwancha; +city::7302856;Serilingampalle;Serilingampalle;Serilingampally; +city::7302861;Ashoknagar Kalyangarh;; +city::8347656;Ramagundam;RMD;Ramagundam;la ma gu en da mu;ramagndm;ramagundam;ramagundam mandala;ramagundama;ramagwndam;ramakuntam;Рамагундам;راماگندم;راماگوندام;راماگڈم;रामगुंडं मण्डल;রামগুন্দম;ରାମଗୁଣ୍ଡମ;ராமகுண்டம்;రామగుండం;拉马古恩达姆; +city::9781227;Kultali;; +city::10263232;Deoli;Deoli; +city::89570;Zaxo;Qada' Zakhu;Qaḑā’ Zākhū;Zakhaw;Zakho;Zakhu;Zakhu Qadha';Zaxo;Zaxu;Zākhaw;Zākhū;Zākhū Qadhā’;qdaʾ zakhw;zakhw;Заху;زاخو;زاخۆ;قضاء زاخو; +city::89824;Umm Qasr;Omolgasr;Um Kasr;Umm Qasr;Umm Qaşr;am qsr;ام قصر; +city::90026;Tozkhurmato;Khurmati;Touz Hourmato;Tozkhurmato;Tozkhurmatu;Tuz;Tuz Kermatli;Tuz Khurmatli;Tuz Khurmatu;Tuz Khurmatu District;Tuz Xurmatu;Tuzkhurmatu;twz;twz khwrmatw;twzkhwrmatw;Ţūz;Ţūz Khūrmātū;Ţūzkhūrmātū;توزخورماتو;طوز;طوز خورماتو;طوزخورماتو; +city::90708;Sinah;Sina;Sinah;Sine;Sîne;Sīnah;Sīnā;synt;سينة;سينە; +city::91597;Samarra';Saimarreh;Samara;Samarra;Samarra';Samarrah;Sāmarrah;Sāmarrā’;سامراء; +city::94787;Kirkuk;KIK;Karkh Slukh;Karkuk;Karkúk;Karkūk;Kerkouk;Kerkuek;Kerkuk;Kerkûk;Kerkük;Kirkoek;Kirkouk;Kirkuk;Kirkukas;Kirkúk;Kirkūk;Kərkük;ji er ku ke;khir khuk;kileukukeu;kirukuku;krk slwk;krkwk;kyrkwk;Κιρκούκ;Киркук;Кіркук;Кәркүк;Քիրքուք;כירכוכ;كركوك;كه‌ركووك;كەركوك;کرکوک;کەرکووک;ܟܪܟ ܣܠܘܟ;കിർകുക്ക്;คีร์คูก;კირკუკი;キルクーク;基爾庫克;키르쿠크; +city::94824;Karbala;Gorad Kerbela;Karbala;Karbala';Karbalaa;Karbalo;Karbalá;Karbalā’;Karbila;Karmpala;Kerbala;Kerbela;Kərbəla;Meshed Hussain;Meshed Hussein;Nainawa;Qerbelaja;Shathi'ul-Furat;Vilojati Karbalo;al-Ghadiriya;ka er ba la;kaleuballa;karabala;karbala;karpala;karubara;karubara xian;krbla;ktrbala;Καρμπάλα;Вилояти Карбало;Горад Кербела;Карбала;Кербала;Кербела;Քերբելա;כרבלא;מחוז כרבלא;كةربالا;كربلاء;محافظة كربلاء;کربلا;کەربەلا;ڪربلا;करबला;কারবালা;ਕਰਬਲਾ;கர்பலா;കർബല;ქარბალა;カルバラー;カルバラー県;卡爾巴拉;카르발라; +city::95446;Erbil;Arbeel;Arbela;Arbil;Arbēla;Arbīl;EBL;Erbil;Hawler;Hawlēr;Hewler;Hewlêr;Irbil;Irbīl;Viloati Arbil;ai er bi lei sheng;arbyl;arubiru xian;hەwlێr;mhafzt arbyl;Арбил;Вилояти Арбӣл;מחוז ארביל;أربيل;إربيل;اربیل;محافظة أربيل;هەولێر;アルビール県;埃爾比勒省; +city::96205;Halabjah;Alabja;Halabdscha;Halabia;Halabja;Halabjah;Halebdja;Halebja;Halebjeh;Halepce;Halepçe;Helebce;Helepce;Helepçe;Khalabdzha;hlbchh;hlbjt;Халабджа;حلبجة;حلبچه; +city::96994;Dihok;Dahuk;Dahūk;Dakhuk;Dihok;Dihuk;Dihōk;Dihūk;Dohuk;Duhok;Duhuk;Dûhok;dahuk;dhwk;dhۆk;Дахук;دهوك;دهوک;دهۆك;دهۆک;دووهۆک;دَهُکْ;ܢܘܗܕܪܐ; +city::97417;Jamjamal;Chamchamal;Chamchamāl;Chemchemal;Chemchemał;Chemchemāl;Jamjamal;Jamjamāl;Shamshamal;Shamshamāl;chmchmal;chەmchەmaڵ;jmjmal;جمجمال;چمچمال;چەمچەماڵ; +city::97990;Baqubah;Ba'quba;Ba'qubah;Bakouba;Bakuba;Baquba;Baqubah;Baqubeh;Ba‘qūbah;Ba’qūba;XQV;ba gu bai;Бакуба;بعقوبة;巴古拜; +city::98182;Baghdad;BGW;Bagda;Bagdad;Bagdadas;Bagdado;Bagdat;Bagdate;Bagdatum;Bagdod;Bagdá;Bagdád;Baghdad;Baghdād;Bağdad;Bağdat;Beghdad;Bexda;Lungsod ng Baghdad;ba ge da;bagadada;bageudadeu;bagudado;bghdad;bەghdad;paktat;Βαγδάτη;Багдад;Бағдод;Բաղդադ;בגדאד;بغداد;بەغداد;ܒܓܕܐܕ;बगदाद;பக்தாத்;པ་ག་ཏ;ባግዳድ;バグダード;巴格达;바그다드; +city::98245;Az Zubayr;Az Zubair;Az Zubayr;Az Zuhair;El Zubair;Zobier;Zubair;alzbyr;الزبير; +city::98463;As Sulaymaniyah;Al-Sulaimaniya;As Sulaymaniyah;As Sulaymānīyah;As-Sulajmanijja;ISU;Silemani;Silêmanî;Sleimani;Sleimāni;Slemani;Slêmanî;Slēmānī;Solimania;Souleimaniye;Sueleymaniye;Sulaimania;Sulaimanieh;Sulaimaniya;Sulaimaniyya;Sulaimany;Sulaymaniyah;Sulaymaniyya;Sulaymānīyah;Suleimania;Suleimaniya;Sulejmanija;Süleymaniye;alslymanyt;slymanyh;Сулеймания;السليمانية;سلیمانیه;سلێمانى;سلێمانی; +city::98530;As Samawah;As Samawah;As Samāwah;SAMAWA;Samava;Samawa;Samawah;Samāwah;alsmawh;Самава;السماوه; +city::98622;Ash Shatrah;Ash Shatrah;Ash Shaţrah;Shatra;Shatrat al Muntafiq;Shatreh;Shatret el Muntefiq;Shattra;Shattrah el Muntifik;alshtrt;الشطرة; +city::98629;Ash Shamiyah;Ash Shamiya;Ash Shamiyah;Ash Shāmīya;Ash Shāmīyah;Shamiya;Ummal Barur;alshamyt;الشامية; +city::98717;Ramadi;Al-Ramadi;Al-Rumadi;Ar Ramadi;Ar Ramādī;Ar-Ramadi;Ar-Ramādī;Ehr-Ramadi;Er-Ramadi;Ramadi;Ramadie;Ramadieh;Ramadiyah;Ramanti;Ramádi;Ramádí;Rumadiya;Rumadiyeh;Rumādīya;Rumādīyeh;XTM;alrmady;la ma di;lamadi;ramadi;ramady;rmady;Ραμάντι;Ер-Рамаді;Рамади;Эр-Рамади;רמאדי;الرمادى;الرمادي;رامادی;رمادی;ਰਮਾਦੀ;റമാദി;რამადი;ラマーディー;拉馬迪;라마디; +city::98854;Nasiriyah;Al-Nasiriya;An Nasiriya;An Nasiriyah;An Nāsirīya;An Nāşirīyah;An-Nasiriya;Muntafik;Muntifik;Nasirija;Nasirijja;Nasiriya;Nasiriyah;Nasiriyeh;Nasiriyya;Nasrie;Nasriye;Nāsirīyah;XNH;alnasryh;alnasryt;nashiriya;Насирия;الناصرية;الناصريه;ナーシリーヤ; +city::98860;Najaf;Al Najaf al Ashraf;An Najaf;An Najaf al Ashraf;An-Nadzaf;An-Nadzhaf;An-Nadżaf;An-Najaf;Ehn-Nadzhaf;Meshed 'Ali;Meshed ’Ali;NJF;Nachaf;Nadjaf;Nadschaf;Nadzaf;Nadzafas;Nadzhaf;Nadžaf;Nadžafas;Nagafo;Najaf;Najaf - njf;Najaf - نجف;Natzaf;Nayaf;Naĝafo;Necef;Nedjef;Nedzsef;Neshed Ali;Nəcəf;alnjf;alnjf alashrf;na jie fu;najafa;najafu;najap;najapeu;najapi;ngp;njf;Νατζάφ;Ан-Наджаф;Наджаф;Наџаф;Эн-Наджаф;נגף;النجف;النجف الاشرف;نجف;नजफ़;நஜாப்;നജഫ്‌;ნაჯაფი;ナジャフ;納杰夫;나자프; +city::99062;Al Miqdadiyah;Al Miqdadiyah;Al Miqdādīyah;Muqdadiyah;Shahraban;Shahroban;Shahrābān;almqdadyt;المقدادية; +city::99072;Mosul;Al Mawsil;Al Mawşil;Al Mosul;Al Musil;Al Mūşil;Mosel;Mosoel;Mosouli;Mossoul;Mossul;Mosul;Mosul khot;Mosula;Mosulas;Mosulo;Moszul;Mousl;Moussoul;Musil;Musił;Musul;Musıl;Mûsil;OSM;almwsl;mo su er;mo sul;mocul;mosala;mosul;mosula;mosuli;mosuru;mwsl;mwswl;mwsڵ;Μοσούλη;Мосeл;Мосул;Мосул хот;Մոսուլ;מאסול;מוסול;الموصل;موسڵ;موصل;موصول;مووسڵ;ܡܘܨܠ;मोसुल;ਮੋਸਲ;மோசுல்;മൊസൂൾ;โมซูล;მოსული;モースル;摩苏尔;摩蘇爾;모술; +city::99131;Al Kut;Al Koet;Al Kut;Al Kūt;Al-Kut;Kut;Kut al Amara;Kut al Amarah;Kut al Imara;Kut al Imāra;Kut al `Amarah;Kut-al-Almarah;Kut-al-Almārah;Kut-al-Imarah;Kūt;Kūt al ‘Amārah;Kūt-al-Imārah;alkwt;kwt;Кут;الكوت;كوت; +city::99135;Kufa;Al Kufa;Al Kūfa;Al-Kufa;Al-Kufah;Al-Kūfah;Cufa;Ehl'-Kufa;Gorad Ehl'-Kufa;Koefa;Koufa;Kufa;Kufah;Kufe;Kufə;Kúfa;Kūfa;Qada' al Kufah;Qaḑā’ al Kūfah;alkwfh;alkwft;ku fei;kufa;kupa;kupha;kwfh;kwph;Κούφα;Горад Эль-Куфа;Куфа;Эль-Куфа;כופה;الكوفة;الكوفه;كوفه;کوفه;کوفہ;کووفە;ކޫފާ;कूफ़ा;কুফা;ਕੂਫ਼ਾ;കൂഫ;კუფა;クーファ;库费;쿠파; +city::99169;Khalis;Al Khalis;Al Khāliş;Al'-Khalisa;Diltawah;Diltāwah;Khalis;Khāliş;khals;Аль-Халиса;خالص; +city::99344;Al Hindiyah;Al Hindiyah;Al Hindīyah;Hindiya;Hindīya;Qada' al Hindiyah;Qaḑā’ al Hindīyah;Tuwairij;Tuwairji;Tuwairīj;Tuwayrij;alhndyt;Ţuwayrīj;الهندية; +city::99347;Al Hillah;Al Hilla;Al Hillah;Al Ḩillah;Al'-Khilla;Al-Hella;Hilah;Hilla;Hille;Hillé;alhlt;Аль-Хилла;الحلة; +city::99350;Al Hayy;Al Hai;Al Hay;Al Hayy;Al Ḩayy;Al'-Khaja;Kut al Hai;alhy;Аль-Хая;الحي; +city::99446;Al Faw;Al Faw;Al Fāw;Al'-Fau;Fao;Fao Terminal;Fava;alfaw;Аль-Фау;الفاو; +city::99454;Al Fallujah;Al Falluja;Al Fallujah;Al Fallūja;Al Fallūjah;Al Falooja;Al-Falludza;Al-Falludża;Al-Falluja;Falloujah;Falludscha;Falluja;Fallujah;Fallūjah;Faludza;Faludzha;Faluga;Faluja;Faluya;Faluĝa;Feludja;Feluja;TQD;alflwjt;faruja;fei lu jie;Фалуджа;Фалуџа;الفلوجة;ファルージャ;费卢杰; +city::99532;Basrah;Al Basrah;Al Başrah;Al-Basra;BSR;Bacora;Basora;Basra;Basrah;Bassora;Bassorah;Bassra;Baçorá;Busra;Busrah;Bussora;Bàssora;albsrt;ba shi la;ba si la;basura;bsrh;bsrt;bzrh;Басра;בצרה;البصرة;بصرة;بصره;ܒܨܪܐ;バスラ;巴士拉;巴斯拉; +city::99608;Al 'Amarah;Al `Amarah;Al ‘Amārah;Amara;Amarah;Amare;Amaré;`Amara;alʿmart;العمارة;العماره;‘Amāra; +city::99762;Ad Diwaniyah;Ad Diwania;Ad Diwaniya;Ad Diwaniyah;Ad Dīwānīya;Ad Dīwānīyah;Al-Diwaniya;Divanija;Diwanie;Diwaniya;Diwaniyan;Diwaniyeh;Dīwanīya;Hiska;aldywanyt;Дивания;الديوانية; +city::100077;Abu Ghurayb;Abou Ghraib;Abu Ghraib;Abu Ghraib - abw ghryb;Abu Ghraib - أبو غريب;Abu Ghraib Farms;Abu Ghuraib;Abu Ghurayb;Abu-Grejb;Abū Ghraib Farms;Abū Ghurayb;Mazari` Abi Gharib;Mazari` Abi Ghurayb;Mazāri‘ Abī Ghurayb;Mazārı‘ Abī Gharīb;abw ghryb;Абу-Грейб;אבו גרייב;أبو غريب;ابو غریب; +city::14256;Azadshahr;Azad Shahr;Azadshahr;azadshhr;Āzādshahr;آزادشهر; +city::23814;Kahriz;Kahriz;Kahrīz;khryz;کهریز; +city::24851;Nurabad;Nurabad;Nūrābād;nwr abad;Нурабад;نور آباد; +city::32767;Qarchak;Qarchak;qrchk;قرچك; +city::32909;Shahre Jadide Andisheh;Shahrak-e Andisheh;Shahrak-e Andīsheh;shhr jdyd andyshh;شهر جدید اندیشه; +city::41210;Khorramdarreh;Khorramdareh;Khorramdarreh;Khurramdarreh;Khurramdarrekh;khrmdrh;خرمدره; +city::66093;Yasuj;Jasudz;Jasudzh;Jasudż;Jasudž;Jásúdž;YES;Yasooj;Yasuc;Yasudsch;Yasuj;Yasûc;Yesuj;Yesūj;Yāsūj;ya su ji;yasuj;yasuja;yasujeu;yasuju;yaswj;yiswj;yswj;Ёсӯҷ;Ясудж;Յասուջ;ياسوج;يَسُّج;يِسوج;یاسوج;یسوج;यासूज;ヤースージュ;亞蘇季;야수즈; +city::111421;Zarand;Zarand;zrnd;زرند; +city::111453;Zanjan;JWN;Zanjan;Zanjān;Zendzhan;Zenjan;Zenjān;znjan;Зенджан;زنجان; +city::111822;Yazd;AZD;Dakbayan sa Yazd;Giaznt;Jazd;Jazdo;Jezd;Jezdas;Yasd;Yazd;Yezd;Yəzd;iezdi;ya ci de;yajeudeu;yazda;yazudo;yzd;Γιαζντ;Јазд;Йезд;Язд;Յազդ;יזד;يزد;یزد;यज़्द;იეზდი;ヤズド;亚兹德;야즈드; +city::112214;Varamin;Esfandabad;Esfandābād;Varamin;Varāmīn;Veramin;Verāmin;varamin;wramyn;Варамин;ورامين; +city::112646;Torbat-e Heydariyeh;Torbat-e Heydariyeh;Torbat-e Ḩeydarīyeh;Torbat-e-Heydari;Turbat-i-Haidari;Turbet-i-Haidari;trbt hydryh;تربت حیدریه; +city::112931;Tehran;THR;Taekhran;Tahran;Techerane;Teera;Teerao;Teerã;Teerão;Tegeran;Teheran;Teherana;Teheranas;Teherano;Teherán;Teherāna;Tehran;Tehrano;Tekheran;Téhéran;de hei lan;teharan;teharana;tehelan;teheran;tehran;teirani;thran;thrn;thrwn;tihiran;tihran;Τεχεράνη;Тæхран;Тегеран;Техеран;Теҳрон;Թեհրան;טהראן;טהרן;تهران;تهرون;تِهران;تِهِرَن;تہران;طهران;ܛܗܪܐܢ;तेहरान;তেহরান;தெஹ்ரான்;เตหะราน;ཏེ་ཧི་རན​།;თეირანი;ቴህራን;テヘラン;德黑兰;테헤란; +city::113491;Takestan;Seyadahan;Seyādahan;Siadehan;Siahdehan;Siakh-Degen;Siakhdekhan;Sīahdehān;Sīādehan;Takestan;Takistan;Tākestān;Tākistān;syadihan;syahdihan;takstan;تاكستان;سيادِهَن;سيَهدِهان; +city::113508;Takab;Takab;Takan Tepe;Takāb;tkab;تکاب; +city::113646;Tabriz;Gorad Tehbryz;TBZ;Tabrez;Tabris;Tabriz;Tabrizo;Tabríz;Tabrīz;Taebris;Taebriz;Tampriz;Tauris;Tebriz;Tebriza;Tebrizas;Tebrīza;Tewrez;Tewrêz;Toewriz;Täbris;Täbriz;Töwriz;Təbriz;da bu li shi;ta bris;tabareza;tabariza;tabeulijeu;tabris;taburizu;tavrizi;tbryz;Ταμπρίζ;Горад Тэбрыз;Табрез;Табриз;Тебриз;Тәбриз;Թավրիզ;טאבריז;תבריז;تبريز;تبریز;تەورێز;तबरेज़;ਤਬਰੀਜ਼;ടാബ്രിസ്;ตาบริซ;ཊ་བི་རི་ཛ།;თავრიზი;タブリーズ;大不里士;타브리즈; +city::114259;Sirjan;SYJ;Sa'idabad;Sa‘īdābād;Sircan;Sirdschan;Sirdzan;Sirdzhan;Sirdżan;Sirdžan;Sirjan;Sīrjān;sirajana;syrjan;xi er zhan;Серҷон;Сирджан;سيرجان;سیرجان;सीरजान;錫爾詹; +city::114584;Shushtar;Shooshtar;Shushtar;Shushtehr;Shustar;Shūshtar;Shūstar;shwshtr;Шуштэр;شوشتر; +city::114593;Shush;Shoosh;Shush;Shūsh;Susa;Suse;Susy;Suza;Suzo;Suzy;Súsy;Sūsa;shwsh;susa;Сузы;شوش;スーサ; +city::114930;Shirvan;Shirvan;Shīrvān;shyrwan;شیروان; +city::115019;Shiraz;Chimaz;Chiraz;Gorad Shyraz;SYZ;Schiras;Sheroz;Shiraz;Shīrāz;Siraz;Siraza;Sirazas;Sirazo;Siráz;Sjiraz;Sziraz;Xiraz;chi ras;she la zi;shirazi;shirazu;shyraz;silajeu;Ŝirazo;Şiraz;Şîraz;Širaz;Širazas;Šíráz;Šīrāz;Šīrāza;Σιράζ;Горад Шыраз;Шероз;Шираз;Շիրազ;שיראז;شيراز;شیراز;ชีราซ;შირაზი;シーラーズ;設拉子;시라즈; +city::115770;Shahr-e Kord;CQD;QHK;Shahr Kord;Shahr Kurd;Shahr-e Kord;Shahrekord;Shakhre-Kord;shhr krd;Шахре-Корд;شهر كرد; +city::115781;Shahr-e Babak;Shahr Babak;Shahr Bābak;Shahr-e Babak;Shahr-e Bābak;Shahr-i-Babak;Shahr-i-Bābak;shhr babk;شهر بابک; +city::116402;Semnan;Samnan;Samnān;Semnan;Semnān;smnan;Семнан;سمنان; +city::116667;Saveh;Sava;Saveh;Sāveh;sawh;Сава;ساوه; +city::116996;Sari;SRY;Sari;Sari i Iran;Saris;Sariyo;Sarí;Sarî;Shahr-i-Tajan;Shari-i-Tajan;Sori;Szari;Szári;Sárí;Sārī;sa li shi;sali;sari;sary;sary ayran;Σάρι;Сари;Сарі;Сорӣ;Սարի;سارى;ساري;ساری;ساری، ایران;सारी;სარი;サーリー;薩里市;사리; +city::117392;Saqqez;Saggiz;Saggız;Saghez;Saghghez;Sakez;Sakezo;Sakiz;Sakkiz;Sakīz;Saqez;Saqqez;Saqqez (2);Saqqiz;Saqqız;Sekkez;Seqiz;sa gai zi;saghiz;sakkeja;sakyz;saqiz;sqz;sqz (1);sqz (2);Саққиз;Секкез;سقز;سقّز (1);سقّز (٢);سَغِز;سَقِّز;سَكيز;سەقز;सक्केज;薩蓋茲; +city::117574;Sanandaj;Gorad Senendehdzh;SDG;Sanandadsch;Sanandadz;Sanandadż;Sanandadž;Sanandago;Sanandaj;Sanandaĝo;Sanandij;Senendec;Senendedzas;Senendedzh;Senendedžas;Senna;Senneh;Sinandij;Sine;Sinneh;Sənəndəc;sa nan da ji;sanandaja;sanandaji;sina;sinih;snndj;Горад Сенендэдж;Санандаџ;Санандаҷ;Сенендедж;Сәнәндәҗ;Սանանդաջ;سنندج;سنە;سِنَّ;سِنِّه;सनंदज;सनंदाज;萨南达季;사난다지; +city::117656;Salmas;Dilmagan;Dilman;Dīlmagān;Dīlman;Salmas;Salmās;Shahpoor;Shahpur;Shapur;Shāhpūr;slmas;Салмас;سلماس; +city::118063;Sabzevar;AFZ;Sabzawar;Sabzawār;Sabzevar;Sabzevār;Sabzewar;Sabzivor;Sebzevar;Səbzivar;sa bo ze wa er;sab si war;sabzevara;sbzwar;Сабзевар;Сабзивор;Себзевар;سبزوار;सब्ज़ेवार;ซับซีวาร์;薩卜澤瓦爾; +city::118367;Robat Karim;Robat Karim;Robāţ Karīm;Shahriar;Shahryar;Shahryār;rbat krym;رباط كريم; +city::118743;Rasht;RAS;Raixt;Rascht;Rasht;Rasjt;Rast;Rasto;Raszt;Raŝto;Rašt;Reshh;Resht;Rest;Restas;Reşt;Reštas;Rəşt;la shen te;lasyuteu;rashuto;rasta;reshti;rsht;Рашт;Решт;Рещ;Рәшт;Ռեշտ;ראשת;رشت;ڕەشت;रश्त;แรชต์;რეშთი;ラシュト;拉什特;라슈트; +city::118994;Rafsanjan;Bahramabad;Bahrāmābād;RJN;Rafsandzhane;Rafsanjan;Rafsanjān;Rafsinjan;Rafsinjān;rfsnjan;Рафсанджане;رفسنجان; +city::119115;Quchan;Gochan;Quchan;Qūchān;qwchan;قوچان; +city::119161;Qorveh;Qorveh;Qurve;Qurveh;qrwh;قروه; +city::119208;Qom;Dakbayan sa Qom;Ghom;Gorad Kum;Homo;Kom;Kum;Kum shaary;Kumas;QUM;Qom;Qum;Qûm;gomu;koma;ku mu;kum;kuvom;qm;qwm;Ĥomo;Горад Кум;Ком;Кум;Кум шаары;Қум;קום;قم;قوم;कोम;குவோம்;ゴム;库姆;쿰; +city::119505;Qazvin;Dakbayan sa Qazvin;GZW;Gazvin;Kazvin;Kazvinas;Kazvín;Kazwin;Kuazvin;Qazvin;Qazvín;Qazvīn;Qazwen;Qazwên;Qəzvin;gazuvu~in;jia ci wen;kajeubin;kazvina;kxs win;qzwyn;Казвин;Казвін;Къазвин;Қазвин;Ղազվին;قزوين;قزوین;قەزوین;कज़्वीन;กอซวีน;ყაზვინი;ガズヴィーン;加兹温;카즈빈; +city::120931;Sarpol-e Zahab;Pol-e Zahab;Pol-e Zohab;Pol-e Z̄ahāb;Pol-e Z̄ohāb;Sar-e Pol-e Zahab;Sar-e Pol-e Z̄ahāb;Sar-i-Pul Zuhab;Sar-ī-Pūl Zūhāb;Sari-Pul;Sarpol;Sarpol-e Zahab;Sarpol-e Z̄ahāb;Sarī-Pūl;sr pl dhhab;سر پل ذهاب; +city::120972;Pishva;Pichva;Pishva;Pishyan;Pīchvā;Pīshvā;Pīshyān;pychwa;pyshwa;pyshyan;پيشوا;پيشيان;پيچوا; +city::121110;Piranshahr;KHA;Khaneh;Khāneh;Okrug Peronsahr;Okrug Peronšahr;Piran Shahr;Piransaher;Piransahr;Piransar;Piransara;Piranschahr;Piransehr;Piranshahr;Piranshekhr;Piransherkh;Piransjahr;Piranszahr;Piranxahr;Piranşehr;Piranşəhr;Piranšaher;Piranšahr;Piranšāra;Pîranşar;Pīrān Shahr;Pīrānshahr;byranshhr;pi lan sha he er;piranshafuru;pyranshar;pyranshhr;Пероншаҳр;Пираншехр;Піраншерх;بیرانشهر;پیرانشار;پیرانشهر;پیرانشھر;پیرانشہر;ピーラーンシャフル;皮兰沙赫尔; +city::121380;Parsabad;Farsabad;Fārsābād;PFQ;Parsabad;Pārsābād;fars abad;pars abad;Парсабад;فارس آباد;پارس آباد; +city::121795;Oshnaviyeh;Ashnooyeh;Oshnaviyeh;Oshnavīyeh;Oshnovieh;Oshnoviyeh;Oshnovīeh;Oshnovīyeh;Oshnuje;Ushnu;Ushnuiyeh;Ushnū;Ushnūīyeh;ashnwyh;Ошнуйе;اشنويه; +city::121801;Orumiyeh;OMH;Orumiyeh;Orūmīyeh;Ourmia;Reza'iyeh;Rezaeyeh;Rezaiyye;Rezâiyye;Rezā’īyeh;Rizaiyeh;Rizāiyeh;Urmia;Urmija;Urmiya;Urmiye;Urmía;Urumija;Urumiyeh;Urūmiyeh;arwmyh;arwmyt;shhrstan arwmyh;Úrmia;Ûrmiye;Урмия;Урумия;אורמיה;أرومية;ارومیه;ارومیّه;شهرستان ارومیه;ܐܘܪܡܝܐ; +city::121925;Nurabad;Nurabad;Nūrābād;nwr abad;نور آباد; +city::122285;Nishabur;Nejsaburo;Nejŝaburo;Neyshabur;Neyshābūr;Nichapur;Nisabur;Nischapur;Nishabur;Nishapur;Nishopur;Nişabur;Nīshābūr;Nīshāpūr;nishapu;nysabwr;nyshabwr;nyshapwr;Нишапур;Нишопур;نيسابور;نیشابور;نیشاپور;ニシャプー; +city::122438;Nazarabad;Nazarabad;Nazarabad-e Bozorg;Naz̧arābād;Naz̧arābād-e Bozorg;nazarabadi buzurg;nzr abad;نظر آباد;نَظَرابادِ بُزُرگ; +city::122698;Naqadeh;Nagadeh;Naghadeh;Naghdeh;Nakhuda;Naqadeh;Nākhuda;nqdh;نقده; +city::122915;Nahavand;Nachavant;Nagavande;Nahavand;Nahāvand;Nehavend;Nehāvend;Nihavand;Nīhāvand;nhawnd;nihavu~ando;Ναχαβάντ;Нагаванде;نهاوند;ニハーヴァンド; +city::123941;Minab;Minab;Mīnāb;mynab;Минаб;ميناب; +city::124085;Miandoab;Meyandoab;Meyāndoāb;Miandoab;Miandow Ab;Miandowab;Mianduab;Miyandoab;Miyanduab;Miyāndūāb;Mīyāndoāb;Mīāndow Āb;Mīāndowāb;Mīāndoāb;Mīāndūāb;myandwab;Миандоаб;میاندوآب; +city::124193;Meybod;Maibud;Meybod;mybd;ميبد; +city::124620;Masjed Soleyman;Masjed Soleiman;Masjed Soleyman;Masjed Soleymān;Masjed-e Soleyman;Masjed-e Soleymān;Masjid-i-Sulaiman;msjd slyman;مسجد سلیمان; +city::124665;Mashhad;Gorad Meshkhed;MHD;Masant;Masat;Maschhad;Mashad;Mashado;Mashhad;Mashkhad;Masyhad;Maxhad;Maŝhado;Maşat;Mašhad;Mașhad;Meixad;Meshed;Mesheda;Meshedas;Meshkhed;MeshkhӀed;Meszhed;Mexed;Meşhed;Mešheda;Mešhedas;Məshəd;Məşhəd;ma shen ha de;mach had;macukat;masahada;mashuhado;masyuhadeu;meshhedi;mshd;mshhd;Μασάντ;Горад Мешхед;Машхад;Машҳад;Мешхед;МешхӀед;Мешһед;Мәшһәд;Մաշհադ;משהד;مشهد;مشہد;مەشھەد;मशहद;মাশহাদ;ਮਸ਼ਹਦ;மசுகாத்;മശ്‌ഹദ്;มัชฮัด;მეშჰედი;マシュハド;馬什哈德;마슈하드; +city::124778;Marivan;Dezh Shahpur;Dezh Shapoor;Dezh Shāhpūr;Marivan;Marīvān;Qal`eh-ye Marivan;Qal‘eh-ye Marīvān;dizh shahpwr;mrywan;دِژ شاهپور;قَلعِۀ مَريوان;مریوان; +city::124862;Marand;Marand;Morand;mrnd;Маранд;مرند; +city::125185;Malayer;Daulatabad;Daūlatābād;Dowlatabad;Dowlatābād;Malayer;Malāyer;mlayr;ملایر; +city::125188;Malard;Malar;Malard;Malār;Malārd;Melard;Melārd;malar;mlard;ملارد;مَلار; +city::125446;Mahabad;Mahabad;Mahābād;Makhabad;Mehabad;Mehābād;Saujbulagh;Sāūjbulāgh;mah abad;mhabad;mih abad;Махабад;مهاباد;مَه آباد;مِه آباد; +city::125897;Langarud;Langarood;Langarud;Langarūd;Langerud;Langerūd;Shahr-e Langarud;Shahr-e Langarūd;lngrwd;لنگرود; +city::126409;Kuhdasht;Kuh-i-Dasht;Kuhdasht;Kūh-ī-Dasht;Kūhdasht;kwhdsht;کوهدشت; +city::126972;Khvoy;KHY;Khoi;Khowy;Khoy;Khvoy;khwy;خوی; +city::127319;Khorramshahr;Al-Muhammarah;Choremsehras;Choremšehras;Chorramsahr;Chorramschahr;Chorramszahr;Chorramšahr;Horamsaher;Horamšaher;Huerremsehr;Hürremşehr;Jorramchar;Khoramshahr;Khorram Shahr Abadan;Khorram Shahr Ābādān;Khorramchahre;Khorramshahr;Khorramxahr;Khorremshekhr;Khunin Shahr;Khurramshahr;Khūnīn Shahr;Koramshar;Koramsjar;Mohammerah;Muhammerah;Xürrəmşəhr;almhmrt;bndr khrmshhr;horramushafuru;huo la mu sha he er;khrmshhr;khurramasahara;Корамшар;Хорремшехр;Хуррамшаҳр;المحمرة;بندر خرمشهر;خرمشهر;خرمشھر;खुर्रमशहर;ホッラムシャフル;霍拉姆沙赫尔; +city::127349;Khorramabad;KHD;Khorramabad;Khorramābād;Khur Ramabad;Khur Ramābād;Khurramobod;khrm abad;Хуррамобод;خرم آباد; +city::127403;Khomeyn;Khomein;Khomeyn;Khomeīn;Khowmeyn;Khumain;Khūmaīn;khmyn;khumin;خمين;خُومِين; +city::128008;Khalkhal;Harau;Harowabad;Herau;Herauabad;Heroabad;Herow;Herowabad;Herowābād;Heroābād;Hirabad;Hirābād;Khalkhal;Khalkhāl;hrw abad;khlkhal;خلخال;هرو آباد; +city::128226;Kermanshah;Bahtaran;Bakhtaran;Bākhtarān;KSH;Kermansah;Kermansaho;Kermanschah;Kermanshah;Kermanshahan;Kermanshakh;Kermanŝaho;Kermânsâh;Kermānschāh;Kermānshāh;Kermānshāhān;Kirmansah;Kirmanşah;Kirmasan;Kirmaşan;Province de Kermanshah;Provincia de Kermanshah;Provinco Kermansah;Provinco Kermanŝah;Província de Kermanshah;Qahremanshahr;Qahremānshahr;astan krmanshah;ke er man sha he;kerumansha;krmanshah;Керманшах;Кирмоншоҳ;Устони Кирмоншоҳ;استان کرمانشاه;كرمانشاه;کرمانشاه;ケルマーンシャー;克尔曼沙赫; +city::128234;Kerman;Carmana;Dakbayan sa Kerman;Dakbayan sa Kermān;Gorad Kerman;KER;Kerman;Kermanas;Kermano;Kermon;Kermán;Kermān;Kirman;Kirmon;karmana;ke er man;keleuman;kermani;keruman;krman;Горад Керман;Керман;Кирмон;Կերման;כרמאן;كرمان;کرمان;कर्मान;ქერმანი;ケルマーン;克尔曼;케르만; +city::128321;Kazerun;Kasrun;Kazarun;Kazeroun;Kazerun;Kazeruna;Kāzarūn;Kāzerūn;kazrwn;Казеруна;كازرون; +city::128447;Kashmar;Kashmar;Khashmar;Kāshmar;Soultanabad;Torshiz;Torshīz;Turshiz;Turshīz;kashmr;کاشمر; +city::128747;Karaj;Heredi;Karadj;Karadje;Karadsch;Karadz;Karadzs;Karadż;Karadž;Karag;Karaj;Karatz;Karaĝ;Karej;Kerec;Keredi;Keredzas;Keredzh;Keredžas;Kerezh;Kərəc;Leredi;PYK;QKC;Qasabeh-e Karaj;Qaşabeh-e Karaj;ka la ji;kairaija;kalaji;karaj;karaji;kha rac;krj;kyaraji;qasabihi karaj;Καράτζ;Карай;Караџ;Караҷ;Кередж;Кереж;כאראג;قَصَبِهِ كَرَج;كرج;کرج;کەرەج;कैरैज;கராஜ்;คาราจ;ქარაჯი;キャラジ;卡拉季;카라지; +city::128831;Kangavar;Kangavar;Kangāvar;kngawr;کنگاور; +city::128905;Kamyaran;Kamyaran;Kāmyārān;kamyaran;کامیاران; +city::130802;Ilam;Elam;Elām;IIL;Ilam;ailam;aylam;ylam;Īlām;Илам;اِلام;ایلام;يلام; +city::131962;Harsin;Harsin;Harsīn;hrsyn;هرسین; +city::132144;Hamadan;Ecbatana;HDM;Hamadan;Hamadān;Hamedan;Hamedān;Khamadan;hmdan;Хамадан;همدان; +city::132892;Gorgan;Asterabad;Asterābād;GBT;Gorgan;Gorgān;Gurgan;Gurgon;Gūrgān;Hirkanio;aastir abad;grgan;gwrgan;Горган;Гургон;اَستِر آباد;گرگان;گورگان; +city::132938;Gonbad-e Kavus;Dashte Gorgan;Gonbad Qabus;Gonbad Qavoos;Gonbad Qābūs;Gonbad-e Kavus;Gonbad-e Kāvūs;Gonbad-e Qabus;Gonbad-e Qābūs;Gunbad-i-Kawas;Gunbad-i-Kawus;Gunbad-i-Kāwās;Gunbad-i-Kāwūs;Gunbad-i-Qabus;Gunbad-i-Qābūs;gnbd kawws;gnbd qabws;گنبد قابوس;گنبد کاووس; +city::134217;Bandar-e Ganaveh;Bandar Ganaveh;Bandar Ganāveh;Bandar-e Ganaveh;Bandar-e Ganāveh;Bandar-e Genaveh;Bandar-e Genāveh;Bandar-e-Gonaveh;Bandar-e-Gonāveh;Ganaveh;Ganāveh;Genaveh;Genāveh;Gonaveh;Gonāveh;Kenareh;Kenâreh;bndri gnawh;ganawih;بندرِ گناوه;گَناوِه; +city::134518;Firuzabad;Firuzabad;Fīrūzābād;fyrwz abad;فیروز آباد; +city::134721;Fasa;FAZ;Fasa;Fassa;Fasā;fsa;فسا; +city::135298;Esfarayen;Esfarayen;Esfarāyen;Meyanabad;Meyanābād;Mianabad;Miyanabad;Mīyānābād;Mīānābād;asfrayn;اسفراین; +city::135423;Shahrud;Emamshahr;Emāmshahr;RUD;Shahrud;Sharud;Shāhrūd;Shārūd;aimamshahr;shahrwd;sharwd;اِمامشَهر;شارود;شاهرود; +city::136014;Dogonbadan;Do Gonbadan;Do Gonbadān;Dogonbadan;Dow Gonbadan;Dow Gonbadān;Du Gunbadan;Du Gunbadān;GCH;Gachsaran;Gachsārān;du gunbadan;gchsaran;دُو گُنبَدان;گچساران; +city::136987;Dehdasht;Dehdasht;Dehdast;Kuhgiluyeh;dhdsht;dihdast;دهدشت;دِهدَست; +city::137956;Darab;Darab;Darab-e 2;Dārāb;Dārāb-e 2;Yek;darab;darab 2;yk;داراب;داراب ٢;يک; +city::138025;Damghan;Damghan;Dāmghān;damghan;دامغان; +city::139223;Chalus;Chalus;Chālūs;chalws;Чалус;چالوس; +city::139817;Bushehr;Abu Shahr;Abu Shehr;Abuschehr;BUZ;Bandar Abu Shehr;Bandar Bushehr;Bandar Būshehr;Bandar-e Bushehr;Bandar-e Būshehr;Bouchehr;Buschehr;Buschir;Busehr;Bushehr;Busher;Bushir;Bushire;Būshehr;Būšehr;bndr bwshhr;bwshhr;bwshihr;Бушер;Бушир;Бӯшеҳр;Бӯшиҳр;بندر بوشهر;بوشهر;بوشِهر; +city::139889;Bukan;Bokan;Bowkan;Bowkān;Bukan;Būkān;bwkan;Букан;بوکان; +city::140044;Borujerd;Borudzherd;Borujerd;Borūjerd;Burujird;Būrūjīrd;brwjrd;bwrwjyrd;Боруджерд;بروجرد;بوروجيرد; +city::140046;Borujen;Amrujan;Amrūjān;Beroojen;Borujan;Borujen;Borūjen;Borūjān;Burujan;Burūjān;Urujan;Urūjān;aamrwjan;birujin;brwjn;burwjan;اَمروجان;بروجن;بُروجان;بِرُّجِن; +city::140097;Borazjan;Borazdjan;Borazjan;Borazjun;Borāzjān;Borāzjūn;brazjan;burazdjan;برازجان;بُرَزدجَن; +city::140380;Bojnurd;BJB;Bodzhnurd;Bojnord;Bojnourd;Bojnurd;Bojnūrd;Bujnurd;Bujnūrd;bjnwrd;Боджнурд;بجنورد; +city::140463;Birjand;Birdjand;Birdschand;Birdzhend;Birjand;Bīrjand;XBJ;byrjnd;Бирдженд;Бӣрҷанд;بيرجند;بیرجند; +city::140521;Bijar;Bidzhar;Bijar;Bījār;byjar;Биджар;بيجار; +city::140889;Bonab;Benab;Benāb;Binab;Bināb;Bonab;Bonāb;Bunab;bnab;Бонаб;بناب; +city::140918;Behshahr;Ashraf;Behshahr;Bekhshekhr;aashraf;bhshhr;Бехшехр;اَشرَف;بهشهر; +city::140951;Behbahan;Behbahan;Behbahān;Behbehan;Behbehān;bhbhan;بهبهان; +city::141584;Baneh;Bane;Baneh;Bani;Bāneh;banh;bani;Бани;بانه;بَنِ; +city::141679;Bandar-e Anzali;Bandar Anzali;Bandar Pahlavi;Bandar Pahlevi;Bandar-e Anzali;Bandar-e Anzalī;Bandar-e Pahlavi;Bandar-e Pahlavī;Enceli;Enzeli;Pahlavi;Pahlavī;Pahlevi;Pahlevī;Pehlevi;bndr anzly;بندر انزلی; +city::141681;Bandar Abbas;BND;Bandar Abas;Bandar Abbas;Bandar Abbas - بندر عباس;Bandar Abbás;Bandar `Abbas;Bandar `Abbasi;Bandar ‘Abbās;Bandar ‘Abbāsī;Bandar-Abbas;Bandar-Abbasz;Bandar-Abbos;Bandar-Abbász;Bandar-e Abbas;Bandar-e `Abbas;Bandar-e ‘Abbās;Bandare Abasas;Bander Abbas;Bantar Ampas;Bender Abas;Bender Abbas;Bender Ebbas;Bender-Abbas;Bəndər Abbas;Cambarao;Cambarão;Gombroon;Gorad Bendehr-Abas;Gumrun;Port Comorao;Port Comorão;a ba si gang;ban dar xab bas;bandaleuabaseu;bandara abbasa;bandara-e-abbasa;bender-abasi;bndr ʻbʼs;bndr ʿbas;gumbrun;Μπαντάρ Αμπάς;Бандар-Аббос;Бендер Абас;Бендер-Аббас;Горад Бендэр-Абас;Բանդեր Աբբաս;בנדר עבאס;بندر عباس;بندرعباس;بَندَر عَبّاسی;بَندَرِ عَبّاس;بەندەر عەباس;گُمبرُّن;बंदर-ए-अब्बास;বন্দর আব্বাস;บันดาร์อับบาส;ბენდერ-აბასი;バンダレ・アッバース;阿巴斯港;반다르아바스; +city::141736;Bam;BXR;Bam;bamu;bm;Бам;بم;バム; +city::142363;Babol;Babol;Babol';Babul;Balfrush;Barfarush;Barfrush;Barfurush;Bābol;Bābul;Bārfurush;babl;Баболь;بابل; +city::142872;Asadabad;Asadabad;Asadabada;Asadābād;asd abad;Асадабада;اسد آباد; +city::143073;Ardakan;Ardakan;Ardakān;Ardekan;ardkan;اردکان; +city::143083;Ardabil;ADU;Ardabel;Ardabil;Ardabīl;Ardebil;Ardebīl;Erdebil;aardibyl;ardbyl;Ərdəbil;Ардабел;اردبيل;اردبیل;اَردِبيل; +city::143127;Arak;Arak;Arak - sawh;Arak - ساوه;Arok;Arāk;Ehrak;Soltanabad;Solţānābād;Sultanabad;Sultānābād;`Iraq;arak;sawh;sultan abad;Арак;Арок;Эрак;اراک;ساوه;سُلطان آباد;‘Irāq; +city::143534;Amol;Amol;Amol';Amul;aml;Āmol;Амоль;آمل; +city::143748;Alvand;Alband;Alvand;Alwand;El'vend;El’vend;alwnd;Алванд;الوند; +city::143860;Shahriar;Ali Shah `Iwaz;Ali Shāh ‘Iwaz;Shahreyar;Shahreyār;Shahriar;Shahriyar;Shahriyār;Shahrīār;Shakhrijar;`Ali Shah `Avaz;shhryar;Шахрияр;شهريار;‘Alī Shāh ‘Avaẕ; +city::143921;Aligudarz;Aligoodarz;Aligudarz;Alīgūdarz;`Ali Gudar;alygwdrz;Алигударз;اليگودرز;‘Ali Gudār; +city::144410;Akbarabad;Akbar Abad Kawar;Akbarabad;Akbarabad-e Kavar;Akbarābād;Akbarābād-e Kavār;akbr abad;Акбарабад;اکبر آباد; +city::144448;Ahvaz;AWZ;Ahvaz;Ahvaz - ahwaz;Ahvaz - اهواز;Ahvaza;Ahvazas;Ahvazo;Ahvoz;Ahváz;Ahvāz;Ahvāza;Ahwaz;Ahwāz;Akhvaz;Akhvaz shaary;Axvaz;Bandar Nasiri;Bandar Nāsirī;Bandar-e Naser;Bandar-e Nāşer;Ehvaz;Gorad Akhvaz;Naseri;Nasiri;Nāsiri;Nāşerī;a wa shi;abajeu;afuvu~azu;ahabaja;ahavaza;ahvazi;ahwaz;akvacu;alahwaz;Əhvaz;Ахваз;Ахваз шаары;Аҳвоз;Горад Ахваз;Ախվազ;אהוואז;ئەھواز;الأهواز;اهواز;اہواز;अहवाज़;আহবাজ;ਅਹਵਾਜ਼;ஆக்வாசு;ཨཱ་ཝཛ།;აჰვაზი;アフヴァーズ;阿瓦士;아바즈; +city::144616;Ahar;Ahar;Akhar;Eher;a ha er;ahaleu;ahara;ahr;Əhər;Ахар;Аҳар;أهر;اهر;اہار;اہر;अहार;阿哈尔;아하르; +city::144794;Abyek;Abiak;abyik;آبيِك; +city::145034;Abhar;Abhar;Abkhar;abhr;Абхар;ابهر; +city::145449;Abadeh;Abade;Abadeh;abadh;Ābādeh;Абаде;آباده; +city::145459;Abadan;ABD;Abadan;Abadana;Abadanas;Abadano;Abadán;Ampantan;Gorad Abadan;Obodon;a ba dan;abadan;abadana;abadani;Ábádán;Ābadāna;Ābādān;ʿbadan;Αμπαντάν;Абадан;Горад Абадан;Ободон;Աբադան;אבאדאן;آبادان;ابادان;عبادان;अबादान;ਆਬਾਦਾਨ;აბადანი;アバダーン;アーバーダーン;阿巴丹;아바단; +city::417594;Shahreza;; +city::418606;Najafabad;Nadzhafabad;Najafabad;Najafābād;Nejafabad;Nejafābād;njf abad;Наджафабад;نجف آباد; +city::418710;Khomeyni Shahr;Homayoon Shahr;Homayunshahr;Homāyūnshahr;Khomeyni Shahr;Khomeynishahr;Khomeynī Shahr;Khomeynīshahr;Sedeh;khmyny shhr;خمینی شهر; +city::418863;Isfahan;Aspadana;Dakbayan sa Esfahan;Dakbayan sa Esfahān;Esfahan;Esfahano;Esfahān;Esfehan;Eşfahān;Eşfehān;Gorad Isfakhan;IFN;Isfachan;Isfahan;Isfahana;Isfahanas;Isfahanum;Isfahon;Isfahán;Isfahāna;Isfakhan;Isfehan;Ispahan;Iszfahan;Iszfahán;Kota Isfahan;Spahan;Yspyhan;asfhan;aysfahan;esaphahana;esufahan;icupakan;isafahana;iseupahan;isfahana;isphahana;xis fa han;yi si fa han;Îsfehan;İsfahan;İsfehan;Ισφαχάν;Ісфахан;Горад Ісфахан;Исфахан;Исфаҳон;Исфаһан;Սպահան;אספהאן;أصفهان;ئسفأھان;ئەسفەھان;اصفهان;اصفہان;ایصفاهان;इस्फहान;इस्फ़हान;এসফাহন;ਇਸਫ਼ਹਾਨ;இசுபகான்;อิสฟาฮาน;ისპაანი;エスファハーン;伊斯法罕;이스파한; +city::1113217;Zabol;ACZ;Zabol;Zabol';Zābol;zabl;Заболь;زابل; +city::1159301;Zahedan;Dowzdab;Dowzdāb;Duzdab;Duzdap;Duzdāb;Duzdāp;Gorad Zakhedan;ZAH;Zahedan;Zahedan-e (Yek);Zahedanas;Zahedano;Zahedán;Zahidan;Zaidan;Zaidān;Zakhedan;Záhedán;Zāhedān;Zāhedān-e (Yek);cakitan;jahedan;jahedana;zahdan;zahedan;zahedana;zahedani;zha hei dan;Горад Захедан;Захедан;Зоҳидон;Զահեդան;زاهدان;زاہدان;ज़ाहेदान;জহেদন;சாகிதன்;ზაჰედანი;ザーヘダーン;扎黑丹;자헤단; +city::1159362;Torbat-e Jam;Torbat-e Jam;Torbat-e Jām;Torbat-e Sheykh Jam;Torbat-e Sheykh Jām;Turbat-i-Shaikh Jam;trbt jam;تربت جام; +city::1160571;Khash;Kavash;Khash;Khāsh;Kwash;Kwāsh;Vasht;Vāsht;khash;Хаш;خاش; +city::1160939;Iranshahr;Fahrej;Fehruj;IHR;Iranshahr;Qal`eh-ye Naseri;Qal‘eh-ye Nāşerī;ayranshhr;Īrānshahr;ايرانشهر; +city::10630176;Pasragad Branch;; +city::3413829;Reykjavik;Gorad Rehjkjavik;REK;Recwic;Refkiavik;Reiciavicia;Reicivic;Reikiavik;Reikiavike;Reikjaveks;Reikjavik;Reikjavika;Reikjavikas;Reikjavīka;Reiquiavik;Reiquiavique;Rejk'javik;Rejkijavik;Rejkjavik;Rejkjaviko;Rekyavik;Reykiavica;Reykjavik;Reykjavikur;Reykjavík;Reykjavíkur;Reykjawik;Reykyabik;Reykyavik;Rèkyavik;Réicivíc;Rēcwīc;Rėikjavėks;kartuli;lei ke ya wei ke;leikyabikeu;re'ikiyabhika;reikyavu~iku;rekavik;rekh ya wik;reki'avika;rekjabhika;rekjavika;rekyavika;reyikyavik;reykyavik;rykjawk;rykyafyk;rykyawk;rykyawyk;Ρέικιαβικ;Ρευκιαβικ;Горад Рэйкявік;Рейкиявик;Рейкьявик;Рейкявик;Рейкявік;Рејкјавик;Ռեյկյավիկ;רייקיאוויק;רעקיאוויק;ريكيافيك;ریکجاوک;ریکیاوک;ریکیاویک;رېيكياۋىك;ڕێکیاڤیک;रेक्जाविक;रेक्याविक;রেইকিয়াভিক;ਰੇਕਿਆਵਿਕ;ରେକ୍ଜାଭିକ;ரெய்க்யவிக்;రేకవిక్;റെയിക്യാവിക്;เรคยาวิก;རེཀ་ཇ་བིཀ།;რეიკიავიკი;ქართული;ሬይኪያቪክ;レイキャヴィーク;雷克亞維克;雷克雅未克;雷克雅維克;레이캬비크; +city::2522713;Vittoria;Vittoira;Vittoria;vu~ittoria;ヴィットーリア; +city::2522876;Trapani;Drepanum;TPS;Trapani;Trapena;Tràpani;Tràpena;Trápani;torapani;Трапани;טרפאני;トラーパニ; +city::2523083;Siracusa;Gorad Sirakuza;Lungsod ng Siracusa;QIC;Sarausa;Sioracus;Sioracús;Siracuesa;Siracusa;Siracuxa;Siracuza;Siracüsa;Sirakueza;Sirakusa;Sirakuz;Sirakuza;Sirakuzae;Sirakuzai;Sirakuzas;Sirakuze;Sirakuzo;Sirakuzy;Siraküza;Sirakūzai;Sirakūzas;Syracusae;Syracuse;Syrakouses;Syrakus;Syrakusa;Syrakusy;Syrakuzy;Syrakúzy;sayrakwz;shirakusa;si ra ku sa;silakusa;srqwst;syrakwz;syrqwzh;xi la ku zha;Συρακούσες;Горад Сіракуза;Сиракузæ;Сиракуза;Сиракузы;Сіракуза;Սիրակուզա;סירקוזה;سائراکوز;سرقوسة;سرقوسہ، صقلیہ;سیراکوز;ซีรากูซา;სირაკუზა;シラクサ;锡拉库扎;시라쿠사; +city::2523630;Reggio Calabria;REG;Redzho-di-Kalabrija;Reggio Calabria;Reggio de Calabre;Reggio de Calabria;Reggio de Calàbria;Reggio di Calabria;Regio;Regio de Calabria;Rhegium;Riggiu Calabbria;lei jiao ka la bu li ya;rg'w dy qlbryh;rydjw kalabrya;Реджо-ди-Калабрия;רג'ו די קלבריה;ريدجو كالابريا;レッジョ・ディ・カラブリア;雷焦卡拉布里亚; +city::2523650;Ragusa;QRG;Ragusa;Raguse;Raguza;Rausa;raguza;rgwzh;Рагуза;רגוזה;ラグーザ; +city::2523665;Quartu Sant'Elena;Cuartu Santa Aleni;Cuartu Santa Alèni;Quarto Sant'Elena;Quartu Sant'Elena; +city::2523920;Palermo;PMO;Palerm;Palerma;Palermas;Palerme;Palermo;Palermu;Panormus;Pałermo;ba lei mo shi;balyrmw;palermo;palleleumo;palrmw;parerumo;plrmw;Палерма;Палермо;פלרמו;باليرمو;پالرمو;पलेर्मो;パレルモ;巴勒莫市;팔레르모; +city::2524013;Nicastro-Sambiase;Nicastro;Nikastro;Никастро; +city::2524170;Messina;Mesina;Messana;Messina;Messine;Mesyna;Missina;QME;mesina;messhina;mo xi na;msynh;mysyna;Месина;Мессина;מסינה;ميسينا;メッシーナ;墨西拿;메시나; +city::2524245;Marsala;Marsala;QMR;marusara;Марсала;マルサーラ; +city::2524653;Gela;Dzhela;Gela;ge la;jera;jie la;Джела;ジェーラ;杰拉;格拉; +city::2524907;Cosenza;Cosenza;Cusenza;Kozenca;QCS;kozentsu~a;Козенца;コゼンツァ; +city::2525059;Catanzaro;Catanzara;Catanzaro;Catanzaru;Katandzaro;QCZ;katanchalo;katantsu~aro;Катандзаро;カタンツァーロ;카탄차로; +city::2525068;Catania;CTA;Catane;Catania;Catina;Catània;Catânia;Katane;Katania;Katanija;Katānija;katania;katanya;qtnyh;Κατάνη;Катания;Катанија;קטניה;كاتانيا;კატანია;カターニア; +city::2525448;Caltanissetta;Caltanisetta;Caltanissetta;Kal'tanissetta;Nissa;QCL;karutanissetta;qltnysth;Кальтаниссетта;קלטניסטה;カルタニッセッタ; +city::2525473;Cagliari;CAG;Cagliari;Cajari;Caliari;Caller;Caralis;Casteddu;Castel;Castèl;Càgliari;Càliari;Càller;Cáller;Gorad Kal'jary;Kagliari;Kal'jari;Kalari;Kaliari;Kaljari;Kaljaris;Kaljaro;Kaljāri;Kalyari;Lungsod ng Cagliari;ka li ya li;kagali'ari;kagliyari;kaglyary;kal ya ri;kaliyari;kalliali;kalyary;karyari;Κάλιαρι;Горад Кальяры;Кальяри;Кальярі;Каляри;Каљари;Կալիարի;קליארי;كالياري;کالیاری;کاگلیاری;कगलिआरी;काग्लियारी;கலியாரி;กาลยารี;კალიარი;カリャリ;卡利亚里;卡利亞里;칼리아리; +city::2525628;Bagheria;Bagerija;Bagheria;Багерия; +city::3164376;Vigevano;Vidzhevano;Vigebanum;Vigevano;vu~ijevu~ano;Виджевано;ヴィジェーヴァノ; +city::3164419;Vicenza;VIC;Vicence;Vicenza;Vicenzsa;Vicetia;Vichenca;vu~ichentsu~a;Виченца;ヴィチェンツァ; +city::3164527;Verona;VRN;Verona;Verone;Vérone;Werona;belona;fyrwna;verona;vu~erona;wei luo na;wrwna;wrwnh;Верона;ורונה;فيرونا;ورونا;वेरोना;ヴェローナ;维罗纳;베로나; +city::3164603;Venice;Benatky;Benetia;Benetke;Benezia;Benátky;Feneyjar;V'nise;VCE;Velence;Venecia;Venecia - Venezia;Venecija;Venecio;Venedeg;Venedig;Venedik;Venediku;Venesia;Venetia;Venetie;Venetik;Venetië;Venetsia;Veneza;Venezia;Venezsia;Veneția;Venice;Venies;Venise;Venizia;Venècia;Venèsia;Vignesie;Vinezzia;Wenecja;albndqyt;an Veineis;an Veinéis;benechia;beniseu;benisu;venetsia;vu~enetsu~ia;vu~enisu;wei ni si;wnyz;wnzyh;Βενετία;Венеция;Венеција;Венеція;Վենետիկ;ונציה;البندقية;ونیز;ۋېنىتسىيە;ვენეცია;ベニス;ヴェニス;ヴェネツィア;威尼斯;베네치아;베니스; +city::3164699;Varese;Baretium;QVA;Vareis;Varese;Vareze;Varèis;Varèse;vu~areze;wa lei ze;Варезе;ヴァレーゼ;瓦雷澤; +city::3165072;Udine;UDN;Udin;Udine;Удине; +city::3165185;Trieste;Gorad Tryest;TRS;Tergeste;Tergesti;Terst;Tit-li-nga-su-thit;Tit-lî-ngâ-sṳ̂-thi̍t;Triest;Triestas;Trieste;Triesti;Triesto;Triests;Trieszt;Triëst;Trst;de li ya si te;di li ya si te;teulieseute;toriesute;tri xe s te;tri'esta;tri'este;triyesrre;triyeste;trysth;tryysty;Τεργέστη;Горад Трыест;Триест;Трст;Трієст;Տրիեստ;טריאסטה;ترييستي;تریسته;تریستے;ٹریسٹ;ट्रिएस्ट;त्रिएस्ते;ত্রিয়েস্তে;ട്രിയെസ്റ്റെ;ตรีเอสเต;ტრიესტი;トリエステ;的里雅斯特;第里雅斯特;트리에스테; +city::3165201;Treviso;Tarvisium;Trevise;Treviso;Trevixo;Trevizo;Trévise;torevu~izo;trwwyzw;Тревизо;טרוויזו;トレヴィーゾ; +city::3165243;Trento;Gorad Trehnta;Treant;Trent;Trent/o;Trentas;Trente;Trento;Trentu;Trident;Tridentum;Trient;Trionta;Trydent;Trénto;ZIA;te lun tuo;teulento;torento;trntw;tryntw;Τρέντο;Горад Трэнта;Тренто;טרנטו;ترنتو;ترينتو;ٹرنٹو;ტრენტო;トレント;特伦托;트렌토; +city::3165322;Trani;Trani;Turenum;torani;Трани;トラーニ; +city::3165456;Torre del Greco;Torre d''o Grieco;Torre del Greco;Torre-del'-Greko;Торре-дель-Греко;トッレ・デル・グレーコ; +city::3165524;Turin;Augusta Taurinorum;Gorad Turyn;Julia Augusta Taurinorum;Lungsod ng Turino;TRN;Tori;Torin;Torino;Torinu;Torí;Tueri;Turen;Turijn;Turim;Turin;Turina;Turinas;Turino;Turinu;Turyn;Turén;Turìn;Turín;Turīna;Tórínó;Türì;dou ling;tolino;torino;tu rin;tulin;turin;turina;twryn;twrynw;Τορίνο;Горад Турын;Торино;Турин;Թուրին;טורין;טורינו;تورينو;تورین;टोरीनो;तोरिनो;তুরিন;துரின்;ตูริน;ཊུ་རིན།;ტურინი;トリノ;都灵;토리노;투린; +city::3165771;Terni;Interamna;Terni;teruni;Терни;テルニ; +city::3165926;Taranto;TAR;Taranto;Tarde;Tarent;Tarente;Tarento;Tarento - Taranto;Tarentum;Tàrent;taranto;tarantw;Таранто;تارانتو;ტარანტო;ターラント; +city::3166598;Sesto San Giovanni;Sesto;Sesto San Giovanni;セスト・サン・ジョヴァンニ; +city::3167022;Savona;Sann-a;Saona;Savo;Savo Oppidum Alpinum;Savon-a;Savona;Savone;savu~ona;Савона;サヴォーナ; +city::3167096;Sassari;QSS;Sassari;Sasser;Sàsser;Tatari;Tathari;Tattari;Tàthari;sasary;sassari;Сассари;ساساري;サッサリ; +city::3167731;San Severo;San Severo;サン・セヴェーロ; +city::3168673;Salerno;QSR;Salernas;Salerne;Salerno;Salernu;Salernum;Salierno;salyrnw;sareruno;Салерно;ساليرنو;サレルノ; +city::3169070;Rome;An Roimh;An Ròimh;An Róimh;Erroma;Hrom;Lungsod ng Roma;Mji wa Roma;ROM;Ramma;Rhufain;Rim;Rim";Roeme;Rom;Roma;Rome;Romma;Romo;Romë;Rooma;Roum;Rym;Rzym;Råmma;Rím;Róm;Róma;Urbs;loma;luo ma shi;rm;rom;roma;romi;rwm;rwma;rym;Řím;Ρώμη;Рим;Римъ;Ром;Рым;Հռոմ;רומא;رم;روم;روما;رىم;ܪܘܡܐ;रोम;रोमा;โรม;რომი;ሮማ;ローマ;罗马市;로마; +city::3169361;Rimini;Ariminum;RMI;Remin;Rimini;Rèmin;Rímini;rimini;rymyny;Римини;Ріміні;ريميني;リミニ; +city::3169522;Reggio nell'Emilia;Redzho-Ehmilija;Reggio;Reggio Emilia;Reggio nell'Emilia;ZRO;Реджо-Эмилия; +city::3169561;Ravenna;RAN;Ravena;Ravenna;Ravenne;Rawenna;Rávena;la wen na;ravenna;ravu~en'na;rwwnh;Равена;Равенна;רוונה;रवेन्ना;ラヴェンナ;拉文納; +city::3169921;Prato;Prato;Pratu;Pre;Prè;bratw;pu la tuo;purato;Прато;براتو;プラート;普拉托; +city::3170027;Potenza;Oppido Lucano;Potentia;Potenza;Putenza;QPO;potentsu~a;ポテンツァ; +city::3170116;Portici;Portichi;Portici;Puortece;bwrtysh;porutichi;Портичи;بورتيش;ポルティチ; +city::3170621;Pistoia;Pistoia;Pistoja;Pistojja;Pistola;Pistoria;Pistòja;pisutoia;Пистойя;ピストイア; +city::3170647;Pisa;PSA;Pisa;Pisae;Pise;Piza;Pizo;Písa;bi sa;byza;pisa;pyzh;Пиза;פיזה;بيزا;पीसा;ピサ;比萨; +city::3171058;Piacenza;P'jachehnca;P'jachenca;Piacenza;Piaseinsa;Piasensa;Piasëinsa;Placencia;Placentia;Placência;Plaisance;Plasencia;QPZ;pi ya qin cha;piachentsu~a;pyachnza;П'ячэнца;Пьяченца;پیاچنزا;ピアチェンツァ;皮亚琴察; +city::3171168;Pescara;PSR;Pescara;Peskara;byskara;pesukara;Пескара;بيسكارا;ペスカーラ; +city::3171173;Pesaro;Pesaro;Pesaru;Pezaro;Pisaurum;Pèsaru;pezaro;Пезаро;ペーザロ; +city::3171180;Perugia;PEG;Perosa;Perouse;Perudzha;Perugia;Perusa;Perusia;Pérouse;byrwdja;pei lu jia;peruja;prwg'h;Перуджа;Перуђа;פרוג'ה;بيرودجا;ペルージャ;佩鲁贾; +city::3171366;Pavia;Papia;Pavia;Pavie;Pavija;Pavio;Pavìa;Pavía;Pawia;Ticinum;pa wei ya;pavu~ia;Павия;パヴィア;帕維亞; +city::3171457;Parma;PMF;Parma;Parme;Perma;Pèrma;barma;parma;paruma;Парма;פארמה;بارما;پارما;パルマ; +city::3171728;Padova;Padoa;Padoue;Padova;Padovo;Padua;Paduja;Padwa;Patavium;Pàdua;Pádua;QPA;badwfa;pa duo wa;padoba;padovu~a;Падова;Падуа;Падуя;פאדובה;بادوفا;პადუა;パドヴァ;帕多瓦;파도바; +city::3172189;Novara;Novara;Novare;Novaria;Nuara;Nuvara;novu~ara;Новара;ノヴァーラ; +city::3172394;Naples;Gorad Neapal';NAP;Napels;Naples;Naplés;Napoles;Napoli;Napolo;Napols;Napoly;Nappoli;Napul;Napule;Napuli;Napulj;Napólí;Neapel;Neapelj;Neapol;Neapol';Neapole;Neapolis;Noapels;Nàpoli;Nàpols;Nàpuli;Nàpułi;Nápoles;Nápoli;Nápols;Nápoly;Parthenope;na bu lei si;nabwly;napl;napoli;napolli;napori;napwly;nepalasa;nepalsa;nepeils;nyplz;Νάπολη;Горад Неапаль;Напуљ;Неапол;Неаполь;Նեապոլ;נאפאלי;נאפולי;نابولي;ناپل;ناپولی;نیپلز;नापोलि;नापोली;नेपल्स;নেপলস;நாபொலி;เนเปิลส์;ნეაპოლი;ナポリ;那不勒斯;나폴리; +city::3172629;Monza;Modicia;Monca;Monsa;Monza;Munscia;meng zha;mnza;montsu~a;mwnzh;Монца;מונצה;منزا;モンツァ;蒙扎; +city::3173287;Molfetta;Mol'fetta;Molfetta;Мольфетта; +city::3173331;Modena;Modena;Modene;Modna;Modène;Mutina;Mòdena;Mòdna;Módena;ZMO;modena;mwdyna;Модена;مودينا;モデナ; +city::3173435;Milan;Lungsod ng Milano;MIL;Mailand;Mediolan;Mediolanum;Mila;Milaan;Milan;Milana;Milanas;Milano;Milanu;Milao;Milà;Milán;Miláno;Milánó;Milão;Milāna;Mílanó;Mилан;mi lan;milan;milani;millano;mirano;mylan;mylanw;Милан;Милано;Мілан;מילאנו;مىلان;ميلانو;மிலன்;มิลาน;მილანი;ミラノ;米蘭;밀라노; +city::3173529;Mestre;Mestracum;Mestre;Mestre bei Venedig;mei si te lei;mesutore;mstrh;Местре;מסטרה;メストレ;梅斯特雷; +city::3173721;Matera;Matera;Materia;matera;Матера;マテーラ; +city::3173775;Massa;Massa;massa;Масса;マッサ; +city::3174092;Manfredonia;Manfredonia;Manfredonija;Manfredònia;manfuredonia;Манфредония;マンフレドーニア; +city::3174530;Lucca;LCV;Locca;Luca;Lucca;Lucques;Luka;Lukka;lu ka;rukka;Лука;Лукка;ルッカ;卢卡; +city::3174659;Livorno;Labro;Leghorn;Levuorno;Liborno;Liorna;Livorn;Livornas;Livorno;Livornu;Livourne;lybwrnw;lyfwrnw;rivu~oruno;Λιβόρνο;Ливорно;ליבורנו;ليفورنو;リヴォルノ; +city::3174741;Lido di Ostia;Lido di Ostia;Lido di Roma;Lido-di-Ostija;Lido-di-Roma;Ostia Lido;Лидо-ди-Остия;Лидо-ди-Рома; +city::3174921;Legnano;Legnano;Len'jano;renyano;Леньяно;レニャーノ; +city::3174953;Lecce;LCC;Lecce;Lecci;Lece;Lechche;Leche;Letse;Lečė;Lungsod ng Lecce;Lupiae;Luppiu;lai qie;lchh;leche;letce;li che;lychy;lytshy;lzh;retche;Λέτσε;Лече;Лечче;Լեչե;לצה;ليتشي;لچه;لیچہ;لیچی;लेत्चे;ლეჩე;レッチェ;壢車;萊切;레체; +city::3175058;Latina;Latina;Littoria;QLT;ratina;Латина;ラティーナ; +city::3175081;La Spezia;La Specija;La Spezia;QLP;Specija;Spedia;Speza;Spezia;Ла Специја;Специя;ラ・スペツィア; +city::3175537;Imola;Forum Cornelii;Imola;Iommla;imora;Ímola;Имола;イーモラ; +city::3175786;Grosseto;GRS;Grosseto;Гроссето; +city::3176059;Giugliano in Campania;Giuglian;Giugliano;Giugliano in Campania;Giugliàn;ジュリアーノ・イン・カンパーニア; +city::3176219;Genoa;Cenova;Dzenova;Dženova;GOA;Genes;Genoa;Genova;Genovo;Genua;Genuja;Genès;Genúa;Gènova;Génova;Gênes;Janov;Xenova - Genova;Xénova - Genova;Zena;genua;jeno'a;jenoba;jenovu~a;jnwa;jnwt;re na ya;Ĝenovo;Ђенова;Генуа;Генуя;גנואה;جنوا;جنوة;जेनोआ;გენუა;ジェノヴァ;热那亚;제노바; +city::3176391;Gallarate;Gallarate;Галларате; +city::3176746;Forli;FRL;Forli;Forlì;Forum Livii;foruri;Форли;フォルリ; +city::3176885;Foggia;FOG;Fodzha;Foggia;Fovea;byrwdja;fojja;fwdja;Фоджа;بيرودجا;فودجا;フォッジャ; +city::3176959;Florence;FLR;Fflorens;Firenca;Firence;Firense;Firenz;Firenze;Firenzi;Florans;Floransa;Florenc;Florenca;Florence;Florenceje;Florenci;Florencia;Florencie;Florencij;Florencija;Florencja;Florenco;Florencėjė;Florens;Florensa;Florensiya;Florensya;Florenta;Florentia;Florentzia;Florenz;Florença;Florența;Florâns;Florència;Floréncia;Florénsa;Flórans;Flórens;Gorad Flarehncyja;Lungsod ng Florencia;Sciorenza;fei leng cui;firentsu~e;florensa;flwrans;flwrns;flwrnsa;flxrens;fu luo lun sa;peullolenseu;phlorens;phlorensa;pilenche;plorentsia;pyrnzh;Φλωρεντία;Горад Фларэнцыя;Фиренца;Флоренц;Флоренци;Флоренций;Флоренция;Флоренція;Ֆլորենցիա;פירנצה;פירענצע;فلورانس;فلورنس;فلورنسا;फ़्लोरेन्स;फ्लोरेन्स;ফ্লোরেন্স;ఫ్లోరెన్స్;ഫ്ലോറൻസ്;ฟลอเรนซ์;ཧྥུ་ལོ་རོན་ཟིའུ་ཡ།;ფლორენცია;フィレンツェ;佛罗伦萨;翡冷翠;플로렌스;피렌체; +city::3177090;Ferrara;Ferrara;Ferrare;Феррара; +city::3177363;Ercolano;Ercolano;Gerkulanum;Resina;Геркуланум; +city::3177838;Cremona;Cremon-a;Cremona;Cremone;Crémone;Kremona;ke lei mo na;keulemona;kuremona;Кремона;クレモナ;克雷莫納;크레모나; +city::3178229;Como;Com;Come;Como;Còm;Côme;Komo;Novum Comum;QCM;ke mo;komo;Комо;コモ;科莫; +city::3178671;Cinisello Balsamo;Cinisello;Cinisello Balsamo;チニゼッロ・バルサモ; +city::3178957;Cesena;Caesena;Cesena;Cesene;Chezena;Césène;Zisena;Zisèna;chezena;Чезена;チェゼーナ; +city::3179075;Cerignola;Corignola; +city::3179661;Castellammare di Stabia;Castellammare;Castellammare di Stabia;Estabia;Estàbia;Kastelamare di Stabija;Stabiae;Stabie;Кастеламаре ди Стабија; +city::3179806;Casoria;Casoria;kazoria;カゾーリア; +city::3179866;Caserta;CTJ;Caserta;Caserte;Kazerta;kazeruta;Казерта;カゼルタ; +city::3180423;Carrara;Apuania;Carara;Carrara;Carrare;Karrara;karrara;Каррара;カッラーラ; +city::3180445;Carpi Centro;Carpi;Cherp;Chèrp;Karpi;karupi;Карпи;カルピ; +city::3181355;Busto Arsizio;Ansizio;Busto Arsizio;Bustum Arsitium;bu si tuo-a xi qi ao;布斯托-阿西齊奧; +city::3181528;Brindisi;BDS;Brindisi;Brindizi;Brinnese;Brundisium;Brìndisi;brindisi;burindiji;Бриндизи;ब्रिंडिसि;ブリンディジ; +city::3181554;Brescia;BRZ;Brescia;Bresha;Breshija;Bresia;Bressia;Brixia;Bréscia;QBS;bryshya;bu lei xi ya;bureshia;Бреша;Брешия;بريشيا;ブレシア;布雷西亚; +city::3181913;Bolzano;BZO;Bal'cana;Bauzanum;Bocen;Bocenas;Boceno;Bol'cano;Bolcano;Bolcāno;Bolzan;Bolzano;Bolzanu;Bolzán;Bozen;Bozen-Bolzano;Bozn;Bulsaun;Buzzanu;Mpoltzano;bo er cha nuo;borutsu~ano;bwlznw;Μπολτζάνο;Бальцана;Болцано;Больцано;Боцен;בולצנו;ボルツァーノ;波尔查诺; +city::3181928;Bologna;BLQ;Baljon'ja;Bologna;Bologne;Bolon'ja;Bolona;Bolonha;Bolonia;Bolonija;Bolonja;Bolonjo;Bolonya;Boloņa;Boloňa;Bononia;Bulaggna;Bulogna;Bulåggna;bo luo ni ya;bollonya;boronya;bwlwnya;bwlwnyh;Балёнья;Болонья;Болоня;Болоња;בולוניה;بولونيا;ボローニャ;博洛尼亚;볼로냐; +city::3181995;Bitonto;Bitonto;bitonto;ビトント; +city::3182007;Bisceglie;Bisceglie;Bishell'e;bisherie;Бишеллье;ビシェーリエ; +city::3182164;Bergamo;Bergam;Bergame;Bergamo;Berghem;Bergomum;Bèrgam;Bèrghem;Bérgamo;Bérghem;bei er jia mo;bergamo;berugamo;byrghamw;Бергамо;بيرغامو;बेर्गमो;ベルガモ;贝尔加莫; +city::3182340;Barletta;Barletta;baruretta;Барлетта;バルレッタ; +city::3182351;Bari;BRI;Bari;Baris;Barium;Bary;Mpari;ba li;bali;bari;bary;Μπάρι;Μπαρι;Бари;Барі;בארי;باري;باری;बरि;बारी;বারি;ბარი;バーリ;巴里;바리; +city::3182640;Aversa;Aversa;Averza;avu~erusa;Аверса;アヴェルサ; +city::3182714;Asti;Ast;Asti;Hasta Pompeia;asuti;Асти;アスティ; +city::3182884;Arezzo;Arecco;Arezzo;Ареццо; +city::3183072;Andria;Andria;Andrija;andoria;Андрия;アンドリア; +city::3183089;Ancona;AOI;Ancona;Ancone;Anconn-a;Ancône;Ankona;an ke na;ankona;Анкона;アンコーナ;安科纳; +city::3183178;Altamura;Altamura;arutamura;Алтамура;アルタムーラ; +city::3183299;Alessandria;Alesandrija;Alessandria;Alessandrija;Alexandria;Alexandrie;Lissandria;QAL;aressandoria;aressandoria xian;Алесандрия;Алессандрия;Алессандрія;アレッサンドリア;アレッサンドリア県; +city::3183455;Afragola;Afragola;Afravola;afuragora;Афрагола;アフラゴーラ; +city::3183539;Acilia-Castel Fusano-Ostia Antica;; +city::3183541;Acerra;Acerra;Acerrae;acherra;アチェッラ; +city::6534228;Guidonia Montecelio;Guidonia; +city::6534232;Lamezia Terme;Lamezia;Lamezia Terme;SUF; +city::3488465;Spanish Town;Hispanurbo;Saint Jago de la Vega;Spanis Taoun;Spanis Taunas;Spanish Town;Spanish-Taun;Spaniš Taunas;sbanysh tawn;seupaenisitaun;xi ban ya zhen;Σπάνις Τάουν;Спаниш-Таун;سبانيش تاون;سپینش ٹاؤن;スパニッシュ・タウン;西班牙鎮;스패니시타운; +city::3488981;Portmore;Portmore; +city::3489460;Montego Bay;Bahia Montego;Bahía Montego;MBJ;Mantica Bahia;Montego;Montego Bay;Montego Bejus;Montego Bėjus;Montego-Bej;Montenko Bey;Monteqo-Bey;mamtego be;meng te ge bei;montegobei;mwntgwby;mwntyghw bay;mwntygw byy;Μοντέγκο Μπέυ;Монтего-Бей;מונטיגו ביי;مونتيغو باي;مونتگوبی;مونٹیگو بے;माँटेगो बे;モンテゴ・ベイ;蒙特哥貝;몬테고베이; +city::3489854;Kingston;KIN;Kin'nkston;Kingston;jing si dui;kingseuteon;kingusuton;kyngstwn;Κίνγκστον;Кингстон;کینگستون;キングストン;京斯敦;킹스턴; +city::246013;Wadi as Sir;Wadi Al Seer;Wadi Sir;Wadi as Sayr;Wadi as Sir;Wadi es Sir;Wadi es Sīr;Wādī as Sayr;Wādī as Sīr;wady alsyr;وادي السير; +city::248370;Ma'daba;Ma'daba;Madaba;Madeba;Ma’dabā;Medeba;Meideva;Meidevā;Mādabā;Mādeba;madba;mhafzt madba;mydbʼ;Мадаба;מידבא;مأدبا;مادبا;محافظة مادبا; +city::248382;Ma'an;Ahamant;MPQ;Ma'an;Ma`an;Ma‘ān;معان; +city::248946;Irbid;Arbela;Arbēla;Gorad Irbid;Irbid;Irbidas;QIR;arbd;ileubideu;irubido;yi er bi de;İrbid;Ірбід;Горад Ірбід;Ирбид;Ирбид қаласы;Իրբիդ;אירביד;إربد;اربد;イルビド;伊爾比德;이르비드; +city::250090;Zarqa;Az Zarqa';Az Zarqā’;Ehz-Zarka;Kalaat el Zerka;QZA;Qal'at az Zarqa';Qal‘at az Zarqā’;Zarka;Zarqa;Zerka;jaleuka;zaruka;zha er ka;Зарка;Эз-Зарка;الزرقاء;زرقاء;ザルカ;扎尔卡;자르카; +city::250258;As Salt;Al-Salt;As Salt;As Salţ;As-Sal't;Es Salt;Ramoth Gil`ad;Rāmoth Gil‘ād;Salt;alslt;Ас-Сальт;السلط; +city::250336;Ar Ramtha;Ar Ramtha;Ar Ramthā;El Remteh;Er Remtha;Ramtha;alrmtha;الرمثا; +city::250441;Amman;'Amman;AMM;Ama;Aman;Amanas;Amani;Amano;Amans;Amman;Ammana;Ammon;Ammán;Ammān;Ammāna;Amàn;Amán;Amã;Gorad Aman;Philadelphia;Rabbah;Rabbath Ammon;am'man;am'mana;aman;amana;amani;amman;an man;anman;xam man;yamman;ʻmʼn;ʿman;ʿmʾn;Αμμάν;Аман;Амман;Аммон;Горад Аман;Ամման;אמאן;עמאן;ئاممان;امان;عمان;عمان شہر;عمّان;عَمّان;عەممان;ܥܡܐܢ;अम्मान;আম্মান;ਅਮਾਨ;அம்மான்;ಅಮ್ಮಾನ್;അമ്മാൻ;อัมมาน;ཨམ་མན།;ამანი;አማን;‘Ammān;アンマン;安曼;암만; +city::250582;Mafraq;Al Mafraq;Al-Mafrak;Ehl'-Mafrak;El-Fedein;Kalat el Mafrak;Mafrak;Mafrakas;Mafraq;OMF;Qal`at al Mafraq;Qal`at el Mafraq;Qal‘at al Mafraq;Qal‘at el Mafraq;almfrq;ma fu la ke;mafuraku;mapeulakeu;mfrq;mprq;shhr almfrq;Эль-Мафрак;מפרק;المفرق;شهر المفرق;مفرق;マフラク;馬弗拉克;마프라크; +city::250774;Aqaba;AQJ;Akaba;Akabe;Al-'Aqabah;Al-‘Aqabah;Aqaba;Qal`at el `Aqaba;`Aqaba;akaba;ya ke ba;Акаба;עקבה;العقبة;عقبه;アカバ;亞喀巴; +city::250799;'Ajlun;Adjlun;Adzhlun;Ajloun;`Ajlun;Аджлун;عجلون;‘Ajlūn; +city::7838895;Russeifa;Rusaifa;Russayfah;ar-Russayfah; +city::11428685;Rukban;; +city::1847963;Atsugi;Acugi;Atsugi;Atsugicho;Atsugichō;Atsuki;Atugi;Atugi-chhi;Atugi-chhī;NJA;asseugi si;atswghy;atswgy kanagawa;hou mu;hou mu ding;hou mu shi;xa sungi;Атсуги;Ацуги;Ацуґі;آتسوگی، کاناگاوا;أتسوغي;اتسوگی، کاناگاوا;อะสึงิ;厚木;厚木市;厚木町;아쓰기 시; +city::1847966;Akashi;Akashi;Akasi;Akasi-chhi;Akasi-chhī;Akasis;Akasyi;Akaşi;Akašis;akashy;akashy hywgw;akasi si;ming shi;ming shi shi;xa ka chi;Акаси;Акаши;Акаші;آکاشی;آکاشی، هیوگو;أكاشي;อะกะชิ;明石;明石市;아카시 시; +city::1847968;Zushi;Zushi;dou zi;zushi;ずし;ズシ;逗子; +city::1848004;Zama;Dzama;Sama;Zama;Zama-chhi;Zama-chhī;jama si;sa ma;zama;zama kanagawa;zuo jian;zuo jian shi;Дзама;Зама;زاما;زاما، کاناگاوا;ซะมะ;座間;座間市;자마 시; +city::1848087;Yukuhashi;Jukukhashi;Jukukhasi;Yukihashi;Yukuhashi;Yukuhasi-chhi;Yukuhasi-chhī;Yukuhasyi;xing qiao;xing qiao shi;yukuhasi si;ywkhashy fwkwka;ywkwhashy;ywkwhashy fwkwywka;Юкухаси;Юкухаші;Юкуҳаши;يوكوهاشي;یوکحاشی، فوکوکا;یوکوهاشی، فوکوئوکا;行橋;行橋市;유쿠하시 시; +city::1848096;Yuki;Juki;Yuki;Yuki-chhi;Yuki-chhī;Yūki;jie cheng;jie cheng shi;yky abaraky;yuki;yuki si;ywky;ywky aybaraky;Юки;Юкі;يوكي;یوکی، ایباراکی;یکی، اباراکی;ยูกิ;結城;結城市;유키 시; +city::1848188;Yoshikawa;Esikava;Yoshikawa;ji chuan;Есикава;吉川; +city::1848254;Yono;; +city::1848277;Yonago;Jonagas;Jonago;YGJ;Yonago;Yonago-chhi;Yonago-chhī;ionago;mi zi;mi zi shi;yonago si;ywnaghw;ywnaghw twtwry;ywnagw twtwry;Ёнаго;Јонаго;Йонаго;Йонаґо;يوناغو;يوناغو، توتوري;یوناگو، توتوری;یوناگو، توتٹوری;იონაგო;米子;米子市;요나고 시; +city::1848313;Yokosuka;Gorad Iakosuka;Jokosuka;Yokosuka;Yokosuka-chhi;Yokosuka-chhī;heng xu he;heng xu he shi;yoa koa suk a;yokoseuka si;ywkwska knagwa;ywkwswka;ywkwswka kanagawa;ywqwswqh;Ёкосука;Јокосука;Горад Іакосука;Йокосука;יוקוסוקה;يوكوسوكا;یوکوسوکا، کاناگاوا;یوکوسکا، کناگوا;โยะโกะซุกะ;იოკოსუკა;横須賀;横須賀市;橫須賀市;요코스카 시; +city::1848354;Yokohama;Iokogama;Jokohama;Jokohamo;Jokokhama;YOK;Yokohama;Yokohama-shi;Yokohamashi;heng bang;heng bang shi;heng bin shi;yoa koa ha ma;yokohama;yokohama si;yokohamashi;ywkwhama;ywqwhmh;Јокохама;Иокогама;יוקוהמה;يوكوهاما;โยะโกะฮะมะ;იოკოჰამა;よこはま;よこはまし;ヨコハマ;ヨコハマシ;横浜;横浜市;横滨市;요코하마 시; +city::1848373;Yokkaichi;Gorad Jokaici;Jokaichi;Jokkaichi;Jokkaiti;Yokkaichi;Yokkaiti;Yokkaiti-chhi;Yokkaiti-chhī;Yokkaitsi;si ri;si ri shi shi;yk ki chi;yoskaichi si;ywkaychy myh;ywkaytshy;ywkychy myy;Ёккаичи;Јокаичи;Горад Ёкаіці;Йокаичи;Йоккаити;Йоккаичи;Йоккаїті;يوكايتشي;یوکایچی، میه;یوکای‌ایچی، میه;یوکیچی، مئی;ยกไกชิ;四日;四日市市;욧카이치 시; +city::1848439;Yawata;Jauata;Javata;Jaŭata;Yahata;Yahatanosho;Yahatanoshō;Yahatasho;Yahatashō;Yavata;Yawata-chhi;Yawata-chhī;ba fan;ba fan shi;yawata;yawata si;yawata kywtw;Явата;ياواتا;یاواتا، کیوتو;یوتا، کیوٹو;იავატა;八幡;八幡市;야와타 시; +city::1848445;Honmachi;Honmachi;Jacushiro;Jacusiro;Jacuširo;Jatsushiro;Yatsushiro;Yatsusiro;Yatsuşiro;Yatusiro;Yatusiro-chhi;Yatusiro-chhī;ba dai shi;ben ding;honmachi;iatsusiro;yasseusilo si;yatswshyrw;yatswshyrw kwmamwtw;Јацуширо;Ятсуширо;Яцусиро;Яцушіро;ياتسوشيرو;یاتسوشیرو، کوماموتو;یتسھیرو، کمموٹو;იაცუსირო;ほんまち;ホンマチ;八代市;本町;야쓰시로 시; +city::1848499;Yashio;Yashio;ba chao;八潮; +city::1848522;Yao;Jao;Yao;Yaocho;Yaochō;ba wei;ba wei shi;Яо;八尾;八尾市; +city::1848689;Yamaguchi;Jamaguci;Jamaguti;Jamaguči;Yamaguchi;Yamaguchi-shi;Yamaguchishi;Yamaguti;shan kou;shan kou shi;yamaghwtshy;yamaguchi;yamaguchi si;yamaguchishi;Ямагути;ياماغوتشي;やまぐち;やまぐちし;ヤマグチ;ヤマグチシ;山口;山口市;야마구치 시; +city::1848774;Yaizu;Jaidzu;Jaizu;Jajdzu;Yaidu;Yaisu;Yaizu;Yaizu Mati;Yaizu-chhi;Yaizu-chhī;shao jin;shao jin shi;yaijeu si;yayzw;yayzw shyzwywka;yyzw shzwka;Јаизу;Яидзу;Яизу;Яйдзу;يايزو;یایزو، شیزوئوکا;ییزو، شزوکا;焼津;焼津市;燒津市;야이즈 시; +city::1849053;Utsunomiya;Ucunomija;Utsunomiya;Utsunomiya-shi;Utsunomiyashi;usseunomiya si;utsunomiya;utsunomiyashi;yu dou gong;yu dou gong shi;Уцуномия;うつのみや;うつのみやし;ウツノミヤ;ウツノミヤシ;宇都宮;宇都宮市;우쓰노미야 시; +city::1849186;Urayasu;Urajasu;Urayasu;Urayasu-chhi;Urayasu-chhī;awrayasw chyba;pu an shi;ulayaseu si;xu ra yasu;ywrayasw chyba;ywraysw;Ураясу;Урајасу;اورایاسو، چیبا;يورايسو;یورایاسو، چیبا;อุระยะซุ;浦安市;우라야스 시; +city::1849372;Uji;Udyi;Udzhi;Udzi;Udzis;Udži;Udžis;Ugi;Uji;Uji-cho;Uji-chō;Uzi-chhi;Uzi-chhī;Uĝi;awjy kywtw;uji;uji si;xu ci;yu zhi;yu zhi shi;ywjy;Уджі;Удзи;Уџи;Уҷи;Үжи;اوجی، کیوتو;يوجي;উজি;อุจิ;宇治;宇治市;우지 시; +city::1849414;Ueno-ebisumachi;Ueno;Ueno-ebisumachi;shang ye hui mei xu ding;上野恵美須町; +city::1849429;Ueda;Oweda;Ueda;Ueda Nagano;Ueda-chhi;Ueda-chhī;Uehda;awyda naganw;shang tian;shang tian shi;ueda si;ywyda;Уеда;Уэда;Ուեդա;اوئدا، ناگانو;يويدا;上田;上田市;우에다 시; +city::1849498;Ube;UBJ;Ube;Ube-chhi;Ube-chhī;Ubi;Ubė;awbh yamagwchy;ube si;xu bea;yu bu;yu bu shi;ywby;Убе;ابے، یاماگوچی;اوبه، یاماگوچی;يوبي;อุเบะ;宇部;宇部市;우베 시; +city::1849519;Tsuyama;Cujama;Tsujama;Tsuyama;Tuyama;Tuyama-chhi;Tuyama-chhī;jin shan;jin shan shi;sseuyama si;tswyama;tswyama awkayama;Тсуяма;Цуяма;Цујама;تسوياما;تسویاما، اوکایاما;津山;津山市;쓰야마 시; +city::1849539;Tsushima;Cusima;Tsushima;Tsushima cho;Tsushima chō;jin dao;Цусима;津島; +city::1849561;Tsurusaki;Tsurusaki;he qi;鶴崎; +city::1849563;Tsuruoka;Curuoka;Tsuruoka;Turuoka;Turuoka-chhi;Turuoka-chhī;he gang;he gang shi;sseuluoka si;tswrwawka yamagata;tswrwka;Тсуруока;Цуруока;تسورواوکا، یاماگاتا;تسوروكا;鶴岡;鶴岡市;쓰루오카 시; +city::1849592;Tsuruga;Curuga;Tsuruga;Turuga;Turuga-chhi;Turuga-chhī;dui he;dui he shi;dun he shi;sseuluga si;tswrwga fwkwyy;tswrwgha;Тсуруга;Цуруга;Цуруґа;تسوروغا;تسوروگا، فوکوئی;敦賀;敦賀市;쓰루가 시; +city::1849796;Tsu;Cu;Tsu;Tsu-shi;Tsushi;Tu;jin;jin shi;sseu si;tsu;tsushi;Цу;つ;つし;ツ;ツシ;津;津市;쓰 시; +city::1849814;Toyota;Koromo;Tojoota khot;Tojota;Toyoda;Toyota;Toyota i Aichi;Toyota-chhi;Toyota-chhī;doyota si;feng tian shi;li tian;li tian shi;thoa yoa ta;twywta;twywta aychy;Тойота;Тоёота хот;Тоёта;Тојота;تويوتا;تویوتا، آیچی;ٹویوٹا، ایچی;ٹویوٹہ;โทะโยะตะ;丰田市;豊田;豊田市;도요타 시; +city::1849837;Toyonaka;li zhong;豊中; +city::1849845;Toyokawa;Tojokava;Toyokawa;Toyokawa-chhi;Toyokawa-chhī;doyokawa si;feng chuan shi;li chuan;li chuan shi;thoa yoa kawa;twywkawa aychy;twywkawa aytshy;Тойокава;Тоёкава;Тојокава;تويوكاوا، آيتشي;تویوکاوا، آیچی;ٹویوکاوہ;โทะโยะกะวะ;豊川;豊川市;豐川市;도요카와 시; +city::1849846;Toyohashi;Toekhasi;Tojohashi;Tojokhashi;Tojokhasi;Toyohashi;Toyohashi-shi;Toyohasi;Toyohasi-chhi;Toyohasi-chhī;Toyohasyi;Toyohaşi;doyohasi si;feng qiao shi;li qiao;li qiao shi;thoa yoa ha chi;twywhashy aychy;twywhashy aytshy;Тоехаси;Тойохасі;Тойохаши;Тоёхаси;Тоёҳаши;Тојохаши;تويوهاشي، آيتشي;تویوهاشی، آیچی;โทะโยะฮะชิ;豊橋;豊橋市;豐橋市;도요하시 시; +city::1849876;Toyama;TOY;Tojama;Toyama;Toyama-shi;Toyamashi;fu shan;fu shan shi;toyama;toyamashi;Тояма;とやま;とやまし;トヤマ;トヤマシ;富山;富山市; +city::1849892;Tottori;Lungsod ng Tottori;TTJ;Totori;Totoris;Tottori;Tottori-chhi;Tottori-chhī;Tottori-shi;Tottori-su;Tottori-sṳ;Toturi;dostoli si;niao qu;niao qu shi;tht toa ri;twtwry;twtwry twtwry;Тотори;Тоттори;Тотторі;توتوري;توتوری;توتوری، توتوری;ทตโตะริ;鳥取;鳥取市;돗토리 시; +city::1849904;Tosu;Tosu;Tosu-chhi;Tosu-chhī;doseu si;niao qi;niao qi shi;twsw;twsw saga;Тосу;توسو;توسو، ساگا;鳥栖;鳥栖市;도스 시; +city::1850034;Tondabayashicho;Tondabayashi;Tondabayashicho;Tondabayashichō;fu tian lin;fu tian lin ding;fu tian lin shi;富田林;富田林市;富田林町; +city::1850108;Tomigusuku;Gusuku;Temigusuku;Timigusuku;Tomigusuki;Tomigusuku;li jian cheng;豊見城; +city::1850147;Tokyo;Edo;TYO;Tochiu;Tocio;Tokija;Tokijas;Tokio;Tokió;Tokjo;Tokyo;Toquio;Toquio - dong jing;Toquio - 東京;Tòquio;Tókýó;Tóquio;Tōkyō;dokyo;dong jing;dong jing dou;dong-gyeong;tokeiyw;tokkiyo;tokyo;twkyw;twqyw;Τόκιο;Токио;Токё;Токіо;Տոկիո;טוקיו;توكيو;توکیو;طوكيو;ܛܘܟܝܘ;ܜܘܟܝܘ;टोक्यो;டோக்கியோ;โตเกียว;ტოკიო;东京;東京;東京都;도쿄;동경; +city::1850152;Tokuyama;Kakuyama;Tokuyama; +city::1850158;Tokushima;TKS;Tokushima;Tokushima - de dao shi;Tokushima - 徳島市;Tokushima-shi;Tokushimashi;Tokusima;Tokušima;de dao;de dao shi;dokusima si;tokushima;tokushimashi;Токусима;とくしま;とくしまし;トクシマ;トクシマシ;徳島;徳島市;도쿠시마 시; +city::1850181;Tokorozawa;Tokorodzava;Tokorosawa;Tokorozaua;Tokorozava;Tokorozawa;Tokorozawa-chhi;Tokorozawa-chhī;dokolojawa si;suo ze;suo ze shi;thoa koa roa sa wa;twkwrwzawa;twkwrwzawa saytama;twkwrwzawa sayytama;Τοκοροζάβα;Токородзава;Токорозава;Токорозауа;توكوروزاوا;توکوروزاوا، سائیتاما;توکوروزاوا، سایتاما;โทะโกะโระซะวะ;所沢;所沢市;所澤市;도코로자와 시; +city::1850207;Toki;Toka;Toki;Toki-chhi;Toki-chhī;Tokitsu-cho;Tokitsu-chō;doki si;tu qi;tu qi shi;twky;twky gyfw;Тока;Токи;Токі;توكي;توکی، گیفو;土岐;土岐市;도키 시; +city::1850311;Tochigi;Lungsod ng Tochigi;Tochigi;Totigi;Totigi-chhi;Totigi-chhī;dochigi si;li mu;li mu shi;twchygy;twtshyghy;Тотиги;Тотіґі;Точиги;توتشيغي;توچیگی;栃木;栃木市;도치기 시; +city::1850396;Tenri;Tehnri;Tenri;Tenri-chhi;Tenri-chhī;denli si;tian li;tian li shi;tnry nara;tyrny;Тенри;Тенрі;Тэнри;تنری، نارا;تيرني;天理;天理市;덴리 시; +city::1850523;Tateyama;Hojo;Hōjō;Tatejama;Tateyama;Tateyama-chhi;Tateyama-chhī;Tateyamahojo;Tateyamahozyo;Tateyamahōjō;Tateyamahōzyō;dateyama si;guan shan;guan shan shi;tath yama;tatyama chyba;tatyyama chyba;tha tea ya ma;Татеяма;تاته ياما;تاتیاما، چیبا;تاتییاما، چیبا;ทะเตะยะมะ;館山;館山市;다테야마 시; +city::1850559;Tatebayashi;Tatebajashi;Tatebajasi;Tatebayashi;Tatebayasi-chhi;Tatebayasi-chhī;datebayasi si;guan lin;guan lin shi;tatybayashy;Татебаяси;Татебаясі;Татебаяши;تاته‌بایاشی، گونما;تاتيباياشي;館林;館林市;다테바야시 시; +city::1850692;Nishi-Tokyo-shi;Hoya;Hoya-shi;Nishitokyo-shi;Tanashi;Tanashi-machi;bao gu shi;tian wu shi;xi dong jing;xi dong jing shi;保谷市;田無市;西東京;西東京市; +city::1850693;Tanashicho;Tanashi;Tanashicho;Tanashichō;tanashichou;tian wu ding;たなしちょう;タナシチョウ;田無町; +city::1850707;Tanabe;Tanabe;tian bian;田辺; +city::1850708;Tanabe;Tanabe;Tanabe-chhi;Tanabe-chhī;Tanabeh;danabe si;tanaba;tanabh wakayama;tian bian;tian bian shi;Танабе;Танабэ;تانابا;تانابه، واکایاما;田辺;田辺市;田邊市;다나베 시; +city::1850742;Tamano;Tamano;Tamano-chhi;Tamano-chhī;damano si;tamanw;tamanw awkayama;yu ye;yu ye shi;Тамано;تامانو;تامانو، اوکایاما;玉野;玉野市;다마노 시; +city::1850872;Takefu;Takebo;Takebu;Takefu;Takehu;wu sheng shi;武生市; +city::1850892;Takayama;Takajama;Takayama;Takayama-chhi;Takayama-chhī;dakayama si;fei tuono gao shan;gao shan;gao shan shi;takayama;takayama gyfw;tha ka ya ma;Такаяма;تاكاياما;تاکایاما، گیفو;ทะกะยะมะ;たかやま;飛騨の高山;高山;高山市;다카야마 시; +city::1850910;Takatsuki;Takacuki;Takatsuki;Takatuki;gao gui;gao gui shi;高槻;高槻市; +city::1851002;Takasaki;Takasaki;Takasaki-chhi;Takasaki-chhī;dakasaki si;gao qi;gao qi shi;takasaky;takasaky gwnma;tha ka saki;Такасаки;Такасакі;تاكاساكي;تاکاساکی، گونما;ทะกะซะกิ;ტაკასაკი;高崎;高崎市;다카사키 시; +city::1851012;Takarazuka;Takaradzuka;Takarazuka;Takarazuka-chhi;Takarazuka-chhī;bao zhong;bao zhong shi;dakalajeuka si;takarazwka;takarazwka hywgw;tha ka ra suk a;Такарадзука;Такаразука;تاكارازوكا;تاکارازوکا، هیوگو;تاکارازوکا، ہیوگو;ทะกะระซุกะ;宝塚;宝塚市;寶塚市;다카라즈카 시; +city::1851032;Takaoka;Takaoka;Takaoka-chhi;Takaoka-chhī;dakaoka si;gao gang;gao gang shi;takawka;takaywka twyama;Такаока;تاكاوكا;تاکائوکا، تویاما;高岡;高岡市;다카오카 시; +city::1851100;Takamatsu;Gorad Takamacu;TAK;Takamacu;Takamatsu;Takamatsu-shi;Takamatsushi;Takamatu;Takamatu-chhi;Takamatu-chhī;dakamasseu si;gao song;gao song shi;takamastu;takamatsu;takamatsushi;takamatsw;takamatsw kagawa;tha ka masu;Горад Такамацу;Такаматсу;Такамацу;تاكاماتسو;تاکاماتسو، کاگاوا;टाकामास्तु;ทะกะมะสึ;ტაკამაცუ;たかまつ;たかまつし;タカマツ;タカマツシ;高松;高松市;다카마쓰 시; +city::1851125;Takaishi;Takaishi;Takaishi-kita;Takashi-kita;gao shi;高石; +city::1851193;Tajimi;Tadimi;Tadzimi;Tajima;Tajimi;Tajumi;Tazimi;Tazimi-chhi;Tazimi-chhī;dajimi si;duo zhi jian;duo zhi jian shi;tajymy ghyfw;tajymy gyfw;Тадзими;Тадзімі;Таџими;Таҷими;تاجيمي غيفو;تاجیمی، گیفو;多治見;多治見市;다지미 시; +city::1851273;Tagawa;Tagava;Tagawa;Tagawa-chhi;Tagawa-chhī;Takawa;dagawa si;tagawa fwkwywka;taghawa;tian chuan;tian chuan shi;Тагава;Таґава;تاغاوا;تاگاوا، فوکوئوکا;田川;田川市;다가와 시; +city::1851348;Suzuka;Kambe;Sudzuka;Susuka;Suzuka;Suzuka-chhi;Suzuka-chhī;ling lu;ling lu shi;seujeuka si;swzwka;swzwka myh;Судзука;Сузука;سوزوكا;سوزوکا، میه;鈴鹿;鈴鹿市;스즈카 시; +city::1851357;Suzaka;Susaka;Suzaka;xu ban;xu ban shi;須坂;須坂市; +city::1851368;Suwa;Kamisuwa;Suva;Suwa-chhi;Suwa-chhī;seuwa si;swa;swwa naganw;zou fang;zou fang shi;Сува;Սուվա;سوا;سووا، ناگانو;諏訪;諏訪市;스와 시; +city::1851483;Suita;Suika;Suita;Suita-chhi;Suita-chhī;Sujta;chui tian;chui tian shi;seu-ita si;suxi ta;swyta awsaka;swyyta awsaka;Суита;Суйта;سوئیتا، اوساکا;سويتا، أوساكا;ซุอิตะ;吹田;吹田市;스이타 시; +city::1851604;Soka;Sok;Soka;Sōka;cao jia;Сок;草加; +city::1851606;Soja;Soja;Sozya;Sōja;Sōzya;zong she;総社; +city::1851717;Shizuoka;FSZ;Gorad Sidzuoka;Lungsod ng Shizuoka;Shidzuoka;Shizuoka;Shizuoka-shi;Shizuokashi;Siduoka;Sidzuok;Sidzuoka;Sizuoka;Sizuoka-chhi;Sizuoka-chhī;chisu xoa ka;jing gang;jing gang shi;shizuoka;shizuokashi;shyzwka;shyzwywka;sijeuoka si;sijhu'oka;Ŝizuoka;Şizuoka;Šidzuoka;Šizuoka;Горад Сідзуока;Сидзуока;Сідзуока;Шидзуока;Шизуока;שיזואוקה;شيزوكا;شیزوئوکا;شیزوکا;शिझुओका;ชิซุโอะกะ;しずおか;しずおかし;シズオカ;シズオカシ;静岡;静岡市;靜岡市;시즈오카 시; +city::1851883;Shiraoka;Shiraoka;bai gang;shiraoka;しらおか;シラオカ;白岡; +city::1852003;Shiojiri;Shiojiri;Siodziri;Siojiri;Sioziri;Sioziri-chhi;Sioziri-chhī;shywjyry;shywjyry naganw;siojili si;yan kao;yan kao shi;Сиодзири;Сіодзірі;Шиоҷири;Սիոձիրի;شيوجيري;شیوجیری، ناگانو;塩尻;塩尻市;鹽尻市;시오지리 시; +city::1852225;Shimonoseki;Gorad Simanaseki;Shimonoseki;Simonoseki;Simonoseki-chhi;Simonoseki-chhī;chi moa noa seaki;shymwnwsky;shymwnwsky yamagwchy;shymwnwsyky yamagwchy;simonoseki si;xia guan shi;Ŝimonoseki;Şimonoseki;Горад Сіманасекі;Симоносеки;Сімоносекі;Шимоносеки;Սիմոնոսեկի;شيمونوسكي;شیمونوسکی، یاماگوچی;شیمونوسیکی، یاماگوچی;ชิโมะโนะเซะกิ;下关市;下関市;시모노세키 시; +city::1852347;Shimodate;Shimodate;Simodate; +city::1852383;Minato;Minato;Shimminatocho;Shimminatochō;Shinkomachi;Shinkōmachi;cou;湊; +city::1852472;Shimada;Shimada;Simada;Simada-chhi;Simada-chhī;Syimada;dao tian;dao tian shi;shymada;shymada shyzwywka;simada si;Симада;Сімада;Шимада;شيمادا;شیمادا، شیزوئوکا;島田;島田市;시마다 시; +city::1852502;Shiki;Shiki;Siki;zhi mu;zhi mu shi;Сики;志木;志木市; +city::1852607;Shibata;Shibata;Sibata;Sibata-chhi;Sibata-chhī;Syibata;shybata;shybata nygata;sibata;sibata si;xin fa tian;xin fa tian shi;Сибата;Сібата;Шибата;شيباتا;شیباتا، نیگاتا;新発田;新発田市;新發田市;시바타 시; +city::1852663;Seto;Seto;Seto-chhi;Seto-chhī;Setu;lai hu;lai hu shi;seto si;stw aychy;sytw;sytw aychy;Сето;Сету;ستو، آیچی;سيتو;سیتو، ایچی;سیٹو;瀨戶市;瀬戸;瀬戸市;세토 시; +city::1852736;Satsumasendai;Sacuma-Sendaj;Sacumasendaj;Satsumasendai;Satumasendai-chhi;Satumasendai-chhī;Sendai;Sendaj;Sendajus;chuan nei;chuan nei shi;sa mo chuan nei;sa mo chuan nei shi;sasseumasendai si;satswmasnday kagwshyma;satswmasynday;Сатсумасендаи;Сацума-Сендай;Сацумасендай;Сацумасендај;Сендай;ساتسوماسندای، کاگوشیما;ساتسوماسينداي;川内;川内市;薩摩川內市;薩摩川内;사쓰마센다이 시; +city::1852849;Satte;Satte;satte;xing shou;さって;サッテ;幸手; +city::1852899;Sasebo;Gorad Saseba;Sasebo;Sasebo-chhi;Sasebo-chhī;Sasebum;Saseho;sa sea boa;sasebo si;sasybw;sasybw nagasaky;ssbw;zuo shi bao;zuo shi bao shi;Горад Сасеба;Сасебо;ססבו;ساسه‌بو، ناگازاکی;ساسيبو;ساسیبو، ناگاساکی;ซะเซะโบะ;佐世保;佐世保市;사세보 시; +city::1852964;Sano;Sana;Sano;Sano-chhi;Sano-chhī;sano si;sanw;sanw twchygy;zuo ye;zuo ye shi;Сана;Сано;سانو;سانو، توچیگی;佐野;佐野市;사노 시; +city::1852984;Sanjo;Sandscho;Sandyo;Sandz'o;Sandze;Sandzjo;Sandzo;Sanjo;Sanjō;Sanzyo;Sanzyo-chhi;Sanzyô-chhī;Sanzyō;san tiao;san tiao shi;sanjo si;sanjw;sanjw nygata;Сандзе;Сандзьо;Сандзё;Санџо;Санҷо;سانجو;سانجو، نیگاتا;三条;三条市;三條市;산조 시; +city::1853008;Sandacho;Sanda;Sandacho;Sandachō;san tian ding;Санда;三田町; +city::1853066;Sakurai;Sakurai;Sakurai-chhi;Sakurai-chhī;Sakuraj;Sakuri;sakulai si;sakwray;sakwray nara;ying jing;ying jing shi;Сакураи;Сакурай;ساكوراي;ساکورای، نارا;桜井;桜井市;櫻井市;사쿠라이 시; +city::1853081;Saku;Saku;Saku-chhi;Saku-chhī;sa ku;saku si;sakw;sakw naganw;zuo jiu;zuo jiu shi;Саку;Սակու;ساكو;ساکو، ناگانو;ซะกุ;佐久;佐久市;사쿠 시; +city::1853140;Sakata;SYO;Sakata;Sakata-chhi;Sakata-chhī;jiu tian;jiu tian shi;sakata;sakata si;sakata yamagata;Саката;ساكاتا;ساکاتا، یاماگاتا;酒田;酒田市;사카타 시; +city::1853190;Sakaidecho;Sakaide;Sakaide-cho;Sakaide-chō;Sakaidecho;Sakaidechō;Sakate;ban chu;ban chu ding;坂出;坂出町; +city::1853195;Sakai;Sacaia;Sacaium;Sakai;jie;jie shi;sakai si;Сакаи;堺;堺市;사카이 시; +city::1853209;Sakado;Sakado;Sakado-chhi;Sakado-chhī;ban hu;ban hu shi;sakado si;sakadw saytama;sakwdw;Сакадо;ساكودو;ساکادو، سایتاما;坂戶市;坂戸;坂戸市;사카도 시; +city::1853303;Saga;HSG;Saga;Saga Japonija;Saga-shi;Sagashi;sa nga;saga;saga si;sagashi;sagha;zuo he;zuo he shi;Сага;Сага Япония;ساغا;ساگا;ซะงะ;さが;さがし;サガ;サガシ;佐賀;佐賀市;사가 시; +city::1853338;Sabae;Sabae;qing jiang shi;zheng jiang;鯖江;鯖江市; +city::1853483;Oyama;Ojama;Oyama;Oyama-chhi;Oyama-chhī;awyama;awyama twchygy;oyama si;xiao shan;xiao shan shi;Ояма;Ојама;أوياما;اویاما، توچیگی;小山;小山市;오야마 시; +city::1853574;Otsu;Gorad Ocu;Ocu;Otsu;Otsu-shi;Otsushi;Otu;Otu-chhi;atsw shyga;awtsw;da jin;da jin shi;ootsu;ootsushi;osseu si;xosu;Ócu;Ôtu-chhī;Ōtsu;Ōtsu-shi;Ōtsushi;Ōtu;Горад Оцу;Отсу;Оцу;Оцү;أوتسو;اتسو، شیگا;โอสึ;おおつ;おおつし;オオツ;オオツシ;大津;大津市;오쓰 시; +city::1853677;Ota;Ota;Ota-chhi;awta;awta gwnma;ota si;tai tian;tai tian shi;xo ta;Ôta-chhī;Ōta;Ота;أوتا;اوتا، گونما;โอตะ;太田;太田市;오타 시; +city::1853909;Osaka;OSA;Osaacke;Osaca;Osaca - da ban shi;Osaca - 大阪市;Osaka;Osaka-shi;Osako;Oszaka;awsaka;awzaka;da ban;da ban shi;oosakashi;osaka;osaka si;xo sa ka;ywsaka;Ósaka;Ószaka;Ōsaka;Ōsaka-shi;Осака;אוסקה;أوساكا;ئوساكا;اوزاکا;ওসাকা;โอซะกะ;ოსაკა;おおさかし;大阪;大阪市;오사카 시; +city::1853992;Onomichi;Onomichi;Onomici;Onomiti;Onomiti-chhi;Onomiti-chhī;Onomiči;awnwmychy hyrwshyma;awnwmytshy;onomichi si;wei dao;wei dao shi;Ономити;Ономичи;Ономіті;أونومیتشي;اونومیچی، هیروشیما;尾道;尾道市;오노미치 시; +city::1854026;Ono;Ono;Ono-chhi;Ono-chhī;Onocho;Onochō;awnw;awnw hywgw;ono si;xiao ye;xiao ye shi;Оно;أونو;اونو، هیوگو;小野;小野市;오노 시; +city::1854083;Omuta;Omuda;Omuta;Omuta-chhi;awmwta;awmwta fwkwywka;da mou tian;da mou tian shi;omuta si;Ômuta-chhī;Ōmuda;Ōmuta;Омута;أوموتا;اوموتا، فوکوئوکا;大牟田;大牟田市;오무타 시; +city::1854093;Omura;Omura;Omura-chhi;awmwra;awmwra nagazaky;da cun;da cun shi;omula si;xo mu ra;Ômura-chhī;Ōmura;Омура;أومورا;اومورا، ناگازاکی;โอมุระ;大村;大村市;오무라 시; +city::1854162;Ome;Ome;Ome-chhi;Omė;Oume;awmh;awmh twkyw;ome si;qing mei;qing mei shi;xo mea;Ôme-chhī;Ōme;Оме;Օմե;أومه;اومه، توکیو;โอเมะ;青梅;青梅市;오메 시; +city::1854371;Okegawa;Okegawa;Okugawamachi;tong chuan;tong chuan shi;桶川;桶川市; +city::1854376;Okazaki;Aichi;Okadzaki;Okasaki;Okazaki;Okazaki-chhi;Okazaki-chhī;awkazaky;awkazaky aychy;gang qi;gang qi shi;okajaki si;xoa ka saki;Окадзаки;Окадзакі;Оказаки;أوكازاكي;اوکازاکی، آیچی;اوکازاکی، ایچی;โอะกะซะกิ;岡崎;岡崎市;오카자키 시; +city::1854383;Okayama;OKJ;Okajama;Okayama;Okayama-shi;Okayamashi;gang shan;gang shan shi;okayama;okayama si;okayamashi;Окаяма;おかやま;おかやまし;オカヤマ;オカヤマシ;岡山;岡山市;오카야마 시; +city::1854384;Okaya;Hirano;gang gu;岡谷; +city::1854487;Oita;OIT;Oita;Oita-shi;Oitashi;da fen;da fen shi;oita si;ooita;ooitashi;Óita;Ōita;Ōita-shi;Ōitashi;Оита;おおいた;おおいたし;オオイタ;オオイタシ;大分;大分市;오이타 시; +city::1854530;Oi;Oi;da jing;ooi;Ōi;おおい;オオイ;大井; +city::1854703;Ogaki;Oaki;Ogaki;Ogaki-chhi;awgaky gyfw;awghaky;da yuan;da yuan shi;ogaki si;Ôgaki-chhī;Ōgaki;Огаки;Оґакі;أوغاكي;اوگاکی، گیفو;大垣;大垣市;오가키 시; +city::1854747;Odawara;Odauara;Odavara;Odawara;Odawara-chhi;Odawara-chhī;Odaŭara;Ontagouara;awdawara kanagawa;awdawara kanaghawa;odawala si;xiao tian yuan;xiao tian yuan shi;xoa da wa ra;Ονταγουάρα;Одавара;أوداوارا، كاناغاوا;اوداوارا، کاناگاوا;โอะดะวะระ;小田原;小田原市;오다와라 시; +city::1854803;Obu;Obu;Obu-chhi;Ofu;awbw;awbw aychy;da fu;da fu shi;obu si;xo bu;Ôbu-chhī;Ōbu;Ōfu;Обу;أوبو;اؤبو، ایچی;اوبو، آیچی;โอบุ;大府;大府市;오부 시; +city::1854902;Numazu;Numadu;Numadzu;Numasu;Numazu;Numazu-chhi;Numazu-chhī;namazw;nu masu;numajeu si;nwmazw shyzwka;nwmazw shyzwywka;zhao jin;zhao jin shi;Нумадзу;Нумазу;Нүмазү;نامازو;نومازو، شیزوئوکا;نومازو، شیزوکا;นุมะซุ;沼津;沼津市;누마즈 시; +city::1855066;Nogata;Naogata;Naokata;Nogata;Nōgata;zhi fang;直方; +city::1855078;Noda;Noda;Noda-Shi;Noda-chhi;Noda-chhī;noa da;noda si;nwda;nwda chyba;ye tian;ye tian shi;Нода;نودا;نودا، چیبا;โนะดะ;野田;野田市;노다 시; +city::1855095;Nobeoka;Nobeoka;Nobeoka-chhi;Nobeoka-chhī;nobe-oka si;nwbywka;yan gang;yan gang shi;Нобеока;نوبه‌اوکا، میازاکی;نوبيوكا;延岡;延岡市;노베오카 시; +city::1855189;Nishio;Nishio;Nisio;Nisio-chhi;Nisio-chhī;Nisyio;Niŝio;nisio si;nyshw;nyshyw;nyshyw aychy;xi wei;xi wei shi;Нисио;Нишио;Нісіо;نيشيو;نیشو;نیشیو، آیچی;نیشیو، ایچی;西尾;西尾市;니시오 시; +city::1855207;Nishinomiya-hama;Nishinomiya;Nishinomiya-hama;Nisinomija;xi gong;xi gong bang;xi gong shi;Нисиномия;西宮;西宮市;西宮浜; +city::1855410;Niitsu-honcho;Niitsu;Niitsu-honcho;Niitsu-honchō;Niitu;Niizu;xin jin ben ding;xin jin shi;新津市;新津本町; +city::1855425;Niihama;Niihama;Niihama-chhi;Niihama-chhī;Niikhama;Nijihama;Nikhama;niihama;niihama si;nyhama;xin ju bang;xin ju bang shi;xin ju bin shi;Ниихама;Нииҳама;Нихама;Ніїхама;نيهاما;نیہاما، اہیمے;نی‌ایهاما، اهیمه;にいはま;新居浜;新居浜市;新居濱市;니이하마 시; +city::1855431;Niigata;KIJ;Niahi-niigata;Nigita;Niigata;nigata si;niigata;niigatashi;xin xi;xin xi shi;Ниигата;にいがた;にいがたし;ニイガタ;ニイガタシ;新潟;新潟市;니가타 시; +city::1855580;Narutocho-mitsuishi;Muya;Naruto;Narutocho-mitsuishi;Narutochō-mitsuishi;ming men;ming men ding san~tsu shi;鳴門;鳴門町三ッ石; +city::1855612;Nara-shi;Nara;Nara-shi;nai liang;nai liang shi;nala si;nara;narashi;Нара;نارا;ならし;奈良;奈良市;나라 시; +city::1855753;Nakatsugawa;Nakacugava;Nakatsu;Nakatsugava;Nakatsugawa;Nakatugawa-chhi;Nakatugawa-chhī;na ka sung a wa;nakasseugawa si;nakatswgawa gyfw;nakatswghawa ghyfw;zhong jin chuan;zhong jin chuan shi;Накатсугава;Накацугава;Накацуґава;ناكاتسوغاوا غيفو;ناکاتسوگاوا، گیفو;นะกะสึงะวะ;中津川;中津川市;나카쓰가와 시; +city::1855757;Nakatsu;Nakacu;Nakatsu;Nakatu;Nakatu-chhi;Nakatu-chhī;nakasseu si;nakatsw awyta;nakatsw awyyta;zhong jin shi;Накатсу;Накацу;ناكاتسو، أويتا;ناکاتسو، اوئیتا;中津市;나카쓰 시; +city::1856035;Naha;Nafa;Naha;Naha-shi;Nahashi;Nakha;Nawa;na ba;na ba shi;naha;naha si;nahashi;nhh;Наха;נהה;なは;なはし;ナハ;ナハシ;那覇;那覇市;那霸市;나하 시; +city::1856057;Nagoya;NGO;Nagoia;Nagoja;Nagojo;Nagoya;Nagoya City;Nagoya-shi;ming gu wu;ming gu wu shi;na ngoa ya;naghwya;nagoya si;nagoyashi;nagwya aychy;Нагоя;ناغويا;ناگویا، آیچی;นะโงะยะ;なごやし;名古屋;名古屋市;나고야 시; +city::1856068;Nago;Naga;Nago;Nago-chhi;Nago-chhī;Nagu;Okaneku;ming hu;ming hu shi;naghw awkynawa;nago si;nagw awkynawa;Ôkaneku;Нага;Наго;Наґо;נאגו;ناغو، أوكيناوا;ناگو، اوکیناوا;名護;名護市;나고 시; +city::1856177;Nagasaki;NGS;Nagasacium;Nagasaki;Nagasaki-shi;Nagasakis;Nagasakishi;Nagasako;Nagaszaki;Nangasaque;nagasaki;nagasaki si;nagasakishi;nagazaky;naghasaky;najazaky;zhang qi;zhang qi shi;Нагасаки;נגסאקי;ناجازاكي;ناغاساكي;ناگازاکی;नागासाकी;ნაგასაკი;ながさき;ながさきし;ナガサキ;ナガサキシ;長崎;長崎市;长崎市;나가사키 시; +city::1856184;Nagareyama;Nagarejama;Nagareyama;Nagareyama-chhi;Nagareyama-chhī;liu shan;liu shan shi;na ngarea ya ma;nagaleyama si;nagaryama chyba;nagaryyama chyba;nagharh yama;Нагареяма;Нагарејама;Наґареяма;ناغاره ياما;ناگاریاما، چیبا;ناگارییاما، چیبا;นะงะเระยะมะ;流山;流山市;나가레야마 시; +city::1856199;Nagaoka;Gorad Nagaoka;Nagaoka;Nagaoka-chhi;Nagaoka-chhī;na nga xoa ka;nagaoka si;nagawka nygata;nagaywka nygata;naghawka;zhang gang;zhang gang shi;Горад Нагаока;Нагаока;Наґаока;ناغاوكا;ناگائوکا، نیگاتا;ناگاوکا، نیگاتا;นะงะโอะกะ;ნაგაოკა;長岡;長岡市;나가오카 시; +city::1856215;Nagano;Nagano;Nagano-shi;Naganoshi;nagano;naganoshi;zhang ye;zhang ye shi;Нагано;ながの;ながのし;ナガノ;ナガノシ;長野;長野市; +city::1856243;Nagahama;Nagahama;Nagakhama;zhang bang;zhang bang shi;Нагахама;長浜;長浜市; +city::1856293;Nabari;Nabari;ming zhang;ming zhang shi;名張;名張市; +city::1856367;Musashino;Musashino;Musasinas;Musasino;Musasino-chhi;Musasino-chhī;Musašinas;mu sa chi noa;musasino si;mwsashynw;mwsashynw twkyw;wu cang ye shi;wu zang ye;wu zang ye shi;Мусасино;Мусасіно;Мусашино;Մուսասինո;מוסאשינו;موساشينو;موساشینو، توکیو;มุซะชิโนะ;武蔵野;武蔵野市;武藏野市;무사시노 시; +city::1856456;Muko;Muka;xiang ri;Мука;向日; +city::1856569;Moriyama;Morijama;Moriyama;shou shan;Морияма;守山; +city::1856584;Moriguchi;Moriguchi;Moriguci;Moriguti;Moriguti-chhi;Moriguti-chhī;Morigutsi;Moriguĉi;QGT;moa ringu ci;moliguchi si;mwryghwtshy awsaka;mwrygwchy awsaka;shou kou;shou kou shi;Моригути;Моригучи;Моригучӣ;Моріґучі;موريغوتشي، أوساكا;موریگوچی، اوساکا;โมะริงุจิ;守口;守口市;모리구치 시; +city::1856717;Miyazaki;KMI;Mijadzaki;Miyazaki;Miyazaki-shi;Miyazakishi;gong qi;gong qi shi;miyazaki;miyazakishi;Миядзаки;みやざき;みやざきし;ミヤザキ;ミヤザキシ;宮崎;宮崎市; +city::1856775;Miyakonojo;Mijakonodzh'o;Mijakonodzjo;Mijakonodzo;Mijakonojo;Miyakonojo;Miyakonojō;Miyakonozyo;Miyakonozyo-chhi;Miyakonozyô-chhī;Miyakonozyō;dou cheng;dou cheng shi;mi ya koa noa co;miyakonojo si;myakwnwjw;myakwnwjw myazaky;Мияконодзё;Мияконоҷо;Мијаконоџо;Міяконоджьо;مياكونوجو;میاکونوجو، میازاکی;มิยะโกะโนะโจ;都城;都城市;미야코노조 시; +city::1856942;Mitaka-shi;Mitaka;san ying;san ying shi;三鷹;三鷹市; +city::1856977;Mishima;Mishima;Misima;Misima-chhi;Misima-chhī;Misyima;Mişima;mi chi ma;misima si;myshyma;myshyma shyzwywka;san dao;san dao shi;Мисима;Мишима;Місіма;ميشيما;میشیما، شیزوئوکا;มิชิมะ;三島;三島市;미시마 시; +city::1857046;Mino;Mino-shi;Minoh;Minoh City;ji mian;ji mian shi;箕面;箕面市; +city::1857144;Minamirinkan;Minami Rinkan Yamato;Minami-rinkan;Minamirinkan;nan lin jian;南林間; +city::1857276;Miki;Miki;Miki-chhi;Miki-chhī;miki;miki si;myky;myky hywgw;san mu;san mu shi;Мики;Мікі;ميكي;میکی، هیوگو;มิกิ;三木;三木市;미키 시; +city::1857334;Mihara;Mihama;Mihara;Mihara-chhi;Mihara-chhī;Mikhara;mihala si;myhara;myhara hyrwshyma;san yuan;san yuan shi;Михара;Миҳара;Міхара;میهارا;میهارا، هیروشیما;三原;三原市;미하라 시; +city::1857470;Matsuto;Matsuto;Matsutō;Matto;Mattō; +city::1857519;Matsumoto;Fukase;Fukashi;MMJ;Macumoto;Matsumoto;Matumoto;Matumoto-chhi;Matumoto-chhī;Shonai;masseumoto si;masu moa toa;matswmwtw;matswmwtw naganw;song ben;song ben shi;Матсумото;Мацумото;Մացումոտո;ماتسوموتو;ماتسوموتو، ناگانو;มะสึโมะโตะ;松本;松本市;마쓰모토 시; +city::1857550;Matsue;Macue;Macueh;Macuje;Macujė;Matsu;Matsue;Matsue-shi;Matsue-su;Matsue-sṳ;Matsueshi;Matue;Matue-chhi;Matue-chhī;masseue si;masu xea;matsue;matsueshi;matswa;matswyh;song jiang;song jiang shi;Матсуе;Мацуе;Мацуэ;ماتسو، شیمانے;ماتسوئه;ماتسوا;มะสึเอะ;まつえ;まつえし;マツエ;マツエシ;松江;松江市;마쓰에 시; +city::1857553;Matsudo;Macudo;Matsudo;Matudo-chhi;Matudo-chhī;masseudo si;masu doa;matswdw;matswdw chyba;song hu;song hu shi;Матсудо;Мацудо;ماتسودو;ماتسودو، چیبا;มะสึโดะ;松戶市;松戸;松戸市;마쓰도 시; +city::1857568;Matsubara;Matsubara;song yuan;松原; +city::1857665;Marugame;Marugame;Marugame-chhi;Marugame-chhī;Marukame;Maruqame;malugame si;marwgamh kagawa;marwghamh;wan gui;wan gui shi;Маругаме;Маруґаме;ماروغامه;ماروگامه، کاگاوا;丸亀;丸亀市;丸龜市;마루가메 시; +city::1857766;Maizuru;Maidsuru;Maiduru;Maidzuru;Maizuru;Maizuru-chhi;Maizuru-chhī;Majdzuru;maijeulu si;mayzwrw;mayzwrw kywtw;misu ru;wu he;wu he shi;Маизуру;Майдзуру;مايزورو;مایزورو، کیوتو;ไมซุรุ;舞鶴;舞鶴市;舞鹤市;마이즈루 시; +city::1857843;Maebashi;Maebashi;Maebashi-shi;Maebashishi;Maebasi;Maebaši;Maehbasi;ma-ebasi si;maebashi;maebashishi;qian qiao;qian qiao shi;Маэбаси;まえばし;まえばしし;マエバシ;マエバシシ;前橋;前橋市;마에바시 시; +city::1857844;Maebaru-chuo;Maebaru;Maebaru-chuo;Maebaru-chūō;Maeharu;qian yuan zhong yang;前原中央; +city::1857871;Machida;Machida;Macida;Matida;Matida-chhi;Matida-chhī;Mačida;ding tian;ding tian shi;ma chi da;machida si;machyda twkyw;matshyda;ting tian shi;Матида;Матіда;Мачида;Մատիդա;ماتشيدا;ماچیدا، توکیو;ماچیدا، ٹوکیو;มะชิดะ;町田;町田市;마치다 시; +city::1857910;Kyoto;Gorad Kijota;Kejuots;Kiaⁿ-to͘-chhī;Kiotas;Kioto;Kiotó;Kjoto;Kjóto;Kyoto;Kyoto-shi;Kyotu;Kyotum;Kyōto;Kyōto-shi;Kėjuots;Lungsod ng Kyoto;Quioto;UKY;gyoto si;jing dou;jing dou shi;kheiyw toa;ki'oto;kiyoto;kiyotto;kyeattea;kyoto;kyoutoshi;kywtw;qywtw;Κιότο;Горад Кіёта;Киото;Кёто;Кіото;Кјото;Կիոտո;קיאטא;קיוטו;كيوتو;کیوتو;کیوٹو;ܩܝܘܛܘ;क्योटो;क्योतो;কিয়োটো;ਕਿਓਤੋ;கியோத்தோ;ക്യോത്തോ;ක්යෝතෝ;เคียวโตะ;ཁེཡོ་ཐྲོ།;ကျိုတိုမြို့;კიოტო;きょうとし;京都;京都市;교토 시; +city::1858067;Kusatsu;Kusacu;Kusatsu;Kusatsu-cho;Kusatsu-chō;Kusatu;Susatsu;cao jin;Кусацу;草津; +city::1858088;Kurume;Kurume;Kurume-chhi;Kurume-chhī;gulume si;jiu liu mi;jiu liu mi shi;khuru mea;kwrwmh fwkwywka;kwrwmy;kwrwmy fwkwka;Куруме;كورومي;کورومه، فوکوئوکا;کورومی، فوکوکا;คุรุเมะ;久留米;久留米市;구루메 시; +city::1858296;Kure;Kure;Kure-chhi;Kure-chhī;gule si;khurea;kwrh hyrwshyma;kwrshy;qwrh;wu;wu shi;Куре;קורה;كورشي;کوره، هیروشیما;کورے، ہیروشیما;คุเระ;吳市;呉;呉市;구레 시; +city::1858311;Kurashiki;Kurashiki;Kurasiki;Kurasiki-chhi;Kurasiki-chhī;Kurasyiki;Kuraşiki;cang fu;cang fu shi;gulasiki si;khu ra chiki;kwrashyky awkayama;Курасики;Курасікі;Курашики;كوراشيكي، أوكاياما;کوراشیکی، اوکایاما;คุระชิกิ;倉敷;倉敷市;구라시키 시; +city::1858421;Kumamoto;KMJ;Kumamoto;Kumamoto-shi;gumamoto si;kumamotoshi;xiong ben;xiong ben shi;Кумамото;くまもとし;熊本;熊本市;구마모토 시; +city::1858428;Kumagaya;Kumagai;Kumagaja;Kumagaya;Kumagaya-chhi;Kumagaya-chhī;gumagaya si;khu ma nga ya;kwmagaya saytama;kwmagaya sayytama;kwmaghaya;xiong gu;xiong gu shi;Кумагая;Кумагаја;Кумаґая;كوماغايا;کوماگایا، سائیتاما;کوماگایا، سایتاما;คุมะงะยะ;熊谷;熊谷市;구마가야 시; +city::1858445;Kukichuo;Kuki;Kukichuo;Kukichūō;jiu xi;jiu xi zhong yang;kukichuuou;Куки;くきちゅうおう;クキチュウオウ;久喜;久喜中央; +city::1858498;Kudamatsu;Kudamatsu;xia song;下松; +city::1858729;Koshigaya;Koshigaja;Koshigaya;Kosigaja;Kosigaya-chhi;Kosigaya-chhī;Kosyigaya;gosigaya si;khoa chi nga ya;kwshygaya saytama;kwshygaya sayytama;kwshyghaya;yue gu;yue gu shi;Косигая;Косіґая;Кошигая;Кошигаја;كوشيغايا;کوشیگایا، سائیتاما;کوشیگایا، سایتاما;โคะชิงะยะ;越谷;越谷市;고시가야 시; +city::1858794;Konosu;Konosu;Kōnosu;hong chao;kounosu;こうのす;コウノス;鴻巣; +city::1858836;Konan;Konan;jiang nan;Конан;江南; +city::1858910;Komatsu;KMQ;Komacu;Komatsu;Komatu-chhi;Komatu-chhī;gomasseu si;kwmatsw;kwmatsw ayshykawa;xiao song;xiao song shi;Коматсу;Комацу;كوماتسو;کوماتسو، ایشیکاوا;小松;小松市;고마쓰 시; +city::1858926;Komaki;Komaki;Komaki-chhi;Komaki-chhī;gomaki si;khoa maki;kwmaky;kwmaky aychy;kwmaky aytshy;xiao mu;xiao mu shi;Комаки;Комакі;كوماكي، آيتشي;کوماکی;کوماکی، آیچی;โคะมะกิ;小牧;小牧市;고마키 시; +city::1858964;Kokubunji;Kokubundzi;Kokubundzis;Kokubundžis;Kokubungi;Kokubunji;Kokubunzi-chhi;Kokubunzi-chhī;Kokubunĝi;gokubunji si;guo fen si;guo fen si shi;khoa ku bun ci;kwkwbwnjy;kwkwbwnjy twkyw;Кокубундзи;Кокубундзі;Кокубунџи;Кокубунҷи;Կոկուբունձի;كوكوبونجي;کوکوبونجی، توکیو;โคะกุบุนจิ;国分寺;国分寺市;國分寺市;고쿠분지 시; +city::1858972;Kokubu-matsuki;Kokubo;Kokubu;Kokubu-matsuki;Kokubun;guo fen;guo fen song mu;Кокубу;国分;国分松木; +city::1859093;Koga;Koga;Koga-chhi;Koga-chhī;goga si;gu he;gu he shi;kwga aybaraky;kwgha;Кога;Коґа;كوغا;کوگا، ایباراکی;古河;古河市;고가 시; +city::1859094;Koga;Koga;gu he;Кога;古賀; +city::1859100;Kofu;Kofe;Kofu;Kofu-shi;Kofushi;Kohu;Kohu-chhi;Kófu;Kôhu-chhī;Kōfu;Kōfu-shi;Kōfushi;Kōhu;gohu si;jia fu;jia fu shi;kho fu;koufu;koufushi;kwfw;kwfw yamanashy;qwpw;Кофе;Кофу;Կոֆու;קופו;كوفو;کوفو، یاماناشی;โคฟุ;こうふ;こうふし;コウフ;コウフシ;甲府;甲府市;고후 시; +city::1859146;Kochi;KCZ;Kochi;Kochi-shi;Kochin;Kochishi;Koti;Kôti;Kōchi-shi;Kōchishi;gao zhi;gao zhi shi;kouchi;kouchishi;Кочин;こうち;こうちし;コウチ;コウチシ;高知;高知市; +city::1859171;Kobe;Gorad Kobeh;Kobe;Kobe-chhi;Kobe-shi;Kobė;Kompe;Kóbe;Kôbe-chhī;Kōbe;Kōbe-shi;Lungsod ng Kobe;gobe si;kaube;kho bea;kobe;kope;koubeshi;kwbh;qwbh;shen hu;shen hu shi;Κόμπε;Горад Кобэ;Кобе;Կոբե;קובה;كوبه;کوبه;کوبے;कोबे;কৌবে;கோபே;โคเบะ;კობე;こうべし;神戶;神户市;神戸;神戸市;고베 시; +city::1859307;Kitakyushu;KKJ;Kita-Kjushju;Kitakiusiu;Kitakiūšiū;Kitakjushju;Kitakjushu;Kitakjusju;Kitakjusu;Kitakjuŝu;Kitakjúsú;Kitakjúšú;Kitakjūshū;Kitakyuesue;Kitakyushu;Kitakyusyu;Kitakyüşü;Kitakyūshū;Pak-kiu-chiu-chhi;Pak-kiú-chiu-chhī;bei jiu zhou;bei jiu zhou shi;gitakyusyu si;khi ta kiw chu;kytakywshw;kytakywshw fwkwywka;Китакюсю;Китакюшу;Китакюшю;Китакјушу;Кіта-Кюшю;Կիտակյուսյու;كيتاكيوشو;کیتاکیوشو، فوکوئوکا;คิตะกีวชู;北九州;北九州市;기타큐슈 시; +city::1859383;Kishiwada;Kishiwada;Kisivada;Kisiwada;an he tian;an he tian shi;gisiwada si;Кисивада;岸和田;岸和田市;기시와다 시; +city::1859393;Kisarazu;Kisaradu;Kisaradzu;Kisarazu;Kisarazu-chhi;Kisarazu-chhī;Kizarazu;gisalajeu si;khi sa rasu;kisaradzu;ksarazw chyba;kysarazw;kysarazw chyba;mu geng jin;mu geng jin shi;Кисарадзу;Кисаразу;Кісарадзу;كيسارازو;کسارازو، چیبا;کیسارازو، چیبا;คิซะระซุ;きさらづ;キサラヅ;木更津;木更津市;기사라즈 시; +city::1859405;Kiryu;Kiri;Kiriu;Kirju;Kiryu;Kiryu-chhi;Kiryû-chhī;Kiryū;gilyu si;kyrw;kyryw gwnma;tong sheng;tong sheng shi;Кири;Кирю;Кирју;Кірю;كيرو;کیریو، گونما;桐生;桐生市;기류 시; +city::1859586;Kazo;Kadzo;Kaso;Kazo;Kazo-chhi;Kazo-chhī;gajo si;jia xu;jia xu shi;kazw;kazw saytama;Кадзо;Казо;كازو;کازو، سایتاما;加須;加須市;가조 시; +city::1859642;Kawasaki;Cita de Kawasaki;Cità de Kawasaki;Gorad Kavasaki;Kauasaki;Kavasaki;Kavasakis;Kavaszaki;Kawasaki;Kawasaki City;Kawasaki Si;Kawasaki-chhi;Kawasaki-chhī;Kaŭasaki;chuan qi;chuan qi shi;gawasaki si;kavasaki;kawasaky;kawasaky kanagawa;kha wa saki;Καβασάκι;Горад Кавасакі;Кавасаки;Кавасакі;Կավասակի;קווסאקי;كاواساكي;کاواساکی، کاناگاوا;कावासाकी;คะวะซะกิ;川崎;川崎市;가와사키 시; +city::1859675;Kawanishi;Kauanishi;Kavanishi;Kavanisi;Kawanishi;Kawanisi-chhi;Kawanisi-chhī;chuan xi;chuan xi shi;gawanisi si;kawanyshy;kawanyshy hywgw;Каваниси;Каваниши;Каваніші;Кауаниши;كاوانيشي;کاوانیشی، هیوگو;川西;川西市;가와니시 시; +city::1859730;Kawaguchi;Kauaguchi;Kavaguchi;Kavagucis;Kavaguti;Kavagučis;Kavaquci;Kavaquçi;Kawaguchi;Kawaguti-chhi;Kawaguti-chhī;Kawagutsi;chuan kou;chuan kou shi;gawaguchi si;kawaghwtshy;kawaguchi;kawagwchy saytama;kawagwchy sayytama;kha wangu chi;Кавагути;Кавагучи;Каваґуті;Кауагучи;كاواغوتشي;کاواگوچی، سائیتاما;کاواگوچی، سایتاما;คะวะงุชิ;კავაგუტი;かわぐち;カワグチ;川口;川口市;가와구치 시; +city::1859740;Kawagoe;Kavagoe;Kavagoeh;Kawagoe;Kawagoe-chhi;Kawagoe-chhī;chuan yue;chuan yue shi;gawago-e si;kawaghwyh;kawagwyh saytama;kha wa ngoa xea;Кавагое;Кавагоэ;Каваґое;كاواغويه;کاواگوئه، سایتاما;کاواگوے، سائیتاما;คะวะโงะเอะ;კავაგოე;川越;川越市;가와고에 시; +city::1859884;Kasukabe;Kasukabe;Kasukabe-chhi;Kasukabe-chhī;chun ri bu;chun ri bu shi;gaseukabe si;kasukabe;kaswkabh saytama;kaswkaby;kha suk a bea;po bi;Касукабе;كاسوكابي;کاسوکابه، سایتاما;کاسوکابے، سائیتاما;คะซุกะเบะ;かすかべ;カスカベ;春日部;春日部市;粕壁;가스카베 시; +city::1859891;Kasugai;Kasugai;Kasugai-chhi;Kasugai-chhī;Kasugaj;chun ri jing;chun ri jing shi;gaseugai si;kaswgay;kaswgay aychy;kaswgayy aychy;kaswghay;khasu ngi;Касугаи;Касугай;Касугај;Касуґай;Касүгаи;كاسوغاي;کاسوگائی، ایچی;کاسوگای;کاسوگای، آیچی;کسوگا‌‍‌ئ;คะซุไง;春日井;春日井市;가스가이 시; +city::1859908;Kashiwazaki;Kashivazaki;Kashiwazaki;Kasivadzaki;Kasiwazaki-chhi;Kasiwazaki-chhī;Kasyiwasaki;bai qi;bai qi shi;gasiwajaki si;kashywazaky;kashywazaky nygata;Касивадзаки;Касівадзакі;Кашивазаки;كاشيوازاكي;کاشیوازاکی، نیگاتا;柏崎;柏崎市;가시와자키 시; +city::1859924;Kashiwa;Kashiva;Kashiwa;Kasiva;Kasiwa-chhi;Kasiwa-chhī;Kaşiva;bai;bai shi;gasiwa si;kashywa;kashywa chyba;kha chi wa;Касива;Касіва;Кашива;كاشيوا;کاشیوا، چیبا;คะชิวะ;柏;柏市;가시와 시; +city::1859951;Kashihara-shi;Kashihara;Kashihara-shi;jiang yuan;jiang yuan shi;橿原;橿原市; +city::1859952;Kashihara;Kashihara;Kashiharacho;Kashiharachō;Kashiwabara;Kashiwara;bai yuan;柏原; +city::1859990;Kasaoka;Kasaoka;li gang;笠岡; +city::1860034;Kariya;Karija;Kariya;Kariya-chhi;Kariya-chhī;Kariya-cho;Kariya-chō;galiya si;karya aychy;karyya;karyya aychy;yi gu;yi gu shi;Кария;Карија;Карія;كارييا;کاریا، آیچی;کاریہ;کارییا، ایچی;刈谷;刈谷市;가리야 시; +city::1860063;Karatsu;Karacu;Karatsu;Karatu;Karatu Si;Karatu-chhi;Karatu-chhī;galasseu si;karatsw;karatsw saga;tang jin;tang jin shi;Каратсу;Карацу;كاراتسو;کاراتسو;کاراتسو، ساگا;唐津;唐津市;가라쓰 시; +city::1860098;Kanuma;Kamima;Kanuma;Kanuma-chhi;Kanuma-chhī;ganuma si;kanwma;kanwma twchygy;lu zhao;lu zhao shi;Канума;كانوما;کانوما، توچیگی;鹿沼;鹿沼市;가누마 시; +city::1860112;Kanoya;Kanoja;Kanoya;Kanoya-chhi;Kanoya-chhī;ganoya si;kanwya;kanwya kagwshyma;lu wu;lu wu shi;Каноя;Каноја;كانويا;کانویا، کاگوشیما;鹿屋;鹿屋市;가노야 시; +city::1860243;Kanazawa;Canasava;Kanadzava;Kanazaua;Kanazawa;Kanazawa-shi;Kanazawa-si;Kanazawashi;Kanazaŭa;ganajawa si;jin ze;jin ze shi;kanazawa;kanazawashi;Канадзава;かなざわ;かなざわし;カナザワ;カナザワシ;金沢;金沢市;金澤市;가나자와 시; +city::1860437;Kamirenjaku;Kami-renjaku;Kamirenjaku;Mitaka;Mitaka-machi;Mitaka-mura;kamirenjaku;shang lian que;Митака;かみれんじゃく;カミレンジャク;上連雀; +city::1860635;Kameoka;Kameoka;Kameoka-chhi;Kameoka-chhī;game-oka si;gui gang;gui gang shi;kamywka;kha mea xoa ka;Камеока;كاميوكا;کامه‌اوکا، کیوتو;คะเมะโอะกะ;亀岡;亀岡市;龜岡市;가메오카 시; +city::1860672;Kamakura;Gorad Kamakura;Kamakura;Kamakura-chhi;Kamakura-chhī;gamakula si;kamakwra;kamakwra kanagawa;kha ma kura;lian cang;lian cang shi;Горад Камакура;Камакура;كاماكورا;کاماکورا، کاناگاوا;คะมะกุระ;鎌倉;鎌倉市;镰仓市;가마쿠라 시; +city::1860704;Kakogawacho-honmachi;Kakogawa;Kakogawacho-honmachi;Kakogawachō-honmachi;gakogawa si;jia gu chuan ding ben ding;jia gu chuan shi;加古川市;加古川町本町;가코가와 시; +city::1860728;Kakegawa;Kakegaua;Kakegava;Kakegawa;Kakegawa-chhi;Kakegawa-chhī;Kakegaŭa;Kakehgava;gakegawa si;gua chuan;gua chuan shi;kakyghawa;Какегава;Какеґава;Какэгава;كاكيغاوا;کاکه‌گاوا، شیزوئوکا;掛川;掛川市;가케가와 시; +city::1860735;Kakamigahara;Kagamigahara;Kagamihara;Kakamigahara;Kakamigahara-chhi;Kakamigahara-chhī;Kakamigakhara;gakamigahala si;ge wu yuan;ge wu yuan shi;kakamygahara gyfw;kakamyghhara;Какамигахара;Какамигаҳара;Какаміґахара;كاكاميغهارا;کاکامیگاهارا، گیفو;کاکامیگاہارا، گیفو;各务原市;各務原;各務原市;가카미가하라 시; +city::1860748;Kashima-shi;Kashima;lu dao;lu dao shi;鹿島;鹿島市;鹿嶋;鹿嶋市; +city::1860765;Kaizuka;Kaitsuka;Kaizuka;bei zhong;bei zhong shi;貝塚;貝塚市; +city::1860827;Kagoshima;KOJ;Kagoshima;Kagoshima-shi;Kagoshimashi;Kagosima;Kagošima;gagosima si;kaghwshyma;kagoshima;kagoshimashi;lu er dao;lu er dao shi;lu r dao shi;Кагошима;كاغوشيما;かごしま;かごしまし;カゴシマ;カゴシマシ;鹿儿岛市;鹿児島;鹿児島市;가고시마 시; +city::1860871;Kadoma;Kadoma;Kadoma-chhi;Kadoma-chhī;Kadome;gadoma si;kadwma awsaka;kha doa ma;men zhen;men zhen shi;Кадома;Кадоме;كادوما، أوساكا;کادوما، اوساکا;คะโดะมะ;門真;門真市;가도마 시; +city::1861084;Izumo;IZO;Idzumo;Isumo;Itsumo;Izumo;Izumo-chhi;Izumo-chhī;ayzwmw;azwmw;chu yun;chu yun shi;ijeumo si;xisu moa;Ідзумо;Идзумо;Изумо;إزومو;ایزومو;อิซุโมะ;出雲;出雲市;이즈모 시; +city::1861095;Izumiotsu;Ebisucho;Ebisuchō;Idzumotsu;Izumiotsu;Izumiōtsu;Otsu;quan da jin;Ōtsu;Идзумотсу;泉大津; +city::1861107;Izumi;Izumi;he quan;和泉; +city::1861164;Iwatsuki;Iwatsuki;iwatsuki;yan gui;いわつき;イワツキ;岩槻; +city::1861171;Iwata;Ivata;Iwata;Iwata-chhi;Iwata-chhī;awata;aywata shyzwywka;iwata si;pan tian;pan tian shi;xi wa ta;İvata;Івата;Ивата;إواتا;ایواتا، شیزوئوکا;อิวะตะ;磐田;磐田市;이와타 시; +city::1861212;Iwakuni;IWK;Ivakuni;Iwakuni;Iwakuni-chhi;Iwakuni-chhī;Ngam-koet-su;Ngàm-koet-sṳ;awakwny;aywakwny yamagwchy;iwakuni si;yan guo;yan guo shi;Івакуні;Ивакуни;איוואקוני;إواكوني;ایواکونی، یاماگوچی;ივაკუნი;岩国;岩国市;岩國市;이와쿠니 시; +city::1861244;Iwade;Iwade;yan chu;岩出; +city::1861280;Itoman;Ichuman;Itoman;Shionja;Shunja;Sunja;Sunza;itoman;mi man;いとまん;糸満; +city::1861290;Ito;Itas;Ito;Ito-chhi;Itó;Itô-chhī;Itō;atw;aytw shyzwywka;ito si;xi to;yi dong;yi dong shi;Іто;Ито;إتو;ایتو، شیزوئوکا;อิโต;伊東;伊東市;이토 시; +city::1861310;Itami;Itami;Itami-chhi;Itami-chhī;Itan;atamy;aytamy hywgw;itami si;xi ta mi;yi dan;yi dan shi;İtami;Ітамі;Итами;إتامي;ایتامی، هیوگو;อิตะมิ;伊丹;伊丹市;이타미 시; +city::1861436;Isesaki;Iseaki;Isehsaki;Isesaki;Isesaki-chhi;Isesaki-chhī;Isezaki;asysaky;asysaky gwnma;isesaki si;xi sea saki;yi shi qi;yi shi qi shi;Ісесакі;Исесаки;Исэсаки;إسيساكي;اسیساکی، گونما;ایسه‌ساکی، گونما;อิเซะซะกิ;伊勢崎;伊勢崎市;이세사키 시; +city::1861449;Isehara;Isehara;yi shi yuan;伊勢原; +city::1861450;Ise;Ise;Ise-chhi;Ise-chhī;Iseh;Isė;Udiyamada;Uji;Uji-Yamada;Uziyamada;Yamada;aysh;aysh myh;ise;ise si;yi shi;yi shi shi;Ісе;Исе;Исэ;إيسه;ایسه، میه;ისე;伊勢;伊勢市;이세 시; +city::1861464;Isahaya;Isahaja;Isahara;Isahaya;Isahaya-chhi;Isahaya-chhī;Isakhaja;aysahaya;aysahaya nagazaky;dong zao;dong zao shi;isahaya si;jian zao;jian zao shi;Ісахая;Исахая;Исахаја;Исаҳая;إيساهايا;ایساهایا، ناگازاکی;諌早;諌早市;諫早;諫早市;이사하야 시; +city::1861528;Inuyama;Inujama;Inuyama;Inuyama-chhi;Inuyama-chhī;Inuyama-cho;Inuyama-chō;anwyama aytshy;aynwyama aychy;inuyama si;quan shan;quan shan shi;xinu ya ma;Інуяма;Инуяма;إنوياما، آيتشي;انویامہ;اینویاما، آیچی;อินุยะมะ;犬山;犬山市;이누야마 시; +city::1861602;Inazawa;Inadzava;Inasawa;Inasawacho;Inasawachō;Inazava;Inazawa;Inazawa-chhi;Inazawa-chhī;Inazawacho;Inazawachō;anazawa;anazawa aychy;aynazawa aychy;dao ze;dao ze shi;inajawa si;Інадзава;Инадзава;Иназава;إنازاوا;انازاوا، ایچی;انازاوہ;اینازاوا، آیچی;稲沢;稲沢市;稻澤市;이나자와 시; +city::1861641;Ina;Ina;Ina-chhi;Ina-chhī;ana;ayna naganw;ina si;xin a;yi na;yi na shi;Іна;Ина;Ինա;إنا;اینا، ناگانو;อินะ;伊那;伊那市;이나 시; +city::1861677;Imaricho-ko;Imari;Imaricho-ko;Imarichō-kō;Imarimachi;yi wan li ding jia;Имари;伊万里町甲; +city::1861699;Imaichi;; +city::1861749;Ikoma;Ikoma;Ikoma-chhi;Ikoma-chhī;Ikuma;akwma;aykwma nara;ikoma si;sheng ju;sheng ju shi;xi koa ma;Ікома;Икома;إكوما;ایکوما، نارا;อิโกะมะ;生駒;生駒市;이코마 시; +city::1861795;Ikeda;Ikeda;chi tian;chi tian shi;Икеда;池田;池田市; +city::1861835;Iizuka;Iidzuka;Iisuka;Iizuka;Iizuka-chhi;Iizuka-chhī;Izuka;ayzwka fwkwywka;fan zhong;fan zhong shi;ijeuka si;lyzwka;Іїдзука;Изука;Иидзука;Иизука;ایزوکا، فوکوئوکا;ليزوكا;飯塚;飯塚市;이즈카 시; +city::1861864;Iida;Ida;Iida;Iida-chhi;Iida-chhī;ayda naganw;ayyda;fan tian;fan tian shi;ida si;xi da;Іїда;Ида;Иида;Իիդա;إييدا;ایدا، ناگانو;อีดะ;飯田;飯田市;이다 시; +city::1861949;Ichinomiya;Ichinomija;Ichinomiya;Itinomija;Itinomiya;Itinomiya-chhi;Itinomiya-chhī;Owari-ichinomiya;achynwmya aychy;aychynwmya aychy;aytshynwmya;ichinomiya si;xi chi noa mi ya;yi gong;yi gong shi;İtinomiya;Ітіномія;Итиномия;Ичиномия;Ичиномија;إيتشينوميا;اچینومیا، ایچی;ایچینومیا، آیچی;อิชิโนะมิยะ;იტინომია;一宮;一宮市;이치노미야 시; +city::1862033;Ibaraki;IBR;Ibaragi;Ibaraki;Ibaraki-chhi;Ibaraki-chhī;abaraky;aybaraky awsaka;ci cheng shi;ci mu;ci mu shi;ibalaki si;xiba raki;Ібаракі;Ибараки;إباراكي;ایباراکی، اوساکا;อิบะระกิ;იბარაკი;茨城市;茨木;茨木市;이바라키 시; +city::1862198;Honjo;Hondyo;Honjo;Honjō;Honzyo-chhi;Honzyô-chhī;Khondz'o;Khondzjo;ben zhuang;ben zhuang shi;honjo si;hwnjw;hwnjw saytama;Хондзьо;Хондзё;Ҳонҷо;هونجو;هونجو، سایتاما;本庄;本庄市;혼조 시; +city::1862302;Hofu;Bofu;Bohu;Bōfu;Bōhu;Hofu;Hōfu;fang fu;防府; +city::1862373;Hita;Hida;Hita;Hita-chhi;Hita-chhī;Khita;Khity;hita si;hyta awyta;hyta awyyta;ri tian;ri tian shi;Хита;Хиты;Хіта;Ҳита;هيتا، أويتا;هیتا، اوئیتا;日田;日田市;히타 시; +city::1862415;Hiroshima;Chirosima;HIJ;Hiroshima;Hiroshima-shi;Hiroshimashi;Hirosima;Hirosimo;Hiroxima;Hiroxima - guang dao shi;Hiroxima - 広島市;Hiroŝimo;Hiroşima;Hirošima;Hiroșima;Khiroshima;Khirosima;canghwad hi roa chi ma;guang dao;guang dao shi;hi ro chi ma;hilosima si;hiroshima;hiroshimashi;hirosima;hyrwshyma;hyrwsymh;Χιροσίμα;Хиросима;Хирошима;Хіросіма;הירושימה;هيروشيما;هیروشیما;हिरोशिमा;จังหวัดฮิโระชิมะ;ฮิโรชิมา;ჰიროსიმა;ჰიროშიმა;ひろしま;ひろしまし;ヒロシマ;ヒロシマシ;広島;広島市;廣島市;히로시마 시; +city::1862462;Hiratsuka;Hiracuka;Hiratsuka;Hiratuka;Hiratuka-chhi;Hiratuka-chhī;Khiracuka;hi ra suk a;hilasseuka si;hyratswka;hyratswka kanagawa;ping zhong;ping zhong shi;Хирацука;Хірацука;Ҳиратсука;هيراتسوكا;هیراتسوکا، کاناگاوا;ہیراتسوکا، کاناگاوا;ฮิระสึกะ;ჰირაცუკა;平塚;平塚市;히라쓰카 시; +city::1862540;Hirakata;Hirakata;hilakata si;hyrakata awsaka;mei fang;mei fang shi;هيراكاتا، أوساكا;枚方;枚方市;히라카타 시; +city::1862599;Hino;Hinas;Hino;Hino-chhi;Hino-chhī;Khino;hi noa;hino si;hynw;hynw twkyw;ri ye;ri ye shi;Хино;Хіно;Ҳино;Հինո;هينو;هینو، توکیو;ฮิโนะ;日野;日野市;히노 시; +city::1862612;Himimachi;bi mei ding;比美町; +city::1862627;Himeji;Gorad Khimedzi;Hime;Himeci;Himedi;Himegi;Himeji;Himezi;Himezi-chhi;Himezi-chhī;Himeĝi;Khimedzhi;Khimedzi;Khimehdzi;hi mea ci;himeji si;hymgy;hymyjy;ji lu shi;zhen lu;Горад Хімедзі;Химеджи;Химедзи;Химеџи;Химэдзи;Хімедзі;Ҳимеҷи;הימגי;هيميجي;هیمه‌جی، هیوگو;ہیمیجی، ہیوگو;ฮิเมะจิ;姫路;姫路市;姬路市;히메지 시; +city::1862636;Hikone;Hikone;Khikoneh;yan gen;yan gen shi;Хиконэ;彦根;彦根市; +city::1862912;Hekinan;Hekinan;Hekinan-chhi;Hekinan-chhī;Khekinan;bi nan;bi nan shi;hekinan si;hkynan aychy;hykynan;Хекинан;Хекинан қаласы;Хекінан;Ҳекинан;هيكينان;هکینان، آیچی;ہیکینان;碧南;碧南市;헤키난 시; +city::1863018;Hatsukaichi;Hacukaici;Hacukaiĉi;Hatsukaichi;Hatukaiti;Hatukaiti-chhi;Hatukaiti-chhī;Khacukaichi;Khacukaiti;hasseukaichi si;hasu ki chi;hatswkaaychy hyrwshyma;hatswkayjy;nian ri;nian ri shi shi;Хацукаити;Хацукаичи;Хацукаїті;Ҳатсукаичи;هاتسوکاایچی، هیروشیما;هاتسوکایجي;ฮะสึไกชิ;廿日;廿日市市;하쓰카이치 시; +city::1863023;Hatogaya-honcho;Hatagayacho;Hatagayachō;Hatogaya;Hatogaya-honcho;Hatogaya-honchō;Hatogayamachi;hatogayahonchou;jiu~ke gu ben ding;はとがやほんちょう;ハトガヤホンチョウ;鳩ヶ谷本町; +city::1863082;Hashimoto;Hashimoto;Hasimoto;Hasimoto-chhi;Hasimoto-chhī;Haŝimoto;Khasimoto;hashymwtw;hashymwtw wakayama;hasimoto si;qiao ben;qiao ben shi;Хасимото;Хасімото;Ҳашимото;هاشيموتو;هاشیموتو;هاشیموتو، واکایاما;橋本;橋本市;하시모토 시; +city::1863173;Hanyu;Hanyu;Hanyu-chhi;Hanyû-chhī;Hanyū;Khan'juj;Khanju;hanya;hanyu si;hanyw;hanyw saytama;yu sheng;yu sheng shi;Ханьюй;Ханю;Ҳаню;هانيا;هانیو;هانیو، سایتاما;羽生;羽生市;하뉴 시; +city::1863183;Hanno;Channo;Hanno;Hanno-chhi;Hanno-chhī;Hannō;Khanno;fan neng;fan neng shi;hanno si;hanw;Χάννο;Ханно;Ҳанноу;هانو;هان‌نو;هان‌نو، سایتاما;飯能;飯能市;한노 시; +city::1863209;Handa;Handa;Handa-chhi;Handa-chhī;Khanda;Manda;ban tian;ban tian shi;handa;handa si;handa aychy;Ханда;Ханда қаласы;هاندا;هاندا، آیچی;ہانڈا، ایچی;ہینڈا;半田;半田市;한다 시; +city::1863289;Hamamatsu;Hamamacu;Hamamatsu;Hamamatsu City;Hamamatsu-shi;Hamamatu;Hamamatu-chhi;Hamamatu-chhī;Khamamacu;bang song;bang song shi;bin song shi;ha ma masu;hamamasseu si;hamamatsw;hamamatsw shyzwywka;Хамамацу;Хамамацү;Ҳамаматсу;هاماماتسو;هاماماتسو، شیزوئوکا;ہاماماتسو;ฮะมะมะสึ;浜松;浜松市;滨松市;하마마쓰 시; +city::1863293;Hamakita;Hamakita; +city::1863431;Hadano;Hadano;Hadano-chhi;Hadano-chhī;Hatano;Hatano-machi;Khadano;ha da noa;hadano si;hadanw;hadanw kanagawa;qin ye;qin ye shi;Хадано;Ҳадано;هادانو;هادانو، کاناگاوا;ฮะดะโนะ;秦野;秦野市;하다노 시; +city::1863440;Hachioji;Hachioji;Hachiouji;Hachiōji;Haciodzis;Haciogi;Hatiozi;Hatiozi-chhi;Hatiôzi;Hatiôzi-chhī;Haĉioĝi;Hačiodžis;Khachiodzhi;Khachiodzi;Khatiodzi;ba wang zi;ba wang zi shi;ha chi xo ci;hachioji si;hatshywwjy;Хатиодзи;Хатіодзі;Хачиоджи;Хачиоџи;Ҳачиоҷи;هاتشيؤوجي;هاچی‌اوجی، توکیو;ہاچیوجی، ٹوکیو;ฮะชิโอจิ;八王子;八王子市;하치오지 시; +city::1863451;Omihachiman;Omi-Khachiman;Omihachiman;Omihachiman-shi;Omihatiman-chhi;Omikhatiman;awmyhachyman shyga;awmyhatshyman;jin jiang ba fan;jin jiang ba fan shi;omihachiman si;Ômihatiman-chhī;Ōmihachiman-shi;Омихатиман;Омі-Хачіман;Оумиҳачиман;أوميهاتشيمان;اومیهاچیمان، شیگا;近江八幡;近江八幡市;오미하치만 시; +city::1863482;Gyoda;G'oda;Gjoda;Gyoda;Gyoda-chhi;Gyôda-chhī;Gyōda;ghywda;gyoda si;gywda saytama;xing tian;xing tian shi;Гёда;Ґьода;غيودا;گیودا، سایتاما;行田;行田市;교다 시; +city::1863495;Gushikawa;Geshicha;Geshichā;Gushichaa;Gushikawa;Gusikawa;ju zhi chuan;具志川; +city::1863528;Gotenba;Gotemba;Gotenba;Kyu-gotemba;Kyū-gotemba;yu dian chang;Готемба;御殿場; +city::1863627;Ginowan;Chinon;Chinōn;Ginowan;Jinon;Jinōn;ginowan;ginowan si;yi ye wan;yi ye wan shi;ぎのわん;宜野湾;宜野湾市;宜野灣市;기노완 시; +city::1863641;Gifu-shi;Gifu;Gifu City;Gifu-shi;Gihu;gifushi;gihu si;qi fu;qi fu shi;Гифу;ぎふし;岐阜;岐阜市;기후 시; +city::1863693;Gamagori;Gamagori;Gamagori-chhi;Gamagôri-chhī;Gamagōri;gamagoli si;gamagwry;gamagwry aychy;ghamaghwry;pu jun;pu jun shi;Гамагори;Ґамаґорі;غاماغوري;گاماگوری;گاماگوری، آیچی;蒲郡;蒲郡市;가마고리 시; +city::1863713;Futtsu;Fuccu;Futtso;Futtsu;Huttu-chhi;Huttu-chhī;fu jin;fu jin shi;fut su;futtsu;fwtsw chyba;fwtsw tshyba;hus-sseu si;Футтсу;Фуццу;فوتسو، تشيبا;فوتسو، چیبا;ฟุตสึ;ふっつ;フッツ;富津;富津市;훗쓰 시; +city::1863905;Honcho;Funabashi;Funabasi;Funabaŝi;Funabaşi;Furabeshi;Honcho;Honchō;Hunabasi;Hunabasi-chhi;Hunabasi-chhī;ben ding;chuan qiao;chuan qiao shi;fu naba chi;fwnabashy;fwnabashy chyba;hunabasi si;Фунабаси;Фунабасі;Фунабаши;فوناباشي;فوناباشی، چیبا;ฟุนะบะชิ;本町;船橋;船橋市;후나바시 시; +city::1863917;Fukuyama;Fukujama;Fukuyama;Hukuyama;Hukuyama-chhi;Hukuyama-chhī;fu ku ya ma;fu shan;fu shan shi;fwkwyama;fwkwyama hyrwshyma;hukuyama si;Фукуяма;Фукујама;فوکویاما;فوکویاما، هیروشیما;فوکویاما، ہیروشیما;ฟุกุยะมะ;福山;福山市;후쿠야마 시; +city::1863945;Fukuroi;Fukuroi;Fukuroj;Hukuroi-chhi;Hukuroi-chhī;Pukuroi;dai jing;dai jing shi;fu ku roaxi;fwkwrwyy shyzwywka;fwkwry;hukuloi si;phukro'i;Фукурои;Фукурой;فوكوري;فوکورویی، شیزوئوکا;फुक्रोई;ฟุกุโระอิ;袋井;袋井市;후쿠로이 시; +city::1863967;Fukuoka;FUK;Fucuoca;Fukuoka;Fukuoka-shi;Fukuokashi;Hukuoka;fu gang;fu gang shi;fukuoka;fukuokashi;fwkwka;hukuoka si;Фукуока;فوكوكا;ふくおか;ふくおかし;フクオカ;フクオカシ;福岡;福岡市;후쿠오카 시; +city::1863985;Fukui-shi;FKJ;Fukuj;fu jing;fu jing shi;fukuishi;Фукуй;ふくいし;福井;福井市; +city::1864009;Fukuchiyama;Fukuchijama;Fukuchiyama;Fukucijama;Fukutijama;Fukučijama;Hukutiyama;fu ku chi ya ma;fu zhi shan;fu zhi shan shi;fwkwtshyama;hukuchiyama si;Фукутияма;Фукучияма;Фукучіяма;פוקושיאמה;فوكوتشياما;فوکوچی‌یاما، کیوتو;ฟุกุชิยะมะ;福知山;福知山市;후쿠치야마 시; +city::1864092;Fujisawa;Fudzhisava;Fudzisava;Fudžisava;Fujisava;Fujisawa;Gorad Fudzisava;Huzisawa-chhi;Huzisawa-chhī;Pudyisawa;fu ci sa wa;fwjysawa;fwjysawa kanagawa;hujisawa si;teng ze;teng ze shi;Горад Фудзісава;Фуджисава;Фудзисава;Фудзісава;Фуџисава;Фуҷисава;فوجيساوا;فوجیساوا، کاناگاوا;ฟุจิซะวะ;藤沢;藤沢市;藤澤市;후지사와 시; +city::1864099;Fujioka;Fudzioka;Fujioka;Huzioka-chhi;Huzioka-chhī;fwjywka;hujioka si;teng gang;teng gang shi;Фудзиока;Фудзіока;Фуҷиока;فوجيوكا;فوجی‌اوکا، گونما;藤岡;藤岡市;후지오카 시; +city::1864105;Fujinomiya;Fudzinomija;Fudžinomija;Fujimiya;Fujinomija;Fujinomiya;Huzinomiya-chhi;Huzinomiya-chhī;Omiya;Pudyinomiya;fu ci noa mi ya;fu shi gong;fu shi gong shi;fwjynwmya;hujinomiya si;Ōmiya;Фудзиномия;Фудзіномія;Фуџиномија;Фуҷиномия;فوجينوميا;فوجی‌نومیا، شیزوئوکا;ฟุจิโนะมิยะ;富士宮;富士宮市;후지노미야 시; +city::1864132;Fujieda;Fudziehda;Fujieda;teng zhi;teng zhi shi;Фудзиэда;藤枝;藤枝市; +city::1864134;Fuji;Foutzi;Fudzhi;Fudzi;Fudzis;Fudži;Fudžis;Fuji;Huzi-chhi;Huzi-chhī;fu ci;fu shi;fu shi shi;fwjy;fwjy shyzwywka;fywjy shyzwka;huji si;phuji;Φούτζι;Фуджи;Фудзи;Фудзі;Фуџи;Фуҷи;Фүжи;فوجي;فوجی، شیزوئوکا;فیوجی، شیزوکا;ফুজি;ฟุจิ;富士;富士市;후지 시; +city::1864155;Fuchucho;Fuchu;Fuchucho;Fuchū;Fuchūchō;fu zhong;fu zhong ding;Фучу;府中;府中町; +city::1864416;Daitocho;Daito;Daitocho;Daitō;Daitōchō;da dong;da dong ding;大東;大東町; +city::1864549;Chiryu;Chirju;Chiryu;Chiryu-cho;Chiryū;Chiryū-chō;Csirju;Csirjú;Tirju;Tiryu-chhi;Tiryū-chhī;Tsiryu;chyrw aychy;chyryw aychy;jilyu si;tshyryw;zhi li;zhi li shi;Тирю;Тірю;Чирю;تشيريو;چیرو، آیچی;چیریو، ایچی;知立;知立市;지류 시; +city::1864557;Chino;Chino;Cino;Tino;Tino-chhi;Tino-chhī;chi noa;chynw naganw;jino si;mao ye;mao ye shi;tshynw;Ĉino;Тино;Тіно;Чино;Տինո;تشينو;چینو، ناگانو;ชิโนะ;茅野;茅野市;지노 시; +city::1864572;Chikushino-shi;chikushino;zhu zi ye;zhu zi ye shi;筑紫野;筑紫野市; +city::1864624;Chigasaki;Chigaraki;Chigasaki;Cigasakis;Tigasaki;Tigasaki-chhi;Tigasaki-chhī;chi nga saki;chygasaky kanagawa;jigasaki si;mao qi shi;maoke qi;mao~ke qi;mao~ke qi shi;tshyghasaky;Čigasakis;Тигасаки;Тіґасакі;Чигасаки;تشيغاساكي;چیگاساکی، کاناگاوا;ชิงะซะกิ;茅ケ崎;茅ヶ崎;茅ヶ崎市;茅崎市;지가사키 시; +city::1864637;Chichibu;Chichibu;Cicibu;Titibu;Titibu-chhi;Titibu-chhī;Titubunomiya;Tsitsibu;chi chi bu;chychybw saytama;jichibu si;tshytshybw;zhi fu;zhi fu shi;Čičibu;Титибу;Тітібу;Чичибу;تشيتشيبو;چیچیبو، سایتاما;ชิชิบุ;秩父;秩父市;지치부 시; +city::1864750;Beppu;BPU;Behppu;Beppu;Beppu-chhi;Beppu-chhī;Bepu;bespu si;bie fu;bie fu shi;bpw awyyta;bybw;Беппу;Бепу;Бэппу;بيبو;بپو، اوئیتا;ბეპუ;別府;別府市;벳푸 시; +city::1864985;Ashiya;Ashija;Ashiya;Asija;Asiya;Asiya-chhi;Asiya-chhī;Aŝija;Aşiya;ashya;ashya hywgw;asiya si;lu wu;lu wu shi;Асия;Ашия;Ашія;آشيا;آشیا، هیوگو;芦屋;芦屋市;蘆屋市;아시야 시; +city::1865005;Ashikaga;Ashikaga;Ashikaga - zu li shi;Ashikaga - 足利市;Asikaga;Asikaga-chhi;Asikaga-chhī;Ašikaga;ashykaga twchygy;ashykagha;asikaga si;zu li;zu li shi;Асикага;Асікаґа;Ашикага;آشیکاگا، توچیگی;أشيكاغا;足利;足利市;아시카가 시; +city::1865294;Anjo;Andyo;Andz'o;Andzijas;Andzjo;Andzo;Andzso;Andzsó;Andžijas;Anjo;Anjō;Anziyan;Anzyo-chhi;Anzyô-chhī;an cheng;an cheng shi;anjo si;anjw;anjw aychy;aynjw;xan co;Андзьо;Андзё;Анџо;Анҷо;آنجو، آیچی;آنجو، ایچی;أنجو;اینجو;อันโจ;安城;安城市;안조 시; +city::1865309;Anan;Anan;Anan-chhi;Anan-chhī;a nan;a nan shi;anan;anan si;anan twkwshyma;Анан;آنان، توکوشیما;أنان;阿南;阿南市;아난 시; +city::1865387;Amagasaki;Amagasaki;ni qi;ni qi shi;尼崎;尼崎市; +city::1865412;Kariya;Akaho;Ako;Akō;Kariya;jia wu;Ако;仮屋; +city::1865714;Ageoshimo;Ageo;Ageomura;Ageoshimo;ageoshimo;shang wei;shang wei shi;shang wei xia;あげおしも;アゲオシモ;上尾;上尾下;上尾市; +city::1894616;Okinawa;Lungsod ng Okinawa;OKA;Okinava;Okinawa;Okinawa-chhi;Okinawa-chhī;awkynawa;chong sheng shi;chong ying;chong ying shi;mdynt awkynawa;okinawa si;xoa kin a wa;Окинава;Окінава;اوکیناوا;مدينة أوكيناوا;ඔකිනාවා;โอะกินะวะ;沖縄;沖縄市;沖繩市;오키나와 시; +city::1907123;Hasuda;Hasuda;hasuda;lian tian;lian tian shi;はすだ;ハスダ;蓮田;蓮田市; +city::1907125;Kamifukuoka;Kamifukuoka;kamifukuoka;shang fu gang;かみふくおか;カミフクオカ;上福岡; +city::1907146;Sayama;Irumagawa;Sajama;Sayama;Sayama-chhi;Sayama-chhī;sayama;sayama si;sayama saytama;xia shan;xia shan shi;Саяма;Сајама;ساياما;سایاما، سایتاما;狭山;狭山市;狹山市;사야마 시; +city::1907148;Fussa;Fusa;Fussa;Hussa-chhi;Hussa-chhī;fu sheng;fu sheng shi;fus sa;fwsa;fwsa twkyw;hus-sa si;Фусса;Ֆուսա;فوسا;فوسا، توکیو;ฟุสซะ;福生;福生市;훗사 시; +city::1907299;Asaka;Asaka;Asaka-chhi;Asaka-chhī;asaka si;asaka saytama;asaky;chao xia;chao xia shi;xa sa ka;Асака;آساکا، سایتاما;أساكي;อะซะกะ;朝霞;朝霞市;아사카 시; +city::1907300;Wako;Vako;Wako;he guang;Вако;和光; +city::1907301;Shimotoda;Shimotoda;Toda;shimotoda;xia hu tian;Тода;しもとだ;シモトダ;下戸田; +city::1907307;Kimitsu;Kimicu;Kimitsu;Kimitu-chhi;Kimitu-chhī;gimisseu si;jun jin;jun jin shi;khi misu;kimitsu;kymytsw;kymytsw chyba;Кимитсу;Кимицу;Кіміцу;كيميتسو;کیمیتسو، چیبا;คิมิสึ;きみつ;キミツ;君津;君津市;기미쓰 시; +city::1907309;Miura;Miura;Miura-chhi;Miura-chhī;mi xura;miula si;mywra;mywra kanagawa;san pu;san pu shi;Миура;Міура;ميورا;میورا، کاناگاوا;มิอุระ;三浦;三浦市;미우라 시; +city::1926004;Wakayama;Vakajama;Wakayama;Wakayama-shi;Wakayamashi;he ge shan;he ge shan shi;wakayama;wakayamashi;Вакаяма;わかやま;わかやまし;ワカヤマ;ワカヤマシ;和歌山;和歌山市; +city::1926020;Uwajima;Uvadzhima;Uvadzima;Uwadyima;Uwazima;Uwazima-chhi;Uwazima-chhī;awajyma ahymh;uwajima si;yu he dao;yu he dao shi;ywajyma;Уваджіма;Увадзима;Уваҷима;اواجیما، اهیمه;اواجیما، اہیمے;يواجيما;宇和島;宇和島市;우와지마 시; +city::1926054;Saijo;Saidyo;Saidzo;Saijo;Saijō;Saizyo;Saizyo-chhi;Saizyô;Saizyô-chhī;Sajdzh'o;Sajdzjo;saijo si;sajyw;sayjw ahymh;xi tiao;xi tiao shi;Саиџо;Саиҷо;Сайджьо;Сайдзё;ساجيو;سایجو، اهیمه;سےجو، اہمے;西条;西条市;西條市;사이조 시; +city::1926099;Matsuyama;MYJ;Macujama;Matsujama;Matsuyama;Matsuyama-shi;Matuyama;Matuyama-chhi;Matuyama-chhī;masseuyama si;masu ya ma;matsuyamashi;matswyama;matswyama ahymh;song shan;song shan shi;Матсуяма;Мацуяма;Мацујама;מצויאמה;ماتسوياما;ماتسویاما، اهیمه;ماتسویاما، اہیمے;มะสึยะมะ;まつやまし;松山;松山市;마쓰야마 시; +city::2110480;Yotsukaido;Yotsukaido;Yotsukaidō;si jie dao;si jie dao shi;四街道;四街道市; +city::2110498;Yonezawa;Jonedzava;Jonehdzava;Jonezava;Yonesawa;Yonezawa;Yonezawa-chhi;Yonezawa-chhī;ionedzava;mi ze;mi ze shi;yoanea sa wa;yonejawa si;ywnyzawa;ywnyzawa yamagata;Ёнезава;Ёнэдзава;Йонедзава;Йонезава;يونيزاوا;یونه‌زاوا، یاماگاتا;یونیزاوا، یاماگاتا;โยะเนะซะวะ;იონეძავა;米沢;米沢市;米澤市;요네자와 시; +city::2110556;Yamagata;GAJ;Jamagata;Yamagata;Yamagata-shi;Yamagatashi;shan xing;shan xing shi;yamagata;yamagatashi;Ямагата;やまがた;やまがたし;ヤマガタ;ヤマガタシ;山形;山形市; +city::2110579;Yachimata;Jachimata;Jatimata;Yachimata;Yatimata-chhi;Yatimata-chhī;ba jie;ba jie shi;ya chi ma ta;yachimata si;yachymata chyba;yatshymata;ychmata chba;Ятимата;Ятімата;Ячимата;ياتشيماتا;یاچیماتا، چیبا;یچماتا، چبا;ยะชิมะตะ;八街;八街市;야치마타 시; +city::2110629;Ushiku;Ushiku;Usiku;Usiku-chhi;Usiku-chhī;awshykw;awshykw aybaraky;niu jiu;niu jiu shi;usiku si;Усику;Усіку;Ушику;أوشيكو;اوشیکو، ایباراکی;牛久;牛久市;우시쿠 시; +city::2110683;Tsukuba;Tsukuba;XEI;tsukuba;tsukuba shi;つくば;つくば市; +city::2110729;Toride;Toride;Toride-chhi;Toride-chhī;Torite;dolide si;qu shou;qu shou shi;thoa ridea;twrydh;twrydh aybaraky;Ториде;Торіде;توريده;توریده، ایباراکی;โทะริเดะ;取手;取手市;도리데 시; +city::2110774;Togane;Togane;Togane-chhi;Toganemachi;Tôgane-chhī;Tōgane;Tōganemachi;dogane si;dong jin;dong jin shi;tho nganea;twganh chyba;twghanh;Тогане;Тоґане;تؤگانے، چیبا;توغانه;توگانه، چیبا;โทงะเนะ;東金;東金市;도가네 시; +city::2110793;Tendo;Tendo;Tendō;tian tong;Тендо;天童; +city::2110959;Sukagawa;Sukagawa;xu he chuan;xu he chuan shi;須賀川;須賀川市; +city::2111018;Shiroi;Shiroi;Siroi;Siroi-chhi;Siroi-chhī;Siroj;bai jing;bai jing shi;chi roaxi;shyrwy;shyrwy chyba;shyrwyy chyba;siloi si;Сирои;Сірой;Широи;شيروي;شیروئی، چیبا;شیروی، چیبا;ชิโระอิ;白井;白井市;시로이 시; +city::2111049;Shiogama;Schiogama;Shiogama;Siogama;yan zao;Сиогама;塩竃;塩竈; +city::2111149;Sendai;SDJ;Sendai;Sendai-shi;Sendaishi;Sendaj;sendai;sendaishi;xian tai;xian tai shi;Сендай;せんだい;せんだいし;センダイ;センダイシ;仙台;仙台市; +city::2111220;Sakura;Sakura;Sakura-chhi;Sakura-chhī;sa kura;sakula si;sakwra;sakwra chyba;zuo cang;zuo cang shi;Сакура;ساكورا;ساکورا، چیبا;ซะกุระ;佐倉;佐倉市;사쿠라 시; +city::2111258;Ryugasaki;Rjugasaki;Ryugasaki;Ryugasaki-chhi;Ryûgasaki-chhī;Ryūgasaki;long qi shi;longke qi;longke qi shi;lyugasaki si;rywgasaky aybaraky;rywghasaky;Рюгасаки;Рюґасакі;ريوغاساكي;ریوگاساکی، ایباراکی;龍ケ崎;龍ケ崎市;龍崎市;류가사키 시; +city::2111325;Otawara;Otahara;Otavara;Otawara;Otawara-chhi;awtawara;awtawara twchygy;da tian yuan;da tian yuan shi;otawala si;Ôtawara-chhī;Ōtawara;Отавара;أوتاوارا;اوتاوارا، توچیگی;大田原;大田原市;오타와라 시; +city::2111568;Oami;; +city::2111684;Narita;Narita;Narita-chhi;Narita-chhī;cheng tian;cheng tian shi;na ri ta;nalita si;naryta;naryta chyba;Нарита;Наріта;ناريتا;ناریتا، چیبا;นะริตะ;成田;成田市;나리타 시; +city::2111831;Moriya;Morija;Moriya;Moriya-chhi;Moriya-chhī;moliya si;mwrya;mwrya aybaraky;shou gu;shou gu shi;Мория;Морія;موريا;موریا، ایباراکی;守谷;守谷市;모리야 시; +city::2111834;Morioka;Morioka;Morioka-chhi;Morioka-chhī;Morioka-shi;Moriokashi;moa ri xoa ka;molioka si;morioka;moriokashi;mwrywka;mwrywka aywath;sheng gang;sheng gang shi;Мориока;Моріока;מוריאוקה;موريوكا;موریوکا، ایواته;موریوکا، ایواتے;โมะริโอะกะ;もりおか;もりおかし;モリオカ;モリオカシ;盛岡;盛岡市;모리오카 시; +city::2111836;Mooka;Moka;Moka-chhi;Moka-chhī;Mooka;Mōka;moka si;mwka;mwka twchygy;zhen gang;zhen gang shi;Мока;Моока;موكا;موکا، توچیگی;真岡;真岡市;모카 시; +city::2111855;Mobara;Mobara;Mobara-chhi;Mobara-chhī;Mobaramachi;Mohara;mao yuan;mao yuan shi;moaba ra;mobala si;mobara;mwbara chyba;mwbara tshyba;Мобара;موبارا، تشيبا;موبارا، چیبا;โมะบะระ;もばら;モバラ;茂原;茂原市;모바라 시; +city::2111859;Mizusawa;Midzusava;Mizusawa;Mizuzawa;Мидзусава; +city::2111884;Miyako;Mijakas;Mijako;Miyako;Miyako-chhi;Miyako-chhī;gong gu;gong gu shi;maykw;miyako si;myakw aywath;Мияко;Міяко;مايكو;میاکو، ایواته;宮古;宮古市;미야코 시; +city::2111901;Mito;Mito;Mito-shi;Mitoshi;mito;mitoshi;shui hu;shui hu shi;みと;みとし;ミト;ミトシ;水戸;水戸市; +city::2112077;Kuroiso;; +city::2112141;Koriyama;Ginqsan Si;Korijama;Koriyama;Koriyama-chhi;Kôriyama-chhī;Kōriyama;goliyama si;jun shan;jun shan shi;kho ri ya ma;kwryama;kwryama fwkwshyma;kwryyama fwkwshyma;Корияма;Коријама;Коріяма;كورياما;کوریاما، فوکوشیما;کورییاما، فوکوشیما;کوری‌یاما، فوکوشیما;โคริยะมะ;郡山;郡山市;고리야마 시; +city::2112227;Kitakami;Kitakami;Kitakami-chhi;Kitakami-chhī;Kitakamis;bei shang;bei shang shi;gitakami si;kytakamy;kytakamy aywath;Китаками;Кітакамі;كيتاكامي;کیتاکامی، ایواته;北上;北上市;기타카미 시; +city::2112232;Kitaibaraki;Kita-Ibaraki;Kitaibaragi;Kitaibaraki;Kitaibaraki-chhi;Kitaibaraki-chhī;bei ci cheng;bei ci cheng shi;gitaibalaki si;kyta aybaraky;kytaaybaraky aybaraky;Китаибараки;Кіта-Ібаракі;كيتا إيباراكي;کیتاایباراکی، ایباراکی;北茨城;北茨城市;기타이바라키 시; +city::2112312;Katsuta;; +city::2112319;Katori-shi;Katori;Sawara;Sawara-shi;xiang qu;xiang qu shi;zuo yuan shi;佐原市;香取;香取市; +city::2112539;Iwaki;Banjsingz Si;Iuaki;Ivaki;Iwaki;Iwaki-chhi;Iwaki-chhī;Iŭaki;aywaky fwkwshyma;iwaki;iwaki shi;iwaki si;lwaky;pan cheng;pan cheng shi;xi waki;Івакі;Иваки;ایواکی، فوکوشیما;لواكي;อิวะกิ;いわき;いわき市;磐城;磐城市;이와키 시; +city::2112571;Ishioka;Ishioka;Isioka;Isioka-chhi;Isioka-chhī;ayshywka;isioka si;shi gang;shi gang shi;Ісіока;Исиока;Ишиока;إيشيوكا;ایشی‌اوکا، ایباراکی;石岡;石岡市;이시오카 시; +city::2112576;Ishinomaki;Ishinomachi;Ishinomaki;Isinomaki;Isinomaki-chhi;Isinomaki-chhī;Isyinomaki;Iŝinomaki;ayshynwmaky;ayshynwmaky myagy;isinomaki si;shi juan;shi juan shi;xi chi noa maki;Ісіномакі;Исиномаки;Ишиномаки;إيشينوماكي;ایشینوماکی، میاگی;อิชิโนะมะกิ;石卷市;石巻;石巻市;이시노마키 시; +city::2112656;Ichinoseki;Ichinoseki;Icinosekis;Itinoseki;Itinoseki-chhi;Itinoseki-chhī;Itschinoseki;Ičinosekis;atshynwsyky;aychynwsky aywath;ichinoseki si;yi guan;yi guan shi;Ітіносекі;Итиносеки;Ичиносеки;إتشينوسيكي;ایچینوسکی، ایواته;一关市;一関;一関市;이치노세키 시; +city::2112664;Ichihara;Ichihara;Ichikhara;Icihara;Itihara-chhi;Itihara-chhī;Itikhara;Iĉihara;aychyhara chyba;aytshyhara;ichihala si;shi yuan shi;xi chi ha ra;yuan;Ітіхара;Итихара;Ичихара;Ичиҳара;إيتشيهارا;اچیہارا، چیبا;ایچیهارا، چیبا;อิชิฮะระ;იტიჰარა;原;市原市;이치하라 시; +city::2112708;Hitachi;Hidachi;Hitachi;Hitati-chhi;Hitati-chhī;Khitachi;Khitati;hi ta chi;hitachi si;hytachy aybaraky;hytatshy;ri li;ri li shi;Хитати;Хитачи;Хітаті;Ҳитачи;هيتاتشي;هیتاچی، ایباراکی;ฮิตะชิ;ჰიტატი;日立;日立市;히타치 시; +city::2112823;Hanamaki;HNA;Hanamaki;Hanamaki-chhi;Hanamaki-chhī;Hanamakis;Khanamaki;ha na maki;hanamaki si;hanamaky;hanamaky aywath;hua juan;hua juan shi;Ханамаки;Ханамакі;Ҳанамаки;هاناماكي;هاناماکی;هاناماکی، ایواته;ฮะนะมะกิ;花卷市;花巻;花巻市;하나마키 시; +city::2112899;Furukawa;Furukawa;Hurukawa; +city::2112923;Fukushima;FKS;Fukushima;Fukushima-shi;Fukushimashi;Fukusima;Furukawa;Hukusima;fu dao;fu dao shi;fukushima;fukushimashi;Фукусима;ふくしま;ふくしまし;フクシマ;フクシマシ;福島;福島市; +city::2113015;Chiba;Chiba;Chiba-shi;Chibashi;Ciba;QCB;Tiba;chiba;chibashi;jiba si;qian ye;qian ye shi;tshyba;Ĉiba;Čiba;Чиба;تشيبا;ちば;ちばし;チバ;チバシ;千葉;千葉市;지바 시; +city::2113126;Akita;AXT;Akita;Akita-shi;akita;akita si;akyta;qiu tian;qiu tian shi;Акита;آکیتا;أكيتا;अकिता;秋田;秋田市;아키타 시; +city::2113164;Abiko;Abiko;wo sun zi;wo sun zi shi;Абико;我孫子;我孫子市; +city::2113719;Akita;Akita;akita;akitashi;qiu tian;qiu tian shi;あきた;あきたし;アキタ;アキタシ;秋田;秋田市; +city::2127733;Tomakomai;QTM;Tomakomai;Tomakomai-chhi;Tomakomai-chhī;Tomakomaj;domakomai si;shan xiao mu;shan xiao mu shi;thoa ma koami;twmakwmay;twmakwmay hwkaydw;Томакомаи;Томакомай;Томакомај;توماكوماي;توماکومای، هوکایدو;โทะมะโกะไม;苫小牧;苫小牧市;도마코마이 시; +city::2128295;Sapporo;Gorad Sapara;SPK;Saporas;Saporo;Sapporo;Sapporo-chhi;Sapporo-chhī;Sapporo-shi;Sapporoshi;Sapporum;Szapporo;capporo;sabwrw;sap poa roa;sapporo;sapporoshi;sapwrw;saspolo si;sypwrw;zha huang;zha huang shi;Σαππόρο;Горад Сапара;Сапоро;Саппоро;Սապորո;סאפורו;سابورو;ساپورو;سیپورو;सप्पोरो;சப்போரோ;ซัปโปะโระ;საპორო;さっぽろ;さっぽろし;サッポロ;サッポロシ;札幌;札幌市;삿포로 시; +city::2128574;Otaru;Otaru;Otaru-chhi;Otaru-chhī;QOT;awtarw;awtarw hwkaydw;otalu si;xiao zun;xiao zun shi;xoa ta ru;Отару;Отарү;أوتارو;اوتارو، هوکایدو;โอะตะรุ;小樽;小樽市;오타루 시; +city::2128787;Odate;ONJ;Odate;Odate-chhi;Otate;awdath;awdath akyta;da guan;da guan shi;odate si;oodate;xo da tea;Ódate;Ôdate-chhī;Ōdate;Ōtate;Одате;Одатэ қаласы;أوداته;اوداته، آکیتا;اوداتے، اکیتا;โอดะเตะ;おおだて;オオダテ;大館;大館市;오다테 시; +city::2128815;Obihiro;OBO;Obibiro;Obihiro;Obihiro-chhi;Obihiro-chhī;Obikhiro;awbyhyrw;awbyhyrw hwkaydw;dai guang;dai guang shi;obihilo si;xoa bi hi roa;Обихиро;Обиҳиро;Обіхіро;أوبيهيرو;اوبیهیرو، هوکایدو;โอะบิฮิโระ;帯広;帯広市;帶廣市;오비히로 시; +city::2128867;Noshiro;Noshiro;Noshiro-shi;Noshiromachi;Noshirominato;Nosiro;ONJ;neng dai;neng dai ding;neng dai shi;nosilo si;nwshyrw;nwshyrw akyta;Носиро;نوشيرو;نوشیرو، آکیتا;能代;能代市;能代町;노시로 시; +city::2129101;Muroran;Muroran;Muroran-chhi;Muroran-chhī;QRN;mu roa rang;mulolan si;mwrwan;mwrwran hwkaydw;shi lan;shi lan shi;Муроран;موروان;موروران، هوکایدو;มุโระรัง;室蘭;室蘭市;무로란 시; +city::2129376;Kushiro;KUH;Kushira;Kushiro;Kushiro Hokkaido;Kushiro Hokkaidō;Kushiro-shi;Kusiras;Kusiro;Kusiro-chhi;Kusiro-chhī;Kusyiro;Kuŝiro;Kuşiro;Kuširas;Kuširo;chuan lu;chuan lu shi;gusilo si;khu chi roa;kwshyrw;kwshyrw hwkaydw;qwsyrw;Кусиро;Кусіро;Куширо;קושירו;كوشيرو;کوشیرو، هوکایدو;คุชิโระ;釧路;釧路市;구시로 시; +city::2129537;Kitami;Kitami;Kitami-chhi;Kitami-chhī;Kitamis;Kity;Nokkeushi;Nokkeusi;Notsukeushi;Nupukeushi-mura;bei jian;bei jian shi;gitami si;khi ta mi;kytamy;kytamy hwkaydw;Китами;Киты;Кітамі;كيتامي;کیتامی، هوکایدو;คิตะมิ;北見;北見市;기타미 시; +city::2129870;Iwamizawa;Iuamizaua;Iuamizava;Ivamidzava;Ivamizava;Iwamisawa;Iwamizawa;Iwamizawa-chhi;Iwamizawa-chhī;Iŭamizaŭa;Twamizawa;aywamyzawa;aywamyzawa hwkaydw;iwamijawa si;iwamizawa;yan jian ze;yan jian ze shi;İvamizava;Івамідзава;Ивамидзава;Иуамизава;إيواميزاوا;ایوامیزاوا، هوکایدو;いわみざわ;イワミザワ;岩見沢;岩見沢市;岩見澤市;이와미자와 시;イワミザワ; +city::2129909;Ishikari;Ishikari;Isikari;Isikari-chhi;Isikari-chhī;ashykary;ayshykary hwkaydw;isikali si;shi shou;shi shou shi;İşikari;Ісікарі;Исикари;Ишикари;إشيكاري;ایشیکاری، هوکایدو;石狩;石狩市;이시카리 시; +city::2130054;Kitahiroshima;Hiroshima;Khirosima;Kitahiroshima;Kitahirosima;Kitahirosima-chhi;Kitahirosima-chhī;Kitahiroşima;Kitakhirosima;Nakaosawa;bei guang dao;bei guang dao shi;gitahilosima si;khi ta hi roa chi ma;kytahyrwshyma;kytahyrwshyma hwkaydw;Китахиросима;Китаҳирошима;Кітахіросіма;Хиросима;كيتاهيروشيما;کیتاهیروشیما، هوکایدو;คิตะฮิโระชิมะ;北広島;北広島市;北廣島市;기타히로시마 시; +city::2130057;Hirosaki;Hirosaki;Hirosaki-chhi;Hirosaki-chhī;Hiroszaki;Khirosaki;hi roa saki;hilosaki si;hong qian;hong qian shi;hyrwsaky;hyrwzaky aywmwry;Хиросаки;Хиросаки қаласы;Хіросакі;Ҳиросаки;هيروساكي;هیروزاکی، آئوموری;ہیروساکی، اوموری;ฮิโระซะกิ;ჰიროსაკი;弘前;弘前市;히로사키 시; +city::2130188;Hakodate;HKD;Hakodate;Hakodate-chhi;Hakodate-chhī;Hakodatė;Hokodate;Khakodate;Khakodateh;ha koa da tea;hakodate si;hakwdath;hakwdath hwkaydw;han guan;han guan shi;Хакодате;Хакодатэ;Ҳакодате;הקודאטה;هاكوداته;هاکوداته;هاکوداته، هوکایدو;ہاکوداتے، ہوکائیدو;ฮะโกะดะเตะ;ჰაკოდატე;函館;函館市;하코다테 시; +city::2130203;Hachinohe;Hachinohe;ba hu;八戸; +city::2130404;Ebetsu;Ebecu;Ebetsu;Ebetu-chhi;Ebetu-chhī;Ehbecu;abtsw hwkaydw;abytsw;ebesseu si;jiang bie;jiang bie shi;Ебетсу;Ебецу;Эбецу;إبيتسو;ابتسو، هوکایدو;江別;江別市;에베쓰 시; +city::2130452;Chitose;Chitose;Citose;Titose;Titose-chhi;Titose-chhī;chi toa sea;chytwsh hwkaydw;jitose si;qian sui;qian sui shi;tshytwzy;Çitose;Титосе;Тітосе;Читосе;تشيتوزي;چیتوسه، هوکایدو;ชิโตะเซะ;千歲市;千歳;千歳市;지토세 시; +city::2130629;Asahikawa;AKJ;Asahikava;Asahikawa;Asahikawa-chhi;Asahikawa-chhī;Asakhikava;Gorad Asakhikava;asahikawa si;asahykawa;asahykawa hwkaydw;xa sa hi kawa;xu chuan;xu chuan shi;Асахикава;Асахікава;Асаҳикауа;Горад Асахікава;אסהיקאווה;آساهیکاوا، هوکایدو;أساهيكاوا;اساہیکاوا، ہوکائیدو;อะซะฮิกะวะ;旭川;旭川市;아사히카와 시; +city::2130658;Aomori;AOJ;Aomori;Aomori-shi;Aomorishi;aomoli si;aomori;aomorishi;awmwry;qing sen;qing sen shi;Аомори;آوموري;あおもり;あおもりし;アオモリ;アオモリシ;青森;青森市;아오모리 시; +city::6694821;Nanto-shi;Nanto;nan li;nan li shi;南砺;南砺市; +city::6697563;Neyagawa;Neyagawa-shi;qin wu chuan;qin wu chuan shi;寝屋川;寝屋川市; +city::6822096;Hitachi-Naka;hitachinaka;hitachinaka shi;hitachinaka-shi;ひたちなか;ひたちなか市; +city::6822146;Onojo;Onodyo;Onodzh'o;Onodzjo;Onodzo;Onojo;Onojyo;Onozyo-chhi;awnjw;awnwjw fwkwywka;da ye cheng;da ye cheng shi;onojo si;Ónodžó;Ônozyô-chhī;Оноджьо;Онодзё;Оноҷо;Օնոձյո;أونجو;اونوجو، فوکوئوکا;大野城;大野城市;오노조 시; +city::6822217;Minokamo;Mino-Kamo;Minokamo;Minokamo-chhi;Minokamo-chhī;mei nong jia mao;mei nong jia mao shi;minokamo si;mynwkamw ghyfw;mynwkamw gyfw;Минокамо;Міно-Камо;مينوكامو غيفو;مینوکامو، گیفو;美濃加茂;美濃加茂市;미노카모 시; +city::6825489;Joetsu;Dz'oecu;Dzjoehcu;Dzoecu;Joecu;Joetsu;Joetsu-shi;Zyoetu-chhi;Zyôetu-chhī;co xeasu;jo-esseu si;jwytsw;jwytsw nygata;jwyytsw nygata;shang yue;shang yue shi;Џоецу;Дзьоецу;Дзёэцу;Йоецу;Ҷоетсу;جوئتسو، نیگاتا;جوئیتسو، نیگاتا;جويتسو;โจเอะสึ;上越;上越市;조에쓰 시; +city::6940394;Saitama;Saitama;saitama;Саитама;さいたま; +city::7279570;Higashimurayama;Higashi-Murayama;Higashi-Murayama-shi;Higashimurayama;dong cun shan;dong cun shan shi;東村山;東村山市; +city::7422816;Dazaifu;Dadzajfu;Dasaipu;Dazaifu-chhi;Dazaifu-chhī;Dazaifu-shiyakusho;dajaihu si;dazaifushiyakusho;dazayfw;dazayfw fwkwywka;tai zai fu;tai zai fu shi;Дадзайфу;دازايفو;دازایفو، فوکوئوکا;だざいふしやくしょ;太宰府;太宰府市;다자이후 시; +city::8125829;Kamigyo-ku;; +city::179330;Thika;Dhika;Thika;Tik;Тик; +city::182701;Nyeri;N'eri;NYE;Njeri;Njeris;Nyeri;Nyiri;ni ye li;nieli;nieri;nyry knya;nyyry;Њери;Ньери;نیئری;نیری، کنیا;ნიერი;ニエリ;尼耶利;니에리; +city::184622;Nakuru;Gorad Nakuru;NUU;Nakuru;na ku lu;nakulu;nakuru;nakwrw;nakwrw knya;Горад Накуру;Накуру;ناکورو;ناکورو، کنیا;ნაკურუ;ナクル;纳库鲁;나쿠루; +city::184745;Nairobi;Gorad Najrobi;NBO;Nairoba;Nairobi;Nairobia;Nairobis;Nairobo;Nairoby;Nairobî;Nairompi;Nairòbi;Nairóbi;Najrobi;Najrobo;Nayrobi;Nayroobi;Naíróbí;Naýrobi;na'irobi;nai luo bi;nailobi;nairobi;nairopi;nayreabi;nayrwby;nei luo bi;nirobi;nyrwby;nyyrwby;Ναϊρόμπι;Горад Найробі;Найроби;Найробі;Најроби;Նայրոբի;נייראבי;ניירובי;نايروبى;نایروبی;نایرۆبی;نيروبي;نیروبی;नैरोबी;নাইরোবি;ਨੈਰੋਬੀ;நைரோபி;ನೈರೋಬಿ;നയ്റോബി;ไนโรบี;ནའི་རོ་བི།;နိုင်ရိုဘီမြို့;ნაირობი;ናይሮቢ;ナイロビ;内罗毕;奈洛比;나이로비; +city::186301;Mombasa;Gorad Mambasa;MBA;Mombaaso;Mombaca;Mombasa;Mombassa;Mombaça;Mombása;Mompasa;Mvita;meng ba sa;mmbasa;momabaka;mombasa;monbasa;mwmbasa;mwmbsh;Μομπάσα;Горад Мамбаса;Момбаса;מומבסה;ممباسا;مومباسا;मोम्बासा;মোমবাকা;მომბასა;モンバサ;蒙巴萨;몸바사; +city::187110;Mbale;Maragoli; +city::187968;Malindi;MYD;Malindi;Malindis;Melinde;ma lin di;malindi;mallindi;malyndy;malyndy knya;marindi;Малинди;Малінді;ماليندي;مالیندی;مالیندی، کنیا;მალინდი;マリンディ;馬林迪;말린디; +city::191220;Kitale;KTL;Kitale;Kitalė;ji ta lai;kitare;kytalh knya;Китале;کیتاله، کنیا;کیتالے;კიტალე;キタレ;基塔萊; +city::191245;Kisumu;Gorad Kisumu;KIS;Kisumo;Kisumu;Lady Whitehouse;Port Florence;Winam;ji su mu;kisumu;kyswmw knya;kyzymw;Горад Кісуму;Кисуму;Кісуму;كيزيمو;کیسومو، کنیا;კისუმუ;キスム;基蘇木;키수무; +city::194160;Kapenguria;Kap-Nguria;Kapenguria; +city::195272;Kakamega;GGM;Kakamega;Kakamege;ka ka mei jia;kakamga knya;Какамега;Какамеге;کاکامگا، کنیا;კაკამეგა;卡卡梅加; +city::197745;Garissa;GAS;Gaarisa;Garisa;Garissa;galisa;garisa;garissa;garysa;garysa knya;gharysa;jia li sa;Гариса;Гарисса;Гарісса;גאריסה;غاريسا;گاریسا;گاریسا، کنیا;გარისა;ガリッサ;加里萨;가리사; +city::198629;Eldoret;EDL;Ehldoret;Eldoret;Eldoretas;Olderet;Olteret;ai er duo lei te;aldwrt;aldwrt knya;eldoleteu;erudoretto;xel do ret;Елдорет;Элдорет;الدورت;الدورت، کنیا;เอลโดเรต;ელდორეტი;エルドレット;埃爾多雷特;엘도레트; +city::199989;Busia;Busia; +city::200067;Bungoma;Bungoma;Бунгома; +city::1527199;Tokmok;To'qmoq;Tokmak;Tokmakas;Tokmok;Toʻqmoq;tkhmaq;tokamoka;tokeumakeu;tokmaki;tokumaku;tuo ke ma ke;twkmwk;Токмак;Токмок;تخماق;توكموك;تۆقمۆق;तोकमोक;თოქმაქი;トクマク;托克马克;토크마크; +city::1527534;Osh;Gorad Osh;O'sh;OSS;Och;Oix;Os;Osa;Osas;Osch;Osh;Osj;Osz;Ox;Oŝ;Oş;Oš;Oša;Ošas;Oʻsh;ao shen;awsh;osa;oshi;osi;xxch;Горад Ош;Ош;אוש;أوش;اوش;ओश;ออช;ოში;オシ;奧什;오시; +city::1527592;Naryn;Naron;Naryn;Нарын; +city::1528121;Karakol;Gorad Karakol;Karakol;Karakola;Karakolas;Karakoł;Karakul;Karàkol;Khargol;Prjeval'sk;Prjeval’sk;Przheval'sk;Przheval’sk;Qoraqo'l;Qoraqoʻl;ka la ke er;kalakol;karakola;karakoru;kha ra khxl;qrakwl qrqyzstan;Горад Каракол;Каракол;Пржевальск;Харгол;Қарақол;קארקול;قاراقۆل;قراکول، قرقیزستان;काराकोल;คาราคอล;カラコル;卡拉科尔;카라콜; +city::1528182;Kara-Balta;Imeni Mikoyana;Kara-Balta;Kara-Balty;Karabalto;Karabaltö;Кара-Балта; +city::1528249;Jalal-Abad;Celal-Abad;Djalalabad;Dschalalabat;Dzalal Abad;Dzalal Abadas;Dzalal-Abad;Dzalalabad;Dzalalabada;Dzalalabat;Dzhalal Abad;Dzhalal-Abad;Dzjalal-Abad;Dzsalalabad;Dżalalabad;Džalal Abad;Džalal Abadas;Džalal-Abad;Džalalabada;Džalalabat;Gorad Dzhalal-Abad;Jalal-Abad;Jalalabat;Jalolobod;Zalal-Abad;Zalalabad;Zalalabat;Zhalal-Abad;Zhalal-Abad shaary;Zhalalabat;gu la la ba de;jalalabada;jallal-abateu;jararabado;jlal-abad;Ĵalalabat;Žalal-Abad;Žalalabad;Žalalabat;Горад Джалал-Абад;Джалал Абад;Джалал-Абад;Жалал-Абад;Жалал-Абад шаары;Жалалабат;جلال-آباد;جلال‌آباد، قرقیزستان;جەلالابات، قرغیزستان;जलालाबाद;ジャララバード;賈拉拉巴德;잘랄아바트; +city::1528675;Bishkek;Bichkek;Biscecum;Bischkek;Bishkek;Bishkek osh;Bisjkek;Biskek;Biskeka;Biskekas;Biskeko;Biskekʻ;Bisqeq;Bisqueque;Biszkek;Bixkek;Biŝkeko;Bişkek;Bişqeq;Biškek;Biškeka;Biškekas;Bișkek;Bîşkek;FRU;Frunze;Gorad Bishkek;Mpiskek;Pishkek;Pishpek;bi shen kai ke;bichkhek;bisakeka;bishukeku;biskek;biskeka;biskekk;bisyukekeu;bshkyk;byshkk;byshkyk;bysqq;picukkek;Μπισκέκ;Бишкек;Бишкек ош;Бішкек;Горад Бішкек;Բիշկեք;בישקעק;בישקק;بشکیک;بيشكك;بيشكيك;بيشکک;بیشکک;بیشکێک;बिश्केक;বিশকেক;ਬਿਸ਼ਕੇਕ;பிசுக்கெக்;ಬಿಷ್ಕೆಕ್;ബിഷ്കെക്ക്;บิชเคก;པི་སི་ཁེག;ბიშკეკი;ቢሽኬክ;ビシュケク;比什凯克;비슈케크; +city::1821306;Phnom Penh;Gorad Pnampen';Krong Chaktomuk;Nam Van;Nam-Vang;Nom Pen;PNH;Phnom Pen;Phnom Penh;Phnom Pénh;Phnom-Penh;Phnompen;Phnompenh;Phnum Penh;Phnum Peny;Phnum Pénh;Phnum Pény;Phnôm Pênh;Phon Phen;Pnom Pehn';Pnom Pen;Pnom Pen'ch;Pnom Pene;Pnom Penh;Pnom-Peno;Pnompen;Pnompen';Pnompena;Pnompenis;Pnompeņa;Ville de Phnom Penh;bnwm bnh;fnwm pn;fnwm pېn;jin bian;namapenha;panoma pena;peunompen;phnm pen;phnmpey;pnwm pn;punom pen;punonpen;Πνομ Πενχ;Горад Пнампень;Пном Пен;Пном Пэнь;Пномпень;Պնոմպեն;פנום פן;بنوم بنه;فنوم پن;فنوم پېن;پنوم پن;پنوم‌پن;پنۆم پێن;नामपेन्ह;पनॉम पेन;প্‌নম পেন;புனோம் பென்;พนมเปญ;พนมเปณ;ཕོམ་ཕེན།;ဖနွမ်းပင်မြို့;პნომპენი;ፕኖም ፔን;ភនកពងតរាច;ភនពេញ;ភ្នំកំពង់ត្រាច;ភ្នំពេញ;プノンペン;金边;프놈펜; +city::1821935;Ta Khmau;Ta Khmau;Takhman;Takhmau;Takkhmau;Такхмау;កណតាល;កណ្តាល; +city::1821940;Takeo;Prasat;Pràsàt;Takeo;Takev;Takéo;Takêv; +city::1822214;Siem Reap;Ciudad de Siem Riep;Khett Siem Reab;REP;Siem Reab;Siem Reap;Siem-Reap;Siemrap;Siemreab;Siemreabas;Siemreap;Siemrãp;Sijem Reap;Siĕm Réab;Siĕmréab;Sziemreap;Xiem Riep;Xiêm Riệp;ciyem rip;seiy mrath;shemuriappu;siemleapeu;sima ripa;syam ryb;sym ryp;syym ryp;syym ryyp;xian li sheng;xian li shi;Сием-Реап;Сиемреап;Сијем Реап;Сіемреап;سيام ريب;سیئم ریئپ;سیئم ریپ;سیم ریپ;सीम रीप;சியெம் ரீப்;เสียมราฐ;ក្រុងសៀមរាប;シェムリアップ;暹粒市;暹粒省;시엠레아프; +city::1822768;Pursat;Porsat;Pousat;Pouthisat;Poŭsăt;Poŭthĭsăt;Pursat; +city::1830194;Paoy Paet;Paoy Paet;Paoy Pet;Paôy Pêt;Phum Paoy Pet;Phum Paôy Pêt;Phumi Paoy Pet;Phumĭ Paôy Pêt;Poipet;Pojpet;Пойпет;ប៉ោយប៉ែត; +city::1831142;Sihanoukville;Ciudad de Sihanoukville;KOS;Kampong Saom;Kampong Semville;Kampong Som;Kampong Somville;Kom Pong Song;Kompong Som;Kompong Somville;Krong Preah Seihanu;Krong Preah Sihanouk;Krŏng Preăh Seihanŭ;Krŏng Preăh Sihanouk;Kâmpóng Saôm;Port de Sihanoukville;Preah Seihanouk;Sianukvil';Sihanouk;Sihanoukville;Sikanonville;shianukubiru;sih nu will;xi ha nu ke shi;Сиануквиль;สีหนุวิลล์;ក្រុងព្រះសីហនុ;シアヌークビル;西哈努克市; +city::1831167;Kampong Chhnang;KZC;Kampong Chhnang;Kampong Chnang;Kampongchnang;Kompon Chnang;Kompong Chhang;Kompong Chhnang;Kâmpóng Chhnăng;Phumi Kampong Chhnang;Phumĭ Kâmpông Chhnăng;Кампонгчнанг;ករងកពងឆនាង;ក្រុងកំពង់ឆ្នាំង; +city::1831173;Kampong Cham;Compon-lina;Kampong Cham;Kampongtjam;Kompon Cam;Kompong Cham;Kâmpóng Cham;Кампонгтям;ករងកពងចាម;ក្រុងកំពង់ចាម; +city::1831797;Battambang;BBM;Bat Dambang;Batambang;Batambangas;Batdamban;Batdambang;Batdâmbâng;Battamban;Battambang;Battampan'nk;Băt Dâmbâng;Bătdâmbâng;Ciudad de Battambang;Khett Batdambang;Phratabong;batambang;batanban;byatamabam;ma de wang;pattampan;phra tabxng;Μπατταμπάνγκ;Батамбанг;Батдамбан;Баттамбанг;باتم‌بنگ;باٹامبانگ;ব্যাটামবং;பட்டாம்பாங்;พระตะบอง;ករងបាតដបង;ក្រុងបាត់ដំបង;バタンバン;马德望;바탐방; +city::1866923;Wonsan;Gensan;Genzan;Genzan Hu;Onsan;Vonsan;Vonsanas;WOS;Wensen;Wonsan;Wŏnsan;Yuenchan;Yuensan;wonsan;wonsansi;yuan shan shi;Вонсан;元山市;원산;원산시; +city::1869446;Songnim;Kenjiho;Kenjiko;Kenniho;Kenziho;Kyomip'o;Kyŏmip’o;Shorin;Shōrin;Songnim; +city::1870883;Sariwon;Hozan;Sa-ri-uen;Sarivone;Sariwon;Sariwŏn;Shariin;Syariin;Sā-ri-uen;Саривоне; +city::1871859;Pyongyang;Binh Nhuong;Bình Nhưỡng;FNJ;Gorad Pkhen'jan;Heijo;Heijo-fu;Heijō;Heijō-fu;Heizyo;Heizyo Hu;Heizyō;Heizyō Hu;Hpyeng-yang;P'yongyang;P'yongyang-si;P'yŏngyang;P'yŏngyang-si;P-hjong-jang;P-hjöng-jang;Pchenjanas;Pchjongjang;Phenian;Phenjan;Phenjana;Phyeng-yang;Phyong-yang;Pienyang;Pingyang;Pion'gian'nk;Pion'nkgian'nk;Piongiang;Pionguiangue;Pionyang;Pjoengjang;Pjongian;Pjongjang;Pjongjango;Pjöngjang;Pkhen'jan;Pkhenjan;Pxenyan;Pyeongyang;Pyoengyang;Pyongyang;Pyongyang-si;Pyöngyang;bywnghyangh;peiyngyang;pi'ongayanga;ping rang;ping rang shi;piyam iyam;piyonyan;pkheniani;pyamgayanga;pyang yang;pyeong-yang;pyeong-yangjighalsi;pyeong-yangsi;pyon'gyang;pyongayanga;pywng yang;pywngyang;Πιονγιάνγκ;Πιονγκγιάνγκ;Горад Пхеньян;Пхеньян;Пхенян;Пјонгјанг;Փխենյան;פיאנגיאנג;פיונגיאנג;بيونغيانغ;پيونګيانګ;پيونگ يانگ;پيوڭياڭ;پیانگ یانگ;پیونگ‌یانگ;پیۆنگیانگ;प्याँगयांग;प्योंगयांग;পিয়ং ইয়াং;ਪਿਓਂਗਯਾਂਗ;பியொங்யாங்;ಪ್ಯೊನ್ಗ್ಯಾಂಗ್;เปียงยาง;ཕོང་ཡང་།;ფხენიანი;ፕዮንግያንግ;平壌;平壤;平壤市;평양;평양시;평양직할시; +city::1871871;P'yongsong;P'yongsong;P’yŏngsŏng;Sain-ni;Sainjang;Sanchon;Shajimjo;Shajimjō;Shajinjo;Shajinjō;Shaninjo;Shaninjō; +city::1873172;Ongjin;Bazan;Onchzhin;Ongjin;Ongjin-up;Ongjin-ŭp;Oshin;Osin;Yoshin;Yōshin;ongjin;Ōshin;Ōsin;Ончжин;옹진; +city::1873757;Namp'o;Channampo;Chinnamp'o;Chinnamp’o;Chinnanpo;Namp'o;Nampkho;Namp’o;Tinnanpo;Treaty Port;Tschin-nam-p-ho;nampo;Нампхо;남포; +city::1876373;Kaesong;Kaesong;Kaesŏng;Kai-seng;Kaijo;Kaijō;Kaisong;Kaizyo;Kaizyō;Kehson;Kesongas;Shoto;Shōto;Songdo;gaeseongsi;gaeseongteuggeubsi;kai cheng shi;kai cheng te ji shi;Кэсон;开城特级市;開城市;개성시;개성특급시; +city::1877030;Hungnam;Hungbong-ni;Hungdogi-dong;Hungdogil-tong;Hungdok-2-dong;Hungdok-tong;Hungdoki-dong;Hungdong-ni;Hungnam;Hungnam-dong;Hungnam-ni;Hungyam;Hŭngbong-ni;Hŭngdong-ni;Hŭngdŏgi-dong;Hŭngdŏgil-tong;Hŭngdŏk-2-dong;Hŭngdŏk-tong;Hŭngdŏki-dong;Hŭngnam;Hŭngnam-dong;Hŭngnam-ni;Konan;Kōnan;heunglam;흥람; +city::1877449;Hamhung;Hamheung;Hamhung;Hamhungas;Hamhungo;Hamhŭng;Hienhing;Kanko;Kankō;hamheung;hamheungsi;xian xing shi;咸興市;함흥;함흥시; +city::1877615;Haeju;Haeju;Hai-dschu;Hai-ju;Hai-tjyou;Haijuube;Haitcheou;Kaishu;Kaishū;Khehdzhu;haeju;Хэджу;해주; +city::1879487;Chaeryong-up;Chaenyong;Chaenyŏng;Chaeryong;Chaeryong-up;Chaeryŏng;Chaeryŏng-ŭp;Cheyong;Sainei;Sainei-men;Sainei-yu;Sainei-yū;jaelyeong-eub;재령읍; +city::1879613;Anju;Aanshu;An-dschu;Anju;Anju-up;Anju-ŭp;Anshu;Anshū;Ansyu;Ansyu Yu;Ansyū;Ansyū Yū;anju;안주; +city::2038854;Yuktae-dong;Rokudaito-ri;Rokudaitō-ri;Yuktae-dong;Yuktae-nodongjagu;Yuktaedong-ni;Yuktaetong-ni; +city::2039623;Uiju;Eui-chu;Gishu;Gishū;Gisyu;Gisyū;Ui-tsiu;Uiju;Uiju-up;Wi-dschu;Wi-ju;uiju;Ŭiju;Ŭiju-ŭp;의주; +city::2040893;Sinuiju;New Eui-chu;Shingishu;Shingishū;Sin-eui-chu;Sin-gi-shu;Sineidzu;Sineidžu;Sinidzsu;Sinuiju;Sinyichju;Sinŭiju;Wi-dschu;Wi-ju;sin-uiju;sin-uijusi;xin yi zhou;xin yi zhou shi;新义州;新義州市;신의주;신의주시; +city::2042645;Rajin;Najin;Najin-up;Najin-ŭp;Radzin;Rajin;Rashin;Rasin;lajin;Радзин;라진; +city::2043484;Kilju;Kichishu;Kichishū;Kil'dzhu;Kil-dschu;Kilchu;Kilchu-up;Kilchu-ŭp;Kilju;Kisshu;Kisshū;gilju;Кильджу;길주; +city::2043572;Kanggye;Kakai;Kang-ge;Kange;Kanggye;Kanggye-si;Kokai;Kōkai;gang-gye;gang-gyesi;jiang jie;jiang jie shi;Канге;江界;江界市;강계;강계시; +city::2043835;Hyesan-dong;Hyesan-dong;hyesandong;혜산동; +city::2043837;Hyesan;Hesanjin;Hyesan;Hyesan-si;Hyesanjin;Keisanchin;Keizan;Keizanchin;Keizantin;hui shan shi;hyesan;hyesansi;恵山市;惠山市;혜산;혜산시; +city::2044050;Hongwon;Hongwon;Hongwon-up;Hongwŏn;Hongwŏn-ŭp;Kogen;Kogon;Kōgen;hong-won;홍원; +city::2044757;Chongjin;Cchongdzin;Ch'ongjin;Cheongjin;Chkhonchzhine;Chkhondzhin;Chkhundzhin;Chongjin;Chonjin;Chonzhin';Chŏngjin;Ch’ŏngjin;Condzinas;Congjin;Cshongdzsin;RGO;Seishin;Seisin;Tschiun-tschan;Tschiün-tschan;ch xng cin;cheongjinsi;chwngjn;congjina;qing jin shi;Ĉongĵin;Čchongdžin;Čondžinas;Чонжинь;Чхонджин;Чхонджін;Чхончжине;Чхънджин;چونگجن;चोंग्जिन;ช็องจิน;清津市;청진시; +city::1832384;Eisen;Eisen;Eishu;Eishū;Yongju;Yŏngju; +city::1832617;Eisen;Eisen;Yongch'on;Yŏngch’ŏn; +city::1832828;Yangsan;Jangsan;Jansan;Ryosan;Ryozan;Ryōsan;Ryōzan;Yangsan;liang shan shi;yangsan;yangsansi;Янсан;سانگ‌سان;یانگسان;梁山市;양산;양산시; +city::1832830;Yangp'yong;Tohei;Yangp'yongumnae;Yangp'yŏngŭmnae;Yangpyeong;Yanp'yong;Yanp'yŏng;yangpyeong;yangpyeong-gun;양평;양평군; +city::1832847;Yangju;Jandzhu;Yangju-gun;yang zhou shi;yangju;yangjusi;yangjw;Янджу;یانگجو;楊州市;양주;양주시; +city::1833105;Wonju;Genshu;Genshū;Vondzhu;WJU;Wonju;Wŏnju;Вонджу; +city::1833466;Wanju;wanju;wanju-gun;wanjugun;완주;완주군; +city::1833747;Ulsan;USN;Ul'san;Ulsan;Ulsan-si;Urusan;ulsan;ulsangwang-yeogsi;ulsansi;wei shan;wei shan guang yu shi;Ульсан;蔚山;蔚山広域市;울산;울산광역시;울산시; +city::1833788;Uijeongbu-si;Uijeongbu;Uijeongbu-si;uijeongbu;uijeongbusi;의정부;의정부시; +city::1835235;Daejeon;Daejeon;Daejeon-si;Daejon;Daiden;QTW;Taejon;Taejŏn;Taiden;Tehdzhon;Tetyan;Thai-tyen;Thāi-tyen;Tētyan;da tian guang yu shi;daejeon;daejeongwang-yeogsi;daejeonsi;Тэджон;大田广域市;大田広域市;대전;대전광역시;대전시; +city::1835329;Daegu;Daegu;Daegu Kong-hek-chhi;Daegu Kóng-he̍k-chhī;Daegu-si;Daikyu;Daikyū;GJai Khau;Ntenkou;TAE;Taegu;Taikando;Taikandō;Taiku;Taikyu;Taikyū;Tegu;Teguo;Tehgu;Tägu;da qiu guang yu shi;daegu;daegugwang-yeogsi;daegusi;daigu;dayjw;degu;dyghw;tgw;Đại Khâu;Ντέγκου;Тегу;Тэгу;Тэгү;טגו;دائجو;ديغو;ڈیگو;दैगू;ദേഗു;แทกู;大邱广域市;大邱広域市;大邱廣域市;대구;대구광역시;대구시; +city::1835447;Taisen-ri;Daisen;Hannae-ri;Poryong;Poryŏng;Taech'on;Taech'on-ni;Taech’ŏn;Taech’ŏn-ni;Taisen;Taisen-ri;bolyeong;보령; +city::1835553;Suwon;SWU;Sououon;Suvon;Suwon;Suwon-si;shui yuan shi;suvona;suwon;suwonsi;suwxn;swwn;Σούουον;Сувон;سوون;सुवोन;ซูว็อน;水原市;수원;수원시; +city::1835648;Suncheon;Junten;SYS;Sunch'on;Suncheon;Sunchun;Sunch’ŏn;suncheon;순천; +city::1835848;Seoul;Gorad Seul;Hanyang;SEL;Seoel;Seol;Seoul;Seoul-si;Seuel;Seul;Seula;Seulas;Seulo;Seulum;Seúl;Seül;Siul;Soeul;Sol;Soul;Sye-ul;Syou-ouen;Szoeul;Szöul;Séoul;Sêûl;Söul;Sŏul;Wang-ching;Wo-jo;Wō-jō;ciyol;han-yang;saul;seoul;seoulsi;seoulteugbyeolsi;seuli;shou er;shou er te bie shi;si'ula;siyola;sol;sola;souru;souru te bie shi;sywl;Σεούλ;Горад Сеул;Сеул;Соул;Сөүл;Սեուլ;סאול;סיאול;סעאל;سئول;سيول;سیول;سێئول;سېئول;सियोल;सोल;সিউল;சியோல்;ಸೌಲ್;സോൾ;โซล;སེ་ཨུལ།;ဆိုးလ်မြို့;სეული;ሶል;សេអ៊ូល;ソウル;ソウル特別市;首尔;首尔特别市;서울;서울시;서울특별시;한양; +city::1835895;Seosan;HMY;Seosan;Seosan City;Sosan;Suisan;Sŏsan;rui shan shi;seosan;seosansi;Сосан;瑞山市;서산;서산시; +city::1836553;Sokcho;Sogcho;Sokch'o;Sokch'o-ri;Sokchkho;Sokcho;Sokch’o;Sokch’o-ri;sogcho;Сокчхо;속초; +city::1837706;Sangju;Ch'angju;Ch’angju;Sandzhu;Sang-dschu;Sangju;Shoshu;Shōshū;Syosyu;Syōsyū;sangju;Санджу;상주; +city::1838524;Busan;Bousan;Busan;Busan-si;Busán;Fousan;Fusan;Fuzan;PUS;Phu San;Phủ San;Pusan;Pusana;Pusano;Tsau-liang-hai;busan;busangwang-yeogsi;busansi;fu shan;fu shan guang yu shi;fu shan shi;pu san;Μπούσαν;Пусан;ปูซาน;釜山;釜山市;釜山广域市;釜山広域市;부산;부산광역시;부산시; +city::1838716;Bucheon-si;Bucheon;Bucheon-si;bucheon;bucheonsi;부천;부천시; +city::1839071;Pohang;Geijitsu;Hoko;Hoko-do;Hokō-dō;KPO;P'ohang;P'ohang-dong;Pohang;P’ohang;P’ohang-dong;pohang;포항; +city::1839652;Osan;OSN;Osan;Osan-ni;Usan';Usan-ri;Vu-san-su;Vû-sân-sṳ;awsan;osan;osansi;wu shan shi;xo san;Осан;Усань;اوسان;โอซัน;烏山市;오산;오산시; +city::1839726;Asan;Asan;Asan';Aszan;Nga-san-su;Ngà-sân-sṳ;Onyang;Onyo;Onyō;acan;asan;asansi;xa san;ya shan shi;Асан;Асань;آسان;அசன்;อาซัน;牙山市;아산;아산시; +city::1839873;Okcheon;Kumgu-ri;Okcheon;ogcheon;ogcheongun;옥천;옥천군; +city::1840179;Kosong;Kosong;goseong;goseong-gun;고성;고성군; +city::1840379;Nangen;Mangen;Namvon;Namweon;Namwon;Namwun;Namwŏn;Namwŭn;Nangen;Намвон; +city::1840886;Mungyeong;Bunke-gun;Bunkei-gun;Bunkē-gun;Mun'gyong;Mun'gyong-gun;Mun'gyōng-gun;Mun'gyŏng;Mungjon;Mungjong;Mungyeong gun;Munkyong-Mining Region;mungyeong;mungyeongsi;mwngywang;wen qing shi;Мунгён;مونگیوانگ;聞慶市;문경;문경시; +city::1840982;Muan;MWX;Muan;Muan-gun;Muap; +city::1841066;Moppo;Mogpkho;Mogpo;Mok-pho;Mokp'o;Mokp’o;Mokuho;Moppo;Могпхо; +city::1841149;Miryang;Milyang;Mirjan;Mirjang;Miryang;Mitsuyo;Mitsuyō;mi yang shi;mil-yangsi;mryang;myryang;Мирян;مریانگ;میریانگ;密陽市;밀양시; +city::1841246;Masan;Masan;Masan-ni;masan;마산; +city::1841598;Gyeongsan-si;Gyeongsan;Gyeongsan-si;gyeongsan;gyeongsansi;경산;경산시; +city::1841603;Kyonju;Gyeongju;Keishu;Keishū;Keisyu;Keisyū;Kjondzhu;Kjong-dschu;Kjöng-dschu;Kyeng-chu;Kyeng-ju;Kyong-choo;Kyongju;Kyonju;Kyŏngju;gyeongjusi;qing zhou;qing zhou shi;Кёнджу;慶州;慶州市;경주시; +city::1841775;Kwangyang;Gwang-yang;Koyo;Kuwagyan;Kwangyang;Kōyō; +city::1841810;Gwangju;Gwangju;Kong-chu-su;Kvandzhu;Kwangdzu;Kwangdžu;Kwangju;Kóng-chû-sṳ;guang zhou;guang zhou shi;gwang jw gyywngy;gwangju;gwangjusi;gwangjw gywnggy;kh wang cu;Кванджу;گوانگ جو، گیئونگی;گوانگجو، گیونگگی;ควังจู;კვანჯუ;広州市;廣州;廣州市;광주;광주시; +city::1841811;Gwangju;Gorad Kvandzhu;Gouanjou;Gwangju;Gwangju Kong-hek-chhi;Gwangju Kóng-he̍k-chhī;Gwangju-si;KWJ;Koshu;Kosyu;Kuandzhu;Kuangju;Kuangjuo;Kvandzhu;Kvandzu;Kvandžu;Kvangdzsu;Kvangdzu;Kvanju;Kvanzhe;Kvaңdzhu;Kwang-choo;Kwang-dschu;Kwangdzu;Kwangdžu;Kwangju;Kōshū;Kōsyū;Kŭangĵuo;Quansua;ghwanghjw;guang zhou;guang zhou guang yu shi;guang zhou shi;gvangaju;gwang jw;gwangju;gwangjugwang-yeogsi;gwangjusi;gwangjw;kh wang cu;Горад Кванджу;Квангџу;Кванджу;Кванже;Кваңджу;Куанджу;Куанжү;קוואנגגו;غوانغجو;گوانگ جو;گوانگجو;ग्वांगजू;ควังจู;光州;光州市;光州广域市;光州広域市;光州廣域市;광주;광주광역시;광주시; +city::1841988;Guri-si;Guri;Guri-si;guli;gulisi;구리;구리시; +city::1842025;Gunsan;Gunsan;Gunzan;KUV;Kunsan;Kunzan;gunsansi;qun shan shi;Кунсан;群山市;군산시; +city::1842225;Gumi;Gumi;Kibi;Kumi;Kwimi;QKM;gui wei shi;gumi;gumisi;Куми;亀尾市;龟尾市;구미;구미시; +city::1842485;Goyang-si;Goyang;Goyang-si;QYK;goyang;goyangsi;고양;고양시; +city::1842616;Gongju;Gongju;Kochu;Kondzhu;Kong Tjou;Kong-dschu;Kongju;Koshu;Kosyu;Kōshū;Kōsyū;gong zhou;gong zhou shi;gongju;gongjusi;Конджу;公州;公州市;공주;공주시; +city::1842754;Kyosai;Koje;Kyosai;Kŏje; +city::1842859;Koch'ang;Kosho;Kōshō;gochang;gochang-gun;고창;고창군; +city::1842943;Kimhae;Gimhae;Kimhae;Kinkai;Kumhae;Kŭmhae; +city::1842944;Gimcheon;Gimcheon;Kimcchon;Kimch'on-si;Kimch'ŏn-si;Kimchkhon;Kimčchon;Kumch'on-si;Kŭmch'ŏn-si;gim cheonsi;gimcheon;gimcheonsi;gmchywn;gymchywn;jin quan shi;Кимчхон;گمچیون;گیمچئون;金泉市;김 천시;김천;김천시; +city::1843082;Gapyeong;District de Gapyeong;Gapyeong County;Gapyeong-gun;Kahei-gun;Kap'yong-gun;Kap'yŏng-gun;Kapkhjon;gapyeong;gapyeong-gun;jia ping jun;Капхён;加平郡;가평;가평군; +city::1843137;Kang-neung;Gangneung;Gangreung;KAG;Kaguun;Kang-neung;Kangnung;Kangnŭng;Kannyn;Koryo;Kōryō;gangleungsi;jiang ling shi;Каннын;江陵市;강릉시; +city::1843491;Iksan;Iksan;Iri;Riri;aksan;ayksan;igsansi;iksani;yi shan shi;Іксан;Иксан;اکسان;ایکسان;იქსანი;益山市;익산시; +city::1843564;Incheon;Gorad Inchkhon;ICN;Incchon;Inch'on;Inch'ŏn;Incheon;Incheon-si;Inchkhon;Inchkhun;Inchon;Inchona;Incon;Inconas;Incshon;Intson;Inĉon;Inčchon;Inčhona;Inčonas;JCN;Nhan Xuyen;Nhân Xuyên;anchn;antshwn;aynchywn;incevona;incheon;incheongwang-yeogsi;incheonsi;inkiyon;ren chuan guang yu shi;xin chxn;İncheon;Ίντσον;Інчхон;Горад Інчхон;Инчон;Инчхон;Инчхън;אינצ'ון;إنتشون;انچن;اینچئون;इंचेवॉन;இங்கியோன்;อินช็อน;仁川广域市;仁川広域市;仁川廣域市;인천;인천광역시;인천시; +city::1843702;Icheon-si;Icheon;Icheon-si;icheon;icheonsi;이천;이천시; +city::1843841;Hwasun;Hwansun;Hwason;Hwasun;Khvasun;Wajun;hwasun;Хвасун;화순; +city::1843847;Hwaseong-si;Hwaseong;Hwaseong-si;hwaseong;hwaseongsi;화성;화성시; +city::1844174;Hongsung;CaminodeFloresta;Hongseong;Hongsong;Hongsŏng;Kojo;Kōjō;hongseong;홍성; +city::1844191;Hongch'on;Hongch'on;Hongch’ŏn;Kosen;Kōsen;hongcheon;hongcheongun;홍천;홍천군; +city::1845136;Chuncheon;Cchuncchon;Ch'unch'on;Ch'unch'ŏn;Chhun-chhen;Chhun-chhon-su;Chhûn-chhôn-sṳ;Chkhunchkhon;Chuncheon;Chүn'chon';Ch’unch’ŏn;Cunceon;Cuncon;Cunconas;QUN;Shunsen;Shusen;Syunsen;Tsch-hun-tsch-hon;Tsch-hun-tsch-hŏn;chanchywn;chun chuan;chun chuan shi;chuncheon;chuncheonsi;chwnchywn;tshntshwn;Çunçeon;Ĉunĉon;Čchunčchon;Čunčonas;Чхунчхон;Чүньчонь;تشنتشون;چانچئون;چونچیون;春川;春川市;춘천;춘천시; +city::1845457;Jeonju;CHN;Chenju;Chondzhu;Chongju;Chonju;Chunju;Chŏngju;Chŏnju;Condzu;Dzondzu;Džondžu;Jenchu;Jeonju;Tjyen-tjyou;Tschon-dschu;Tschön-dschu;Tsiuentcheou;Tyondyu;Tyondyū;jeonju;jeonjusi;jonju;jwnjw;jywnjw;quan zhou;quan zhou shi;Čondžu;Чонджу;Чоньжү;جئونجو;جونجو;जॉन्जू;全州;全州市;전주;전주시; +city::1845604;Cheongju-si;CJJ;Cheongju;Cheongju-si;cheongju;cheongjusi;청주;청주시; +city::1845759;Cheonan;Cchonan;Ch'onan;Ch'ŏnan;Cheonan;Chkhonan;Chonan';Ch’ŏnan;Tenan;Thien-on-su;Thiên-ôn-sṳ;Thyen-an;Thyen-ān;cheon-an;cheon-ansi;chywnan;tian an shi;tshwnan;Čchonan;Чонань;Чхонан;تشونان;چئونان;چیونان;天安市;천안;천안시; +city::1846052;Chinju;Chindzhu;Chinju;HIN;Jinju;Shinshu;Shinshū;Sinsyu;Sinsyū;Tschin-dschu;jin zhou;jin zhou shi;jinjusi;Чинджу;晋州;晋州市;진주시; +city::1846095;Chinch'on;Chinchon;Chinsen;Jincheon;jincheon;jincheongun;진천;진천군; +city::1846266;Jeju City;CJU;Chedzhu;Cheju;Chu-sung;Chyei Chyu;Czedzu;Czedżu;Jeju;Jeju City;Kota Jeju;Saishu;Saishū;Saisyu;Saisyu Yu;Saisyū;Saisyū Yū;Tsche-dschu;Tse-tsiu;Tsitcheou;Tzetzou;chjw;jeju;jejusi;ji zhou;ji zhou shi;jyjw;Τζέτζου;Чеджу;جيجو;چجو;済州市;濟州;濟州市;제주;제주시; +city::1846326;Changwon;Cangvonas;Cchangwon;Ch'angwon;Ch'angwŏn;Changuon;Changwon;Chanvon;Chkhanvon;Ch’angwŏn;Cshangvon;Sangwon;Shogen;Shōgen;chang yuan;chang yuan shi;chang-wonsi;changwn;changwwn;tshanghwwn;zngwwn;Čangvonas;Čchangwon;Чанвон;Чангуон;Чханвон;צנגוון;تشانغوون;چانگون;چانگوون;چانگ‌وون;昌原;昌原市;창원시; +city::1846898;Anyang-si;Anyang;Anyang-si;an-yang;an-yangsi;안양;안양시; +city::1846912;Anseong;Anjo;Anjŏ;Anseong;Anson;Ansong;Ansŏng;an cheng shi;anseong;anseongsi;Ансон;安城市;안성;안성시; +city::1846918;Ansan-si;Ansan;Ansan-si;an shan;an shan shi;ansan;ansansi;安山;安山市;안산;안산시; +city::1846986;Andong;An'dun;Andang;Andon;Andong;Andongas;Anto;Antō;an dong shi;andong;andongsi;andoni;andwng;xan dng;Андон;Аньдун;آندونگ;انڈونگ;อันดง;ანდონი;安东市;安東市;안동;안동시; +city::1882056;Sinhyeon;Sinhyeon;Sinhyon;Sinhyŏn; +city::1884138;Yeosu;Josu;RSU;Yoch'on;Yosu;Yŏch’ŏn;Yŏsu;iosu;li shui shi;yeosusi;ywsw;yywsw;Ёсү;Йосу;یئوسو;یوسو;იოსუ;麗水市;여수시; +city::1892823;Tonghae;; +city::1896953;Pubal;; +city::1897000;Seongnam-si;Seongnam;Seongnam-si;seongnam;seongnamsi;성남;성남시; +city::1897007;Hanam;Hanam;hanam;하남; +city::1897118;Hwado;; +city::1897122;Namyangju;Nam-yong-chu-su;Namjandzhu;Namujandzhu;Namujanzhү khot;Namyangju;Namyangju-si;Nàm-yòng-chû-sṳ;nam-yangju;nam-yangjusi;namyangjw;nan yang zhou shi;Намъянджу;Намъянжү хот;Намянджу;نامیانگجو;南楊州市;남양주;남양주시; +city::1912205;Ungsang;; +city::1912209;Wabu;Wabu;wabu;와부; +city::1925936;Naeso;; +city::1925943;Hwawon;; +city::1948005;Kwangmyong;Kwangmyong;Kwangmyŏng; +city::6395804;Sinan;sin-an;sin-angun;신안;신안군; +city::6621166;Seogwipo;JSP;Seogwipo;Sogvipkho;Согвипхо; +city::6903078;Changnyeong;Ch'angnyong;Ch’angnyŏng;changnyeong;changnyeong-eub;changnyeong-gun;창녕;창녕군;창녕읍; +city::11523293;Sejong;Sedzong;Sedżong;Sejong;Sejong Special Self-Governing City;Yeongi;se(ː).dʑon;se(ː).dʑoŋ;sejong;shi zong;世宗;세종; +city::285629;Hawalli;Hawali-nogra;Hawalli;Hawaly;hawaliy;hwly;حولي;حَوَلِّي;Ḩawallī; +city::285728;Ar Riqqah;Al-Riqqah;Ar Riqqah;Reqqa;aalriqat;alrqt;الرقة;اَلرِّقَّة; +city::285787;Kuwait City;Al Kuwait;Al Kuwayt;Al-Kuwait;Ciudad de Kuwait;Ehl'-Kuvejt;KWI;Koeweit;Kota Kuwait;Koveyit;Koweit;Koweït;Kuvaeyt;Kuvajt;Kuvajto;Kuvajturbo;Kuveitas;Kuväyt;Kuwait;Kuwait City;Kuwait Stad;Kuwait by;Kuwait-Stadt;Kuwait-Urbo;Kuwayt;Kuweit;Kuwejt;Madinat al Kuwayt;Madinat al-Kuwait;Madīnat al Kuwayt;Pole tou Koubeit;aalkuayt;ke wei te shi;khuwet si ti;kuu~eto shi;kuweiteu;kuweiteusiti;kwwyt syty;mdynt alkwyt;Πόλη του Κουβέιτ;Эль-Кувейт;כווית סיטי;اَلْكُوَيْت;مدينة الكويت;คูเวตซิตี;クウェート市;科威特市;쿠웨이트;쿠웨이트시티; +city::285811;Al Fahahil;Al Fahahil;Al Faḩāḩīl;Al Fuhaihil;Al Fuhayhil;Al Fuħaiħil;Al Fuḩayḩīl;Al Ifhaihil;Al-Fahaheel;Al-Fahahil;Fahaheel;Fahahil;Fahaihil;Fahaihīl;Fahayhil;Fahāhīl;Faḩayḩīl;Fuhayhil;Fuḩayḩīl;aalfuhayhil;alfhahyl;الفحاحيل;اَلْفُحَيْحِيل; +city::285815;Al Farwaniyah;Al Farwania;Al Farwaniyah;Al Farwānīyah;Al-Farawaniyah;Al-Farwaniyyah;Farwaniah;Farwaniyyeh;aalfarwaniat;اَلْفَرْوَانِيَّة; +city::285839;Al Ahmadi;Ahmad;Ahmadi;Ahmedi;Al Ahmadi;Al Aħmadi;Al Aḩmadī;aalaahmadi;alahmdy;الاحمدي;اَلأَحْمَدِي; +city::412800;Sabah as Salim;Sabah as Salim;Sabah as Salim as Sabbah;sabah aalsaalim;Şabāḩ as Salim aş Sabbāḩ;Şabāḩ as Sālim;صَبَاح اَلسَّالِم; +city::607610;Zhanaozen;Novyj Uzen';Novyy Uzen’;Schangaoesen;Schangaösen;Zhanaozen;Zhangaoezen;Zhangaozen;Zhangaözen;Zhaңaөzen;Жанаозен;Жаңаөзен;Новый Узень; +city::608668;Oral;Gorad Ural'sk;O'ral;Oral;Orala;Oralas;Oural;Oʻral;URA;Ural's'k;Ural'sk;Uralsk;Ural’sk;awral;awral kazakhstan;awral qazqstan;awral qzaqstan;olal;oraru;wu la er;Οράλ;Горад Уральск;Орал;Уралск;Уральск;Уральськ;Җаек;אוראל;أورال;أورال، كازاخستان;ئۆرال، کازاخستان;اورال;اورال، قازقستان;اورال، قزاقستان;オラル;烏拉爾;오랄; +city::609123;Qulsary;Kol'sary;Kul'sari;Kul'sary;Кульсары; +city::609655;Karagandy;KGF;Karaganda;Karagandi;Karagandy;Qaragandi;Qaraghandy;Qarağandı;Караганда; +city::610529;Atyrau;Aterau;Atirau;Atirav;Atiraw;Atorau;Aturau;Atyraou;Atyrau;Atyraw;Atyraū;Atîrau;Atõrau;Atırau;Atırav;Atıraw;Chapayev;GUW;Gorad Atyrau;Gur'yev;Gurev;Guriev;Gur’yev;a te lao;atilau;atirau;aturau;atyraw;atyrayw qzaqstan;yatraw;Атирау;Атърау;Атырау;Горад Атырау;אטיראו;آتیراؤ;آتیرائو، قزاقستان;أتيراو;ئاتراو;اتیراؤ;ਅਤੁਰੌ;ატირაუ;アティラウ;阿特勞;아티라우; +city::610611;Aqtobe;AKX;Aktioube;Aktioubé;Aktiube;Aktiubinsk;Aktobe;Aktoebe;Aktubinsk;Aktyubinsk;Aktöbe;Aqtoebe;Aqtöbe;Ukhtiubinskii;agtoebe;Актобе;Ақтөбе;악퇴베; +city::610612;Aktau;Akhtau;Aktaou;Aktau;Aktauskiy;Aktav;Aqtau;Aqtaw;Aqtaū;SCO;Shevchenko;a ke tao;agtau;aktau;aktaw;akutau;aqata'u;aqtaw;aq‌taw;yaqtaw;Актау;Ақтау;آقتاؤ;آق‌تاو;أكتاو;ئاقتاو;اقتاؤ;अक़तऊ;აქთაუ;アクタウ;阿克套;악타우; +city::1516589;Zhezqazghan;Bol'shoy Dzhezkazgan;Bol’shoy Dzhezkazgan;DZN;Dzhezkazgan;Jez-Kazgan;Jezgazgan;Schesqasghan;Zhezkazgan;Zhezkˌazgan;Zhezqazghan;Джезказган;Жезказган;Жезқазған; +city::1516905;Taraz;Auliye-Ata;DMB;Dzhambul;Gorad Taraz;Jambul;Talas;Taras;Taraz;Taraza;Tarazas;Zhambyl;ta la ci;talajeu;taraz;tarazu;traz;Ταράζ;Горад Тараз;Тараз;Թարազ;טאראז;تاراز;تراز;طراز;ტარაზი;タラズ;塔拉兹;타라즈; +city::1517945;Turkestan;Turkestan;Turkistan;Türkistan;Туркестан;Түркістан; +city::1518262;Temirtau;Samarand;Samarka;Samarkand;Samarkandskoye;Temirtaou;Temirtau;Temirtaw;Temirtaū;Temyrtau;temileutau;tie mi er tao;tmyrtaw;Темиртау;Теміртау;تميرتاو;تمیرتاؤ;تمیرتاو;تێمیرتاو;鐵米爾套;테미르타우; +city::1518542;Taldykorgan;Gavrilovka;Gavrilovskoye;Gorad Taldykargan;TDK;Taldi Kurgan;Taldikorgan;Taldiqo'rg'an;Taldiqorgan;Taldiqoʻrgʻan;Taldokorgan;Taldukorgan;Taldy-Korgon;Taldy-Kurgan;Taldykorgan;Taldykorganas;Taldykourgan;Taldyqorghan;Taldîkorgan;Taldõkorgan;Taldıqorğan;Talto-Kurgan;Taltö-Kurgan;Tałdykorgan;ta er di ku er gan;taldikoleugan;taldykwrghan;taldyqwrghan;taldyqwrghan qzaqstan;tarudikorugan;tldykwrghan;Горад Талдыкарган;Талдикорган;Талдъкорган;Талды-Коргон;Талдыкорган;Талдықорған;Տալդի Կուրգան;تالدقۆرغان;تالديكورغان;تالدیقورغان;تالدیقورغان، قزاقستان;تلدیکورغان;თალდიყორღანი;タルディコルガン;塔爾迪庫爾干;탈디코르간; +city::1518543;Taldyqorghan;Taldy - Kurgan;Taldy-Kurgan;Taldy-Kurgan Stantsiya;Taldykurgan;Taldyqorghan;Талды - Курган; +city::1518980;Shymkent;CIT;Chimkent;Chymkent;Cimkent;Gorad Shymkent;Schymkent;Shimkent;Shymkent;Shımkent;Simkent;Simkenta;Simkento;Sjimkent;Sjymkent;Somkent;Symkent;Symkentas;Szymkent;Tsjimkent;Ximkent;Xymkent;chymknd;qi mu ken te;shimkenti;shimukento;shmkynt;shymknt;simakenta;swimkenteu;symqnt;Çimkent;Çimkənd;Ŝimkento;Şımkent;Šimkent;Šimkenta;Šymkent;Šymkentas;Šõmkent;Șîmkent;Σιμκέντ;Горад Шымкент;Чимкент;Чымкент;Шимкент;Шымкент;שימקנט;شمکینت;شمکێنت;شيمكنت;شیمکنت;چیمکند;शिमकेंत;შიმქენთი;シムケント;奇姆肯特;쉼켄트; +city::1519422;Semey;Alash-kala;PLX;Semei;Semej;Semeja;Semejus;Semey;Semeï;Semipalatinsk;Semipalatynsk;sai mi yi;semei;smy;smyy;symay;symy;Σεμέι;Семей;Семеј;Семипалатинск;סמיי;سمی;سيماي;سیمی;سێمێی;セメイ;塞米伊;세메이; +city::1519691;Sarkand;Sarkand;Sarkanskaya;Sarqan;Sarqant;Сарканд; +city::1519843;Rudnyy;Rudnyj;Rudnyy;Rūdnyy;Рудный; +city::1519922;Kyzylorda;Ak-Mechet;Ak-Mechet';Fort Perovskij;Fort Perovsky;Gorad Kyzylarda;KZO;Khizilorda;Khizilordà;Kizilorda;Kizilornta;Kozolorda;Kuzulorda;Kyzylorda;Kyzyłorda;Kzyl-Orda;Kîzîlorda;Kõzõlorda;Kızılorda;Kˌyzylorda;Perovsk;Qizilo'rda;Qizilorda;Qiziloʻrda;Qysylorda;Qyzylorda;Qızılorda;ke zi lei ao er da;khuy si lxx r da;kijilloleuda;kijilorada;kuzuroruda;kyzylwrda;qyzylwrda;qzl awrda;Κιζιλορντά;Ак-Мечеть;Горад Кызыларда;Кзыл-Орда;Кизилорда;Къзълорда;Кызылорда;Перовск;Форт Перовский;Қызылорда;Կզըլ-Օրդա;قزل اوردا;قیزیلوردا;قیزیل‌اوردا;كيزيلوردا;ਕਿਜਿਲੋਰਡਾ;คืยซิลออร์ดา;ყიზილორდა;クズロルダ;克孜勒奧爾達;키질로르다; +city::1519928;Kostanay;KSN;Kostanai;Kostanaj;Kostanajus;Kostanay;Kostanaï;Kostanái;Kustanai;Kustanaisk;Kustanaj;Kustanay;Nikolayevsk;Qo'stanay;Qostanai;Qostanaj;Qostanay;Qoʻstanay;koseutanai;kosutanai;ku s ta ni;ku si ta nai;kwstnay;qwstanay;qwstanay qzaqstan;qwstanayy;Κοστανάι;Костанай;Кустанай;Кустанај;Қостанай;قوستانائی;قوستانای;قوستانای، قزاقستان;قۆستانای;كوستناي;กุสตาไน;კოსტანაი;コスタナイ;庫斯塔奈;코스타나이; +city::1520172;Petropavl;Kizilyar;Kızılyar;PPK;Petropavel;Petropavl;Petropavla;Petropavlas;Petropavlovs'k;Petropavlovsk;Petropawl;Petropawlowsk;Petropawł;Pietropawlowsk;Pietropawłowsk;bi de luo ba fu er;btrwbafl;peteulopabeul;petoropaburu;ptrwpawl qzaqstan;pytrwpawl;Πετροπάβλ;Петропавел;Петропавл;Петропавловск;Петропавловськ;بتروبافل;پتروپاول، قزاقستان;پیتروپاول;پێترۆپاڤل;ペトロパブル;彼得罗巴甫尔;페트로파블; +city::1520240;Pavlodar;Gorad Pauladar;Kereku;Kerekū;PWQ;Pavlodar;Pavlodara;Pavlodaras;Pavlontar;Pawlodar;Pawłodar;ba fu luo da er;baflwdar;pabeullodaleu;paf lod ar;pavalodara;pavurodaru;pawlwdar;pawlwdar qzaqstan;pawlwdr;pblwdr;Παβλοντάρ;Горад Паўладар;Павлодар;פבלודר;بافلودار;پاؤلودار;پاولودار، قزاقستان;پاولودر;پاڤلۆدار;ਪਾਵਲੋਦਰ;ปัฟโลดาร์;პავლოდარი;パヴロダル;巴甫洛達爾;파블로다르; +city::1520316;Ust-Kamenogorsk;OEskemen;Oskemen;UKK;Ust'-Kamenogorsk;Ust-Kamenogorsk;Ust-Kamienogorsk;oeseukemen;Öskemen;Усть-Каменогорск;Өskemen;Өскемен;ウスチ・カメノゴルスク;외스케멘; +city::1521368;Baikonur;BXY;Baikonur;Bajkonur;Bajkˌoңyr;Baykonur;Bayqonir;Bayqoñır;Leninsk;Leninskiy;Tyuratam;Zarya;Байконур;Байқоңыр;Ленинск; +city::1521370;Ridder;Leninogor;Leninogorsk;Lenīnogor;Lenīnogorsk;Ridder;Ridderskiy;Rideras;Rïdder;li de;rydr;rydr qazqstan;rydr qzaqstan;Лениногорск;Риддер;Ріддер;ريدر;ریدر، قازقستان;ریدر، قزاقستان;ڕیددێر;里德; +city::1522203;Kokshetau;KOV;Keksetau;Kekšetau;Ko'kshetau;Kochetayev;Koekschetau;Koeksetaw;Koekshetau;Koeksjetau;Kokcetau;Kokchetaou;Kokchetar;Kokchetau;Kokchetav;Kokczetaw;Koksetau;Kokshetau;Koksjetau;Kokxetau;Kokčetau;Kokšetau;Kokșetau;Koshetau;Koʻkshetau;Kökschetau;Kökshetaū;Köksjetau;Kökşetaw;Köshetaū;ke ke she tao;kogsyetau;kokshetau;kokushetau;kwkshh‌taw;kwkshytaw;kwkshytw;Кокчетав;Кокшетау;Көкчө-Тоо;Көкшетау;Կոկչետավ;كوكشيتو;کوکشه‌تاو;کوکشیتاؤ;کوێکشێتاو;ქოქშეთაუ;コクシェタウ;科克舍套;콕셰타우; +city::1522751;Kentau;Kentaou;Kentau;Kentaw;Kentaū;ken tao;kentau;kntaw;Кентау;كنتاو;کنتاؤ;کن‌تاو;کێنتاو;ქენთაუ;肯套; +city::1524325;Ekibastuz;EKB;Ehkibastuz;Ekibastouz;Ekibastus;Ekibastuz;Ekibastuza;Ekibastuzas;Ekibastuzugol';Ekibastuzugol’;Ekibastūz;Energograd;Gorad Ehkibastuz;Jekibastuz;Jekybastuz;ai ji ba si tu zi;akybastwz;akybastwz qzaqstan;ekibaseutujeu;ekibasutosu;xe khi bas tus;Горад Экібастуз;Екибастуз;Екібастуз;Екібастұз;Экибастуз;ئێکیباستوز;اکیباستوز;اکیباستوز، قزاقستان;เอคีบาสตุซ;エキバストス;埃基巴斯圖茲;에키바스투즈; +city::1525798;Balqash;BXH;Balkhash;Balqash;Pribalkhash;Pribalkhashstroy;Балхаш; +city::1526273;Astana;Akmola;Akmolinsk;Aqmola;Astana;Astano;Astanà;Astaná;Asztana;Aστάνα;Ostona;Qaraotkel;Qaraötkel;TSE;Tselinograd;a si ta na;aseutana;astana;astanh;asutana;Астана;Остона;Աստանա;אסטנה;آستانه;أسطانا;আস্তানা;ასტანა;አስታና;アスタナ;阿斯塔纳;아스타나; +city::1526384;Almaty;ALA;Alma Ata;Alma-Ata;Almaato;Almata;Almati;Almato;Almaty;Almatî;Almatõ;Almatý;Almatı;Almatʻa;Ałmaty;Gorad Alma-Ata;Vernyy;a la mu tu;alamati;almaaty;almati;almaty;arumatoi;xal mati;Αλμάτι;Алма-Ата;Алмаато;Алмати;Алматы;Горад Алма-Ата;Ալմաթա;אלמאטיע;אלמטי;آلماآتی;آلماتی;ألماتي;ئالمۇتا;الماتی;अलमाती;अल्माटी;อัลมาตี;ཨཱལ་མ་ཊི།;ალმათი;アルマトイ;阿拉木圖;알마티; +city::9862222;Kyzyl-Orda;Kyzylorda;Кызылорда; +city::1651944;Vientiane;Bientian;Fanhyiengh;Gorad Venc'jan;Nakhon Viangchan;V'ent'jan;VTE;Vent'jan;Ventjan;Ventyan;Vianchan;Viang chan;Viangchan;Vien Can;Vien Chang;Vienciana;Vieng Chan;Vieng-Caen;Vieng-Chan;Vieng-Cæn;Viengchan;Viengtjan;Vientane;Vientian;Vientianas;Vientiane;Vientijan;Vientián;Vientjan;Vientyan;Vijentijan;Viêng Chăn;Vjencana;Vjentiano;Vjentjan;Vjenčana;Vyantyan;Vyantyàn;Vyentyan;Wei-t'ien;Wei-t’ien;Wiang Chan;Wiangcan;Wien Tsjan;Wientian;Wiën Tsjan;Wyentyan;Wyéntyan;bhiyenatiyena;bientian;fyyntyan;vhi'antiyana;vi'anga cana;viyancan;viyen tiyen;vu~ienchan;vu~ienchan shi;wan xiang;weiyngcanthn;wyntyan;yong zhen;Βιεντιάν;Вентян;Виентијан;Виентян;Вијентијан;Вьентьян;Вєнтьян;Горад Венцьян;Վիենտյան;ויינטיאן;فيينتيان;وینتیان;ڤیێنتیان;व्हिआंतियान;ভিয়েনতিয়েন;ਵਿਆਂਗ ਚਾਨ;வியஞ்சான்;ವಿಯೆನ್ ಟಿಯೇನ್;വിയന്റിയൻ;เวียงจันทน์;ວຽງຈນ;ວຽງຈັນ;ཝིན་ཆིའང་;ဗီယင်ကျန်းမြို့;ვიენტიანი;ቭየንትዬን;ヴィエンチャン;ヴィエンチャン市;万象;永珍;비엔티안; +city::1653316;Savannakhet;Khwaeng Savannakhet;Khwaeng_Savannakhet;Muang Savannaket;Savannaket;Savannakhet;Savannakhét;Savannakkhet;Suvannakhet;Suwanakhet;Svannakhet;Svannakhét;ZVK;sawan'naketo xian;Саваннакхет;แขวงสะหวันนะเขต;サワンナケート県; +city::1654379;Pakse;PKZ;Pakse;Paksé;Paksė;Pakxe;Pakxé;ba se;baksy;pagse;pak se;paksh;pakuse jun;Паксе;باكسي;پاکسه;پاکسے;ปากเซ;ປາກເຊ;ເມືອງປາກເຊ;პაქსე;パークセー郡;巴色;팍세; +city::1655199;Thakhek;Khammouane;Muang Khammouan;Muang Thakek;Tha Khaek;Thakhek;Thakhet;Thakhok;Thakhèk; +city::266045;Zahle;Gorad Zakhle;QZQ;Sahla;Zachle;Zahla;Zahlah;Zahle;Zahleh;Zahlé;Zahlė;Zakhla;Zakhle;Zaḩlah;jaheulle;zare;zha he lei;zhlh;zhlh lbnan;zhlt;Ζάχλε;Горад Захле;Захла;Захле;Զահլե;זאכלא;זחלה;زحلة;زحله;زحله، لبنان;زحلہ;ザーレ;扎赫勒;자흘레; +city::266826;Tripoli;Gorad Trypali;KYE;Tarabulus;Trablous;Trablussam;Trablusşam;Tripol;Tripole;Tripoli;Tripoli i Libanon;Tripolis;Tripolo;Tripuli;Trypolis;Trâblous;Trìpuli;Trípol;Trípoli;de li bo li;teulipolli;toripori;trabls;trabls alsham;tripoli;trippeali;trypwly;Ţarābulus;Τρίπολη;Горад Трыпалі;Триполи;Триполі;Տրիպոլի;טריפאלי;טריפולי;ترابلس;طرابلس;طرابلس الشام;त्रिपोली;ട്രിപ്പൊളി;ตริโปลี;ტრიპოლი;トリポリ;的黎波里;트리폴리; +city::267008;Tyre;Es Sur;Sor;Sour;Soûr;Sur;Surru;Tir;Tiro;Tyr;Tyras;Tyre;Tyros;Tyrus;Týros;alswr;swr;tai er;tirusu;zr;zwr;Şūr;Τύρος;Тир;Тір;Тѵръ;צור;צר;الصور;صور;Ṣur;Ṣurru;Ṣōr;ティルス;泰爾; +city::268064;Sidon;Cidono;Gorad Sajda;QSQ;Saida;Sajda;Sayda;Saïda;Sido;Sidon;Sidona;Sidonas;Sidone;Sidoni;Sidun;Sidó;Sidón;Sidѡnu;Sydon;Sydón;Szidon;Szidón;Sídon;sai da;saida;si dxn;sidon;sidoni;syda;zydwn;Şaydā;Σιδώνα;Горад Сайда;Сайда;Сидон;Сідон;Сїдѡнъ;Սայդա;צידון;صيدا;صیدا;ไซดอน;სიდონი;サイダ;赛达;시돈; +city::273140;Jounieh;Djounie;Jounie;Joünié;Juniyah;Jūniyah;jwnyh;جونيه; +city::274874;Habbouch;Habbouch;Habboush;Habboûch;Habbush;Khabbushe;hbwsh;Хаббуше;حبوش;Ḩabbūsh; +city::276781;Beirut;BEY;Baeyrut;Bairut;Bayrut;Bayrūt;Beiriut;Beiroet;Beirot;Beirots;Beirout;Beiroūt;Beirut;Beiruta;Beirutas;Beirute;Beirút;Beirût;Beirūta;Bejrut;Bejrut oshs';Bejruti;Bejruto;Bejrút;Berut;Berytos;Berytus;Bewout;Beyrouth;Beyrut;Bey­rutʻ;Birut;Bäyrut;Béiriút;Bêrût;Gorad Bejrut;bairut;bairuta;bayrut;bei lu te;beiluteu;beiruti;beiruto;berut;beruta;beyaruta;beyruta;bey‌rutt;biruta;byrwt;byyrwt;peyrut;Βηρυτός;Бейрут;Бейрут ошсь;Бејрут;Бәйрут;Горад Бейрут;Բեյ­րութ;ביירוט;ביירות;بيروت;بَيْرُوت;بیروت;بېيرۇت;بەیرووت;ܒܝܪܘܬ;बेयरूत;बेय्रुत;बैरूत;বৈরুত;ਬੇਰੂਤ;ବିରୁଟ;பெய்ரூத்;ಬೈರುತ್;ബെയ്‌റൂത്ത്;เบรุต;པ་ར་ཐ།;པེ་རུ་ཐེ།;ဘေရွတ်မြို့;ბეირუთი;ቤይሩት;ベイルート;貝魯特;贝鲁特;베이루트; +city::278913;Nabatiye et Tahta;An Nabatiyah at Tahta;An Nabaţīyah at Taḩtā;NABATIEH TAHTA; +city::1225018;Vavuniya;Vavunija;Vavuniya;Vavuniya Town;babuniya;vavuniya;wawwnya;wawwnyya;Вавуния;واوونیا;واوونییا;வவுனியா;වවුනියාව;バブニヤ; +city::1225142;Valvedditturai;Valvedditturai;Valvettithurai;Valvettiturai; +city::1226260;Trincomalee;Gorad Trynkamali;TRR;Trikomali;Trikunamalaja;Trincomalee;Trincomali;Trinkomale;Trinkomali;Trinkomalis;Trinquemalay;teulingkomalli;ting ke ma li;tirukkeanamala;tirukkonamalai;torinkomari;trinkomali;trynkwmaly;Горад Трынкамалі;Трикомали;Тринкомале;Тринкомали;Трінкомалі;ترينكومالي;ترینکومالی;त्रिंकोमली;திருக்கோணமலை;തിരുക്കോണമല;ත්‍රිකුණාමලය;ტრინკომალი;トリンコマリー;亭可馬里;亭可马里;트링코말리; +city::1229989;Point Pedro;Point Pedro;Pojnt-Pedro;paruttitturai;Пойнт-Педро;پوائنٹ پیڈرو;பருத்தித்துறை;පේදුරු තුඩුව; +city::1230089;Pita Kotte;; +city::1233369;Negombo;Negombas;Negombo;nei gong bo;nigonbo;nirkolumpu;nygwmbw;Негомбо;نیگومبو;நீர்கொழும்பு;මීගමුව;ニゴンボ;內貢博; +city::1234569;Dehiwala-Mount Lavinia;Dehivala-Maunt Lavinija;Dehiwala-Mount Lavinia;Dekhivala-Maunt-Lavinija;Mount Lavania;Mount Lavina;Mount Lavinia;Mount Laviniya;dai xi wa lei-mang te la wei ni;tekivalai-kalkicai;Дехивала-Маунт-Лавиния;Дехівала-Маунт-Лавінія;دیہیوالا-ماؤنٹ لاوینیا;தெகிவளை-கல்கிசை;දෙහිවල-ගල්කිස්ස;მაუნტ-ლავინია;デヒワラ・マウントラビニア;代希瓦勒-芒特拉维尼; +city::1234633;Moratuwa;Moratuva;Moratuwa;mo la tu wa;morato~uwa;morattuvai;mwratwwa;Моратува;موراتووا;மொறட்டுவை;මොරටුව;モラトゥワ;莫拉圖瓦; +city::1235846;Matara;Matara;ma ta la;matara;mattarai;Матара;மாத்தறை;මාතර;მატარა;マータラ;馬塔拉; +city::1236854;Maharagama;Maharagama; +city::1238992;Sri Jayewardenepura Kotte;DWO;Kolompo;Kotte;New Capital Territory;Shri-Dzhajavardenepura-Kotte;Sri Dzajavardenepura;Sri Jayavardhanapura;Sri Jayawardenapura;Sri Jayawardenepura;Sri Jayawardenepura Kotte;Sri Jayewardanapura Kotte;Sri Jayewardanepura;Sri Jayewardanepura Kotte;Sri Jayewardenepura Kotte;kotte;seulijayawaleudanapula;surijayawarudanapurakotte;Šri Džajavardenepura;Κολόμπο;Шри-Джаяварденепура-Котте;கோட்டே;スリジャヤワルダナプラコッテ;스리자야와르다나푸라; +city::1239047;Kotikawatta;Kotikawatta; +city::1239593;Kolonnawa;Kolonnawa; +city::1240935;Katunayaka;Katunayaka;Katunayaka North;Katunayake; +city::1241622;Kandy;Gorad Kandy;KDW;Kandi;Kandis;Kandy;Mahanurora;Mahanuvara;Mahanuwara;kaendi;kaindi;kandy;kang ti;kanti;kendi;kndy;kyandi;Горад Канды;Канди;Канді;Կանդի;קאנדי;كاندي;کندی;کینڈی;कॅन्डी;कैंडी;क्यान्डी;ক্যান্ডি;கண்டி;കണ്ടി;මහනවර;මහනුවර;กัณฏิ;კანდი;キャンディ;康提;캔디; +city::1242110;Kalmunai;Kalmunai; +city::1242833;Jaffna;Dzafn;Dzafna;Dzhafna;Dżafna;Džafn;Džafna;Gorad Dzhafna;JAF;Jaffna;Jaffna Town;gu fu na;jafna;jafuna;japeuna;japhana;japhna;japna;yalppanam;Горад Джафна;Джафна;جافنا;जाफना;ਜਾਫਨਾ;யாழ்ப்பாணம்;జాఫ్నా;ജാഫ്ന;යාපනය;ჯაფნა;ジャフナ;賈夫納;자프나; +city::1244397;Hendala;; +city::1246294;Galle;Gale;Galla;Galle;Galė;Gorad Gale;Gálla;gal;gala;gale;gali;galla;galy;ghaly;goru;jia lei;kali;kxll;Гале;Галле;Горад Гале;Ґалле;גאלה;غالي;گال;گالی;गाल;गाली;गाल्ल;গালে;காலி;ഗാലെ;ගාල්ල;กอลล์;გალე;ゴール;加勒;갈; +city::1246321;Galkissa;; +city::1248749;Dambulla;DBU;Dambul;Dambula;Dambulla;Gorad Dambula;dambulla;dan bu lei;danburra;tampullai;Горад Дамбула;Дамбулла;தம்புள்ளை;ദംബുള്ള;දඹුල්ල;ダンブッラ;丹布勒; +city::1248991;Colombo;CMB;Colombo;Columbo;Columbum;Gorad Kalomba;Kolombas;Kolombo;Kolompo;Kolonbo;ge lin bao;kalambo;kalombo;ke lun po;kealambea;kholambo;klmbw;kolabo;kolambo;kollombo;kolumpu;kolunbu;koronbo;kwlmbw;kwlwmbw;qwlwmbw;Κολόμπο;Горад Каломба;Коломбо;Կոլոմբո;קולומבו;كولمبو;كولومبو;کلمبو;کولمبو;ކޮޅުނބު;कोलंबो;कोलम्बो;কলম্বো;ਕੋਲੰਬੋ;કોલંબો;କଲୋମ୍ବୋ;கொழும்பு;కొలంబో;ಕೊಲಂಬೊ;കൊളംബോ;කොළඹ;ෙකාළඹ;โคลัมโบ;ཁོ་ལུམ་པོ།;ကိုလံဘိုမြို့;კოლომბო;ኮሎምቦ;コロンボ;可倫坡;哥林堡;콜롬보; +city::1250161;Batticaloa;BTC;Batikaloa;Batticaloa;Batticoloa;Battikaloa;Gorad Batykaloa;Madakalapuva;Madakalapuwa;Madakalapuwra;Maddakkalabbu;ba ti ka luo a;battikalova;battikaroa;batykalwa;mattakkalappu;Баттикалоа;Баттікалоа;Горад Батыкалоа;باتيكالوا;باٹیکالوا;बट्टिकलोवा;மட்டக்களப்பு;මඩකලපව නගරය;මඩකලපුව නගරය;ბატიკალოა;バッティカロア;巴提卡洛阿; +city::1250164;Battaramulla South;Battaramulla;Battaramulla South; +city::1251081;Anuradhapura;ACJ;Aneuradhapura;Anuradhapur;Anuradhapura;Anuradhapura Town;Anuradhapuraja;Anuradkhapura;Anurádhapuraja;Anurâdhapura;Anurādhapura;Gorad Anuradkhapura;a nu la de pu lei;a nu la de pu lei wang guo;anuladapula;anuradapura;anuradhapura;anuradhapuram;anuradkhapura;anuratapuram;anwradabwra;xnu rath pu ra;Анурадхапура;Горад Анурадхапура;אנוראדאפורה;أنورادابورا;انورادھاپورہ;अनुराधापुर;अनुराधापुरा;அனுராதபுரம்;അനുരാധപുരം;අනුරාධපුර පෞරාණික නගරය;อนุราธปุระ;ანურადჰაპურა;アヌラーダプラ;阿努拉德普勒;阿努拉德普勒王國;아누라다푸라; +city::2274895;Monrovia;Gorad Manrovija;MLW;Monrobia;Monrofia;Monrovi;Monrovia;Monrovii;Monrovija;Monrovio;Monroviya;Monrowia;Monròvia;Monróvia;Monróvía;manarobhiya;manroweiy;manrwwya;meng luo wei ya;monarovi'a;monlobia;monrobia;monrovhiya;monrovia;monroviya;mwnrwbyh;mwnrwfya;mwnrwwya;Μονρόβια;Горад Манровія;Монрови;Монровия;Монровија;Монровія;Մոնրովիա;מאנראוויע;מונרוביה;مانروویا;مونروفيا;مونروویا;مۆنرۆڤیا;मोन्रोव्हिया;মনরোভিয়া;ਮੋਨਰੋਵੀਆ;மொன்றோவியா;มันโรเวีย;མོང་རོ་ཝི་ཡ།;მონროვია;ሞንሮቪያ;モンロビア;蒙罗维亚;蒙羅維亞;몬로비아; +city::932505;Maseru;Gorad Maseru;MSU;Maserou;Maseru;Maseruo;Maserú;Mazerou;ma sai lu;ma se ru;ma xie lu;maceru;maselu;maseru;masrw;masyrw;msrw;Μαζέρου;Μασερού;Горад Масеру;Масеру;Մասերու;מאסערו;מסרו;ماسرو;ماسيرو;ماسیرو;ماسێرو;मासेरू;ਮਸੇਰੂ;மசேரு;มาเซรู;མ་སི་རུ།;მასერუ;መሴሩ;マセル;馬些盧;马塞卢;마세루; +city::932614;Mafeteng;MFC;Mafeteng; +city::593116;Vilnius;Gorad Vil'njus;IVilnyusi;VNO;Vil'njus;Vil'no;Vil'nyus;Viln';Vilna;Vilnia;Vilnias;Vilniaus miestas;Vilnious;Vilnis;Vilnius;Vilnjus;Vilnjûs;Vilno;Vilnues;Vilnus;Vilnyus;Vilníus;Vilnüs;Viļņa;Vílnius;Wilna;Wilniyus;Wilno;Wilnus;Wilñus;bhilani'usa;bilnyuseu;fylnyws;vhilniyasa;vilniusi;vilniyas;vu~irinyusu;vylnyws;wei er niu si;wi lni xus;wlnys;wylnh;wylnyws;Βίλνα;Βίλνιους;Βιλνιους;Вилниус;Вилнус;Вилнюс;Вилн҄ь;Вильнюс;Вилњус;Виљнус;Вільнюс;Горад Вільнюс;Վիլնյուս;ווילנע;וילנה;فيلنيوس;ولنیس;ویلنیوس;ڤیلنیوس;व्हिल्नियस;ভিলনিউস;வில்னியஸ்;วิลนีอุส;ལྦེ་ནི་སུ་ནི།;ვილნიუსი;ቪልኒውስ;ᕕᓪᓂᐅᔅ/vilnius;ヴィリニュス;维尔纽斯;빌뉴스; +city::594739;Siauliai;Comune urbano di Siauliai;Comune urbano di Šiauliai;Gorad Shauljaj;SQQ;Sauli;Schaulen;Shaulyay;Shavli;Shawllay;Shjaulaj;Shjauljaj;Shyaulyay;Siaouliai;Siaule;Siauliai;Siauliu;Sjaulaj;Sokniai;Syaulyay;Szawle;cheale;shaurei;shiauliai;shyawlyay;shyawlyayy;syaullyai;xi ao li ai;Ŝjaulaj;Şyaulyay;Šauļi;Šiauliai;Šiaulių;Šiaulē;Σιαουλιάι;Горад Шаўляй;Шяуляй;Шјауљај;שאולאי;شياولياي;شیاؤلیائی;เชาเล;შიაულიაი;シャウレイ;希奥利艾;샤울랴이; +city::596128;Panevezys;PNV;Paneveza;Panevezhi;Panevezhis;Panevezio;Panevezis;Panevezys;Panevežis;Panevjazhys;Panevēža;Panevėžio;Panevėžys;Panevėžīs;Panjavezhis;Ponewesch;Ponewiesch;Poniewesch;Poniewiesh;Poniewiez;Poniewież;pa nei wei ri si;pa neiy weci s;panebejiseu;panevu~ejisu;pwnybz;pynywyzhys;Πανεβέζυς;Паневежис;Паневяжыс;Панявежис;פוניבז;پینیویژیس;ปาเนียเวจีส;პანევეჟისი;パネヴェジース;帕內韋日斯;파네베지스; +city::598098;Klaipeda;KLJ;Klaipada;Klaipeda;Klaipenta;Klaipéda;Klaipēda;Klaipėda;Klajpeda;Klaypeda;Kłajpeda;Lungsod ng Klaipeda;Lungsod ng Klaipėda;Memel;Memela;ke lai pei da;keullaipeda;khil pheda;klaipedas;kuraipeda;qlypdh;qlyypdh;Κλαϊπέντα;Клаипеда;Клайпеда;Клајпеда;קלייפדה;קליפדה;ไคลเพดา;クライペダ;克莱佩达;클라이페다; +city::598316;Kaunas;Caunas;Couna;Gorad Kaunas;KUN;Kaounas;Kauen;Kauna;Kaunas;Kauno;Kauns;Kauņa;Kawnas;Kaŭno;Kovno;Kowno;Palemonas;kao na si;kaunaseu;kaunasu;kawnas;khea nas;konasa;qwbnh;Κάουνας;Горад Каўнас;Каунас;קאוונע;קובנה;كاوناس;کاؤناس;کاوناس;कॉनास;เคานัส;კაუნასი;ᑯᓇᔅ/kunas;カウナス;考那斯;카우나스; +city::601084;Alytus;Alita;Alitos;Alitous;Alitus;Alytaus;Alytus;Alīta;Alītos;Gorad Alitus;Olita;a li tu si;allituseu;alwts;alytas;alyts;alytws;arito~usu;Αλίτους;Алитус;Алітус;Горад Алітус;Ալիտուս;אליטא;أليتس;الوتس;الیتاس;الیتوس;ალიტუსი;アリートゥス;阿利图斯;알리투스; +city::2960316;Luxembourg;Bandar Luxembourg;Ciudad de Luxemburgo;Ciutat de Luxemburg;Dinas Lwcsembwrg;Gorad Ljuksemburg;LUX;Letzebuerg;Letzeburg;Liksanbou;Liuksemburgas;Ljuksemburg;Louxemvourgo;Lucemburk;Lucilinburhuc;Lucsamburg;Lucsemburg;Lueksemburg;Lueksemburq;Luessemburgh;Luksambuur;Luksemboarch;Luksembourg;Luksemburg;Luksemburga;Luksemburgo;Luksemburgu;Luksembùrg;Luksimbur;Lungsod ng Luksemburgo;Lusenburgo;Lussemborgh;Lussemburgo;Lussemburgu;Lussimbork veye;Luxemboerg;Luxemborg;Luxemborj;Luxembourg;Luxembourg by;Luxemburg;Luxemburgo;Luxemburgum;Luxembuurich;Luxembôrg;Luxembörg;Luxenburgo;Lëtzebuerg;Lúksemboarch;Lúxemborg;Lüksemburg;Lüksemburq;Lüssemburgh;Rakapuo;Rakapuō;Stad Letzebuerg;Stad Lëtzebuerg;Stadt Luxemburg;Ville de Luxembourg;lak sem beirk;lakcampark;lakjhembarga;lksmbrg;lu sen bao cheng;lu sen bao shi;lugsembuleukeu;luksemaburga;luksemburgi;lwksmbwrgh;lwkzambwrg;lwqsmbwrg;rukusenburuku;Λουξεμβούργο;Горад Люксембург;Луксембург;Люксембург;Лүксембург;Լյուքսեմբուրգ;לוקסמבורג;لوكسمبورغ;لوکزامبورگ;لوکسەمبورگ;ليۇكسېمبۇرگ شەھىرى;لکسمبرگ;लक्झेंबर्ग;লুক্সেমবুর্গ;லக்சம்பர்க்;ลักเซมเบิร์ก;ལུ་སེམ་བའུརག;ლუქსემბურგი;ሉክሰምበርግ;ルクセンブルク;盧森堡城;盧森堡市;룩셈부르크; +city::456172;Riga;Gorad Ryga;RIX;Reiga;Riga;Rigae;Rige;Rigg-a;Rigo;Riia;Riigaa;Riika;Rija;Riqa;Ryga;Ríga;Ríge;Rīga;li jia;liga;ri ka;riga;rika;ryga;rygh;rygha;ryja;Ρίγα;Горад Рыга;Ригæ;Рига;Ріґа;Ռիգա;ריגה;ריגע;رىگا;ريجا;ريغا;ریگا;रिगा;रीगा;রিগা;ரீகா;รีกา;རི་ག;რიგა;ሪጋ;リガ;里加;리가; +city::457954;Liepaja;Gorad Liepaja;LPX;Leepaja;Lepaya;Libau;Libava;Liepagia;Liepaiya;Liepaja;Liepaya;Liepoja;Liepāja;Lietaja;Lietaya;Lijepaja;Lipawa;Liyepaya;li ye pa ya;lipaya;liyepaya;lyypʼyh;riepaya;Λιεπάγια;Λιεπαγια;Горад Ліепая;Лиепая;Лијепаја;Лієпая;לייפאיה;लीपाया;ლიეპაია;リエパーヤ;利耶帕亚;리예파야; +city::459201;Jurmala;Jurmala;Jūrmala;Riga Beach;Riga-Strand;Rigas Iurmala;Rigas Jormalas Pilseta;Rigas Jurmala;Rigas Yurmala;Rigastrand;Rizhskoye Vzmor'ye;Rīgas Jormalas Pilsēta;Rīgas Jūrmala;Yuomala;Yurmala;Юрмала; +city::459279;Jelgava;Elgava;Iyelgava;Jelgava;Jelgawa;Mitau;Mitava;Mitawa;Yelgava;Елгава;Елґава; +city::460413;Daugavpils;Borisoglebsk;DGP;Daugavpils;Daugawpils;Daugpelis;Daugpilis;Daugpils;Daugpiļs;Daugpėlis;Duenaburg;Duneburgum;Dvinsk;Dwinsk;Dyneburg;Dzwinow;Dünaburg;Dźwinów;Gorad Daugaupils;Nevgin;Ntaounkavpils;Vaeinaenlinna;Vaeinalinn;Väinalinn;Väinänlinna;daugafupirusu;daugapeupilseu;daugaupilsa;dawghafbyls;dwgapyls;tao ge fu pi er si;Ντάουγκαβπιλς;Νταουγκάβπιλς;Борисоглебск;Горад Даўгаўпілс;Даугавпилс;Даугавпілс;Дауґавпілс;Невгин;דאוגבפילס;דענענבורג;داوغافبيلس;دوگاپیلس;दौगौपिल्स;დაუგავპილსი;ダウガフピルス;陶格夫匹尔斯;다우가프필스;𐌳𐌰𐍅𐌲𐌰𐍅𐍀𐌹𐌻𐍃; +city::81302;Tobruk;Antipyrgos;Antipyrgus;Gorad Tabruk;TOB;Thubruq;Tobroek;Tobrouk;Tobruch;Tobruck;Tobruk;Tobrúk;Tomprouk;Tubruk;Tubrukas;Tubruq;Tóbruch;tbrq;tobruka;toburuku;tu bo lu ge;tubeulukeu;tupruk;twbrwq;Ţubruq;Τομπρούκ;Горад Табрук;Тобрук;טוברוק;طبرق;टोब्रुक;துப்ருக்;ტობრუკი;トブルク;图卜鲁格;투브루크; +city::87205;Darnah;DNF;Daernae;Darnah;Darnis;Derna;Därnä;Dérna;drnh;drnt;דרנה;درنة; +city::88319;Benghazi;BEN;Baengasi;Banghazi;Banghāzī;Bengasi;Bengaze;Bengazi;Bengazis;Bengazy;Benghasi;Benghazi;Benghází;Bengázi;Bengāzī;Benqazi;Berenice;Bingazi;Binghazi;Binghāzī;Bängasi;Bèngasi;Gorad Bengazi;Hesperides;Vilojati Bengazi;ban jia xi;banagazi;ben ka si;benagajhi;beng-gaji;bengaji;benghazi;bnghazy;pankaci;Βεγγάζη;Бенгази;Бенгазі;Вилояти Бенғази;Горад Бенгазі;Բենղազի;בנגאזי;بنغازى;بنغازي;بنغازی;बेनगाझी;ਬਨਗ਼ਾਜ਼ੀ;பங்காசி;เบนกาซี;ბენღაზი;ベンガジ;班加西;벵가지; +city::88903;Al Marj;Al Marj;Al'-Mardzh;El Merj;Maerciaen;Märciän;almrj;Аль-Мардж;المرج;شعبية المرج; +city::89055;Al Bayda';Al Bayda';Al Bayḑā’;Al-Baida;Az Zawiyah al Bayda';Az Zāwiyah al Bayḑā’;Baida;Balagrae;Balis;Bayda;Beda;Beida;El Beida;LAQ;White Monastery;Zauia el Beda;Zawiat al-Baida;Zawiyat al Bayda';Zawiyat el-Beda';Zāwiyat al Bayḑā’;Zāwiyat el-Bēḑā’;البيضاء; +city::89113;Ajdabiya;AEcdabiya;Adjadabia;Adschdabiya;Adzdabija;Adzedabija;Adzhdabija;Adzsdabija;Adzsdábija;Adżdabija;Adždabija;Adžedábíja;Agdabija;Agedabia;Ajdabiya;Ajdabiyah;Ajdābiyah;Ajdābiyā;Aĝdabija;Corniclanum;Ecdebiye;Gorad Adzhdabija;Laecdabiaen;Läcdabiän;QGG;ai ji da bi ye;ajdabia;ajdabya;ajidabiya;ajudabiya;Äcdabiya;Адждабия;Адждабія;Аџдабија;Горад Адждабія;אגדאביא;أجدابيا;اجدابیا;شعبية إجدابيا;აჯდაბია;アジュダービヤー;艾季达比耶;아지다비야; +city::2208485;Zliten;Isliten;Islīten;Izliten;Izlīten;QZL;Subgoli;Zalitan;Ziliten;Zlitan;Zliten;Zlitenas;Zlitán;Zlītan;ci li tan;jeulliten;zlytn;zuriten;Злитен;Злітен;زليتن;زلیتن;ზლიტენი;ズリテン;兹利坦;즐리텐; +city::2208791;Yafran;Gasr Iefren;Iefren;Jafran;Jefren;Yaefraeniaen;Yafran;Yafrin;Yäfräniän;Яфран;شعبية يفرن; +city::2210221;Tarhuna;El-Buerat;El-Buerát;El-Ubberat;El-Ubberát;Gasr Tarhuna;Qasr Tarhunah;Qaşr Tarhūnah;Tarhuna;Tarhunah;Tarhūnah;Tarkhuny;Тархуны; +city::2210247;Tripoli;Aea;Ea;Gorad Trypali;Oea;TIP;Tarables;Tarabulus;Tarabulus al Gharb;Tarabulus el Gharb;Taràbles;Trables;Trablus;Trablûs;Triboli;Tripili;Tripilí;Tripol;Tripole;Tripoli;Tripolis;Tripolo;Tripoly;Tripołi;Tripul;Tripuli;Trypolis;Trìpoli;Trìpuli;Trípol;Trípoli;Trípólí;de li bo li;tarabalasa;tarabulasa;tarabulus;teulipolli;tirippoli;toripori;trabls;trabls lybya;tripoli;trippeali;trypwly;Ţarābulus;Ţarābulus al Gharb;Τρίπολη;Горад Трыпалі;Триполи;Триполі;Տրիպոլի;טריפאלי;טריפולי;ترابلس;ترىپولى;تەرابلوس;طرابلس;طرابلس، لیبیا;طَرَابُلُس;ताराबूलस;त्रिपोली;ত্রিপোলি;ਤਰਾਬਲਸ;திரிப்பொலி;ട്രിപ്പോളി;ตริโปลี;ཐི་རི་ཕོ་ལི;ტრიპოლი;ትሪፖሊ;Ṭrables;トリポリ;的黎波里;트리폴리; +city::2210394;Tagiura;Tagiura;Tajura';Tajurah;Tājūrāh;Tājūrā’; +city::2210554;Sirte;Gasr Zaafran;Gasr Zaafrán;Gorad Sirt;Macomades-Euphranta;Qasr Sirt;Qasr Za`faran;Qaşr Sirt;Qaşr Za‘farān;SRX;Sert;Sirt;Sirta;Sirte;Sirto;Surt;Surtaen;Surtas;Surtiaen;Surtiän;Surtän;Syrta;Syrte;Syrti;Szurt;Vilojati Surt;sileute;sirta;srt;su er te;su te;surti;suruto;syrt;Σύρτη;Вилояти Сурт;Горад Сірт;Сирт;Сурт;סירת;سرت;شعبية سرت;सिर्त;სურთი;スルト;苏尔特;蘇爾特;蘇特;시르테; +city::2212771;Sabratah;Madinat Sabratah;Madīnat Şabrātah;Sabra;Sabrah;Sabratah;Sabratha;Sábra;sbratt;Şabrah;Şabrātah;صبراتة; +city::2212775;Sabha;El-Gedid;El-Gedíd;Fort Leclerc;SEB;Sabha;Sabhah;Sabhā;Saebha;Saebhiaen;Sebha;Sebhah;Säbha;Säbhiän;sabha;sai bo ha;sbha;sbht;سبها;سبهة;سَبها;شعبية سبها;塞卜哈; +city::2214846;Misratah;Al Misratah;MRA;Madinat Misratah;Madīnat Mişrātah;Misrata;Misratah;Misurata;Mişrātah;msrath;msratt;myswrth;Мисурата;מיסורטה;مصراتة;مصراته; +city::2216885;Zawiya;Al Harah;Al Ḩārah;El-Hara;El-Hára;Haraf Az Zawiyah;Haraf Az Zāwīyah;Harat az Zawiyah;Zawiya;Ḩārat az Zāwiyah; +city::2217362;Gharyan;Garian;Gasr Garian;Gasr Gariàn;Gharyan;Gharyān;QGH;ghryan;غريان; +city::2218970;Az Zawiyah;Az Zawiyah;Az Zawiyah al Gherbiyah;Az Zāwiyah al Gherbīyah;Az Zāwīyah;Ez Zauia;Zauia;Zavia;Zawia;alzawyt;الزاوية; +city::2219905;Al Khums;Al Hums;Al Khums;Al Ĥums;Al-Chums;Al-Khums;El Choms;Gorad Al'-Khums;Homs;Humsas;Khoms;Khums;Kums;Labdah;Lebda;alkhms;alkhms lyby;alkhums;el-khumsi;fumusu;hu mu si;humseu;khms lybya;Горад Аль-Хумс;Хомс;Хумс;אל-חומס;الخمس;الخمس، لیبی;الخُمس;خمس، لیبیا;ელ-ხუმსი;フムス;胡姆斯;훔스; +city::2219960;Al Jadid;Al Jadid;Al Jadīd;Al'-Dzhadid;El-Gedid;El-Gedíd;Аль-Джадид; +city::2526488;Youssoufia;Louis Gentil;Youssoufia; +city::2527089;Tiznit;Tiznit;Tiznitas;ti zi ni te;tznyt;Тизнит;تزنيت;تزنیت;提茲尼特; +city::2527645;Tirhanimine;; +city::2528659;Tiflet;; +city::2528910;Tetouan;Gorad Tehtuan;TTU;Tetouan;Tetouán;Tetuan;Tetuanas;Tetuano;Tetuao;Tetuán;Tetuão;Tétouan;de tu an;teto'una;teto~uan;tetuan;ttwan;Τετουάν;Горад Тэтуан;Тетуан;Тетуан қаласы;תטואן;تطوان;तेतोउन;თეტუანი;テトゥアン;得土安;테투안; +city::2529317;Taza;Taza;ta zha;tazh;tazt;Таза;Таза қаласы;תאזה;تازة;تازه;تازہ;塔扎; +city::2529649;Taroudant;Taroudannt;Taroudant;Tarudant;Tarudantas;Tarudante;ta lu dan te;tarwdant;Тарудант;تارودانت;塔魯丹特; +city::2530048;Taourirt;; +city::2530241;Tan-Tan;Gorad Tan-Tan;TTA;Tan-Tan;Tantan;Tantanas;tantan;Горад Тан-Тан;Тан-Тан;طانطان;タンタン; +city::2530335;Tangier;TNG;Tanger;Tangeri;Tangero;Tangier;Tangiers;Tanzher;Tanĝero;Tingis;Tànger;Tánger;Tânger;tan ji ya;tnjt;Тангер;Танжер;طنجة;坦幾亞; +city::2532945;Sidi Slimane;Sidi Slamain;Sidi Sliman;Sidi Slimane;Sidi-Slimane;Сиди-Слимане; +city::2533191;Sidi Qacem;Petitjean;Pettijean;Sidi Kacem;Sidi Qacem;Sidi Qasim;Sīdī Qāsim;sdy qasm;سدي قاسم; +city::2537406;Settat;Azettad;Aẓeṭṭaḍ;Sattat;Setatas;Settat;sai ta te;setateu;sltat;stat;Сеттат;سطات;سلطات;სეტატი;塞塔特;세타트; +city::2537545;Sefrou;Sefrou;Sefru;Sefrú; +city::2537763;Sale;Sala;Sale;Sali;Sallee;Salé;Sla;Slà;sla;Сале;سلا; +city::2537881;Safi;Asafi;Asfi;Gorad Safi;SFI;Safi;Safim;Safí;Sáfí;asfy;asfy mraksh;sa fei;safi;sapi;Горад Сафі;Сафи;Սաֆի;סאפי;آسفي;اسفی;اسفی، مراکش;საფი;ⴰⵙⴼⵉ;サフィ;薩非;사피; +city::2538475;Rabat;Gorad Rabat;RBA;Raba;Rabat;Rabata;Rabatas;Rabato;Rabatum;Rabot;Rabāt;Rabāta;Rampat;Rbat;Rbaṭ;alrbat;la ba;la ba te;labateu;raba t;rabat;rabata;rabato;rabota;rapat;rbat;Ραμπάτ;Горад Рабат;Рабат;Ռաբատ;ראבאט;רבאט;الرباط;رابات;ربات;رباط;ڕەبات;रबाट;रबात;রাবাত;ਰਬਾਤ;ରବୋଟ;ரபாத்;ราบัต;ར་བ་ཐ།;ར་བ་ཐེ།;რაბატი;ራባት;ラバト;剌八;拉巴特;라바트; +city::2539134;Oulad Teima;Oulad Teima;Oulad Teïma;Ouled Teima; +city::2540483;Oujda-Angad;OUD;Oudja;Oudjda;Ouja;Oujda;Oujda-Angad;Ucda;Udzda;Udzhda;Udžda;Ugda;Ujda;Uĝda;Wadzda;Wadżda;Wejda;ujida;wgdh;wjdh;wjdt;wu ji da;Уджда;Уджда қаласы;Уџда;וגדה;وجدة;وجده;وجدہ;ウジダ;乌季达;우지다; +city::2540689;Oued Zem;; +city::2540810;Ouezzane;Ouazzane;Ouezzane;Quazzane;Uazan;Uazán;Wazzan; +city::2540850;Ouarzazat;OZZ;Ouarzazat;Ouarzazate;Ouarzazte;Ouorzazate;Uarzazatas;Varzazat;Warzazat;Warzāzāt;wrzazat;wrzzat;Варзазат;ورزازات;ورززات; +city::2541479;Nador;NDR;Nador;Nadora;Nadoras;Nnadur;Nnaḍur;Nādora;Villa Nador;alnazwr;na zu er;nad xr;nadoleu;nazwr;Надор;الناظور;ناظور;นาดอร์;納祖爾;나도르; +city::2542051;Mohammedia;Al Muhammadiyah;Al Muḩammadīyah;Al-Muhammadijja;Fadalah;Faḑālah;Fdala;Fedala;Fedalah;Fedhala;Mohamedija;Mohamedio;Mohammadia;Mohammedia;Mohammédia;Mokhammedija;Muhammediye;Məhəmmədiyyə;Sedala;alhrawyyn;almhmdyt;mhmdyh;mohamedia;mu han mo di ye;Мохаммедия;المحمدية;الهراويين;محمدیه;محمدیہ;穆罕默迪耶;모하메디아; +city::2542715;Meknes;MEK;Mekinez;Meknes;Meknès;mei ke nei si;mekunesu;mknas;mqns;Мекнес;מקנס;مكناس;مکناس;ⴰⵎⴽⵏⴰⵙ;メクネス;梅克内斯; +city::2542997;Marrakesh;Marakes;Marakesh;Marakeso;Marakeŝo;Marakeš;Maraksh;Marrakech;Marrakes;Marrakesch;Marrakesh;Marrakesz;Marraqueix;Marraquexe;Marràqueix;Marrákes;Marrákeš;Merrakex;Morocco City;RAK;ma la ke shen;marakeshu;mraksh;Маракеш;Марракеш;مراكش;ⴰⵎⵓⵔⴰⴽⵓⵛ;マラケシュ;马拉喀什; +city::2543549;Larache;Al `Ara'ish;Al ‘Arā’īsh;Al-Araisz;El Aaraich;El Araish;Larache;Larasas;Larash;Larasha;Laraso;Laraxe;Laraŝo;Larašas;Larraix;Lavache;araishu;la la shen;la rach;lalasyu;Лараш;Лараша;לראצה;العرائش;عرائش;عرایش;ลารัช;アライシュ;拉臘什;라라슈; +city::2544001;Ksar El Kebir;Alcazarquebir;Alcazarquivir;Alcazquivir;El Ksar El Kbir;El Ksar El Kebir;Ksar El Kebir; +city::2544248;Khouribga;Khouribga;Khouribja;Kouriga;Kourigha;khrybkt;خريبكة; +city::2544333;Khenifra;Chenifra;Chunajfira;Jenifra;Khenifra;Khénifra;Xnifra;hai ni fu la;khnyfrh;khnyfrt;Хенифра;خنيفرة;خنیفره;خنیفرہ;海尼夫拉; +city::2544571;Kenitra;Al Qunaytirah;Al Qunayţirah;Al-Kunajtira;Gorad Kenitra;Kenitra;Kenitro;Khenifra;Kénitra;Lyautey;Mina Hassan Tani;NNA;Port Laoti;Port-Lyautey;Ville de Kenitra;alqnytrt;gai ni te la;keniteula;kenitora;qnytrh;Горад Кенітра;Кенитра;Кенитра қаласы;אל-קניטרה;القنيطرة;قنیطره;კენიტრა;ケニトラ;蓋尼特拉;케니트라; +city::2548489;Guercif;Garsif;Guercif; +city::2548526;Guelmim;GLN;Gelmima;Gelmimas;Gelmīma;Gorad Gulimin;Goulimine;Guelmim;Gulimin;Kulmim;gai lei min;gelmim;gerumin;gulimimi;klmym;Горад Гулімін;Гулимин;Гулимин қаласы;كلميم;کلمیم;გულიმიმი;ゲルミン;蓋勒敏;겔밈; +city::2548830;Al Fqih Ben Calah;Al Fqih Ben Calah;Al Fqih Ben Çalah;Fkih Ben Salah;Fquih Ben Salah; +city::2548885;Fes;FEZ;Fes;Fez;Fès;fas;fezu;Фес;فاس;フェズ; +city::2549263;Essaouira;Amegdul;As Suwayrah;As-Sawira;As-Sawíra;As-Shawirah;Aş Şuwayrah;ESU;Ehs-Suvejra;Ehssuehjra;Es Suira;Es-Suvejra;Esauira;Essaouira;Essauira;Magador;Medino de Esauiro;Medino de Esaŭiro;Mogadar;Mogador;Savira;Suira;Suvayr;Szavira;Szavíra;alswyrt;el-suvaira;es'sa'ura;esau-ila;essau~ira;suo wei la;swyrh;Ес-Сувейра;Эс-Сувейра;Эссуэйра;אסואירה;الصويرة;صویره;صویرہ;एस्साउरा;ელ-სუვაირა;エッサウィラ;索维拉;에사우이라; +city::2550078;El Jadid;Al Jadida;Al Yadida;Al-Djadida;Al-Dzadida;Al-Dżadida;Al-Džadída;Castilho Real;Dzadida;Džadida;Ehl'-Dzhadida;El Jadid;El Jadida;El-Jadida;El-Yadida;Gorad Ehl'-Dzhadzida;Mazagan;Mazagao;Mazaghan;Mazagão;Mazargan;aljdydh;aljdydt;el-jadida;ela jadida;eljadida;jie di dai;xælcha di da;Горад Эль-Джадзіда;Мазарґан;Эль-Джадида;אל-גדידה;الجديدة;الجدیده;الجدیدہ;एल जदिदा;แอลฌาดีดา;ელ-ჯადიდა;アル・ジャディーダ;杰迪代;엘자디다; +city::2553604;Casablanca;Ad Dar al Bayda;Ad Dar al Bayda';Ad Dār al Bayḑā’;Anafi;Anfa;CAS;Casa Branca;Casablanca;Casabranca;Dar-el-Beida;Darul Baidha;Ed Dar el Baida;Ed Dār el Baida;Gorad Kasablanka;Kasablank;Kasablanka;Kasablankae;Kazablanka;Kazablanko;Kazamplan'ka;Tigemmi Tamellalt;White House;dar albydaʾ;ka sa bu lan ka;ka sab l xng ka;kacapilanka;kasabalanka;kasabeullangka;kasablanka;kasaburanka;kazablanka;qzblnqh;Καζαμπλάνκα;Горад Касабланка;Казабланка;Касабланкæ;Касабланка;Կասաբլանկա;קזבלנקה;الدار البيضاء;دار البیضاء;کازابلانکا;کاسابلانکا;कासाब्लांका;কাসাব্লাংকা;ਕਾਸਾਬਲਾਂਕਾ;காசாபிளாங்கா;కాసాబ్లాంకా;ಕಾಸಾಬ್ಲಾಂಕಾ;കാസബ്ലങ്ക;กาซาบล็องกา;ກາຊາບັງກາ;ကာဆာဘလန်ကာမြို့;კასაბლანკა;ⴰⵏⴼⴰ;カサブランカ;卡萨布兰卡;카사블랑카; +city::2555467;Berkane;Berkan;Berkane;Berkawe;Berkán;Birkani;bai er kan;brkan;Беркан;بركان;برکان;拜爾坎; +city::2555745;Beni Mellal;Ayt Mellal;BEM;Bani Mallal;Beni Melal;Beni Melalis;Beni Mellal;Beni-Mellal;Beni-Mellal';Beni-Mellal-Centre;Béni Mellal;Béni-Mellal;bei ni mai la lei;benimellal;bny mlal;bny mll;Бени-Меллаль;בני מלל;بني ملال;بنی ملال;بنی‌ملال;貝尼邁拉勒;베니멜랄; +city::2556272;Berrechid;Barrechid;Berrechid;Bev-rechid; +city::2558470;Khemisset;Al Khmissat;Khemisset;Kimisset; +city::2558545;Al Hoceima;AHU;Al Hoceima;Al Hoceïma;Al Huceima;Al Husaymat;Al Ḩusaymāt;Al-Hoceima;Al-Husajma;Alhacemas;Alhucemas;Villa Alhucemas;Villa Sanjurjo;alhsymt;hsymh;الحسيمة;حسیمه; +city::2561668;Agadir;AGA;Agadair;Agadir;Agadir - akadyr;Agadir - اكادير;Agadir Ighir;Agadiras;Agádír;Ankantir;Irhir;Santa Cruz;a jia di er;agadileu;agadira;agadiru;agadyr;aghadyr;akadyr;Αγκαντίρ;Агадир;Агадір;אגאדיר;أكادير;اغادیر;اگادیر;अगादिर;アガディール;阿加迪尔;아가디르; +city::617239;Tiraspol;Gorad Ciraspal';Tiraspol;Tiraspol';Tiraspole;Tiraspoli;Tiraspolis;Tiraspolo;Tiraspol’;Tiráspol;Tyraspol;di la si bo er;ti ras pxl;tilaseupol;tirasupori;tyrasbwl;tyraspwl;tyrspwl;Горад Ціраспаль;Тираспол;Тирасполь;Тираспољ;טירספול;تيراسبول;تیراسپول;ตีรัสปอล;ტირასპოლი;ティラスポリ;蒂拉斯波尔;티라스폴; +city::617486;Ribnita;Rabnita;Ribnica;Ribnicja;Ribnita;Ribņica;Rybnica;Rybnitsa;Rybniza;Râbniţa;Râbnița;Rîbniţa;Rîbnița;rybnyzh;Рибниця;Рыбница;ריבניצה; +city::618426;Chisinau;Chisinau;Chişinău;Chișinău;KIV;Kischinew;Kiscinev;Kishinef;Kishinehu;Kishinev;Kishiniv;Kishinjov;Kishinëv;Kisinaou;Kisinev;Kisineva;Kisinevo;Kisiniovas;Kisinjev;Kisinov;Kisinyov;Kisyneu;Kiszyniow;Kiszyniów;Kiŝinevo;Kişinev;Kišiniovas;Kišinjev;Kišiněv;Kišiņeva;Kišiňov;cisina'u;cisinau;ji xi ne wu;kishinau;kisineou;kyshynaw;Κισινάου;Κισιναου;Кишинев;Кишинэу;Кишинёв;Кишињев;Кішынёў;Կիշինյով;קישינאו;كيشيناو;चिशिनाउ;चिशिनौ;კიშინიოვი;ኪሺንው;キシナウ;基希讷乌;키시너우; +city::618577;Bender;Bendary;Bender;Bendera;Benderai;Benderi;Bendery;Bəndər;Gorad Bendehr;Tighina;Tigina;bendeleu;benderi;benderu;bin jie li;byndr;byndr maldwwa;tygynh;Бендер;Бендери;Бендеры;Горад Бендэр;Тигина;טיגינה;بيندر;بیندر، مالدووا;ბენდერი;ベンデル;賓傑里;벤데르; +city::618605;Balti;BZY;Balti;Baltsy;Behlc';Bel'cy;Bel'tsy;Belcai;Belci;Beltsi;Bel’tsy;Bielce;Byelcy;Bălţi;Bălți;Municipalite de Balti;Municipalité de Bălţi;blzy;Белци;Бельцы;Бэлць;בלצי; +city::3193044;Podgorica;Birziminium;Gorad Padgoryca;Podgairitse;Podgairítse;Podgorica;Podgoricae;Podgoricja;Podgorico;Podgorika;Podgoritsa;Podgoritza;Podgorytsa;Podgòrica;Podqoritsa;Podugorica;Pontnkoritsa;TGD;Titograd;bo de ge li cha;bwdghwrytsa;padagoritasa;phx dk xrit sa;podagorika;podeugolicha;podogoritsu~a;potkorikka;pwdgwrytsa;pwdgwryzh;pۆdgۆrytsa;Ποντγκόριτσα;Горад Падгорыца;Подгоритса;Подгорицæ;Подгорица;Подгориця;Подъгорица;Պոդգորիցա;פודגוריצה;بودغوريتسا;پودگوریتسا;پوڈگوریکا;پۆدگۆریتسا;पॉडगोरिका;ਪਾਡਗੋਰਿਤਸਾ;பொட்கொரிக்கா;พอดกอรีตซา;პოდგორიცა;ፖድጎሪጻ;ポドゴリツァ;波德戈里察;포드고리차; +city::3194494;Niksic;Nikshic;Nikshich;Nikshik;Nikshiqi;Niksicius;Nikšičius;ni ke xi qi;nigsichi;nikh sikh;nikushitchi;nykshych;Никшич;Никшић;Никшиќ;نیکشیچ;นิคซิค;ニクシッチ;尼克希奇;닉시치; +city::1053384;Toamasina;TMM;Tamatave;Toamasina;Tuamasina;toamasina;to~uamashina;tu a ma xi na;twamasyna;Τοαμασίνα;Тоамасина;Туамасина;Туамасіна;טומאסינה;تواماسینا;ტუამასინა;トゥアマシナ;图阿马西纳;토아마시나; +city::1055429;Toliara;TLE;Toliara;Toliary;Tulear;Tuliara;Tullear;Tuléar;to li xa ra;tolliala;to~uriara;tu li ya la;Τολιάρα;Тулиара;Туліара;טוליארה;โตลีอารา;ტულიარა;トゥリアラ;圖利亞拉;톨리아라; +city::1062663;Mahajanga;Gorad Makhadzanga;MJN;Machatzan'nka;Mahadzanga;Mahajanga;Majunga;Makhadzanga;Makhadzhanga;ma ha zan jia;mahajang-ga;mahajanga;majnka;Μαχατζάνγκα;Горад Махадзанга;Махаджанга;Махадзанга;מאהאזאנגה;ماجنكا;マハジャンガ;马哈赞加;마하장가; +city::1064890;Fianarantsoa;Fianarancua;Fianarantsoa;WFI;fei ya na lan chu a;fianarantsu~oa;fyanarantswa;pianalanchoa;pianarantsua;Φιαναραντσόα;Фианаранцуа;Фіанаранцуа;פיאנארנצוה;فیانارانتسوا;ფიანარანცუა;フィアナランツォア;菲亞納蘭楚阿;피아나란초아; +city::1069129;Antsiranana;Anceranana;Antseranana;Antsirana;Antsiranana;Antsirane;Antsiran̈ana;DIE;Diego Soarez;Diego-Suarez;Diégo-Suarez;Анцеранана; +city::1069166;Antsirabe;ATJ;Ancirabe;Ancirabė;Antisrabe;Antsirabe;Sirabe;an qi la bei;anchilabe;antsu~irabe;antsyraby;Анцирабе;אנטסיראבה;أنتسيرابي;アンツィラベ;安齐拉贝;안치라베; +city::1070661;Antanifotsy;; +city::1070940;Antananarivo;Antananarifo;Antananarivo;Antananarivu;Antananariwo;Antananaryvas;Antananarywa;Antananarívó;Gorad Antananaryvu;TNR;Tana;Tananaribe;Tananarive;an ta na na li fu;anrananarivea;antananalibo;antananaribo;antananarivho;antananarivo;antananaryfw;antananaryww;antʼananarivu;atananarivo;ta na na li fu;xan ta nana ri wo;Ανταναναρίβο;Ταναναρίβη;Антананариво;Антананариву;Антананаріву;Горад Антананарыву;Тананариве;Անտանանարիվու;אנטאנאנאריווא;אנטננריבו;آنتاناناریوو;أنتاناناريفو;ئانتاناناریڤۆ;انٹاناناریوو;اینٹانانیریو;अंतानानारिव्हो;अन्टाननरीवो;ਅੰਤਾਨਾਨਾਰੀਵੋ;அண்டனானரீவோ;ആന്റനനറീവൊ;อันตานานาริโว;ཨེན་ཊ་ན་ན་རི་བོ།;ანტანანარივუ;አንታናናሪቮ;アンタナナリボ;塔那那利佛;安塔那那利佛;안타나나리보; +city::1078446;Amparafaravola;Amparafarovola;Amparofaravola; +city::1079048;Ambovombe;; +city::1082243;Ambilobe;AMB; +city::785058;Veles;Koprulu;Köprülü;Titov Veles;Veles;Velesa;Velesas;Velesi;Velessa;Velesu;Vélès;Weles;Wełes;belleseu;fylys;velesi;vu~eresu;wei lai si;wls;Βελεσά;Велес;Вєлєсъ;Վելես;ולס;فيليس;ولس;ველესი;ヴェレス;韋萊斯;벨레스; +city::785082;Tetovo;Gorad Cetava;Kalkandelen;Qalqan Delen;Tetobo;Tetova;Tetovas;Tetovo;Tetowo;tai tuo wo;tetobo;tetovu~o;ttwbw;ttwfw;tytwfw;Τέτοβο;Горад Цетава;Тетово;Хътѣтово;Տետովո;טטובו;تتوفو;تيتوفو;ტეტოვო;テトヴォ;泰托沃;테토보; +city::785842;Skopje;Escopia;Escópia;Gorad Skop'e;SKP;Scopia;Scupi;Shkup;Shkupi;Skop'e;Skope;Skopeia;Skopia;Skopie;Skopiye;Skopje;Skopjo;Skopjė;Skople;Skoplie;Skoplje;Skopye;Szkopje;UEskuep;Uskub;Usküb;askwpyh;s ko peiy;sakopi'e;seukope;si ke pu li;skopje;skopye;skwbyh;sqwpyh;sukopie;Üsküp;Σκόπια;Горад Скоп'е;Скоп'є;Скопе;Скопие;Скопье;Скопје;Скопље;Съкопиѥ;Սկոպյե;סקאפיע;סקופיה;اسکوپیه;اسکوپیہ;سكوبيه;سكوپليې;سکوپ جے;स्कोप्ये;ਸਕੋਪੀਏ;ஸ்கோப்ஜே;สโกเปีย;སི་ཀོཔ་ཇི།;სკოპიე;ስኮፕዬ;スコピエ;斯科普里;스코페; +city::786735;Prilep;Perlepe;Perlepes;Perlepé;Pirlepe;Prilep;Prilepa;Prilepas;pirlepe;Прилеп; +city::787487;Ohrid;Akhris;Gorad Okhryd;OHD;Ochrid;Ochrida;Ochridas;Ochryda;Ocrida;Ohri;Ohrid;Ohrida;Okhri;Okhrid;Okhridu;Oxrid;ao he li de;awhryd;awkhryd;ofurido;oheulideu;ohridi;xo kh rid;Οχρίδα;Горад Охрыд;Охрид;Охрїдъ;Օխրիդ;אוחריד;آکریڈا;أوخريد;اوهرید;โอครีด;ოჰრიდი;オフリド;奥赫里德;오흐리드; +city::788886;Kumanovo;Gorad Kumanava;Koumanovo;Kumanova;Kumanovas;Kumanove;Kumanovo;Kumanovë;Kumanowo;ku ma nuo wo;kumanobo;kumanovu~o;kwmanwfw;Κουμάνοβο;Горад Куманава;Коуманово;Куманово;Կումանովո;קומאנובו;كومانوفو;کومانوفو;კუმანოვო;クマノヴォ;库马诺沃;쿠마노보; +city::790295;Gostivar;Gostivar;Gostivar';Gostivara;Gostivaras;Gostivari;Gostiwar;Gosztivar;Kostovon;Nkostivar;ge si di wa er;ghwstyfar;goseutibaleu;gosutivu~aru;gshtyfar;gwstybr;Γκόστιβαρ;Гостивар;Гостивар҄ь;Գոստիվար;גוסטיבר;غوستيفار;گشتیفار;გოსტივარი;ゴスティヴァル;戈斯蒂瓦尔;고스티바르; +city::792578;Bitola;Bitol;Bitola;Bitolj;Bitolja;Bitolya;Manastir;Manastiri;Manastır;Monasterium;Monasteron;Monastir;Monastiri;Monastirion;Obitѣl';QBI;bi tuo la;bitolla;bitora;bytwla;bytwlh;Μοναστήρι;Μοναστήριον;Μπίτολα;Битола;Битоля;Битољ;Бітола;Манастир;Обитѣль;ביטולה;بيتولا;بیتولا;ビトラ;比托拉;비톨라; +city::833262;Cair;Cair;Chair;Čair;Чаир; +city::863675;Kisela Voda;Kisela Voda;Кисела Вода; +city::2451185;Sikasso;KSS;Sikasas;Sikaso;Sikasso;shikaso;sikaso;sykasw;xi ka suo;Σικασσό;Сикасо;Сікасо;سيكاسو;سیکاسو;シカソ;錫卡索;시카소; +city::2451478;Segou;Segi;Segou;Segu;Segú;Senkou;Ségou;sai gu;segu;sgw;syghw;Σεγκού;Сеги;Сегу;سيغو;سگو;セグー;塞古;세구; +city::2453348;Mopti;MZI;Mopti;Moptis;mo pu ti;mobti;moputi;mwbty;mwpty;Μοπτί;Мопти;Мопті;موبتي;موپتی;موپٹی;モプティ;莫普提;몹티; +city::2453662;Markala;Markala; +city::2454268;Koutiala;KTX;Koutiala;Kutiala;ku jia la;Кутиала;庫佳拉; +city::2457163;Gao;GAQ;Gao;Nkao;gao;gaw;gayw;jaw;jia ao;ka xo;Γκάο;Гао;Ґао;גאו;جاو;گائو;گاو;กาโอ;ガオ;加奥;가오; +city::2460596;Bamako;BKO;Bamaco - Bamako;Bamakas;Bamako;Bamaku;Bamakó;Bamakɔ;Bammaco;Bammako;Mpamako;ba ma ke;bamako;bamakw;bmqw;Μπαμάκο;Бамако;Բամակո;במקו;باماكو;باماکو;ባማኮ;バマコ;巴馬科;바마코; +city::1285173;Yenangyaung;Yaynangyoung;Yenangyaung;Yenangyoung; +city::1285899;Yamethin;Yamethin;Yamethinn; +city::1290596;Taungoo;Taung-ngu;Taungngu;Taungoo;Taungu;Taungû;Toungoo;taung-u;txng xu;Таунгу;ตองอู;တောင်ငူမြို့;타웅우; +city::1291193;Thongwa;Thon-Khwa;Thongwa; +city::1292037;Thayetmyo;Thayetmo;Thayetmyo;Thyatmyo; +city::1292288;Thaton;Tha-tun;Thadon;Thadôn;Thaton; +city::1292313;Tharyarwady;Tharrawaddy;Tharyarwady;Thayawadi; +city::1293625;Dawei;Davejus;Davėjus;Dawei;TVY;Tavoj;Tavoy;Tawe;Tawè;dau~ei;dawei;dawy;dawyy;thway;tu wa;Тавой;داوئی;داوی;ทวาย;ထားဝယ်မြို့;ダウェイ;土瓦;다웨이; +city::1293960;Taunggyi;Taundzhi;Taundzi;Taundzis;Taundžis;Taunggi Mong;Taunggyi;dong zhi;taungji;taunji;tawngyy;txng yi;Таунджи;Таунџи;تاونگئی;ตองยี;တောင်ကြီးမြို့;タウンジー;東枝;타웅지; +city::1294041;Taungdwingyi;Taungdwingyi; +city::1295301;Tachilek;THL;Tachajlejk;Tachileik;Tachilek;Tha Chaleak;Tha Chi Lek;Wan Ta-hki-lek;Wān Ta-hki-lēk;Тачайлейк; +city::1295395;Syriam;; +city::1295765;Sittwe;AKY;Ak'jab;Akjab;Akyab;Sittwe;Situe;Situeh;Sitve;Sitvė;shi dui;shittou~e;sitave;siteuwe;wytwy;Акьяб;Ситуэ;Сітуе;ویتوی;सितवे;စစ်တွေမြို့;シットウェ;实兑;시트웨; +city::1296736;Shwebo;Shwebo; +city::1298482;Sagaing;Sagajn;Sagang;Sitkaing;Сагайн; +city::1298824;Yangon;Dagon;Gian'nkon;Gorad Jangon;Jangon;Jangon khot;Jangona;Jangono;Jangun;Jangún;Ngiong-kong;Ngióng-kông;RGN;Rangon;Rangoon;Rangoun;Rangum;Rangun;Rangunas;Rangún;Rangūnas;Yangjgvangh;Yangon;Yangôn;Yanqon;iangoni;iyanguna;raguna;ranguna;rngwn;yang guang;yang-gon;yanghwn;yangkung;yangon;yanguna;yangwn;yankon;Ýangon;Γιανγκόν;Јангон;Горад Янгон;Рангун;Янгон;Янгон хот;Յանգոն;יאנגון;رنگون;يانغون;یانگون;यांगून;रङ्गुन;रङ्गून;ইয়াংগুন;ਰੰਗੂਨ;யங்கோன்;యాంగోన్;യംഗോൺ;ย่างกุ้ง;ཡང་ཀོང་།;ရန်ကုန်မြို့;იანგონი;ያንጎን;យ៉ាំងហ្គូន;ヤンゴン;仰光;양곤; +city::1298987;Pyinmana;P'inmana;Pinmana;Pjinmana;Pyinmana;Pyinmana Naypyidaw;Pyinmank;Rangun;bin ma na;nai bi duo;p yin ma na;pinmana;Пьинмана;Пїнмана;Рангун;ปยินมะนา;ပျဉ်းမနားမြို့;ピンマナ;奈比多;彬馬那;핀마나; +city::1299154;Pyay;PRU;Prome;Pyay;Pye;Pyei;Pyit;Проме; +city::1299237;Pyapon;P'japon;Pyabon;Pyabôn;Pyapon;Pyapun;Пьяпон; +city::1300466;Bago;Bagas;Bago;Begu;Pegou;Pegu;Pégou;bago;bagw brma;bagw myanmar;bo gu;peku;pha kho;Пегу;باگو، برما;باگو، میانمار;பெகு;พะโค;ပဲခူးမြို့;バゴー;勃固;바고; +city::1302439;Pakokku;PKK;Pagukku;Pakkoku;Pakokku;Пакокку; +city::1303406;Nyaunglebin;; +city::1307741;Myitkyina;M'ichina;MYT;Michina;Mjicina;Mjičina;Myitkyin;Myitkyina;Myitkyinā;mi zhi na;michina;mit ci na;mitchina;myytkyyna;Мичина;Мьичина;Мїчина;میئتکیئنا;มิตจีนา;မြစ်ကြီးနားမြို့;ミッチーナー;密支那;미치나; +city::1307835;Myingyan;Myingan;Myingyan; +city::1308415;Mudon;Mudon; +city::1308465;Mawlamyine;MNU;Maulamiain;Mawlamyaing;Mawlamyine;Molam'jajn;Molamjainas;Molamjajn;Molamyaing;Moulamjin;Moulmein;Mulmejn;mao dan mian;mawlamyayn;mawlamyyn;meaa la leing;moramyain;moulmein;Моламьяйн;Моламяйн;Моуламјин;ماولامیئن;ماولامیاین;เมาะลำเลิง;မောလမြင;မော်လမြိုင်;モーラミャイン;毛淡棉;모울메인; +city::1308522;Monywa;Moniva;Monywa;Mounujua;Munywa;NYW;meng yu wa;mon'yuwa;moniwa;mony wa;mwnywa;Моунъюа;مونیوا;โมนยวา;မုံရွာ;モンユワ;蒙育瓦;모니와; +city::1308937;Mogok;Magok;Mogok;Могок; +city::1309289;Minbu;; +city::1309611;Myeik;MGZ;Mergui;Myeik; +city::1309793;Meiktila;Meiktila;Mejtkhila;Miktila;mea thi la;meikeutilla;meittira;myyktyla;Мейтхила;میئکتیلا;เมะทีลา;မိတ္ထီလာမြို့;メイッティーラ;메이크틸라; +city::1309937;Pyin Oo Lwin;Maymo;Maymyo;Meimyu;Memyo;Pyn U Lwin; +city::1310362;Maubin;Ma-oo-beng;Manbin;Maubin; +city::1311874;Mandalay;Gorad Mandalaj;MDL;Mandalaj;Mandalaja;Mandalajo;Mandalajus;Mandalay;Mandalay piirkond;Mandale;Mandalej;man de lei;mandalay;mandale;mandallei;mandaly;mandare;mantalai;manth a ley;Горад Мандалай;Мандалай;Мандалеј;ماندالاي;ماندالی;ماندالے;मांडले;माण्डले;மண்டலை;మాండలే;มัณฑะเลย์;မန္တလေးမြို့;マンダレー;曼德勒;만달레이; +city::1312609;Magway;MWQ;Magueh;Magway;Magwe;Магуэ; +city::1314759;Lashio;LSH;Lasha;Lashio;Lasho;Lasijas;Lašijas;la qu;lashyw;lasio;rasho;Лаша;Лашо;لاشیو;လားရှိုးမြို့;ラーショー;臘戌;라시오; +city::1316703;Kyaukse;Kyaukse; +city::1317397;Kyaiklat;Keiklat;Kyaiklat; +city::1320944;Kanbe;Kanbe;Kanhe;Канбе; +city::1325211;Hinthada;HEB;Henzada;Hintada;Hinthada; +city::1327659;Chauk;Chauk;Chouk;Чаук; +city::1328121;Bogale;Bogale; +city::1328421;Pathein;BSX;Basejn;Bassein;Bassejn;Pantejn;Patejn;Pathein;Patheinas;Puthein;bo sheng;patein;patyn;Бассейн;Пантейн;Патейн;پاتھین;پاتین;ပုသိမ်မြို့;パテイン;勃生;파테인; +city::1329239;Myaydo;Allanmyo;Aunglan;Aunglanmyo;Myaydo; +city::6611854;Nay Pyi Taw;Kyatpyay;Kyetpyay;NYT;Naipidau;Nay Pyi Taw;Naypyidaw;Naypyitaw;Ne Pyi Daw;Pyinmana;naepido;nepido;내피도;네피도; +city::2028462;Ulan Bator;Da Huryee;Da Hüryee;Da Khure;Da-Kure;K'u-lun;Orgoo;Oulan Mpator;Oulan-Bator;Ourga;ULN;Ula Bator;Ulaan Baatar;Ulaan Baatar Hoto;Ulaanbaatar;Ulaanbaataro;Ulaanbaator;Ulaanbaator hota;Ulaanbaatur;Ulan Bator;Ulan Bator Hoto;Ulan Batoras;Ulan Batur;Ulan-Bator;Ulan-Bator Khoto;Ulanbatar;Ulanbator;Ulanbátar;Ulán Bator;Ulán Bátor;Ulánbátar;Ulánbátor;Ulã Bator;Uranbatoru;Urga;Uruga;Ułan Bator;awlan batwr;ulanabatara;ullanbatoleu;uranbatoru;wu lan ba tuo;xulanbatxr;Örgöö;Úlan Bator;Ουλάν Μπατόρ;Улаанбаатар;Улан Батор;Улан-Батор;אולן בטור;أولان باتور;اولان‌باتور;उलानबातर;อูลานบาตอร์;ཝུ་ལན་བ་ཐུར;ኡላዓን ባዓታር;ウランバートル;乌兰巴托;울란바토르; +city::2031405;Erdenet;Ehrdehneht;Ehrdehneht khot;Erdenet;Erdenetas;Gorad Ehrdehneht;ardenaita;ardnt;e er deng te;eleudeneteu;erudeneto;Горад Эрдэнэт;Ерденет;Эрдэнэт;Эрдэнэт хот;ארדנט;اردنت;अर्देनैट;エルデネト;额尔登特;에르데네트; +city::2031964;Darhan;Darchan;Darhan;Darkhan;da er han;Дархан;דרחאן;达尔汗; +city::1821274;Macau;Aomen;Aomin';Au-mun;Aumwnz;Aumyn;Cidade de Macau;Cidade do Santo Nome de Deus de Macau;MFM;Ma Cao;Macao;Macau;Macaum;Makaa;Makaaw;Makao;Makaou;Makau;Makaw;Makawo;Makaó;Makee;Makèë;Màkáù;O-muong;ao men;maka;maka'o;maka'u;makao;makavu;makaw;makayw;makkavu;mkaw;Àu-mûn;Ó̤-muòng;Μακάου;Аоминь;Аумын;Макаа;Макао;מקאו;ئاۋمېن;ماكاو;ماکائو;مکاؤ;މަކާއޫ;मकाउ;मकाओ;মাকাউ;ਮਕਾਉ;મકાઉ;மக்காவு;మకావు;ಮಕಾವು;മകൗ;เขตบริหารพิเศษมาเก๊า;မကာအို;მაკაო;マカオ;澳門;澳门;마카오; +city::3570675;Fort-de-France;Arx Gallica;FDF;Fod Fwans;For d'o Frans;For de Frans;For de Fransas;For-de-Frans;For-nte-Frans;Fordefransa;Fort Royal;Fort Royale;Fort-de-France;Fort-de-Frans;Fòd Fwans;Fôrt-de-France;Gorad Fort-deh-Frans;Le Fort-de-France;f xr-dex-fr xngs;fa lan xi bao;foru=do=furansu;fwr dw frans;fwr-dw-frans;phorta-de-phransa;pirancuk kottai;poleudeupeulangseu;por-de-pransi;Φορ-ντε-Φρανς;Горад Форт-дэ-Франс;Фор де Франс;Фор дьо Франс;Фор-де-Франс;Форт-де-Франс;Ֆոր դե Ֆրանս;פור-דה-פראנס;فور دو فرانس;فور-دو-فرانس;فورٹ ڈی فرانس;फोर्ट-दे-फ्रान्स;பிரான்சுக் கோட்டை;ฟอร์-เดอ-ฟร็องส์;ფორ-დე-ფრანსი;フォール=ド=フランス;法兰西堡;포르드프랑스; +city::2377450;Nouakchott;Gorad Nuakshot;NKC;Naevakjut;Nawakshot;Nawakszut;Nouakchat;Nouakchot;Nouakchott;Nouaksot;Nouaxot;Nuakchot;Nuakshot;Nuaksjott;Nuaksot;Nuaksota;Nuaksotas;Nuaksoto;Nuaksott;Nuakxot;Nuakŝoto;Nuakşot;Nuakšot;Nuakšota;Nuakšotas;Nuakšott;Nwaqcut;Nwaqcuṭ;Nävakjut;Núaksjott;huo suo;navakasuta;nu wa ke xiao te;nu'akacota;nu'oyakasuta;nuagsyoteu;nuakushotto;nuvakcut;nwakshwt;Νουακσότ;Νουαξότ;Горад Нуакшот;Нуакшот;Նուակշոտ;נואקשוט;نواكشوط;نواکشوت;نواکشوط;نواکشۆت;نوواکوٹ;नवाकसुत;নুওয়াকশুত;ਨੁਆਕਚੋਤ;நுவாக்சூத்;นูแอกชอต;ནའུ་ཀ་ཅོ་ཊི།;ნუაქშოტი;ኑዋክሾት;ヌアクショット;努瓦克肖特;或索;누악쇼트; +city::2377457;Nouadhibou;NDB;Nawazibu;Nouadhibou;Nouâdhibou;Nuadibu;Nuadibú;Port Etienne;Port Ettienne;Port-Etienne;Port-Étienne;nwadhybw;Нуадибу;נואדיבו;نواذيبو; +city::2377539;Nema;An Na`mah;An Na‘mah;EMN;En Na`ma;En Na‘ma;Nema;Néma;النعمة; +city::2378736;Kaedi;KED;Kaedi;Kaedis;Kaehdi;Kajhajdi;Kayhaydi;Kayhaydī;Kaédi;ka ai di;ka-edi;kaedi;kyhydy;Каэди;Каэди қаласы;קאדי;كيهيدي;کیھیدی;カエディ;卡埃迪;카에디; +city::933945;Vacoas;Phoenix;Vacoa;Vacoas;Vacoas-Phoenix; +city::934131;Quatre Bornes;Quatre Bornes; +city::934154;Port Louis;Bort Lois;Gorad Port-Lui;Po-Loui;Por Loui;Por-Loui;Port Lois;Port Louis;Port Louis Town;Port Lui;Port Luis;Port Luisas;Port Luiz;Port-Louis;Port-Lui;Port-Luiso;Port-lui;Portlui;Portluī;Portus Ludovici;Puerto Louis;Pò-Loui;bwr lwys;lu yi gang;phxrt hluys;porata lu'i;port luyis;porta lu'i;porta lu'isa;poteulu-iseu;potoruisu;pwr lwʼy;Πορ Λουί;Πορ-Λουί;Горад Порт-Луі;Порт Луи;Порт Луис;Порт-Луи;Порт-Луї;Պորտ Լուի;פור לואי;بور لويس;پورت‌لوئیس;پورٹ لوئس;پورٹ لوئی;پۆرت لویس;पोर्ट लुई;पोर्ट लुईस;পোর্ট লুইস;ਪੋਰਟ ਲੂਈ;ପୋର୍ଟ ଲୁଇସ;போர்ட் லூயிஸ்;പോർട്ട് ലൂയിസ്;พอร์ตหลุยส์;ལོ་ཡི་སི་གྲུ་ཁ།;პორტ-ლუი;ፖርት ሉዊስ;ポートルイス;路易港;포트루이스; +city::934570;Curepipe;Curepipe;K'jurpajp;Kiurpipas;Kjurpajp;Kjurpip;ju er pi pu;kulepipe;kur pip;kwrybyb;kyurupippu;Кьюрпайп;Кюрпип;Кјурпајп;كوريبيب;کیورپیپہ;กูร์ปีป;キュールピップ;居爾皮普;쿠레피페; +city::934765;Beau Bassin;Beau Bassin; +city::1282027;Male;MLE;Maale;Male;Malé;Malė;ma lei;ma lu;male;malle;mare;Μαλέ;Мале;מאלה;މާލެ;माले;মালে;மாலே;มาเล;มาเล่;マレ;瑪律;馬累;말레; +city::923295;Zomba;Zomba;jomba;song ba;zomba;zonba;zwmba malawy;Зомба;زومبا، مالاوی;ზომბა;ゾンバ;松巴;좀바; +city::925475;Mzuzu;Kaningina;Mzouzou;Mzuzo;Mzuzu;ZZU;eumjuju;mu zu zu;muzuzu;mzwzw;Μζούζου;Мзузу;مزوزو;ムズズ;姆祖祖;음주주; +city::927967;Lilongwe;Gorad Lilongveh;LLW;Lilon'nkoue;Lilonguee;Lilongve;Lilongvo;Lilongvė;Lilongwe;Lilongüe;Lilonhue;Lilonqve;Lílongve;li lang wei;li long gui;li lxng we;lilamgve;lilangave;lillong-gwe;lilongve;lilonve;lylwnghwy;lylwngwh;lylwngwwh;rironguu~e;Λιλόνγκουε;Горад Лілонгвэ;Лилонгве;Лілонгве;Լիլոնգվե;לילאנגווע;לילונגווה;ليلونغوي;لیلونگوه;لیلونگوے;لیلۆنگوێ;لیلیونگوے;लिलाँग्वे;ਲਿਲਾਂਗਵੇ;லிலொங்வே;ลิลองเว;ལི་ལོང་ཀུའེ།;ლილონგვე;ሊሎንጔ;リロングウェ;利隆圭;里朗威;릴롱궤; +city::931755;Blantyre;BLZ;Blantair;Blantairas;Blantajer;Blantajr;Blantajur;Blantire;Blantyre;Blantyre-Limbe;Gorad Blantajr;Kapeni;beullaentaieo;blamtayara;blantayr;blantayr malawy;blantyyr;blntyyr;bu lan tai er;burantaiya;Μπλαντάιρ;Блантайр;Блантайър;Блантајер;Горад Блантайр;בלנטייר;بلانتاير;بلانتایر، مالاوی;بلانتیئر;ब्लँटायर;ブランタイヤ;布兰太尔;블랜타이어; +city::3513966;Zumpango;NLU;Zumpango;Zumpango de Ocampo;Zumpango-de-Okampo;Зумпанго-де-Окампо; +city::3514450;Xochimilco;Delegacion Xochimilco;Delegación Xochimilco;Xochimilco; +city::3514519;San Miguel Xico Viejo;San Miguel Xico;San Miguel Xico Viejo;Xico; +city::3514670;Villahermosa;Cualnezcaltepec;VSA;Vil'jaehrmosa;Vilaermosa;Viljaermosa;Viljahermosa;Villa Hermosa;Villahermosa;bi ya ai er mo sa;biya-eleumosa;biyaerumosa;byayrmwsa;fylahyrmwsa;viliaermosa;wylahrmsa tabaskw;Вильяэрмоса;Виляермоса;Виљаермоса;וייארמוסה;بیائرموسا;فيلاهيرموسا;ویلاهرمسا، تاباسکو;ვილიაერმოსა;ビヤエルモサ;比亚埃尔莫萨;비야에르모사; +city::3514674;Gustavo Adolfo Madero;Delegacion Gustavo A. Madero;Delegación Gustavo A. Madero;Guadalupe;Guadalupe Hidalgo;Gustavo A. Madero;Gustavo Adolfo Madero;Villa Gustavo A. Madero;Villa Madero;Villa de Guadalupe;Villa de Guadalupe Hidalgo; +city::3514783;Veracruz;Chalchiuhcuehcan;Chalchiuhcuehcān;Heroica Veracruz;VER;Veracruz;Veracruz Llave;Veracruz i Veracruz;Verakrus;Verakrusas;Verakruz;belakeuluseu;berakrutha;berakurusu;verakurucu;wei la ke lu si;wer a kru s;wrakrws;Веракруз;Веракрус;وراکروس;बेराक्रुथ;வேராகுரூசு;เวรากรุซ;ვერაკრუსი;ベラクルス;韦拉克鲁斯;베라크루스; +city::3515001;Tuxtla;Gutierrez;TGZ;Tochtlan Gutierrez;Tochtlan Gutiérrez;Touxtla Nkoutierres;Tukstla Gutijerez;Tustla Gutieres;Tustla Gutjeresas;Tustla-Gut'erres;Tuxtla;Tuxtla Gtz;Tuxtla Gtz.;Tuxtla Gutierres;Tuxtla Gutierrez;Tuxtla Gutiérrez;tu si te la gu tie lei si;tugseuteullagutieleseu;tus tla ku ti xerres;twksla gwtyrs. chyapas;twkstla ghwtyryz;twstla gywtyrs;twstlh gwtyyrs;Τούξτλα Γκουτιέρρες;Тукстла Гутијерез;Тустла Гутиерес;Тустла-Гутьеррес;Тустла-Ґутьєррес;טוסטלה גוטיירס;توستلا گیوتیرس;توكستلا غوتيريز;توکسلا گوتیرس٬ چیاپاس;ตุซตลากูตีเอร์เรซ;ტუსტლა-გუტიერესი;トゥストラ・グティエレス;图斯特拉古铁雷斯;툭스틀라구티에레스; +city::3515011;Tuxpam de Rodriguez Cano;Tuxpam;Tuxpam de Rodriguez Cano;Tuxpan;Tuxpan de Rodriguez Cano;Tuxpan de Rodríguez Cano;Túxpam;Túxpam de Rodríguez Cano; +city::3515044;Tultepec;San Pedro de Tultepec;Tultepec; +city::3515062;Tulancingo;Tulancingo;Tulancingo de Bravo; +city::3515302;Toluca;TLC;Tollohcan;Tolouka;Toluca;Toluca Lerdoensis;Toluca de Lerdo;Toluka;Toluka-de-Lerdo;Tōllohcān;to luk a;tolluka;toluka;toruka;tuo lu ka;twlwka;Τολούκα;Толука;Толука-де-Лердо;تولوکا;तोलुका;โตลูกา;ტოლუკა;トルーカ;托卢卡;톨루카; +city::3515428;Tlalpan;Delegacion Tlalpan;Delegación Tlalpan;Tlalpam;Tlalpan; +city::3515431;Tlalnepantla;Tlalnepantla;Tlalnepantla de Comonfort;Tlalnepantla de Galeana;Tlalnepantla de baz;Tlanepantla de baz;Тлалнепантла; +city::3515463;Tlahuac;Delegacion Tlahuac;Delegación Tláhuac;Tlahuac;Tláhuac; +city::3515696;Teziutlan;Teziutlan;Teziutlán; +city::3515715;Texcoco;Texcoco;Texcoco de Mora;Tezcoco;tesukoko;テスココ; +city::3515807;Cuautitlan Izcalli;Cuautitlan Izcalli;Cuautitlán Izcalli;Izcalli;San Francisco Tepoiaco;Tepujaco; +city::3515942;Teoloyucan;Teoloyucan; +city::3516035;Temixco;Temisco;Temisko;Temixco;te mi si ke;tmykskw;Темиско;تمیکسکو;特米斯科; +city::3516053;Temapache;Temapache; +city::3516109;Tehuacan;TCN;Tehuacan;Tehuacán;Tehuahcan;Teuakan;Tevakan;thwakan;ti wa kan;Тевакан;Теуакан;تهواکان;تیہواکان;ტეუაკანი;提瓦坎; +city::3516225;Taxco de Alarcon;Tasco;Tasko-de-Alarkon;Taxco;Taxco de Alarcon;Taxco de Alarcón;Таско-де-Аларкон; +city::3516266;Tapachula;TAP;Tapachula;Tapachule;ta pa qiu la;tapachwla;Тапачула;Тапачуле;تاپاچولا;塔帕丘拉; +city::3516271;Tantoyuca;Tantoyuca;carretera platon sanchez; +city::3516355;Tampico;Gorad Tampika;TAM;Tampico;Tampikas;Tampiko;tambykw;tampiko;tampykw;tan pi ke;tanpiko;tempiko;Горад Тампіка;Тампико;تامبيكو;تامپیکو;टॅम्पिको;タンピコ;坦皮科;탐피코; +city::3517270;Santa Maria Chimalhuacan;Chimalhuacan;Chimalhuacán;Santa Maria Chimalhuacan;Santa María Chimalhuacán; +city::3517517;Santa Cruz Xoxocotlan;Santa Cruz;Santa Cruz Xoxocotlan;Santa Cruz Xoxocotlán;Xoxocotlan; +city::3518135;San Pablo de las Salinas;Salinas;San Pablo;San Pablo de Salinas;San Pablo de las Salinas; +city::3518221;San Miguel Zinacantepec;San Miguel Zicantepec;San Miguel Zinacantepec;Zinacantepec;Zinacatepec; +city::3518387;San Mateo Atenco;Atenco;San Mateo;San Mateo Atenco; +city::3518407;San Martin Texmelucan de Labastida;San Martin;San Martin Texmelucan;San Martin Texmelucan de Labastida;San Martín;San Martín Texmelucan;San Martín Texmelucan de Labastida;Texmelucan; +city::3518692;San Juan del Rio;San Juan del Rio;San Juan del Río; +city::3518723;Tuxtepec;San Juan Bautista;San Juan Bautista Tuxtepec;San Juan Bautista Tuxtla;Tuxtepec; +city::3519537;San Cristobal de las Casas;Ciudad Las Casas;Ciudad de las Casas;SZT;San Cristobal;San Cristobal de Las Casas;San Cristobal de las Casas;San Cristobal las Casas;San Cristóbal de Las Casas;San Cristóbal de las Casas;San Cristóbal las Casas; +city::3519907;San Andres Tuxtla;San Andres Tuxtla;Tuxtla; +city::3520064;Salina Cruz;SCX;Salina Cruz;Salina-Krus;Салина-Крус;Саліна-Крус;サリナ・クルス; +city::3520271;Rio Bravo;El Ebano;Rio Bravo;Rio-Bravo;Río Bravo;Рио-Браво; +city::3520339;Reynosa;REX;Reinosa;Rejnosa;Reynosa;lei nuo sa;leinosa;reinosa;rynwsa tamaywlypas;ryynwsa;ryynwsh;Рейноса;Рејноса;ריינוסה;ریئنوسا;رینوسا تامائولیپاس;რეინოსა;レイノサ;雷諾薩;레이노사; +city::3521081;Puebla;Angelopolis;Byen Puebla;Cuetlaxcoapan;Gorad Ehroika-Puehbla-deh-Saragosa;Heroica Puebla de Zaragoza;Heróica Puebla de Zaragoza;Lungsod ng Puebla;PBC;Pouempla;Puebl;Puebla;Puebla City;Puebla de Saragosa;Puebla de Zaragoza;Puebla de los Angeles;Puebla de los Ángeles;Puehbla-de-Saragosa;Puehblae-de-Saragosae;Yucha Nchu'u;bwybla;pu ai bu la;pu'aibala;pu'ebla;puebeulla;puebura;pwybla pwybla;pwybla. pwybla;Πουέμπλα;Горад Эроіка-Пуэбла-дэ-Сарагоса;Пуебла;Пуэблæ-де-Сарагосæ;Пуэбла-де-Сарагоса;פואבלה;بويبلا;پوئبلا، پوئبلا;پوئبلا٬ پوئبلا;पुएब्ला;ਪੁਐਬਲਾ;პუებლა;プエブラ;普埃布拉;푸에블라; +city::3521168;Poza Rica de Hidalgo;PAZ;Poza Rica; +city::3521342;Playa del Carmen;PCM;Plaja-del'-Karmen;Playa del Carmen;peullayadelkaleumen;playya dyl karmyn;pu la ya de er ka man;Плая-дель-Кармен;פלאיה דל כרמן;پلائیا دیل کارمین;プラヤ・デル・カルメン;普拉亞德爾卡曼;플라야델카르멘; +city::3522210;Pachuca de Soto;Pachuca;Pachuca de Soto;Pachuka;Pachuka de Soto;Pachuka-de-Soto;Pachyohcan Soto;Pachyohcān Soto;Pacuka;Pasuca Sotoensis;Pačuka;pa qiu ka;pachuka;pachwka. aydalgw;Пачука;Пачука де Сото;Пачука-де-Сото;پاچوکا٬ ایدالگو;პაჩუკა;パチューカ;帕丘卡;파추카; +city::3522307;Orizaba;Orisaba;Orizaba;ao li sa ba;Орисаба;奧里薩巴; +city::3522507;Oaxaca;Byen Oaxaca;Guaxaca;Huaxyacac Juarez;Huaxyacac Juárez;Lungsod ng Oaxaca;Ndua;OAX;Oachaka;Oachaka nte Chouares;Oahaka;Oakhaka;Oakhaka de Khuares;Oakhaka-de-Khuares;Oakhakae-de-Khuares;Oaksaka de Khuarez;Oaxaca;Oaxaca City;Oaxaca by;Oaxaca de Juarez;Oaxaca de Juárez;Oaxaka de Juarez;Oaxaka de Juárez;Oaxaka de Xuares;Santa Maria;awakhaka d khwarz;awkhaka;oagsaka;oahaka;vahaka de ju'ereza;vahaka de khu'arisa;vasaka de hu'arejha;wa ha ka;wa ha ka shi;Οαχάκα ντε Χουάρες;Оаксака де Хуарез;Оахакæ-де-Хуарес;Оахака;Оахака де Хуарес;Оахака-де-Хуарес;Օախակա դե Խուարես;אואחאקה;أوخاكا;اوآخاکا د خوارز;اوکساکا سٹی;ܘܐܟܐܩܐ ܕܝ ܟܘܐܪܝܣ;वाशाका दे हुआरेझ;वाहाका डे जुएरेज़;ਵਾਹਾਕਾ ਦੇ ਖ਼ੁਆਰਿਸ;วาฮากา;གའཀགྲོང་།;ოახაკა-დე-ხუარესი;ወሓካ ዴ ዋሬዝ;オアハカ;瓦哈卡市;오악사카; +city::3522551;Nuevo Laredo;NLD;Novo Laredo;Novum Laredum;Nuehvo-Laredo;Nuevo Laredas;Nuevo Laredo;Opstina Nuevo Laredo;Opština Nuevo Laredo;nuebolaledo;nuevo-laredo;nwyww lardw;nwyww larydw;xin la lei duo;Нуево Ларедо;Нуэво-Ларедо;נואבו לארדו;نوئوو لاردو;نوئوو لاریدو;ნუევო-ლარედო;ヌエボ・ラレド;新拉雷多;누에보라레도; +city::3522732;Nicolas Romero;Ciudad Nicolas Romero;Ciudad Nicolás Romero;Lista de municipios do Mexico;Lista de municípios do México;Nicolas Romero;Nicolás Romero;Sijudad Nikolas Romero;Siudad Nikolas Romero;Villa Nicolas Romero;Villa Nicolás Romero;ni gu la si luo mei luo;nykwlas rwmrw mkzykw;Сиудад Николас Ромеро;Сијудад Николас Ромеро;نیکولاس رومرو، مکزیکو;尼古拉斯羅梅羅; +city::3522790;Naucalpan de Juarez;Municipio Naucalpan de Juarez;Municipio Naucalpan de Juárez;Naoukalpan;Naucalpan;Naucalpan de Juarez;Naucalpan de Juárez;Nauhcalpan Juarez;Nauhcalpan Juárez;Naukal'pan;Naukal'pan-de-Khuares;Naukalpan;Naukalpan de Khuarez;San Bartolo Naucalpan;kawkalpan;nao ka er pan;naukalpan;naukarupan;nawkalban dy khwaryz;nawkalpan d khwarz astadw d mkhykw;Ναουκάλπαν;Наукалпан;Наукалпан де Хуарез;Наукальпан;Наукальпан-де-Хуарес;ناوكالبان دي خواريز;ناوکالپان د خوارز، استادو د مخیکو;کاوکالپان;ნაუკალპანი;ナウカルパン;瑙卡尔潘;나우칼판; +city::3523149;Miramar;Miramar; +city::3523183;Minatitlan;MTT;Minatitlan;Minatitlán;mi na di te lan;mynatytlan;Минатитлан;میناتیتلان;米納蒂特蘭; +city::3523202;Milpa Alta;Milpa Alta; +city::3523303;Metepec;Metepec;Metepek;Metepēc;Municipio Metepec;Municipio de Metepec;mei te pei ke;mtpk;Метепек;متپک;梅特佩克; +city::3523349;Merida;Ciudad de Merida;Ciudad de Mérida;Emerita;Gorad Meryda;MID;Merida;Merida i Yucatan;Mérida;Mérida i Yucatán;mardt;mei li da;melida;merida;mryda ywkatan;Μέριδα;Горад Мерыда;Мерида;Меріда;ماردة;مریدا، یوکاتان;მერიდა;メリダ;梅里达;梅里達;메리다; +city::3523466;Heroica Matamoros;Heroica Matamoros;MAM;Matamoros;Матаморос; +city::3523513;Martinez de la Torre;Martinez de la Torre;Martínez de la Torre; +city::3523760;Magdalena Contreras;Magdalena Contreras; +city::3523908;Los Reyes Acaquilpan;Los Reyes;Los Reyes Acaquilpan;Los Reyes La Paz;Reyes;Reyes la Paz; +city::3524348;Linares;Linares;Линарес; +city::3524744;Las Margaritas;Las Margaritas; +city::3526323;Kanasin;Kanacin;Kanacín;Kanasin;Kanasín;Kanazin; +city::3526357;Juchitan de Zaragoza;Juchitan;Juchitan de Zaragoza;Juchitán;Juchitán de Zaragoza;Khuchitan-de-Saragosa;Opstina Heroica Ciudad de Juchitan de Zaragoza;Opština Heroica Ciudad de Juchitán de Zaragoza;Xochitlan Zaragoza;Хучитан-де-Сарагоса; +city::3526485;Jiutepec;Jiutepec;Xiutepec; +city::3526617;Xalapa de Enriquez;JAL;Jalapa;Jalapa Enriques;Jalapa Enriquez;Jalapa Enríquez;Xalapa;Xalapa de Enriquez;Xalapa de Enríquez;Xalapa-Enriquez;Xalapa-Enríquez; +city::3526682;Ixtapaluca;Ixtapaluca;Iztapaluca; +city::3526683;Iztapalapa;Delegacion Iztapalapa;Delegación Iztapalapa;Delegazione Iztapalapa;Istapalapa;Ixtapalapa;Iztaoalaoa;Iztapalapa;Iztapalapan;Iztapalāpan;yi si ta pa la pa;Истапалапа;伊斯塔帕拉帕; +city::3526700;Iztacalco;Delegacion de Ixtacalco;Delegación de Ixtacalco;Ixtacalco;Iztacalco; +city::3526798;Iguala de la Independencia;Iguala;Iguala de la Independencia;Iguala-de-la-Independensija;aygwala;yi gua la zi zhi shi;Игуала-де-ла-Индепенденсия;ایگوالا;伊瓜拉自治市; +city::3528756;Ciudad Mante;Ciudad Mante;El Mante;Juarez;Juárez;MMC;Villa Juarez;Villa Juárez;Villa Mante; +city::3529612;Ecatepec;Ecatepec;Ecatepec Morelos;Ecatepec de Morelos;Morelos;San Cristobal;San Cristobal Ecatepec;San Cristobal Ecatepec de Morelos;San Cristóbal;San Cristóbal Ecatepec;San Cristóbal Ecatepec de Morelos; +city::3529947;Cuernavaca;CVJ;Cuauhnahuac;Cuauhnāhuac;Cuernavaca;Gorad Kuehrnavaka;Kuehrnavaka;Kuernavaka;ku ai na wa ka;kueleunabaka;kuerunabaka;kwrnawak;Горад Куэрнавака;Куернавака;Куэрнавака;کورناواک;കെർണവാക്കാ;კუერნავაკა;クエルナバカ;庫埃納瓦卡;쿠에르나바카; +city::3529982;Cuautla;Cuautla;Cuautla Morelos; +city::3529986;Cuautitlan;Cuautitlan;Cuautitlan de Romero Rubio;Cuautitlán;Cuautitlán de Romero Rubio;Kuautitlan;Куаутитлан; +city::3530049;Delegacion Cuajimalpa de Morelos;Cuajimalpa;Cuajimalpa de Morelos;Delegacion Cuajimalpa de Morelos;Delegación Cuajimalpa de Morelos;Guajimalpa; +city::3530103;San Miguel de Cozumel;CZM;Conzumel;Cozumel;San Miguel Cozumel;San Miguel de Cozumel; +city::3530139;Coyoacan;Coyoacan;Coyoacán;koyoakan;コヨアカン; +city::3530240;Cordoba;Cordoba;Córdoba;Huilonco;Kordoba;Kordov;Kordova;ke er duo wa;kwrdwba wrakrwz;kwrdwba wyrakrwz;Кордова;کوردوبا، وراکروز;کوردوبا، ویراکروز;科爾多瓦; +city::3530367;Comitan;CJT;Comitan;Comitan de Dominguez;Comitán;Comitán de Domínguez;Komitan-de-Dominges;Комитан-де-Домингес; +city::3530517;Coatzacoalcos;Coatzacoalcos;Koacakoal'kos;Koacakoalkos;Koacakoalkosas;Puerto Mexico;QTZ;koateusakoalkoseu;koatsu~akoarukosu;kua cha kua er ke si;kwatzakwalkws;Коацакоалкос;Коацакоалькос;کواتزاکوالکوس;კოაცაკოალკოსი;コアツァコアルコス;夸察夸爾科斯;코아트사코알코스; +city::3530569;Coacalco;Coacalco;Coacalco de Berriozabal;Coacalco de Berriozaval;Coacalco de Berriozábal;Coacalco de Berriozával; +city::3530580;Ciudad Victoria;Altepetl Victoria;CVM;Cd. Victoria;Ciudad Victoria;Lungsod ng Victoria;S'judad-Viktorija;Sijudad Viktorija;Siudad Viktorija;Victoria;Victoria llaqta;shiudabikutoria;siudadeubigtolia;siw dad wik to reiy;sywdad wyktwrya;sywdd wyqtwryh;wei duo li ya cheng;Сиудад Виктория;Сијудад Викторија;Сьюдад-Виктория;סיודד ויקטוריה;سیوداد وکٹوریہ;سیوداد ویکتوریا;ซิวดัดวิกโตเรีย;სიუდად-ვიქტორია;シウダービクトリア;維多利亞城;시우다드빅토리아; +city::3530582;Ciudad Valles;Cd Valles;Cd. Valles;Ciudad Valles;Ciudad de Valles;S'judad-Val'es;Valles;Сьюдад-Вальес; +city::3530589;Ciudad Nezahualcoyotl;Cd. Neza;Cd. Nezahualcoyotl;Cd. Nezahualcóyotl;Ciudad Netzahualcoyotl;Ciudad Netzahualcóyotl;Ciudad Neza;Ciudad Nezahualcoyotl;Ciudad Nezahualcóyotl;Nesahualkojotlis;Nesaual'kojotl';Netzahualcoyotl;Netzahualcóyotl;Neza;Nezahualcoyotl;Nezahualcóyotl;Rancheria Netzahualcoyotl;Ranchería Netzahualcóyotl;Несауалькойотль; +city::3530594;Ciudad Madero;Cd Madero;Cd. Madero;Ciudad Madero;S'judad-Madero;Siudad Maderas;Siudad Madero;Villa de Cecilia;ma de luo cheng;sywdad madrw;Сиудад Мадеро;Сьюдад-Мадеро;سیوداد مادرو;馬德羅城; +city::3530597;Mexico City;Cidade de Mexico;Cidade de México;Cidade do Mexico;Cidade do México;Cita du Messicu;Citta del Messico;Città del Messico;Cità dû Messicu;Cità dû Mèssicu;Ciudad Mexico;Ciudad de Mejico;Ciudad de Mexico;Ciudad de Méjico;Ciudad de México;Ciutat de Mexic;Ciutat de Mèxic;Lungsod ng Mexico;Lungsod ng México;MEX;Mehiko;Mekhiko;Meksikas;Meksiko;Meksiko Siti;Meksikurbo;Meksyk;Mexico;Mexico City;Mexico D.F.;Mexico DF;Mexico Distrito Federal;Mexico by;Mexico-stad;Mexicopolis;Mexiko;Mexiko Hiria;Mexiko-Stadt;Mexikoborg;Mexíkóborg;México;México Distrito Federal;Nkoyo;Pole tou Mexikou;Valle de Mexico;Valle de México;mdynt mksykw;megsiko si;megsikositi;mekishikoshiti;meksiko siti;meksikositi;mkzykw;mkzykwsyty;mo xi ge cheng;mqsyqw syty;Πόλη του Μεξικού;Мексико;Мексико Сити;Мехико;Мехіко;מקסיקו סיטי;مدينة مكسيكو;مکزیکو;مکزیکوسیتی;مېكسىكا شەھىرى;मेक्सिको सिटी;เม็กซิโกซิตี;მეხიკო;メキシコシティ;墨西哥城;멕시코 시;멕시코시티; +city::3530599;Ciudad del Carmen;Altepetl Carmen;CME;Carmen;Cd Carmen;Cd del Carmen;Cd. Carmen;Cd. del Carmen;Ciudad del Carmen;S'judad-del'-Karmen;ka men cheng;sywdad dl karmn;Сьюдад-дель-Кармен;سیوداد دل کارمن;卡門城; +city::3530757;Cholula;Cholula;Cholula de Riva dabia;Colula;San Andres Cholula;San Andrés Cholula;San Pedro Cholula;San-Pedro-Cholula;chollulla;chwlwla;Čolula;Сан-Педро-Чолула;Чолула;چولولا;サン・ペドゥロ・チョルラ;촐룰라; +city::3530870;Chilpancingo;Chilpancingo;Chilpancingo de los Bravo;Chilpancingo de los Bravos;Ciudad Bravos; +city::3530937;Chicoloapan;Chicoloapan;Chicoloapan de Juarez;Chicoloapan de Juárez;San Vicente Chicoloapan;San Vicente Chiloloapan; +city::3531007;Chiautla;San Andres Chiautla;San Andrés Chiautla; +city::3531023;Chetumal;CTM;Cetumalis;Chetumal;Chetumal';Ciudad Chetumal;Payo Obispo;che tuma l;cheto~umaru;chetumal;chtwmal;chtwmal. kyntana rw;qie tu ma er;ztwml;Četumalis;Четумал;Четумаль;צטומל;چتومال;چتومال٬ کینتانا رو;เชตูมัล;ჩეტუმალი;チェトゥマル;切图马尔;체투말; +city::3531200;Chalco;Chalco;Chalco de Diaz Covarrubias;Chalco de Díaz Covarrubias; +city::3531576;Cardenas;Cardenas;Cárdenas;Kardenas;Карденас; +city::3531673;Cancun;CUN;Cancun;Cancún;Ciudad Cancun;Ciudad Cancún;Gorad Kankun;Kan'koun;Kankun;Kankuna;Kankunas;gang guan;kan kun;kang kun;kangkun;kankun;kankuna;kankwn;kankwn. kyntana rw;qnqwn;Κανκούν;Горад Канкун;Канкун;Կանկուն;קנקון;كانكون;کانکون;کانکون٬ کینتانا رو;कान्कुन;กังกุน;ကင်န်ကွန်မြို့;კანკუნი;カンクン;坎昆;港觀;칸쿤;캉쿤; +city::3531732;Campeche;CPE;Campeche;Kampeche;San Francisco de Campeche;Кампече; +city::3531865;Cadereyta;; +city::3532497;Azcapotzalco;Atzapotzalco;Atzcapotzalco;Azcapotzalco; +city::3532592;Atlixco;Atliksko;Atlixco;Атликско; +city::3532881;Amozoc de Mota;Amozoc;Amozoc de Mota; +city::3533005;Altamira;Al'tamira;Altamira;Альтамира; +city::3533462;Acapulco de Juarez;ACA;Acapolco Juarez;Acapolco Juárez;Acapulco;Acapulco de Juarez;Acapulco de Juárez;Acapulco Acapulco de Juarez;Acapulcum;Akapoulko;Akapul'ko;Akapulkas;Akapulko;Akapúlkó;Gorad Akapul'ka;a ka pu er ke;akabwlkw;akapulko;akapuruko;akapwlkw gwyrrw;xa ka pul ko;Ακαπούλκο;Акапулко;Акапулько;Горад Акапулька;אקפולקו;آکاپولکو، گوئررو;أكابولكو;അക്കാപുൽകോ;อากาปุลโก;აკაპულკო;アカプルコ;阿卡普尔科;아카풀코; +city::3815415;Tlaxcala;Tlaskala;Tlaxcala;Tlaxcala City;Tlaxcala de Xicohtencatl;Tlaxcala de Xicohténcatl;Tlaxcala de Xicotencatl;Tlaxcala de Xicoténcatl;Тласкала; +city::3815453;Villa Vicente Guerrero;San Pablo del Monte;Vicente Guerrero;Villa Vicente Guerrero; +city::3818742;San Andres Cholula;San Andres Cholollan;San Andres Cholula;San Andrés Cholula;San Andrés Cholōllān;san andrys chwlwla pwybla;سان آندریس چولولا، پوئبلا;サン・アンドゥレス・チョルラ; +city::3824166;Tampico;Gorad Tampika;Tampeks;Tampikas;Tampiko;Tampėks;tam pi ko;tambykw;tampiko;tampykw;tan pi ke;tanpiko;tempiko;tmpyqw;Горад Тампіка;Тампико;Տամպիկո;טמפיקו;تامبيكو;تامپیکو;टॅम्पिको;ตัมปีโก;タンピコ;坦皮科;탐피코; +city::3827406;Benito Juarez;; +city::3827408;Miguel Hidalgo;Delegacion Miguel Hidalgo;Delegación Miguel Hidalgo;Miguel Hidalgo; +city::3827409;Cuauhtemoc;Cuauhtemoc;Cuauhtémoc; +city::3827414;Huixquilucan;Huixquilucan; +city::3827598;Ojo de Agua;; +city::3827606;Buenavista;Buenavista; +city::3979673;Ixtapa-Zihuatanejo;Ixtapa Zihuatanejo;Ixtapa-Zihuatanejo;Jose Azueta;José Azueta;Siuatanekho;ZIH;Zihuatanejo;khwzh azwta gwyrrw;xi wa ta nei huo;Сиуатанехо;خوزه ازوتا، گوئررو;锡瓦塔内霍; +city::3979770;Zapopan;Gorad Sapapan;Sapopan;Sapopanas;Tzapopan;Zapopan;sa bo pan;sabwban khalyskw;sapopan;zapwpan khalyskw;Σαπόπαν;Горад Сапапан;Запопан;Сапопан;زاپوپان، خالیسکو;سابوبان، خاليسكو;საპოპანი;サポパン;萨波潘; +city::3979802;Zamora;Samora-de-Idal'go;ZMM;Zamora;Zamora de Hidalgo;Самора-де-Идальго; +city::3979844;Zacatecas;Altepetl Zacatecah;Sakatekas;ZCL;Zacatecas;Zacatecas City;sa ka te ka si;sakatekaseu;sakatekasu;sqtqs;zakatkas .zakatkas;Сакатекас;Սակատեկաս;סקטקס;زاکاتکاس ٬زاکاتکاس;زاکاٹیکاس;საკატეკასი;サカテカス;萨卡特卡斯;사카테카스; +city::3979846;Zacapu;Sakapu;Zacapu;Zacapu de Mier;Zacapú;Zacapú de Mier;Сакапу; +city::3980180;Ciudad Frontera;Ciudad Frontera;Frontera;Villa Frontera;Villa-Frontera;Вилла-Фронтера; +city::3980194;Ciudad de Villa de Alvarez;Vil'ja-de-Al'vares;Villa de Alvarez;Вилья-де-Альварес; +city::3980605;Valle de Santiago;Ciudad Valle de Santiago;Val'e-de-Sant'jago;Valle de Santiago;Валье-де-Сантьяго; +city::3980760;Uruapan;Opstina Uruapan;Opština Uruapan;Ourouapan;UPN;Uruapan;Uruapan del Progreso;awrwapan;uluapan;wu lu a pan;Ουρουάπαν;Уруапан;Уруапан дел Прогресо;اورواپان;烏魯阿潘;우루아판; +city::3981254;Torreon;TRC;Toreon;Toreonas;Torreon;Torreón;toreon;tuo lei weng;twrywn. kwawyla;Τορρεόν;Тореон;Торреон;تورئون٬ کواویلا;ტორეონი;トレオン;托雷翁; +city::3981369;Tonala;Opstina Tonala;Opština Tonalá;Tonala;Tonallan;Tonalá;Tōnallān;tuo na la;twnala khalyskw;Тонала;تونالا، خالیسکو;ტონალა;托納拉; +city::3981461;Tlaquepaque;San Pedro Tlaquepaque;Tlakepake;Tlakepakė;Tlaquepaque;te la ke pa ke;tlakwpakw;torakepake;Тлакепаке;تلاکوپاکو;ტლაკეპაკე;トラケパケ;特拉克帕克; +city::3981609;Tijuana;Gorad Tykhuana;TIJ;Tia Juana;Tichouana;Tichuana;Tihuana;Tijuana;Tikhuana;Tikhuanae;Tíjúana;Zaragoza;di hua na;tifuana;tihaw na;tihu'ana;tihuana;tihvana;tikhavana;tykhwana;Τιχουάνα;Горад Тыхуана;Тихуанæ;Тихуана;Тіхуана;טיחואנה;تيخوانا;تیخوانا;तिहुआना;ਤੀਖ਼ਵਾਨਾ;ടീഹ്വാന;ตีฮัวนา;ტიხუანა;ティフアナ;蒂華納;티후아나; +city::3981941;Tepic;Nayarit;TPQ;Tepic;Tepik;Tepikas;Tepīc;te pi ke;tepig;tepiku;tpyq;Тепик;טפיק;ტეპიკი;テピク;特皮克;테픽; +city::3981984;Tepatitlan de Morelos;Tepatitlan;Tepatitlan de Morelos;Tepatitlán de Morelos; +city::3982213;Tecoman;Tecoman;Tekomane;Текомане; +city::3982266;Tecate;Tecate;Tekate;te ka te;tekate;tkt;Текате;تکت;تیکاتے;テカテ;特卡特;테카테; +city::3982912;Soledad de Graciano Sanchez;Diaz Gutierrez;Diez Gutierrez;Diez Gutiérrez;Díaz Gutiérrez;Soledad Diaz Gutierrez;Soledad Diez Gutierrez;Soledad Díaz Gutiérrez;Soledad Díez Gutiérrez;Soledad de Diez Gutierrez;Soledad de Díez Gutiérrez;Soledad de Graciano Sanchez;Soledad de Graciano Sánchez; +city::3983058;Silao;Silao; +city::3984583;Santa Catarina;; +city::3985241;San Nicolas de los Garza;San Nicolas de los Garsas;San Nicolas de los Garza;San Nicolas de los Garzas;San Nicolás de los Garsas;San Nicolás de los Garza;San Nicolás de los Garzas;San Nikolas de los Garsa;San Nikolas de los Garza;sheng ni gu la si shi;sn nykwlas d lws garza;Сан Николас де лос Гарза;Сан Николас де лос Гарса;سن نیکولاس د لوس گارزا;სან-ნიკოლას-დე-ლოს-გარსა;聖尼古拉斯市; +city::3985344;San Miguel de Allende;San Migel de Aljende;San Migel de Aljendė;San Miguel Allende;San Miguel de Allende;San-Migel'-de-Al'ende;san-migel-de-aliende;sanmigeldeayende;sheng mi ge er de a lian de;sn mygwl d alnd;Сан-Мигель-де-Альенде;Сан-Міґель-де-Альєнде;סן מיגל דה איינדה;سن میگول د الند;სან-მიგელ-დე-ალიენდე;サン・ミゲル・デ・アジェンデ;聖米格爾德阿連德;산미겔데아옌데; +city::3985604;San Luis Rio Colorado;San Luis;San Luis Rio Colorado;San Luis Río Colorado;San-Luis-Rio-Kolorado;UAC;san lwys ryw kwlwradw;sheng lu yi si li ao ke luo la duo;sn lwyys ryw klradw;Сан-Луис-Рио-Колорадо;سان لویس ریو کولورادو;سن لوئیس ریو کلرادو;聖路易斯里奧科羅拉多; +city::3985606;San Luis Potosi;Altepetl San Luis Potosi;Altepetl San Luis Potosí;Gorad San-Luis-Patasi;SLP;San Louis Potosi;San Luis;San Luis Potosi;San Luis Potosi City;San Luis Potosí;San Luis Potosí City;San-Luis-Potosi;san lwyys pwtwsy san lwyys pwtwsy;sanlu-iseupotosi;sheng lu yi si bo tuo xi shi;Σαν Λουίς Ποτοσί;Горад Сан-Луіс-Патасі;Сан Луис Потоси;Сан-Луис-Потоси;Սան Լուիս;סן לואיס פוטוסי;سان لوئیس پوتوسی سٹی;سان لوئیس پوتوسی، سان لوئیس پوتوسی;სან-ლუის-პოტოსი;サン・ルイス・ポトシ;圣路易斯波托西市;산루이스포토시; +city::3986984;San Francisco del Rincon;San Francisco del Rincon;San Francisco del Rincón; +city::3988086;Saltillo;SLW;Sal'til'jo;Sal'til'o;Saltil'o;Saltillo;Saltilo;sa er di yue;saltiyo;saltyw;saltyyw kwawyla;sarutiyo;sltyw;Салтилло;Салтильо;Салтиљо;Сальтильо;Сальтільйо;סלטיו;سالتيو;سالتیو;سالتییو، کواویلا;სალტილიო;サルティーヨ;萨尔蒂约;살티요; +city::3988214;Salamanca;Ciudad Salamanca;Salamanca;Salamanka;sa la man ka;salamanka gwanakhwatw;slamanka gwanakhwatw;slamnka;Саламанка;سالامانکا، گواناخواتو;سلامانکا، گوآناخوآتو;سلامنكا;薩拉曼卡; +city::3988258;Sahuayo de Morelos;Sahuayo;Sahuayo de Diaz;Sahuayo de Díaz;Sahuayo de Jose Maria Morelos;Sahuayo de José María Morelos;Sahuayo de Morelos;Sahuayo de Porfirio Diaz;Sahuayo de Porfirio Díaz; +city::3988392;Rosarito;Ejido Mazatlan El Rosarito;Rosario;Rosarito;Rosarito Beach Baja;Росарито; +city::3991164;Santiago de Queretaro;Ciudad Queretaro;Kepetapo;Kepeтapo;Keretaro;QRO;Queretaro;Queretaro City;Queretarum;Querétaro;Querétaro City;Sant'jago-de-Keretaro;Santiago Tlachco;Santiago nte Keretaro;Santiagu di Queretaro;Santiagu di Querétaro;Santijago de Keretaro;Santjago de Keretaras;Santjago de Keretaro;ke lei ta luo;keletalo;kere ta ro;keretaro;krtarw krtarw;kwartarw kwartarw;qrtrw;santiyago de keretaro;santʼiago-de-kʼeretʼaro;Σαντιάγο ντε Κερέταρο;Керетаро;Сантијаго де Керетаро;Сантьяго-де-Керетаро;Сантяго де Керетаро;קרטרו;کرتارو، کرتارو;کوارتارو، کوارتارو;सान्तियागो दे केरेतारो;เกเรตาโร;სანტიაგო-დე-კერეტარო;ケレタロ;克雷塔罗;케레타로; +city::3991328;Puerto Vallarta;Las Penas;Las Peñas;PVR;Pto Vallarta;Puehrto-Val'jarta;Puerto Valjarta;Puerto Vallarta;ba ya er ta gang;pueleutobayaleuta;pwrtw bayarta khalyskw;Пуерто Валярта;Пуэрто-Вальярта;پورتو بایارتا، خالیسکو;巴亚尔塔港;푸에르토바야르타; +city::3992619;Piedras Negras;PDS;Piedras Negras;Piedrasnegras;پیئدراس نیگراس، كواہويلا; +city::3994489;Ocotlan;Ocotlan;Ocotlán; +city::3994616;Nuevo Casas Grandes;NCG;Nuehvo-Kasas-Grandes;Nueva Casa Grande;Nueva Casas Grandes;Nuevo Casas Grandes;Нуэво-Касас-Грандес; +city::3995019;Navojoa;Navoioa;Navojoa;Navokhoa;na wo hua;nawwkhwa;nawwywa;Навохоа;ناووخوا;ناوویوا;納沃華; +city::3995402;Morelia;MLM;Morelia;Morelija;mo lei li ya;molellia;morelia;moreria;mwrlya mychwakan;mwrlyh;mwrylya;mx re leiy;Морелия;Морелија;Морелія;Մորելիա;מורליה;مورلیا، میچوآکان;موريليا;موریلیا;มอเรเลีย;მორელია;モレリア;莫雷利亚;모렐리아; +city::3995465;Monterrey;Gorad Mantehrehj;MTY;Mons Regis;Monterej;Monterejo;Monterejus;Monterey;Monterrei;Monterrej;Monterreja;Monterrey;Monterrey City;Monterrey i Nuevo Leon;Monterrey i Nuevo León;Monterėjus;Tlahtoantepec;Tlahtoāntepēc;mamtere;meng te lei;montelei;montere'i;monterei;mwntry;mwntryy;mwntyry;mxn terrey;Μοντερρέι;Горад Мантэрэй;Монтерей;Монтереј;Монтеррей;Մոնտերեյ;מונטריי;مونتری;مونتيري;مونتےرئی;माँतेरे;ਮੋਂਤੇਰੇਈ;มอนเตร์เรย์;མཱོན་ཊི་རེ།;მონტერეი;モンテレイ;蒙特雷;몬테레이; +city::3995523;Monclova;LOV;Monclova;Monklova;meng ke luo wa;mwnklwwa;Монклова;مونکلووا;蒙克洛瓦; +city::3996069;Mexicali;Gorad Mekhikali;MXL;Mekhikali;Meksikalis;Mexicali;Mexicali i Baja California;Mexihcali;Mexikali;me khi kali;megsikalli;mehikari;mkhykaly;mksykaly;mo xi ka li;mqsyqly;myksykaly;Μεξικάλι;Горад Мехікалі;Мехикали;Мехікалі;מקסיקלי;مخیکالی;مكسيكالي;میکسیکالی;เมคีกาลี;მეხიკალი;メヒカリ;墨西卡利;멕시칼리; +city::3996322;Mazatlan;Ciudad Mazatlan;Ciudad Mazatlán;MZT;Macatlan;Masatlan;Masatlanas;Mazatlan;Mazatlán;ma sa te lan;masateullan;masatlan;masatoran;mzatlan synalwa;Μαζατλάν;Мазатлан;Масатлан;Мацатлан;מסטלאן;ماساتلان;مزاتلان، سینالوآ;მასატლანი;マサトラン;馬薩特蘭;마사틀란; +city::3996387;Matehuala;Matehuala;Mateuala;Матеуала; +city::3996426;Matamoros;Matamoros;Matamoros de la Laguna;Матаморос; +city::3996663;Manzanillo;Cozcatlan;Cōzcatlān;Mansanil'o;Manzanillo;ZLO;man sa ni yue;mansaniyo;manzanylw;mnsnyw;Мансанильо;מנסניו;مانزانیلو;曼萨尼约;만사니요; +city::3997479;Los Mochis;LMM;Los Mochis;Los-Mochis;Mochis;los-mochisi;loseumochiseu;luo si mo qi si;lws mwchys;lws mwzys;rosumochisu;Лос Мочис;Лос-Мочис;לוס מוציס;لوس موچیس;ლოს-მოჩისი;ロスモチス;洛斯莫奇斯;로스모치스; +city::3998655;Leon de los Aldama;BJX;Ciudad de Leon;Ciudad de León;Leon;Leon Guanajuato;Leon de los Aldama;Leon de los Aldamas;León;León de los Aldama;León de los Aldamas;reon;レオン; +city::4000821;La Piedad;La Piedad;La Piedad Cabadas;La Piedad Cavadas;La Piedad de Cabadas;Municipio La Piedad; +city::4000900;La Paz;LAP;La Paz;La-Pas;Paz;Ла-Пас; +city::4002224;Lagos de Moreno;LOM;Lagos de Moreno; +city::4004330;Irapuato;Irapuatas;Irapuato;Iraputa;ayrabwatw;ayrapwatw;ayrpwatw gwankhwatw;yi la pu a tuo;Ирапуато;ايرابواتو;ایراپواتو;ایرپواتو، گوانخواتو;ირაპუატო;伊拉普阿托; +city::4004867;Parral;Hidalgo del Parral;Paral;Parral;Parral';pa la er;paral chyywaywa;Парал;Парраль;پارال، چہواہوا;پارال، چیئوائوا;帕拉爾; +city::4004885;Heroica Zitacuaro;Heroica Zitacuaro;Heróica Zitácuaro;Zitacuaro;Zitácuaro; +city::4004886;Nogales;Heroica Nogales;Los Nogales;NOG;Nogales;nuo jia lai si;nwgals swnwra;nwgalys swnwra;Ногалес;نوگالس، سونورا;نوگالیس، سونورا;諾加萊斯; +city::4004887;Heroica Caborca;Caborca;Heroica Caborca; +city::4004898;Hermosillo;Ehrmosil'o;Ermosijo;Ermosil'o;Ermosilo;HMO;Hermosiljas;Hermosillo;Pitic;ai mo xi yue;armwsyw;armwsyyw swnwra;armwsyyw swnwra;eleumosiyo;ermosilio;erumoshijo;xer mo si yo;Ермосильо;Ермосиљо;Ермосійо;Эрмосильо;ארמוסיו;ارموسييو سونورا;ارموسیو;ارموسییو، سونورا;เอร์โมซีโย;ერმოსილიო;エルモシージョ;埃莫西约;에르모시요; +city::4005143;Heroica Guaymas;GYM;Guajmas;Guaymas;Heroica Guaymas;gua yi ma si;gwaymas;Гуаймас;گوایماس;瓜伊馬斯; +city::4005219;Guasave;Guasava;Guasave;gua sa wei;gwasaw;Гуасаве;گواساو;瓜薩維; +city::4005270;Guanajuato;Byen Guanajuato;Ciudad Guanajuato;Guanajuato;Guanajuato City;Guanakhuato;Guanaxuato;Gvanachuatas;Gvanakhuato;Pachtitlan;ghwanakhwatw;gua na hua tuo;guanafuato;gwanahuato;gwanakhwatw gwanakhwatw;kwa na khaw to;Гванахуато;Гуанахуато;גואנחואטו;غواناخواتو;گوآناخوآتو، گوآناخوآتو;กวานาคัวโต;გუანახუატო;グアナフアト;瓜纳华托;과나후아토; +city::4005297;Guamuchil;Guamuchil;Guamúchil; +city::4005492;Guadalupe;Ciudad Guadalupe;Guadalupe;Gvadalupe;Villa Guadalupe;Villa de Guadalupe;Гвадалупе; +city::4005509;Guadalupe;Guadalupe;Gvadalupe;Гвадалупе; +city::4005539;Guadalajara;Atemaxac;GDL;Gorad Gvadalakhara;Gouadalachara;Guadalajara;Guadalajara i Jalisco;Guadalakhara;Guadalaxara;Gvadalachara;Gvadalahara;Gvadalaharo;Gvadalakhara;Gvadalakharae;gatalajara;ghwadalakhara;gu'adalahara;gua da la ha la;guadarahara;gvadalahara;gvadalakhara;gwadalakhara khalyskw;gwadallahala;gwwdlhrh;kwa da la ha ra;Ātemaxac;Γουαδαλαχάρα;Гвадалахарæ;Гвадалахара;Горад Гвадалахара;Гуадалахара;גוודלחרה;غوادالاخارا;گوادالاخارا، خالیسکو;گواڈلہارا;ग्वादालाहारा;ਗੁਆਦਾਲਾਹਾਰਾ;ഗൗതലജാറ;กวาดาลาฮารา;გვადალახარა;グアダラハラ;瓜达拉哈拉;과달라하라; +city::4005775;Gomez Palacio;Gomez Palacio;Gómez Palacio; +city::4005867;Ciudad General Escobedo;Ciudad General Escobedo;General Escobedo;Gral. Escobedo; +city::4005937;Garza Garcia;; +city::4006163;Fresnillo;Fresnil'o;Fresniljas;Fresnillo;Fresnillo de Gonzalez Echeverria;Fresnillo de González Echeverría;frsnylw;frysnyw;fu lei si ni yue;Фреснильо;فرسنیلو;فریسنیو;弗雷斯尼約; +city::4006702;Ensenada;ESE;Ehnsenada;Enseada;Ensenada;ansnada bakha kalyfrnya;ansynada;aynsynada bakha kylyfwrnya;en sen na da;ensenada;xen se na da;Енсенада;Энсенада;אנסנדה;إنسينادا;انسنادا، باخا کالیفرنیا;اینسینادا، باخا کیلیفورنیا;เอนเซนาดา;ენსენადა;エンセナーダ;恩森那達;엔세나다; +city::4008303;El Pueblito;; +city::4011743;Victoria de Durango;Byen Durango;Ciudad de Durango;DGO;Durangas;Durango;Durango City;Victoria de Durango;Viktorija de Durango;Viktorija-de-Durango;do~urango;du lan ge;dulang-go;durango;dwrangw dwrangw;dwrngw;Виктория-де-Дуранго;Викторија де Дуранго;Дуранго;דורנגו;دورانگو سٹی;دورانگو، دورانگو;დურანგო;ドゥランゴ;杜兰戈;두랑고; +city::4012176;Culiacan;CUL;Colhuahcan Rosales;Cuilacan;Culiacan;Culiacan Rosales;Culiacana;Culiacán;Culiacán Rosales;Cōlhuahcān Rosales;Kul'jakan;Kuliakan;Kulijakan;Kuljakanas;ku leiy kan;ku li ya kan;kuriakan;Кулиакан;Кулијакан;Кульякан;กูเลียกัน;კულიაკანი;クリアカン;库利亚坎; +city::4012406;Cuauhtemoc;Ciudad Cuauhtemoc;Ciudad Cuauhtémoc;Cuahtemoc;Cuauhtemoc;Cuauhtémoc;San Antonio de los Arenales; +city::4012721;Cortazar;Cortazar;Kortasar;Villa Cortazar;Кортасар; +city::4013516;Colima;CLQ;Colima;Kolima;Колима; +city::4013704;Ciudad Obregon;Altepetl Obregon;Altepetl Obregón;CEN;Cajeme;Cd Obregon;Cd Obregón;Cd. Obregon;Cd. Obregón;Ciudad Obregon;Ciudad Obregón;Lungsod ng Obregon;Lungsod ng Obregón;Obregon;S'judad Obregon;S'judad-Obregon;Sijudad Obregon;Siudad Obregon;Siudad Obregonas;ao fu lei gong cheng;siudad-obregoni;siudadeuobeulegon;sywdad awbrgn;sywdad awbrygwn;Сиудад Обрегон;Сијудад Обрегон;Сьюдад Обрегон;Сьюдад-Обрегон;סיודד אוברגון;سیوداد اوبرگن;سیوداد اوبریگون;სიუდად-ობრეგონი;シウダ・オブレゴン;奧夫雷貢城;시우다드오브레곤; +city::4013706;Ciudad Lerdo;Ciudad Lerdo;Lerdo; +city::4013708;Ciudad Juarez;Altepetl Juarez;Altepetl Juárez;CJS;Chuaresas;Ciudad Juarez;Ciudad Juárez;El Paso del Norte;Gorad S'judad-Khuarehs;Huaresa;Juarez;Juárez;Lungsod Juarez;Lungsod Juárez;Paso del Norte;S'judad-Khuares;Sijudad Khuarez;Sioudad Chouares;Siudad Chuaresas;Siudad Khuares;Syudat Xuares;hua lei si cheng;si'udada hu'arejha;siudad-khuaresi;siudadeuhualeseu;sywdad khwars. chyywaywa;sywdad khwaryz;Σιουδάδ Χουάρες;Горад Сьюдад-Хуарэс;Сиудад Хуарес;Сијудад Хуарез;Сьюдад-Хуарес;Սյուդատ Խուարես;סיודאד חוארס;سيوداد خواريز;سیوداد خوارس٬ چیئوائوا;سیوداد خواریز;सिउदाद हुआरेझ;სიუდად-ხუარესი;シウダー・フアレス;華雷斯城;시우다드후아레스; +city::4013712;Ciudad Hidalgo;Ciudad Hidalgo;Hidalgo;S'judad-Idal'go;Taximaroa;Villa Hidalgo;Сьюдад-Идальго; +city::4013714;Ciudad Guzman;Altepetl Guzman;Cd Guzman;Cd Guzmán;Cd. Guzman;Cd. Guzmán;Ciudad Guzman;Ciudad Guzmán;S'judad-Gusman;gu si man cheng;sywdad gwzman;thywdad jwthman;Сьюдад-Гусман;ثيوداد جوثمان;سیوداد گوزمان;古斯曼城; +city::4013720;Ciudad Delicias;Delicias;Delis'jas;Las Delicias;Делисьяс; +city::4013728;Ciudad Acuna;ACN;Acuna;Acuña;Ciudad Acuna;Ciudad Acuña;Las Vacas;Lungsod ng Acuna;Lungsod ng Acuña;S'judad-Akun'ja;Siudad Akunja;Villa Acuna;Villa Acuña;a ku ni ya;akwna kwawyla;Сиудад Акуня;Сьюдад-Акунья;אקוניה;اکونا، کواویلا;阿庫尼亞; +city::4014338;Chihuahua;Altepetl Chihuahuah;Byen Chihuahua;CUU;Chihuahua;Chihuahua City;Chihuahua by;Chiuaua;Chiuauae;Chivava;Cihuahua;Ciuaua;Dakbayan sa Chihuahua;Tsiouaoua;chiuaua;chiwawa;chyywaywa. chyywaywa;qi wa wa shi;zhi hua hua shi;Čihuahua;Čiuaua;Τσιουάουα;Чивава;Чиуауæ;Чиуауа;Чіуауа;ציוואווה;چہواہوا;چیئوائوا٬ چیئوائوا;ჩიუაუა;チワワ;奇瓦瓦市;芝華華市;치와와; +city::4014875;Celaya;CYW;Celaya;Selaja;sai la ya;selaia;slaya;sylaya;sylayya;Селая;Селаја;Ցելայա;سلایا;سيلايا;سیلائیا;სელაია;塞拉亞; +city::4018390;Ciudad Apodaca;Apodaca;Apodaka;Ciudad Apodaca;Opstina Apodaca;Opština Apodaca;Sijudad Apodaka;a bo da ka;apwdaka;Аподака;Сијудад Аподака;آپوداکا;აპოდაკა;阿波達卡; +city::4018400;Apatzingan;AZG;Apantzincan;Apatzingan;Apatzingan de la Constitucion;Apatzingán;Apatzingán de la Constitución;a pa qin gan;apatzyngan;اپاتزینگان;阿帕欽甘; +city::4019233;Aguascalientes;AGU;Aguascalientes;Aguascalientes City;Aguascalientes by;Aguaskal'entes;Aguaskalentes;Aguaskalientes;Aguaskaljentesas;Agvaskalijentes;Altepetl Aguascalientes;Byen Aguascalientes;Ciudad de Aguascalientes;a gua si ka lian te si;aguasukarientesu;agwaseukallienteseu;agwyaskalynts;xa k was ka leiyn tes;Агваскалијентес;Агуаскалиентес;Агуаскальентес;Аґуаскальєнтес;אגואסקליינטס;آگوئاسکالینتس;آگوسکالینٹس;อากวัสกาเลียนเตส;აგუასკალიენტესი;アグアスカリエンテス;阿瓜斯卡连特斯;아과스칼리엔테스; +city::4019260;Agua Prieta;Agua Prieta; +city::4019827;Acambaro;Acambaro;Acámbaro;Akambaro;a kan ba luo;akambarw;Акамбаро;اکامبارو;阿坎巴罗; +city::4023117;Dolores Hidalgo Cuna de la Independencia Nacional;Ciudad de Dolores Hidalgo;Dolores Hidalgo; +city::4026082;Ciudad Lazaro Cardenas;Ciudad Lazaro Cardenas;Ciudad Lázaro Cárdenas;LZC;Lazaro Cardenas;Lázaro Cárdenas;Melchor Ocampo;Melchor Ocampo del Balsas; +city::8617692;San Pedro Garza Garcia;Garza Garcia;Garza García;San Pedro;San Pedro Garza Garcia;San Pedro Garza García; +city::8858078;Soledad de Graciano Sanchez;Soledad de Graciano Sanchez;Soledad de Graciano Sánchez; +city::8858079;Manzanillo;Cozcatlan;Mansanil'o;Manzanillo;man sa ni yue;mansaniyo;mansanyw kwlyma;manzanylw;mnsnyw;wen cheng li you;Мансанильо;מנסניו;مانزانیلو;مانسانیو، کولیما;文成李祐;曼萨尼约;만사니요; +city::8858082;Naucalpan de Juarez;Naucalpan de Juarez;Naucalpan de Juárez; +city::8858085;Hacienda Santa Fe;Hacienda Santa Fe; +city::8858086;Fuentes del Valle;Fuentes del Valle; +city::8858087;San Salvador Tizatlalli;San Salvador Tizatlalli; +city::8858088;Jardines de la Silla (Jardines);Jardines de la Silla (Jardines); +city::1732687;Batu Pahat;BP;Bandar Penggaram;Batu Pahat; +city::1732711;Pontian Kechil;Pontian;Pontian Kechil;Pontian Kecil; +city::1732721;Kampung Pasir Gudang Baru;Kampung Pasir Gudang;Kampung Pasir Gudang Baru; +city::1732738;Kota Tinggi;Kota Tinggi;Kota Tuiggi; +city::1732741;Taman Senai;Senai;Taman Senai;Сенаи; +city::1732742;Kulai;Kulai;Kuli; +city::1732752;Johor Bahru;Baru;Bharu;Dzhokhor Bakhru;Dzhokhor-Baru;Dzohor Baru;Dzokhor Bakhru;Džohor Baru;JHB;Jahore Bahru;Johor;Johor Baharu;Johor Bahru;Johore;Johore Bahru;Johore Baru;Johore Bharu;Sin-san-su;Sîn-sân-sṳ;joholeubalu;johora baru;johorubaru;jokur paru;jwhr bhrw;jwhwr bhrw;xin shan;ya hor bah ru;Џохор Бахру;Джохор Бахру;Джохор-Бару;גוהור באהרו;جوهر بهرو;جوهور بهرو;جوھر بھرو;जोहोर बारू;ஜொகூர் பாரு;ยะโฮร์บาห์รู;ဂျဟိုးဘာရူးမြို့;ジョホールバル;新山;조호르바루; +city::1732811;Kluang;Keluang;Kluang; +city::1732846;Segamat;Segamat; +city::1732869;Muar;Bandar Maharani;Muar;Muar town;ma po;Муар;麻坡; +city::1732891;Kuala Selangor;Kuala Selangor;Kuala-Selangor;Selangor;Куала-Селангор; +city::1732903;Shah Alam;Sa-a-nam;Shah Alam;Shakh Alam;Shakh-Alam;Sâ-â-nàm;sa alam;saha alama;sha a nan;sha ya nan;shaہ ʿalm mlayyshya;syaallam;Шах Алам;Шах-Алам;شاه عالم;شاہ عالم، ملائیشیا;शाह आलम;ஷா ஆலாம்;シャー・アラム;沙亞南;莎阿南;샤알람; +city::1732905;Klang;Kelang;Klang;Klangas;Klanq;keullang;killan;klang;klanj;kuran;Келанг;Кланг;كلانج;کلانگ;கிள்ளான்;クラン;클랑; +city::1732945;Cukai;Chukai;Chukei;Cukai;Mokuan;Telor Mokuan; +city::1733432;Kota Kinabalu;BKI;Jesselton;Kinabalu;Kota Kinabalu;Kota-Kinabalu;kotakinaballu;kotakinabalu;kotakinabaru;kwta kynabalw;ya bi;Кота-Кинабалу;کوتا کینابالو;コタキナバル;亞庇;코타키나바루;코타키나발루; +city::1733438;Donggongon;; +city::1733440;Putatan;Kampong Putatan;Putatan Station; +city::1733697;Semporna;SMM;Semporna;Semporna Settlement;Sempurna;Simporan;Simporna;Семпорна; +city::1733782;Victoria;Labuan;Victoria;Victoria Town;Viktorija;Виктория; +city::1733953;Lahad Datu;LDU;Lahad Datu;Lahad Datu Town;lakat tattu;na du;rahadato~u;லகாட் டத்து;ラハダトゥ;拿笃; +city::1734052;Sandakan;Elopura;SDK;Samdakan;San-ta-kin;Sandakan;Sandakan Town;Sân-tá-kîn;cantakkan;san da kan;sandakan;shan da gen;sndakan;Сандакан;سانداكان;سانداکان;سنداکان;சண்டாக்கான்;ശാന്തകൻ;ซันดากัน;サンダカン;山打根;산다칸; +city::1734098;Keningau;KGU;Kaningow;Kengingan;Keningau; +city::1734199;Tawau;TWU;Tavau;Tawao;Tawau;dou hu;tavav;tawau;tawaw;Тавау;تاواو;தாவாவ்;タワウ;斗湖;타와우; +city::1734393;Kulim;Kulim; +city::1734576;Simpang Empat;Semanggol;Simpang Ampat;Simpang Empat; +city::1734586;Taiping;Bandar Taiping;TPG;Taipeng;Taiping;Taipingo;Tajpin;tai ping;taipin;taiping;taippin;Тайпин;தைப்பிங்;タイピン;太平;타이핑; +city::1734634;Ipoh;IPH;Ipo;Ipoh;Ipoha;Ipohas;Ipokh;Yi-po-su;Yî-pó-sṳ;aybwh;aypw;aypwh;ipo;ippo;xi poh;yi bao;Іпох;Ипо;Ипох;איפוה;ايبوه;ایپو;ایپوه;ஈப்போ;อีโปห์;အီပိုးမြို့;イポー;怡保;이포; +city::1734705;Kuala Terengganu;Bandar Kuala Terengganu;Kuala Terenganu;Kuala Terengganu;Kuala Trengganu;Kuala-Trenganu;Kuala-Trengganu;Kvala Terenganu;TGG;Trengganu;Tringano;Tringganu;gua la deng jia lou;kaw la trang kanu;kuallateuleng-ganu;kuaratorenganu;kwala trnghanw;kwala tyrnganw;Куала Теренгану;Куала Теренггану;Куала-Тренгану;Куала-Тренггану;كوالا ترنغانو;کوالا تیرنگانو;กัวลาตรังกานู;クアラトレンガヌ;瓜拉登嘉楼;쿠알라트렝가누; +city::1734759;Malacca;Bandaraya Melaka;MKZ;Malaca;Malacca;Malacca Town;Malaka;Malakka;Melaka;ma liu jia;marakka;Малакка;マラッカ;马六甲; +city::1734798;Semenyih;Semenyeh;Semenyih;Semeyih; +city::1734810;Seremban;Fu-yung-su;Fû-yûng-sṳ;Gorad Serehmban;Seremban;cirampan;fu rong shi;sarembana;seuleumban;srem ban;srmban;surenban;Горад Серэмбан;Серембан;سرمبان;सरेंबान;சிரம்பான்;സിരമ്പാൻ;สเรมบัน;スレンバン;芙蓉市;스름반; +city::1734815;Port Dickson;Arang Arang Anchorage;Arang-Arang;Port Dickson; +city::1734821;Sepang;Sepang;Сепанг; +city::1735022;Temerluh;Temerloh;Temerluh; +city::1735076;Butterworth;BWH;Batervortas;Butterworth;bat te xrweirth;batawasu;batrwwrt;bei hai;beoteowoseu;kolappurai;باتروورت;கோலப்புறை;บัตเตอร์เวิร์ท;バターワース;北海;버터워스; +city::1735077;Perai;Perai;Prai; +city::1735079;Bukit Mertajam;Bukit Mertajam; +city::1735093;Tasek Glugor;Tasek Gelugor;Tasek Gelugur;Tasek Glugor; +city::1735106;George Town;Dzhordzhtaun;Dzordz Taun;Dzordztauna;Dzordztaunas;Džordžtauna;Džordžtaunas;George Town;Georgetown;Gorgtauno;Khiau-chhu-su;Khiâu-chhṳ-sṳ;PEN;Penang;Pinang;Pinang George Town;cxrc thawn;jarj tavun;jarja ta'una;jojitaun;jrj tawn pnang;qiao zhi shi;Ĝorĝtaŭno;Џорџ Таун;Джорджтаун;גורג טאון;جارج ٹاؤن، پینانگ;جرج تاون پنانگ;जर्ज टाउन;ஜார்ஜ் டவுன்;ജോർജ്ജ് ടൗൺ;จอร์จทาวน์;ပီနန်မြို့;ჯორჯტაუნი;ジョージタウン;乔治市;喬治市;조지타운; +city::1735150;Rawang;Rawang; +city::1735158;Petaling Jaya;Petaling Dzhaja;Petaling Jaya;Petaling-Dzhaja;ba da ling zai ye;bytalyngh jaya;petalin jeya;peutallingjaya;ptalyng jaya;pytalnyg jaya;Петалинг Джая;Петалинг-Джая;بيتالينغ جايا;پتالینگ جایا;پیتالنیگ جایا;பெடாலிங் ஜெயா;プタリン・ジャヤ;八打灵再也;프탈링자야; +city::1735161;Kuala Lumpur;Gizlungzpoh;Gorad Kuala-Lumpur;KUL;Kouala Loumpou;Kouala Loumpour;Kuala Lumpor;Kuala Lumpur;Kuala-Lumpur;Kuala-Lumpuro;Kualae-Lumpur;Kualalumpura;Kualalumpūra;Kvala Lumpuras;Kvala Lumpūras;Kúala Lúmpúr;ji long po;kaulalampur;kawlalampexr;kolalampur;ku'a lalampura;ku'ala lupura;ku'alalampura;ku'alalumpura;kuallalumpuleu;kuararunpuru;kuyalalamapura;kvalalampura;kwala lambwr;kwala lmpwr;kwalalampwr;kwalalmbwr;kwalalmpwr;kwalalwmpwr;kۇyalalۇmpۇr;Κουάλα Λουμπούρ;Горад Куала-Лумпур;Куалæ-Лумпур;Куала Лумпур;Куала-Лумпур;Կուալա Լումպուր;קואלה לומפור;كوالا لامبور;كوالالمبور;كۇئالالۇمپۇر;کوالا لمپور;کوالالامپور;کوالالمپور;کوالالومپور;कुआ लालम्पुर;कुआलालम्पुर;क्वालालंपूर;কুয়ালালামপুর;ਕੁਆਲਾ ਲੁੰਪੁਰ;କୁଆଲାଲୁମ୍ପୁର;கோலாலம்பூர்;ಕೌಲಾಲಂಪುರ್;കോലാലമ്പൂർ;กัวลาลัมเปอร์;ཁལ་ལུང་ཕུ།;ကွာလာလမ်ပူမြို့;კუალა-ლუმპური;ኩዋላ ሉምፑር;クアラルンプール;吉隆坡;쿠알라룸푸르; +city::1735227;Kuantan;KUA;Koan-tan-su;Kuala Kuantan;Kuala Kuatan;Kuantan;Kôan-tan-sṳ;guan dan;kuantan;kuvantan;kvantana;kwantan;kwn tan;Куантан;كوانتان;کوانتان;क्वांतान;குவாந்தான்;กวนตัน;クアンタン;关丹;쿠안탄; +city::1735459;Teluk Intan;Telok Anson;Teluk Anson;Teluk Intan;an shun;an shun shi;teluk intan;terokkuintan;teullug-intan;தெலுக் இந்தான்;テロックインタン;安顺;安顺市;틀룩인탄; +city::1735498;Sungai Petani;Sungai Patani;Sungai Petani;Sungei Patani; +city::1735634;Kuching;KCH;Kuching;Kucingas;Kučingas;gu jin;ku ching;kuchin;kuching;kucinga;kwchyng;kwtshyngh;qwzyng;Кучинг;קוצינג;كوتشينغ;کوچینگ;कुचिंग;กูชิง;クチン;古晉;쿠칭; +city::1735902;Sibu;Fort Brooke;SBW;Siboe;Sibu;shi wu;shibu;sibu;sybw;Сибу;سيبو;سیبو;シブ;詩巫;시부; +city::1736278;Kangar;Kangar;Perlis;Poelit;Polit;jia yang;kang-aleu;kangr;kanjar;kankar;kngr;Кангар;كانجار;کانگر;کنگر;கங்கார்;加央;캉아르; +city::1736302;Jitra;Jitra; +city::1736309;Alor Setar;AOR;Alor Setar;Alor Setaras;Alor Star;Alor-Setar;Alor-Star;Alostar;Alur Setar;Saiburu;Thai;alloleuseutaleu;alor star;alwr star;alwr sytar;arosuta;xlxrstar;ya luo shi da;Алор Стар;Алор-Сетар;Алор-Стар;ألور ستار;الور ستار;الور سیتار;அலோர் ஸ்டார்;อลอร์สตาร์;アロースター;亚罗士打;亞羅士打;알로르스타르; +city::1736376;Kota Bharu;Bharu;KBR;Khota Baharu;Khota Bahru;Ko-ta-hap-lu-su;Kota Baharu;Kota Bahru;Kota Baru;Kota Bharu;Kota-Baru;Kô-tá-ha̍p-lû-sṳ;ge da ba lu;kotabalu;kotabaru;kwta bharw;Кота Бару;Кота-Бару;كوتا بهارو;โกตาบารู;コタバル;哥打巴鲁;코타바루; +city::1737486;Bintulu;BTU;Bintulu;bintullu;byntwlw;min dou lu;Бинтулу;بينتولو;بینتولو;民都魯;民都鲁;빈툴루; +city::1738050;Miri;Bandar Miri;MYY;Miri;mei li;mili;miri;myry;Мири;ميري;میری;മിറി;მირი;ミリ;美里;미리; +city::1738294;Ulu Tiram;Ulu Tiram;Ulu Tiram Village; +city::1764160;Kampung Sungai Ara;Kampong Sungai Ara;Kampung Sungai Ara;Sungei Ara; +city::1769612;Kampong Dungun;Kampong Dungan;Kampong Dungun; +city::1770351;Kampung Bukit Baharu;Kampong Bukit Baru;Kampung Bukit Baharu; +city::1771023;Kampung Baru Subang;; +city::1771304;Kampong Baharu Balakong;Balakong;Kampong Baharu Balakong; +city::7302815;Bandar Labuan;; +city::10792382;Putra Heights;; +city::1024552;Xai-Xai;Chai Chai;Joa Belo;Joao Belo;João Belo;Sai Sajus;Sai-Sai;Shai-Shai;VJB;Vila de Joao Belo;Vila de João Belo;Vila-Joao-Belo;Vila-João-Belo;Xai Xai;Xai-Xai;sai sai;shai-shai;shaishai;shay-shay;syaisyai;Šai Šajus;Σάι-Σάι;Шаи-Шаи;Шаї-Шаї;شای-شای;შაი-შაი;シャイシャイ;賽賽;샤이샤이; +city::1024696;Dondo;Dondo;Vila do Dondo;Дондо; +city::1026014;Tete;TET;Tete;Tetė;Vila-de-Santiago-Maior;tai te;tete;teteu;Τέτε;Тете;تیتے، موزمبیق;ტეტე;テテ;太特;테트; +city::1028079;Ressano Garcia;Resano Garcia;Ressano Garcia; +city::1028434;Quelimane;Gorad Kelimaneh;Kelimane;Kelimanė;Quelimane;UEL;ke li ma nei;kellimaneu;kerimane;kylymany;Κελιμάνε;Горад Келіманэ;Келимане;Келімане;کیلیمانی;კელიმანე;ケリマネ;克利馬內;켈리마느; +city::1028918;Pemba;POL;Pemba;Pempa;Porto Amelia;pemba;penba;peng ba;pymba mwzmbyq;Πέμπα;Пемба;پیمبا، موزمبیق;პემბა;ペンバ;彭巴;펨바; +city::1033356;Nampula;APL;Nampoula;Nampula;nampulla;nampwla;nan pu la;nanpura;Ναμπούλα;Нампула;نامپولا;ნამპულა;ナンプラ;楠普拉;남풀라; +city::1035025;Nacala;Cidade de Nacala;Fernao Veloso;Fernão Veloso;Gorod-de-Nakala;MNC;Maaia;Maiaia;Nacala;Nacala-Porto;Город-де-Накала; +city::1037125;Montepuez;MTU;Montepuez;Montepveze;Vila de Montepuez;Монтепвезе; +city::1037390;Ilha de Mocambique;Ilha de Mocambique;Ilha de Moçambique;Mocambique;Mozambique;Moçambique; +city::1039536;Maxixe;Maxixe; +city::1039854;Matola;Cidade da Matola;Matola;Vila Salazar;Матола; +city::1040652;Maputo;Can Pfumo;Gorad Maputu;Kapfumo;Lourenco Marques;Lourenço Marques;MPM;Mabuto;Mabutu;Mapouto;Maputo;Maputu;Mapútó;ma pu to;ma pu tuo;mabwtw;maputo;maputto;maputu;mapwtw;mpwtw;Μαπούτο;Горад Мапуту;Мапуто;Мапуту;Մապուտու;מפוטו;مابوتو;ماپوتو;ماپوتۆ;ماپوٹو;मापुतो;ਮਾਪੂਤੋ;மபூட்டோ;มาปูโต;མ་པུ་ཊོ།;მაპუტუ;ማፑቶ;マプト;马普托;마푸토;마푸투; +city::1043893;Lichinga;Lichinga;Lishinga;Lisinga;Lišinga;VXC;Vila Cabral;li xin jia;lishinga;lising-ga;lychynga;rishinga;Лишинга;Лішинга;لیچینگا;ლიშინგა;リシンガ;利欣加;리싱가; +city::1045114;Inhambane;INH;In'jambane;Inhambane;Injambane;Injambanė;aynhambanh;iniambane;inyambaneu;inyanbane shi;yi ni yang ba nei;Іньямбане;Иньямбане;انہامبان;اینهامبانه;ინიამბანე;イニャンバネ市;伊尼揚巴內;이냠바느; +city::1047660;Cuamba;Cuamba;Cuanda;FXO;Guamba;Kwamba;Mucuamba;Mukwamba;Nova Freixo;ku an ba;kua mu ba;库安巴;誇姆巴; +city::1048364;Chokwe;Chokue;Chokué;Chokwe;Chokwé;Choque;Chókwè;TGS;Trigo Morais;Trigo de Morais;Vila Trigo de Morais; +city::1049261;Chimoio;Chimoio;Chimoyo;Shimojo;Simojas;VPY;Vila Pery;shimoio;shymwyw;simoiu;xi mo you;Šimojas;Шимойо;شیمویو;შიმოიო;希莫尤;시모이우; +city::1049861;Chibuto;Chibuto;Vila do Chibuto; +city::1052373;Beira;BEW;Beira;Bejra;bei la;beila;beira;byra mwzambyk;byyra mwzmbyq;Μπέιρα;Беира;Бейра;بیئرا، موزمبیق;بیرا، موزامبیک;ბეირა;ベイラ;贝拉;베이라; +city::1052944;Antonio Enes;Angoche;Antonio Enes;Antonio Engs;Antonio Ennes;António Enes;Vila de Antonio Enes;Vila de António Enes; +city::3352136;Windhoek;Gorad Vindkhuk;Gouintchouk;Vindguk;Vindhuk;Vindhuka;Vindhukas;Vindhuko;Vindkhuk;Vinduque;Vindxuk;Vintchouk;WDH;Windhoek;Windhuk;Windoek;Windoèk;Wynhoeke;binteuhukeu;u~intofukku;vatahuka;vindahoka;vintok;wen de he ke;wen he ke;win dhuk;wwynthwq;wyndhwk;wyndhwq;wyndھwk;wynٹہwk;Βίντχουκ;Γουίντχουκ;Виндхук;Віндгук;Горад Віндхук;Վինդհուկ;ווינטהוק;וינדהוק;ونڈہوک;ويندهوك;ویندهوک;ویندھوک;وینٹہوک;विंडहोक;ਵੰਟਹੁਕ;விந்தோக்;วินด์ฮุก;ཝིན་ཌི་ཧོཡིཀ།;ვინდჰუკი;ዊንድሁክ;ウィントフック;温得和克;溫得和克;溫荷克;빈트후크; +city::3353383;Rundu;NDU;Rundu;Runtu;long du;lundu;rwndw;Рунду;روندو;龍杜;룬두; +city::3359638;Walvis Bay;Gorad Uolvis-Behj;Uolfish Bej;Uolfish-Bej;Valvis Bej;Volfis-Bej;Volvis Bejus;Volvis Bėjus;WVB;Walfisch-Bucht-Niederland;Walfischbucht;Walvis Bay;Walvisbaai;jing wan gang;u~orubisubei;wlfs by;wolbiseubei;Валвис Беј;Волфіш-Бей;Горад Уолвіс-Бэй;Уолфиш Бей;Уолфиш-Бей;ואלוויס ביי;ولفس بي;ウォルビスベイ;鲸湾港;월비스베이; +city::2139521;Noumea;NOU;Nomea;Noumea;Nouméa;Numea;Numeja;Numeo;Numėja;Port de France;nu me xa;nu mei a;nume'a;numea;numiya;nwmya;Νουμεά;Нумеа;נומאה;نومئا;نوميا;नूमेआ;நூமியா;นูเมอา;ნუმეა;ヌメア;努美阿;누메아; +city::2437798;Zinder;Gorad Zindehr;Sinder;ZND;Zinder;Zinderis;jandeleu;jin de er;sinde xr;zanderu;zndr;zyndr;Горад Зіндэр;Зиндер;Зіндер;زندر;زيندر;ซินเดอร์;ザンデール;津德尔;잔데르; +city::2439376;Tahoua;THZ;Tahoua;Tahua;Takhua;ta wa;taua;Тахуа;تاہؤا;タウア;塔瓦;타우아; +city::2440485;Niamey;Gorad Nijamej;NIM;Niame;Niamei;Niamej;Niameja;Niamejus;Niameo;Niamey;Niamè;Niamėjus;Nijamej;Níamey;ni ya mei;ni'ami;niame;niamei;nixame;niyame;niyami;nyamy;nyʼmyy;Νιαμέι;Νιαμέυ;Горад Ніямей;Ниамей;Нијамеј;Ніамей;Նիամեյ;ניאמיי;نيامي;نیامی;نیامەی;ܢܝܐܡܝ;नियामे;নিয়ামে;ਨਿਆਮੀ;நியாமி;นีอาเม;ནི་ཡ་མེ།;ნიამეი;ኒያሜ;ニアメ;尼亞美;니아메; +city::2441291;Maradi;MFQ;Maradi;Maradis;maladi;maradi;marady nayjr;Маради;مارادی، نائجر;マラディ;마라디; +city::2447938;Alaghsas;Alaghsas;Alarsas; +city::2448085;Agadez;AJY;Agades;Agadesas;Agadez;Agadèz;Ankantez;a jia de zi;agadeja;agadejeu;agadesi;agadesu;agadyz;aghadys;Αγκαντέζ;Агадез;Агадес;אגדז;أغاديس;اگادیز;अगादेज;აგადესი;アガデス;阿加德茲;아가데즈; +city::2317765;Zaria;ZAR;Zaria;Zarija;Zariya;Zarja;jalia;zari'a;zaria;zarya;zha li ya;Зариа;Заря;زاريا;ਜ਼ਾਰੀਆ;ザリア;扎里亚;자리아; +city::2318044;Yola;Jola;YOL;Yola;yolla;yora;yue la;ywla nayjyrya;ywla nyjryh;Йола;یولا، نائجیریا;یولا، نیجریه;ヨラ;約拉;욜라; +city::2318921;Wukari;Ukari;Wukari; +city::2319133;Warri;Bappi;Bаppи;QRW;Varri;Warri;wa li;wali;wari;wary;Варри;واري;واری;ワリ;瓦里;와리; +city::2319480;Uyo;QUO;Uyo; +city::2319668;Uromi;; +city::2320576;Umuahia;Umuahia;Umuahia-Ibeku;Umuakhija;umuahia;wu mu a xi ya;Умуахия;Умуахія;اومواہیا;乌穆阿希亚;우무아히아; +city::2320829;Ughelli;Ughelli; +city::2320831;Ugep;Ugep; +city::2320920;Uga;Uga; +city::2322794;Suleja;Abudzha;Abuja;Sulaija;Suleija;Suleja;Абуджа; +city::2322911;Sokoto;SKO;Socoto;Sokotas;Sokoto;Sokoto stad;Sókótó;sokoto;suo ke tuo;Сокото;სოკოტო;ソコト;索科托;소코토; +city::2323390;Saki;Saki;Shaki;Саки; +city::2323411;Shagamu;Sagamu;Shagamu; +city::2323675;Sapele;Sapele; +city::2324767;Potiskum;Potiskum;Putuskum; +city::2324774;Port Harcourt;Gorad Port-Kharkort;PHC;Port Harcourt;Port Harkortas;Port Kharkurt;Port-Kharkort;Ugwu Ocha;Ugwu Ọcha;bwrt harkwrt;ha ke te gang;poteuhakeoteu;potohakoto;pwrt hrqwrt;Горад Порт-Харкорт;Порт Харкурт;Порт-Харкорт;פורט הרקורט;بورت هاركورت;ポートハーコート;哈科特港;포트하커트; +city::2324857;Pindiga;Pindiga; +city::2325161;Ozubulu;Ozubulu; +city::2325200;Oyo;Oio;Oió;Ojo;Oyo;Ойо; +city::2325249;Oyan;; +city::2325314;Owo;Ovo;Owo;Ово; +city::2325330;Owerri;Overi;Overri;Owerre;Owerri;Owẹrrẹ;QOW;ao wei li;awwyry;awyry;oweli;Овери;Оверри;أويري;اوویری;奧韋里;오웨리; +city::2325590;Osogbo;Eshogbo;Oshogbo;Osogbo; +city::2325733;Orita Eruwa;; +city::2326016;Onitsha;Onicha;Onitsha;Onịchạ;QNI;ao ni cha;onicha;Онитша;Онича;Оніча;オニチャ;奧尼查;오니차; +city::2326171;Ondo;Ondo;Ондо; +city::2326302;Olupona;Olupona;Olupono; +city::2326899;Okrika;Okrika; +city::2327143;Okigwe;Okigwe;Okigwi; +city::2327220;Okene;Okene;Okeni; +city::2327223;Oke Mesi;Oke Mesi;Oke Messi; +city::2327494;Ohafia-Ifigh;; +city::2327827;Ogaminana;Ogaminan;Ogaminana; +city::2327879;Offa;Offa;Оффа; +city::2328090;Ode;Awde;Oda;Ode;Ода; +city::2328185;Obonoma;Abonnema;Obonema;Obonoma; +city::2328617;Numan;Numan; +city::2328684;Nsukka;Nsukka;QNK;Нсукка; +city::2328765;Nnewi;Newi;Nnewi;Nnjuvi;Ннюви; +city::2328790;Nkwerre;Nkwerre; +city::2328811;Nkpor;Mkpor;Nkpor; +city::2328952;Nguru;N'gourou;Nguru;N’gourou; +city::2329821;Mubi;Mubi;Муби; +city::2330028;Modakeke;; +city::2330100;Minna;MXJ;Minna;ming na;minna;myna nayjyrya;Минна;Мінна;مینا، نائجیریا;明納;민나; +city::2331005;Malumfashi;Malumfashi; +city::2331140;Makurdi;MDI;Makurdi;Makurdu;ma ku er di;makuleudi;makwrdy;Макурди;Макурді;ماکوردی;马库尔迪;마쿠르디; +city::2331447;Maiduguri;MIU;Maidiguri;Maidugari;Maiduguri;Maiduguris;Majduguri;mai du gu li;maido~uguri;maiduguli;maydwghwry;mydwgwry;Маидугури;Майдугури;Майдугурі;מידוגורי;مايدوغوري;マイドゥグリ;邁杜古里;마이두구리; +city::2331939;Lokoja;Lairdstown;Lokoja;Zokoja; +city::2332079;Lere;Lera;Lere;Leri;Лера; +city::2332357;Lalupon;; +city::2332459;Lagos;Eko;Gorad Lagas;LOS;Lacupolis;Lagos;Lagos shaary;Lagosa;Lagosas;Lagoso;Laguosos;Laqos;Logos;la ge si;lageas;laghws;lagos;lagosa;lagoseu;lagosi;laguseu;lagws;lajws;lakos;legosa;lek xs;ragosu;Èkó;Λάγος;Горад Лагас;Лагос;Лагос шаары;Лаґос;Լագոս;לאגאס;לאגוס;لاجوس;لاغوس;لاگوس;لاگۆس;लागोस;লেগোস;ਲਾਗੋਸ;લાગોસ;லாகோஸ்;లాగోస్;ಲಾಗೊಸ್;ലാഗോസ്;เลกอส;လေးဂို့စ်မြို့;ლაგოსი;ሌጎስ;ラゴス;拉哥斯;라고스;라구스; +city::2332504;Lafiagi;; +city::2332515;Lafia;Lafia;Lafia Beriberi; +city::2333604;Kuje;Kuje; +city::2334008;Kontagora;Kontagora; +city::2334327;Kisi;Kishi;Kisi; +city::2334652;Keffi;; +city::2334756;Kaura Namoda;Kaura Namoda; +city::2334802;Katsina;DKA;Kacina;Katsina;Kàtsínà;ka qi na;kachina;Катсина;卡齐纳;카치나; +city::2335204;Kano;Byen Kano;Cano;Gorad Kano;KAN;Kanas;Kano;Kánò;ka nuo;kano;kanw;kanw nyjryh;qnw;Горад Кано;Кано;קנו;كانو;کانو;کانو، نیجریه;कानो;ਕਾਨੋ;கனோ;カノ;卡諾;카노; +city::2335614;Kagoro;Kagoro; +city::2335713;Kafanchan;Kafachan;Kafanchan;Kafanchan Junction;Kajanchan; +city::2335727;Kaduna;Gorad Kaduna;KAD;Kadun;Kaduna;Kaduno;Kàdúná;ka du na;kado~una;kaduna;kadwna;qdwnh;Горад Кадуна;Кадуна;קדונה;كادونا;کادونا;ਕਾਦੂਨਾ;カドゥナ;卡杜納;카두나; +city::2335953;Jos;Dzhos;Dzos;Dżos;JOS;Jos;joseu;josu;jws;jws nayjyrya;qiao si;Џос;Джос;Йос;جوس;جوس، نائجیریا;ジョス;乔斯;조스; +city::2336056;Jimeta;Jimeta; +city::2336237;Jega;; +city::2336589;Jalingo;Jalingo; +city::2336905;Iwo;Ivo;Iwo;Иво; +city::2337148;Isieke;Isieke; +city::2337207;Ise-Ekiti;Ise;Ise-Ekiti; +city::2337352;Ipoti;; +city::2337490;Inisa;; +city::2337639;Ilorin;Gorad Iloryn;ILR;Illorin;Ilorin;Ilorinas;alwrn;illolin;irorin;yi luo lin;Горад Ілорын;Илорин;אילורין;الورن;イロリン;伊洛林;일로린; +city::2337659;Ilobu;Ilobu; +city::2337704;Ilesa;Ilesa;Ilesha; +city::2337765;Ila Orangun;Ila;Ila Orangun; +city::2338106;Ikot Ekpene;Ikot Ekpene; +city::2338242;Ikom;; +city::2338269;Ikirun;Ikirun; +city::2338273;Ikire;Ikire; +city::2338287;Ikere-Ekiti;Ikare;Ikere;Ikere-Ekiti;Ikerre; +city::2338313;Ikeja;Ikeja; +city::2338385;Ijero-Ekiti;Ijero;Ijero-Ekiti; +city::2338400;Ijebu-Ode;Ijebu Ode;Ijebu-Ode; +city::2338401;Ijebu-Jesa;Ijebu-Ijesa;Ijebu-Ijesha;Ijebu-Jesa;Ijebu-Jesha; +city::2338403;Ijebu-Igbo;Ijebu-Igbo; +city::2338497;Ihiala;Ihiala; +city::2338630;Igede-Ekiti;Igbede;Igede;Igede-Ekiti; +city::2338640;Igbo-Ukwu;Igbo;Igbo-Ukwu; +city::2338669;Igbo-Ora;Igbo-Awra;Igbo-Ora; +city::2338711;Igboho;Igboho; +city::2338810;Igbara-Odo;Igbara-Odo;Igbarra-Odo; +city::2338876;Ifo;Ifaw;Ifo; +city::2339150;Idanre;; +city::2339156;Idah;Idah; +city::2339354;Ibadan;Gorad Ibadan;IBA;Ibadan;Ibadan shaary;Ibadana;Ibadanas;Ibadano;Ibadán;abadan;aybadan;ibadan;ibadana;yi ba dan;Ìbàdàn;İbadan;Ібадан;Горад Ібадан;Ибадан;Ибадан шаары;איבדאן;إبادان;إيبادان;ابادان;ਇਬਾਦਾਨ;イバダン;伊巴丹;이바단; +city::2339631;Hadejia;Hadejia; +city::2339937;Gusau;Gusau;QUS;Гусау; +city::2340451;Gombe;GMO;Gombe; +city::2341355;Gbongan;Gbongan; +city::2341656;Gashua;Gashua; +city::2342192;Gamboru;Gambaru;Gambaru Ngala;Gamboru;Gamboru Ngala; +city::2342490;Funtua;Funtua;Puntua; +city::2342628;Fiditi;; +city::2342883;Ezza-Ohu;; +city::2343093;Esuk Oron;; +city::2343252;Epe;Ehpe;Epe;Epeh;Эпе; +city::2343270;Enugu-Ukwu;Enugu;Enugu-Ukwu;Enugwu-Ukwu; +city::2343279;Enugu;ENU;Ehnugu;Enuga;Enugu;Enugwu;Enúgwu;ai nu gu;anwghw;anwgw;enugu;Енугу;Энугу;إنوغو;انوگو;Ẹnúgu;エヌグ;埃努古;에누구; +city::2343299;Emure-Ekiti;Emure;Emure-Ekiti; +city::2343641;Ekpoma;Ekpoma; +city::2343784;Ejigbo;Ejigbo; +city::2343822;Eha Amufu;; +city::2343983;Efon-Alaaye;Effon-Alaiye;Efon;Efon Alaaye;Efon Alaaye-Ekiti;Efon Alaye;Efon-Alaaye;Efon-Alaiye; +city::2343985;Effium;Effium; +city::2344082;Ebute Ikorodu;Awja-Ikoradu;Ebute Ikorodu;Ebute-Egga; +city::2345096;Daura;; +city::2346229;Calabar;CBQ;Calabar;Kalabar;Kalabaras;Kalabaro;ka la ba er;kalabar;kallabaleu;Калабар;کالابار;卡拉巴尔;칼라바르; +city::2346615;Buguma;Bugama;Buguma; +city::2346995;Biu;Biu; +city::2347059;Birnin Kebbi;Birnin Kebbi; +city::2347209;Bida;Bida;Бида; +city::2347283;Benin City;BNI;Benim;Benin;Benin City;Benin Siti;Benin by;Benin-Siti;Benin-Stadt;Benin-stad;Beninas;Beninborg;Beninurbo;Benínborg;Bénin;Ciudad de Benin;Ciudad de Benín;Ilu Benin;Kota Benin;Thanh pho Benin;Thành phố Benin;bei ning cheng;beni n si ti;benina sahira;benina siti;beninshiti;beninsiti;bnyn;Ìlú Benin;Бенин;Бенин-Сити;Бенін-Сіті;بنين;بنین;بینن شہر;बेनिन सिटी;ਬੇਨਿਨ ਸ਼ਹਿਰ;เบนินซิตี;ベニンシティ;贝宁城;베닌시티; +city::2347303;Bende;Bende; +city::2347470;Bauchi;BCU;Bauchi;Baucis;Bauczi;Baučis;Yakoba;Yakubu;bao qi;Баучи;包奇; +city::2347954;Bama;Bama; +city::2348595;Azare;Azare; +city::2348773;Awka;Akwa;Avka;Awka;Oka;ao ka;auka;awka;Óká;Авка;اوکا;奧卡;아우카; +city::2348892;Auchi;Auchi; +city::2349276;Asaba;ABB;Asaba;Асаба; +city::2349529;Aramoko-Ekiti;Ara;Aramoko;Aramoko-Ekiti;Araomoko Ekiti; +city::2349558;Apomu;; +city::2350249;Amaigbo;Amaigbo; +city::2350841;Akure;AKR;Akuce;Akure;Akurė;a ku lei;akule;Àkúrẹ́;Акуре;اکورے;阿庫雷;아쿠레; +city::2350886;Aku;Aku; +city::2351740;Agulu;Agulu; +city::2351979;Agbor;Afbor;Agbor;Agbor-BoIIboji;Агбор; +city::2352250;Afikpo;Afikpo;Ehugbo; +city::2352379;Ado-Ekiti;Ado;Ado-Ekiti; +city::2352778;Abuja;ABV;Abodza;Abodža;Abouja;Abuca;Abudz;Abudza;Abudzha;Abudża;Abudž;Abudža;Abugia;Abugo;Abuja;Abuya;Abuzha;Abuĝo;Abùjá;Ampouza;Gorad Abudzha;a bu gu;a bu jia;abuja;abwja;apuja;xabu ca;yەbwwja;ʼbwgh;Αμπούζα;Абуджа;Абужа;Абуџа;Абуҷа;Горад Абуджа;Աբուջա;אבוגה;אבודזשא;آبوجا;أبوجا;ئەبووجا;ابوجا;अबुजा;আবুজা;ਅਬੁਜਾ;ଅବୁଜା;அபுஜா;അബുജ;อาบูจา;ཨ་པུ་ཅ།;အဘူဂျာမြို့;აბუჯა;አቡጃ;アブジャ;阿布賈;阿布贾;아부자; +city::2352947;Abeokuta;Abeokuta;Abẹ́òkúta;QAT;a bei ao ku ta;abe-okuta;abeokuta;abwkata;abywkwta;Абеокута;אבאוקוטה;أبيوكوتا;ابوکاتا;ابیوکوتا;アベオクタ;阿贝奥库塔;아베오쿠타; +city::2353099;Abakaliki;Abakaliki;a ba ka li ji;阿巴卡利基; +city::2353151;Aba;Aba;Aba i Nigeria;Abá;QAX;a ba;aba;aba abya;Аба;Աբա;אבה;آبا;آبا، ابیا;აბა;アバ;阿巴;아바; +city::3616035;Tipitapa;Tipitapa;Типитапа; +city::3617459;Nueva Guinea;Colonia Nueva Guinea;NVG;Nueva Guinea; +city::3617708;Matagalpa;Matagal'pa;Matagalpa;Матагальпа; +city::3617723;Masaya;Masaja;Masaya;ma sa ya;masaia;masaya;Масая;มาซายา;მასაია;マサヤ;馬薩亞; +city::3617763;Managua;Gorad Managua;MGA;Managoua;Managua;Managuae;Managva;Managvo;Managûa;Manahuac;Manankoua;Manaqua;Manawa;Manágua;Mānāhuac;ma na gua;managhwa;managu'a;managua;managva;managwa;manakaw;manakuva;Μανάγκουα;Μανάγουα;Горад Манагуа;Манагва;Манагуæ;Манагуа;Մանագուա;מנגואה;ماناغوا;ماناگوآ;ماناگوا;ماناگۇئا;मानाग्वा;ਮਾਨਾਗੁਆ;மனாகுவா;มานากัว;མ་ན་གུ་འ།;მანაგუა;ማናጓ;マナグア;馬拿瓜;馬納瓜;마나과; +city::3618030;Leon;Gorad Leon;Leon;Leonas;León;lai ang;le-on;leoni;lywn nkaragwa;reon;Λεόν;Горад Леон;Леон;לאון;لیون، نکاراگوا;ლეონი;レオン;莱昂;레온; +city::3618908;Juigalpa;Juigalpa; +city::3618929;Jinotega;Jinotega;Khinotega;Хинотега; +city::3619136;Granada;Gorad Granada;Granada;Granadae;Granado;Grenada;ge la na da;geulanada;granada;grynada nkaragwa;guranada;Γρανάδα;Горад Гранада;Гранадæ;Гранада;Гренада;گرینادا، نکاراگوا;გრანადა;グラナダ;格拉纳达;그라나다; +city::3619194;Esteli;Ehsteli;Esteli;Estelí;ai si te li;aystaly;eseutelli;esuteri;Εστελί;Эстели;ایستالی;ესტელი;エステリ;埃斯特利;에스텔리; +city::3619267;El Viejo;Ehl'-V'ekho;El Viejo;Viejo;Эль-Вьехо; +city::3620381;Chinandega;Chinandega;Chinandege;Чинандеге; +city::3828262;Ciudad Sandino;Ciudad Sandino; +city::2743477;Zwolle;Gemeen Zwolle;Gorad Zvolle;Svolla;Swol;Zvole;Zvolle;Zvolė;Zwolle;ci wo lei;jeubolleo;jhvola;s wol lex;zfwlh;zi wo lei;zuvu~ore;zvole;zwwlh;Горад Зволле;Зволе;Зволле;Զվոլե;زفوله;زولے;زووله;झ्वोला;ซโวลเลอ;ზვოლე;ズヴォレ;兹沃勒;즈볼러; +city::2743856;Zoetermeer;Zeutermaer;Zoetermeer;zwtrmyyr;זוטרמייר; +city::2743977;Zeist;Seist;Zajst;Zeist;Zejst;Zeyst;jeiseuteu;zai si te;zaisuto;zayst;Зајст;Зейст;Զեյստ;زايست;زایست;ザイスト;宰斯特;제이스트; +city::2744114;Zaanstad;Zaanstad; +city::2744118;Zaandam;Zaandam;Zandam;Zandamas;jandam;zan dan;zan dm;zandamu;Заандам;Зандам;Զանդամ;زان دم;ザーンダム;赞丹;잔담; +city::2745467;Vlaardingen;Vlaardinge;Vlaardingen; +city::2745641;Venlo;Fenlo;Venlas;Venlo;Venlonum;Venloo;fen luo;fenro;fnlw;wynlw;Φένλο;Венло;فنلو;وینلو;フェンロー;芬洛; +city::2745673;Velsen-Zuid;Velsen;Velzen; +city::2745774;Veenendaal;QVX;Veenendaal;Venendaal; +city::2745912;Utrecht;Gemeente Utrecht;Gorad Utrehkht;Magaalada Utrecht;Outrechte;Owtrext;Traiectum ad Rhenum;UTC;Utert;Utrech;Utrecht;Utrechtas;Utreht;Utrehta;Utrei;Utrekht;Utrekht khot;Utreque;Utrext;awtrkht;utrekhta;witeuleheuteu;wu de lei zhi;yu the rkt;yutorehito;ywtrkht;ywtrykht;Ουτρέχτη;Горад Утрэхт;Утрехт;Утрехт хот;Ուտրեխտ;אוטרכט;أوترخت;اوترخت;یوترخت;یوتریخت;ܐܘܛܪܝܟܛ;उट्रेख्त;ยูเทรกต์;ယူးထရက်မြို့;უტრეხტი;ユトレヒト;乌得勒支;烏德勒支;위트레흐트; +city::2746301;Tilburg;Gorad Cilburg;Tilburch;Tilburg;Tilburga;Tilburgas;Tilburgo;Tilia;di er bao;thi lburk;tilbwileuheu;tiruburufu;tylbwrkh;Горад Цілбург;Тилбург;Тілбург;تیلبورخ;ٹلبرگ;ทิลบืร์ก;ტილბურგი;ティルブルフ;蒂尔堡;틸뷔르흐; +city::2746932;Spijkenisse;Spijkenisse; +city::2747351;'s-Hertogenbosch;'s Bosch;'s-Hertogenbosch;Bois-le-Duc;Bolduque;Boscoducale;De Bosk;Den Bosch;Hertogenbosch;Herzogenbusch;Khertogenbos;Oeteldonk;Silva Ducis;Хертогенбос;’s-Hertogenbosch; +city::2747373;The Hague;'s-Gravenhage;A Haia;An Haig;An Háig;Chage;D'n Haog;De Haach;Den Haag;Gaaga;HAG;Haag;Hag;Haga;Hago;Hague;Hága;Hāga;Khag;Khaga;L'Aia;La Haia;La Haya;La Haye;Lahey;The Hague;haaga;hagu;hai ya;heigeu;lahay;lahh;Χάγη;Гаага;Хаг;Хага;האג;لاهاي;لاهه;ჰააგა;ハーグ;海牙;헤이그; +city::2747596;Schiedam;Schidamas;Schiedam;Skhidam;Skiedam;Sxidam;askhydam;si xi dan;ski dam;Схидам;Շխիդամ;اسخیدام;สกีดาม;斯希丹; +city::2747891;Rotterdam;Gorad Ratehrdam;RTM;Roterdam;Roterdama;Roterdamas;Roterdami;Roterdamo;Roterdan;Roterdao;Roterdão;Roterntam;Roterodamum;Rotterdam;Rottérdam;Róterdam;Róterdan;loteleudam;lu te dan;rattartem;rotaradema;rotterudamu;rtrdam;rwtrdam;rwtrdm;rxt the xr dam;Ρότερνταμ;Горад Ратэрдам;Ротердам;Роттердам;ראטערדאם;רוטרדם;راٹرڈیم;رتردام;روتردام;ܪܘܛܪܕܐܡ;रॉटरडॅम;ராட்டர்டேம்;รอตเทอร์ดาม;ရော်တာဒမ်မြို့;როტერდამი;ロッテルダム;鹿特丹;로테르담; +city::2747930;Roosendaal;Roosendaal;Rosendael;Rozendael;Rozendal;Rozendal';ZYO;losendal;luo sen da er;ro sen dal;rozendaru;rwsyndal;Розендал;Розендаль;روزن‌دال;روسيندال;โรเซนดาล;ローゼンダール;罗森达尔;로센달; +city::2748413;Purmerend;Pjurmerend;Purmerein;Purmerend;bwrmyrand;pi er mo lun de;purumerento;pwileumeleonteu;pwrmrnd;Пурмеренд;Пюрмеренд;Պուրմերենդ;بورميراند;پورمرند;ปืร์เมอแร็นด์;プルメレント;皮爾默倫德;퓌르메런트; +city::2749234;Oss;Os;Oss;Oss i Nederland;ao si;osu;Осс;オス;奥斯; +city::2749450;Oosterhout;Oosterhout;Osterkhout;ao si te hao te;Остерхоут;奧斯特豪特; +city::2750053;Nijmegen;Gemeen Nimwaege;Gorad Najmegen;Naimechen;Najmegen;Neimegena;Neimegenas;Nejmegen;Neymeyxen;Nijmegen;Nijmeyen;Nimega;Nimegen;Nimegue;Nimwege;Nimwegen;Nimègue;Nymegen;Nymwegen;Nîmegue;Nijmegen;QNQ;Ulpia Noviomagus Batavorum;nai mei heng;naimehen;naymykhn;ne me ken;neimegeni;neimeheon;njmygan;nymykhn;nyymkn;Ναϊμέχεν;Горад Наймеген;Најмеген;Неймеген;Նեյմեյխեն;ניימכן;نايميخن;نجمیگان;نیمیخن;เนเมเกน;ნეიმეგენი;ኔመሕን;ナイメーヘン;奈梅亨;네이메헌; +city::2750325;Nieuwegein;Nieuwegein;Nieuwegen; +city::2751283;Maastricht;Gorad Maastrykht;MST;Maastricht;Maastrikht;Maestricht;Mastrichtas;Mastrihta;Mastrikht;Mastrique;Mastrixt;Mestreech;Māstrihta;Traiectum Mosae;ma si te li he te;mas thrichth;maseuteuliheuteu;mastrikhta;mastrikt;mastrkht;mastrsht;mastrykht;masutorihito;Μάαστριχτ;Горад Маастрыхт;Маастрихт;Мастрихт;Մաստրիխտ;מאסטריכט;ماسترخت;ماسترشت;ماستریخت;मास्ट्रिख्ट;மாஸ்ட்ரிக்ட்;มาสทริชท์;მაასტრიხტი;マーストリヒト;马斯特里赫特;마스트리흐트; +city::2751738;Lelystad;LEY;Lelistad;Lelystad;lai li si ta de;Лелистад;لیلی‌استاد;莱利斯塔德; +city::2751773;Leiden;Gorad Lejdehn;Lajden;Leida;Leiden;Leidenas;Leidene;Leie;Leien;Leinten;Lejda;Lejden;Lejdeni;Leyde;Leyden;Lugdunum;Lugdunum Batavorum;Lèida;la'idena;lai dun;laitan;laydn;laydyn;leideni;leideon;li dein;lydn;lyydn;raiden;Λέιντεν;Горад Лейдэн;Лайден;Лајден;Лейден;Լեյդեն;ליידן;لائڈن;لايدن;لايدين;لیدن;লাইডেন;லைடன்;ไลเดิน;ლეიდენი;ライデン;莱顿;레이던; +city::2751792;Leeuwarden;Gorad Leuvardehn;L'ovet;LWR;Leeuwarden;Leewarden;Leuvarden;Leuvardena;Leuvardenas;Leyvarden;Lieuwarden;Liewarde;Liwwadden;Ljouwert;leiualeudeon;lew ar dein;liyuvardena;lu fa deng;lywwardn;rewaruden;Горад Леўвардэн;Леуварден;Льовет;ليوواردن;لیوواردن;लीयुवार्डेन;เลวาร์เดิน;レーワルデン;吕伐登;레이우아르던; +city::2753638;Hoorn;Gorn;Hoarn;Hoorn;Hoorn NH;Horn;Khorn;he en;holeun;horn;horun;hwrn;Горн;Хорн;Հորն;هورن;โฮร์น;ホールン;荷恩;호른; +city::2753801;Hoofddorp;Haarlemmermeer;Hoofddorp;QHZ; +city::2754064;Hilversum;Hilfertsom;Hilversum;Hilvertsheim;Khilversjum;Khilversum;QYI;hylfrswm;xi er fu se mu;Хилверсум;Хилверсюм;Հիլվերսում;هيلفرسوم;هیلفرسوم;希爾弗瑟姆; +city::2754394;Hengelo;Hemgelo;Hengelo;Hengeloo; +city::2754447;Helmond;Gelmond;Hellemed;Helmond;Helmondas;Hèllemed;Khelmond;hai er meng de;he lmxnd;helmonteu;herumonto;hlmwnd;hylmwnd;Гелмонд;Хелмонд;Հելմոնդ;هلموند;هيلموند;เฮลมอนด์;ヘルモント;海爾蒙德;헬몬트; +city::2754652;Heerlen;Coriovalo;Heele;Heerlen;Heële;Kheerlen;Хеерлен; +city::2754861;Hardenberg;Hardenberg;Khardenberge;Stad-Hardenberg;ha deng bei he;Харденберге;هاردن‌برخ;哈登貝赫; +city::2755003;Haarlem;Chaarlem;Garlem;Gorad Kharlem;Haarlem;Haarlemo;Haarlim;Harlem;Harlema;Harlemas;Harlemum;Hārlema;Khaarlem;Kharlem;ha lei mu;haarlemi;haleulleom;harlm;haruremu;Χάαρλεμ;Гарлем;Горад Харлем;Хаарлем;Харлем;Հարլեմ;הארלם;هارلم;ہارلم;ܗܐܪܠܡ;ჰაარლემი;ハールレム;哈勒姆;하를럼; +city::2755251;Groningen;Chronin'nken;GRQ;Gorad Groningen;Greunienge;Grins;Groninga;Groninge;Groningen;Groningena;Groningenas;Groningue;Grunneng;Gròninga;Qroningen;Vilojati Groningen;furoningen;furoningen shi;ge luo ning gen;groningeni;heuloning-eon;hrwnyngn;khrwnyngn;Χρόνινγκεν;Вилояти Гронинген;Горад Гронінген;Гронинген;Гронінген;חרונינגן;خرونینگن;گروننگن شہر;გრონინგენი;フローニンゲン;フローニンゲン市;格罗宁根;흐로닝언; +city::2755420;Gouda;Chaounta;Gauda;Gaudanum;Gorad Gauda;Gouda;Guda;Quda;ga'uda;gauda;goda;hao da;hauda;kea da;khawda;Χάουντα;Гауда;Горад Гауда;Գաուդա;خاودا;गउडा;గౌడ;เกาดา;გაუდა;ゴーダ;豪达;하우다; +city::2756071;Enschede;ENS;Eanske;Ehnskhede;Enschede;Enschedė;Ensjedee;Enskede;Enskhede;Ensxeyde;Gorad Ehnskhedeh;Ynskedee;anskhdh;anskhydh;en si he de;enseuhedeo;enskhede;ensuhede;xen s kede;Горад Энсхедэ;Енсхеде;Энсхеде;Էնշխեյդե;אנסחדה;إنسخيده;انسخده;انشیدے;ܐܢܫܟܕܐ;เอนสเกเด;ენსხედე;エンスヘーデ;恩斯赫德;엔스헤더; +city::2756136;Emmen;Ehmmen;Emen;Emenas;Emme;Emmen;Emmeni vald;ai men;amn;aymyn;emen;emena;emeon;Емен;Еммен;Эммен;Էմմեն;אמן;إيمين;امن;एमेन;エメン;埃門;에먼; +city::2756253;Eindhoven;Aintchofen;Ajndkhoven;Ajntoven;Ajntovën;EIN;Ehjndkhoven;Ehjndkhoven khot;Eindhove;Eindhoven;Eindhovena;Eindhovenas;Eindovia;Ejndgoven;Eyndhoven;Gorad Ehjndkhoven;a'indahovana;ai yin huo wen;aintohofen;ayndhwfn;ayndhwwn;eindhoveni;einteuhobeon;xind ho wen;yan hao fen;Αϊντχόφεν;Айндховен;Ајндховен;Горад Эйндховен;Ейндговен;Эйндховен;Эйндховен хот;Էյնդհովեն;איינדהובן;آئنڈھون;آيندهوفن;آیندهوون;اینتہوون;आइंडहोवन;ไอนด์โฮเวน;ეინდჰოვენი;アイントホーフェン;埃因霍温;燕豪芬;에인트호번; +city::2756429;Ede;Ede;Ehde;ede;Эде;エーデ; +city::2756669;Dordrecht;Doardt;Dordracum;Dordrech;Dordrecht;Dordreque;Dordt;Dort;Ntorntrecht;dorutorehito;Ντόρντρεχτ;ドルトレヒト; +city::2756987;Deventer;Daventria;Deventer;Deventeris;Deyventer;Dimter;Gemeen Deventer;Gemeen Dèventer;QYV;dai fen te er;de wen texr;debenteoleu;defenteru;dfntr;Девентер;Դեյվենտեր;دفنتر;เดเวนเตอร์;デーフェンテル;代芬特尔;데벤터르; +city::2757220;Den Helder;DHR;De Helder;Den Helder;Den-Khelder;Der Helder;Helder;Le Helder;Nten Chelnter;deng hai er de;dn hldr;Ντεν Χέλντερ;Ден-Хелдер;Դեն Հելդեր;دن هلدر;デン・ヘルダー;登海尔德; +city::2757345;Delft;Delft;Ntelpht;dai er fu te;derufuto shi;dlpt;Ντελφτ;Делфт;דלפט;デルフト市;代尔夫特; +city::2758012;Capelle aan den IJssel;Capelle;Capelle a/d IJssel;Capelle a/d Yssel;Capelle aan de IJssel;Capelle aan de Yssel;Capelle aan den IJssel;Capelle aan den Ijssel;Capelle aan den Yssel;Kapele an den Eysel;Kapelle;Kapelle-an-den-Ehjssel;ai se er he pan ka pei lei;ka pe lex xan dex xi seil;kabyla an dn aysl;kapelleoanden-eiseol;Капелле-ан-ден-Эйссел;Կապելե ան դեն Էյսել;كابيلا آن دن آيسل;کاپله ان‌دن ایسل;กาเปเลออานเดอไอเซิล;艾瑟尔河畔卡佩勒;카펠러안덴에이설; +city::2758401;Breda;Breda;Breda khot;Brenta;Brigita;Bréda;GLZ;Gorad Brehda;be rda;beuleda;brda;brdh;breda;bryda;bu lei da;bureda;Μπρέντα;Бреда;Бреда хот;Горад Брэда;Բրեդա;ברדה;بردا;بريدا;بریڈا;เบรดา;ბრედა;ブレダ;布雷达;브레다; +city::2759145;Bergen op Zoom;Bergen op Zoom;Bergen-op-Zom;WOE;Берген-оп-Зом; +city::2759633;Assen;Asen;Asenas;Asningseli;Asningsėli;Asse;Assen;Gorad Asen;a sen;aseon;asn;assen;xas sein;Άσσεν;Асен;Ассен;Горад Асен;Ասսեն;آسن;أسن;อาสเซิน;アッセン;阿森;아선; +city::2759661;Arnhem;Arecanum;Arnem;Arnema;Arnheim;Arnhem;Arnhemas;Arnhemia;Arnhim;Arném;Gemeen Arnem;Gorad Arnem;ZYM;a na mu;aleunheom;anemu;arnahema;arnemi;arnhm;arnm;Άρνεμ;Арнем;Горад Арнем;Արնհեմ;ארנהם;آرنم;آرنهم;آرنہم;आर्नहेम;არნემი;アーネム;阿纳姆;아른험; +city::2759706;Apeldoorn;Apeldoarn;Apeldoorn;Apeldoorne;Apeldorn;Apeldornas;Gorad Apeldorn;QYP;a po er duo lun;abldwrn;apeldoleun;aperudorun;apldwrn;epeladorna;xa phel dorn;Апелдорн;Горад Апелдорн;Ապելդորն;آبلدورن;آپلدورن;ایپلڈوم;एपेलडॉर्न;อาเพลโดร์น;აპელდორნი;アペルドールン;阿珀尔多伦;아펠도른; +city::2759794;Amsterdam;AMS;Amesterdam;Amesterdao;Amesterdão;Amistardam;Amstardam;Amstedam;Amstelodamum;Amsterdam;Amsterdama;Amsterdamas;Amsterdami;Amsterdamo;Amsterdams;Amsterdan;Amsterntam;Amstèdam;Amszterdam;Damsko;Gorad Amstehrdam;I-Amsterdami;Mokum;a mu si te dan;aimstardaima;amasataradama;amastaradama;amastararyama;amseuteleudam;amstardama;amstartam;amstrdam;amusuterudamu;anstardyam;emstaradyama;xamstexrdam;yەmstەrdam;Àmsterdam;Ámsterdam;Ámsterdan;Άμστερνταμ;Амстердам;Горад Амстэрдам;Ամստերդամ;אמסטערדאם;אמסטרדם;آمستردام;أمستردام;ئامستېردام;ئەمستەردام;امستردام;امسټرډام;ایمسٹرڈیم;ܐܡܣܛܪܕܐܡ;अ‍ॅम्स्टरडॅम;आम्स्टर्डम;एम्स्तरद्याम;ऐम्स्टर्डैम;আমস্টারডাম;ਅਮਸਤਰਦਮ;ଆମଷ୍ଟରଡ଼୍ୟାମ;ஆம்ஸ்டர்டம்;ಆಂಸ್ಟರ್ಡ್ಯಾಮ್;ആംസ്റ്റർഡാം;ඈම්ස්ටර්ඩෑම්;อัมสเตอร์ดัม;ཨེམ་སི་ཊར་ཌམ།;အမ်စတာဒမ်မြို့;ამსტერდამი;አምስተርዳም;アムステルダム;阿姆斯特丹;암스테르담; +city::2759798;Amstelveen;Amstelveen;Amstelven;Amstelveyn;Amstelvin;Nieuwer Amstel;a mu si te er fen;amseutelbein;amusuterufen;Амстелвен;Амстелвин;Ամստելվեյն;אמסטלפיין;آمستل‌فین;アムステルフェーン;阿姆斯特尔芬;암스텔베인; +city::2759821;Amersfoort;Amersfoort;Amersfort;Amersforto;QYM;Амерсфорт; +city::2759875;Alphen aan den Rijn;Alfen;Alphen;Alphen a/d Rijn;Alphen aan de Rijn;Alphen aan den Rijn;Alphen aan der Rijn; +city::2759879;Almere Stad;Almere; +city::2759887;Almelo;Almelo;Almeloo;QYL;Алмело; +city::2759899;Alkmaar;Alkmaar;Alkmaer;Alkmar;Alkmaras;a er ke ma er;alkeumaleu;alkmar;arukumaru;Άλκμααρ;Алкмаар;Алкмар;Ալկմար;אלקמאר;آلکمار;ألكمار;ئەڵکمار;アルクマール;阿尔克马尔;알크마르; +city::3133880;Trondheim;Gorad Tronkhejm;Kommun Trondheim;Nidaros;Nidrosia;THrandheimur;TRD;Troandin;Trondheim;Trondheimas;Trondhjem;Trondkhajm;Trondkhejm;Trongejm;Tronheima;Tronkhejm;Trontchaim;Truondheims;Truondhėims;te long he mu;teulonheim;thrx nd hem;toronhaimu;toronheimu;tronad'ehima;troneim;trwndhaym;trwndhyym;Þrándheimur;Τροντχαιμ;Τρόντχαιμ;Τρόντχαϊμ;Горад Тронхейм;Тронгейм;Трондхайм;Трондхејм;Тронхейм;טרונדהיים;تروندهايم;تروندهایم;ٹرونڈہائم;ট্রোনডেহিম;ทรอนด์เฮม;ტრონჰეიმი;トロンハイム;トロンヘイム;特隆赫姆;트론헤임; +city::3133895;Tromso;Gorad Tromsjo;Kommun Tromso;Kommun Tromsø;Romsa;TOS;Troms'o;Tromse;Tromsieg;Tromsjo;Tromso;Tromsoe;Tromsoe kommun;Tromsonda;Tromssa;Tromsö;Tromsö kommun;Tromsø;Tromsīeg;Trumse;Trumsė;te luo mu se;teulomsoe;thrm sex;toromuso;tromasa;tromso;trwmsa;trwmsh;trwmsw;Горад Тромсё;Тромсе;Тромсьо;Тромсё;טרומסה;ترومسا;ترومسو;ٹرومسو;ट्रोम्सो;ট্রোমসা;ทรมเซอ;ტრომსე;トロムソ;特罗姆瑟;트롬쇠; +city::3137115;Stavanger;SVG;Stafangur;Stavanger;Stavangera;Stavenger;sutavu~angeru;Ставангер;スタヴァンゲル; +city::3139075;Skien;Gorad Shyen;Kommun Skien;SKE;Seins;Shien;Shijen;Sienas;Skien;Skieni vald;shien;sien;skayn;skiyena;xi en;Šienas;Šėins;Горад Шыен;Шиен;Шијен;Шієн;سکائن;স্কিয়েন;シーエン;希恩;시엔; +city::3140084;Sarpsborg;Gorad Sarpsborg;Kommun Sarpsborg;Sarpsborg;Sarpsborgas;Sarpsborgs kommun;Sarpsbuorgs;XKQ;sa er pu si bao;saleubseuboleugeu;sarpasaborga;sarpsbwrg;sarupusuborugu;Горад Сарпсборг;Сарпсборг;سارپسبورگ;সার্পসবোর্গ;サルプスボルグ;萨尔普斯堡;사릅스보르그; +city::3140321;Sandnes;Sandnes;Sandnes kommun; +city::3143244;Oslo;Asloa;Christiania (historical);Gorad Osla;Kristiania (historical);OSL;Ohoro;Oslas;Oslo;Oslo osh;Oslu;Osló;ao si lu;asalo;aslw;awslw;osalo;oseullo;oslea;oslo;osuro;xxslo;ywslw;Òslo;Ósló;Ōhoro;Όσλο;Горад Осла;Осло;Осло ош;Օսլո;אוסלו;أوسلو;ئوسلو;ئۆسلۆ;اسلو;اوسلو;ܐܘܣܠܘ;ओस्लो;ওসলো;ਓਸਲੋ;ଅସଲୋ;ஒஸ்லோ;ഓസ്ലൊ;ออสโล;ཨོ་སི་ལོ།;အော့စလိုမြို့;ოსლო;ኦስሎ;オスロ;奥斯陆;오슬로; +city::3149318;Kristiansand;Christiansand;KRS;Krisjansanna;Krisjānsanna;Kristiansand;Kristiansand Sor;Kristiansand Sør;Kristiansann;Kryscijansan;ke li si di an sang;Кристиансанд;Кристиансанн;Крысціянсан;כריסטיאנסנד;克里斯蒂安桑; +city::3156529;Fredrikstad;Frederikstad;Fredrikstad;XKF;furedorikusuta;Фредрикстад;フレドリクスタ; +city::3159016;Drammen;Dramen;Dramenas;Dramens;Drammen;Gorad Dramen;Kommun Drammen;Ntramen;XND;de la men;deulammen;doranmen;dram men;dramena;dramn;Ντράμεν;Горад Драмен;Драмен;Драммен;דראמן;درامن;ڈرامن;ড্রামেন;ดรัมเมน;ドランメン;德拉门;드람멘; +city::3161732;Bergen;BGO;Bargen;Berga;Bergen;Bergena;Bergenas;Bergn;Bernken;Birgon;Bjoergvin;Björgvin;Gorad Bergen;baragena;bargana;bei er gen;beleugen;bergeni;berugen;brghn;brgn;perkan;Μπέργκεν;Берген;Горад Берген;ברגן;برغن;برگن;बार्गन;বারগেন;பேர்கன்;แบร์เกน;ბერგენი;ベルゲン;卑爾根;베르겐; +city::1282898;Pokhara;PKR;Pakhra;Pokara;Pokhar;Pokhara;Pokhra;Pokkhara;bo ke la;bwkhara;pokala;pokara;pokh ra;pokhara;pokhara gavisa;pokhara upamahanagarapalika;pokkara;Ποκάρα;Покхара;פוקארה;بوخارا;پوکھرا;पोखरा;पोखरा उपमहानगरपालिका;पोखरा गाविस;பொக்காரா;ಪೊಖರಾ;โปขรา;ポカラ;博克拉;포카라; +city::1282931;Patan;Lalitapura;Lalitpur;Manigal;Patan;Pātan;Yala;Лалитпур; +city::1283095;Mahendranagar;Mahen Dkanagar;Mahendranagar;XMG; +city::1283240;Kathmandu;Catmandu;Catmandum;Gorad Katmandu;KTM;Kantipur;Kantipura;Katemandu;Kathmandau;Kathmandou;Kathmandu;Katmando;Katmandoe;Katmandou;Katmandu;Katmanduo;Katmandó;Katmandú;Katmandû;Katmandū;Katmantou;Khatmandu;Káthmandu;Káthmándú;jia de man dou;kateumandu;kath manthu;kathamadaum;kathamadaum mahanagarapalika;kathamadu;kathamandu;kathmandu;katmandw;katmandww;katmantu;katomanzu;qtmndw;yem jilla;Κατμαντού;Горад Катманду;Катманду;Կատմանդու;קאטמאנדו;קטמנדו;كاتماندو;كاتماندۇ;کاتماندو;کاتماندوو;کھٹمنڈو;काठमांडू;काठमाडौं;काठमाडौं महानगरपालिका;काठमाण्डू;येँ जिल्ला;কাঠমাণ্ডু;কাঠমান্ডু;ਕਠਮੰਡੂ;કાઠમંડુ;କାଠମାଣ୍ଡୁ;காட்மாண்டு;కాఠ్మండు;ಕಠ್ಮಂಡು;കാഠ്മണ്ഡു;කත්මන්ඩු;กาฐมาณฑุ;ཀ་ཏ་མན་ཏ།;ཀ་ཏ་མན་ཏུ།;კატმანდუ;ካትማንዱ;カトマンズ;加德滿都;카트만두; +city::1283318;Janakpur;Dzanakpuras;Dzhanakpur;Džanakpuras;JKR;Janakpur;Janakpur Dham;gu na ke bu er;janagpuleu;janakapura;janakapura nagarapalika;janakapura upamahanagarapalika;janakupuru;jnkpwr;Джанакпур;جنکپور;जनकपुर;जनकपुर उपमहानगरपालिका;जनकपुर नगरपालिका;ジャナクプル;賈納克布爾;자낙푸르; +city::1283339;Hetauda;Hetauda;Hetauda Bazar;Hetaunda;Hetaura;Heṭauḍā;Hithaura;Hitura;Khetauda;hei dao da;hetauda;hetaunda;hetaunda upamahanagarapalika;hetoura;Хетауда;ہیٹوڈا;हेटौंडा;हेटौंडा उपमहानगरपालिका;हेटौडा;ヘトウラ;黑道達; +city::1283368;Gulariya;Gularia;Gulariya;Gulariyā; +city::1283460;Dharan Bazar;Dharan;Dharan Bazar;Dharān Bāzār; +city::1283467;Dhangarhi;DHI;Dhangadhi;Dhangarhi;Dhantardhi; +city::1283562;Butwal;Butaul;Butwai;Butwal;Butwaī;Butwāl; +city::1283581;Birganj;Birganj;Birgunj;Bīrganj; +city::1283582;Biratnagar;BIR;Biratnagar;Biratnagur;bi la de ne ge er;bilasnagaleu;biratanagara;biratanagara upamahanagarapalika;biratonagaru;viratanagara;Биратнагар;बिराटनगर;बिराटनगर उपमहानगरपालिका;विराटनगर;ビラートナガル;比拉德訥格爾;비랏나가르; +city::1283613;Bharatpur;BHR;Bharatpur;Bhâratpur;balaspuleu;baratopuru;bharatapura;bharatapura upamahanagarapalika;bharatapura nepala;po luo duo bu er;بھرتپور، نیپال;भरतपुर;भरतपुर उपमहानगरपालिका;भरतपुर नेपाल;バラトプル;婆羅多布爾;바랏푸르; +city::1283621;Siddharthanagar;Bhairahawa;Bhairawa;Bhairhwa;Bhairwa;Bhairāhawā;Siddharthanagar; +city::6941099;Nepalgunj;KEP;Nepalganj;Nepalgun;Nepālganj;Непалгун; +city::2179537;Wellington;Gorad Velingtan;Hie-ling-dong;Hiê-lìng-dóng;Ouellin'nkton;Ouellinkton;Te Whanga-nui-a-Tara;Ueligitone;Uelingtun;Velington;Velingtona;Velingtonas;Velingtono;Vellington;Vellingtonia;Vellinqton;WLG;Welinton;Welintòn;Wellington;Wellinton;Weolingtun;Weolingtūn;Whanga-nui-a-Tara;hui ling dun;oyelintana;raelintana;uelingtʼoni;u~erinton;vailigatana;velingatana;velingtana;velingtoni;velintan;vellingtan;wei ling dun;wellingtan;wellingteon;wlyngtwn;wylynghtwn;wylynjtwn;Ουέλλιγκτον;Ουέλλινγκτον;Велингтон;Веллингтон;Веллінгтон;Горад Велінгтан;Уелингтън;Վելինգտոն;ולינגטון;װעלינגטאן;ولینگتون;ويلينجتون;ويلينغتون;ویلنگٹن;ۋېللىنگتون;वेलिंगटन;वेलिंग्टन;वेलिङ्गटन;ওয়েলিংটন;ৱেলিংটন;ਵੈਲਿੰਗਟਨ;વેલિંગ્ટન;வெலிங்டன்;ವೆಲ್ಲಿಂಗ್ಟನ್;വെല്ലിംഗ്ടൺ;เวลลิงตัน;ཝེ་ལིང་ཐོན།;ဝယ်လင်တန်မြို့;ველინგთონი;უელინგტონი;ዌሊንግተን;ウェリントン;威靈頓;惠灵顿;웰링턴; +city::2184397;Porirua;Porirua;bo li lu a;polilua;Порируа;პორირუა;波里魯阿;포리루아; +city::2185018;Palmerston North;PMR;Palmerston Nort;Palmerston Nortas;Palmerston Norte;Palmerston North;Palmerston North City;Palmerston Utara;Palmerston-Nort;Palmy;Te Papa-i-oea;bei pa mo si dun;palmrstwn nwrth;pamasuton'nosu;pameoseuteonnoseu;Палмерстон Норт;Палмерстон-Норт;پالمرستون نورث;پامرسٹن نارتھ;პალმერსტონ-ნორთი;パーマストンノース;北帕莫斯顿;파머스턴노스; +city::2186280;Nelson;Gorad Nel'san;NSN;Nel'son;Nelson;Nelson City;Nelson eskualdea;Nelson pa New Zealand;Nelson på New Zealand;Nelsonas;Nelsun;Whakatu;Whakatū;nelcan;nelsana;nelseun;nelsoni;neruson;ni er xun;nlswn;nlswn nywzlnd;nylswn;Горад Нельсан;Нелсон;Нелсън;Нельсон;נלסון;نلسون، نیوزلند;نيلسون;نیلسن، نیوزی لینڈ;नेल्सन;நெல்சன்;നെൽസൺ;ნელსონი;ネルソン;尼爾遜;넬슨; +city::2186313;Napier;Ahuriri;NPE;Napier;Napier City;Napier pa New Zealand;Napier på New Zealand;Neipiras;Nejpijer;Nejpir;nei pi er;neipieo;nepia;nepiyar;nepiyara;neppiyar;nypyr;Нейпир;Нейпір;Нејпијер;نیپئر، نیوزی لینڈ;نیپیر;नेपियर;நேப்பியர்;నేపియర్;നേപ്പിയർ;ნეიპირი;ネーピア;內皮爾;네이피어; +city::2187404;Manukau City;Manukau; +city::2187454;Mangere;; +city::2188164;Lower Hutt;Awakairangi;Hutt Bawah;Louehr-Khatt;Louer Hatas;Lower Hutt;Lower Hutt City;lowoheos;xia ha te;Лоуэр-Хатт;ლოუერ-ჰატი;下哈特;로워헛; +city::2190224;Hastings;Daerah Hastings;Hastings;Hastings pa New Zealand;Hastings på New Zealand;Heretaunga;Khejstings;NPE;hastynjs;heiseutingseu;heisutinguzu;Хейстингс;Хејстингс;ضلع ہیسٹنگز;هاستينجس;ჰეისტინგსი;ヘイスティングズ;헤이스팅스; +city::2190324;Hamilton;Gamil'ton;Gorad Gamil'tan;HLZ;Hameldun;Hameldūn;Hamilton;Hamilton City;Hamilton pa New Zealand;Hamilton på New Zealand;Hamiltonas;Khamilt"n;Khamilton;Kirikiriroa;amiltan;ha mi er dun;haemilteon;haimilatana;haimiltana;hamiruton;hamyltwn;hemiltana;Гамильтон;Гамільтон;Горад Гамільтан;Хамилтон;Хамилтън;هاميلتون;هامیلتون;ہیملٹن، نیوزی لینڈ;हॅमिल्टन;हैमिल्टन;ਹੈਮਿਲਟਨ;ஆமில்டன்;ഹാമിൽടൺ;ჰამილტონი;ハミルトン;哈密尔顿;해밀턴; +city::2191562;Dunedin;DUD;Dunedin;Dunidin;Otepoti;Taieri;dan ni ding;Ōtepoti;Дънидин;但尼丁; +city::2192362;Christchurch;CHC;Christchurch;Christopolis;Cristcirice;Crīstcirice;Gorad Krajstchehrch;Kraistcerca;Kraistcercas;Kraisttserts;Kraistčerčas;Kraistčērča;Krajstcherch;Krajstchjorch;Krajstchurch;Krayscoerc;Kraystcherch;Kraysçörç;Kristkirko;Otautahi;ji du cheng;ke lai si te che qi;keulaiseuteucheochi;khi rstcheirch;kiraistcerc;kra'istacarca;kraystshrsh;kuraisutochachi;qryystzrz;Ōtautahi;Κράισττσερτς;Горад Крайстчэрч;Крайстчерч;Крайстчърч;Крайстчёрч;Крајстчерч;קרייסטצרץ;كرايستشرش;کرائسٹ چرچ;کرایست‌چرچ;क्राइस्टचर्च;ক্রাইস্টচার্চ;கிறைஸ்ட்சேர்ச்;ക്രൈസ്റ്റ്‌ചർച്ച്‍;ไครสต์เชิร์ช;ခရစ်ချပ်ချ်မြို့;კრაისტჩერჩი;クライストチャーチ;克赖斯特彻奇;基督城;크라이스트처치; +city::2193733;Auckland;AKL;Auckland;Aucland;Aucopolis;Awklanda;Gorad Oklend;Okland;Oklandas;Oklant;Oklend;Oklenda;Tamaki-makau-rau;Tāmaki-makau-rau;akland;aklant;ao ke lan dou hui qu;awkland;awklnd;okalanda;okalenda;okeullaendeu;oklainda;okurando;yavkland;Ώκλαντ;Горад Окленд;Окланд;Окленд;Օկլենդ;אוקלנד;آوکلند;أوكلاند;ئاۋكلاند;ऑकलंड;ऑक्लैण्ड;ઓકલેન્ડ;ஆக்லன்ட்;ఆక్లాండ్;ಆಕ್ಲೆಂಡ್‌;ഓക്‌ലൻഡ്;โอกแลนด์;အော့ကလန်မြို့;ოკლენდი;オークランド;奧克蘭都會區;오클랜드; +city::2208032;Tauranga;TRG;Tauranga;Tauranga-moana;ta'iranga;tao lang jia;taranga;taulang-ga;tauranga;taywranga;Тауранга;טאורנגה;تائورانگا;ٹورانگا;टाइरंगा;ടൗരാംഗ;ტაურანგა;タウランガ;陶朗加;타우랑가; +city::6230919;Whangarei;Distretto di Whangarei;Fangarei;Fangarej;Vangarei;Vangarejus;Vangarėjus;WRE;Whangarei;Whangarei-terenga-paraoa;Whangārei-terenga-paraoa;fanaryy;fangarei;hwang-alei;uangarei;wang a lei;Вангареи;Фангареи;Фангареј;فانارئی;უანგარეი;ファンガレイ;旺阿雷;황아레이; +city::6241325;Rotorua;Distretto di Rotorua;ROT;Rotorua;Rotorua-nui-a-Kahu;lotolua;luo tuo lu ya;rotorua;rwtwrwa;Роторуа;רוטורואה;روتوروا;ضلع روٹوروا;როტორუა;ロトルア;罗托路亚;로토루아; +city::7302484;Waitakere;; +city::286245;Sur;As Sur;As Sūr;SUH;Sour;Sur;Suras;Súr;su er;suleu;suru;swr;wlayt swr;Şūr;Σουρ;Сур;صور;صور، عمان;ولاية صور;スール;苏尔;수르; +city::286282;Sohar;Al Sohar;As Suhar;Aş Şuḩār;OHS;Sahar;Sohar;Soharas;Suhar;Suhár;Sukhar;shar;sohaleu;soharu;su ha er;wlayt shar;Şuḩār;Сухар;صحار;ولاية صحار;ソハール;苏哈尔;소하르; +city::286621;Salalah;Al Kathir;As Salala;As Salalah;Aş Şalālah;SLL;Salala;Salalah;slalh;slalt;Āl Kathīr;Şalālah;Салала;صلالة;صلاله; +city::286647;Saham;As Saham;As Şaham;Saham;Saham Town;Sahb;Sahm;Salam;Şaḩam;Şaḩm;Салам; +city::286987;Nizwa;Nazwah;Nizva;Nizwa;Nizwá;nzwy;Низва;نزوى; +city::287286;Muscat;Gorad Maskat;MCT;Maeskat;Mascat;Mascate;Maskat;Maskata;Maskatas;Maskate;Maskato;Maskˌat;Masqat;Masqaţ;Masqaṭ;Masquat;Maszkat;Mouskat;Muscat;Muskat;Mäskat;Múskat;ma si ka te;ma si ke te;masakata;maskarr;maskat;maskata;masqata;masukatto;msqt;museukateu;Μουσκάτ;Горад Маскат;Маскат;Масқат;Мускат;Մասկատ;מסקט;مسقط;مسقط، عمان;مۇسكات;مەسقەت;मस्कत;मस्क़त;মাস্কাট;ਮਸਕਟ;ମସ୍କଟ;மஸ்கத்;మస్కట్;മസ്കറ്റ്;มัสกัต;མི་སི་ཁ་ཁྲི།;მასკატი;መስከት;マスカット;馬斯喀特;马斯喀特;무스카트; +city::287830;`Ibri;Ibri;`Ibri;‘Ibrī; +city::288764;Bawshar;Baushar;Bawshar;bwshr;بوشر; +city::288789;Barka';Barka';Barkah;Barkā’; +city::288899;Bahla';Bahla';Bahlah;Bahlā’; +city::288955;As Suwayq;As Suwaiq;As Suwayq;Suwaik;Suwayq; +city::288967;Seeb;Al-Sib;Al-Sīb;As Seeb al Jadidah;As Sib;As Sib al Jadidah;As Sīb;As Sīb al Jadīdah;As-Sib;Ehs-Sib;Seeb;Sib;Sybas;Szib;Szíb;Síb;alsyb;alsyb aljdydt;sibeu;xi bo;Сиб;Эс-Сиб;السيب;السيب الجديدة;السیب;锡卜;시브; +city::289011;Rustaq;Ar Rustaq;Ar Rustāq;MNH;Qal`at Kasra;Qal‘at Kasrá;Rostak;Rustaka;Rustaq;Rustāq;alrstaq;Рустака;الرستاق; +city::289199;Al Khaburah;Al Khabura;Al Khaburah;Al Khābūra;Al Khābūrah;Al-Khabourah;Khabura;Khaburah;Khābūrah; +city::289317;Al Buraymi;Al Buraymi;Al Buraymī;Baraimi;Bireimi;Buraimi;Burami;RMB;albrymy;البريمي; +city::3700563;Tocumen;Tocumen;Tokumen;Токумен; +city::3701329;San Miguelito;San Miguel;San Miguelito; +city::3703227;Pedregal;Pedregal; +city::3703443;Panama;Ciudad de Panama;Ciudad de Panamá;Ciutat de Panama;Ciutat de Panamà;PTY;Panama;Panama City;Panama Hiria;Panama by;Panama-Stadt;Panama-Urbo;Panama-stad;Panamurbo;Panamá;Pole tou Panama;Ziuda de Panama;Ziudá de Panamá;ba na ma cheng;panama si;panama siti;panamashiti;panamasiti;pnmh syty;shhr panama;Πόλη του Παναμά;Панама;פנמה סיטי;شهر پاناما;पनामा सिटी;ปานามาซิตี;ፓናማ ከተማ;パナマシティ;巴拿馬城;파나마 시;파나마시티; +city::3707961;La Chorrera;Chorrera;La Chorrera; +city::3708306;Juan Diaz;Juan Diaz;Juan Díaz; +city::3711668;David;Ciudad de David;DAV;David;Davida;Davidas;Dehvid;San Jose de David;San José de David;dabiddo;dabideu;dai wei;davidi;dwyd;Давид;Дэвид;דויד;ڈیوڈ، چیرکی;დავიდი;ダビッド;戴维;다비드; +city::3712076;Colon;Aspinwall;Ciudad de Colon;Ciudad de Colón;Colon;Colón;Kolon;Kolona;Kolonas;ONX;gao lang;ke long;kollon;koron;kwlwn panama;qwlwn;Колон;Կոլոն;קולון;کولون، پاناما;კოლონი;コロン;告郎;科隆;콜론; +city::3714637;Arraijan;Arraijan;Arraiján; +city::3691148;Tumbes;Gorad Tumbes;TBP;Tumbes;Tumbesas;Tumbez;Tumpis;Tumpiurbo;tong bei si;to~unbesu;tumbeseu;twmbs;twmbys pyrw;Горад Тумбес;Тумбес;تومبس;تومبیس، پیرو;ტუმბესი;トゥンベス;通贝斯;툼베스; +city::3691175;Trujillo;Gorad Trukhil'jo;TRU;Troxillo;Truchiljas;Truhillu;Trujillo;Trukhijo;Trukhil'o;Trukhiljo;Turgalium;te lu xi e;teuluhiyo;toruhiryo;trwhyw;trwkhyw;trwkhyw byrw;Горад Трухільё;Трухильо;Трухилјо;Трухійо;טרוחיו;تروخيو، بيرو;تروخیو;ტრუხილიო;トルヒーリョ;特鲁希略;트루히요; +city::3691348;Tingo Maria;TGI;Tingo Maria;Tingo María;Tinku Mariya;ting ge ma li ya;tyngw marya;تینگو ماریا;廷戈瑪麗亞; +city::3691582;Talara;Puerto Talara;TYL;Talara;ta la la;talara;tallala;tarara;Талара;تالارا;ტალარა;タララ;塔拉拉;탈라라; +city::3691674;Sullana;Sul'jana;Sulana;Sullana;su ya na;suliana;swyana;Сульяна;Суљана;سویانا;სულიანა;蘇亞納; +city::3693345;Pucallpa;Callaria;PCL;Pucallpa;Pucalpa;Pukal'pa;Pukal'pae;Pukallpa;Pukalpa;Pulcalla;pu ka er pa;pu ki pa;pu lan er pa;pukaipa;pukaruba;pwkaaypa;pwkaypa;Пукалпа;Пукальпæ;Пукальпа;پوکاایپا;پوکایپا;ปูไกปา;პუკალიპა;プカルバ;普兰尔帕;普卡尔帕;푸카이파; +city::3693528;Piura;Gorad Pjura;P'jura;PIU;Piura;Piwra;Pjuro;pi wu la;piula;piura;piw ra;pywra;pywrh;Горад Пюра;Пиура;Пьюра;Піура;פיורה;پیورا;ปิวรา;პიურა;ピウラ;皮乌拉;피우라; +city::3694112;Paita;Paita;Pajta;Payta;pai ta;payta;Паита;Пайта;پایتا;派塔; +city::3696150;Jaen;JAE;Jaen;Jaén;Khaehn;Хаэн; +city::3696183;Iquitos;Gorad Ikitas;IQT;Ikitos;Ikitosas;Ikitus;Iquitos;Iquitum;akytws;aykytws;ikitoseu;ikitosu;xiki tos;yi ji tuo si;Ікітос;Горад Ікітас;Икитос;איקיטוס;اکیتوس;ایکیتوس;อีกีโตส;იკიტოსი;イキトス;伊基托斯;이키토스; +city::3696378;Huaraz;Gorad Guaras;Huaras;Huarasas;Huaraz;Uaras;Uaraz;Varas;Waras;awaraz;ualaseu;uarasi;wa la si;waras;warasu;Горад Гуарас;Уараз;Уарас;ואראס;اواراز;واراس;უარასი;ワラス;瓦拉斯;우아라스; +city::3696417;Huanuco;HUU;Huanuco;Huanukas;Huánuco;Uanuko;Vanucum;Wanuku;awanwkw;uanuko;wa nu ke;wanuko;wanwkw;Ŭanuko;Уануко;اوانوکو;وانوکو;უანუკო;ワヌコ;瓦努科;우아누코; +city::3698105;Chulucanas;Chulucana;Chulucanas;Chulukanasa;Чулуканаса; +city::3698304;Chimbote;CHM;Chimbote;Chimputi;Cimbote;Cimboto;chimbote;chinbote;chymbwth;qin bo te;Ĉimboto;Čimbotė;Чимботе;Чімботе;چیمبوته;ჩიმბოტე;チンボテ;钦博特;침보테; +city::3698350;Chiclayo;CIX;Chiclaium;Chiclayo;Chiklajo;Chiklayu;Ciklajus;Gorad Chyklaja;chikeullayo;chikurayo;chyklayw;qi ke la yue;tshyklayw;Čiklajus;Горад Чыклая;Чиклайо;Чиклајо;Чіклайо;ציקלאיו;تشيكلايو;چیکلایو;ჩიკლაიო;チクラーヨ;奇克拉约;치클라요; +city::3698658;Catacaos;Catacaos; +city::3699088;Cajamarca;CJA;Cajamarca;Caxamarca;Gorad Kakhamarka;Kachamarka;Kakhamarka;Kasamarko;Kashamarka;Kaŝamarko;Qajamarka;Qashamarka;ka ha ma ka;ka ha mar ka;kahamaleuka;kahamaruka;kakhamarka;Горад Кахамарка;Кахамарка;کاخامارکا;กาฮามาร์กา;კახამარკა;カハマルカ;卡哈馬卡;카하마르카; +city::3927758;Tarma;Tarma;ta er ma;tarma;Тарма;تارما;塔爾馬; +city::3928128;Tacna;Gorad Takna;TCQ;Tacna;Takna;Takno;Taqna;ta ke na;tak na;takeuna;takna;takuna;Горад Такна;Такна;Տակնա;טאקנה;تاكنا;تاکنا;ตักนา;ტაკნა;タクナ;塔克纳;타크나; +city::3929631;San Isidro;; +city::3931276;Puno;Gorad Puna;Pouno;Punas;Punjo;Puno;Punu;Punum;San Carlos de Puno;pu no;pu nuo;puno;Πούνο;Горад Пуна;Пуно;Պունո;ปูโน;პუნო;プーノ;普诺;푸노; +city::3932145;Pisco;Byen Pisco;PIO;Pisco;Piskas;Pisko;Pisqu llaqta;pi si ke;Писко;პისკო;皮斯科; +city::3934608;Moquegua;Gorad Makegua;Moceva;Mokegua;Mokegva;Moquegua;Mukiwa;Muqiwa;mo ke gua;mokegwa;mwkgwa;mwkygwa;Горад Макегуа;Мокегуа;Мокеґуа;موکگوا;موکیگوا;მოკეგუა;莫克瓜;모케과; +city::3936456;Lima;Gorad Lima;LIM;Lim;Lima;Limae;Limaq;Lime;Limma;Limo;Lioma;Lungsod ng Lima;Lìmma;Líma;Líoma;Lîma;li ma;lima;lyma;lymh;rima;Λίμα;Горад Ліма;Лимæ;Лима;Лиме;Ліма;Լիմա;לימא;לימה;لىما;ليما;لیما;लिमा;लीमा;লিমা;ਲੀਮਾ;ଲିମା;லிமா;ലിമ;ลิมา;ལི་མ།;ლიმა;ሊማ;リマ;利馬;리마; +city::3937513;Juliaca;Hullaqa;JUL;Juliaca;Khul'jaka;Khulijaka;furiaka;hu li ya ka;hulliaka;khwlyaka;Хулијака;Хульяка;خولیاکا;ხულიაკა;フリアカ;胡利亞卡;훌리아카; +city::3938415;Ilo;ILQ;Ilas;Ilo;Ilu;New Ilo;Pacocha;ilo;yi luo;Іло;Ило;ილო;伊洛; +city::3938527;Ica;Gorad Ika;Ica;Ika;aka pyrw;ayka prw;ika;yi ka;Іка;Горад Іка;Ика;اکا، پیرو;ایکا، پرو;იკა;イカ;伊卡;이카; +city::3939285;Huaral;Huaral;Uaral';Waral;awaral;wa la er;Уараль;اوارال;瓦拉爾; +city::3939459;Huancayo;Gorad Guankajo;Huancaya;Huancayo;Huankajus;Uankajo;Vancaium;Wankayu;awankayw;uangkayo;wan ka yue;wankashw;wankayo;wankayw;x wng kiy xo;Горад Гуанкаё;Уанкайо;Уанкајо;اوانکایو;وانكاشو;وانکایو;อวงไกย์โอ;უანკაიო;ワンカヨ;万卡约;우앙카요; +city::3940002;Huacho;Huacho;Uacho;Wachu llaqta;awachw;uacho;wa qiao;wachw;Уачо;اواچو;واچو;უაჩო;瓦喬;우아초; +city::3941584;Cusco;CUZ;Ciudad del Cuzco;Cosco;Cuschum;Cusco;Cuscu;Cuzco;Gorad Kuska;Kousko;Kuskas;Kusko;Qusqu;kosko;ku s ko;ku si ke;kucukko;kuseuko;kusko;kusuko;kuzko;kwzkw;qwsqw;Κούσκο;Горад Куска;Куско;Կուսկո;קוסקו;قوسقو;کوزکو;कुज़्को;कुस्को;কোস্কো;குசுக்கோ;กุสโก;კუსკო;クスコ;庫斯科;쿠스코; +city::3943423;Chosica;Chosica;Nueva Chosica; +city::3943789;Chincha Alta;Chincha;Chincha Alta;Chincha-Al'ta;Cinca Alta;Hanan Chincha;chyncha alta;shang qin cha;Činča Alta;Чинча Алта;Чинча-Альта;چینچا آلتا;ჩინჩა-ალტა;上欽查; +city::3944797;Cerro de Pasco;Cerro de Pasco;Collis Pasca;Pasqu qullu;Pasqu urqu;Sero de Paskas;Serro-de-Pasko;krw dh paskw;sai luo de pa si ke;selodepaseuko;Серро-де-Паско;سیرو دے پاسکو;کرو ده پاسکو;სერო-დე-პასკო;セロ・デ・パスコ;塞羅德帕斯科;세로데파스코; +city::3946083;Callao;Callao;El Callao;Gorad Kal'jaa;Kajao;Kal'jao;Kalao;Kaljao;Kallao;Kallaw;Kalyao;Regio de Callao;Regió de Callao;ka ya e;kayao;kayaw;kayayw;klaw;Горад Кальяа;Кальяо;Каляо;Каяо;Каљао;Կալյաո;كاياو;کایائو;کایاو;کلاؤ;კალიაო;カヤオ;卡亞俄;카야오; +city::3947019;Ayacucho;AYP;Ajakucas;Ajakucho;Ajakuco;Ajakuĉo;Ajakučas;Ayacucho;Ayaquchu;Gorad Ajakucha;Vamanga;Wamanqa;a ya ku qiao;ayakucho;ayakwchw;Аякучо;Горад Аякуча;آیاکوچو;ایاکوچو;აიაკუჩო;アヤクーチョ;阿亚库乔;아야쿠초; +city::3947322;Arequipa;AQP;Arecipa;Arekip;Arekipa;Arekipo;Arequipa;Arikipa;Ariqipa;Gorad Arehkipa;a lei ji pa;alekipa;arekipa;arekkippa;arkypa;arykyba;arykypa;xareki pa;Αρεκίπα;Арекипа;Арекіпа;Горад Арэкіпа;ארקיפה;أريكيبا;ارکیپا;اریکیپا;अरेकिपा;அரேக்கிப்பா;อาเรกีปา;არეკიპა;アレキパ;阿雷基帕;아레키파; +city::3948642;Abancay;Abancai;Abancaius;Abancay;Abankaj;Abankajus;Abankay;Avan'kai;Awankay;Gorad Abankaj;a ban kai;abangkai;abankai;abankay;awankayy;Αβανκάι;Абанкай;Горад Абанкай;آبانکای;اوانکائی;აბანკაი;アバンカイ;阿班凯;아방카이; +city::2088122;Port Moresby;Gorad Port-Morsbi;POM;Po Moresbi;Port Moresby;Port Moresmpi;Port Morsbi;Port Morsbis;Port-Moresbo;Port-Morsbi;Portmorsbi;Portus Moresbiensis;Pot Mosbi;Puerto Moresby;Pò Moresbi;bwrt mwrsby;mo er ci bi gang;mo er zi bi gang;phxrt mxr sbi;porata moraisabi;porta moresbi;poteumoleujeubi;potomoresubi;pwrt mwrsby;Πορτ Μόρεσμπι;Горад Порт-Морсбі;Порт Морсби;Порт-Морсби;Порт-Морсбі;Պորտ Մորսբի;פורט מורסבי;بورت مورسبي;صوبہ پورٹ مورسبائی;مورېسبى پورتى;پورت مورسبی;پورٹ مورسبی;پۆرت مۆرسبی;पोर्ट मॉरेस्बी;पोर्ट मोरेस्बी;ਪੋਰਟ ਮੋਰੈਸਬੀ;พอร์ตมอร์สบี;པོ་རོ་ཊི་མོ་རེ་སི་བི།;პორტ-მორზბი;ፖርት ሞርስቢ;ポートモレスビー;莫尔兹比港;포트모르즈비; +city::2092740;Lae;LAE;Lae;Laeh;Laeh shaary;Laė;la-e;lai cheng;layh;rae;Лае;Лаэ;Лаэ шаары;לאה;لائه;لائے;ラエ;莱城;라에; +city::1679432;Zamboanga;Burleigh School;Ciudad ti Zamboanga;Dakbayan sa Zamboanga;Lungsod ng Zamboanga;Syudad han Zamboanga;ZAM;Zamboanga;Zamboanga City;Zamboanga Lakanbalen;samboang-ga;san bao yan;sanboanga;Замбоанга;サンボアンガ;三宝颜;삼보앙가; +city::1680007;Victorias;Dakbayan sa Victorias;Syudad han Victorias;Victorias;Victorias City; +city::1680116;NIA Valencia;Kota Valencia;Valencia;Valencia City;Valencia Lakanbalen;Valensija;ba lun xi ya cheng;ballensia;Валенсия;巴伦西亚城;발렌시아; +city::1680197;Urdaneta;Kota Urdaneta;Urdaneta Lakanbalen;Urdaneta de Pangasinan;Urdaneta de Pangasinán; +city::1680505;Ualog;Ualog; +city::1680932;Tuguegarao;Lungsod ng Tuguegarao;TUG;Tuguegarao;Tuguegarao City;Tuguegaro; +city::1681602;Toledo;Ciudad ti Toledo;Dakbayan sa Talisay;Toledo;Toledo City;Толедо; +city::1682598;Taytay;Taytay; +city::1682812;Tarlac City;Tarlac;Tarlac City; +city::1683013;Tanza;Tanza; +city::1683319;Tanay;Tanay; +city::1683340;Tanauan;Kota Tanauan;Tanauan City;Tanauan Lakanbalen; +city::1683877;Talisay;Talisay; +city::1683881;Talisay;Ciudad ti Talisay;Talisay;Talisay City;tarisai;タリサイ; +city::1684016;Talavera;Talavera;Талавера; +city::1684269;Magugpo;Kota Tagum;Magugpo;Tagum;Tagum City;Tagum Lakanbalen;Taum;Taúm;tagum;tagwm;تاگوم;타굼; +city::1684308;Taguig;City of Taguig;Santa Ana;Tagig;Taguig;Тагиг; +city::1684497;Tagbilaran City;Dakbayan sa Tagbilaran;Syudad han Tagbilaran;TAG;Tagbilaran;Tagbilaran City; +city::1684681;Tacurong;Kota Tacurong;Tacorong;Tacurong;Tacurong City;Tacurong Lakanbalen;Takrong;Takurong; +city::1685117;Tabaco;Kota Tabaco;Syudad nin Tabaco;Tabaco City;Tabaco Lakanbalen;Tobaco;tabako;tabako shi;タバコ市;타바코; +city::1685218;Surigao;Ciudad ti Surigao;Dakbayan sa Surigao;Lungsod ng Surigao;SUG;Surigao;Surigao City;Surigao Lakanbalen;su li gao;suligao;surigao;スリガオ;苏里高;수리가오; +city::1685577;Subic;Subic; +city::1685755;Sorsogon;; +city::1685880;Solana;Solana;Solano; +city::1686547;Silang;; +city::1687534;Santo Tomas;Santa Tomas;Santo Tomas;Santo-Tomas;Санто-Томас; +city::1687687;Santol;; +city::1687801;Santiago;; +city::1687894;Santa Rosa;Kota Santa Rosa;Santa Rosa City;Santa Rosa Lakanbalen;Santa-Rosa;Санта-Роса; +city::1688253;Santa Cruz;Santa Cruz;santa krwz lagwna;سانتا کروز، لاگونا; +city::1688749;San Pedro;San Pedro; +city::1688830;San Pablo;Dakbayan sa San Pablo;Kota San Pablo;Lungsod ng San Pablo;San Pablo;San Pablo City;San Pablo Lakanbalen;Siyudad na San Pablo; +city::1688954;San Miguel;San Miguel;San Muigel Mayumo; +city::1689056;San Mateo;San Mateo; +city::1689286;San Juan;San Juan;San Juan City;San Juan del Monte; +city::1689395;San Jose del Monte;Kota San Jose del Monte;Lungsod ng San Jose del Monte;San Jose Del Monte;San Jose del Monte;San Jose del Monte City;San Jose del Monte Lakanbalen;San José Del Monte;San José del Monte;San-Khose-del'-Monte;sanhosedelmonte;Сан-Хосе-дель-Монте;산호세델몬테; +city::1689510;San Jose;Pandurucan;SJI;San Jose; +city::1689832;San Ildefonso;San Ildefonso; +city::1690033;San Fernando;Dakbayan sa San Fernando;Kota San Fernando;Lungsod ng San Fernando;SFE;San Fernandas;San Fernando;San Fernando City;San Fernando Lakanbalen;San-Fernando;Siyudad na San Fernando;sanferunando;sanpeleunando;sheng fei er nan duo;Сан-Фернандо;سان فرنانڈو، لا یونین;サンフェルナンド;圣费尔南多;산페르난도; +city::1690039;San Fernando;Dakbayan sa San Fernando;Kota San Fernando;Lungsod ng San Fernando;San Fernando;San Fernando Lakanbalen;San-Fernando;Santo Rosario;Siyudad na San Fernando;Urbs Sancti Ferdinandi;sanferunando;sanpeleunando;sheng fei er nan duo;Сан Фернандо;Сан-Фернандо;سان فرنانڈو، پامپانگا;サンフェルナンド;圣费尔南多;산페르난도; +city::1691150;Sagay;Kota Sagay;Sagay City;Sagay Lakanbalen;سگے، نیگروس وکڈینٹل; +city::1691444;Roxas City;RXS;Roxas;Roxas City; +city::1692192;Quezon City;Keson-Siti;Quezon;Quezon City;Кесон-Сити; +city::1692520;Pulong Santa Cruz;Pulong Santa Cruz;Pulong Santa Rosa;Santa Cruz; +city::1692565;Pulilan;Pulilan; +city::1692685;Puerto Princesa;Dakbayan sa Puerto Princesa;Kota Puerto Princesa;Lungsod ng Puerto Princesa;PPS;Puehrto-Prinsesa;Puerta Princesa;Puerto Princesa;Puerto Princesa City;Puerto Princesa Lakanbalen;Puerto Prinsesa;Syudad han Puerto Princesa;Syudad nin Puerto Princesa;bwrtwbrnss;pu lin sai sa gang;pueleutopeulinsesa;pwrtwprnss;pwyrtw prnsysa;Пуерто Принсеса;Пуэрто-Принсеса;بورتوبرنسس;پورتوپرنسس;پویرتو پرنسیسا;プエルト・プリンセサ;普林塞薩港;푸에르토프린세사; +city::1693077;Polomolok;Polomoloc;Polomolok; +city::1693136;Polangui;Polangui; +city::1693239;Plaridel;Pandi;Plaridel;Quingua;Quinqua; +city::1694290;Patuto;Patuto; +city::1695743;Panalanoy;; +city::1695804;Panabo;Kota Panabo;Panabo;Panabo City;Panabo Lakanbalen; +city::1696710;Pagadian;Lungsod ng Pagad;PAG;Pagadian;Pagadian City; +city::1696899;Ozamiz City;OZC;Ozamis;Ozamis City;Ozamiz;Ozamiz City; +city::1697018;Ormoc;Ciudad ti Ormoc;Dakbayan sa Ormoc;Kota Ormoc;Lungsod ng Ormoc;MacArthur;OMC;Ormco;Ormoc;Ormoc City;Ormoc Lakanbalen;Oromoc;Syudad han Ormoc;awrmwk;oleumokeu;orumokku;اورموک;オルモック;오르모크; +city::1697175;Olongapo;Bandaraya Olongapo;Ciudad ti Olongapo;Dakbayan sa Olongapo;Kota Olongapo;Lungsod ng Olongapo;Olongapo;Olongapo City;Olongapo Lakanbalen;Olóngapo;Siyudad na Olongapo;Siyudad na Olóngapo;Syodad nin Olongapo;ao long a bo;awlwngapw;ollong-gapo;اولونگاپو;奥隆阿波;올롱가포; +city::1697376;Obando;Obando; +city::1697497;Norzagaray;Norzagaray;Norzugaray; +city::1698030;Nasugbu;Nasugbu; +city::1698548;Naic;; +city::1698829;Naga;Ciudad nin Naga;Dakbayan sa Naga;Kota Naga;Lungsod ng Naga;Maogmang Naga;Naga City;Naga Lakanbalen;Nagi;Syudad nin Naga;WNP;naga;naga kamarynz jnwby;Наги;ناگا، کامارینز جنوبی;ナガ;나가; +city::1699054;Muricay;Muricay; +city::1699296;Rodriguez;Montalban;Rodriges;Rodriguez;Rodríguez;luo de li ge si;Родригес;罗德里格斯; +city::1699323;Monkayo;Moncayo;Monkayo; +city::1699572;Minglanilla;Minglanilla; +city::1699802;Meycauayan;Kota Meycauayan;Meycauayan;Meycauayan City;Meycawayan;myykawayan;میئکاوایان; +city::1700360;Mati;Kota Mati;MXI;Mati;Mati City;ma di;maty dawayw shrqy;Мати;ماتی، داوائو شرقی;馬蒂; +city::1700868;Mariveles;Mariveles; +city::1700917;Marilao;Marilao;Марилао; +city::1700980;Mariano;Mariano; +city::1701053;Marawi City;City of Dansalan;Dansalan;Dansalan City;Islamic City of Marawi;Maraur;Marawi;Marawi City; +city::1701472;Mantampay;; +city::1701500;Mansilingan;; +city::1701668;Manila;City of Manila;Dakbayan sa Manila;Gorad Manila;Lungsod ng Maynila;MNL;Mainile;Manila;Manilae;Manilla;Manillah;Manille;Manilo;Manyl;Maníla;Maynila;Menila;ma ni la;manila;manilla;manira;manyl;manyla;mnila;mnylh;myanila;Μανίλα;Горад Маніла;Манилæ;Манила;Маніла;מנילה;مانىلا;مانيلا;مانیل;مانیلا;मनिला;मनीला;ম্যানিলা;மணிலா;ಮನಿಲ;මැනිලා;มนิลา;มะนิลา;མ་ནི་ལ།;မနီလာမြို့;მანილა;ማኒላ;マニラ;马尼拉;마닐라; +city::1701872;Mangaldan;Mangaldan; +city::1701947;Mandaue City;Dakbayan sa Mandaue;Lungsod ng Mandaue; +city::1701966;Mandaluyong City;Mandaluyong;Mandayulong;San Felipe;San Felipe Neri; +city::1702096;Manaoag;Manaoag; +city::1702442;Malungun;Malungon;Malungun;Maluñgun; +city::1702540;Malolos;Dakbayan sa Malolos;Lungsod ng Malolos;Malalos;Malolas;Malolos;Malolos City;Malolos Lakanbalen;Syudad nin Malolos;mallolloseu;Малолос;말롤로스; +city::1702934;Malaybalay;Dakbayan sa Malaybalay;Kota Malaybalay;Lungsod ng Malaybalay;Malajbalaj;Malaybalay;Malaybalay City;Malaybalay Lakanbalen;malaybalayy;mallaiballai;Малайбалай;مالایبالائی;말라이발라이; +city::1703417;Makati City;Makati;Makati City; +city::1704067;Magalang;Magalan;Magalang; +city::1704703;Mabalacat City;CRK;Mabalacat; +city::1705357;Lucena;Dakbayan sa Lucena;Kota Lucena;Lucena;Lucena City;Lucena Lakanbalen;Lungsod ng Lucena;Lusena;Siudad ti Lucena;lu sai na;lusena;lwsyna flpayn;Лусена;لوسینا، فلپائن;卢塞纳;루세나; +city::1705440;Lubao;Lubao; +city::1705536;Los Banos;Los Banos;Los Baños;Los-Ban'os;Лос-Баньос; +city::1706090;Lipa City;Ciudad ti Lipa;Lipa;Lipa City;Липа; +city::1706188;Lingayen;Lingayen; +city::1706361;Limay;Limay; +city::1706609;Libon;Libon; +city::1706684;Libertad;; +city::1706889;Legaspi;LGP;Legaspi City;Legazpi;Legazpi City; +city::1707267;Lapu-Lapu City;Dakbayan sa Lapu-Lapu;Lapu-Lapu;Lapu-Lapu City;Opon;Siudad ti Lapu-Lapu;la pu la pu shi;rapu=rapu shi;ラプ=ラプ市;拉普拉普市; +city::1707404;Laoag;Dakbayan sa Laoag;Kota Laoag;LAO;Laoag;Laoag City;Laoag Lakanbalen;Laoang;Laog;Loag;Lungsod ng Laoag;Siyudad na Laoag;Syudad nin Laoag;lao wo;laoageu;lawag;raoagu;Лаоаг;لاواگ;ལའ་ཨག;ལའོ་ཨག;ラオアグ;佬沃;라오아그; +city::1707944;Lala;Lala; +city::1708522;Koronadal;Koronadal;Koronadal City;Koronadal Lakanbalen;Kota Koronadal;Marbel;ke luo na da er;kolonadal;koronatal;kwrwnadal;کورونادال;கொரொனடால்;科罗纳达尔;코로나달; +city::1708824;Kidapawan;Kadapawan;Kidapavan;Kidapawan;Kidapawan Lakanbalen;Kota Kidapawan;kidapawan;kydapawan;Кидапаван;کیداپاوان;키다파완; +city::1709003;Kawit;qwwyt;קוויט; +city::1709632;Kalibo (poblacion);Banwa it Kalibo;KLO;Kalibo;Kalibo Town;Pueblo de Calivo;Калибо; +city::1709968;Kabankalan;Kabankalan; +city::1710141;Jolo;Dzholi;JOL;Jolo;Joló;Kholo;Sug;Sulu;Suluk;hollo;horo;jwlw swlw;Джоли;Холо;جولو، سولو;ホロ;홀로; +city::1710519;City of Isabela;Basilan;Basilan City;City of Isabela;Isabel;Isabela;Isabela City;Izabela;Lungsod ng Isabela;Municipality of Isabela;Изабела; +city::1710544;Iriga City;Iriga;Iriga City; +city::1710914;Imus;Imus;Imus Lakanbalen;Lungsod ng Imus;amws;Имус;اموس; +city::1711005;Iloilo;ILO;Iloilo;Iloilo City;Iloilo Proper;Илоило; +city::1711082;Iligan City;City of Iligan;Idigan;Iligan; +city::1711146;Ilagan;Ilagan;alagan;Илаган;الاگان; +city::1711982;Hagonoy;Hagonoy;Hagony;Hagunoy; +city::1712051;Guyong;Guyong; +city::1712531;Guiguinto;Guiguinto; +city::1713014;General Trias;General Trias Lakanbalen;Heneral Trias; +city::1713022;General Santos;Dadiangas;Dakbayan sa General Santos;GES;General Santos City;General Santos Lakanbalen;General-Santos;Heneral Santos;Kota General Santos;Siyudad na Heneral Santos;jeneoleolsantoseu;jnral santws;jnrl santws;san tou si jiang jun shi;Генерал-Сантос;جنرال سانتوس;جنرل سانتوس;ジェネラル・サントス;三投斯將軍市;제너럴산토스; +city::1713226;Gapan;Capan;Gapan; +city::1714201;Dumaguete;Ciudad ti Dumaguete;DGT;Dumagete;Dumageute;Dumaguete;Dumaguete City;Dumaguete Lakanbalen;Dumaguette;Kota Dumaguete;Urbs Dumaguete;do~umagete;dumagete;dwmagwyty;lang mang ya de;Думагете;دوماگویتی;ドゥマゲテ;朗芒芽地;두마게테; +city::1714674;Dipolog;DPL;Dakbayan sa Dipolog;Dipolog;Dipolog City;Dipolog Lakanbalen;Dipólog;Kota Dipolog;Lungsod ng Dipolog;dipollogeu;diporogu;dypwlwg;Диполог;دیپولوگ;ディポログ;디폴로그; +city::1714766;Dinalupihan;Dinalupian;Dinalupihan;Dinalupihari;Dinalupijan;Dinalupinan; +city::1714956;Digos;Digos City;Digos Lakanbalen;Kota Digos;dygws;دیگوس; +city::1715348;Davao;Central;Ciudad ti Davao;DVO;Dakbayan sa Davao;Davao;Davao City;Davao Lakanbalen;Davao Stad;Davaó;Lungsod ng Dabaw;Syudad han Davao;da wo shi;dabao;dafaw;dawayw syty;Давао;دافاو;داوائو سیتی;ダバオ;达沃市;다바오; +city::1715430;Dasmarinas;Dasmarin'jas;Dasmarinas;Dasmarinas Lakanbalen;Dasmarines;Dasmariñas;Dasmariñas Lakanbalen;Kota Dasmarinas;Kota Dasmariñas;da si ma li ni ya si;daseumalinyaseu;dasmarngas;dasmarynyas;dasumarinyasu;Дасмариньяс;داسمارنگاس;داسمارینیاس;ダスマリニャス;达斯马里尼亚斯;다스마리냐스; +city::1715542;Dapitan;Dapitan;Dapitan City;Дапитан; +city::1715804;Danao;Danao;Danao City;Idanao; +city::1716287;Daet;DTE;Daet;dayt kamarynz shmaly;Дает;دایت، کامارینز شمالی; +city::1716771;Cotabato;CBO;Catabate;Catabato;Cotabato;Cotabato City;Cottabato;Dakbayan sa Cotabato;Kota-Bato;Kotabato;kotabato;Котабато;コタバト; +city::1716995;Concepcion;Concepcion;Conception;Konseps'on;Консепсьон; +city::1717512;Cebu City;CEB;Cebu;Cebu City;City of Cebu;Ciudad de Cebu;Ciudad de Cebú;Dakbayan sa Sugbo;Sebu;sebu;Себу;세부; +city::1717641;Cavite City;Bandar Cavite;Cavite;Cavite City;Cavite Lakanbalen;Ciudad ti Cavite;Dakbayan sa Cavite;Kavite;Lungsod ng Kabite;Siyudad na Cavite;Syudad han Cavite;jia mi de;kabite;kavu~ite;Кавите;カヴィテ;甲米地;카비테; +city::1717911;Catbalogan;Catbalogan;Catbalogan City;Kota Catbalogan;Lungsod ng Catbalogan;katbalwgan;کاتبالوگان; +city::1718306;Carmona;Carmona; +city::1718722;Capas;Capas;Capaz;Kapas;Капас; +city::1719274;Candelaria;Candelaria; +city::1720034;Calumpit;Calumpit; +city::1720402;Calbayog City;CYP;Calbayog;Calbayog City;Dakbayan sa Calbayog;Syudad san Calbayog; +city::1720561;Calapan;Calapan;Calapan City;Calapan Lakanbalen;Calapán;Dakbayan sa Calapan;Kalapan;Kota Calapan;Lungsod ng Calapan;ka la pan;kalapan;kallapan;کالاپان;卡拉潘;칼라판; +city::1720681;Calamba;Calamba;Calamba City;Calamba Lakanbalen;Calambá;Kalamba;Kota Calamba;Urbs Calamba;ka lan ba;kalamba lagwna;kallamba;Каламба;کالامبا، لاگونا;卡兰巴;칼람바; +city::1720840;Cainta;Cainta; +city::1721080;Cagayan de Oro;CGY;Cagayan de Oro;Cagayan de Oro City;Cagayan de Oro Lakanbalen;Cagayán de Oro;Dakbayan sa Cagayan de Oro;Kagajan de Oras;Kagajan-de-Oro;Lungsod ng Cagayan de Oro;ka jia yan de ao luo;kagayande-olo;Кагаян-де-Оро;カガヤン・デ・オロ;卡加延德奥罗;카가얀데오로; +city::1721168;Cadiz;Cadiz;Cadiz Viejo; +city::1721906;Cabanatuan City;Cabanatuan;Cabanatuan City;Cabanatúan;Ciudad ti Cabanatuan; +city::1722186;Butuan;BXU;Butuan;Butuan City;Butuan Lakanbalen;Butuanas;City of Butuan;Dakbayan sa Butuan;Kota Butuan;Lungsod ng Butuan;Syudad nin Butuan;buto~uan;butuan;bwtwan;putuvan;wu duan shi;بوتوان;புடுவன்;ブトゥアン;武端市;부투안; +city::1722930;Bulaon;Bulaon;Bulaun; +city::1723066;Bulacan;Bulacan; +city::1723510;Budta;Budta; +city::1724489;Bocaue;Bocaue; +city::1724767;Bislig;BPH;Bislig;Bislig City;Bislig Lakanbalen;Dakbayan sa Bislig;Kota Bislig;Lungsod ng Bislig;bi si li ge shi;bslg;بسلگ;比斯利格市; +city::1724933;Binonga;Binonga; +city::1725094;Binangonan;Binangonan; +city::1725115;Binan;Binan;Binan City;Binyang;Biñan;Biñan City;Biñán;Ciudad nin Binan;Ciudad nin Biñan;Kota Binan;Kota Biñan;Lungsod ng Binan;Lungsod ng Biñan;bngan;بنگان; +city::1726280;Batangas;Batangas;Batangas City;Батангас; +city::1726339;Batac City;City of Batac;Ciudad ti Batac;Lungsod ng Batac; +city::1727400;Banga;Banga;Bañga; +city::1727995;Baliuag;Baliuag;Baliwag;Balíuag; +city::1728336;Balayan;Balajan;Balayan;Балаян; +city::1728523;Balanga;Balanga City;Kota Balanga;Syudad Balanga;balanga siti;balanga batan;بالانگا، باتآن;बलांगा सिटी; +city::1728584;Balagtas;Balagtas;Tabang; +city::1728772;Bais;Bais;Bais City;Bais Lakanbalen;Bajs;Ciudad ti Bais;Dakbayan sa Bais;Kota Bais;bays nygrws shrqy;jzyrt byz;Байс;بایس، نیگروس شرقی;جزيرة بيز; +city::1728930;Baguio;BAG;Bagijas;Bagio;Baguio;Baguio City;Baguio Lakanbalen;Ciudad ti Baguio;Dakbayan sa Baguio;Kota Baguio;Lungsod ng Baguio;Siyudad na Baguio;Syudad nin Baguio;ba keiy w;bagio;bagyw;bi yao shi;pakiyo;Багио;باگیؤ;باگیو;பாகியோ;บาเกียว;バギオ;碧瑶市;바기오; +city::1729085;Bago City;Bago;City of Bago; +city::1729524;Bacoor;Bacoor Lakanbalen;Bakoor;Lungsod ng Bacoor;bakwwr;Бакоор;باکوور; +city::1729564;Bacolod City;BCD;Baclod City;Bacolod;Bacolod City;Bacoloo City;Bacólod;Ciudad ti Bacolod;Dakbayan sa Bacolod;Lungsod ng Bacolod;Syudad han Bacolod; +city::1730225;Arayat;Arayat; +city::1730413;Apalit;Apalit; +city::1730501;Antipolo;; +city::1730713;Angono;Angono; +city::1730737;Angeles City;Angeles;Angeles City;CRK;anghelleseu;앙헬레스; +city::1978681;Malingao;Malingao; +city::7290466;Pasig City;Pasig; +city::1162004;Khairpur;Khaipur;Khairpur;Khairpur Mirs;Khairpur Mīrs;Khajrpura;Хайрпура; +city::1162105;Zhob;Apozai;Fort Sandeman;Fort Sanderman;PZH;Zhob; +city::1162456;Wazirabad;Wazirabad;Wazīrābād; +city::1162813;Vihari;Vehari;Vihari;Vihāri; +city::1163054;Turbat;TUK;Turbat;trbt;tu er ba te;turbt;Турбат;تربت;تُربت;土爾巴特; +city::1163272;Toba Tek Singh;Toba Tek Singh; +city::1163952;Tando Muhammad Khan;Tando Mohammad Khan;Tando Muhammad Khan;Tando Muhammad Khān; +city::1163965;Tando Allahyar;Tando Alahyar;Tando Allahyar;Tando Allāhyār; +city::1163967;Tando Adam;; +city::1164216;Swabi;Swabi;Swābi; +city::1164408;Sukkur;Gorad Sukur;SKZ;Sukkur;Sukur;Sukuras;Szukkur;Szukkúr;sakhkhara;sakkaru;skr;skr pakstan;su ku er;sukuleu;Горад Сукур;Суккур;Сукур;سکر;سکر، پاکستان;سکھر;सख्खर;サッカル;蘇庫爾;수쿠르; +city::1164896;Sibi;Ibis;SBQ;Sibi;Sibis;sby;Сиби;Сібі;سبي;سبی; +city::1164909;Sialkot;Gorad Sijalkot;SKT;Sialkot;Sialkotas;Sialkote;Sijalkot;Siālkot;ciyalkot;shiarukoto;si'alakota;sialkoteu;siyalakota;syalkwt pakstan;syalkwٹ;xi ya er ke te;Горад Сіялкот;Сиалкот;Сиялкот;Сијалкот;سيالکوټ;سیالکوت، پاکستان;سیالکوٹ;सियालकोट;শিয়ালকোট;ਸਿਆਲਕੋਟ;சியால்கோட்;സിയാൽകോട്ട്;シアールコート;锡亚尔科特;시알코트; +city::1164970;Shujaabad;Shujaabad;Shujabad;Shujāābād; +city::1164987;Shorkot;Shorko;Shorkot; +city::1165108;Shikarpur;Shikarpur;Shikārpur; +city::1165221;Sheikhupura;Qila Sheikhupura;Sekhupura;Sheikhu Pura;Sheikhupura;Sheikkhupura;Shekhupura;Shekhūpura;Shekkhupura;ceykkuppura;sekhupura;shykhwpwra;shykhwpwrh;shykhwpwrh pakstan;xie hu bu er;Śekhupura;Шеикхупура;Шекхупура;شيخوپوره;شیخوپورا;شیخوپوره، پاکستان;شیخوپورہ;ਸ਼ੇਖ਼ੂਪੁਰਾ;சேய்க்குப்புரா;謝胡布爾; +city::1165388;Shakargarh;Shakargarh;Shakargarr; +city::1165569;Shahkot;Shah kot;Shahkot;Shāh kot;Shāhkot; +city::1165635;Shahdadpur;Shahdadpur;Shāhdādpur; +city::1165638;Shahdad Kot;Shahdad Kot;Shahdadkot;Shahdadpur;Shahdād Kot;Shāhdādkot;Shāhdādpur; +city::1165744;Shabqadar;Shabgadar Fort;Shabkadar;Shabqadar;Shapqadar; +city::1166000;Sargodha;SGI;Sargoda;Sargodha;Sargodkha;sa ge da;saleugoda;saragodha;sarugoda;srgwdha;Саргода;Саргодха;سرگودها;سرگودھا;सरगोढा;ਸਰਗੋਧਾ;サルゴーダー;萨戈达;사르고다; +city::1166146;Sangla Hill;Sangla Hill; +city::1166164;Sanghar;Sangar;Sanghar;Sānghar; +city::1166265;Sambrial;Sambrial;Sambriāl; +city::1166548;Sahiwal;Gorad Sakhival;Montgomery;SWN;Sahivalas;Sahiwal;Sakhival;Sāhīwāl;sa xi wa er;sahivala;sahywal;sahywal pakstan;saہiwal;Горад Сахівал;Сахивал;ساهيوال;ساهیوال، پاکستان;ساہِيوال;ساہیوال;साहिवाल;ਸਾਹੀਵਾਲ;薩希瓦爾; +city::1166652;Sadiqabad;Sadikabad;Sadiqabad;Sādikābād;Sādiqābād; +city::1166827;Rohri;Lohri;Rohri;rohari;روہڑی;रोहड़ी; +city::1166993;Rawalpindi;Ralalpindi;Ravalpindi;Ravalpindis;Rawalpindi;Rawalpindî;Rávalpindí;Rāvalpindi;Rāwalpindi;iravalpinti;la wa er pin di;lawalpindi;ra'oyalapindi;ravalapidi;ravalapindi;ravalpyndy;rawa lpin di;rawarupindi;rawlbndy;rawlpndy;Равалпинди;Равалпінді;Ռավալպինդի;רוואלפינדי;راولبندي;راولپندی;راولپنڈی;راولپنڈی شہر;راولپنډي;راۋالپىندى;रावलपिंडी;रावळपिंडी;রাওয়ালপিন্ডি;ਰਾਵਲਪਿੰਡੀ;இராவல்பிண்டி;റാവൽപിണ്ടി;ราวัลปินดี;ラーワルピンディー;拉瓦尔品第;라왈핀디; +city::1167380;Rajanpur;Rajanpur;Rājanpur; +city::1167507;Chenab Nagar;Chenab Nagar;Chenāb Nagar;Rabwah;Rabwāh; +city::1167528;Quetta;Gorad Kveta;Ketta;Kotah;Kueta;Kveta;Kvetta;Kvéta;Kwatah;Kweta;Quetta;Shal;Shalkot;Shāl;Shālkot;UET;khewt ta;ko'ita;koyeta;kuetta;kui da;kuvetta;kverra;kveta;kvetta;kweta;kwyth;Горад Квета;Квета;Кветта;Куета;كويته;کوئٹہ;کوټه;کویته;क्वेटा;क्वेट्टा;কোয়েটা;ਕੋਇਟਾ;குவெட்டா;ക്വെറ്റ;ක්වේටා‍;เควตตา;კვეტა;クエッタ;奎達;퀘타; +city::1167622;Kambar;Kambar;Qambar;Камбар; +city::1168197;Peshawar;Gorad Peshavar;PEW;Pesabar;Pesavar;Pesavara;Pesavaras;Pesavaro;Pesaver;Peschawar;Peshavar;Peshawar;Peshovar;Pesjawar;Peszawar;Pexauar;Peŝavaro;Peşaver;Pešavaras;Pešāvara;Pişəvər;Péšávar;bai sha wa;byshawr;pecavar;pes war;pesa'oyara;pesavara;peshawaru;pesyawaleu;pshawr;pyshawr;Πεσαβάρ;Горад Пешавар;Пешавар;Փեշավար;פשאוור;بيشاور;پشاور;پیشاور;پېشاۋار;پېښور;पेशावर;পেশাওয়ার;ਪੇਸ਼ਾਵਰ;பெசாவர்;പെഷവാർ;เปศวาร์;პეშავარი;ペシャーワル;白沙瓦;페샤와르; +city::1168226;Pattoki;Mandi Pattoki;Pattoki;ptwky;tsyl ptwky;Паттоки;تصیل پتوکی;پتوكى; +city::1168307;Pasrur;Pasrur;Pasrūr;Pasur;Pasūr; +city::1168412;Pano Aqil;Pano Akil;Pano Aqil;Pāno Āqil; +city::1168555;Pakpattan;Pakpattan;Pākpattan; +city::1168718;Okara;Okara;Okāra;Окара; +city::1169116;Nawabshah;Nawabshah;Nawābshāh;WNS; +city::1169278;Narowal;Narowal;Nārowāl; +city::1169372;Nankana Sahib;Nanakana Sahib;Nankana Municipality;Nankana Sahib;Nankāna Sāhib; +city::1169605;Muzaffargarh;Muzafargarkh;Muzafargaro;Muzaffargar;Muzaffargarh;Muzaffargarkh;Muzaffargharh;mu zha fa er ge er xian;muzaffaragarha;mzfr grh pakstan;Музафаргарх;Музаффаргар;Музаффаргарх;مظفر گره، پاکستان;مظفر گڑھ;मुज़फ़्फ़रगढ़;穆扎法尔格尔县; +city::1169607;Muzaffarabad;MFG;Musaffarabad;Musaffarābād;Muzafarabad;Muzaffarabad;Музафарабад; +city::1169692;Muridke;Muridke;Murīdke; +city::1169825;Multan;MUX;Multan;Multanas;Multān;mu er tan;multan;murutan;Мултан;مُلتان;ムルターン;木爾坦; +city::1170013;Moro;; +city::1170295;Mirpur Khas;MPD;Mirpur Khas;Mirpur-Khas;mi er bu er ha si;myr pwr khas;myrpwr khas;myrpwr khas pakstan;Мирпур Хас;Мирпур-Хас;ميرپور خاص;میر پور خاص;میرپور خاص;میرپور خاص، پاکستان;მირპურქასი;米爾布爾哈斯; +city::1170395;Mingora;Mingaora;Mingora;Mingāora;migora;ming ge la;ming jiao la;ming-gola;myngwra;myngwrh;Мингаора;Мингора;مينگوره;مینګورہ;مینگورا;مینگوره;مینگورہ;ਮਿੰਗੋਰਾ;明戈拉;明绞拉;밍고라; +city::1170425;Mianwali;MWD;Mianwali;Miānwāli; +city::1170486;Mian Channun;Mian Channu;Mian Channun;Miān Channūn; +city::1170667;Matli;; +city::1170880;Mardan;Mardan;Mardanas;Mardān;ma er dan;mrdan;Мардан;مردان;馬爾丹; +city::1170951;Mansehra;Mansehra;Mansekhra;Mānsehra;Мансехра; +city::1171123;Mandi Bahauddin;Bahauddin;Mandi Bahauddin;Mandi Bahāuddīn; +city::1171502;Mailsi;Mailsi; +city::1171965;Lodhran;Lodhran;Lodhrān; +city::1172035;Layyah;Layyah;Leiah; +city::1172128;Larkana;Larkana;Larkane;Larkāna;Lārkāna;Ларкане; +city::1172318;Lala Musa;Lala Musa;Lalamusa;Lāla Mūsa; +city::1172451;Lahore;Gorad Lakhor;LHE;Lachori;Lahaur;Lahor;Lahora;Lahoras;Lahore;Lahorium;Lakhor;Lohur;Láhaur;Lâhore;Lāhaur;la h xr;la he er;lahaura;laholeu;lahor;lahora;lahori;lahwr;lakur;lwہwr;rahoru;Λαχόρη;Горад Лахор;Лахор;Լահոր;לאהור;لاهور;لاھور;لاھۆر;لاہور;لوہوٗر;لہور;लाहोर;लाहौर;লাহোর;ਲਹੌਰ;લાહોર;லாகூர்;లాహోర్;ಲಾಹೋರ್;ലാഹോർ;ลาฮอร์;ლაჰორი;ラホール;ラーホール;拉合尔;拉合爾;라호르; +city::1172904;Kotri;Koti;Kotri;Котри;کوٹری; +city::1173055;Kotli;Kotli; +city::1173378;Kot Addu;Kot Addu;Kot-Adu; +city::1173491;Kohat;Kohat;Kohāt;Kokhat;OHT;Кохат; +city::1173664;Khuzdar;KDD;Khozdar;Khuzdar;Khuzdār; +city::1173687;Khushab;Khushab;Khushah;Khushāb; +city::1174042;Kharian;Kharian;Khāriān; +city::1174167;Khanpur;Khanpur;Khānpur; +city::1174625;Kasur;Kansur;Kansūr;Kasur;Kasūr;Касур; +city::1174872;Karachi;Carachi;Gorad Karachy;KHI;Karaaji;Karaces;Karachi;Karachi - krachy;Karachi - كراچى;Karaci;Karacio;Karacis;Karacsi;Karaczi;Karanchi;Karatschi;Karatsi;Karatsji;Karatxi;Karaçi;Karaĉio;Karači;Karačis;Karačės;Karochi;Karáči;Karáčí;Karâchi;Karāchi;Karāči;Keraci;Keraçî;Kurrachee;Kurrachi;Kəraçi;ka la qi;ka ra ci;kalachi;karaaci;karacci;karachi;karachy;karaci;karatshy;ke la chi;krachy;kratshy;pechs;qrʼzy;Καράτσι;Горад Карачы;Карачи;Карачі;Կարաչի;קאראטשי;קראצי;كاراتشى;كاراچى;كراتشي;کراچی;کراچۍ;کَرٲچی;کەراچی;ڪراچي;ކަރާޗީ;कराची;করাচী;কৰাচী;ਕਰਾਚੀ;કરાચી;କରାଚୀ;கராச்சி;కరాచీ;ಕರಾಚಿ;കറാച്ചി;การาจี;ཀ་ར་ཆི;ကရာချိမြို့;კარაჩი;ከራቺ;カラチ;カラーチー;卡拉奇;喀拉蚩;카라치; +city::1175021;Kandhkot;; +city::1175088;Kamoke;Kamoke;Kamoki;Kāmoke;Kāmoki; +city::1175156;Kamalia;Kamalia;Kamālia; +city::1175446;Kohror Pakka;Kahror;Kehror Pakka Town;Kharor;Kohror Pakka; +city::1175560;Kabirwala;; +city::1175864;Jhelum;Alessandria Bucefala;Dzelam;Dzelamas;Dzhelam;Dźhelam;Dželamas;Jhelam;Jhelum;jehalama;jellum;jhelama sahara;jhlm;jie he lei mu;Џелам;Джелам;جهلم;جہلم;جێھلۆم;झेलम शहर;ਜੇਹਲਮ;傑赫勒姆;젤룸; +city::1175892;Jhang Sadr;Jhang Marghiana;Jhang Marghiānā;Jhang Sadar;Jhang Sadr;Jhang-Maghiana;Jhang-Maghiāna;Maghiana;Maghiāna; +city::1176106;Jaranwala;Jaranwala;Jarānwāla; +city::1176241;Jampur;; +city::1176368;Jalalpur Jattan;Jalalpur;Jalalpur Jattan;Jalalpur Jattān;Jalālpur; +city::1176515;Jacobabad;JAG;Jacobabad;Jacobadad;Jacobābād;Jacobādad; +city::1176615;Islamabad;Gorad Islamabad;ISB;Islamabad;Islamabada;Islamabadas;Islamabade;Islamabadi;Islamabado;Islamahbad;Islamampant;Islàmabad;Islámábád;Islāmābād;Islāmābāda;Iszlamabad;Iszlámábád;aslam abad;isalamabada;iseullamabadeu;islamabad;islamabada;islamabadi;islamapat;isuramabado;xislamabad;yi si lan bao;yyslamabad;yyslamyabad;Îslamabad;İslamabad;Ισλαμαμπάντ;Ісламабад;Горад Ісламабад;Исламабад;Իսլամաբադ;איסלאמאבאד;איסלמבאד;إسلام آباد;ئىسلامئاباد;ئیسلاماباد;اسلام آباد;اسلام اباد;اسلام‌آباد;އިސްލާމްއާބާދު;इस्लामाबाद;ইসলামাবাদ;ਇਸਲਾਮਾਬਾਦ;ઇસ્લામાબાદ;ଇସଲାମାବାଦ;இஸ்லாமாபாத்;ಇಸ್ಲಾಮಾಬಾದ್;ഇസ്ലാമബാദ്;อิสลามาบัด;ཨི་སི་ལམ་བོ།;ისლამაბადი;ኢስላማባድ;イスラマバード;伊斯兰堡;伊斯蘭堡;이슬라마바드; +city::1176734;Hyderabad;Chainterampant;HDD;Haidarabad;Haidarabadas;Hajdarabad;Hajderabado;Haydarabad;Haydarobod;Hiderabad;Hiderábád;Hyderabad;Hyderabad i Pakistan;Hyderâbâd;Hyderābād;Khajdarabad;Khajderabad;aitarapat;hai de la ba;haidarabad;haidarabada;haidarabadi;haidelabadeu;haiderabado;hydr abad;hydrabad;hydrabad snڌ;Χαϊντεραμπάντ;Хайдарабад;Хајдерабад;היידראבאד;حيدر آباد;حيدرآباد، سنڌ;حیدرآباد;حیدرآباد، سندھ;हैदराबाद;हैदराबाद्;ਹੈਦਰਾਬਾਦ;ஐதராபாத்;ჰაიდარაბადი;ハイデラバード;海得拉巴;하이데라바드; +city::1176800;Hujra Shah Muqim;Hujra;Hujra Shah Muqim;Hujra Shāh Muqim; +city::1176997;Haveli Lakha;Haveli;Haveli Lakha; +city::1177042;Hasilpur;Hasilpur;Hasipur;Hāsilpur;Hāsipur; +city::1177073;Haru Zbad;Badruwala Mandi;Badruwāla Mandi;Haroonabad Municipality;Haru Zbad;Harunabad;Hārūnābād; +city::1177107;Haripur;Haripur;Harīpur;Kharipur;Харипур; +city::1177384;Hafizabad;Hafizabad;Hāfizābād; +city::1177446;Gwadar;GWD;Gorad Gvadar;Gvadar;Gvadaras;Gwadar;Gwadur;Gwādar;gua da er;guwadaru;gvadara;gwadaleu;gwadr;jwadr;Гвадар;Горад Гвадар;جوادر;گوادر;ग्वादर;グワーダル;瓜达尔;瓜達爾;과다르; +city::1177654;Gujrat;GRT;Gudzharat;Gujrat;Gujrāt;gjrat;Гуджарат;گجرات; +city::1177662;Gujranwala;Gajranvala;Gujranwala;Gujrānwāla;Гайранвала;گوجرانوالہ; +city::1177682;Gujar Khan;Gujar Khan;Gujar Khān;Gūjar Khān; +city::1178231;Gojra;Godzhra;Gojra;gwjra;gwjrh pakstan;Годжра;Гојра;گوجرا;گوجره، پاکستان;گوجرہ; +city::1178456;Ghotki;Ghotki;Gotki; +city::1179400;Faisalabad;Faisalabad;Faisalabada;Faisalābad;Faisalābād;Faisalābāda;Fajsalabad;Feisalabadas;Fejsalabade;LYP;Lyallpur;Shah Faisalabad;faisarabado;fysl abad;Фейсалабаде;فيصل آباد;فیصل آباد;ファイサラバード;ファイサラーバード; +city::1179760;Dipalpur;Dipalpur;Dīpālpur; +city::1180281;Dera Ismail Khan;DSK;Dera Ismail Khan;Dera Ismāīl Khān; +city::1180289;Dera Ghazi Khan;DEA;Dera Gazi Chanas;Dera Gazi Hano;Dera Gazi Khan;Dera Gazi Ĥano;Dera Ghazi Khan;Dera Ghoz Khan;Dera Ghāzi Khān;Dera-Gazi-Khan;Deri-Ghazi Khan;de la jia qi han;de ra ka si khan;dera gazi khana;Дера Гази Хан;Дера-Гази-Хан;دیره غازی‌خان، پاکستان;ڈیرہ غازی خان;ډېره غازي خان;डेरा ग़ाज़ी ख़ान;เดรากาซีข่าน;德拉加齊汗; +city::1180809;Dadu;DDU;Dadu;Dādu;dadu;دادُو; +city::1180942;Chunian;Chunian;Chūniān; +city::1180983;Chuhar Kana;Chuchar-kana Mandi;Chuhar Kana;Chuhar Kand;Chūhar Kāna;Chūhar Kānd; +city::1181073;Chishtian;Chishtian;Chishtian Mandi;Chishtiān;Chishtiān Mandi;Chistian; +city::1181096;Chiniot;Chaniot;Chiniot;Chinot;chnywt pakstan;ji ni ao de;Чиниот;چنيوټ;چنیوت، پاکستان;چنیوٹ;吉尼奧德; +city::1181163;Chichawatni;Chichawatni;Chīchāwatni; +city::1181439;Charsadda;Charsadda;Chārsadda; +city::1181611;Chaman;Caman;Camanas;Chaman;camana;chaman;chmn;Çaman;Čamanas;Чаман;چمن;चमन;チャマン;차만; +city::1181636;Chakwal;Chakwal;Chakwāl; +city::1182092;Burewala;; +city::1182637;Bhimbar;Bhimbar;Bhimber; +city::1182787;Bhalwal;Bhalwal;Bhalwāl; +city::1182815;Bhakkar;Bhakkar; +city::1182829;Bhai Pheru;Bhai Pheru;Bhar Pheru;Bhāi Pheru;Mian-ki-Maur;Miān-ki-Maur;Phool Nagar; +city::1183105;Battagram;Batagram;Batagrām;Batgram;Batgran;Batgrām;Batgrān;Battagram;Battagram City;Battagrām; +city::1183880;Bahawalpur;BHV;Bahawalpur;Bahāwalpur;Bakhavalpura;Бахавалпура; +city::1183883;Bahawalnagar;Bahawalnagar;Bahawalpur;Bahawatnagar;Bahawâlpur;Bahāwalnagar;بہاولپور; +city::1184055;Badin;BDN;Badin;bdyn‎;Бадин;بدين‎; +city::1184249;Attock City;Attock City;Campbellpore;Campbellpur; +city::1184370;Arifwala;Arifwala;Ārifwāla; +city::1184845;Ahmadpur East;Ahmadpur;Ahmadpur East;Ahmedpur East;Ahmedpur East Municipality; +city::1185056;Abbottabad;Abbottabad;Abbottābād;Абботтабад; +city::1332083;Bahawalnagar;Bahawalnagar;Bahāwalnagar; +city::1341204;Nowshera Cantonment;; +city::753142;Zoliborz;Zalborz;Zalbórz; +city::753866;Zamosc;Gorad Zamasc';Zamosc;Zamosc';Zamosca;Zamoscia;Zamose;Zamoshc;Zamoshch;Zamost'ye;Zamoste;Zamostja;Zamosts;Zamostė;Zamost’ye;Zamość;jamosichi;sa mxchch;zamoshichi;zamostsi;zha mo xi qi;zmwsz;Ζάμοστς;Горад Замасць;Замостя;Замосць;Замошч;Замошћ;Զամոշչ;זמושץ;ซามอชช์;ზამოსცი;ザモシチ;扎莫希奇;자모시치; +city::755330;Wola;Volja;Воля; +city::756092;Wawer;; +city::756135;Warsaw;warszawie;Barsobia;Varsa;Varsava;Varsavia;Varsavja;Varshava;Varshavae;Varsja;Varsjá;Varso;Varsova;Varsovia;Varsovia - Warszawa;Varsovie;Varsovio;Varssavi;Varsuva;Varsòvia;Varsó;Varsóvia;Varşova;Varšava;Varšuva;Varșovia;Vársá;WAW;Warsaw;Warsawa;Warschau;Warskou;Warszaw;Warszawa;Waršawa;baleusyaba;hua sha;varshava;vorso;warsw;warushawa;wrsh;wrshw;wrsw;wxrsx;Βαρσοβία;Варшавæ;Варшава;Վարշավա;ווארשע;ורשה;װאַרשע;وارسو;ورشو;ۋارشاۋا;ܘܪܣܘ;वॉर्सो;วอร์ซอ;ვარშავა;ዋርሶው;ワルシャワ;华沙;華沙;바르샤바;warszawskiej;warszawska; +city::756867;Tomaszow Mazowiecki;Mazovijos Tomasuvas;Mazovijos Tomašuvas;Thomasovia;Tomashov Mazovecki;Tomashov Mazovjecki;Tomashuv-Mazovec'kij;Tomashuv-Mazovecki;Tomashuv-Mazoveckij;Tomasova Mazovecka;Tomaszow;Tomaszow Mazowiecki;Tomaszów;Tomaszów Mazowiecki;Tomašova Mazovecka;ma zuo fu she de qu tuo ma shu fu;twmswb mzwbyyzqy;tx ma chuf ma sx weiyt ski;Томашов Мазовецки;Томашов Мазовјецки;Томашув-Мазовецки;Томашув-Мазовецкий;Томашув-Мазовецький;טומשוב מזובייצקי;ตอมาชูฟมาซอเวียตสกี;馬佐夫舍地區托馬舒夫; +city::757026;Tarnow;Gorad Tarnuu;Tarnov;Tarnova;Tarnow;Tarnuv;Tarnuvas;Tarnuw;Tarnów;Tarnůw;ta er nu fu;taleunupeu;tarnwf;tarunufu;trnwb;Горад Тарнуў;Тарнов;Тарнув;טארנע;טרנוב;تارنوف;タルヌフ;塔爾努夫;타르누프; +city::757033;Tarnobrzeg;Gorad Tarnobzhag;Nova Tarnovia;QEP;Tarnobjeg;Tarnobrzeg;Tarnobrzyg;Tarnobzega;Tarnobzegas;Tarnobzheg;Tarnobzhege;Tarnobžega;Tarnobžegas;ta er nuo bu re ge;taleunobeujekeu;tarnwbzk;tarunobujeku;trnwbzg;Горад Тарнобжаг;Тарнобжег;Тарнобжеге;דזשיקאוו;טרנובזג;تارنوبزک;タルノブジェク;塔尔诺布热格;타르노브제크; +city::757065;Targowek;Targuvek;Таргувек; +city::757718;Suwalki;Gorad Suvalki;Suvalkai;Suvalki;Suwalki;Suwalkie;Suwałki;su wa wu ji;subauki;suvu~auki;Горад Сувалкі;Сувалки;סובאלק;スヴァウキ;苏瓦乌基;수바우키; +city::758390;Starachowice;Starachovices;Starachovicės;Starachovitse;Starachowice;Starachowice-Wierzbnik;Starahovice;Starakhovice;si ta la huo wei cai;strhwbyzh;Σταραχοβίτσε;Стараховице;Стараховіце;סטרחוביצה;斯塔拉霍維采; +city::758445;Stalowa Wola;QXQ;Stal'ova Volja;Staliova Volia;Staljova-Volja;Stalova Vola;Stalowa Wola;Stalowo Wola;si ta luo wa wo la;Сталова Вола;Стальова Воля;Сталёва-Воля;斯塔洛瓦沃拉; +city::758470;Srodmiescie;Seredmistja;Sredmest'e;Srodmiescie;Warszawa-Srodmiescie;Warszawa-Śródmieście;shrudmieshtsie;Śródmieście;Середмістя;Средместье;შრუდმიეშციე; +city::759412;Siedlce;Gorad Sedl'cy;Sedl'ce;Sedl'tse;Sedlce;Sedlcos;Shedulce;Siedlce;Sjedlice;sdlyz;siedeulche;xie de er cai;Горад Седльцы;Седльце;Сједлице;Шедълце;שדליץ;שעדליץ;謝德爾采;시에들체; +city::759734;Rzeszow;Gorad Zhehshau;Jesuv;Jeşuv;RZE;Reichshof;Resov;Resovia;Rjashiv;Rzeszow;Rzeszuw;Rzeszów;Rzeszůw;Zesova;Zesuv;Zesuvas;Zheshev;Zheshov;Zheshuv;che chuf;jeshufu;jesyupeu;jyshwf;re shu fu;zhshwf;zswb;Řešov;Žešova;Žešuv;Žešuvas;Горад Жэшаў;Жешов;Жешув;Ряшів;זשוב;ריישע;جيشوف;ژشوف;เชชูฟ;ジェシュフ;热舒夫;제슈프; +city::760778;Radom;Gorad Radam;La-to-me;Là-tô-mê;RDO;Radom;Radoma;Radomas;Radum;Radům;Rantom;la duo mu;ladom;rad xm;radomi;radomu;radwm;Ράντομ;Горад Радам;Радом;Ռադոմ;ראדום;ראדעם;رادوم;ราดอม;რადომი;ラドム;拉多姆;라돔; +city::761168;Przemysl;Peremishl';Peremishl’;Peremyshl';Peremyshl’;Peremyslis;Peremyšlis;Premislia;Premysl;Przemysl;Przemyśl;Psemisla;Pshemishul;Pshemisl;Pshemys'l';Pshemysl';Pshemys’l’;Přemyšl;Pšemisla;peusyemisil;psmysl;pu re mei xi er;pushemu~ishiru;Перемишль;Перемышль;Пшемисл;Пшемишъл;Пшемысль;פשמישל;פשעמישל;プシェムィシル;普热梅希尔;프셰미실; +city::761228;Pruszkow;Prushkov;Prushkuv;Pruskova;Pruskuvas;Pruszkow;Pruszków;Pruškova;Pruškuvas;pu lu si ke fu;purushukufu;Прушков;Прушкув;プルシュクフ;普魯斯科夫; +city::762863;Ostrowiec Swietokrzyski;Ostrovec Shventokshiski;Ostrovec'-Sventokshis'kij;Ostrovec-Sventokshiskij;Ostrovec-Sventokshizhski;Ostroveca Sventoksiska;Ostroveca Sventokšiska;Ostrovets;Ostrovjec Svjentokshiski;Ostrowiec;Ostrowiec Kielecki;Ostrowiec Swietokrzyski;Ostrowiec nad Kamienna;Ostrowiec nad Kamienną;Ostrowiec Świętokrzyski;Svento Kryziaus Ostrovecas;sheng shi zi de qu ao si te luo wei ci;xx st rx weiytschfeiyn txk chi ski;Švento Kryžiaus Ostrovecas;ʼwstrwbyyz swwyyntwqzysqy;Островец Швентокшиски;Островец-Свентокшижски;Островец-Свентокшиский;Островець-Свентокшиський;Островјец Свјентокшиски;אוסטרובייץ שוויינטוקזיסקי;אסטראווצע;ออสตรอเวียตซ์ชเฟียนตอกชิสกี;聖十字地區奧斯特羅維茨; +city::762909;Ostroleka;Gorad Astralehnka;Ostroleka;Ostrolenka;Ostrołęka;ao si te luo wen ka;oseuteulowengka;osutorou~enka;Горад Астралэнка;Остроленка;אוסטרולנקה;オストロウェンカ;奧斯特羅文卡;오스트로웽카; +city::763166;Olsztyn;Allenshteyn;Allenstein;Ol'shtyn;Olsztyn;QYO;Ольштын; +city::763442;Ochota;Okhota;Охота; +city::763534;Nowy Sacz;Gorad Novy-Sonch;Naujasis Soncas;Naujasis Sončas;Neu Sandez;Neu-Sandec;Novi Sonca;Novi Sonch;Novi Sonča;Novij Sonch;Novy Sonch;Novy-Sonch;Novyy Sandets;Novyy Sonch;Nowi Soncz;Nowi Sóncz;Nowy Sacz;Nowy Suncz;Nowy Sącz;Nowy Sůncz;Ujszandec;nobisongchi;novi-sonchi;nowy.sontc;nwby swnz;nwwy swnts;xin song qi;Újszandec;Горад Новы-Сонч;Нови Сонч;Новий Сонч;Новы Сонч;Новы-Сонч;נובי סונץ;צאנז;نووی سونتس;ნოვი-სონჩი;ノヴィ・ソンチ;新松奇;노비송치; +city::764484;Mokotow;Mokotuv;Мокотув; +city::764849;Mielec;Melec;Melec';Meleca;Melecas;Melets;Mielec;Mjelec;mei lai ci;mi xe let s;myylz;Мелец;Мелець;Мјелец;מיילץ;มีเอเลตส์;梅萊茨; +city::765876;Lublin;Gorad Ljublin;LUZ;Lioblens;Lioblėns;Liublinas;Ljublin;Ljublin osh;Ljublin shaary;Loumplin;Lu-pu-lim;Lubblinu;Lublin;Lublina;Lublino;Lublinum;Lueblin;Lyublin;Lû-pu-lìm;Lüblin;lbln;lu bu lin;lub lin;lubeullin;lublina;lublini;lwblyn;ruburin;Ļubļina;Λούμπλιν;Горад Люблін;Лублин;Люблин;Люблин ош;Люблин шаары;Люблін;Լյուբլին;לובלין;لبلن;لوبلين;لوبلین;लुब्लिन;ลูบลิน;ლუბლინი;ルブリン;卢布林;盧布林;루블린; +city::766027;Lomza;Gorad Lomzha;Lomsa;Lomza;Lomzha;Lomža;lwmzh;u~omuja;wo mu zha;womja;wxm cha;Łomża;Горад Ломжа;Ломжа;לומזה;วอมชา;ウォムジャ;沃姆扎;웜자; +city::766555;Legionowo;Jablonna-Legionowo;Jabłonna-Legionowo;Leg'onovo;Legionovas;Legionovo;Legionowo;Legonovo;lai ji ao nuo wo;Легионово;Легьоново;Леґьоново;萊吉奧諾沃; +city::769250;Kielce;Gorad Kel'cy;Kel'ce;Kel'tsy;Kelcai;Kelce;Khai-ngi-chhai;Khái-ngì-chhái;Kielce;Kjelce;QKI;kai er cai;kielche;kyerutsu~e;kylch;kylsy;kylts;qyylzh;Горад Кельцы;Келце;Кельце;Кјелце;Кјељце;קיילצה;קעלץ;كيلسي;کیئلتسہ;کیلتس;کیلچ;კელცე;キェルツェ;凯尔采;키엘체; +city::772621;Elk;Ehlk;Elk;Elka;Ełk;Lik;Lukas;Lyck;ai wu ke;euku;xelk;Елк;Элк;אלק;เอลก์;エウク;埃烏克; +city::774558;Chelm;Chelm;Chelmas;Chełm;Gorad Khehlm;Helma;Khelm;Kholm;hai wu mu;he-um;heumu;hlm;Горад Хэлм;Хелм;Холм;חלם;ヘウム;海乌姆;헤움; +city::776029;Bielany;; +city::776069;Bialystok;Balstoge;Balstogė;Belostok;Belostoko;Bialistok;Bialystok;Białystok;Bilostok;Bjalistok;Bjalistoka;Bjalistoko;Bjelostock;Bjolystok;Bjołystok;Byelostok;Gorad Belastok;QYY;bi ya wei si tuo ke;biawiseutokeu;byalystwk;byau~isutoku;byawystwk;Μπιάλιστοκ;Белосток;Бялисток;Білосток;Бјалисток;Горад Беласток;ביאליסטאק;ביאליסטוק;بیالیستوک;بیاویستوک;ბელოსტოკი;ビャウィストク;比亚韦斯托克;비아위스토크; +city::776103;Bialoleka;; +city::776175;Biala Podlaska;Alba;BXP;Biala Podlaska;Biała Podlaska;Bila Pidljas'ka;Bjala Podlaska;Bjala Podljaska;Bjala-Podljaska;Gorad Bjala-Padljaska;Palenkes Biala;Palenkės Biala;bi ya wa-bo de la si ka;biawapodeullaseuka;Бяла Подляска;Бяла-Подляска;Біла Підляська;Бјала Подласка;Горад Бяла-Падляска;ביאלא פודולסק;ביאלע;比亞瓦-波德拉斯卡;비아와포들라스카; +city::776251;Bemowo;Bemovo;Бемово; +city::3080004;Zory;Gorad Zhory;Sohrau;Zhori;Zhory;Zori;Zoros;Zory;ch xrux;joli;joru~i;ruo lei;Żory;Žori;Žoros;Žory;Горад Жоры;Жори;Жоры;ชอรือ;ジョルィ;若雷;조리; +city::3080165;Zielona Gora;Gorad Zjaljona-Gura;Gruentberg;Grunberg;Grünberg;IEG;Prasia Elysiorum;Zelena Gura;Zeliona Gura;Zeljona-Gura;Zeloena Gur;Zelona Gura;Zelono Gora;Zelonô Góra;Zelöna Gur;Zhel'ona Gora;Zielona Gora;Zielona Gura;Zielona Góra;Zielona Nkora;Zjelona Gora;jiellonagula;jlwna ghwra;lu shan cheng;zhlwna gwra;zhylwna gwra;zylwna gwra;Ζιελόνα Γκόρα;Горад Зялёна-Гура;Жельона Гора;Зелена Гура;Зелёна-Гура;Зјелона Гора;Զիելոնա Գուրա;جلونا غورا;زیلونا گورا;ژلونا گورا;ژیلونا گورا;แชลอนากูรา;ジェロナ・グラ;綠山城;지엘로나구라; +city::3080251;Zgierz;Gorad Zgezh;Zgeza;Zgezas;Zgezh;Zgeža;Zgežas;Zgierz;Zgjezh;Znkies;ci gai ri;jeugiesi;sex keiyr ch;zgyyz;zugyeshi;Ζγκιες;Горад Згеж;Згеж;Згјеж;זגייז;เซอเกียร์ช;ズギェシ;兹盖日;즈기에시; +city::3080526;Zawiercie;Zaverce;Zaverche;Zavercis;Zavertse;Zaviercis;Zavjerce;Zawiercie;zha wei er qie;zwwyyrzh;Заверце;Заверче;Завјерће;זוויירצה;扎维尔切; +city::3080985;Zabrze;Gorad Zabzheh;Hindenburg;Zabje;Zaborze;Zabrze;Zabzas;Zabze;Zabzhe;Zabžas;Zabže;Zobrze;jabeuje;sab che;zabjh;zabuje;zabzhh;zha bu re;zʼbzh;Горад Забжэ;Забже;Զաբժե;זאבזה;زابجه;زابژه;زبرزے;ซาบเช;ザブジェ;扎布热;자브제; +city::3081368;Wroclaw;Brassel;Breslau;Breslavia;Breslavl';Breslavl’;Gorad Vroclau;Vratislav;Vratislavia;Vroclav;Vroclava;Vroclavas;Vroclavo;Vroklave;Vroslav;Vrotslav;WRO;Wroclaw;Wroclow;Wrocław;Wrocłow;Wroklaw;Wroslaw;Wrosław;Wrócław;beulocheuwapeu;frwtswaf;fu luo ci wa fu;viratscahp;vrotsavapha;vrotslavi;vurotsuwafu;w rxtswaf;wrwslaw;wrwtswaf;wrwzlb;Βρότσλαβ;Вроцлав;Горад Вроцлаў;ברעסלוי;ורוצלב;فروتسواف;وروتسواف;وروسلاو;ڤرۆتسواف;व्रोत्सवाफ;விராத்ஸ்சாஃப்;วรอตสวัฟ;ვროცლავი;ヴロツワフ;弗罗茨瓦夫;브로츠와프;Wrocławska; +city::3081741;Wloclawek;Gorad Ulaclavak;Leslau;Vloclavek;Vloclaveka;Vloclavekas;Wloclawek;Włocławek;beuwocheuwabekeu;fu wo ci wa wei ke;fwtswafk;vuu~otsuwavu~eku;w wxts wa wek;Влоцлавек;Горад Улацлавак;ולוצלאווק;فوتسوافك;ووتس‌واوک;ววอตซวาเวก;ヴウォツワヴェク;弗沃茨瓦韦克;브워츠와베크; +city::3082707;Walbrzych;Gorad Valbzhykh;Valbzhikh;Valbziha;Valbzychas;Valbžiha;Valbžychas;Walbrzych;Waldenburg;Waldenburg in Schlesien;Wałbrzych;baubeujiheu;vu~aubujifu;wa lb cik;wa wu bu ri he;wawb jykh;wawb zhykh;wlbzyk;Валбжих;Горад Валбжых;ולבזיך;واوب جيخ;واوب ژیخ;วาลบ์จิก;ヴァウブジフ;瓦烏布日赫;바우브지흐; +city::3082914;Tychy;Tichau;Tihi;Tikhi;Tychos;Tychy;Tykhy;Tıhı;di hei;thi khi;tihi;tixa;tyshy;Тихи;Тыхы;تیشی;ทิคี;ティヒ;蒂黑;티히; +city::3083271;Torun;Gorad Torun';Thorn;Thorunium;Torn;Toroun;Torun;Torun';Toruna;Torune;Toruni;Torunj;Torunė;Toruń;Toruņa;Toruň;Torń;Torůń;thx run;tolun;torun;trwny;tuo lun;twrwn;twryny;Τόρουν;Горад Торунь;Торун;Торунь;Торуњ;טורון;ترونی;تورون;تورینی;تۆرون;ทอรูน;ტორუნი;トルン;托伦;토룬; +city::3083426;Tczew;Derszewo;Dirschau;Dërszewò;Tceva;Tcevas;Tchev;Tczew;Tčeva;Tčevas;Тчев; +city::3083440;Tarnowskie Gory;Tarnovs'ki Guri;Tarnovske Gori;Tarnovske Gurai;Tarnovske Guri;Tarnovske-Gury;Tarnovskje Gori;Tarnowitz;Tarnowske Gury;Tarnowske Gůry;Tarnowskie Gory;Tarnowskie Góry;ta er nuo fu si kai gu lei;taleunopeuseukieguli;Тарновске Гори;Тарновске-Гуры;Тарновскје Гори;Тарновські Гури;タルノフスキェ・グルィ;塔爾諾夫斯凱古雷;타르노프스키에구리; +city::3083829;Szczecin;Estetino;Estettin;Gorad Shchehcin;SZZ;Scecin;Scecina;Scecinas;Scetsin;Shchechin;Shchecin;Shchekin;Shchetsin;Shchétsin;Shhechin;Shhecin;Stetin;Stettin;Stettino;Stettinum;Stsetsin;Szczecin;Szczetno;Szczëtno;Sztetin;shchchyn;shchetsini;shen qie qing;shshychn;shttyn;shuchechin;stecina;syuchechin;sz'z'yn;Şçetsin;Şçeçin;Štetín;Štětín;Šćećin;Ščecin;Ščecina;Ščecinas;Στσέτσιν;Горад Шчэцін;Шчечин;Шчећин;Шчеќин;Шчэцін;Щецин;Щечин;שטעטין;שצ'צ'ין;شتتين;ششیچن;شچچین;श्टेचिन;შჩეცინი;シュチェチン;什切青;슈체친; +city::3083988;Swietochlowice;Sbietochlobitse;Schweintochlitz;Schwientochlowitz;Shventokhlovice;Sventochlovices;Sventochlovicės;Sventohlovice;Sventokhlovice;Svintohuvitso;Svjentokhlovice;Svjetohlovice;Swietochlowice;Swjyntochlowicy;ashfyntwkhwwytsh;shfyntwkhwfytsh;shifientofuu~ovu~itsu~e;sibiengtoheuwobiche;swwyyntwhlwbyzh;xi wei tuo he luo wei cai;Świętochłowice;Śwjyntochlowicy;Ŝvintohuvitso;Σβιετοχλόβιτσε;Свентохловице;Свентохловіце;Свјентохловице;Швентохловице;שוויינטוחלוביצה;اشفینتوخوویتسه;شفينتوخوفيتسه;シフィエントフウォヴィツェ;希维托赫洛维采;시비엥토흐워비체; +city::3084093;Swidnica;Schweidnitz;Schweidnitz-Schlesian;Schweinitz;Shvidnica;Svidnica;Svidnice;Svidnicja;Svidņica;Svídnice;Swidnica;swwydnyzh;xi wei de ni cha;Świdnica;Свидница;Свидњица;Свідниця;Швидница;שווידניצה;希维德尼察; +city::3084840;Stargard;Gorad Stargard;Stargard;Stargard Shchechinski;Stargard Szczecinski;Stargard Szczeciński;Stargard-Shhecins'kij;Stargarda;Stargardas;Stargardia;Starnkarnt;Starogrod;Storgard;Stôrgard;Szczecinski Stargard;Szczećiński Stargard;astargart ashchchynsky;s tar kard chche ching ski;seutaleugaleuteusyuchechinseuki;shen qie qing jiu cheng;starghard ztsysynsky;sutarugaruto;Στάργκαρντ;Горад Старгард;Старгард;Старгард Шчечински;Старгард-Щецинський;استارگارت اشچچینسکی;ستارغارد زتسيسينسكي;สตาร์การ์ดชเชชีงสกี;スタルガルト;什切青旧城;스타르가르트슈체친스키; +city::3085128;Sosnowiec;Sosnovec;Sosnoveca;Sosnovecas;Sosnovice;Sosnowez;Sosnowiec;Sossnowitz;Сосновец; +city::3085450;Slupsk;Gorad Slupsk;Slups'k;Slupsk;Slupska;Slupskas;Stolp;Stolp in Pommern;Stolpe;Stolpsk;Stôłpsk;Słupsk;seuubseukeu;si wu pu si ke;suupusuku;swwbsk;swwpsk;Горад Слупск;Слупск;Слупськ;سووبسك;سووپسک;スウプスク;斯武普斯克;스웁스크; +city::3086024;Siemianowice Slaskie;Semjanovice Slonske;Semjanovice-Shl'ons'ki;Semjanovice-Sljonske;Shemjanovice Silezko;Siemianowice;Siemianowice Slaskie;Siemianowice Śląskie;Siemianowitz;Silezijos Semianovicai;Symjanowicy;siemianobichesillongseukie;xi long si ke de qu xie mi ya nuo wei cai;Śymjanowicy;Семяновице-Слёнске;Семяновіце-Шльонські;Шемяновице Силезко;シェミャノヴィツェ・シロンスキェ;希隆斯克地區謝米亞諾維采;시에미아노비체실롱스키에; +city::3086586;Rybnik;Gorad Rybnik;Ribnik;Ribnika;Ribņika;Rimpnik;Rybnik;Rybnikas;Rybńik;lei bu ni ke;libeunikeu;rbnyk;ribuniku;rybnyk;Ρίμπνικ;Горад Рыбнік;Рибник;Рибњик;Рыбник;ربنیک;ريبنيك;リブニク;雷布尼克;리브니크; +city::3086800;Ruda Slaska;Ruda;Ruda O.S.;Ruda Silezka;Ruda Slaska;Ruda Slonska;Ruda Śląska;Ruda-Shl'ons'ka;Ruda-Slenska;Ruda-Sljonskaja;Silezijos Ruda;Slunsko Ruda;lu da xi long si ka;ludasillongseuka;ru das lxn ska;rwda shlwska;Ślůnsko Ruda;Руда Силезка;Руда-Сленска;Руда-Слёнская;Руда-Шльонська;رودا شلوسکا;รูดาซลอนสกา;ルダ・シロンスカ;鲁达希隆斯卡;루다실롱스카; +city::3087584;Raciborz;Gorad Racibuzh;Racebuzos;Rachibozh;Raciborz;Raciboza;Racibozh;Raciboža;Raciburz;Racibuzas;Racibuzh;Racibužas;Racibórz;Racėbužos;Rakibozh;Rasibuj;Ratibor;Ratiboria;Ratiboř;Ratihor;Ratsibuj;Ratsimporz;Raćibůrz;la qi bu ri;lachibusi;ra chi burch;rachibushu;rasiborj;rasybwrz;rtybwr;Ρατσίμπορζ;Горад Рацібуж;Ратибор;Рацибуж;Рачибож;Раћибож;Раќибож;ראטיבאר;רטיבור;راسيبورز;راسیبورز;रसिबोर्ज्;ราชีบุร์ช;ラチブシュ;拉齐布日;라치부시; +city::3088171;Poznan;Gorad Poznan';POZ;Po-tsu-nam;Posen;Posnania;Poznan;Poznan';Poznan' osh;Poznana;Poznane;Poznanj;Poznano;Poznany;Poznanė;Poznań;Poznańy;Poznaņa;Poznaň;Poznon;Pòznóń;Pô-tsṳ-nàm;Pоznan;bo zi nan;bwznan;phx snan;pocunan;pojeunan;pojhnana;pozunan;pwyzn;pwznan;pwznn;Πόζναν;Горад Познань;Познан;Познань;Познань ош;Познањ;Պոզնան;פוזנן;פויזן;بوزنان;پوزنان;پۆزنان;पोझ्नान;போசுனான்;พอซนาน;ཕྰོ་ཟོ་ནན།;პოზნანი;ポズナン;波茲南;포즈난; +city::3088825;Plock;Gorad Plock;Ploc'k;Plock;Plocka;Plockas;Plotsk;Płock;bwtsk;peuwocheukeu;plwzq;pu wo ci ke;puu~otsuku;pwtsk;Горад Плоцк;Плоцк;Плоцьк;Պլոցկ;פלאצק;פלוצק;بوتسك;پوتسک;プウォツク;普沃茨克;프워츠크; +city::3088972;Piotrkow Trybunalski;Gorad Pjotrkau-Trybunal'ski;P'oturkov Tribunalski;Petrakavas;Petrikau;Petrokov;Piotrkow;Piotrkow Trybunalski;Piotrków;Piotrków Trybunalski;Pjotrkov Tribunalski;Pjotrkova Tribunalska;Pjotrkuv-Tribunal's'kij;Pjotrkuv-Trybunal'ski;Pjotrkuv-Trybunal'skij;bi de ku fu te lei bu na er si ji;pi yxtr kuft rux bunal ski;pioteuleukupeuteulibunalseuki;pywtrqwb trybwnlsqy;Горад Пётркаў-Трыбунальскі;Пйотркув-Трибунальський;Пьотърков Трибуналски;Пётркув-Трыбунальски;Пётркув-Трыбунальский;Пјотрков Трибуналски;פיוטרקוב טריבונלסקי;פיעטרקאוו;ปียอตร์กุฟตรือบูนัลสกี;ピョートルクフ・トルィブナルスキ;彼得庫夫特雷布納爾斯基;피오트르쿠프트리부날스키; +city::3089033;Pila;Gorad Pila;Piela;Pila;Pily;Piéła;Piła;Schneidemuhl;Schneidemühl;pi wa;piwa;Горад Піла;Пила;Пилы;Піла;ピワ;皮瓦;피와; +city::3089125;Piekary Slaskie;Gorad Pjakary Sljonske;Pekarai;Pekari Shl'onske;Pekari Slonski;Pekari-Shl'ons'ki;Pekary-Shljonske;Pekary-Sljonske;Piekary Slaskie;Piekary Wielkie;Piekary Śląskie;Pjekari Slonskje;Pjekary;piekalisillongseukie;xi long si ke de qu pei ka lei;Горад Пякары Слёнске;Пекари Шльонске;Пекари-Шльонські;Пекары-Слёнске;Пекары-Шлёнске;Пјекари Слонскје;ピェカルィ・シロンスキェ;希隆斯克地區佩卡雷;피에카리실롱스키에; +city::3089578;Pabianice;Pab'janice;Pab'janicy;Pab'yanitsy;Pabianice;Pabianices;Pabianicės;Pabjanice;Pabjaņice;Pab’yanitsy;pa bi ya ni cai;Паб'яніцы;Пабьянице;Пабянице;Пабяніце;Пабјањице;פביאניצה;帕比亞尼采; +city::3089684;Ostrow Wielkopolski;Didziosios Lenkijos Ostruvas;Didžiosios Lenkijos Ostruvas;Gorad Ostrau-Vel'kapol'ski;Ostrov;Ostrov Velkopolski;Ostrov Vjelkopolski;Ostrova Velkopolska;Ostrovia;Ostrovo;Ostrow;Ostrow Wielkopolski;Ostruv-Vel'kopol'ski;Ostruv-Vel'kopol'skij;Ostruv-Velikopol's'kij;Ostrów;Ostrów Wielkopolski;QDG;Wjelgopolski Uostruw;Wjelgopolski Uostrůw;awstrw wlkwbwlysky;da bo lan de qu ao si te lu fu;Горад Остраў-Велькапольскі;Остров Велкополски;Остров Вјелкополски;Острув-Великопольський;Острув-Велькопольски;Острув-Велькопольский;اوسترو ولكوبوليسكي;大波蘭地區奧斯特魯夫; +city::3090048;Opole;Gorad Apole;Opole;Opoli;Opolí;Opolė;Oppein;Oppeln;Uopole;abwlwsky;ao bo lai;awpwl;awpwlh;opolle;opore;xx pxle;Òpòle;Горад Аполе;Ополе;אופולה;أبولوسكي;اوپول;اوپوله;ออปอเล;オポーレ;奥波莱;오폴레; +city::3091232;Myslowice;Gorad Myslavicy;Mislovice;Myslovice;Myslovices;Myslovicės;Myslowice;Myslowicy;Mysłowice;mei si wo wei cai;miseuwobiche;mu~isuu~ovu~itsu~e;Горад Мыславіцы;Мисловице;Мисловіце;Мысловице;ムィスウォヴィツェ;梅斯沃維采;미스워비체; +city::3092931;Lubin;Gorad Ljubin;Liubinas;Ljubin;Luben;Lubin;Lubina;Luebin;Lüben;Lübin;lu bin;lubin;lwbyn;lyubina;rubin;Горад Любін;Лубин;Любин;Любін;לובין;ल्युबिन;ルビン;盧賓;루빈; +city::3093133;Lodz;Gorad Lodz';Litzmannstadt;Lo-tsu;Lodz;Lodz';Lodz' osh;Lodza;Lodze;Lodzia;Lodzo;Lodzė;Lodž;Log;Loj;Lotz;Luc;Ludz;Luz;Lò-tsṳ;lodzi;luo ci;luo zi;lwdz;uchi;utchi;vutsa;wuch;wwch;wwdj;Łódź;Łůdź;Λοτζ;Горад Лодзь;Лодз;Лодзь;Лодзь ош;Лођ;Лоѓ;Луӟ;Լոձ;לאדזש;לודז;لودز;وودج;ووچ;वूत्श;วูช;ლოძი;ウッチ;罗兹;羅茲;우치; +city::3093524;Leszno;Gorad Leshna;Leshno;Lesnas;Lesno;Leszno;Lešnas;Lešno;Lissa;lai shen nuo;lesyuno;lsnw;reshuno;Горад Лешна;Лешно;ליסא;לשנו;レシュノ;莱什诺;레슈노; +city::3093692;Legnica;Gorad Ljagnica;Legnica;Legnicja;Legņica;Lehnice;Liegnitz;Lignica;Lignitium;Ligńica;lai ge ni cha;legeunicha;lghnytsa;lgnytsa;lgnyzh;regunitsu~a;Горад Лягніца;Легница;Легниця;Легњица;Լեգնիցա;לגניצה;لغنيتسا;لگنیتسا;レグニツァ;萊格尼察;레그니차; +city::3094802;Krakow;Carcovia;Cracau;Cracaû;Cracovia;Cracovie;Cracow;Cracòvia;Cracóvia;Gorad Krakau;KRK;Kraka;Krakau;Krakiv;Krakko;Krakkó;Krakobia;Krakov;Krakova;Krakovi;Krakovia;Krakovija;Krakovja;Krakovo;Krakow;Krakowo;Krakuw;Kraká;Krakòwò;Krakóvia;Kraków;Krakůw;Krakоv;Krokuva;ke la ke fu;keulakupeu;kraku f;krakupha;krakwf;kurakufu;qrqwb;Κρακοβία;Горад Кракаў;Краков;Краковия;Краків;Կրակով;קראקע;קרקוב;كراكوف;کراکوف;क्राकूफ;กรากุฟ;ကရားကော့မြို့;კრაკოვი;クラクフ;克拉科夫;크라쿠프; +city::3095049;Koszalin;Gorad Kashalin;Kezlin;Koeslin;Kosalina;Kosalinas;Koshalin;Koslin;Koszaleno;Koszalin;Košalina;Košalinas;Kòszalëno;Köslin;OSZ;Scurgum;ke sha lin;kosharin;kosyallin;kshalyn;kx chalin;Горад Кашалін;Кошалин;Кошалін;كشالين;کشالین;กอชาลิน;コシャリン;科沙林;코샬린; +city::3095321;Konin;Gorad Konin;Konin;Konina;Koninas;Koņina;ke ning;konin;kwnyn;qwnyn;Горад Конін;Конин;Конін;קונין;كونين;科寧;코닌; +city::3096372;Kedzierzyn-Kozle;Heydebreck;Kandrzin;Kandrzin Pogorzelletz;Kandrzin-Kozle;Kandrzin-Koźle;Kedzierzyn;Kedzierzyn-Kozle;Kendzezhin-Koz'le;Kendzezhin-Kozle;Kendzezina-Kozle;Kendzezynas-Kozle;Kendzežynas-Kozlė;Kendzhezhin-Kozhle;Keņdzežina-Kozle;Kędzierzyn;Kędzierzyn-Koźle;ken jie ren ke zi lai;Кенджежин-Кожле;Кендзежин-Козле;Кендзежин-Козьле;Кенђежин Козле;แกนแจชึน-กอชแล;肯傑任科茲萊; +city::3096472;Katowice;Catowice;Gorad Katavicy;KTW;Katobitse;Katovica;Katovicai;Katovice;Katovice osh;Katovicum;Katovits;Katovitse;Katovîts;Katowice;Katowicy;Katowihi;Kattowitz;Kha-thok-vi-chu;Khà-thok-vì-chṳ;Stalinogorod;Stalinograd;Stalinogrod;Stalinogród;ka tuo wei ci;ka tuo wei zhi;ka tuo wei zi;katobiche;katovis'sa;katovitsa;katovitses;katovu~itsu~e;katwfytsh;katwwch;katwwyts;ketovis;kha to wit se;kha to wits;kyatobhisa;mstkhdm:mhmd alqyrwany;qtwbyz;tcadrkatovitse;Κάτοβιτσε;Κατοβίτσε;Κατοβιτσε;Горад Катавіцы;Катовица;Катовице;Катовице ош;Катовіце;Կատովիցե;קאטאוויץ;קטוביץ;كاتوفيتسه;مستخدم:محمد القيرواني;کاتووچ;کاتوویتس;ކެޓޮވިސް;कातोवित्सा;क्याटोभिस;ಕತೋವೀಸ್ಸ;คะโตวิตซ;คาโตวีตเซ;კატოვიცე;ካቶቪጸ;カトヴィツェ;卡托維治;卡托维兹;카토비체; +city::3096880;Kalisz;Gorad Kalish;Kalis;Kalisa;Kalisas;Kalisch;Kalish;Kalisz;Kališa;Kališas;ka li shen;kallisi;kalysh;karishu;Горад Каліш;Калиш;Каліш;Կալիշ;קאליש;كاليش;کالیش;カリシュ;卡利什;칼리시; +city::3097257;Jelenia Gora;Hirschberg;Hirschberg im Riesengebirge;Hirschberg in Schlesien;Jelena Gura;Jelenia Gora;Jelenia Góra;Jelenja Gura;Jeleņa Gura;yelleniagula;Йеленя Гура;옐레니아구라; +city::3097333;Jaworzno;Gorad Javozhna;Javozhno;Javoznas;Javozno;Javožnas;Javožno;Jaworzno;Jaworzyna;ya wo ri nuo;yabojuno;yafwrjnw;yavu~ojuno;yawwzhnw;Горад Явожна;Явожно;يافورجنو;یاووژنو;ヤヴォジュノ;亚沃日诺;야보주노; +city::3097391;Jastrzebie Zdroj;Jastrzebie Zdroj;Jastrzebie-Zdroj;Jastrzębie Zdrój;Jastrzębie-Zdrój;Jastsembe Zdroja;Jastšembe Zdroja; +city::3097872;Inowroclaw;Gorad Inauroclau;Hohensalza;Inovroclav;Inovroclava;Inovroclavas;Inovrotslav;Inowraclaw;Inowracław;Inowroclaw;Inowrocław;Irownoclaw;inovurotsuwafu;xi nxw rxtswaf;yi nuo fu luo ci wa fu;Іновроцлав;Горад Інаўроцлаў;Иновроцлав;อีนอวรอตสวัฟ;イノヴロツワフ;伊诺弗罗茨瓦夫; +city::3098218;Grudziadz;Gorad Grudzjondz;Graudenz;Gredzadz;Grudz'ondz;Grudzendz;Grudzh'ondz;Grudziadz;Grudziondzas;Grudziądz;Grudzjondz;Grudzjondza;Grudzundz;Grudzëndz;Grudźůndz;Grëdządz;ge lu qiong zi;geulujiongcheu;ghrwjwnts;grwjwnts;gurujontsu;kru cxn ts;Горад Грудзёндз;Груджьондз;Грудзендз;Грудзьондз;Грудзёндз;Груђондз;غروجونتس;گروجونتس;กรูจอนตส์;グルジョンツ;格魯瓊茲;그루지옹츠; +city::3098722;Gorzow Wielkopolski;Gorad Gozhau Vel'kapol'ski;Gorzow Wielkopolski;Gorzuw Wjelgopolski;Gorzów Wielkopolski;Gorzůw Wjelgopolski;Gozhov Velkopolski;Gozhov Vjelkopolski;Gozhuv-Vel'kopol's'kij;Gozhuv-Vel'kopol'ski;Gozhuv-Vel'kopol'skij;Gozova Velkopolska;Gozuv-Velkopolski;Gozuvas;Gožova Velkopolska;Gožuv-Velkopolski;Gožuvas;Ladzbarg;Landsberg;Landsberg an der Warthe;Landsbergum;Lãdzbarg;Thai Po-lan Thi-khi Ko-yi-fu;Thai Pô-làn Thi-khî Kô-yî-fû;da bo lan de qu ge ru fu;ghwrjwf wylkwbwlsky;gojupeubielkopolseuki;gwrzhwf wylkwpwlsky;gwrzhww wyylwpwlsky;gwzwb wyylqwpwlsqy;kxr sufwei yl khx pxl ski;Гожов Велкополски;Гожов Вјелкополски;Гожув-Велькопольски;Гожув-Велькопольский;Горад Гожаў Велькапольскі;Ґожув-Велькопольський;Գորժուվ-Վելկապոլսկացի;גוזוב ויילקופולסקי;غورجوف ويلكوبولسكي;گورژوف ویلکوپولسکی;گورژوو ویئلوپولسکی;กอร์ซูฟเวียลคอปอลสกี;ゴジュフ・ヴィエルコポルスキ;大波蘭地區戈茹夫;고주프비엘코폴스키; +city::3099112;Gniezno;Gnesen;Gnesna;Gnezno;Gnieznas;Gniezno;Gorad Gnezna;Gņezno;Hnezdno;Hnězdno;ge nie ci nuo;geuniejeuno;gnezno;gnyyznw;gunyezuno;gynyzna;k neiy snx;Гнезно;Горад Гнезна;Гњезно;גנייזנו;گینیزنا;กเนียซนอ;გნეზნო;グニェズノ;格涅兹诺;그니에즈노; +city::3099213;Glogow;Glogau;Glogov;Glogova;Glogovia;Glogow;Gloguv;Gloguvas;Gloguw;Głogów;Głogůw;Hlohov;Hlohow;Hłohow;ge wo gu fu;geuwogupeu;glwgwb;guu~ogufu;k wx kuf;Глогов;Глогув;Ґлоґув;גלוגוב;กวอกูฟ;グウォグフ;格沃古夫;그워구프; +city::3099230;Gliwice;Gleiwitz;Glivice;Glivices;Glivicės;Glivitse;Gliwice;Gliwice-Sosnowiec;Glywicy;Gorad Glivicy;QLC;ge li wei cai;geullibiche;ghlyfytsh;glivisa;glybyzh;glywytsh;gurivu~itsu~e;Гливице;Глівіце;Горад Глівіцы;Гљивице;Գլիվիցե;גליביצה;غليفيتسه;گلیویتسه;گلیویتسہ;ग्लिविस;グリヴィツェ;格利维采;글리비체; +city::3099424;Gdynia;Civitas Gdinensis;Gdina;Gdingen;Gdinio;Gdiniô;Gdinja;Gdinya;Gdiņa;Gdyna;Gdyne;Gdynia;Gdynja;Gdynė;Gdyně;Gdyńa;Gdyňa;Gorad Gdynja;Gotenhafen;Gothenhafen;Kak-ten-ni-a;Kak-tên-nì-â;Nkntinia;QYD;gdinia;gdnya;gdynyh;ge ding ni ya;geudinia;ghdynya;gudinya;Γκντίνια;Гдиня;Гдиња;Гдыня;Горад Гдыня;Գդինյա;גדיניה;غدينيا;گدنیا;გდინია;グディニャ;格丁尼亚;그디니아; +city::3099434;Gdansk;Danceke;Dancigo;Dantsic;Danzica;Danzig;Dànzica;GDN;Gdan'sk;Gdanjsk;Gdans'k;Gdansk;Gdanska;Gdanskas;Gdańsk;Gdaņska;Gdaňsk;Gdunsk;Gduńsk;Gedanum;Gorad Gdan'sk;Gothiscandza;Gudan'sku;Gydanysg;Nkntansk;Qdansk;gadanska;gdansk;gdnsq;ge dan si ke;geudanseukeu;ghdansk;gudanisuku;katansk;kday sk;Γκντανσκ;Гданск;Гданськ;Гданьск;Гдањск;Горад Гданьск;Гъданьскъ;Գդանսկ;גדנסק;דאנציג;غدانسك;گدانسک;गदान्स्क;கதான்ஸ்க்;กดัญสก์;გდანსკი;グダニスク;格但斯克;그단스크; +city::3099654;Fordon;; +city::3099759;Elblag;Ehl'blong;El'bleng;El'blong;Elbing;Elbinga;Elbingas;Elbl'ong;Elblag;Elblong;Elblonga;Elbląg;Elwing;El’blëng;Gorad Ehl'bljong;Ilfingburg;ZBG;ai er bu long ge;alblng;alblngh;elbeullongkeu;eruburonku;xe lb lxng k;Горад Эльблёнг;Елблаг;Елбльонг;Ельблонг;Эльблонг;אלבלונג;البلنغ;البلنگ;เอลบลองก์;エルブロンク;埃爾布隆格;엘블롱크; +city::3100796;Dabrowa Gornicza;Dabrowa Gornicza;Dombrova Gurnica;Dombrova Gurnicha;Dombrova Gurniča;Dombrova Gurņiča;Dombrova-Gurnicha;Dombrowa;Dumbrowa;Dąbrowa Górnicza;Důmbrowa;dong bu luo wa gu er ni qia;dongbeulobaguleunicha;dwmbrwbh;dwmbrwwh gwrnycha;Домброва Гурнича;Домброва-Гурнича;דומברובה;دومبرووه گورنیچا;ドンブロヴァ・グルニチャ;栋布罗瓦古尔尼恰;동브로바구르니차; +city::3100946;Czestochowa;CZW;Censtakava;Censtochova;Censtohova;Censtokhova;Chenstochov;Chenstokhov;Chenstokhova;Czenstochau;Czestochowa;Czynstochowy;Częstochowa;Gorad Chanstakhova;Khim-su-thok-khok-nga;Khìm-sṳ̂-thok-khok-ngá;Tschenstochau;chen s to kho wa;chengseutohoba;chensutohovu~a;chstwhwwa;qin si tuo huo wa;tshystwkhwfa;znstwhwbh;Çenstohova;Čenstakava;Čenstochová;Čenstohova;Горад Чанстахова;Ченстохова;Ӵенстохова;Չեստոխովա;צנסטוחובה;تشيستوخوفا;چستوهووا;เชนสโตโควา;チェンストホヴァ;琴斯托霍瓦;쳉스토호바; +city::3101619;Chorzow;Cherzow;Cherzów;Chorzow;Chorzuw;Chorzów;Chorzůw;Chozuvas;Chožuvas;Gorad Khozhau;Hozova;Hožova;Khozhov;Khozhuv;Konigshutte;Krolewska Huta;Królewska Huta;Königshütte;Xozuv;hojufu;hojupeu;huo ru fu;khwjwf;khwzhwf;Горад Хожаў;Хожов;Хожув;Խոժուվ;خوجوف;خوژوف;ホジュフ;霍茹夫;호주프; +city::3101950;Bytom;Beuthen;Bithomia;Bitom;Bitoma;Bytom;Bytomas;Bytun;Bytůń;Bıtom;Gorad Bytam;bi tuo mu;bitom;bitomu;bytwm;Битом;Бытом;Горад Бытaм;ביטום;بیتوم;ビトム;比托姆;비톰; +city::3102014;Bydgoszcz;BZG;Bedgoszcza;Bidgosc;Bidgosca;Bidgoshch;Bidgoshh;Bidgošč;Bidgošča;Bidqos;Bintnkos;Brombarg;Bromberch;Bromberg;Bydgoscius;Bydgoshh;Bydgostia;Bydgoszcz;Bydgoščius;Bydhost;Bydhošť;Bëdgòszcza;Bıdgoşç;Bıdqoş;Gorad Bydgashch;bi de ge shen;bideugosyuchi;bidgoshchi;bu~idogoshuchu;bydghwshtsh;bydgwshch;bydgwsz;Μπιντγκός;Бидгошч;Бидгощ;Быдгощ;Горад Быдгашч;בידגאש;בידגושץ;بيدغوشتش;بیدگوشچ;ბიდგოშჩი;ブィドゴシュチュ;比得哥什;비드고슈치; +city::3103402;Bielsko-Biala;Bel's'ko-Bjala;Bel'sko-Bjala;Belsko-Biala;Belsko-Bjala;Biala;Biala Krakowska;Biała;Biała Krakowska;Bielsko-Biala;Bielsko-Biała;Bilsko-Bela;Bjelsko-Bjala;Bjylsko-Bjolo;Bjylsko-Bjoło;Byala;Bílsko-Bělá;bie er si ke-bi ya wa;bielseukobiawa;byerusuko=byawa;bylskw byawa;Белско-Бяла;Бельско-Бяла;Бельсько-Бяла;Бјелско-Бјала;ביילסקו-ביאלה;بیلسکو بیاوا;ビェルスコ=ビャワ;别尔斯科-比亚瓦;비엘스코비아와; +city::3103709;Belchatow;Belchatow;Belchatuvas;Belhatova;Belkhatov;Belkhatuv;Bełchatów;be-uhatupeu;bei wu ha tu fu;beuhato~ufu;blhtwb;Белхатов;Белхатув;בלחטוב;ベウハトゥフ;貝烏哈圖夫;베우하투프; +city::3103719;Bedzin;Bedzin;Bendzhin;Bendzin;Bendzina;Bendzinas;Beņdzina;Będzin;ben jin;bengjin;bndyn;Бенджин;Бендзин;Бенђин;בנדין;בענדין;แบนจิน;本津;벵진; +city::6545326;Ursynow;Ursinuv;Ursynov;Урсинув;Урсынов; +city::6545347;Praga Polnoc;; +city::6545348;Praga Poludnie;; +city::4562831;Bayamon;Bajamon;Bajamonas;Bayamon;Bayamón;ba a meng;bayamana;bayamon;bayamwn;Баямон;Бајамон;بايامون;বায়ামন;バヤモン;巴阿蒙;바야몬; +city::4563008;Caguas;Kaguas;Kaguasas;Kagvas;ka gua si;kaguasu;kaguraasa;Кагвас;Кагуас;קגואס;کاگواس، پورٹو ریکو;কাগুৱাস;カグアス;卡瓜斯; +city::4563243;Carolina;San Fernando de la Carolina; +city::4565119;Guaynabo;; +city::4566385;Mayagueez;MAZ;Magiagoues;Majaguehs;Majagues;Majaguesas;Majagvez;Mayagueez;Mayaguez;Mayagüez;ma ya gui si;mayaguesu;mayaguraeja;mayagvejha;mayagweseu;Μαγιαγουές;Маягуес;Маягуэс;Мајагвез;מאיאגואס;مایاگویس، پورٹو ریکو;मायाग्वेझ;মায়াগুৱেজ;マヤグエス;馬亞圭斯;마야궤스; +city::4566880;Ponce;La Ciudad Senorial;La Ciudad de las Quenepas;La Perla del Sur;PSE;Ponce;Ponce Senorial;Ponse;Ponsė;Porto 4 e Ponce;The Pearl of the 54 uth;pang sai;ponse;Понсе;ポンセ;龐塞;폰세; +city::4568127;San Juan;Caparra;Ciudad de Puerto Rico;Gorad San-Khuan;Portorico;Prico;Puerto Rico;SJU;Saint Iuan;Saint John de Porto Rico;Sainte Jean de Porto-rico;San Chouan;San Chuanas;San Huan;San Ian de Porto Rico;San Ioanni;San Jean de Portorico;San Juan;San Juan Batista de Puerto Rico;San Juan Bautistade de Puerto Rico;San Juan de Puerto Rico;San Khuan;San Xoan;San Xoán;San Xuan;San-Juano;San-Khuan;Sanhuana;The City of Saint John;Ville de Porto-Rico;Ville de Sainte Jean de Porto Rico;can van;saenhwan;san hwn;san khwan;san-khuani;sana hu'ana;sana huraana;sanfuan;sanhuan;sheng hu an;Σαν Χουάν;Горад Сан-Хуан;Сан Хуан;Сан-Хуан;Սան Խուան;סן חואן;سان خوآن;سان خوان;सान हुआन;সান হুৱান;ਸਾਨ ਹੁਆਨ;சான் வான்;ซานฮวน;სან-ხუანი;サンフアン;圣胡安;산후안;샌환; +city::4568451;Trujillo Alto;Trukhil'jo-Al'to;Trukhilo Alto;shang te lu xi e;teuluhiyoalto;trwzhylw altw pwrtwrykw;Трухиљо Алто;Трухільйо-Альто;تروخیلو التو، پورٹو ریکو;تروژیلو آلتو، پورتوریکو;上特魯希略;트루히요알토; +city::281102;Rafah;Er Rafa;Rafa;Rafaa;Rafah;Rafakh;Rafaḩ;Rafia;Rafiah;Rafīah;Raphia;Rifah;Ràfia;la fa shi;rfh;rpyh;Рафа;Рафах;רפיח;رفح;拉法市; +city::281124;Khan Yunis;Hanut Yona;Hanūt Yōnā;Jan Yunis;Jan Yunís;Khan Younes;Khan Younis;Khan Yumus;Khan Yunis;Khan Yunus;Khan-Junis;Khān Yūnis;Khān Yūnus;Yunas;Yunus;khan ywns;Хан-Юнис;خان يونس; +city::281129;Jabalya;Dzhabalija;Jabalia;Jabaliya;Jabalya;Jabāliyā;Jabālyā;jbalya;Джабалия;جباليا; +city::281133;Gaza;Azzah;Dakbayan sa Gaza;GZA;Gaesa;Gasa;Gaz;Gaza;Gaza City;Gaza by;Gaza-urbo;Gazae;Gazze;Ghazah;Ghazza;Ghazzah;Ghazze;Ghazzi;Ghuzze;Gàsa;Gáza;Qəzza;Xeze;`Azza;`Azzā;gaja;gaja sahara;gaja siti;gajha;gaza;gaza sahira;ghzh;ghzt;jia sa;jia sha;jia sha cheng;kaca;Γάζα;Газa;Газæ;Газа;Газзә;Ղազա;עזה;غزة;غزه;غزہ;غەززە;ग़ज़ा;गाजा शहर;गाझा;গাজা সিটি;ਗ਼ਜ਼ਾ ਸ਼ਹਿਰ;காசா;ガザ;加沙;加沙城;加薩;가자; +city::281141;Dayr al Balah;Belar;Dayr al Balah;Dayr al Balaḩ;Deir el-Balah;Der el Bela;Dier El Balah;dyr alblh;دير البلح; +city::281145;Bayt Lahya;Bayt Lahiya;Bayt Lahiyah;Bayt Lahya;Bayt Lāhiya;Bayt Lāhiyah;Bayt Lāhyā;Beit Lahia;Beit Lahiya;Beit Lahya;Beit Lāhiya;byt lahya;بيت لاهيا; +city::282615;Nablus;Flavia Neapolis;Nablus;Nablusas;Nablusz;Nabulus;Namplous;Naplouse;Naplusa;Napouse;Neapolis;Náblus;Náblusz;Nāblus;Schechem;Shechem;Shekhem;Sichem;Sihhem;Siquem;Sychem;Sykhem;ZDF;na bu lu si;nabeulluseu;nabls;nablws;naburusu;skm;Ναμπλούς;Наблус;שכם;نابلس;نابلوس;ナーブルス;納布盧斯;나블루스; +city::285066;Hebron;Al Khalil;Al Khalīl;Al-Khalil;Chevrona;El Halil;El Khalil;El Khulil;Gorad Kheuron;Habrun;Hebrom;Hebron;Hebronas;Hebroni;Hebrón;Hevron;Hevrōn;Hébron;Khalil';Khalil-el-Rahman;Khebron;Khevron;alkhlyl;epiron;hbrwn;hebarana;hebeulon;hebrona;heburon;hi brxn;xi bo lun;Əl Xəlil;Χεβρώνα;Горад Хеўрон;Халиль;Хеброн;Хеврон;Әл-Халил;חברון;الخليل;الخلیل;हेब्रॉन;হেবরন;எபிரோன்;ฮีบรอน;ኬብሮን;Ḩabrūn;ヘブロン;希伯仑;헤브론; +city::2262963;Setubal;Caetobriga;Gorad Setubal;Setoumpal;Setubal;Setubala;Setubalis;Setúbal;sai tu ba er;seto~ubaru;setubal;stwbal;stwbl;sux tu bal;sytwbal;Σετούμπαλ;Горад Сетубал;Сетубал;סטובל;ستوبال;سيتوبال;سیتوبال;ซือตูบัล;სეტუბალი;ሴቱባል;セトゥーバル;塞图巴尔;세투발; +city::2263827;Rio de Mouro;Rio de Mouro; +city::2264268;Queluz;Kelush;Queluz;Келуш; +city::2265467;Odivelas;Odivelas;awdywlas;اودیولاس; +city::2266977;Loures;Loures;Loyres;Λόυρες; +city::2267057;Lisbon;Felicitas Julia;Felicitas Julia Olissipo;LIS;Liospoin;Liospóin;Lisabon;Lisabona;Lisboa;Lisbon;Lisbona;Lisbonne;Lisbono;Lisbonum;Lissabon;Lisszabon;Lizboa;Lizbon;Lizbona;Olisipo;Olissipo;li si ben;lisaboni;lisbana;lisbxn;liseubon;lshbwnt;lysabwn;lysbwn;risubon;Λισαβώνα;Лисабон;Лиссабон;Лісабон;Լիսբոնա;ליסבון;لشبونة;لىسابون;لیسبون;ܠܫܒܘܢܐ;लिस्बन;ลิสบอน;ლისაბონი;ሊዝቦን;リスボン;里斯本;리스본; +city::2267827;Funchal;FNC;Funchal;Funsala;Funsalis;Funshal;Funšala;Funšalis;Gorad Funshal;Phountsal;feng sha er;fnchal prtgal;fung chal;funsharu;fwnchal;fwnshal;phunkala;punshali;punsyal;pwnsl;Φουντσάλ;Горад Фуншал;Фуншал;פונשל;فنچال ،پرتگال;فونشال;فونچال;फुंकल;ฟุงชาล;ფუნშალი;フンシャル;丰沙尔;푼샬; +city::2268406;Evora;Aebura;Ebora;Ehvora;Elbora;Erbora;Evora;Yabura/Yabora/Yabra;Ébora;Évora;Эвора; +city::2269041;Corroios;Corroios; +city::2270503;Cacem;Cacem;Cacém; +city::2271071;Barreiro;Barreiro;Barrejru;ba lei lu;Баррейру;巴雷鲁; +city::2271680;Amora;Amora; +city::2271772;Amadora;Amadora;Αμαδόρα;Амадора; +city::2732544;Vila Nova de Gaia;Bila Noba nte Nkaia;Gaia;Portus Cale;Vila Nova de Gaia;Vila-Nova-de-Gajja;Βίλα Νόβα ντε Γκάια;Вила-Нова-де-Гайя; +city::2735943;Porto;OPO;Oporto;Porto;Portu;Portus Cale;bo tu;bwrtw;poruto;pwrtw;Πορτο;Πόρτο;Порто;Порту;פורטו;بورتو;پورتو;პორტუ;ポルト;波圖; +city::2740637;Coimbra;CBP;Coimbra;Coímbra;Coïmbra;Koimbra;Koimbro;Koimpra;Koímbra;ke ying bu la;koinbura;Κόιμπρα;Коимбра;コインブラ;科英布拉; +city::2742032;Braga;BGZ;Bracara Augusta;Braga;Mpranka;braga;buraga;Μπράγκα;Брага;براگا;ブラガ; +city::2742611;Aveiro;Abeiro;Aveiro;Avejru;ZAV;Αβέιρο;Авейру; +city::3436725;Villa Hayes;New Bordeaux;Nueva Burdeos;Remanzo;Villa Hayes;Villa Occidental; +city::3436728;Villa Elisa;Colonia Eliza;Villa Elisa; +city::3437056;San Lorenzo;San Lorensas;San Lorenso;San Lorenzo;San Lorenzo del Campo Grande;San-Lorenso;san lwrynzw;san-lorenso;sheng luo lun suo;sn lwrnzw paragwyh;Сан Лорензо;Сан-Лоренсо;سان لورينزو;سن لورنزو، پاراگوئه;სან-ლორენსო;聖洛倫索; +city::3437127;San Antonio;San Antonio; +city::3437444;Presidente Franco;Presidente Franco;Puerto Presidente Franco; +city::3437547;Pedro Juan Caballero;PJC;Pedro Chuan Kabaljeras;Pedro Huan Kabaljero;Pedro Juan Caballero;Pedro Khuan Kabalero;Pedro-Khuan-Kabal'ero;pdrw khwan kabalrw;pedeulohuankabayelo;pei de luo hu an ka wa lie luo;Педро Хуан Кабалеро;Педро-Хуан-Кабальеро;Педро-Хуан-Кабальєро;פדרו חואן קבאיירו;پدرو خوآن کابالرو;پیدرو خوان کابالیرو، پیراگوئے;პედრო-ხუან-კაბალიერო;ペドロ・フアン・カバリェロ市;佩德罗胡安卡瓦列罗;페드로후안카바예로; +city::3437665;Nemby;Nemby;San Lorenzo de la Frontera; +city::3437842;Limpio;Limpio; +city::3437863;Lambare;Lambare;Lambaré;Lambarė;lambale;lambare;lambarh;lambary;lan ba lei;ranbare;Ламбаре;لامباره;لامباری;ლამბარე;ランバレ;蘭巴雷;람바레; +city::3437918;Itaugua;Itaugua;Itauguá;Itaugva;Ytaygua;aytaywgwa;yi tao gua;Итаугуа;ایتائوگوآ;იტაუგუა;伊陶瓜; +city::3438115;Fernando de la Mora;Fernando de la Mora;Fernando-de-la-Mor;fei er nan duo de la mo la;frnandw dla mwra;fyrnandw dy la mwra;pernando-de-la-mora;Фернандо де ла Мора;فرناندو دلا مورا;فيرناندو دي لا مورا;ფერნანდო-დე-ლა-მორა;費爾南多德拉莫拉; +city::3438735;Encarnacion;ENO;Ehnkarnas'on;Encarnacao;Encarnacion;Encarnación;Encarnação;Enkarnas'jon;Enkarnasion;Enkarnasjonas;ankaransywn;en ka na xi weng;engkaleunasion;enkarunashion;xe ngkar na si xxng;Енкарнасион;Енкарнасьйон;Энкарнасьон;אנקרנסיון;انکارانسیون;انکارنسیون، پیراگوئے;เองการ์นาซีออง;ენკარნასიონი;エンカルナシオン;恩卡纳西翁;엥카르나시온; +city::3438819;Coronel Oviedo;Ajos;Coronel Oviedo;Koronel Ovjedas;Koronel Ovyedo;Koronel'-Ov'edo;ao wei duo shang xiao zhen;kolonel-obiedo;kwrwnl awwydw;kwrwnyl awwydw;Коронель-Овьедо;Коронель-Овьєдо;Կորոնել Օվյեդո;کورونل اوویدو;کورونیل اوویدو;კორონელ-ოვიედო;コロネル・オビエド;奥维多上校镇;코로넬오비에도; +city::3438995;Colonia Mariano Roque Alonso;Colonia Mariano Roque Alonso;Colonia Roque Alonso;Mariano Roque Alonso; +city::3439101;Ciudad del Este;AGT;Ciudad Presidente Stroessner;Ciudad del Este;Presidente Stroessner;Puerto Presidente Stroessner;S'judad-del'-Ehste;S'judad-del'-Este;Sijudad del Este;Siudad del Este;Siudad del Estė;Sjudad Del Este;Sjudad del Este;dong fang shi;siudadeudel-eseute;siw dad del xe s te;sywdad dl asth;Сиудад дел Есте;Сијудад дел Есте;Сьюдад-дель-Есте;Сьюдад-дель-Эсте;Сјудад дел Есте;סיודאד דעל עסטע;סיודד דל אסטה;سیوداد دل استه;سیوداد دیل استے;ซิวดัดเดลเอสเต;სიუდად-დელ-ესტე;シウダー・デル・エステ;東方市;시우다드델에스테; +city::3439214;Capiata;Capiata;Capiatá;Capista;Kapiata;Kapiatã;Kapijata;Kapjata;ka pi ya ta;kapiata;kapyata;Капијата;کاپیاتا;კაპიატა;カピアタ;卡皮亞塔;카피아타; +city::3439317;Caaguazu;Caaguazu;Caaguazú; +city::3439389;Asuncion;ASU;Asounsion;Asounsyon;Asounsyòn;Asounthion;Assumptio;Assuncao;Assuncion;Assunção;Asuncion;Asunciono;Asunción;Asuns'jon;Asuns'on;Asunsaun;Asunsion;Asunsjon;Asunsjona;Asunsjonas;Asunson;Asunsyon;Asunsyun;Asúnsjón;Gorad Asuns'jon;Gunung Berapi Asuncion;La Muy Noble y Leal Ciudad de Nuestra Senora Santa Maria de la Asuncion;La Muy Noble y Leal Ciudad de Nuestra Señora Santa María de la Asunción;Nuestra Senora Santa Maria de la Asuncion;Nuestra Señora Santa María de la Asunción;Paraguay;acunciyon;asnshn;asunshion;asunsion;asunsioni;asunsiyona;asusi'ona;aswnsywn;xa sun si xxng;ya song sen;Ασουνθιόν;Ασουνσιόν;Асунсион;Асунсьйон;Асунсьон;Горад Асунсьён;Ասունսյոն;אסונסיאן;אסונסיון;آسونسیون;أسونسيون;ئاسۇنسىئون;اسنشن;اسونسیون;आसुन्सियोन;ਅਸੂੰਸੀਓਨ;அசுன்சியோன்;ಅಸೂನ್‌ಸಿಯಾನ್;อะซุนซิออง;ཨ་སུན་སི་འན།;ასუნსიონი;አሱንሲዮን;アスンシオン;亞松森;아순시온; +city::289888;Ar Rayyan;Al Raiyan;Al Rayyan;Ar Rayyan;Ar Rayyān;Raiyan;alryan;ar-Rayyan;الريان; +city::290030;Doha;Ad Dawha;Ad Dawhah;Ad Dawḩa;Ad Dawḩah;Ad Doha;Ad Dowhah;Ad-Dauha;Ad-Dawhah;Ad-Dawḩah;DOH;Daeuha;Dauha;Dauhá;Dawha;Dawhat al Qatar;Dawḥa;Dawḩat al Qaţar;Dewhe;Do'ha;Doh;Doha;Doho;Dokha;Dokhae;Dokho;Dooxa;Doʻha;Doḥa;Duoha;Däuha;Gorad Dokha;Ntocha;aaldawhat;aldwhh;aldwht;deaha;do ha;doha;dohara;duo ha;dwhh;toka;Ντόχα;Горад Доха;Дохæ;Доха;Дохо;Доҳа;Доһа;Դոհա;דאכא;דוחא;דוחה;الدوحة;الدوحه;اَلدَّوْحَة;دوحه;دوحہ;دوحە;دوھا;دەوحە;दोहा;দোহা;দোহার;ਦੋਹਾ;தோகா;ದೊಹಾ;ദോഹ;โดฮา;དྷོ་ཧ།;ဒိုဟာမြို့;დოჰა;ዶሃ;ドーハ;多哈;도하; +city::935214;Saint-Pierre;Saint-Pierre;Sent-P'er;ZSE;Сент-Пьер; +city::935221;Saint-Paul;Saint-Paul; +city::935264;Saint-Denis;RUN;Saint-Denis;Saint-Denis de la Reunion;Saint-Denis de la Réunion;Sen-Deni;St. Denis;snt dnys;Сен-Дени;סנט דניס;サン・ドゥニ; +city::935582;Le Tampon;Le Tampon;Le-Tampon;Tampon;Village du Tampon;lw tampwn;Ле Тампон;Ле-Тампон;لو تامپون;ル・タンポン; +city::662334;Zalau;Zalaou;Zalau;Zalehu;Zaleu;Zaluu;Zalyu;Zalău;Zelau;Zilah;jalleou;sylaw;zalaw;zaleu;zalyw;zha lei wu;zlyw;Ζαλάου;Залау;Залеу;Залъу;Залыу;Залэу;زالاو;زالیو;زلئو;سیلاؤ;ზალეუ;札勒烏;잘러우; +city::663118;Vaslui;Vasloui;Vaslui;Vasluiul;Vasluj;Vaslujus;Vaszlo;Vászló;baseullu-i;faslwy;vu~asurui;wa si lu yi;waslwy;waslwyy;wslwy;wzlw;Βασλούι;Васлуй;Васлуј;וסלוי;فاسلوي;واسلوئی;واسلوی;وزلو;ヴァスルイ;瓦斯盧伊;바슬루이; +city::664460;Turda;Opstina Turda;Opština Turda;Potaissa;Thorenburg;Torda;Turda;to~uruda;tu er da;twrda;Турда;توردا;ტურდა;トゥルダ;圖爾達; +city::664518;Tulcea;Aegyssos;Gorad Tulcha;TCE;Toultsea;Tul'cha;Tulca;Tulcea;Tulcha;Tulcsa;Tulcza;Tultscha;Tulča;to~urucha;tu er qia;tulchea;twlcha;twlchy;twltshya;Τούλτσεα;Горад Тулча;Тулча;Тулчә;Тульча;Տուլչա;טולצאה;تولتشيا;تولچا;طولچی;トゥルチャ;圖爾恰;툴체아; +city::665004;Targu-Mures;Maros-Vasarhely;Maros-Vásárhely;Marosvasarhely;Marosvásárhely;Muresh;Neumarkt;Neumarkt am Mieresch;Novum Forum Siculorum;TGM;Targu Mures;Targul-Mures;Tirgu Mures;Turgul Mures;Tyrgu-Muresh;Târgu Mureş;Târgu Mureș;Târgul-Mureş;Tîrgu Mureş;Tîrgu Mureș;Vasarhely;Vásárhely;trgw mwrs;Тыргу-Муреш;טרגו מורש; +city::665010;Targu Jiu;Jiu;Targu Jiu;Targu Zhiju;Targul-Jiu;Tirgu Jiu;Tirgu Ziu;Tirgu Žiu;Tirgu-Zhiu;Tirnkou Ziou;Turgu Zhiu;Tyrgu-Zhiu;Târgu Jiu;Târgul-Jiu;Tîrgu Jiu;Zsilvasarhely;Zsilvásárhely;te er gu ri wu;teuleugujiu;trgw zhy;trgw zyw;trjw jyw;tyrgw zhyw;tyrgwjw;Τίργκου Ζίου;Таргу Жију;Тиргу-Жиу;Тиргу-Жіу;Търгу Жиу;Тыргу-Жиу;טרגו זיו;ترجو جيو;ترگو ژی;تیرگو ژیو;تیرگوجو;ტირგუ-ჟიუ;トゥルグ・ジウ;特爾古日烏;트르구지우; +city::665024;Targoviste;Targoviste;Tirgoviste;Turgovishhe;Târgoviste;Târgovişte;Târgoviște;Tîrgovişte;to~urugovu~ishute;Търговище;トゥルゴヴィシュテ; +city::665087;Timisoara;Freidorf;Josefvarosa;Josephs-Stadt;Jozsefvaros;Jósefvárosa;Józsefváros;Kendetelep;Szabadfalu;TSR;Temeschburg;Temeschwar;Temesvar;Temesvarinum;Temesvár;Temeswar;Temeşvar;Temešvár;Temishvar;Temisoara;Temisvar;Temişoara;Temišvar;Timishoara;Timisoara;Timişoara;Timišoara;Timișoara;timishoara;timisyoala;tmshwar;tymyshwara;Темишвар;Тимишоара;טימישוארה;تيميشوارا;طمشوار;ティミショアラ;티미쇼아라; +city::665850;Suceava;Gorad Suchava;SCV;Soutseava;Sucava;Suceava;Suchava;Suczawa;Sučava;Szucsava;Szucsáva;su qia wa;suchava;suchavu~a;sucheaba;swchawa;swtshafa;swzʼbh;sʼz;Σουτσεάβα;Горад Сучава;Сучава;Сучәва;Սուչավա;סוצאבה;שאץ;سوتشافا;سوچاوا;სუჩავა;スチャヴァ;蘇恰瓦;수체아바; +city::666767;Slatina;Slatina;Slatina i Romania;Striharet;seullatina;si la di na;slatyna;styya;suratina;Σλάτινα;Слатина;Слатіна;ستیئا;سلاتينا;سلاتینا;سلاتینا، رومانیہ;スラティナ;斯拉蒂納;슬라티나; +city::667268;Sibiu;Cibinium;Gorad Sibiu;Hermannstadt;Hermanstat;Hermanştat;Nagy-Szeben;Nagy-Szében;Nagyszeben;SBZ;Sibin;Sibiu;Simpiou;Sybin;Szeben;shibiu;sibi xu;sibiu;sibiva;sybw;sybyw;xi bi wu;Σιμπίου;Горад Сібіу;Сибиу;Сибињ;Сібіу;סיביו;سيبيو;سیبو;سیبیو;सिबिव;ซีบีอู;სიბიუ;シビウ;錫比烏;시비우; +city::667303;Sfantu-Gheorghe;Sepsiszentgyorgy;Sepsiszentgyőrgy;Sfantu Gheorghe;Sfantu-Gheorghe;Sfantul;Sfantul-Gheorghe;Sfehntu-Georg;Sfintu Gheorghe;Sfântu Gheorghe;Sfântu-Gheorghe;Sfântul;Sfântul-Gheorghe;Sfîntu Gheorghe;snt dszʼrdzs;Сфэнту-Георг;סנט דשזארדזש; +city::667873;Satu Mare;Gorad Satu-Mareh;SUJ;Sathmar;Satmar;Satmarinum;Satou Mare;Satu Mare;Satu Marė;Satu-Mare;Satul Mare;Szathmar;Szatmar;Szatmar-Nemeti;Szatmarnemeti;Szatmár;Szatmár-Németi;Szatmárnémeti;Sătmar;sa tu ma lei;satumale;satw mary;stw marh;Σάτου Μάρε;Горад Сату-Марэ;Сату Маре;Сату-Маре;סאַטמאַר;סאטו מארה;סאטמאר;סטו מארה;ساتو ماري;ساتو مارے;ستو ماره;サトゥ・マーレ;薩圖馬雷;사투마레; +city::668732;Roman;Roman;Roman i Romania;Romanas;Romanvasar;Románvásár;loman;luo man;rwman;Ρόμαν;Роман;ראמאן;רומאן;رومان;羅曼;로만; +city::668872;Ramnicu Valcea;Ramnicu Valcea;Ramnicul Valcea;Ramniku Valcha;Rimnicu Vilcea;Rimnikou Viltsea;Rimniku Vilca;Rimniku Vilča;Rimniku-Vilcha;Rumniku Vulcha;Rymniku-Vylcha;Râmnicu Vâlcea;Râmnicul Vâlcea;Rîmnicu Vîlcea;lei mu ni ku wo er qia;leumnikubeulchea;rmnykw wlcha;rmnyqw wlzh;rmynkw fyltsha;rymnkw wylcha;rymnykw wylcha;Ρίμνικου Βίλτσεα;Рамнику Валча;Римнику-Вилча;Римніку-Вилча;Ръмнику Вълча;Рымнику-Вылча;רמניקו ולצה;رمنیکو ولچا;رمينكو فيلتشا;ریمنکو ویلچا;ریمنیکو ویلچا;რიმნიკუ-ვილჩა;ルムニク・ヴルチャ;勒姆尼庫沃爾恰;름니쿠블체아; +city::668954;Resita;QRS;Recita;Reciţa;Reschitz;Reschitza;Resicabanya;Resicabánya;Resicza;Resiczabanya;Resiczabánya;Resita;Reşiţa;Reșița; +city::670474;Ploiesti;Ploeshh;Ploesti;Ploeszti;Ploeşti;Ploiesti;Ploieşti;Ploiești;plwyst;plwysty;Плоещ;פלוישט;פלוישטי; +city::670609;Pitesti;Pitesci;Pitescï;Piteshh;Piteshti;Pitesti;Piteşti;Pitești;pytst;Питещ;פיטשט; +city::670889;Piatra Neamt;Karacsonko;Karácsonkő;Piatra Neamt;Piatra Neamţ;Piatra Neamț;Piatra-Neamt; +city::671768;Oradea;Gorad Aradzja;Grosswardein;Großwardein;Nagy-Varad;Nagy-Várad;Nagyvarad;Nagyvárad;OMR;Oradae;Oradea;Oradea-Mare;Oradia;Oradja;Oradja khot;Oradä;Orantea;Varadinum;Veliki Varadin;Velky Varadin;Velký Varadín;ao la di ya;awradya;oladea;oradea;oradeas;oradia;orateya;ʼwrʼdyh;Οράντεα;Велики Варадин;Горад Арадзя;Орадя;Орадя хот;אוראדיה;גרויסווארדיין;أوراديا;اورادئا;اورادیا;ஒராதேயா;ორადია;オラデア;奥拉迪亚;오라데아; +city::673634;Medias;Aranyosmeggyes;Medgyes;Medias;Mediasch;Mediaş;Mediaș;Medivisch; +city::675810;Iasi;Copou;Copou-Targ;Copou-Târg;Galata;Gorad Jasy;IAS;Iasi;Iasio;Iassium;Iaşi;Iași;Ilasi;Jasai;Jash;Jashi;Jasi;Jassenmarkt;Jassi;Jassy;Jasy;Jaszvasar;Jaßenmarkt;Jászvásár;Munteni;Pacurari;Pacuret;Podgoria;Păcurari;Păcureţ;Socol;Socola;Yas;Yashi;Yasi;Yassi;Yassy;Yaş;ayashy;iasi;ya xi;yach;yasa;yash;yashi;Ιάσιο;Јаши;Горад Ясы;Ясси;Яссы;Яш;Յասի;יאס;יאשי;ایاشی;ياش;یاش;याश;ยาช;ヤシ;雅西;이아시; +city::675918;Hunedoara;Hunedoara;Khunedoara;Vajdahunyad;Хунедоара;חונדוארה; +city::677106;Giurgiu;Giurgiu;Gjurgevo;Gyurgyevo;Gyurgyevó;Yergogu;Yergoğu;giurgiu;Гюргево;გიურგიუ; +city::677697;Galati;Galac;Galacis;Galacz;Galati;Galats;Galatz;Galaz;Galaţi;Galați;Gałacz;Nkalatsi;galatsy;gallachi;garatsu~i;ghalats;glatsy;jia la ci;Γκαλάτσι;Галатс;Галац;גאלאץ;גאלץ;غالاتس;گالاتسی;گلاتسی;ガラツィ;加拉茨;갈라치; +city::678015;Focsani;Focsani;Focşani;Focșani;Foksany;Fokschan;Fokshani;Foksány;Фокшани;פוקשאן;פוקשאני; +city::678817;Drobeta-Turnu Severin;Drobeta;Drobeta - Turnu Severin;Drobeta Turnu Severin;Drobeta Turnu-Severin;Drobeta-Turnu Severin;Drobeta-Turnu Severinas;Drobeta-Turnu-Severin;Drubeta;Gorad Drabeta-Turnu-Severyn;Ntrompeta-Tournou Severin;Szoerenyvar;Szörényvár;Turnu Severin;Turnul Severin;atla drwbyta trnw;de luo bei ta-sai wei lin bao;deulobetatuleunusebelin;dor beta-thur nu se weri n;drwbta-twrnw swryn;drwbth-twrnw sbryn;drwbyta twrnw syfyryn;drwbyta-twrnw sywyryn;Ντρομπέτα-Τούρνου Σεβερίν;Горад Драбета-Турну-Северын;Дробета - Турну Северин;Дробета-Турну Северин;Дробета-Турну-Северин;Дробета-Турну-Северін;דרובטה-טורנו סברין;اتلا دروبیتا ترنو;دروبتا-تورنو سورین;دروبيتا تورنو سيفيرين;دروبیتا-تورنو سیویرین;โดรเบตา-ทูร์นูเซเวรีน;დრობეტა-ტურნუ-სევერინი;ドロベタ=トゥルヌ・セヴェリン;德羅貝塔-塞維林堡;드로베타투르누세베린; +city::679452;Deva;Deva;Deva i Romania;Diemrich;Déva;Nteva;Sargetia;de wa;deba;deva;devu~a;dwa;dyfa;Ντέβα;Дева;دوا;ديفا;دیوا ،رومانیہ;دیوا، رومانیہ;დევა;デヴァ;德瓦;데바; +city::680332;Craiova;CRA;Craiova;Croiova;Gorad Krajova;Kraiov;Kraiova;Krajova;Krajova khot;Krajowa;ke la yue wa;keulaioba;kraywfa;kraywwa;krayywwa;kurayovu~a;qrywbh;Κραϊόβα;Горад Краёва;Крайова;Крайова хот;Крајова;קראיובה;קריובה;كرايوفا;کرائیؤوا;کرايووا;کرایووا;クラヨーヴァ;克拉約瓦;크라이오바; +city::680963;Constanta;CND;Constanca;Constancia;Constanta;Constantia;Constantza;Constanza;Constança;Constanţa;Constanța;Costansa;Costanza;Gorad Kanstanca;Kjustendzha;Koestence;Konstanca;Konstancae;Konstanco;Konstansa;Konstantsa;Konstantza;Konstanza;Kuestence;Kustenja;Kustenje;Kustenji;Kyustendja;Köstence;Küstence;Küstenja;Tomis;kang si tan cha;khxn s tan sa;konseutancha;konstantsa;konsutantsu~a;kwnstansa;kwnstantsa;qwnstnzh;Κωνστάντζα;Горад Канстанца;Константса;Констанцæ;Констанца;Кюстенджа;Կոնստանցա;קונסטנצה;كونستانتسا;کونستانتسا;کونستانسا;कोन्स्तांत्सा;คอนสตันซา;კონსტანცა;コンスタンツァ;康斯坦察;콘스탄차; +city::681290;Cluj-Napoca;CLJ;Castrum Clus;Claudiopolis;Clausemburgo;Clausenburg;Cluj;Cluj Napoca;Cluj-Napoca;Gorad Kluzh-Napoka;Kalosvar;Kaloşvar;Klausenburg;Klouz-Napoka;Klujo;Kluz;Kluz Napok;Kluz-Napoka;Kluza-Napoka;Kluzas-Napoka;Kluzh-Napoka;Kluzh-Napoka khot;Kluĵo;Kluż-Napoka;Kluž;Kluž Napok;Kluža-Napoka;Klužas-Napoka;Koloszvar;Koloszvár;Kolozsvar;Kolozsvár;Municipium Aelium Hadrianum Napoca;Napoca;ke lu ri-na bo ka;keullujinapoka;khluch-na po ka;kluja-napoka;klwj nabwka;klwj napwka;klwzh napwka;klwzh-napwka;klwzh-npwka;kuruju=napoka;qlwyznbwrg;qlwz-nʼpwqh;Κλουζ-Ναπόκα;Горад Клуж-Напока;Клуж-Напока;Клуж-Напока хот;Կլուժ-Նապոկա;קלוז'-נאפוקה;קלוז-נאפוקה;קלויזנבורג;كلوج نابوكا;کلوج ناپوکا;کلوژ ناپوکا;کلوژ-ناپوکا;کلوژ-نپوکا;क्लुज-नापोका;คลูช-นาโปกา;კლუჟ-ნაპოკა;クルジュ=ナポカ;克卢日-纳波卡;클루지나포카; +city::683123;Buzau;Bodzavasar;Bodzavásár;Bouzaou;Buzau;Buzehu;Buzeu;Buzuu;Buzyu;Buzău;bu ze wu;bujeou;buzau;bwzaw;bwzayw;Μπουζάου;Бузау;Бузеу;Бузъу;Бузыу;Бузэу;בוזאו;بوزاؤ;بوزائو;بوزاو;ブザウ;布澤烏;부저우; +city::683506;Bucharest;BUH;Boekarest;Boukouresti;Bucarest;Bucaresta;Bucareste;Bucarèst;Bucharest;Bucuresti;Bucureşti;București;Buekres;Bukarest;Bukarestas;Bukareste;Bukaresto;Bukareszt;Bukareŝto;Bukareštas;Bukharest;Bukureshh;Bukuresht;Bukureshta;Bukureshti;Bukurest;Bukurešt;Bukurešť;Buxarest;Búkarest;Bûkarest;Bükreş;bkharst;bu jia lei si te;bukaresuto;bukulesyuti;bwkharst;bwqrst;Βουκουρέστι;Букурешт;Букурещ;Бухарест;Բուխարեստ;בוקאַרעשט;בוקרשט;بخارست;بوخارست;بۇخارېست;པུ་ཁ་རེ་སིད;ბუქარესტი;ቡካረስት;ブカレスト;布加勒斯特;부쿠레슈티; +city::683844;Brasov;Brashov;Brasov;Brasso;Brassó;Braszow;Braszów;Brazov;Braşov;Brašov;Brașov;Kronstadt;Kronstant;Orasu Stalin;Orasul Stalin;Oraşu Stalin;Oraşul Stalin;XHV;beulasyobeu;brswb;burashofu;Брашов;ברשוב;ブラショフ;브라쇼브; +city::683902;Braila;Braila;Brailov;Braiła;Brăila;Ibrail;Браила;בראילה; +city::684039;Botosani;Botosan;Botosani;Botoshani;Botoszany;Botosán;Botoşani;Botoșani;QDD;Ботошани;בוטושאן; +city::684657;Bistrita;Beszterce;Besztercze;Bistrica;Bistrita;Bistritz;Bistriţa;Bistrița;QBY;bisutoritsu~a;Бистрица;ビストリツァ; +city::684802;Barlad;Barlad;Barlád;Birlad;Birladas;Burlad;Byrlad;Bârlad;Bîrlad;Opstina Barlad;Opština Bârlad;beuleulladeu;birladi;bo er la de;brlh;Барлад;Бирлад;Бърлад;Бырлад;ברלאד;برله;ბირლადი;伯尔拉德;브를라드; +city::685826;Baia Mare;BAY;Baia Mare;Baja Mare;Baja-Mare;Frauenbach;Nagybanya;Nagybánya;Neustadt;Rivulus Dominarum;Бая-Маре; +city::685948;Bacau;BCM;Bacau;Bacău;Bako;Bakuu;Bákó;Бакъу;בקאו; +city::686254;Arad;ARW;Altarad;Arad;Aradia;Aradinum Vetus;Micalaca;Micălaca;Mikelaka;Murasel;Muresel;Mureşel;Murăşel;O-Arad;Orodinum;Zsigmondhaza;Zsigmondháza;Ō-Arad;ʻrd;Арад;ערד; +city::686578;Alba Iulia;Alba Iulia;Alba Julija;Alba-Julija;Almpa Ioulia;Balgrad;Bălgrad;Gorad Alba-Julija;Gyulafehervar;Gyulafehérvár;Karlsburg;QAY;Weissenburg;Weisskirchen;Weißenburg;Weißkirchen;a er ba you li ya;alba aywlya;alba ywlya;alba-iulia;albaiullia;alpa luliya;Άλμπα Ιούλια;Алба Јулија;Алба Юлия;Алба-Юлия;Алба-Юлія;Горад Алба-Юлія;אלבה יוליה;آلبا ایولیا;ألبا يوليا;البا ایولیا;البا یولیا;அல்பா லூலியா;ალბა-იულია;アルバ・ユリア;阿爾巴尤利亞;알바이울리아; +city::6697993;Baia Mare;Baia Mare;Baja Mare;Baja Marė;Baja-Mare;Nagybanya;Nagybánya;Rivulus Dominarum;ba ya ma lei;baia-mare;baiamale;baya marh;baya mary;Μπάια Μάρε;Бая Маре;Бая-Маре;Баја Маре;באיה מארה;بائیا مارے;بايا ماري;بایا ماره;بایا مارے;ბაია-მარე;バヤ・マレ;巴亞馬雷;바이아마레; +city::8581467;Slobozia;; +city::11048317;Sector 1;Sectorul 1; +city::11048318;Sector 2;Sectorul 2; +city::11048319;Sector 3;Sectorul 3; +city::11048320;Sector 4;Sectorul 4; +city::11048322;Sector 5;Sectorul 5; +city::11048323;Sector 6;Sectorul 6; +city::783814;Zrenjanin;Becicherecu Mare;Becicherecul Mare;Beckerek;Becskerek;Betschkerek;Beçkerek;Gross-Betschkerek;Nagybecskerek;Petrovgrad;Veliki Beckerek;Veliki Bečkerek;Zrenanin;Zrenianin;Zrenianinas;Zrenjanin;Zrenjanin-grad;bchkrk;ci lei ni ya ning;jeulenyanin;zrnjanyn;zrynyann;zrynyanyn;zurenyanin;Ζρένιανιν;Зренянин;Зрењанин;זרניאנין;بچکرک;زرنجانین;زرینیانن;زرینیانین;زرێنیانین;ズレニャニン;兹雷尼亚宁;즈레냐닌; +city::783920;Zemun;Opstina Zemun;Opština Zemun;Semlin;Semlino;Taurunum;Zeman;Zemlen;Zemlén;Zemun;Zimony;jemun;ze meng;zemun;zmwn;Σεμλίνο;Земун;זמון;ゼムン;泽蒙;제문; +city::784227;Vranje;Ivranya;Vrane;Vranie;Vranja;Vranje;Vranya;beulane;franyy;fu la nie;vuranye;wranyh;Βράνιε;Вране;Враня;Врање;וראניה;فرانيي;وارنیے;ورانیئے;ورانیه;ڤرانیێ;ヴラニェ;弗拉涅;브라네; +city::785756;Smederevo;Gorad Smedarava;Semendire;Semendria;Semêndria;Smedere;Smederevas;Smedereve;Smederevo;Smederewo;Smenterevo;Szendro;Szendrő;asmdrfw;seumedelebo;si mei dai lei wo;smdrbw;smederevo;smydyryww;sumederevu~o;Σμεντέρεβο;Горад Смедарава;Смедереве;Смедерево;סמדרבו;اسمدرفو;سمیدیریوو;سمێدێرێفپڤو;სმედერევო;スメデレヴォ;斯梅代雷沃;스메데레보; +city::787237;Pancevo;Banstadt;Gorad Panchava;Hertelendyfalva;Marienfeld;Pancevas;Pancevo;Panchevo;Panciova;Pancsal;Pancsaly;Pancsova;Pantschowa;Pantsevo;Panĉevo;Pančevas;Pančevo;QBG;Vojlovica;Wojlowitz;Wojlowitza;pan qie wo;panchebo;panchevu~o;panchfw;panchyww;pnzbw;Πάντσεβο;Горад Панчава;Панчево;פנצבו;پانچفو;پانچیوو;پانچێڤۆ;パンチェヴォ;潘切沃;판체보; +city::787595;Novi Pazar;Novi Pazar;Novi Pazaras;Novi pazar;Novi-Pazar;Pazari i Ri;Yeni Pazar;Yenipazar;nobipajaleu;novi pazar;nwfy bazar;nwwy pazar;xin pa zha er;Νόβι Παζάρ;Нови Пазар;Нови пазар;Нови-Пазар;נובי פאזאר;نوفي بازار;نووی پازار;نۆڤی پازار، سربیا;ノヴィ・パザル;新帕扎爾;노비파자르; +city::787657;Nis;INI;Nich;Nis;Nisch;Nish;Niso;Nissa;Nisz;Nix;Niŝo;Niš;Ниш; +city::788709;Leskovac;Gorad Leskovac;Leshkuqi;Leskofca;Leskofça;Leskovac;Leskovacas;Leskovats;lai si ke wa ci;leseukobacheu;lskwas;lsqwbz;lyskwfats;lyskwwach;lyskwwats;resukovu~atsu;Λέσκοβατς;Горад Лесковац;Лесковац;לסקובץ;لسکواس;ليسكوفاتس;لیسکوواتس;لیسکوواچ;لێسکۆڤاتس;レスコヴァツ;莱斯科瓦茨;레스코바츠; +city::788975;Krusevac;Alacahisar;Gorad Krushavac;Krousevats;Krusevac;Krusevacas;Krushevac;Kruševac;Kruševacas;alajh hsar;ke lu she wa ci;keulusyebacheu;krwshwas;krwshyfats;krwshywach;krwshywats;kurushevu~atsu;qrwsbz;Κρούσεβατς;Горад Крушавац;Крушевац;קרושבץ;الاجه حصار;كروشيفاتس;کروشواس;کروشیواتس;کروشیواچ;کروشێڤاتس;クルシェヴァツ;克鲁舍瓦茨;크루셰바츠; +city::789107;Kraljevo;Kralevas;Kralevo;Kralievo;Kraljevo;Rankovicevo;Rankovićevo;ke la lie wo;keulallebo;kralyfw;kralyyfw;kralyyww;kuraryevu~o;qrlywbw;Κράλιεβο;Кралево;Краљево;קרליובו;كرالييفو;کرالیئوو;کرالیفو;کرالێڤۆ;クラリェヴォ;克拉列沃;크랄레보; +city::789128;Kragujevac;Gorad Kraguevac;Krabujevac;Kragiyevac;Kraguevac;Kraguevac';Kragujevac;Kragujevaca;Kragujevacas;Krankougievats;ke la gu ye wa ci;keulaguyebacheu;khra kuye wat s;kraghwyyfats;kragwywats;kragwywts;kragwyywach;kuragui~evu~atsu;qrgwyybz;Κραγκούγιεβατς;Горад Крагуевац;Крагоуѥвьць;Крагуевац;Крагуєваць;Крагујевац;קרגוייבץ;كراغوييفاتس;کراگوئیواچ;کراگویواتس;کراگویوتس;ครากูเยวัตส์;クラグイェヴァツ;克拉古耶瓦茨;크라구예바츠; +city::792078;Cacak;Cacak;Cacakas;Chachak;Gorad Chachak;Tsatsak;cha cha ke;cha chak;chachak;chachakeu;chachaku;tshatshak;Čačak;Čačakas;Τσάτσακ;Горад Чачак;Чачак;צאצאק;تشاتشاك;چاچاک;ชาชัก;チャチャク;查查克;차차크; +city::792680;Belgrade;BEG;Belehrad;Belgrad;Belgrada;Belgradas;Belgrade;Belgrado;Belgradu;Belgrau;Belgrað;Belgrád;Belgráu;Beligradi;Belogradum;Belohrod;Beograd;Beogradi;Beogrado;Bèlgrade;Bělehrad;Běłohród;Nandorfehervar;Nándorfehérvár;Singidunum;be-ogeuladeu;bei er ge lai de;belgradi;beogurado;blghrad;blgrd;pelkiret;Βελιγράδι;Белград;Београд;Бѣлъ Градъ · Срьбїи;Բելգրադ;בלגרד;بلغراد;بېلگراد;பெல்கிறேட்;ბელგრადი;በልግራድ;ベオグラード;贝尔格莱德;베오그라드; +city::3188402;Valjevo;QWV;Valevas;Valevo;Valievo;Valjevo;ballebo;falyfw;vu~aryevu~o;wa lie wo;walyfw;walyyww;wayyww;wlyybw;Βάλιεβο;Валево;Ваљево;ולייבו;فاليفو;والیئوو;والیفو;وایئوو;ڤالێڤۆ;ヴァリェヴォ;瓦列沃;발레보; +city::3188434;Uzice;Gorad Uzhycy;Oujiste;Ouzhice;Ouzitse;Titovo Uzice;Titovo Užice;UZC;Ussitza;Uzhice;Uzice;Užice;Užicė;awzhytsh;ujiche;ujitsu~e;wu ri ce;xu sit se;Ούζιτσε;Горад Ужыцы;Оужицє;Ужице;ئوژیتسێ;اوژیتسه;اوژیتسے;اوژیچے;อูซีตเซ;ウジツェ;乌日策;우지체; +city::3189595;Subotica;Maria-Theresianopel;Maria-Theresiopel;Maria-Theresiopolis;Sawaditz;Subotica;Subotiza;Szabadka;Szent-Maria;Szent-Mária;Theresiopel;Zubotica;Суботица; +city::3191376;Sabac;Boeguerdelen;Böğürdelen;Chabats;Sabac;Sampats;Shabac;Szabacs;Szabács;sha ba ci;shabach;shabas;shabats;shabatsu;syabacheu;Ŝabac;Šabac;Σάμπατς;Шабац;שאבאץ;شاباتس;شاباس;شاباچ;シャバツ;沙巴茨;샤바츠; +city::3194360;Novi Sad;Gorad Novi-Sad;Neoplanta;Neusatz;Novi Sad;Novi Sadas;Novi Sant;Novi-Sad;Novi-Sad khot;Novij Sad;Novisada;Novu Sadu;Novy Sad;Novî Sad;Nový Sad;Nowy Sad;O-petervaradja;Petervarad;Pétervárad;QND;Ujvidek;Varadinum Petri;Vasaros-Varad;Vásáros-Várad;nobisadeu;novhi sada;novi-sadi;nuo wei sa;nwfy sad;nwwy sad;nx wi sad;Ó-péterváradja;Újvidék;Νόβι Σαντ;Горад Нові-Сад;Нови Сад;Нови-Сад;Нови-Сад хот;Новий Сад;Новъ Садъ;Նովի Սադ;נובי סאד;نوفي ساد;نووی ساد;नोव्ही साद;นอวีซาด;ნოვი-სადი;ノヴィ・サド;诺威萨;노비사드; +city::462444;Zlatoust;Gorad Zlatavust;Slatoust;Zlato-oest;Zlatooust;Zlatoust;Zlatousta;Zlatoustas;Zlatoutsk;Złatoust;ci la tuo wu si te;jeullatouseuteu;zlatwst;zlatwwst;zuratousuto;Горад Златавуст;Златоуст;زلاتؤوست;زلاتوؤست;زلاتوست;ズラトウースト;兹拉托乌斯特;즐라토우스트; +city::462755;Zhukovskiy;Otdykh;Stakhanovo;ZIA;Zhukovskij;Zhukovskiy;Zhukovskogo;Zjukovskij;Zukovski;Žukovski;Жуковский; +city::463082;Zhigulevsk;Otvazhnoye;Otvazhnyy;Zhigulevsk;Zjigulevsk;Жигулевск; +city::463343;Zheleznogorsk;Zeleznogorsk;Zheleznogorsk;Zjeleznogorsk;Železnogorsk;Железногорск; +city::463355;Zheleznodorozhnyy;Obiralovka;Zheleznodorozhny;Zheleznodorozhnyj;Zheleznodorozhnyy;Zjeleznodorozjnyj;Железнодорожный; +city::463829;Zelenograd;Zelenograd;Зеленоград; +city::463835;Zelenodolsk;Gorad Zelenadol'sk;Parat;Selenodolsk;Zelendol'sk;Zelendol’sk;Zelenodol's'k;Zelenodol'sk;Zelenodoljsk;Zelenodolsk;Zelenodolsk i Russland;Zelenodolskas;Zielonodolsk;jellenodolseukeu;ze lie nuo duo er si ke;zerenodorisuku;zlnwdwlsk rwsyh;zylynwdwlsk;Горад Зеленадольск;Зеленодольск;Зеленодольськ;Зеленодољск;Парат;Яшел Үзән;زلنودولسک، روسیه;زيلينودولسك;زیلینودولسک;ゼレノドリスク;泽列诺多尔斯克;젤레노돌스크; +city::464625;Zarechnyy;Zarechnyj;Zarechnyy;Zaretsjnyj;Заречный; +city::466806;Yoshkar-Ola;Iochkar-Ola;Ioshkar Ola;JOK;Joschkar-Ola;Joshkar-Ola;Josjkar-Ola;Joskar-Ola;Joszkar-Ola;Joszkar-Oła;Joŝkar-Ola;Joškar-Ola;Tsarevokokshaysk;Yoshkar-Ola;yosikaleuolla;Йошкaр-Ола;Йошкар-Ола;יושקר-אולה;ヨシュカル・オラ;요시카르올라; +city::466885;Yeysk;EIK;Eisk;Ejs'k;Ejsk;Gorad Ejsk;Ieisk;Ieïsk;Jeisk;Jejsk;Jejsko;Yeisk;Yeysk;Yiesk;eisuku;ye yi si ke;yeiseukeu;yysk;yysm;Єйськ;Јејск;Горад Ейск;Ейск;ييسك;ییسم;ییسک;エイスク;葉伊斯克;예이스크; +city::466990;Yessentuki;Essentuki;Jessentuki;Yessentaki;Yessentuki;Ессентуки; +city::467978;Yelets;Elec;Elec';Elecum;Elet;Eleț;Gorad Jalec;Ielets;Jelec;Jelecas;Jelets;Jelez;Yelets;eretsu;ye lie ci;yellecheu;ylts;yylyts;yylz;Єлець;Јелец;Горад Ялец;Елец;Елец балһсн;יילץ;ييليتس;یلتس;ییلیتس;エレツ;叶列茨;옐레츠; +city::468082;Yelabuga;Alabuga;Elabuga;Jelaboega;Jelabuga;Yelabuga;Јелабуга;Алабуга;Елабуга; +city::468250;Yegor'yevsk;Egor'ev;Egor'evsk;Egorievsk;Egor’ev;Jegorjevsk;Jegorjewsk;Yegor'yevsk;Yegorevsk;Yegor’yevsk;Егорьевск; +city::468866;Yartsevo;Jarcevo;Jartsevo;Yartseva;Yartsevo;Ярцево; +city::468902;Yaroslavl;Giaroslavl;Gorad Jaraslaul';IAR;Iaroslavia;Iaroslavl;Jaroslavelj;Jaroslavl;Jaroslavl';Jaroslavl' osh;Jaroslavla;Jaroslavlis;Jaroslavlj;Jaroslavul;Jaroslavļa;Jaroslavľ;Jaroslaw;Jaroslawl;Jaroszlavl;Jarosław;Yaroslavl;iaroslavli;ya luo si la fu er;ya ro sla fl;yaloseullabeul;yaroslava;yarosuravuri;yarwslafl;yarwslawl;yrwslbl;Γιαροσλάβλ;Јарослављ;Горад Яраслаўль;Ярославль;Ярославль ош;Ярославъл;Յարոսլավլ;ירוסלבל;ياروسلافل;یاروسلاول;यरोस्लाव;यारोस्लाव;ยาโรสลาฟล์;იაროსლავლი;ヤロスラヴリ;雅罗斯拉夫尔;야로슬라블; +city::470252;Vyshniy Volochek;Vyshnij Volochek;Vyshniy Volochek;Vyshniy Volochëk;Vysjnij Volotsjek;Wyschni-Wolotschek;Вышний Волочек; +city::470444;Vyksa;Gorad Vyksa;Viksa;Vyksa;Vîksa;Vıksa;Wyksa;bigsa;fyksa;wei ke sa;wyksa;Викса;Выкса;Горад Выкса;فيكسا;ویکسا;維克薩;빅사; +city::470546;Vyborg;Gorad Vybarg;VBR;Viborg;Viborga;Viborgas;Viburgum;Viiburi;Viipuri;Vimpornk;Vioborg;Vipuri;Vyborg;Vyborg osh;Vyborgas;Víborg;Víobórg;Vîborg;Wiborg;Wyborg;biboleukeu;fybwrgh;viborgi;vu~iborugu;wei bao;wybwrg;Βίμποργκ;Виборг;Виипури;Выборг;Выборг ош;Вꙑборгъ;Горад Выбарг;ויבורג;فيبورغ;ویبورگ;ვიბორგი;ヴィボルグ;维堡;비보르크; +city::470676;Vyaz'ma;Vjaz'ma;Vjazma;Vyasma;Vyaz'ma;Vyaz’ma;Вязьма; +city::471430;Votkinsk;Gorad Votkinsk;Votka;Votkins'k;Votkinsk;Votkinszk;Vótkinsk;Wotkinsk;Wotkińsk;boskinseukeu;fwtkynsk;vu~otokinsuku;wo te jin si ke;wtkynsk;wwtknsk;Вотка;Воткинск;Воткінськ;Горад Воткінск;فوتكينسك;وتکینسک;ووتکنسک;ヴォトキンスク;沃特金斯克;봇킨스크; +city::471656;Voskresensk;Voskresens'k;Voskresensk;Voskresenska;Voskresenskaj;Voskressensk;Woskressensk;Woskriesiensk;Woskrjesensk;boseukeulesenseukeu;fwskrysynsk;vu~osukuresensuku;wo si ke lie xian si ke;wwskrsnsk;wwskrysnsk;Воскресенск;Воскресенск балһсн;Воскресенскай;Воскресенськ;فوسكريسينسك;ووسکرسنسک;ووسکریسنسک;ヴォスクレセンスク;沃斯克列先斯克;보스크레센스크; +city::472045;Voronezh;VOZ;Voronej;Voronez;Voroneza;Voronezas;Voronezh;Voronezhskaja oblast';Voronezj;Voroneĵ;Voronež;Voronežas;Voroněž;Voroņeža;Woronesch;Woronesh;Woronez;Woroneż;bolonesi;vu~oroneji;Воронеж;Воронежская область;ヴォロネジ;보로네시; +city::472231;Volzhskiy;Volzh Sky;Volzhskij;Volzhskiy;Volzjskij;Volzski;Volžski;Волжский; +city::472234;Volzhsk;Julser-Ola;Lopatin;Lopatino;Volzhsk;Volzjsk;Volzsk;Volžsk;Волжск;Юлсер-Ола; +city::472278;Vol'sk;Vol'sk;Volsk;Vol’sk;Wolsk;Вольск; +city::472459;Vologda;Bologda;Bологда;Gorad Volagda;VGD;Vologd;Vologda;Vologdae;Vologdo;Vólogda;Wologda;Wołogda;bollogeuda;fwlwghda;vologda;vu~oroguda;wlwgda;wo luo ge da;wo lxk da;wwlwgda;wwlwgdh;Вологдæ;Вологда;Вологдо;Волоґда;Вӧлӧгда;Горад Волагда;Վոլոգդա;וולוגדה;فولوغدا;ولوگدا;وولوگدا;โวลอกดา;ვოლოგდა;ヴォログダ;沃洛格达;볼로그다; +city::472757;Volgograd;Caricyn;Estalingrado;Gorad Valgagrad;Stalingrad;Stalingrado;Tsaritsyn;VOG;Vl'gogradu;Volgograd;Volgograda;Volgogradas;Volgogrado;Volgogradum;Volgográd;Volnkonkrant;Volqoqrad;Wolgograd;Wołgograd;Zarizyn;bolgogeuladeu;fu er jia ge lei;fwlghwghrad;fwljwjrad;volagagarata;volgograda;volgogradi;volkokirat;vu~orugogurado;wlgwgrad;wwlgw grad;wwlgwgrad;wwlgwgrd;wxl kok rad;Βόλγκογκραντ;Аһш балһсн;Вльгоградъ;Волгоград;Горад Валгаград;Сталинград;Царицын;Վոլգոգրադ;וולגוגרד;فولجوجراد;فولغوغراد;ولگوگراد;وولگو گراد;وولگوگراد;ڤۆڵگۆگراد;वोल्गोग्राद;ਵੋਲਗਾਗਰਾਤ;வோல்கோகிராட்;වොල්ගාග්‍රාද්;วอลโกกราด;စတာလင်ဂရက်မြို့;ვოლგოგრადი;ヴォルゴグラード;伏尔加格勒;伏爾加格勒;볼고그라드; +city::472761;Volgodonsk;Gorad Valgadonsk;VLK;Volgodons'k;Volgodonsk;Volgodonska;Volgodonskas;Volqodonsk;Wolgodonsk;Wołgodońsk;bolgodonseukeu;fu er jia dun si ke;fwlghwdwnsk;vu~orugodonsuku;wlgwdwnsk;wwlgwdwnsk;wwlgwdwnsq;Волгодонск;Волгодонск балһсн;Волгодонськ;Горад Валгадонск;וולגודונסק;فولغودونسك;ولگودونسک;وولگودونسک;ヴォルゴドンスク;伏尔加顿斯克;볼고돈스크; +city::473247;Vladimir;Blantimir;Gorad Uladzimir;Ulatimer;Vladimir;Vladimir khot;Vladimir shaary;Vladimira;Vladimiras;Vladimír;Vladímir;Vladîmîr;Vlagyimir;Volodimir;Volodimiria;Wladimir;Wladymir;Wlodzimierz;Władymir;Włodzimierz;beulladimileu;fladymyr;fu la ji mi er;urajimiru;vladimiri;wladymyr;wldymyr;Βλαντίμιρ;Владимир;Владимир хот;Владимир шаары;Володимир;Горад Уладзімір;Улатимĕр;ולדימיר;فلاديمير;ولادیمیر;ვლადიმირი;ウラジーミル;弗拉基米尔;블라디미르; +city::473249;Vladikavkaz;Dzaeudzhykhuaeu;Dzhaudzhikau;Gorad Uladzikaukaz;OGZ;Ordshonikidse;Ordzhonikidve;Ordzhonikidze;Orjonikidze;Tehrchkualeh;Vladicaucaso;Vladicáucaso;Vladikaukaza;Vladikaukazas;Vladikaukāza;Vladikavkaz;Vladiqafqaz;Vlantikavkaz;Wladikafkaz;Wladikawkas;Wladikawkaz;Wladykaukaz;Władykaukaz;beulladikabkaseu;fladyqwqaz;fu la ji gao jia suo;urajikafukasu;wladyqfqaz;wldyqwwqz;Βλαντικαβκάζ;Буро-ГӀала;Владикавказ;Владикавказ балһсн;Горад Уладзікаўказ;Дзæуджыхъæу;КӀапӀкӀай;Орджоникидзе;Тэрчкъалэ;Վլադիկավկազ;ולדיקווקז;فلاديقوقاز;ولادیقفقاز;ولادی‌قفقاز;ვლადიკავკაზი;ウラジカフカス;弗拉季高加索;블라디캅카스; +city::473778;Vidnoye;Poselok Vidnoye;Posëlok Vidnoye;Vidnoe;Vidnoje;Vidnoye;Видное; +city::476077;Velikiye Luki;VLU;Velikie Luki;Velikije Loeki;Velikije Luki;Velikiye Luki;Welikije Luki;Wielkie Luki;Wielkie Łuki;bellikiyeluki;Великие Луки;벨리키예루키; +city::477494;Uzlovaya;Ouzlovaia;Ouzlovaïa;Uslowaja;Uzlovaia;Uzlovaja;Uzlovaya;Uzlowaja;Uzłowaja;awzlwfaya;awzlwwaya;ujeullobaya;uzurovu~aya;wu zi luo wa ya;Узловая;Узловаја;أوزلوفايا;اوزلووایا;ウズロヴァヤ;烏茲洛瓦亞;우즐로바야; +city::479123;Ulyanovsk;Chemper;Gorad Ul'janausk;Oeljanofsk;Oeljanovsk;Oulianofsk;Oulianovsk;Oulyanovsk;Owlyanovsk;Sember;Simbir;Simbirsk;Sinbirsk;ULY;Ul'janon' osh;Ul'janovs'k;Ul'janovsk;Ul'yanovsk;Ulanovsk;Ulianovsk;Uliànovsk;Uliánovsk;Uljanovsk;Uljanovska;Uljanovskas;Uljanovsko;Uljanovszk;Uljanowsk;Uljanowska am Wolga;Ulyanovsk;Ul’yanovsk;Uļjanovska;alyanwwsk;awlyanwfsk;awlyanwwsk;uliyanobhaska;ulliyanobseukeu;ulyanovska;uriyanofusuku;wu li yang nuo fu si ke;Ουλιάνοφσκ;Горад Ульянаўск;Оулиꙗновьскъ;Сембер;Синбирск;Сімбір;Ульяновск;Ульяновськ;Ульянонь ош;Уляновск;Улјановск;Уљановск;Чĕмпĕр;Ուլյանովսկ;אוליאנובסק;أوليانوفسك;الیانووسک;اولیانوفسک;اولیانووسک;उल्यानोव्स्क;উলিয়ানোভস্ক;ウリヤノフスク;乌里扬诺夫斯克;울리야놉스크; +city::479411;Ukhta;Chib'yu;Chib’yu;Gorad Ukhta;Oechta;Oukhta;UCT;Uchta;Uht;Uhta;Ujta;Ujtá;Ukhta;Ukhtà;Ukva;Uĥta;awkhta;uheuta;wu he ta;Горад Ухта;Уква;Ухта;أوختا;اوختا;乌赫塔;우흐타; +city::479561;Ufa;Ephu;Gorad Ufa;Oefa;Oufa;Owfa;UFA;Uf;Ufa;Ufà;Ufá;Ufа;Upo;awfa;ufa;upa;wu fa;Ĕпхӳ;Горад Уфа;Оуфа;Уфа;Үфі;Өфө;Ӱпӧ;Ուֆա;אופה;أوفا;اوفا;ऊफ़ा;უფა;ウファ;烏法;우파; +city::480060;Tver;Gorad Cver;KLD;Kalinin;Tueria;Tver;Tver';Tvera;Tvere;Tverj;Tverė;Tver’;Twer;t weiyr;tbr;te wei er;teubeli;tfyr;tibhera;tiver;tovu~eri;twr;twwr;Горад Цвер;Калинин;Твер;Тверь;Տվեր;טבר;تفير;تور;توور;তিভের;திவெர்;ตเวียร์;ტვერი;トヴェリ;特维尔;트베리; +city::480089;Tuymazy;Tuimasa;Tuimazy;Tujmazi;Tujmazy;Tuymaza;Tuymazy;Туймазы; +city::480562;Tula;Gorad Tula;TYA;Toela;Toula;Tul;Tula;Tula i Russland;Tulae;Tulo;Tuła;Tûla;to~ura;tu la;tulla;twla;twla rws;twlh;Τούλα;Горад Тула;Тулæ;Тулă;Тула;Туло;Տուլա;טולה;تولا;تولا، روس;ٹولا;ტულა;トゥーラ;圖拉;툴라; +city::480716;Tuapse;Gorad Tuapseh;Toeapse;Touapse;Touapsé;Tuapse;Tuapseo;Tuapsse;Tuapsé;to~uapuse;tu a pu xie;tu'apse;tuabse;twabsy;twapsh;Горад Туапсэ;Туапсе;Туапсе балһсн;ТӀуапсы;Տուապսե;توآپسے;توابسي;تواپسه;टुआप्से;ტუაფსე;トゥアプセ;圖阿普謝;투압세; +city::482283;Tol'yatti;Stavropol';Stavropol’;Stawropol;Togliatti;Togliatti-on-the-Volga;Togliattigrad;Tol'jatti;Tol'yatti;Tolati;Toliatti;Toljati;Toljatti;Tolyatti;Tol’yatti;tolliyati;toriyatchi;Ставрополь;Тольятти;Тољати;トリヤッチ;톨리야티; +city::482965;Timashevsk;Timashevsk;Timashevskaya;Timashjovsk;Timashëvsk;Timashëvskaya;Timasjevsk;Timoschewskaja;Timoshevskaya;Тимашёвск; +city::483019;Tikhvin;Gorad Cikhvin;Tichvin;Tichvina;Tichwin;Tihvin;Tihvina;Tihvinae;Tihvinä;Tijvin;Tikhvin;Tikhvine;Tikhvinu;Tiĥvin;chifuvu~in;ji he wen;tiheubin;tikhvin;tykhfyn;tykhwyn;Горад Ціхвін;Тихвин;Тихвинъ;Тихвін;تيخفين;تیخوین;ტიხვინი;チフヴィン;季赫溫;티흐빈; +city::483029;Tikhoretsk;Gorad Cikharehck;Tichoreck;Tichoretsk;Tichorezk;Tichorieck;Tihhoretsk;Tihoreck;Tihoretk;Tihorețk;Tijoretsk;Tikhorec'k;Tikhoreck;Tikhoretsk;Tixoretsk;Tiĥoreck;ji huo lie ci ke;tykhwrtsk;tykhwrytsk;Горад Ціхарэцк;Тихоретск;Тихорецк;Тихорецк балһсн;Тихорєцьк;Տիխորեցկ;تيخورتسك;تیخورتسک;تیخوریتسک;季霍列茨克; +city::484646;Tambov;Gorad Tambou;TBW;Tambof;Tambov;Tambova;Tambovas;Tambovia;Tambow;Tombu;tambopeu;tambwf;tan bo fu;tanbofu;tmbwb;Горад Тамбоў;Тамбов;Томбу;טמבוב;تامبوف;ტამბოვი;タンボフ;坦波夫;탐보프; +city::484907;Taganrog;Gorad Taganrog;TGK;Taganrog;Taganroga;Taganrogas;Tankanronk;Taqanroq;ta gan luo ge;taganlokeu;taganrogu;taganrwg;taghanrwgh;Ταγκανρόγκ;Горад Таганрог;Таганрог;تاغانروغ;تاگانروگ;ტაგანროგი;タガンログ;塔甘羅格;타간로크; +city::484972;Syzran';Sysran;Syzran;Syzran';Syzran’;Сызрань; +city::485239;Syktyvkar;Gorad Syktyukar;SCW;Siktifkar;Siktivkar;Siktivkara;Soktovkar;Syktyvkar;Syktyvkaras;Syktywkar;Sziktivkar;Sîktîvkar;Sõktõvkar;Sıktıvkar;Ust'-Sysol'sk;Ust’-Sysol’sk;se ke te fu ka er;sigtibkaleu;sukh tuf khar;su~ikutifukaru;syktyfkar;syktywkar;syqtybqr;Горад Сыктыўкар;Сиктивкар;Сыктывкар;Сыктывкар балһсн;Усть-Сысольск;Սիկտիվկար;סיקטיבקר;سيكتيفكار;سیکتیوکار;ซึคตึฟคาร์;スィクティフカル;瑟克特夫卡爾;식팁카르; +city::486968;Stupino;Elektrovoz;Gorad Stupina;Stoepino;Stoupino;Stupino;Stúpino;astwpynw;si tu pi nuo;stwbynw;stwpynw;Горад Ступіна;Ступино;Ступино балһсн;Ступіно;استوپینو;ستوبينو;ستوپینو;斯图皮诺; +city::487495;Sterlitamak;Cterle;Gorad Stehrlitamak;Staerletamaq;Sterlitamak;Sterlitamaka;Sterlitamakas;Sterļitamaka;Stärletamaq;Sztyerlitamak;astrlytamak;seuteleullitamakeu;si jie er li ta ma ke;strlytamak;suteruritamaku;Çтерлĕ;Горад Стэрлітамак;Стерлитамак;Стерлитамак балһсн;Стерлітамак;Стәрлетамак;Стәрлетамаҡ;Ստեռլիտամակ;استرلیتاماک;سترليتاماك;سترلیتاماک;ステルリタマク;斯捷尔利塔马克;스테를리타마크; +city::487846;Stavropol';STW;Stavropol;Stavropol';Stavropol’;Stawropol;Voroshilovsk;Ставрополь; +city::487928;Staryy Oskol;Starij Oskol;Stary Oskol;Staryi Oskol;Staryj Oskol;Staryy Oskol;seutalioseukol;Старий Оскол;Старый Оскол;스타리오스콜; +city::490172;Sosnovyy Bor;Sosnovyj Bor;Sosnovyy Bor;Uustia;Сосновый Бор; +city::490996;Solnechnogorsk;Solnechangorski;Solnechnogors'k;Solnechnogorsk;Solnechnogorski;Solnechnogorskiy;Solnecinogorsk;Solnecnogorsk;Solnecnoqorsk;Solnetchnogorsk;Solnetschnogorsk;Solnetsjnogorsk;Solnetsnogorsk;Solnetšnogorsk;Solneçnoqorsk;Solneĉnogorsk;Solnečnogorsk;Solniecznogorsk;Solnjecnogorsk;Solnječnogorsk;Solněčnogorsk;Sołniecznogorsk;suo er nie qi nuo ge er si ke;swlnchnwgwrsk;swlntshnwghwrsk;swlnychnwgwrsk;Солнечногорск;Солнечногорск балһсн;Солнечногорськ;سولنتشنوغورسك;سولنچنوگورسک;سولنیچنوگورسک;索爾涅奇諾戈爾斯克; +city::491023;Solikamsk;Gorad Salikamsk;Solikamsk;Solikamskas;Sovkar;Szolikamszk;suo li ka mu si ke;swlkamsk;swlykamsk;Горад Салікамск;Совкар;Соликамск;Սոլիկամսկ;سولكامسك;سولیکامسک;索利卡姆斯克; +city::491422;Sochi;AER;Sochi;Sochi - Soci;Sochi - Со́чи;Soci;Soczi;Sotchi;Sotji;Sotschi;Sotsi;Sotsji;Sotši;Soĉi;Ssotschi;sochi;soci;suo qi;Сочи;Сочі;सोची;სოჭი;ソチ;索契;소치; +city::491687;Smolensk;Gorad Smalensk;LNX;Smol'n'sku;Smolen'sk;Smolens'k;Smolenscum;Smolensk;Smolenska;Smolenskaj;Smolenskas;Smoleńsk;Smoļenska;Smulen;Szmolenszk;asmwlnsk;s mo len skh;seumollenseukeu;si mo leng si ke;smolenska;smwlnsk;smwlnsq;smwlynsk;sumorensuku;Σμολένσκ;Горад Смаленск;Смоленск;Смоленскай;Смоленськ;Смоленьск;Смольньскъ;Смулен;Սմոլենսկ;סמאלענסק;סמולנסק;اسمولنسک;سمولنسک;سمولينسك;स्मोलेन्स्क;สโมเลนสค์;სმოლენსკი;スモレンスク;斯摩棱斯克;스몰렌스크; +city::492094;Slavyansk-na-Kubani;Slavanskaya;Slavjansk Na Kubani;Slavjansk-na-Kubani;Slavyansk-na-Kubani;Slavyanskaya;Slawjanskaja;Slov'jans'k na Kubani;Sslawjanskaja;seullabyanseukeunakubani;Славянск На Кубани;Славянск-на-Кубани;Слов'янськ на Кубані;슬라뱐스크나쿠바니; +city::493160;Sibay;Sibai;Sibaj;Sibay;sibai;Сибай;시바이; +city::493231;Shuya;Chouia;Chouïa;Schuja;Shuja;Shuya;Sjuja;Suia;Suja;Suya;Szuja;Xuia;Xúia;shu ya;shuya;shwaya;shwya;syuya;Ŝuja;Şuya;Šuja;Șuia;Шуя;Шуја;شوايا;شویا;シューヤ;舒亚;슈야; +city::493702;Mikhaylovsk;Mihajlovsk;Mikhajlovsk;Mikhaylovsk;Mikhaylovska;Mikhaylovskoye;Shpakovskoe;Shpakovskoye;Sjpakovskoje;Михайловск;Шпаковское; +city::495344;Shchelkovo;Shchelkovo;Shchyolkovo;Shhelkovo;Shhjolkovo;Щелково;Щёлково; +city::495394;Shchekino;Schekino;Shchekino;Shchëkino;Shehekino;Shhekino;Shhjokino;Щекино;Щёкино; +city::496015;Shakhty;Aleksandrovsk-Grushevskiy;Aleksandrovsk-Grushevskoy;Chakhty;Gorad Shakhty;Sachtos;Sachty;Sahti;Sahto;Sahty;Saxti;Schachty;Shajty;Shakhti;Shakhty;Sjachty;Sjakhty;Szachty;sha he te;shakhtay;shakhty;syaheuti;Ŝaĥti;Şahti;Şaxtı;Šachtos;Šachty;Šahti;Šahty;Šahtõ;Șahtî;Горад Шахты;Шахти;Шахты;شاختاي;شاختی;沙赫特;샤흐티; +city::496278;Severomorsk;Gorad Severamorsk;Severomors'k;Severomorsk;Severomorskas;Seweromorsk;Sewjeromorsk;Siewieromorsk;Szeveromorszk;Vaenga;Vaenka;Vayenga;bei mo er si ke;sebelomoleuseukeu;sevu~eromorusuku;sfyrwmwrsk;swrwmwrsk;sywrwmwrsk;Горад Севераморск;Североморск;Сєвєроморськ;سفيرومورسك;سورومورسک;سیورومورسک;セヴェロモルスク;北莫爾斯克;세베로모르스크; +city::496285;Severodvinsk;Gorad Severadzvinsk;Molotovsk;Molotowsk;Severodvins'k;Severodvinsk;Severodvinska;Severodvinskas;Sewerodwinsk;Sewjerodwinsk;Siewierodwinsk;Siewierodwińsk;Sudostroy;bei de wen si ke;sebelodeubinseukeu;sevu~erodovu~insuku;sfrwdfnsk;swrwdwynsk;sywrwdwnsk;Горад Северадзвінск;Северодвинск;Сєверодвінськ;سفرودفنسك;سورودوینسک;سیورودونسک;სევეროდვინსკი;セヴェロドヴィンスク;北德文斯克;세베로드빈스크; +city::496527;Serpukhov;Serpoechov;Serpuchov;Serpuchow;Serpuhhov;Serpuhov;Serpukhov;Serpuĥov;Sierpuchow;Sierpukhovo;seleupuhopeu;Серпухов;세르푸호프; +city::496638;Sergiyev Posad;Sergiev Posad;Sergijev Posad;Sergijev Possad;Sergijew Possad;Sergiyev;Sergiyev Posad;Sergiyevskiy Posad;Siergijew Posad;Zagorsk;Сергиев Посад;Сергијев Посад; +city::498525;Sarov;Arzamas-16;Gorad Sarou;Kremlev;Kremlëv;Sarov;Sarova;Sarow;Sarykylych;Szarov;sa luo fu;salopeu;sarofu;sarwf;Горад Сароў;Саров;Сарыкылыч;ساروف;サロフ;薩羅夫;사로프; +city::498677;Saratov;Gorad Saratau;ISaratov;RTW;Saratof;Saratov;Saratov osh;Saratova;Saratovas;Saratovia;Saratovu;Saratow;Saratu;Saratuovs;Saratów;Saretow;Sarytau;Saràtov;Sarátov;Szaratov;sa la tuo fu;salatopeu;saratofu;saratova;saratwf;srʼtwb;Σαράτοφ;Горад Саратаў;Сарăту;Саратов;Саратов балһсн;Саратов ош;Саратовъ;Сарытау;Һарытау;Սարատով;סראטוב;ساراتوف;ساراٹوف;सारातोव;სარატოვი;サラトフ;薩拉托夫;사라토프; +city::498687;Sarapul;Gorad Sarapul;Sarapoel;Sarapoul;Sarapul;Sarapulas;Sarapuł;Szarapul;sa la pu er;sarabwl;sarapl;sarapuru;sarapwl;Горад Сарапул;Сарапул;سارابول;ساراپل;ساراپول;サラプル;萨拉普尔; +city::498698;Saransk;Gorad Saransk;SKX;Saran;Saran osh;Saranosh;Sarans'k;Saransk;Saranska;Saranskas;Saransko;Sarańsk;Szaranszk;sa lan si ke;sa ran skh;salanseukeu;saransk;saranska;saransuku;sransk;srnsq;Горад Саранск;Саран;Саран ош;Саранош;Саранск;Саранск балһсн;Саранськ;סרנסק;سارانسك;سارانسک;سرانسک;सारान्स्क;ซารันสค์;サランスク;萨兰斯克;사란스크; +city::498817;Saint Petersburg;Agia Petroupole;Betuyrbukh;LED;Leningrad;Leningrado;Lungsod ng Sankt-Peterburg;Peterburg;Peterburgo;Peterburi;Petersburg;Petrapilis;Petrograd;Petrogrado;Petrohrad;Petropolis;Petursborg;Pietari;Piiteri;Piter;Pétursborg;SPb;Saint Petersbourg;Saint Petersburg;Saint Pétersbourg;Saint-Petersbourg;Saint-Pétersbourg;San Petersburgo;San Pietroburgo;San Pietruburgu;Sankt Peitersbuerg;Sankt Peterburg;Sankt Peterburgas;Sankt Petersborg;Sankt Petersburg;Sankt Peterzburg;Sankt Péitersbuerg;Sankt-Peterburg;Sankt-Peterburgo;Sankt-Petersburg;Sankti Petursborg;Sankti Pétursborg;Sanktpeterburga;Sanktpēterburga;Sant Petersburg;Sant Petersburgo;Sant-Petersbourg;Santa Peterburg;Sao Petersburgo;Sint Petersbork;Sint-Petersburg;St Petersburg;St. Petersburg;St.-Petersburg;Szentpetervar;Szentpétervár;São Petersburgo;leningeuladeu;sangteupeteleubuleukeu;sankt. peterburg;sankutopeteruburuku;sant btrsbrgh;seinteupiteojeubeogeu;sent pi te xrs beirk;sheng bi de bao;sn ptrzbwrg;snqt ptrbwrg;Αγία Πετρούπολη;Бетъырбух;Ленинград;Петербург;Петроград;Питер;СПб;Санкт Петербург;Санкт Петерзбург;Санкт-Петербург;Սանկտ Պետերբուրգ;סנקט פטרבורג;سانت بطرسبرغ;سن پترزبورگ;เซนต์ปีเตอร์สเบิร์ก;სანკტ-პეტერბურგი;სანქტ-პეტერბურგი;サンクトペテルブルク;圣彼得堡;레닌그라드;상트페테르부르크;세인트피터즈버그; +city::499099;Samara;Gorad Samara;KUF;Kuibyschew;Kuibyshev;Kujbyshev;Kuybyshev;Samar;Samar khot;Samar osh;Samara;Samarae;Samare;Samarga;Samāra;Szamara;sa ma la;sa ma ra;samala;samara;smara;smara rws;smrh;Σαμάρα;Горад Самара;Куйбышев;Самар;Самар ош;Самар хот;Самарæ;Самара;Самаре;Самарҕа;Һамар;Սամարա;סמרה;سامارا;سامارہ;سمارا;سمارا، روس;समारा;ซามารา;სამარა;サマーラ;薩馬拉;사마라; +city::499161;Sal'sk;Sal'sk;Salsk;Sal’sk;Ssalsk;Torgovyy;Сальск; +city::499292;Salavat;Gorad Salavat;Salauat;Salavat;Salavat i Russland;Salavata;Salavatas;Salawat;Saławat;Szalavat;sa la wa te;salafat;salawat;salawat rwsyh;saravu~ato;Горад Салават;Салават;Салават балһсн;Салауат;سالافات;سالاوات;سالاوات، روسیه;サラヴァト;薩拉瓦特; +city::499717;Rzhev;Gorad Rzhehu;Raesevae;Rescovia;Rjev;Rjov;Rschew;Rshew;Rzev;Rzew;Rzhev;Rzjev;Räsevä;Rĵev;Rżew;Ržev;lei re fu;leujepeu;rjyf;rujefu;rzb;rzhf;rzhyf;Горад Ржэў;Ржев;רזב;رجيف;رژف;رژیف;ルジェフ;勒熱夫;르제프; +city::500004;Rybinsk;Andropov;Gorad Rybinsk;RYB;Ribins'k;Ribinsk;Ribinska;Ribinsko;Robinsk;Rybinsk;Rybinskas;Rybińsk;Ríbinsk;Rîbinsk;Rõbinsk;Rýbinsk;Rıbinsk;Shcherbakov;lei bin si ke;libinseukeu;raybansk;ruibinsuku;rybnsk;rybynsk;Горад Рыбінск;Рибинск;Рибінськ;Рыбинск;رايبانسك;ریبنسک;ریبینسک;ルイビンスク;雷宾斯克;리빈스크; +city::500096;Ryazan';RZN;Resania;Riazan;Riazań;Rjasan;Rjazan;Rjazan';Rjazaň;Ryazan;Ryazan';Ryazan’;liang zan;lyajan;ryazan;Рязань;リャザン;梁赞;랴잔; +city::501175;Rostov-na-Donu;Don umbalne Rostov;Dondaguy Rostov;Dondagy Rostov;Dondokhi Rostov;Doni Rostov;Donyn Rostov;Gorad Rastou-na-Done;ROV;Rostof aan die Don;Rostof epi tou Nton;Rostov;Rostov Don;Rostov Donal;Rostov Doni aeaeres;Rostov Doni ääres;Rostov aan de Don;Rostov de Don;Rostov del Don;Rostov do Don;Rostov na Don;Rostov na Donu;Rostov nad Donom;Rostov sopra-u-Donu;Rostov sul Don;Rostov tren song GJong;Rostov trên sông Đông;Rostov ved Don;Rostov-Don;Rostov-Donyl;Rostov-Tan-cinchi;Rostov-an-Don;Rostov-ar-Ddon;Rostov-na-Donu;Rostov-on-Don;Rostov-pe-Don;Rostov-sur-le-Don;Rostova pie Donas;Rostovas prie Dono;Rostovia ad Tanaim;Rostow;Rostow Am Don;Rostow am Don;Rostow na Donu;Rostow nad Donem;Rostow nad Donom;Rostòv de Dòn;Rostóv na Donú;Rostów nad Donem;Rosztov-na-Donu;Tyndagy Rostov;dun he pan luo si tuo fu;loseutopeunadonu;rastov-an-dan;rostova dona;rwstwf-na-dwnw;rwstww na danw;Ροστόφ επί του Ντον;Горад Растоў-на-Доне;Дон ӱмбалне Ростов;Дон-тӀера-Ростов;Дондагъы Ростов;Дондағы Ростов;Дондохи Ростов;Донын Ростов;Растовъ на Донѣ;Ростов;Ростов на Дон;Ростов на Дону;Ростов-Доныл;Ростов-Тан-çинчи;Ростов-на-Дону;Ростов-на-Дону балһсн;Тындагы Ростов;Դոնի Ռոստով;רוסטוב על הדון;روستوف-نا-دونو;روستوو نا دانو;रोस्तोव दॉन;ರಾಸ್ಟೊವ್-ಆನ್-ಡಾನ್;დონის როსტოვი;დონიშ როსტოვი;ロストフ・ナ・ドヌ;顿河畔罗斯托夫;로스토프나도누; +city::501215;Rossosh';Pervaya Rossosh';Pervaya Rossosh’;Rossosh';Rossosh' Pervaya;Rossoshi;Rossosh’;Rossosh’ Pervaya;Rossosji;Россошь; +city::501231;Rossosh';Rossoh';Rossos;Rossosch;Rossosh';Rossosh’;Rossosj;Rossoš;Россошь; +city::501283;Roslavl';Raslawl;Roslavl;Roslavl';Roslavl’;Roslawl;Рославль; +city::502011;Revda;Gorad Rehuda;Revda;Revda i Sverdlovsk oblast;Revnta;Rewda;lie fu da;rfda awblast swrdlwfsk;ryfda;rywda;Ρεβντά;Горад Рэўда;Ревда;Рәүде;رفدا، اوبلاست سوردلوفسک;ريفدا;ریودا;列夫達; +city::502018;Reutov;Reoutov;Reutov;Reutova;Reutovas;Reutovo;Reutow;Rieutow;Rjeutov;Rjeutow;Réutov;lie wu tuo fu;rywtwf;Реутов;Реутов балһсн;Рјеутов;رئوتوف;ريوتوف;ریوتوف;列烏托夫; +city::502965;Ramenskoye;Gorad Ramenskae;Ramenska;Ramenskoe;Ramenskoie;Ramenskoje;Ramenskojė;Ramenskoye;Ramenskoïe;Ramienskoje;Rámenskoye;la mian si ke ye;lamenseukoye;ramensukoe;ramnskwy;ramnskwyh;Горад Раменскае;Раменское;Раменскоје;رامنسكوي;رامنسکوئے;رامنسکویه;ラメンスコエ;拉緬斯科耶;라멘스코예; +city::503550;Pyatigorsk;Five Mountains;Piatigorsk;Pjatigors'k;Pjatigorsk;Pyatigorsk;pyachigorusuku;pyatigoleuseukeu;wu shan cheng;Пятигорск;Пятигорськ;פיאטיגורסק;ピャチゴルスク;五山城;퍄티고르스크; +city::503977;Pushkino;Poesjkino;Pouchkino;Puschkino;Pushkino;Pusjkino;Puskino;Puszkino;Puŝkino;Puşkino;Puškino;Púshkino;bwshkynw;pu xi jin nuo;pwshkynw;pwshkynw astan mskw;Пушкино;Пушкіно;بوشكينو;پوشکینو;پوشکینو، استان مسکو;普希金諾; +city::504003;Pushkin;Detskoye Selo;Puschkin;Pushkin;Pusjkin;Saari;Suari;Tsarskoye Selo;Šuari;Пушкин; +city::504341;Pskov;Gorad Pskou;PKV;Pihkova;Pihkva;Pleskau;Pleskava;Pscovia;Pskof;Pskov;Pskov osh;Pskovas;Pskovo;Pskow;Psków;Pszkov;bskwf;pas khxf;peuseukopeu;pskwf;psqwb;pu si ke fu;pusukofu;Горад Пскоў;Пльсковъ · Рѡсїи;Псков;Псков ош;Պսկով;פסקוב;بسكوف;پسکوف;ปัสคอฟ;ფსკოვი;プスコフ;普斯科夫;프스코프; +city::504935;Prokhladnyy;Prochladnaja;Prochladnyj;Prohladnyi;Prokhladneh;Prokhladnyj;Prokhladnyy;Прохладный;Прохладнэ; +city::508101;Podolsk;OSF;Podol'sk;Podolsk;Подольск; +city::509820;Petrozavodsk;AEaenislinna;Gorad Petrazavodsk;PES;Petrosavodsk;Petrosawodsk;Petroskoi;Petroskoj;Petroskoj osh;Petrozavods'k;Petrozavodsk;Petrozavodska;Petrozavodskas;Petrozavodszk;Petrozavontsk;Petrozawodsk;Petrozawodzk;Pietrozawodsk;Pjetrozawodsk;bi de luo zha wo ci ke;bytrwzwfwdsk;peteulojabocheukeu;petorozavu~otsuku;petrozavodska;ptrwzawdsk;ptrwzbwdsq;pytrwzawwdsk;Äänislinna;Πετροζαβόντσκ;Горад Петразаводск;Петрозаводск;Петрозаводськ;Петроской;Петроской ош;Петроскӧй;פטרוזבודסק;بيتروزوفودسك;پتروزاودسک;پیتروزاوودسک;پیٹروزاودسک;पेत्रोज़ावोद्स्क;პეტროზავოდსკი;ペトロザヴォーツク;彼得罗扎沃茨克;페트로자보츠크;𐍀𐌴𐍄𐍂𐍉𐌶𐌰𐌸𐌰𐌿𐌳𐍃𐌺; +city::510225;Petrodvorets;Petergof;Petrodvorec;Petrodvorets;Петродворец; +city::510291;Peterhof;Gorad Pecjargof;Paleizencomplex in Peterhof;Peterchof;Petergof;Peterhof;Peterhofa;Peterhofium;Peterkhof;Petrodvorec;Petrodvorets;Petěrgof;Pietarhovi;Pjetergof;Pēterhofa;bi de gong cheng;bytyrhwf;peteleugopeu;peterugofu;ptrgwf;pʼetʼergopi;Πέτερχοφ;Горад Пецяргоф;Петергоф;Петерхоф;Петродворец;بيتيرهوف;پترگوف;პეტერგოფი;ペテルゴフ;彼得宮城;페테르고프; +city::510808;Pervoural'sk;Pervoural'sk;Pervoural'skiy;Pervouralsk;Pervoural’sk;Pervoural’skiy;byrfwralsk;di yi wu la er si ke;Первоуральск;بيرفورالسك;第一烏拉爾斯克; +city::511196;Perm;Gorad Perm;Molotov;PEE;Perem;Perm;Perm';Perma;Perme;Permia;Permjo;Permė;Perym;bi er mu;byrm;parma;peiy rm;peleum;perumi;prm;pyrm;Περμ;Горад Перм;Молотов;Перĕм;Перем;Перм;Пермь;Перым;Пєрмь;Պերմ;פרם;بيرم;پرم;پیرم;पर्म;เปียร์ม;პერმი;ペルミ;彼尔姆;페름; +city::511510;Novo-Peredelkino;Novo-Peredelkino;Peredelkino;Ново-Переделкино; +city::511565;Penza;Gorad Penza;PEZ;Pensa;Penz;Penza;Penza osh;Penzae;Penze;ben sa;bynza;penja;penza;pnza;pnzh;pynza;Πένζα;Горад Пенза;Пензæ;Пенза;Пенза балһсн;Пенза ош;Пензе;Պենզա;פנזה;بينزا;پنزا;پینزا;ペンザ;奔萨;펜자; +city::512023;Pavlovskiy Posad;Pavloro Pasad;Pavlov-Posad;Pavlovo-Posad;Pavlovski Posad;Pavlovskij Posad;Pavlovskiy Posad;Павловский Посад; +city::513883;Otradnyy;Otradnoye;Otradny;Otradnyj;Otradnyy;Отрадный; +city::514734;Orsk;Gorad Orsk;OSW;Ors'k;Orsk;Orska;Orskas;Orski;Orsko;ao er si ke;awrsk;oleuseukeu;orusuku;Горад Орск;Орск;Орски;Орськ;أورسك;اورسک;オルスク;奧爾斯克;오르스크; +city::515003;Orenburg;Arenpur;Chkalov;Gorad Arehnburg;Oremburgo;Orenbourg;Orenburg;Orenburg osh;Orenburga;Orenburgas;Orenburgo;Orenburgum;Orenburq;Orynbor;REN;Tschkalow;ao lun bao;awrnbrg;awrnbrgh;awrnbwrg;awrynbwrgh;olenbuleukeu;orenabarga;orenburgi;orenburuku;xo re nburk;yrymbur;yrynbur;Ăренпур;Горад Арэнбург;Оренбург;Оренбург ош;Орынбор;Чкалов;Ырымбур;Ырынбур;Օրենբուրգ;אורנבורג;أورنبرغ;أورينبورغ;اورنبرگ;اورنبورگ;ओरेनबर्ग;โอเรนบุร์ก;ორენბურგი;オレンブルク;奥伦堡;오렌부르크; +city::515012;Orel;OEL;Orel;Oriol;Oriolas;Orjol;Oryol;Orzel;Orzeł;Orël;olyol;oryoru;Орел;Орёл;オリョール;오룔; +city::515024;Orekhovo-Zuyevo;Gorad Arehkhava-Zueva;Orechovas-Zujevas;Orechovo-Zoejevo;Orechovo-Zuevo;Orechovo-Zujevo;Orechowo-Sujewo;Orehhovo-Zujevo;Orehovo-Zuevo;Orehovo-Zujevo;Orehovo-Zuyevo;Orehovozujeva;Orejovo-Zuyevo;Orekhovo;Orekhovo-Zouievo;Orekhovo-Zouïevo;Orekhovo-Zuevo;Orekhovo-Zujevo;Orekhovo-Zuyevo;Orexovo-Zuyevo;Oreĥovo-Zujevo;Oriechowo-Zujewo;Orjechowo Sujewo;Oryekhovo;Oréjovo-Zúyevo;ao lie huo wo-zu ye wo;arykhwfw-zwyfw;awrkhwfw-zwyfw;awrykhwfw-zwyfw;awrykhww zwyyww;olehobojuyebo;orehovu~o=zuevu~o;Горад Арэхава-Зуева;Орехово-Зуево;Орехово-Зујево;Орєхово-Зуєво;أوريخوفو-زويفو;اريخوفو-زويفو;اورخوفو-زویفو;اوریخوو زوئیوو;オレホヴォ=ズエヴォ;奧列霍沃-祖耶沃;오레호보주예보; +city::515083;Sunzha;Ordshonikidsewskaja;Ordzhonikidzevskaja;Ordzhonikidzevskaya;Ordzhonikidzevskoye;Ordzjonikidzevskaja;Sipsoj-gӀala;Sleptsovskaya;Slyeptsovskaya;Sunza;Sunzha;Sunzja;Sunža;Орджоникидзевская;Сипсой-гӀала;Сунжа; +city::515879;Oktyabr'skiy;OKT;Oktiabr'skil;Oktiabr’skil;Oktjabr'skij;Oktjabrskij;Oktyabr'skiy;Oktyabrsk;Oktyabr’skiy;Октябрьский; +city::516215;Odintsovo;Gorad Adzincova;Odincova;Odincovas;Odincovo;Odincowo;Odintovo;Odintsovo;Odinzowo;Odințovo;ao jin zuo wo;awdynstww;awdyntswfw;odinchobo;ojintsu~obo;xo din t so wo;Горад Адзінцова;Одинтсово;Одинцово;Одинцово балһсн;أودينتسوفو;اودینتسوفو;اودینستوو;โอดินต์โซโว;オジンツォボ;奧金佐沃;오딘초보; +city::516436;Obninsk;Gorad Obninsk;Obnins'k;Obninsk;Obninskas;Obnińsk;ao bu ning si ke;awbnynsk;obeuninseukeu;obuninsuku;Óbninsk;Горад Обнінск;Обнинск;Обнінськ;أوبنينسك;اوبنینسک;ობნინსკი;オブニンスク;奥布宁斯克;오브닌스크; +city::517836;Novotroitsk;Gorad Navatroick;Novo-Troitskiy;Novotroic'k;Novotroick;Novotroickas;Novotroitc;Novotroitsk;Novotroițc;Novotroytsk;Novotroïtsk;Nowotroick;Nowotroizk;nwfwtrwytsk;nwwtrwyytsk;nwwwtrwysk;xin te luo yi ci ke;Горад Наватроіцк;Новотроитск;Новотроицк;Новотроїцьк;Яңа Троицк;نوفوترويتسك;نوووترویسک;نوّوتروئیتسک;新特羅伊茨克; +city::517963;Novoshakhtinsk;Komintern;Kominternovskiy;Molotovskiy;Novosahtinsk;Novoshakhtinsk;Novoŝaĥtinsk;Novošahtinsk;Nowoschachtinsk;Nowoszachtynsk;Nowoszachtyńsk;Новошахтинск; +city::518255;Novorossiysk;NOI;Noborosisk;Novorosijsk;Novorossiejsk;Novorossiisk;Novorossijsk;Novorossisk;Novorossiysk;Noworossiisk;Noworossijsk;Noworosyjsk;nobolosiseukeu;Νοβορωσίσκ;Новоросијск;Новороссийск;노보로시스크; +city::518557;Novomoskovsk;Bobriki;Gorad Novamaskousk;Novomoskovs'k;Novomoskovsk;Novomoskovsk i Russland;Novomoskovskas;Nowomoskowsk;Stalinogorsk;Stalinogorsk Pervyy;Stalinogorsk Severnyy;Stalinogorsk Vtoroy;Stalinogorsk Yuzhnyy;nobomoseukobseukeu;novu~omosukofusuku;nwfwmwskwfyk;nwwmaskwwsk;nwwwmwskwfsk rwsyh;xin mo si ke si ke;Горад Новамаскоўск;Новомосковск;Новомосковськ;Яңа Мәскәү;نوفوموسكوفيك;نووماسکووسک;نوووموسکوفسک، روسیه;ノヴォモスコフスク;新莫斯科斯克;노보모스콥스크; +city::518659;Novokuybyshevsk;Gorad Navakujbyshehusk;Novo-Kuybuyshev;Novo-Kuybyshevskiy;Novokoejbysjevsk;Novokouibychevsk;Novokouïbychevsk;Novokuibisevsk;Novokuibiševsk;Novokuibosevsk;Novokuibysevsk;Novokuibysevskas;Novokuibyshevsk;Novokuibyševsk;Novokuibyševskas;Novokuibîșevsk;Novokuibõševsk;Novokujbisevsk;Novokujbisevszk;Novokujbishevs'k;Novokujbishevsk;Novokujbiŝevsk;Novokujbiševsk;Novokujbysevsk;Novokujbyshevsk;Novokujbysjevsk;Novokujbyševsk;Novokuybyshevsk;Novokúibyshevsk;Nowokuibyschewsk;Nowokujbysewsk;Nowokujbyszewsk;Nowokujbyšewsk;nwfwkwybyshfsk;nwwkwybyshfsk;nwwkwyybyshywsk;xin gu bi xue fu si ke;Горад Навакуйбышэўск;Новокуйбишевск;Новокуйбишевськ;Новокуйбышевск;Новокујбишевск;Яңа Куйбышев;نوفوكويبيشفسك;نووکویبیشفسک;نوّوکوئیبیشیوسک;新古比雪夫斯克; +city::518970;Novocherkassk;Gorad Novacharkask;Novocerkask;Novocerkaska;Novocerkaskas;Novocerkassk;Novocherkas'k;Novocherkask;Novocherkassk;Novocserkasszk;Novotcherkassk;Novotjerkassk;Novotserkassk;Novotsjerkassk;Novotšerkassk;Novoçerkassk;Novoĉerkassk;Novočerkask;Novočerkaska;Novočerkaskas;Novočerkassk;Nowoczerkask;Nowotscherkask;Nowotscherkassk;Nowotsjerkassk;nobocheleukaseukeu;novu~ocherukassuku;nwbwzrqsq;nwfwtshrkask;nwwchrkask;nwwchrkysk;xin qie er ka si ke;Горад Новачаркаск;Новочеркаск;Новочеркасск;Новочеркаськ;נובוצרקסק;نوفوتشركاسك;نووچرکاسک;نووچرکیسک;ნოვოჩერკასკი;ノヴォチェルカッスク;新切爾卡斯克;노보체르카스크; +city::518976;Novocheboksarsk;Cene Shupashkar;Novoceboksarsk;Novocheboksarsk;Novotseboksarsk;Novotsjeboksarsk;Novotšeboksarsk;Novoĉeboksarsk;Novočeboksarsk;Nowotscheboksarsk;nobochebogsaleuseukeu;novu~ochebokusarusuku;Çĕнĕ Шупашкар;Новочебоксарск;ノヴォチェボクサルスク;노보체복사르스크; +city::519336;Velikiy Novgorod;Holmgardur;Hólmgarður;NVR;Naugard;Naugardas;Nobnkoront;Nov" Grad";Nov"grad";Novgorod;Novogardia Magna;Nowgorod;Nowogrod Wielki;Nowogród Wielki;Suuri Novgorodi;Veliki Novgorod;Veliki Nóvgorod;Velikij Novgorod;Velikiy Novgorod;Veliky Novgorod;Weliki Nowgorod;bellikinobeugolodeu;da nuo fu ge luo de;didi novgorodi;novugorodo;nwbgwrwd;Šuuri Novgorodi;Νόβγκοροντ;Велики Новгород;Великий Новгород;Новгород;Новъ Градъ;Новъградъ;נובגורוד;დიდი ნოვგოროდი;ノヴゴロド;大诺夫哥罗德;벨리키노브고로드; +city::520068;Noginsk;Gorad Naginsk;Noghinsk;Nogins'k;Noginsk;Noginska;Noginskas;Nogińsk;Noguinsk;Noqinsk;noginseukeu;noginsuku;nuo jin si ke;nwgnsk;nwgynsk;nwjynsk;Горад Нагінск;Ногинск;Ногинск балһсн;Ногінськ;نوجينسك;نوگنسک;نوگینسک;ノギンスク;諾金斯克;노긴스크; +city::520494;Nizhniy Tagil;Nizhne-Tagil'skiy;Nizhne-Tagil’skiy;Nizhni Tagil;Nizhnii Tagil;Nizhnij Tagil;Nizhniy Tagil;Nizjnij Tagil;Нижний Тагил; +city::520555;Nizhniy Novgorod;GOJ;Gor'kij;Gor'kiy;Gorkey;Gorki;Gorkii;Gorkij;Gorky;Nijni Novgorod;Nijnii Novgorod;Nischni Nowgorod;Nishni-Nowgorod;Nishnii Nowgorod;Nishnij Nowgorod;Nizhni Novgorod;Nizhnii Novgorod;Nizhnij Novgorod;Nizhniy Novgorod;Nizhny Novgorod;Nizjnij Novgorod;Nizni Novgorod;Niznij Nowgorod;Nižni Novgorod;Nižnij Nowgorod;Горький;Нижний Новгород; +city::521118;Nizhnekamsk;Anat Kama;Gorad Nizhnjakamsk;NBC;Nijnekamsk;Nischnekamsk;Nizhn'okams'k;Nizhnekamsk;Nizhnekamskiy;Nizjnekamsk;Niznekamsk;Niznekamska;Niznekamskas;Nizniekamsk;Niznjekamsk;Niĵnekamsk;Niżniekamsk;Nižnekamsk;Nižnekamskas;Nižnjekamsk;Nižněkamsk;Tuebaen Kama;Tuebenkama;Tübenkama;Tübän Kama;nijeunekamseukeu;nijinekamusuku;nyjnkamsk;nyzhnkamsk;nyzhnykamsk;xia ka mu si ke;Ņižņekamska;Анат Кама;Горад Ніжнякамск;Нижнекамск;Нижньокамськ;Нижњекамск;Түбән Кама;نيجنكامسك;نیژنکامسک;نیژنیکامسک;ニジネカムスク;下卡姆斯克;니즈네캄스크; +city::522377;Nevinnomyssk;Gorad Njavinnamysk;Nevinnomis'k;Nevinnomissk;Nevinnomossk;Nevinnomyskaya;Nevinnomyssk;Nevinnomysskaya;Nevinnomîssk;Nevinnomõssk;Nevinnomıssk;Nevinnonyssk;Nevinomisk;Nevinomysk;Nevinomyskas;Nevinomısk;Newinnomyssaja;Newinnomyssk;Newinnomysskaja;Niewinnomyssk;Njewinnomyssk;Něvinnomyssk;nafynwmysk;nebinomiseukeu;nevu~in'nomuisuku;nie wen nuo mei si ke;nwynwmysk;nywynwmysk;Горад Нявіннамыск;Невинномисск;Невинномиськ;Невинномысск;Невинномысск балһсн;Невиномиск;Նեվինոմիսկ;نافينوميسك;نوینومیسک;نیوینومیسک;ネヴィンノムイスク;涅溫諾梅斯克;네비노미스크; +city::522942;Neftekamsk;Gorad Nefcjakamsk;Kasevo;Kaseyevo;NEF;Neftekama;Neftekams'k;Neftekamsk;Neftekamska;Neftekamskas;Nieftiekamsk;Njeftekamsk;Nyeftyekamszk;Něftěkamsk;nebtekamseukeu;nftkamsk;nie fu jie ka mu si ke;nyftykamsk;Ņeftekamska;Горад Нефцякамск;Нефтекама;Нефтекамск;Нефтекамск балһсн;Нефтекамськ;نفتكامسك;نفتکامسک;نیفتیکامسک;涅夫捷卡姆斯克;넵테캄스크; +city::523064;Nazran';Imeni Kost-Khetagurova;Kazran;Kosta-Khetagurovo;Nana-Na'sare;Nasran;Nazran;Nazran';Nazrane;Nazranj;Nazrano;Nazranė;Nazran’;Nazrań;Poselok Nazran';Posëlok Nazran’;najeulan;Назрань;Нана-Наьсаре;나즈란; +city::523426;Naro-Fominsk;Gorad Nara-Faminsk;Naro-Fomins'k;Naro-Fominsk;Naro-Fomińsk;Narofominska;na luo-fu ming si ke;nalopominseukeu;naro=fominsuku;narw-fwmynsk;narwfwmnsk;Горад Нара-Фамінск;Наро-Фоминск;Наро-Фоминск балһсн;Наро-Фомінськ;Նարո-Ֆոմինսկ;نارو-فومينسك;نارو-فومینسک;ناروفومنسک;ナロ=フォミンスク;納羅-福明斯克;나로포민스크; +city::523523;Nal'chik;NAL;Nal'chik;Nalshyk;Naltschik;Naltsik;Naltšik;Nal’chik;Налшык;Нальчик; +city::523750;Naberezhnyye Chelny;Brezhnev;Jar Chally;Naberejnije Celni;Naberejnye Chelny;Nabereschnyje Tschelny;Naberezhnye Chelny;Naberezhnyye Chelny;Naberezjnye Tsjelny;Nabereznije Celni;Nabereznoje Tselno;Nabereznye Celny;Nabereznyje Celny;Nabereznyje Tselny;Nabereĵnije Ĉelni;Naberežnije Čelni;Naberežnye Čelny;Naberežnyje Tšelny;Naberežnyje Čelny;Naberežnõje Tšelnõ;nabelejeuniyechelni;nabelejuniyechelni;Брежнев;Набережные Челны;Яр Чаллы;나베레주니예첼니;나베레즈니예첼니; +city::523812;Mytishchi;Gorad Mycishchy;Mitischi;Mitisci;Mitishchi;Mitishhi;Mitisi;Mitisxi;Mitiŝĉi;Mitišči;Mityiscsi;Miytisci;Motistsi;Mytichtchi;Mytischtschi;Mytisci;Mytisciai;Mytishchi;Mytishhi;Mytishi;Mytisjtji;Mytisjtsji;Mytistsi;Mytiszczi;Mytištši;Mytišći;Mytišči;Mytiščiai;Mîtișci;Mõtištši;Mıtişi;Mıytişçi;maytshy;mei ji xi;mitisi;mitisichi;muy thich chi;mu~itishi;mytyshchy;Горад Мыцішчы;Митишчи;Митищі;Мытищи;Мытищи балһсн;مايتشي;میتیشچی;มืยทิชชี;ムィティシ;梅季希;미티시;미티시치; +city::524294;Murom;Gorad Muram;Moerom;Mourom;Murom;Murom am Oka;Muromas;Muromum;Múrom;mu luo mu;mulom;muromu;mwrwm;Горад Мурам;Муром;Мөрәм;موروم;ムーロム;穆罗姆;무롬; +city::524305;Murmansk;Gorad Murmansk;Gorod Murmansk;MMK;Moermansk;Mourmansk;Murmans'k;Murmansk;Murmansk osh;Murmanska;Murmanskas;Murmanski;Murmansko;Murmanszk;Murmańsk;Murmánska;Muurmanni;Muurmanski;Múrmansk;Mûrmansk;mo er man si ke;muleumanseukeu;muramanska;murmanska;murumansuku;mwrmansk;mwrmnsq;Μούρμανσκ;Горад Мурманск;Мурманск;Мурманск ош;Мурманськ;Մուրմանսկ;מורמנסק;مورمانسك;مورمانسک;मुर्मान्स्क;मूरमान्स्क;მურმანსკი;ムルマンスク;摩爾曼斯克;무르만스크; +city::524901;Moscow;Gorad Maskva;MOW;Maeskuy;Maskav;Maskava;Maskva;Mat-xco-va;Matxcova;Matxcơva;Mosca;Moscfa;Moscha;Mosco;Moscou;Moscova;Moscovo;Moscow;Moscoƿ;Moscu;Moscua;Moscòu;Moscó;Moscù;Moscú;Mosk"va;Moska;Moskau;Mosko;Moskokh;Moskou;Moskov;Moskova;Moskovu;Moskow;Moskowa;Mosku;Moskuas;Moskva;Moskvo;Moskwa;Moszkva;Muskav;Musko;Mát-xcơ-va;Mòskwa;Məskəү;masko;maskw;mo si ke;moseukeuba;mosko;mosukuwa;mskw;mwskva;mwskw;mwsqbh;mx s ko;Μόσχα;Горад Масква;Мæскуы;Маскав;Москва;Москова;Москох;Москъва;Мускав;Муско;Мәскәү;Մոսկվա;מאָסקװע;מאסקווע;מוסקבה;ماسکو;مسکو;موسكو;موسكۋا;ܡܘܣܩܒܐ;मास्को;मॉस्को;মস্কো;மாஸ்கோ;มอสโก;མོ་སི་ཁོ།;მოსკოვი;ሞስኮ;モスクワ;莫斯科;모스크바; +city::526480;Mineralnye Vody;Gorad Mineral'nyja Vody;MRV;Mineral Waters;Mineral'ni Vodi;Mineral'nye Vody;Mineral'nyye Vody;Mineralized Veded;Mineraližed Veded;Mineralne Wody;Mineralnie Vodi;Mineralnie Vody;Mineralnie vodi;Mineralnije Vodi;Mineralniye Vodi;Mineralnoje Vodo;Mineralnye Vody;Mineralnyje Vody;Mineralnyje Wody;Mineralnyye Vody;Mineralnîe Vodî;Mineralnõje Vodõ;Mineralnıye Vodı;Mineral’nyye Vody;Minjeralnyje Wody;Minvod;kuang shui cheng;minelalniyebodi;minerarinu~ie・vu~odo~i;mnralny fwdy;mynralnyh wwdy;mynrlnyyh wwdy;mynyralnayy fwdy;Горад Мінеральныя Воды;Минвод;Минералние води;Минералније Води;Минеральные Воды;Минеральные Воды балһсн;Мінеральні Води;Միներալնիե Վոդի;מינרלנייה וודי;منرالني فودي;منرالنیئے وودی;مينيرالنايي فودي;مینرالنیه وودی;ミネラーリヌィエ・ヴォードィ;礦水城;미네랄니예보디; +city::527012;Mikhaylovka;Gorad Mikhajlauka;Michailowka;Michajlovka;Michajlowka;Michajłowka;Michalowka;Mihailovk;Mihailovka;Mihajlovka;Mihhailovka;Mikhailovka;Mikhajlovka;Mikhaylovka;Mikhaïlovka;Miĥajlovka;mi ha yi luo fu ka;mykhaylwfka;mykhayylwfka awblast wlgwgrad;mykhayylwka;Горад Міхайлаўка;Михайловка;Михайловка балһсн;Михајловка;ميخايلوفكا;میخائیلوفکا، اوبلاست ولگوگراد;میخائیلوکا;米哈伊洛夫卡; +city::527191;Michurinsk;Gorad Michurynsk;Koslov;Kozlov;Michurins'k;Michurinsk;Michúrinsk;Miciurinsk;Micurinsk;Miczurynsk;Miczuryńsk;Mitchourinsk;Mitjurinsk;Mitschurinsk;Mitschurnisk;Mitsjoerinsk;Mitsjurinsk;Mitsurinsk;Mitxurinsk;Mitxúrinsk;Mitšurinsk;Miçurinsk;Miĉurinsk;Mičurinsk;mi qiu lin si ke;michulinseukeu;michurinsuku;mychwrnsk;mychwrynsk;mytshwrynsk;Горад Мічурынск;Мичуринск;Мічурінськ;ميتشورينسك;میچورنسک;میچورینسک;ミチュリンスク;米丘林斯克;미추린스크; +city::527717;Meleuz;Gorad Meljauz;Meleouz;Meleus;Meleuz;Mieleuz;mei lie wu zi;mlywz;mylywz;Горад Меляўз;Мелеуз;Мәләвез;Мәләүез;ملئوز;مليوز;میلیؤز;梅列烏茲; +city::528293;Maykop;Maikop;Maikopas;Majkop;Majkopo;Majkuop;Maykop;Maïkop;Myekuuapeh;maikopeu;maikopu;myyqwp;Майкоп;Майкъоп;Мајкоп;Мыекъуапэ;מייקופ;マイコープ;마이코프; +city::532096;Makhachkala;Anzhi;GIjanzhi-Kuala;MCX;Machackala;Machaczkala;Machaczkała;Machatjkala;Machatsch-Kala;Machatschkala;Machatsjkala;Machačkala;Mag'achkuala;Mahackala;Mahackalao;Mahacqala;Mahatskala;Mahatškala;Mahaçqala;Mahačkala;Mahhatskala;Mahhatškala;MakhIachkhuala;Makhachkala;Makhatchkala;Makhatsjkala;Makhatxkala;Makhatxkalà;Maĥaĉkalao;Petrovsk;Petrovsk-Port;mahachikalla;mahachikara;mhzqlh;Анжи;ГIянжи-Къала;Магьачкъала;МахIачхъала;МахІачхъала;Махачкала;מחצקלה;マハチカラ;마하치칼라; +city::532288;Magnitogorsk;Gorad Magnitagorsk;MQF;Magnetogorsk;Magnitogors'k;Magnitogorsk;Magnitogorska;Magnitogorskas;Magņitogorska;Manknitonkorsk;ma ge ni tuo ge er si ke;mageunitogoleuseukeu;magnytwgwrsk;magunitogorusuku;mak ni to kxskh;mghnytaghwrsk;mgnytwgwrsq;Μαγκνιτογκόρσκ;Горад Магнітагорск;Магнитогорск;Магнітогорськ;Մագնիտոգորսկ;מגניטוגורסק;ماگنیتوگورسک;ماگنیٹوگورس;مغنيتاغورسك;มักนีโตกอสค์;マグニトゴルスク;马格尼托哥尔斯克;마그니토고르스크; +city::532615;Lyubertsy;Gorad Ljubercy;Lioubertsy;Liubercai;Liuberti;Liubertsi;Liubertsy;Liuberțî;Liúbertsy;Ljoebertsy;Ljuberci;Ljubercy;Ljubertso;Ljubertsy;Ljubertsõ;Ljuberzy;Luberci;Lubertsi;Lubiercy;Lyubertsi;Lyubertsy;Lyubertsı;liu bie er qi;liubertsi;lyubeleuchi;lywbartsy;lywbrtsy;lywbyrtsy;ryuberutsu~i;Ļuberci;Љуберци;Горад Люберцы;Люберци;Люберцы;Люберці;ليوبارتسي;لیوبرتسی;لیوبیرتسی;ლიუბერცი;リュベルツィ;柳別爾齊;류베르치; +city::532657;Lytkarino;Gorad Lytkaryna;Litkarino;Lytkarino;Lytkorino;Lîtkarino;Lıtkarino;lei te ka li nuo;lytkarynw;lytkrynw;Łytkarino;Горад Лыткарына;Литкарино;Литкаріно;Лыткарино;Лыткарино балһсн;ليتكرينو;لیتکارینو;雷特卡里諾; +city::532675;Lys'va;Lys'va;Lysva;Lys’va;Лысьва; +city::534595;Lobnya;Krasnaya Polyana;Lobnja;Lobnya;Лобня; +city::534701;Livny;Gorad Liuny;Livni;Livno;Livny;Livnî;Livnõ;Liwny;li fu nei;libeuni;lyfny;rivunu~i;Горад Ліўны;Ливни;Ливны;Ливны балһсн;Лівни;ليفني;لیفنی;リーヴヌィ;利夫內;리브니; +city::534838;Liski;Georgiu-Dezh;Gorad Liski;Liski;Novopokrovka;Svoboda;li si ji;lysky;Горад Ліскі;Лиски;Лиски балһсн;ليسكي;لیسکی;利斯基; +city::535121;Lipetsk;Gorad Lipeck;LPK;Lipec'k;Lipeck;Lipeck shaary;Lipecka;Lipeckas;Lipetk;Lipetsk;Lipezk;Lipețk;Lipieck;Lipjeck;Lípetsk;li pei ci ke;li pet skh;lipecheukeu;lybytsk;lyptsk;ripetsuku;Ļipecka;Горад Ліпецк;Липецк;Липецк балһсн;Липецк шаары;Липецьк;ليبيتسك;لپٹسک;لیپتسک;لیپٹسک;ลีเปตสค์;リペツク;利佩茨克;리페츠크; +city::536162;Leninogorsk;Gorad Leninagorsk;Leninogorsk;Leninogorsk i Russland;Leninoqorsk;Novaya Pis'menka;Novaya Pis'myanka;Novaya Pis’menka;Novaya Pis’myanka;Novopis'myanka;Novopis’myanka;leninogoleuseukeu;lie ning nuo ge er si ke;lnynwghwrsk;lnynwgwrsk rwsyh;lynynwgrsk;reninogorusuku;Горад Ленінагорск;Лениногорск;Лењиногорск;لنينوغورسك;لنینوگورسک، روسیه;لینینوگرسک;レニノゴルスク;列寧諾戈爾斯克;레니노고르스크; +city::537281;Labinsk;Gorad Labinsk;Labins'k;Labinsk;Labinskaja;Labinskaya;la bin si ke;labaynsk;labinseukeu;labnsk;labynsk;Łabińsk;Горад Лабінск;Лабинск;Лабинск балһсн;Лабінськ;لاباينسك;لابنسک;لابینسک;拉賓斯克;라빈스크; +city::537737;Kuznetsk;Gorad Kuzneck;Kouznetsk;Kusnezk;Kuznec'k;Kuzneck;Kuzneckas;Kuznetk;Kuznetsk;Kuznețk;Kuznieck;Kuznjeck;Kuźnieck;ku zi nie ci ke;kwzntsk;kwznytsk;Горад Кузнецк;Кузнецк;Кузнецк балһсн;Кузнецьк;Кузњецк;كوزنتسك;کوزنتسک;کوزنیتسک;庫茲涅茨克; +city::538560;Kursk;Koersk;Koursk;Kurs'k;Kursk;Kurskas;Kúrsk;URS;ku er si ke;kuleuseukeu;kurusuku;Курск;Курськ;クルスク;库尔斯克;庫爾斯克;쿠르스크; +city::539147;Kungur;Gorad Kungur;Koengoer;Koungour;Kungur;Kunqur;kun gu er;kung-guleu;kunguleu;kwnghwr;kwngwr;Горад Кунгур;Кунгур;Кӧҥгыр;Көңгер;كونغور;کونگور;昆古爾;쿤구르;쿵구르; +city::539283;Kumertau;Gorad Kumjartau;Koumertaou;Kumertau;Kumiertau;Kumjertau;ku mei er tao;kwmrtaw;Горад Кумяртаў;Кумертау;Кумертау балһсн;Күмертау;كومرتاو;کومرتاؤ;کومرتاو;庫梅爾套; +city::540103;Kstovo;Gorad Kstova;Kostova;Kstovo;Kstowo;ke si tuo wo;keuseutobo;kstwfw;kstww;kusutovu~o;Горад Кстова;Кстово;كستوفو;کستوفو;کستوو;クストヴォ;克斯托沃;크스토보; +city::540251;Krymsk;Gorad Krymsk;Krims'k;Krimsk;Krimskaja;Krimskaya;Kromsk;Krymasko;Krymsk;Krymskaja;Krymskaya;Krîmsk;Krõmsk;Krımsk;ke lei mu si ke;keulimseukeu;krymsk;Горад Крымск;Кримск;Кримськ;Крымск;Крымск балһсн;كريمسك;کریمسک;克雷姆斯克;크림스크; +city::540761;Kropotkin;Gorad Krapotkin;Krapotkin;Kropotkin;Kropotkin i Krasnodar kraj;Kropotkine;Romanovskiy Khutor;ke lu pao te jin;krwbwtkyn;krwptkyn krasnwdar;krwpwtkn;Горад Крапоткін;Кропоткин;Кропоткин балһсн;Кропоткін;كروبوتكين;کروپتکین، کراسنودار;کروپوتکن;克魯泡特金; +city::542327;Krasnokamsk;Gorad Krasnakamsk;Krasnokamsk;Krasznokamszk;ke la si nuo ka mu si ke;krasnwkamsk;Горад Краснакамск;Краснокамск;كراسنوكامسك;کراسنوکامسک;克拉斯諾卡姆斯克; +city::542374;Krasnogorsk;Ban'ki;Ban’ki;Krasnogors'k;Krasnogorsk;Krasnogorsk i Moskva oblast;Krasnogorska;Krasnoqorsk;ke la si nuo ge er si ke;keulaseunogoleuseukeu;krasnwghwrsk;krasnwgwrsk;krasnwgwrsk mskw;kurasunogorusuku;Красногорск;Красногорск балһсн;Красногорськ;كراسنوغورسك;کراسنوگورسک;کراسنوگورسک، مسکو;クラスノゴルスク;克拉斯諾戈爾斯克;크라스노고르스크; +city::542420;Krasnodar;Ekaterinodar;KRR;Krasnodar;Krasnodara;Yekaterinodar;ke la si nuo da er;keulaseunodaleu;kurasunodaru;qrsnwdr;Краснодар;קרסנודר;クラスノダル;克拉斯诺达尔;크라스노다르; +city::543460;Kovrov;Gorad Kaurou;Kovrov;Kovrova;Kovrovas;Kowrow;kawrww;ke fu luo fu;kobeulopeu;kovurofu;kwfrwf;kwwrwf;Горад Каўроў;Ковров;كوفروف;کاوروو;کووروف;コヴロフ;科夫罗夫;코브로프; +city::543704;Kotlas;Gorad Kotlas;KSZ;Kotlas;Kotlass;Kotlasz;Kotłas;ke te la si;koteullaseu;kotorasu;kwtlas;Горад Котлас;Котлас;كوتلاس;کوتلاس;コトラス;科特拉斯;코틀라스; +city::543878;Kostroma;Costroma;Gorad Kastrama;KMW;Kostrom;Kostroma;Kostromna;Kostromà;Kostromá;Kosztroma;ke si te luo ma;koseuteuloma;kosutoroma;kwstrwma;qwstrwmh;Горад Кастрама;Кострома;Կոստրոմա;קוסטרומה;كوستروما;کوستروما;კოსტრომა;コストロマ;科斯特羅馬;코스트로마; +city::546105;Kolpino;Gorad Kolpina;Koljpino;Kolpina;Kolpinas;Kolpino;Kolppina;Kołpino;ke er pi nuo;kolpino;kwlbynw;kwlpynw;Горад Колпіна;Колпино;كولبينو;کولپینو;კოლპინო;科爾皮諾;콜피노; +city::546230;Kolomna;Columna;Gorad Kalomna;Kolom'na;Kolomna;Kolomnae;Kolomno;Kołomna;ke luo mu na;kollomna;koromuna;kwlwmna;qwlwmnh;Горад Каломна;Коломнæ;Коломна;Коломна балһсн;Коломно;Коломьна;Կոլոմնա;קולומנה;كولومنا;کولومنا;コロムナ;科洛姆纳;콜롬나; +city::547475;Klintsy;Gorad Klincy;Klincad;Klince;Klinci;Klincy;Klinti;Klintsi;Klintso;Klintsy;Klintsõ;Klinzy;Klințî;Klińce;Kļinci;ke lin qi;keullinchi;klntsy;klyntsy;kurintsu~i;qlynzy;Горад Клінцы;Клинтси;Клинци;Клинцы;Клинцы балһсн;Клинці;קלינצי;كلينتسي;کلنتسی;کلینتسی;クリンツィ;克林齊;클린치; +city::547523;Klin;Gorad Klin;Klin;Klina;Kline;Kļina;Ulin;ke lin;keullin;kln;klyn;kurin;Горад Клін;Клин;Клин балһсн;كلين;کلن;کلین;クリン;克林;클린; +city::547560;Klimovsk;Gorad Klimausk;Klimovs'k;Klimovsk;Klimovska;Klimovskaj;Klimovskas;Klimovskiy;Klimowsk;Kļimovska;ke li mo fu si ke;klymwfsk;klymwwsk;kurimofusuku;Горад Клімаўск;Климовск;Климовск балһсн;Климовскай;Климовськ;كليموفسك;کلیموفسک;کلیمووسک;クリモフスク;克利莫夫斯克; +city::547840;Kizlyar;Kisljar;Kizilyar;Kizlar;Kizljar;Kizlyar;kijeullyaleu;kizljar;Кизляр;키즐랴르; +city::548114;Kislovodsk;Gorad Kislavodsk;Kislovods'k;Kislovodsk;Kislovodsk - Kislovodsk;Kislovodsk - Кисловодск;Kislovodskas;Kislowodsk;Kislowodzk;Kisslowodsk;Kisłowodzk;Nartsaneh;ji ci luo wo ci ke;kiseullobocheukeu;kisurovu~otsuku;kslwwwdsk;kyslwfwdsk;qyslwbwdsq;Горад Кіславодск;Кисловодск;Кисловодск балһсн;Кисловодськ;Нартсанэ;Կիսլովոդսկ;קיסלובודסק;كيسلوفودسك;کسلووودسک;کیسلوفودسک;キスロヴォツク;基兹洛沃茨克;키슬로보츠크; +city::548395;Kirovo-Chepetsk;Chepets;Chepetsk;Cheptsa;Gorad Kirava-Chapeck;Kirovo Chepetsk;Kirovo-Cepeck;Kirovo-Cepetsk;Kirovo-Chepec'k;Kirovo-Chepeck;Kirovo-Chepetsk;Kirovo-Chepetskiy;Kirovo-Tchepetsk;Kirovo-Tsepetsk;Kirovo-Tsjepetsk;Kirovo-Tšepetsk;Kirovo-Çepetsk;Kirovo-Ĉepeck;Kirovo-Čepeck;Kirowo-Czepieck;Kirowo-Tschepezk;Ust'-Chepetskoye;Ust'-Cheptsa;Ust’-Chepetskoye;Ust’-Cheptsa;ji luo wo-qie pei ci ke;kilobochepecheukeu;kyrwfw-chptsk;kyrwfw-tshybytsk;kyrww chpytsk;Горад Кірава-Чапецк;Кирово-Чепетск;Кирово-Чепецк;Кірово-Чепецьк;كيروفو-تشيبيتسك;کیروفو-چپتسک;کیروّو چپیتسک;基洛沃-切佩茨克;키로보체페츠크; +city::548408;Kirov;Gorad Kirau;KVX;Khlynov;Kirof;Kirov;Kirov i Kirov oblast;Kirova;Kirovas;Kirow;Kírov;Viatka;Vyatka;Wjatka;ji luo fu;kilopeu;kirofu;kirova;kyrwf;kyrwf kyrwf awblast;kyrww;qyrwb;Горад Кіраў;Киров;Кіров;Կիրով;קירוב;كيروف;کیروف;کیروف، کیروف اوبلاست;کیروو;किरोव;კიროვი;キーロフ;基洛夫;키로프; +city::548442;Kirishi;Gorad Kiryshy;Kirichi;Kirisai;Kirischi;Kirishi;Kirisi;Kirisji;Kiriszy;Kiriŝi;Kirišai;Kiriši;Kiriși;Kírishi;ji li xi;kilisi;kyryshy;Горад Кірышы;Кириши;Кіріши;كيريشي;کیریشی;კირიში;基里希;키리시; +city::548602;Kingisepp;Gorad Kingisep;Jaama;Jamburg;Juama;Kinghisepp;Kingisep;Kingisepa;Kingisepp;Kingiseppu;Kingissepp;Kinguissepp;Yamburg;jin ji xie pu;king-gisepeu;kingisepeu;kingiseppu;kynghysyb;kyngysp;kyngysyp;qyngysp;Горад Кінгісеп;Кингисеп;Кингисепп;Кингисєппъ;Кінгісепп;קינגיספ;كينغيسيب;کینگیسپ;کینگیسیپ;კინგისეპი;キンギセップ;金吉谢普;킨기세프;킹기세프; +city::548605;Kineshma;Gorad Kineshma;Kinechma;Kineixma;Kineschma;Kineshima;Kineshma;Kineshme;Kinesjma;Kinesma;Kineszma;Kineŝma;Kineşma;Kinešma;Kineșma;Kiněšma;Kíneixma;Kíneshma;ji nie shen ma;kineshima;kinesima;kinesyuma;kynshma;kynyshma;Горад Кінешма;Кинешма;Кинешме;Киңәшмә;Кінешма;كينيشما;کینشما;کینیشما;キネシマ;基涅什马;키네슈마;키네시마; +city::548652;Kimry;Gorad Kimry;Kimrai;Kimri;Kimro;Kimry;Kimrî;Kimrõ;Kimrı;ji mu lei;kimli;kimuru~i;kymry;Горад Кімры;Кимри;Кимры;Кімри;كيمري;کیمری;キームルィ;基姆雷;킴리; +city::550280;Khimki;Chimkai;Chimki;Gorad Khimki;Himki;Jimki;Khimki;Moskau-Chimki;Ximki;himki;himuki;hymqy;khymky;xi mu ji;Ĥimki;Горад Хімкі;Химки;Химки балһсн;Хімки;Խիմկի;חימקי;خيمكي;خیمکی;ヒムキ;希姆基;힘키; +city::550478;Khasavyurt;Chassaw-Jurt;Hasavjurt;Khasav;Khasav-jurt;Khasavjurt;Khasavyurt;Staro Khasav-Yurt;Xasavyurt;Хасав;Хасав-юрт;Хасавюрт; +city::551487;Kazan;Casanum;Caza;Cazã;Gorad Kazan';KZN;Kaasan;Kasa;Kasan;Kasã;Kazan;Kazan';Kazan' osh;Kazana;Kazane;Kazani;Kazanj;Kazano;Kazanė;Kazan’;Kazań;Kazaņa;Kazaň;Kazán;Khuazan;Khusan;Kozan';Kuazan;Kuzon;Qazan;Qozon;ka shan;kajan;kajhana;kazan;kazana;kha san;qazan;Καζάν;Горад Казань;Казан;Казань;Казань ош;Казањ;Каꙁанъ;Козань;Кузон;Къазан;Озаҥ;Хусан;Хъазан;Қазан;Ҡazan;Ҡазан;Կազան;קאזאן;قازان;كازان;کازان;कझान;काज़ान;คาซาน;ყაზანი;カザン;喀山;카잔; +city::551847;Kaspiysk;Dvigatel'stroy;Dvigatel’stroy;Kaspijsk;Kaspiysk;Sotsgorod;kaseupiseukeu;Каспийск;카스피스크; +city::553287;Kamyshin;Gorad Kamyshyn;Kamishin;Kamisin;Kamixin;Kamiŝin;Kamišin;Kamosin;Kamychine;Kamyschin;Kamyshin;Kamysin;Kamysinas;Kamysjin;Kamyszyn;Kamyšin;Kamyšinas;Kamîșin;Kamõšin;ka mei shen;kamisin;kamuishin;kamyshn;kamyshyn;Горад Камышын;Камишин;Камышин;Камышин балһсн;Կամիշին;كاميشين;کامیشن;کامیشین;カムイシン;卡梅申;카미신; +city::553399;Kamensk-Shakhtinskiy;Kamensk;Kamensk Shakhtinski;Kamensk-Schachtinskij;Kamensk-Schachtiuski;Kamensk-Shakhtinskij;Kamensk-Shakhtinskiy;Kamenskaya;Каменск;Каменск-Шахтинский; +city::553915;Kaluga;Caluga;Gorad Kaluga;KLF;Kaloega;Kalouga;Kalug;Kaluga;Kalugae;Kalugo;Kaluqa;Kalyga;Kaługa;ka lu jia;kalluga;kaluga;kalwga;kalwgha;karuga;klwga;qlwgh;Горад Калуга;Калугæ;Калуга;Калуго;Կալուգա;קלוגה;كالوغا;کالوگا;کلوگا;कालुगा;ಕಲೂಗಾ;カルーガ;卡盧加;칼루가; +city::554233;Korolev;Kaliningrad;Kalininskiy;Korolev;Koroljov;Королев;Королёв; +city::554234;Kaliningrad;Calininopolis;Gorad Kaliningrad;KGD;Kalinin'nkrant;Kaliningrad;Kaliningrada;Kaliningradas;Kaliningrado;Kaliningradum;Kaliningrau;Kaliningráu;Kalininqrad;Kalinjingrad;Kalinyingrad;Kalinyingrád;Kalińingrad;Kalíníngrad;Karaliaucios;Karaliaucius;Karaliaučios;Karaliaučius;Kaļiņingrada;Kenisberg;Koenigsbarg;Koenigsberg;Koenigsberg in Preussen;Korigsberg;Krolewiec;Królewiec;Kënisberg;Königsbarg;Königsberg;Königsberg in Preußen;Körigsberg;jia li ning ge lei;kalininagrada;kalliningeuladeu;kalynynghrad;kalynyngrad;kariningurado;qlynyngrd;Καλίνινγκραντ;Горад Калінінград;Калининград;Калињинград;Калінінград;Կալինինգրադ;קלינינגרד;كالينينغراد;کالیننگراڈ;کالینینگراد;کیلننگراڈ;कालिनिनग्राद;ಕಲಿನಿನ್‍ಗ್ರಾಡ್;კალინინგრადი;カリーニングラード;加里寧格勒;칼리닌그라드; +city::554840;Izhevsk;Gorad Izhehusk;IJK;Ijevsk;Ischewsk;Ishewsk;Izevsk;Izevska;Izevskas;Izewsk;Izh;Izhau;Izhevs'k;Izhevsk;Izhkar;Izjefsk;Izjevsk;Izsevszk;Iĵevsk;Iżewsk;Iževsk;Iževska;Iževskas;Ustinov;ayjyfsk;ayzhwsk;azwsk;ijebseukeu;ijefusuku;yi re fu si ke;İjevsk;ʼyzbsq;Ιζέβσκ;Іжевськ;Горад Іжэўск;Иж;Ижау;Ижевск;Ижкар;איזבסק;إيجيفسك;ازوسک;ایژوسک;იჟევსკი;イジェフスク;伊熱夫斯克;이젭스크; +city::555111;Ivanteyevka;Ivanteevka;Ivantejevka;Ivanteyevka;Ivanteyevskiy;Ивантеевка; +city::555312;Ivanovo;Gorad Ivanava;IWA;Ivanova;Ivanovas;Ivanovo;Ivanovo shaary;Ivanovo-Voznesensk;Ivànovo;Ivánovo;Iwanowo;ayfanwfw;aywanwfw;aywanww;ibanobo;ivu~anovu~o;xi wa no wo;yi wan nuo wo;İvanovo;ʼywwʼnwbw;Іваново;Горад Іванава;Иваново;Иваново шаары;Իվանովո;איוואנובו;إيفانوفو;ایوانوفو;ایوانوو;อีวาโนโว;イヴァノヴォ;伊万诺沃;이바노보; +city::555980;Ishimbay;Isembai;Ishimbaj;Ishimbay;Isimbai;Isimbaj;Iszymbaj;Iŝimbaj;Išembai;Išimbai;Išimbaj;isimbai;Ишимбай;Ишимбај;이심바이; +city::557775;Gus'-Khrustal'nyy;Gus'-Khrustal'ny;Gus'-Khrustal'nyj;Gus'-Khrustal'nyy;Gus-Hrustalnyi;Gus-Khrustalnyi;Gus-Khrustalnyj;Gus’-Khrustal’ny;Gus’-Khrustal’nyy;Гусь-Хрустальный; +city::558082;Gukovo;Gukova;Gukovo;Gukowo;Гуково; +city::558146;Gubkin;Gorad Gubkin;Goubkine;Gubkin;Gupkin;Qubkin;Rabochiy Poselok Imeni Gubkina;ghwbkyn;gu bu jin;gubkin;gwbkyn;gwbnk;Горад Губкін;Губкин;Губкін;Гупкин;غوبكين;گوبنک;گوبکین;古布金;굽킨; +city::558418;Groznyy;Dzhokhar;Dzhokhar-Gala;Dzhokhar-Geala;Dzhokhar-Ghala;Dzhokhargala;Dzhovkhar-GӀala;Dzohar;Dzohhar;Džohar;Džohhar;Dƶohargala;Dƶoxar;GRV;Grosni;Grosnij;Grosny;Grosnyi;Grosnyj;Grosní;Grosnî;Groznai;Groznas;Grozni;Groznii;Grozno;Groznoi;Grozny;Groznyi;Groznyj;Groznyy;Groznâi;Groznîi;Groznõi;Grózni;Nasongi;Nkrozny;Novyj Hutor;So'lzh-GIala;So'lzha-GIala;So'lzha-GӀala;Soelz-Ghala;Soelƶ-Gala;Soelƶa-Gala;Sölž-Ghala;Sölƶ-Ġala;Sölƶa-Ġala;geulojeuni;grozno;grwzny;gurozunui;Ƶovhar-Gala;Ƶovhar-Ġala;Γκρόζνυ;Грозни;Грозный;Джовхар-ГӀала;Джохар;Джохаргала;Соьлж-ГІала;Соьлжа-ГІала;Соьлжа-ГӀала;גרוזני;გროზნო;グロズヌイ;그로즈니; +city::561347;Glazov;Glasow;Glaz;Glazov;Glazovas;Glazow;Glázov;Gorad Glazau;Głazow;ge la zuo fu;geullajopeu;glazwf;gurazofu;jlazwf;Глаз;Глазов;Горад Глазаў;جلازوف;گلازوف;グラゾフ;格拉佐夫;글라조프; +city::561627;Georgiyevsk;Georgievsk;Georgiewsk;Georgijevsk;Georgijewsk;Georgiyevsk;Георгиевск; +city::561667;Gelendzhik;GDZ;Gelendjik;Gelendschik;Gelendshik;Gelendzhik;Gelendzik;Gelendzjik;Gelendzyk;Gelendĵik;Gelendżyk;Gelendžik;Gelenjir;Gelenzhik;Gelyendzhik;Ghelenjik;Gorad Gelendzhyk;Guelendjik;Gyelyendzhik;Khyluehzh'yj;Nkelentzik;Qelencik;ge lian ji ke;gellenjikeu;gerenjiku;ghylynjyk;gln dzhyk;glndzhyk;Γκελεντζίκ;Геленджик;Геленџик;Горад Геленджык;Хылъэжьый;غيلينجيك;گلن دژیک;گلندژیک;ゲレンジーク;格連吉克;겔렌지크; +city::561887;Gatchina;Gatchina;Gatcina;Gatcsina;Gatczyna;Gatschina;Gatsjina;Gattjina;Gattschina;Gattsina;Gattsjina;Gattšina;Gatçina;Gatĉina;Gatčina;Gorad Gatchyna;Gátchina;Hatcina;Hatsina;Hatčina;Krasnogvardeysk;Krasnogwardeisk;Nkatsina;gachina;gatchina;gatchyna;ghattshyna;jia te qi na;Γκάτσινα;Гатчина;Горад Гатчына;غاتتشينا;گاتچینا;გატჩინა;ガッチナ;加特契纳;가치나; +city::562319;Fryazino;Frjasino;Frjazino;Fryazino;Фрязино; +city::562321;Fryazevo;Frjazevo;Fryazevo;Фрязево; +city::563379;Ezhva;Ehzhva;Ezhva;Ezjva;Sloboda;Эжва; +city::563464;Engel's;Ehngel's;Engel's;Engels;Engels an der Wolga;Engel’s;Pokrovsk;Pokrovskaya;Энгельс; +city::563514;Elista;ESL;Ehlista;Ehlst;Elist;Elista;Elistà;Elistá;Eliszta;Elst;Gorad Ehlista;Stepnoi;Stepnoy;ai li si ta;alysta;aylysta;erisuta;yelliseuta;Ėlista;Ελίστα;Горад Эліста;Елиста;Еліста;Элиста;Элст;Элст балһсн;Элһэтэ;אליסטה;إيليستا;الیستا;ایلیستا;エリスタ;埃利斯塔;옐리스타; +city::563523;Elektrostal';Ehlektrostal';Elektrostal;Elektrostal';Elektrostalj;Elektrostal’;yellegteuloseutal;Электросталь;옐렉트로스탈; +city::563708;Dzerzhinsk;Chernorech'ye;Chernorech’ye;Chernoye;Dserschinsk;Dzerhinsh;Dzerjinsk;Dzerzhins'k;Dzerzhinsk;Dzerzinsk;Dzerzinska;Dzerzinskas;Dzerzjinsk;Dzerĵinsk;Dzeržinsk;Dzeržinska;Dzeržinskas;Dzierzynsk;Dzierżyńsk;Dzjarzhynsk;Rastyapino;[dʲzʲɪrˈʐɨnsk];d seiyr cinskh;dzrzhynsk;dzyrjynsk;dzyrzhnsk;jeleujinseukeu;jerujinsuku;jie er ren si ke;Дзержинск;Дзержинськ;Дзяржынск;دزرژینسک;دزيرجينسك;دزیرژنسک;ดเซียร์จินสค์;ジェルジンスク;捷尔任斯克;제르진스크; +city::564719;Dubna;Doebna;Doubna;Dubna;Dubno;Dubnà;Dubná;Gorad Dubna;do~ubuna;du bu na;dub na;dubeuna;dubna;dwbna;dwbnh;Горад Дубна;Дубна;Дубна балһсн;דובנה;دوبنا;ดุบนา;ドゥブナ;杜布纳;두브나; +city::565348;Donetsk;Donec'k;Doneck;Donecka;Donetk;Donets'k;Donetsk;Donetsk i Russland;Donets’k;Donezk;Donețk;Donieck;Donjeck;Doněck;Doņecka;Gorad Daneck;Gunderovskaya;Gundorovka;Gundorovskaya;Gundurovka;donecheukeu;dun nie ci ke;dwntsk;dwntsk rwsyh;Горад Данецк;Донецк;Донецк балһсн;Донецьк;Доњецк;دونتسک;دونتسک، روسیه;頓涅茨克;도네츠크; +city::565381;Domodedovo;Domodedova;Domodedovas;Domodedovo;Domodedowo;Domodiedowo;Domodédovo;Domodědovo;Gorad Damadzedava;domodedobo;domojedovu~o;duo mo jie duo wo;dwmwddwfw;dwmwdydwfw;dwmwdydww;Горад Дамадзедава;Домодедово;Домодедово балһсн;Домодєдово;دوموددوفو;دوموديدوفو;دومودیدوو;ドモジェドヴォ;多莫傑多沃;도모데도보; +city::565614;Dolgoprudnyy;Dolgoprodnyy;Dolgoprudnyi;Dolgoprudnyj;Dolgoprudnyy;Dolgoprudyy;Долгопрудный; +city::565955;Dmitrov;Demitriovia;Dmitrov;Dmitrow;Dmítrov;Gorad Dzmitrau;de mi te luo fu;deumiteulopeu;dmitrov;dmtrwf;dmytrwf;domitorofu;dymytrwf;Горад Дзмітраў;Дмитров;Дмитров балһсн;دمتروف;دميتروف;دیمیتروف;ドミトロフ;德米特罗夫;드미트로프; +city::566199;Dimitrovgrad;Dimitrovgrad;Dimitrovgrad i Russland;Dimitrovgradas;Dimitrovqrad;Dimitrowgrad;Gorad Dzimitraugrad;Melekes;Melekess;Mitreen' osh;dimiteulobeugeuladeu;dimitorofugurado;dymytrwfghrad;dymytrwfgrad rwsyh;dymytrwwgrad;ji mi te luo fu ge lei;Горад Дзімітраўград;Димитровград;Мелекес;Митреень ош;Мәләкәс;ديميتروفغراد;دیمیتروفگراد، روسیه;دیمیترووگراد;ディミトロフグラード;季米特洛夫格勒;디미트로브그라드; +city::566532;Derbent;Cali;Chjali;Darband;Darbant;Derbend;Derbent;Derbenta;Derbentas;Derbente;Derbentum;Dərbənd;Gorad Dzerbent;K'vevar;Temyrkualeh;deleubenteu;derubento;drbnd;drbnt;jie er bin te;Горад Дзербент;Дарбант;Дербенд;Дербент;Дербент балһсн;Дәрбәнт;Кьвевар;Темыркъалэ;Цали;Чяли;Դերբենդ;דרבנט;دربند;დერბენტი;デルベント;傑爾賓特;데르벤트; +city::567434;Chusovoy;Chusovaya;Chusovij;Chusovoi;Chusovoj;Chusovoy;Chusovói;Chusva;Ciusovoi;Csuszovoj;Cusovoi;Cusovoj;Cusovoy;Cusowoj;Czusowoj;Gorad Chusavoj;Tchoussovoi;Tchoussovoï;Tchussovoi;Tjusovoj;Tschussowoi;Tsjoesovoj;Tsjusovoj;Tsusovoi;Tšusovoi;Zavod Chusovskoye;chwswfwy;chwswwwyy;qiu suo wo yi;tshwswfwy;Çusovoy;Ĉusovoj;Čusovoi;Čusovoj;Čusowoj;Горад Чусавой;Чусва;Чусовий;Чусовой;Чусовој;تشوسوفوي;چوسوفوی;چوسوووئی;丘索沃伊; +city::567990;Chistopol';Chistaj;Chistopol';Chistopol’;Tsistopol;Tsjistopol;Tšistopol;Чистай;Чистополь; +city::569154;Cherkessk;Batalpashinsk;Cerkesk;Cerkessk;Cherkes kuala;Cherkessk;Cherkessk shakhar;Czerkiesk;Shehrdzhehs kualeh;Sherkesh shakhar;Tscherkessk;Tserkessk;Tsjerkessk;Tšerkessk;Yezhovo-Cherkessk;Zhezhoro-Cherkessk;cheleukeseukeu;cherukesuku;zrqsq;Ĉerkessk;Čerkesk;Черкес къала;Черкесск;Черкесск шахар;Шеркеш шахар;Шэрджэс къалэ;צרקסק;チェルケスク;체르케스크; +city::569223;Cherepovets;CEE;Cerepovec;Cerepoveca;Cerepovecas;Cerepoveco;Cerepovet;Cerepovets;Cerepoveț;Cerjepowjec;Cherepovec;Cherepovec';Cherepovets;Cherepovetz;Cherepovéts;Cserepovec;Czerepowiec;Gorad Charapavec;Tcherepovets;Tjerepovets;Tscherepowez;Tserepovets;Tsjerepovets;Txerepovets;Tšerepovets;chelepobecheu;cherepovu~etsu;chrpwwts;chyrypwwts;qie lie bo wei ci;tshyrybwfyts;Çerepovets;Ĉerepoveco;Čerepovec;Čerepoveca;Čerepovecas;Čerjepowjec;Горад Чарапавец;Череповетс;Череповец;Череповець;تشيريبوفيتس;چرپووتس;چیریپووتس;チェレポヴェツ;切列波韋茨;체레포베츠; +city::569273;Cheremushki;Cheremushki;Cherjomushki;Cherëmushki;Черёмушки; +city::569591;Chekhov;Cechov;Cehov;Cehova;Cexov;Chejov;Chekhov;Chéjov;Czechow;Gorad Chehkhau;Lopasnya;Tchekhov;Tjechov;Tschechow;Tsehhov;Tsehov;Tsjekhov;Tsjekhov i Moskva oblast;Tšehhov;Tšehov;chehofu;chehopeu;chkhwf astan mskw;chykhwf;qi he fu;tshykhwf;Çexov;Ĉeĥov;Čechov;Čehov;Čehova;Горад Чэхаў;Чехов;تشيخوف;چخوف، استان مسکو;چیخوف;チェーホフ;契訶夫;체호프; +city::569696;Cheboksary;CSY;Ceboksarad;Ceboksarai;Ceboksari;Ceboksary;Ceboksarî;Chabaksar;Cheboksar;Cheboksar';Cheboksara;Cheboksari;Cheboksary;Cheboksar’;Choupachkar;Csebokszari;Csebokszári;Czeboksary;Gorad Chehbaksary;Shoupashkaru;Shovakshehҥer;Shubashkar;Shupashkar;Shyvashar;Supaskar;Tcheboksary;Tjeboksary;Tscheboksary;Tscheboxari;Tseboksaro;Tseboksary;Tsjeboksari;Tsjeboksary;Txeboksari;Txeboksary;Tšeboksary;Tšeboksarõ;chebogsali;cheboksari;chebokusaru;chybwksary;qie bo ke sa lei;tshybwksary;zbwqsry;Çeboksarı;Ĉeboksari;Čeboksarad;Čeboksarai;Čeboksari;Čeboksary;Şupaşkar;Горад Чэбаксары;Чабаксар;Чебоксар;Чебоксара;Чебоксари;Чебоксары;Шовакшэҥер;Шоупашкаръ;Шубашкар;Шупашкар;Шывашар;Չեբոքսարի;צבוקסרי;تشيبوكساري;چاباق‌سر;چیبوکساری;چیبوکسارے;ჩებოქსარი;チェボクサル;切博克萨雷;체복사리; +city::569742;Chaykovskiy;Chajkovskij;Chaykovskiy;Tsaikovski;Tsjajkovskij;Tšaikovski;Чайковский; +city::569955;Chapayevsk;Capaevsk;Capajevsk;Capajewsk;Ceapaievsk;Chapaevs'k;Chapaevsk;Chapajevsk;Chapayevsk;Chapáyevsk;Czapajewsk;Gorad Chapaeusk;Ivashchenkovo;Tchapaievsk;Tchapaïevsk;Tjapajevsk;Trotsk;Tsapajevsk;Tschapajewsk;Tsjapajevsk;Tšapajevsk;chapayebseukeu;chapayfsk;chpayywsk;qia pa ye fu si ke;tshabayyfsk;Ĉapajevsk;Čapaevsk;Čapajewsk;Горад Чапаеўск;Чапаевск;Чапаєвськ;Чапајевск;تشاباييفسك;چاپایفسک;چپائیوسک;恰帕耶夫斯克;차파옙스크; +city::570427;Buzuluk;Bouzoulouk;Bozaulyk;Busuluk;Buzuluk;Buzulukas;Buzułuk;Gorad Buzuluk;bu zu lu ke;bujullukeu;bwzwlwk;Бозаулык;Бузулук;Быҙаулыҡ;Горад Бузулук;بوزولوك;بوزولوک;布祖盧克;부줄루크; +city::570479;Buynaksk;Boejnaksk;Buinaksk;Bujnakh"sk;Bujnaksk;Buynaksk;Temir Khan Choura;Temir-Khan-Shura;bu-inagseukeu;Буйнакск;Буйнахъск;부이낙스크; +city::571159;Buguruslan;Bogoroslan;Bogyryslan;Bougourouslan;Bugurslan;Buguruslan;Buguruslanas;Buguruslano;Buguruslán;Buguruszlan;Bugurusłan;Buquruslan;Gorad Buguruslan;bu gu lu si lan;buguluseullan;bwghwrwslan;bwgwrwslan;Богырыслан;Боғорослан;Бугурслан;Бугуруслан;Горад Бугуруслан;بوغوروسلان;بوگوروسلان;布古魯斯蘭;부구루슬란; +city::571170;Bugul'ma;Bugul'ma;Bugulina;Bugulma;Bugul’ma;Bөgelmə;UUA;Бугульма;Бөгелмә; +city::571306;Budennovsk;Budennovsk;Budennowsk;Budenovsk;Budjennowsk;Budjonnovsk;Budyonovsk;Budënnovsk;Karabagly;Prikumsk;Svetaya Kresta;Svyatoy Krest;Буденновск;Будённовск; +city::571476;Bryansk;BZK;Breansk;Briansk;Briańsk;Brjansk;Brjansko;Bryansk;beulyanseukeu;Брянск;Брјанск;브랸스크; +city::572154;Borovichi;Borovichi;Borovichí;Borovici;Boroviciai;Borovitchi;Borovitji;Borovitsi;Borovitsji;Borovitši;Boroviçi;Boroviĉi;Boroviči;Borovičiai;Borowicze;Borowitschi;Gorad Baravichy;bo luo wei qi;bolobichi;borovu~ichi;bwrwfytshy;bwrwwychy;Боровичи;Боровичі;Горад Баравічы;بوروفيتشي;بوروویچی;ボロヴィチ;博羅維奇;보로비치; +city::572525;Borisoglebsk;Borisoglebs'k;Borisoglebsk;Borisoglebska;Borisoglebskas;Borisogļebska;Borisoqlebsk;Borissoglebsk;Borysoglebsk;Gorad Barysaglebsk;bao li suo ge lie bu si ke;bolisogeullebseukeu;bwryswghlybsk;bwryswglbsk;bwryswglybsk;Борисоглебск;Борисоглебск балһсн;Борисоглєбськ;Горад Барысаглебск;بوريسوغليبسك;بوریسوگلبسک;بوریسوگلیبسک;鲍里索格列布斯克;보리소글렙스크; +city::572665;Bor;Bor;Bor i Nizjegorod oblast;Boras;Gorad Bor;Motavka;bo er;boleu;bwr;bwr astan nyzhny nwwgwrwd;Бор;Горад Бор;بور;بور، استان نیژنی نووگورود;博爾;보르; +city::576432;Bibirevo;Bibirevo;Бибирево; +city::577206;Berezniki;Beresniki;Bereznikai;Berezniki;Bereznikí;Bereznyiki;Berezņiki;Bieriezniki;Bjerezniki;Gorad Bjarehzniki;Kydzzakar;Usol'ye-Solikamskoye;Usol’ye-Solikamskoye;belejeuniki;berezuniki;bie lie ci ni ji;bryznyky;brznyky;byryznyky;Березники;Березњики;Горад Бярэзнікі;Кыдззакар;برزنیکی;بریزنیکی;بيريزنيكي;ベレズニキ;别列兹尼基;베레즈니키; +city::577881;Beloretsk;BCX;Belorec'k;Beloreck;Beloreckas;Beloret;Beloretk;Beloretsk;Beloretskiy Zavod;Belorezk;Belorețk;Bielorieck;Biełorieck;Bjelorjeck;Gorad Belarehck;bellolecheukeu;bie luo lie ci ke;blwrtsk;bylwrtsk;bylwrytsk;Белорет;Белорецк;Белорецк балһсн;Бєлорєцьк;Горад Беларэцк;بلورتسک;بيلوريتسك;بیلورتسک;بیلوریتسک;別洛列茨克;벨로레츠크; +city::577893;Belorechensk;Belorecensk;Belorecenskas;Belorechens'k;Belorechensk;Belorechenskaya;Beloretchensk;Beloretschensk;Beloretschenskaja;Beloretsjensk;Beloretxensk;Beloreçensk;Beloreĉensk;Belorečensk;Belorečenskas;Beloréchensk;Belorétxensk;Bieloriecziensk;Biełorieczieńsk;Gorad Belarehchansk;bie luo lie qin si ke;blwrchnsk krasnwdar;bylwrychynsk;bylwrytshynsk;Белореченск;Бєлорєченськ;Горад Беларэчанск;بلورچنسک، کراسنودار;بيلوريتشينسك;بیلوریچینسک;別洛列琴斯克; +city::578072;Belgorod;Belgorod;Belgorod shaary;Belgoroda;Belgorodas;Belgorodo;Belnkoront;Belqorod;Bielgorod;Bielogroda;Biełgorod;Bilhorod-Dnistrovskyi;Bjelgorod;Bélgorod;Bělgorod;EGO;Gorad Belgarad;belgolodeu;belgoroda;berugorodo;bie er ge luo de;blgwrwd;bylghwrwd;Μπέλγκοροντ;Белгород;Белгород балһсн;Белгород шаары;Бєлгород;Горад Белгарад;Բելգորոդ;בלגורוד;بلگورود;بيلغورود;بیلگوروڈ;बेल्गोरोद;ベルゴロド;别尔哥罗德;벨고로드; +city::578120;Belebey;Belebei;Belebej;Belebey;Belebeï;Belebéi;Bielebiej;Gorad Beljabej;Pelepej;bie lie bie yi;blby;bylyby;bylybyy;Белебей;Белебеј;Бәләбәй;Горад Белябей;Пелепей;بلبی;بيليبي;بیلیبیئ;別列別伊; +city::578740;Bataysk;Batajsk;Bataysk;Gorodovikovsk;Батайск; +city::579460;Balashov;Balachov;Balaschow;Balashov;Balashovo;Balasjov;Balasov;Balasovas;Balaszow;Balaŝov;Balaşov;Balašov;Balašovas;Bałaszow;Gorad Balashou;ba la shao fu;balashwf;Балашов;Горад Балашоў;بالاشوف;巴拉紹夫; +city::579464;Balashikha;Balachikha;Balaschicha;Balashikha;Balashikhae;Balashikhe;Balasicha;Balasiha;Balasihha;Balasixa;Balasjicha;Balasjikha;Balaszycha;Balaŝiĥa;Balaşiha;Balaşixa;Balašicha;Balašiha;Balašihha;Balașiha;Balishikha;Bałaszycha;Gorad Balashykha;ba la xi ha;balashyka;balashykha;ballasiha;barashiha;Балашихæ;Балашиха;Балашихе;Горад Балашыха;بالاشيكا;بالاشیخا;バラシハ;巴拉希哈;발라시하; +city::579492;Balakovo;BWO;Balakova;Balakovas;Balakovo;Balakowo;Bałakowo;Gorad Balakova;ba la ke wo;balakwfw;balakww;ballakobo;Балаково;Балаково балһсн;Горад Балакова;بالاكوفو;بالاکوفو;بالاکوو;巴拉科沃;발라코보; +city::579514;Novaya Balakhna;Balachna;Balahna;Balakhna;Balaĥna;Novaya Balakhna;ballaheuna;Балахна;발라흐나; +city::580054;Azov;Asoff;Asovia;Asow;Azak;Azov;Azov - Azov;Azov - Азов;Azova;Azovas;Azow;Gorad Azou;ajopeu;azofu;azwf;ya su;Азак;Азов;Азов балһсн;Горад Азоў;Ազով;אזוב;آزوف;ازوف;アゾフ;亞速;아조프; +city::580497;Astrakhan;ASF;Actarkhan;Ashhtehrkhuan;Ashttarkhan;Astarkhaan;Astiraxan;Astraca;Astracan;Astrachan;Astrachan';Astrachane;Astrachanum;Astrachanė;Astrachań;Astrachaň;Astrachán;Astracán;Astracã;Astrahan;Astrahana;Astrahano;Astrahaņa;Astrakan;Astrakhan;Astrakhan';Astrakán;Astraxan;Astraxon;Astraĥano;Asztrahan;Asztrahán;Gorad Astrakhan';Həstərxan;Həştərxan;a si te la han;aseuteulahan;astrakhan;astrakhana;astʼrakhani;asutorahan;Àstrakhan;Əsterkhan;ʼstrhn;Άστραχαν;Аçтăрхан;Астархаан;Астрахан;Астрахань;Ашттархан;Ащтэрхъан;Горад Астрахань;Әстерхан;Әәдрхн балһсн;Աստրախան;אסטרחן;آستراخان;أستراخان;استراخان;आस्त्राख़ान;आस्त्राखान;အကစထရာကနမြ;အက်စထရာကန်မြို့;ასტრახანი;アストラハン;阿斯特拉罕;아스트라한; +city::580724;Arzamas;Arsamas;Arsamassium;Arzamas;Arzamasas;Arzamass;Arzamasz;Gorad Arzamas;a er zha ma si;aleujamaseu;aruzamasu;arzamas;Арзамас;Горад Арзамас;آرزاماس;أرزاماس;ارزاماس;アルザマス;阿爾扎馬斯;아르자마스; +city::580922;Armavir;Aramir;Armavir;Armavir i Russland;Armavira;Armaviras;Armawir;Gorad Armavir;a er ma wei er;aleumabileu;armafyr;armawyr;armawyr rws;armawyr rwsyh;arumavu~iru;Армавир;Армавир балһсн;Армавір;Горад Армавір;آرماویر;آرماویر، روسیه;أرمافير;ارماویر، روس;アルマヴィル;阿爾馬維爾;아르마비르; +city::581049;Arkhangel'sk;ARH;Archangel;Archangelsk;Arhankeli;Arkangeli;Arkhangel'sk;Arkhangelsk;Arkhangel’sk;Novo-Kholmogory;Novyye Kholmogory;Архангельск; +city::581357;Apatity;Apatiitti;Apatit;Apatitad;Apatitai;Apatiti;Apatito;Apatity;Apatitî;Apatitõ;Apatitı;Apatyty;Gorad Apatyty;KVK;a pa ji te;abatyty;apachito~ui;apatiti;apatyty;Апатити;Апатиты;Горад Апатыты;آپاتیتی;أباتيتي;اپاتیتی;アパチートゥイ;阿帕季特;아파티티; +city::582182;Anapa;AAQ;Anaapa;Anap;Anapa;Anape;Gorad Anapa;a na pa;anaba;anapa;xa na pa;Ανάπα;Анаапа;Анапа;Анапа балһсн;Анапе;Горад Анапа;Անապա;آناپا;أنابا;اناپا;ਅਨਾਪਾ;อะนาปา;ანაპა;アナパ;阿纳帕;아나파; +city::582432;Al'met'yevsk;Al'met'evsk;Al'met'yevo;Al'met'yevsk;Almetjevsk;Almetyevsk;Al’met’yevo;Al’met’yevsk;Əlmət;Альметьевск;Әлмәт; +city::582750;Aleksin;Aleksin;Aleksinas;Aleksine;Alexin;Gorad Aleksin;a lie ke xin;alekasina;alksyn;allegsin;alyksn;alyksyn;arekushin;Алексин;Горад Алексін;آلکسین;أليكسين;الیکسن;ਅਲੇਕਸਿਨ;アレクシン;阿列克辛;알렉신; +city::583350;Aleksandrov;Aleksandrov;Aleksandrova;Aleksandrovas;Aleksandrovo;Aleksandrow;Aleksàndrov;Aleksándrov;Alexandrov;Alexandrow;Gorad Aljaksandrau;alaigazaindarova;alksandrwf;allegsandeulopeu;alygzndrwf wladymyr awblast;alyksandrwf;arekusandorofu;ya li shan de luo fu;Александров;Горад Аляксандраў;أليكساندروف;الکساندروف;الیکساندروف;الیگزندروف، ولادیمیر اوبلاست;ਅਲੈਗਜ਼ੈਂਡਰੋਵ;アレクサンドロフ;亞歷山德羅夫;알렉산드로프; +city::584243;Adler;Adler;Adlerskij rajon;Adlersky City District;Adlersky rajon;Adlerský rajón;District Adlerski;Distrito de Adler;Distrito de Ádler;a de lie er;Адлер;Адлерский район;阿德列爾; +city::827329;Pavlovo;Gorad Paulava;Pavlovas;Pavlovo;Pavlovo i Nizjegorod oblast;Pawlowo;Pawłowo;Pávlovo;ba fu luo wo;baflwfw;pabeullobo;pawlwf nyzhny nwwgwrwd;pawlww;Горад Паўлава;Павлово;بافلوفو;پاولوف، نیژنی نووگورود;پاولوو;巴甫洛沃;파블로보; +city::831165;Zarechnyy;Penza-19;Zarechnyj;Zarechnyy;Заречный; +city::1485439;Zarinsk;Gorad Zarynsk;Sarinsk;Zarinsk;Zarinskaja;Zarinskaya;zarynsk;zha lin si ke;Горад Зарынск;Заринск;Заринская;زارينسك;زارینسک;扎林斯克; +city::1485724;Yurga;Jurga;Yurga;yuruga;Юрга;ユルガ; +city::1486209;Yekaterinburg;Catharinoburgum;Ekaterimburgo;Ekaterinburg;Ekaterinburgo;Iekaterinbourg;Jekaterinburg;Jekaterinburga;Jekaterinburgas;Jekaterinenburg;Jekaterynburg;Jekatyerinburg;Jekatěrinburg;SVX;Sverdlovsk;Sverolovsk;Yekaterinburg;ekaterinburuku;ye ka jie lin bao;yekatelinbuleukeu;yqtrynbwrg;Єкатеринбург;Екатеринбург;Свердловск;יקטרינבורג;エカテリンブルク;葉卡捷琳堡;예카테린부르크; +city::1486910;Vorkuta;Gorad Varkuta;VKT;Vorcuta;Vorkoeta;Vorkouta;Vorkut;Vorkuta;Vorkuta karkytsh;Vorkutà;Vorkutá;Workuta;boleukuta;fwrkwta;vu~orukuta;wo er ku ta;wwrkwta;wwrqwth;Βορκουτά;Воркута;Воркута балһсн;Вӧркута;Вӧркута каркытш;Горад Варкута;Վորկուտա;וורקוטה;فوركوتا;وورکوتا;ヴォルクタ;沃尔库塔;보르쿠타; +city::1487281;Verkhnyaya Pyshma;Aukstutine Pysma;Aukštutinė Pyšma;Gorad Verkhnjaja Pyshma;Jugary Pyshma;Pyshma;Turi Pyshma;Verchniagia Pisma;Verchnjaja Pysjma;Verchnjaja Pysma;Verchnjaja Pyšma;Verhnjaja Pisma;Verhnjaja Posma;Verhnjaja Pysma;Verhnjaja Pyšma;Verhnjaja Põšma;Verkhnaja Pishma;Verkhniaia Pychma;Verkhniaïa Pychma;Verkhnja Pishma;Verkhnjaja Pishma;Verkhnjaja Pyshma;Verkhnjaja Pysjma;Verkhnyaya Pyshma;Verxnyaya Pisma;Verxnyaya Pışma;Verĥnjaja Piŝma;Werchnjaja Pyschma;Wierchniaja Pyszma;Wjerchnjaja Pysma;Wjerchnjaja Pyšma;beleuheunyayapisima;fyrkhnyaya byshma;shang pei shen ma;wrkhnyaya pyshma;wrkhnyya pyshma;Βέρχνιαγια Πησμά;Верхня Пишма;Верхняя Пишма;Верхняя Пышма;Верхњаја Пишма;Горад Верхняя Пышма;Пышма;Тури Пышмă;Югары Пышма;فيرخنيايا بيشما;ورخنیایا پیشما;ورخنییا پیشما;上佩什馬;베르흐냐야피시마; +city::1488253;Zelenogorsk;Barga;Gorad Zelenagorsk;Krasnoyarsk-45;Selenogorsk;Ust'-Barga;Ust’-Barga;Zelenogorsk;Zelenogorsk i Krasnojarsk kraj;Zielenogorsk;jellenogoleuseukeu;ze lie nuo ge er si ke;zlnwgwrsk krasnwyarsk;zlynwgwrsk;zylynwghwrsk;Горад Зеленагорск;Зеленогорск;Зељеногорск;زلنوگورسک، کراسنویارسک;زلینوگورسک;زيلينوغورسك;泽列诺戈尔斯克;젤레노고르스크; +city::1488754;Tyumen;Gorad Cjumen';TJM;Temen;Tioumen;Tiumen;Tiumene;Tiumenė;Tiumeń;Tiumén;Tjoemen;Tjumen;Tjumen';Tjumen' khot;Tjumena;Tjumenj;Tjumeno;Tjumeń;Tjumeņa;Tuemen;Tumen;Tumenum;Tyoumen;Tyumen;Tyumen';Tyumeny;Tyumen’;Tümen;chumeni;qiu ming;tyumen;tyumena;tywmn;tywmyn;Ťumeň;Горад Цюмень;Тĕмен;Тюмен;Тюмень;Тюмень хот;Тјумењ;Түмен;Түмэн;Төмән;טיומן;تيومين;تیومن;ٹیومن;त्युमेन;チュメニ;秋明;튜멘; +city::1489246;Troitsk;Gorad Troick;Troic'k;Troick;Troitk;Troitsk;Troitsk i Tsjeljabinsk oblast;Troizk;Troițk;Troïtsk;te luo yi ci ke;trwytsk;trwytsk awblast chlyabynsk;Горад Троіцк;Троицк;Троїцьк;تروئتسک;ترويتسك;ترویتسک، اوبلاست چلیابینسک;特羅伊茨克; +city::1489425;Tomsk;Gorad Tomsk;TOF;Tom'sku;Tomck;Tomium;Toms'k;Tomsk;Tomska;Tomskaj;Tomskas;Tomszk;Tomçk;tomseukeu;tomska;tomusuku;tuo mu si ke;twmsk;twmsq;Τομσκ;Горад Томск;Томск;Томскай;Томськ;Томьскъ;Տոմսկ;טומסק;تومسك;تومسک;ٹومسک;तोम्स्क;トムスク;托木斯克;톰스크; +city::1489530;Tobol'sk;TOX;Tobol'sk;Tobolsk;Tobol’sk;Тобольск; +city::1490256;Talnakh;Talnakh;Талнах; +city::1490624;Surgut;Gorad Surgut;SGC;Soergoet;Sorgyt;Sourgout;Surgut;Surguta;Surgutas;Surguto;Surgutum;Surqut;Szurgut;srgwt;su er gu te;suleuguteu;suruguto;swrghwt;swrgwt;Горад Сургут;Соргыт;Сургут;סורגוט;سرگوت;سورغوت;سورگوت;スルグト;蘇爾古特;수르구트; +city::1492517;Shadrinsk;Chadrinsk;Gorad Shadrynsk;Sadrinsk;Sadrinszk;Schadrinsk;Shadrin;Shadrins'k;Shadrinsk;Sjadrinsk;sha de lin si ke;shadrnsk;shadrnysk;shadrynsk;syadeulinseukeu;Ŝadrinsk;Šadrinsk;Șadrinsk;Горад Шадрынск;Шадрин;Шадринск;Шадринськ;شادرنسک;شادرنیسک;شادرينسك;沙德林斯克;샤드린스크; +city::1492663;Serov;Gorad Sjarou;Kabakovsk;Nadezhdinsk;Serof;Serov;Serova;Serovas;Serow;Sierow;selopeu;serofu;srwf;syrwf;syrww;xie luo fu;Σερόφ;Горад Сяроў;Серов;Сєров;سروف;سيروف;سیروو;セロフ;谢罗夫;세로프; +city::1493467;Rubtsovsk;Gorad Rubcousk;Roebtsovsk;Roubtsovsk;Rubcovs'k;Rubcovsk;Rubcovska;Rubcovskas;Rubcowsk;Rubtovsk;Rubtsovsk;Rubzowsk;Rubțovsk;Rupcovsk;Rustovsk;lu bu zuo fu si ke;lubchobseukeu;ruputsu~ofusuku;rwbtswfsk;rwbtswwsk;Горад Рубцоўск;Рубцовск;Рубцовськ;Рупцовск;روبتسوفسك;روبتسوفسک;روبتسووسک;ルプツォフスク;魯布佐夫斯克;룹촙스크; +city::1494114;Prokop'yevsk;Prokop'evsk;Prokop'yevo;Prokop'yevsk;Prokop'yevskiy;Prokopjevsk;Prokopyevsk;Prokop’yevo;Prokop’yevsk;Prokop’yevskiy;Prokoyevsk;Прокопьевск; +city::1494573;Polevskoy;Polevskoj;Polevskoy;Tolevskoy;Полевской; +city::1496153;Omsk;Gorad Omsk;OMS;Om'sku;Omby;Omium;Oms'k;Omsc;Omsk;Omska;Omskas;Omszk;Omva;amsk;awmsk;e mu si ke;omseukeu;omska;omusuku;xxm skh;Ομσκ;Горад Омск;Омбы;Омва;Омск;Омськ;Омьскъ;Օմսկ;אומסק;أومسك;امسک;اومسک;ओम्स्क;ออมสค์;ომსკი;オムスク;鄂木斯克;옴스크; +city::1496476;Nyagan;NYA;Nagin;Njagan;Njagan';Nyagan;Nyakh;Nyakhyn';Nyakhyn’;Yurty Nyagin;Нягань; +city::1496503;Noyabrsk;NOJ;Nojabr'sk;Noyabrsk;Ноябрьск; +city::1496511;Novyy Urengoy;NUX;Noviy Urengoi;Novy Urengoy;Novyj Urengoj;Novyy Urengoy;Новый Уренгой; +city::1496747;Novosibirsk;Cen Ceper;Gorad Novasibirsk;Nobosimpirsk;Novo-Nikolaevsk;Novo-Nikolaievsk;Novo-Nikolaïevsk;Novonikolaevsk;Novonikolayevsk;Novosibir;Novosibir'sku;Novosibirs'k;Novosibirscum;Novosibirsk;Novosibirska;Novosibirskaj;Novosibirskas;Novosibirsko;Novosimpirsk;Novossibirsk;Novoszibirszk;Nowosibirsk;Nowosibirski;Nowosybirsk;OVB;Odsibiren' osh;Vil' Sibirkar;no wo sibiskh;nobosibileuseukeu;novosibirsk;novosibirska;novu~oshibirusuku;nwbwsybyrsq;nwfwsybyrsk;nwwsybrsk;nwwsybyrsk;xin xi bo li ya;Çĕн Çĕпĕр;Νοβοσιμπίρσκ;Νοβοσιμπιρσκ;Виль Сибиркар;Горад Новасібірск;Новониколаевск;Новосибирск;Новосибирскай;Новосибирьскъ;Новосибірськ;Новосібір;Одсибирень ош;Նովոսիբիրսկ;נובוסיבירסק;نوفوسيبيرسك;نووسیبرسک;نووسیبیرسک;नोवोसिबिर्स्क;โนโวซีบีสค์;ნოვოსიბირსკი;ノヴォシビルスク;新西伯利亚;新西伯利亞;노보시비르스크; +city::1496990;Novokuznetsk;Cusnezia;Gorad Navakuzneck;Kuvnetsk;Kuznetsk;Kuznetsk-Sibirskiy;NOZ;Novokoeznetsk;Novokouznetsk;Novokusnetsk;Novokuznec'k;Novokuzneck;Novokuznecka;Novokuzneckas;Novokuznetk;Novokuznetsk;Novokuznețk;Novokuznjeck;Novokuznyeck;Novokuzněck;Novokuzņecka;Nowokoeznetsk;Nowokusnezk;Nowokuznieck;Nowokuźnieck;Stalinsk;nobokujeunecheukeu;novu~okuzunetsuku;nwbwqwznzq;nwfwkwzntsk;nwwkwzntsk;xin ku ci nie ci ke;Νοβοκουζνέτσκ;Горад Навакузнецк;Новокузнетск;Новокузнецк;Новокузнецьк;Новокузњецк;Сталинск;נובוקוזנצק;نوفوكوزنتسك;نووکوزنتسک;نووکوزنٹسک;ノヴォクズネツク;新库兹涅茨克;노보쿠즈네츠크; +city::1497173;Novoaltaysk;Chesnokovka;Chesnokovo;Chesnokovskoye;Novoaltajsk;Novoaltaysk;noboaltaiseukeu;Новоалтайск;노보알타이스크; +city::1497337;Norilsk;Gorad Naryl'sk;Noril's'k;Noril'sk;Noriljsk;Norilsk;Norilska;Norilskas;Norilsko;Norilskoe;Norilszk;Noril’sk;Noriļska;Noriľsk;Norylsk;nolilseukeu;noririsuku;nuo li er si ke;nwrlsk;nwrylsk;nwrylsq;Горад Нарыльск;Норилск;Норильск;Норильськ;Нориљск;נורילסק;نورلسک;نوريلسك;نوریلسک;ノリリスク;諾里爾斯克;노릴스크; +city::1497543;Nizhnevartovsk;Gorad Nizhnjavartausk;NJC;Nijnevartovsk;Nischnewartowsk;Nizhn'ovartovs'k;Nizhne-Vartovskaya;Nizhne-Vartovskoye;Nizhnevartovsk;Nizhnevartovskiy;Nizhnevártovsk;Nizjnevartovsk;Niznevartovsk;Niznevartovska;Niznevartovskas;Nizniewartowsk;Niĵnevartovsk;Niżniewartowsk;Nižnevartovsk;Nižnevartovskas;nijeunebaleutobseukeu;nijinevu~arutofusuku;nyjnfartwfsk;nyzhnwartwfsk;nyzhnywartwwsk;xia wa er tuo fu si ke;Ņižņevartovska;Горад Ніжнявартаўск;Нижневартовск;Нижньовартовськ;Нижњевартовск;Түбән Варта;نيجنفارتوفسك;نیژنوارتوفسک;نیژنیوارتووسک;ニジネヴァルトフスク;下瓦爾托夫斯克;니즈네바르톱스크; +city::1497917;Nefteyugansk;NFG;Neftejugansk;Nefteyugansk;Нефтеюганск; +city::1497951;Nazarovo;Gorad Nazarava;Nasarowo;Nazarovo;Nazarowo;Nazàrovo;na zha luo wo;nazarwfw;nazarwfw krasnwyarsk;Горад Назарава;Назарово;نازاروفو;نازاروفو، کراسنویارسک;納扎羅沃; +city::1498693;Minusinsk;Gorad Minusinsk;Minoesinsk;Minoussinsk;Minusinka;Minusins'k;Minusinsk;Minusinskas;Minusinsko;Minusińsk;Minussinsk;mi nu xin si ke;minushinsuku;minusinaska;minusinseukeu;mynwsnsk;mynwsynsk;Горад Мінусінск;Минусинск;Мінусинськ;مينوسينسك;مینوسنسک;مینوسینسک;মিনুসিনস্ক;ミヌシンスク;米努辛斯克;미누신스크; +city::1498894;Miass;Gorad Mias;Mias;Miasa;Miasas;Miass;Miassz;Mijas;mi a si;miaseu;miasu;myas;Горад Міас;Мейәс;Миас;Миасс;Мияс;Мијас;Міас;مياس;میاس;ミアス;米阿斯;미아스; +city::1498920;Mezhdurechensk;Gorad Mezhdurehchansk;Mejdouretchensk;Mejdurecensk;Mejdurechensk;Mejduretxensk;Mejdurétxensk;Meschduretschensk;Mezdurecensk;Mezdurecenska;Mezdurecenskas;Mezduretsensk;Mezhdurechens'k;Mezhdurechensk;Mezhduréchensk;Mezjdoeretsjensk;Mezjduretjensk;Mezjduretsjensk;Mezjduretsjensk i Kemerovo oblast;Meĵdureĉensk;Mežduretšensk;Meždurečensk;Meždurečenska;Meždurečenskas;Miezdurieczensk;Mieżdurieczensk;Ol'zheras;Ol’zheras;mei ri du lie qin si ke;mejeudulechenseukeu;mejudo~urechensuku;myjdwrychynsk;myjdwrytshynsk;mzhdwrchnsk awblast kmrww;Горад Междурэчанск;Междуреченск;Мєждурєченськ;ميجدوريتشينسك;مژدورچنسک، اوبلاست کمروو;میجدوریچینسک;メジュドゥレチェンスク;梅日杜列琴斯克;메즈두레첸스크; +city::1500607;Lesosibirsk;Gorad Lesasibirsk;Lesosibirsk;Lesosibirskas;Lessosibirsk;Lessossibirsk;Maklakova;Maklakovo;Novomaklakovo;lie suo xi bi er si ke;lswsybyrsk;lyswsybyrsk;Горад Лесасібірск;Лесосибирск;Новомаклаково;لسوسيبيرسك;لسوسیبیرسک;لیسوسیبیرسک;列索西比爾斯克; +city::1500665;Leninsk-Kuznetsky;Gorad Leninsk-Kuznecki;Kuznecko Leninskas;Leninsk Kuznecki;Leninsk Kuznetski;Leninsk Kuzniecki;Leninsk-Koeznetski;Leninsk-Kouznetski;Leninsk-Kusnezki;Leninsk-Kuzneckij;Leninsk-Kuznetki;Leninsk-Kuznetsk;Leninsk-Kuznetski;Leninsk-Kuznetskij;Leninsk-Kuznetskiy;Leninsk-Kuznetsky;Leninsk-Kuznețki;Leninska-Kuznecka;Lenińsk Kuźniecki;Léninsk-Kuznetski;lie ning si ke-ku zi nie ci ji;lnynsk-kwzntsky;lnynsk-kwzntskyy;lynnsk kwznytsky;Ļeņinska-Kuzņecka;Горад Ленінск-Кузнецкі;Ленинск-Кузнецкий;Лењинск Кузњецки;لنينسك-كوزنتسكي;لنینسک-کوزنتسکیی;لیننسک کوزنیتسکی;列寧斯克-庫茲涅茨基; +city::1500973;Kyzyl;Belotsarsk;Bielorsarsk;Chi-ch'i-erh;Chi-ch’i-erh;Gorad Kyzyl;K'en-mu-pi-ch'i-erh;KYZ;Kezelli;Khem Belder;Kizil;Kizil Khoto;Kizila;Kozol;Krasni;Krasnij;Krasny;Krasnyy;Kysyl;Kyzyl;Kyzyl Khoro;Kyzyl Khoto;Kyzyl shaary;Kyzylas;Kyzył;Këzëlli;Kîzîl;Kõzõl;Kızıl;K’en-mu-pi-ch’i-erh;Qizil;kayzl;ke zi lei;kijil;kizila;kuzuru;kyzl;kyzyl;qyzyl;Κιζίλ;Горад Кызыл;Кизил;Кызыл;Кызыл шаары;Қызыл;קיזיל;كيزيل;کائزل;کیزل;کیزیل;किज़िल;クズル;克孜勒;키질; +city::1501321;Kurgan;Gorad Kurgan;KRO;Koergan;Kourgan;Kurgan;Kurgan Pervyy;Kurgan i Kurgan oblast;Kurgana;Kurganas;Kurgano;Kurgán;Kurgāna;Kurqan;krgan;ku er gan;kuleugan;kurugan;kwrgan awblast kwrgan;kwrgan kwrgan awblast;kwrghan;Горад Курган;Курган;كورغان;کرگان;کورگان، اوبلاست کورگان;کورگان، کورگان اوبلاست;クルガン;库尔干;쿠르간; +city::1502026;Krasnoyarsk;KJA;Krasnoiarsk;Krasnojarsk;Krasnoyarsk;Krasnoïarsk;keulaseunoyaleuseukeu;Красноярск;크라스노야르스크; +city::1502061;Krasnotur'insk;Krasnotur'insk;Krasnoturinsk;Krasnotur’insk;Tur'inskiy;Tur’inskiy;Краснотурьинск; +city::1502603;Kopeysk;Kopeisk;Kopejsk;Kopeysk;Kopi;Kopiejsk;Ugolnye Kopi;Копейск; +city::1503277;Kiselevsk;Kiselevsk;Kiseljovsk;Kiselyovsk;Kiselëvsk;Kizelovsk;Киселевск;Киселёвск; +city::1503772;Khanty-Mansiysk;Chanti-Mansiisk;Chanty Mansijskas;Chanty-Mansiejsk;Chanty-Mansijsk;Chanty-Mansyjsk;Gorad Khanty-Mansijsk;HMA;Hanti-Mansiisk;Hanti-Mansijsk;Hanti-Mansiysk;Hanti-Manszijszk;Hantimansijska;Hanto-Mansiisk;Hanty-Mansijsk;Hantî-Mansiisk;Hantõ-Mansiisk;Hantı-Mansiysk;Janty-Mansisk;Jograkar;Jomvosh;Khanti-Mansijs'k;Khanti-Mansijsk;Khanti-Mansisk;Khanty Mansisk;Khanty-Mansiisk;Khanty-Mansijsk;Khanty-Mansisk;Khanty-Mansiysk;Khanty-Mansiïsk;Ostyako-Vogul'sk;Ostyako-Vogul’sk;Xanti-Mansi;Xanti-Mansiysk;Xanti-mansiysk;han te-man xi si ke;hantimansiseukeu;hnty-mnsysq;khanty mansyysk;khanty-mansysk;khanty-mansyysk;Ĥanti-Mansijsk;Ёмвош;Горад Ханты-Мансійск;Йӧгракар;Ханти-Мансийск;Ханти-Мансијск;Ханти-Мансійськ;Ханты-Мансийск;Խանտի-Մանսիյսկ;חנטי-מנסיסק;خانتي-مانسييسك;خانتی مانسیئسک;خانتی-مانسیسک;خانتی-مانسییسک;ხანტი-მანსიისკი;ハンティ・マンシースク;汉特-曼西斯克;한티만시스크; +city::1503901;Kemerovo;Gorad Kemerava;KEJ;Kemer;Kemerova;Kemerovas;Kemerovo;Kemerovo khot;Kemerowo;Kèmerovo;Kémerovo;Shcheglovsk;ke mai luo wo;kemelobo;kemerovo;kemerovu~o;kmrwf;kymyrwfw;kymyrww;qmrwbw;Горад Кемерава;Кемĕр;Кемерово;Кемерово хот;Կեմերովո;קמרובו;كيميروفو;کمروف;کیمیروو;केमेरोवो;ケメロヴォ;克麥羅沃;케메로보; +city::1504682;Kansk;Gorad Kansk;Kansk;Kanskas;Kańsk;kan si ke;kanseukeu;kansk;Горад Канск;Канск;كانسك;کانسک;坎斯克;칸스크; +city::1504826;Kamensk-Ural'skiy;Kamenisk;Kamensk;Kamensk-Ural'skij;Kamensk-Ural'skiy;Kamensk-Uralskij;Kamensk-Uralsky;Kamensk-Ural’skiy;Каменск-Уральский; +city::1505429;Iskitim;Gorad Iskicim;Iskitim;ayskytym;yi si ji ji mu;Іскітим;Горад Іскіцім;Искитим;إيسكيتيم;ایسکیتیم;伊斯基季姆; +city::1505453;Ishim;Byen Isjim;Gorad Ishym;Ichim;Ischim;Ishem;Ishim;Isim;Isjim;Iszym;Ixim;Iŝim;Išim;Ișim;ayshym;isim;yi xi mu;İşim;Ішим;Горад Ішым;Ишем;Ишим;إيشيم;ایشیم;伊希姆;이심; +city::1506271;Gorno-Altaysk;Gorno-Altaisk;Gorno-Altaiskas;Gorno-Altajsk;Gorno-Altaysk;Gorno-Altaïsk;Gorno-Ałtajsk;Gornyy Altaysk;Oirat-Tura;Oirot-Tura;Oyrot-Tura;RGK;Tuulu Altaj;Ulala;goleunoaltaiseukeu;Горно-Алтайск;Туулу Алтай;고르노알타이스크; +city::1508054;Chernogorsk;Cernogorsk;Chernogorsk;Kharatas;Tsernogorsk;Tšernogorsk;cheleunogoleuseukeu;Ĉernogorsk;Харатас;Черногорск;체르노고르스크; +city::1508291;Chelyabinsk;CEK;Celabinsk;Celabinska;Celaebinsk;Celeabinsk;Celiabinsc;Celiabinsca;Celiabinskas;Celjabinsk;Celyabinsk;Chelepi;Cheliabinsk;Cheliábinsk;Cheljaba;Cheljaba osh;Cheljabe;Cheljabi;Cheljabins'k;Cheljabinsk;Chelyabinsk;Cseljabinszk;Czelabinsk;Czelabińsk;Gorad Chaljabinsk;Tcheliabinsk;Tchelyabinsk;Tchéliabïnsk;Tjeljabinsk;Tscheljabinsk;Tseliampinsk;Tseljabinsk;Tsjeljabinsk;Tsyelyabinsk;Txeliabinsk;Txeliàbinsk;Tšeljabinsk;celiyabinska;celyabinska;che li ya bin si ke;chellyabinseukeu;cheryabinsuku;chlyabnsk;chlyabynsk;chylyabnsk;tshylyabnsk;zlyʼbynsq;Çelyabinsk;Ĉeljabinsk;Čeliabinskas;Čeljabinsk;Čeläbinsk;Čeļabinska;Čeľabinsk;Τσελιάμπινσκ;Горад Чалябінск;Силәбе;Челепи;Челяба;Челяба ош;Челябе;Челябинск;Челябі;Челябінськ;Чељабинск;Чиләбе;Чєлѣбиньскъ;Չելյաբինսկ;טשעליאבינסק;צליאבינסק;تشيليابنسك;چلیابنسک;چلیابینسک;چیلیابنسک;चेलियाबिन्स्क;चेल्याबिंस्क;চেলিয়াবিন্‌স্ক;ჩელიაბინსკი;チェリャビンスク;車里雅賓斯克;첼랴빈스크; +city::1510018;Biysk;Biejsk;Biisk;Bijs'k;Bijsk;Biscum;Bisk;Biysk;Biyusk;Mpisk;Viysk;bi si ke;biseukeu;Μπισκ;Бийск;Бійськ;比斯克;비스크; +city::1510205;Berezovskiy;Berezovskij;Berezovskiy;Berjozovskij;Berëzovskiy;Березовский;Берёзовский; +city::1510350;Berdsk;Berds'k;Berdsk;Berdskas;Berdskoye;Bierdsk;Bjerdsk;Bordsk;Gorad Berdsk;beleucheukeu;bie er ci ke;brdsk;byrdsk;Бердск;Бердськ;Горад Бердск;بردسک;بيردسك;بیردسک;別爾茨克;베르츠크; +city::1510469;Belovo;Belova;Belovas;Belovo;Belovo i Russland;Belowo;Bielowo;Biełowo;Gorad Bjalova;bellobo;bie luo wo;blwfw rwsyh;bylwfw;bylwww;Белово;Бєлово;Горад Бялова;بلوفو، روسیه;بيلوفو;بیلووو;別洛沃;벨로보; +city::1510853;Barnaul;BAX;Barnaoel;Barnaoul;Barnauel;Barnaul;Barnaul - Barnaul;Barnaul - Барнау́л;Barnaula;Barnaulas;Barnaulia;Barnauyl;Barnauł;Barnaúl;Barnaül;Gorad Barnaul;Mparnaoul;ba er nao er;baleunaul;barna'ula;barnal;barnawl;barnaywl;barunauru;Μπαρναούλ;Барнаул;Барнауыл;Горад Барнаул;Բարնաուլ;ברנאול;بارنائول;بارنال;بارناول;बर्नाउल;バルナウル;巴尔瑙尔;바르나울; +city::1511330;Asbest;Asbest;Asbest i Russland;Asbestas;Asbiest;Asmpest;Gorad Asbest;a si bie si te;asbst;asbyst;aseubeseuteu;asubesuto shi;Ασμπέστ;Асбест;Горад Асбест;Әсбест;אסבסט;آسبست;أسبيست;اسبست;اسبیست;アスベスト市;阿斯别斯特;아스베스트; +city::1511494;Anzhero-Sudzhensk;Anjero-Sudjensk;Anschero-Sudschensk;Anshero-Sudshensk;Anzero-Sudzensk;Anzherka;Anzhero-Sudzhenka;Anzhero-Sudzhensk;Anzhero-Sujensk;Anĵero-Sudĵensk;Anžero-Sudžensk;Sudzhenka;anjelosujenseukeu;Анжеро-Судженск;안제로수젠스크; +city::1512165;Achinsk;ACS;Achins'k;Achinsk;Acinsk;Acinska;Acinskas;Aczynsk;Aczyńsk;Atchinsk;Atjinsk;Atschinsk;Atsinsk;Atsjinsk;Atxinsk;Atšinsk;Açinsk;Aĉinsk;Ačinsk;Ačinska;Ačinskas;Gorad Achynsk;a qin si ke;achinseukeu;achinsuku;achynsk;akisaka;atshynsk;Àtxinsk;Áchinsk;Ачинск;Ачинськ;Горад Ачынск;آچینسک;أتشينسك;اچینسک;ਅਕਿੰਸਕ;アチンスク;阿钦斯克;아친스크; +city::1512236;Abakan;ABA;Abakan;Abakan shaary;Abakana;Abakanas;Abakanskoye;Abakán;Agban;Ampakan;Gorad Abakan;a ba kan;abakan;abakana;Αμπακάν;Абакан;Абакан шаары;Ағбан;Горад Абакан;Աբական;آباکان;أباكان;اباکان;अबाकान;ਅਬਾਕਾਨ;アバカン;阿巴坎;아바칸; +city::1536289;Snezhinsk;Cheljabinsk-70;Chelyabinsk-70;Gorad Snezhynsk;Semidesjatka;Semidesyatka;Snejinsk;Sneschinsk;Snezhins'k;Snezhinsk;Snezinsk;Snezjinsk;Sneĵinsk;Snežinsk;Sniezynsk;Snieżynsk;Sněžinsk;asnzhynsk;si nie ren si ke;snjynsk;snyzhynsk;Горад Снежынск;Семидесятка;Снежинск;Снєжинськ;Челябинск-70;اسنژینسک;سنجينسك;سنیژینسک;斯涅任斯克; +city::1538634;Ozersk;Chelyabinsk-40;Chelyabinsk-65;Ozersk;Ozjorsk;Озёрск; +city::1538635;Zheleznogorsk;Atomgrad;Devyatka;Krasnoyarsk-26;Krasnoyarsk-9;Zeleznogorsk;Zheleznogorsk;Zjeleznogorsk;Železnogorsk;Железногорск; +city::1538636;Novoural'sk;Novoural'sk;Novoural’sk;Sverdlovsk-44;Verkh-Nejvinskij;Верх-Нейвинский;Новоуральск; +city::1538637;Seversk;Gorad Seversk;Severs'k;Seversk;Severskas;Sewersk;Sewjersk;Siewiersk;Sèversk;Tomsk-7;sebeleuseukeu;sevu~erusuku;swrsk;sywrsk;xie wei er si ke;Горад Северск;Северск;Сєвєрськ;سورسک;سیورسک;セヴェルスク;謝韋爾斯克;세베르스크; +city::2013159;Yakutsk;D'okuuskaj;Jakutsk;YKS;Yakutsk;Yerkutsk;yakucheukeu;Дьокуускай;Якутск;야쿠츠크; +city::2013348;Vladivostok;Bladibostok;Gorad Uladzivastok;VVO;Vladivostok;Vladivostoka;Vladivostokas;Vladivostokium;Vlagyivosztok;Wladiwostok;Wladywostok;Władywostok;beulladiboseutokeu;fladyfwstwk;hai can wai;hai can wei;urajiosutoku;vilativostok;vladivastak;vladivostoka;w la di wx s txkh;wladywstwk;wldywwstwq;Βλαδιβοστόκ;Владивосток;Горад Уладзівасток;Վլադիվոստոկ;וולאדיוואסטאק;ולדיווסטוק;فلاديفوستوك;ولادیوستوک;ولادی‌وؤستؤک;ولادی‌وستوک;ولاڈیووسٹوک;व्लादिवोस्तॉक;व्लादिवोस्तोक;விலாடிவொஸ்டொக்;ವ್ಲಾಡಿವಾಸ್ಟಾಕ್;วลาดีวอสตอค;ვლადივოსტოკი;ウラジオストク;海参崴;海參崴;블라디보스토크; +city::2013952;Ust'-Ilimsk;UIK;Ust'-Ilimsk;Ust-Ilimsk;Ust’-Ilimsk;Усть-Илимск; +city::2014006;Ussuriysk;Lungsod ng Ussurijsk;Nikol'sk-Ussuriyskiy;Nikolaevsk-Ussuri;Nikol’sk-Ussuriyskiy;Oessoeriejsk;Ussuriisk;Ussurijsk;Ussuriysk;Ussuryjsk;Usszurijszk;Voroshilov;usuliseukeu;usurisuku;wu su li si ke;Уссурийск;ウスリースク;乌苏里斯克;우수리스크; +city::2014022;Usol'ye-Sibirskoye;Isol'ye-Sibirskoye;Isol’ye-Sibirskoye;Usel'ye-Sibirskoye;Usel’ye-Sibirskoye;Usol'e-Sibirskoe;Usol'ye;Usol'ye-Sibirskoye;Usole Sibirskoe;Usolje-Sibirskoje;Usol’ye;Usol’ye-Sibirskoye;Усолье-Сибирское; +city::2014407;Ulan-Ude;Oelan-Oede;Oulan Ounte;UUD;Ulaan-Udeh;Ulaan-Үdeh;Ulan Ude;Ulan Udė;Ulan-Ude;Ulan-Udeh;Ulan-Udè;Ulán-Udé;Ułan-Ude;Verkhne-Udinsk;Verkhneudinsk;ullan-ude;wu lan wu de;Ουλάν Ουντέ;Верхнеудинск;Улаан-Удэ;Улаан-Үдэ;Улан Уде;Улан-Удэ;אולן-אודה;ウラン・ウデ;烏蘭烏德;울란우데; +city::2014927;Tulun;Gorad Tulun;Toeloen;Touloun;Tulun;Tulunas;Tulún;tu lun;twlwn;Горад Тулун;Тулун;تولون;图伦; +city::2015833;Svobodnyy;Alekseyevsk;Svobodni;Svobodny;Svobodnyi;Svobodnyj;Svobodnyy;Свободный; +city::2019309;Neryungri;N'iruungra;Neriungri;Neriungris;Nerjoengri;Nerjungri;Neryugran;Neryungar;Neryungra;Neryungri;Nүөrүҥgүrү;nelyungeuli;Нерюнгри;Ньируунгра;Нүөрүҥгүрү;네륜그리; +city::2019528;Nakhodka;Gorad Nakhodka;Nachodka;Nahhodka;Nahodka;Nahotk;Najodka;Nakhodka;Nakhodkae;Nakhodko;Nakhotka;Naxodka;Naĥodka;na huo de ka;nahoska;nahotoka;nakhwdka;Горад Находка;Находкæ;Находка;Находко;Нахотка;ناخودكا;ناخودکا;ナホトカ;納霍德卡;나홋카; +city::2021618;Krasnokamensk;Chandacha;Chindachi;Chindachinskaya;Gorad Krasnakamensk;Krasnokamensk;Krasnokamenskas;Krasnokamiensk;Krasnokàmensk;ke la si nuo ka mian si ke;krasnwkamnsk;krasnwkamnsk srzmyn zabaykalsky;Горад Краснакаменск;Краснокаменск;كراسنوكامنسك;کراسنوکامنسک;کراسنوکامنسک، سرزمین زابایکالسکی;克拉斯諾卡緬斯克; +city::2021851;Komsomolsk-on-Amur;KXK;Komsomol's'k-na-Amuri;Komsomol'sk;Komsomol'sk-na-Amure;Komsomolsk am Amur;Komsomolsk del Amur;Komsomolsk-na-Amure;Komsomolsk-on-Amur;Komsomolsk-sur-l'Amour;Komsomol’sk;Permskoye;a mu er he pan gong qing cheng;komsomolseukeunaamule;komusomorisuku・na・amure;Комсомольск-на-Амуре;Комсомольськ-на-Амурі;コムソモリスク・ナ・アムーレ;阿穆尔河畔共青城;콤소몰스크나아무레; +city::2022890;Khabarovsk;Chabarofsk;Chabarovsk;Chabarovskas;Chabarowsk;Champarofsk;Gorad Khabarausk;Habarovsk;Habarovska;Habarovszk;Jabarovsk;Jabárovsk;KHV;Khabarovka;Khabarovs'k;Khabarovsk;Khabarovskaj;Khabàrovsk;Khbarovsk;Xabarovsk;bo li;habalobseukeu;habarofusuku;hbrwbsq;khabarovska;khabarwfsk;khabarwwsk;Ĥabarovsk;Χαμπάροφσκ;Горад Хабараўск;Хабаровск;Хабаровскай;Хабаровськ;Խաբարովսկ;חברובסק;خاباروفسك;خاباروفسک;خابارووسک;ہابروسک;खबारोव्स्क;ख़ाबारोव्स्क;ハバロフスク;伯力;하바롭스크; +city::2023469;Irkutsk;Ehrkhүү khot;Ehrkhүү khoto;Gorad Irkuck;IKT;Ircutia;Irkoetsk;Irkotsk;Irkoutsk;Irkuck;Irkutk;Irkuts'k;Irkutsc;Irkutsk;Irkutska;Irkutskaj;Irkutskas;Irkutszk;Irkuțk;Irkùck;ayrktsk;ayrkwtsk;ileukucheukeu;irakutska;irukutsuku;xir khut skh;yi er ku ci ke;İrkutsk;Ιρκούτσκ;Іркутськ;Горад Іркуцк;Иркутск;Иркутскай;Иркуцк;Эрхүү хот;Эрхүү хото;Өrket;Өркет;אירקוטסק;אירקוצק;إيركوتسك;ارکٹسک;ایرکتسک;ایرکوتسک;इरकुत्स्क;อีร์คุตสค์;ირკუტსკი;イルクーツク;伊爾庫茨克;이르쿠츠크; +city::2025339;Chita;Chita;Chitá;HTA;Tchita;Tschita;Tsita;Tsjita;Tšita;chi ta;chita;Чита;チタ;赤塔;치타; +city::2025527;Cheremkhovo;Cheremkhovo;Tseremhovo;Tsjeremkhovo;Tšeremhovo;Черемхово; +city::2026609;Blagoveshchensk;BQS;Blagovechtchensk;Blagovescensk;Blagovescenska;Blagovescenskas;Blagoveschensk;Blagovescsenszk;Blagoveshchensk;Blagoveshensk;Blagoveshhens'k;Blagoveshhensk;Blagoveshhensk shaary;Blagovesjtjensk;Blagovesjtsjensk;Blagovestsensk;Blagovesxensk;Blagovextxensk;Blagoveŝĉensk;Blagoveşçensk;Blagoveštšensk;Blagoveščensk;Blagoveščenska;Blagoveščenskas;Blagoveșcensk;Blagovjescensk;Blagovjeshchensk;Blagovješčensk;Blagovyeshchensk;Blagovéshchensk;Blagovésxensk;Blagověščensk;Blagoweschtschensk;Blagowesjtsjensk;Blagowieszczensk;Blagowjeschtschensk;Blаgоvеsjtsjеnsk;Błagowieszczeńsk;Gorad Blagaveshchansk;Hailanpao;b la ko wech chen skh;beullagobesyenseukeu;blaghwfyshtshynsk;blagwwshchnsk;blagwwyshchnsk;blagwwyshchynsk;blʼgwbsznsq;buragovu~eshichensuku;hai lan pao;Благовешенск;Благовешченск;Благовещенск;Благовещенск шаары;Благовєщенськ;Благовјешченск;Горад Благавешчанск;Բլագովեշչենսկ;בלאגובשצנסק;بلاغوفيشتشينسك;بلاگووشچنسک;بلاگوویشچنسک;بلاگوویشچینسک;บลาโกเวชเชนสค์;ბლაგოვეშჩენსკი;ブラゴヴェシチェンスク;海兰泡;海蘭泡;블라고베셴스크; +city::2026643;Birobidzhan;Birabidzhan;Birobican;Birobidjan;Birobidschan;Birobidshansk;Birobidzan;Birobidzana;Birobidzanas;Birobidzhan;Birobidzhán;Birobidzjan;Birobidzsan;Birobidżan;Birobidžan;Birobidžana;Birobidžanas;Birobigano;Birobijan;Birobiĝano;Bîrobîcan;Gorad Birabidzhan;Tikhon'kaya Stantsiya;Tikhon’kaya Stantsiya;Tikhou'kaya Stantsiya;Tikhou’kaya Stantsiya;bi luo bi zhan;bilobijan;birobijan;byrwbygn;byrwbyjan;Биробиджан;Биробиџан;Біробіджан;Горад Бірабіджан;ביראבידזשאן;בירוביגן;بيروبيجان;بیروبیجان;ビロビジャン;比罗比詹;비로비잔; +city::2026895;Belogorsk;Aleksandrovka;Aleksandrovsk;Beletorsk;Belogors'k;Belogorsk;Belogorsk i Amur oblast;Belogorskas;Beloqorsk;Bielogorsk;Biełogorsk;Gorad Belagorsk;Kuibyshevka;Kuybyshevka;Kuybyshevka-Vostochnaya;Svobodnyy-18;bellogoleuseukeu;berogorusuku;bie luo ge er si ke;blwgwrsk astan amwr;bylwghwrsk;bylwgwrsk;bylwgwrsk amwr awblast;Белогорск;Бєлогорськ;Горад Белагорск;بلوگورسک، استان آمور;بيلوغورسك;بیلوگورسک;بیلوگورسک، آمور اوبلاست;ベロゴルスク;别洛戈尔斯克;벨로고르스크; +city::2027456;Artem;Artem;Artjom;Artëm;Артем;Артём; +city::2027468;Arsen'yev;Arsen'ev;Arsen'yev;Arsenjev;Arsen’yev;Semenovka;Арсеньев; +city::2027667;Angarsk;Angars'k;Angarsk;Angarska;Angarskas;Angarskiy;Angarszk;Anqarsk;Gorad Angarsk;agarasaka;an jia er si ke;angaleuseukeu;angarsk;angarusuku;angharsk;Ангарск;Ангарськ;Горад Ангарск;آنگارسک;أنغارسك;انگارسک;ਅੰਗਾਰਸਕ;アンガルスク;安加尔斯克;안가르스크; +city::2051523;Bratsk;BTK;Brack;Brats'k;Bratsk;Bratska;Bratskas;Gorad Brack;beulacheukeu;bratsk;bu la ci ke;buratsuku;Братск;Братськ;Горад Брацк;براتسك;براتسک;ブラーツク;布拉茨克;브라츠크; +city::2119441;Yuzhno-Sakhalinsk;Gorad Juzhna-Sakhalinsk;Ioujno-Sakhalinsk;Iujno-Sahalinsk;Iujno-Sakhalinsk;Joezjno-Sachalinsk;Jujno-Sahalinsk;Juschno-Sachalinsk;Juzhno-Sakhalins'k;Juzhno-Sakhalinsk;Juzhnosakhalinsk;Juzjno-Sachalinsk;Juzjno-Sakhalinsk;Juzno Sachalinskas;Juzno-Sachalinsk;Juzno-Sahalinsk;Juzno-Sahhalinsk;Juznosachalinsk;Juznosahalinska;Juzsno-Szahalinszk;Juĵno-Saĥalinsk;Jużnosachalińsk;Južno Sachalinskas;Južno-Sachalinsk;Južno-Sahalinsk;Južno-Sahhalinsk;Južnosahaļinska;Suvisahalinsk;Toekhara;Toyohara;Toyokhara;Toëkhara;UUS;Urajimirofuka;Yujno-Sahalinsk;Yujno-Saxalinsk;Yuzhno-Sajalinsk;Yuzhno-Sakhalinsk;nan sa ha lin si ke;yujeunosahallinseukeu;yujhno-sakhalinska;yujinosaharinsuku;ywjnw-sakhalynsk;ywzhnw-sakhalynsk;ywzhnw-skhalnsk;ywzhnwskhalynsk;ywznw-shlynsq;Јужно-Сахалинск;Горад Южна-Сахалінск;Южно-Сахалинск;Южно-Сахалінськ;Южносахалинск;יוזנו-סחלינסק;يوجنو-ساخالينسك;یوژنو-ساخالینسک;یوژنو-سخالنسک;یوژنوسخالینسک;युझ्नो-साखालिन्स्क;ユジノサハリンスク;南萨哈林斯克;유즈노사할린스크; +city::2122104;Petropavlovsk-Kamchatsky;Gorad Petrapaulausk-Kamchacki;Kamchatkataagy Petropavlovskaj;Kamciatkos Petropavlovskas;Kamčiatkos Petropavlovskas;PKC;Petropaulovscum Camtschaticum;Petropavlofsk Kamtsatski;Petropavlovs'k-Kamchats'kij;Petropavlovsk;Petropavlovsk Kamcatkal;Petropavlovsk Kamcatski;Petropavlovsk Kamchatski;Petropavlovsk Kamchatsky;Petropavlovsk Kamciatki;Petropavlovsk Kamciațki;Petropavlovsk Kamčatkal;Petropavlovsk Kamčatski;Petropavlovsk-Kamcatski;Petropavlovsk-Kamcatskij;Petropavlovsk-Kamchatkari;Petropavlovsk-Kamchatski;Petropavlovsk-Kamchatskij;Petropavlovsk-Kamchatskiy;Petropavlovsk-Kamchatsky;Petropavlovsk-Kamtchatski;Petropavlovsk-Kamtjatskij;Petropavlovsk-Kamtsatski;Petropavlovsk-Kamtsjatski;Petropavlovsk-Kamtsjatskij;Petropavlovsk-Kamtxatski;Petropavlovsk-Kamtšatski;Petropavlovsk-Kamçatski;Petropavlovsk-Kamĉatskij;Petropavlovsk-Kamčatski;Petropavlovsk-Kamčatskij;Petropavlovska-Kamcatska;Petropavlovska-Kamčatska;Petropavlovszk-Kamcsatszkij;Petropawlofsk-Kamtsjatski;Petropawlowsk-Kamtschatski;Petropàvlovsk-Kamtxatski;Petropávlovsk-Kamchatski;Pietropawlowsk Kamczacki;Pietropawłowsk Kamczacki;btrwbaflwfsk;kan cha jia bi de ba fu luo fu si ke;kan cha jia de bi de ba fu luo fu si ke;peteulopabeullobseukeukamchacheuki;peteulopabeullopeuseukeu kamchaseuki;pi tra paflafskh-khamchat ski;ptrwpawlwfsk-kamchatskyy;ptrwpblwbsq-qmztsqy;pytrwpawlwwsk kmchatsky;Πετροπάβλοφσκ Καμτσάτσκι;Горад Петрапаўлаўск-Камчацкі;Камчаткатааҕы Петропавловскай;Петропавловск Камчатски;Петропавловск-Камчаткăри;Петропавловск-Камчатски;Петропавловск-Камчатский;Петропавловськ-Камчатський;Կամչատկայի Պետրոպավլովսկ;פטרופבלובסק-קמצטסקי;بتروبافلوفسك;پتروپاولوفسک-کامچاتسکیی;پٹروپاولوسک-کامچاٹسکی;پیتروپاولووسک کمچاتسکی;ปิตราปัฟลัฟสค์-คัมชัตสกี;ペトロパブロフスク・カムチャツキー;堪察加彼得巴甫洛夫斯克;堪察加的彼得巴甫洛夫斯克;페트로파블로프스크 캄차스키;페트로파블롭스크캄차츠키; +city::2123628;Magadan;GDX;Gorad Magadan;Magadaan;Magadan;Magadana;Magadanas;Magadán;Mankantan;Maqadan;ma jia dan;magadan;magadana;maghadan;majadan;mgdn;Μαγκαντάν;Горад Магадан;Магадаан;Магадан;Մագադան;מגדן;ماجادان;ماغادان;ماگادان;मागादान;マガダン;马加丹;마가단; +city::6695754;Kogalym;Gorad Kagalym;KGP;Kogalim;Kogalom;Kogalym;Kogalymas;Kogalîm;Kogalõm;Kogalım;Kogałym;Koqalim;Koqalım;ke jia lei mu;kogarimu;kwgalym;kwghalym;Горад Кагалым;Когалим;Когалым;كوغاليم;کوگالیم;コガリム;科加雷姆; +city::6853140;Lesnoy;Lesnoj;Lesnoy;Лесной; +city::8505053;Vostochnoe Degunino;Vostochnoe Degunino;Восточное Дегунино; +city::201521;Musanze;Musanze;RHG;Ruhengeri;Ruhengeris;Rukhengeri;Рухенгери; +city::202061;Kigali;Gorad Kigali;KGL;Kigale;Kigali;Kigalis;Kigalo;Kigaly;Kinkali;Kiqali;Kígalí;ji jia li;khikali;kigali;kigalli;kigari;kikali;kygaly;kyghaly;Κιγκάλι;Горад Кігалі;Кигали;Кігалі;Կիգալի;קיגאלי;كيغالي;کیگالی;किगाली;ਕਿਗਾਲੀ;கிகாலி;කිගාලි;คิกาลี;ཀི་ག་ལི།;კიგალი;ኪጋሊ;キガリ;吉佳利;키갈리; +city::202217;Gitarama;Gitarama;Gitarame;Nkitarama;gitalama;gitarama;ji ta la ma;Γκιταράμα;Гитарама;Гитараме;გიტარამა;ギタラマ;吉塔拉馬;기타라마; +city::202326;Cyangugu;Cyangugu;Rusizi;Shangugu;Siangugu;Сиангугу; +city::202905;Gisenyi;Colline Gosenyi;Gisehn'i;Gisen'i;Gisenjis;Gisenyi;Gosenyi;Nkiseni;giseni;ji sai ni;jysayny;Γκισένι;Гисеньи;Гисэньи;جيسايني;ギセニ;吉塞尼;기세니; +city::203104;Byumba;Biumba;Bjumba;Byumba;Биумба; +city::203112;Butare;BTQ;Butare;Butaré;Butarė;Бутаре; +city::100425;Yanbu;YNB;Yambo;Yanbu;Yanbu al-Bahar;Yanbu' al Bahr;Yanbu`;Yanbu` al Bahr;Yanbu‘;Yanbu‘ al Baḩr;Yenbo;Yenbo` al Bahar;Yenbo‘ al Bahar;ynbʿ;ينبع; +city::101554;Tarut;Darin Fort;Tarut;Tarut fort;Tārūt;Tārūt fort; +city::101628;Tabuk;Gabouk;TUU;Tabouk;Tabuk;Tabukas;Tabūk;Taebuk;Tebuek;Tebuk;Tebük;Täbuk;ta bu ke;tabukeu;tabukk;tabuku;tbwk;Табук;תבוכ;تبوك;تبوک;تبوک، سعودی عرب;തബൂക്ക്;タブーク;塔布克;타부크; +city::101760;Sultanah;Sultanah;Sulţānah; +city::102318;Sayhat;As Saihat;As Saihāt;As Sayhat;As Sayhāt;Saihat;Sayhat;Sayhāt;Sihat;Sīhāt; +city::102527;Sakakah;AJF;Sakaka;Sakakah;Sakākā;Skaka;Skâka;sai ka kai;sakaka;skaka;skakh;Сакака;سكاكا;سکاکه;ਸਕਾਕਾ;സകാക;サカーカ;塞卡凱;사카카; +city::102651;Sabya;Al-Sabya;As Sabya;Aş Şabyā;Sabie;Sabiya;Sabya;sbya;Şabyā;صبيا; +city::103369;Qal`at Bishah;BHH;Bisha;Qal`at Bishah;Qal‘at Bīshah; +city::103630;Najran;EAM;Najran;Najrān;njran;نجران; +city::104515;Mecca;A Meca;La Meca;La Mecca;La Mecque;Macoraba;Maekkae;Makka;Makkah;Makkah al Mukarramah;Makkah al Mukarraman;Makkah al-Mukarramah;Meca;Mecca;Mecka;Meice;Meka;Mekao;Meke;Mekka;Mekkah;Mekke;Mekko;Mäkkä;mai jia;mak kah;meka;mekka;mkh;mkt;mkt almkrmt;Μέκκα;Мека;Мекка;מכה;مكة;مكة المكرمة;مکه;مکہ;มักกะฮ์;མ་ཁ།;მექა;メッカ;麥加;메카; +city::105072;Khamis Mushait;Chamis Musaitas;Chamis Muschait;Chamis Muszajt;Chamis Mušaitas;KMX;Khamis Mushait;Khamis Mushayt;Khamis-Mushait;Khamis-Mushajt;Khamīs Mushayt;hai mi si mu xie te;hamiseumusyaiteu;hmys mwsyyt;kamicu mucait;khamis musaitt;khmys mshyt;Хамис Мушаит;Хамис-Мушаит;Хамис-Мушайт;Хаміс-Мушайт;חמיס מושייט;خميس مشيط;خمیس مشیط;கமீசு முசைத்;ഖമീസ് മുശൈത്ത്;ハミース・ムシャイト;海米斯穆谢特;하미스무샤이트; +city::105299;Jizan;Djayzan;Djayzān;Djazan;Djāzān;Dzhizan;GIZ;Gazan;Gizan;Gizán;Jaizan;Jazan;Jezan;Jizan;Jāzān;Jīzān;Qizan;Qīzān;jazan;Джизан;جازان; +city::105343;Jeddah;Chidda;Cidda;Ciddae;Cidde;Ciddä;Ciddə;Djedda;Djeddah;Djidda;Dschidda;Dzeda;Dzedda;Dzhida;Dzhidda;Dzhiddae;Dzhiddat;Dzhidde;Dzida;Dzidd;Dzidda;Dzsidda;Dzudda;Dżudda;Džeda;Džedda;Džida;Džidd;Džidda;Gedda;Gidda;Gido;Gorad Dzhyda;Iedda;JED;Jaddah;Jedda;Jeddah;Jida;Jidda;Jiddah;Jidde;Jidá;Judah;Juddah;Tzenta;Yida;Yidda;Zhidda;gdh;jada;jdh;jdt;jeda;jedda;jeddaha;ji da;jida;jidda;jitta;yid dah;Ĝido;Ğidda;Τζέντα;Џеда;Горад Джыда;Джида;Джиддæ;Джидда;Джиддат;Джидде;Жидда;Ջիդդա;גדה;جدة;جده;جدہ;ޖިއްދާ;जेद्दाह;জেদ্দা;ਜੱਦਾ;ஜித்தா;ജിദ്ദ;ญิดดะฮ์;ჯიდა;ジッダ;吉达;吉達;제다;지다; +city::106281;Ha'il;HAS;Ha'il;Hael;Hajel;Hayil;hayl;حائل;Ḥâjel; +city::107304;Buraydah;Buraeydae;Buraida;Buraidah;Burajda;Buraydah;Buräydä;brydt;بريدة; +city::107781;Az Zulfi;Az Zilfi;Az Zilfī;Az Zulfi;ZUL;Zilfi; +city::107797;Dhahran;Az Zahran;Az-Zahran;Az̧ Z̧ahrān;DHA;Dahahron;Dahran;Dahrán;Dakhran;Dhahram;Dhahran;Dharaan;Gorad Dakhran;Ntachran;Zahran;Zhahran;alzhran;dahrani;dalan;daran;zai he lan;zha ha lan;zhran;Νταχράν;Горад Дахран;Дахран;דהראן;الظهران;ظهران;ظہران;ദഹ്റാൻ;დაჰრანი;ダーラン;宰赫兰;扎哈蘭;다란; +city::107968;Ta'if;At Ta'if;At-Ta'if;At-Ta’if;Aţ Ţā’if;TIF;Ta'if;Taef;Taif;Tayif;Taëf;Ta’if;Tāif;altayf;Таиф;الطائف; +city::108410;Riyadh;Al-Riad;Al-Riyad;Ar Riyadh;Ar Riyādh;Ar-Riaad;Ar-Rijad;Ar-Riyad;Ar-Riyod;Ar-Riyāḑ;Ehr-Rijad;Er-Rijad;Er-riyad;Gorad Ehr-Ryjad;RUH;Riaad;Riad;Riade;Riadi;Riado;Riadum;Riant;Rihad;Rijad;Rijada;Rijadas;Rijád;Rijāda;Riyad;Riyadh;Riyaḍ;Ríad;alryad;er-riadi;li ya de;liyadeu;raiyadha;ri'ada;ri'adha;riyad;riyada;riyadh;riyadha;riyado;riyat;ryad;ryyad;Ər-Riyad;Ριάντ;Ар-Рияд;Горад Эр-Рыяд;Ер-Ріяд;Рияд;Ријад;Эр-Рияд;Ալ-Ռիադ;ריאד;الرياض;رىياد;رياض;ریاض;ڕیاز;रियाद;रियाध;রিয়াদ;ৰিয়াধ;ਰਿਆਧ;ରିଆଦ;ரியாத்;ರಿಯಾಧ್;റിയാദ്;ริยาด;རིས་ཡག;ერ-რიადი;ሪያድ;リヤド;利雅得;利雅德;리야드; +city::108435;Ar Rass;Al Russ;Ar Rass;El Russ;Rass;alrs;الرس; +city::108512;Arar;Ara`ar;Arar;Ara‘ar;RAE;عرعر; +city::108648;Qurayyat;Al Qurayyat;Al Qurayyāt;An Nabk;An Nabk Abu Nakhlah;Gurayat;Nabek;Qurayyat;URY;alqryat;القريات; +city::108927;Al Qatif;Al Qatif;Al Qaţīf;Ehl'-Katif;El Katif;Qatif;Эль-Катиф; +city::109101;Al Mubarraz;Al Mubarraz; +city::109131;Al Mithnab;Al Midnab;Al Miznab;Midhnib;Mudhnib;almdhnb;المذنب; +city::109223;Medina;Al Madina;Al Madinah;Al Madinah al Munawwarah;Al Madīnah;Al Madīnah al Munawwarah;Al Medina;El Medina;Gorad Medzina;Lathrippa;MED;Madina;Madinah;Madinah al-Munawwarah;Madinat;Madīna;Maedinae;Mediina;Medin;Medina;Medinae;Medine;Medino;Medyna;Medína;Medîne;Medīna;Mädinä;Médine;Mədinə;Yathrib;almdynt;almdynt almnwrh;almdynt almnwrt;ma di nah;madina;mai de na;matina;mdynh;medina;Μεδίνα;Горад Медзіна;Мадина;Мадинат;Мединæ;Медина;Медине;Медіна;Мәдинә;Մադինա;אל-מדינה;المدينة;المدينة المنورة;المدينة المنوره;مدينه;مدینه;مدینھ;مدینہ منورہ;مەدینە;މަދީނާ;मदिना;मदीना;মদিনা;মেডিনা;ਮਦੀਨਾ;મદીના;மதீனா;మదీనా;മദീന;มะดีนะฮ์;მედინა;መዲና;マディーナ;麥地那;麦地那;메디나; +city::109323;Khobar;Al Khobar;Al Khubar;Al-Chubar;Al-Khobar;Al-Khubar;Ehl'-Khubar;El Huber;El'-Khubar;Khobar;ala-khobara;alkhbr;khbr;kobaleu;mhafzt alkhbr;Ель-Хубар;Эль-Хубар;Әл-Хубар;الخبر;خبر;محافظة الخبر;अल-खोबर;ഖോബാർ;アル・コバール;코바르; +city::109380;Al Khafji;Al Khafji;Al Khafjī;Ra's al Khafji;Ra’s al Khafjī; +city::109435;Al Jubayl;Ainain;Ainan;Al Jubayl;Al'-Dzhubajl';Jubail;Jubail al Bahri;Jubayl;Jubayl `Aynayw;Jubayl al Bahri;Jubayl al Baḩri;Jubayl ‘Aynayw;`Aynayn;aljbyl;Аль-Джубайль;الجبيل;‘Aynayn; +city::109571;Al Hufuf;Al Hufuf;Al Hufūf;HOF;Hofuf;Hofūf;Hufuf;Hufūf; +city::109953;Al Bahah;ABT;Al Bahah;Al Bāḩah;Ehl'-Bakha;albaht;ba ha;baha;Эль-Баха;الباحة;巴哈;바하; +city::110325;Ad Dawadimi;Ad Dawadami;Ad Dawadimi;Ad Dawādamī;Ad Dawādimī;Ad Duwadami;Ad Duwādamī;Al-Dawadimi;Al-Dawādimi;DWD;Duwadami;Duwadimi;Duwādimi; +city::110336;Dammam;Ad Dammam;Ad Dammām;Ad-Dammam;Ad-Damman;DMM;Daemmam;Damam;Damamas;Dammam;Damman;Dammám;Dammām;Dämmam;Ed Dammam;Ntamam;aldmam;da man;dam'mam;dam'mama;damam;damama;damami;dammam;danmamu;dmam;xad dam mam;Νταμάμ;Дамам;Даммам;דמאם;الدمام;دمام;दम्मम;दम्माम;ਦਮਾਮ;డమ్మామ్;ദമാം;อัดดัมมาม;დამამი;ダンマーム;达曼;담맘; +city::110690;Abha;AEbha;AHB;Abh;Abha;Abhá;Abhā;Abkha;Ebha;abaha;abeuha;abha;abuha;ai bo ha;Äbha;Абха;أبها;ابها;ابھا;അബഹ;アブハー;艾卜哈;아브하; +city::410096;Ash Shafa;Ash Shafa;Ash Shafā;Ash-Shafa;Аш-Шафа; +city::8394316;Unaizah;Unaizah;Unajza;Unayza;Unayzah;ou nai zai;unaisa;Унайза;عنيزة;عنیزه;عنیزہ;محافظة عنيزة;ഉനൈസ;歐奈宰; +city::2108502;Honiara;HIR;Honiara;Honiaro;Khoniara;Oniara;ho ni xa ra;honiala;honiara;huo ni ya la;hwnyara;Ονιάρα;Хониара;הוניארה;هونيارا;هونیارا;โฮนีอารา;ሆኒያራ;ホニアラ;霍尼亚拉;霍尼亞拉;호니아라; +city::364103;Wad Medani;DNI;Medani;Wad Madani;Wad Medani;wd mdny;ود مدني; +city::364706;Umm Ruwaba;Um Ruaba;Um Ruwwaba;Um Ruwwāba;Umm Ruwaba;Umm Ruwabah;Umm Ruwābah; +city::365137;Omdurman;Omdoerman;Omdourman;Omdurman;Omdurmana;Omdurmanas;Omdurmán;Omdurmāna;Umm Durman;Umm Durmán;Umm Durmān;am drman;ama daramana;en tu man;omduleuman;omdurman;omdurmani;omudo~uruman;xxm de xr man;Омдурман;Омдурман қаласы;אומדורמאן;أم درمان;ام درمان;ਅਮ ਦਰਮਾਨ;ออมเดอร์มาน;ომდურმანი;オムドゥルマン;恩图曼;옴두르만; +city::366847;Singa;Senga;Singa;Sinja;Sinjah;snjt;سنجة; +city::367308;Shendi;Shandi;Shendi;Shindi;Shindî; +city::367644;Sinnar;Sannar;Sannār;Sennaar;Sennar;Sennār;Sinnar; +city::368277;Rabak;KST;Rabak;Rabaq;rbk;ربك; +city::371760;Kosti;Costi;KST;Kosti;Kusti;Kūstī;rbk;Кусти;ربك; +city::372753;Kassala;Cassala;KSL;Kasala;Kassala;Kassale;Kassalā;Kaszala;Statul Kassala;ka sa la;kasalla;kassara;ksl;ksla;Кассала;Кассале;كسل;کسلا;カッサラ;卡薩拉;카살라; +city::373141;Kadugli;KDX;Kadugli;Kaduqli;Kāduqlī;kadqly;Кадугли;كادقلى;كادقلي; +city::377039;Port Sudan;Bur Sudan;Burt Sudan;Būr Sūdān;Būrt Sūdān;Gorad Port-Sudan;New Sawakin;New Sawâkin;PZU;Port Sodan;Port Sudan;Port Sudanas;Port Szudan;Port Szudán;Port-Soudan;Port-Sudan;Port-sudan;Porto Sudan;Porto Sudao;Porto Sudão;Puerto Sudan;Puerto Sudán;Pòrt Sodan;Shaikh Barghuth;Shaikh Barghūth;Shaykh Burghuth;Shaykh Burghūth;Sheikh Barghuth;Sheikh Barghūth;Sudanhavenurbo;bwr swdan;bwrtswdan;phxrt sudan;poteusudan;potosudan;su dan gang;Горад Порт-Судан;Порт Судан;Порт-Судан;Պորտ Սուդան;פורט סודאן;بور سودان;بورتسودان;پورٹ سوڈان;พอร์ตซูดาน;ポートスーダン;苏丹港;포트수단; +city::378231;Atbara;ATB;Atbara;Atbarah;Atbare;Madent Atbara;`Atbarah;a te ba la;atobara;Атбара;Атбаре;عطبرة;عطبره;‘Aţbarah;アトバラ;阿特巴拉; +city::378699;An Nuhud;An Nahud;An Nahūd;An Nuhud;An Nuhūd;En Nahud;En Nahūd;NUD;Nahad; +city::379003;El Obeid;Al Obayyid;Al Ubayd;Al Ubayyid;Al Ubayyiḑ;Al-Ubayyid;Al-`Obed;Al-‘Obêd;EBD;El Obeid;El Ubeiyad;`Ubed;alaby;Ел Обеид;الأبي;‘Ubêd; +city::379062;Al Qadarif;Al Qadarif;Al Qaḑārif;Al-Kadarif;Al-Qadarif;Al-Qaḑārif;El Gedaref;El-Gadarif;GSU;Gadaref;Gadarif;Gedaref;alqdarf;jia da li fu;Гедареф;אל-קדריף;القضارف;加达里夫; +city::379149;Al Manaqil;Al Manaqil;Al Manāqil;El Managil;El Manaqil;El Manāqil;Manaqil; +city::379252;Khartoum;Al Khartum;Al Kharţūm;Al Khurtum;Al Khurţūm;Cartum;Cartúm;Chartoum;Chartum;Chartumas;Chartúm;Hartum;Hartumo;Jartum;KRT;Kartum;Kartúm;Khartoem;Khartoum;Khartoun;Khartum;Khartun - alkhrtwm;Khartún - الخرطوم;haleutum;harutsumu;hrtwm;karttaum;ke tu mu;khartwm;khrtwm;Ĥartumo;Χαρτούμ;Картум;Хартум;חרטום;خارطوم;خرطوم;கார்த்தௌம்;ཁར་ཏུམ;ካርቱም;ハルツーム;喀土穆;하르툼; +city::379303;Geneina;Aj Jinena;Aj Jinēna;Al Geneina;Al Jeneina;Al Jinena;Al Jinēna;Al Junaynah;EGN;El Geneina;Geneina;aljnynt;الجنينة; +city::379555;El Fasher;Al Fashir;Al Fāshir;Al-Faschir;Al-Fashir;ELF;Ehl'-Fashir;El Fasher;Tendelti;Эль-Фашир; +city::380129;Ad Douiem;Ad Diwem;Ad Douiem;Ad Duwaym;Ad Duwem;Ad Duwēm;Al Dewaym;Dewaim;Dueim;Ed Dueim;Ehd-Duehjm;aldwym;aldwym (mdynt);Эд-Дуэйм;الدويم (مدينة);الدویم; +city::380148;El Daein;ADV;Ad Du'ayn;Ed Daein;El Daein;aldʿyn;الضعين;الضعین; +city::380173;Ed Damer;Ad Damar;Ad Damir;Ad Dāmir;Ad-Damir;Al-Damir;Ed Damer;El Damar;aldamr;الدامر; +city::380174;Ad-Damazin;Ad Damazin;Ad Damāzīn;Ad-Damazin;Damazin;Ed Damazin;RSS;aldmazyn;Ед Дамазин;الدمازين; +city::602150;Umea;Gorad Umea;Oumeo;Owmeo;UME;Ubmi;Uma;Umea;Umeo;Umeå;Uumaja;awmyw;ume'o;ume-o;umeo;umi'o;xu me xo;yu mo ao;Ūmeo;Ούμεο;Горад Умеа;Умео;Ումեո;אומאו;أوميو;امیہ;اومئو;اومیو;ऊमेओ;ਊਮਿਓ;อูเมโอ;უმეო;ウメオ;于默奧;우메오; +city::2663536;Vaexjoe;Gorad Veksheh;VXO;Vaexjoe;Vaxjo;Vekse;Veksh'o;Vekshe;Vekshjo;Vekše;Vekšė;Vexioe;Vexionia;Vexiö;Växjö;begsye;bekusho;faksyw;vekshe;wei ke she;wek chex;wkfw;wqsh;wykyw;Векше;Векшьо;Векшё;Горад Векшэ;וקשה;فاكسيو;وکفو;ویکوہ;ویکیو;เวกเชอ;ვექშე;ベクショー;韦克舍;벡셰; +city::2664454;Vaesteras;Arosia;Gorad Vestehros;Vaesteras;Vesteros;Vesterosa;Vesterosas;Västerås;beseuteloseu;fystyrws;vu~esuterosu;wei si te luo si;wes te ros;wstrws;wystyrws;Βεστερός;Вестерос;Горад Вестэрос;וועסטעראס;וסטרוס;فيستيروس;واسٹیراس;وستروس;ویستیروس;เวสเตโรส;ვესტეროსი;ヴェステロース;韦斯特罗斯;베스테로스; +city::2666199;Uppsala;Gorad Upsala;Oupsala;QYX;Ubsala;Upfala;Uppsal;Uppsala;Uppsalae;Uppsalir;Upsala;Upsalia;Upsalo;Upsāla;apsala;awbsala;awpsala;ubsalla;upcala;upsala;upusara;wu pu sa la;xup sx la;Ουψάλα;Горад Упсала;Убсала;Уппсалæ;Уппсала;Упсала;Упфала;Өпсала;Ուփսալա;אופסאלא;אופסלה;أوبسالا;اوبسالا;اوپسالا;اپسالا;उप्साला;உப்சாலா;อุปซอลา;უფსალა;ᐆᑉᓴᓚ/uupsala;ウプサラ;乌普萨拉;웁살라; +city::2669772;Taby;; +city::2670781;Sundsvall;Gorad Sundsval';SDL;Sountsval;Sundsval;Sundsval FA;Sundsvalis;Sundsvall;Sundsvall';sndsfal;sndswal;song zi wa er;sundsvali;sunseubal;suntsuvu~aru;swndswal;Σούντσβαλ;Горад Сундсваль;Сундсвал;Сундсвалль;Սունդսվալ ՖԱ;סונדסוואל;سندسفال;سندسوال;سوندسوال;სუნდსვალი;スンツヴァル;松茲瓦爾;순스발; +city::2673730;Stockholm;Estocolm;Estocolme;Estocolmo;Estocolmu;Estocòlme;Estokolma;Estokolmo;Gorad Stakgol'm;Holmia;STO;Stjokolna;Stoccholm;Stoccolma;Stockholbma;Stockholm;Stockolm;Stocolm;Stocolma;Stocòlma;Stocólma;Stokcholme;Stokgol'm;Stokgol'm osh;Stokgolm;Stokhol'm;Stokholm;Stokholma;Stokholmas;Stokholmi;Stokholmo;Stokkholm;Stokkholmur;Stokkhólmur;Stokkolma;Stokol'ma;Stokolm;Stuculma;Stuokhuolms;Stócólm;Sztokholm;Sztokhòlm;Tukholma;astkhlm;satakahoma;seutogholleum;si de ge er mo;stak'hom;stakahoma;stokahoma;stwkhwlm;stwqhwlm;stxkholm;sutokkuhorumu;Štokholm;Στοκχόλμη;Горад Стакгольм;Стокhольм;Стокгольм;Стокгольм ош;Стокольма;Стокхолм;Стокҳолм;Стёколна;Ստոկհոլմ;סטוקהולם;שטאקהאלם;استکهلم;ستوكهولم;ستۆکھۆڵم;سٹاکہوم;ܣܛܘܩܗܘܠܡ;स्टकहोम;स्टॉकहोम;स्तकहोम;স্টকহোম;ਸਟਾਕਹੋਮ;ஸ்டாக்ஹோம்;స్టాక్‌హోమ్;ಸ್ಟಾಕ್‍ಹೋಮ್;സ്റ്റോക്ക്‌ഹോം;สตอกโฮล์ม;སི་ཏོག་ཧོ་ལིམ།;စတော့ဟုမ်းမြို့;სტოკჰოლმი;ስቶኮልም;ᔅᑑᒃᓱᓪᒻ/stuukhulm;ストックホルム;斯德哥尔摩;斯德哥爾摩;스톡홀름;𐍃𐍄𐌿𐌺𐌺𐌰𐌷𐌿𐌻𐌼𐍃; +city::2675397;Solna;Sol'na;Сольна; +city::2675408;Sollentuna;; +city::2676176;Soedertaelje;Gorad Sjodehrtehl'e;JSO;S'odertale;S'odertele;S'odertelie;Sedertel'e;Sedertele;Sedertelje;Siodertelje;Sioderteljė;Sjodertel'e;Soedertaelje;Södertälje;Telga australis;XEZ;nan tai li ye;sederuterie;sex de xr telye;soedeleutellie;swdrtalya;swdtlya;Горад Сёдэртэлье;Седертельє;Седертелје;Седертеље;Сьодертале;Сьодертеле;Сьодертелие;Сёдертелье;سودتلیا;سودرتاليا;سودرتالیا;سودرتالیے;เซอเดอร์เตลเย;სედერტელიე;セーデルテリエ;南泰利耶;쇠데르텔리에; +city::2686657;OErebro;Ehrebru;Erebro;Erebru;Erebrū;Erempro;Gorad Ehrehbru;Jorebru;OErebro;OErebro kommuna;OErebro Isvec;ORB;Orebro;Orebrogia;arybrw;awrbrw;awrybrw;e lei bu lu;erebre;ereburu;oelebeulo;xex re bru;Örebro;Örebro kommuna;Örebro İsveç;Ørebro;Έρεμπρο;Горад Эрэбру;Еребро;Еребру;Йоребру;Эребру;ארברו;ערעברו;أوربرو;اریبرو;اوربرو;اوریبرو;เออเรบรู;ერებრე;エレブルー;厄勒布鲁;외레브로; +city::2688368;Norrkoeping;Gorad Norchehping;NRK;Norceping;Norcopia;Norrcheping;Norrchjoping;Norrkoeping;Norrkoping;Norrköping;Norrkøping;Norrshjopin;Norsepinga;Norsh'oping;Norsheping;Norsiopingas;Noršiopingas;Noršēpinga;bei xue ping;noleusyeping;noshopingu;nwrkwpng;nwrshwbyngh;nwrshwpyng;nwrspyng;nxr chex ping;Горад Норчэпінг;Норрчепінг;Норрчёпинг;Норршёпин;Норшепинг;Норшьопинг;Норћепинг;נארשעפינג;נורשפינג;نورشوبينغ;نورشوپینگ;نورکوپنگ;นอร์เชอปิง;ნორჩეპინგი;ノーショーピング;北雪平;노르셰핑; +city::2691459;Moelndal;M'olndal;Melndal;Melndala;Miolndalas;Mjol'ndal';Mjol'ndal'skaja kommuna;Moelndal;Molndal;Mölndal;Mølndal;Mēlndala;Мелндал;Мьолндал;Мёльндаль;Мёльндальская коммуна;ሜልንዳል;ᒧᓪᓐᑕᓪ/Mölndal; +city::2692969;Malmoe;MMA;Mal'mjo;Malm'o;Malme;Malmey;Malmo;Malmoe;Malmogia;Malmö;Malmø;Málmey;ma er mo;marume;Малме;Малмьо;Мальмё;מאלמה;マルメ;马尔莫;马尔默; +city::2693678;Lund;Gorad Lund;Lount;Lund;Lunda;Lundas;Lundur;long de;lund;lunda;lundeu;lundi;lunt;lwnd;rundo;Λουντ;Горад Лунд;Лунд;Лөнд;لنڈ;لوند;لونڈ;লুন্ড;லுண்ட்;ลุนด์;ლუნდი;ルンド;隆德;룬드; +city::2694762;Linkoeping;Gorad Linchehping;LPI;Lin'kopin'nk;Linceping;Lincheping;Linchjoping;Lincopia;Linkoeping;Linkoping;Linköping;Linkøping;Linsepinga;Linsh'oping;Linsheping;Linsiopingas;Linšiopingas;Linšēpinga;lin chex ping;lin xue ping;linsyeping;lnkwmng;lnshwpng;lynshwbyngh;lynshwpyng;rinshepingu;Λινκόπινγκ;Горад Лінчэпінг;Линчёпинг;Линшепинг;Линшьопинг;Линьшөпин;Линћепинг;Лінчепінг;לינשעפינג;لنشوپنگ;لنکومنگ;لينشوبينغ;لینشوپینگ;ลินเชอปิง;ლინჩეპინგი;リンシェーピング;林雪平;린셰핑; +city::2701680;Karlstad;Carolostadium;Gorad Karl'stad;KSD;Karlstad;Karlstadas;Karlstade;Kārlstade;ka er si ta de;kalseutadeu;karlshth;karlsta;karlstad;karusutado;qrlstd;Горад Карльстад;Карлстад;קרלסטד;كارلستاد;کارلستا;کارلسٹاڈ;کارلشته;კარლსტადი;ካርልስታድ;ᑲᕐᓪᔅᑕᑦ;カールスタード;卡尔斯塔德;칼스타드; +city::2702979;Joenkoeping;Encheping;Gorad Jonchehping;Iunecopia;JKG;Jenceping;Jensepinga;Jensheping;Jenšēpinga;Jjonchjoping;Joenkoeping;Joenkoepings kommuna;Jonkoping;Jonsh'oping;Jonsiopingas;Jonšiopingas;Jönköping;Jönköpings kommuna;Jønkøping;jwnkwmng;yan xue ping;yein chex ping;yensyeping;yonshopingu shi;ywnshwbyngh;ywnshwpng;ywnshwpyn;ywnshwpyng;Єнчепінг;Јеншепинг;Јенћепинг;Горад Ёнчэпінг;Йоншьопинг;Йёнчёпинг;Йёньшөпин;جونکومنگ;يونشوبينغ;یونشوپنگ;یونشوپینگ;ܝܘܢܫܘܦܝܢ;เยินเชอปิง;იენჩეპინგი;ヨンショーピング市;延雪平;옌셰핑; +city::2704620;Huddinge;; +city::2706767;Helsingborg;AGH;Chelsin'nkmpornk;Gel'sinborg;Gorad Khel'singbarg;Haelsingborg;Helsingborg;Helsingborgas;Helsingborja;Helsingjaborg;Helsingoburgum;Hälsingborg;Khel'sinborg;Khel'singborg;Khelsingborg;Khelsingbori;he er xin bao;hel si ngb xry;helsingboli;helsingborgi;herushinbori;hlsyngbwrg;hlsynghbwrgh;xi xing bao;Χέλσινγκμποργκ;Гельсінборг;Горад Хельсінгбарг;Хелсингборг;Хелсингбори;Хельсинборг;Хельсингборг;הלסינגבורג;هلسينغبورغ;هلسینگبورگ;ہلسنگبورگ;เฮลซิงบอรย์;ჰელსინგბორგი;ヘルシンボリ;希星堡;赫尔辛堡;헬싱보리; +city::2707953;Haninge;; +city::2708365;Halmstad;Gal'mstad;Gorad Khal'mstad;HAD;Halmostadium;Halmstad;Halmstadas;Hamstad;Khal'mstad;Khalmstad;ha er mu si ta de;halleumseutadeu;halms ta;halmstad;harumusutaddo;Гальмстад;Горад Хальмстад;Халмстад;Хальмстад;האלמסטד;هالمستاد;ہالمستا;ہالمسٹاڈ;ฮาล์มสตา;ჰალმსტადი;ハルムスタッド;哈尔姆斯塔德;할름스타드; +city::2711537;Goeteborg;G'oteborg;GOT;Gautaborg;Geteborg;Geteborga;Geteborgas;Gjoteborg;Goeteborg;Goeteborq;Gorad Gjotehbarg;Goteborg;Goteburg;Gotemburgo;Gotenburg;Gothembourg;Gothenburg;Gothoburgum;Gotnburg;Gottenborg;Göteborg;Göteborq;Gøteborg;Gēteborga;Nketempornk;ge de bao;ghwtnbrgh;gtbwrg;jwtnbrj;kx then beirk;yeteboli;yohateborya;yotebori;ywtbry;Γκέτεμποργκ;Гетеборг;Горад Гётэбарг;Гьотеборг;Гётеборг;גטבורג;געטעבארג;جوتنبرج;غوتنبرغ;گووتھنبرگ;یوتبری;योहतेबोर्य;กอเทนเบิร์ก;გეტებორგი;ዬተቦርይ;ᐃᐅᑕᐳᕆ;ヨーテボリ;哥德堡;예테보리; +city::2712414;Gaevle;Evle;GVX;Gaefle;Gaevle;Gefle;Gevalia;Gorad Eule;Gäfle;Gävle;Jevle;Jevlė;Jēvle;evle;i~evure;yblh;ye fu lei;yebeulle;yefle;yflh;ywlh;Євле;Јевле;Горад Еўле;Евле;Йевле;יבלה;يفله;گاولے;یاولہ;یوله;เยฟเล;ევლე;イェヴレ;耶夫勒;예블레; +city::2715953;Eskilstuna;EKT;Ehskil'stuna;Eshilstruna;Eskil'stuna;Eskilstiuna;Eskilstjuna;Eskilstouna;Eskilstuna;Eskilstūna;Gorad Ehskil'stuna;ai si ji er si di na;asklstwna;askylstwna;eseukilseutuna;eshirusuto~una;Εσκιλστούνα;Горад Эскільстуна;Ескилстюна;Ескільстуна;Ешилструна;Эскильстуна;إسكيلستونا;اسکلستونا;اسکیلستونا;ესკილსტუნა;エシルストゥーナ;埃斯基尔斯蒂纳;에스킬스투나; +city::2720501;Boras;Boerosia;Boras;Boros;Borås;Buros;Burosa;Burosas;Celfsborg;Gorad Buras;boloseu;borosu;bu luo si;bu ros;burosi;bwras;bwrws;Борос;Бурос;Горад Бурас;בורוס;بوراس;بوروس;บูโรส;ბუროსი;ボロース;布羅斯;보로스; +city::1880252;Singapore;SIN;Sin-ka-po;Singapore;Singapore City;Singapour;Singapur;Singapura;Sinkapoure;Sîn-kâ-po;Tumasik;cinkappur;prathes singkhpor;shingaporu;sigapura;sing-gapol;sing-gapoleu;singapura;singkh por;sngapwr;snghafwrt;syngpwr;xin jia po;xing jia po;Σιγκαπούρη;Сингапур;Сінгапур;סינגפור;سنغافورة;سنگاپور;सिंगापुर;सिंगापूर;ਸਿੰਗਾਪੁਰ;சிங்கப்பூர்;ประเทศสิงคโปร์;สิงค์โปร;ປະເທດສງກະໂປ;ປະເທດສິງກະໂປ;စငကာပနငင;စင်ကာပူနိုင်ငံ;សងហបរ;សិង្ហបុរី;シンガポール;新加坡;星架坡;싱가포르;싱가폴; +city::3195506;Maribor;MBX;Marburg an der Drau;Marburgo;Maribor;Maribora;Mariboras;Mariboro;Mestna obcina Maribor;Mestna občina Maribor;ma li bo er;mariboru;Марибор;マリボル;马里博尔; +city::3196359;Ljubljana;Aemona;Gorad Ljubljana;Jubaljana;LJU;Laibach;Laiboch;Lioumpliana;Liubliana;Liublianne;Liublijana;Liuibleana;Liúibleána;Ljubljan;Ljubljana;Ljubljana osh;Ljubljanae;Ljubljano;Lubian-a;Lubiana;Lubiane;Lubiann-a;Lubjana;Lublan;Lublana;Lublaň;Lubliano;Lubljana;Luebiana;Lueblaen;Lueblana;Lyoubyana;Lyublyana;Lübiana;Lüblâna;Lüblän;li'ubali'ana;li'ubliyana;liubliana;liyubliyana;liyupliyana;lu bu er ya na;lub li ya na;lyubeullyana;lywblyana;ryuburyana;Ļubļana;Ľubľana;Łubiana;Λιουμπλιάνα;Љубљана;Горад Любляна;Люблян;Люблянæ;Любляна;Любляна ош;Люблꙗна;Լյուբլյանա;ליובליאנה;ليوبليانا;ليۇبليانا;لیوبلیانا;लियुब्लियाना;লিউব্লিয়ানা;ਲਿਊਬਲਿਆਨਾ;லியுப்லியானா;ลูบลิยานา;ལི་པོ་ཡ་ན།;ლიუბლიანა;ልዩብልያና;リュブリャナ;卢布尔雅那;盧布爾雅那;류블랴나; +city::723819;Presov;Eperjes;POV;Prasiv;Preshov;Presov;Presova;Preszow;Preszów;Prešov;Prešova;Prjashev;prswb;Прешов;Пряшев;Пряшів;פרשוב; +city::723846;Poprad;Deutschendorf;Poprad;TAT;Попрад; +city::724443;Kosice;Cassovia;Gorad Koshycy;KSC;Kaschau;Kassa;Koesice;Koshice;Koshici;Kosice;Kositse;Koszyce;Koşitse;Košice;Košicė;Kösice;ke xi ce;koshitsu~e;kosiche;kositsa;kwshytsh;qwsyzh;Κόσιτσε;Горад Кошыцы;Кошице;Кошіцї;קושיצה;كوشيتسه;کوشیتسه;کوشیسہ;کوشیسے;कोशित्सा;კოშიცე;コシツェ;科希策;코시체; +city::3056508;Zilina;Gorad Zhylina;ILZ;Jilina;Silina;Sillein;Solna;Zhilina;Zhilinae;Zilina;Zsolna;Zylina;jillina;jirina;jylyna;ri li na;zhilina;zhylyna;zylyna;zylynh;Żylina;Žilina;Горад Жыліна;Жилинæ;Жилина;Жиліна;זילינה;جيلينا;زیلینا;ژیلینا;ჟილინა;ジリナ;日利納;질리나; +city::3057124;Trnava;Gorad Trnava;Nagyszombat;Trnava;Trnawa;Turnava;Tyrnau;te er na wa;teuleunaba;texr nawa;torunavu~a;trnafa;trnbh;Горад Трнава;Трнава;Търнава;טרנבה;ترنافا;เตอร์นาวา;トルナヴァ;特爾納瓦;트르나바; +city::3057140;Trencin;Trenchin;Trencin;Trencsen;Trencsén;Trenczyn;Trentschin;Trentsen;Trenčin;Trenčín;Тренчин; +city::3058000;Prievidza;Gorad Previdza;Pr'evidza;Previdza;Prievidza;Privigye;Priеvidzа;Prjevidza;bryfydza;peuliebideuja;pu lie wei zha;purievu~idoza;Горад Превідза;Приевидза;Прьевидза;Прєвідза;Прјевидза;بريفيدزا;پریه‌ویدزا;プリエヴィドザ;普列維扎;프리에비드자; +city::3058531;Nitra;Gorad Nitra;Neutra;Nitra;Njitra;Nyitra;ni te la;niteula;nitora;nytra;nytrh;Њитра;Горад Нітра;Нитра;Нітра;ניטרה;נייטרא;نيترا;نیترا;ნიტრა;ニトラ;尼特拉;니트라; +city::3058780;Martin;Gorad Marcin;Martin;Martin i Slovakia;Martina;Martinas;Mаrtin;Turciansky Svaty Martin;Turocszentmarton;Turz-Sankt Martin;Turz-St. Martin;Turócszentmárton;Turčiansky Svätý Martin;ma ding;maleutin;martn;maruchin;Горад Марцін;Мартин;Мартін;مارتن;マルチン;马丁;마르틴; +city::3060972;Bratislava;An Bhrataslaiv;An Bhratasláiv;BTS;Baratislawa;Bratislav;Bratislava;Bratislava osh;Bratislavae;Bratislavo;Bratislawa;Bratisllava;Bratisława;Bratyslawa;Bratysława;Bratîslava;Gorad Bracislava;Mpratislaba;Posonium;Pozsony;Presburg;Presporok;Prespurk;Pressburg;Preszburg;Preßburg;Prešporok;Prešpurk;beulatiseullaba;bra ti sla wa;bratisalava;bratislabha;bratislava;bratislavha;bratslawa;bratsylava;bratyslafa;bratyslava;bratyslaw;bratyslawa;bu la di si la fa;burachisuravu~a;pirattislava;Μπρατισλάβα;Братислав;Братиславæ;Братислава;Братислава ош;Братіслава;Братїслава;Горад Браціслава;Բրատիսլավա;בראטיסלאווא;ברטיסלאבה;براتسلاوا;براتسیلاڤا;براتىسلاۋا;براتيسلافا;براتیسلاو;براتیسلاوا;براٹیسلاوا;ܒܪܛܝܣܠܐܒܐ;ब्रातिस्लाभा;ब्रातिस्लाव्हा;ব্রাতিস্লাভা;ਬ੍ਰਾਤਿਸਲਾਵਾ;பிராத்திஸ்லாவா;ಬ್ರಾಟಿಸ್ಲಾವಾ;ബ്രാട്ടിസ്‌ലാവ;บราติสลาวา;བ་ར་ཏིསི་ལ་བ།;ბრატისლავა;ብራቲስላቫ;ブラチスラヴァ;布拉迪斯拉发;布拉迪斯拉發;브라티슬라바; +city::3061186;Banska Bystrica;Bans'ka Bistricja;Banska Bistrica;Banska Bistritsa;Banska Bystrica;Banska Bystrzyca;Banska-Bistrica;Banská Bystrica;Bańska Bystrzyca;Besztercebanya;Besztercebánya;Beszterczebanya;Beszterczebánya;Gorad Banska Bistryca;Neosolium;Neusohl;ban si ka-bi si te li cha;ban ska bi stri t sa;banseukabiseuteulicha;banska bystrytsa;Банска Бистрица;Банска-Бистрица;Банська Бистриця;Горад Банска Бістрыца;באנסקה ביסטריצה;بانسكا بيستريتسا;บันสกาบิสตรีตซา;バンスカー・ビストリツァ;班斯卡-比斯特里察;반스카비스트리차; +city::2406407;Makeni;Makeni;Makenis;ma ka ni;makeni;makyny;Μακένι;Макени;ماکینی;マケニ;馬卡尼;마케니; +city::2407656;Koidu;Koidu;Koidu Town;Koldu; +city::2407790;Kenema;KEN;Kenema;Keneme;kai nei ma;kenema;kynyma;Κενέμα;Кенема;Кенеме;کینیما;ケネマ;凯内马;케네마; +city::2409306;Freetown;FNA;Freetown;Frijtaun;Fritaun;Fritauna;Fritaunas;Fritauno;Fritaŭno;Fritonn;Frītauna;Gorad Frytaun;Phritaoun;Saint George;Urbs Libera;farita'una;fri thawn;frita'una;frytawn;fu li dun;furitaun;peulitaun;phrita'una;phritaun;piritavun;zi you shi;Φρίταουν;Горад Фрытаўн;Фрийтаун;Фритаун;Фрітаун;Ֆրիթաուն;פריטאון;فريتاون;فری ٹاؤن;فریتاون;فری‌تاون;फ़्रीटाउन;फ्रीटाउन;ਫ਼ਰੀਟਾਊਨ;பிரீடவுன்;ಫ್ರೀಟೌನ್;ฟรีทาวน์;ཕིརི་ཊའུན།;ფრიტაუნი;ፍሪታውን;フリータウン;弗里敦;自由市;프리타운; +city::2410048;Bo;Bo;KBS;bo;bo cheng;bw;bw syralywn;Μπο;Бо;בו;بو، سیرالیون;ボー;博城;보; +city::2243940;Ziguinchor;ZIG;Zighinkor;Zigincor;Ziginshor;Ziginsor;Ziginsoras;Ziginĉor;Ziginšor;Ziginšoras;Zigiunchor;Ziguinchor;Zinguinhor;ji jin shao er;jiganshoru;jiginsyoleu;zygynchwr;Зигиншор;زیگینچور;ジガンショール;济金绍尔;지긴쇼르; +city::2244322;Touba;Touba;Tub;Tuba;Tuubaa;to~uba;tu ba;tuba;Туба;トゥーバ;圖巴;투바; +city::2244616;Tiebo;; +city::2244799;Thies Nones;; +city::2244991;Tambacounda;TUD;Tambacounda;Tambakunda;tambakunda;tambakwnda;tan ba kun da;tanbakunda;Тамбакунда;تامباکؤندا;タンバクンダ;坦巴昆達;탐바쿤다; +city::2246452;Saint-Louis;Gorad Sen-Lui;Ndar;Saint Louis;Saint-Louis;SanLuis;Sen Lui;Sen Luji;Sen-Lui;Senegalyn Sen-Lui;St-Louis;XLS;saenglu-i;san=rui;sant lwys;sen-lui;senta lu'isa dvipa;senta-lo'isa;sheng lu yi;Горад Сен-Луі;Сен-Луи;Сен-Луї;Сенегалын Сен-Луи;Սեն Լուի;סן-לואי;سانت لويس;سن‌لوئی;سینٹ-لوئیس، سینیگال;सेन्ट लुईस द्वीप;सेन्ट-लोइस;სენ-ლუი;サン=ルイ;圣路易;생루이; +city::2246678;Pikine;Pikin;Pikine;pi jin;pikin;Пикин;ピキン;皮金; +city::2248698;Mbake;Mbacke;Mbacké; +city::2249222;Louga;Louga;Luga; +city::2249782;Kolda;KDA;Kolda;Колда; +city::2250805;Kaolack;KLC;Kaolac;Kaolack;Kaolak; +city::2253354;Dakar;DKR;Dacar;Dacár;Dakaa;Dakar;Dakara;Dakaras;Dakaro;Gorad Dakar;Ndakaaru;Ntakar;da ka er;dakaleu;dakar;dakara;dakaru;dqr;takkar;Ντακάρ;Горад Дакар;Дакар;Դակար;דאקאר;דקר;داكار;داکار;ڈا کار;ڈاکار;डकार;ডাকার;ਡਾਕਾਰ;டக்கார்;ഡാക്കർ;ดาการ์;ཌ་ཀར།;დაკარი;ዳካር;ダカール;達喀爾;다카르; +city::52867;Qoryooley;Coriole;Coriolei;Koriolay;Qoreyole;Qoryolay;Qoryooley; +city::53654;Mogadishu;Gorad Magadysha;MGQ;Magadiscio;Maqdishu;Mogadiisho;Mogadis;Mogadisas;Mogadischu;Mogadiscio;Mogadish;Mogadisho;Mogadishu;Mogadisjoe;Mogadisju;Mogadisjû;Mogadiso;Mogadiss;Mogadisu;Mogadisxo;Mogadiszu;Mogadixo;Mogadiŝo;Mogadişu;Mogadiš;Mogadišas;Mogadišo;Mogadišu;Mogadíscio;Mogadīšo;Mogaidisiu;Mogaidisiú;Monkantisou;Moqadiso;Moqadişo;Moukdicho;Moukntiso;Mugadiccu;Mugadishu;Mugadiss;Muqdisho;Muqdishow;Muqdishu;Mógadisjú;Xamar;makadisu;meagadisu;mo jia di sha;mo jia di xiu;mo kadi chu;mogadisho;mogadishu;mogadisu;mogadisyu;mogarisu;mqdyshw;mqdyshyw;mukticu;mwgadyshw;mwgdysw;mwghadyshw;mۆgadyshۆ;Μογκαντίσου;Μουκντίσο;Горад Магадыша;Могадишо;Могадишу;Могадішо;Մոգադիշո;מאגאדישו;מוגדישו;مقديشو;مقديشيو;موغادیشو;موگادیشو;مۆگادیشۆ;मोगादिशू;मोगादीशू;মোগাদিশু;ਮਕਦੀਸ਼ੂ;ମୋଗାଡ଼ିସୁ;முக்தீசூ;മൊഗാദിഷു;โมกาดิชู;མོ་ག་དི་ཤུ།;მოგადიშო;ሞቃዲሾ;モガディシュ;摩加迪休;摩加迪沙;모가디슈; +city::54225;Marka;Marca;Marka;Merca;Merka;mrkt‎;مركة‎; +city::55671;Kismayo;Chisimaio;Chisimayu;KMU;Kisimayo;Kisimayu;Kismaanyo;Kismaayo;Kismanyo;Kismayo;Kismayu;Kismānyó;kisumayo;キスマヨ; +city::56399;Jamaame;Giamama;Giamame;Giamana;Giamane;Jamaame;Jamame;Jamāme;Margherita; +city::57289;Hargeysa;HGA;Hargeisa;Hargesa;Hargeysa;Khargejse;Харгейсе; +city::58933;Garoowe;GGR;Garoe;Garoowe;Garoueh;Garove;Garoway;Garowe;Geroweh;Gherroue;Gherrowe;Gherròue;Gorad Garoveh;Magiamacarscio;galowe;garoue;garou~e;gharwy;gharwy‎;jia luo wei;ka rowe;Гарове;Гароуэ;Горад Гаровэ;غاروي‎;غاروی;กาโรเว;გაროუე;ガローウェ;加罗韦;가로웨; +city::59611;Gaalkacyo;GLK;Gaal Kacyo;Gaalkacyo;Gaalkayo;Gal'kajo;Galcaio;Galka`yo';Galkacyo;Galkajo;Galkayo;Galka‘yo’;Gallacai;Gallacaio;Rocca Littorio;galkayo;garukaiyo;jia lei ka yue;kal khak yo;Галькайо;جالكعيو;جالکعیو;กาลคักโย;გალკაიო;ガルカイヨ;加勒卡約;갈카요; +city::63795;Burao;BUO;Bur `o;Bur ‘ó;Burao;Burco;Buruo;bu la ao;burao;Бурао;Буръо;برعو;ბურაო;ブラオ;布拉奧; +city::64013;Bosaso;BSA;Bandar Kassim;Bandar Qasim;Bender Qaasin;Bender Qasin;Boosaaso;Boosaso;Bosasas;Bosaso;Bosasso;Bénder Qāsin;bo sa so;bo sa suo;bosaso;bwsasw;Босасо;بوساسو;بوصاصو;โบซาโซ;ბოსასო;ボサソ;博萨索;보사소; +city::64435;Berbera;BBO;Berbera;Berberah;Berbere;Gorad Berbera;bai pei la;beleubela;berbera;berubera;brbrh;brbrt;Бербера;Бербера қаласы;Горад Бербера;ברברה;بربرة;بربرہ;ბერბერა;ベルベラ;柏培拉;베르베라; +city::64460;Beledweyne;BLW;Balad Weyn;Belai-Wen;Beled Weyn;Beleduehjne;Beledueyne;Beledweyne;Belet Uen;Belet Wayne;Belet Wen;Belet Weyne;Bālad Weyn;bei lan de wen;beledueini;belledeuweine;beretou~ein;bld wyn;bldwyn;Беледуэйне;بلد وين;بلدوین;ბელედუეინი;ベレトウェイン;貝蘭德文;벨레드웨이네; +city::64536;Baidoa;BIB;Baidabho;Baidabo;Baidoa;Bajdabo;Bajdoa;Baydhabo;Iscia Baidoa;Isha Baydabo;Isha Baydhaba;Isha Baydhabo;bai duo ya;baidabo;baidoa;bydwa;ri ben yu;Байдабо;Байдоа;بيدوا;بیدوا;ბაიდოა;バイドア;拜多亞;日本語;바이다보; +city::65785;Afgooye;Afgoi;Afgoje;Afgooye;Afgoye;Afgōye;Asgoi;Афгойе; +city::400769;Laascaanood;Laascaanood;Las Anod; +city::3383330;Paramaribo;Gorad Paramaryba;PBM;Paramaribas;Paramaribo;Paramaribô;Paramarimpo;Paramaríbó;ba la ma li bo;baramarybw;pa la ma li bo;pa rama ri bo;palamalibo;paramaribo;paramaripo;paramarybw;prmrybw;Παραμαρίμπο;Горад Парамарыба;Парамарибо;Парамарібо;Պարամարիբո;פאראמאריבא;פרמריבו;باراماريبو;پاراماریبو;पारामरिबो;पारामारिबो;ਪਾਰਾਮਾਰੀਬੋ;પારામારિબો;பரமாரிபோ;ปารามารีโบ;པེ་ར་མེ་རི་བོ།;პარამარიბო;ፓራማሪቦ;パラマリボ;巴拉馬利波;帕拉马里博;파라마리보; +city::363807;Winejok;Wanyjok; +city::363885;Wau;Uau;Vau;Vav;WUU;Wau;Waw;Wāw;vau;wa wu;wau;waw;Вав;Вау;Уау;ואו;واو;واو، جنوبی سوڈان;ვაუ;ワーウ;瓦烏;와우; +city::370737;Malakal;MAK;Malakal;Malakal';Malakalis;Malakál;ma la ka er;mallakal;marakaru;mlkal;Малакал;Малакаль;מלקאל;ملكال;ملکال;მალაკალი;マラカル;馬拉卡爾;말라칼; +city::373303;Juba;Djouba;Dschuba;Dzhuba;Goba;JUB;Juba;Uula;g'wbh;Джуба;ג'ובה; +city::2410763;Sao Tome;Gorad San-Tameh;Salazar;San Tomas;San Tome;San Tomé;San Tomė;San-Tome;Santo Tome;Santo Tomé;Santome;Sao Thome;Sao Tome;Sao Tomee;Sao Tomé;Sao-Tomeo;Soeo Tome;Svaety Tomas;Svätý Tomáš;Sào Thomé;São Tomé;Söo Tomé;TMS;Urbs Sancti Thomae;cavo tome;sa'o tome;sangtume;santome;savea team;saw twmy;saywtwmh;sea tu me;sheng duo mei;Σάο Τομέ;Горад Сан-Тамэ;Сан-Томе;Сао Томе;Սան Տոմե;סאו טומה;ساؤ ٹومے;سائوتومه;ساو تومي;ساو تۆمێ;ساو ٹومے;साओ टोमे;সাও টোমে;ਸਾਓ ਤੋਮੇ;சாவோ தொமே;സാവോ ടോം;เซาตูเม;སའོ་ཊོ་མེ།;სან-ტომე;ሳን ቶሜ;サントメ;圣多美;聖多美;상투메; +city::3582883;Usulutan;Ocelotlan;Ousouloutan;Usulutan;Usulutanas;Usulutane;Usulután;awswlwtan;usullutan;usulutana;wu su lu tan;Ουσουλουτάν;Усулутан;Усулутане;אוסולוטאן;اوسولوتآن;उसुलुतान;烏蘇盧坦;우술루탄; +city::3583096;Soyapango;Sojapangas;Sojapango;Soyapango;Soyopango;Zoyapanco;suo ya pan ge;swyapangw;Сояпанго;Сојапанго;سویاپانگو;索亞潘戈; +city::3583102;Sonsonate;Centzonatl;Ciudad de Sonsonate;Sonsonate;Sonsonatė;snsnath;sonasonate;song suo na te;sonsonate;swnswnth;Σονσονάτε;Сонсонате;סונסונטה;سنسناته;سونسوناتے، ایل سیلواڈور;सोनसोनाते;松索納特;손소나테; +city::3583334;Santa Ana;Cihuatehuahcan;Gorad Santa-Ana;Santa Ana;Santa-Ana;Santaana;sanata-ana;santaana;sheng an na;Σάντα Άνα;Горад Санта-Ана;Санта Ана;Санта-Ана;Սանտա Անա;סנטה אנה;سانتا آنا، ایل سیلواڈور;सानता-आना;サンタ・アナ;聖安娜;산타아나; +city::3583361;San Salvador;Gorad San-Sal'vador;SAL;Salvador;San Salbador;San Salvado;San Salvador;San Salvadoras;San Salvadori;San Salvadò;San Salwador;San-Sal'vador;San-Salvador;San-Salvadoro;Sansalvadora;Urbs Sancti Salvatoris;can calvator;san salvadwr;san salwadwr;san slfadwr;san-salvadori;sana salavadora;sana salvhadora;sana-salvadora;sansalbadoleu;sansalwadxr;sansarubadoru;sheng sa er wa duo;sn slwwdwr;Σαν Σαλβαδόρ;Горад Сан-Сальвадор;Сан Салвадор;Сан-Сальвадор;Սան Սալվադոր;סאן סאלוואדאר;סן סלוודור;سان سالوادور;سان سالۋادور;سان سلفادور;سان سلواڈور;सान साल्व्हाडोर;सान-साल्वाडोर;ਸਾਨ ਸਾਲਵਾਦੋਰ;சான் சல்வடோர்;ซันซัลวาดอร์;སན་སལ་ཝ་ཌོར།;სან-სალვადორი;ሳን ሳልቫዶር;サンサルバドル;聖薩爾瓦多;산살바도르; +city::3583446;San Miguel;San Miguel;San Miquel; +city::3583480;San Marcos;San Marcos; +city::3584257;Santa Tecla;Ciudad de Nueva San Salvador;La Ciudad de Nueva San Salvador;Nuehva-San-Sal'vador;Nueva San Salvador;Santa Tecla;Santa Tekla;Santa-Tekla;santatekeulla;sheng te ke la;Σάντα Τέκλα;Нуэва-Сан-Сальвадор;Санта Текла;Санта-Текла;سانتا تکلا، ایل سیلواڈور;聖特克拉;산타테클라; +city::3584399;Mejicanos;Mejicanos;Mekhikanos;Mexicanos;Мехиканос; +city::3586814;Delgado;Del'gado;Delgado;Villa Delcado;Villa Delgado;Дельгадо; +city::3587345;Apopa;Apopa; +city::163345;Tartouss;Antaradus;Tartous;Tartouss;Tartoûs;Tartus;mhafzt trtws;trtws;Ţarţūs;Тартус;טרטוס;طرطوس;محافظة طرطوس; +city::163808;Tadmur;PMS;Pal'mira;Palmira;Palmuera;Palmyra;Palmyre;Palmüra;Palmýra;Tadmor;Tadmur;Tedmor;ba er mi la;parumira yi ji;tdmr;tdmwr;Палмира;Пальмира;תדמור;تدمر;パルミラ遺跡;巴尔米拉; +city::164947;As Salamiyah;As Salamiyah;As Salamīyah;Salamias;Salamiyah;Salamiyeh;Salamīyah;Selemie;Selemiya;Selemiye;Selemié;Selemīya;Sélémîyé;alslmyt;slmyt;السلمية;سلمية; +city::167357;Manbij;Bambyce;Giyerapol;Hierapolis;Manbej;Manbi;Manbidsch;Manbidz;Manbidzh;Manbidż;Manbidž;Manbij;Manbiy;Membidj;Membij;Memdidge;Menbidj;Menbij;Mennbidj;Minbej;Muenbic;Münbiç;man bi ji;manbiji;mnbj;Манбидж;Манбідж;منبج;ማንቢጅ;マンビジ;曼比季; +city::169304;Jablah;Djeble;Djéblé;Jablah;Jableh;Jebele;Jebeleh;Jebelli;Jeble;jblt;جبلة; +city::169389;Idlib;Idleb;Idlib;Idlibas;Idlip;adlb;idaliba;ideullibeu;idoribu;mhafzt adlb;yi de li bo;İdlib;İdlip;Ідліб;Идлиб;Իդլիբ;אדלב;إدلب;ادلب;محافظة إدلب;इदलिब;イドリブ;伊德利卜;이들리브; +city::169577;Homs;Choms;Emesa;Gorad Khoms;Hims;Himsa;Homs;Homsas;Homsz;Houmousse;Hums;Humus;Kh'oms;KhIums;Khoms;QHS;h xms;himasa;hms;homsa;homseu;homsi;homusu;huo mu si;hwms;mdynt hms;Χομς;Горад Хомс;ХІумс;Хомс;Хьомс;Հոմս;חומס;حمص;مدينة حمص;ܚܡܨ;होम्स;ਹਿਮਸ;ฮอมส์;ჰომსი;Ḩimş;Ἔμεσα;ホムス;霍姆斯;홈스; +city::170017;Hamah;Epiphaneia;Epiphania;Hama;Hamah;Hamao;Hamath;Khama;hmah;hmat;Хама;حماة;حماه;Ḥamāh;Ḩamāh; +city::170063;Aleppo;ALP;Alep;Alepas;Alepo;Aleppe;Aleppo;Aleppu;Aleppó;Alèp;Berea;Beroea;Chalepi;Gorad Khaleb;Halab;Haleb;Haleba;Halep;Heleb;Hələb;Khaleb;Khaleb khot;Khalepion;Madinat Halab;Madīnat Ḩalab;Xalab;a lei po;aleppea;aleppo;allepo;areppo;halaba;hlb;xa lep po;Χαλέπι;Алеп;Алеппо;Горад Халеб;Халеб;Халеб хот;ХӀалаб;Хәлеб;Հալեպ;חאלב;حلب;ܚܠܒ;अलेप्पो;हलब;আলেপ্পো;ਹਲਬ;அலெப்போ;അലെപ്പോ;อะเลปโป;ალეპო;Ḥaleb;Ḩalab;アレッポ;阿勒颇;알레포; +city::170592;Douma;Douma;Duma;Dūmā;dwma;Дума;دوما; +city::170654;Damascus;Al-Sham;Al-Shām;An Damaisc;Cham;DAM;Damas;Damasc;Damasch;Damasco;Damascu;Damascus;Damasek;Damashq;Damasiko;Damask;Damask";Damaska;Damaskas;Damasko;Damaskos;Damaskosy;Damasku;Damaskus;Damaszek;Damaszkusz;Damašek;Dameski;Dammeseq;Damsyik;Dimaejk;Dimaesq;Dimashk;Dimashk al-Sham;Dimashk al-Shām;Dimashku;Dimashq;Dimeshki esh Sham;Dimishiq;Dimishku;Dimishq;Dimäjk;Dimäşq;Domas;Domás;Dàmáskù;Dəməşq;Esh Sham;Esh Shām;Gorad Damask;Kamakeko;Ndamako;Ndamáko;Sam;d mshq;da ma shi ge;damasaka;damasakasa;damaseukuseu;damaskas;damaskasa;damasukasu;dameska;damiska;dimisqu;dmshq;dmsq;drmswq;timisku;Şam;Δαμασκός;Горад Дамаск;Дамаск;Дамаскус;Дамаскъ;Димашкъ;Димишкъ;Димишқ;Դամասկոս;דמשק;د مشق;دمشق;دیمەشق;دەمەشىق;ܕܪܡܣܘܩ;ދިމިޝްޤު;दमास्कस;दमिश्क;দামেস্ক;ਦਮਸ਼ਕ;ଡାମାସକସ;திமிஷ்கு;ಡಮಾಸ್ಕಸ್;ദമാസ്കസ്;ดามัสกัส;དྷ་མ་སི་ཁོ་སི།;ဒမားစကပ်မြို့;დამასკი;ደማስቆ;ダマスカス;大馬士革;大马士革;다마스쿠스;𐌳𐌰𐌼𐌰𐍃𐌺𐍉/Damasko; +city::170794;Deir ez-Zor;Azaura;DEZ;Dair az-Zaur;Dair az-Zaŭr;Dajr az-Zaur;Dajr ez-Zaur;Dajr-ehz-Zaur;Dayr al-Zawr;Dayr al-Zor;Dayr az Zawr;Dayr az Zur;Dayr az Zūr;Dayr az-Zawr;Dayr uz-Zur;Deir Azzor;Deir Zzor;Deir al-Zor;Deir al-Zour;Deir el-Zor;Deir ez Zoar;Deir ez Zor;Deir ez Zoras;Deir ez-Zor;Dejr ez-Zor;Dejr-ehz-Zor;Dejr-ez-Zor;Der Ezzor;Deyr-el-Zor;Deyrizor;Deïr ez Zor;Nteir al-Zor;Ter Zor Der Zor Ter Zor;dai er zu er;deileuejeujoleu;deileuejoleu;deir-el-zori;derizoru;dyr alzwr;dyralzwr;dyrʾ zʿwrtʾ;Ντέιρ αλ-Ζορ;Дайр-эз-Заур;Дейр ез-Зор;Дейр-ез-Зор;Дейр-эз-Зор;Դեյր-էլ-Զոր;Տէր Զօր Դեր Զոր Ter Zor;דיר א-זור;دير الزور;دیر الزور;دیرالزور;ܕܝܪܐ ܙܥܘܪܬܐ;დეირ-ელ-ზორი;デリゾール;代尔祖尔;데이르에조르;데이르에즈조르; +city::170892;Darayya;Daraiya;Daraje;Daraya;Daraye;Darayya;Darayyah;Dareiya;Deraya;Dâraiya;Dārayyah;Dārayyā;Dārayā;Dāreiya;darya;Дарайе;داريّا; +city::170905;Dar'a;Adraa;Dar`a;Dar‘ā;Der`a;Deraa;Deraâ;Derua;Der‘ā;Деръа;درعا; +city::172082;I`zaz;A`zaz;Aazaz;Aazâz;Azaz;A‘zāz;E'zaz;Ezzaz;I`zaz;Izaz;I‘zāz;aʿzaz;Аазаз;Азаз;أعزاز;إعزاز; +city::172349;At Tall;Al-Tal;At Tall;Ett Tell;Tal;Tall;Tell;al-Tell;altl;التل; +city::172374;Ath Thawrah;Al Tabaqah;Al-Tabbaqah;Al-Thawra;At Tabaqah;At Tabqah;Ath Thawrah;Aţ Ţabaqah;Aţ Ţabqah;Madinat ath Thawrah;Madīnat ath Thawrah;Medinat Al Thawra;Revolution City;Tabaqah;Tabqa;Thawrah;altbqt;althwrt;thwrt;Ţabaqah;الثورة;الطبقة;ثورة; +city::172408;As Suwayda';Al-Sweida;As Suwayda';As Suwaydah;As Suwaydā’;Dionysia;Ehs-Suvejda;Es Suweida;Es Suweidiya;Es Suweidīya;Soueida;Soueïda;Suwaydah;Sweida;Эс-Сувейда;السويداء; +city::172503;As Safirah;Al-Safira;As Safirah;As Safīrah;Safir;Safira;Safirah;Safīrah;Sfaireh;Sfira;Sfire;Sfiré;Sfīra;alsfyrt;sfyrt;Şafīr;السفيرة;سفيرة; +city::172946;Ar Rastan;Al-Rastan;Ar Rastan;Arethousa;Arethus;El Rastane;Er Rastan;Rastan;Rastane;Rastâne;alrstn;الرستن; +city::172955;Ar Raqqah;Al-Rakka;Ar Raqqah;Ar-Rakka;Ar-Raqqah;Nicephorium;Rakka;Raqqa;Raqqah;alrqt;Ар-Ракка;الرقة; +city::173480;Al Mayadin;Al Mayadin;Al Mayādīn;Al-Mayadeen;Audattha;Mayadin;Mayadine;Mayādīn;Meyadin;Meyadine;Meyedine;Meyādīn;almyadyn;myadyn;الميادين;ميادين; +city::173576;Latakia;Al Ladhiqiyah;Al Lādhiqīyah;Al-Laziqiyah;El Ladhaqiye;El Ladhiqiya;El Lādhaqiyé;El Lādhiqīya;Gorad Latakija;LTK;Ladhiqiye;Ladikija;Ladikis;Ladikiya;Laodicea;Laodicea ad Mare;Laodicee;Laodicée;Laodikeia;Latakia;Latakieh;Latakija;Latakija shaary;Latakio;Latakiya;Lataqiae;Lataqiä;Lataquia;Lattakeia;Lattakia;Lattaquie;Lattaquié;Latʻakia;Lazikija;Lazkiye;Lázikíja;Lādikīja;alladhqyt;la ta ji ya;ladhqyh;ladhqyt;ladhqyہ;latakia;latakiya;ltqyh;ratakia;Əl-Laziqiyyə;Λαττάκεια;Горад Латакія;Латакия;Латакия шаары;Латакија;Латакія;Լաթակիա;לטקיה;اللاذقية;لاذقية;لاذقیه;لاذقیہ;लताकिया;ლათაკია;ラタキア;拉塔基亚;라타키아; +city::173811;Al Hasakah;Al Hasakah;Al Ḩasakah;Al-Hasakeh;El Haseke;Hasakeh;Hasijih;Hassetche;Hasskih;alhskt;الحسكة;Ḩasijih;Ḩasskih; +city::174018;Al Bab;Al Bab;Al Balo;Al Bāb;Al Bālo;Bab;Bâb;El Bab;El Bāb;albab;الباب; +city::174448;Albu Kamal;Abou Kemal;Abu Kamal;Abu Kemal;Abu Kemāl;Abu-Kamal';Abū Kamāl;Al-Bukamal;Al-bu-Kamal;Albu Kamal;Bukmal;Hindane;Hindané;abw kmal;albw kmal;Ālbū Kamāl;Абу-Камаль;أبو كمال;البو كمال; +city::934985;Mbabane;Embabane;Gorad Mbabaneh;Mabane;Mbaban;Mbabane;Mbabano;Mbabanė;Mbabàn;Mpampane;QMN;ababane;ambabane;ambabany;eumbabane;impapan;mbaban;mbabane;mbabanh;mbabyn;mbbnh;mo ba ben;mubabane;xam ba bane;Μπαμπάνε;Горад Мбабанэ;Мбабане;Մբաբանե;מבאבאנע;מבבנה;امبابانی;مبابان;مبابانه;مبابانێ;مبابین;अंबाबाने;ਅੰਬਾਬਾਨੇ;இம்பபான்;อัมบาบาเน;མ་པ་པན།;მბაბანე;ምባባኔ;ムババーネ;墨巴本;음바바네; +city::934995;Manzini;Bremersdorp;MTS;Maneini;Manzini;Manzinis;Manêini;man qi ni;manjini;mnzyny;Μανζίνι;Манзини;Манзіні;מנזיני;マンジニ;曼齐尼;만지니; +city::245785;Abeche;AEH;Abacher;Abeche;Abecher;Abese;Abeshe;Abeşe;Abešė;Abécher;Abéché;Gorad Abesheh;a bei xie;abeshe;abesye;abshy;Абеше;Горад Абешэ;أبشي;ابشی;アベシェ;阿贝歇;아베셰; +city::2425791;Sarh;Archambault;Fort-Archambault;SRH;Sagh;Sahr;Sarh;Sarkh;Shar;Сарх; +city::2427123;N'Djamena;Fort-Lamy;Lamy;N'Djamena;NDJ;Ndjamena;Ndjemena;Ndzamena;Ndzhamena;Ndżamena;Ndžamena;Njameno;Nĵameno;N’Djamena;N’Dj·amèna;Tzamena;Yamena;anjmyna;en jia mei na;eunjamena;ng'mnh;njamena;Τζαμένα;Нджамена;נג'מנה;أنجمينا;ንጃሜና;ンジャメナ;恩賈梅納;은자메나; +city::2427455;Moundou;Gorad Mundu;MQQ;Mondou;Mondu;Moundou;Moundu;Mundu;meng du;mun du;mundo~u;mundu;mwndw;Горад Мунду;Мунду;مؤندؤ;มูนดู;ムンドゥ;蒙杜;문두; +city::2363534;Tsevie;Tsevie;Tsevye;Tsévié;Tsévyé;Tzevie; +city::2364104;Sokode;Sokode;Sokodé;Sokodė;Sokonte;sokode;suo ke de;Σοκοντέ;Сокоде;سوکودے;ソコデ;索科德;소코데; +city::2365267;Lome;Gorad Lameh;LFW;Lome;Lomee;Lomeo;Lomé;Lomė;lome;luo mei;lwm;lwmh;lwmy;lwmyh;rome;Λομέ;Горад Ламэ;Ломе;Լոմե;לאמע;לומה;لوم;لومه;لومي;لوميه;لومې;لومے;لۆمێ;लोमे;ਲੋਮੇ;லோமே;โลเม;ལཱོ་མེ།;ლომე;ሎሜ;ロメ;洛美;로메; +city::2365560;Kpalime;Agome-Palime;Agomé-Palimé;Kpalime;Kpalimé;Palime;Palimé;pa li mei;帕利梅; +city::2366152;Kara;Kara;Lama;Lama-Kara;Кара; +city::2367568;Bassar;Basar;Bassar;Bassari;ba sa;Басар;巴萨; +city::2367886;Atakpame;Atakpame;Atakpamé;Atakpamė;a ta pa mei;atakeupame;atakupame;Ατακπαμέ;Атакпаме;اتاکپامے;アタクパメ;阿塔帕梅;아타크파메; +city::1117652;Ban Talat Yai;Talat Yai;Talat-Jai;Талат-Яи; +city::1150007;Trang;Amphoe Muang Trang;Changwat Trang;TST;Trang;trang;Транг;ตรัง; +city::1150275;Tha Maka;Amphoe Tha Maka;Tha Maka; +city::1150515;Surat Thani;Amphoe Ban Don;Amphoe Muang Surat Thani;Ban Dohn;Ban Don;Ban Makham Tia;Ban Makham Tir;Bandaun;Changwat Surat;Changwat Surat Thani;Makham Tia;Mueang Surat Thani;Suras;Surashtradhani;Surat Thani;Surathanis;Surattkhani;Szuratthani;URT;su le ta ni;sulastani;suratotani;thesbal nkhr surasʹdrthani;Сураттхани;סוראט טהאני;سورات تھانی;سورت تھانی;สุราษฎร์ธานี;เทศบาลนครสุราษฎร์ธานี;སུ་ར་ཊི་ཐ་ནི།;スラートターニー;素叻他尼;수랏타니; +city::1150954;Ratchaburi;Amphoe Muang Rat Buri;Changwat Rat Buri;Mondhol Rajburi;Muang Rajburi;Muang Ratburi;Mueang Ratchaburi;Rajburi;Rat Buri;Ratchaburi;rachburi;Ратчабури;ราชบุรี; +city::1151254;Phuket;Amphoe Muang Phuket;Bhuket;Changwat Phuket;HKT;Phuket;Phuketas;Pkhuket;Pxuket;Tongka;Tongkah;bu ji shi;fwkyt;phuket;pu ji shi;pukes;pukkes;pukkit;pwqt;tesaban'nakon・puketto;thesbal nkhr phuket;Пхукет;פוקט;فوكيت;پھوکیت;புக்கிட்;ภูเก็ต;เทศบาลนครภูเก็ต;པུ་ཁེཊ་གྲོང་ཁྱེར​།;テーサバーンナコーン・プーケット;布吉市;普吉市;푸껫;푸켓; +city::1151933;Nakhon Si Thammarat;Amphoe Muang Nakhon Si Thammarat;Changwat Nakhon Si Thammarat;Lakawn;Lakon;Ligor;Muang Nagorn Sridharmaraj;Muang Nakawn Sri Tamarat;Mueang Nakhon Si Thammarat;NST;Nagara Sridharmaraj;Nagor Sridhamaraj;Nagorn Sridharmrat;Nagorri Sridharmrat;Nakawn Sitamarat;Nakawn Sritamarat;Nakhaun Si Thammarat;Nakhon Si Tammarat;Nakhon Si Thammarat;Nakhon Si Thammarht;Nakhon Sritamarai;Nakhon Srithamarat;Nakhon Srithamrat;Nakhon Szi Thammarat;Nakhonsithamrat;Nakkhonsitkhammarat;Nakon;Nakon Si Tham Rat;Nakon Sitamarat;Nakon Sri Tammarat;Nakon Sritamaraj;Nakon Sritamarat;Nakorn Si Thamarat;Nakorn Sridamaraja;na kong shi tan ma le;nakonshitanmarato;nakonsitammalas;nkhrsrithrrmrach;thesbal nkhr nkhrsrithrrmrach;Накхонситхаммарат;נאקון סי טמרט;ناکھون سی تھامارات;نکھون سی تھاماراٹ;นครศรีธรรมราช;เทศบาลนครนครศรีธรรมราช;ན་ཁཱོན་སི་ཐམ་མ་ར་ཊི།;ナコーンシータンマラート;那空是贪玛叻;나콘시탐마랏; +city::1152473;Lampang;Amphoe Muang Lampang;Amphoe Mueang Lampang;Changwat Lampang;Changwat Muang Lampang;Changwat Muang Nagorn Lambang;LPT;Lakhon;Lakhon Lampang;Lampang;Lampangas;Muang Lakhon Lampang;Muang Lampang;Muang Nagorn Lambang;Muang Nakon Lampang;Mueang Lampang;Nakawn;Nakawn Lampang;Nakhon Lampang;Nakon Lampang;Nakorn Lampang;lampang;lamppang;lapang;lympyng;thesbal nkhr lapang;Лампанг;لامپانگ;لیمپینگ;ลำปาง;เทศบาลนครลำปาง;ལམ་པང་།;람빵; +city::1153081;Kanchanaburi;Changwat Kanchanaburi;Kanburi;Kanchana;Kanchanaburi;Kancsanaburi;Kanpuri;Moeang Kanchana Buri;Muang Kanchana Buri;kancanapuri;kanchanaburi;kanchanabwry;kaycnburi;kkanjjanabuli;qnznbwry;thesbal meuxng kaycnburi;Канчанабури;קנצנבורי;کانچانابوری;காஞ்சனபுரி;กาญจนบุรี;เทศบาลเมืองกาญจนบุรี;ཀཱན་ཅ་ན་བུ་རི།;カーンチャナブリー;깐짜나부리; +city::1153090;Kamphaeng Phet;Amphoe Muang Kamphaeng Phet;Amphoe Mueang Kamphaeng Phet;Changwat Kamphaeng Phet;Changwat Muang Kam Bheng Bhej;Gamphaeng Phet;Gampheang Phet;Kam Baeng Bejr;Kambheng Bhej;Kamphaeng Phet;Meuangkamphayng;Muang Kam Bheng Bhej;Muang Kam Phaeng Phet;Muang Kum Pang Pet;กำแพงเพชร; +city::1153269;Hua Hin;Amphoe Hua Hin;Ban Hua Hin;HHQ;Hau Hin;Hua Hin;King Amphoe Ban Hua Hin;King Amphoe Hua Hin;fuwahin;hawhin-pranburi;xaphex hawhin;หัวหิน-ปราณบุรี;อำเภอหัวหิน;フワヒン; +city::1153557;Chumphon;Amphoe Muang Chumphon;CJM;Champawn;Changwat Chumphon;Chumphaun;Chumphon;Chumpkhon;Chumpon;Chumporn;Csumphon;Cumphonas;Jumbhorn;Jumbor;Muang Champawn;Muang Choum Pon;Muang Chum Pon;Muang Chumporn;Muang Jum Bhorn;Mueang Chumphon;chumphr;chumpon;thesbal meuxng chumphr;Čumphonas;Чумпхон;چمپھون;ชุมพร;เทศบาลเมืองชุมพร;ཅུམ་ཕཱོན།;춤폰; +city::1153669;Chiang Rai;Amphoe Chiang Rai;Amphoe Muang Chiang Rai;CEI;Chang Rai;Changwat Chiang Rai;Changwat Muang Chiang Rai;Changwat Muang Jieng Rai;Chiang Rai;Chiangraj;Chiengrai;Ciangrajus;Cziang Raj;Jieng Rai;Muang Chiang Rai;Muang Chieng Rai;Muang Jieng Rai;Mueang Chiang Rai;Propinsi Chiang Rai;Thanh pho Chiang Rai;Thành phố Chiang Rai;Xieng Rai;cheiyngray;chianglai;chienrai;chyang rayy;qing lai;thesbal nkhr cheiyngray;zyʼng rʼy;Čiangrajus;Чианграй;ציאנג ראי;چیانگ رائی;เชียงราย;เทศบาลนครเชียงราย;ཆེང་རཱེ།;チエンラーイ;清萊;치앙라이; +city::1153671;Chiang Mai;Amphoe Muang Chiang Mai;CNX;Changwat Chiang Mai;Chiang Mai;Chiang-Maj;Chiangmai;Chiengmai;Cziang Maj;Kiangmai;Muang Chieng Mai;Muang Jieng Hmai;Mueang Chiang Mai;Xieng Mai;Zimme;Zimmé;chiangmai;chienmai;qing mai;Чианг-Май;צ'אנג מאי;צ'יאנג מאי;เชียงใหม่;แม่ริม เชียงใหม่;チエンマイ;清迈;清邁;치앙마이; +city::1155139;Ban Pong;Amphoe Ban Pong;Ban Pong;Pan-pong;banpong;Пан-понг;บ้านโป่ง; +city::1601579;Ban Mai;Ban Mai;บ้านใหม่; +city::1604870;Yala;Amphoe Mueang Yala;Amphoe Yala;Ban Yala;Changwat Yala;Jala;Muang Yala;Mueang Yala;Yala;yala;Яла;ยะลา; +city::1605215;Uttaradit;Amphoe Mueang Uttaradit;Changwat Muang Utaradith;Changwat Uttaradit;Muang Utaradit;Muang Utaradith;Outaradit;UTR;Utaradit;Utaraditas;Utaraditra;Uttaradit;Uttradit;cheng yi;thesbal meuxng xutrditth;uttaladis;xutrditth;Уттарадит;اٹاراڈٹ;อุตรดิตถ์;เทศบาลเมืองอุตรดิตถ์;程逸;우따라딧; +city::1605239;Udon Thani;Ban Dua Makeng;Ban Ma Keng;Ban Mak Khaeng;Bar Deua Ma Khong;Changwat Udaunthani;Changwat Udon Thani;Mak Khaeng;Mueang Udon Thani;UTH;Udaun Thani;Udon;Udon Tani;Udon Thani;Udonthani;Udonthanis;Udontkhani;Udorn;Udorndhani;Udornthani;thesbal nkhr xudrthani;udontani;wdwn tany;wu long ta ni;xudrthani;Удон Тани;Удонтхани;אודון תאני;اودون تھانی;ودون تاني;อุดรธานี;เทศบาลนครอุดรธานี;ཨུ་ཌོན་ཐ་ནི།;テーサバーンナコーン・ウドーンターニー;乌隆他尼;우돈타니; +city::1605245;Ubon Ratchathani;Changwat Muang Ubon;Changwat Ubon Ratchathani;Muang Ubol;Muang Ubon;Muang Ubon Ratcha-Thani;Muang Ubun;Mueang Ubon Ratchathani;Oubon;UBP;Ubol;Ubol Rachatani;Ubol Rajadhani;Ubolrajdhani;Ubon;Ubon Rachatani;Ubon Rachpani;Ubon Ratchathani;Ubon Ratczathani;Ubonrajathani;Ubonrajdhani;Ubonrajthani;Ubonratcathanis;Ubonratčathanis;awbwn ratshathany;tesaban'nakon・ubonrachatani;thesbal nkhr xublrachthani;ubonlaschatani;wu wen le cha ta ni;xublrachthani;ywbwn ratchatany;Убон Рачатані;أوبون راتشاثاني;ابون راتچاتھانی;اوبون راٹچاتھانی;یوبون راتچاتانی;อุบลราชธานี;เทศบาลนครอุบลราชธานี;ཨུ་བཱོན་ར་ཊི་ཅ་ཐ་ནི།;テーサバーンナコーン・ウボンラーチャターニー;乌汶叻差他尼;우본랏차타니; +city::1606033;Suphan Buri;Amphoe Muang Suphan Buri;Ban Tha Phi Liang;Changwat Suphan Buri;Muang Subharn;Muang Supan;Muang Suphan;Mueang Suphan Buri;Subhan Buri;Subharn;Sufan Buri;Supan;Supanburi;Supham Buri;Suphan Buri;Thaphi Liang;suphrrnburi;Суфан Бури;สุพรรณบุรี; +city::1606147;Songkhla;Amphoe Muang Songkhla;Changwat Songkhla;Monthon Nakhon Si Thamarat;Monthon Nakhon Si Thammarat;Muang Sawng Kla;Muang Songkla;SGZ;Sawng Kla;Senggora;Singgora;Singora;Singorra;Songkhla;Songkkhla;Songkla;Sung Kla;Thanh pho Songkhla;Thành phố Songkhla;sngkhla;song ka;song ka shi;songkeulla;swnjkhla;thesbal nkhr sngkhla;Сонгкхла;سونجخلا;سونگکھلا;สงขลา;เทศบาลนครสงขลา;སོང་ཁ་ལ།;宋卡;宋卡市;송클라; +city::1606250;Si Racha;Amphoe Si Racha;Amphu Sri Maha Raja;Ban Si Racha;Ban Sriracha;Si Racha;Sri Maha Raja;Sri Mahā Rājā;Sriracha;Srirachi;sriracha;ศรีราชา; +city::1606386;Sattahip;Amphoe Sattahip;Ban Sata Hib;Ban Satahip;Ban Sattahip;King Amphoe Sattahip;Satahib;Sattaheeb;Sattaheep;Sattahib;Sattahiep;Sattahip;sathib;สัตหีบ; +city::1606418;Saraburi;Ban Pak Phrieo;Changwat Sara Buri;Muang Sara Buri;Pak Phrieu;Pak Phrio;Pak Preo;Sita;Sraburi; +city::1606588;Samut Sakhon;Ban Maha Chai;Ban Tachin;Changwat Samut Sakhon;Dha-chin;Mahachai;Muang Samudh Sagorn;Muang Samut Sakawn;Muang Samut Sakhon;Mueang Sakhon Buri;Mueang Samut Sakhon;Mueang Tha Chin;Samudh Sagorn;Samut Sakhon;Smutsakhon;Taachin;Tachin;Tanchin;Tha Chin;smuthrsakhr;สมุทรสาคร; +city::1606590;Samut Prakan;Ban Pak Nam;Paakunamu;Pakham;Paknam;Samudh Prakarn;Samut;Samut Prakan;Samutprakan;Samutpraken;Smutprakan;samuttopurakan;smuthrprakar;Самутпракан;สมุทรปราการ;サムットプラーカーン; +city::1606790;Sakon Nakhon;Amphoe Muang Sakhon Nakhon;Ban That Choeng Chum;Changwat Muang Sakhon Nakhon;Changwat Sakon Nakhon;Muang Sakol Nakorn;Muang Sakon Lakon;Muang Sakon Nakawn;Muang Sakon Nakon;Mueang Sakon Nakhon;SNO;Sakhon Nakhon;Sakol;Sakol Nagorn;Sakol Nakorn;Sakon Nakawn;Sakon Nakhaun;Sakon Nakhon;Sakon Nakorn;Skol Nakon;Thatchoengchum;sklnkhr;สกลนคร; +city::1607017;Rayong;Rajong;Rayaung;Rayohng;Rayong;layong;luo yong shi;raywng;rayxng;thesbal nkhr rayxng;Районг;رایونگ;ระยอง;เทศบาลนครระยอง;རེ་ཡོང་།;羅勇市;라용; +city::1607508;Phra Pradaeng;Amphoe Bhra Pradeng;Amphoe Bhra Pradēng;Amphoe Phra Padaeng;Amphoe Phra Pradaeng;Bhra Pradeng;Khoan Khan;Muang Nagorn Khoean Khan;Muang Nakawn Khoan Khan;Muang Nakhon Khaun Khan;Muang Nakhon Khuan Khan;Nakhon Khuan Khan;Nakhon Khuen Khan;Phra Pradaeng;purapuraden jun;พระประแดง;อำเภอพระประแดง;プラプラデーン郡; +city::1607512;Phra Phutthabat;Amphoe Phra Phutthabat;Ban Khun Khlon;Bhra Bhudhabadh;Bhra Bhudhābadh;Khun Khlon;King Amphoe Phra Phutthabat;King Phra Phutthabat;Phra Phutthabat;Phra Phutthabet;phraphuththbath;พระพุทธบาท; +city::1607532;Phra Nakhon Si Ayutthaya;Ajuthaja;Ajuttkhaja;Amphoe Krung Kao;Amphoe Phra Nakhon Si Ayutthaya;Amphoe Rop Krung;Ayouthia;Ayudhya;Ayuthaya;Ayuthia;Ayuthya;Ayutia;Ayutthaya;Ayutthaya - phrankhrsrixyuthya;Ayutthaya - พระนครศรีอยุธยา;Ayutthia;Ayutya;Changwat Phra Nakhon Si Ayutthaya;Krung Kao;Monthon Ayutthaya;Phra Nakhon Si Ax Ayutthaya;Phra Nakhon Si Ayutthaya;phrankhrsrixyuthya;tesaban'nakon・puranakonshiayuttaya;thesbal nkhr phrankhrsrixyuthya;Аюттхая;พระนครศรีอยุธยา;เทศบาลนครพระนครศรีอยุธยา;テーサバーンナコーン・プラナコーンシーアユッタヤー; +city::1607708;Phitsanulok;Amphoe Muang Phitsanulok;Amphoe Mueang Phitsanulok;Bhisanulok;Bisanulok;Bisnulok;Changwat Phitsanulok;Muang Phitsanulok;Muang Pitsanulok;PHS;Philtsanuloke;Phisanulauk;Phitsanulok;Phitsanulokas;Phitszanulok;Pisanuloke;Pitsanoulok;Pitsanulok;Pitsanuloke;Pkhitsanulok;fytsanwlwk;peng shi luo;pis-sanullog;Пхитсанулок;فیتسانولوک;پھسٹانولوک;پھیتسانولوک;พิษณุโลก;เทศบาลนครพิษณุโลก;เมืองพิษณุโลก;ཕི་ཊི་ཙ་ནུ་ལོཀ།;彭世洛;핏사눌록; +city::1607737;Phetchabun;Amphoe Muang Phetchabun;Bhejaburn;Changwat Muang Bheia Burn;Changwat Muang Bhĕia Būrn;Changwat Muang Phetchabun;Changwat Phetchabun;Muang Bheia Burn;Muang Petchboun;Muang Phecha Bun;Muang Phetchabun;PHY;Pechabun;Petchabun;Phetchabun;Pkhetchabun;phechrburn;Пхетчабун;เพชรบูรณ์; +city::1608048;Pak Kret;Amphoe Pak Kret;Ban Pak Kret;Pak Kred;Pak Kret;pakkerd;ปากเกร็ด; +city::1608133;Mueang Nonthaburi;Non Buri;Nondaburi;Nondha Buri;Nonthaburi;Nontkhaburi;thesbal nkhr nnthburi;Нонтхабури;เทศบาลนครนนทบุรี; +city::1608232;Nong Khai;Amphoe Muang Nong Khai;Ban Mi Chai;Changwat Nang Khai;Changwat Nong Khai;Hnohnggai;Michai;Muang Nawng Kai;Muang Nong Khay;Mueang Nong Khai;Naung Khai;Nawng Kai;Nong Hai;Nong Kai;Nong Khai;Nongkkhaj;QJX;hnxngkhay;nongkai;nonkai;thesbal meuxng hnxngkhay;Нонгкхай;نونگ کھائی;หนองคาย;เทศบาลเมืองหนองคาย;ནོང་ཁའི།;ノーンカーイ;농카이; +city::1608527;Nakhon Sawan;Amphoe Muang Nakhon Sawan;Changwat Muang Nakhon Sawan;Changwat Nakhon Sawan;Muang Nagorn Sawarn;Muang Nakawn Sawan;Muang Nakhon Savan;Muang Nakhon Sawan;Mueang Nakhon Sawan;Nagara Sawan;Nagor Svarga;Nagorn Sawarn;Nakaun Sawan;Nakawan Sawn;Nakawn Sawan;Nakhaun Sawan;Nakhon Sawan;Nakhonsavanas;Nakkhonsavan;Naklon Sawan;Nakon Sawan;Nakorn Sawan;bei lan po;nakonsawan;nkhrswrrkh;thesbal nkhr nkhrswrrkh;Накхонсаван;نکھون سوان;นครสวรรค์;เทศบาลนครนครสวรรค์;ན་ཁཱོན་ས་ཝན།;ナコーンサワン;北欖坡;나콘사완; +city::1608529;Nakhon Ratchasima;Amphoe Muang Nakhon Ratchasima;Changwat Nakhon Rarchasima;Changwat Nakhon Rat Sima;Corat;Khorat;Korat;Koyat;Lungsod ng Nakhon Ratchasima;Muang Nakawn Rachasima;NAK;Nagara Rajasima;Nagor Rajashima;Nagor Rajasima;Nakhaun Rachasima;Nakhon Ratcasima;Nakhon Ratchasim;Nakhon Ratchasima;Nakhon Ratchsima;Nakhon Ratcsaszima;Nakhon Ratczasima;Nakhon Ratčasima;Nakhonratcasim;Nakhonratcasima;Nakhonratsima;Nakhonratčasim;Nakhonratčasima;Nakkhonratchasima;Nakonrajsima;Nakonratchasima;Nakorn Rajsima;a le;nakhwn ratshasyma;nakonlaschasima;nakonrachashima;nkhrrachsima;thesbal nkhr nkhrrachsima;Накхонратчасима;ناخون راتشاسيما;ناکھون راتچاسیما;نکھون راٹچاسیما;นครราชสีมา;เทศบาลนครนครราชสีมา;ན་ཁཱོན་ར་ཊི་ཅ་སི་མ།;នគររាជសីមា;ナコーンラーチャシーマー;呵叻;나콘랏차시마; +city::1608534;Nakhon Pathom;Amphoe Muang Nakhon Pathom;Changwat Nakhon Chai Si;Changwat Nakhon Pathom;Monthon Nakhon Chai Si;Mueang Nakhon Pathom;Nagara Pathom;Nagorn Pathom;Nakawn Patom;Nakhaun Pathom;Nakhon Chai Si;Nakhon Pathom;Nakkhonpatkhom;Nakon Patom;fu tong;nakhwn batwm;nakonpatomu;nakonppatom;nkhrpthm;thesbal nkhr nkhrpthm;Накхонпатхом;ناخون باتوم;ناکھون پاتھوم;นครปฐม;เทศบาลนครนครปฐม;ナコーンパトム;佛统;나콘빠톰; +city::1608900;Maha Sarakham;Amphoe Muang Maha Sarakham;Ban Khlong Khleng;Ban Lat;Ban Talat;Changwat Maha Sarakham;Maha Saragam;Maha Sarakam;Maha Sarakham;Mueang Maha Sarakham;Talat;Uthai Sarakham;mhasarkham;มหาสารคาม; +city::1609032;Lop Buri;Amphoe Muang Lop Buri;Ban Tha Hin;Changwat Lop Buri;Changwat Thahanbok Lop Buri;KKM;Lava Pura;Lavo;Lobh Buri;Lop Buri;Lopburi;Muang Lobh Buri;Muang Lopburi;Muang Xop Buri;Mueang Lop Buri;Tha Hin;lphburi;robburi;Лопбури;ลพบุรี;ロッブリー; +city::1609350;Bangkok;Amphoe Phra Nakhon;BKK;Ban'nkok;Bancac;Bancocum;Bancoque;Bancác;Banghok;Bangkok;Bangkok Metropolis;Bangkoka;Bangkòk;Banguecoque;Bankok;Bankokas;Bankoko;Banqkok;Changwat Phra Nakhon;Krung Thep;Krung Thep Maha Nakhon;Krung Thep Maha Nakhon Amon Rattanakosin Mahintarayutthaya Maha Dilok Phop Noppharat Ratchathani Buri Rom Udom Ratchaniwet Maha Sathan Amon Phiman Awatan Sathit Sakka Thattiya Witsanukam Prasit;Krungdeb;Man-kuk;Màn-kuk;Phra Nakhon;Siayuthia;The City of Angels;bainkaka;bainkoka;bamkoka;bangkog;bangkwk;bankeakk;bankoku;bankwk;bngqwq;bnkak;byankak;byankaka;camraata byankaka;krungtheph;krungthephmhankhr;krungtheph‡;man gu;penkak;Μπανγκόκ;Бангкок;Банкок;Баҥкок;Բանգկոկ;באנגקאק;בנגקוק;بانكوك;بانکوک;بانکۆک;بانګکوک;بانگكوك;بنکاک;बँकॉक;बैंकक;बैंकॉक;চাংৱাত ব্যাংকক;ব্যাংকক;ਬੈਂਕਾਕ;பேங்காக்;ಬ್ಯಾಂಕಾಕ್;ബാങ്കോക്ക്;බැංකොක්;กรุงเทพ;กรุงเทพมหานคร;กรุงเทพฯ;ບາງກອກ;པན་ཀོག;ဘန်ကောက်မြို့;ბანგკოკი;ባንኮክ;バンコク;曼谷;방콕; +city::1609395;Krathum Baen;Amphor Kathum Baen;Ban Krathum Baen;Ban Talat Kathum Baen;Kathum Baen;Krathu Baen;Krathum Baen;Krathumban;Talat Kathum Baen;กระทุ่มแบน; +city::1609610;Klaeng;Amphoe Klaeng;Ban Sam Yan;Ban Thang Kwian;Klaeng;Kleng;Klēng;Mueang Klaeng;Thang Kwian;ต.แกลง;แกลง; +city::1609776;Khon Kaen;Amphoe Muang Khon Kaen;Amphoe Phralap;Amphoe Pralap;Changwat Khon Kaen;Changwat Muang Khon Kaen;KKC;Kawn Ken;Khohn Ken;Khon Kaen;Khon Kan;Khon Khen;Khonkean;Khonken;Khonkenas;Khonkhaen;Kkhonkehn;Konkahen;Muang Kaun Gean;Muang Khaunkaen;Muang Khon Kaen;Mueang Khon Kaen;khxnkæn;kong jing;konkkaen;kun jing shi;Кхонкэн;קון קאן;کھون کائن;کھون کیئن;ขอนแก่น;เทศบาลนครขอนแก่น;เมืองขอนแก่น;坤敬市;孔敬;콘깬; +city::1609899;Khlong Luang;Amphoe Bang Wai;Amphoe Khlong Luang;Ban Bang Wai;Ban Khlong Song (3);Bang Wai;Khlong Luang;khlxnghlwng;คลองหลวง; +city::1610469;Kalasin;Amphoe Hlup;Amphoe Kalasin;Amphoe Lup;Amphoe Muang Kalasin;Ban Neur;Changwat Kalasin;Changwat Muang Kalasin;Kalasim;Kalasin;Kalasindhu;Lup;Muang Kalasim;Muang Kalasin;Muang Kalassim;Muang Kansin;Mueang Kalasin;kalsinthu;Каласин;กาฬสินธุ์; +city::1610780;Hat Yai;Amphoe Hat Yai;Ban Haad Yai;Ban Hat Yai;HDY;Haad Yai;Had Yai;Hat Yai;Hatjaj;Hatjajus;Khat Jai;Khatujaj;has-yai;hat yay;hatoyai jun;he ai;Хат Јаи;Хатъяй;האד-יאי;هات ياي;ہات یائی;หาดใหญ่;เทศบาลนครหาดใหญ่;ཧ་ཊི་ཡའི།;ハートヤイ郡;合艾;핫야이; +city::1611110;Chon Buri;Amphoe Muang Chon Buri;Baanburaisoi;Ban Bang Pla Soi;Ban Pla Sai;Ban Pla Soi;Bang Pla Soi;Bang Pla Soil;Changwat Chon Buri;Cholburi;Chon Buri;Chonburi;Chor Buri;Jilburi;Jīlburi;Muang Jol Buri;Muang Xonburi;Mueang Chon Buri;chlburi;Чонбури;ชลบุรี; +city::1611269;Chanthaburi;Amphoe Muang Chanthaburi;Canthaburis;Chandaburi;Chandha Buri;Changwat Chanthaburi;Chantaboun;Chantabun;Chantaburi;Chanthaburi;Chantkhaburi;Chentabun;Chiyandburii;Mueang Chanthaburi;canthburi;jjantabuli;thesbal meuxng canthburi;zhuang ta wu li;Čanthaburis;Чантхабури;چانتھابوری;จันทบุรี;เทศบาลเมืองจันทบุรี;ཅཱན་ཐ་བུ་རི།;庄他武里;짠타부리; +city::1611407;Chaiyaphum;Amphoe Muang Chaiyaphum;Ban Hin Tang;Chai Phum;Chaiaphum;Chaiapum;Chaiyaphum;Chaiyaphun;Chaiyapoom;Chajjapkhum;Chalyaphum;Changwat Chaiyaphum;Changwat Chaiyaphun;Jaibhum;Jaiyabhum;Jayabhumi;Muang Chaiyapum;Muang Jaiyabhum;Tchaiapoum;chayphumi;Чайяпхум;ชัยภูมิ; +city::1614295;Phatthaya;Ban Hat Phatthaya (2);Ban Phatthaya;PYX;Pataja;Pattajja;Pattaya;Phattaya;Phatthaya;Port Phattaya;ba da ya;pataya;pattaya;phathya;Патая;Паттайя;พัทยา;パッタヤー;芭達亞;파타야; +city::1617111;Ban Lam Luk Ka;Lam Luk Ka;Luk Ka;Lūk Ka; +city::1619434;Bang Kruai;Amphoe Bang Kruai;Amphoe Bang Yai;Ban Bang Yai;Bang Krai;Bang Kruai;Bang Yai;bangkrwy;บางกรวย; +city::1220253;Istaravshan;Bundzhikat;Istaravchan;Istaravsan;Istaravsanas;Istaravshan;Istaravsjan;Istaravson;Istaravŝan;Istaravšan;Istaravšanas;Istaravšon;Istaravșan;Istarawschan;Istarawshan;Istarawszan;Ura-Tyube;Uroteppa;astrwshn;iseuteulabeusyan;isutarafushan;yi si ta la fu shang;İstərövşən;Ŭroteppa;Істаравшан;Истаравшан;Истәраушан;استروشن;イスタラフシャン;伊斯塔拉夫尚;이스트라브샨; +city::1220747;Qurghonteppa;KQT;Kurgan Tjube;Kurgan-Tyube;Qurghan Tyube;Qurghonteppa;Qurghān Tyube;Qŭrghonteppa;Курган Тюбе;Қӯрғонтеппа; +city::1221194;Kulob;Kulab;Kuljab;Kulob;Kulyab;Kŭlob;TJU;Куляб;Кӯлоб; +city::1221874;Dushanbe;DYU;Djuschambe;Doesjanbe;Douchanbe;Douchanbé;Dusanbe;Dusanbeo;Duschanbe;Dushambe;Dushanbe;Dusjanbe;Duszanbe;Duŝanbeo;Duşanbe;Dušanbe;Dušanbė;Dušhanbe;Dyushambe;Düşənbə;Jushambe;Ntousanmpe;Stalinabad;do~ushanbe;du shang bie;dusyanbe;dwshnbh;dwsnbh;Ντουσάνμπε;Душанбе;דושנבה;دوشنبه;ዱሻንቤ;ドゥシャンベ;杜尚别;두샨베; +city::1514879;Khujand;Choedzjand;Chudschand;Chudzandas;Chudzjand;Chudžandas;Hodjent;Hudzand;Hudžand;Khodjent;Khodyent;Khodzhent;Khojend;Khudzhand;Khujand;Khuzhant;Khŭjand;Kojend;LBD;Leninabad;Leninobod;Ursaten;Xo'jand;Xoʻjand;hojendo;khjnd;ku zhan;Ходжент;Худжанд;Хужант;Хуҷанд;Хӯҷвнд;خجند;ホジェンド;苦盏; +city::1514891;Konibodom;Kanibadam;Konibodom;Konibodomas;Qənibadam;kan badam;kany badam;ke ni bo duo mu;konibodom;Кoнибодом;Канибадам;Канібадам;Конибодом;کان بادام;کانی بادام;科尼博多姆;코니보돔; +city::1645457;Dili;DIL;Delhi;Dilhi;Dili;Dili khot;Dilis;Dilli;Dilly;Dilo;Dily;Díli;Gorad Dyli;Nova Dili;Ntili;di li;dili;dilli;diri;dyly;tili;Ντίλι;Горад Дылі;Дили;Дили хот;Ділі;Դիլի;דילי;دىلى;ديلي;دیلی;ڈلی;दिली;দিলি;ਦੀਲੀ;டிலி;ಡಿಲಿ;ദിലി;ดิลี;དྷི་ལི།;ဒီလီမြို့;დილი;ディリ;帝力;딜리; +city::161616;Balkanabat;BKN;Balkanabad;Balkanabat;Balkanabatas;Bolqonobod;Nebit-Dag;Nebitdag;Neftedag;ba er kan na ba de;balaqanabata;balkanabateu;barukanabato;blkhan abad;Балканабат;Небит-Даг;بلخان آباد;بلخان‌آباد;बलक़ानाबात;ბალკანაბადი;バルカナバート;巴尔坎纳巴德;발카나바트; +city::162183;Ashgabat;ASB;Achgabat;Achkhabad;Aschabad;Aschabadas;Aschchabad;Aschgabat;Asgabat;Asgabata;Asgabate;Asgabato;Ashabad;Ashabat;Ashgabat;Ashkabad;Ashkhabad;Ashkhabad osh;Ashkˌobod;Ashqabad;Ashxabad;Ashxobod;Asjabad;Asjchabad;Asjchabat;Asjkhabad;Askabad;Askabat;Askhabad;Asnkampat;Asqabad;Asxabad;Aszchabad;Aŝgabato;Aşgabat;Aşkabat;Aşqabad;Aşğabat;Ašchabad;Ašchabadas;Ašgabat;Ašgabata;Ašhabad;Așgabat;GIashkuabad;Gorad Ashgabad;Poltoratsk;a shen ha ba de;acukapat;asagabata;asakhabada;asgabad;asgabada;asgabat;ashigabato;ashk abad;ashkhabadi;asigabateu;asqabada;asyuhabateu;xa chka bat;yashkhabad;ʼsgbʼt;ʿەshqabad;Ασγκαμπάτ;Ашгабат;Ашкабад;Ашхабад;Ашхабад ош;Ашқобод;ГІашкъабад;Горад Ашгабад;Աշխաբադ;אשגאבאט;אשגבאט;ئاشخاباد;اشک آباد;عاشق‌آباد;عشق آباد;عشق اباد;عشق‌آباد;عەشقاباد;अश्क़ाबाद;अश्गाबाद;আশখাবাদ;ਅਸ਼ਗ਼ਾਬਾਤ;அசுகாபாத்;ಅಶ್ಗಾಬಾತ್;അഷ്ഗാബാദ്;อาชกาบัต;ཨ་ཧྲི་ཁ་པད།;აშხაბადი;አሽጋባት;アシガバート;阿什哈巴德;아슈하바트;아시가바트; +city::601594;Turkmenbasy;Gorad Turkmenbashy;KRW;Krasnovodsk;Krasnowodsk;Krassnowodsk;Tourkmenmpasi;Tuerkmenbasi;Tuerkmenbasy;Turkmanboshi;Turkmenbachi;Turkmenbashi;Turkmenbashy;Turkmenbasi;Turkmenbasis;Turkmenbasy;Turkmenbaszy;Turkmenbaši;Turkmėnbašis;Türkmenbashy;Türkmenbaşy;Türkmenbaşî;Türkmenbaşı;Türkmənbaşı;torukumenbashi;trkman bashy;trkmanbashy;trkmnbashy trkmanstan;tu ku man ba xi;tuleukeumenbasi;turkmenbashi;Τουρκμένμπασι;Горад Туркменбашы;Красноводск;Туркменбаши;Туркменбашы;Туркменбаші;Төрекмәнбашы;Թուրքմենբաշի;טורקמנבאשי;تركمانباشي;ترکمان باشی;ترکمنباشی، ترکمانستان;ترکمن‌باشی;თურქმენბაში;トルクメンバシ;土庫曼巴希;투르크멘바시; +city::601734;Dasoguz;Dashhowuz;Dashkhovuz;Dashoguz;Dashowuz;Dasoguz;Dasoguzas;Daszoguz;Daşoguz;Daşoğuz;Dašhowuz;Dašoguz;Dašoguzas;Dașoguz;Gorad Dashaguz;TAZ;Tashauz;Tasjauz;Toshhovuz;da sha gu ci;dash awghwz;dashoguzi;dashoguzu;dashwghwz;dasoguza;dasyogujeu;Горад Дашагуз;Дашогуз;داش اوغوز;داشوغوز;داش‌اغوز;दाशोग़ुज़;დაშოგუზი;ダショグズ;达沙古兹;다쇼구즈; +city::1218239;Tejen;Tedjen;Tedzen;Tedzhen;Tedżen;Tejen;Tejend;Теджен; +city::1218667;Mary;MYP;Maras;Margiana;Mari;Mary;Mary shaary;Marı;Merv;ma lei;ma ri;mali;mari;maru;mary;mary trkmanstan;mrw;Мари;Мары;Мары шаары;ماری;ماری، ترکمانستان;مرو;मरी;มารี;მარი;マル;马雷;마리; +city::1219649;Turkmenabat;CRZ;Chardzha;Chardzhev;Chardzhou;Chardzhui;Chardzhuy;Charjew;Charjou;Chärjew;Leninsk-Turkmenski;Leninsk-Turmenski;Nov Charjui;Nov Chārjui;Novo Chardzhou;Novo-Chardzhuy;Tuerkmenabat;Turkmanobod;Turkmenabad;Turkmenabat;Turkmenabatas;Türkmenabat;Türkmənabad;te~yurukumenabato;trkman abad;trkmn abad;tu ku man na ba de;tuleukeumenabateu;turkamenabata;turkmenabadi;Туркменабад;Туркменабат;Түркменабат;Չարզոու;ترکمان آباد;ترکمن آباد;ترکمن‌آباد;तुर्कमेनाबात;თურქმენაბადი;テュルクメナバート;土庫曼納巴德;투르크메나바트; +city::1219762;Bayramaly;Bairam Ali;Bajramali;Bayram-Ali;Bayramaly;Байрамали; +city::2464470;Tunis;Gorad Tunis;TUN;Tinis;Tiwnis;Tuenis;Tuinis;Tunes;Tunes tamaneɣt;Tunez;Tunis;Tunis khot;Tunis shaary;Tunis-Ville;Tunisa;Tunisas;Tunisi;Tunisin Orn;Tunisz;Tunixi;Tuniz;Tunizo;Tunus;Tynida;Tùnis;Tùnisi;Túinis;Túnez;Túnis;Túnixi;Túniz;Tûnis;Tünis;chunisu;tu ni si;tu ni si shi;tunis;tunis's;tunisa;twiniseu;twns;twnys;twwns;tyunisa;Τύνιδα;Горад Туніс;Тунис;Тунис хот;Тунис шаары;Тунисин Орн;Туніс;Թունիս;תוניס;تونس;تونس شہر;توونس;تۇنىس شەھىرى;ٹیونس نگر;ܬܘܢܣ;ट्युनिस;ट्यूनिस;ਤੂਨਿਸ;தூனிஸ்;ടൂണിസ്സ്;ตูนิส;ཊུ་ནིསི།;ტუნისი;ቱኒስ;チュニス;突尼斯;突尼斯市;튀니스; +city::2464701;Tataouine;Foum Tatahouine;Foum Tataouine;Fum Tatawin;Fum Taţāwīn;Fumm Tattauin;Tatahouine;Tatahouïne;Tataouine;Tatauin;Tatavin;Tatavinas;Tatawin;Taţāwīn;tai ta wen;tatau-in;tatauinu;ttawyn;Татавин;Татауїн;تطاوين;تطاوین;タタウイヌ;泰塔溫;타타우인; +city::2464915;Sousse;Gorad Sus;Hadrumetum;QSO;Sousa;Souse;Soussa;Sousse;Sus;Susa;Susah;Susas;Suss;Sussa;Szusza;Szúsza;Súsa;Sūsah;su sai;suseu;susi;susu;swsh;swst;xi lan ni;Горад Сус;Сус;Сусс;Սուս;סוסה;سوسة;سوسه;სუსი;スース;昔兰尼;苏塞;수스; +city::2467246;Skanes;Chekanes;Saqanis;Skanes;Şaqānis; +city::2467454;Sfax;Gorad Sfaks;SFA;Safakes;Safakis;Safaqis;Sfaks;Sfaksas;Sfakso;Sfaqes;Sfax;Sfvks;Szfaksz;Taparura;Thaenae;s fak s;seupagseu;sfaqs;si fa ke si;spaksi;spqs;sufakkusu;Şafāqis;Σφαξ;Горад Сфакс;Сфакс;Сфвкс;ספקס;صفاقس;สฟักซ์;სფაქსი;Ṣfaqes;スファックス;斯法克斯;스팍스; +city::2468353;Gafsa;Capsa;GAF;Gafsa;Gafsah;Gafso;Gafşah;Justiniania;Kafsa;Qafsah;Qafşah;gafusa;gapeusa;jia fu sa;kaf sa;qfsh;qfst;vfst;Κάφσα;Гафса;גאפסה;قفصة;قفصه;ڤفصة;กัฟซา;ガフサ;加夫薩;가프사; +city::2468369;Gabes;Abes;GAE;Gabes;Gabesas;Gabis;Gabès;Gābis;Kabis;Kābis;Nkampes;Qabes;Qabis;Qābis;Tacapae;Tacape;gabeseu;gabesu;jia bei si;ka bæs;qabs;vabs;wlayt qabs;Γκαμπές;Габес;قابس;ولاية قابس;ڤابس;กาแบ็ส;ガベス;加貝斯;가베스; +city::2468579;Nabeul;Nabeul;Naboel;Nabul;Nābul;nabl;Набул;نابل; +city::2468925;Midoun;Midoun;Midun;Mīdūn;Мидун; +city::2469140;Msaken;M'saken;Masakin;Masākin;Msaken;Msaker;msakn;Мсакен;مساكن; +city::2469473;Medenine;Madanin;Madanīn;Medenin;Medenina;Medeninas;Medenine;Mednin;Mentenin;Médenine;mdnyn;medeunin;mei de ning;Μεντενίν;Меденин;Меденін;مدنين;مدنین;梅德寧;메드닌; +city::2470088;Jendouba;Dzhenduba;Jendouba;Jundubah;Jundūbah;Souk el Arba;Souq el Arba;Suq al Arba`a';Sūq al Arba‘ā’;jndwbt;Джендуба;جندوبة; +city::2470173;Zarzis;Dzardzis;Dzsardzsisz;Dzsardzsísz;Dżardżis;Jarjis;Jarjīs;Zarzia;Zarzis;Zerzis;jaleujiseu;jie er ji si;jrjys;zarujisu;Зарзис;Зарзіс;جرجيس;جرجیس;ザルジス;傑爾吉斯;자르지스; +city::2470384;Houmt Souk;Djerba;Hawmat as Suq;Houmet Es Souk;Houmet Essouk;Houmt El Souk;Houmt Souk;Houmt Souq;Humk-Suk;Humt-Suk;Khumt-Suk;hao mai te su ge;hwmh alswq;hwmt alswq;Хумт-Сук;حومة السوق;حومه السوق;حومۃ السوق;Ḩawmat as Sūq;豪邁特蘇格; +city::2470656;La Goulette;Chalk el Uedas;El Aouina;Goleta;Goletta;Goulette;Halk el Oued;Halq al Wadi;Halq el Oued;Khal'k-ehl'-Uehd;La Goleta;La Goletta;La Gouletta;La Goulette;La-Gulet;hlq alwady;la gwlyty;lagulleteu;lh gwlt;Ла-Ґулєт;Хальк-эль-Уэд;לה גולט;حلق الوادي;حلق الوادی;لا گولیتی;Ḩalq al Wādī;ラ・グレット;라굴레트; +city::2472479;Ben Arous;Ben Arous;Ben Arus;Ben Arusas;Ben-Arus;Bin Arous;Bin Arus;Bin `Arus;Bin ‘Arūs;ben a lu si;ben-aluseu;Μπιν Αρούς;Бен-Арус;بن عروس;本阿鲁斯;벤아루스; +city::2472706;Bizerte;Banzart;Biserta;Bizerta;Bizerte;Hippo Diarrhytus;Hippou Aksa;QIZ;bi sai da;bijeleute;bizeruto;bnzrt;byzrth;Μπιζέρτα;Бизерта;Бизерта қаласы;Бізерта;ביזרטה;بنزرت;ビゼルト;比塞大;비제르테; +city::2472774;Beja;Bace;Badza;Badża;Badža;Bajah;Batza;Bedja;Bedzha;Beja;Béja;Bājah;ba jie;bajh;bajt;beja;Μπατζά;Беджа;باجة;باجه;巴杰;베자; +city::2473247;Ariana;Ar'jana;Ariana;Arjana;Aryana;Aryanah;Aryānah;El Ariana;L'Ariana;L’Ariana;ai er ya nai;aliana;aryanh;aryant;aryant‎;Αρυάνα;Арьяна;Аряна;أريانة;أريانة‎;اریانه;艾尔亚奈;아리아나; +city::2473449;Kairouan;Al Qayrawan;Al Qayrawān;Al-Kayrawan;Al-Kayrawān;Al-Qayrawan;Al-Qayrawān;Cairuao;Cairuão;Kairouan;Kairuan;Kairuanas;Kairuán;Kairwan;Kajruan;Kajruano;Kayravan;Keruan;QKN;Qairawan;Qairawān;Qairouan;Qairwan;Qayrawan;Qayruvon;alqyrwan;kai lu wan;kaileuwan;keruan;qyrwan;Καϊρουάν;Кайруан;Қайруан қаласы;קירואן;القيروان;قیروان;კაირუანი;ケルアン;凯鲁万;카이르완; +city::2473457;Kasserine;Al Kasrayn;Al Qasrayn;Al Qaşrayn;Al-Kasrajn;Kaserin;Kaserinas;Kassarin;Kasserin;Kasserine;Qasserine;alqsryn;ka sai lin;kaselin;kasurinu;Αλ Κασράυν;Касерін;Кассерин;القصرين;القصرین;カスリーヌ;卡塞林;카세린; +city::2473493;Monastir;Al Munastir;Al Munastīr;El Menstir;Gorad Manascir;Hadrumetum;MIR;Monastir;Monastyr;Monastyras;Monastır;Monasztir;Munastir;Munastır;Ruspina;almnstyr;mnstyr;mnstyr tywns;mo na si ti er;monaseutileu;monasutiru;Μοναστίρ;Горад Манасцір;Монастир;Монастір;Մոնաստիր;المنستير;المنستیر;منستير;منستیر، تیونس;მონასტირი;モナスティル;莫纳斯提尔;모나스티르; +city::2473499;La Mohammedia;Al Muhammadiyah;Al Muḩammadīyah;La Mohammedia;Mohamedia;Mohamedla;Mohammedia; +city::2473540;Al Marsa;Al Marsa;Al Marsá;El Marsa;La Marsa; +city::2473744;Hammamet;Al Hammamat;Al Ḩammāmāt;Al-Hammamat;Gorad Khamamet;Hamametas;Hammamet;Khamamet;Khammamet;alhmamat;ha ma ma te;hammameteu;hanmametto;hmamat tywns;Горад Хамамет;Хамамет;Хаммамет;الحمامات;حمامات، تیونس;ハンマメット;哈马马特;함마메트; +city::2473747;El Hamma;Al Hammah;Al Ḩāmmah;Ehl'-Khamma;El Hamma;El Hamma de l'Arad;El Hamma de l’Arad;Эль-Хамма; +city::2581754;Douane;; +city::296173;Yuksekova;Dize;Gever;Juksekova;YKO;Yueksekova;Yuksekova;Yusekova;Yüksekova;Yüsekova;yu ke sai ke wa;ywksk awwa;ywkskwfa;ywksykwwa;Йӱксекова;Юксекова;ضلع یکسیکووا;يوكسكوفا;گەڤەر;یوکسک اووا;یوکسیکووا;یوک‌سکوا;于克塞科瓦; +city::296562;Yozgat;Gioznkat;Jozgat;Jozgatas;Saralus;Yozgad;Yozgat;Yozqat;Yuzgat;iozgati;yojeugateu;yozgata;yozugato;yue zi jia te;ywzgat;ywzghad;ywzghat;ywzgt;Γιοζγκάτ;Йозгат;Յոզղատ;يوزغات;یوزغاد;یوزگات;یوزگت;योज़्गत;იოზგათი;ヨズガト;約茲加特;요즈가트; +city::298033;Viransehir;Antoninopolis;Veeranshahr;Viransehir;Viranshekhire;Viranşehir;Wiranschehir;Вираншехире; +city::298117;Van;Gorad Van;Thospia;Urartu;VAN;Van;Van i Tyrkia;Vana;Vanas;Wan;ban;bhyana;fan cheng;van;vani;vu~an;wan;wan trky;Βαν;Ван;Горад Ван;Վան;ואן;وان;وان، ترکی;भ्यान;வான்;วาน;ვანი;ヴァン;凡城;반; +city::298299;Usak;Flaviopolis;Gorad Ushak;Ouchak;Ousak;Temenothyrae;USQ;Usak;Usakas;Uschak;Ushak;Ushaq;Uşak;Ušakas;awshak;usaka;ushaki;ushaku;usyakeu;wu sha ke;Ουσάκ;Горад Ушак;Ушак;أوشاك;اوشاک;عشاق;ਉਸ਼ਾਕ;უშაქი;ウシャク;烏沙克;우샤크; +city::298333;Sanliurfa;Antiocheia;Edesa;Edessa;Ehdessa;Orfa;Ourfa;SFQ;Sanliurfa;Urfa;Urfeh;Şanlıurfa;Αντιόχεια;Эдесса; +city::298806;Turgutlu;Caesarea Trocetta;Cassaba;Kasaba;Turgutlu; +city::298935;Torbali;Tepekoey;Tepeköy;Torbali;Torbaly;Torbalı;Торбалы; +city::299545;Tavsanli;Taushanli;Tavsanli;Tavşanlı; +city::299582;Tatvan;Tatvan;Татван; +city::299817;Tarsus;Antiochia ad Cydnum;Gorad Tarsus;Tars;Tarsas;Tarse;Tarso;Tarson;Tarsos;Tarsous;Tarsus;Tarsus i Mersin;Tersus;da shu;taleususeu;tarsusi;tarsws;tarususu;trsws;trsws mrsyn;Ταρσός;Горад Тарсус;Тарс;Тарсус;Տարսոն;טרסוס;تارسوس;ضلع ٹارسس;طرسوس;طرسوس، مرسین;თარსუსი;タルスス;大數;타르수스; +city::300352;Sorgun;Buyukkohne;Büyükköhne;Kohne;Köhne;Sorgun;Sorgune;Yesilova;Yeşilova;Соргуне; +city::300371;Soma;Distretto di Soma;Germe;Soma;Soma i Tyrkia;Somy;soma;suo ma;swmh;Σόμα;Сома;Сомы;סומה;ضلع سوما;ソマ;索馬;소마; +city::300399;Soeke;Sjoke;So'ke;Sok;Soke;Sokia;Söke;se kai;swkh;Сок;Соьке;Сёке;Сӧке;سوکه;瑟凱; +city::300614;Siverek;Severek;Siverek;Sivereke;Suverek;Сивереке; +city::300619;Sivas;Gorad Sivas;Megalopolis;Sebastea;Sebastia;Sevas;Sevasteia;Sewas;Sivas;Sivasas;Siwas;Sêwas;VAS;sibaseu;sivasi;su~ivu~asu;sywas;sywws;xi wa si;Σεβάστεια;Горад Сівас;Сивас;Сівас;Սեբաստիա;סיווס;سيواس;سیواس;سێواس;სივასი;スィヴァス;錫瓦斯;시바스; +city::300640;Sirnak;Shirnak;Sirnak;Şırnak;Ширнак; +city::300796;Silvan;Farqin;Farqîn;Martyropolis;Miyafarkin;Sil'van;Siliwan;Silvan;Sıliwan;farqyn;myafarqyn;sylwan;sylwan dyar baqr;xi er wan;Силван;Сильван;سیلوان;سیلوان، دیار باقر;فارقین;ميافارقين;錫爾萬; +city::300797;Silopi;Girgimac;Girgimaç;Girikamo;Girikoma;Sil'opi;Silopi;Sil’opi;Силопи; +city::300808;Silifke;Selefke;Selefkeh;Seleucia;Seleucia ad Calycadnum;Silifka;Silifke;Sılıfka;shirifuke;slwkyh;sylyfky;xi li fu kai;Силифке;سلوکیه;سيليفكى;ضلع سلیفکے;シリフケ;錫利夫凱; +city::300822;Siirt;Gorad Siirt;SXZ;Sairt;Sert;Sgerd;Siirt;Sirt;Sirtas;Sêrt;siileuteu;siirti;su~iiruto;syrt;xi er te;Горад Сіірт;Сиирт;Сирт;Сіїрт;Սղերդ;سعرد;سیرت;سێرت;სიირთი;スィイルト;錫爾特;시이르트; +city::301010;Seydisehir;Seydisehir;Seydişehir; +city::302043;Salihli;Salihli; +city::302355;Reyhanli;Airandji;Airanndji;Airinge;Ayranci;Aïrandji;Rayhaniyah;Rayḩānīyah;Rehaniye;Rejkhanly;Reyhaniye;Reyhanli;Reyhanlı;`Ayranj;ryhanyt;Рейханлы;ريحانية;‘Ayranj; +city::302525;Polatli;Polath;Polatli;Polatly;Polatlî;Polatlı;bo la te lei;pwlatly;Полатли;Полатлы;ضلع پولاٹلی;پولاتلی;波拉特勒; +city::302819;Patnos;Patnos; +city::303195;Osmaniye;Cebelibereket;Gebelibereket;Gorad Asmanie;Kinikan;Osmanie;Osmanigie;Osmanije;Osmanijė;Osmaniye;Osmaniyə;ao si man ni ye;oseumaniye;osmanie;osumanie;Οσμανίγιε;Горад Асманіе;Османие;Османије;Османіє;אוסמניה;אסמאניע;عثمانية;عثمانیه;عثمانیہ;عثمانیے;ოსმანიე;オスマニエ;奧斯曼尼耶;오스마니예; +city::303700;OEdemis;Eudemish;Hypaepa;OEdemis;Odemis;Ödemiş; +city::303750;Nusaybin;Antiocheia;Nasabina;Nisibin;Nisibis;Nissibine;Nusaybin;Nuseybin;Nuzajbin;Αντιόχεια;Нузайбин; +city::303798;Nizip;Nezip;Nizip;Nizipe;Низипе; +city::303827;Nigde;Gorad Nijdeh;Nigdah;Nigde;Nigdeh;Nigdi;Niide;Niğde;Niğdə;ni dai;nide;nigde;nyghdh;nyghdt;Νίγδη;Горад Нійдэ;Нигде;نيغدة;نگدے;نیغده;نیغدے;ნიგდე;ニーデ;尼代;니데; +city::303831;Nevsehir;Muskara;Muşkara;NAV;Nevsechir;Nevsehir;Nevshehr;Nevshekhir;Nevşehir;Nevşəhər;nebeusyehileu;nei fu xie xi er;nevshehiri;nevushehiru;nwshhr;Νεβσεχίρ;Невшехир;نو شہر;نوشهر;نیوشہر;ნევშეჰირი;ネヴシェヒル;內夫謝希爾;네브셰히르; +city::303873;Nazilli;Gorad Nazili;Nasly;Nazili;Nazilis;Nazilli;Pazarkoy;Pazarköy;na ji li;nazyly;Горад Назілі;Назили;Назилли;نازیلی;納濟利; +city::304081;Mus;MSR;Mus;Mush;Muş;Mûş;mu shen;mushi;mushu;musyu;mwsh;mwwsh;Муш;Մուշ;موش;مووش;მუში;ムシュ;穆什;무슈; +city::304382;Midyat;Estil;Medeat;Mid'jat;Midyad;Midyat;Mityat;mdyad;mdyat;mdyd;mi di ya te;mydyat;Мидьят;Мідьят;ضلع مدیات;مديات;مدیاد;میدیات;ܡܕܝܕ;米迪亞特; +city::304531;Mercin;Icel;Mersin;Mersina;Mersine;Merson;Mersyna;Myrte;Mêrsîn;Zephyrium;İçel;Μερσίνη;Мерсин; +city::304612;Menemen;Distretto di Menemen;Menemen;Menemeni;Temnos;Менемен;مینےمن; +city::304797;Mardin;MQM;Marde;Mardin;Marntin;Merdin;Mêrdin;Mêrdîn;ma er ding;maleudin;mardini;mardn;mardyn;marudin;mrdyn;Μαρντίν;Мардин;Мардін;Մարդին;ماردن;ماردين;ماردین;مێردین;ܡܪܕܝܢ;მარდინი;マルディン;馬爾丁;마르딘; +city::304827;Manisa;Magnesia;Magnesia ad Sipylum;Magnesia am Sipylos;Magnisiyah;Magnēsıa;Mahnisa;Manisa;Manissa;Sarouhan;Saruhan;Маниса; +city::304854;Manavgat;Manavgat;Манавгат; +city::304922;Malatya;Gorad Malatja;MLX;Malat'ja;Malateia;Malatia;Malatija;Malatiyah;Malatja;Malatya;Meleti;Meletiye;Meletî;Melitene;ma la di ya;malatia;mallatia;maratiya;mltyh;mltyt;Μαλάτεια;Горад Малатя;Малатия;Малатија;Малатья;Մալաթիա;מלטיה;مالاطیہ;ملطية;ملطیه;مەلەدی;მალათია;マラティヤ;馬拉蒂亞;말라티아; +city::305268;Kutahya;Cotiaeum;Cotyaeum;Gorad Kjutakhja;KZR;Kioutacheia;Kiutahija;Kjutakh'ja;Kjutakhija;Kjutakhja;Kuetahiya;Kuetahj;Kuetahya;Kutahiyah;Kutahya;Kutaia;Kutakh'ja;Kutakhja;Kutaya;Kütahiya;Kütahj;Kütahya;kutahia;kwitahia;kwtahyh;kwtahyt;kwtaہya;kyutahiya;qu ta xi ya;Κιουτάχεια;Горад Кютахя;Кутахја;Кютахия;Кютахья;Кютахя;Кӱтахья;Кӳтахья;Քյոթահիա;كوتاهية;کتہیا;کوتاهیه;کوتاھیا;کوتاہیا;ქუთაჰია;キュタヒヤ;屈塔希亞;퀴타히아; +city::305359;Kusadasi;Efes;Kusadasi;Kush Adasi;Kush Adası;Kushadasi;Kushadassi;Kushadasy;Kuushadasy;Kuşadası;Marathesium;Nea Ephesus;Scalanuova;Skala Nuova;Skalanova;ku sha da se;kushadas";kushadasi;kushadasu;kusyadaseu;Кушадаси;Кушадасъ;Кушадасы;Къушадасы;کوش‌آداسی;クシャダス;庫沙達瑟;쿠샤다스; +city::306112;Kozan;Flaviopolis;Kozan;Sis; +city::306571;Konya;Conia;Gorad Kon'ja;Iconio;Iconium;Ikonio;Ikoniow;KYA;Ko'niya;Kon'ja;Koni;Konia;Konieh;Konija;Konja;Konjao;Konya;Koʻniya;Kuniyah;Kuon'ja;Qonia;Qonya;Qonye;ke ni ya;kean'ya;kon'ya;konia;qwnyh;qwnyt;Ικόνιο;Горад Конья;Кония;Конија;Конья;Къонья;Կոնիա;קוניה;قونية;قونیه;قونیہ;कोन्या;കോന്യ;კონია;コンヤ;科尼亞;코니아; +city::307084;Kiziltepe;Kiziltepe;Kochisar;Kochkhisar;Koçhisar;Kyzyltepe;Kızıltepe;Кызылтепе; +city::307515;Kirsehir;Gorad Kyrshehkhir;Justinianopolis;Kirsechir;Kirsehir;Kirshahr;Kirshehr;Kirshekhir;Kurshekhir;Kyrshekhir;Kırşehir;Kırşəhər;Mocissus;Mokissus;Qirseher;Qırşeher;ke er xie xi er;kileusyehileu;kirasehara;kirshehiri;kurushehiru;qr shhr;qrshhr;Κιρσεχίρ;Горад Кыршэхір;Киршехир;Киршехір;Кършехир;Кыршехир;قر شهر;قر شہر;قرشهر;کرسیہر;ਕਿਰਸੇਹਰ;ქირშეჰირი;クルシェヒル;克爾謝希爾;키르셰히르; +city::307654;Kirikkale;Gorad Kyrykale;Kirikale;Kirikalė;Kirikkale;Kurukkale;Kyrykkale;Kırıkkale;Qirixqele;Qirqqalʼa;Qırıxqele;ke lei ke ka lai;kilikalle;kurukkare;kyrkaly;Κιρίκαλε;Горад Кырыкале;Кирикале;Кириккале;Къръккале;Кырыккале;قیریق قلعہ;قیریق‌قلعه;كيركالي;کیرک کلے;ქირიქკალე;クルッカレ;克勒克卡萊;키리칼레; +city::307657;Kirikhan;Kirikhan;Kırıkhan; +city::307864;Kilis;Ciliza;Kilis;Kilisas;Kilita;Kilîs;Kılis;ji li si;kilisi;killiseu;kirisu;kls;kyls;kylys;Κιλίς;Килис;Кіліс;Քիլիս;كلس;کیلس;کیلیس;ქილისი;キリス;基利斯;킬리스; +city::308464;Kayseri;ASR;Caesarea;Caesarea in Cappadocia;Casarea;Cearee;Cesarea;Cesarea de Capadocia;Cesarea in Cappadocia;Cesaree;Céarée;Césarée;Eusebeia;Gorad Kajsery;Kaisareia;Kaisaria;Kaisarie;Kaisarije;Kaiseri;Kaiseris;Kaizarie;Kajseri;Kayseri;Kaīzarie;Khuajseri;Mazaca;Mazakʻ;Qaisariye;Qayseri;kai sai li;kaiseli;kaiseri;ki se ri;qysry;qysryh;qysryt;qyysry;Καισάρεια;Горад Кайсеры;Кaйсери;Кайсери;Кайсері;Кајсери;Хъайсери;Մաժաք;קייסרי;قيصرية;قیصری;قیصریه;قەیسەری;کیسری شہر;ไกเซรี;კაისერი;カイセリ;開塞利;카이세리; +city::309527;Karaman;Ak Yokus;Ak Yokuş;Darende;Gorad Karaman;Karaman;Karamana;Karamanas;Kuaraman;Laranda;Qereman;ka la man;kalaman;karaman;karamana;karamani;qraman;Καραμάν;Горад Караман;Караман;Къараман;קאראמאן;قرامان;كارامان;کارامان;ਕਾਰਮਾਨ;ქარამანი;カラマン;卡拉曼;카라만; +city::309647;Agri;AJI;Aari;Aarı;Agiri;Agr";Agri;Agry;Agury;Agıri;Ahras;Ağrı;Karakilise;Karakose;Karaköse;Provinsi Agri;Provinsi Ağrı;Qerekose;a lei;aghri;aghry;ali;ari;aru;Агри;Агръ;Агры;Агъры;Աղրի;آغری;أغري;قەرەکۆسە;আরি;აღრი;アール;阿勒;아리; +city::310855;Kahta;Kahta;Kakhta;Kolik;Koluk;Kâhta;Kölük;Кахта; +city::310859;Kahramanmaras;Caesarea Germanicia;Germanicea Marqasi;Gorad Kakhramanmarash;Gurgum;KCM;Kachramanmaras;Kachramanmarasas;Kachramanmarašas;Kahramanmaras;Kahramanmaraş;Kakhramanmarash;Karamanmarash;Kuag'ramanmarash;Maraache;Marache;Maraix;Maras;Marasch;Marash;Marasion;Maraş;Meres;Qəhrəmanmaraş;ka he la man ma la shen;kafuramanmarashu;kahramanmarashi;kalamanmalasyu;Καχραμανμαράς;Горад Кахраманмараш;Караманмараш;Кахраманмараш;Къагьраманмараш;Қаһраманмараш;Մարաշ;קהרמאנמרש;قهرمان مرعش;قهرمان‌مرعش;قہرمان مرعش;مرعش;مەرعەش;کہرامانمراش;ქაჰრამანმარაში;カフラマンマラシュ;卡赫拉曼馬拉什;카라만마라슈; +city::310892;Kadirli;Kadirli;Karszulkadriye;Karszülkadriye; +city::311046;Izmir;Azmir;Esmirna;IZM;Ismir;Izmir;Izmira;Izmiras;Izmiro;Smirne;Smyrna;Smyrne;Yazmir;azmyr;izmiri;izumiru;yi zi mi er;İzmir;Σμύρνη;Измир;איזמיר;إزمير;იზმირი;イズミル;伊兹密尔; +city::311073;Isparta;"sparta;Baris;Gorad ysparta;Hamid;Hamid-Abad;Hamitabat;ISE;Isbarta;Isparta;Ispartah;Izbarta;Izparta;Sparta;Sparte;Spartē;Ysparta;asbrtt;asparta;iseupaleuta;usuparuta;yi si pa er ta;ysparta;İsparta;İzparta;Ισπάρτα;Горад Ыспарта;Испарта;Ъспарта;Ыспарта;אספרטה;إسبرطة;اسپارتا;ისპარტა;ウスパルタ;伊斯帕爾塔;이스파르타; +city::311111;Iskenderun;Alejandreta;Aleksandretta;Alessandretta;Alexandretta;Alexandrette;Alexandria ad Issum;Gorad Iskendehrun;Iskandariyah;Iskanderun;Iskenderon;Iskenderun;Iskenderunas;Lissandretta;Myriandrus;askndrwn;askndrwnt;iseukendelun;yi si ken de lun;Îskenderûn;İskenderon;İskenderun;Αλεξανδρέττα;Іскендерун;Горад Іскендэрун;Искендерун;Ալեքսանդրեթ;إسكندرونة;اسكندرون;اسکندرون;伊斯肯德倫;이스켄데룬; +city::311665;Igdir;"gdur;IGD;Idir;Igdir;Igdira;Igdyras;Iidir;Iğdır;Iıdır;aghdyr;ayghdr;ayghdyr;e de er;idileu;igdiri;udo~uru;ygdyr;Îdir;Īgdira;İğdır;Игдир;Ъгдър;Ыгдыр;Ցոլակերտ;اغدير;ایغدر;ایغدیر;ڕەشقەلاس;იგდირი;ウードゥル;厄德尔;이디르; +city::314830;Gaziantep;Aintab;Antep;Ayintap;Ayıntap;Dilok;Dîlok;GZT;Gazi-Ayintap;Gaziantep;Gaziantepa;Gaziantepas;Gazijantep;Gorad Gazijantehp;Guaziantep;Nkaziantep;Qazianteb;Qaziantep;gaji'antepa;gajiantepeu;gaziantepi;gazu~iantepu;jia ji an tai pu;ka si xan tep;Γκαζιαντέπ;Газиантеп;Газијантеп;Горад Газіянтэп;Гъазиантеп;Ґазіантеп;Գազիանթեպ;גזיאנטפ;عنتاب;غازی عینتاب;گازی ئانتەپ;ਗਜਿਆਂਤੇਪ;กาซีอันเตป;გაზიანთეფი;ガズィアンテプ;加濟安泰普;가지안테프; +city::314967;Fethiye;Fethieh;Fethiye;Fethiye-Calis;Fethy;Fetiye;Fetkhie;Makri;Makry;Telmessus;fei te xi ye;fetohii~e;fthyh;fthyt;petiye;pthyyh;Μάκρη;Фетхие;Фетхіє;פטהייה;ضلع فتھیے;فتحية;فتحیه;フェトヒイェ;费特希耶;페티예; +city::315202;Eskisehir;Dorylaeum;ESK;Ehskishekhir;Eski Shahr;Eski Shehir;Eski shehr;Eski-chehir;Eski-chéhir;Eskischehir;Eskisechir;Eskisechiras;Eskiseher;Eskisehir;Eskisehira;Eskishekhir;Eskişeher;Eskişehir;Eskišechiras;Eskišehira;Gorad Ehskishehkhir;ai si ji xie xi er;asky shhr;esakisehara;eseukisyehileu;eskishehiri;esukishehiru;Əskişəhər;Εσκισεχίρ;Горад Эскішэхір;Ескишехир;Ескішехір;Эскишехир;אסקישהיר;أسكي شهر;ئێسکی شەھر;اسکی شہر;اسکی‌شهر;ਏਸਕਿਸੇਹਰ;ესქიშეჰირი;エスキシェヒル;埃斯基谢希尔;에스키셰히르; +city::315368;Erzurum;Ard-ar-Rum;Arzan-ar-Rum;Arzirum;Carana;ERZ;Ehrzurum;Erserum;Erzeroum;Erzerum;Erzirom;Erzirum;Erzurum;Erzuruma;Erzurumas;Erzéroum;Erzîrom;Gorad Ehrzurum;Kalikala;Karin;Theodosiopolis;ai er zu lu mu;ard rwm;ardrwm;arzrwm;eleujulum;eruzurumu;erzurumi;xer su rum;yەrzyڕۆm;Ərzurum;Ερζερούμ;Горад Эрзурум;Ерзурум;Эрзурум;Կարին;ארזורום;أرضروم;ئەرزیڕۆم;ارزروم;ارض روم;เอร์ซูรุม;ერზურუმი;エルズルム;埃尔祖鲁姆;에르주룸; +city::315373;Erzincan;Arzanjan;Aziris;ERC;Ehrzindzhan;Ersindjan;Ersingan;Ersingjan;Erzincam;Erzincan;Erzindjan;Erzindzan;Erzindzanas;Erzindzhan;Erzindžanas;Erzingan;Erzinjan;Erznka;Erzıngan;Ezirgan;Yerznka;ai er jin zhan;arznjan;arzynjan;eleujinjan;erajikana;eruzu~injan;erzinjani;xer sin can;Ərzincan;Ерзинджан;Ерзинџан;Ерзінджан;Эрзинджан;Երզնկա;أرزينجان;ئەرزگان;ارزنجان;ਏਰਜਿੰਕਾਨ;เอร์ซินจาน;ერზინჯანი;エルズィンジャン;埃尔津詹;에르진잔; +city::315468;Ergani;Arghana;Ehgrani;Ergani;Erganiosmaniye;Osmaniye;Эграни; +city::315498;Eregli;Cybistra;Ehregli;Erakleia;Eregli;Ereğli;Heraclea;Heraclea Minoa;Heraclee;Heracleia Minoa;Herakleia;Héraclée;Konyaereglisi;Konyaereğlisi;ai lei li;arghly;Ηράκλεια;Ерегли;Ереглі;Эрегли;ارغلی;ارغلی، قونیہ;埃雷利; +city::315530;Ercis;Arcis;Ercis;Erciş; +city::315795;Elbistan;Ehl'bistan;Elbistan;albstan;Эльбистан;البستان; +city::315808;Elazig;EZS;Ehljazyg;Elazig;Elazii;Elaziz;Elaziğ;Elazığ;Elazıı;Eleziz;Elezîz;Eliazihas;Eljaz"g;Eljazig;Elâzız;Elâzığ;Gorad Ehljazyg;Mezreh;Xarberd;ai la ze;alazygh;aylazgh;elajiga;elazighi;ellaji;erazu;mʿmwrt alʿzyz;Горад Элязыг;Елазиг;Елязиг;Елязъг;Элязыг;Խարբերդ;الازیغ;ایلازغ;خارپێت;معمورة العزيز;ਏਲਾਜਿਗ;ელაზიღი;エラズー;埃拉泽;엘라지; +city::316284;Dortyol;Dortyol;Dörtyol; +city::316411;Dogubayazit;Baiazid;Bajaset;Bajasid;Bajesid;Bayazid;Bayazit;Bayezid;Bazid;Bazîd;Baīazid;Beyazit;Beyazıt;Beyzit;Beyzıt;Dogu Beyazidi;Dogubajazit;Dogubayazid;Dogubayazidi;Dogubayazit;Dogubeyazit;Doğu Beyazidi;Doğubayazidi;Doğubayazıd;Doğubayazıt;Doğubeyazıt;Karakose;Karaköse;dghw bayzyd;Догубаязит;دغو بایزید; +city::316541;Diyarbakir;Amed;Amida;DIY;Diarbekir;Diarbekr;Diari-Bekir;Diari-Békir;Dijarbakir;Dijarbakira;Dijarbakiro;Dijarbakyr;Dijarbakyras;Dijarbakˌyr;Dijarbekir;Dikranakerd;Diyarbakir;Diyarbakır;Diyarbekir;Diyarbekır;Diyarbəkir;Diyaribakir;Diyaribekir;Diyarıbakır;Diyarıbekir;Gorad Dyjarbakyr;Ntigiarmpakir;di ya ba ke er;diarbakiri;diyaleubakileu;diyarubakuru;dyar bkr;dyarbkr;Ντιγιαρμπακίρ;Горад Дыярбакыр;Диарбекир;Диярбакыр;Диярбақыр;Дијарбакир;Дијарбекир;Діярбакир;Դիարբեքիր;דיארבקיר;ئامەد;ديار بكر;دیار بکر;دیاربکر;დიარბაქირი;ディヤルバクル;迪亚巴克尔;디야르바키르; +city::317109;Denizli;DNZ;Denisli;Denislu;Denislü;Denizli;Denizlis;Denizlu;Gorad Dehnizli;Ntenizli;dai ni zi li;deni s li;denijali;denijeulli;denizli;denizuri;dnyzly;Ντενιζλί;Горад Дэнізлі;Денизли;Денізлі;دنيزلي;دنیزلی;دەنیزلی;ڈینزلی;ਦੇਨਿਜਲੀ;เดนิซลี;დენიზლი;デニズリ;代尼茲利;데니즐리; +city::318137;Hakkari;Colemerik;Hakari;Hakkari;Hakâri;Julamerk;Khakkari;Çölemerik;Хаккари; +city::318253;Cizre;Beit Zabde;Bezabde;Cizre;Dzhizre;Jazirhe-a-ibn-a Omar;Jesiret ibn Omar;Jesıret ibn Omar;NKT;Джизре; +city::318675;Ceyhan;Ceyhan;Dzejkhan;Dzhejg'an;Dzhejkhan;Gorad Dzhehjkhan;Hamidiye;Jehan;Jeyhan;Zhejkhan;jeihan;jeihani;jie yi han;jyhan;Џејхан;Горад Джэйхан;Джейгьан;Джейхан;Жейхан;Ջեյհան;גייהאן;جيهان;جیحان;سیہان;ჯეიჰანი;ジェイハン;傑伊漢;제이한; +city::320392;Burdur;Bourdour;Bourntour;Buldur;Burdur;Polydorion;ba er du er;brdwd;buleuduleu;burduri;burudo~uru;bwrdwr;Μπουρντούρ;Бурдур;بردود;بوردور;ბურდური;ブルドゥル;巴爾杜爾;부르두르; +city::320557;Bozuyuk;Bozoyuk;Bozujuk;Bozuyuk;Bozöyük;Bozüyük;bo ju yu ke;bwzwywk;Бозӱйӱк;بوزویوک;博聚于克; +city::320879;Bolvadin;Bolvadin; +city::321031;Bismil;Bismil; +city::321082;Bingol;BGG;Badlis;Bingol;Bingöl;Capakcur;Cevlik;Çapakçur;Çevlik;Бингол; +city::321426;Bergama;Bergama;Pergam;Pergame;Pergamo;Pergamon;Pergamos;Pergamum;Pérgamo;bie jia mo;brgama;pa jia ma;perugamon;prgamwn;prgmwn;Пергам;פרגמון;برگاما;پرگامون;ペルガモン;別迦摩;帕加马; +city::321580;Belek;Belek;Belekoy;Beleköy;Besyigit;Beşyiğit;Белек; +city::321836;Batman;BAL;Batman;Batman i Tyrkia;Batmanas;Elih;Gorad Batman;Iloh;Iluh;ba te man;bateuman;batman;batman trky;batmani;batoman;btman;btmn;Êlih;Μπατμάν;Батман;Баҭман;Горад Батман;בטמן;ئێلح;باتمان;باتمان، ترکی;بطمان;ضلع باتمان;ბათმანი;バトマン;巴特曼;바트만; +city::322165;Balikesir;Achyraus;Adrianoutherai;Adrianouthērai;BZI;Bali-Kessir;Balikesir;Balikesira;Balikesr;Balikesri;Balikesyras;Balukesir;Balukisu;Balykesir;Balıkesir;Belikesir;Belikiser;Gorad Balykesir;Hadrianutherae;Karassi;ba lei ke ai xi er;balikesiri;baliq asyr;ballikesileu;balyksyr;barukesu~iru;Μπαλικεσίρ;Баликесир;Баликесір;Балъкесир;Балыкесир;Балықесир;Горад Балыкесір;بالِق أسير;بالیکسیر;ბალიქესირი;バルケスィル;巴勒克埃西爾;발리케시르; +city::322830;Aydin;Aidin;Aidinas;Aidinio;Aidinion;Ajdin;Ajdun;Ajdyn;Ajdın;Aydin;Aydın;Aïdin;Aïdínion;CII;Gorad Ajdyn;Guesel Hissar;Guezel Hissar;Guezelhisar;Güsel Hissar;Güzel Hissar;Güzelhisar;Tralleis;Tralles;Tralli;ai deng;aidin;aidina;aidini;aido~un;aydyn;aywdn;Αϊδίνιο;Айдин;Айдън;Айдын;Ајдин;Горад Айдын;آیدین;أيدين;ایودن;ਐਦਿਨ;აიდინი;アイドゥン;艾登;아이딘; +city::323777;Antalya;AYT;Adalia;Antal'ja;Antalia;Antalija;Antaliya;Antaliyah;Antalja;Antalya;Antayla;Antália;Atali;Attalea;Attaleia;Attalia;Gorad Antal'ja;Olbia;Satalia;an ta li ya;antalia;antallia;antalya;antaruya;yantalya;Αττάλεια;Анталия;Анталија;Анталья;Анҭалиа;Горад Анталья;Անթալիա;אנטליה;آنتالیا;أنطاليا;ئانتالیا;انطالیہ;अंताल्या;ანთალია;アンタルヤ;安塔利亚;安塔利亞;안탈리아; +city::323779;Antakya;Antak'ja;Antakija;Antakiya;Antakiyah;Antakiyyah;Antakya;Antioch;Antioche;Antiocheia;Antiochia;Antiochia am Orontes;Antiochia di Siria;Antiochia vid Orontes;Antiochie;Antiochië;Antiohija;Antiokheia;Antiokhija;Antiokia;Antioquia;Antioquía;Antākiyyah;Antıoch;Anţākiyah;Hatay;an tiao ke;antakyt;antiokeia;ntakyt;Αντιόχεια;Антакия;Антакья;Антиохия;Антиохија;אנטיוכיה;أنطاكية;نتاكيّة;アンティオケイア;安条克; +city::323786;Ankara;ANK;Anakara;Ancara;Ancyra;Ang-ka-la;Angkara;Angora;Anguriyah;Ankar;Ankara;Ankara khot;Ankaro;Ankuara;Ankura;Ankyra;Ankyra (Ankyra);Anqara;Enguri;Engüri;Enqere;Gorad Ankara;akara;an ka la;angkala;ankara;anqrh;anqrt;xangkara;Ăng-kā-lá;Άγκυρα (Ankyra);Анкара;Анкара хот;Анкъара;Горад Анкара;Әнкара;Անկարա;אנקארא;אנקרה;آنکارا;أنقرة;ئەنقەرە;انقره;انقرہ;انکرہ;ܐܢܩܪܐ;अंकारा;আঙ্কারা;ਅੰਕਾਰਾ;ଆଙ୍କାରା;அங்காரா;అంకారా;ಅಂಕಾರಾ;അങ്കാറ;อังการา;ཨན་ཁ་ར།;ანკარა;አንካራ;アンカラ;安卡拉;앙카라; +city::323828;Anamur;Anamur;Anemur;Anemurium;a na mu er;anamwr;Анамур;آنامور;أنامور;ضلع انامور;阿納穆爾; +city::324190;Alanya;Alaia;Alaiye;Alan'ja;Alana;Alanija;Alanja;Alanya;Alaya;Alâiye;Coracesium;a la ni ya;alania;alanya;allania;aran'ya;Алания;Аланья;Аланія;Алања;אלניה;آلانیا;ألانيا;الانیا;ალანია;アランヤ;阿拉尼亚;알라니아; +city::324490;Aksehir;Ak Shehr;Aksehir;Akşehir;Philomelium; +city::324496;Aksaray;Aksarai;Aksaraj;Aksarajus;Aksaray;Akusaraj;Aqserayiye;Gorad Aksaraj;a ke sa lai;agsalai;akasara'e;aksarai;akusarai;aq sray;Ακσαράι;Аксарай;Аксарај;Акъсарай;Ақсарай;Горад Аксарай;آق سراي;آق‌سرای;آکسرے;ਅਕਸਾਰਾਏ;აქსარაი;アクサライ;阿克萨赖;악사라이; +city::324698;Akhisar;Ak Hisar;Akchisaras;Akhisar;Akhissar;Akkhisar;Aq Hisar;Axari;Azarion;Gorad Akkhisar;Thyatira;a ke xi sa er;akeuhisaleu;akysar;Акхисар;Горад Акхісар;آق‌حصار;آکیسار;阿克希薩爾;아크히사르; +city::325103;Ahlat;Ahlat;Akhlat;Erkizan;Ахлат; +city::325303;Afyonkarahisar;AFY;Acroenus;Acroënus;Af'on-Karakhisar;Af'onkarakhisar;Afion;Afion Karachisar;Afion Karahissar;Afion-Karahisar;Afionkarakhisar;Afioun-Kara-Hissar;Afium Kara Hissar;Afium Karahisar;Afiun Karahissar;Afiun Qarahisar;Afiun-Carahissar;Afjonkarahisara;Afjonkarahisaras;Afyon;Afyonkara Hisar;Afyonkarahisar;Afıon Karahissar;Gorad Afjon;Kara Hissar Sahib;Karahisarisahip;Karahısarısahıp;a fei yong ka la xi sa er;afiyonkarahisaru;afywn qrh hsar;apionkalahisaleu;Αφιόν Καραχισάρ;Афионкарахисар;АфйонкъарахӀисар;Афьон-Карахисар;Афьон-Карахісар;Афьонкарахисар;Горад Афён;Աֆիոն-Կարահիսար;أفيون قره حصار;ئافيون قاراھىسار;افیون قره‌حصار;افیون قرہ حصار;افیون‌ قره حصاری;قره ‌حصار ساحب;აფიონ-ყარაჰისარი;アフィヨンカラヒサール;阿菲永卡拉希萨尔;아피온카라히사르; +city::325330;Adiyaman;ADF;Adiaman;Adijaman;Adijamanas;Adityman;Adiyaman;Adiyamanska;Adujaman;Adyjaman;Adıyaman;Adıyamanská;Antigiaman;Carbanum;Gorad Adyjaman;Hisnumansur;Husnimansur;Husnumansur;Hüsnümansur;Perre;Pordonnium;Semsur;Semsûr;a de ya man;a de ya man sheng;adiamani;adiyaman;adiyamana;ado~uyaman;adyaman;adyyamyn;yadyyama;Αντιγιαμάν;Адияман;Адијаман;Адъяман;Адыяман;Горад Адыяман;Ադիյաման;אדיאמן;آدیامان;آدی‌یامان;أديامان;ئادىياما;ادییامین;سەمسوور;আদিয়ামান;ადიამანი;アドゥヤマン;阿德亚曼;阿德亚曼省;아디야만; +city::325336;Adilcevaz;Adeljivaz;Adilcevaz;Adildzhevaz;Адилджеваз;عادالجواز;عادلجواز; +city::325363;Adana;ADA;Adana;Adane;Adanë;Adhanah;Antiocheia;Edene;Gorad Adana;a da na;adana;adnt;xa da na;yadana;Άδανα;Αδανα;Αντιόχεια;Адана;Горад Адана;Ադանա;אדנה;آدانا;أضنة;ئادانا;अदना;আদানা;อาดานา;ადანა;アダナ;阿达纳;아다나; +city::442301;Batikent;Batikent;Batıkent; +city::737022;Zonguldak;Gorad Zanguldak;ONQ;Sandaraca;Songuldak;Sungul;Zon'nkoulntak;Zonguldak;Zonguldakas;Zonguldaq;Zonquldak;Zoungouldagh;Zunguldak;jong-guldakeu;zangwldak;zngwldagh;zong gu er da ke;zonguldaki;zongurudaku;zwnghwldaq;zwngwldagh;zwngwldak;Ζονγκουλντάκ;Горад Зангулдак;Зонгулдак;زانگولداک;زنگولداغ;زونغولداق;زونگولداغ;زونگولداک;ზონგულდაქი;ゾングルダク;宗古爾達克;종굴다크; +city::737054;Zile;Zil;Zile;Зил; +city::737071;Zeytinburnu;; +city::737961;Korfez;Korfez;Körfez;Yaremdji;Yarimca;Yarımca; +city::738025;Yalova;Gialova;Jalov;Jalova;Pythiae Thermae;Yalova;Yaluva;ialova;ya luo wa;yalloba;yalwa;yalwfa;yalwwa;yarovu~a;Γιάλοβα;Јалова;Ялова;يالوفا;یالوا;یالووا;იალოვა;ヤロヴァ;亞洛瓦;얄로바; +city::738329;UEskuedar;Chrysopolis;Scutari;Skutari;Uskjudar;Uskudar;askdar;Üsküdar;Ускюдар;اسکدار; +city::738349;UEnye;Oenoe;Onieh;UEnye;Un'e;Unia;Unie;Unieh;Ünia;Ünye;Унье; +city::738377;Umraniye;; +city::738618;Turhal;Turhal;Turkhal;Турхал; +city::738648;Trabzon;Atrabazandah;Gorad Trabzon;TZX;Tarabazandah;Tirabson;Tirabzon;Trabzon;Trabzona;Trabzonas;Trapesonda;Trapezonte;Trapezounta;Trapezund;Trapezunt;Trapezus;Trapisonda;Trapizon;Trebisonda;Trebizond;Trebizonda;Trebizonde;Trébizonde;tarabazona;te la bu zong;teulabeujon;torabuzon;trabzwn;trbzwn;tʼrapʼizoni;Τραπεζούντα;Горад Трабзон;Трабзон;Трапезунт;Տրապիզոն;טרבזון;ترابزون;ترابزۆن;طرابزون;ਤਰਾਬਜ਼ੋਨ;ტრაპიზონი;トラブゾン;特拉布宗;트라브존; +city::738743;Tokat;Dazimon;Evdokia;Gorad Takat;Provincia de Tokat;TJK;Tocat;Tokat;Tokat Province;Tokatas;Tokatiaen;Tokatiän;Tokatska provincie;Tokatská provincie;Tokhuat;Toqat;Tukat;tokateu;tokati;tokatto;tuo ka te;twkat;twqat;twqt;Τοκάτ;Горад Такат;Токат;Тохъат;Եվդոկիա;טוקט;توقات;توکات;თოქათი;トカット;托卡特;토카트; +city::738927;Tekirdag;Bisanthe;Gorad Tehkirdag;Raidestos;Rhaedestus;Rodoscuk;Rodosto;Rodostó;Rodosçuk;Tekfur Dagh;Tekfurdag;Tekfurdağ;Tekirdaa;Tekirdag;Tekirdahas;Tekirdağ;Tektur Dagh;Təkirdağ;tai ji er da;teki r dak;tekileuda;tekirdaghi;tekiruda;tkyrdagh;tykrdagh;Ραιδεστός;Горад Тэкірдаг;Родосто;Текирдаг;Текірдаг;טקירדא;تكيرداغ;تکیرداغ;تیکرداغ;เตกีร์ดาก;თექირდაღი;テキルダー;泰基爾達;테키르다; +city::739549;Sisli;Sisli;Şişli; +city::739634;Silivri;Selibria;Selymbria;Siliviri;Silivri;slwry;slywry;سلوری;سلیوری; +city::740264;Samsun;Amisos;Amisus;Djanik;Gorad Samsun;Janik;SSX;SZF;Sampsounta;Sams;Samsoun;Samsun;Samsuna;Samsunas;sa mu song;sam sun;samsun;samsuni;samswn;samusun;smswn;symsn;Αμισός;Σαμψούντα;Горад Самсун;Самсун;Սամսուն;סמסון;سامسون;سیمسن;ซัมซุน;სამსუნი;サムスン;薩姆松;삼순; +city::740483;Rize;Bechirias;Corum;Provinsi Rize;QRI;Rhizus;Rize;Rizeh;Rizenska provincie;Rizenská provincie;Rizounta;Rizė;Rizə;li ze;lije;rize;ryzh;Çorum;Ριζούντα;Ризе;Різе;Ռիզե;ريزه;ریزه;ریزہ;ریزے;რიზე;リゼ;里澤;리제; +city::741045;Orhangazi;Orhangazi;Pazarkoy;Pazarköy; +city::741100;Ordu;Cotyora;OGU;Ordu;Орду; +city::741385;Mustafakemalpasa;Kirmasti;Mustafakemalpasa;Mustafakemalpaşa;Mustafakemelpasa;Mustafakemelpaşa; +city::741609;Merzifon;Marsivan;Merzifon;Phazemon;mei er ji feng;mrzyfwn;Мерзифон;ضلع مرزیفون;مرزیفون;梅爾濟豐; +city::741763;Maltepe;; +city::741855;Luleburgaz;Arcadiopolis;Bergula;Ljuleburgas;Ljuleburgaz;Lueleburgaz;Lule Burgas;Luleburgaz;Lüleburgaz;Люлебургаз;Люлебургас; +city::743166;Kirklareli;Kirk Kilise;Kirk Kilisse;Kirk-Kilissa;Kirklareli;Kirklarelis;Kyrklareli;Kırklareli;Lozen;Lozengrad;Qirxlareli;Qırxlareli;Saranta Ekklesiai;Saranta Ekklēsiai;ke er ke la lei li;kileukeullalelli;kirakalaleri;kirklareli;krklaryly;kurukurareri;qrqlr ayly;qrqlrayly;Κιρκλαρελί;Киркларелі;Кыркларели;Лозенград;قرقلر ايلي;قرقلرایلی;کرکلاریلی;ਕਿਰਕਲਾਲੇਰੀ;ქირქლარელი;クルクラーレリ;克爾克拉雷利;키르클라렐리; +city::743818;Kavakli;Fetekoy;Feteköy;Kavakli;Kavakly;Kavaklı;Каваклы; +city::743882;Kastamonu;Castamena;Castamon;Castamoni;Castamonu;Castamuni;KFS;Kastambul;Kastamoni;Kastamonu;Kastamouni;Kastamuni;Kastamuniyah;Qastamuni;Qestamonu;ka si ta mo nu;kaseutamonu;kastamanw;kastamwnw;kasutamonu;qstmwny;Κασταμονή;Кастамону;Касҭамону;قسطموني;قسطمونی;کاستامانو;کاستامونو;კასთამონუ;カスタモヌ;卡斯塔莫努;카스타모누; +city::743952;Kars;Cars;Gorad Kars;KSY;Kapc;Kars;Karsa;Karsas;Khuars;Kuars;Qars;Qers;Vanand;ka er si;kaleuseu;kar s;karasa;kars;karusu;qars;Καρς;Горад Карс;Карс;Къарс;Хъарс;Ҟарс;Կարս;קארס;قارص;قەرس;كارس;کارس;ਕਾਰਸ;การ์ส;ყარსი;カルス;卡爾斯;카르스; +city::744562;Karabuk;Karabiukas;Karabjuk;Karabuek;Karabuk;Karabük;Karampouk;Qerebuk;ka la bi ke;ka la bi ke sheng;kalabwikeu;karabuka;karabwk;karabyukku;Καραμπούκ;Карабук;Карабюк;Карабүк;Карабӱк;قره‌بوک;قرہ بوک;كارابوك;کارابوک;ਕਾਰਾਬੁਕ;ყარაბუქი;カラビュック;卡拉比克;卡拉比克省;카라뷔크; +city::745028;Izmit;Astacus;Cocaeli;Ismid;Ismit;Isnimid;Izmid;Izmit;Kodja-Eli;Koja-Ili;Nicomedia;Nicomedie;Nicomédie;Nikomedeia;Nikomedia;izumitto;yi zi mi te;İzmit;Измит;イズミット;伊兹密特; +city::745044;Istanbul;Bizanc;Bizánc;Byzance;Byzantion;Byzantium;Byzanz;Constantinoble;Constantinopla;Constantinople;Constantinopolen;Constantinopoli;Constantinopolis;Costantinopoli;Estambul;IST;Istamboul;Istambul;Istambuł;Istampoul;İstanbul;Istanbúl;Isztambul;Konstantinapoly;Konstantinopel;Konstantinopolo;Konstantinoupole;Konstantinoupoli;Konstantinoupolis;Konstantinápoly;Kustantiniyah;Micklagard;Micklagård;Mikligardur;Mikligarður;Stamboul;Stambul;Stambula;Stambuł;Tsarigrad;Vizantija (Vizantija);Vyzantio;astnbwl;bijantium;byuzantion;byzntywn;iseutanbul;istambula;isutanburu;stin Poli [stimˈboli];yi si tan bu er;İstanbul;Βυζάντιο;Βυζαντιο;Ισταμπουλ;Ισταμπούλ;Κωνσταντινουπολη;Κωνσταντινούπολη;Κωνσταντινούπολις;στην Πόλι [stimˈboli];Византија (Vizantija);Истанбул;Стамбул;ביזנטיון;اسطنبول;इस्तांबुल;イスタンブール;ビュザンティオン;伊斯坦布尔;비잔티움;이스탄불; +city::745169;Inegol;Inegeul;Inegoel;Inegol;İnegöl; +city::746666;Goelcuek;Geulzuk;Goelcuek;Gölcük; +city::746881;Giresun;Cerasus;Choerades;Gireson;Giresun;Giresunas;Kerasounta;Kerassunde;Kerasun;Kerasunda;Kerasunt;Kiresun;OGU;Pharnacia;ghyrswn;gilesun;giresun;giresuni;grysn;gryswn;ji lei song;Κερασούντα;Гиресун;Ґіресун;Կերասուն;غيرسون;گره‌سون;گریسن;گریسون;გირესუნი;ギレスン;吉雷松;기레순; +city::746958;Gemlik;Cius;Gemlik;Kios;Kiye;Гемлик; +city::747014;Gebze;Gebze;Gebzė;Gorad Gebze;Guebze;Libyssa;gai bu ze;gbzh;gebuze;kkbwzh;Гебзе;Горад Гебзе;ضلع گیبزے;ککبوزه;گبزه;گەبزە;ゲブゼ;蓋布澤; +city::747155;Fatsa;Fatisa;Fatsa;Fatseh;Fatza;Phadisana;Phadısana;Polemonium;Side;Фатса; +city::747323;Esenyurt;Eksinoz;Ekşinoz;Esenyurt;Eskiyuz;Eskiyüz; +city::747340;Esenler;Litros; +city::747471;Eregli;Bender Erekli;Bender-Eregli;Bender-Ereğli;Ehregli;Eregli;Erekli;Ereğli;Ergeli;Heraclea Pontica;Heraklea;Karadenizereglisi;Karadenizereğlisi;Эрегли; +city::747489;Erbaa;Ehrba;Erbaa;Herek;Эрба; +city::747712;Edirne;Adrianapolis;Adrianopel;Adrianople;Adrianopoja;Adrianopol;Adrianopoli;Adrianopolis;Adrianoupoli;Adrianoupolis;Adrianòpolis;Adrinople;Andrianoplin;Andrinople;Andrinòple;Drinapoly;Drinopolje;Drinápoly;Ederne;Ederné;Edirnae;Edirne;Edirnä;Edirnė;Edrene;Ehdirne;Gorad Ehdyrneh;Hadrianople;Hadrianopolis;Jedrene;Odrin;Odrín;adrnh;adrnt;ai di er nei;edileune;edirane;edirne;edirune;xe dirne;Édirne;Ədirnə;Αδριανούπολη;Једрене;Горад Эдырнэ;Едрене;Едірне;Одрин;Эдирне;Ադրիանապոլիս;אדירנה;أدرنة;ادرنه;ادرنہ;ਏਦਿਰਨੇ;เอดีร์เน;အီဒါးနီမြို့;ედირნე;エディルネ;埃迪爾內;에디르네; +city::747764;Duzce;Dusje;Duzce;Duzdje;Düzce; +city::748870;Cubuk;Chubuk;Chubuku;Cubuk;Distretto di Cubuk;Distretto di Çubuk;Çubuk;Чубук;Чубукъ;ضلع چوبک;چوبوک، انقرہ; +city::748879;Corum;Chorum;Corum;Corumas;Euchaita;Gorad Charum;Tsoroum;cholum;chorumi;chorumu;chwrwm;jwrwm;koruma;qiao lu mu;Çorum;Čorumas;Τσορούμ;Горад Чарум;Чорум;جوروم;چوروم;چۆروم;ਕੋਰੁਮ;ჩორუმი;チョルム;喬魯姆;초룸; +city::748893;Corlu;Chorlu;Corlu;Corum;Gorad Charlu;Tzirallum;Tzurullum;chwrlw;qiao er lu;tshwrlw;Çorlu;Çorum;Čorlu;Горад Чарлу;Чорлу;تشورلو;ضلع چورلو;چورلو;喬爾盧; +city::749274;Cerkezkoey;Cerkezkoey;Çerkezköy; +city::749704;Carsamba;Carsamba;Carsampa;Carsanba;Charshamba;Charshambah;Charshembe;Themiscyra;Çarşamba;Çarşanba;Чаршамба; +city::749748;Khanjarah;Cankiri;Changra;Changri;Chankiri;Chankyry;Gangra Germanicopolis;Ghanjarah;Kangiri;Kangırı;Khanjarah;knghry;Çankırı;Чанкыры;کنغری; +city::749780;Canakkale;Abydus;CKZ;Canakale;Canakkale;Canaqqala;Canaxqele;Chanak;Chanakale;Chanakkale;Chanaq;Chanoqqalʼa;Dardanelles;Kale-Sultanie;Tsanakkale;canakale;cha nak kale;chanakalle;chanakkare;chnaq‌qlʿh;chynk qlʿh;janakaly;qia na ka lai;qia na ka lai sheng;znqlh;Çanakkale;Çanaqqala;Çanaxqele;Čanakalė;Τσανάκκαλε;Чанакале;Чанаккале;Չանաքկալե;צנקלה;تاناککالے;جاناكالي;چاناق‌قلعه;چناق قلعے;چناق‌قلعه;چینک قلعه;ਚਾਨਕਲੇ;ชานักกาเล;ჩანაქკალე;チャナッカレ;恰納卡萊;恰纳卡莱省;차나칼레; +city::750269;Bursa;Boursa;Brossa;Broussa;Brousse;Brusa;Brussa;Burs;Bursa;Bursae;Burso;Gorad Bursa;Prousa;YEI;bu er sa;buleusa;bur sa;bursa;burusa;bwrsa;bwrsh;bwrst;Προύσα;Бурсæ;Бурса;Бурсо;Горад Бурса;בורסה;برصہ;بورسا;بورصة;بورصه;بورصہ;بۇرسا;बुर्सा;บูร์ซา;ბურსა;ブルサ;布尔萨;부르사; +city::750516;Bolu;Boli;Bolou;Bolu;Claudiopolis;Gorad Balu;bo lu;bollu;bolu;boru;bwlw;bwly;Μπολού;Болу;Горад Балу;بولو;بولی;ბოლუ;ボル;博盧;볼루; +city::751077;Bandirma;BDM;Banderma;Bandirma;Bandyrma;Bandırma;Panderma;Panormos;Panormus;Бандырма; +city::751324;Bagcilar;Badzilaras rajons;Bagdzhylar;Bādžilaras rajons;Cifitburgaz;Ciftburgaz;Çiftburgaz;Çıfıtburgaz;Багджылар; +city::751335;Bafra;Bafra;Paura;Бафра; +city::751949;Ardesen;Ardasen;Ardaşen;Ardesen;Ardeshen;Ardeşen;Ardisin;Ardişin;Ардешен; +city::752015;Amasya;Amas'ja;Amasea;Amaseia;Amasia;Amasija;Amasiyah;Amasya;Amasya ringkond;Amàsia;Amásia;MZH;a ma xi ya;amasi'a;amasia;amasu~iya;amasya;amasyh;yamasya;Αμάσεια;Амасия;Амасья;Ամասիա;אמסיה;آماسیه;أماصيا;ئاماسیا;اماسیا;ਅਮਾਸਿਆ;ამასია;アマスィヤ;阿馬西亞;아마시아; +city::752850;Adapazari;Ada Bazar;Adapazar;Adapazari;Adapazaris;Adapazaru;Adapazary;Adapazarı;Antapazari;Gorad Adapazary;Sakar'ja;Sakarya;Tarsia;a da pa zha lei;adabazary;adapajali;adapazari;adapazaru;adapazary;yadapazary;Ανταπαζαρί;Адапазар;Адапазари;Адапазаръ;Адапазары;Адаҧазары;Горад Адапазары;Сакарья;Ադաբազարը;آدابازاري;آداپازاری;ئاداپازاری;ضلع اداپازاری;ადაფაზარი;アダパザル;阿达帕扎勒;아다파자리; +city::6947637;Atasehir;; +city::6947639;Basaksehir;; +city::6947640;Beylikduezue;; +city::6947641;Bueyuekcekmece;; +city::6955677;Cankaya;Cankaya;Çankaya; +city::7627067;Bahcelievler;; +city::7628416;Sultangazi;; +city::7628419;Sultanbeyli;; +city::7628420;Sancaktepe;; +city::7701384;Karabaglar;; +city::8074174;Muratpasa;Muratpasa;Muratpaşa; +city::11238838;Merkezefendi;; +city::3573738;San Fernando;San Fernando; +city::3574116;Mon Repos;; +city::3574309;Laventille;Laventille; +city::3574810;Chaguanas;Chaguanas; +city::1665196;Douliu;Douliou;Douliu;Doulju;Dǒuliù;GJau Luc;Tau-lak-chhi;Teu-liuk-su;Tou-liou;Tou-liu;Tou-liu-chieh;Táu-la̍k-chhī;Téu-liuk-sṳ;Yun-lin;Yun-lin-hsien;Yün-lin;Yün-lin-hsien;deoulyu si;dou liu;dou liu shi;dwlyw;Đấu Lục;Доулю;دولیو;斗六;斗六市;더우류 시; +city::1668341;Taipei;GJai Bac;Kota Taipei;Pan Kiao;Pan-ch'iao;Pan-ch'iao-chen;Pan-ch'iao-chieh;Pan-ch’iao;Pan-ch’iao-chen;Pan-ch’iao-chieh;T'ai-pei;T'ai-pei Shih;T'ai-pei-hsien;TPE;Taibei Shi;Taibei Shih;Taibejus;Taibėjus;Taipe;Taipeh;Taipei;Taipeium;Taipejus;Taipé;Taipéi;Taipėjus;Tajbehj;Tajpej;Tajpeo;Tayipeh;Tayipèh;Tchaj-pej;T’ai-pei;T’ai-pei Shih;T’ai-pei-hsien;ta'ipe;tai bei;tai bei shi;taibei;taibei si;taipei;thipe;Đài Bắc;Ταϊπέι;Тайбэй;Тайпей;Тајпеј;טאיפי;טאיפיי;تەيبېي;ताइपे;ไทเป;ཐའེ་པེ;ታይፔ;台北;台北市;臺北市;타이베이;타이베이 시;타이페이; +city::1668355;Tainan;Dai-nang;Dài-nàng;GJai Nam;Gorad Tajnan';Kota Tainan;T'ai-nan;T'ai-nan-shih;TNN;Tai-lam-chhi;Tainan;Tainan City;Tainanas;Tainanshi;Tainanshih;Tajnan;Tajnan';Taynam;Tchaj-nan;Teynen shehiri;Thoi-nam-su;Thòi-nàm-sṳ;Tâi-lâm-chhī;T’ai-nan;T’ai-nan-shih;tai nan;tai nan shi;tainan si;taynan;thi hnan;Đài Nam;Горад Тайнань;Тайнань;טאינאן;تاينان;تاینان;ไถหนัน;台南;台南市;臺南;臺南市;타이난 시; +city::1668399;Taichung;GJai Trung;Kota Taichung;RMQ;Tai-tiong-chhi;Taichung;Taicungas;Taizhong;Taizhong Shi;Taičungas;Tajchzhun;Tajcung;Tajzhun;Tajĉung;Taychun;Tchaj-cung;Tchaj-čung;Teyjong shehiri;Thoi-chung-su;Thòi-chûng-sṳ;Tâi-tiong-chhī;tai zhong;tai zhong shi;taijung si;tay shangh;Đài Trung;Тайжун;Тайчжун;تاي شانغ;台中;台中市;臺中市;타이중 시; +city::1668467;Daxi;Dasi;Daxi;Ta-Si-chen;Ta-ch'i;Ta-ch'i-chen;Ta-ch'i-chieh;Ta-ch’i;Ta-ch’i-chen;Ta-ch’i-chieh;Ta-hsi;Ta-hsi-chen;Ta-k'o-k'an;Ta-k’o-k’an;da xi;Та-Си-чен;大溪; +city::1670029;Banqiao;Banchiao;Banciao;Banciao District;Banqiao;Banqiao District;Fang-ch'iao;Fang-ch’iao;Pan-ch'iao;Pan-ch’iao;San-kuang;San-kuang-li;ban qiao;ban qiao qu;fang qiao;板橋;板橋區;枋橋; +city::1670310;Puli;P'u-li;P'u-li-chieh;Puli;P’u-li;P’u-li-chieh;bu li;Пули;埔里; +city::1671566;Nantou;Lam-tau-chhi;Lâm-tâu-chhī;Nam GJau;Nam Đầu;Nam-theu-su;Nan'tou;Nan-t'ou;Nan-t'ou-chieh;Nan-t'ou-hsien;Nan-t'ou-shih;Nan-tchou;Nan-t’ou;Nan-t’ou-chieh;Nan-t’ou-hsien;Nan-t’ou-shih;Nantou;Nantou City;Nantou by;Nantow;Nàm-thèu-sṳ;nan tou;nan tou shi;nanteou si;nantw;Наньтоу;نانتو;南投;南投市;난터우 시; +city::1672228;Magong;MZG;Magong;Magun;P'eng-hu;P'eng-hu-hsien;ma gong;Магун;馬公; +city::1673820;Kaohsiung;Gaosjun;Gaosyongshih;Gaoxiong;Gaoxiongshi;KHH;Kao-hsiung;Kao-hsiung-shih;Kaohsiung;Kaohsiung City;Takao;gao xiong;gao xiong fu;gao xiong shi;Гаосюн;高雄;高雄巿;高雄市; +city::1674199;Yilan;Ciudad de Yilan;Gi-lan-chhi;Gî-lân-chhī;I-lan;I-lan-hsien;I-lan-shih;Ilan;Ilan';Jilanas;Ka-ma-lan;Kota Yilan;Nghi Lan;Ngi-lan-su;Ngì-làn-sṳ;Yilan;Yilan City;Yílán;ilan si;yi lan;yi lan shi;yylan;Илань;یلن سٹی;ییلان;宜蘭;宜蘭市;이란 시; +city::1674504;Hualien City;HUN;Hua Lien Kang;Hua-lien;Hua-lien-chiang;Hua-lien-hsien;Hua-lien-shih;Hualian;Hualian Shi;Hualien;Hualien City;Huālián Shì;Khualjan';hua lian shi;hwalyen si;hwalyn;Хуалянь;هوالین;花蓮市;화롄 시; +city::1675151;Hsinchu;HSZ;Hsin-chu;Hsin-chu-hsien;Hsin-chu-shih;Hsinchu;Kota Hsinchu;Sin'chzhu;Sin-chuk-su;Sin-cu;Sin-tek-chhi;Sin-tek-chhī;Sin-ču;Sinhcuz;Sinjhushih;Sîn-chuk-sṳ;Tan Truc;Tân Trúc;Xinzhu;Xinzhushi;nkhr sin cu;sinju si;syn shw;xin zhu;xin zhu shi;Синьчжу;Шиньжү;سين شو;นครซินจู๋;ཞིག་ཀྲུའུ།;新竹;新竹市;신주 시; +city::1678228;Keelung;Chi-lung;Chi-lung-shih;Chilung;Co Long;Czilun;Cơ Long;Gie-leng;Giĕ-lè̤ng;Jilong;Jilongshi;Jilongshih;Ke-lang-chhi;Ke-lâng-chhī;Keelung;Ki-lung-su;Kota Keelung;Kî-lùng-sṳ;Shi-lun;Ti-lung;ji long;ji long shi;jilung si;ky lngh;Ťi-lung;Цзилун;Ши-лун;كي لنغ;基隆;基隆市;지룽 시; +city::6696918;Taoyuan City;Taojuan';Таоюань; +city::6949678;Taitung City;GJai GJong;Taidong;Taitung;Tchaj-tung;Táidong;tai dong;Đài Đông;台東; +city::148730;Zanzibar;Gorad Zanzibar;Ilu Zanzibar;Poli tis Zanzivaris;Sansibar;Sansibar-Stadt;Unguja;ZNZ;Zanjibar;Zanzibar;Zanzibar City;Zanzibar by;Zanzibaras;Zanzibaro;Zanzibár;Zanzíbar;janjibaleusiti;mdynt znjbar;sang gei ba er shi;zanjibarushiti;zanzibari;zngbar;znzybr syty;Ìlú Zanzibar;Πόλη της Ζανζιβάρης;Горад Занзібар;Занзибар;Занзібар;זנזיבר סיטי;زنجبار شہر;زنگبار;مدينة زنجبار;ზანზიბარი;ザンジバルシティ;桑给巴尔市;잔지바르시티; +city::149027;Uyovu;; +city::149129;Ushirombo;Ushirombo; +city::149606;Tanga;Gorad Tanga;Longa;TGT;Tan'nka;Tanga;tan ga;tang-ga;tanga;tanga tanzanya;tnja;Τάνγκα;Горад Танга;Танга;טאנגה;تانگا، تانزانیا;تانگا، تنزانیہ;تنجا;タンガ;坦噶;탕가; +city::149658;Tabora;TBO;Tabora;Tampora;ta bo la;tabola;tabora;tabwra;Ταμπόρα;Табора;تابورا;タボラ;塔波拉;타보라; +city::149703;Sumbawanga;SUT;Sumbauanga;Sumbavanga;Sumbawanga;Zumbawanga;Zumbayanga;song ba wan jia;sumbawang-ga;sunbawanga;swmbawanga;Сумбаванга;Сумбауанга;سومباوانگا;スンバワンガ;松巴萬加;숨바왕가; +city::149879;Singida;; +city::150006;Shinyanga;SHY;Schinjanga;Shin'janga;Shinjanga;Shinyanga;Sinjanga;shinyanga;shynyanga;siniang-ga;xin yan jia;Šinjanga;Шиньянга;Шинянга;شینیانگا;シニャンガ;欣延加;시니앙가; +city::152224;Mwanza;Gorad Mvanza;MWZ;Muansa;Muanza;Muvanzo;Mvanza;Mwamza;Mwansa;Mwanza;meuwanja;mu wan zha;muwanza;mvanza;mwanza;Горад Мванза;Мванза;Муанза;موانزا;მვანზა;ムワンザ;姆万扎;므완자; +city::152451;Musoma;MUZ;Mazama;Misoma;Musoma;Musome;Muzoma;maswma;mu suo ma;musoma;mwswma;Мусома;ماسوما;موسوما;ムソマ;穆索馬;무소마; +city::153176;Mpanda;Mpanda; +city::153209;Moshi;Moschi;Moshi;Mosi;Mosis;Mošis;QSI;mo xi;moshi;mosi;mwshy;mwsy;Μόσι;Моши;מושי;موشی;موشی، تنزانیہ;モシ;莫希;모시; +city::153220;Morogoro;Gorad Maragora;Mkoa wa Morogoro;Morogoras;Morogoro;Moronkoro;Mrogoro;Murogoro;mo luo ge luo;mologolo;morogoro;mwrwghwrw;mwrwgwrw;Μορογκόρο;Горад Марагора;Морогоро;موروغورو;موروگورو;モロゴロ;莫罗戈罗;모로고로; +city::154380;Mbeya;MBI;Mbee;Mbeja;Mbeya;ambya;mbya;meubeya;mu bei ya;mubeya;Мбее;Мбея;امبیا;مبيا;مبیا;ムベヤ;姆貝亞;므베야; +city::155101;Makumbako;Makambako;Makumbako; +city::157403;Kilosa;Kilosa;Kilossa; +city::157738;Kigoma;Gorad Kigoma;Kigoma;Kigoma-Ujiji;Kigome;Kigomo;TKQ;ji ge ma;kigoma;kyghwma;kygwma;qygwmh;Горад Кігома;Кигома;Кигоме;קיגומה;كيغوما;کیگوما;キゴマ;基戈馬;키고마; +city::158151;Katumba;Kabumba;Katumba;Катумба; +city::159071;Iringa;IRI;Irin'nka;Iringa;ayrynga;ayryngha;iling-ga;iringa;yi lin jia;Ιρίνγκα;Иринга;إيرينغا;ایرینگا;イリンガ;伊林加;이링가; +city::160196;Dodoma;DOD;Dodom;Dodoma;Dodomao;Dódóma;Gorad Dadoma;Idodoma;Ntontoma;do do ma;dodoma;du du ma;duo duo ma;dwdwma;dwdwmh;totoma;Ντοντόμα;Горад Дадома;Додома;Դոդոմա;דאדאמא;דודומה;دودوما;دۆدۆما;ڈوڈوما;डोडोमा;दोदोमा;ਦੋਦੋਮਾ;டொடோமா;โดโดมา;დოდომა;ዶዶማ;ドドマ;多多马;杜篤瑪;도도마; +city::160263;Dar es Salaam;DAR;Dar Es Salaam;Dar Es Salam;Dar es Salaam;Dar es Salam;Dar es Salamas;Dar es Salams;Dar es Salám;Dar es-Salaam;Dar es-Salam;Dar əs Salam;Dar-ehs-Salam;Dar-ehs-Salam shaary;Dar-es-Salaam;Dar-es-Salam;Darasalam;Daresalama;Daresalamo;Daressalaam;Daressalam;Daruesselam;Darüsselam;Dárasalám;Dār es Salām;Dāresalāma;Gorad Dar-ehs-Salam;Ntar es Salam;Ntontoma;da lei si sa la mu;daleueseusallam;dar alslam;dar-es-salami;dar-xes-salam;dara asa salama;dara esa salama;daralslam;daruesusaramu;san lan gang;tarus'salam;Νταρ ες Σαλάμ;Ντοντόμα;Горад Дар-эс-Салам;Дар ес Салам;Дар ес-Салаам;Дар-ес-Салам;Дар-эс-Салам;Дар-эс-Салам шаары;דאר א-סלאם;דאר עס סאלאאם;دار السلام;دارالسلام;دارېسسالام;दार अस सलाम;दार एस सलाम;ਦਾਰ ਅਸ ਸਲਾਮ;தாருஸ்ஸலாம்;ดาร์-เอส-ซาลาม;ཏ་རེ་སི་ས་ལམ།;ဒါအက်စ် ဆယ်လန်းမြို့;დარ-ეს-სალამი;ダルエスサラーム;三蘭港;达累斯萨拉姆;다르에스살람; +city::160833;Buseresere;; +city::160892;Bunda;; +city::160961;Bukoba;BKZ;Bukoba;Bukobo;Gorad Bukoba;bu ke ba;bukoba;bwkwba;Букоба;Горад Букоба;بوكوبا;بوکوبا;ブコバ;布科巴;부코바; +city::161290;Bagamoyo;Bagamojo;Bagamoyo;ba jia mo yue;bagamoyo;bajamwyw;Багамойо;باجامويو;バガモヨ;巴加莫約;바가모요; +city::161325;Arusha;ARK;Aruscha;Arusha;Aruso;Aruŝo;a lu sha;arusha;arwsha;Аруша;آروشا;アルーシャ;阿鲁沙; +city::877401;Songea;SGX;Songea;Songeja;Ssongea;sangy;song gai a;song-gea;songea;swngya;Сонгеа;Сонгея;سانگی;سونگیا;ソンゲア;松蓋阿;송게아; +city::877747;Mtwara;MYW;Mikindani;Mtvara;Mtwara;amtwara;meuteuwala;mtwara;mutowara;Мтвара;امتوارا;متوارا;ムトワラ;므트와라; +city::616743;Druzhkivka;Druzhkivka;Druzhkovka;Дружковка;Дружківка; +city::686967;Zhytomyr;Gorad Zhytomir;Jitomir;Jytomyr;Jytómyr;Jîtomîr;Jıtomır;Schytomyr;Shitomir;ZTR;Zhitomir;Zhitomiru;Zhytomir;Zhytomyr;Zitomir;Zitomiria;Zjytomyr;Zotomor;Zsitomir;Zytomierz;Zytomyr;Zytomyras;jitomileu;jitomu~iru;jytwmyr;ri tuo mi er;z'ytwmyr;zhytwmyr;Ĵitomir;Żytomierz;Žitomir;Žytomyr;Žytomyras;Žõtomõr;Горад Жытомір;Житомир;Житомиръ;Жытомир;Ժիտոմիր;ז'יטומיר;זשיטאמיר;جيتومير;ژیتومیر;ჟიტომირი;ジトームィル;日托米尔;지토미르; +city::687196;Zhovti Vody;Geltonieji Vandenys;Jovti Vodi;Jovti Vody;Jovti Vodî;Jovti Vodı;Rudnik Shvarts;Scholti Woody;Schowti Wody;Zheleznyy Rudnik Shvarts;Zheltaya Reka;Zheltye Vody;Zheltyye Vody;Zhjoltye Vody;Zholtie vodi;Zhovti Vodi;Zhovti Vody;Zhyeltyy Vody;Zhëltaya Reka;Zhëltyye Vody;Zjovti Vody;Zolte Wody;Zovti Vodi;Zovti Vody;Zyoltie Vodi;jwfty fwdy;zhwfty wwdy;Żółte Wody;Žovti Vodi;Žovti Vody;Желтые Воды;Жовти Води;Жовті Води;Жолтие води;Жёлтые Воды;Ժյոլտիե Վոդի;جوفتي فودي;ژوفتی وودی;ჟოლტიე-ვოდი;ジョーウチ・ヴォーディ; +city::687700;Zaporizhia;Aleksandrovsk;Alexandrovsk;OZH;Saporischschja;Saporoshje;Zaborozha;Zaporijia;Zaporizhia;Zaporizhzhya;Zaporizza;Zaporizzja;Zaporižžja;Zaporozh'e;Zaporozh'ye;Zaporozhye;Zaporozh’e;Zaporozh’ye;Алекса́ндровск;Запорожье;Запоріжжя; +city::688105;Yevpatoriya;Eupatoria;Eupatorio;Evpatorija;Evpatorya;Eŭpatorio;Jevpatorija;Jewpatorija;Kezlev;Yevpatoriya;ybptwryh;Євпаторія;Евпатория;יבפטוריה; +city::688148;Yenakiyeve;Enakieve;Enakievo;Ordshonikidse;Ordzhonikidze;Rykovo;Yenakiieve;Yenakiyeve;Yenakiyevo;Єнакієве;Енакиево; +city::688533;Yalta;Ialta;Jalta;Jalto;Jałta;Yalta;ya er ta;yalta;yaruta;Ялта;يالطا;იალტა;ヤルタ;雅尔塔;얄타; +city::689558;Vinnytsya;VIN;Vinnica;Vinnicja;Vinnitsa;Vinnytsia;Vinnytsya;Winniza;Винница;Вінниця; +city::690548;Uzhhorod;Gorad Uzhgarad;Oezjhorod;Oujhorod;UDJ;Ujgorod;Ujhorod;Ujhorodo;Ujqorod;Ungvar;Ungvár;Uschhorod;Uzgorod;Uzhgorod;Uzhhorod;Uzhorod;Uzhorodas;Uzhorodum;Uzjhorod;Uĵhorodo;Użhorod;Užgorod;Užhorod;Užhorodas;awzhhwrwd;ujuholodeu;ujuhorodo;uzhgorodi;wu ri huo luo de;Úzhgorod;ʼwngwwʼr;Горад Ужгарад;Ужгород;אוז'הורוד;אונגוואר;اوژهورود;უჟგოროდი;ウージュホロド;乌日霍罗德;우주호로드; +city::690688;Uman';Human;Humań;Uman;Uman';Uman’;ʼwmn;ʼwmʼn;Умань;אומאן;אומן; +city::691374;Torez;Chistyakovo;Thorez;Topez;Tores;Torez;Toreza;Torezas;Tschistjakowa;Tschistjakowo;duo lie shi;twrz;Топез;Торез;Տորեզ;تورز;ტორეზი;多列士; +city::691650;Ternopil';TNL;Tarnopol;Tarnopol';Tarnopol’;Ternopil;Ternopil';Ternopilo;Ternopil’;Ternopol';Ternopol’;trnwpwl;Тернополь;Тернопіль;טרנופול; +city::691999;Syevyerodonets'k;Severodonec'k;Severodoneck;Severodonetsk;Sievierodonetsk;Syeverodonets'k;Syeverodonets’k;Syevyerodonets'k;Syevyerodonets’k;Северодонецк;Сєвєродонецьк; +city::692105;Sverdlovs'k;Imeni Sverdlova;Selo Imeni Sverdlova;Selo imeni Sverdlova;Sverdlovs'k;Sverdlovsk;Sverdlovs’k;Свердловск;Свердловськ;Село имени Свердлова; +city::692194;Sumy;Gorad Sumy;Soemi;Soemy;Soumy;Sumad;Sumae;Sumai;Sumi;Sumio;Sumo;Sumy;Sumî;Sumõ;Sumı;Szumi;UMY;su mei;sumi;sumu~i;swmy;Горад Сумы;Суми;Сумы;Սումի;סומי;سومي;سومی;სუმი;スームィ;蘇梅;수미; +city::692372;Stryi;Strij;Stry;Stryi;Stryj;Stryy;Стрий;Стрый; +city::692975;Stakhanov;Gorad Stakhanau;Kadijewka;Kadiyevka;Ssergo;Stachanov;Stachanovas;Stachanow;Stahanov;Stahanova;Stahhanov;Stajanov;Stajánov;Stakhanov;Staxanov;astakhanwf awkrayn;si da han nuo fu;Горад Стаханаў;Стаханов;Ստախանով;استاخانوف، اوکراین;სტახანოვი;斯達漢諾夫; +city::693381;Snizhne;Shezhnoye;Snezhnoe;Snezhnoye;Snizhne;Снежное;Сніжне; +city::693457;Smila;Smela;Smila;Smiła;asmyla awkrayn;si mi la;smela;smylh;Смела;Смила;Сміла;Սմելա;סמילה;اسمیلا، اوکراین;სმელა;斯米拉; +city::693468;Sloviansk;Gorad Slavjansk;Slavjansk;Slavyansk;Slawjansk;Sloveansk;Sloviansk;Slovjan'sk;Slovjans'k;Slovjansk;Slovjanska;Slovjanskas;Slovjansko;Slovyansk;Slov”yans'k;Slowiansk;Slowjansk;Słowiańsk;Słowjansk;aslwfyansk;seullobiyansikeu;si la wei yang si ke;slwfyansk;suravu~yansuku;Σλοβιάνσκ;Горад Славянск;Славянск;Славјанск;Словянськ;Словяньск;Սլովյանսկ;اسلوفیانسک;سلوفيانسك;სლავიანსკი;スラヴャンスク;斯拉維揚斯克;슬로비얀시크; +city::693805;Simferopol;Akmescit;Akməsҗit;Aq Mecit;Aq Mečit;Aqmescit;Gorad Simferopal';SIP;Simferepol';Simferopol;Simferopol';Simferopole;Simferopoli;Simferopolis;Simferopolj;Simferopolo;Simferòpol;Simferópol;Sinferopol;Sinferopoli;Sinferòpol;Symferopol;Symferopoli;Sympheropolis;Szimferopol;cimhperoppol;shinferopori;simpelopol;simpheropola;smfrwpwl;symfrbwl;symfrwbwl;symfrwpwl;symprwpwl;xin fei luo bo er;Συμφερόπολη;Акмәсҗит;Горад Сімферопаль;Симфереполь;Симферопол;Симферополь;Симферопољ;Сімферополь;Սիմֆերոպոլ;סימפרופול;سمفروپول;سيمفربول;سيمفروبول;سیمفروپول;सिंफेरोपोल;சிம்ஃபெரோப்போல்;სიმფეროპოლი;シンフェロポリ;辛菲罗波尔;심페로폴; +city::693942;Shostka;Schostka;Shostka;Шостка; +city::694382;Shakhtars'k;Katyk;Shakhtars'k;Shakhtars’k;Shakhtersk;Shakhtërsk;Zapadno-Gruppskiy;Шахтарськ;Шахтерск; +city::694423;Sevastopol;Akujar;Akyar;Aqjar;Aqyar;Sebastopol;Sebastopoli;Sebastopolis;Sebastopolo;Sebastòpol;Sevastopal';Sevastopol;Sevastopol';Sevastopole;Sevastopolis;Sevastopolj;Sevastopolo;Sevastopoľ;Sevastoupoli;Sewastopol;Sivastopol;Szevasztopol;Sébastopol;UKS;sai wa si tuo bo er;sbstwpwl;sebaseutopol;sevhastopola;sevu~asutopori;swastwpwl;syfastwbwl;Σεβαστούπολη;Акъяр;Севастопаль;Севастопол;Севастополь;Севастопољ;סבסטופול;سواستوپول;سيفاستوبول;सेव्हास्तोपोल;ဆီပတ်စတိုပိုမြို့;სევასტოპოლი;セヴァストポリ;塞瓦斯托波爾;세바스토폴; +city::695274;Rubizhne;Rubezhnaya;Rubezhnoe;Rubezhnoye;Rubizhne;Rubizne;Рубежное;Рубіжне; +city::695379;Roven'ky;Roven'ki;Roven'ky;Rovenki;Roven’ki;Roven’ky;Rowenki;Ровеньки; +city::695594;Rivne;Eractum;Gorad Rouna;RWN;Rivne;Rivno;Rivnė;Riwne;Rovno;Rowne;Ruvne;Równe;liune;luo fu nuo;riune;rovno;rwbnw;rwfnw;rywn;rywnh;Горад Роўна;Ровно;Рівне;Ռովնո;ראוונע;רובנו;روفنو;ریون;ریونه;როვნო;リウネ;羅夫諾;리우네; +city::696108;Pryluky;Priluki;Pryluki;Pryluky;Pryłuki;Прилуки; +city::696643;Poltava;Gorad Paltava;PLV;Poltav;Poltava;Poltavae;Poltave;Poltavo;Poltawa;Połtawa;Pultava;bo er ta wa;bwltafa;poltaba;porutavu~a;pwltawa;pwltbh;Горад Палтава;Полтав;Полтавæ;Полтава;Полтаве;Պոլտավա;פאלטאווע;פולטבה;بولتافا;پولتاوا;პოლტავა;ポルタヴァ;波尔塔瓦;폴타바; +city::697593;Pervomays'k;Ol'viopol';Olwiopol;Ol’viopol’;Pervomaisk;Pervomajs'k;Pervomajsk;Pervomays'k;Pervomays’k;Perwomaisk;Первомайск;Первомайськ; +city::697889;Pavlohrad;Gorad Paulagrad;Pavlogi;Pavlograd;Pavlohrad;Pavlohrada;Pavlohradas;Pawlograd;Pawlohrad;Pawłohrad;ba fu luo ge lei;pabeulloheuladeu;paurofurado;pawlwhrad;Горад Паўлаград;Павлоград;Պավլոգրադ;פאבלוהראד;پاولوهراد;პავლოგრადი;パウロフラード;巴甫洛格勒;파블로흐라드; +city::698625;Oleksandriya;Aleksandria;Aleksandrija;Aleksandriya;Alexandrija Pervaya;Oleksandrija;Oleksandriya;Александрия;Олександрия;Олександрія; +city::698740;Odessa;Ades;Gorad Adehsa;ODS;Odesa;Odess;Odessa;Odessa osh;Odessae;Odesse;Odessos;Odessus;Odessza;Odissos;Oděsa;Udessa;ao de sa;awdsa;awdysa;odesa;odessa;Ódessa;Οδησσός;Горад Адэса;Одеса;Одесс;Одессæ;Одесса;Одесса ош;Одессе;Օդեսա;אדעס;אודסה;أوديسا;اودسا;اوديسا;اودیسا;ओदेसा;အိုဒက်ဆာမြို့;ოდესა;オデッサ;敖德薩;오데사; +city::699035;Novovolyns'k;Novovolins'k;Novovolyns'k;Novovolynsk;Novovolynskiy;Novovolyns’k;Нововолинськ;Нововолынск; +city::699445;Novomoskovs'k;Novomoskovs'k;Novomoskovsk;Novomoskovs’k;Новомосковск;Новомосковськ; +city::699553;Novohrad-Volyns'kyy;Novograd Volynski;Novograd-Volins'kij;Novograd-Volynsk;Novograd-Volynskij;Novograd-Volynskiy;Novohrad-Volyns'kyy;Novohrad-Volyns’kyy;Nowograd Wolynsk;Nowogrod Wolynski;Nowogród Wołyński;Zvyagel';Zvyagel’;Zvydgel;Zwiahl;nwbwhrd-wwlynsqy;Новоград-Волинський;Новоград-Волынский;נובוהרד-וולינסקי; +city::699839;Nova Kakhovka;Naujoji Kachovka;Nova Kachovka;Nova Kahovka;Nova Kajovka;Nova Kakhovka;Novaja Kakhovka;Novaya Kakhova;Novaya Kakhovka;Novaya Kaxovka;Novo Kakhovka;Nowa Kachowka;nobakahouka;nwbh qhwbqh;nwwa kakhwfka;xin ka huo fu ka;Нова Каховка;Новая Каховка;Նովայա Կախովկա;נובה קחובקה;نووا کاخوفکا;ნოვაია-კახოვკა;新卡霍夫卡;노바카호우카; +city::699942;Nizhyn;Gorad Nezhyn;Neshin;Nezhin;Nezin;Niezyn;Nieżyn;Nijin;Nijino;Nijyn;Nijîn;Nijın;Nischyn;Nizhin;Nizhyn;Nizin;Nizjyn;Nizon;Nizyn;Nizynas;Niĵino;Nižyn;Nižynas;Nižõn;nie ren;nyzhyn;Горад Нежын;Нежин;Нижин;Ніжин;Нїжин;Նեժին;نیژین;涅任; +city::700051;Nikopol';Nikopol;Nikopol';Nikopol’;Никополь;Нікополь; +city::700569;Mykolayiv;Mikolaiv;Mykolaiv;Mykolayiv;NLV;Nikolaev;Nikolajew;Nikolayev;Vernoleninsk;Верноленинск;Миколаїв;Николаев; +city::700646;Mukacheve;Mikachevo;Mukaceve;Mukacevo;Mukacheve;Mukachevo;Mukaczewo;Mukatschewe;Mukačeve;Mukačevo;Munkacevo;Munkachevo;Munkacs;Munkačevo;Munkács;Мукачеве;Мукачево;מונקאטש;מונקאץ'; +city::701404;Melitopol';Melitopol;Melitopol';Melitopol’;mellitopol;Мелитополь;Мелітополь;멜리토폴; +city::701822;Mariupol;Gorad Maryupal';Hayeren;MPW;Marijupol;Marioupol;Marioupol';Marioupoli;Mariupol;Mariupol';Mariupolj;Zhdanov;hindi;kartuli;ma li wu bo er;ma ri xupal;maliupol;mari'upol;mari'upola;marywbwl;marywpwl;mrwpl;mryʼwpwl;mʼrywpʼl;ri ben yu;Μαριούπολη;Горад Марыупаль;Жданов;Мариупол;Мариуполь;Маријупољ;Маріуполь;Марїоуполь;Հայերեն;מאריופאל;מריאופול;ماريوبول;ماریوپول;مروپل;मरिउपोल;हिन्दी;మరిఉపొల్;ಮರಿಉಪೊಲ್;มารีอูปัล;ქართული;ማሪኡፖል;日本語;马里乌波尔;마리우폴; +city::701855;Marhanets';Komintern;Marganec;Marganec';Marganets;Marhanets';Marhanets’;Марганец;Марганець; +city::702320;Makiyivka;Dmitriyevsk;Makayevka;Makeevka;Makejewka;Makeyevka;Makiivka;Makiyivka;Makyeevka;Makyevka;Макеевка;Макіївка; +city::702550;Lviv;Gorad L'vou;Ilbav;L'viv;L'vov;L'vov osh;LWO;Lavov;Lembaersch;Lemberg;Lemburg;Lembärsch;Leopoli;Leopolis;Leopołi;Leopul;Leópolis;Liopuli;Liov;Liòpuli;Ljviv;Lviv;Lvivo;Lvov;Lvova;Lvovas;Lwif;Lwiw;Lwow;Lwuw;Lwów;Lwůw;l wif;l'vov;lbwb;lfyf;li wo fu;libibeu;libiu;livhiva;liviv;lvov;lvovi;lvyv;lwwf;lwyw;lywyw;lʻmbryq;rivu~iu;İlbav;Ļvova;Ľvov;Λβιβ;Горад Львоў;Лавов;Лвов;Львив;Львов;Львов ош;Львів;Լվով;לבוב;לעמבערג;לעמבריק;لفيف;لووف;لویو;لڤیڤ;لیویو;लिव्हिव;லிவீவ்;ลวีฟ;ლვოვი;リヴィウ;利沃夫;리비브;리비우; +city::702569;Luts'k;Loetsk;Loutsk;Luc'k;Luck;Luckas;Lucko;Luts'k;Lutsk;Luts’k;Luzk;UCK;lwzq;Łuck;Луцк;Луцьк;לוצק; +city::702658;Luhansk;Gorad Lugansk;Loehansk;Louchansk;Louhansk;Lugan'sk;Lugans'k;Lugansk;Luganskaj;Lugánsk;Luhans'k;Luhansk;Luhanska;Luhanskas;Luhansko;Luhanszk;Luhans’k;Lukhansk;Luqansk;VSG;Voroshilovgrad;Woroschilowgrad;lu gan si ke;luhansikeu;lwhansk;lwhnsq;ruhanshiku;Ługańsk;Łuhańsk;Λουχάνσκ;Ворошиловград;Горад Луганск;Луганск;Луганскай;Луганськ;Луганьск;Луханск;Луһанск;Լուգանսկ;לוהנסק;لوهانسك;لوهانسک;لوہانسک;ლუგანსკი;ルハーンシク;卢甘斯克;루한시크; +city::702723;Lubny;Loubny;Lubin;Lubnai;Lubni;Lubnie;Lubny;Lubnî;Lubnı;lu bu ni;lubni;lwbny;Łubnie;Лубни;Лубны;Լուբնի;לובני;لوبنی;ლუბნი;盧布尼; +city::702760;Lozova;Losowa;Losowaja;Lozova;Lozovaja;Lozovaya;Lozowa;lozovaia;luo zuo wa;lwzwbh;Łozowa;Лозова;Лозовая;Լոզովայա;לוזובה;ლოზოვაია;洛佐瓦; +city::702972;Lysychans'k;Lisichans'k;Lisichansk;Lysychans'k;Lysychans’k;Лисичанск;Лисичанськ; +city::703448;Kyiv;Chijv;Civ;Cív;Gorad Kieu;IEV;Kaenugardur;Keju;Kiebo;Kief;Kieu;Kiev;Kiev osh;Kievi;Kievo;Kiew;Kiiev;Kiiv;Kijev;Kijeva;Kijevas;Kijew;Kijow;Kijuw;Kijv;Kijów;Kijůw;Kiova;Kiovia;Kiyev;Kiyiw;Kiëf;Kjiv;Kueyiv;Kyev;Kyiiv;Kyiv;Kyiw;Kyjev;Kyjiv;Kyjiw;Kyèv;Kænugarður;Kíev;Kîev;Küyiv;ji fu;kheiyf;kiefu;kiv;kiva;kiyebha;kiyepeu;kyf;kyiva;kyyf;qyyb;Κίεβο;Горад Кіеў;Кейӳ;Киев;Киев ош;Київ;Кијев;Кыив;Кыйив;Кꙑѥвъ;Կիև;קייב;קיעוו;كىيېۋ;كييف;کیف;کیێڤ;کی‌یف;कीव;क्यीव;কিয়েভ;கீவ்;കീവ്;เคียฟ;ཀིབ།;ကီးယက်မြို့;კიევი;ኪየቭ;キエフ;基輔;키예프; +city::703845;Kryvyi Rih;Gorad Kryvy Rog;KWG;Krivi Rih;Krivi Rog;Krivii Rih;Krivij Rig;Krivij Rih;Kriviy Rig;Krivoi Rog;Krivoj Rog;Krivoj rog;Krivojroga;Krivoy Rog;Krivoy Roq;Krivyj Rig;Kriví Rih;Krivói Rog;Kriwoi Rog;Krovoi Rig;Kruevuey Rih;Kryvy Rih;Kryvyi Rih;Kryvyj Rih;Kryvyj Rihas;Kryvyy Rih;Kryvyï Rih;Krywyj Rih;Krzywy Rog;Krzywy Róg;Krîvîi Rih;Krõvõi Rig;Krüvüy Rih;Krıvıy Rig;ke li wo luo ge;keulibiliheu;kh ri wi rikh;kryfy ryh;kryfyy ryh;qryby ryh;Горад Крывы Рог;Криви Рог;Кривий Риҕ;Кривий Ріг;Кривой Рог;Кривой рог;Кривый Ріг;Կրիվոյ Ռոգ;קריבי ריה;كريفي ريه;کریفیی ریه;ครีวีริค;კრივოი-როგი;クルィヴィーイ・リーフ;克里沃罗格;크리비리흐; +city::704147;Kremenchuk;Gorad Kramjanchug;KHU;Kermenchuk;Kremenchug;Kremenchuk;Kremenciuk;Kremencsuk;Kremencug;Kremencuk;Kremencuka;Kremencukas;Krementchouk;Krementjuk;Krementschug;Krementschuk;Krementsjoek;Krementsjuk;Krementsuk;Krementxuk;Krementšuk;Kremençug;Kremençuk;Kremenĉuk;Kremenčuk;Kremenčuka;Kremenčukas;Krzemienczuk;Krzemieńczuk;ke lie mian qiu ge;keulemenchukeu;krmnchwk;kuremenchuku;kʼremenchugi;qrmnzwg;Горад Крамянчуг;Керменчӳк;Кирмәнчек;Кременчуг;Кременчук;Կրեմենչուգ;קרמנצוג;کرمنچوک;კრემენჩუგი;クレメンチューク;克列緬丘格;크레멘추크; +city::704202;Krasnyy Luch;Krasnij Luch;Krasniluch;Krasny Luch;Krasnyi Luch;Krasnyj luch;Krasnyy Luch;Krassntjlutsch;Красний Луч;Красный луч; +city::704422;Krasnoarmiys'k;Grishino;Krasnoarmejsk;Krasnoarmeysk;Krasnoarmeyskoye;Krasnoarmijs'k;Krasnoarmiys'k;Krasnoarmiys’k;Krassnoarmeiskoje;Красноармейск;Красноармійськ; +city::704508;Kramators'k;Kramators'k;Kramatorsk;Kramatorskaja;Kramatorskaya;Kramators’k;Краматорск;Краматорськ; +city::704617;Kovel;Kovel;Kovel';Kovel’;Kowel;Ковель; +city::704901;Korosten';Korosten;Korosten';Korostenj;Korosten’;Korosteń;Koroszteny;Коростень; +city::705104;Kostyantynivka;Konstantinovka;Konstantinowka;Kostjantinivka;Kostjantyniwka;Kostyantynivka;Константиновка;Костянтинівка; +city::705135;Konotop;Gorad Kanatop;Kanatyp;Konotop;Konotopa;Konotopas;ke nuo tuo pu;kho nx thxp;kwnwtwp;qwnwtwp;Горад Канатоп;Канатып;Конотоп;Կոնոտոպ;קונוטופ;کونوتوپ;โคนอทอป;კონოტოპი;科諾托普; +city::705392;Kolomyya;Colomeea;Kholomya;Kolomea;Kolomea-Ost;Kolomeo;Kolomija;Kolomyia;Kolomyja;Kolomyya;Kołomyja;Коломия;Коломыя; +city::705812;Kropyvnytskyi;Elisavet;Elisavetgrad;Elizavetgrad;Gorad Kiravagrad;Jelisawetgrad;Jelizawietgrad;KGO;Kirovo;Kirovograd;Kirovogrado;Kirovohrad;Kirovohrada;Kirovohradas;Kirovohrado;Kirovoqrad;Kirowo;Kirowograd;Kirowohrad;Kropivnic'kij;Kropivnickij;Kropyvnytskyi;Kropywnycki;Sinowjewsk;Yelisavetgrad;Yelizavetgrad;Yelizavety;Zinov'evs'k;Zinov'evsk;Zinov'yevsk;Zinovievsk;Zinov’evsk;Zinov’yevsk;Zinowjewsk;ji luo wo ge lei;kiloboheuladeu;kirovu~ofurado;kyrwwhrad;qyrwbwgrd;Єлизаветград;Єлисавет;Горад Кіраваград;Елисаветград;Зиновьевск;Зінов'євськ;Кирово;Кировоград;Кропивницкий;Кропивницький;Кірово;Кіровоград;Կիրովոգրադ;קירובוגרד;کیرووهراد;کیرووہراد;კიროვოგრადი;キロヴォフラード;基洛沃格勒;키로보흐라드; +city::706369;Khmelnytskyi;Chmelnyzkyj;HMJ;Kamelnitskiy;Khmel'nic'kij;Khmel'nickij;Khmel'nitskiy;Khmel'nyts'kyy;Khmelinitski;Khmel’nitskiy;Khmel’nyts’kyy;Proskurov;Proskurovak;Proskurow;Проскуров;Хмельницкий;Хмельницький; +city::706448;Kherson;Cherson;Chersona;Chersonas;Chersoń;Gorad Kherson;H'erson;Herson;Hersona;Hersono;Herszon;H’erson;Jerson;Jersón;KHE;Kherson;Xerson;he er song;heleuson;heruson;hrswn;khersana;khersoni;khrswn;khyrswn;Ĥersono;Χερσώνα;Горад Херсон;Херсон;Խերսոն;חרסון;خرسون;خيرسون;خیرسون;खेर्सन;ხერსონი;ヘルソン;赫尔松;헤르손; +city::706466;Khartsyz'k;Kharciz'k;Kharcyzsk;Khartsysk;Khartsyz'k;Khartsyzsk;Khartsyz’k;Харцизьк;Харцызск; +city::706483;Kharkiv;Carcovia;Carcóvia;Charcovia;Charkiv;Charkiw;Charkov;Charkovas;Charkow;Charków;HRK;Harkiv;Harkiva;Harkivo;Harkov;Harkova;Jarkov;Khar'kov;Kharkiv;Kharkov;Khar’kov;ha er ke fu;haleukiu;harikofu;hrqwb;kaleukipeu;kalipeu;kharkwf;Ĥarkivo;Ĥarkov;Харков;Харків;Харьков;חרקוב;خاركوف;ხარკოვი;ハリコフ;哈爾科夫;카르키프;카리프;하르키우; +city::706524;Kerch;Bospor;KHC;Kerc;Kerc';Kerca;Kerce;Kerch;Kerch';Kerci;Kerco;Kercs;Kercz;Keric;Keritch;Keriç;Kertch;Kertj;Kerts;Kertsch;Kertschia;Kertsj;Kertx;Kertš;Kerç;Kerĉo;Kerč;Kerč';Kerča;Kerčė;Panticapaeum;ke chi;keleuchi;kerchi;keruchi;krch;kyrtsh;qrz;Κερτς;Керч;Керчь;Կերչ;קרץ;كيرتش;کرچ;ქერჩი;ケルチ;刻赤;케르치; +city::706950;Kamianets-Podilskyi;KCP;Kam"yanets'-Podil's'kyy;Kam'janec'-Podil's'kij;Kamenec-Podol'skij;Kamenec-Podolski;Kamenets Podol'ski;Kamenets Podol’ski;Kamenets-Podilski;Kamenets-Podol'sk;Kamenets-Podol'skiy;Kamenets-Podol’sk;Kamenets-Podol’skiy;Kamenez-Podolsk;Kamianets-Podilskyi;Kamieniec Podolski;Kamjanec'-Podil's'kij;Kamjanets-Podilskoi;Kamjanets-Podilskyi;Kamjanets-Podilskyj;Kamjanets-Podilskõi;Kamjanez-Podilskyj;Kamyanets-Podilsky;Kam”yanets’-Podil’s’kyy;qmnyz-pwdwlsqy;qʼamʻnyz;qʼamʻnʻz־pʼdʼlsq;Каменец-Подолски;Каменец-Подольский;Камянець-Подільський;Кам’янець-Подільський;קאַמעניץ;קאַמענעץ־פאדאלסק;קמניץ-פודולסקי; +city::707099;Kalush;Kalouch;Kalush;Kalusz;Katusz;Kałusz;karushu;Калуш;קאַלוש;カルシュ; +city::707292;Izyum;Izjum;Izyum;Изюм; +city::707308;Izmayil;Ismail;Ismajil;Izmail;Izmaił;Izmayil;Tuchkov;İsmail;Ізмаїл;Измаил;Измаїл; +city::707471;Ivano-Frankivs'k;IFO;Ivano-Frankivs'k;Ivano-Frankivs’k;Ivano-Frankovsk;Stanislau;Stanislav;Stanislavov;Stanislavyv;Stanislaw;Stanistawow;Stanistawów;Stanisław;stnyslb;stʼnyslʼww;ʼywwnw-prnqybsq;Івано-Франківськ;Ивано-Франковск;איוונו-פרנקיבסק;סטאניסלאוו;סטניסלב; +city::707688;Illichivs'k;Il'ichevka;Il'ichevsk;Illichivs'k;Illichivs’k;Ilyitschovsk;Il’ichevka;Il’ichevsk;Il’ichëvsk;Іллічівськ;Ильичевск; +city::707753;Horlivka;Gorlauka;Gorlivka;Gorlovk;Gorlovka;Gorlovko;Gorlowka;Gorłówka;Górlovka;Horlivka;Horliwka;Horļivka;Hòrlivka;Qorlivka;ge er luo fu ka;gorlovkʼa;holeulliuka;hwrlybqh;hwrlyfka;Горлаўка;Горловк;Горловка;Горловко;Горлівка;Һорливка;Գորլովկա;הורליבקה;هورليفكا;هورلیفکا;გორლოვკა;戈爾洛夫卡;호를리우카; +city::709161;Feodosiya;Caffa;Feodosia;Feodosija;Feodosiya;Feodossia;Feodossija;Feodosya;Feodòssia;Fyeodosiya;Kaffa;Kefe;Teodosia;Teodozio;Teodozja;Teodósia;Theodosia;Theodosie;Théodosie;feodoshiya;pe-odosiya;Феодосия;Феодосія;フェオドシヤ;페오도시야; +city::709248;Fastiv;Fastiv;Fastiva;Fastiw;Fastov;Fastow;Fastów;fa si di fu;fastyw;pstwb;Фастив;Фастов;Фастів;Ֆաստով;כוואסטוב;פסטוב;فاستیو;ფასტოვი;法斯蒂夫; +city::709276;Energodar;Ehnergodar;Energodar;Енергодар;Энергодар; +city::709611;Drohobych;Drogobich;Drogobych;Drogobycz;Drohobic;Drohobico;Drohobiĉ;Drohobiĉo;Drohobych;Drohobycz;Drohobytsch;Drohobytsj;dorohobu~ichi;drwhwbyz;Дрогобич;Дрогобыч;דרוהוביץ;ドロホブィチ; +city::709717;Donetsk;DOK;Donec'k;Doneck;Doneck osh;Donecka;Doneckas;Donecko;Donesk;Donetk;Donetsk;Donetsk i Ukraina;Donezk;Donețk;Donieck;Donietsk;Donjeck;Doněck;Dońeck;Doņecka;Gorad Daneck;Hughesovka;Jusowka;Juzivka;Juzovka;Ntonetsk;Stalin;Staline;Stalino;Yuzovka;Yuzovo;deanerrsk;do net skh;donecheukeu;donetska;donetsu~iku;dun nie ci ke;dwntsk;dwnytsk;dwnzq;tonetsk;Ντονέτσκ;Горад Данецк;Донецк;Донецк ош;Донецьк;Доњецк;Сталино;Сталіне;Сталіно;Юзовка;Юзівка;Դոնեցկ;דונצק;دونتسک;دونيتسك;دونیتسک;دۆنێتسک;दोनेत्स्क;தோனெத்ஸ்க்;ഡൊണെറ്റ്സ്ക്;โดเนตสค์;დონეცკი;ドネツィク;頓涅茨克;도네츠크; +city::709930;Dnipro;DNK;Dnepr;Dnepropetrovsk;Dnepropetrovska;Dnepropetrowsk;Dnetropetrovsk;Dniepropetrovsk;Dniepropetrovskas;Dniepropetrowsk;Dnipro;Dnipropetrovs'k;Dnipropetrovsk;Dnipropetrovsko;Dnipropetrovs’k;Dnipropetrowsk;Dnjepropetrovsk;Dnjepropetrowsk;Dnjipropetrovsk;Dnyipropetrovszk;Dněpropetrovsk;Dņepropetrovska;Ekaterinoslav;Ekaṭerinoslav;Gorad Dneprapjatrousk;Iekaterinoslav;Katerynoslav;Ntnipropetrofsk;Yekaterinoslav;Yekaterinovslav;d ni por pet rxfskh;deunipeulopeteulousikeu;di nie bo luo bi de luo fu si ke;dnepropetrovska;dnybrwbtrwfsk;dnyprwptrwbsq;dnyprwptrwfsk;dnyprwptrwwsk;donipuropetoroushiku;Ντνιπροπετρόφσκ;Горад Днепрапятроўск;Днепр;Днепропетровск;Дніпро;Дніпропетровськ;Днїпропетровск;Дњепропетровск;Екатеринослав;Դնեպրոպետրովսկ;דניפרופטרובסק;دنيبروبتروفسك;دنیپروپتروفسک;دنیپروپترووسک;द्नेप्रोपेत्रोव्स्क;ดนีโปรเปตรอฟสค์;დნეპროპეტროვსკი;ドニプロペトロウシク;第聂伯罗彼得罗夫斯克;드니프로페트로우시크; +city::709932;Dniprodzerzhyns'k;Dneprodsershinsk;Dneprodzerzhinsk;Dneprodzherzhinsk;Dnieprodzerzhynsk;Dniprodzerzhyns'k;Dniprodzerzhynsk;Dniprodzerzhyns’k;Kam'jans'ke;Kamenskoe;Kamenskoye;Kamianske;Днепродзержинск;Кам'янське;Каменское; +city::710554;Chervonohrad;Cervonohrad;Chervonograd;Chervonohrad;Czerwonohrad;Krasnipali;Krisnipolye;Kristinopol';Kristinopol’;Krvstonopol;Krystynopol;Червоноград; +city::710719;Chernivtsi;CWC;Cernauti;Cernivci;Cernivciai;Cernivco;Cernivtsi;Cernovci;Cernovice;Cernăuţi;Cernăuți;Charnaucy;Chernivci;Chernivtsi;Chernovci;Chernovcy;Chernovits;Chernovitsy;Chernovsi;Chernovtsy;Csernyivci;Czerniowce;Czernovicum;Czernowitz;Tchernivtsi;Tjernivtsi;Tschernowitz;Tsernivtsi;Tsjernivtsi;Txernivtsi;Txernivtsí;Tšernivtsi;cheleuniuchi;chernovtsi;cheruniutsu~i;chrnywtsy;chyrnywtsy;qie er nuo fu ce;zrnwbyz;Çernivtsi;Çernivtsı;Ĉernivco;Černivci;Černivciai;Černovci;Černovice;Čerņivci;Чарнаўцы;Чернивци;Черновци;Черновцы;Чернівці;Чернівцї;Չեռնովցի;טשערנאוויץ;צרנוביץ;چرنیوتسی;چیرنیوتسی;ჩერნოვცი;チェルニウツィー;切爾諾夫策;체르니우치; +city::710735;Chernihiv;Cernigau;Cernigiv;Cernigivo;Cernigovas;Cernigău;Cernihiv;Cernihivo;Cernihiw;Cernihov;Cerniqov;Chernigiv;Chernigov;Chernihiv;Chernígov;Csernyihiv;Czernihovia;Czernihow;Czernihów;Gorad Charnigau;Tchernihiv;Tjernihiv;Tschernigow;Tschernihiw;Tsernigiv;Tsernihiv;Tsjernihiv;Txernihiv;Txerníhiv;Tšernigiv;Tšernihiv;cheleunihiu;chernigovi;cherunihiu;chrnyhyf;qie er ni ge fu;tshrnyhyf;z'rnyhyb;Çernigiv;Çerniqov;Ĉernigivo;Ĉernihivo;Černigiv;Černigovas;Černihiv;Černihiw;Černihov;Горад Чарнігаў;Чернигов;Чернігів;Чернїгів;Չեռնիգով;צ'רניהיב;تشرنيهيف;چرنیهیف;چرنیہیف;ჩერნიგოვი;チェルニーヒウ;切尔尼戈夫;체르니히우; +city::710791;Cherkasy;CKC;Cerkasad;Cerkasai;Cerkasi;Cerkaso;Cerkassi;Cerkasy;Cerkasî;Cherkas khot;Cherkasi;Cherkassi;Cherkassy;Cherkasy;Circassium;Cserkaszi;Czerkasy;Gorad Charkasy;Tcherkassi;Tcherkassy;Tcherkássi;Tjerkasy;Tscherkassy;Tserkasso;Tserkasy;Tsjerkasi;Tsjerkasy;Txerkassi;Txerkasy;Tšerkassõ;Tšerkasy;cheleukasi;cherukasu~i;chrkasy;chrkysy;chyrkasy;qie er ka se;zrqʼsy;Çerkassi;Çerkası;Ĉerkaso;Čerkasad;Čerkasai;Čerkasi;Čerkasy;Горад Чаркасы;Черкас хот;Черкаси;Черкасси;Черкассы;Черкасы;Չերկասի;צרקאסי;چرکاسی;چرکیسی;چیرکاسی;ჩერკასი;チェルカースィ;切爾卡瑟;체르카시; +city::711369;Bryanka;Brjanka;Bryanka;Bryanskiy;Bryanskiy Rudnik;Брянка; +city::711390;Brovary;Brovarai;Brovari;Brovary;Brovarî;Brovarı;Browary;Gorad Bravary;beulobali;brovari;brwfary;brwwary;bu luo wa li;burovu~aru~i;Бровари;Бровары;Броварі;Горад Бравары;Բրովարի;ברובארי;بروفاري;بروواری;ბროვარი;ブロヴァルィー;布羅瓦里;브로바리; +city::711660;Boryspil';Borispil';Borispilo;Borispol';Borispol’;Boryspil;Boryspil';Boryspil’;Boryspol;boru~isupiri;Борисполь;Бориспіль;ボルィースピリ; +city::712160;Bilhorod-Dnistrovs'kyy;Akkerman;Belgorod-Dnestrovskij;Belgorod-Dnestrovskiy;Bilgorod-Dnistrovs'kij;Bilhorod-Dnistrovs'kyy;Bilhorod-Dnistrovs’kyy;Byelogorod;Cetatea Alba;Cetatea Albă;Белгород-Днестровский;Білгород-Дністровський; +city::712165;Bila Tserkva;Belaja Cerkov';Belaja Zerkow;Belaya Tserkov';Belaya Tserkov’;Belaya serkov;Biala Cerkiew;Biała Cerkiew;Bila Cerkva;Bila Cerkwa;Bila Terkva;Bila Tserkva;Bila Zerkwa;Bila Țerkva;Gorad Belaja Carkva;Shura Chirku;bai cai er ke wei;belaia-tserkʼovi;billacheleukeuba;byla tsrkfa;byla tsyrkfa;bylh zrqwwh;Белая Церковь;Била Церква;Біла Церква;Горад Белая Царква;Шурă Чиркӳ;Բելայա Ցերկով;בילה צרקווה;שווארצע טומאה;بيلا تسيركفا;بیلا تسرکفا;ბელაია-ცერკოვი;ビーラ・ツェールクヴァ;白采尔科维;빌라체르크바; +city::712441;Berdychiv;Berdicev;Berdichen;Berdichev;Berdichiv;Berdiciv;Berdiciva;Berditschew;Berdiçev;Berdičiva;Berdychiv;Berdyciv;Berdycivas;Berdyciw;Berdyczow;Berdyczów;Berdytchiv;Berdytjiv;Berdytschiw;Berdytsiv;Berdytsjiv;Berdytšiv;Berdyčiv;Berdyčivas;Berdyčiw;Berdîciv;Berdıçiv;Gorad Behrdychyu;beleudichiu;berdichevi;berudichifu;bie er ji qie fu;brdychyf;brdyzb;byrdytshyf;Бердичев;Бердичив;Бердичів;Горад Бэрдычыў;Բերդիչև;בערדיטשעוו;ברדיצב;بردیچیف;بيرديتشيف;ბერდიჩევი;ベルディチフ;別爾基切夫;베르디치우; +city::712451;Berdyans'k;Berdjans'k;Berdjansk;Berdyans'k;Berdyansk;Berdyans’k;Osipenko;Бердянск;Бердянськ; +city::713174;Artemivs'k;Artemivs'k;Artemivs’k;Artemovsk;Artemovskiy;Artemowsk;Artëmovsk;Bakhmut;Артемовск;Артемівськ; +city::713259;Antratsyt;Antracit;Antracita;Antracyt;Antracytas;Antratit;Antratsit;Antratsot;Antratsyt;Antratsõt;Antratsıt;Antrazyt;Antrațît;Bokovo-Antratsit;an te la qi te;antratsyt;Антрацит;Անտրացիտ;آنتراتسیت;أنتراتسيت;ანტრაციტი;安特拉齊特; +city::713716;Alchevs'k;Alchevs'k;Alchevsk;Alchevskoe;Alchevs’k;Kommunarsk;Voroshilovsk;Woroschilowsk;Алчевск;Алчевськ; +city::6559559;Komsomolsk;Komsomol's'k;Komsomol'sk;Komsomolsk;Komsomolsk i Ukraina;Komsomolsk na Dnepru;Komsomolska;Komsomoļska;gong qing cheng;komsomolsikeu;kwmswmwlsk awkrayn;qwmswmwlsq;Комсомолск;Комсомольск;Комсомольськ;Комсомољск на Дњепру;Կոմսոմոլսկ;קומסומולסק;کومسومولسک، اوکراین;კომსომოლსკი;共青城;콤소몰시크; +city::226234;Soroti;SRT;Soroti;suo luo ti;swrwty;סורוטי;سوروتی;索羅提; +city::227812;Njeru;Daru;Njeru; +city::228853;Mukono;Mukono; +city::229268;Mbarara;Barara;MBQ;Mbarara;eumbalala;mbarara;Μπαράρα;Мбарара;مبارارا;მბარარა;음바라라; +city::229278;Mbale;Mbale;Mbalė;mu ba lai;Мбале;מבאלה;مبالے;姆巴萊; +city::229380;Masaka;Masaka;Masaki;Масака;Масаки; +city::230166;Lira;Lira;lyrh;Лира;לירה;لیرا، یوگنڈا; +city::230893;Kitgum;Kitgum;Kitgumo;Китгум; +city::232066;Kasese;KSE;Kasese;Kasesė;ka sai sai;qssh;Касесе;קססה;کاسیسے;卡塞塞; +city::232422;Kampala;Campala;Gorad Kampala;IKampala;KLA;Kaempaala;Kambaala;Kampal;Kampala;Kampalo;Kanpala;kam pa la;kambala;kampala;kampalla;kan pa la;kanpara;kapala;kmpala;qmplh;Καμπάλα;Горад Кампала;Кампала;Կամպալա;קאמפאלא;קמפלה;كامبالا;كامپالا;کامپالا;کمپالا;کمپالہ;कंपाला;कम्पाला;ਕੰਪਾਲਾ;କାମ୍ପାଲା;கம்பாலா;กัมปาลา;ཀམ་པ་ལ།;კამპალა;ካምፓላ;カンパラ;坎帕拉;캄팔라; +city::233114;Jinja;Dzhindzha;Dzindza;Džindža;JIN;Jinga;Jinja;Tzintza;gyngh;jin gu;jinja;Τζίντζα;Джинджа;גינגה;ジンジャ;金賈;진자; +city::233346;Gulu;Gul;Gulu;Nkoulou;ULU;gu lu;gullu;gulu;gwlw;Γκουλού;Гул;Гулу;גולו;گولو;გულუ;古盧;굴루; +city::233508;Entebbe;EBB;Ehntebbe;Entebbe;Entebe;Entebė;antbh;antyby;en de pei;entebe;Ентеббе;Ентебе;Энтеббе;אנטבה;ענטעבע;إنتيبي;انتبه;انتیبے;အင်တက်ဘီမြို့;ენტებე;エンテベ;恩德培;엔테베; +city::233730;Bwizibwera;Bwizibwera; +city::235039;Arua;Arua;RUA;a lu a;alua;arwa;Аруа;اروا;阿鲁阿;아루아; +city::4049979;Birmingham;BHM;Bermincham;Bermingkham;Birmingam;Birmingamas;Birmingem;Birmingema;Birmingham;Birmingham i Alabama;Birminhem;Gorad Birmingem;baminguhamu;baminhamu;barmingahema;barmingahyama;beominghaem;birmingemi;bo ming han;brmnghham;brmyngm alabama;parminkam;Μπέρμιγχαμ;Бермингхам;Бирмингам;Бирмингем;Бірмінгем;Горад Бірмінгем;ברמינגהאם;برمنغهام;برمنگھم، الاباما;برمینگم، آلاباما;बर्मिंगहॅम;बर्मिङ्गह्याम;பர்மிங்காம்;རྦིར་མིང་ཧམ།;ბირმინგემი;バーミングハム;バーミンハム;伯明翰;버밍햄; +city::4058553;Decatur;Decatur;Dekejter;Dekejtur;decatur;dekatara;di kai te;dikeiteo;diketa;diketara;dykatwr;dykytr alabama;Декейтер;Декејтур;ديكاتور;دیکیتر، آلاباما;دیکەیتەر، ئەلاباما;ڈیکیٹر، الاباما;डिकेटर;डेकाटर;ディケーター;迪凯特;디케이터; +city::4059102;Dothan;Cawthons Cowpen;DHN;Dotan;Dothan;Dothen;Poplar Head;dosan;doseon;dothana;dothyana;duo sen;dwthan;dwthn alabama;Дотан;دوثان;دوثن، آلاباما;دۆتەن، ئەلاباما;ڈوتھن، الاباما;डोथान;डोथ्यान;ドーサン;多森;도선; +city::4067994;Hoover;Guver;Hoover;Khuver;fuba;hu fu;hubhara;hwfr;hwwr alabama;Гувер;Хувер;هوفر;هوور، آلاباما;ھووڤەر، ئەلاباما;ہوور، الاباما;हूभर;フーバー;胡佛; +city::4068590;Huntsville;Gantsvill;HSV;Hantsvila;Hantsvilis;Hantsvill;Hunts Spring;Huntsville;Khantsvil;Khantsvill;Khuntsvil;Twickenham;hantsabhila;hantsubiru;hantswyl alabama;heng ci wei er;heoncheubil;hntsfyl;Гантсвілл;Хантсвил;Хантсвилл;Хънтсвил;האנטסוויל;هانتسویل، آلاباما;هنتسفيل;ھەنتسڤیل، ئەلاباما;ہنٹسویل، الاباما;हन्त्सभिल;ハンツビル;亨茨维尔;헌츠빌; +city::4076598;Mobile;La Mobila;La Mobile;MOB;Mo-il-la;Mobajl;Mobil;Mobila;Mobilas;Mobile;Mobille;Moville;mo bi er;moba'ila;mobil;mobila;mobili;mobiru;mwbayl alabama;mwbyl;mwbyl alabama;Мобајл;Мобил;Мобіл;מוביל;موبائل، الاباما;موبيل;موبیل، آلاباما;मोबाइल;मोबिल;მობილი;ម៉ូបាល;モービル;莫比尔;모빌; +city::4076784;Montgomery;Gorad Mantgomery;MGM;Mons Gomerici;Montgomeri;Montgomeris;Montgomery;Montgomuri;Montnkomeri;mamtagomeri;mantagomeri;mantgameri;mantkamari;meng ge ma li;mong-gomeli;mongomeri;montagomari;mwntghwmry;mwntgmry;mwntgwmry;mxn t kx me xri;Μοντγκόμερι;Горад Мантгомеры;Монтгомери;Монтгомері;Монтгомъри;Մոնտգոմերի;מאנטגאמערי;מונטגומרי;مونتغومري;مونتگمری;مونٹگمری;مونٹگمری، الاباما;माँटगोमेरी;मान्टगोमेरी;मोन्टगोमरी;मोन्तगोमरी;மான்ட்கமரி;ಮಾಂಟ್ಗಾಮೆರಿ;มอนต์กอเมอรี;მონტგომერი;モンゴメリー;蒙哥馬利;蒙哥马利;몽고메리; +city::4094455;Tuscaloosa;Black Warrior Town;Druid City;Louiseville;Matildaville;Shelbyville;Shelleyville;Shelltown;Shellytown;TCL;Taskalusa;Tuscaloosa;Tuskalloosa;Tuskaloosa;ta si ka lu sa;taskalusa;taskalwsa alabama;tasukarusa;teoseukeollusa;tsqlwsh;twskalwsa;Таскалуса;טסקלוסה;تاسکالوسا، آلاباما;توسكالوسا;टस्कालूसा;ടസ്കലൂസ;タスカルーサ;塔斯卡卢萨;터스컬루사; +city::4106458;Conway;Conway;Conway Station;Konuehj;Konvej;kanve;kanwy;kon-wei;kwnwy;Конвей;Конвеј;Конуэй;كونوي;کانوی;کونوے، آرکنساس;कन्वे;콘웨이; +city::4110486;Fayetteville;FYV;Faetvil';Fayetteville;Fejetvil;Fejetvilis;Fejetvill;Washington Courthouse;faytfyl;fayt‌wyl;fei ye te wei er;feiettobiru;peiesbil;phayetabhila;phetavhila;Фаєтвіль;Фейетвилл;Фејетвил;פאייטוויל;فائیٹویل، آرکنساس;فايتفيل;فایت‌ویل;फायेटभिल;फेटव्हिल;フェイエットビル;费耶特维尔;페이엣빌; +city::4111410;Fort Smith;Belle Point;FSM;Fort Smit;Fort Smith;Fort-Smit;fotosumisu;fwrt asmyt;fwrt smyth;pharta smitha;pwrt smyt;shi mi si bao;Форт Смит;Форт-Смит;פורט סמית;فورت اسمیت;فورت سميث;فورٹ سمتھ، آرکنساس;फर्ट स्मिथ;フォートスミス;史密斯堡; +city::4116834;Jonesboro;Dzhonsboro;Dzhounsburou;Dzounsboro;JBR;Jonesboro;Jonesborough;jonasbro;jonjeubeoleo;jonzuboro;jwnsbwrw arknsas;jwnzbrw;jwnzbwrw;qiong si bo lei;Џоунсборо;Джонсборо;Джоунсбъроу;جونزبرو;جونزبورو;جونسبورو، آرکنساس;जोनस्ब्रो;ジョーンズボロ;琼斯伯勒;존즈버러; +city::4119403;Little Rock;Acropolis;Anilco;Arkopolis;Gorad Litl-Rok;LIT;La Petit Roche;Litl Rok;Litl Rokas;Litl Roks;Litl-Rok;Litlroka;Little Rock;Littlerock;Litul Rok;Old Channel;Old Channel Little River;Petit Roche;Petit Rochelle;Petit Rocher;lie du luo bu;litala raka;litala roka;liteullog;litil rak;litila raka;littil rak;lytl rak arkanzas;lytl rwk;lytl rwq;ritorurokku;xiao shi cheng;xiao yan cheng;Λιτλ Ροκ;Горад Літл-Рок;Литл Рок;Литл-Рок;Литъл Рок;Літл-Рок;Լիթլ Ռոք;ליטל ראק;ליטל רוק;ليتل روك;لٹل راک;لٹل راک، آرکنساس;لیتل راک، آرکانزاس;लिटल रॉक;लिटिल रक;लिटिल् राक्;लितल रक;லிட்டில் ராக்;ලිට්ල් රොක්;ლიტლ-როკი;リトルロック;列度洛埠;小岩城;小石城;리틀록; +city::4124112;North Little Rock;Argenta;Barling Cross;De Cantillion;De Cantillon;Huntersville;Hunterville;Nort Litl Rok;Nort-Litl-Rok;North Little Rock;nartha litala raka;noseuliteullog;nwrt lytl rak;nwrth lytl rwk;Норт Литл Рок;Норт-Литл-Рок;Норт-Літл-Рок;نارتھ لٹل راک، آرکنساس;نورت لیتل راک;نورث ليتل روك;नर्थ लिटल रक;노스리틀록; +city::4128894;Rogers;ROG;Rodzers;Rodzhers;Rogers;lojeoseu;luo jie si;rajrz arknsas;rojarsa;rwgrz;rwjrz;Роджерс;Роџерс;راجرز، آرکنساس;روجرز;روگرز;रोजर्स;罗杰斯;로저스; +city::4132093;Springdale;SPZ;Shiloh;Springdale;Springdejl;Springdejl';aspryngdyl arkanzas;sbrynghdl;seupeulingdeil;springadela;supuringuderu;Спрингдейл;Спрингдејл;Спрінгдейль;اسپرینگدیل، آرکانزاس;سبرينغدل;سپرنگڈیل، آرکنساس;स्प्रिङ्गडेल;スプリングデール;스프링데일; +city::4140963;Washington; D.C.;Federal Capital;Federal City;Federal Town;Nations Capital;Ouasinkton;Ranatakariahshne;Ranatakariáhshne;Rome;Territory of Columbia;Vashington;Vasingtonas;Vasingtonia;Vašingtonas;WAS;Washington;Washington City;Washington D. C.;Washington D.C.;Washington DC;Waszyngton;hua sheng dun te qu;wosingteon D.C.;wosingteon DC;Ουάσιγκτον;Вашингтон;华盛顿特区;워싱턴 D.C.;워싱턴 DC; +city::4145381;Wilmington;Christinahamn;Fort Altena;Fort Christina;Gorad Uilmingtan;ILG;Uilmington;Uilmingtun;Vilmington;Vilmingtona;Vilmingtonas;Vilmingtonia;Walmington;Willington;Willingtown;Wilmington;Wilmington City;Wilmington i Delaware;u~iruminton;vilmingatana;wei er ming dun;wilmingteon;wylmnghtwn;wylmyngtwn;wylmyngtwn dlawr;Вилмингтон;Вілмінгтон;Горад Уілмінгтан;Уилмингтон;Уилмингтън;וילמינגטון;ويلمنغتون;ویلمینگتون، دلاور;ویلمینگٹن، ڈیلاویئر;विल्मिंगटन;უილმინგტონი;ウィルミントン;威尔明顿;윌밍턴; +city::4145805;Allapattah;Allapatah;Allapattah; +city::4148411;Boca Raton;BCT;Boca Raton;Boca Ratone;Boca Ratón;Boca de Ratones;Bocaraton;Boka Raton;Boka-Raton;WTA Boca Raton;bo ka la dun;boka retana;bokaleoton;bokaraton;bwka ratwn;bwka ratwn flwryda;Бока Ратон;Бока-Ратон;באקא ראטאן;بوكا راتون;بوکا راتون، فلوریدا;बोका रेटन;ボカラトン;博卡拉頓;보카러톤; +city::4148533;Bonita Springs;Bonita Springs;Bonita-Springs;bo ni ta wen quan;bonita springas;bwnyta aspryngz flwryda;bwnyta sbrnghz;Бонита Спрингс;Боніта-Спрінгс;بونيتا سبرنغز;بونیتا اسپرینگز، فلوریدا;बोनिता स्प्रिङ्गस्;博尼塔温泉; +city::4148677;Boynton Beach;Bojnton Bich;Bojnton-Bich;Boynton;Boynton Beach;bo yin dun hai tan;bo'inatana bica;bointeonbichi;bwyntwn;bwyntwn bych flwryda;Бойнтон-Біч;Бојнтон Бич;بوينتون;بوینتون بیچ، فلوریدا;बोइनटन बीच;博因顿海滩;보인턴비치; +city::4148708;Bradenton;Braden Town;Bradenton;Bradentown;Braiden Town;Braidentown;Brejdenton;beuleideunteon;bradenatana;bradntwn;bradntwn flwryda;bu lei deng dun;bureidenton;Брейдентон;Брејдентон;برادنتون;برادنتون، فلوریدا;ब्राडेनटन;ბრადენტონი;ブレイデントン;布雷登顿;브레이든턴; +city::4148757;Brandon;Brando;Brandon;Brehndon;bryandana;burandon;Брандон;Брэндон;برینڈن، فلوریڈا;ब्र्यान्डन;ブランドン; +city::4149962;Cape Coral;Cabo Coral;Cape Coral;Keip Koralas;Kejp Koral;Kejp Korul;Kejp-Koral;kai pu ke lei er;keipeukoleol;kepa korala;kepukoraru;kyb kwral;kyp kwral flwryda;qyyp qwrl;Кейп Коръл;Кейп-Корал;Кејп Корал;קייפ קורל;كيب كورال;کیپ کورال، فلوریدا;کیپ کورل، فلوریڈا;केप कोरल;ケープコーラル;開普科勒爾;케이프코럴; +city::4150066;Carol City;Carol City; +city::4151316;Clearwater;CLW;Clearwater;Clearwater Harbor;Kliruoter;Klirvoter;Klirvoteris;Kliuruotur;ke li er wo te;keullieowoteo;kliyaravatara;klyrwatr;klyrwatr flwryda;kuriau~ota;Клирвотер;Клируотер;Клиъруотър;Клірвотер;كليرواتر;کلیئرواٹر، فلوریڈا;کلیرواتر، فلوریدا;کلیرواٹر;क्लियरवाटर;クリアウォーター;克利爾沃特;클리어워터; +city::4151455;Coconut Creek;Kokonat Krik;Kokonat-Krik;kokonata krika;kwkwnat kryk flwryda;kwkwnt kryk;ye zi xi;Коконат Крик;Коконат-Крік;كوكونت كريك;کوکونات کریک، فلوریدا;کوکونٹ کریک، فلوریڈا;कोकोनट क्रीक;椰子溪; +city::4151871;Coral Gables;Koral Gejbls;Koral-Gejblz;ke lei er gai bu er si;koleolgeibeuljeu;korala gyabalsa;kwral ghyblz;kwral gyblz flwryda;Корал Гејблс;Корал-Ґейблз;كورال غيبلز;کورال گیبلز، فلوریدا;कोरल ग्याबल्स;科勒尔盖布尔斯;코럴게이블즈; +city::4151909;Coral Springs;Coral Springs;Koral Springs;Koral Springsas;Koral-Springs;ke lei er si pu lin si;koleolseupeulingseu;korala springas;korarusupuringusu;kwral aspryngz flwryda;kwral sbrnghz;Корал Спрингс;Корал-Спрингс;Корал-Спрінгс;كورال سبرنغز;کورال اسپرینگز، فلوریدا;کورل اسپرنگز، فلوریڈا;कोरल स्प्रिङ्गस्;コーラルスプリングス;科勒爾斯普林斯;코럴스프링스; +city::4152820;Davie;Davie;Dehvi;Dejvi;Devi;dai wei;debhi;dyfy;dywy flwryda;Деві;Дейви;Дејви;Дэви;ديفي;دیوی، فلوریدا;डेभी;戴维; +city::4152872;Daytona Beach;DAB;Daytona;Daytona Beach;Dejtona Bich;Dejtona Bijch;Dejtona-Bich;dai tong na hai tan;daytwna bytsh;deitonabichi;detana bica;dytwna bych flwryda;teytona katarkarai;Дейтона Бийч;Дейтона-Бич;Дейтона-Біч;Дејтона Бич;دايتونا بيتش;دیتونا بیچ، فلوریدا;डेटना बीच;டெய்டோனா கடற்கரை;デイトナビーチ;戴通納海灘;데이토나비치; +city::4153071;Deerfield Beach;Deerfield;Deerfield Beach;Dirfild Bich;Dirfild-Bich;di er fei er de hai tan;dyaraphilda bica;dyrfyld bych flwryda;dyrfyld bytsh;Дирфилд Бич;Дирфилд-Бич;Дірфілд-Біч;ديرفيلد بيتش;دیرفیلد بیچ، فلوریدا;ड्यरफिल्ड बीच;迪尔菲尔德海滩; +city::4153132;Delray Beach;Delray Beach;Delrej Bich;Delrej-Bich;de la hai tan;delre bica;derureibichi;dlray bytsh;dlry bych flwryda;dlryy byz;Делрей-Бич;Делрей-Біч;Делреј Бич;דלריי ביץ;دلراي بيتش;دلری بیچ، فلوریدا;डेल्रे बीच;デルレイビーチ;德拉海灘; +city::4153146;Deltona;Deltona;de er tuo na;deltana;dltwna;dltwna flwryda;Делтона;دلتونا;دلتونا، فلوریدا;डेल्टना;დელტონა;德尔托纳; +city::4153471;Doral;Doral;dorala;duo la;dwral;dwral flwryda;Дорал;دورال;دورال، فلوریدا;डोराल;多拉; +city::4154047;East Pensacola Heights;; +city::4155529;Flagami;; +city::4155966;Fort Lauderdale;FLL;Fort Lauderdale;Fort Loderdeil;Fort Loderdeilas;Fort Loderdejl;Fort Lodurdejl;Fort-Loderdejl;Fortloderdeila;Ft. Lauderdale;f xr tlxde xrdel;fotorodaderu;fwrt ladrdyl flwryda;fwrt lawdrdal;lao de dai er bao;pharta la'udaradela;phorta lodaradela;poteulodeodeil;pwrt lwdrdyyl;Форт Лодердејл;Форт Лодърдейл;Форт-Лодердейл;פורט לודרדייל;فورت لادردیل، فلوریدا;فورت لاودردال;فورٹ لاؤڈرڈیل;فورٹ لاوڈرڈیل، فلوریڈا;फर्ट लाउदरदेल;फोर्ट लॉडरडेल;ฟอร์ตลอเดอร์เดล;フォートローダーデール;劳德代尔堡;포트로더데일; +city::4155995;Fort Myers;FMY;Fort Majers;Fort Myers;Fort-Maers;Ft. Myers;Myers;fotomaiyazu;fwrt mayrz;fwrt mayrz flwryda;mai er zi bao;pharta mayarsa;poteumaieoseu;Форт Мајерс;Форт-Маєрс;فورت مايرز;فورت مایرز، فلوریدا;फर्ट मायर्स;フォートマイヤーズ;麥爾茲堡;포트마이어스; +city::4156091;Fountainebleau;Fountainbleau; +city::4156404;Gainesville;GNV;Gainesopolis;Gainesville;Geinsvilis;Gejnsvil;Gejnsvill;Hog Town;ga'insabhila;gai en si wei er;geinjeubil;geinzubiru;ghynzfyl;gynzwyl flwryda;gyynswwyl;Гейнсвил;Гейнсвилл;Гейнсвілл;Гејнсвил;גיינסוויל;غينزفيل;گینزویل، فلوریدا;गाइन्सभिल;ゲインズビル;蓋恩斯維爾;게인즈빌; +city::4158476;Hialeah;Hajalija;Hialeah;Khajalia;Khajalija;hai e li ya;haiaria;haieollia;hayali'ah;hyalya flwryda;hyalyh;Хайалиа;Хаялия;Хаяліа;Хајалија;هياليه;هیالیا، فلوریدا;ہیالیاہ، فلوریڈا;ہیالیح;हायालिआः;ハイアリア;海厄利亞;하이얼리아; +city::4158928;Hollywood;Gollivud;HWO;Hollywood;Hollywood by the Sea;Kholivud;Khollivud;halivuda;halliudeu;halywwd flwryda;hao lai wu;hariuddo;hwlywwd;Голливуд;Голлівуд;Холивуд;Холливуд;הוליווד;هالیوود، فلوریدا;هوليوود;ہالی ووڈ، فلوریڈا;ہولی وڈ;हलिवूड;ハリウッド;好萊塢;할리우드; +city::4159050;Homestead;Gomsted;HST;Homestead;Khomsted;homasteda;huo mu si te de;hwmstd flwryda;hwmstyd;Гомстед;Хомстед;هومستد، فلوریدا;هومستيد;होमस्टेड;霍姆斯特德; +city::4160021;Jacksonville;Ceksonvill;Cow Creek;Cow Ford;Cowford;Dzeksonvil;Dzeksonvila;Dzeksonvilis;Dzhaks"nvil;Dzhehksanvil;Dzhehksonvill;Dzheksonvill;Džeksonvila;Džeksonvilis;Iacsoniapolis;Iacsonvilla;JAX;Jacksonville;Tzaksonvil;Wakka Pilatka;Zhehksonvill;gqswnwwyl;jaegseunbil;jaikasanavila;jaiksanavila;jakcanvil;jakswnfyl;jakusonbiru;jeksanavhila;jeksonvili;jie ke xun wei er;jyakasanabhila;jyaksanabhila;jyksn wyl;Τζάκσονβιλ;Џексонвил;Джаксънвил;Джексонвілл;Джэксанвіл;Джэксонвилл;Жэксонвилл;Ջեքսոնվիլ;גקסונוויל;جاكسونفيل;جکسون‌ویل;جیکسن ویل;जॅक्सनव्हिल;जैक्सनविल;ज्याकसनभिल;জ্যাক্সনভিল;ਜੈਕਸਨਵਿਲ;ஜாக்சன்வில்;แจ็กสันวิลล์;ჯექსონვილი;ジャクソンビル;杰克逊维尔;잭슨빌; +city::4160610;Jupiter;Dzhjupiter;Dzupiter;Jupiter;Júpiter;jupita;jwbytr flwryda;zhu bi te;zhwpytr flwryda;Џупитер;Джюпітер;Юпитер;جوبيتر، فلوريدا;ژوپیتر، فلوریدا;ジュピター;朱庇特; +city::4160705;Kendale Lakes;Kendale Lakes; +city::4160711;Kendall;Kendal;Kendall;kendala;Кендал;Кендалл;केन्डल; +city::4160983;Kissimmee;Kisimi;Kissimmee;Kissimmi;ji xi mi;kishimi;kisime;kysymy;kysymy flwryda;qysymy;Кисими;Киссимми;Кіссіммі;קיסימי;كيسيمي;کیسیمی، فلوریدا;किसिमे;キシミー;基西米; +city::4161438;Lakeland;LAL;Lakeland;Lejkland;Lejklend;lai ke lan;leikeullaendeu;lekalyanda;lykland;reikurando;Лейкленд;Лејкланд;ليكلاند;لیک لینڈ، فلورایڈا;لیک‌لند، فلوریدا;लेकल्यान्ड;レイクランド;莱克兰;레이클랜드; +city::4161580;Largo;Largo;la ge;larghw;largo;largw flwryda;Ларго;Ларґо;لارغو;لارگو، فلورایڈا;لارگو، فلوریدا;लार्गो;拉哥; +city::4161625;Lauderhill;; +city::4161785;Lehigh Acres;Leeland Heights;Lehigh;Lehigh Acres; +city::4163407;Margate;Margejt;ma gai te;marageta;marghyt;margyt flwryda;Маргейт;Маргејт;مارغيت;مارگیت، فلوریدا;मारगेट;马盖特; +city::4163971;Melbourne;MLB;Mel'burn;Melborn;Melbourne;Melburn;melbarna;meruborun;mlbwrn;mlbwrn flwryda;mo er ben;Мелборн;Мелбурн;Мелбърн;Мельбурн;מלבורן;ملبورن;ملبورن، فلوریدا;ملبورن، فلوریڈا;मेल्बर्न;メルボルン;墨爾本; +city::4164138;Miami;Gorad Majami;MIA;Maiami;Majami;Majamis;Mayami;Miami;Miamia;Miamo;mai a mi;mai ya mei;maiaemi;maiami;mayami;mayamy;miyami;myamy;myamy flwryda;Μαϊάμι;Горад Маямі;Майами;Маями;Маямі;Мајами;Մայամի;מיאמי;مايامى;ميامي;میامی;میامی، فلوریدا;मायामी;मियामी;মায়ামি;માયામિ;மயாமி;మయామి;ಮಿಯಾಮಿ;ไมแอมี;မိုင်ယာမီမြို့;მაიამი;ማያሚ;マイアミ;迈阿密;邁亞美;邁阿密;마이애미; +city::4164143;Miami Beach;Majami Bich;Majami Bijch;Majami-Bich;Miami Beach;Saut Bich;mai a mi hai tan;maiaemibichi;maiamibichi;mayami bica;myamy bych flwryda;myamy bytsh;Майами-Бич;Маями Бийч;Маямі-Біч;Мајами Бич;Саут Бич;ميامي بيتش;میامی بیچ، فلوریدا;میامی بیچ، فلوریڈا;मायामी बीच;マイアミビーチ;迈阿密海滩;마이애미비치; +city::4164167;Miami Gardens;Majami Gardens;Majami-Gardens;mai a mi hua yuan;maiaemigadeunseu;maiamigadenzu;mayami gardensa;myamy gardnz flwryda;myamy ghardnz;Майами-Гарденс;Маямі-Ґарденс;Мајами Гарденс;ميامي غاردنز;میامی گاردنز، فلوریدا;میامی گارڈنز;میامی گارڈنز، فلوریڈا;मायामी गार्डेन्स;マイアミガーデンズ;迈阿密花园;마이애미가든스; +city::4164601;Miramar;Miramar;mi la ma er;mirama;miramara;myramar;myramar flwryda;Мирамар;Мірамар;ميرامار;میرامار، فلوریدا;मिरामार;ミラマー;米拉馬爾; +city::4166232;North Miami;Nort Majami;Nort-Majami;bei mai a mi;nartha mayami;noseumaiaemi;nwrth myamy;nwrth myamy flwryda;Норт Мајами;Норт-Маямі;شمالی میامی، فلوریڈا;نورث ميامي;نورث میامی، فلوریدا;नर्थ मायामी;北迈阿密;노스마이애미; +city::4166274;North Port;Nort Pojnt;Nort-Port;North Port;North Port Charlotte;bei gang;nartha porta;nosupoto;nwrth bwrt;nwrth pwrt flwryda;Норт Појнт;Норт-Порт;نورث بورت;نورث پورت، فلوریدا;नर्थ पोर्ट;ノースポート;北港; +city::4166673;Ocala;OCF;Ocala;Ocola;Okala;ao ka la;awkala;awkala flwryda;okaella;okala;okara;Окала;أوكالا;اوکالا، فلوریدا;ओकाला;オカラ;奥卡拉;오캘라; +city::4167147;Orlando;ORL;Orlandas;Orlando;Orlando i Florida;Orlanto;ao lan duo;aralyando;awrlandw;awrlndw flwryda;ollaendo;oralamdo;orando;orlando;orlanto;Ορλάντο;Орландо;Օռլանդո;אורלנדו;أورلاندو;اورلندو، فلوریدا;اورلینڈو;اورلینڈو، فلوریڈا;अरल्यान्दो;ओरलँडो;ઓર્લાન્ડો;ஒர்லாண்டோ;ออร์แลนโด;ორლანდო;オーランド;奥兰多;올랜도; +city::4167499;Palm Bay;Palm Bay;Palm Bej;Palm-Bej;balm bay;palm by flwryda;pama be;pamubei;zong lu wan;Палм Беј;Палм-Бей;بالم باي;پالم بی، فلوریدا;पाम बे;パームベイ;棕榈湾; +city::4167519;Palm Beach Gardens;Palm Bich Gardens;Palm-Bich-Gardens;balm bytsh ghardnz;palm bych gardnz flwryda;pama bica gardensa;zong lu tan hua yuan;Палм Бич Гарденс;Палм-Бич-Гарденс;Палм-Біч-Ґарденс;بالم بيتش غاردنز;پالم بیچ گاردنز، فلوریدا;پام بیچ گارڈنز، فلوریڈا;पाम बीच गार्डेन्स;棕櫚灘花園; +city::4167538;Palm Coast;Palm Koust;Palm-Kost;balm kwst;palm kwst flwryda;pama kosta;zong lu hai an;Палм Коуст;Палм-Кост;بالم كوست;پالم کوست، فلوریدا;پام کوسٹ، فلوریڈا;पाम कोस्ट;棕榈海岸; +city::4167545;Palm Harbor;Palm Harbor;Palm-Kharbor;Pam Kharbor;Southerland;Sutherland;pama harbara;Палм-Харбор;Пам Харбор;पाम हार्बर; +city::4168139;Pembroke Pines;Pembrok-Pajns;Pembroke Pines;Pembrouk Pajns;Pembruk Pajns;bymbrwk baynz;pembeulokeupainjeu;pembroka pa'insa;penburokupainzu;peng bu luo ke pai en si;pmbrwk paynz flwryda;pmbrwk payynz;Пемброк-Пайнс;Пемброук Пайнс;Пембрук Пајнс;بيمبروك باينز;پمبروک پائینز;پمبروک پاینز، فلوریدا;پیمبروک پائنز، فلوریڈا;पेम्ब्रोक पाइन्स;ペンブロークパインズ;彭布羅克派恩斯;펨브로크파인즈; +city::4168228;Pensacola;PNS;Pansacolas;Panzacola;Pencocolos;Pensacola;Pensacola i Florida;Pensacolas;Pensakola;Pensicola;bynsakwla;peng sa ge la;peng sa ke la;pensakola;pensakora;penseokolla;pnsakwla flwryda;Пенсакола;بينساكولا;پنساکولا، فلوریدا;पेन्साकोला;ペンサコーラ;彭萨科拉;彭薩哥拉;펜서콜라; +city::4168459;Pine Hills;; +city::4168630;Pinellas Park;Pinelas Park;Pinellas City;Pinellas Park;Pinellas-Park;bynylas bark;pa'inallasa parka;paynlas park flwryda;pi nei la si gong yuan;Пинелас Парк;Пінеллас-Парк;بينيلاس بارك;پاینلاس پارک، فلوریدا;पाइनlलस पार्क;皮内拉斯公园; +city::4168782;Plantation;Plantacija;Plantejshn;Plantejshon;blantyshn;plantesana;plntyshn flwryda;zhong zhi yuan;Плантация;Плантейшн;Плантејшон;بلانتيشن;پلانٹیشن، فلوریڈا;پلنتیشن، فلوریدا;प्लान्टेसन;种植园; +city::4168930;Poinciana;; +city::4169014;Pompano Beach;PPM;Pompano;Pompano Beach;Pompano Bich;Pompano-Bich;bwmbanw syty;pang pa nuo bi qi;pompano bica;ponpanobichi;pwmpanw bych flwryda;Помпано Бич;Помпано-Бич;Помпано-Біч;بومبانو سيتي;پومپانو بیچ، فلوریدا;پومپانو بیچ، فلوریڈا;पोम्पानो बीच;ポンパノビーチ;龐帕諾比奇; +city::4169130;Port Charlotte;Port Sharlot;Port-Sharlott;porta sarlota;Порт Шарлот;Порт-Шарлотт;पोर्ट शार्लोट; +city::4169156;Port Orange;; +city::4169171;Port Saint Lucie;Port St. Lucie; +city::4170156;Riverview;Riverv'ju;ribharabhyu;Ривервью;रिभरभ्यू; +city::4171563;St. Petersburg;SPG;Saint Petersburg;St. Petersburg; +city::4172086;Sanford;Fort Mellon;Mellonville;Sanford;Senford;saenpeodeu;sanfwrd;sang fu de;snfwrd flwryda;syanpharda;Санфорд;Сенфорд;سانفورد;سنفورد، فلوریدا;स्यान्फर्ड;桑福德;샌퍼드; +city::4172131;Sarasota;SRQ;Sarasota;sa la suo ta;saeleosota;sarasota;saraswta;saraswta flwryda;Сарасота;ساراسوتا;ساراسوتا، فلوریدا;सारासोटा;サラソータ;萨拉索塔;새러소타; +city::4173838;Spring Hill;Spring Khil;Spring-Khill;springa hila;Спринг Хил;Спринг-Хилл;स्प्रिङ्ग हिल; +city::4174402;Sunrise;Sanrajz;sanrayz flwryda;sen lai si;seonlaijeu;snrayz flwryda;Санрайз;Санрајз;سانرایز، فلوریدا;صنرايز، فلوريدا;森赖斯;선라이즈; +city::4174715;Tallahassee;Apalache Old Fields;Gorad Talakhasi;Newton;Newtown;Old Field Town;Pueblo Nueva;TLH;Talachasi;Talahasi;Talahasis;Talahasī;Talajasy;Talakhasi;Tallahassa;Tallahassee;Tallahassee Talofa;Tallahassia;Tallakhassi;Tonabys Town;Tunapy;Villanueva;da la ha xi;ta la he xi;taelleohaesi;talahaci;talahase;talahasi;talahasy;tarahashi;telahasi;Ταλαχάσι;Горад Талахасі;Талахаси;Таллахасси;Таллахассі;Թալահասի;טאלאהאסי;تالاهاسي;تالاهاسی;تالاہاسی، فلوریڈا;ٹالیحسی;टालाहासे;टॅलाहासी;तालाहासे;টালাহাসি;டலஹாசி;ടലഹാസി;แทลลาแฮสซี;ტალაჰასი;タラハシー;塔拉赫西;達拉哈西;탤러해시; +city::4174738;Tamarac;Tamarak;ta ma la ke;tamarak;tamarak flwryda;tyamaraka;Тамарак;تاماراك;تاماراک، فلوریدا;ट्यामाराक;塔玛拉克; +city::4174744;Tamiami;Tamiami; +city::4174757;Tampa;Gorad Tampa;TPA;Tampa;taempa;taimpa;tamba;tampa;tamppa;tan pa;tanpa;tmpa flwryda;tmph;Τάμπα;Горад Тампа;Тампа;Տամպա;טמפה;تامبا;تمپا، فلوریدا;ٹیمپا، فلوریڈا;टँपा;टैम्पा;ताम्पा;டாம்ப்பா;แทมปา;ტამპა;タンパ;坦帕;탬파; +city::4175117;The Hammocks;The Hammocks; +city::4175179;The Villages;Orange Blossom Gardens;Te-Villidzhis;The Villages;The Villages at Spanish Springs;Vilidzes;da bhilejesa;Вилиџес;Те-Виллиджис;द भिलेजेस; +city::4175538;Town 'n' Country;Town 'n' Country; +city::4177703;Wellington;Velington;Vellington;hui ling dun;velalingatana;wlyngtwn flwryda;wylnghtwn;Велингтон;Веллингтон;Веллінгтон;ولینگتون، فلوریدا;ويلنغتون;ویلنگٹن، فلوریڈا;वेललिङ्गटन;惠灵顿; +city::4177887;West Palm Beach;Litus Palmense Occidentale;Okcidenta Palm Beach;PBI;Uehst-Palm-Bich;Vest Palm Bich;Vest-Palm-Bich;West Palm Beach;u~esutopamubichi;vesta pama bica;weseuteupambichi;wst palm bych flwryda;wst pʼlm byz;wyst balm bytsh;xi zong lu tan;Вест Палм Бич;Вест-Палм-Біч;Уэст-Палм-Бич;וסט פאלם ביץ;وست پالم بیچ، فلوریدا;ويست بالم بيتش;ویسٹ پام بیچ، فلوریڈا;वेस्ट पाम बीच;ウェストパームビーチ;西棕榈滩;웨스트팜비치; +city::4178003;Weston;Uehston;Veston;Weston;vestana;wei si dun;wstwn;wstwn flwryda;Вестон;Уэстон;وستون;وستون، فلوریدا;वेस्टन;韦斯顿; +city::4179320;Albany;ABY;Albany;City of Opportunity;Olbani;albani;albany;albany jarjya;albany jwrjya;ao er ba ni;olbeoni;orubani;Олбани;Олбані;آلبانی، جورجیا;ألباني;البانی، جارجیا;अल्बानी;オールバニ;奧爾巴尼;올버니; +city::4179574;Alpharetta;Al'faretta;Alfareta;Alpharetta;New Prospect Campground;alfarta jwrjya;alfaryta;alfaryta jarjya;alphareta;Алфарета;Альфаретта;آلفارتا، جورجیا;ألفاريتا;الفاریتا، جارجیا;अल्फारेटा; +city::4180439;Atlanta;ATL;Atlant;Atlanta;Atlantae;Atlonta;Canebrake;Gorad Atlanta;Marthasdale;Marthasville;Standing Peachtree;Terminus;White Hall;Whitehall;aeteullaenta;arr‌lanra nagaram;atalanta;ateullaenta;ateullanta;atlanta;atoranta;atʼlantʼa;etalanta;etlanta;ya te lan da;Ατλάντα;Атлантæ;Атланта;Горад Атланта;Ատլանտա;אטלאנטא;אטלנטה;آتلانتا;أتلانتا;ئەتڵانتا;اٹلانٹا;اٹلانٹا، جارجیا;अटलांटा;अटलान्टा;एट्लान्टा;एत्लान्ता;আটলান্টা;એટલાન્ટા;அட்லான்டா;అట్లాంటా;ಅಟ್ಲಾಂಟಾ;അറ്റ്‌ലാന്റാ നഗരം;แอตแลนตา;ཨ་ཊི་ལཱན་ཊཱ།;အတ္တလန္တာမြို့;ატლანტა;አትላንታ;アトランタ;亚特兰大;亞特蘭大;아틀란타;아틀랜타;애틀랜타; +city::4184530;Brookhaven;Brookhaven;Brookhaven Heights;Nort Atlanta;North Atlanta;brwk hawn jwrjya;brwkhafn;nartha etlanta;Норт Атланта;بروكهافن;بروک هاون، جورجیا;بروک ہیون، جارجیا;नर्थ एट्लान्टा; +city::4188985;Columbus;CSG;Columbus;Kolambus;Kolumbas;Kolumbus;Kulumbus;ge lun bu;klmbws jwrjya;kolambasa;kolleombeoseu;kolumbus;koronbasu;kwlmbs jarjya;kwlwmbws;qwlwmbws;Коламбус;Колумбус;Кълъмбъс;קולומבוס;كولومبوس;کلمبوس، جورجیا;کولمبس، جارجیا;कोलम्बस;コロンバス;哥伦布;콜럼버스; +city::4207400;Macon;Fort Hawkins;MCN;Macon;Maiikon;Makon;Mejkon;Newtown;Tiger Town;Troy;makn jwrjya;makwn;mei ken;meikeon;meikon;myakona;mykn jarjya;myyqwn;Μαίηκον;Макон;Мейкон;Мејкон;מייקון;ماكون;ماکن، جورجیا;میکن، جارجیا;म्याकोन;メイコン;梅肯;메이컨; +city::4207783;Marietta;MGE;Marieta;Marietta;Marijeta;ma li ai ta;maelieta;mari'eta;marietta;maryta;mryta jwrjya;Мариета;Мариетта;Маријета;ماريتا;مریتا، جورجیا;مریٹا، جارجیا;मारिएटा;マリエッタ;玛丽埃塔;매리에타; +city::4219934;Roswell;Roswell;Rozvel;lojeuwel;luo si wei er;rosvela;rwzwl jarjya;rwzwyl;rzwl jwrjya;Розвел;رزول، جورجیا;روزول، جارجیا;روزويل;रोस्वेल;罗斯韦尔;로즈웰; +city::4221333;Sandy Springs;Burdal;Sandi-Springs;Sandy Springs;Sendi Springs;sandisupuringusu;sandy sbrynghz;sang di si pu lin si;sndy aspryng jwrjya;syandi springas;Санди-Спрингс;Санді-Спрінгс;Сенди Спрингс;ساندي سبرينغز;سندی اسپرینگ، جورجیا;سینڈی سپرنگز، جارجیا;स्यान्डी स्प्रिङ्गस्;サンディスプリングス;桑迪斯普林斯; +city::4221552;Savannah;Gorad Savana;SAV;Sarannah;Savana;Savanah;Savanna;Savannah;Sawanna;Yamacraw;sa fan na;saban'na;sabhana;safana;savhana;sawana jwrjya;seobaeneo;sha wa na;Горад Савана;Савана;Саванна;סאוואנאה;סוואנה;سافانا;ساوانا، جورجیا;ساواناہ، جارجیا;सभाना;सव्हाना;サバンナ;沙瓦納;薩凡納;서배너; +city::4223379;Smyrna;Neal Dow;Smirna;Smyrna;Varners Station;asmyrna jwrjya;shi mai na;smirna;smrna jarjya;smyrna;Смирна;اسمیرنا، جورجیا;سمرنا، جارجیا;سميرنا;स्मीर्ना;士麦那; +city::4228147;Valdosta;Troupville;VLD;Valdosta;barudosuta;bhyaladosta;faldwsta;waldsta jwrjya;Валдоста;فالدوستا;والدستا، جورجیا;والڈوسٹا، جارجیا;भ्यालडोस्टा;バルドスタ; +city::4229476;Warner Robins;Uorner-Robins;Vorner Robins;Vorner-Robins;WRB;Warner Robins;Wellston;York;varnara rabinsa;warnr rwbynz;warnrrabynz jwrjya;warnz rwbnz jarjya;Ворнер Робинс;Ворнер-Робінс;Уорнер-Робинс;وارنر روبينز;وارنررابینز، جورجیا;وارنز روبنز، جارجیا;वार्नर रबिन्स; +city::4236895;Decatur;DEC;Decatur;Dekaturo;Dekejter;Dekejtur;dekatara;di kai te;dikatura;dikeiteo;diketa;diketara;dikhe the xr;dykadwr;dykytwr aylynwy;Декейтер;Декејтур;ديكادور;دیکیتور، ایلینوی;ڈیکاٹر، الینوائے;डिकॅटर;डेकाटर;ডিকাটুর;ดิเคเทอร์;ディケーター;迪凯特;디케이터; +city::4250542;Springfield;Campifons;Gorad Spryngfild;SPI;Sprin'nkfilnt;Springfield;Springfijld;Springfild;Springfilda;Springfildas;Springfilds;Springfīlda;Sprinqfild;icuppirinhpilt;sbrynj fyld alynwy;seupeulingpildeu;si pu lin fei er de;sprimphilda;springaphilda;springfild;spryngpyld;supuringufirudo;Σπρίνγκφιλντ;Горад Спрынгфілд;Спрингфиелд;Спрингфийлд;Спрингфилд;Спрингфілд;Սփրինգֆիլդ;ספרינגפילד;اسپرنگ فیلڈ، الینوائے;اسپرینگ‌فیلد;سبرينج فيلد، إلينوي;سپرنگفیلڈ;स्प्रिंगफील्ड;स्प्रिङ्गफिल्द;স্প্রিংফিল্ড;இசுப்பிரிங்ஃபீல்ட்;สปริงฟิลด์;スプリングフィールド;斯普林菲尔德;스프링필드; +city::4254679;Bloomington;BMG;Bloomington;Blumington;Blumingtona;Blumingtun;Blūmingtona;beullumingteon;blumintana;blwmnghtwn;blwmyngtwn;blwmyngtwn ayndyana;bu lu ming dun;buruminton;Блумингтон;Блумингтън;Блумінгтон;בלומינגטון;بلومنغتون;بلومنگٹن، انڈیانا;بلومینگتون، ایندیانا;ব্লুমিংটন;ブルーミントン;布卢明顿;블루밍턴; +city::4255466;Carmel;Bethleham;Bethlehem;Carmel;Karmel;Karmel';ka mei er;kameol;kameru;karml;karml ayndyana;Кармел;Кармель;كارمل;کارمل، انڈیانا;کارمل، ایندیانا;カーメル;卡梅尔;카멀; +city::4257227;Evansville;EVV;Ehvansvill;Evansvil;Evansvilis;Evansville;Gorad Ehvansvil;ai wen si wei er;awanzwyl ayndyana;ayfansfyl;ebanzubiru;ebeonjeubil;evhansavhila;evu~anzuvu~iru;ivansavila;xe wan s will;Горад Эвансвіл;Евансвил;Евансвіл;Эвансвилл;אוונסוויל;إيفانسفيل;اوانزویل، ایندیانا;ایوانز ویل، انڈیانا;इवान्सविल;एव्हान्सव्हिल;เอวันส์วิลล์;エバンズビル;エヴァンズヴィル;埃文斯維爾;에번즈빌; +city::4257494;Fishers;Fishers;Fishers Station;Fishers Switch;fyshrz;Фишерс;فشرز، انڈیانا;فيشرز; +city::4258313;Greenwood;Greenfield;Greenwood;Grinvud;Smockton;ghrynwwd;grynwwd ayndyana;Гринвуд;غرينوود;گرین ووڈ، انڈیانا;گرینوود، ایندیانا; +city::4259418;Indianapolis;Gorad Indyjanapalis;IND;Indianapoles;Indianapoli;Indianapolis;Indianapolisa;Indianapolės;Indianapòlis;Indianàpolis;Indianápolis;Indijanapolis;Indiyanapolis;andyanabwlys;ayndyanapwlys;idi'anapolisa;indiaenapolliseu;indianaporisu;indiyanapolis;indiyanapolisa;intiyanapolis;xin deiy næ pho lis;yin di an na bo li si;İndianapolis;Ινδιανάπολη;Індіанаполіс;Горад Індыянапаліс;Индианаполис;Индијанаполис;Ինդիանապոլիս;אינדיאנאפאליס;אינדיאנפוליס;إنديانابوليس;انڈیاناپولس;انڈیاناپولس، انڈیانا;ایندیاناپولیس;इंडियानापोलिस;इन्डियानापोलिस;इन्डियानापोलिस्;इन्दियानापोलिस;ইন্ডিয়ানাপোলিস;ਇੰਡੀਆਨਾਪੋਲਿਸ;இண்டியானாபொலிஸ்;อินเดียแนโพลิส;ინდიანაპოლისი;ኢንዲያናፖሊስ;インディアナポリス;印第安納波利斯;인디애나폴리스; +city::4265737;Terre Haute;HUF;Tera Khout;Tere Khout;Terra Alta;Terre-Khot;te lei huo te;telehote;tere hauta;tere haute;terehoto;therre hot;trh‌hwt ayndyana;tyr hwt;Тера Хоут;Тере Хоут;Терре-Хот;تر ہات، انڈیانا;تره‌هوت، ایندیانا;تير هوت;टेरे हौट;टेरे हौते;เทร์เรโฮต;テレホート;特雷霍特;테레호테; +city::4273837;Kansas City;Fort Cavagnolle;KCK;Kansas City;Kansas City i Kansas;Kanzas-Siti;kan sa si cheng;Канзас-Сити;堪薩斯城; +city::4274277;Lawrence;Gorad Lourehns;LWC;Lawrence;Lorens;Lourens;lao lun si;larns knsas;lolenseu;lwrans;lwrns kanzas;rorensu;Горад Лоўрэнс;Лоренс;Лоуренс;Լոուրենս;لارنس، کنساس;لورانس;لورنس، کانزاس;ローレンス;勞倫斯;로렌스; +city::4274356;Lenexa;Lenexa;Sherman; +city::4274994;Manhattan;MHK;Mankhehtten;Menkhetn;maenhaeteun;man ha dun;manhatn;manhattan;mnhtn kanzas;Манхэттен;Менхетн;مانهاتن;منهتن، کانزاس;مینہٹن، کنساس;マンハッタン;曼哈頓;맨해튼; +city::4276614;Olathe;Olat;Olathe;Olejt;Olejte;ao la xi;awlath;awlyta kanzas;oreisa;Олейт;Олејте;أولاث;اولیتا، کانزاس;اولیتھی، کنساس;オレイサ;奧拉西; +city::4276873;Overland Park;Ouvurlund Park;Overland Park;Overlend-Park;awfrland bark;awwrlnd park kanzas;obarandopaku;obeollaendeupakeu;ou fu lan pa ke;Оверланд Парк;Оверленд-Парк;Оувърлънд Парк;أوفرلاند بارك;اوورلند پارک، کانزاس;اوورلینڈ پارک، کنساس;オーバーランドパーク;歐弗蘭帕克;오벌랜드파크; +city::4279247;Shawnee;Shani;Shoni;shany knsas;shawny;shwny kanzas;syoni;Шани;Шони;شانی، کنساس;شاوني;شونی، کانزاس;쇼니; +city::4280539;Topeka;Google;Gorad Topika;Mid-Continent;Pomme de Terre;TOP;To-pe-ka;To-poo-ka;Too Beega;Topage;Topeca;Topeka;Topika;Topikae;Topīka;topeka;topika;tuo pi ka;twbyka kansas;twpyka;twpyqh;Τοπίκα;Горад Топіка;Топека;Топикæ;Топика;Топіка;Տոպիկա;טופיקה;توبيكا، كانساس;توپیکا;टोपेका;டொபீகா;トピカ;托皮卡;토피카; +city::4281730;Wichita;Camp Beecher;Camp Davidson;Doo-Dah;Doodah;Gorad Uichyta;ICT;Ouitsita;Uichita;Uichito;Vichita;Vicita;Viçita;Vičita;Wichita;uichitʼo;u~ichita;vicita;wei qi tuo;wi chi thx;wichito;wychyta kanzas;wychyta knsas;wytshyta;wyzyth;Ουιτσίτα;Вичита;Вічіта;Горад Уічыта;Уичита;Уичито;Ուիչիտո;ויציטה;ويتشيتا;ویچیتا، کانزاس;ویچیتا، کنساس;विचिटा;วิชิทอ;უიჩიტო;ウィチタ;威奇托;위치토; +city::4285268;Bowling Green;BWG;Bouling Grin;Bouling-Grin;Bowling Green;Bowlinggreen;bao ling ge lin;bolling-geulin;boringugurin;bwlyngh ghryn;bwwlyng gryn kntaky;Боулинг Грин;Боулинг-Грин;باولنگ گرین، کینٹکی;بولينغ غرين;بوولینگ گرین، کنتاکی;ボーリンググリーン;鮑靈格林;볼링그린; +city::4295940;Ironville;; +city::4297983;Lexington;LEX;Leksington;Leksingtona;Leksingtonas;Leksingtono;Leksingtun;Leksinqton;Lexington;Lexington-Fayette;Lexintonia;legsingteon;leksingtana;lie ke xing dui;lksyngtwn kntaky;lqsyngtwn;lyksynghtwn;rekishinton;Лексингтон;Лексингтън;לקסינגטון;ليكسينغتون;لکسینگتون، کنتاکی;لیکسنگٹن، کینٹکی;लेक्सिंग्टन;ലെക്സിങ്ടൺ;ლექსინგტონი;レキシントン;列克星敦;렉싱턴; +city::4297999;Lexington-Fayette;Fayette County;Lexington;Lexington-Fayette; +city::4299276;Louisville;Gorad Luisvil;Louisvil;Louisville;Louisville-Jefferson County;Ludovicopolis;Luisvil;Luisvilis;Luisvill;Luivil;Luivila;Lujzvill;Lūivila;SDF;lu yi wei er;lu'ivhila;lu-ibil;lu-ijeubil;lubhala;luisvili;luizvili;luy s will;luyivil;lwyfyl;lwyywyl kntaky;ruibiru;Λούισβιλ;Горад Луісвіл;Луивил;Луисвил;Луисвилл;Луйзвилл;Луїсвілл;Լուիսվիլ;לואיוויל;لوئیزویل، کینٹکی;لويفيل;لوییویل، کنتاکی;लुईव्हिल;লুভল;லூயிவில்;ลุยส์วิลล์;ლუიზვილი;ლუისვილი;ルイビル;路易維爾;루이빌;루이즈빌; +city::4300488;Meads;; +city::4303436;Owensboro;OWB;Ouensboro;Ouensburou;Ounsboro;Owensboro;Owensborough;Yellow Banks;awwnzbrww kntaky;awynsbwrw;o-eonjeubeoleo;oenzuboro;ou wen si bo lei;Оуенсборо;Оуенсбъроу;Оунсборо;أوينسبورو;اوونزبروو، کنتاکی;اوینسبورو، کینٹکی;オーエンズボロ;欧文斯伯勒;오언즈버러; +city::4315588;Baton Rouge;BTR;Baton Rouge;Baton Rouz;Baton Ruj;Baton Ruzas;Baton Ruzh;Baton Ruzos;Baton Ružas;Baton Ružos;Baton-Rouge;Baton-Ruzh;Batonruza;Batonrūža;Batun Ruzh;Bâton-Rouge;Dironbourg;Gorad Batan-Ruzh;New Richmond;Rubribaculum;ba tun lu ri;baeteonluji;batonruju;batwn rwj;batwn rwzh;batwn‌rwzh lwyyzyana;betana ru;betana ruja;byatana ruja;bʼtwn rwz;patan ruj;Μπατόν Ρουζ;Батон Руж;Батон-Руж;Батън Руж;Горад Батан-Руж;Բաթոն Ռուժ;באטון רוז;باتون روج;باتون روژ;باتون‌روژ، لوئیزیانا;باٹن روگ;بیٹون روج، لوزیانا;बॅटन रूज;बेटन रु;बेटन रूज;ब्यातन रुज;பாடன் ரூஜ்;แบตันรูช;バトンルージュ;巴吞鲁日;배턴루지; +city::4317639;Bossier City;Bossier;Bossier City;Bozher Siti;bo xi er cheng;bosyeositi;bwsyr syty;bwwzhr lwyyzyana;Божер Сити;بوسير سيتي;بوسیئر سٹی، لوزیانا;بووژر، لوئیزیانا;波西尔城;보셔시티; +city::4329753;Kenner;Cannes Brulees;Kener;Kenner;ken na;kena;knr lwyyzyana;kynr lwzyana;kynyr;Кенер;Кеннер;كينير;کنر، لوئیزیانا;کینر، لوزیانا;ケナー;肯纳; +city::4330145;Lafayette;LFT;La Fayette;Lafajet;Lafayette;Lafejet;Lafejett;Little Manchac;Pinhool;Vermilion;Vermilionville;Vermillion Bridge;Vermillionville;Village of Saint Jean Au Vermilion;la fa ye;lafayt lwyyzyana;lafayyt;lapies;rafaietto;Лафайет;Лафейетт;Лафејет;לפאייט;لافاييت;لافایت، لوئیزیانا;لافیت، لوسیانہ;ラファイエット;拉法葉;라피엣; +city::4330236;Lake Charles;Charlestown;LCH;Lake Charles;Lejk Charls;Lejk-Charl'z;lai ke cha er si;leikeuchalseu;lyk charlz lwyyzyana;lyk tsharlz;reikucharuzu;Лейк-Чарльз;Лејк Чарлс;ليك تشارلز;لیک چارلز، لوئیزیانا;لیک چارلس، لوسیانہ;レイクチャールズ;莱克查尔斯;레이크찰스; +city::4333177;Metairie;Maiterie;Metairie;Metairieburgh;Metairieville;Metari;metali;meteri;mitiry lwyyzyana;Метари;مِتِری، لوئیزیانا;میٹیری، لوزیانا;メテリー;메타리; +city::4333190;Metairie Terrace;; +city::4335045;New Orleans;Bagong Orleans;Big Easy;Cene Orlean;Crescent City;Gorad Novy Arlean;La Nouvelle-Orleans;La Nouvelle-Orléans;MSY;N'ju-Orlean;N'ju-Orleans;NOLA;Naujasis Orleanas;Nawlins;Nea Orleani;Neu Orleans;Neuva Orleans;New Orleans;Nieuw Orleans;Nju Orleans;Nju Orliuns;Nog Orlean;Nor Orlean;Nouvelle Orleans;Nov-Orleano;Nov-Orleans;Nova Aurelia;Nova Orleaes;Nova Orleans;Nova Orleáns;Nova Orleães;Novij Orlean;Novyj Orlean;Nowy Orlean;Nowy Uorlean;Nueva Orleans;Nuoba Orleanes;Nuorleana;Nyu-Orlean;Nòva Orleans;Orleans Parish;The Big Easy;U Orlean;Uz Orlean;Yancuic Orleans;Yengi Orlean;Yéngi Orléan;akhali orleani;awrlynz parsh;n'yu orlins;n'yu orlinsa;n'yu orliyansa;new orleans louisiana;ni wx xr lins;ni'u aralinsa;niu ao liang;niyu orlens;nyuollieonseu;nyuorinzu;nyw awrlynz;nywawrlyan lwyyzyana;oralensa parisa;xin ao er liang;Çĕнĕ Орлеан;Ņūorleāna;Νέα Ορλεάνη;Њу Орлеанс;Горад Новы Арлеан;Жаңы орлеан;Новий Орлеан;Новый Орлеан;Ног Орлеан;Нью-Орлеан;Нью-Орлеанс;Ню Орлиънс;У Орлеан;Նոր Օռլեան;ניו אורלינס;ניו ארלינס;اورلینز پارش;نيو أورلينز;نیواورلئان، لوئیزیانا;न्यू ऑर्लिन्स;न्यू ओर्लियंस;न्‍यू आर्लीन्‍स;ওরলেন্স পারিশ;নিউ অরলিন্স;நியூ ஓர்லென்ஸ்;ನ್ಯೂ ಒರ್ಲೀನ್ಸ್;นิวออร์ลีนส์;ახალი ორლეანი;ニューオーリンズ;新奥尔良;紐奧良;뉴올리언스; +city::4341513;Shreveport;SHV;Shreve Town;Shreveport;Shreves Landing;Shrivport;shen li fu bo te;shryfbwrt;shrywpwrt lwyyzyana;shuribupoto;srivaporta;srybpwrt;syulibeupoteu;Шревепорт;Шривпорт;שריבפורט;شريفبورت;شریوپورت، لوئیزیانا;شریوپورٹ، لوزیانا;श्रीवपोर्ट;シュリーブポート;什里夫波特;슈리브포트; +city::4347778;Baltimore;BWI;Baltemore Town;Baltimor;Baltimor shaary;Baltimora;Baltimore;Baltimore City;Baltimorė;Baltimòra;Charm City;Gorad Baltymar;Jonas Town;Jones Town;Jonestown;Old Town;Oldtown;Valtimori;ba er de mo;balatimora;baltimor;baltimora;baltymwr;baltʼimori;boltimo-eo;boruchimoa;bwltymwr;bxl thim xr;palttimor;Βαλτιμόρη;Балтимор;Балтимор шаары;Горад Балтымар;Բալթիմոր;באלטימאר;בולטימור;بالتيمور;بالتیمور;بالٹیمور;بالٹیمور، میری لینڈ;बाल्टिमोर;बाल्टीमोर;বাল্টিমোর;ਬਾਲਟੀਮੋਰ;பால்ட்டிமோர்;ಬಾಲ್ಟಿಮೋರ್;ബാൾട്ടിമോർ;บอลทิมอร์;བྷལ་ཏྲི་མོར།;ဘော်လ်တီမိုးမြို့;ბალტიმორი;ボルチモア;巴爾的摩;볼티모어; +city::4348599;Bethesda;Betesda;Budezda;bei sai si da;beseoseuda;besesuda;btzda mrylnd;bythysda;Бетесда;Бъдезда;بتزدا، مریلند;بيثيسدا;بیتھسڈا، میری لینڈ;ベセスダ;贝塞斯达;베서스다; +city::4349159;Bowie;Boui;Bovi;Bowie;Bowie Station;Bui;Huntington City;Huntington Station;bawy;bui;bwwy mrylnd;Бови;Боуи;Буи;باوي;بووئی، میری لینڈ;بووی، مریلند;ブーイ; +city::4352053;Columbia;Columbia;Kolambija;Kolumbija;keolleombia;klmbya mrylnd;koronbia;kwlwmbya;Коламбија;Колумбия;كولومبيا;کلمبیا، مریلند;کولمبیا، میریلینڈ;コロンビア;컬럼비아; +city::4353765;Dundalk;Avondale;Dandalk;Dandok;Dandolk;Dundalk;dandk mrylnd;Дандалк;Дандок;Дандолк;داندک، مریلند;ڈنڈاک، میری لینڈ; +city::4354265;Ellicott City;Ehllikot Siti;Elikot Siti;Ellicott;Ellicott City;Ellicott Mills;Ellicotts Lower Mills;Ellicotts Mills;ai li ke te cheng;alykt mrylnd;erikottoshiti;Еликот Сити;Элликот Сити;الیکت، مریلند;ایلیکاٹ سٹی، میری لینڈ;エリコットシティ;埃利科特城; +city::4355585;Frederick;FDK;Frederic Town;Frederick;Frederick City;Frederick Town;Frederick i Maryland;Fredericktown;Frederik;Frederikas;Frehderik;Fridericus;Friedrichtown;Monaquesy;Monocacy;Monockkasye;frdryk mrylnd;frydryk;fu lei de li ke;furederikku;peuledeolig;Фредерик;Фредерік;Фрэдерик;فردریک، مریلند;فريدريك;فریڈرک، میری لینڈ;フレデリック;弗雷德里克;프레더릭; +city::4355843;Gaithersburg;Forest Oak;GAI;Gaithersburg;Gaithersburgum;Gejtersberg;Gejtersburg;Gejtursburg;Gejzehrsburg;gai se si bao;geideoseubeogeu;geizasubagu;ghaythrsbyrgh;gytrzbrg mrylnd;Гейзэрсбург;Гейтерсберг;Гейтърсбърг;Гејтерсбург;Ґейтерсбург;غايثرسبيرغ;گیترزبرگ، مریلند;گیتھرزبرگ، میری لینڈ;ゲイザースバーグ;盖瑟斯堡;게이더스버그; +city::4356050;Germantown;Dzermantaun;Dzhermantaun;jamantaun;jrmntawn mrylnd;jyrmantawn;Џермантаун;Джермантаун;جرمن ٹاؤن، مونٹگمری کاؤنٹی، میری لینڈ;جرمنتاون، مریلند;جيرمانتاون;ジャーマンタウン; +city::4356188;Glen Burnie;Glehn Bjurni;Glen Berni;Glen Burnie;Glenburnie;Myrtle;Traceys Station;ny mrylnd;Глен Берни;Глэн Бюрни;نی، مریلند;گلین برنی، میری لینڈ; +city::4367175;Rockville;Hungerford's Tavern;Hungerfords;Hungerfords Tavern;Montgomery Court House;Montgomery Courthouse;Owen's Ordinary;Rockvilla;Rockville;Rokvil;Rokvil';Rokvilis;Rokvill;Williamsburg;Williamsburgh;logbil;luo ke wei er;rakwyl mrylnd;rokkubiru;rwkfyl;rwqwwyl;Роквил;Роквилл;Роквіль;רוקוויל;راکویل، مریلند;راکویل، میری لینڈ;روكفيل;როკვილი;ロックビル;羅克維爾;록빌; +city::4369596;Silver Spring;Fons Argenteus;Silvehr Spring;Silver Spring;Silver Springs Station;Silver-Spring;Silvur Spring;shirubasupuringu;silbeoseupeuling;sylwr aspryng mrylnd;yin quan;Силвер Спринг;Силвер-Спринг;Силвър Спринг;Силвэр Спринг;Сілвер-Спрінг;سلور سپرنگ، میری لینڈ;سیلور اسپرینگ، مریلند;シルバースプリング;银泉;실버스프링; +city::4371582;Towson;Tauson;Towson;Towson Town;Towsontown;tao sen;tauson;tawsn mrylnd;Таусон;تاوسن، مریلند;ٹاوسن، میری لینڈ;タウソン;陶森; +city::4372599;Waldorf;Beantown;Valdof;Voldorf;Waldorf;u~orudofu;waldwrf mrylnd;woldopeu;Валдоф;Волдорф;والدورف، مریلند;والڈورف، میری لینڈ;ウォルドーフ;월도프; +city::4377664;Blue Springs;Blu Springs;blw aspryngz myzwry;blw sbrynghz;blyw sprngz mswry;Блу Спрингс;بلو اسپرینگز، میزوری;بلو سبرينغز;بلیو سپرنگز، مسوری; +city::4381982;Columbia;COU;Columbia;Kolambija;Kolumbia;Kolumbija;ge lun bi ya;keolleombia;klmbya myzwry;koronbia;kwlmbya mswry;kwlwmbya;Коламбија;Коламбія;Колумбиа;Колумбия;كولومبيا;کلمبیا، میزوری;کولمبیا، مسوری;コロンビア;哥倫比亞;컬럼비아; +city::4385018;East Independence;Independence Mo;Pixley;Pixleys; +city::4386802;Florissant;Ferdinand;Fleurissant;Florisant;Florissant;Saint Ferdinand;Saint Ferdinand Florissant;Saint Ferdinand de Florissant;San Fernando;San Fernando de Florissant;flwrysant;flwrysnt myzwry;Флорисант;Флориссант;فلوريسانت;فلوریسنت، میزوری;فلوریسینٹ، مسوری; +city::4391812;Independence;Bristol;Indehpendens;Independence;Independens;Independensas;Indipenduns;andybndns;ayndypndns myzwry;du li cheng;indipendensu;indipendeonseu;Індепенденс;Индепенденс;Индипендънс;Индэпенденс;אינדפנדנס;إنديبندنس;انڈیپینڈینس، مسوری;ایندیپندنس، میزوری;インディペンデンス;独立城;인디펜던스; +city::4392768;Joplin;Dzhoplin;Dzoplin;JLN;Joplin;Union City;gwplyn;japlyn myzwry;jopurin;jwbln;jwpln mswry;Џоплин;Джоплин;גופלין;جاپلین، میزوری;جوبلن;جوپلن، مسوری;ジョプリン; +city::4393217;Kansas City;Caasimada Kansas;City of Kansas;Dinas Kansas;Gorad Kanzas-Sici;Greenwood;Ilu Kansas;Kansas City;Kansas City i Missouri;Kansas Lakanbalen;Kansas Sity;Kansasurbo;Kanzas Shehiri;Kanzas Siti;Kanzas Sitis;Kanzas-Siti;Kanzassitija;Kota Kansas;Lungsod ng Kansas;MKC;Maple Gardens;Milton;Moscow;Town of Kansas;Westport;Winnetonka;Winnwood;kaenjaseusiti;kan sa si cheng;kanasasa siti;kansas syty;kanzasushiti;kanzas‌syty myzwry;kencas nakaram;kensasa siti;kʼanzas-sitʼi;qnzs syty;Ìlú Kansas;Κάνσας Σίτυ;Горад Канзас-Сіці;Канзас Сити;Канзас-Сити;Канзас-Сіті;Կանզաս Սիթի;קנזס סיטי;كانساس سيتي;کانزاس‌سیتی، میزوری;کنساس شہر، مسوری;कॅन्सस सिटी;কানসাস সিটি;கேன்சஸ் நகரம்;แคนซัสซิตี;კანზას-სიტი;カンザスシティ;堪薩斯城;캔자스시티; +city::4394870;Lee's Summit;Lee's Summit;Lee’s Summit;Lis Samit;Lis Sammit;Strother;lyz samyt myzwry;Лис Самит;Лис Саммит;ليز ساميت، ميزوري;リーズ・サミット; +city::4401242;O'Fallon;O'Fallon;O'Fallon Station; +city::4406831;Saint Charles;City of Saint Charles;Las Pequenas Cuestas;Le Village de Cotes;Le Village du Cote;Les Petites Cotes;Petit Cotes;Saint Andrew;Saint Charles;Saint Charles City;San Carlos del Missouri;San Carlos del Misuri;San Fernando;Sehjnt Charlz;Sent Charls;Sent-Charl'z;St. Charles;sent chal s;snt charlz myzwry;Сент Чарлс;Сент-Чарльз;Сэйнт Чарлз;سنت چارلز، میزوری;เซนต์ชาลส์; +city::4407010;Saint Joseph;Robidoux Landing;STJ;Saint Joseph;Sankta Jozefo;Sejnt Dzhouzef;Sent DZozef;Sent Dzhozef;Sent-Dzhozef;South Saint Joseph;St. Joseph;seinteujojipeu;snt jwzf myzwry;Сейнт Джоузеф;Сент Џозеф;Сент Джозеф;Сент-Джозеф;سنت جوزف، میزوری;세인트조지프; +city::4407066;St. Louis;City of Saint Louis;Gorad Sent-Luis;Lacledes Village;Mound City;Pain Court;Pancore;STL;Saint Lewis;Saint Louis;Saint Louis City;Saint-Louis;San Luis;Sankta Luiso;Sejnt Luis;Sent Loisos;Sent Luis;Sent Luisas;Sent-Luis;Sentluisa;Sint-Louis;St Louis;St. Louis;Urbs Sancti Ludovici;ceyint luyis;saint luyis;sant lwys;seinteulu-iseu;senta lu'isa;senthluys;sentoruisu;seyint luyis;sheng lu yi si;snt lwyys;Σαιντ Λούις;Горад Сент-Луіс;Сейнт Луис;Сент Луис;Сент-Луис;Сент-Луїс;סנט לואיס;سانت لويس;سنت لوئیس;سینٹ لوئس;सेंट लुईस;செயின்ட் லூயிஸ்;సెయింట్ లూయిస్;ಸೈಂಟ್ ಲೂಯಿಸ್;เซนต์หลุยส์;სენტ-ლუისი;セントルイス;圣路易斯;세인트루이스; +city::4407237;Saint Peters;City of Saint Peters;Sankt-Peterbu;Санкт-Петербу; +city::4409896;Springfield;North Springfield;SGF;Springfield;Springfijld;Springfild;aspryngfyld myzwry;sbrynghfyld;seupeulingpildeu;si pu lin fei er de;spryngpyld;supuringufirudo;Спрингфийлд;Спрингфилд;Спрингфілд;ספרינגפילד;اسپرینگفیلد، میزوری;سبرينغفيلد;سپرنگفیلڈ، مسوری;スプリングフィールド;斯普林菲尔德;스프링필드; +city::4428667;Gulfport;GPT;Galfport;Galfporta;Gulfport;galfpwrt mysysypy;garufupoto;ge er fu bo te;ghwlfbwrt;Галфпорт;Галфпорта;Гулфпорт;Гълфпорт;Ґалфпорт;غولفبورت;گالفپورت، میسیسیپی;گلف پورٹ، مسیسپی;ガルフポート;格尔夫波特; +city::4431410;Jackson;Dzekson;Dzeksona;Dzeksonas;Dzeksons;Dzhaksun;Dzhekson;Džeksona;Džeksonas;Džeksons;Gorad Dzhehksan;JAN;Jackson;Jackson i Mississippi;Le Fleurs Bluff;Siti of Dzhekson;Tzakson;Zhehkson;gqswn;jaegseun;jakcan;jaksan;jakswn;jakuson;jeksana;jie ke xun;jkswn mysysypy;jyakasana;jyaksana;jyksn;jyksn msyspy;Τζάκσον;Џексон;Горад Джэксан;Джаксън;Джексон;Жэксон;Сити оф Джексон;Ջեքսոն;גקסון;جاكسون;جکسون، میسیسیپی;جیکسن;جیکسن، مسیسپی;जाक्सन्;जॅक्सन;ज्याकसन;ज्याक्सन;ஜாக்சன்;ジャクソン;杰克逊;잭슨; +city::4446675;Southaven;Sautaven;Southhaven;Soutkhehven;sausuheibun;sawthywn mysysypy;Саутавен;Соутхэвен;ساؤتھایون، مسیسپی;ساوتهیون، میسیسیپی;サウスヘイブン; +city::4450687;West Gulfport;; +city::4453066;Asheville;AVL;Asheville;Biltmore;Ehshvill;Eshvil;Eshvil';Kasdu'yi;Keniworth;Montford;Morristown;Ramoth;Sunset Park;Victoria;West Asheville;Woolsey;a shen wei er;aesyubil;ashfyl;ashubiru;ashwyl karwlynay shmaly;ayshwyl shmaly kyrwlayna;Ешвил;Ешвіль;Эшвилл;אשוויל;آشفيل;اشویل، کارولینای شمالی;ایشویل، شمالی کیرولائنا;アシュビル;阿什维尔;애슈빌; +city::4458228;Burlington;Berlington;Berlingtona;Bjorlington;Burlington;Bērlingtona;Company Shops;barinton;brlnghtwn;lyngtn karwlynay shmaly;Берлингтон;Берлінгтон;Бёрлингтон;برلنغتون;برلنگٹن، شمالی کیرولائنا;لینگتن، کارولینای شمالی;バーリントン; +city::4459467;Cary;Cary;Kehri;Keri;Keris;Pages Siding;Pages Tavern;Pages Turnout;ka rui;kary;keli;keri;kry karwlynay shmaly;kyry shmaly kyrwlayna;Кери;Кері;Кэри;كاري;کری، کارولینای شمالی;کیری، شمالی کیرولائنا;ケーリー;卡瑞;케리; +city::4460162;Chapel Hill;; +city::4460243;Charlotte;CLT;Carolinum;Charlotte;Charlotte i Nord-Carolina;Charlottesburg;Charlottesburgh;Gorad Sharlat;Sarlot;Sarlota;Sarlote;Sarlott;Sharl"t;Sharlot;Sharlott;carlat;charlxtt;saralata;sarlata;sarlet;sharlotʼi;sharlwt karwlynay shmaly;sharotto;syalleos;tsharlwt;xia luo te;Şarlott;Šarlota;Šarlotė;Σάρλοτ;Горад Шарлат;Шарлот;Шарлотт;Шарлът;Շառլոթ;שארלוט;تشارلوت;شارلوت، کارولینای شمالی;شارلوٹ، شمالی کیرولائنا;शार्लट;শার্লট;ਸ਼ਾਰਲਟ;சார்லட்;షార్లెట్;ಷಾರ್ಲೆಟ್;ชาร์ลอตต์;შარლოტი;シャーロット;夏洛特;샬럿; +city::4461574;Concord;Concord;Konkord;USA;kankrd karwlynay shmaly;konkodo;kwnkwrd;Конкорд;كونكورد;کانکرد، کارولینای شمالی;کونکورڈ، شمالی کیرولائنا;コンコード; +city::4464368;Durham;Daram;Darem;Daremas;Duram;Durham;Durhamsville;Gorad Darehm;RDU;daramu;de han;deoleom;dwrham;dyurema;Горад Дарэм;Дарам;Дарем;Дърам;דרהאם;دورهام;ڈرہم، شمالی کیرولائنا;ड्युरॅम;เดอแรม;ダーラム;德罕;더럼; +city::4466033;Fayetteville;Campbellton;Cross Creek;FAY;Fajetvil;Fayetteville;Feetvil';Fejetvil;Fejetvill;Lower Campbellton;Upper Campbellton;faiettobiru;fayytfyl;fei ye te wei er;fey xett will;fyytwyl karwlynay shmaly;peiesbil;Файетвил;Фейетвилл;Феєтвіль;Фејетвил;פאייטוויל;فائیٹویل، شمالی کیرولائنا;فاييتفيل;فییتویل، کارولینای شمالی;เฟย์เอตต์วิลล์;ファイエットビル;費耶特維爾;페이엣빌; +city::4467732;Gastonia;Gastonija;gaeseutonia;gasutonia;ghastwnya;gstwwnya karwlynay shmaly;jia si tuo ni ya;kastaniya;Гастония;Гастонија;Ґастонія;غاستونيا;گستوونیا، کارولینای شمالی;گیسٹونیا، شمالی کیرولائنا;கஸ்டானியா;แกสโตเนีย;ガストニア;加斯托尼亞;개스토니아; +city::4469146;Greensboro;GSO;Gorad Grynsbara;Greensboro;Grijnsburo;Grinsboras;Grinsboro;Qrinsboro;ge lin si bo lei;geulinjeubeoleo;ghrynzbwrw;grinsaboro;grynsbwrw;grynzbwrw karwlynay shmaly;grynzbwrw shmaly kyrwlayna;gurinzuboro;kri ns bo ro;Горад Грынсбара;Грийнсбъро;Гринсборо;Ґрінсборо;Գրինսբորո;גרינסבורו;غرينزبورو;گرینزبورو، شمالی کیرولائنا;گرینزبورو، کارولینای شمالی;ग्रीन्सबोरो;กรีนส์โบโร;グリーンズボロ;格林斯伯勒;그린즈버러; +city::4469160;Greenville;Greenesville;Greensville;Greenville;Grinvil;Grinvill;Martinsborough;PGV;ghrynfyl;grynwwyl;grynwyl karwlynay shmaly;grynwyl shmaly kyrwlayna;gurinbiru;Гринвил;Гринвилл;גרינוויל;غرينفيل;گرینویل، شمالی کیرولائنا;گرینویل، کارولینای شمالی;グリーンビル; +city::4471025;High Point;Khaj Pojnt;Khaj-Pojnt;hai bo yin te;haipointo;hay bwynt;hay pwynt karwlynay shmaly;Хай-Пойнт;Хај Појнт;هاي بوينت;های پوینت، کارولینای شمالی;ہائی پوائنٹ، شمالی کیرولائنا;ハイポイント;海波因特; +city::4472370;Huntersville;Khantersvil;hantazubiru;hantrsfyl;hwntrswyl karwlynay shmaly;Хантерсвил;هانترسفيل;هونترسویل، کارولینای شمالی;ہنٹرزویل، شمالی کیرولائنا;ハンターズビル; +city::4473083;Jacksonville;Dzeksonvil;Dzhaksunvil;Dzhehksonvill;Dzheksonvil';Dzheksonvill;Jacksonville;OAJ;Onslow Court House;jakswnfyl;jakusonbiru;jksnwyl karwlynay shmaly;jyksn wyl shmaly kyrwlayna;Џексонвил;Джаксънвил;Джексонвилл;Джексонвіль;Джэксонвилл;جاكسونفيل;جکسنویل، کارولینای شمالی;جیکسن ویل، شمالی کیرولائنا;ジャクソンビル; +city::4487042;Raleigh;Gorad Roli;RDU;Ralei;Raleigh;Rali;Roles;Roli;Rolis;Rolės;Wake Court House;lolli;luo li;ra li;raley;rali;raly;raly shmaly kyrwlyna;rele;reli;roli;rori;ryale'i;Ράλεϊ;Горад Ролі;Рали;Ралі;Роли;Ռոլի;ראלי;رالي;رالی;رالی، شمالی کیرولینا;रालेय्;रॅले;रेली;र्यालेइ;র‌্যালি;ராலீ;ราลี;როლი;ローリー;罗利;롤리; +city::4488762;Rocky Mount;RWI;Rocky Mount;Roki Maunt;Roki-Maunt;raky mawnt karwlynay shmaly;rokkimaunto;rwky mawnt;Роки Маунт;Роки-Маунт;Рокі-Маунт;راکی ماؤنٹ، شمالی کیرولائنا;راکی ماونت، کارولینای شمالی;روكي ماونت;ロッキーマウント; +city::4499379;Wilmington;ILM;New Carthage;New Liverpool;New Town;Newton;Uilmington;Uilmingtun;Vilmington;Wilmington;u~iruminton;wei er ming dun;wilmingteon;wylmynghtwn;wylmyngtn karwlynay shmaly;wylmyngtwn;Вилмингтон;Вілмінгтон;Уилмингтон;Уилмингтън;וילמינגטון;ويلمينغتون;ویلمینگتن، کارولینای شمالی;ویلمینگٹن، شمالی کیرولائنا;ウィルミントン;威尔明顿;윌밍턴; +city::4499612;Winston-Salem;INT;Uinston-Sejlem;Uinstun-Sejlum;Vinston-Salem;Vinston-Sejlem;Vinstonas-Seilemas;Winston;Winston Salem;Winston-Salem;wen si dun-sai lei mu;winseuteonseilleom;wynstwn-salm karwlayna alshmalyt;wynstwn-sylm;Винстон-Салем;Винстон-Сейлем;Винстон-Сејлем;Уинстон-Сейлем;Уинстън-Сейлъм;وينستون-سالم، كارولاينا الشمالية;وینستون-سیلم;ウィンストン・セーラム;温斯顿-塞勒姆;윈스턴세일럼; +city::4501018;Camden;Camden;Camden Village;Cooper's Ferry;Cooper's Point Ferry Village;Coopers Ferry;Coopersville;Dogwood;Kaighnton;Kamdehn;Kamden;Kamdun;Pinchtown;Spicers;Stockton;Wrightsville;kaemdeon;kamdn;kamuden;kemdena;ken dun;kmdn nywjrsy;qmdn;Камден;Камдън;Камдэн;קמדן;كامدن;کمدن، نیوجرسی;کیڈمن، نیو جرسی;कॅम्डेन;カムデン;肯頓;캠던; +city::4501198;Cherry Hill;Cherry Hill;Ellisburg; +city::4502434;Jackson;; +city::4504225;South Vineland;; +city::4504476;Toms River;Goose Creek;MJX;Main Branch Toms River;North Branch Toms River;Tom's River;Toms Creek;Toms Rivehr Taunship;Toms River;Toms River Bay;Toms Rivur;tamz rywr nywjrsy;tang mu si he;tomseulibeo;tomuzuriba;Томс Ривер;Томс Ривър;Томс Ривэр Тауншип;تامز ریور، نیوجرسی;トムズリバー;湯姆斯河;톰스리버; +city::4504621;Vineland;Vajnland;bainrando;waynlnd nywjrsy;Вайнланд;Вајнланд;وائنلینڈ، نیو جرسی;واینلند، نیوجرسی;バインランド; +city::4508722;Cincinnati;CVG;Cincinnati;Cincinnatopolis;Covalts Station;Fort Washington;Gorad Cyncynaci;Losantiville;Porkopolis;Queen City;Queen City of the West;Sinsinati;Sinsinatis;Sinsinatti;Sinsinnati;cincinatti;shinshinati;sinasinati;sinsinaeti;synsynaty;synsynty;synsynty awhayw;xin xin na ti;Σινσινάτι;Горад Цынцынаці;Синсинати;Синсинатти;Цинциннати;Цинциннаті;Ցինցինատի;סינסינטי;سنسیناٹی;سينسيناتي;سینسینتی، اوهایو;सिनसिनाटी;சின்சினாட்டி;ซินซินแนติ;ცინცინატი;シンシナティ;辛辛那提;신시내티; +city::4509177;Columbus;CMH;Columbopolis;Columbus;Columbus i Ohio;Franklin;Franklinton;Gorad Kalumbus;Kolambus;Kolompous;Kolumbas;Kolumbs;Kolumbu;Kolumbus;Kolumbusa;Kulumbus;ge lun bu;kalabasa;kalambasa;kholambas;klmbws awhayw;kolambas;kolambasa;kolampas;kolleombeoseu;koronbasu;kwlwmbws;qwlwmbws;Κολόμπους;Горад Калумбус;Коламбус;Колумбус;Кълъмбъс;Կոլումբուս;קאלומבוס;קולומבוס;كولومبوس;کلمبوس، اوهایو;کولمبس، اوہائیو;कोलंबस;कोलम्बस;कोलम्बस्;কলম্বাস;ਕਲੰਬਸ;கொலம்பஸ்;โคลัมบัส;კოლუმბუსი;コロンバス;哥伦布;哥倫布;콜럼버스; +city::4509884;Dayton;Cabintown;DAY;Dayton;Dehjton;Deitonas;Dejton;Dejtun;Venice;dai dun;daytwn awhayw;deiteon;deiton;detana;dytwn;dyytwn;Дейтон;Дейтън;Дејтон;Дэйтон;דייטון;دايتون، أوهايو;دیتون;डेटन;デイトン;代顿;데이턴; +city::4513575;Hamilton;Fort Hamilton;Gamil'ton;HAO;Hamilton;Hamilton!;Khamilton;Khamiltun;Khehmilton;Rossville;haemilteon;hamiruton;hamltn;han mi er dun;hmyltwn awhayw;Гамильтон;Гамільтон;Хамилтон;Хамилтън;Хэмилтон;هاملتن;همیلتون، اوهایو;ہیملٹن، اوہائیو;ハミルトン;漢密爾頓;해밀턴; +city::4515843;Kettering;Kehttering;Ketering;Kettering;katrngh;keteoling;ktryng awhayw;Кетеринг;Кеттеринг;Кэттеринг;كاترنغ;کترینگ، اوهایو;کیٹرنگ، اوہائیو;케터링; +city::4525353;Springfield;Gillistown;Post Town;SGH;Springfield;Springfild;aspryngfyld awhayw;sbrynghfyld;seupeulingpildeu;si pu lin fei er de;spryngpyld;supuringufirudo;Спрингфилд;Спрінгфілд;ספרינגפילד;اسپرینگفیلد، اوهایو;سبرينغفيلد;سپرنگفیلڈ، اوہائیو;སི་པི་རིང་ཧྥིལ་ཌི།;スプリングフィールド;斯普林菲尔德;스프링필드; +city::4531405;Broken Arrow;Broken Arou;Broken Arrow;Broken-Ehrrou;Broken-Errov;Broukehn Arrou;beulokeun-aelo;brwkn arw;brwkn arww aklahma;burokun'aro;Брокен Ароу;Брокен-Ерров;Брокен-Эрроу;Броукэн Арроу;ברוקן ארו;بروكن أرو;بروکن اروو، اکلاهما;بروکن ایرو، اوکلاہوما;ブロークンアロー;브로큰애로; +city::4535740;Edmond;Edmond;Edmont;Ehdmon;Ehdmond;Ehdmont;admnd aklahma;admwnd;edeumeondeu;edomondo;Едмонд;Едмонт;Эдмон;Эдмонд;Эдмонт;אדמונד;إدموند;ادمند، اکلاهما;ایڈمونڈ، اوکلاہوما;エドモンド;에드먼드; +city::4535961;Enid;Ehnid;Enid;Inid;WDG;anyd;aynyd aklahma;inideu;Енід;Инид;Энид;إنيد;اینڈ، اوکلاہوما;اینید، اکلاهما;이니드; +city::4540737;Lawton;LAW;Lavton;Lawton;Loton;Louton;lao dun;loteon;ltn aklahma;lwtwn;roton;Лавтон;Лотон;Лоутон;לוטון;لاٹن، اوکلاہوما;لتن، اکلاهما;لوتون;ロートン;劳顿;로턴; +city::4542765;Midwest City;Miduehst-Siti;Midvehst Siti;Midvest Siti;Midvest-Siti;mydwst syty aklahma;mydwyst syty;Мидвест Сити;Мидвэст Сити;Мидуэст-Сити;Мідвест-Сіті;ميدويست سيتي;مڈویسٹ سٹی، اوکلاہوما;میدوست سیتی، اکلاهما; +city::4542975;Moore;Mur;mu er;mua;mueo;mwr;mwr aklahma;Мур;مور;مور، اکلاهما;موور، اوکلاہوما;ムーア;穆尔;무어; +city::4543762;Norman;Norman;OUN;noman;nomeon;normana;nuo man;nwrmn aklahma;Норман;نورمن، اکلاهما;नॉर्मन;ノーマン;諾曼;노먼; +city::4544349;Oklahoma City;Caayr Oklahoma;Cathair Oklahoma;Dinas Oklahoma;Gorad Aklakhoma-Sici;Kota Oklahoma;Kutha Oklahoma;Lungsod ng Oklahoma;Maxeponoe;Maxepónoe;OKC;Oklachoma Siti;Oklahoma;Oklahoma Ceety;Oklahoma City;Oklahoma Sites;Oklahoma Siti;Oklahoma Sitis;Oklahoma Sitės;Oklahoma Station;Oklahoma llaqta;Oklahomasitija;Oklahomaurbo;Oklakhoma;Oklakhoma Siti;Oklakhoma-Siti;Oklakhomae-Siti;Oklaxoma Shehiri;aklahma syty;ao ke la he ma shi;awklahwma syty;e ke la he ma cheng;okalahoma siti;okeullahomasiti;oklahoma nakaram;oklahoma siti;oklahoma-siti;okurahomashiti;xo khla ho ma si ti;Οκλαχόμα Σίτι;Горад Аклахома-Сіці;Оклахомæ-Сити;Оклахома;Оклахома Сити;Оклахома-Сити;Оклахома-Сіті;Օկլահոմա Սիթի;אוקלהומה סיטי;أوكلاهوما سيتي;اوکلاہوما شہر، اوکلاہوما;اکلاهما سیتی;ओक्लाहोमा सिटी;ওকলাহোমা সিটি;ஓக்லஹோமா நகரம்;โอคลาโฮมาซิตี;ოკლაჰომა-სიტი;ოქლაჰომა-სითი;オクラホマシティ;俄克拉荷馬城;奧克拉荷馬市;오클라호마시티; +city::4553433;Tulsa;T"lsa;TUL;Talsa;Tulsa;tarusa;tu er sa;Талса;Тълса;タルサ;圖爾薩; +city::4560349;Philadelphia;Coaquannock;Fi-sang;Fi-sàng;Filadel'fi;Filadel'fij;Filadel'fija;Filadelfi;Filadelfia;Filadelfiae;Filadelfie;Filadelfii;Filadelfija;Filadelfijo;Filadelfio;Filadelfiya;Filadelfiye;Filadelfiä;Filadèlfia;Filadélfia;Filadélfiye;Ga-na-ta-jen-go-na;Gorad Filadehl'fija;PHL;Philadelpheia;Philadelphia;Philadelphie;Philly;Quequenakee;Tsi wahswen:to Tekahso:ken;Tsi wahswèn:to Tekahsó:ken;fei cheng;fi la delfeiy;filadailafi'a;firaderufia;flaڈylfya;fyladlfya;fyladlfya pnsylwanya;philadelaphiya;philadelphiya;piladelpia;pilatelpiya;pilladelpia;pyldlpyh;Φιλαδέλφεια;Горад Філадэльфія;Филаделфиа;Филаделфия;Филаделфија;Филадельфи;Филадельфий;Филадельфия;Філадельфія;Ֆիլադելֆիա;פילאדעלפיע;פילדלפיה;فلاڈیلفیا;فلاڈیلفیا، پنسلوانیا;فيلادلفيا;فیلادلفیا;فیلادلفیا، پنسیلوانیا;फिलाडेल्फिया;ফিলাডেলফিয়া;ਫ਼ਿਲਾਡੈਲਫ਼ੀਆ;ફિલાડેલ્ફિયા;பிலடெல்பியா;ఫిలడెల్ఫియా;ಫಿಲಡೆಲ್ಫಿಯಾ;ഫിലഡെൽഫിയ;ฟิลาเดลเฟีย;ဖီလာဒဲလ်ဖီးယားမြို့;ფილადელფია;ፊላዴልፊያ;ភីឡាដេលផ្យា;フィラデルフィア;費城;费城;필라델피아; +city::4574324;Charleston;Carolopolis;Charles Town;Charles Towne;Charleston;Charleston i Sor-Carolina;Charleston i Sør-Carolina;Charlestowne;Charlston;Charlstoun;Charlstown;Charlstun;Tsarleston;cha er si dun;chalseuteon;charlstwn karwlynay jnwby;charusuton;tsharlstwn;zʼrlstwn;Τσάρλεστον;Чарлстон;Чарлстън;צארלסטון;تشارلستون;چارلستون، کارولینای جنوبی;چارلسٹن، جنوبی کیرولائنا;チャールストン;查尔斯顿;찰스턴; +city::4575352;Columbia;CAE;Columbia;Columbia i Sor-Carolina;Columbia i Sør-Carolina;Colùmbia;Colúmbia;Gorad Kalumbija;Kolambija;Koloumpia;Kolumbi;Kolumbia;Kolumbija;Kuolumbeje;Kuolumbėjė;ge lun bi ya;kalambiya;keolleombia;klmbya karwlynay jnwby;kolambiya;kolampiya;koronbia;kwlmbya jnwby kyrwlayna;kwlwmbya;qwlwmbyh;Κολούμπια;Горад Калумбія;Коламбија;Колумби;Колумбия;Колумбија;Колумбія;Կոլումբիա;קאלאמביע;קולומביה;كولومبيا;کلمبیا، کارولینای جنوبی;کولمبیا، جنوبی کیرولائنا;कोलंबिया;कोलम्बिया;কলাম্বিয়া;કોલંબિયા;கொலம்பியா;కొలంబియా;კოლუმბია;コロンビア;哥伦比亚;컬럼비아; +city::4580543;Greenville;GSP;Greenville;Greenville City;Greenville Court House;Greenville Courthouse;Grijnvil;Grinvil;Grinvil';Grinvill;Pleasantburg;Pleasantville;ge lin wei er;geulinbil;ghrynfyl;grinvili;grynwwyl;grynwyl jnwby kyrwlayna;grynwyl karwlynay jnwby;gurinbiru;Грийнвил;Гринвил;Гринвилл;Ґрінвіль;גרינוויל;غرينفيل;گرینویل، جنوبی کیرولائنا;گرینویل، کارولینای جنوبی;გრინვილი;グリーンビル;格林维尔;그린빌; +city::4588165;Mount Pleasant;Maunt Plezant;Mt. Pleasant;mang te pu lin sen;mauntopurezanto;mawnt plznt karwlynay jnwby;mwnt blystant;Маунт Плезант;ماؤنٹ پلیزینٹ، جنوبی کیرولائنا;ماونت پلزنت، کارولینای جنوبی;مونت بليستانت;マウントプレザント;芒特普林森; +city::4589387;North Charleston;CHS;N. Charleston;Nort Charlston;Nort-Charlston;North Charleston;bei cha er si dun;nosucharusuton;nwrt charlstn karwlynay jnwby;nwrth tsharlstwn;Норт Чарлстон;Норт-Чарлстон;شمالی چارلسٹن، جنوبی کیرولائنا;نورت چارلستن، کارولینای جنوبی;نورث تشارلستون;ノースチャールストン;北查尔斯顿; +city::4593142;Rock Hill;Ebenezer Depot;RKH;Rock Hill;Rockhill;Rocky Hill; +city::4604183;Bartlett;Bartlet;Bartlett;Union Depot;bartlyt;bartlyt tnsy;Бартлет;Бартлетт;بارتليت;بارتلیت، تنسی;بارٹلیٹ، ٹینیسی; +city::4612862;Chattanooga;A'tla'nuwa;Atala'nuwa';CHA;Catanuga;Chatanuga;Chattanooga;Chattanuga;Lookout City;Old French Store;Ross Landing;Ross's Landing;Ross's Store;Ross's Warehouse;Ross's Wharf;Tsattanounka;cetanuga;cha ta nu jia;chaeteonuga;chatanuga;chatanwga tnsy;tshatanwgha;ztnwgh;Čatanuga;Τσαττανούγκα;Чатануга;Чаттануга;Чаттануґа;צטנוגה;تشاتانوغا;چاتانوگا، تنسی;چٹانوگا، ٹینیسی;चॅटानूगा;チャタヌーガ;查塔努加;채터누가; +city::4613868;Clarksville;CKV;Clarksville;Klarksvil;Klarksvilis;Klarksvill;ke la ke si wei er;klarks vyl tynysy;klarksavhila;klarksfyl;kurakusubiru;Кларксвил;Кларксвилл;Кларксвілл;קלארקסוויל;كلاركسفيل;کلارکس ڤیل، تئنئسی;کلارکسویل، ٹینیسی;کلارک‌اسویل، تنسی;क्लार्क्सव्हिल;クラークスビル;克拉克斯维尔; +city::4619947;East Chattanooga;; +city::4623560;Franklin;Franklin;franklyn;franklyn tnsy;furankurin;peulaengkeullin;Франклин;فرانكلين;فرانکلین، تنسی;فرینکلن، ٹینیسی;フランクリン;프랭클린; +city::4628735;Hendersonville;Khendersonvil;hendason'vu~iru;hendeoseunbil;hndrsnwyl tnsy;hyndrswnfyl;Хендерсонвил;هندرسنویل، تنسی;هيندرسونفيل;ہینڈرسنویل، ٹینیسی;ヘンダーソンヴィル;헨더슨빌; +city::4632595;Jackson;Dzekson;Dzhaksun;Dzhekson;Jackson;MKL;jaegseun;jakswn;jakuson;jie ke xun;jksn tnsy;Џексон;Джаксън;Джексон;جاكسون;جکسن، تنسی;جیکسن، ٹینیسی;ジャクソン;傑克遜;잭슨; +city::4633419;Johnson City;Blue Plum Station;Dzonson Siti;Haynesville;Johnson City;Johnsons Depot;Johnsons Tank;gwnswn syty;janswn syty tnsy;jonseunsiti;jonsonshiti;jwnswn syty;yue han xun cheng;Џонсон Сити;גונסון סיטי;جانسن سٹی، ٹینیسی;جانسون سیتی، تنسی;جونسون سيتي;ジョンソンシティ;約翰遜城;존슨시티; +city::4634662;Kingsport;Boat Yard;Boatyard;Christiansville;Island Flats;Kings Port;Kingsport;Peace Island;jin si bo te;kynghsbwrt;kyngzprt tnsy;Кингспорт;Кінгспорт;كينغسبورت;کنگزپورٹ، ٹینیسی;کینگزپرت، تنسی;金斯波特; +city::4634946;Knoxville;Knoxville;Noksvil;Noksvill;Noxvil;TYS;Whites Fort;Whites Mill;nakswyl tnsy;nogseubil;nokkusubiru;noksavhila;nuo ke si wei er;nwksfyl;nwqswwyl;Νόξβιλ;Ноксвил;Ноксвилл;Ноксвілл;נוקסוויל;ناکسویل، تنسی;نوكسفيل;नॉक्सव्हिल;ノックスビル;諾克斯維爾;녹스빌; +city::4641239;Memphis;Gorad Memfis;MEM;Memfis;Memfisa;Memphis;Memphis Tennesiae;Menfis;Mémfis;Mênfis;memfis;memhpis;memphisa;mempiseu;mempisi;menfisu;meng fei si;mmfys;mmfys tnsy;mmpys;Μέμφις;Горад Мемфіс;Мемфис;Мемфіс;Մեմֆիս;ממפיס;מעמפיס;ممفيس;ممفیس;ممفیس، تنسی;میمفس، ٹینیسی;मेम्फिस;মেম্ফিস;மெம்ஃபிஸ்;เมมฟิส;მემფისი;メンフィス;孟菲斯;孟非斯;멤피스; +city::4644312;Murfreesboro;Cannonsburgh;Merfrisboro;Murfreesboro;Murfreesborough;Murfreysburo;Murfrijzburou;Murfrisboro;Murfrizboro;mafurizuboro;meopeulijeubeoleo;mo fu li si bo lei;mrprysbwrw;mwrfryzbwrw tnsy;Мерфрисборо;Мурфризборо;Мурфрисборо;Мърфрийзбъроу;מרפריסבורו;مورفریزبورو، تنسی;مورفریزبورو، ٹینیسی;マーフリーズボロ;默弗里斯伯勒;머프리즈버러; +city::4644585;Nashville;BNA;French Lick;Gorad Nashvil;Nachville;Nasburgum;Nashboro;Nashborough;Nashfile;Nashvil;Nashvill;Nashville;Nashville-Davidson;Nashwil;Nasvelis;Nasvil;Nasvila;Nasvilo;Naŝvilo;Našvila;Našvėlis;Nehshvill;Neshvil;Nesvil;Nesvilis;Nesvill;Neşvill;Nešvilis;n'yasabhila;n'yasbhila;n'yasbhilla;na shen wei er;na shu wei er;naesyubil;nashfyl;nasshubiru;nasvil;nesavhila;neshvili;nshwyl;Νάσβιλ;Горад Нашвіл;Нашвил;Нашвилл;Нашвілл;Нешвил;Нэшвилл;Նեշվիլ;נאשוויל;ناشفيل;ناشولے;نشویل;نیشویل، ٹینیسی;नाश्विल्;नॅशव्हिल;न्याश्भिल;न्यास्भिल्ल;ন্যাশভিল;நாஷ்வில்;แนชวิลล์;ნეშვილი;ナッシュビル;納殊維爾;纳什维尔;내슈빌; +city::4669635;Abilene;ABI;Abilenas;Abilene;Abilin;Abilina;Abilīna;Abulijn;Gorad Abilin;a bi lin;abirin;abylyn;abylyn tgzas;aebillin;Абилин;Абълийн;Абілін;Горад Абілін;אבילין;أبيلين;ابیلین;ابیلین، تگزاس;ابیلین، ٹیکساس;アビリーン;阿比林;애빌린; +city::4670300;Allen;Alen;Allen;aln;alyn;Ален;Аллен;آلن;ألين;ایلن، ٹیکساس;അല്ലെൻ; +city::4671240;Arlington;Arlin'nkton;Arlingt"n;Arlington;Arlingtona;Arlingtonas;Arlinqton;Gorad Arlingtan;a ling dun;allingteon;arinton;arlingtana;arlintana;arlynghtwn;arlyngtwn tgzas;arlyngtwn tygzas;xar ling tan;Ārlingtona;Άρλινγκτον;Арлингтон;Арлингтън;Арлінгтон;Горад Арлінгтан;Արլինգտոն;ארלינגטון;آرلنگٹن;آرلنگٹن، ٹیکساس;آرلینگتون، تئگزاس;آرلینگتون، تگزاس;أرلينغتون;आर्लिंग्टन;আর্লিংটন;ആർലിങ്ടൺ;อาร์ลิงตัน;არლინგტონი;アーリントン;阿灵顿;알링턴; +city::4671524;Atascocita;; +city::4671654;Austin;AUS;Austin;Austino;Austinopolis;Aŭstino;Gorad Oscin;Montopolis;Ostin;Ostina;Ostinas;Ostins;Waterloo;ao si ting;asatina;astin;astina;astyn tgzas;awstn;ke shi dian;oseutin;ostina;ostʼini;osutin;xxstin;Ώστιν;Горад Осцін;Остин;Остін;Օստին;אוסטין;אסטין;آستین، تگزاس;آسٹن;آسٹن، ٹیکساس;أوستن;अस्टिन;अस्तिन;आस्टिन्;ऑस्टिन;অস্টিন;ਆਸਟਿਨ;ஆஸ்டின்;ഓസ്റ്റിൻ;ออสติน;ოსტინი;ኦስቲን፣ ቴክሳስ;ᎠᏍᏘᏂ;オースティン;奧斯汀;柯士甸;오스틴; +city::4672731;Baytown;Baytown;Bejtaun;Creek;Goose Creek;HPY;bay tawn;bei dui;beitaun;by tawn tgzas;Бејтаун;باي تاون;بی تاون، تگزاس;بےٹاؤن، ٹیکساس;ベイタウン;貝敦;베이타운; +city::4672989;Beaumont;BPT;Beaumont;Bomont;Bomontas;Cow Bayou;Jefferson City;Neches River Settlement;Tevis Bluff;bo meng te;bomamta;bomonteu;bomonto;bwmant tgzas;bwmwnt;Бомонт;بومانت، تگزاس;بومونت;بیومونٹ;بیومونٹ، ٹیکساس;बोमाँट;ボーモント;博蒙特;보몬트; +city::4676740;Brownsville;BRO;Braunsvil;Braunsvila;Braunsvilis;Braunsvill;Brownsville;Fort Brown;Fort Taylor;beulaunjeubil;brawnzfyl;brawnzwl;brawnzwyl tgzas;bu lang si wei er;buraunzubiru;Браунсвил;Браунсвилл;בראונסוויל;براؤنزول;براونزفيل;براونزویل، تگزاس;براونزویل، ٹیکساس;ブラウンズビル;布朗斯維爾;브라운즈빌; +city::4677008;Bryan;Brajan;Bryan;CFD;beulaieon;brayan tgzas;bryan;bu lai en;buraian;Брайан;Брајан;برائن، ٹیکساس;برایان، تگزاس;بريان;ブライアン;布賴恩;브라이언; +city::4679195;Carrollton;Carrollton;Karolton;Karoltonas;Karrolton;Kerrolton;ka luo er dun;kaeleolteon;karwltwn;krwltwn tgzas;kyaroruton;Каролтон;Карролтон;Керролтон;كارولتون;کرولتون، تگزاس;کیرولٹن;کیرولٹن، ٹیکساس;കരോൾട്ടൺ;キャロルトン;卡羅爾頓;캐럴턴; +city::4679867;Cedar Park;Cedar Park;Cedarpark;Sidar Park;sydar bark;sydr park tgzas;Сидар Парк;سيدار بارك;سیدر پارک، تگزاس;سیڈر پارک، ٹیکساس; +city::4682464;College Station;CLL;College Station;Koledz Stejshon;Kolledzh-Stejshen;da xue cheng;kalej stesan;kalj astyshn tgzas;kallijiseuteisyeon;karejjisuteshon;koleja stesana;kwlyj styshn;Колеџ Стејшон;Колледж-Стейшен;كوليج ستيشن;کالج استیشن، تگزاس;کالج سٹیشن، ٹیکساس;कॉलेज स्टेशन;కాలేజ్ స్టేషన్;カレッジステーション;大學城;칼리지스테이션; +city::4682991;Conroe;CXO;Konro;kanrw tgzas;kwnrwy;Конро;كونروي;کانرو، تگزاس;کونرو، ٹیکساس; +city::4683416;Corpus Christi;CRP;Corpus Christi;Gorad Korpus-Krysty;Korpous Kristi;Korpus Kristi;Korpus-Kristi;Korpuskristi;ke po si ke li si di;khxrpaskh ri sti;kopasukurisuti;kopeoseukeuliseuti;korpasa kristi;kwrbws krysty;kwrps krysty;qwrpws krysty;Κόρπους Κρίστι;Горад Корпус-Крысты;Корпус Кристи;Корпус-Кристи;Корпус-Крісті;Корпъс Кристи;קורפוס כריסטי;كوربوس كريستي;کارپس کرسٹی، ٹیکساس;کورپس کرسٹی;کورپس کریستی;कॉर्पस क्रिस्टी;คอร์ปัสคริสตี;コーパスクリスティ;科珀斯克里斯蒂;코퍼스크리스티; +city::4684888;Dallas;DFW;Dalas;Dalasa;Dalasas;Dallas;Dallas shaary;Dallasium;Gorad Dalas;Ntalas;da la si;daelleoseu;dailasa;dalas;dalasa;dalasi;dallas;dallasa;dallaseu;darasu;delasa;talas;Ντάλας;Горад Далас;Далас;Даллас;Даллас шаары;Դալաս;דאלאס;دالاس;داللاس;داڵاس;ڈیلاس;डॅलस;डैलस;ডালাস;ਡਾਲਸ;ડલ્લાસ;டாலஸ்;డల్లాస్;ഡാളസ്;แดลลัส;ဒါးလတ်စ်မြို့;დალასი;ዳላስ;ダラス;達拉斯;달라스;댈러스; +city::4685524;DeSoto;De Soto;DeSoto;Desoto;Opportunity;Soto;Woodland Hills;deseattea;dswtw tgzas;dy swtw;Десото;Сото;دسوتو، تگزاس;دي سوتو;ڈیسوٹو، ٹیکساس;ഡെസോട്ടൊ; +city::4685907;Denton;Denton;Dentonas;Dentono;Dentun;deng dun;dentana;denteon;denton;dntwn tgzas;dyntwn;Дентон;Дентън;دنتون، تگزاس;دينتون;ڈینٹن;ڈینٹن، ٹیکساس;डेंटन;ডেন্টন;ഡെന്റൺ;デントン;登頓;덴턴; +city::4688275;Edinburg;Edinburg;Ehdinburg;adynbrg tgzas;adynbwrgh;edinbagu;Единбург;Эдинбург;إدينبورغ;ادینبرگ، تگزاس;ایڈنبرگ، ٹیکساس;エディンバーグ; +city::4689550;Euless;Jules;ywls;ywls tgzas;Јулес;يولس;یولس، تگزاس;یولیس، ٹیکساس; +city::4691585;Flower Mound;Flauer Maund;Flower Mound;flawr;flawr mawnd tgzas;Флауер Маунд;فلاور;فلاور ماؤنڈ، ٹیکساس;فلاور ماوند، تگزاس; +city::4691930;Fort Worth;Arx Vorthensis;Camp Worth;FTW;Fort Gouorth;Fort Uehrt;Fort Uert;Fort Uurt;Fort Vort;Fort Worth;Fort-Owert;Fort-Uehrt;Fort-Vort;Fortverta;Fortvortas;Fortvērta;Gorad Fort-Uehrt;f xrtweirth;forata varatha;fotowasu;fwrt wwrth;fwrt wwrth tgzas;phorta oyartha;phorta vartha;portʼ-uerti;poteuwoseu;pwrt wwrt;vort kottai;wo si bao;Φορτ Γουόρθ;Горад Форт-Уэрт;Форт Ворт;Форт Уърт;Форт Уэрт;Форт-Ворт;Форт-Уэрт;Ֆորտ-Ուերտ;פורט וורת;فورت وورث;فورت وورث، تگزاس;فورٹ ورتھ;فورٹ ورتھ، ٹیکساس;फोर्ट वर्थ;ফোর্ট ওয়ার্থ;ਫ਼ੋਰਟ ਵਰਥ;வொர்த் கோட்டை;ഫോർട്ട് വർത്ത്;ฟอร์ตเวิร์ท;ფორტ-უერთი;フォートワース;沃思堡;포트워스; +city::4692559;Frisco;Firsco;Frisco;Frisko;fryskw;fryskw tgzas;furisuko;peuliseuko;phriskea;Фриско;Фріско;فريسكو;فریسکو، تگزاس;فریسکو، ٹیکساس;ഫ്രിസ്കോ;フリスコ;프리스코; +city::4692883;Galveston;GLS;Galveston;Gorad Galvestan;gaelbeoseuteon;galwstwn tgzas;garubesuton;gelvhastana;ghalfstwn;jia er wei si dui;Галвестон;Горад Галвестан;Ґалвестoн;غالفستون;گالوستون، تگزاس;गॅल्व्हस्टन;ഗാൽ‌വെസ്റ്റൺ;ガルベストン;加爾維斯敦;갤버스턴; +city::4693003;Garland;Duck Creek;Embree;Garland;Garlandas;Garlend;Girljanda;gallaendeu;garando;garlnd tgzas;gharland;jia lan;Гарланд;Гарленд;Гирлянда;Ґарланд;غارلاند;گارلند، تگزاس;گارلینڈ;گارلینڈ، ٹیکساس;ഗാർലന്റ്;ガーランド;加蘭;갈랜드; +city::4693342;Georgetown;Dzhordzhtaun;Dzordztaun;Džordžtaun;jrj‌tawn tgzas;jwrjtawn;Џорџтаун;Джорджтаун;جارج ٹاؤن، ٹیکساس;جرج‌تاون، تگزاس;جورجتاون; +city::4694482;Grand Prairie;Deckman;Grand Prairie;Grand Preri;Grand Preris;Grand-Preri;da cao yuan cheng;geulaendeupeuleli;ghrand brary;grnd pryry tgzas;gurandopureri;Гранд Прери;Гранд-Прери;Гранд-Прері;غراند براري;گرند پریری، تگزاس;گرینڈ پریری;گرینڈ پریرے;ഗ്രാൻഡ് പ്രയറി;グランドプレーリー;大草原城;그랜드프레리; +city::4694568;Grapevine;; +city::4696233;Harlingen;Garlingen;HRL;Harlingen;Kharlindzen;Kharlingen;ha ling gen;hallingjeon;harinjen;harlynghn;harlynjn;hrlyngn;Гарлінґен;Харлинген;Харлинџен;הרלינגן;هارلينغن;هارلینجن;ہارلنگین، ٹیکساس;ハーリンジェン;哈靈根;할링전; +city::4699066;Houston;Chiouston;Gorad Khjustan;HOU;Hiu-su-tun;Hiustonas;Hiû-sṳ̂-tûn;Hjuston;Hjustona;Hjūstona;Houston;Houston City;Hustonia;Hyuston;Kh'juston;Khjust"n;Khjuston;hi'ustana;hiustʼoni;hiws tan;hiyustan;hou si dun;husatana;hyuseuteon;hyustan;hyustana;hyusuton;hywstn;hywstwn;xiu si dun;ywstwn;Χιούστον;Горад Хюстан;Хьюстон;Хюстон;Хюстън;Хјустон;Հյուստոն;היוסטן;יוסטון;هيوستن;هیوستون;ھیووستن;ہywsٹn;ہیوسٹن;ह्युस्टन;হিউস্টন;ਹੂਸਟਨ;હ્યુસ્ટન;ஹியூஸ்டன்;హ్యూస్టన్;ഹ്യൂസ്റ്റൺ;ฮิวสตัน;ဟူစတန်မြို့;ჰიუსტონი;ሂውስተን;ヒューストン;休斯敦;休斯頓;侯斯頓;휴스턴; +city::4700168;Irving;"rving;Erving;Irving;Irvingas;abingu;ayrfyngh;ayrwyng tgzas;eobing;ou wen;Ірвінг;Ервинг;Ирвинг;Ървинг;ارونگ، ٹیکساس;ايرفينغ;ایروینگ، تگزاس;എർവിങ്;アービング;歐文;어빙; +city::4703223;Killeen;ILE;Kilin;Kilinas;Killean;Killeen;Killin;ji lin;kaylyn tgzas;killin;kirin;klyn;kylyn;Килин;Киллин;Кіллін;كيلين;کایلین، تگزاس;کلین;کیلین، ٹیکساس;キリーン;基林;킬린; +city::4705349;Laredo;LRD;Laredo;Laredum;Villa de San Augustine de Laredo;la lei duo;larydw;larydw tgzas;leoleido;raredo;Ларедо;לארדו;لاريدو;لاریدو، تگزاس;لاریڈو، ٹیکساس;لریڈو;ラレド;拉雷多;러레이도; +city::4705692;League City;League City;Lig Siti;lyg syty tgzas;lygh syty;Лиг Сити;ليغ سيتي;لیگ سٹی، ٹیکساس;لیگ سیتی، تگزاس; +city::4706057;Lewisville;L'juisvill;Lewisville;Luisvil;liu yi si wei er;lu-iseubil;lwysfyl;lwyzwl;ruisubiru;Луисвил;Льюисвилл;لوئیس‌ویل، تگزاس;لويسفيل;لویزول;لیوسویل، ٹیکساس;ലൂയിസ്‌വിൽ;ルイスビル;刘易斯维尔;루이스빌; +city::4707814;Longview;GGG;Longv'ju;Longview;Longvju;lang wei you;langwyw tgzas;longbyu;lwnghfyw;lwngwyw;rongubyu;Лонгвью;Лонгвю;Лонгвју;لانگویو، تگزاس;لونغفيو;لونگویئو، ٹیکساس;لونگویو;ロングビュー;朗維尤;롱뷰; +city::4709013;Mansfield;Mansfeild;Mansfield;Mehnsfild;Mensfild;mansfyld;mnsfyld tgzas;Менсфилд;Мэнсфилд;مانسفيلد;منسفیلد، تگزاس;مینسفیلڈ، ٹیکساس; +city::4709796;McAllen;MFE;Mak-Allen;Makalen;McAllen;maekaelleon;mai ka lun;makalyn;makkaren;Мак-Аллен;Макален;מקאלן;ماكالين;مک ایلن، ٹیکساس;مک‌آلن;マッカレン;麦卡伦;매캘런; +city::4710178;McKinney;Mak-Kinni;Makini;McKinney;maekini;mai jin ni;makkini;makkinni;makkyny;Мак-Кинни;Мак-Кінні;Макини;ماككيني;مک کینی، ٹیکساس;مک‌کینی، تگزاس;മക്കിന്നി;マッキニー;麥金尼;매키니; +city::4710826;Mesquite;Meskit;Meskvit;Mesquite;mei si ji te;meseukiteu;meskvirr;mesukito;mskyt tgzas;mwskw;Месквіт;Мескит;مسکیت، تگزاس;مسکیٹ، ٹیکساس;موسكو;میسکوٹ;മെസ്ക്വിറ്റ്;メスキート;梅斯基特;메스키트; +city::4711725;Mission;Mishon;Missija;Mission;mi shen;misshon;myshn tgzas;Миссия;Мишон;میشن، تگزاس;ミッション;米申; +city::4711801;Missouri City;Missouri City;Misuri Siti;mi su li cheng;misari sirri;myswry syty;myzwry‌syty tgzas;Мисури Сити;مسوری سٹی، ٹیکساس;ميسوري سيتي;میزوری‌سیتی، تگزاس;മിസൗറി സിറ്റി;密蘇里城; +city::4714131;New Braunfels;N'ju-Braunfels;Nju Bronfels;nyuburonferuzu;nyw branflz tgzas;nyw brawnfylz;xin bu lang fei er si;Њу Бронфелс;Нью-Браунфелс;نيو براونفيلز;نیو برانفلز، تگزاس;نیو براونفیلز، ٹیکساس;ニューブローンフェルズ;新布朗費爾斯; +city::4715292;North Richland Hills;; +city::4717782;Pasadena;Pasadena;Pasadina;basadyna;pa sa di na;paeseodina;pasadena;pasadna tgzas;Пасадена;Пасадина;باسادينا;پاسادنا، تگزاس;パサデナ;帕薩迪納;패서디나; +city::4718097;Pearland;Pehrlend;Perland;byrland;pyr lnd tgzas;Перланд;Пэрленд;بيرلاند;پئیرلینڈ، ٹیکساس;پیر لند، تگزاس; +city::4718711;Pflugerville;Flugervil;bflwghrfyl;flagrwyl tgzas;Флугервил;بفلوغرفيل;فلاگرویل، تگزاس;فلوگیرویل، ٹیکساس; +city::4718721;Pharr;Far;Farra;far;far tgzas;Фар;Фарра;فار;فار، تگزاس;فار، ٹیکساس; +city::4719457;Plano;Planas;Planom;Plejno;Plejnou;blanw;peulleino;planw;plenea;pleno;plynw;pu lai nuo;pureino;Планом;Плейно;Плейноу;Плејно;פלאנו;بلانو;پلانو;پلانو، ٹیکساس;پلینو;प्लेनो;പ്ലേനോ;プレイノ;普莱诺;플레이노; +city::4720039;Port Arthur;BPT;Port Arthur;Port Arthur i Texas;Port Artur;Port-Artur;a se gang;bwrt arthr;poteuaseo;potoasa;pwrt artr tgzas;Порт Артур;Порт-Артур;Պորտ-Արտուր;بورت أرثر;پورت آرتر، تگزاس;پورٹ آرتھر، ٹیکساس;ポートアーサー;阿瑟港;포트아서; +city::4722625;Richardson;Ricardsonas;Richardson;Ričardsonas;licheodeuseun;richadoson;rychardswn tgzas;rytshardswn;Ричардсон;Річардсон;ريتشاردسون;رچرڈسن;ریچاردسون، تگزاس;റിച്ചാർഡ്സൺ;リチャードソン;리처드슨; +city::4724129;Round Rock;Raund Rok;Raund Rokas;Raund-Rok;Round Rock;Roundrock;lang de luo ke;laundeu log;rand rak tgzas;raundorokku;rawnd rwks;Раунд Рок;Раунд-Рок;راؤنڈ راک، ٹیکساس;راند راک، تگزاس;راوند روكس;ラウンドロック;朗德羅克;라운드 록; +city::4724194;Rowlett;Rowlett;Rowlette; +city::4726206;San Antonio;Gorad San-Antonia;SAT;San Antonijus;San Antonio;San Antonio de Bejar;San Antoniyo;San Antònio;San-Antonio;Sanantonio;Sanctus Antonius;can antoniyo;saen-antonio;saina entoniyo;san antoniyo;san antwnyw;san'antonio;san-antʼonio;sana antoni'o;sena amtoniyo;sheng an dong ni ao;Σαν Αντόνιο;Горад Сан-Антоніа;Сан Антонио;Сан-Антонио;Сан-Антоніо;Սան Անտոնիո;סאן אנטאניא;סן אנטוניו;سان آنتونیو;سان أنطونيو;سان انٹونیو;सॅन अँटोनियो;सैन एन्टोनियो;স্যান অ্যান্টোনিও;ਸਾਨ ਆਂਤੋਨੀਓ;சான் அந்தோனியோ;శాన్ అంటోనియో;സാൻ അന്റോണിയോ;แซนแอนโทนีโอ;სან-ანტონიო;サンアントニオ;圣安东尼奥;聖安東尼奧;샌안토니오; +city::4726491;San Marcos;San Markos;San-Markos;san markws;sanmarukosu;sheng ma ke si;sn markws tgzas;Сан Маркос;Сан-Маркос;سان ماركوس;سان مارکوس، ٹیکساس;سن مارکوس، تگزاس;サンマルコス;聖馬科斯; +city::4733624;Spring;Springtaun;aspryng tgzas;sbryngh;seupeuling;Спрингтаун;اسپرینگ، تگزاس;سبرينغ;سپرنگ، ٹیکساس;스프링; +city::4734825;Sugar Land;SGR;Shugar Land;Shugar-Lend;Sugar Land;shu ge lan;shugarando;shwgrlnd tgzas;shwjr land;syugeolaendeu;Шугар Ланд;Шугар-Ленд;Шуґар-Ленд;شوجر لاند;شوگر لینڈ، ٹیکساس;شوگرلند، تگزاس;ഷുഗർലാൻഡ്;シュガーランド;舒格蘭;슈거랜드; +city::4735966;Temple;TPL;Templ;tan pu er;tempeul;tenpuru;tmbl;tmpl tgzas;Темпл;تمبل;تمپل، تگزاس;ٹیمپل، ٹیکساس;テンプル;坦普爾;템플; +city::4736476;The Woodlands;Te-Vudlends;The Woodlands;Vudlands;Ze-Vudlends;dha wwdlandz;wu de lan shi;wwdlndz tgzas;Вудландс;Зе-Вудлендс;Те-Вудлендс;دی ووڈلینڈز، ٹیکساس;ذا وودلاندز;وودلندز، تگزاس;ザ・ウッドランズ;伍德蘭市; +city::4738214;Tyler;TYR;Tajler;Tyler;tai lei;taira;taylr;taylr tgzas;Тайлер;Тајлер;تايلر;تایلر، تگزاس;ٹائلر;ٹائلر، ٹیکساس;タイラー;泰勒; +city::4739157;Victoria;Guadalupe Victoria;VCT;Victoria;Viktorija;bigtolia;bikutoria;fyktwrya;wei duo li ya;wyktwrya tgzas;Виктория;Викторија;فيكتوريا;وکٹوریہ، ٹیکساس;ویکتوریا، تگزاس;ビクトリア;維多利亞;빅토리아; +city::4739526;Waco;ACT;Uehjko;Uejkou;Vako;Vejko;Waco;u~eko;veko;wakw;wei ke;weiko;wykw;wykw tgzas;wyyqw;Вако;Вейко;Вејко;Уейкоу;Уэйко;וייקו;واكو;ویکو;ویکو، تگزاس;ویکو، ٹیکساس;वेको;ウェーコ;韋科;韦科;웨이코; +city::4741752;Wichita Falls;SPS;Uichito Fols;Uichito-Fols;Vichita Fols;Vichita-Fols;Wichita Falls;u~ichitaforuzu;vicita pholsa;wei qi tuo fu er si;wichitopolseu;wychyta falz tgzas;wytshyta fwlz;Вичита Фолс;Вічита-Фолс;Уичито Фолс;Уичито-Фолс;ويتشيتا فولز;وچیٹا فالز;ویچیتا فالز، تگزاس;ویچیتا فالز، ٹیکساس;विचिटा फॉल्स;ウィチタフォールズ;威奇托福尔斯;위치토폴스; +city::4744091;Alexandria;Aleksandri;Aleksandrija;Alexandria;Alexandria City;Allexandria;Belhaven;Belle Haven;Bellhaven;Chincoteague Creek;Gincatic Creek;Guicatic Run;alaskndryt;alksandrya wyrjynya;allegsandeulia;arekusandoria;ya li shan de li ya;Александри;Александрия;Александрија;Александрія;Ալեքսանդրիա;אלכסנדריה;الإسكندرية;الکساندریا، ویرجینیا;الیگزینڈریا، ورجینیا;অ্যালেক্সান্ড্রিয়া;アレクサンドリア;亚历山德里亚;알렉산드리아; +city::4744709;Arlington;Arlington;Arlingtonas;a ling dun xian;arinton;Арлингтон;アーリントン;阿靈頓縣; +city::4751839;Centreville;Centerville;Centreville;New Gate;Newgate;Sentervil;sntrwyl wyrjynya;Сентервил;سنترویل، ویرجینیا; +city::4752186;Chesapeake;Cesapikas;Chesapeack;Chesapeake;Chesapijk;Chesapik;Norfolk County;South Norfolk;cespik;chesapiku;cheseopikeu;chsapyk wrjynya;chsapyk wyrjynya;qie sa pi ke;tshysabyk;zspyq;Česapikas;Чесапийк;Чесапик;Чесапік;צספיק;تشيسابيك;چساپیک، ورجینیا;چساپیک، ویرجینیا;ಚೆಸ್ಪೀಕ್;チェサピーク;切萨皮克;체서피크; +city::4755158;Dale City;Dale City;Dejl Siti;Дейл Сити;Дејл Сити; +city::4756955;East Hampton;; +city::4762894;Hampton;Elizabeth City;Gempton;Hampton;Hampton City;Hampton Town;Hamptonas;Kecoughtan;Khamptun;Khehmpton;Khempton;Kiccowtan;Kichotan;LFI;PHF;Southampton;haempeuteon;hambtwn;han pu dun;hanputon;hmptwn wyrjynya;Гемптон;Хамптън;Хемптон;Хэмптон;هامبتون;همپتون، ویرجینیا;ہیمپٹن، ورجینیا;ハンプトン;漢普頓;햄프턴; +city::4763231;Harrisonburg;Harisonburg;Harrisonburg;Harrisonburg City;Hub of the Valley;Kharisonburg;Rockingham Court House;Rocktown;ha li sen bao;harisonbagu;haryswnbwrgh;hryswnbrg wyrjynya;Харисонбург;هاريسونبورغ;هریسونبرگ، ویرجینیا;ہیریسنبرگ، ورجینیا;ハリソンバーグ;哈里森堡; +city::4769125;Leesburg;George Town;Georgetown;Leesburg;Leesburgh;Lizburg;Louisburg;lysbwrgh;lyzbrg wrjynya;Лизбург;ليسبورغ;لیزبرگ، ورجینیا; +city::4771075;Lynchburg;Campbell Court House;LYH;Linchberg;Linchburg;Lynchburg;Lynchs Ferry;Lynchs Warehouse;lin qi bao;linchibeogeu;lynchbrg wrjynya;lynchbrg wyrjynya;lynshbrgh;rinchibagu;Линчберг;Линчбург;Линчбърг;لينشبرغ;لینچبرگ، ورجینیا;لینچبرگ، ویرجینیا;リンチバーグ;林奇堡;린치버그; +city::4776024;Newport News;N'juport-N'jus;New Port Newce;New Porte Newce;Newport Ness;Newport News;Newport Newse;Newport's News;Newportes Newce;Newportes Newes;Newports News;PHF;Point Hope;Pointe Hope;Porte Newce;The New Port of the Newces;ZWW;Ньюпорт-Ньюс; +city::4776222;Norfolk;Gorad Norfalk;Norfok;Norfolk;Norfolk City;Norfolka;Norfolkas;Norfolko;ORF;narfwk wrjynya;nofoku;nopeog;nuo fu ke;nwrfwk wyrjynya;nwrfwlk;nwrpwq;Горад Норфалк;Норфок;Норфолк;נורפוק;نارفوک، ورجینیا;نورفولك;نورفوک، ویرجینیا;ნორფოლკი;ノーフォーク;諾福克;노퍽; +city::4779999;Portsmouth;Portsmouth;Portsmut;bwrtsmwth;pocheumeoseu;potsumasu;pu ci mao si;pwrtsmwt;pwrtsmwth wyrjynya;Портсмут;פורטסמות;بورتسموث;پورتسموث، ویرجینیا;پورٹسماؤت، ورجینیا;ポーツマス;朴次茅斯;포츠머스; +city::4780011;Portsmouth Heights;; +city::4781530;Reston;Reston;Thornton Station;Thornton's Station;Wiehle;resuton;rstwn wyrjynya;Рестон;رستون، ویرجینیا;レストン; +city::4781708;Richmond;Gorad Rychmand;Manchester;None Such;RIC;Richmond;Richmond City;Richmund;Ricmonda;Ricmondas;Ricmondia;Ricmonds;Ritsmont;Ričmonda;Ričmondas;Ričmonds;Shoccoe's;Shockoe;li shi man;lichimeondeu;lie zhi wen;rchmnڈ;ricamanda;ricmand;ricmant;ritchimondo;rychmwnd;rychmwnd wyrjynya;rytshmwnd;ryzmwnd;Ρίτσμοντ;Горад Рычманд;Ричмонд;Ричмънд;Ռիչմոնդ;ריצמונד;ريتشموند;رچمنڈ;رچمنڈ، ورجینیا;ریچموند;ریچموند، ویرجینیا;रिचमंड;रिचमन्ड;रिच्मन्ड्;ரிச்மண்ட்;リッチモンド;列治文;里士满;리치먼드; +city::4782167;Roanoke;Big Lick;Old Lick;ROA;Rawrenock;Rhoanoke;Roanok;Roanoke;Roanoke City;Rowrenoc;Rōwrenoc;Star City;Star City of the SouMagic City;The own;lo-eonokeu;luo a nuo ke;ro'anoka;roanoku;rwanwk;rwanwk wrjynya;rwnwk wyrjynya;Роанок;רואנוק;روانوك;روانوک، ورجینیا;رونوک، ویرجینیا;रोआनोक;ロアノーク;羅阿諾克;로어노크; +city::4786714;South Suffolk;; +city::4788158;Suffolk;Constances Warehouse;Contant's Wharf;Saffolk;Safok;Sleepy Hole;Suffolk;Suffolk City;sa fu ke;safk wyrjynya;safoku;seopeog;swfwlk;swfwlk wrjynya;Сафок;Саффолк;سافک، ویرجینیا;سوفولك;سوفولک، ورجینیا;サフォーク;薩福克;서퍽; +city::4791259;Virginia Beach;Gorad Virdzhynija-Bich;Litus Virginiae;NTU;Verdzhinija-Bich;Vijini Beach;Virciniya Bic;Virciniya Biç;Virdzhini-Bich;Virdzhinija Bijch;Virdzhinija-Bich;Virdzinija Bich;Virdzinija Bycas;Virdzinijabica;Virdžinija Byčas;Virdžīnijabīča;Virginia Beach;Virginia Beach City;Virginija-Bich;Virgìnia Beach;Virtzinia Bits;bajiniabichi;beojiniabichi;bharjiniya bica;frjynya bytsh;vharjiniya bica;virjinia-bichi;wei zhen ni ya hai tan;wexr ci neiy bich;wrjynya bych;wyrgynyh byz;wyrjynya bych wyrjynya;Βιρτζίνια Μπιτς;Верджиния-Бич;Виргиния-Бич;Вирджини-Бич;Вирджиния Бийч;Вирджиния-Бич;Вирџинија Бич;Вірджинія-Біч;Горад Вірджынія-Біч;Վիրջինիա Բիչ;וירגיניה ביץ;فرجينيا بيتش;ورجینیا بیچ;ویرجینیا بیچ، ویرجینیا;व्हर्जिनिया बीच;ভার্জিনিয়া বিচ;เวอร์จิเนียบีช;ვირჯინია-ბიჩი;バージニアビーチ;維珍尼亞海灘;버지니아비치; +city::4792867;West Lynchburg;; +city::4830796;Auburn;AUO;Obern;a'ubarna;abarna;abrn alabama;awbwrn;oban;obeon;ou ben;Оберн;آبرن، آلاباما;آبرن، الاباما;أوبورن;अउबर्न;अबर्न;オーバーン;歐本;오번; +city::4832294;Revere;North Chelsea;Rehvia;Revere;Revir;Riviur;li wei er;libieo;rfyr;ribia;rwy‌yr masachwst;Ревир;Ривиър;Рэвиа;راویر، میساچوسٹس;رفير;روی‌یر، ماساچوست;リビア;里维尔;리비어; +city::4832353;Danbury;Beantown;DXR;Danberi;Danbjuri;Danburi;Danbury;The Hatchery;daenbeli;dan bo li;danberi;danbry;danbry kntykt;denabari;dyanabari;Данбери;Данбері;Данбъри;Данбюри;دانبري;دانبری، کنتیکت;ڈینبری، کنیکٹیکٹ;डॅनबरी;ड्यानबरी;แดนเบอรี;ダンベリー;丹伯里;댄베리; +city::4833403;East Hartford;EHT;East Hartford;Ist Khartford;ayst hartfwrd;ista hartapharda;isutohatofodo;Ист Хартфорд;إيست هارتفورد;ایسٹ ہارٹفورڈ، کنیکٹیکٹ;इस्ट हार्टफर्ड;イーストハートフォード; +city::4833505;East Norwalk;; +city::4834157;Fairfield;Fairfield;Fajrfild;Fehrfild;Fejrfild;Feurfijld;Feurfild;Uncoa;feafirudo;fei er fei er de;fyrfyld;fyrfyld kntykt;peeopildeu;Файрфилд;Фейрфілд;Феърфийлд;Феърфилд;Фэрфилд;فيرفيلد;فیئرفیلڈ، کونیکٹیکٹ;فیرفیلد، کنتیکت;フェアフィールド;費爾菲爾德;페어필드; +city::4835654;Hamden;Khamdehn;hamdn;hamuden;Хамдэн;هامدن;ہیمڈن، کنیکٹیکٹ;ハムデン; +city::4835797;Hartford;Chartfornt;Gartford;Gorad Khartfard;HFD;Halakepoka;Hartford;Hartforda;Hartfordas;Hartfordia;Hartfords;Hārtforda;Kharford;Khartford;Newtown;Siti of Khartford;Suckiag;ha te fu;hartafard;hartaforda;hartapharda;hartaphorda;hartfwrd;hartfwrd kntykt;hartpart;hateupeodeu;hatofodo;hrtpwrd;Χάρτφορντ;Гартфорд;Горад Хартфард;Сити оф Хартфорд;Хартфорд;Харфорд;Ҳартфорд;Հարթֆորդ;הרטפורד;هارتفورد;هارتفورد، کنتیکت;ہارٹفورڈ;ہارٹفورڈ، کنیکٹیکٹ;हार्टफर्ड;हार्टफ़र्ड्;हार्टफ़ोर्ड;हार्टफोर्ड;हार्तफर्द;ஹார்ட்பர்ட்;ハートフォード;哈特福;하트퍼드; +city::4838524;Meriden;Meridehn;Meriden;Silver City;mei li deng;meriden;meridena;mrydn kntykt;myrydyan;Мериден;Меридэн;Меріден;مریدن، کنتیکت;ميريديان;میریڈن، کنیکٹیکٹ;मेरिडेन;メリデン;梅里登; +city::4838652;Milford;Four Corners;Milford;Milfordas;Millfort;Wepowaug;mi er fu de;milapharda;milaphorda;milpeodeu;mirufodo;myldfwrd kntykt;mylfwrd;Милфорд;Мілфорд;ميلفورد;میلدفورد، کنتیکت;میلفورڈ، کنیکٹیکٹ;मिलफर्ड;मिलफोर्ड;ミルフォード;米尔福德;밀퍼드; +city::4839292;New Britain;Hardware City;N'ju Britan;N'ju-Briten;New Britain;Nju Briten;Quebec;Quebek;n'yu britana;n'yu britena;nyubeuliteun;nyuburiten;nyw brytn;nyw brytyn kntykt;xin bu lie dian;Њу Бритен;Нью Британ;Нью-Бритен;Нью-Брітен;نيو بريتن;نیو بریتین، کنتیکت;نیو بریٹن، کنیکٹیکٹ;न्यु ब्रिटेन;न्यू ब्रिटन;ニューブリテン;新不列颠;뉴브리튼; +city::4839366;New Haven;Gorad N'ju-Khehjven;HVN;N'ju Khehven;N'ju-Gejven;N'ju-Khejven;New Haven;Nju Khejven;Nju Khejvun;Novus Portus;Nuheivena;Queenapick;Quillipiack;Quinnepyooghq;Quinnipiac;Quinnypiock;Quinopiocke;Rodeberg;Rodenburg;n'yu hevana;n'yu hyabhena;niu ha fen shi;niu hei wen;niu-heiveni;niw he wen;nyuheibeun;nyuheibun;nyw hyfn;nyw hyybn;nywhywn kntykt;Ņūheivena;Њу Хејвен;Горад Нью-Хэйвен;Нью Хэвен;Нью-Гейвен;Нью-Хейвен;Ню Хейвън;ניו הייבן;نيو هيفن;نیو ہیون، کنیکٹیکٹ;نیوهیون، کنتیکت;न्यु ह्याभेन;न्यू हेवन;นิวเฮเวน;ნიუ-ჰეივენი;ニューヘイブン;纽哈芬市;纽黑文;뉴헤이븐; +city::4839745;North Stamford;; +city::4839822;Norwalk;Chichester;Naramake;Noruolk;Norvalk;Norvok;Norvolk;Norvolkas;Norwaake;Norwalk;ORQ;The Bridge;The Great Bridge;naravaka;noravoka;nou~oku;nowokeu;nuo wo ke;nwrwak kntykt;nwrwwlk;Норвалк;Норвок;Норволк;Норуолк;نارواک، کنیکٹیکٹ;نورواک، کنتیکت;نوروولك;नरवाक;नॉरवॉक;ノーウォーク;诺沃克;노워크; +city::4843564;Stamford;Rippowams;Stamford;Stamfordas;Stehmford;Stemford;ZTF;astmfwrd kntykt;seutaempeodeu;si tan fu;stamfwrd;stemapharda;stmpwrd;styamapharda;sutanfodo;Стамфорд;Стемфорд;Стэмфорд;סטמפורד;استمفورد، کنتیکت;ستامفورد;سٹیمفورڈ، کنیکٹیکٹ;स्टॅमफर्ड;स्ट्यामफर्ड;สแตมเฟิร์ด;スタンフォード;斯坦福;스탬퍼드; +city::4843811;Stratford;Cupheag;Stratford;Strehtford;astratfrd kntykt;seuteulaespeodeu;stryatapharda;sutoratofodo;Стратфорд;Стрэтфорд;استراتفرد، کنتیکت;سٹریٹفورڈ، کنیکٹیکٹ;स्ट्र्याटफर्ड;ストラトフォード;스트랫퍼드; +city::4845193;Waterbury;Forest City;The Brass City;Uot"rb"ri;Uoterberi;Vaterbjuri;Voterberi;Waterbury;u~otabari;u~otaberi;vatarabari;votarabari;watrbry kntykt;watrbwry;wo te bo li;woteobeli;wwtrbry;Ватербюри;Вотербери;Вотербері;Уотербери;Уотърбъри;ווטרברי;واتربری، کنتیکت;واتربوري;واٹربری، کنیکٹیکٹ;वाटरबरी;वॉटरबरी;ウォーターバリー;ウォーターベリー;沃特伯里;워터베리; +city::4845411;West Hartford;Vehst Khartford;Vest Kharford;Vest Khartford;Vest-Gartford;West Division;West Hartford;Zapadnyj Khartford;uesutohatofodo;vesta hartapharda;Вест Хартфорд;Вест Харфорд;Вест-Гартфорд;Вэст Хартфорд;Западный Хартфорд;וועסט הארטפארד;ویسٹ ہارٹفورڈ، کنیکٹیکٹ;वेस्ट हार्टफर्ड;ウエストハートフォード; +city::4845419;West Haven;Uehst-Khejven;Vehst Khehjvn;Vest Khehven;Vest Khejven;Vest-Gejven;u~esutoheibun;vesta hevana;vesta hyabhena;wst hywn kntykt;wyst hyfn;xi hei wen;Вест Хејвен;Вест Хэвен;Вест-Гейвен;Вэст Хэйвн;Уэст-Хейвен;وست هیون، کنتیکت;ويست هيفن;ویسٹ ہیون، کنیکٹیکٹ;वेस्ट हेवन;वेस्ट ह्याभेन;ウェストヘイブン;西黑文; +city::4846834;Ames;AMW;Ames;Ehjmes;Ehjmsa;Ejms;ai mu si;amesi;amys;aymz aywwa;aymz ayywwa;eimseu;eimuzu;xem s;Ејмс;Эймес;Эймса;أميس;ایمز، آئیووا;ایمز، آیووا;เอมส์;ამესი;エイムズ;艾姆斯;에임스; +city::4846960;Ankeny;Ankehni;Ankeni;Ankenny;Ankeny;ankny aywwa;ankyny;ankyny ayywwa;Анкени;Анкэни;أنكيني;انکنی، آیووا;انکینی، آئیووا;ანკენი; +city::4850751;Cedar Rapids;CID;Sehdar Rapids;Sidar Rapids;Sidar-Rapids;Sidur Rapids;sdar rapydz aywwa;shidarapizzu;sidara repidsa;sideolaepijeu;sydar rabydz;sydr rpyds;xi da la pi zi;Сидар Рапидс;Сидар-Рапидс;Сидър Рапидс;Сэдар Рапидс;Сідар-Рапідс;Սիդար Ռեփիդս;סידר רפידס;سدار راپیدز، آیووا;سيدار رابيدز;سڈار ریپڈس، آئیووا;سیڈار ریپڈز;सीडार रॅपिड्स;シーダーラピッズ;錫達拉皮茲;시더래피즈; +city::4852832;Council Bluffs;CBF;Council Bluffs;Kanesville;Kaunsil Bafs;Kaunsil-Blafs;Konsil-Blafs;Kounsl Blaffs;Miller's Hollow;ka'unsila blaphsa;kang se er bu la fu si;kaunshiruburafusu;kwnsl blfs ayywwa;kwnsyl blwfs;kwnsyl blwfs aywwa;Каунсил Бафс;Каунсил-Блафс;Консіл-Блафс;Коунсл Блаффс;كونسيل بلوفس;کونسل بلفس، آئیووا;کونسیل بلوفس، آیووا;काउन्सिल ब्लफ्स;カウンシルブラフス;康瑟尔布拉夫斯; +city::4853423;Davenport;DVN;Davehnport;Davenport;Dehvenport;da wen bo te;dabenpoto;daebeunpoteu;dafnbwrt;dbnpwrt;devhenaporta;dwnpwrt aywwa;Давенпорт;Давэнпорт;Дэвенпорт;דבנפורט;دافنبورت;دونپورت، آیووا;ڈیونپورٹ، آئیووا;डॅव्हेनपोर्ट;แดเวนพอร์ต;ダベンポート;達文波特;대븐포트; +city::4853828;Des Moines;DSM;De Moinas;De Moins;De Mojn;De Moyn;De-Mojn;Dehs Mojns;Demoina;Des Moines;Gorad Deh-Mojn;Monachopolis;Nte Moin;de mayne;de mei yin;de mo'ina;de-moini;demoin;des mvane;dh mwyn;di mo'ina;di mxyn;dimoin;dmwyn aywwa;dy mwyn;dy mwyn ayywwa;ti moyin;Ντε Μόιν;Горад Дэ-Мойн;Де Мойн;Де Мојн;Де-Мойн;Дэс Мойнс;Դե Մոյն;דה מוין;دموین، آیووا;دي موين;دی موین، آئیووا;ڈس موئنس;डे माय्ने;डेस् म्वाने;दि मोइन;दे मॉईन;டி மொயின்;ดิมอยน์;დე-მოინი;デモイン;德梅因;디모인; +city::4854529;Dubuque;DBQ;Dub'juk;Дубьюк; +city::4862034;Iowa City;Ajova Siti;Ajova-Siti;IOW;Iowa City;Lova Siti;a'i'ova nagara;ai ao wa cheng;aiowashiti;aiowasiti;ayova siti;aywa syty;aywwa syty aywwa;Айова Сити;Айова-Сити;Айова-Сіті;Ајова Сити;Лова Сити;Այովա Սիթի;איווה סיטי;آئیووا سٹی، آئیووا;آيوا سيتي;آیووا سیتی، آیووا;आइओवा नगर;आयोवा सिटी;アイオワシティ;艾奥瓦城;아이오와시티; +city::4876523;Sioux City;Kota Sioux;SUX;Siouks Siti;Su Siti;Su-Siti;su cheng;su siti;sushiti;susiti;sw syty;sw syty aywwa;sywks syty;Сиоукс Сити;Су Сити;Су-Сити;Су-Сіті;סו סיטי;سو سیتی، آیووا;سيوكس سيتي;سیو سٹی، آئیووا;सू सिटी;スーシティ;蘇城;수시티; +city::4880889;Waterloo;ALO;Uatehrlu;Vaterlo;Voterlu;Waterloo;u~otaru;votarlu;watrlw;watrlw aywwa;woteollu;wwtrlw;Ватерло;Вотерлу;Уатэрлу;ווטרלו;واترلو;واترلو، آیووا;واٹرلو، آئیووا;वॉटर्लू;ウォータールー;워털루; +city::4881346;West Des Moines;Valley Junction;Vehst Dehs Mojnehs;Vest De Mojn;West Des Moines;wst ds mwyns aywwa;wyst dy mwynz;Вест Де Мојн;Вэст Дэс Мойнэс;وست دس موینس، آیووا;ويست دي موينز;ویسٹ دی موین، آئیووا; +city::4883555;Arlington Heights;Arlington Heights;Arlington Khajts;Arlington-Khajts;Dunton;JLH;arintonhaitsu;arlingatana ha'itsa;arlynghtwn hayts;Арлингтон Хајтс;Арлингтон-Хайтс;آرلنگٹن ہائٹس، الینوائے;أرلينغتون هايتس;आर्लिङ्गटन हाइट्स;アーリントンハイツ; +city::4883817;Aurora;AUZ;Aurora;Avrora;Аврора; +city::4884597;Berwyn;Beruin;Bervin;barvina;beowin;brwyn;brwyn aylynwy;Бервин;Бервін;Беруин;بروين;بروین، الینوائے;بروین، ایلینوی;बर्विन;버윈; +city::4885164;Bloomington;BMI;Blooming Grove;Bloomington;Blumington;Blumingtona;Blumingtun;Blūmingtona;Keg Grove;beullumingteon;blumingatana;blumingtana;blumintana;blwmnjtwn;blwmyngtwn;bu lu ming dun;buruminton;Блумингтон;Блумингтън;Блумінгтон;بلومنجتون;بلومنگٹن;بلومینگتون;ब्लूमिंगटन;ब्लूमिंग्टन;ব্লুমিংটন;ブルーミントン;布卢明顿;블루밍턴; +city::4885265;Bolingbrook;Bolingbrook;Bolingbruk;bolingabruka;bwlygh brwk;Болингбрук;بولنگبروک، الینوائے;بوليغ بروك;बोलिङ्गब्रूक; +city::4887158;Champaign;CMI;Champaign;Shampejn;West Urbana;cyampena;shang pei en;shanpen;shmpyn aylynwy;smpyyn;syaempein;syampe'ina;tshambyghn;Шампейн;Шампејн;שמפיין;تشامبيغن;شمپین، ایلینوی;شیمپین، الینوائے;च्याम्पेन;শ্যাম্পেইন;シャンペーン;尚佩恩;섐페인; +city::4887398;Chicago;CHI;Cekaga;Chi-ka-ko;Chi-kâ-kô;Chicago;Chicagu;Chikago;Cikaga;Cikago;Cikaqo;E-Chicago;Gorad Chykaga;Kikako;Shikago;Sicagum;Sikago;The Windy City;Tsikago;Windy City;chikhako;cikago;cikako;shikago;shkagw;shykaghw;shykagw;shykajw;shyqgw;sikago;sikkagea;syqgw;zhi jia ge;Çikago;Çikaqo;Ĉikago;Čikaga;Čikago;Čikāga;Čėkaga;Şikago;Σικάγο;Горад Чыкага;Чикаго;Чикаґо;Չիկագո;שיקאגא;שיקגו;شيكاجو;شيكاغو;شکاگو;شیکاگو;شیکاگۆ;ܫܝܩܓܘ;शिकागो;শিকাগো;ਸ਼ਿਕਾਗੋ;சிகாகோ;చికాగో;ಶಿಕಾಗೊ;ഷിക്കാഗോ;ชิคาโก;ရှီကာဂိုမြို့;ჩიკაგო;ሺካጎ;ᓰᖄᑯ;Ṣìkágò;シカゴ;芝加哥;시카고;𐍃𐌾𐌹𐌺𐌰𐌲𐍉; +city::4888015;Cicero;Cicero;Ciceron;Cícero;Hawthorne;Siseras;Sisero;shisero;siseolo;sisero;sysyrw;Сисеро;Сісеро;Цицерон;سيسيرو;سیسیرو، الینوائے;सिसेरो;シセロ;시서로; +city::4889772;Des Plaines;Des Plaines;Des Pleinsas;Des Plejns;Des-Plejns;Desplaines Station;Maine;Rand;des ple'insa;deseupeulleinseu;dys blyns;Дес Плејнс;Дес-Плейнс;دس‌پلینز، ایلینوی;ديس بلينس;دےپلینے، الینوائے;डेस् प्लेइन्स;데스플레인스; +city::4890864;Elgin;Ehldzhin;Eldzhin;Eldzin;Elgin;ai er jin;algn aylynwy;aljyn;aylgn;elgin;elgina;erujin;Елджін;Елџин;Элджин;إلجين;الگن، الینوائے;الگن، ایلینوی;ایلگن;एल्गिन;エルジン;埃爾金;엘긴; +city::4891382;Evanston;Ehvanston;Evanston;Evanstonas;Evanstun;Gorad Ehvanstan;Grosse Pointe;Ridgeville;ai wen si dun;awanstwn aylynwy;ayfanstwn;ebansuton;ebeonseuteon;ibhansatana;Горад Эванстан;Еванстон;Еванстън;Эванстон;אוונסטון;إيفانستون;اوانستون، ایلینوی;اوانسٹن، الینوائے;इभान्सटन;എവൻസ്റ്റൺ;エバンストン;埃文斯顿;에번스턴; +city::4896075;Hoffman Estates;; +city::4898015;Joliet;JOT;Joliet;Juliet; +city::4903024;Mount Prospect;Maunt Prospekt;ma'unta prospekta;mwnt brwsbkt;Маунт Проспект;ماؤنٹ پراسپیکٹ، الینوائے;مونت بروسبكت;माउन्ट प्रोस्पेक्ट; +city::4903279;Naperville;Fort Naper;Naper Settlement;Naperville;Napervillium;Napiersville;Napierville;Nejpervil;Nejpervill;Nepervill;nabrfyl;nei po wei er;neipabiru;neipeobil;neparabhila;Нейпервилл;Непервілл;Нејпервил;نابرفيل;ناپرس‌ویل، ایلینوی;نیپرویل، الینوائے;नेपरभिल;ネイパービル;內珀維爾;네이퍼빌; +city::4903780;Normal;Normal;Normal'naja;North Bloomington;nuo mo er;nwrmal alynwy;Нормал;Нормальная;نورمال، إلينوي;诺默尔; +city::4903976;North Peoria;; +city::4904365;Oak Lawn;Ouk Lon;awk lawn;oka lana;Оук Лон;أوك لاون;اوک لان، الینوائے;ओक लन; +city::4904381;Oak Park;Harlem;Noyesville;Oak Park;Oak Ridge;Ouk-Park;Оук-Парк; +city::4904937;Orland Park;Orland;Orland Park;awrland bark;Орланд Парк;اورلاند بارك;اورلینڈ پارک، الینوائے; +city::4905211;Palatine;Palatajn;Palatin;Palatinas;Palatine;blatyn;Палатајн;Палатин;بلاتين;پالاتائن، الینوائے; +city::4905687;Peoria;Au Pay;Au Pe;Le Pe;Opq;PIA;Peoria;Peorija;Pimitoui;Piorias;Piorija;bywrya;pi ao li ya;piolia;pioria;piyoriya;pywrya;pywrya aylynwy;Пеория;Пиорија;Піорія;פאוריה;بيوريا;پئوریا، ایلینوی;پیوریا;پیوریا، الینوائے;पियोरिया;ピオリア;皮奥里亚;피오리아; +city::4907959;Rockford;Gorad Rokfard;RFD;RMC;Rockford;Rokford;Rokfordas;The Forest City;ZRK;logpeodeu;luo ke fu de;rakaphorda;rokkufodo;rwkfwrd;rwqpwrd;Горад Рокфард;Рокфорд;רוקפורד;راک فورڈ، الینوائے;راک‌فورد، ایلینوی;روكفورد;روکفورڈ;রকফোর্ড;ロックフォード;罗克福德;록퍼드; +city::4910713;Schaumburg;JMH;Schaumberg;Schaumburg;Schaumburg Center;Shaumburg;Shomberg;shambwrgh;shanbagu;shao mu bao;syambeogeu;Шаумбург;Шомберг;شامبرگ، الینوائے;شامبورغ;シャンバーグ;绍姆堡;샴버그; +city::4911600;Skokie;Niles Center;Niles Centre;Skoki;Skokie;seukoki;skwky;sqwqy;Скоки;Скокі;סקוקי;سكوكي;سکوکی، الینوائے;스코키; +city::4913723;Tinley Park;Tinley Park;Tinleypark;Tinli Park;tynly bark;Тинли Парк;تينلي بارك;ٹنلی پارک، الینوائے; +city::4915734;Waukegan;Little Fort;UGN;Uokigan;Vokigan;Waukegan;u~okigan;waywkgan aylynwy;wkghn;wo ji gen;wokigeon;wwqygn;wx khi kan;Вокиган;Вокіган;Уокиган;ווקיגן;وائوکگان، ایلینوی;واکیگن، الینوائے;وكغن;วอคีกัน;ウォキーガン;沃基根;워키건; +city::4916288;Wheaton;Uiton;Viton;hui dun;hwiteon;wyatwn aylynwy;wytwn;Витон;Уитон;وئاتون، ایلینوی;ويتون;ویٹن، الینوائے;惠顿;휘턴; +city::4917592;Anderson;AID;Anderson;Andersonton;Andersontown;Wa-piminskink;aendeoseun;andrswn ayndyana;mdynt andrswn;Андерсон;اندرسون، ایندیانا;اینڈرسن، انڈیانا;مدينة اندرسون;앤더슨; +city::4919987;Elkhart;EKI;Ehlkkhart;Elkkhart;ai er ke ha te;alkart ayndyana;alkhart;Елкхарт;Элкхарт;إلخارت;الکارت، انڈیانا;الکارت، ایندیانا;埃尔克哈特; +city::4920423;Fort Wayne;Arx Vainensis;FWA;Fort Gouein;Fort Miami;Fort Uejn;Fort Veinas;Fort Vejn;Fort Veyn;Fort Wayne;Fort-Uehjn;Fort-Vejn;Fortveina;Frenchtown;Kekionga;Kiskakon;Miami Town;Omee Town;Post Miami;Twightwee Village;fotou~ein;fwrt wayn;fwrt‌wyn ayndyana;phorta vena;poteuwein;pwrt wyyn;wei en bao;Φορτ Γουέιν;Форт Вејн;Форт Уейн;Форт-Вейн;Форт-Уэйн;פורט ויין;فورت واين;فورت‌وین، ایندیانا;فورٹ وین، انڈیانا;फोर्ट वेन;フォートウェイン;韋恩堡;포트웨인; +city::4920607;Gary;GYY;Gary;Gehri;Geri;Gorad Gehry;Qari;gairi;geli;geri;ghary;gry ayndyana;jia li;Гери;Гері;Горад Гэры;Гэри;Գերի;غاري;گری، انڈیانا;گری، ایندیانا;गैरी;แกรี;გერი;ゲーリー;加里;게리; +city::4921100;Hammond;Hammond;Hohman;Khammond;Khamond;State Line;ha meng de;haemeondeu;hamondo;hamwnd;hmwnd ayndyana;Хаммонд;Хамонд;هاموند;هموند، ایندیانا;ہیمونڈ، انڈیانا;ハモンド;哈蒙德;해먼드; +city::4922388;Kokomo;OKK;ke ke mo;kokomo;kwkwmw;kwkwmw ayndyana;كوكومو;کوکومو، انڈیانا;کوکومو، ایندیانا;コーコモー;科科莫; +city::4922462;Lafayette;LAF;La Fayette;LaFayette;Lafajet;Lafayette;Lafejet;la fei te;lafayyt;lafyt ayndyana;lapies;rafaietto;Лафайет;Лафејет;لا فائت، انڈیانا;لافاييت;لافیت، ایندیانا;ラファイエット;拉斐特;라피엣; +city::4924006;Muncie;MIE;Mansi;Muncey Town;Muncie;Munseetown;Munsey;man si;manshi;mwnsy;mwnsy ayndyana;Манси;منسی، انڈیانا;مونسي;مونسی، ایندیانا;มันซี;མཱུན་སི།;マンシー; +city::4924198;Noblesville;Noblsvil;Nobulsvil;noburuzubiru;Ноблсвил;Нобълсвил;ノーブルズビル; +city::4926563;South Bend;Big Saint Joseph Station;Flexuvium Australe;Gorad Saut-Bend;SBN;Saint Joseph's;Saut Bend;Saut Bendas;Saut-Bend;South Bend;Southold;The Bend;nan ben de;sauseubendeu;sausubendo;sawth bnd;sawth bnd ayndyana;Горад Саўт-Бенд;Саут Бенд;Саут-Бенд;סאות בנד;ساؤتھ بینڈ، انڈیانا;ساوث بند;ساوث بند، ایندیانا;サウスベンド;南本德;사우스벤드; +city::4930956;Boston;BOS;Baston;Boston;Bostona;Bostonas;Bostone;Bostonia;Bostono;Bostons;Bostun;Bostún;Gorad Bostan;Mushauwomuk;Old Boston;Po-su-tun;Pokekona;Pô-sṳ-tun;Shawmut;Shawmutt;Shawnnut;Totant;Tramount;Tremont;Trimountain;Trimountaine;Vostoni;Wahstoronon:ke;Wahstoronòn:ke;Wastok;bastan;bastana;bausatana;beasrraൺ;bo shi dun;boseuteon;bostan;bostana;bostʼoni;bosuton;bwstn;bwstwn;bxstan;pastan;Βοστωνη;Βοστώνη;Бостон;Бостън;Горад Бостан;Բոստոն;באסטאן;בוסטון;بوستون;بوسطن;بوسٹن;بۆستن;ܒܘܣܛܘܢ;बस्तन;बास्टन्;बॉस्टन;बोस्टन;বস্টন;ਬੌਸਟਨ;பாஸ்டன்;బోస్టన్;ಬಾಸ್ಟನ್;ബോസ്റ്റൺ;บอสตัน;བོ་སེ་ཊོན།;ဘော့စတွန်မြို့;ბოსტონი;ቦስቶን;ボストン;波士頓;波士顿;보스턴; +city::4931429;Brockton;Brockton;Brokton;Broktun;North Bridgewater;braktwn masachwst;brwktwn;bu luo ke dun;burokkuton;Броктон;Броктън;براکتون، ماساچوست;بروكتون;بروکٹن، میساچوسٹس;ブロックトン;布罗克顿; +city::4931482;Brookline;Brookline;Brouklain;Bruklajn;Bruklin;beulukeullain;brwklayn masachwst;brwqlyyn;bu lu ke lai en;burukkurain;Μπρούκλαϊν;Бруклайн;Бруклајн;Бруклин;ברוקליין;بروکلاین، ماساچوست;ブルックライン;布鲁克莱恩;브루클라인; +city::4931972;Cambridge;Cambridge;Cambridge i Massachusetts;Cantabrigia;Gorad Kembrydzh;Kehmbridzh;Keimbridza;Keimbridža;Keimpritz;Kejmbridzh;Kembridz;Kembridzas;Kembridzh;Kembridžas;Kembrigo;Kembrizh;Kembriĝo;Mishawum;New Town;New Towne;Newtown;Newtowne;Old Cambridge;jian qiao;kambrydj;keimbeuliji;kembrija;kempirij;kenburijji;khem bridc;kmbryj masachwst;qyymbrydg;Κέιμπριτζ;Горад Кембрыдж;Кеймбридж;Кембридж;Кембриж;Кембриџ;Кембриҷ;Кэмбридж;Քեմբրիջ;קיימברידג;קעמברידזש;كامبريدج;کمبریج، ماساچوست;کیمبرج، میساچوسٹس;केंब्रिज;கேம்பிரிஜ்;เคมบริดจ์;ケンブリッジ;剑桥;케임브리지; +city::4933002;Chicopee;CEF;Chicopee;Chikopi;chikopi;qi ke pi;shykwby;shykwpy masachwst;Чикопи;Чікопі;شيكوبي;شیکوپی، ماساچوست;چیکوپی، میساچوسٹس;チコピー;奇科皮; +city::4936159;Fall River;Border City Village;Fall River;Fall River Village;Fol Riveh;Fol River;Foll-River;Pocasset;The Border City;fal rywr masachwst;foruriba;fu er li fu;fwl ryfr;Фол Ривер;Фол Ривэ;Фолл-Ривер;Фолл-Рівер;فال ریور، ماساچوست;فال ریور، میساچوسیٹس;فول ريفر;フォールリバー;福尔里弗; +city::4937230;Framingham;Framingham;Framingkham;Frejmingkham;South Framingham;framyngham masachwst;framynghham;fureiminguhamu;peuleiminghaem;Фрамингхам;Фрејмингхам;فرامينغهام;فرامینگهام، ماساچوست;フレイミングハム;프레이밍햄; +city::4937232;Framingham Center;Framingham Center;Framingham Centre; +city::4939085;Haverhill;Haverhill;Khaverkhill;Pentucket;Pentuckett;Хаверхилл; +city::4941720;Lawrence;LWM;Lawrence;Lorehns;Lorens;Lourens;lao lun si;larns masachwst;lolenseu;lwrans;lwrns;rorensu;Лоренс;Лорэнс;Лоуренс;לורנס;لارنس، ماساچوست;لارنس، میساچوسٹس;لورانس;ローレンス;劳伦斯;로렌스; +city::4942618;Lowell;Lauehll;Loouel;Louehll;Louel;Louell;Louul;Lowell;lovela;lowel;luo e er;lwwl;lwwl masachwst;lwwyl;rou~eru;Λόουελ;Лауэлл;Лоуел;Лоуелл;Лоуъл;Лоуэлл;לוול;لوول، ماساچوست;لوويل;لوویل، میساچوسٹس;लॉवेल;ក្រុងឡូវែល រដ្ឋម៉ាស្សាឈូស៊ែត;ローウェル;洛厄尔;로웰; +city::4942807;Lynn;Lin;Linn;Lyn;Lynn;Saugus;lin;lin en;lyn;lynn masachwst;rin;Лин;Линн;Лінн;لين;لین، میساچوسٹس;لینن، ماساچوست;リン;林恩;린; +city::4942939;Malden;Maldehn;Maldeno;Molden;maldn;mldn masachwst;moldeun;moruden;Малдэн;Молден;مالدن;مالڈن، میساچوسٹس;ملدن، ماساچوست;モールデン;몰든; +city::4943629;Medford;Medford;Mehdford;Mistic;Mystic;mdfwrd masachwst;medeupeodeu;medofodo;mydfwrd;Медфорд;Мэдфорд;مدفورد، ماساچوست;ميدفورد;میڈفورڈ، میساچوسٹس;メドフォード;메드퍼드; +city::4945121;New Bedford;Achushena;Acushnet Village;EWB;N'ju Behdford;N'ju-Bedford;New Bedford;Nju Bedford;bdfwrd jdyd masachwst;niwbedf xrd;nyubeddofodo;nyubedeupeodeu;nyw bdfwrd;xin bei de fu de;Њу Бедфорд;Нью Бэдфорд;Нью-Бедфорд;بدفورد جدید، ماساچوست;نيو بدفورد;نیو بیڈفورڈ، میساچوسٹس;นิวเบดฟอร์ด;ニューベッドフォード;新贝德福德;뉴베드퍼드; +city::4945283;Newton;Cambridge;N'juton;New Towne;Newton;Njuton;Njutun;Nonantum;niu dun;nyuteon;nyuton;nywtn;nywtwn masachwst;Њутон;Ньютон;Нютън;نيوتن;نیوتون، ماساچوست;نیوٹن، میساچوسٹس;ニュートン;牛顿;뉴턴; +city::4945588;North Chicopee;; +city::4946863;Peabody;Peabody;Pibodi;South Danvers;bybwdy;pibodi;pybwy masachwst;Пибоди;بيبودي;پیباڈی، میساچوسٹس;پیبوی، ماساچوست;ピーボディ; +city::4948247;Quincy;Braintree;Brantree;City Presidents;Kuajnsi;Kuinsi;Kvinsi;MQI;Quincy;kuinshi;kun shi;kun xi;kwinsi;kwynsy;kwynsy masachwst;Квинси;Квінсі;Куайнси;Куинси;كوينسي;کوئنسی، ماساچوست;کوئنسی، میساچوسٹس;クインシー;昆市;昆西;퀸시; +city::4951257;Somerville;Samervil;Somehrvill;Somervill;Somerville;Sumurvil;sa mo wei er;samabiru;samrwyl masachwst;Самервил;Сомервилл;Сомэрвилл;Съмървил;سامرویل، ماساچوست;サマービル;萨默维尔; +city::4951473;South Peabody;; +city::4951788;Springfield;Agawam;Agawome;Campifons;Nayasset;SFY;Springfield;Springfield City;Springfijld;Springfild;Springfilda;Springfildas;Springfīlda;Spryngfild;aspryngfyld masachwst;sbrynghfyld;seupeulingpildeu;si pu lin fei er de;spryngpyld;supuringufirudo;Спрингфийлд;Спрингфилд;Спрингфілд;Спрынгфілд;ספרינגפילד;اسپرینگفیلد، ماساچوست;سبرينغفيلد;سپرنگفیلڈ، میساچوسٹس;スプリングフィールド;斯普林菲尔德;스프링필드; +city::4952629;Taunton;Taunton;Taunton Green;Tonten;Tonton;Tontun;tang dun;tantwn masachwst;tonteon;tonton;twntwn;Тонтен;Тонтон;Тонтън;تانتون، ماساچوست;تونتون;ٹاؤنٹن، میساچوسٹس;トーントン;汤顿;톤턴; +city::4954380;Waltham;Uoltem;Voltam;Voltgem;WLM;u~orusamu;waltham;waltham masachwst;wo er se mu;wwltm;Волтам;Волтгем;Уолтем;וולתם;والتهام، ماساچوست;والتھم، میساچوسٹس;والثام;ウォルサム;沃尔瑟姆; +city::4955336;Weymouth;Uejmut;Vehjmaus;Vejmut;Wessagusset;Wessagussett;Weymouth;Weymouth Centre;u~eimasu;weimeoseu;wymawth;wymwt masachwst;Вејмут;Вэймаус;Уеймът;ويماوث;ویماوتھ، میساچوسٹس;ویموت، ماساچوست;ウェイマス;웨이머스; +city::4956184;Worcester;Gorad Vustehr;Grafton Gore;ORH;Ouorster;Pakachoog;Uorsestehr;Ustur;Vigornia;Vuster;Vusteris;Worcester;Worcester i USA;useuteo;usuta;wrsstr;wu si te;wwstr;wwstr masachwst;Ουόρστερ;Вустер;Горад Вустэр;Уорсестэр;Устър;ווסטר;ورسستر;ووستر، ماساچوست;ووسٹر، میساچوسٹس;ウースター;伍斯特;우스터; +city::4975802;Portland;Casco;Elbow;Falmouth;Falmouth Neck;Gorad Portlend;Indigreat;Machegony;Machigonne;PWM;Portland;Portland i Maine;Portlandia;Portlant;Portlend;Portlenda;Quack;The Neck;Uh-kos-is-co;bo te lan;bwrtland;portalanda;portalyanda;poteullaendeu;potorando;pwrtlnd;pwrtlnd myn;Πόρτλαντ;Горад Портленд;Портланд;Портленд;Փորթլենդ;פורטלנד;بورتلاند;ورٹلینڈ، مینے;پورتلند، مین;पोर्टलंड;পোর্টল্যান্ড;ポートランド;波特蘭;포틀랜드; +city::4984247;Ann Arbor;A2;ARB;An Arboras;An Arbur;Ann Arbor;Ann Armpor;Ann-Arbor;Arbaro de Ana;Ehnn-Arbor;En Arbor;Enarbora;Enn Arbor;Enn-Arbor;Enārbora;aen-abeo;aena arbara;aina arbara;an arbr;an arbr myshygan;an nuo bao;anaba;ayn arbr mshy gn;en arpar;ena arbar;Ανν Άρμπορ;Ан Арбър;Анн-Арбор;Ен Арбор;Енн-Арбор;Энн-Арбор;אן ארבור;آن آربر;ان آربر، میشیگان;این آربر، مشی گن;अॅन आर्बर;ऍन आर्बर्;ऐन आर्बर;ஏன் ஆர்பர்;アナーバー;安娜堡;앤아버; +city::4985153;Battle Creek;BTL;Batl Krik;Batul Krijk;Betl Krik;ba te er ke li ke;baeteulkeulikeu;batl kryk;batorukuriku;Батл Крик;Батъл Крийк;Бетл Крик;باتل كريك;بتل‌کریک، میشیگان;بیٹل کریک، مشی گن;バトルクリーク;巴特爾克里克;배틀크리크; +city::4987990;Canton;; +city::4989133;Clinton Township;Charter Township of Clinton;Clinton Township; +city::4990510;Dearborn;Dearborn;Dearbornville;Dirborn;Dirborna;Diurborn;Dīrborna;di er bo en;diabon;dieobon;diyaraborna;dyrbwrn;dyrbwrn myshygan;Дирборн;Диърборн;Дірборн;דירבורן;ديربورن;دیربورن، میشیگان;ڈئربورن، مشی گن;डीयरबॉर्न;ディアボーン;迪尔伯恩;디어본; +city::4990512;Dearborn Heights;Dirborn Khajts;Dirborn Khehjts;dyrbwrn hayts;Дирборн Хајтс;Дирборн Хэйтс;ديربورن هايتس;دیربورن‌هایتس، میشیگان;ڈئربورن ہائٹس، مشی گن; +city::4990729;Detroit;D-town;DTT;Detroit;Detroita;Detroitas;Detroitum;Detrojt;Detrojto;Detroyt;Détroit;Détroyt;Gorad Dehtrojt;Mo-Town;Motor City;Motown;Ntitroit;The D;Tiughsaghrondy;Tsi kiohsahron:ta;Tsi kiohsahrón:ta;Wawyachtenok;detoroito;detra'ita;detrayeta;detrayit;detro'ita;detʼroitʼi;di te lu;di thrx yt;ditara'ita;diteuloiteu;dtrwyt;dytrwyt;titrayit;Ντιτρόιτ;Горад Дэтройт;Детроит;Детройт;Դետրոյթ;דטרויט;דעטרויט;ديترويت;دیترویت;ڈیٹرائٹ;डेट्राइट;डेट्रॉईट;ডেট্রয়েট;ਡਿਟਰਾਇਟ;டிட்ராயிட்;డెట్రాయిట్;ดีทรอยต์;დეტროიტი;ዲትሮይት;デトロイト;底特律;디트로이트; +city::4992523;Farmington Hills;; +city::4992982;Flint;FNT;Flint;Siti of Flint;flynt;flynt myshygan;fu lin te;furinto;peullinteu;plynt;Сити оф Флинт;Флинт;Флінт;פלינט;فلنٹ، مشی گن;فلينت;فلینت، میشیگان;フリント;弗林特;플린트; +city::4994358;Grand Rapids;GRR;Gorad Grand-Rapids;Grand Rapids;Grand Rapidsas;Grand-Rapids;Grend-Repids;da ji liu cheng;geulaendeulaepijeu;gramda repidsa;grndrpydz myshygan;gurandorapizzu;Горад Гранд-Рапідс;Гранд Рапидс;Гранд-Рапидс;Гренд-Репідс;גרנד ראפידס;گرندرپیدز، میشیگان;ग्रँड रॅपिड्स;ᒥᓯ ᐹᐗᔅᑎᒃ;グランドラピッズ;大急流城;그랜드래피즈; +city::4997787;Kalamazoo;AZO;Bronson;Kalamazoo;Kalamazu;Kalamazū;ka la ma zu;kaelleomeoju;kalamazw;kalamazw mshy gn;kalamzw myshygan;karamazu;Каламазу;קאלאמאזו;كالامازو;کالامازو، مشی گن;کالامزو، میشیگان;カラマズー;卡拉马祖;캘러머주; +city::4998018;Kentwood;Kentvud;kenteuudeu;kntwwd myshygan;kyntwwd;Кентвуд;كينتوود;کنتوود، میشیگان;کینٹووڈ، مشی گن;켄트우드; +city::4998830;Lansing;Gorad Lansing;LAN;Lansin'nk;Lansing;Lansinga;Lansingas;Lansings;Lehnsing;Lensing;laensing;lan xin;lancin;lansin;lansina;lansinga;lansng;lansng mshy gn;lansngh;lnsyng;lnsyng myshygan;lyansinga;ranshingu;Λάνσινγκ;Горад Лансінг;Лансинг;Ленсинг;Лэнсинг;Լանսինգ;לאנסינג;لانسنغ;لانسنگ;لانسنگ، مشی گن;لنسینگ;لنسینگ، میشیگان;लान्सिंग;लान्सिङ;लान्सिङ्;ल्यान्सिंग;லான்சிங்;ランシング;兰辛;蘭辛;랜싱; +city::4999837;Livonia;Livonia;Livonija;libonia;lyfwnya;lywwnya mshy gn;lywwnya myshygan;Ливониа;Ливония;Ливонија;ليفونيا;لیوونیا، مشی گن;لیوونیا، میشیگان;리보니아; +city::5004062;Novi;Novaj;Novi;Novyj;nobai;nwfy;nwwy myshygan;nwy mshy gn;Новај;Нови;Новый;نوفي;نووی، میشیگان;نوی، مشی گن;ノバイ;노바이; +city::5006166;Pontiac;PTK;Pontiac;Pontiak;Pontijak;bwntyak;pang di ya ke;pontiaeg;pontiakku;pwntyak myshygan;Понтиак;Понтијак;Понтіак;بونتياك;پونتیاک، میشیگان;پونٹیئک، مشی گن;ポンティアック;庞蒂亚克;폰티액; +city::5007402;Rochester Hills;; +city::5007804;Royal Oak;Rojal Ouk;loyeol-okeu;rayl awk mshy gn;roiyaruoku;rwyal awk;rwyal awk myshygan;Ројал Оук;رائل اوک، مشی گن;رويال أوك;رویال اوک، میشیگان;ロイヤルオーク;로열오크; +city::5009586;Shelby;; +city::5010636;Southfield;Sautfild;Sousfild;Southfield;sauseupildeu;Саутфилд;Соусфилд;사우스필드; +city::5010978;Saint Clair Shores;; +city::5011148;Sterling Heights;Sterling Khajts;Sterling-Khajts;Sturling Khajts;astrlyng hayts myshygan;si te ling hai ci;styrlyngh hayts;sutaringuhaitsu;Стерлинг Хајтс;Стерлинг-Хайтс;Стърлинг Хайтс;استرلینگ هایتس، میشیگان;ستيرلينغ هايتس;سٹرلنگ ہائٹس، مشی گن;スターリングハイツ;斯特靈海茨; +city::5011908;Taylor;Tehjlor;Tejlor;taylwr;tylwr myshygan;Тейлор;Тејлор;Тэйлор;تايلور;تیلور، میشیگان;ٹیلر، مشی گن; +city::5012639;Troy;Troj;Troja;Troy;Troy Corners;te luo yi;teuloi;toroi;trwy;trwy myshygan;Трой;Троя;Трој;تروي;تروی، میشیگان;ٹرائے، مشی گن;トロイ;特洛伊;트로이; +city::5014051;Warren;Gorad Uorehn;Uorren;Uorun;Voren;Vorren;Warren;u~oren;warn mshy gn;warn myshygan;waryn;wo lun;woleon;wwrn;Ворен;Воррен;Горад Уорэн;Уоррен;Уорън;וורן;وارن، مشی گن;وارن، میشیگان;وارين;ウォーレン;沃伦;워런; +city::5014130;Waterford;Uoterford;Уотерфорд; +city::5014681;Westland;Vehstland;Vestland;weseuteullaendeu;wstlnd myshygan;wystland;Вестланд;Вэстланд;وستلند، میشیگان;ويستلاند;ویسٹلینڈ، مشی گن;웨스틀랜드; +city::5015618;Wyoming;Vajoming;waywmngh;wayywmng mshy gn;wywmyng myshygan;Вајоминг;وائیومنگ، مشی گن;وايومنغ;ویومینگ، میشیگان; +city::5016494;Apple Valley;Appl Volehj;Apple Valley;City of Apple Valley;Ehpl-Valli;Epl Vali;Epl-Velli;abl faly;aepeulbaelli;Аппл Волэй;Епл Вали;Епл-Веллі;Эпл-Валли;أبل فالي;اپل ولی، مینه‌سوتا;ایپل ویلی، مینیسوٹا;애플밸리; +city::5018651;Blaine;Blaine;City of Blaine; +city::5018739;Bloomington;Bloomington;Bloominton;Blumington;City of Bloomington;beullumingteon;blwmnghtwn;blwmyngtn mynh‌swta;buruminton;Блумингтон;بلومنغتون;بلومنگٹن، مینیسوٹا;بلومینگتن، مینه‌سوتا;ブルーミントン;블루밍턴; +city::5019335;Brooklyn Park;Brooklyn Park;Bruklin Park;Bruklin-Park;City of Brooklyn Park;beulukeullinpakeu;brwklyn bark;Бруклин Парк;Бруклин-Парк;Бруклін-Парк;بروكلين بارك;بروکلین پارک، مینه‌سوتا;بروکلین پارک، مینیسوٹا;브루클린파크; +city::5019767;Burnsville;Bernsvil;Bernsvil';Bernsvill;Burnsvill;Burnsville;City of Burnsville;bwrnsfyl;Бернсвил;Бернсвилл;Бернсвіль;Бурнсвилл;برنزویل، مینه‌سوتا;برنزویل، مینیسوٹا;بورنسفيل; +city::5022025;Coon Rapids;City of Coon Rapids;Coon Rapids;Kun Rapids;Kun-Rapids;kwn rabydz;Кун Рапидс;Кун-Рапидс;Кун-Рапідс;كون رابيدز;کون رپیدز، مینه‌سوتا;کون ریپڈز، مینیسوٹا; +city::5024719;Duluth;City of Duluth;DLH;Dalut;Duljut;Dulut;Dulutas;Duluth;Onigamiinsing;darusu;deolluseu;dlwth mynh‌swta;du lu si;dulutha;dwlwt;dwlwth;Далут;Дулут;Дълют;Դուլութ;דולות;دلوث، مینه‌سوتا;دولوث;ڈولوتھ، مینیسوٹا;डुलुथ;ダルース;杜魯斯;덜루스; +city::5024825;Eagan;City of Eagan;Eagan;Igan;aygan mynh‌swta;ayjan;igan;igana;Іґан;Иган;إيجان;ایگان، مینه‌سوتا;ایگان، مینیسوٹا;ईगन;イーガン; +city::5025219;Eden Prairie;City of Eden Prairie;Eden Prairie;Ehden Prehjraj;Iden Preri;Iden-Preri;aydn bryry;aydn pryry mynh‌swta;Іден-Прері;Иден Прери;Иден-Прери;Эден Прэйрай;إيدن بريري;ایدن پریری، مینه‌سوتا;ایڈن پریری، مینیسوٹا; +city::5025264;Edina;City of Edina;Edina;Idajna;adyna;idaina;Идайна;Идајна;إدينا;ادینا، مینه‌سوتا;ایڈینا، مینیسوٹا;イーダイナ; +city::5034059;Lakeville;City of Lakeville;Fairfield;Lake Ville;Lakeville;Lakeville Village;Lehjkvill;Lejkvil;Lejkvil';Lejkvill;lykfyl;lykwyl mynh‌swta;Лейквилл;Лейквіль;Лејквил;Лэйквилл;ليكفيل;لیک ویل، منیسوٹا;لیکویل، مینه‌سوتا; +city::5036493;Maple Grove;City of Maple Grove;Maple Grove;Mehjpl Grouv;Mejpl Grouv;Mejpl-Grov;mabl ghrwf;Мейпл-Гров;Мейпл-Ґров;Мејпл Гроув;Мэйпл Гроув;مابل غروف;میپل گروو، مینه‌سوتا;میپل گروو، مینیسوٹا; +city::5037649;Minneapolis;City of Minneapolis;Gakaabikaang;Gorad Mineapalis;MSP;Min-ni-a-po-li-su;Mineapoli;Mineapolis;Mineapolisa;Mineápolis;Minneapolis;Minneapòlis;Minnéapolis;Minyapolis;Mìn-nì-â-pô-li-sṳ̂;mineaporisu;minepolisa;ming ni a bo li si;ming ni ya bo li si;miniaepolliseu;miniyapolisa;miniyappolis;minniyapolis;mnyapwls;mynyabwls;mynyapwlys;Μινεάπολη;Горад Мінеапаліс;Минеаполис;Миннеаполис;Міннеаполіс;Մինեապոլիս;מיניאפוליס;منیاپولس;مينيابولس;مینیاپولیس;मिनियापोलिस;मिनीयापोलिस;মিনিয়াপোলিস;મિનેપોલિસ;மினியாப்பொலிஸ்;మిన్నియాపోలిస్;ಮಿನ್ನಿಯಾಪೋಲಿಸ್;มินนีแอโพลิส;მინეაპოლისი;ミネアポリス;明尼亞波利斯;明尼阿波利斯;미니애폴리스; +city::5037784;Minnetonka;City of Minnetonka;Minitonka;Minnetonka;minetongka;minetonka;mynytwnka;Минитонка;Миннетонка;Міннетонка;مينيتونكا;مینه‌تونکا، مینه‌سوتا;مینیٹونکا، مینیسوٹا;ミネトンカ;미네통카; +city::5037790;Minnetonka Mills;Minnetonka;Minnetonka Mills; +city::5041926;Plymouth;City of Plymouth;Plajmaus;Plimut;Plymouth;blymwth;Плаймаус;Плимут;Плімут;بليموث;پلایماؤت، مینیسوٹا;پلیموث، مینه‌سوتا; +city::5043473;Rochester;City of Rochester;RST;Rochester;Rochestur;locheseuteo;luo che si te;rachstr mynh‌swta;rochesuta;rwtshystr;rwzstr;Рочестер;Рочестър;רוצסטר;راچستر، مینه‌سوتا;روتشيستر;روچیسٹر، مینیسوٹا;ロチェスター;羅徹斯特;로체스터; +city::5044407;Saint Cloud;City of Saint Cloud;Ozaagiiziibiing;STC;Saint Cloud;St. Cloud; +city::5045360;Saint Paul;City of Saint Paul;Gorad Sent-Pol;Imnizha ska;Saint Paul;Saint Pol;San Pablo;Sejnt Pol;Sent Pol;Sent Polas;Sent Pols;Sent-Pol;Sentpola;Sint-Paul;St. Paul;Urbs Sancti Pauli de Minnesota;ceyint pal;saint pal;sant bawl;santa pala;seinteupol;senta pala;senta pola;sentoporu;sentphxl;sheng bao luo;synt pl mynh‌swta;syynt pwl;Σαιντ Πωλ;Горад Сент-Пол;Сейнт Пол;Сент Пол;Сент-Пол;Սեյնթ Փոլ;סיינט פול;سانت باول;سینت پل، مینه‌سوتا;سینٹ پال;سینٹ پال، مینیسوٹا;सन्त पल;सेंट पॉल;सेन्त पल;सैन्ट् पाल्;செயின்ட் பால்;เซนต์พอล;სენტ-პოლი;セントポール;圣保罗;세인트폴; +city::5052361;West Coon Rapids;; +city::5053358;Woodbury;City of Woodbury;Vudbari;Vudberi;Vudbjuri;Woodbury;udeubeli;vudabari;wwdbwry;Вудбарі;Вудбери;Вудбюри;وودبری، مینه‌سوتا;وودبوري;ووڈبری، مینیسوٹا;वुडबरी;우드베리; +city::5059163;Fargo;Centralia;FAR;Fago;Fargas;Fargo;Fàgo;Fārgo;Gorad Farga;fa ge;fago;farghw;fargw;fargw dakwtay shmaly;pago;pargo;phargo;Горад Фарга;Фарго;Фарґо;פארגא;פארגו;فارغو;فارگو;فارگو، داکوتای شمالی;फार्गो;ფარგო;ファーゴ;法戈;파고; +city::5059429;Grand Forks;GFK;Grand Foks;Grand Forks;Grand-Forks;Grandforksa;Grann Foks;Grann Fòks;da fu ke si;geulaendeupokeuseu;ghrand fwrks;grnd frk dakwtay shmaly;grnd pwrqs;gurandofokusu;Гранд Фокс;Гранд-Форкс;גרנד פורקס;غراند فوركس;گرند فرک، داکوتای شمالی;گرینڈفورکس;グランドフォークス;大福克斯;그랜드포크스; +city::5063805;Bellevue;Behllevju;Belv'ju;Belvju;bei er wei you;berubyu;blwyw nbraska;blwyw nybraska;bylyfyw;Белвью;Белвю;Белвју;Бэллевю;بلویو، نبراسکا;بلویو، نیبراسکا;بيليفيو;ベルビュー;贝尔维尤; +city::5069297;Grand Island;GRI;Grand Ajland;Grand-Ajlend;Grandis Insula;ge lan de ai lan;geulaendeuaillaendeu;ghrand aysland;gramda ayalanda;grnd aylnd nbraska;gurandoairando;Гранд Айланд;Гранд Ајланд;Гранд-Айленд;Ґранд-Айленд;غراند إيسلاند;گرند آیلند، نبراسکا;گرینڈ آئلینڈ، نیبراسکا;ग्रँड आयलंड;グランドアイランド;格蘭德艾蘭;그랜드아일랜드; +city::5072006;Lincoln;Gorad Linkal'n;LNK;Lin'koln;Lincoln;Lincolnia;Linkol'n;Linkoln;Linkolna;Linkolnas;Linkolns;Linkuln;lin ken;ling khxln;lingkeon;linkan;linkana;lnkn;lnkn nybraska;lynkln nbraska;lynqwln;rinkan;Λίνκολν;Горад Лінкальн;Линколн;Линкольн;Линкълн;Лінкольн;Լինքոլն;לינקולן;لنكن;لنکن;لنکن، نیبراسکا;لینکلن، نبراسکا;लिंकन;लिङ्कन;லிங்கன்;ลิงคอล์น;ლინკოლნი;リンカーン;林肯;링컨; +city::5074472;Omaha;OMA;Omacha;Omaha;Omakha;ao ma ha;awmaha;awmaha nbraska;awmaha nbraska;omaha;xo ma ha;Ομάχα;Омаха;Օմահա;אומהה;أوماها;اوماها نبراسكا;اوماها، نبراسکا;اوماہا، نیبراسکا;ओमाहा;ওমাহা;โอมาฮา;ომაჰა;オマハ;奥马哈;오마하; +city::5089178;Manchester;Derryfield;Harrytown;MHT;Manchehster;Manchester;Manchestur;Namaskeag;Old Harrytown;Tyng's Town;Tyngstown;maencheseuteo;man che si te;manchesuta;manshstr;mnchstr nywhmpshayr;mnzstr;Манчестер;Манчестър;Манчэстер;מנצסטר;مانشستر;مانچسٹر، نیو ہیمپشائر;منچستر، نیوهمپشایر;マンチェスター;曼徹斯特;맨체스터; +city::5090046;Nashua;ASH;Nashua;Watanic;na shu e;naesyua;nashua;nashwa;nshwa nywhmpshayr;Нашуа;נשואה;ناشوا;ناشوا، نیو ہیمپشائر;نشوا، نیوهمپشایر;ナシュア;纳舒厄;내슈아; +city::5095445;Bayonne;Bajon;Bajonn;Bayonne;Bejon;Bejonn;Bergen Neck;Constabals Hoek;Pamlicae Farme;Pamrepau;baywn nywjrsy;bei yong;beion;beiyon;byywnny nyw jrsy;Байон;Байонн;Бейонн;Бејон;بایون، نیوجرسی;بیئوننی، نیو جرسی;ベイヨン;貝永;베이온; +city::5096699;Clifton;Clifton;Klifton;Weasel;ke li fu dun;keullipeuteon;klyftwn nywjrsy;kurifuton;Клифтон;کلفٹن، نیو جرسی;کلیفتون، نیوجرسی;クリフトン;克利夫頓;클리프턴; +city::5097441;East Orange;Doddtown;East Orange; +city::5097529;Edison;Edison;Edisun;Ehdison;Ehdison Taunship;Gmina Edison;Menlo Park;adyswn nywjrsy;ai di sheng;edisana;ediseun;ejison;etican;Едисон;Едисън;Эдисон;Эдисон Тауншип;ادیسون، نیوجرسی;ایڈیسن، نیو جرسی;एडिसन;எடிசன்;エジソン;爱迪生;에디슨; +city::5097598;Elizabeth;Ehlizabeht;Ehlizabet;Elizabet;Elizabetas;Elizabeth;Elizabeth Town;Elizabeth Towne;Elizabethtown;Elizabets Towne;alyzabt nywjrsy;alyzabyth;ellijabeseu;erizabesu;yi li sha bai;Елизабет;Елізабет;Элизабет;Элизабэт;אליזבת;إليزابيث;الزبتھ، نیو جرسی;الیزابت، نیوجرسی;エリザベス;伊麗莎白;엘리자베스; +city::5099133;Hoboken;Hobocan;Hoboken;Hobokena;Hoebuck;Khoboken;Khobouken;Khouboukun;habwkn nywjrsy;hoboken;hobokeon;huo bo ken;hwbwqn;Хобокен;Хобоукен;Хоубоукън;הובוקן;هابوکن، نیوجرسی;ہوبوکین، نیو جرسی;ホーボーケン;霍博肯;호보컨; +city::5099724;Irvington;Camptown;Irvington; +city::5099836;Jersey City;Arissheck;Dinas Jersey;Dzersi Siti;Dzersi Sitis;Dzersisitija;Dzerzi Siti;Dzhehrsi-Sici;Dzhersej Siti;Dzhersi-Siti;Dzhursi Siti;Džersi Sitis;Džērsisitija;Hudson;JEC;Jersey Ceety;Jersey City;Paulus Hook;Paulus's Hook;Powles Hook;Thanh pho Jersey;Thành phố Jersey;grzy syty;jajishiti;jarsi siti;jeojisiti;jrzy syty;jyrsy syty;ze xi shi;Џерзи Сити;Џерси Сити;Джерсей Сити;Джерси-Сити;Джерсі-Сіті;Джърси Сити;Джэрсі-Сіці;Ջերսի Սիթի;גרזי סיטי;جرزی سیتی;جرسی شہر، نیو جرسی;جيرسي سيتي;जर्सी सिटी;ジャージーシティ;泽西市;저지시티; +city::5100280;Lakewood;Bergen Works;Bricksburg;Lakewood;Lakewood Township;Lehjkvud;Lejkvud;Municipio de Lakewood;Washington Furnace;lykwwd nywjrsy;lyyqwwd;reikuuddo;Лейквуд;Лејквуд;Лэйквуд;לייקוואוד;לייקווד;لیک ووڈ ٹاؤنشپ، نیو جرسی;لیکوود، نیوجرسی;レイクウッド; +city::5101717;New Brunswick;Brunswick;Inian;Inians Ferry;Middlesex;N'ju Bransvik;N'ju-Bransuik;N'ju-Bransvik;New Brunswick;Nju Bransvik;Nju Brunzuik;Nuevo Brunswick;The River;nyubeuleonjeuwig;nyuburanzuu~ikku;nyw branzwyk nywjrsy;nyw brnzwk nyw jrsy;nyw brwnzwyk;xin bu lang si wei ke;Њу Брансвик;Нью Брансвик;Нью-Брансвік;Нью-Брансуик;Ню Брънзуик;نيو برونزويك;نیو برانزویک، نیوجرسی;نیو برنزوک، نیو جرسی;ニューブランズウィック;新布朗斯维克;뉴브런즈윅; +city::5101798;Newark;EWR;Gorad N'juark;Milford;N'juark;New Worke;Newark;Nieworke;Niouark;Niuarkas;Njuark;Novarcum;Nuarka;Nyuark;Youngs Point;n'yu'arka;n'yurka;nevark;niu hua ke;nuvark;nwrk;nyuaku;nyueokeu;nywark;nywark nyw jrsy;nywark nywjrsy;Ņuarka;Νιούαρκ;Њуарк;Горад Ньюарк;Ньюарк;Нюарк;Նյուարկ;נוארק;ניוארק;نيوآرك;نیوآرک، نیو جرسی;نیوآرک، نیوجرسی;न्यूअर्क;न्यूर्क;நுவார்க்;నెవార్క్;นวร์ก;ნიუარკი;ニューアーク;紐華克;뉴어크; +city::5101879;North Bergen;brgn shmaly nywjrsy;برگن شمالی، نیوجرسی; +city::5102427;Parsippany;Parcipany;Parcipponog;Parsippani;Parsippany;Percipany;Percipeny;Парсиппани; +city::5102443;Passaic;Acquackanonk;Acquackanonk Bridge;Acquackanonk Landing;Aqueyquinunke;Haquequenunck;Pasejik Siti;Passaic;Passaik;ba sai ke;pasayyk nywjrsy;paseiku;peoseiig;pysayk nyw jrsy;Пасејик Сити;Пассаик;פאסעיק;پاسائیک، نیوجرسی;پیسایک، نیو جرسی;パセーイク;巴賽克;퍼세이익; +city::5102466;Paterson;Great Falls;Manchester;New Manchester;Patehrson;Paterson;Patersun;Totowa;batrswn;pa te sen;paeteoseun;patason;ptrswn;ptrswn nywjrsy;Патерсон;Патерсън;Патэрсон;פטרסון;باترسون;پترسون، نیوجرسی;پیٹرسن، نیو جرسی;แพเทอร์สัน;パターソン;帕特森;패터슨; +city::5102578;Perth Amboy;Ambo Point;Amboy;Amboy Perth;New Perth;New Point;Pehrs Ehmboj;Pert Amboj;Perth;Perth Amboy;Perth Town;Purt Amboj;pasuanboi;peoseuaemboi;prth ambwy nywjrsy;Перт Амбој;Пърт Амбой;Пэрс Эмбой;پرتھ امبوی، نیو جرسی;پرث امبوی، نیوجرسی;パースアンボイ;퍼스앰보이; +city::5102713;Piscataway;New Market;Piscataway;Piscattaway; +city::5102720;Plainfield;Plehjnfild;Plejnfild;peulleinpildeu;plynfyld nywjrsy;pureinfirudo;Плейнфилд;Плейнфілд;Плејнфилд;Плэйнфилд;پلینفیلد، نیوجرسی;プレインフィールド;플레인필드; +city::5105496;Trenton;Chambersburg;Gorad Trehntan;Lamberton;Mill Hill;Santhickan;TTN;The Falls;Trehnton;Trent Town;Trent's Town;Trenton;Trentona;Trentonas;Trentonia;Trents Town;Trentun;itrentan;te lun dun;teulenteon;torenton;trentana;trntwn;Τρέντον;Горад Трэнтан;Трентон;Трентън;Трэнтон;Թրենթոն;טרנטון;ترنتون;ٹرنٹن، نیو جرسی;ٹرینٹن;ट्रेंटन;ट्रेन्टन;त्रेन्तन;இட்ரென்டன்;トレントン;特伦顿;트렌턴; +city::5105608;Union;Connecticut Farms;Union; +city::5105634;Union City;ECC;East Cost Cities;Junion Siti;Junion-Siti;Union City;awnywn syty nywjrsy;you lian shi;yunieonsiti;yunionshiti;ywnywn syty;Јунион Сити;Юнион Сити;Юнион-Сити;Юніон-Сіті;יוניון סיטי;اونیون سیتی، نیوجرسی;يونيون سيتي;یونین شہر، نیو جرسی;ユニオンシティ;友聯市;유니언시티; +city::5106160;Wayne;; +city::5106292;West New York;Vehst N'ju Jork;Vest NJujork;mghrby nyw yark nyw jrsy;nyw ywrk ghrby nywjrsy;weseuteunyuyog;Вест Њујорк;Вэст Нью Йорк;مغربی نیو یارک، نیو جرسی;نیو یورک غربی، نیوجرسی;웨스트뉴욕; +city::5106834;Albany;ALB;Albania;Albanija;Albany;Albany i New York;Albany on Niwum Eoforwice;Albany on Nīwum Eoforwīce;Aurania;Beverswyck;Beverwick;Beverwyck;Ches-co-don-ta;Fort Orange;Fuyck;Ga-isch-ti-nic;Gaasch-tinick;Gaishtinic;Gorad Olbani;Kaishtinic;New Orange;Olbani;Olbanis;Olmpani;Pem-pot-a-wut-hut;Pempotuwuthut;Rensselaerwyck;Scheneghtada;Shaw-na-taw-ty;Ska-neh-ta-de;Skaghnetade;Skaneghtada;Skenectadea;William Stadt;Williamstadt;albani;albany;albany nyw yark;albany nywywrk;albny;alpeni;ao er ba ni;elbani;ke ba li;olbeoni;orubani;xxlbani;Όλμπανι;Албания;Горад Олбані;Олбани;Олбані;Օլբանի;אולבני;אלבאני;آلبانی، نیویورک;ألباني;ئالبانی، نیویۆرک;البانی، نیو یارک;البنی;अल्बानी;आल्बनी;एल्बानी;ஆல்பெனி;ออลบานี;ალბანი;オールバニ;奥尔巴尼;柯巴利;올버니; +city::5107129;Amherst;Amherst;Amkherst;amhrst nywywrk;amuhasuto;Амхерст;امهرست، نیویورک;アムハースト; +city::5107464;Astoria;Astoria;Astorija;Hallett's Cove;aeseutolia;astwrya;Αστόρια;Астория;آستوریا;অ্যাস্টোরিয়া;애스토리아; +city::5108193;Bayside;Bay Side;Bayside;بے سائڈ، کوئینز; +city::5108815;Bensonhurst;Bensonhurst;Bensonhurst-By-The-Sea;Bensonkherst;Bensonkhjorst;Бенсонхерст;Бенсонхёрст; +city::5109790;Borough Park;Blythebourne;Boro-Park;Borough Park;Боро-Парк;בארא פארק;בורו פארק; +city::5110077;Brentwood;Brentud;Brentvud;Brentwood;Modern Times;bryntwwd;Брентвуд;Брентуд;برينتوود;برینٹووڈ، نیو یارک; +city::5110266;The Bronx;Borough of Bronx;Bronks;Bronx;The Bronx;Бронкс; +city::5110302;Brooklyn;BK;Bklyn;Borough of Brooklyn;Breuckelen;Breukelen;Broklino;Brooklyn;Brucclinu;Bruklin;Bruklina;Bruklinas;Comitatus Bruclinum;Kings County;Marechkawick;beulukeullin;bru klin;brukalina;brwklyn;brwqlyn;bu lu ke lin qu;burukkurin qu;kinsa ka'unti;Бруклин;Бруклін;ברוקלין;بروكلين;بروکلین;ब्रुकलीन;ब्रूकलिन;কিংস কাউন্টি;ব্রুকলিন;บรุกลิน;ბრუკლინი;ブルックリン区;布鲁克林区;브루클린; +city::5110446;Brownsville;Brown's Village;Brownsville; +city::5110629;Buffalo;BUF;Bafalas;Bafalo;Baffalo;Bufalo;Bufalum;Buffalo;Buffalo i New York;Bupalo;Búfalo;De-o-tro-weh;De-ose-lole;Gorad Bufala;Ne-o-thro-ra;New Amsterdam;Tick-e-ack-gou-ga;Tsistekeriia'kon:ke;Tsistekeriia'kón:ke;bafelo;baffalo;baffaro;baphalo;baphelo;beopeollo;bfylw nyw yark;bupalo;bwfalw;bwfalw nywywrk;bwfylw;pahpalo;shui niu cheng;Μπάφαλο;Бафало;Баффало;Буфало;Буффало;Бъфало;Горад Буфала;Բուֆֆալո;באפאלא;באפלו;بفیلو، نیو یارک;بوفالو;بوفالو، نیویورک;بوفیلو;बफ़ेलो;बफेलो;பஃபலோ;బఫెలో;ಬಫಲೋ;บัฟฟาโล;ბუფალო;バッファロー;水牛城;버펄로; +city::5110918;Bushwick;Boswijck;Bushuik;Bushwick;Bushwyck;bu xi wei ke;bwswwyq;Бушуик;בושוויק;布希維克; +city::5111412;Canarsie;; +city::5112375;Cheektowaga;Cheektowaga;Cheektowaga Station;Cheektowaga Village;Jiik-do-waah-geh; +city::5113481;Coney Island;Coney Adasi;Coney Adası;Coney Island;Conyn Island;Conyne Island;Insulo Coney;Koni-Ajlend;kang ni dao;koni-ailendi;koniaillaendeu;koniairando;kwny ayland;Кони-Айленд;קוני איילנד;كوني آيلاند;კონი-აილენდი;ქონი-აილენდი;コニーアイランド;康尼島;코니아일랜드; +city::5113779;Corona;Corona;West Flushing; +city::5114418;Cypress Hills;Cypress Hills;Union Place; +city::5115843;East Flatbush;East Flatbush;Rugby; +city::5116495;Elmhurst;Elmhurst;Middeburgh;Middelburg;Middelburgh;Neutuyn;Newtown; +city::5117378;Flatbush;Flatbush;Middelwout;Middewout;Vlackebos;פלעטבוש; +city::5117388;Flatlands;Flatlands;Keskachauge;Neue Amserfoort; +city::5117549;Fordham;; +city::5117575;Forest Hills;Forest Hill;Forest Hills;Whitepot; +city::5119167;Gravesend;; +city::5119347;Greenburgh;Grinburg;Гринбург;Ґрінбург; +city::5120034;Harlem;Garlem;Harlem;Harlema;Harlemas;Harlemo;Hārlema;Kharlem;New Harlem;Nieu Haarlem;Nieuw Haarlem;Northern Manhattan;ha lai mu qu;hallem;haremu;harlemi;harlm;Гарлем;Харлем;Հառլեմ;הארלם;هارلم;ہارلم;ჰარლემი;ハーレム;哈莱姆区;할렘; +city::5120478;Hempstead;Hempstead;Hemsted;Khempsted;Хемпстед; +city::5122331;Irondequoit;Irondikvojt;arwndykwwyt;Ирондиквојт;إرونديكوويت; +city::5122477;Jackson Heights;jaegseunhaicheu;جیکسن ہائیٹس، کوئینز;잭슨하이츠; +city::5122520;Jamaica;Jaimaica;Jamaica;Jamaicah;Jamaick;Jamaico;Jamaika;Jamanica;Jameco;Jemaica;Jemaicae;Jemaico;Jemecah;Rustdorp;gmyyqh;jamaika de qu;jameika;גמייקה;ジャマイカ地区;자메이카; +city::5123443;Kings Bridge;; +city::5124276;Levittown;Island Trees;Levittaun;Levittown;lyfytawn;Левиттаун;ليفيتاون; +city::5125771;Manhattan;Borough of Manhattan;Manatans;Manathans;Manathas;Manathes;Manatte;Manhattan;Manhattanville;Mankhetten;Mannahattan;Menathans;maenhaeteun;man ha dun;manhatn;mnhtn;mæn hat tan;Манхеттен;מנהטן;مانهاتن;แมนฮัตตัน;曼哈顿;맨해튼; +city::5127670;Mott Haven;; +city::5127835;Mount Vernon;Hutchinson's;Maunt Vernon;Maunt-Vernon;Mount Vernon;fu nong shan;mant wrnwn nywywrk;maunteubeoneon;mauntobanon;mwnt fyrnwn;Маунт Вернон;Маунт-Вернон;מאונט ורנון;ماؤنٹ ورنن، نیو یارک;مانت ورنون، نیویورک;مونت فيرنون;マウントバーノン;弗農山;마운트버넌; +city::5128549;New Rochelle;N'ju-Roshel';N'ju-Roshell;New Rochelle;Nju Roshel;Njuroshel;Nouvelle-Rochelle;Nueva Rochelle;nyulosyel;nyurosheru;nyw rashl nywywrk;nyw rwchyl nywyark;nyw rwsl;nyw rwtshyl;xin luo xie er;Њу Рошел;Нью-Рошелл;Нью-Рошель;Нюрошел;ניו רושל;نيو روتشيل;نیو راشل، نیویورک;نیو روچیل، نیویارک;ニューロシェル;新羅謝爾;뉴로셸; +city::5128581;New York City;Aebura;Bandar Raya New York;Big Apple;Cathair Nua Eabhraic;City of New York;Eabhraig Nuadh;Efrog Newydd;Evrek Nowydh;Ga-no-no;Kanon:no;Kanono;Kanón:no;Kota New York;Lungsod ng New York;N'ju-Jork;NY;NYC;Nea Yorke;Nei Yarrick Schtadt;Neu Amsterdam;Neu Jorck;New Amsterdam;New Orange;New Yorc;New York;New York City;New York Stad;New York borg;New York kenti;New York-borg;New Yorke;New Yorku;Niujorkas;Nju Jork;Njujork;Nouvelle Yorck;Nouvieau York;Nov-Jorko;Nova Amsterda;Nova Iorque;Nova York;Nova-York;Novjorko;Novum Eboracum;Nowy Jork;Nua-Eabhrac;Nueva York;Nujorka;Nyja Jorvik;Nyu York Shehiri;Nòva York;Nýja Jórvík;Thanh pho New York;The Big Apple;Thành phố New York;York Berri;manhattan;n'yuyorka;ni'u iyarka siti;niu yue;niu yue shi;niyuyark nakaram;nkhr niwyxrk;nyuyog;nyuyog si;nyuyoku;nyw ywrq;nywywrk;Ņujorka;Νέα Υόρκη;Њу Јорк;Њујорк;Нью-Ёрк;Нью-Йорк;Ню Йорк;ניו יארק;ניו יורק;ניו־יאָרק;نيويورك;نیویارک شہر;نیویورک;न्यूयॉर्क;নিউ ইয়র্ক সিটি;நியூயார்க் நகரம்;นครนิวยอร์ก;ნიუ-იორკი;ニューヨーク;マンハッタン;紐約市;纽约;뉴욕;뉴욕 시; +city::5130334;Ozone Park;awzwn park kwyynz;اوزون پارک، کوئینز; +city::5130572;Parkchester;; +city::5133271;Queens Village;Brushville;Queens;Queens Village; +city::5133273;Queens;Borough of Queens;Queens; +city::5133825;Richmond Hill;; +city::5134086;Rochester;Ga-sko-sa-ga;Gaskosago;ROC;Rocestera;Rocesteris;Rocestro;Rochester;Rochesterville;Rochestur;Roffa;Rotsester;Roĉestro;Ročestera;Ročesteris;locheseuteo;luo che si te;racestara;rocestar;rocestara;rochesuta;rwchstr nywywrk;rwtshstr;rwzstr;rx ches texr;Ρότσεστερ;Рочестер;Рочестър;רוצסטר;روتشستر;روچستر، نیویورک;روچسٹر;روچیسٹر، نیو یارک;रॉचेस्टर;रोचेस्टर;রচেস্টার;రోచెస్టర్;รอเชสเตอร์;ロチェスター;羅徹斯特;로체스터; +city::5136454;Schenectady;SCH;Schenectady;Shinetadi;Skanehtati;Skanéhtati;Skenektadi;Skenektadis;Skunektadi;seukinegteodi;si ke nei ke ta di;sknktdy nywywrk;sknyktady;sqnqtdy;sukenekutadi;Скенектади;Скенектаді;Скънектади;Шинетади;סקנקטדי;سكنيكتادي;سکنکتدی، نیویورک;سکینکٹڈی ، نیویارک;سکینیکٹیڈی، نیو یارک;スケネクタディ;斯克内克塔迪;스키넥터디; +city::5137849;Sheepshead Bay;; +city::5139568;Staten Island;Borough of Staten Island;Staten Island; +city::5140405;Syracuse;Bogardus Corners;Cossitts Corners;Gorad Sirakjus;Kah-ya-hoo-neh;Ken-tue-ho-ne;Na-ta-dunk;SYR;Siracusa;Sirak'jus;Sirakjus;Sirakjuz;Sirakuso;Sirakuz;South Salina;Sy-kuse;Syracusae;Syracuse;Syracuse i New York;Tu-na-ten-tonk;sayrakywz;shirakyusu;shirakyuzu;sileokyuseu;sirekyuja;syrakywz;syrakywz nyw yark;syrakywz nywywrk;syrqywz;xi la qiu ci;Горад Сіракюс;Сиракуз;Сиракьюс;Сиракюз;Сиракјус;Сіракюс;סירקיוז;سائراکیوز;سيراكيوز;سیراکیوز، نیو یارک;سیراکیوز، نیویورک;सिरॅक्युज;სირაკიუსი;シラキュース;シラキューズ;锡拉丘兹;시러큐스; +city::5142056;Utica;Fort Schuyler;Gorad Jutyka;Iotekha;Iotékha;Jutika;Nundadasis;Old Fort Schuyler;Tevadahahtodague;Twa-dah-ah-lo-dah-que;UCA;Unungagages;Utica;Utika;Yanundadasis;ZUA;awtyka;you ti ka;yutika;ywtyka nywywrk;ywtyqh;Јутика;Горад Ютыка;Утика;Ютика;Ютіка;יוטיקה;أوتيكا;یوتیکا، نیویورک;یوٹیکا، نیو یارک;ユーティカ;由提卡; +city::5143056;Wakefield;; +city::5143307;Washington Heights;Harlem Heights;Pen-a-bick;Washington Heights;washintonhaitsu;wosingteonhaicheu;ワシントンハイツ;워싱턴하이츠; +city::5143620;West Albany;Spencerville;West Albany; +city::5144336;White Plains;Quaropas;Uajt Plejns;Uajt-Plejns;Vajt Plajns;Vajt Plejns;Vajt-Plejns;White Plains;Whiteplains;bai yuan shi;hwaiteupeulleinseu;wayt blyns;wayt playnz nywywrk;wyyt plyyns;Вайт Плайнс;Вайт-Плейнс;Вајт Плејнс;Уайт Плейнс;Уайт-Плейнс;ווייט פלעינס;וייט פליינס;وائٹ پلینس، نیویارک;وايت بلينس;وایت پلاینز، نیویورک;ホワイト・プレインズ;ホワイト・プレインズ_;白原市;화이트플레인스; +city::5145215;Yonkers;Gorad Ionkers;Jonkers;Jonkersas;Jonkurs;Yonckers;Yonkers;yang ke si;yankrz;yongkeoseu;yonkazu;ywnkrz;ywnkrz nyw yark;ywnkyrs;ywnqrs;Јонкерс;Горад Іонкерс;Йонкерс;Йонкърс;יאנקערס;יונקרס;يونكيرس;یانکرز;یونکرز;یونکرز، نیو یارک;ヨンカーズ;揚克斯;용커스; +city::5145476;Akron;Akron;Akron City;Akrona;Akronas;Akrun;CAK;Ehkron;New Portage;Summitville;a ke lun;aekeuleon;akran awhayw;akrwn;akuron;ekran;Акрон;Акрън;Экрон;Ակրոն;אקרון;آكرون;اکران، اوهایو;اکرون، اوہائیو;अ‍ॅक्रन;ஏக்ரன்;അക്രോൺ;アクロン;阿克伦;애크런; +city::5149222;Canton;Canton; +city::5150529;Cleveland;CLE;Cleaveland;Cleveland;Forest City;Gorad Kliulend;Klevalehnd;Klevlando;Klivelant;Klivland;Klivlandas;Klivlend;Klivlenda;Klīvlenda;ka fu lan;ke li fu lan;keullibeullaendeu;kilivlant;klebhilyanda;klivhalanda;klyfland;klywlnd;kuriburando;qlyblnd;Κλίβελαντ;Горад Кліўленд;Клевалэнд;Кливланд;Кливленд;Клівленд;Քլիվլենդ;קליבלנד;קליוולאנד;كليفلاند;کلیولند;کلیولینڈ، اوہائیو;क्लीव्हलंड;ক্লেভিল্যান্ড;கிளீவ்லன்ட்;คลีฟแลนด์;კლივლენდი;クリーブランド;克利夫兰;克里夫蘭;卡夫蘭;클리블랜드; +city::5153207;Elyria;Ehlajria;Ehlirija;Elirija;alyrya;alyrya awhayw;eriria;yi li li ya;Елирија;Элайриа;Элирия;إليريا;الیریا، اوهایو;ایلیریا، اوہائیو;エリリア;伊利里亞; +city::5160315;Lakewood;Arlington;East Rockport;Lakewood;Lehjkvud;Lejkvud;leikeuudeu;lykwwd;lyyqwwd;reikuuddo;Лейквуд;Лејквуд;Лэйквуд;לייקווד;ليكوود;لیک ووڈ، اوہائیو;لیک‌وود، اوهایو;レイクウッド;레이크우드; +city::5161262;Lorain;Black River;Black River Settlement;Blackriver;Charleston;Charlestown;Lorain;Lorehjn;Lorejn;Loren;Mouth of Black River;luo lan;lwryn;lwryn awhayw;lwryyn;rorein;Лорейн;Лорен;Лорэйн;לוריין;لورين;لورین، اوهایو;لورین، اوہائیو;ロレイン;洛兰; +city::5166177;Parma;Parma;barma;pama;parma awhayw;Парма;פארמה;بارما;پارما، اوهایو;پارما، اوہائیو;パーマ;파마; +city::5174035;Toledo;Fort Industry;Gorad Talida;Port Lawrence;TOL;Toledo;Tolido;Tolīdo;Upper Toledo;Vistula;teollido;tolido;toredo;tuo lai duo;twldw;twlydw;twlydw awhayw;Горад Таліда;Толедо;Толидо;Толідо;Թոլեդո;טולדו;توليدو;تولیدو، اوهایو;ٹولیڈو، اوہائیو;टॉलिडो;トレド;托莱多;털리도; +city::5177568;Youngstown;Jangstaun;Jangstauna;Jongstaun;Jungstaun;YNG;Youngs Town;Youngstown;yang si dui;yangusutaun;yeongseutaun;yngstʼwn;ywnghztawn;ywngstawn awhayw;Јангстаун;Йонгстаун;Йънгстаун;Янгстаун;ינגסטאון;يونغزتاون;ینگزٹاؤن، اوہائیو;یونگستاون، اوهایو;ヤングスタウン;扬斯敦;영스타운; +city::5178127;Allentown;ABE;Alentaun;Alentaunas;Allenschteddel;Allentaun;Allentoun;Allentown;Aluntaun;Northampton;Northamptontown;a lun dui;aelleontaun;alyntawn;arentaun;Алентаун;Аллентаун;Аллентоун;Алънтаун;אלנטאון;آلن‌تاون، پنسیلوانیا;ألينتاون;ایلن ٹاؤن;ایلن ٹاؤن، پنسلوانیا;アレンタウン;阿伦敦;앨런타운; +city::5180225;Bethlehem;Bethlehem;Betlegem;Betlehemas;Betlekhem;Menagachsink;Vifleem;beseullihem;besurehemu;bo li heng;btlhm pnsylwanya;byt allhm pnslwanya;byt allhm pnslwynya;byt lhm;Бетлегем;Бетлехем;Вифлеем;بتلهم، پنسیلوانیا;بيت لحم;بیت اللحم، پنسلوانیا;بیت اللحم، پنسلوینیا;ベスレヘム;伯利恒;베슬리헴; +city::5188843;Erie;City of Erie;ERI;Ehri;Eri;Erie;Iri;ayry;ayry pnslwanya;ayry pnsylwanya;eri;ili;yi li;Érié;Ēri;Ери;Ері;Ири;Эри;אירי;إيري;ایری;ایری، پنسلوانیا;ایری، پنسیلوانیا;エリー;伊利;이리; +city::5197079;Lancaster;LNS;Lancaster;Lankast"r;Lankaster;Lengeschder;laengkeoseuteo;lainkisatara;lamkestara;lan kai si te;lnkstr pnsylwanya;rankasuta;Ланкастер;Ланкастър;لنکاسٹر، پنسلوانیا;لنکاسٹر، پنسلوینیا;لنکستر، پنسیلوانیا;लँकेस्टर;ਲੈਂਕਿਸਟਰ;ランカスター;兰开斯特;랭커스터; +city::5197796;Levittown;Levittaun;Левиттаун; +city::5206379;Pittsburgh;Allegheny;Fort Dunmore;Fort Duquesne;Fort Pitt;Fort Trent;Gorad Pitsburg;PIT;Pitsb"rg;Pitsburg;Pitsburga;Pitsburgas;Pitsburgo;Pitsmpernk;Pitts-Bourg;Pittsbarig;Pittsburg;Pittsburgh;Pittsburgum;Pittsburq;The Manor of Pittsburgh;bytsbrgh;phitts beirk;pi ci bao;pi zi bao;picheubeogeu;pitasabaraga;pitsabarga;pitspark;pits‌barg;pittsubagu;pytsbrg pnsylwanya;pytsbwrg;Πίτσμπεργκ;Горад Пітсбург;Питсбург;Питсбърг;Питтсбург;Піттсбург;פיטסבורג;بيتسبرغ;پٹس برگ;پٹسبرگ;پیتسبرگ، پنسیلوانیا;पिट्सबर्ग;ਪਿਟਸਬਰਗ;பிட்ஸ்பர்க்;పిట్స్‌బర్గ్;ಪಿಟ್ಸ್‌ಬರ್ಗ್;พิตต์สเบิร์ก;ピッツバーグ;匹兹堡;匹茲堡;피츠버그; +city::5207728;Reading;Gorad Rehdyng;RDG;Reading;Reddin;Reding;leding;lei ding;redingu;rydyng pnsylwanya;rydyngh;Горад Рэдынг;Рединг;Редінг;ريدينغ;ریدینگ، پنسیلوانیا;ریڈنگ، پنسلوانیا;ریڈنگ، پنسلوینیا;レディング;雷丁;레딩; +city::5211303;Scranton;AVP;Capouse;Deep Hollow;Gorad Skrantan;Harrison;Scranton;Skranton;Skrantonas;Skrantun;Skrenton;Slocum Hollow;askrantwn pnsylwanya;seukeulaenteon;si ke lan dun;skrantwn;sqrntwn;sukuranton;Горад Скрантан;Скрантон;Скрантън;Скрентон;סקרנטון;اسکرانتون، پنسیلوانیا;سكرانتون;سکرانٹن;سکرانٹن، پنسلوانیا;スクラントン;斯克蘭頓;스크랜턴; +city::5221659;Cranston;Cranston;Kranston;Krehnston;Krenston;Mashapaug;Maushapogue;Maushapoque;ke lan si dun;kranstwn;kranstwn rwd aylnd;kuransuton;qrnstwn;Кранстон;Кренстон;Крэнстон;קרנסטון;كرانستون;کرانستون، رود آیلند;کرانسٹون، روڈ آئلینڈ;แครนสตัน;クランストン;克兰斯顿; +city::5223869;Pawtucket;Pawtucket;Potaket;bo ta ji te;bwtkyt;patakyt rwd aylnd;phxw thak ket;potaketto;Потакет;بوتكيت;پاتاکیت، رود آیلند;پوٹکیٹ، روڈ آئلینڈ;พอว์ทักเก็ต;ポータケット;波塔基特; +city::5224151;Providence;Gorad Providehns;PVD;Provedensos;Provid"ns;Providence;Providens;Providensa;Providensas;Providentia;Provintens;Provėdensos;brwfydns;peulobideonseu;phr x wi den s;piravitens;prabhidensa;pravidens;prawydns;probhidensa;provhidansa;prwbydns;prwwyڈns rwڈ aylynڈ;pu luo wei deng si;pu luo wei dun si;purobidensu;purovu~idensu;Πρόβιντενς;Горад Провідэнс;Провиденс;Провидънс;Провіденс;Փրովիդենս;פראווידענס;פרובידנס;بروفيدنس;پراویدنس;پروویڈنس;پروویڈنس، روڈ آئلینڈ;प्रभिदेन्स;प्राविडेन्स्;प्रॉव्हिडन्स;प्रोभिडेन्स;பிராவிடென்ஸ்;พรอวิเดนซ์;プロビデンス;プロヴィデンス;普洛威頓斯;普罗维登斯;프로비던스; +city::5225507;Warwick;Shawomet;Uorik;Vorik;Vorvik;Warwick;u~orikku;war wik;warwyk;waryk rwd aylnd;wo wei ke;wolig;wwryq;Ворвик;Ворік;Уорик;ווריק;وارويك;واروک، روڈ آئلینڈ;واریک، رود آیلند;วาร์วิก;ウォリック;沃威克;워릭; +city::5231851;Sioux Falls;FSD;Siou Fols;Sioux Falls;Siuks Fols;Su Fols;Su-Fols;Sufolsa;Sūfolsa;saywks falz;siyuka folsa;su fxls;su pholsa;su pu;suforuzu;supolseu;sw falz dakwtay jnwby;sw pwls;Σιου Φολς;Сиукс Фолс;Су Фолс;Су-Фолс;סו פולס;سايوكس فالز;سو فالز، داکوتای جنوبی;سیو فالز، جنوبی ڈکوٹا;सियुक फ़ॉल्स;सू फॉल्स;ซูฟอลส์;スーフォールズ;蘇瀑;수폴스; +city::5244080;Appleton;ATW;Aplton;Appleton;Epplton;ablytwn;aepeulteon;apltwn wyskansyn;appuruton;Аплтон;Епплтон;أبليتون;اپلتون، ویسکانسین;ایپلٹن، وسکونسن;ეპლტონი;アップルトン;애플턴; +city::5251436;Eau Claire;Clearwater;EAU;Eau Claire;Eauclaire;O Kler;O Kleras;O-Klehr;O-Kler;Oklera;Oklēra;Ou Kler;aw klyr;aww klyyr wskwnsn;aywklyr wyskansyn;okeulleeo;okurea;ou ke lei er;qing shui shi;О Клер;О-Клер;О-Клэр;Оу Клер;أو كلير;اوو کلیئر، وسکونسن;ایوکلیر، ویسکانسین;โอแคลร์;ო-კლერი;オークレア;歐克雷爾;清水市;오클레어; +city::5254962;Green Bay;GRB;Green Bay;Greenbay;Grijn Bej;Grin Bej;Grin Bejus;Grin Bey;Grin Bėjus;Grin-Bej;Nkrin Bei;ge lin bei;geulinbei;ghryn bay;grin-bei;grina be;gryn byy;gurinbei;kri nbey;Γκριν Μπέι;Грийн Бей;Грин Беј;Грин-Бей;Грін-Бей;Գրին Բեյ;גרין ביי;غرين باي;گرین بے، وسکانسن;گرین‌بی، ویسکانسین;ग्रीन बे;กรีนเบย์;გრინ-ბეი;グリーンベイ;格林贝;그린베이; +city::5257754;Janesville;Black Hawk;Dzejnsvil;Dzhejnsvil';Dzhejnsvill;E-nee-poro-poro;JVL;Janesville;jaynsfyl;jeinseubil;jeinsvili;jenzubiru;jnswyl wskwnsn;jynswyl wyskansyn;Џејнсвил;Джейнсвилл;Джейнсвіль;جاينسفيل;جنسویل، وسکونسن;جینسویل، ویسکانسین;ჯეინსვილი;ジェーンズビル;제인스빌; +city::5258393;Kenosha;ENW;Kenosa;Kenosha;Kenoša;Southport;kenosha;keonosya;knwsha wyskansyn;kynwsha;kynwsha wskwnsn;qnwsh;Кеноша;Կենոշա;קנושה;كينوشا;کنوشا، ویسکانسین;کینوشا، وسکونسن;კენოშა;ケノーシャ;커노샤; +city::5258957;La Crosse;Gateway City;LSE;La Crosse;La Kros;La-Kross;Lac Rosse;Lacrosse;Prairie La Crosse;Prairie la Crosse;la ke luo si;la kras wyskansyn;la krws wskwnsn;lakrws;rakurosu;Ла Крос;Ла-Кросс;لا کراس، ویسکانسین;لا کروس، وسکونسن;لاكروس;ლა-კროსი;ラクロス;拉克罗斯; +city::5261457;Madison;Gorad Madysan;MSN;Madison;Madisonas;Madisonia;Madisons;Madisun;Mantison;Medison;Medisona;Mehdison;madisan;madison;madisoni;madyswn;maediseun;mai di xun;maidisana;mdysn wyskansyn;mdyswn;medisana;metican;Μάντισον;Горад Мадысан;Мадисон;Мадисън;Медисон;Медісон;Мэдисон;Մեդիսոն;מדיסון;ماديسون;مدیسن، ویسکانسین;میڈیسن;میڈیسون، وسکونسن;माडिसन्;मॅडिसन;मेडिसन;मैडिसन;மேடிசன்;მადისონი;マディソン;麦迪逊;매디슨; +city::5263045;Milwaukee;Gorad Miluoki;Juneautown;Kilbourntown;MKE;Mahn-a-wau-kee Seepe;Mahn-a-wauk-ee See-pe;Mahn-a-waukee Seepe;Mahn-a-waukie;Mahn-ah-wauk Seepe;Mahnawauk;Man-a-wau-kee;Man-a-wauk-ee;Man-na-wah-kie;Mana'wa;Manawaki;Manawaukee;Manayaukee;Maunahwauke;Mee-lee-waug-ee;Meliki;Melleoki;Melwarik;Meneawkee;Meolaki;Mil-wah-kie;Milgouoki;Milioke;Millewacki;Millicki;Milo-aki;Milouagui;Milouakik;Milowages;Miluoki;Miluokʻi;Milvauchia;Milvoki;Milvokio;Milvokis;Milwacky;Milwahkie;Milwalka;Milwalky;Milwarck;Milwarik;Milwaucki;Milwaukee;Milwaukie;Minewaki;Miniaki;Minnawack;Winnipesaukee;mi er wo ji;mil wxki;mil-woki;mila'oyaki;milavoki;miluokʼi;milvaki;milvakki;milvauki;miruu~oki;mlwaky;mylwaky;mylwaky wyskansyn;mylwwqy;Μιλγουόκι;Горад Мілуокі;Милвоки;Милуоки;Мілуокі;Միլուոքի;מילוואקי;מילווקי;ملواکی;ميلواكي;میلواکی، ویسکانسین;मिलवॉकी;मिल्वौकी;মিলওয়াকি;மில்வாக்கி;మిల్వాకీ;ಮಿಲ್ವಾಕೀ;มิลวอกี;მილუოკი;ミルウォーキー;密尔沃基;密爾沃基;밀워키; +city::5264870;North La Crosse;; +city::5265838;Oshkosh;Algoma;Brooklyn;OSH;Oshkosh;Oskosh;Sawdust City;ashkwsh wyskansyn;ausakosa;awshkwsh;awshkwsh wskwnsn;oshukoshu;Ошкош;אושקוש;أوشكوش;اشکوش، ویسکانسین;اوشکوش، وسکونسن;औशकोश;ოშკოში;オシュコシュ; +city::5268249;Racine;Kipikawi;Port Gilbert;RAC;Racine;Rasijn;Rasin;Rasinas;la xin;leosin;rashin;rasini;rasyn;rasyn wskwnsn;rysyn wyskansyn;Расийн;Расин;Расін;ראסין;راسين;راسین، وسکونسن;ریسین، ویسکانسین;რასინი;ラシーン;拉辛;러신; +city::5278052;Waukesha;Prairieville;UES;Uokesho;Uokisha;Vokesha;Vokisha;Waukesha;u~okisho;wakysha wyskansyn;wawkysha wskwnsn;wkysha;Вокеша;Вокиша;Уокешо;Уокиша;واوکیشا، وسکونسن;واکیشا، ویسکانسین;وكيشا;უოკეშო;ウォキショー; +city::5278420;West Allis;Vest Alis;alys ghrby wyskansyn;wyst alys;Вест Алис;آلیس غربی، ویسکانسین;ويست أليس;ویسٹ الیس، وسکونسن;უესტ-ალისი; +city::5282804;Bridgeport;BDR;Bricport;Bridgeport;Bridzhport;Bridzport;Bridzporta;Bridzportas;Bridžporta;Bridžportas;Gorad Brydzhpart;Newfield;Park City;Stratfield;beulijipoteu;brijaporta;brydgpwrt;brydjbwrt;bryjpwrt kntykt;bu li qi bo te;burijjipoto;Бриджпорт;Бриџпорт;Бріджпорт;Горад Брыджпарт;ברידגפורט;برج پورٹ، کنیکٹیکٹ;بريدجبورت;بریجپورت، کنتیکت;ब्रिजपोर्ट;ブリッジポート;布里奇波特;브리지포트; +city::5282835;Bristol;Bristol;Bristol';Bristul;Mixville Brook;beuliseuteul;bristala;brystwl;brystwl kntykt;bu li si tuo er;burisutoru;Бристол;Бристоль;Бристъл;برسٹل، کنیکٹی کٹ;بريستول;بریستول، کنتیکت;ब्रिस्टल;ブリストル;布里斯托尔;브리스틀; +city::5287262;Buckeye;BXK;Bakaj;Buckeye;Bukaj;Sydney;ba ke ai;baka'a'i;bakay aryzwna;bakyy;bkayy ayryzwna;Бакай;Бакај;Бъкай;باكيي;باکای، آریزونا;بکآئی، ایریزونا;बकआइ;巴克艾; +city::5288636;Casa Grande;CGZ;Casa Grande;Casagrande;Kasa Grand;Kasa Grande;Kasa-Grande;ka sa ge lan de;kaesageulaendi;kasa gryanda;kaza ghrandy;kaza grandh;Каса Гранд;Каса Гранде;Каса-Гранде;كازا غراندي;کازا گرانده;कासा ग्र्यान्ड;卡萨格兰德;캐사그랜디; +city::5288661;Casas Adobes;Casas Adobes;Kasas Adobes;Kazas-Edobs;kasas adwbz;kasas edobej;Казас-Едобс;Касас Адобес;كاساس أدوبز;कासास् एडोबेज्; +city::5288786;Catalina Foothills;Catalina Foothills; +city::5289282;Chandler;Candler;Candleris;Chandler;Chandler Junction;Chandlur;chaendeulleo;chandora;chndlr aryzwna;cyandlara;qian de lei;tshandlr;Çandler;Čandleris;Чандлер;Чандлър;تشاندلر;چانڈلر، ایریزونا;چندلر، آریزونا;च्यान्ड्लर;チャンドラー;钱德勒;챈들러; +city::5294810;Flagstaff;FLG;Flagstaf;Flagstaff;Flankstaf;Flegstaff;Kinlani;Kinłání;Milltown;Skylight City;flaghstaf;flgstf aryzwna;fu la ge si ta fu;furaggusutaffu;peullaegeuseutaepeu;phlegastapha;phlyagastapha;plgstp;Φλάγκσταφ;Флагстаф;Флагстафф;Флегстафф;פלגסטף;فلاغستاف;فلگستف، آریزونا;فلیگ سٹاف، ایریزونا;फ्लॅगस्टाफ;फ्ल्यागस्टाफ;แฟลกสแตฟฟ์;ፍላግስታፍ፥ አሪዞና;フラッグスタッフ;弗拉格斯塔夫;플래그스태프; +city::5295903;Gilbert;Gilbert;Gilbertas;Gilburt;gilbarta;gilbeoteu;girubato;gylbrt;gylbrt aryzwna;ji er bo te;Гилберт;Гилбърт;Гілберт;גילברט;گلبرٹ، ایریزونا;گیلبرت، آریزونا;गिल्बर्ट;ギルバート;吉尔伯特;길버트; +city::5295985;Glendale;Glendale;Glendeilas;Glendejl;Gorad Glendehjl;Nklenteil;Qlendeyl;ge lan dai er;geullendeil;ghlandyl;glenadela;glndyl aryzwna;glndyyl;gurenderu;Γκλέντεϊλ;Глендейл;Глендејл;Горад Глендэйл;גלנדייל;غلانديل;گلندیل، آریزونا;گلنڈیل، ایریزونا;ग्लेनडेल;グレンデール;格蘭岱爾;글렌데일; +city::5296266;Goodyear;Egypt;GYR;Goodyear;Goodyear Farms;Gudier;Gudir;Gudiur;Gudjer;ghwdyyr;gudayara;guddoiya;gwdyr aryzwna;jia nian;Гудиер;Гудиър;Гудїр;Гудјер;غوديير;گودیر، آریزونا;گڈایر، ایریزونا;गूडयर;グッドイヤー;嘉年; +city::5301388;Lake Havasu City;HII;Lejk Khavasu Siti;Lejk-Gavasu-Siti;Lejk-Khavasu-Siti;ha wa su hu cheng;leikeuhaebeosusiti;leka habhasu siti;lyk hafasw syty;lyk hawasw syty aryzwna;reikuhabasushiti;Лейк Хавасу Сити;Лейк-Гавасу-Сіті;Лейк-Хавасу-Сити;Лејк Хавасу Сити;לייק האווסו סיטי;ليك هافاسو سيتي;لیک هاواسو سیتی، آریزونا;لیک ہاواسو سٹی، اریزونا;लेक हभासु सिटी;レイクハバスシティ;哈瓦苏湖城;레이크해버수시티; +city::5304391;Mesa;Gorad Mesa;Hayden;MSC;Mejsa;Mesa;Mesa City;Zenos;me sa;mei sa;mesa;msh;mysa;mysa ayryzwna;myza;Μέσα;Горад Меса;Мейса;Меса;Մեսա;מסה;ميسا;میزا;میسا، ایریزونا;मेसा;মেসা;เมซา;მესა;メサ;梅薩;메사; +city::5308480;Peoria;Peori;Peoria;Peorija;Piorija;bywrya;pe'oriya;pi ao li ya;pioria;pywrya aryzwna;pywrya ayryzwna;Пеори;Пеория;Пиорија;Піорія;بيوريا;پیوریا، آریزونا;پیوریا، ایریزونا;पेओरिया;ピオリア;皮奧里亞; +city::5308655;Phoenix;East Phoenix;Feniks;Fenikso;Finiks;Finiksa;Finiksas;Finiksos;Foinix;Féniks;Fīniksa;Gorad Finiks;Hellings Mill;Hoozdoh;Mill City;PHX;Peniki;Phenix;Phoeniks;Phoenix;Pumpkinsville;Pēniki;Salt River;Smith Station;Smith Station Phenix;Smiths Station;feng huang cheng;fenikkusu;finikasa;finiks;finiksa;fynks;fynyks;fynyks aryzwna;phiniks;phiniks nagaram;phiniksa;pinigseu;piniks;piniksi;pnyqs;pynyqs;Φοίνιξ;Горад Фінікс;Финикс;Фінікс;Ֆինիքս;פיניקס;פניקס;فينيكس;فینکس;فینیکس، آریزونا;फ़ीनिक्स;फिनिक्स;फिनिक्स्;फीनिक्स;ফিনিক্স;ਫ਼ੀਨਿਕਸ;பீனிக்ஸ்;ఫీనిక్స్ నగరం;ಫೀನಿಕ್ಸ್;ഫീനിക്സ്;ฟีนิกซ์;ფინიქსი;ፊኒክስ፥ አሪዞና;フェニックス;凤凰城;鳳凰城;피닉스; +city::5313457;Scottsdale;SCF;Scottsdale;Skotsdejl;Skottsdejl;seukocheudeil;si ke ci dai er;skatasdela;skatzdyl aryzwna;skwtsdyl;sqwtsdyyl;sukottsuderu;Скотсдейл;Скотсдејл;Скоттсдейл;סקוטסדייל;سكوتسديل;سکاتزدیل، آریزونا;سکاٹسڈیل، ایریزونا;स्कटस्डेल;スコッツデール;斯科茨代爾;스코츠데일; +city::5316428;Surprise;Ennis;Serprajz;Sjurprajz;Sjurpriz;Surprajz;Surprise;sapuraizu;sarpra'ija;se pu lai si;seopeulaijeu;swpryyz;swrbrayz;swrprayz aryzwna;Серпрайз;Сурпрајз;Сърпрайз;Сюрпрайз;Сюрприз;סופרייז;سوربرايز;سورپرایز، آریزونا;सर्प्राइज;サプライズ;瑟普赖斯;서프라이즈; +city::5317058;Tempe;Butte City;Haydens Butte;Haydens Ferry;Haydens Mill;San Pablo;Tempe;Tempi;tan pei;tempe;tempi;tenpi;tmb;tmpy aryzwna;Темпе;Темпи;Темпі;تمب;تمپی، آریزونا;ٹیمپے، ایریزونا;तेम्पे;テンピ;坦佩;템피; +city::5317071;Tempe Junction;; +city::5318313;Tucson;Fucson;Gorad Tusan;Lucson;San Casme del Tucson;TUS;Takson;Teuson;Toison;Touson;Tucson;Tuczon;Tugson;Tuguison;Tuison;Tuksonas;Tulquson;Tuozon;Tuquisson;Tuqulson;Tuson;Tusona;Tūsona;taksana;thu sxn;tsuson;tu sen;tusana;tuson;tusona;twsan;twswn;tʼusoni;Τουσόν;Горад Тусан;Тусон;Թուսոն;טוסון;توسان;توسون;ٹوسان، ایریزونا;टक्सन;तुसॉन;টুসান;ทูซอน;ტუსონი;ツーソン;图森;투손; +city::5322053;Yuma;Arizona;Arizona City;Colorado City;Doonysio;Juma;La Purisima Concepcion;Pueblo de la Concepcion;Puutsiyumah;San Dionisio;San Dionysio;YUM;Yuma;Yuma City;Yumas;you ma;yuma;ywma;ywma aryzwna;ywma ayryzwna;ywmh;Јума;Юма;יומה;يوما;یوما، آریزونا;یوما، ایریزونا;युमा;ዩማ፥ አሪዞና;ユマ;尤馬; +city::5322737;Alameda;Alameda;Alamida;Alaminta;a la mi da;aelleomida;alamda kalyfrnya;alameda;alamyda;arameda;Αλαμήντα;Аламеда;Аламида;آلامدا، کالیفرنیا;ألاميدا;अलामेदा;アラメダ;阿拉米達;앨러미다; +city::5323060;Alhambra;Al'gambra;Algambra;Alhambra;Alkhambra;a han bu la;alhambra;alhambra kalyfrnya;alhmra kylyfwrnya;el'hambra;Алгамбра;Алхамбра;Альгамбра;آلهامبرا، کالیفرنیا;ألهامبرا;الحمرا، کیلیفورنیا;الہامبرا;एल्हाम्ब्रा;阿罕布拉; +city::5323163;Aliso Viejo;Aliso Viekho;Aliso Vijekho;alysw fyjw;alysw wyjw kalyfrnya;eliso bhiyo;ya li suo wei ye he;Алисо Виехо;Алисо Вијехо;آلیسو ویجو، کالیفرنیا;أليسو فيجو;एलिसो भियो;アリソ・ビエホ;亚里索维耶荷; +city::5323810;Anaheim;ANA;Anachaim;Anahaima;Anahaym;Anaheim;Anaheimas;Anakhajm;Campo Aleman;Gorad Anakhajm;a na hai mu;aeneohaim;an na han;anahaimi;anahaimu;anahaym;anahaym kalyfrnya;enaha'ima;Άναχαϊμ;Анахайм;Анахајм;Горад Анахайм;Անահայմ;אנאהיים;אנהיים;آناهايم;آناهایم، کالیفرنیا;اناہیم، کیلیفورنیا;ایناہیم;अ‍ॅनाहाइम;एनाहाइम;ანაჰაიმი;アナハイム;安那罕;阿納海姆;애너하임; +city::5324200;Antioch;Antioch;Antiocheia;Antiok;Antiokas;East Antioch;Marshs Landing;Smith's Landing;an tiao ke;antiokku;antywch kalyfrnya;antywk;entiyaka;Αντιόχεια;Антиок;Антиоч;آنتیوچ، کالیفرنیا;أنتيوك;اینٹیوخ;एन्टियक;アンティオック;安條克; +city::5324363;Apple Valley;APV;Apple Valley;Apul Vali;Epl Vali;abbl faly;aepeulbaelli;apl wly kalyfrnya;aypl wyly kylyfwrnya;eppala bhyali;ping guo gu;Апъл Вали;Епл Вали;أببل فالي;اپل ولی، کالیفرنیا;ایپل ویلی، کیلیفورنیا;एप्पल भ्याली;苹果谷;애플밸리; +city::5324477;Arcadia;Arkadija;Arkejdija;akeidia;arkadiya;arkadya;arkadya kalyfrnya;ya kai di ya;Аркадия;Аркадія;Аркејдија;آرکادیا، کالیفرنیا;آرکیڈیا، کیلیفورنیا;أركاديا;आर्काडिया;亞凱迪亞;아케이디아; +city::5325738;Bakersfield;Alkali City;BFL;Baker's Field;Bakersfield;Beikersfilda;Beikersfildas;Beikersfilnt;Beikersfīlda;Bejkersfild;Bejkursfijld;Beykersfild;Kern Island;bei ke si fei er de;beikeojeupildeu;bekarsaphilda;bekazufirudo;bykrsfyld;bykrzfyld kalyfrnya;byyqrspyld;Μπέικερσφιλντ;Бейкерсфилд;Бейкерсфілд;Бейкърсфийлд;Бејкерсфилд;Բեյկերսֆիլդ;בייקרספילד;بيكرسفيلد;بیکرزفیلد، کالیفرنیا;بیکرزفیلڈ;بیکرزفیلڈ، کیلیفورنیا;बेकर्सफिल्ड;बेकर्सफील्ड;ბეიკერსფილდი;ベーカーズフィールド;贝克斯菲尔德;베이커즈필드; +city::5325866;Baldwin Park;Baldwin Park;Bolduin Park;Bolduin-Park;Boldvin Park;Boldvin-Park;baldavina parka;baldwyn bark;baldwyn park kalyfrnya;bao de wen gong yuan;Болдвин Парк;Болдвін-Парк;Болдуин Парк;Болдуин-Парк;بالدوين بارك;بالدوین پارک، کالیفرنیا;بالڈون پارک، کیلیفورنیا;बाल्डविन पार्क;鲍德温公园; +city::5327422;Bellflower;Belflauer;Belflauur;Bellflauehr;Bellflaver;Bellflower;Somerset;bei er fu lao er;belaphlavara;belpeullawo;berufurawa;blflawr kalyfrnya;bylflawr kylyfwrnya;bylflawyr;Беллфлавер;Беллфлауэр;Белфлауер;Белфлауър;بلفلاور، کالیفرنیا;بيلفلاوير;بیلفلاور، کیلیفورنیا;बेलफ्लावर;ベルフラワー;贝尔弗劳尔;벨플라워; +city::5327684;Berkeley;Berkeleia;Berkeley;Berkli;Berklis;Burkli;Bērkli;Gorad Berkli;JBK;bakure;bakuri;barkali;barkeli;barkli;beokeulli;bo ke li;brkly kalyfrnya;brqly;byrkyly;Беркли;Берклі;Бъркли;Горад Берклі;ברקלי;برکلی، کالیفرنیا;برکلے;بيركيلي;बर्कली;बर्केली;बर्क्ली;ბერკლი;バークリー;バークレー;伯克利;버클리; +city::5330413;Boyle Heights;; +city::5330642;Brentwood;Brentud;Brentvud;beulenteuudeu;brentavuda;brnt wwd kalyfrnya;bryntwwwd;bu lun te wu de;burentoudo;Брентвуд;Брентуд;برنت وود، کالیفرنیا;برينتووود;برینٹووڈ، کیلیفورنیا;ब्रेन्टवूड;ブレントウード;布伦特伍德;브렌트우드; +city::5331575;Buena Park;Buehna-Park;Buena Park;Buenapark;Northam;buenapaku;buyana parka;bwyna bark;bwyna park;bywna park kalyfrnya;pu an na gong yuan;Буена Парк;Буэна-Парк;بوينا بارك;بوینا پارک;بیونا پارک، کالیفرنیا;बुयना पार्क;ブエナパーク;普安那公园; +city::5331835;Burbank;B"rbank;BUR;Berbank;Berbanka;Berbankas;Bermpan'k;Burbank;Bērbanka;babanku;barbyanka;beobaengkeu;bo ban ke;brbank;brbnk;brbnk kalyfrnya;brbnq;brbynk kylyfwrnya;Μπέρμπανκ;Бербанк;Бърбанк;Բըրբանք;ברבנק;بربانك;بربنک;بربنک، کالیفرنیا;بربینک، کیلیفورنیا;बर्ब्याङ्क;เบอร์แบงก์;バーバンク;伯班克;버뱅크; +city::5333180;Camarillo;Camarillo;Camarillo Station;Kamaril'jo;Kamaril'o;Kamarilo;Pleasant Valley;ka ma li ao;kaemeolillo;kamariro;kamarylw;kamarylw kalyfrnya;kyamarillo;Камарило;Камарильо;Камарільйо;كاماريلو;کاماریلو، کالیفرنیا;क्यामारिल्लो;カマリロ;卡马里奥;캐머릴로; +city::5333913;Canoga Park;Canoga Park;Owensmouth; +city::5334223;Carlsbad;Carlsbad;Frazier's Station;Karlsbad;ka er si ba de;kaljeubaedeu;karlsabada;karlsbad;karls‌bd kalyfrnya;karusubaddo;Карлсбад;كارلسباد;کارلزبیڈ;کارلس‌بد، کالیفرنیا;कार्ल्सबाद;คาร์ลสแบด;カールスバッド;卡尔斯巴德;칼즈배드; +city::5334336;Carmichael;Karmajkl;Karmajkul;karmisela;Кармайкл;Кармайкъл;Кармајкл;कार्मिशेल; +city::5334519;Carson;Carson;Karson;Karsun;Lungsod ng Carson;ka sen;karsana;karsn;karswn;karswn kalyfrnya;kaseun;kason;Κάρσον;Карсон;Карсън;كارسون;کارسن;کارسون، کالیفرنیا;कार्सन;カーソン;卡森;카슨; +city::5334928;Castro Valley;Castro Valley;Kastro Vali;kaeseuteulobaelli;kyastro bhyali;Кастро Вали;क्यास्ट्रो भ्याली;캐스트로밸리; +city::5335006;Cathedral City;Katidral Siti;Katidral-Siti;Kutidrul Siti;Lungsod ng Cathedral;da jiao tang cheng;kathydral syty;ktdral syty kalyfrnya;kyathedrala siti;Катидрал Сити;Катидрал-Сити;Кътидръл Сити;كاثيدرال سيتي;کتدرال سیتی، کالیفرنیا;क्याथेड्रल सिटी;大教堂城; +city::5336269;Chico;CIC;Chico;Chiko;chiko;chykw;chykw kalyfrnya;ciko;qi ke;tshykw;Чико;Чіко;Չիքո;تشيكو;چیکو;چیکو، کالیفرنیا;चिको;チコ;奇科;치코; +city::5336537;Chino;CNO;Chino;chino;chynw;chynw kalyfrnya;qi nuo;sino;tshynw;Чино;Чіно;تشينو;چینو;چینو، کالیفرنیا;शिनो;チノ;奇诺;치노; +city::5336545;Chino Hills;; +city::5336899;Chula Vista;Chula Vista;Chula-Vista;Chulavista;Cula Vista;chullabiseuta;churabisuta;chwla wsta;chwla wysta kalyfrnya;cula bhista;qiu la wei si ta;tshwla fysta;zwlh wysth;Čula Vista;Чула Виста;Чула-Виста;Чула-Віста;צולה ויסטה;تشولا فيستا;چولا وستا;چولا ویستا، کالیفرنیا;चुला भिस्टा;チュラビスタ;丘拉維斯塔;출라비스타; +city::5337561;Citrus Heights;Citrus Heights;Sitrus Khajts;gan ju gao de;sa'itrasa ha'itsa;sytrws hayts kalyfrnya;sytrws hyayts;Ситрус Хајтс;Ситръс Хайтс;سيتروس هيايتس;سٹرس ہائٹس;سیتروس هایتس، کالیفرنیا;साइट्रस हाइट्स;柑橘高地; +city::5338122;Clovis;Clovis;Klovis;ke luo wei si;keullobiseu;klobhisa;klwfys;klwws;klwwys kalyfrnya;kurovu~isu;Кловис;كلوفيس;کلووس;کلوویس، کالیفرنیا;क्लोभिस;クローヴィス;克洛维斯;클로비스; +city::5338783;Colton;Kolton;Koltun;ke er dun;koltana;kolteon;kwltwn;kwltwn kalyfrnya;Колтон;Колтън;كولتون;کولتون، کالیفرنیا;کولٹن، کیلیفورنیا;कोल्टन;科尔顿;콜턴; +city::5339066;Compton;Compton;Kompton;Komptun;kamptana;kamptwn kalyfrnya;kang pu dun;kompeuteon;konputon;kwmbtwn;qwmptwn;Комптон;Комптън;קומפטון;كومبتون;کامپتون، کالیفرنیا;کامپٹن، کیلیفورنیا;کیمپٹن;कम्प्टन;コンプトン;康普顿;콤프턴; +city::5339111;Concord;CCR;Concord;Drunken Indian;Konkord;Todos Santos;kang ke de;kankarda;kankwrd kalyfrnya;konkodo;kwnkwrd;qwnqwrd;Конкорд;קונקורד;كونكورد;کانکورد، کالیفرنیا;کونکورڈ;کونکورڈ، کیلیفورنیا;कन्कर्ड;コンコード;康科德; +city::5339631;Corona;Circle City;Corona;Korona;South Riverside;ke luo na;kolona;korona;kwrwna;kwrwna kalyfrnya;Корона;كورونا;کورونا;کورونا، کالیفرنیا;कोरोना;コロナ;科洛納;코로나; +city::5339840;Costa Mesa;Costa Mesa;Costa Mesa (Orange County);Fairview;Goat Hill;Harper;Kosta Mesa;Kosta-Mesa;Thurin;ke si ta mei sa;kosta mesa;kosutamesa;kwsta msa kalyfrnya;kwsta mysa;Коста Меса;Коста-Меса;كوستا ميسا;کوستا مسا، کالیفرنیا;کوسٹا میسا;कोस्टा मेसा;コスタメサ;科斯塔梅薩; +city::5341145;Cupertino;Cupertino;Kupertino;ku bi di nuo;kupachino;kupartino;kupeotino;kwbyrtynw;kwprtynw kalyfrnya;kyuparatino;qwprtynw;Купертино;Купертіно;קופרטינו;كوبيرتينو;کوپرتینو، کالیفرنیا;کپرٹینو;कुपर्तिनो;कूपर्टीनो;क्युपरटिनो;クパチーノ;庫比蒂諾;쿠퍼티노; +city::5341430;Daly City;Daly City;Dalyurbo;Dejli Siti;Dejli-Siti;Lungsod ng Daly;Thanh pho Daly;Thành phố Daly;dai li cheng;daly syty;deillisiti;deirishiti;deli siti;dyly syty kalyfrnya;Дейли Сити;Дейли-Сити;Дејли Сити;دالي سيتي;دیلی سیتی، کالیفرنیا;ڈالی سٹی;ڈالی سٹی، کیلیفورنیا;डेली सिटी;デイリーシティ;戴利城;데일리시티; +city::5341704;Davis;Davies;Davis;Davisville;Dejvis;Devis;dafys;dai wei si;debhisa;deibiseu;deibisu;dywys kalyfrnya;Девіс;Дейвис;Дејвис;دافيس;دیویس، کالیفرنیا;ڈیوس، کیلیفورنیا;डेभिस;デイビス;戴維斯;데이비스; +city::5342485;Delano;Delano;Delejno;de la nuo;delyano;dlanw kalyfrnya;dylanw;Делано;Делејно;دلانو، کالیفرنیا;ديلانو;डेल्यानो;德拉诺; +city::5342992;Diamond Bar;Dajmond Bar;Dajmond-Bar;Dajmund Bar;dayamanda bara;dyamwnd bar;dyamwnd bar kalyfrnya;zuan shi ba;Даймонд-Бар;Даймънд Бар;Дајмонд Бар;دياموند بار;دیاموند بار، کالیفرنیا;डायमन्ड बार;钻石吧; +city::5343858;Downey;Dauni;Daunis;Davni;Downey;da'uni;dauni;dawny;dwny kalyfrnya;tang ni;Давні;Дауни;داوني;دونی، کالیفرنیا;ڈاؤنی;डाउनी;ダウニー;唐尼;다우니; +city::5344157;Dublin;Amador;Dablin;Dougherty's Station;Dublin;dablina;deobeullin;dou bo lin;dwblyn;dwblyn kalyfrnya;Даблин;Дублин;Дублін;Дъблин;دوبلين;دوبلین، کالیفرنیا;ڈبلن، کیلیفورنیا;डब्लिन;都伯林;더블린; +city::5344994;East Los Angeles;East Los Angeles;Este de Los Angeles;Este de Los Ángeles;Ist Los Andzeles;Orienta Losangeleso;Orienta Losanĝeleso;dong luo shan ji;iseuteuloseuaenjelleseu;ista lasa enjelsa;isutorosanzerusu;Ист Лос Анџелес;इस्ट लस एन्जेल्स;イーストロサンゼルス;东洛杉矶;이스트로스앤젤레스; +city::5345529;El Cajon;CJN;Ehl'-Kakhon;El Cajon;El Cajón;El Kakhon;Elcajon;ai er ka hong;al kajwn;al kajwn kalyfrnya;alkahwn;ela kyayom;elkahon;erukahon;Ел Кахон;Эль-Кахон;ال کاجون;ال کاجون، کالیفرنیا;الكاهون;एल क्यायों;エルカホン;埃尔卡洪;엘카혼; +city::5345743;El Monte;EMT;Ehl'-Monte;El Monte;El Monti;El Montė;Elmonte;Monte;ai er meng de;al mwnth kalyfrnya;al mwnty;ela monte;erumonte;Ел Монте;Ел Монти;Эль-Монте;إل مونتي;ال مونته، کالیفرنیا;ال مونٹی;एल मोन्ते;エルモンテ;艾爾蒙地; +city::5346111;Elk Grove;Ehlk-Grov;Elk Grouv;Elk Grove;Elk-Grouv;Elkgrove;ai er ke ge luo fu;al kgrww kalyfrnya;alk ghrwfy;alk grww;elka grobha;elkeugeulobeu;erukugurobu;Елк Гроув;Елк-Ґроув;Элк-Гров;إلك غروفي;ال کگروو، کالیفرنیا;الک گروو;एल्क ग्रोभ;エルクグローブ;埃爾克格羅夫;엘크그로브; +city::5346646;Encinitas;Ehnsinitas;Encenitos;Encinitas;Encinitos;Ensinitas;ansynytas;ansynytas kalyfrnya;en xi ni ta si;ensinitasa;ensiniteoseu;Енсинитас;Енсінітас;Энсинитас;إنسينيتاس;انسینیتاس، کالیفرنیا;एन्सिनितास;恩西尼塔斯;엔시니터스; +city::5346827;Escondido;Apex;Ehskondido;Escondido;Eskondidas;Eskondido;ai si kong di duo;askandydw kalyfrnya;askwndydw;eseukondido;eskandido;esukondido;Ескондидо;Эскондидо;إسكونديدو;اسکاندیدو، کالیفرنیا;اسکونڈیڈو;एस्कन्डिडो;エスコンディード;埃斯孔迪多;에스콘디도; +city::5347335;Fairfield;Fairfield;Fehrfild;Fejrfild;Ferfild;Ferfildas;Feurfijld;SUU;feafirudo;fei er fei er de;fyrfyld;fyrfyld kalyfrnya;peeopildeu;pheyaraphilda;Фейрфілд;Ферфилд;Феърфийлд;Фэрфилд;فئرفیلڈ;فيرفيلد;فیئرفیلڈ، کیلیفورنیا;فیرفیلد، کالیفرنیا;फेयरफिल्ड;フェアフィールド;費爾菲爾德;페어필드; +city::5349705;Folsom;Folsom;Folsom City;Folsum;fu sen;fwlswm;fwlswm kalyfrnya;pholsama;Фолсом;Фолсъм;فولسوم;فولسوم، کالیفرنیا;फोल्सम;佛森; +city::5349755;Fontana;Fontana;Rosena;fang ta na;fontana;fwntana;fwntana kalyfrnya;phontana;pontaena;Фонтана;فونتانا;فونتانا، کالیفرنیا;فونٹانا;فونٹانا، کیلیفورنیا;फोन्टाना;フォンタナ;方塔納;폰태나; +city::5350207;Fountain Valley;Fauntin Vali;Fauntun Vali;Fountain Valley;Talbert;fang quan gu;fantyn wly kalyfrnya;fwwntyn faly;pauntinbaelli;pha'untena bhyali;Фаунтин Вали;Фаунтън Вали;فانتین ولی، کالیفرنیا;فوونتين فالي;फाउन्टेन भ्याली;芳泉谷;파운틴밸리; +city::5350734;Fremont;Centerville;Centreville;Fremont;Fremontas;Frimont;Hardscrabble;Irvington;Mission San Jose;Nikes;Warm Springs;fei li meng;frymant kalyfrnya;frymwnt;furimonto;peulimonteu;phremonta;phrimamta;prymwnt;Фремонт;Фримонт;פרימונט;فريمونت;فریمانت، کالیفرنیا;فریمونٹ;فریمونٹ، کیلیفورنیا;फ्रिमाँट;फ्रेमोन्ट;フリーモント;費利蒙;프리몬트; +city::5350937;Fresno;FAT;Fraxinus;Fresnas;Fresno;Fresno i California;Frezno;Gorad Frehsna;fers no;frnsw kylyfwrnya;frynsw;frysnw;frznw;fu lei si nuo;furezuno;peulejeuno;phresano;phresno;presno;prznw;Φρέσνο;Горад Фрэсна;Фрезно;Фресно;Ֆրեզնո;פרזנו;فرزنو;فرنسو، کیلیفورنیا;فريسنو;فرینسو;फ्रेस्नो;ফ্রেসনো;เฟรสโน;ფრესნო;フレズノ;弗雷斯诺;프레즈노; +city::5351247;Fullerton;FUL;Fulerton;Fulertonas;Fullerton;Fulurtun;fu lei dun;furaton;fwlrtwn kalyfrnya;fwlyrtwn;phularatana;Фулертон;Фуллертон;Фулъртън;فلرٹن;فلرٹن، کیلیفورنیا;فولرتون، کالیفرنیا;فوليرتون;फुलरटन;フラートン;富勒顿; +city::5351515;Garden Grove;Garden Grouv;Garden Grov;Garden Grovas;Garden Grove;Garden-Grov;Gardengrove;Gardun Grouv;gadengurobu;gadeungeulobeu;gardena grobha;gardn grww kalyfrnya;ghardyn ghrwfy;jia deng ge luo fu;Гарден Гров;Гарден Гроув;Гарден-Гров;Гардън Гроув;غاردين غروفي;گاردن گروو، کالیفرنیا;گارڈن گروو;गार्डेन ग्रोभ;ガーデングローブ;加登格羅夫;가든그로브; +city::5351549;Gardena;Gardena;Gardina;gadena;gardena;gardna kalyfrnya;ghardyna;jia di na;Гардена;Гардина;غاردينا;گاردنا، کالیفرنیا;गार्डेना;ガーデナ;加迪纳;가데나; +city::5352214;Gilroy;Gilroj;Gilroy;Pleasant Valley;ghylrwy;gilro'i;giruroi;glrwy kylyfwrnya;gylrwy kalyfrnya;ji er luo yi;Гилрой;Гилрој;Гілрой;غيلروي;گلروی، کیلیفورنیا;گیلروی، کالیفرنیا;गिल्रोइ;ギルロイ;吉尔罗伊; +city::5352423;Glendale;Glendale;Glendeilas;Glendejl;Glendel;Gorad Glendehjl;JGX;Mason;Riverdale;ge lun dai er;geullendeil;ghlyndyl;glenadela;glndyl;glndyyl;gurenderu;Глендейл;Глендејл;Горад Глендэйл;Ґлендейл;Գլենդել;גלנדייל;غلينديل;گلندیل;گلینڈیل;ग्लेनडेल;グレンデール;格倫代爾;글렌데일; +city::5352439;Glendora;Glendora;ge lun duo la;ghlyndwra;glenadora;glndwra kalyfrnya;Глендора;غليندورا;گلندورا، کالیفرنیا;ग्लेनडोरा;格伦多拉; +city::5354819;Hacienda Heights;Khacijenda Khajts;asiendahaicheu;asynda hayts kalyfrnya;ha xian da gang;hyasi'enda ha'itsa;Хацијенда Хајтс;آسیندا هایتس، کالیفرنیا;ह्यासिएन्डा हाइट्स;哈仙達崗;아시엔다하이츠; +city::5355180;Hanford;Hanford;Khanford;Khehnford;Khenford;haenpeodeu;han fu de;hanfodo;hanfwrd;hyanapharda;Ханфорд;Хенфорд;Хэнфорд;هانفورد;ह्यानफर्ड;ハンフォード;汉福德;핸퍼드; +city::5355828;Hawthorne;HHR;Hawthorne;Khotorn;hahtharna;hawthwrny;hawtwrn;hoson;huo sang;Хоторн;هاوتورن;هاوثورني;ہاتھورن;ہاوتھرون، کیلیفورنیا;हःथर्न;ホーソーン;霍桑;호손; +city::5355933;Hayward;Gejvard;HWD;Hayward;Hayward Station;Hayward's;Haywards;Haywards Station;Haywood;Heivordas;Kheju"rd;Khejvard;hai wo de;hayward;heiwado;heiwodeu;hevarda;hywrd kalyfrnya;Гейвард;Хейвард;Хейуърд;Хејвард;هايوارد;هیورد، کالیفرنیا;ہےوارڈ;हेवार्ड;ヘイワード;海沃德;헤이워드; +city::5356277;Hemet;HMT;Hemet;Hemicia;Khemet;he mi te;hemeta;hmt kalyfrnya;hymyt;Хемет;همت، کالیفرنیا;هيميت;ہیمٹ;ہیمٹ، کیلیفورنیا;हेमेट;赫米特; +city::5356576;Hesperia;Hesperia;Khespirija;heseupelia;hespariya;hsprya kalyfrnya;hysbyrya;xi si pi li ya;Хеспирия;Хеспирија;هسپریا، کالیفرنیا;هيسبيريا;ہسپیریا;हेस्परिया;希斯皮里亚;헤스페리아; +city::5356868;Highland;Highland;Highlands;Khajland;ha'ilyanda;hai lan;haillaendeu;hayland;haylnd kalyfrnya;Хайланд;Хајланд;هايلاند;هایلند، کالیفرنیا;हाइल्यान्ड;海兰;하일랜드; +city::5358705;Huntington Beach;Gantington-Bich;Hantington Bycas;Hantington Byčas;Huntington Beach;Kh"ntingt"n Bijch;Khantington Bich;Khantington-Bich;Pacific Beach;Pacific City;han ting tan bich;hantingatana bica;hantintonbichi;hantyngtwn bych kalyfrnya;heng ting dun bi qi;heontingteonbichi;hwntynghtwn bytsh;Гантінґтон-Біч;Хантингтон Бич;Хантингтон-Бич;Хънтингтън Бийч;هانتینگتون بیچ، کالیفرنیا;هونتينغتون بيتش;ہنٹنگٹن بیچ;हन्टिंगटन बीच;ฮันติงตันบีช;ハンティントンビーチ;亨廷頓比奇;헌팅턴비치; +city::5358736;Huntington Park;Huntington Park;Khantington Park;Khantington-Park;Khuntingtun Park;hantingatana parka;hantyngtwn park;heng ting dun gong yuan;hwntynghtwn bark;Хантингтон Парк;Хантингтон-Парк;Хънтингтън Парк;هانتینگتون پارک;هونتينغتون بارك;ہنٹنگٹن پارک، کیلیفورنیا;हन्टिंगटन पार्क;亨廷顿公园; +city::5359446;Indio;Indian Wells;Indio;Indiou;andyw;ayndyw kalyfrnya;indio;indiyo;yin di ao;Індіо;Индио;Индиоу;إنديو;ایندیو، کالیفرنیا;इन्डियो;インディオ;印第奥;인디오; +city::5359488;Inglewood;Inglewood;Inglvud;Inglvudas;Ingulud;anghlywwwd;aynglwwd kalyfrnya;in'gelavuda;ing-geul-udeu;inguruuddo;ying ge er wu de;Інґлвуд;Инглвуд;Ингълуд;Ինգլվուդ;אינגלווד;إنغليووود;انگل ووڈ;انگلووڈ، کیلیفورنیا;اینگلوود، کالیفرنیا;इन्गेलवूड;イングルウッド;英格爾伍德;잉글우드; +city::5359777;Irvine;"rvajn;Ervajn;Irvajn;Irvin;Irvinas;Irvine;abain;arfayn;arwayn;arwayn kalyfrnya;eobain;er wan;ou wen;Ервайн;Ервајн;Ирвайн;Ирвин;Ървайн;אירוויין;إرفاين;اروائن;ارواین، کالیفرنیا;アーバイン;歐文;爾灣;어바인; +city::5363922;La Habra;La Khabra;la ha bu la;la habra;la habra kalyfrnya;Ла Хабра;لا هابرا;لا هابرا، کالیفرنیا;ला हाब्रा;拉哈布拉; +city::5363990;La Mesa;Allison Springs;La Mesa;La Mesa Heights;La Mesa Springs;Lamesa;la mesa;la mi sa;la msa kalyfrnya;la mysa;Ла Меса;لا مسا، کالیفرنیا;لا ميسا;ला मेसा;拉米萨; +city::5364329;Laguna Niguel;Laguna Nigel;Laguna Niguel;laghwna nyghwyl;laguna nigela;lagwna nygwyl kalyfrnya;ni gu hu;Лагуна Нигел;لاغونا نيغويل;لاگونا نیگوئل، کالیفرنیا;लागुना निगेल;尼古湖; +city::5364499;Lake Elsinore;Elsinore;Etengvo;Etengvo Wumona;Laguna;Laguna Grande;Lake Elsinore;Lejk Elsinor;Lejk Elzinor;Lejk-Ehlsinor;Machadao;Machado;Wamoma;hu ai er xi nuo;lak alsynwry;leka elsinora;lyk al synwr kalyfrnya;lyk aylsynwry kylyfwrnya;Лейк Елзинор;Лейк-Элсинор;Лејк Елсинор;لاك إلسينوري;لیک ال سینور، کالیفرنیا;لیک ایلسینوری، کیلیفورنیا;लेक एल्सिनोर;湖埃尔西诺; +city::5364514;Lake Forest;El Toro;Eltoro;Lake Forest;Lejk Forest;Lejk Forist;lak fwryst;leikeupoliseuteu;leka pharesta;lyk farst kalyfrnya;reikuforesuto;sen lin hu;Лейк Форест;Лејк Форист;لاك فوريست;لیک فارست، کالیفرنیا;لیک فارسٹ، کیلیفورنیا;لیک فورسٹ;लेक फरेस्ट;レイクフォレスト;森林湖;레이크포리스트; +city::5364855;Lakewood;Lakewood;Lakewood Village;Lejkud;Lejkvud;lai ke wu de;lakywwwd;leikeuudeu;lekavuda;lykwwd kalyfrnya;reikuuddo;Лейквуд;Лейкуд;Лејквуд;لاكيووود;لیکوود، کالیفرنیا;لیکووڈ;लेकवूड;レイクウッド;莱克伍德;레이크우드; +city::5364940;Lancaster;Lancaster;Lankaster;Lankastur;WJF;lan kai si te;lankstr;lnkstr kalyfrnya;lnqstr;lyancestara;rankasuta;Ланкастер;Ланкастър;לנקסטר;لانكستر;لنکستر، کالیفرنیا;لینکاسٹر;ल्यान्चेस्टर;ランカスター;蘭開斯特; +city::5367440;Livermore;LVK;Laddville;Liv"rmor;Livermor;Livermore;Livermore's;Nottingham;li fu mo;libeomo-eo;libharamora;lybrmwr;lyfyrmwry;lywrmwr;lywrmwr kalyfrnya;ribamoa;Ливермор;Ливърмор;Лівермор;ליברמור;ليفيرموري;لیورمور;لیورمور، کالیفرنیا;लिभरमोर;リバモア;利佛摩;리버모어; +city::5367565;Lodi;Lodaj;Lodi;Loudaj;Mokelumne;Moquelumne;lodi;luo di;lwdy;lwdy kalyfrnya;rodai;Лодай;Лодај;Лоди;Лоді;Лоудай;لودي;لودی، کالیفرنیا;लोडी;ローダイ;洛迪;로디; +city::5367929;Long Beach;Gorad Long-Bich;LGB;Litus Longum;Lon'nk Bits;Long Beach;Long Bich;Long Bijch;Long Bycas;Long Byčas;Long-Bich;Longbica;Longbīča;Lonq Bic;Lonq Biç;Willmore City;lam bica;lamga bica;lang bic;lang bych kalyfrnya;lang bych kylyfwrnya;langa bica;long-bichi;longbichi;lwng byz;lwngh bytsh;lxng bich;rongubichi;zhang tan;Λονγκ Μπιτς;Горад Лонг-Біч;Лонг Бийч;Лонг Бич;Лонг-Бич;Лонг-Біч;Լոնգ Բիչ;לונג ביץ;لانگ بیچ، کالیفرنیا;لانگ بیچ، کیلیفورنیا;لونغ بيتش;लङ्ग बीच;लाँग बीच;লং বিচ;లాంగ్ బీచ్;ลองบีช;ლონგ-ბიჩი;ឡងបច;ឡងប៊ិច;ロングビーチ;長灘;롱비치; +city::5368361;Los Angeles;Angelopolis;Cuidad De Los Angelos;Cuidad De los Angelos;El Pueblo de Nuestra Senora La Reina de Los Angeles de Porcivncula;El Pueblo de Nuestra Senora de los Angeles de Porciuncula;El Pueblo de Nuestra Señora de los Ángeles de Porciúncula;El Pueblo del Rio de Nuestra Senora;Gorad Los-Andzhehles;L.A.;LA;LAX;La Reina de Los Angeles de Porciuncula;Lok-chham-ki;Los And'eles;Los Andzelas;Los Andzeles;Los Andzheles;Los Andzhelis;Los Andželas;Los Andželes;Los Angeles;Los Anjeles;Los Anjélés;Los Antzeles;Los Anxheles;Los Anxhelos;Los Anzeles;Los Anzheles;Los Ángeles;Los-Anceles;Los-Andzeles;Los-Andzheles;Los-Angeleso;Los-Anjeles;Los-Anzheles;Los-Anzheles shaary;Los-Anĝeleso;Losandzelosa;Losandželosa;Lo̍k-chhám-kî;Lungsod ng Los Angeles;Luos Andzels;Luos Andžels;Os Anxeles;Os Ánxeles;Pueblo De Los Angeles;Pueblo Los Angelos;el-ei;las aynjls;las encalas;las enjales;las enjalis;lasa ainjalasa;lasa enjalasa;lasa enjilasa;leas anceles;los-anjelesi;losa enjelasa;losa enjelisa;losa enjelsa;loseuaenjelleseu;loseuenjelleseu;ls anjls;luo shan ji;lws anjls;lws anjlws;lws anjlys;lws ʼngls;rosanzerusu;Λος Άντζελες;Горад Лос-Анджэлес;Лос Анджелес;Лос Анджелис;Лос Андьелес;Лос Анжелес;Лос Анђелес;Лос Анџелес;Лос Анҷелес;Лос Анӂелес;Лос-Анджелес;Лос-Анжелес;Лос-Анжелес шаары;Лос-Анџелес;Լոս Անջելես;לאס אנדזשעלעס;לוס אנגלס;لاس اینجلس;لس آنجلس;لس‌آنجلس;لوس آنجلس;لوس أنجلوس;لوس ئانجېلېس;لوس انجليس;لوس‌آنجلس;لۆس ئانجلەس;लस एञ्जिलस;लस एन्जलस;लास एंजलस;लॉस एंजेलिस;लॉस एंजेल्स;লস অ্যাঞ্জেলেস;ਲਾਸ ਐਂਜਲਸ;લોસ એન્જેલસ;லாஸ் ஏஞ்சலஸ்;లాస్ ఏంజలెస్;ಲಾಸ್ ಎಂಜಲೀಸ್;ലോസ് ആഞ്ചെലെസ്;ลอสแอนเจลิส;လော့စ်အိန်ဂျယ်လိစ်မြို့;ლოს-ანჯელესი;ሎስ አንጄሌስ;ロサンゼルス;洛杉矶;洛杉磯;로스앤젤레스;로스엔젤레스;엘에이; +city::5369367;Lynwood;Linud;Linvud;Lynwood;lin wu de;lin-udeu;linavuda;lynwwd kalyfrnya;lynwwwd;rin'uddo;Линвуд;Линуд;لينووود;لینوود، کالیفرنیا;لینووڈ، کیلیفورنیا;लीनवूड;リンウッド;林伍德;린우드; +city::5369568;Madera;MAE;Madera;ma de la;madera;madra kalyfrnya;madyra;Мадера;مادرا، کالیفرنیا;ماديرا;मादेरा;マデラ;马德拉; +city::5370164;Manteca;Cowell;Cowell's Station;Manteca;Mantika;man te ka;mantka kalyfrnya;mantyka;myanateka;Мантика;مانتيكا;مانتکا، کالیفرنیا;म्यानटेका;曼特卡; +city::5372205;Menifee;Menifi;Munufij;mny fy kalyfrnya;mynyfy;Менифи;Мънъфий;منی فی، کالیفرنیا;مينيفي;مینیفی; +city::5372253;Merced;MCE;Merced;Mersed;Mursed;marsida;masedo;mei xi de;meosedeu;mrsd kalyfrnya;myrsyd;Мерсед;Мърсед;مرسد، کالیفرنیا;مرسڈ;ميرسيد;मर्सिड;マーセド;美熹德;머세드; +city::5373327;Milpitas;Milpitas;Penitencia;mi er pi ta si;milpitaja;milpitasa;mirupitasu;mylbytas;mylpytas;Милпитас;Мілпітас;ميلبيتاس;میلپیتاس;मिल्पिटास;मिल्पिताज;ミルピタス;米尔皮塔斯; +city::5373497;Mira Mesa;; +city::5373763;Mission Viejo;Mishen-V'ekho;Mishn-Vekho;Mishon Vijekho;Mishun Viekho;Mission Viejo;mi shen wei ye huo;misana bhi'eyo;misshonbieho;misyeonbieho;mshn wyjw;myshn wyjw kalyfrnya;mysywn fyjw;Мишен-Вьехо;Мишон Вијехо;Мишън Виехо;Мішн-Вєхо;مشن ویجو;ميسيون فيجو;میشن ویجو، کالیفرنیا;मिसन भिएयो;ミッションビエホ;米申维耶霍;미션비에호; +city::5373900;Modesto;MOD;Modesto;Ralston;meodeseuto;mo de si tuo;modesto;modesuto;mwdstw;mwdstw kalyfrnya;mwdystw;Модесто;מודסטו;مودستو، کالیفرنیا;موديستو;موڈیسٹو;मोदेस्तो;モデスト;莫德斯托;머데스토; +city::5374322;Montebello;Montebello;Montebelo;Newmark;meng ti bei luo;montebello;montebelo;montebero;mwntybylw;mwnt‌blw kalyfrnya;Монтебелло;Монтебело;Մոնթեբելլո;مونتيبيلو;مونت‌بلو، کالیفرنیا;मोन्तेबेलो;モンテベロ;蒙提贝罗;몬테벨로; +city::5374406;Monterey Park;Monterej Park;Monterey Park;Ramona Acres;meng te li gong yuan;montere parka;mwnth ry park kalyfrnya;mwntyry bark;Монтерей Парк;Монтереј Парк;مونته ری پارک، کالیفرنیا;مونتيري بارك;मोन्तेरे पार्क;蒙特利公园; +city::5374732;Moreno Valley;Moreno Vali;Moreno Valley;Moreno-Valli;mo lei nuo gu;morano bhyali;morenobare;mwrnw wly kalyfrnya;mwrynw faly;mwrynw wyly;Морено Вали;Морено-Валли;Морено-Валлі;مورنو ولی، کالیفرنیا;مورينو فالي;مورینو ویلی;मोरनो भ्याली;モレノバレー;莫雷諾谷; +city::5375480;Mountain View;Mauntin Vju;Mauntin Vyu;Mauntin-V'ju;Mauntin-Vju;Mountain View;Mountainview;NUQ;Prospectus Montis;ma'untana vhyu;ma'unte'ina bhi'u;ma'untena bhyu;ma'untena vyu;mang ting wei you;mantyn wyw;mauntenbyu;mauntinbyu;mavuntan viyu;mawntn fyw;mea n the nwiw;shan jing cheng;Маунтин Вю;Маунтин Вју;Маунтин-Вью;Маунтін-Вю;מאונטיין ויו;مانتین ویو;ماونتن فيو;माउंटन व्ह्यू;माउंटेन व्यू;माउन्टेन भ्यु;माउन्टेन भ्यू;মাউন্টেইন ভিউ;மவுண்டன் வியூ;เมาน์เทนวิว;マウンテンビュー;山景城;芒廷维尤;마운틴뷰; +city::5375911;Murrieta;Mjurijeta;Murieta;Murietta;Murrieta;Murrietta;RBK;marieta;mu lie ta;muri'eta;mwrryta ryfyrsydy kalyfwrnya;mwryta kalyfrnya;Муриета;Мјуријета;مورريتا، ريفيرسيدي، كاليفورنيا;موریتا، کالیفرنیا;موریٹا;मुरिएटा;マリエータ;穆列塔; +city::5376095;Napa;APC;Napa;Napa City;Nappa;na pa;naba;napa;napa kalyfrnya;napa kyly fwrnya;Напа;نابا;ناپا;ناپا، کالیفرنیا;ناپا، کیلی فورنیا;नापा;แนปา;ナパ;纳帕;나파; +city::5376200;National City;Lungsod ng National;Nashonal Siti;National City;National Ranch;Neshunul Siti;Rancho de la Nacion *;n'yasanala siti;na xiong nai er cheng;naesyeoneolsiti;nashnal syty;nshnal syty kalyfrnya;Нашонал Сити;Нешънъл Сити;ناشنال سيتي;نشنال سیتی، کالیفرنیا;نیشنل سٹی، کیلیفورنیا;न्यासनल सिटी;纳雄耐尔城;내셔널시티; +city::5376890;Newport Beach;JNP; +city::5377613;North Glendale;; +city::5377654;North Hollywood;Lankershim;North Hollywood;Severnyj Gollivud;Toluca;noseuhalliudeu;Северный Голливуд;نورث هالیوود، لس‌آنجلس;노스할리우드; +city::5377985;Northridge;Northridge;Zelzah;northarija;نورثریج، لس‌آنجلس;नॉर्थरिज; +city::5377995;Norwalk;Corvallis;Noruok;Noruolk;Norvok;Norvolk;Norvolkas;Norwalk;naravaka;nou~oku;nowokeu;nuo wo ke;nwrwak kalyfrnya;nwrwak kylyfwrnya;nwrwalk;nwrwwq;Норвок;Норволк;Норуок;Норуолк;נורווק;نوروالك;نوروالک;نورواک، کالیفرنیا;نورواک، کیلیفورنیا;नरवाक;ノーウォーク;諾沃克;노워크; +city::5378044;Novato;NOT;Novato;nobhato;nuo wa tuo;nwfatw;nwwatw kalyfrnya;Новато;نوفاتو;نوواتو، کالیفرنیا;नोभातो;诺瓦托; +city::5378538;Oakland;Gorad Oklend;OAK;Oakland;Oakland i California;Okland;Oklandas;Oklend;Oklenda;Oouklant;Oukland;Ouklend;Quercupolis;ao ke lan;awkland;awklnd;okalanda;okalyanda;okeullaendeu;oklant;okurando;Όουκλαντ;Горад Окленд;Окланд;Окленд;Оукланд;Оукленд;Օքլենդ;אוקלנד;אקלאנד;أوكلاند;اوکلند;اوکلینڈ;اوکلینڈ، کیلیفورنیا;ओकलंड;ओकल्याण्ड;ओकल्यान्ड;ওকল্যান্ড;ஓக்லண்ட்;ოკლენდი;オークランド;奥克兰;奧克蘭;오클랜드; +city::5378771;Oceanside;OCN;Ocean Side;Oceanside;Oushansajd;Oushensajd;Oushunsajd;awshn sayd kalyfrnya;awsyansydy;osanasa'ida;oshansaido;osyeonsaideu;ou shen sai de;Оушансајд;Оушенсайд;Оушънсайд;אושנסייד;أوسيانسيدي;اوشن ساید، کالیفرنیا;اوشینسائڈ;ओसनसाइड;オーシャンサイド;歐申賽德;오션사이드; +city::5379439;Ontario;ONT;Ontario;Ontehrio;an da e;antaryw kalyfrnya;awntaryw;ontalio;ontario;ontariyo;Онтарио;Онтаріо;Онтэрио;أونتاريو;انتاریو، کالیفرنیا;اونٹاریو،کیلیفورنیا;ओन्टारियो;オンタリオ;安大略;온타리오; +city::5379513;Orange;JOR;Orandzh;Orange;Orindz;Orindzh;Richland;arenja;awranj;awrnj kalyfrnya;awrynj;chen shi;olenji;orenji;Орандж;Ориндж;Оринџ;أورانج;اورنج، کالیفرنیا;اورینج;अरेन्ज;オレンジ;橙市;오렌지; +city::5380184;Oxnard;OXR;Oksnard;Oxnard;aksanarda;ao ke si na de;awks nard kalyfrnya;awksnard;ogseunadeu;okkusunado;Окснард;אוקסנארד;أوكسنارد;اوکس نارد، کالیفرنیا;اوکسنارڈ;अक्सनार्ड;オックスナード;奥克斯纳德;옥스나드; +city::5380202;Oxnard Shores;; +city::5380626;Palm Desert;Old McDonald Ranch;Palm Desert;Palm Dezert;Palm Dezurt;Palm Village;Palm-Dezert;Sand Hole;balm dysyrt;palm dzrt kalyfrnya;pama dejarta;pamdejeoteu;zong lu sha mo;Палм Дезерт;Палм Дезърт;Палм-Дезерт;بالم ديسيرت;پالم دزرت، کالیفرنیا;पाम डेजर्ट;棕榈沙漠;팜데저트; +city::5380698;Palmdale;PMD;Palmdale;Palmdejl;balmdyl;palm dyl kalyfrnya;pamadela;pamuderu;zong lu gu;Палмдейл;Палмдејл;פאלמדייל;بالمديل;پالم دیل، کالیفرنیا;پالم ڈیل;पामडेल;パームデール;棕櫚谷; +city::5380748;Palo Alto;Gorad Pala-Al'ta;PAO;Palo Al'to;Palo Alto;Palo-Al'to;Palo-Alto;Paloalto;University Park;balw altw;pa luo ao duo;pa luo ao tu;paelloaelto;palo alto;palo elto;palw altw kalyfrnya;palwaltw;paroaruto;Πάλο Άλτο;Горад Пала-Альта;Пало Алто;Пало Альто;Пало-Альто;פאלו אלטו;بالو ألتو;پالو آلتو، کالیفرنیا;پالوآلتو;पालो आल्टो;पालो एल्टो;パロアルト;帕羅奧圖;帕羅奧多;팰로앨토; +city::5381110;Paramount;Hynes;Paramaunt;Paramount;baramwwnt;pai la meng;paramwnt kalyfrnya;pyarama'unta;Парамаунт;باراموونت;پارامونت، کالیفرنیا;پیراماؤنٹ، کیلیفورنیا;प्यारामाउन्ट;派拉蒙; +city::5381396;Pasadena;Gorad Pasadehna;Indiana Colony;JPD;Pasadena;Pasadina;Pasadīna;Pasantina;Pasedena;basadyna;pa sa di na;paeseodina;pasadena;pasadyna kalyfrnya;psdynh;Πασαντίνα;Горад Пасадэна;Пасадена;Пасадина;Փասադենա;פסדינה;باسادينا;پاسادینا، کالیفرنیا;پاساڈینا;पासादेना;แพซาดีนา;パサデナ;帕萨迪纳;패서디나; +city::5382146;Perris;Peris;Perris;byrrys;pei li si;perisa;prys kalyfrnya;Перис;Перрис;بيرريس;پریس، کالیفرنیا;पेरिस;佩里斯; +city::5382232;Petaluma;Chickaluma;Petaloma;Petaluma;Petluma;bytalwma;pei ta lu ma;petaluma;petaruma;ptalwma kalyfrnya;Петалума;Петлума;بيتالوما;پتالوما، کالیفرنیا;पेतालुमा;ペタルーマ;佩塔卢马; +city::5382496;Pico Rivera;Pico;Pico Rivera;Piko Rivera;Rivera;bykw ryfyra;pi ke li wei la;piko ribhera;pykw rywra kalyfrnya;Пико Ривера;بيكو ريفيرا;پیکو ریورا، کالیفرنیا;पिको रिभेरा;皮科里韦拉; +city::5383465;Pittsburg;Black Diamond;City of New York of the Pacific;New York of the Pacific;Pitsb"rg;Pitsburg;Pittsburg;Pittsburgh;bytsbwrgh;pi ci bao;pi zi bao;picheubeogeu;pitsabarga;pittsubagu;pytz brg kalyfrnya;Питсбург;Питсбърг;بيتسبورغ;پیتز برگ، کالیفرنیا;पिट्सबर्ग;ピッツバーグ;匹兹堡;匹茲堡;피츠버그; +city::5383527;Placentia;Plasensha;Plasentija;blasyntya;peullasentia;plasntya kalyfrnya;plesensiya;pu la sen;Пласентия;Пласенша;بلاسينتيا;پلاسنتیا، کالیفرنیا;प्लेसेन्सिया;普拉森;플라센티아; +city::5383777;Pleasanton;Alisal;JBS;Pleasanton;Pleasonton;Plezant"n;Plezanton;blysantwn;peullejeonteon;plijentatana;plyzantwn kalyfrnya;pu lai sen dun;Плезантон;Плезантън;بليسانتون;پلیزانتون، کالیفرنیا;प्लिजेन्टटन;普莱森顿;플레전턴; +city::5384170;Pomona;Pomon;Pomona;bo mo na;bwmwna;pomona;pwmwna;pwmwna kalyfrnya;pwmwnh;Помона;פומונה;بومونا;پومونا;پومونا، کالیفرنیا;पोमोना;ポモナ;波莫纳;포모나; +city::5384471;Porterville;PTV;Porter's Station;Porter's Village;Porter'sville;Porters Trading Post;Portersville;Portervil;Porterville;Porturvil;Putnamville;bo te wei er;bwrtyrfyl;portarabhila;potabiru;pwrtrwyl kalyfrnya;Портервил;Портървил;بورتيرفيل;پورترویل، کالیفرنیا;पोर्टरभिल;ポータービル;波特维尔; +city::5384690;Poway;Pauej;Pawai;Poway;baway;bo wei;pawei;pove;pwwy kalyfrnya;Пауей;Пауеј;باواي;پووی، کالیفرنیا;पोवे;波威;파웨이; +city::5385941;Rancho Cordova;Rancho Kordova;lan qiao ke er duo wa;ranchw kwrdwwa kalyfrnya;rantshw kwrdwfa;rryanco kordobha;Ранчо Кордова;رانتشو كوردوفا;رانچو کوردووا، کالیفرنیا;र्र्यान्चो कोर्दोभा;兰乔科尔多瓦; +city::5385955;Rancho Cucamonga;Cucamonga;North Cucamonga;Nuestra Senora del Pilar de Cucamonga;Rancho Cucamonga;Rancho Kukamanga;Rancho Kukamonga;Rancho-Kukamonga;ku ka meng ge mu chang;laenchokukamong-ga;ranchokukamonga;ranchw kwkamwnga kalyfrnya;rantshw kwkamwngha;rryanco kukamonga;Ранчо Кукаманга;Ранчо Кукамонга;Ранчо-Кукамонга;Ранчо-Кукамонґа;رانتشو كوكامونغا;رانچو کوکامونگا، کالیفرنیا;رانچھو کیوکامونگا;र्र्यान्चो कुकामोंगा;ランチョクカモンガ;庫卡蒙格牧場;랜초쿠카몽가; +city::5386039;Rancho Penasquitos;; +city::5386754;Redlands;Lugonia;Redlands;Redlends;Redlunds;ledeullaenjeu;lei de lan ci;rdlndz kalyfrnya;redalyandsa;reddoranzu;rydlands;Редландс;Редлендс;Редлъндс;ردلندز، کالیفرنیا;ريدلاندس;रेडल्यान्ड्स;レッドランズ;雷德兰兹;레들랜즈; +city::5386785;Redondo Beach;Redondo Beach;Redondo Bich;Redondo Bijch;Redondo-Bich;lei dong duo hai tan;lidondobichi;rdwndw bych kalyfrnya;redondo bica;redondobichi;rydwndw bytsh;Редондо Бийч;Редондо Бич;Редондо-Бич;Редондо-Біч;ردوندو بیچ، کالیفرنیا;ريدوندو بيتش;ریڈونڈو بیچ، کیلیفورنیا;रेडोन्डो बीच;レドンドビーチ;雷东多海滩;리돈도비치; +city::5386834;Redwood City;Lungsod ng Redwood;Menzesville;Mezesville;Red Woods City;Redud Siti;Redvud Siti;Redvud-Siti;Redwood;Redwood City;Redwood Lakanbalen;hong mu cheng;ledeuudeusiti;rdwwd syty kalyfrnya;redavuda siti;reddouddoshiti;rydwwd;Редвуд Сити;Редвуд-Сити;Редвуд-Сіті;Редуд Сити;ردوود سیتی، کالیفرنیا;ريدوود;ریڈووڈ شہر، کیلیفورنیا;रेडवूड सिटी;レッドウッドシティ;紅木城;레드우드시티; +city::5387288;Rialto;Rial'to;Rialto;Rijalto;li ya tuo;liaelto;ri xal to;riaruto;riyalto;ryaltw;ryaltw kalyfrnya;Риалто;Риальто;Ријалто;ريالتو;ریالتو، کالیفرنیا;ریالٹو;रियाल्तो;รีอัลโต;リアルト;里亚托;리앨토; +city::5387428;Richmond;Richmond;Richmund;lichimeondeu;lie zhi wen;ricamanda;ritchimondo;rychmwnd kalyfrnya;rytshmwnd;Ричмонд;Ричмънд;Річмонд;ريتشموند;ریچموند، کالیفرنیا;रिचमंड;リッチモンド;列治文;리치먼드; +city::5387877;Riverside;Jurupa;RAL;Riversaida;Riversaint;Riversajd;Riversayd;Riverside;Rivursajd;li fu sai de;libeosaideu;ribasaido;ribharasa'ida;riversaidi;rybrsyyd;ryfrsayd;rywrsayd kalyfrnya;Ριβερσάιντ;Риверсайд;Риверсајд;Ривърсайд;Ріверсайд;ריברסייד;رور سائڈ;ريفرسايد;ریورساید، کالیفرنیا;रिभरसाइड;რივერსაიდი;リバーサイド;里弗赛德;리버사이드; +city::5388319;Rocklin;Rocklin;Rocklissa;Roklin;luo ke lin;rakalina;raklyn kalyfrnya;rwklyn;Роклин;راکلین، کالیفرنیا;روكلين;रकलिन;罗克林; +city::5388867;Rosemead;Rouzmid;Rouzmijd;rojamida;rou shi mi;rwsymyd;rzmyd kalyfrnya;Роузмид;Роузмийд;رزمید، کالیفرنیا;روزمیڈ، کیلیفورنیا;روسيميد;रोजमीड;柔似蜜; +city::5388881;Roseville;Griders;Roseville;Roseville Junction;Rouzvil;Rozvell;Rozvill;lojeubil;luo si wei er;rojabhila;rozubiru;rwzfyl;rzwyl kalyfrnya;Розвелл;Розвилл;Роузвил;رزویل، کالیفرنیا;روزفيل;روسولے;रोजभिल;ローズビル;羅斯維爾;로즈빌; +city::5389489;Sacramento;Gorad Sakramenta;Kakalameko;New Helvetia;SAC;Sacramento;Sacramento Stad;Sacramentum;Sakramentas;Sakramento;Sakraments;Sakraminto;Sakraménto;cekramento;saekeulamento;saikaramainto;saikramento;sakramento;sakramntw;sakramntw kalyfrnya;sakuramento;sekramento;sha jia mian du;sqrmntw;Σακραμέντο;Горад Сакрамента;Сакраменто;Սակրամենտո;סאקראמענטא;סקרמנטו;ساكرامنتو;ساکرامنتو;ساکرامنتو، کالیفرنیا;ساکرامنٹو;سکرامنٹو، کیلی فورنیا;साक्रामेंटो;साक्रामेन्टो;सेक्रामेन्टो;सेक्रामेन्तो;सैक्रामेण्टो;সাক্রামেন্টো;ਸੈਕਰਾਮੈਂਟੋ;சேக்ரமெண்டோ;แซคราเมนโต;საკრამენტო;ሳክራመንቶ;サクラメント;沙加緬度;새크라멘토; +city::5391295;Salinas;SNS;Salinae;Salinas;sa li na si;salinasa;sallinaseu;salynas;salynas kalyfrnya;sarinasu;Салинас;Салінас;ساليناس;سالیناس;سالیناس، کالیفرنیا;सालिनास;サリナス;萨利纳斯;살리나스; +city::5391710;San Bernardino;Kaampu`u;SBD;SBT;San Bernandino;San Bernardino;San-Bernardino;saenbeoneodino;san byrnardynw kalyfwrnya;sanbanadino;sanbanadino_;sheng bei na di nuo;sn brnardynw kalyfrnya;sn brnrdynw;Сан Бернандино;Сан Бернардино;Сан-Бернардино;סן ברנרדינו;سان بيرناردينو، كاليفورنيا;سانبرنارڈینو;سن برناردینو، کالیفرنیا;サンバーナーディーノ;サンバーナーディーノ_;聖貝納迪諾;샌버너디노; +city::5391791;San Clemente;San Clemente;San Klemente;San-Klemente;Spanish Village;saenkeullemente;san klmnt kalyfrnya;san klymynty;sheng ke lai men te;syana klemente;Сан Клементе;Сан-Клементе;Սան Կլեմենտե;سان كليمينتي;سان کلمنت، کالیفرنیا;स्यान क्लेमेन्ते;แซนเคลเมนที;圣克莱门特;샌클레멘테; +city::5391811;San Diego;Davis' Folly;Didacopolis;Gorad San-Dyega;Graytown;Lungsod ng San Diego;New San Diego;SAN;San Diegas;San Diego;San Diegu;San Dijego;San Diyego;San Diyégo;San Miguel;San Ntienko;San-Diego;San-Dieqo;Sandjego;can tiyeko;saendiego;saendieigo;saina di'ego;san diyago;san dyyghw;san-diego;sana di'ego;sana diyago;sandiego;sena diyego;sheng de ya ge;sn dygw;sn dyygw;syana di'ego;Σαν Ντιέγκο;Горад Сан-Дыега;Сан Диего;Сан Дијего;Сан-Диего;Сан-Дієго;Սան Դիեգո;סאן דיעגא;סן דייגו;سان دييغو;سان ڈیاگو;سان ڈیگو;سن دیگو;सॅन डियेगो;सैन डिएगो;स्यान डिएगो;সান ডিয়াগো;ਸਾਨ ਦੀਏਗੋ;சான் டியேகோ;శాన్ డియాగో;แซนดีเอโก;სან-დიეგო;ሳንዲየጎ;サンディエゴ;聖地牙哥;샌디에고;샌디에이고; +city::5391959;San Francisco;Franciscopolis;Frisco;Gorad San-Francyska;Kapalakiko;Khiu-kim-san;Khiu-kîm-sân;Lungsod ng San Francisco;New Albion;SF;SFO;San Francisco;San Franciscu;San Francisko;San Fransisco;San Fransiskas;San Fransisko;San Frantzisko;San Phransisko;San-Francisko;San-Fransisko;Sanfrancisko;Sao Francisco;São Francisco;Yerba Buena;can pirancisko;jiu jin shan;saenpeulan;saenpeulansiseuko;saina pharansisako;saina phransisko;san f ran si s ko;san fan shi;san fransskw;san fransyskw;san fransyskۆ;san phransisko;sana phransisako ka'unti;sana phransisko;sanfuranshisuko;sena phransisko;sn prnsysqw;syana phransisko;Σαν Φρανσίσκο;Горад Сан-Францыска;Сан Франсиско;Сан Франциско;Сан-Франциско;Сан-Франціско;Սան Ֆրանցիսկո;סאן פראנציסקא;סן פרנסיסקו;سان فرانسسکو;سان فرانسيسكو;سان فرانسیسکو;سان فرانسیسکۆ;सॅन फ्रान्सिस्को;सैन फ्रांसिस्को;स्यान फ्रान्सिस्को;সান ফ্রান্সিসকো কাউন্টি;সান ফ্রান্সিস্কো;ਸੈਨ ਫਰਾਂਸਿਸਕੋ;சான் பிரான்சிஸ்கோ;శాన్ ఫ్రాన్సిస్కో;സാൻ ഫ്രാൻസിസ്കോ;සැන් ෆ්‍රැන්සිස්කෝ;ซานฟรานซิสโก;སན་ཧྥུ་རན་སིས་ཁོ;ဆန်ဖရန်စစ္စကိုမြို့;სან-ფრანცისკო;サンフランシスコ;三藩市;旧金山;舊金山;샌프란;샌프란시스코; +city::5392171;San Jose;Gorad San-Khaseh;Iosephopolis;Pueblo De Alvarado;Pueblo De San Jose De Guadalupe;SJC;San Chose;San Choze;San Chozė;San Jose;San Jose De Alvarado;San Jose De Guadalupe *;San Jose i California;San José;San Khose;San Khoze;San Xose;San Xosé;San-Joseo;San-Khose;San-Xose;Sanhose;Sanhosē;can hoce;sa n jwz;saeneojei;saina hoze;san hwzyh;san ose;san'noze;san-khose;sana hose;sana hoze;sanhose;sena hoje;sheng he xi;sn hwzh;sn‌khwzh kalyfrnya;syana hose;Σαν Χοσέ;Горад Сан-Хасэ;Сан Хозе;Сан Хосе;Сан-Хосе;Սան Խոսե;סן חוזה;سا ن جوز;سان هوزيه;سان ہوزے، کیلیفورنیا;سن‌خوزه، کالیفرنیا;सान होसे;सॅन होजे;सैन होज़े;স্যান হোসে;ਸਾਨ ਹੋਜ਼ੇ;સાન હોસે;சான் ஹொசே;శాన్ ఓసె;ಸ್ಯಾನ್‌ ಜೋಸ್‌‌;แซนโฮเซ;სან-ხოსე;サンノゼ;聖荷西;산호세;새너제이; +city::5392263;San Leandro;Cherry City of California;San Leandro;San Lijandro;San-Leandro;saenliaendeulo;san lyandrw kalyfrnya;san lyndrw;sanreandoro;sheng li an zhuo;syana liyandro;Сан Леандро;Сан Лијандро;Сан-Леандро;سان لئاندرو، کالیفرنیا;سان ليندرو;سان لیانڈرو;स्यान लीयान्द्रो;サンレアンドロ;聖利安卓;샌리앤드로; +city::5392368;San Marcos;San Marcos;San Markos;San-Markos;saenmakoseu;san markws;san markws kalyfrnya;sanmarkws;sanmarukosu;sheng ma ke si;syana markosa;Сан Маркос;Сан-Маркос;سان ماركوس;سان مارکوس، کالیفرنیا;سانمارکوس;स्यान मार्कोस;サンマルコス;聖馬可斯;샌마코스; +city::5392423;San Mateo;Matthaeopolis;San Mateo;San Matheo;San-Mateo;saenmeoteio;san matyw;san matyw kalyfrnya;sanmateo;sheng ma diao;syana myatiyo;Сан Матео;Сан-Матео;سان ماتيو;سان ماتیو، کالیفرنیا;سانماٹیو;स्यान म्याटियो;サンマテオ;聖馬刁;샌머테이오; +city::5392528;San Pedro;San Pedro;San Pedro y San Pablo;San Pedro y San Pablo Bicuner *;saenpideulo;sanpedoro;Сан Педро;サンペドロ;샌피드로; +city::5392567;San Rafael;SRF;San Rafael;San Rafel;San-Rafael';San-Rafel;Sao Rafael;São Rafael;san rafayyl;sanraferu;sheng la fei er;sn rafayl kalyfrnya;syana raphela;Сан Рафаел;Сан Рафел;Сан-Рафаель;Сан-Рафел;سان رافاييل;سن رافائل، کالیفرنیا;स्यान राफेल;サンラフェル;圣拉菲尔; +city::5392593;San Ramon;Limerick;Lynchville;San Ramon;San Ramón;San-Ramon;san ramwn;san ramwn kalyfrnya;sheng la meng;syana ramona;Сан Рамон;Сан-Рамон;سان رامون;سان رامون، کالیفرنیا;स्यान रामोन;圣拉蒙;聖拉蒙; +city::5392900;Santa Ana;Gorad Santa-Ana;SNA;Santa Ana;Santa-Ana;Santanna;saentaaena;santa ana;santa ana kalyfrnya;santa ana kylyfwrnya;santaana;sheng an na;syanta ena;Горад Санта-Ана;Санта Ана;Санта-Ана;Սանտա Անա;סנטה אנה;سانتا آنا، کالیفرنیا;سانتا أنا;سانتا انا، کیلیفورنیا;स्यान्टा एना;แซนตาแอนา;サンタアナ;圣安娜;샌타애나; +city::5392952;Santa Barbara;Barbaropolis;La Laguna de la Concepcion *;SBA;Santa Barbara;Santa Barmpara;Santa Bàrbara;Santa Bárbara;Santa-Barbara;Santabarbara;saentababeola;samta barbara;santa barbara;santababara;sheng ba ba la;snta barbara kalyfrnya;snth brbrh;syanta barbara;Σάντα Μπάρμπαρα;Санта Барбара;Санта-Барбара;סנטה ברברה;سانتا باربارا;سانٹا باربرا;سنتا باربارا، کالیفرنیا;सँटा बार्बरा;स्यान्टा बार्बरा;แซนตาบาร์บารา;サンタバーバラ;圣巴巴拉;샌타바버라; +city::5393015;Santa Clara;Santa Clara;Santa Klara;Santa-Klara;saentakeullaela;santa klara;santa klara kalyfrnya;santakurara;sheng ke la la;snth qlrh;syanta klera;Санта Клара;Санта-Клара;סנטה קלרה;سانتا كلارا;سانتا کلارا، کالیفرنیا;سانٹا کلارا;स्यान्टा क्लेरा;サンタクララ;圣克拉拉;샌타클래라; +city::5393049;Santa Clarita;Sanita Clarita;Santa Clarita;Santa Klarita;Santa-Klarita;saentakeullalita;santa klaryta;santa klaryta kalyfrnya;santakurarita;sheng ta ke la li ta;snth qlryth;syanta klarita;Санта Кларита;Санта-Кларита;Санта-Кларіта;סנטה קלריטה;سانتا كلاريتا;سانتا کلاریتا، کالیفرنیا;سانٹا کلاریٹا;स्यान्टा क्लारिता;サンタクラリタ;聖塔克拉利塔;샌타클라리타; +city::5393052;Santa Cruz;City of the Holy Cross;Newport of California;Newport of the Pacific;Santa Cruz;Santa Krouz;Santa Krus;Santa Kruz;Santa-Krus;Santa-Kruz;Santakruza;Santakrūza;Surf City;Swantacruz;saentakeulujeu;santa krwz;santa krwz kalyfrnya;santakuruzu;sheng ta ke lu zi;syanta kruja;Σάντα Κρουζ;Санта Круз;Санта Крус;Санта-Круз;Санта-Крус;سانتا كروز;سانتا کروز، کالیفرنیا;स्यान्टा क्रुज;サンタクルーズ;聖塔克魯茲;샌타크루즈; +city::5393180;Santa Maria;Central City;Central Valley;Grangeville;SMX;Santa Maria;Santa Marija;Santa María;Santa-Marija;santa mariya;santa marya;santa marya kalyfrnya;santamaria;sheng ma li ya;Санта Мария;Санта Марија;Санта-Мария;سانتا ماريا;سانتا ماریا، کالیفرنیا;سانٹا ماریا;सान्ता मारिया;サンタマリア;圣玛丽亚; +city::5393212;Santa Monica;Gorad Santa-Monika;Monicopolis;SMO;Santa Monica;Santa Monika;Santa Mónica;Santa Mônica;Santa-Monika;Santamonika;canta monikka;saentamonika;santa mwnyka;santa mwnyka kylyfwrnya;santa mۆnyka kalyfۆrnya;santamonika;sheng mo ni ka;snta mwnyka kalyfrnya;snth mwnyqh;syanta monika;Σάντα Μόνικα;Горад Санта-Моніка;Санта Моника;Санта-Моника;Санта-Моніка;סנטה מוניקה;سانتا مونيكا;سانتا مونیکا، کیلیفورنیا;سانتا مۆنیکا، کالیفۆرنیا;سانٹا مونیکا;سنتا مونیکا، کالیفرنیا;स्यान्टा मोनिका;சாந்தா மொனிக்கா;แซนตามอนิกา;サンタモニカ;圣莫尼卡;샌타모니카; +city::5393287;Santa Rosa;Franklin Town;STS;Santa Rosa;Santa Roza;Santa-Rosa;Santa-Roza;saentaloja;santa rwsa;santa rwza kalyfrnya;santaroza;sheng luo sha;snth rwzh;syanta roja;Санта Роза;Санта Роса;Санта-Роза;Санта-Роса;סנטה רוזה;سانتا روزا، کالیفرنیا;سانتا روسا;سانٹا روزا;स्यान्टा रोजा;サンタローザ;聖羅莎;샌타로자; +city::5393429;Santee;Cowles;Cowles Station;Cowlestown;Fanita;Santee;Santi;Sentij;saenti;sang di;santy;santy kalyfrnya;syanti;Санти;Сентий;سانتي;سانتی، کالیفرنیا;स्यान्टी;桑蒂;샌티; +city::5396003;Simi Valley;Chimii;Simi;Simi Vali;Simi Valley;Simi-Vehlli;Simi-Velli;Simih;Simiopolis;shimibare;simi bhyali;simibaelli;smy wyly;symy faly;symy wly kalyfrnya;xi mi gu;Сими Вали;Сими-Вэлли;Сімі-Веллі;סימי ואלי;سمی ویلی;سيمي فالي;سیمی ولی، کالیفرنیا;सिमि भ्याली;シミバレー;西米谷;시미밸리; +city::5397603;South Gate;Juzhen Gejt;Saut Gejt;South Gate;nan men;sa'utha geta;sausugeito;swt gyt kalyfrnya;swth ghyt;sʼwt gyyt;Саут Гејт;Южен Гейт;סאות גייט;ساؤتھ گیٹ;ساؤتھ گیٹ، کیلیفورنیا;سوت گیت، کالیفرنیا;سوث غيت;साउथ गेट;サウスゲイト;南门; +city::5397765;South San Francisco;Baden;Juzhen San Francisko;Saus-San-Francisko;Saut San Francisko;South San Francisco;nan jiu jin shan;sa'utha syana phransisko;saususanfuranshisuko;swt san fransyskw kalyfrnya;swwth san fransyskw;Саус-Сан-Франциско;Саут Сан Франциско;Южен Сан Франциско;سوت سان فرانسیسکو، کالیفرنیا;سووث سان فرانسيسكو;साउथ स्यान फ्रान्सिस्को;サウスサンフランシスコ;南旧金山;南舊金山; +city::5397841;South Whittier; +city::5399020;Stockton;SCK;Stockton;Stokt"n;Stokton;Tuleburg;Weberville;astwktwn;seutogteon;shi de dun;si tuo ke dun;stakatana;stwktwn;stwqtwn;sutokkuton;Стоктон;Стоктън;סטוקטון;استوکتون;ستوكتون;سٹوکٹن;स्टकटन;ストックトン;士德頓;斯托克顿;스톡턴; +city::5400075;Sunnyvale;Encinal;S"nivejl;Sanivejl;Sannivejl;Sunnyvale;saniberu;sanivela;sannibhela;sanyfal;sany‌wyl kalyfrnya;sen ni wei er;seonibeil;snywyl;Санивејл;Саннивейл;Саннівейл;Сънивейл;סאניווייל;سانيفال;سانی‌ویل، کالیفرنیا;سنیویل;सनीवेल;सन्नीभेल;サニーベール;森尼韦尔;서니베일; +city::5401395;Temecula;Temecula;Temecula Station;Temekjula;Temekula;te man ku la;temakula;temekyura;tmwkwla kalyfrnya;tymykwla;Темекула;Темекјула;تموکولا، کالیفرنیا;تيميكولا;ٹیمکولا;तेमाकुला;テメキュラ;特曼库拉; +city::5402405;Thousand Oaks;Tauzand Ouks;Tauzend-Ouks;Tauzund Ouks;qian xiang shi;saujeondeuokeuseu;sauzandookusu;tawznd awks;tha'ujenda oksa;thwsnd awks;Таузанд Оукс;Таузенд-Оукс;Таузънд Оукс;تاوزند اوکس;تھاؤسینڈ اوکس;ثوسند أوكس;थाउजेन्ड ओक्स;サウザンドオークス;千橡市;사우전드오크스; +city::5403022;Torrance;TOA;Torans;Torrance;Torrans;Torrens;Toruns;toleonseu;toransa;toransu;tuo lun si;twrans kalyfrnya;twrransy;Торанс;Торранс;Торренс;Торънс;تورانس، کالیفرنیا;توررانسي;ٹورینس;टोरान्स;トーランス;托倫斯;토런스; +city::5403191;Tracy;Tracy;Trejsi;te lei xi;trasay;tresi;trysy kalyfrnya;Трейси;Трејси;تراساي;تریسی، کالیفرنیا;ٹریسی;ट्रेसी;特雷西; +city::5403783;Tulare;TLR;Tjuleri;Tular;Tuleri;tu lai li;tulera;twlary;twlr kalyfrnya;Тулар;Тулери;Тюлери;تولاري;تولر، کالیفرنیا;टुलेर;图莱里; +city::5404024;Turlock;Sierra;Terlok;Turlock;Turlok;taralaka;te luo ke;trlwk;twrlak kalyfrnya;Терлок;Търлок;ترلوك;تورلاک، کالیفرنیا;टरलक;特洛克; +city::5404119;Tustin;Tastin;Tustin;Tustin City;ta si ting;tasatina;tastyn kalyfrnya;teoseutin;twstyn;Тастин;Тъстин;تاستین، کالیفرنیا;توستين;टसटिन;塔斯廷;터스틴; +city::5404555;Union City;Juni"n Siti;Junion Siti;Junion-Siti;Thanh pho Union;Thành phố Union;Union City;lian he shi;yunieonsiti;yuniyana siti;ywnyn syty kalyfrnya;ywnywn syty;Јунион Сити;Юниън Сити;Юніон-Сіті;يونيون سيتي;یونین سٹی، کیلیفورنیا;یونین سیتی، کالیفرنیا;युनियन सिटी;聯合市;유니언시티; +city::5404794;Universal City;Juniversal-Siti;Junivursul Siti;huan qiu shi;yunibeoseolsiti;ywnyfrsal syty;ywnywrsal syty kalyfrnya;Юниверсал-Сити;Юнивърсъл Сити;يونيفرسال سيتي;یونیورسال سیتی، کالیفرنیا;環球市;유니버설시티; +city::5404915;Upland;"plend;Apland;CCB;Magnolia Villa;North Ontario;Upland;a pu lan;abland;ap lnd kalyfrnya;apalyanda;eoblaendeu;Апланд;Ъпленд;آبلاند;آپ لند، کالیفرنیا;अपल्यांड;阿普兰;업랜드; +city::5405228;Vacaville;Vacaville;Vakavil;bhakabhila;fakafyly;wa ka wei er;wakawyl kalyfrnya;Βάκαβιλ;Вакавил;فاكافيلي;واکاولے;واکاویل، کالیفرنیا;भाकाभिल;瓦卡维尔; +city::5405288;Valencia; +city::5405380;Vallejo;VLO;Val'ekho;Val'jo;Valejo;Valekho;Vallejo;balleio;bhaleyo;falyjw;vu~areho;wa lie huo;walhw kalyfrnya;walyjw;Валехо;Валејо;Вальехо;Вальйо;فاليجو;والهو، کالیفرنیا;والیجو;भालेयो;ヴァレーホ;瓦列霍;발레이오; +city::5405693;Van Nuys;Van-Najs;baennaijeu;fan nwys;Ван-Найс;فان نويس;ون نایز، لس‌آنجلس;밴나이즈; +city::5405878;Ventura;La Asumpta;La Asuncionde Nuestra Senora;La Pueblo de los Canoas;Mishkanakan;Mitskanakan;Poinsettia City;Ponsettia City by the Sea;Pueblo De las Canoas;Pueblo de Canoas;S B Ventura;San Buenaventura;The Palm City;Ventura;Ventura-by-the Sea;benchura;bentula;fyntwra;syana byuyanabhencura;wen tu la;wnchra;wntwra kalyfrnya;Вентура;فينتورا;ونتورا، کالیفرنیا;ونچرا;स्यान ब्युयनाभेन्चुरा;ベンチュラ;文图拉;벤투라; +city::5406222;Victorville;Huntington;Mormon Crossing;VCV;Victor;Victorville;Viktorvil;Viktorvill;Vikturvil;bhiktarabhila;bigteobil;fyktwrfyly;vu~ikutavu~iru;wei ke duo wei er;wyktwr wyl kalyfrnya;Викторвил;Викторвилл;Виктървил;فيكتورفيلي;وکٹورولے;ویکتور ویل، کالیفرنیا;भिक्टरभिल;ヴィクターヴィル;维克多维尔;빅터빌; +city::5406567;Visalia;Buena Vista;VIS;Vajsejlija;Vajselija;Vicealia;Visaija;Visalia;Visejlija;baiseiria;bhisaliya;fysalya;wei sai li ya;wysalya;wysalya kalyfrnya;Вайселия;Вајсејлија;Висейлия;Вісейлія;فيساليا;ویسالیا;ویسالیا، کالیفرنیا;भिसालिया;バイセイリア;維塞利亞; +city::5406602;Vista;Vista;bhista;biseuta;fysta;wei si ta;wysta kalyfrnya;Виста;فيستا;وسٹا;ویستا، کالیفرنیا;भिस्टा;维斯塔;비스타; +city::5406990;Walnut Creek;Uoln"t Krijk;Uolnat-Krik;Volnat Krik;Volnat-Krik;Walnut Creek;he tao xi;u~orunattokuriku;valanata krika;walnat kryk kalyfrnya;walnwt kryk;wolneoskeulig;Волнат Крик;Волнат-Крік;Уолнат-Крик;Уолнът Крийк;والنات کریک، کالیفرنیا;والنوت كريك;वालनट क्रीक;ウォールナットクリーク;核桃溪;월넛크릭; +city::5407529;Watsonville;Apple City;Pajaro;Sugar City;Uotsunvil;Votsonvil;WVI;Watsonville;vatasanabhila;watosonbiru;watswn wyl kalyfrnya;watswnfyl;wo sen wei er;Вотсонвил;Уотсънвил;واتسون ویل، کالیفرنیا;واتسونفيل;वाटसनभिल;ワトソンビル;沃森维尔; +city::5407933;West Covina;Okcidenta Covina;Uehst-Kovina;Vest Kovina;West Covina;Zapadna Kovina;Zapadnaja Kovina;u~esutokobina;vesta kobhina;weseuteukobina;wst kwwyna kalyfrnya;wst qwbynh;wyst kwfyna;xi ke wen na;Вест Ковина;Западна Ковина;Западная Ковина;Уэст-Ковина;וסט קובינה;وست کووینا، کالیفرنیا;وسٹ کووینا;ويست كوفينا;वेस्ट कोभिना;ウェストコビーナ;西柯汶纳;웨스트코비나; +city::5408211;West Sacramento;Vest Sakramento;Zapaden Sakramento;vesta syakramento;wst sakramntw kalyfrnya;wyst sakramyntw;xi sa ke la men tuo;Вест Сакраменто;Западен Сакраменто;وست ساکرامنتو، کالیفرنیا;ويست ساكرامينتو;वेस्ट स्याक्रामेन्टो;西萨克拉门托; +city::5408406;Westminster;Uestministur;Vestminster;Westminister;Westminster;vestaminstara;wei si min si te;wst mynstr kalyfrnya;wystmynstyr;Вестминстер;Уестминистър;وست مینستر، کالیفرنیا;وسٹ منسٹر;ويستمينستير;वेस्टमिन्स्टर;威斯敏斯特; +city::5409059;Whittier;Uitiur;Vitir;Whittier;hui ti er;hwitieo;u~ittia;vhitiyara;waytyr kalyfrnya;wytyr;Витир;Уитиър;وائٹئر;وایتیر، کالیفرنیا;ويتير;व्हिटियर;ウィッティア;惠提尔;휘티어; +city::5410430;Woodland;By Hell;Udlend;Vudland;Woodland;Yolo City;uddorando;udeullaendeu;vudalyanda;wu de lan;wwdlnd kalyfrnya;wwwdland;Вудланд;Удленд;وودلند، کالیفرنیا;ووودلاند;ووڈلینڈ، کیلیفورنیا;वूडल्यान्ड;ウッドランド;伍德兰;우들랜드; +city::5410438;Woodland Hills;Girad;Girard;Woodland Hills; +city::5410902;Yorba Linda;Jorba Linda;Jorba-Linda;Jorbalinda;Yorba Linda;yobalinda;yobarinda;yobra linda;yue ba lin da;ywrba lynda;ywrba lynda kalyfrnya;Јорба Линда;Йорба Линда;Йорба-Линда;Йорба-Лінда;يوربا ليندا;یوربا لیندا، کالیفرنیا;یوربہ لنڈا، کیلی فورنیا;योब्रा लिन्डा;ヨーバリンダ;约巴林达;요바린다; +city::5411015;Yuba City;Juba Siti;Juba-Siti;Kota Yuba;Thanh pho Yuba;Thành phố Yuba;Yuba Lakanbalen;you ba cheng;yuba siti;yubashiti;ywba syty;ywba syty kalyfrnya;Јуба Сити;Юба Сити;Юба-Сити;يوبا سيتي;یبا سٹی، کیلی فورنیا;یوبا سیتی، کالیفرنیا;युबा सिटी;ユバシティ;尤巴城; +city::5411046;Yucaipa;Jukajpa;Jukipa;you ka pa;yuka'ipa;yukaipa;ywkaypa kalyfrnya;ywkyba;ywkypa kyly fwrnya;Јукајпа;Юкипа;يوكيبا;یوکایپا، کالیفرنیا;یوکیپا، کیلی فورنیا;युकाइपा;尤卡帕;유카이파; +city::5412199;Arvada;Arvada;Arvado;Arveda;Ralston Point;Ralston Station;a wa da;abada;arbhada;arfada;arvada kwlwradw;arwada klradw;Арвада;Арведа;ארבאדה;آروادا، کلرادو;آرواڈا، کولوراڈو;آرڤادا، کولورادو;أرفادا;अर्भादा;アーバダ;阿瓦達; +city::5412347;Aurora;Aurora;Avrora;Fletcher;Orora;ao luo la;arwra klradw;aurora;awrwra;olola;orora;Аврора;Аурора;Орора;אורורה;آرورا، کلرادو;أورورا;ارورا، کولوراڈو;ऑरोरा;औरोरा;オーロラ;奥罗拉;오로라; +city::5415035;Broomfield;BJC;Broomfield;Broomfield Heights;City of Broomfield;Zangs Spur; +city::5416329;Castle Rock;Kasl Rok;Kasul Rok;cheng bao shi;kasl rak klradw;kasl rwk;kyasala raka;Касл Рок;Касъл Рок;كاسل روك;کاسل راک، کلرادو;کیسل راک، کولوراڈو;क्यासल रक;城堡石; +city::5416541;Centennial;Centennial;Sentenial;Sentenijal;Sentennial;sen te ni er;senteniaru;sntnyal klradw;syntynyal;Сентениал;Сентенијал;Сентенниал;Сентенніал;Центенниал;סנטניאל;سنتنیال، کلرادو;سينتينيال;سینٹینیل، کولوراڈو;センテニアル;森特尼尔; +city::5417598;Colorado Springs;COS;Colorado Springs;El Paso;Fontes Coloratenses;Gorad Kalarada-Spryngs;Kolorado Springs;Kolorado Springsas;Kolorado Sprinqs;Kolorado-Springs;Kolorado-Springz;Koloradospringsa;Koloranto Sprin'nks;Kolorādospringsa;kalorado sprinsa;ke luo la duo si pu lin si;klradw aspryngz;kolloladoseupeulingseu;kolorado springja;kolorado springs;kolorryado springas;kororadosupuringusu;kwlwradw sbrynghs;qwlwrdw spryngs;Κολοράντο Σπρινγκς;Горад Каларада-Спрынгс;Колорадо Спрингс;Колорадо-Спрингс;Колорадо-Спрінгз;Կոլորադո Սպրինգս;קולורדו ספרינגס;كولورادو سبرينغس;کلرادو اسپرینگز;کولاریڈو سپرنگس، کولاریڈو;कॉलोराडो स्प्रिंग्ज;कोलोराडो स्प्रिंग्स्;कोलोर्र्याडो स्प्रिङ्गस्;কলোরাডো স্প্রিংস;კოლორადო-სპრინგზი;コロラドスプリングス;科罗拉多斯普林斯;콜로라도스프링스; +city::5417737;Commerce City;Commerce City;Commerce Town;Derby;Komers Siti;Kommerse Siti;Kumurs Siti;kamarsa siti;kamrs syty klradw;keomeoseusiti;kwmyrk syty;shang mao cheng;Комерс Сити;Коммерсе Сити;Къмърс Сити;كوميرك سيتي;کامرس سٹی، کولوراڈو;کامرس سیتی، کلرادو;कमर्स सिटी;商贸城;커머스시티; +city::5419384;Denver;DEN;Dehnver;Denber;Denv"r;Denver;Denver County;Denvera;Denveres;Denveris;Denverium;Denvero;Denverės;Denwer;Dénwér;Gorad Dehnver;Mile-High City;Ntenver;Queen City of the Plains;Saint Charles;The Mexican Diggings;The Spanish Diggings;dainavara;dan fu;denabhara;denabhara ka'unti;denavara;denba;denbeo;denbhara;denvar;denveri;denvhara;denwexr;dnfr;dnwr;dnwr klradw;dnwwr;tenvar;Ντένβερ;Горад Дэнвер;Денвер;Денвър;Дэнвер;Դենվեր;דנוור;דענווער;دنفر;دنور;دنور، کلرادو;ڈینور;डॅनवर;डेन्भर;डेन्वर्;डेन्व्हर;देन्भर;ডেনভার;ডেনভার কাউন্টি;ਡੈਨਵਰ;டென்வர்;డెన్వర్;ഡെൻവർ;เดนเวอร์;დენვერი;ደንቨር;デンバー;丹佛;덴버; +city::5423573;Grand Junction;GJT;Grand DZankshon;Grand Dzhankshen;Grand Dzhankshn;Grand Dzhunkshun;Grand Junction;Grand-Dzhankshen;Grand-Dzhankshn;Ute;da zhang ke shen;ghrand jnkshn;gramda janksana;grand jankshn klradw;gryanda janksana;gurandojankushon;Гранд Џанкшон;Гранд Джанкшен;Гранд Джанкшн;Гранд Джънкшън;Гранд-Джанкшен;Ґранд-Джанкшн;גראנד גנקשן;غراند جنكشن;گراند جانکشن، کلرادو;گرینڈ جنکشن، کولوراڈو;ग्रँड जंक्शन;ग्र्यान्ड जंक्सन;グランドジャンクション;大章克申; +city::5425043;Highlands Ranch;Hailands Rancas;Hailands Rančas;Highlands Ranch;Khajlands Ranch;ha'ilyandsa rryanca;Хайландс Ранч;Хајландс Ранч;हाइल्यांड्स र्र्यान्च; +city::5427946;Lakewood;Lakewood;Lehjkvud;Lejkud;Lejkvud;lai ke wu de;leikeuudeu;lekavuda;lykwwd;lykwwd klradw;lyyqwwd;reikuuddo;Лейквуд;Лейкуд;Лејквуд;Лэйквуд;לייקווד;ليكوود;لیک ووڈ، کولوراڈو;لیکوود، کلرادو;लेकवूड;レイクウッド;萊克伍德;레이크우드; +city::5435464;Pueblo;Independence;PUB;Pueblo;Puehblo;bwyblw;peblo;phiw bol;pu wei bu luo;puebeullo;pueburo;pwablw klradw;pyu'eblo;pywblw;Пуебло;Пуэбло;פואבלו;بويبلو;پوابلو، کلرادو;پوابلو، کولوراڈو;پیوبلو;पेब्लो;प्युएब्लो;พิวโบล;プエブロ;普韋布洛;푸에블로; +city::5441492;Thornton;Sorton;Thornton;Tornton;Torntun;sang dun;sonton;swrntwn klradw;tharnatana;thwrntwn;twrntwn;Сортон;Торнтон;Торнтън;תורנטון;تھورن ٹن، کولوراڈو;ثورنتون;سورنتون، کلرادو;थर्नटन;ソーントン;桑頓; +city::5443910;Westminster;Harris Park;Uestminstur;Vestminster;Westminster;u~esutominsuta;vestaminstara;wei si min si te;wstmnstr;wstmynstr;wstmynstr klradw;Вестминстер;Вестмінстер;Уестминстър;וסטמינסטר;وستمنستر;وستمینستر، کلرادو;ویسٹ منسٹر، کولوراڈو;वेस्टमिन्स्टर;ウェストミンスター;威斯敏斯特; +city::5454711;Albuquerque;ABQ;Al'bukerke;Albak"rki;Albakerki;Albjukuehrokju;Albukerke;Albukerki;Albukerkė;Albukwer kwe;Albukwér kwé;Albuquerque;Alburquerque;Almpoukerki;Beeldil Daesenili *;Beeʼeldííl Dahsinil;Duke City;New Albuquerque;San Felipe de Neri;San Francisco Xavier;San Francisco de Albuquerque;The Duke City;Vokekyi Leuwi *;a bu kui ji;aelbeokeoki;alabakarki;alabukaraki;albakrky;albukark;albukarki;albukʼerkʼe;albwkrk nyw myksykw;albwkrky;alpukerkki;arubakaki;Αλμπουκέρκη;Албакерки;Албакърки;Албукерки;Албюкуэрокю;Альбукерке;Ալբուկերկե;אלבקרקי;آلبوکرک، نیو میکسیکو;ألباكركي;البوکرکی;आल्बुकर्की;আলবাকার্কি;ਅਲਬੂਕਰਕੀ;ஆல்புகெர்க்கி;ಆಲ್ಬುಕರ್ಕ್;แอลบูเคอร์คี;ალბუკერკე;アルバカーキ;阿布奎基;앨버커키; +city::5475352;Las Cruces;LRU;Las Cruces;Las Krjusehs;Las Kruses;Las Krusis;Las-Kruses;la si ke lu sai si;las kruces;las krwss nywmkzykw;las krwsys;las krwsys nyw myksykw;laseukeulusiseu;rasukurusesu;Лас Крусес;Лас Крусис;Лас Крюсэс;Лас-Крусес;לאס קרוסס;لاس كروسيس;لاس کروسس، نیومکزیکو;لاس کروسیس، نیو میکسیکو;லாஸ் க்ரூசெஸ்;ラスクルーセス;拉斯克鲁塞斯;라스크루시스; +city::5487810;Rio Rancho;Rio Rancho;Rio-Rancho;Río Rancho;liolaencho;riorancho;ryw rantshw;ryw rnchw nywmkzykw;ryw rynchw nyw myksykw;Рио Ранчо;Рио-Ранчо;Ріо-Ранчо;ريو رانتشو;ریو رنچو، نیومکزیکو;ریو رینچو، نیو میکسیکو;リオランチョ;리오랜초; +city::5487811;Rio Rancho;Rio Rancho;Rio Rancho Estates;Rio-Rancho;Рио-Ранчо; +city::5490263;Santa Fe;Alavija *;Gorad Santa-Feh;Hashoko *;Hulpana *;Kwa'apoge *;La Villa;La Villa Real de Santa Fe de San Francisco;La Villa de Santa Fe;Ogapoge *;Pala *;Poge *;SAF;San daxeye *;Sanctae Fidei fanum;Santa Fe;Santa Fe Analco;Santa Fe de San Francisco;Santa Fe ou Granada;Santa Feh;Santa Fé;Santa Fė;Santa-Fe;Santafe;Santafē;Yoo'to;Yooto;Yootó;Yotqo *;ZSH;canta pe;santa fe;santa fyh;santa phe;santafe;santape;sheng da fei;sheng fei;sntafh nywmkzykw;snth ph;Σάντα Φε;Горад Санта-Фэ;Санта Фе;Санта Фэ;Санта-Фе;Սանտա Ֆե;סנטה פה;سانتا فيه;سانتا فێ;سانتا فے، نیو میکسیکو;سانٹا فے;سنتافه، نیومکزیکو;सांता फे;साण्टा फे;सान्टा फ़े;सान्ता फे;சாந்தா பே;แซนตาเฟ;სანტა-ფე;サンタフェ;圣菲;聖大非;산타페; +city::5501344;Carson City;Altepetl Carson;CSN;Carson;Carson City;Carson City County;Carson city;Carsonurbo;Gorad Karsan-Sici;Karson Siti;Karson Sitis;Karson-Siti;Karsonsitija;Karsun Siti;Kota Carson;Kārsonsitija;Lungsod ng Carson;Thanh pho Carson;Thành phố Carson;ka sen cheng;karcan nakaram;karsan siti;karsana siti;karswn syty;kaseunsiti;kasonshiti;kharsansiti;qrswn syty;Κάρσον Σίτι;Горад Карсан-Сіці;Карсон Сити;Карсон-Сити;Карсон-Сіті;Карсън Сити;Քարսոն Սիթի;קרסון סיטי;كارسون سيتى;كارسون سيتي;کارسن سٹی;کارسن شہر، نیواڈا;کارسون‌سیتی;कार्सन सिटी;कार्सन सिति;कार्सन् सिटी;কার্সন সিটি;கார்சன் நகரம்;คาร์สันซิตี;カーソンシティ;卡森城;카슨시티; +city::5503766;Enterprise;Enterprajz;antrbrayz;antrprayz nwada;entapuraizu;Ентерпрајз;إنتربرايز;انترپرایز، نوادا;انٹرپرائز، نیواڈا;エンタープライズ; +city::5505411;Henderson;Basic;Chenterson;Genderson;Gorad Khendehrsan;Henderson;Hendersonas;Jericho Heights;Khenderson;Khendersun;Midway City;Pittman;hendason;hendeoseun;heng de sen;hndrswn;hndrswn nwada;Χέντερσον;Гендерсон;Горад Хендэрсан;Хендерсон;Хендерсън;הנדרסון;هندرسون;هندرسون، نوادا;ہینڈرسن، نیواڈا;ヘンダーソン;亨德森;헨더슨; +city::5506956;Las Vegas;Campi;Gorad Las-Vegas;LAS;Las Vegas;Las Vegas Mission;Las Vegas Ranch;Las Vegasas;Las Venkas;Las-Vegas;Las-Veqas;Lasvegasa;Lasvegaso;Los Vegas;Lungsod ng Las Vegas;McWilliamstown;Naʼazhǫǫsh Hátsoh;Old Town;Piigisi;Ragtown;Vegas;Westside;la si wei jia si;las fyghas;las vegas;las vekas;las veygas;las weka s;las wgas;las wygas nywaڈa;las-vegasi;lasa bhegasa;lasa vegasa;lasa vhegasa;laseubegaseu;laseubeigeoseu;lʼs wgʼs;rasubegasu;Λας Βέγκας;Горад Лас-Вегас;Лас Вегас;Лас-Вегас;Լաս Վեգաս;לאס וגאס;לאס וועגאס;لاس فيغاس;لاس وگاس;لاس ویگاس، نیواڈا;لاس‌وقاس;लास वेगास;लास व्हेगस;লাস ভেগাস;ਲਾਸ ਵੇਗਸ;લાસ વેગાસ;லாஸ் வேகஸ்;లాస్ వెగాస్;ലാസ് വെയ്ഗസ്;ลาสเวกัส;လပ်ဗီးဂပ်စ်မြို့;ლას-ვეგასი;ላስ ቬጋስ;ラスベガス;拉斯維加斯;拉斯维加斯;라스베가스;라스베이거스; +city::5509403;North Las Vegas;Bac Las Vegas;Bắc Las Vegas;Norda Lasvegaso;Nort-Las-Vegas;North Las Vegas;Severen Las Vegas;Severni Las Vegas;Vegas Verdes;Vegas Verdi;bei la si wei jia si;las wgas shmaly nwada;noseulaseubeigeoseu;nosurasubegasu;nwrth las fyghas;Норт-Лас-Вегас;Северен Лас Вегас;Северни Лас Вегас;لاس وگاس شمالی، نوادا;نارتھ لاس ویگاس، نیواڈا;نورث لاس فيغاس;ノースラスベガス;北拉斯維加斯;노스라스베이거스; +city::5509952;Paradise;Paradajs;Paradajz;Paradise;baradays;paeleodaiseu;paradaisu;paradays nwada;tian tang shi;Парадайз;Парадайс;Парадајс;بارادايس;پارادایس، نوادا;پيراڈائز، نیواڈا;パラダイス;天堂市;패러다이스; +city::5511077;Reno;Fullers Crossing;Lakes Crossing;RNO;Rehno;Reno;Reno-Stead;Rino;Rynas;Rīno;lei nuo;lino;rino;rynw;rynw nwada;Ρίνο;Рено;Рино;Рэно;רינא;רינו;رينو;رینو;رینو، نوادا;رینو، نیواڈا;रिनो;リノ;雷諾;리노; +city::5512862;Sparks;Harriman;Sparks;asparks nwada;sbarks;seupakeuseu;Спаркс;اسپارکس، نوادا;سباركس;سپارکس، نیواڈا;스파크스; +city::5512909;Spring Valley;Spring Vali;Spring Valley;Spring-Vehlli;aspryng wly nwada;sbryngh faly;seupeulingbaelli;supuringubare;Спринг Вали;Спринг-Вэлли;اسپرینگ ولی، نوادا;سبرينغ فالي;سپرنگ ویلی، نیواڈا;スプリングバレー;스프링밸리; +city::5513343;Sunrise Manor;Sanrajz Mejnor;Sanrajz-Mehner;Sunrise Manor;sanraizumana;sanrayz mnwr nwada;snrayz manwr;Санрайз-Мэнер;Санрајз Мејнор;سانرایز منور، نوادا;سنرائز مینور، نیواڈا;سنرايز مانور;サンライズマナー; +city::5516233;Amarillo;AMA;Amarilas;Amarillo;Amarilo;Amarilyo;Oneida;a ma li luo;aemeolillo;amariro;amariyo;amarylw;amarylw tgzas;Амарилло;Амарило;Ամարիլլո;אמרילו;آماریلو، تگزاس;آماریلو، ٹیکساس;أماريلو;اماریلو;आमारियो;アマリロ;阿馬里洛;애머릴로; +city::5520993;El Paso;ELP;Ehl'-Paso;El Pasas;El Paso;El'-Paso;El-Paso;Elpaso;Gorad Ehl'-Pasa;Magoffinsville;Passus;ai er pa suo;al basw;al pasw;ayl pasw;el-paso;ela peso;ela pyaso;elpaeso;Ελ Πάσο;Горад Эль-Паса;Ел Пасо;Ель-Пасо;Эль-Пасо;Էլ Պասո;אל פאסו;إل باسو;ال پاسو;ایل پاسو;एल पॅसो;এল প্যাসো;เอลแพโซ;ელ-პასო;ელ-ფასო;エル・パソ;艾爾帕索;엘패소; +city::5525577;Lubbock;LBB;Labbok;Labok;Lubbock;Lubuk;la bo ke;labak tgzas;labaka;lbk;leobeog;lwbwk;rabokku;Лаббок;Лабок;Лъбък;לאבק;لاباک، تگزاس;لابوک، ٹیکساس;لبک;لوبوك;लबक;ラボック;拉伯克;러벅; +city::5526337;Midland;MAF;Midland;Midlend;Midway;mdland;mi de lan;middorando;mideullaendeu;mydlnd;mydlnd tgzas;Мидланд;Мидленд;Мідленд;מידלנד;مدلاند;مڈلینڈ، ٹیکساس;میدلند، تگزاس;ミッドランド;米德蘭;미들랜드; +city::5527554;Odessa;Odesa;Odessa;ao de sa;awdsa;awdysa;odessa;Одеса;Одесса;أوديسا;اودسا;اوڈیسا، ٹیکساس;اوڈیسہ، ٹیکساس;オデッサ;敖德薩; +city::5530022;San Angelo;SJT;San Andzelo;San Angelo;saen-aenjello;san anjylw;san aynjlw;san'anjero;sheng an ji luo;sn anjlw tgzas;Сан Анџело;سان أنجيلو;سان اینجلو;سان اینجلو، ٹیکساس;سن آنجلو، تگزاس;サンアンジェロ;聖安吉洛;샌앤젤로; +city::5546220;Saint George;SGU; +city::5552301;Avondale;Avondale;Avondale Ranch;Avondejl;Avundejl;Ejvondejl;Litchfield;afwndyl;ai wen dai er;awndyl aryzwna;ebhonadela;Авондејл;Авъндейл;Ейвондейл;أفونديل;اوندیل، آریزونا;ایونڈیل، ایریزونا;एभोनडेल;埃文代尔; +city::5570160;Redding;Latona;RDD;Reading;Redding;Reding;leding;lei ding;rdyng kalyfrnya;rdyngh;redinga;redingu;Реддинг;Рединг;ردينغ;ردینگ، کالیفرنیا;ریڈنگ،امریکہ;रेडिंग;レディング;雷丁;레딩; +city::5574991;Boulder;Bolder;Boulder;Bouldur;WBU;ba'uldara;bo de;boldara;bolde xr;boldeo;boruda;bwldr;bwldr klradw;Болдер;Боулдер;Боулдър;בולדר;بولدر;بولدر، کلرادو;بولڈر، کولوراڈو;बाउल्डर;बोल्डर;โบลเดอร์;ボルダー;波德;볼더; +city::5577147;Fort Collins;Camp Collins;FNL;Fort Collins;Fort Kolins;Fort Kolinsas;Fort Kollins;Fort-Kollins;Ft. Collins;fwrt kalynz klradw;fwrt kwlnz;ke lin si bao;pharta kolinsa;phorta kolinsa;poteukollinseu;pwrt qwlyns;Форт Колинс;Форт Коллинс;Форт-Коллинс;Форт-Коллінс;פורט קולינס;فورت كولنز;فورت کالینز، کلرادو;فورٹ کولنز، کولوراڈو;फर्ट कोलिन्स;फोर्ट कॉलिन्स;フォート・コリンズ;科林斯堡;포트콜린스; +city::5577592;Greeley;GXY;Greeley;Greely;Grijli;Grili;ge li li;ghryly;grili;gryly;gryly klradw;guriri;Грийли;Грили;גרילי;غريلي;گریلی، کلرادو;گریلی، کولوراڈو;ग्रीली;グリーリー;格里利; +city::5579276;Longmont;Longmont;Longmott;Longmunt;lang meng te;langamonta;langmant klradw;longmeonteu;lwnghmwnt;rongumonto;Лонгмонт;Лонгмотт;Лонгмънт;لانگمانت، کلرادو;لونغمونت;لونگمونٹ، کولوراڈو;लङ्गमोन्ट;ロングモント;朗蒙特;롱먼트; +city::5579368;Loveland;FNL;Lavland;Lovland;Luvlend;la fu lan;labhalyanda;lawlnd klradw;leobeulaendeu;lwfland;Лавланд;Ловланд;Лъвленд;لاولند، کلرادو;لوفلاند;لولینڈ، کولوراڈو;लभल्यान्ड;拉夫兰;러브랜드; +city::5586437;Boise;BOI;Boise;Boise City;Boisisitija;Boisė;Boizi;Boizis;Bojse;Bojsi;Bojzi;Boyse;Gorad Bojseh;baysi;bo yi xi;bo'ija;bo'ijhi;bo'isi;boise;boishi;boisi;bwysy;bwyz;bwyzy aydahw;poyci;Μπόιζι;Бойзи;Бойсе;Бојси;Горад Бойсэ;Բոյսե;בויסי;بوئسے;بويسي;بویز;بویزی، آیداهو;बाय्सी;बॉइझी;बोइज;बोइसी;பொய்சி;ಬಾಯ್ಸಿ;ბოისე;ボイシ;博伊西;보이시; +city::5587698;Caldwell;Caldwell;Hamburg Siding;Kolduehll;Kolduel;Koldvel;kaldavela;kaldwl;kaldwyl;koldeuwel;korudou~eru;qwldwwl;Колдвел;Колдуел;Колдуэлл;קולדוול;كالدويل;کالدول;کالڈویل، ایڈاہو;काल्डवेल;კოლდუელი;コールドウェル;콜드웰; +city::5596475;Idaho Falls;Ajdago-Folls;Ajdakho Fols;Ajdakho-Fols;IDA;a'id'aho phalsa;ai da he fu er si;aidaho-polsi;aidahoforuzu;aydahw falz aydahw;aydahw fwlz;Айдаго-Фоллс;Айдахо Фолс;Айдахо-Фолс;Ајдахо Фолс;آیداهو فالز، آیداهو;أيداهو فولز;ایڈاہو فالز، ایڈاہو;आइडाहो फल्स;აიდაჰო-ფოლსი;アイダホフォールズ;爱达荷福尔斯; +city::5600685;Meridian;Meridian;Meridijan;Muridiun;meridian;meridiani;meridiyana;mrydyan aydahw;myrydyan;Меридиан;Меридијан;Меридіан;Мъридиън;مریدیان، آیداهو;ميريديان;میریڈیئن، ایڈاہو;मेरिडियन;მერიდიანი;メリディアン; +city::5601933;Nampa;Nampa;New Jerusalem;namba;nampa;nampa aydahw;nan pa;nanpa;Нампа;نامبا;نامپا، آیداهو;نامپا، ایڈاہو;नाम्पा;ნამპა;ナンパ;楠帕; +city::5604045;Pocatello;PIH;Pocatello;Pocatello Junction;Pokatello;Pokatelo;Poukatelou;bo ka te luo;bwkatylw;pokatelo;pokaterro;pokeotello;pwkatlw aydahw;Покателло;Покатело;Поукателоу;بوكاتيلو;پوکاتلو، آیداهو;پوکاٹیلو، ایڈاہو;पोकातेलो;პოკატელო;ポカテッロ;波卡特洛;포커텔로; +city::5640350;Billings;Area metropolitana de Billings;BIL;Belinum;Billings;Billings Metropolitan Area;biringusu;Área metropolitana de Billings;Биллингс;ビリングス; +city::5655240;Great Falls;Electric City;GTF;Great Falls;Grejt Fols;Grejt-Fols;Grit Fouls;da pu bu cheng;ghryt fwlz mwntana;guretoforuzu;Грейт Фолс;Грейт-Фолс;Грејт Фолс;Грит Фоулс;غريت فولز، مونتانا;グレートフォールズ;大瀑布城; +city::5666639;Missoula;Hnme'suuli;Im-i-sul-e-tiku;In-mae-soo-la;In-may-soo-let-que;MSO;Missoula;Missoula Mills;Missula;Misula;Mizula;Nemissoolatakoo;mi su la;mijulla;mizura;myswla;myzwla mwntana;myzwlh;Мизула;Миссоула;Миссула;Мисула;Міссула;מיזולה;ميسولا;میزولا، مونتانا;میسولا، مونٹانا;ミズーラ;米蘇拉;미줄라; +city::5688025;Bismarck;BIS;Bismak;Bismarck;Bismarck i Nord-Dakota;Bismark;Bismarka;Bismarkas;Bismarks;Bismàk;Bizmark;Edwinton;Gorad Bismark;The Crossing;bi si mai;bijeumakeu;bismark;bismarka;bisumaku;bysmark;bysmark dakwtay shmaly;bysmrq;pismark;Μπίσμαρκ;Бизмарк;Бисмарк;Бісмарк;Горад Бісмарк;Բիսմարկ;ביסמרק;انٹیل;بسمارک، شمالی ڈکوٹا;بيسمارك;بیسمارک، داکوتای شمالی;बिस्मार्क;பிஸ்மார்க்;บิสมาร์ก;ბისმარკი;ビスマーク;俾斯麥;비즈마크; +city::5710756;Albany;Albani;Ehlbani;Olbani;albany;albany awrgn;albany awrygwn;ao er ba ni;orubani;xxlbani;Албани;Олбани;Элбани;آلبانی، اورگن;ألباني;البانی، اوریگون;ออลบานี;オールバニ;奥尔巴尼; +city::5713376;Beaverton;Beaverton;Beaverton Old Siding;Bijvurtun;Bivehrton;Biverton;bibaton;byfyrtwn;bywrtwn awrgn;Бивертон;Бивэртон;Бийвъртън;Бівертон;بيفيرتون;بیورتون، اورگن;بیورٹن، اوریگون;ビーバートン; +city::5713587;Bend;Behnd;Bend;ben de;bendo;bnd;bnd awrgn;bynd;Бенд;Бэнд;בנד;بند، اورگن;بيند;ベンド;本德; +city::5720727;Corvallis;CVO;Corvallis;Korvalis;Korvallis;Kovalis;ke wa li si;kobaelliseu;kobarisu;krwlys awrgn;kwrfalys;kwrwyls awrygwn;Ковалис;Корвалис;Корваллис;كورفاليس;کرولیس، اورگن;کورویلس، اوریگون;コーバリス;科瓦利斯;코밸리스; +city::5725846;Eugene;EUG;Eugene;Eugine City;Gorad Judzhyn;Judzhijn;Judzhin;Judzin;Judzinas;Judžinas;you jin;yujin;ywgyn;ywjyn;ywjyn awrgn;Јуџин;Горад Юджын;Юджийн;Юджин;Юджін;יוגין;يوجين;یوجین;یوجین، اورگن;ユージン;ユージーン;尤金;유진; +city::5729485;Gresham;Eugene;Grehskham;Gresham;ghrysham;grsham awrgn;grsm;grysham awrygwn;gureshamu;Грешам;Грэсхам;גרשם;غريشام;گرشام، اورگن;گریشام، اوریگون;グレシャム; +city::5731371;Hillsboro;Chilsmporo;Gilsboro;HIO;Hillsboro;Khillsboro;Khillsborou;Khilsboro;Khilsburo;hiljeubeoleo;hiruzuboro;hylsbrw awrgn;hylsbwrw;xi er si bo lei;Χίλσμπορο;Гілсборо;Хиллсборо;Хиллсбороу;Хилсборо;Хилсбъро;هيلسبورو;هیلسبرو، اورگن;ہلزبورو، اوریگون;ヒルズボロ;希尔斯伯勒;힐즈버러; +city::5740099;Medford;MFR;Medford;mdfwd awrgn;mdpwrd;medeupeodeu;medofodo;mei de fu;mydfwrd;Медфорд;מדפורד;مدفود، اورگن;ميدفورد;میڈفورڈ، اوریگون;メドフォード;梅德福;메드퍼드; +city::5746545;Portland;Bridgetown;Gorad Portlend;P-town;PDX;Portland;Portland i Oregon;Portlandas;Portlandia;Portlando;Portlant;Portlend;Portlenda;Puddletown;Rip City;River City;Stumptown;The City of Roses;bo te lan;bwrtland awryghwn;port land;portalainda;portalanda;portlant;portlendi;poteullaendeu;potorando;pwrtlnd;pwrtlnd awrgn;Πόρτλαντ;Горад Портленд;Портланд;Портленд;Պորտլենդ;פורטלנד;بورتلاند، أوريغون;پورتلند، اورگن;पोर्टलंड;पोर्टलैंड;போர்ட்லன்ட்;పోర్ట్ లాండ్;ಪೋರ್ಟ್‌ಲ್ಯಾಂಡ್‌;พอร์ตแลนด์;პორტლენდი;ფორთლენდი;ポートランド;波特蘭;포틀랜드; +city::5750162;Salem;Chemeketa;Gorad Sejlem;SLE;Salem;Salemas;Salems;Seilema;Sejlem;Sejlum;celam;sai lei mu;salema;salm;saylm;se lem;seilleom;seiramu;selama;selem;sylm awrgan;sylm awrygwn;syylm;Σάλεμ;Горад Сейлем;Салем;Сейлем;Сейлъм;Сејлем;Սալեմ;סיילם;سالم;سايلم;سیلم، اورگان;سیلم، اوریگون;सालेम;सेलम;सेलेम्;சேலம்;เซเลม;セイラム;塞勒姆;세일럼; +city::5754005;Springfield;Springfijld;Springfild;aspyryng fyld awrgn;sbrynghfyld;seupeulingpildeu;si pu lin fei er de;supuringufirudo;Спрингфийлд;Спрингфилд;Спрінгфілд;اسپیرینگ فیلد، اورگن;سبرينغفيلد;سپرنگفیلڈ، اوریگون;スプリングフィールド;斯普林菲尔德;스프링필드; +city::5756758;Tigard;Tajgard;Tigard;Tigurd;tai ge de;taigado;taigeodeu;taygrd awrgn;thi kard;tyghard;Тајгард;Тигард;Тигърд;تایگرد، اورگن;تيغارد;ٹائگرڈ، اوریگون;ไทการ์ด;タイガード;泰格德;타이거드; +city::5768233;Rapid City;Haeohemahpe;Hay Camp;Háeohémahpe;RAP;Rapid;Rapid City;Rapid Siti;Rapid-Siti;la pi de cheng;laepideusiti;rabyd syty;raipida siti;rapiddoshiti;rpyd syty dakwtay jnwby;Рапид Сити;Рапид-Сити;Рапід-Сіті;رابيد سيتي;رپید سیتی، داکوتای جنوبی;ریپڈ سٹی، جنوبی ڈکوٹا;रैपिड सिटी;แรพิดซิตี;ラピッドシティ;拉皮德城;래피드시티; +city::5777107;Layton;Layton;Lejton;Lejtun;laytwn;lei dun;leiteon;lytwn ywta;Лейтон;Лейтън;Лејтон;لايتون;لیتون، یوتا;لیٹن، یوٹاہ;雷顿;레이턴; +city::5777224;Lehi;Lehi;Lehi City;Lehi Junction;Lekhe;Likhaj;lhy ywta;li hai;lyhy;Лехе;Лихай;لحی، یوتا;ليهي;لیہائی، یوٹاہ;李海; +city::5777544;Logan;LGU;Logan;Lougan;luo gen;lwgan ywta;lwghan;rogan;Логан;Лоуган;لوغان;لوگان، یوتا;لوگن، یوٹاہ;ローガン;洛根; +city::5778352;Millcreek;Milkrik;Милкрик;میل‌کریک، یوتا; +city::5779206;Ogden;Brownsville;Fort Buenaventura;Lynne;OGD;Ogden;Ogden City;Ogdun;ao ge deng;awdn ywta;awghdn;ogeudeon;oguden;Огден;Огдън;Оґден;آگڈین، یوٹاہ;أوغدن;اودن، یوتا;オグデン;奥格登;오그던; +city::5779334;Orem;Orem;Oremas;Orum;ao lei mu;awrym;awrym ywta;oremu;Орем;Оръм;أوريم;اورم، یوٹاہ;اوریم، یوتا;オレム;奥勒姆; +city::5780026;Provo;Fort Utah;PVU;Provas;Provo;Provo City;Provou;brwfw;peulobo;prwbw;prwww;prwww ywta;pu ruo fu;purobo;Прово;Провоу;פרובו;بروفو;پرووو;پرووو، یوتا;پرووو، یوٹاہ;プロボ;普若佛;프로보; +city::5780993;Salt Lake City;Cathair Salt Lake;Civitas Lacus Salsi;Gorad Solt-Lehjk-Sici;Kota Salt Lake;Lungsod ng Salt Lake;SLC;Sallaga Urbo;Salt Lake;Salt Lake Ceety;Salt Lake City;Sol Lek Siti;Solt Leik Sites;Solt Leik Siti;Solt Leik Sitis;Solt Leik Sitės;Solt Lejk Siti;Solt Leyk Siti;Solt-Lejk-Siti;Soltleiksitija;Thanh pho Salt Lake;Thành phố Salt Lake;calt lek nakaram;salata leka siti;salt lek siti;salt lyk;salt lyk syty;salta leka siti;solta leka siti;solteuleikeusiti;sorutoreikushiti;swlt lyyq syty;sxltleksiti;yan hu cheng;Σολτ Λέικ Σίτι;Горад Солт-Лэйк-Сіці;Солт Лейк Сити;Солт Лејк Сити;Солт-Лейк-Сити;Солт-Лейк-Сіті;Սոլթ Լեյք Սիթի;סולט לייק סיטי;سالت ليك;سالت لیک سیتی;سالت‌لیک‌سیتی;سالٹ لیک سٹی;سالٹ لیک سٹی، یوٹاہ;साल्ट लेक सिटी;साल्ट् लेक् सिटी;सॉल्ट लेक सिटी;ਸਾਲਟ ਲੇਕ ਸਿਟੀ;சால்ட் லேக் நகரம்;ಸಾಲ್ಟ್ ಲೇಕ್ ಸಿಟಿ;ซอลต์เลกซิตี;ཚྭ་མཚོའི་གྲོང་ཁྱེར།;სოლტ-ლეიკ-სიტი;ソルトレイクシティ;盐湖城;鹽湖城;솔트레이크시티; +city::5781061;Sandy;Sandy;Sandy City; +city::5781770;South Jordan;Juzhen Dzhordan;Saut DZordan;Saut-Dzhordan;jwrdn aljnwbyt;nan qiao dan;sawt jrdn ywta;Саут Џордан;Саут-Джордан;Южен Джордан;جوردن الجنوبية;ساوت جردن، یوتا;ساوتھ جورڈن، یوٹاہ;南乔丹; +city::5782476;Taylorsville;Tejlorsvil;Tejlorsvil';Tejlorsvill;Tejlursvil;tai lei si wei er;taylwrzfyl;teilleoseubil;tylwrzwyl ywta;Тейлорсвилл;Тейлорсвіль;Тейлърсвил;Тејлорсвил;تايلورزفيل;تیلورزویل، یوتا;ٹیلرزویل، یوٹاہ;泰勒斯维尔;테일러스빌; +city::5784549;West Jordan;Okcidenta Jordan;Uehst-Dzhordan;Vest DZordan;Vest-Dzhordan;West Jordan;Zapaden Dzhordan;u~esutojodan;weseuteujodeon;wst gwrdn;wst jrdn ywta;wyst jwrdan;xi qiao dan;Вест Џордан;Вест-Джордан;Западен Джордан;Уэст-Джордан;וסט גורדן;وست جردن، یوتا;ويست جوردان;ویسٹ جورڈن، یوٹاہ;ウェストジョーダン;西喬丹;웨스트조던; +city::5784607;West Valley City;Granger-Hunter;Uehst-Valli-Siti;Uest Vali Siti;Vest Vali Siti;Vest-Velli-Siti;Wast Valley Ceety;West Valley;West Valley City;u~esutobareshiti;wst wly syty ywta;wyst faly syty;xi wa li cheng;Вест Вали Сити;Вест-Веллі-Сіті;Уест Вали Сити;Уэст-Валли-Сити;وست ولی سیتی، یوتا;ويست فالي سيتي;چیسٹرفیلڈ، یوٹاہ;ウェストバレーシティ;西瓦利城; +city::5785965;Auburn;Auburn;Obern;Slaughter;ao ben;awbrn washyngtn;awbwrn;oban;obeon;Оберн;آبرن، واشنگٹن;أوبورن;اوبرن، واشینگتن;オーバーン;奥本;오번; +city::5786882;Bellevue;Bellevue;Belv'ju;Belvju;balfyw;bei er wei you;belavhyu;belbyu;berubyu;blwyw washyngtn;Белвью;Белвю;Белвју;بالفيو;بلویو، واشنگٹن;بلویو، واشینگتن;बेलव्ह्यू;ベルビュー;贝尔维尤;벨뷰; +city::5786899;Bellingham;BLI;Belingam;Belinghem;Belingkham;Bellingham;Bellingkhem;Bellinqham;bei ling e mu;bellinghaem;berinhamu;blyngham washyngtn;bylyngham;Белингам;Белингхам;Беллингхем;Беллінгхем;Բելինգհեմ;בלינגהאם;بلینگهام، واشینگتن;بيلينغام;بیلنگہام;ベリンハム;贝灵厄姆;벨링햄; +city::5788516;Burien;Bjurijen;Bjuriun;baryn washyngtn;berian;bu li en;bwryn;byeolieon;Бюриън;Бјуријен;بارین، واشینگتن;بورين;ベリアン;布里恩;벼리언; +city::5793933;Everett;Ehverett;Everet;Everett;Evuret;PAE;ai fu li te;awrt washyngtn;ayfryt;ebaretto;ebeoles;Еверет;Еверетт;Евърет;Эверетт;אוורט;إيفريت;اورت، واشینگتن;ایورٹ;ایوریٹ، واشنگٹن;エバレット;埃弗里特;에버렛; +city::5794245;Federal Way;Federal Vej;Federal Way;Fedural Uej;fdral wy washyngtn;federaruu~ei;fei de lei er wei;fydral way;pedeoleol-wei;Федерал Веј;Федърал Уей;فدرال وی، واشینگتن;فيدرال واي;فیڈرل وئے، واشنگٹن;فیڈرل وے;フェデラルウェイ;费德勒尔韦;페더럴웨이; +city::5799610;Kennewick;Dell Haven;Kenevik;Keniuik;Kennevik;Kennewick;VSK;ken na wei ke;keneowig;keniu~ikku;kn wyk washyngtn;kynwk;kynwyk;Кеневик;Кениуик;Кенневик;Кенневік;كينويك;کن ویک، واشینگتن;کیناویک، واشنگٹن;کینوک;ケニウィック;肯纳威克;케너윅; +city::5799625;Kent;Kent;Titusville;ken te;kenteu;kento;knt washyngtn;kynt;Кент;كينت;کنت، واشینگتن;کینٹ، واشنگٹن;ケント;肯特;켄트; +city::5799841;Kirkland;Kerkland;Kirklandas;Kurkland;kakurando;ke ke lan;keokeullaendeu;krklnd washyngtn;kyrkland;Керкланд;Къркланд;كيركلاند;کرکلند، واشینگتن;کرکلینڈ، واشنگٹن;カークランド;柯克兰;커클랜드; +city::5800420;Lakewood;Lakewood;Lakewood Center;Lejkud;Lejkvud;lai ke wu de;leikeuudeu;lyk wwd washyngtn;lykwwd;reikuuddo;Лейквуд;Лейкуд;Лејквуд;ليكوود;لیک وود، واشینگتن;لیک ووڈ، واشنگٹن;レイクウッド;莱克伍德;레이크우드; +city::5802570;Marysville;Merisvil;ma li si wei er;marys wyl washyngtn;marysfyly;mearizubiru;melijeubil;myryzwl;Мерисвил;ماريسفيلي;ماریس ویل، واشینگتن;میریزول;میریزویل، واشنگٹن;メアリーズビル;马里斯维尔;메리즈빌; +city::5805687;Olympia;Gorad Alimpija;Marshville;OLM;Olimpeje;Olimpi;Olimpia;Olimpija;Olimpėjė;Olympia;ao lin pi ya;awlmbya;awlmpya;awlmpya washyngtn;olampiya;olimpiya;ollimpia;orinpia;Ολύμπια;Горад Алімпія;Олимпи;Олимпия;Олимпија;Олімпія;Օլիմպիա;אולימפיה;أولمبيا;اولمپیا;اولمپیا، واشنگٹن;اولمپیا، واشینگتن;ऑलिंपिया;ओलम्पिया;ஒலிம்பியா;オリンピア;奧林匹亞;올림피아; +city::5806298;Pasco;PSC;Pasko;Paskou;Pesko;baskw;pa si ke;paskw washyngtn;pasuko;Паско;Паскоу;Песко;باسكو;پاسکو، واشنگٹن;پاسکو، واشینگتن;پاسکو،واشنگٹن;パスコ;帕斯科; +city::5808079;Redmond;Melrose;Redmond;Redmund;Salmonberg;ledeumeondeu;lei de meng de;rdmwnd;redomondo;rydmwnd washntn;Редмонд;Редмънд;ردموند;ريدموند، واشنطن;ریڈمونڈ;レドモンド;雷德蒙德;레드먼드; +city::5808189;Renton;Black River Bridge;RNT;Renton;Rentun;lenteon;lun dun;renton;rntwn washyngtn;ryntwn;Рентон;Рентън;Ռենտոն;رنتون، واشینگتن;رينتون;رینٹن، واشنگٹن;レントン;伦顿;렌턴; +city::5808276;Richland;RLD;Richland;Richlend;li qi lan;ritchirando;rychlnd washyngtn;rytshland;ryzlnd;Ричланд;Ричленд;Річленд;ריצלנד;ريتشلاند;رچلینڈ، واشنگٹن;ریچلند، واشینگتن;リッチランド;里奇兰; +city::5809402;Sammamish;Samamish;sam mamysh washyngtn;samamisshu;samamysh;se ma mi shen;Самамиш;سام مامیش، واشینگتن;ساماميش;サマミッシュ;瑟马米什; +city::5809844;Seattle;Gorad Siehtl;SEA;Seatl;Seattle;Seattlum;Siatl;Siatul;Siehtl;Sietl;Sietla;Sietlas;Sijetl;Siyaatil;Séatl;ciyattil;shiatoru;si'aitala;siaeteul;sietʼli;siyatal;siyatala;syatl;xi ya tu;Σιάτλ;Горад Сіэтл;Сиатъл;Сиетл;Сиэтл;Сијетл;Сієтл;Սիեթլ;סיאטל;سياتل;سیئٹل;سیاتل;سیاٹل;सिअ‍ॅटल;सीऐटल;সিয়াটল;சியாட்டில்;ಸಿಯಾಟಲ್;ซีแอตเทิล;სიეტლი;ስያትል;ស៊ីតថល;シアトル;西雅圖;시애틀; +city::5810301;Shoreline;Shorlajn;an xian shi;shoarain;shwrlayn washyngtn;shwrlyn;syolain;Шорлайн;Шорлајн;شورلائن، واشنگٹن;شورلاین، واشینگتن;شورلين;ショアライン;岸線市;쇼라인; +city::5811456;South Hill;; +city::5811696;Spokane;GEG;Gorad Spakan;Spocanum;Spokan;Spokane;Spokane Falls;Spokein;Spoken;aspwkn;sbwkyn;seupokaen;si bo kan;spwkyn;spwqyyn;supoken;Σποκέιν;Горад Спакан;Спокан;Спокен;Սպոքեն;ספוקיין;اسپوکن;سبوكين;سپوکین;سپوکین، واشنگٹن;スポケーン;スポーケン;斯波坎;스포캔; +city::5811729;Spokane Valley;Spokan Vali;Spoken Vali;aspwkyn wly washyngtn;sbwkan faly;seupokaenbaelli;si bo kan gu;spwkyn wyly;Спокан Вали;Спокен Вали;اسپوکین ولی، واشینگتن;سبوكان فالي;سپوکین ویلی;سپوکین ویلی، واشنگٹن;斯波坎谷;스포캔밸리; +city::5812944;Tacoma;Chebaulip;Commencement City;Gorad Takoma;Puyallup;T'kope;T'kopt;TIW;Tacoma;Takoma;Takouma;da jin ma;ta ke ma;takoma;takwma;takwma washyngtn;teokoma;tqwmh;Τακόμα;Горад Такома;Такома;Такоума;טקומה;تاكوما;تاکوما، واشینگتن;ٹاکوما;ٹاکوما، واشنگٹن;タコマ;塔科马;打金麻;터코마; +city::5814616;Vancouver;Alashikash;Camp Vancouver;Columbia Barracks;Columbia City;Fort Vancouver;Predloga:Zascitenovand;Predloga:Zaščitenovand;Template:Vandalism;Van'kouver;Vancouver;Vancouver Barracks;Vancouver City;Vankuver;Vankuveris;Vankuvur;baenkubeo;bankuba;fankwfr;wen ge hua;wnkwwr washyngtn;wnqwbr;Βανκούβερ;Ванкувер;Ванкувър;ונקובר;فانكوفر;ونکوور، واشینگتن;وینکوور، واشنگٹن;แวนคูเวอร์;バンクーバー;溫哥華;밴쿠버; +city::5816605;Yakima;Jakima;Jakimo;North Yakima;YKM;Yakima;ya ji ma;yakima;yakyma;yakyma washyngtn;Јакимо;Якима;Якіма;יאקימה;ياكيما;یاکیما;یاکیما، واشینگتن;یکما، واشنگٹن;ヤキマ;雅基馬;야키마; +city::5820705;Casper;CPR;Kasper;Kaspur;ka si po;kaeseupeo;kasbr;kspr waywmyng;kyasupa;kyspr wayywmng;qspr;Каспер;Каспър;קספר;كاسبر;کسپر، وایومینگ;کیسپر، وائیومنگ;キャスパー;卡斯珀;캐스퍼; +city::5821086;Cheyenne;CYS;Cheyenna;Cheyenne;Gorad Shaen;Hell on Wheels;Saien;Saiena;Sajenas;Sajens;Sayen;Shaen;Shaenn;Shajen;Shajenn;ce'ini;ceyen;sayana;seyen;shaian;shayan;shayn;shayn waywmyng;shayn wayywmng;syaien;xia yan;Šaiena;Šajenas;Šajens;Σαϊέν;Горад Шаен;Шаен;Шайен;Шайенн;Шаєнн;Шајен;Շայեն;שאיין;شايان;شاین;شاین، وائیومنگ;شاین، وایومینگ;चेइनी;शायान;शेयेन्;செயென்;シャイアン;夏延;샤이엔; +city::5856195;Honolulu;Anorourou;Chonoloulou;Gana-Rura;Gana-ruru;Ganaruro;Ganaruru;Gonolulu;Gorad Ganalulu;HNL;Hana-Rura;Hana-Ruru;Hana-ruru;Honoloulou;Honolulu;Honolulú;Honolúlú;Honoruru;Khonolulu;Than-hiong-san;Thàn-hiông-sân;hanalulu;hanululu;honalulu;honollullu;honolulu;honoruru;hwnwlwlw;tan xiang shan;Χονολουλού;Гонолулу;Горад Ганалулу;Хонолулу;Һонолулу;Հոնոլուլու;האנאלולו;הונולולו;هونولولو;ہwnwlwlw ہwayy;ہونولولو;ہونولولو، ہوائی;हानलूलू;होनालुलु;होनोलुलु;होनोलूलू;হনুলুলু;ହନଲୁଲୁ;ஹொனலுலு;ಹೊನೊಲುಲು;โฮโนลูลู;ཧོ་ནོ་ལུ་ལུ།;ဟိုနိုလူလူမြို့;ჰონოლულუ;ሆኖሉሉ;ホノルル;檀香山;호놀룰루; +city::5879400;Anchorage;ANC;Alaska City;An'koreitz;Anchorage;Ancoraria;Angits;Ankoric;Ankoridz;Ankoridza;Ankoridzas;Ankoridzh;Ankoridž;Ankoridža;Ankoridžas;Ankorij;Ankuridzh;Brownville;Dgheyay Kaq';Enkoridz;Gorad Ankorydzh;Kisagvik;Kisaġvik;Port Woodrow;Qatuk'e'usht;Ship Creek;Tan;Ves Dnaghildeqt;Woodrow;aengkeoliji;amkareja;an ke la zhi;ancorage byuro;ankarej;ankarejji;ankwryj;aynkrayj alaska;enkarej;enkoreja;ʼnqwrg;Ανκορέιτζ;Анкоридж;Анкъридж;Горад Анкорыдж;Енкориџ;Անքորեջ շրջան;אנקורג;أنكوريج;انکوریج;اینکرایج، الاسکا;अँकरेज;एंकोरेज;অ্যাংকারিজ;আন্চোরগে ব্যুরো;ஏங்கரெஜ்;ആങ്കറേജ്;ანკორიჯი;アンカレッジ;安克拉治;앵커리지; +city::6331909;Johns Creek;City of Johns Creek;Dzons Krik;Johns Creek;janz kryk jarjya;janz kryk jwrjya;jonseukeulig;jwnz kryk;Џонс Крик;جانز کریک، جارجیا;جانز کریک، جورجیا;جونز كريك;존스크릭; +city::6332439;Alafaya;; +city::7160204;City of Milford (balance);; +city::7259621;West Bloomfield Township;Municipio de West Bloomfield;West Bloomfield;West Bloomfield Township;West Bloomfield Township CDP;Xa West Bloomfield;Xã West Bloomfield;bldt wyst blwmfyld;بلدة ويست بلومفيلد;ویسٹ بلوم فیلڈ ٹاؤن شپ، مشی گن;ウェスト・ブルームフィールド; +city::7260806;Arden-Arcade;Arden-Arcade;Arden-Arcade CDP;Arden-Arkejd;aden'akedo;ardena'arkeda;Арден-Аркејд;आर्डेनआर्केड;アーデンアーケード; +city::7261268;Florence-Graham;Florence-Graham;Florence-Graham CDP; +city::7310164;San Tan Valley;; +city::7839240;Enchanted Hills;; +city::8096217;Eastvale;Istvejl;ayst wyl kalyfrnya;aystfal;dong gu;Иствејл;إيستفال;ایست ویل، کالیفرنیا;东谷; +city::3440034;Tacuarembo;San Fructuoso;TAW;Tacuarembo;Tacuarembó;Takuarembo;Villa de San Fructuoso;Villa de Tacuarembo;ta kua lun bo;takkuvarimpo;takuarenbo;takwalembo;takwarmbw;takwarymbw;Такуарембо;Տակուարեմբո;تاکوآرمبو;تاکواریمبو;தக்குவாறிம்போ;ტაკუარემბო;タクアレンボー;塔夸伦博;타콰렘보; +city::3440714;Salto;Ciudad del Salto;STY;Sal'to;Salta;Saltas;Salto;sa er tuo;sal to;salato;salto;saltw arwgwyh;saltw awrwghway;saruto;sltw;Салто;Сальто;Սալտո;סלטו;سالتو، أوروغواي;سالتو، اروگوئه;سالتو، یوراگوئے;साल्तो;সালতো;ซัลโต;სალტო;サルト;萨尔托;살토; +city::3440781;Rivera;RVY;Rivera;Villa de Rivera;li wei la;libela;ri be ra;ribera;rivera;rybrh;ryfyra;rywra;rywyra;Ривера;Рівера;Ռիվերա;ריברה;ريفيرا;ریورا;ریویرا;রিবেরা;รีเบรา;რივერა;リベラ;里韦拉;리베라; +city::3441243;Paysandu;Ciudad de Paysandu;Ciudad de Paysandú;Gorad Pajsandu;PDU;Paisandu;Pajsandu;Paysandu;Paysandú;pai sang du;paisando~u;paisandu;payasandu;paysandw;piy san du;Горад Пайсанду;Пайсанду;Պայսանդու;پایساندو;পায়সান্দু;ไปย์ซันดู;პაისანდუ;パイサンドゥー;派桑杜;파이산두; +city::3441575;Montevideo;Ciudad de Montevideo;Gorad Mantehvideha;MVD;Montebideo;Montevidejas;Montevideo;Montevideu;Montevidiejos;Montevidéu;Montevidėjas;Montevídeó;Muntivideu;Muntividew;Muntividèu;Muntividëw;Urbs Montis Videi;mantibhiri'o;meantevidiyea;meng de wei de ya;meng te wei duo;montebide'o;montebide-o;montebideo;montevide'o;montevidi'o;montevidiyo;montevitiyo;mwntfydw;mwnth wydyw;mwntybydyw;mxn te wi de xo;Μοντεβιδέο;Горад Мантэвідэа;Монтевидео;Монтевідео;Մոնտևիդեո;מאנטעווידעא;מונטווידאו;مونتفيدو;مونته ویدئو;مونته‌ویدئ;مونته‌ویدئو;مونتیبیدیو;مونتېۋىدېئو;मोण्टेवीडियो;मोन्तेविदेओ;মোন্তেবিদেও;ਮੋਂਤੇਵੀਦਿਓ;ମଣ୍ଟିଭିଡ଼ିଓ;மொண்டேவீடியோ;മൊണ്ടേവീഡിയോ;มอนเตวิเดโอ;མཱོན་ཊི་ཝི་ཌོ།;မွန်တီဗစ်ဒီအိုမြို့;მონტევიდეო;ሞንቴቪዴዎ;モンテビデオ;蒙得维的亚;蒙特維多;몬테비데오; +city::3441702;Melo;Ciudad de Melo;MLZ;Mel;Melas;Melo;mei luo;mello;melo;mero;mlw arwgwyh;Мел;Мело;Մելո;ملو، اروگوئه;میلو، یوراگوئے;মেলো;მელო;メロ;梅洛;멜로; +city::3441894;Maldonado;Mal'donado;Maldonadas;Maldonado;San Fernando de Maldonado;ma er duo na duo;maldonado;maldwnadw arwgwyh;marudonado;Малдонадо;Мальдонадо;Մալդոնադո;مالدونادو، اروگوئه;مالدونادو، یوراگوئے;მალდონადო;マルドナド;馬爾多納多;말도나도; +city::3442057;Las Piedras;Las Pedras;Las Piedras;Las Piedrasas;Las Pjedras;Las-P'edras;Piedras;San Isidrio;Villa de las Piedras;la si bi de la si;lasa piyedrasa;laseupiedeulaseu;Лас Пиедрас;Лас-Пьедрас;Լաս Պեդրաս;لاس پیڈراس، یوراگوئے;لاس‌پیدراس، اروگوئه;লাস পিয়েদ্রাস;ლას-პიედრასი;ラス・ピエドラス;拉斯彼德拉斯;라스피에드라스; +city::601294;Nukus;Gorad Nukus;NCU;Noekis;Nokis;Noukous;Nukus;Nukusas;Nökis;nkws;nu ku si;nu kus;nukuseu;nukusu;nwkws;nwkys;nwqws;Горад Нукус;Нукус;Нүкіс;Նուկուս;נוקוס;نؤکیس;نكوص;نوکوس;นูกุส;ヌクス;努库斯;누쿠스; +city::601417;Oltinko`l;Altynkul';Altynkul’;Oltinko`l;Oltinko‘l;Oltinkul;Oltinkŭl; +city::1215957;Tirmiz;Termez;Termiz;Tirmiz;tai er mei zi;trmdh;trmz;Термез;טרמז;ترمذ;ترمز;泰尔梅兹; +city::1216187;Shahrisabz;Chakhrisabz;Sachrisabz;Sachrizabz;Sahrisabz;Sahrisabzas;Schachrissjabs;Sehr-i-Sebz;Shahri-i-Sabz;Shahrisabz;Shakhrisab;Shakhrisabz;Shakhrisabzs;Shakhrisyabz;Sjachrisabz;Xahrisabz;sakhrisabjako etihasika kendra;sha he li sa bu zi;shafurisabusu;shahrisabzi;shhrsbz;Ŝahrisabz;Şehr-i-Sebz;Šachrizabz;Šahrisabz;Šahrisabzas;Шахрисаб;Шахрисабз;שאחריסאבז;شهرسبز;شهری‌سبز;شہر سبز;शख्रिसब्जको एतिहासिक केन्द्र;შაჰრისაბზი;シャフリサブス;沙赫里薩布茲; +city::1216265;Samarqand;SKD;Samarcanda;Samarcande;Samarkand;Samarkanda;Samarkandas;Samarkando;Samarqand;Semerkant;Semerqend;sa ma er han;samaleukanteu;samarukando;smrqnd;Самарканд;סמרקנד;سمرقند;サマルカンド;撒馬爾罕;撒马尔罕;사마르칸트; +city::1216311;Qarshi;Bek Budi;KSQ;Karaki;Karchi;Karshi;Karshy;Karsi;Karsio;Karsis;Karsji;Karszy;Karŝio;Karşi;Karši;Karšis;Karși;Kharsh khot;Qarshi;Qarsi;Qarši;ka er xi;kaleusi;karasi;karushi;nkhshb;qarshy;qrshy;qrsy;Карши;Каршы;Карші;Харш хот;Қарсы;Կարշի;קרשי;قارشی;قرشي;قرشی;نخشب;ਕਾਰਸ਼ੀ;カルシ;卡爾希;카르시; +city::1216982;Kattaqo`rg`on;Kattakurgan;Kattaqo`rg`on;Kattaqo‘rg‘on;Kattaqurghon;Kattaqŭrghon; +city::1217007;Koson;Kasan;Kassan;Koson;Косон; +city::1217180;Kogon;Kagan;Kogon;Novaya Bukhara;Каган; +city::1217474;Denov;Dehnan;Denan;Denau;Denov;Denow;Deynau;Денов; +city::1217662;Bukhara;BHK;Bochara;Bokhara;Bouchara;Boukhara;Bucara;Buchara;Buhar;Buhara;Buharo;Buhhaara;Buhāra;Bujara;Bujará;Bukhaara;Bukhar;Bukhara;Bukharà;Bukhoro;Buxara;Buxoro;Buĥaro;Gorad Bukhara;Staraya Bukhara;bkhara;bkhary;bu ha la;buhala;buhara;bukhara;bukharako etihasika kendra;bwkhara;bwkrh;pukara;Μπουχάρα;Бухар;Бухара;Бухоро;Бұхара;Горад Бухара;בוכרה;بخارا;بخارى;بوخارا;बुखराको एतिहासिक केन्द्र;बुख़ारा;बुखारा;বুখারা;ਬੁਖਾਰਾ;புகாரா;ബുഖാറ;ბუხარა;ブハラ;布哈拉;부하라; +city::1512339;Yangiyul;Jangijul';Kaunchi;Янгиюль; +city::1512473;Urganch;Novo-Urgench;Ourguentch;UGC;Urganch;Urgench;Urgentj;Yrgench;uleugenchi;urugenchi;Ургенч;ウルゲンチ;우르겐치; +city::1512569;Tashkent;Daskent;Daşkent;Daşkənd;Gorad Tashkent;Lithopolis;TAS;Ta.kent;Tachkent;Tachkènt;Taixkent;Taschkent;Tashken;Tashkend;Tashkent;Tashkent osh;Tashkenti;Tasjkent;Taskende;Taskent;Taskenta;Taskentas;Taskento;Taszkent;Taxkent;Taŝkento;Taşkent;Taškent;Taškenta;Taškentas;Tașkent;Tochkent;Toshkand;Toshkent;Toshkent shahri;ta shen gan;tasakada;tasakanda;tasakhanda;tashknd;tashqnd;tashukento;taskanda;taskanr;taskantu;taskent;tasyukenteu;thach khen t;tshqnd;tsqnt;Τασκένδη;Горад Ташкент;Ташкен;Ташкент;Ташкент ош;Тошканд;Տաշքենդ;טאשקענט;טשקנט;تاشقند;تاشكند;تاشكەنت;تاشکند;تاشکەند;طشقند;ताशकन्द;ताश्कंद;তাশখন্দ;ਤਾਸ਼ਕੰਦ;தாஷ்கந்து;తాష్కెంట్;ತಾಷ್ಕೆಂಟ್;താഷ്കന്റ്;ทาชเคนต์;ཐ་ཧྲི་ཀན།;ტაშკენტი;ታሽኬንት;タシュケント;塔什干;타슈켄트; +city::1512979;Qo`qon;Kokand;Kokandas;Qo'qon;Qo`qon;Qoʻqon;Qo‘qon;Quqon;Qŭqon;kokando;kokanteu;Коканд;コーカンド;코칸트; +city::1513064;Olmaliq;Almalik;Almalyk;Almalykas;Almalık;Ałmałyk;Olmaliq;a er ma lei ke;almallikeu;almalyq;almalyq azbkstan;arumariku;yalmalyq;Алмалик;Алмалык;Олмалиқ;آلمالیق;آلمالیق، ازبکستان;ئالمالیق;アルマリク;阿尔马雷克;알말리크; +city::1513131;Navoiy;Kermene;Kermine;NVI;Nava;Navoi;Navoiy;Navojis;Navojo;Navoy;Navoï;Nawayi;Nawayı;Nawoi;Nawoiy;Nazoy;Nevai;na wo yi;naboi;navo'i;navu~ai;nwawy;nwayy;nwayy azbkstan;Навои;Навої;نوائی;نواوي;نوایی;نوایی، ازبکستان;نەڤایی;नवोई;ਨਵੋਈ;ナヴァーイー;纳沃伊;나보이; +city::1513157;Namangan;Gorad Namangan;NMA;Namangan;Namanganas;Namangano;Namangán;Nemengan;na ma ngkan;na man gan;namagana;namang-gan;namangan;nmngan;nmnkan;nmnqan;Горад Наманган;Наманган;Наманған;نمنقان;نمنكان;نمنگان;ਨਮਾਗਾਨ;นามางกาน;ナマンガン;納曼干;나망간; +city::1513243;Marg`ilon;Marg`ilon;Margelan;Marghilon;Margilan;Marg‘ilon;Маргилан; +city::1513271;Asaka;Asaka;Asake;Assake;Leninsk;Zelensk;Асака; +city::1513604;Khiwa;Chiva;Chiwa;Hiiva;Hiva;Jiva;Khiva;Khivà;Khiwa;Khorezm;Xiva;khywa;khywh;khywt;Ĥiva;Хива;خيوة;خیوا;خیوه; +city::1513886;Jizzax;Cizzak;Dishsak;Djizak;Djizaks;Dzhizak;Dzhizzak;Dzizakas;Dzjizak;Dzyzak;Dżyzak;Džizakas;Gizaho;Jizak;Jizzakh;Jizzaq;Jizzax;Zhyzak;dzyzq;ji zha ke;jijaheu;jizafu;jizakha;jyzakh;jyzk;jyzkh;Ĝizaĥo;Джизак;Джиззак;Жызак;Жызақ;דזיזק;جيزاخ;جيزك;جیزخ;جیزک;ਜਿਜ਼ਾਖ;ジザフ;吉扎克;지자흐; +city::1513966;Guliston;Golodnaya Step';Golodnaya Step’;Gorad Gulistan;Goulistan;Guelistan;Gulistan;Gulistanas;Gulistano;Guliston;Gülistan;Mirzachul';Mirzachul’;glstan azbkstan;gu li si tan;gulisatona;gulistona;gulliseutan;gurisutan;gwlstan;gwlystan;Горад Гулістан;Гулистан;Гулистон;Գուլիստան;گلستان، ازبکستان;گولستان;گولیستان;گوڵستان، ئۆزبەکستان;गुलिस्तोन;ਗੁਲੀਸਤੋਨ;グリスタン;古利斯坦;굴리스탄; +city::1514019;Fergana;FEG;Farg'ona;Farghana;Farghona;Farghāna;Fargona;Fargʻona;Fergan;Fergana;Fergano;Ferganá;Ferghana;Fernkana;Fərqanə;Gorad Fergana;Novyy Margelan;Skobelev;Skobelevo;fei er gan na;ferugana;frghanh;frghanh‎;frghant;fyrghana;peleugana;prgnh;Φεργκάνα;Горад Фергана;Фарғона;Фергана;Ֆերգանա;פרגנה;فرغانة;فرغانه;فرغانه‎;فرغانہ;فیرغانا;فەرغانە;ഫെർഗാന;フェルガナ;费尔干纳;페르가나; +city::1514192;Chust;Chust;Chust Shahri;Tschust;Чуст; +city::1514210;Chirchiq;Chirchik;Chirchiq;Circig;Circik;Circikas;Tchirtchik;Tjirtjik;Tschirtschik;chileuchikeu;chiruchiku;chyrchyq;chyrchyq azbkstan;qi er qi ke;Çirçig;Čirčikas;Чирчик;Чирчиқ;چیرچیق;چیرچیق، ازبکستان;チルチク;奇爾奇克;치르치크; +city::1514387;Beruniy;Beruni;Berunij;Beruniy;Biruni;Biruniy;Shabbaz;Shchabbaz;Sheikh Abaz Vali;Беруний; +city::1514402;Bekobod;Bagevat;Begovat;Begowat;Bekabad;Bekabadas;Bekobod;Bigovat;Bïgovat;bei ke bo de;bekabado;byk abad;Бекабад;Бекобод;Բեկաբադ;بیک آباد;بیک‌آباد، ازبکستان;بێکاباد;ベカバード;貝科博德; +city::1514581;Angren;Angren;Angrenas;Angrenshakhtstroy;Turk;Turn;an ge lian;ang-geulen;angrn azbkstan;anguren;Ангрен;آنگرن، ازبکستان;ئانگرێن;アングレン;安格連;앙그렌; +city::1514588;Andijon;AZN;Andican;Andidzhan;Andijan;Andijon;Andiján;Andisjan;Andizan;Andizhan;Andizhan - Andijon;Andizjan;Andiżan;Andižan;an ji yan;andijan;ztnjan;Андижан;ظةنجان;アンディジャン;安集延;안디잔; +city::1538229;Navoiy;Gorod Navoi;Kermine;Navoi;Navoiy;Navoiy Shahri;Nawoiy Shahri; +city::3486270;Anaco;AAO;Anaco; +city::3487903;Alto Barinas;; +city::3625207;Yaritagua;; +city::3625341;Villa de Cura;; +city::3625515;Valle de La Pascua;VDP;Val'e-de-La-Paskua;Valle de La Pascua;Valle de Pascua;Валье-де-Ла-Паскуа; +city::3625542;Valera;VLV;Valera;ba lai la;valera;Валера;ვალერა;巴莱拉; +city::3625549;Valencia;Balenzia;Gorad Valensija;VLN;Valencia;Valencio;Valens;Valensi;Valensia;Valensii;Valensija;Valensiya;Valentia;Valentzia;Valincia;Valência;ba lun xi ya;balainsi'a;ballensia;barenshia;blnsyt;valensia;walnsya wnzwyla;wlnsyh;Валенс;Валенси;Валенсия;Валенсија;Валенсія;Горад Валенсія;Վալենսիա;ולנסיה;بلنسية;والنسیا، ونزوئلا;والیںسیا، کارابوبو;ਬਾਲੈਂਸੀਆ;ვალენსია;バレンシア;巴伦西亚;발렌시아; +city::3625710;Upata;Upata; +city::3625829;Turmero;Turmeras;Turmero;trmrw;tu er mei luo;Турмеро;ترمرو;ტურმერო;圖爾梅羅; +city::3625929;Tucupita;TUV;Tucupita;Tukupita;Тукупита; +city::3626219;Tinaquillo;di na ji yue;蒂納基約; +city::3627047;Santa Teresa;Santa Teresa; +city::3627968;San Mateo;; +city::3628053;San Juan de los Morros;San Juan de Los Morros;San Juan de los Moros;San Juan de los Morros; +city::3628142;San Jose de Guanipa;El Tigrito;San Jose de Guanipa;San José de Guanipa; +city::3628423;San Felipe;SNF;San Felipe;San Felipė;San-Felipe;sanpellipe;sheng fei li pei;Сан-Фелипе;Сан-Феліпе;سان فیلیپے، جاراکوئی;სან-ფელიპე;聖費利佩;산펠리페; +city::3628473;San Cristobal;Gorad San-Krystobal';SCI;San Cristobal;San Cristóbal;San Kristobal;San Kristobalis;San-Kristobal';san krystwbal;san krystwbal tachyra;sankeuliseutobal;sheng ke li si tuo wa er;Горад Сан-Крыстобаль;Сан Кристобал;Сан-Кристобаль;Сан-Крістобаль;سان كريستوبال;سان کریستوبال، تاچیرا;სან-კრისტობალი;聖克里斯托瓦爾;산크리스토발; +city::3628489;San Carlos del Zulia;Del Zulia;San Carlos;San Carlos del Zulia; +city::3628503;San Carlos;San Carlos;San Karlosas;san karlws kwkhydys;sankaleulloseu;sheng ka luo si;سان کارلوس، کوخیدیس;სან-კარლოსი;聖卡洛斯;산카를로스; +city::3628550;San Antonio de Los Altos;; +city::3628952;Rubio;Rubio;Рубио; +city::3628966;La Villa del Rosario;Rosario;Villa del Rosario;Росарио; +city::3629576;Punto Fijo;LSP;Punto Fijo;peng tuo fei huo;პუნტო-ფიხო;蓬托菲霍; +city::3629614;Punta Cardon;Cardon;Cordon;El Cardon;El Cardón;Puerto Cardon;Punta Cardon;Punta Cardón;Punta-Kardon;Пунта-Кардон; +city::3629672;Puerto La Cruz;Puehrto La Kruz;Puehrto-la-Krus;Puerto Cruz;Puerto La Krus;Puerto de La Cruz;Puerto la Cruz;Puerto la Krusas;bwyrtw la krwz;la ke lu si gang;Пуерто Ла Крус;Пуэрто Ла Круз;Пуэрто-ла-Крус;بويرتو لا كروز;პუერტო-ლა-კრუსი;拉克魯斯港; +city::3629706;Puerto Cabello;PBL;Portus Cabellensis;Puehrto-Kabel'o;Puerto Cabello;Puerto Kabeljas;Puerto Kabello;Puerto-Kabel'jo;ka bei e gang;pueleutokabeyo;Пуерто Кабелло;Пуерто-Кабельйо;Пуэрто-Кабельо;პუერტო-კაბელიო;卡貝略港;푸에르토카베요; +city::3629710;Puerto Ayacucho;PYH;Pouerto Agiakoutso;Puehrto-Ajakucho;Puerto Ajakucas;Puerto Ajakučas;Puerto Ayacucho;a ya ku qiao gang;pueleutoayakucho;pwyr to xi xa kucho;pwyrtw ajakwchw;Πουέρτο Αγιακούτσο;Пуэрто-Аякучо;پویرتو اجاکوچو;ปวยร์โตไออากูโช;პუერტო-აიაკუჩო;阿亞庫喬港;푸에르토아야쿠초; +city::3629965;Porlamar;PMV;Porlamar;Porlamaras;bo la ma er;Порламар;პორლამარი;波拉马尔; +city::3630297;Petare;Petare;Petarė;pei ta lei;petale;petare;Петаре;პეტარე;ペタレ;佩塔雷;페타레; +city::3630932;Palo Negro;; +city::3631412;Ocumare del Tuy;Ocumare;Ocumare del Tuy; +city::3631741;Mucumpiz;; +city::3632308;Merida;Emerita;Gorad Meryda;MRD;Meria;Merida;Meridae;Merido;Méria;Mérida;Santiago de los Caballeros de Merida;Santiago de los Caballeros de Mérida;mardt;mei li da shi;melida;merida;mryda;mrydh;myryda myryda;Μέριδα;Горад Мерыда;Меридæ;Мерида;Меріда;Մերիդա;מערידא;מרידה;ماردة;مریدا;میریدا، میریدا;მერიდა;ሜሪዳ፣ ቬኔዝዌላ;メリダ;梅里達市;메리다; +city::3632929;Mariara;; +city::3632998;Maracay;MYC;Maracay;Marakai;Marakaj;Marakajo;Marakajus;Marakay;ma la kai;malakai;marakai;marakay;Μαρακάι;Маракай;ماراکای;მარაკაი;マラカイ;马拉凯;마라카이; +city::3633009;Maracaibo;Gorad Marakajba;MAR;Maracaibo;Marakaibas;Marakaibo;Marakaimpo;Marakajbo;Marakaybo;Marakaypu;ma la kai bo;ma ra ki bo;malakaibo;maraka'ibo;marakaibo;marakaybw;Μαρακάιμπο;Горад Маракайба;Маракаибо;Маракайбо;Մարակայբո;מרקאיבו;ماراكايبو;माराकाईबो;ਮਾਰਾਕਾਈਬੋ;มาราไกโบ;მარაკაიბო;マラカイボ;马拉开波;마라카이보; +city::3633341;Maiquetia;Maiquetia;Maiquetía; +city::3633444;Machiques;Machiques; +city::3633622;Los Teques;Los Tekes;Los Tekesas;Los Teques;Los-Tekes;loseutekeseu;luo si te ke si;lws tykys;Λος Τέκες;Лос Текес;Лос-Текес;لوس تیکیس;ლოს-ტეკესი;ロス・テケス;洛斯特克斯;로스테케스; +city::3634184;Los Dos Caminos;Dos Caminos;Los Dos Caminos; +city::3634922;La Victoria;La Victoria;La Viktorija;la wei duo li ya;la wyktwrya aragwa;لا ویکتوریا، اراگوا;ლა-ვიქტორია;拉維多利亞; +city::3639747;Guigue;; +city::3639898;Guatire;Guatire;gua di lei;guatire;gwatile;Гуатире;Гуатіре;გუატირე;グアティレ;瓜蒂雷;과티레; +city::3640049;Guarenas;Guarenas; +city::3640226;Guanare;GUQ;Guanare;Gvanare;Gvanarė;gua na lei;guanare;gwanale;Гуанаре;گوانارے;გუანარე;グアナレ;瓜納雷;과나레; +city::3640465;Guacara;Guacara; +city::3641099;El Vigia;El Vigia;El Vigía;VIG; +city::3641275;El Tocuyo;Ehl'-Tokujo;El Tocuyo;El'-Tokujo;Tocuyo;ai er tuo ku yue;Ель-Токуйо;Эль-Токуйо;埃爾托庫約; +city::3641351;El Tigre;ELX;El Tigre;El Tigrė;ai er di ge lei;eltigeule;xel ti ker;เอลตีเกร;ელ-ტიგრე;埃爾蒂格雷;엘티그레; +city::3642833;El Limon;El Limon;El Limonas;El Limón;ai er li meng;el-limoni;ელ-ლიმონი;埃爾利蒙; +city::3643031;El Hatillo;El Hatillo;El Hatillo Municipality;Municipio El Hatillo;Pueblo el Hatillo;ai er a di yue shi;el-atiyo si;eruatijo shi;ელ-ატილიოს მუნიციპალიტეტი;エルアティジョ市;埃爾阿蒂約市;엘아티요 시; +city::3644417;Ejido;Egido;Ehkhido;Ejido;Эхидо; +city::3644768;Cumana;CUM;Cumana;Cumaná;Gorad Kumana;Kumana;ku ma na;kumana;kwmana;Горад Кумана;Кумана;کومانا;กูมานา;კუმანა;クマナ;庫馬納;쿠마나; +city::3644918;Cua;Cua;Cúa;Kua;Куа; +city::3645213;Coro;CZE;Coro;Corum;Koro;Koro shaary;Santa Ana de Coro;Santa Ana de Koras;Santa-Ana-de-Koro;kolo;koro;qwrw;santa ana dy kwrw;sheng an na de ke luo;Коро;Коро шаары;Санта-Ана-де-Коро;קורו;سانتا آنا دي كورو;سانتا آنا دے کورو;სანტა-ანა-დე-კორო;コロ;聖安娜德科羅;코로; +city::3645528;Ciudad Guayana;CGU;Cidade Guaiana;Ciudad Guayana;Ciudad Guiana;Ciudat Guayana;Guayana;Guayana City;PZO;S'judad-Guajana;San Felix de Guayana;San Félix de Guayana;San Tome;San Tome de Guayana;San Tomé;San Tomé de Guayana;Santo Tome de Guayana;Santo Tomo;Santo Tomé de Guayana;Sijudad Gvajana;Siudad Guajana;Sjudad Guajan;gui ya na cheng;shiudaguayana;siudad-guaiana;siudadeugwayana;Сиудад Гуаяна;Сијудад Гвајана;Сьюдад-Гуаяна;סיודד גואיאנה;სიუდად-გუაიანა;シウダーグアヤナ;圭亞那城;시우다드과야나; +city::3645532;Ciudad Bolivar;Angostura;Bolivar;Bolivar llaqta;Bolívar;Bolívar llaqta;CBL;Ciudad Bolivar;Ciudad Bolívar;Gorad S'judad-Balivar;S'judad-Bolivar;Siudad Bolivar;Siudad Bolivaras;Syudad Bolivar;Syudad Bolívar;Ziuda Bolivar;Ziudá Bolívar;bo li wa er cheng;si'udada bolivara;siudad-bolivari;siudadeubollibaleu;sywdad bwlywar;Горад Сьюдад-Балівар;Сиудад Боливар;Сьюдад-Боливар;Сьюдад-Болівар;سیوداد بولیوار;सिउदाद बोलिवर;სიუდად-ბოლივარი;シウダ・ボリバル;玻利瓦尔城;시우다드볼리바르; +city::3645854;Charallave;; +city::3645981;Chacao;Chacao;Municipio Chacao;cha kao shi;chakao shi;chakao si;ჩაკაოს მუნიციპალიტეტი;チャカオ市;查考市;차카오 시; +city::3646169;Caucaguito;Caucaguita;Caucaguito;Caucagüito; +city::3646190;Catia La Mar;Catia La Mar;Catia de la Mar; +city::3646382;Carupano;CUP;Carupano;Carúpano;Karupanas;ka lu pa nuo;კარუპანო;卡魯帕諾; +city::3646487;Carora;Carora;VCR; +city::3646738;Caracas;CCS;Caracae;Caracas;Caraques;Gorad Karakas;Karakas;Karakasa;Karakasas;Karakaso;ka la ka si;ka raka s;kalakaseu;karakas;karakasa;karakasu;karakkas;kraks;Καράκας;Горад Каракас;Каракас;Կարակաս;קאראקאס;קראקס;كاراكاس;کاراکاس;کراکس;काराकास;কারাকাস;ਕਾਰਾਕਾਸ;કારાકાસ;କାରାକାସ;கரகஸ்;ಕರಾಕಸ್;കാരക്കാസ്;การากัส;ཁ་ར་ཁ་སི;ကရာကက်စ်မြို့;კარაკასი;ካራካስ;カラカス;卡拉卡斯;카라카스; +city::3647444;Calabozo;CLZ;Calabozo;Kalabosas;ka la wo suo;კალაბოსო;卡拉沃索; +city::3647549;Cagua;Cagua; +city::3647651;Cabimas;CBS;Cabimas;Caramas;Kabimas;Kabimasas;ka wei ma si;kabymas;Кабимас;كابيماس;კაბიმასი;卡維馬斯; +city::3648439;Baruta;Baruta;Nuestra Senora del Rosario de Baruta;Nuestra Señora del Rosario de Baruta; +city::3648522;Barquisimeto;BRM;Barkisimetas;Barkisimeto;Barquisimeto;Barquisimetum;Barquisimito;Gorad Barkisimeta;ba ji xi mei tuo;baleukisimeto;barkysymtw;barukishimeto;brqysymtw;Баркисимето;Баркісімето;Горад Баркісімета;ברקיסימטו;بارکیسیمتو;ბარკისიმეტო;バルキシメト;巴基西梅托;바르키시메토; +city::3648546;Barinas;BNS;Barinas;Barinas llaqta;Barinasas;Ijoloti Barinas;ba li na si;balinaseu;barinasi;barynas;barynas barynas;Μπαρίνας;Баринас;Барінас;Иёлоти Баринас;باريناس;باریناس، باریناس;ბარინასი;巴里納斯;바리나스; +city::3648559;Barcelona;BLA;Barcelona;Barcelono;Barselona;Gorad Barselona;Varkeloni;ba sai luo na;baleusellona;barselona;barslwna wnzwyla;barslwna wynyzwyla;baruserona;Βαρκελώνη;Барселона;Горад Барселона;بارسلونا، ونزوئلا;بارسلونا، وینیزویلا;ဘာစီလိုနာမြို့၊ ဗင်နီဇွဲလား;ბარსელონა;バルセロナ;巴塞羅那;바르셀로나; +city::3649017;Araure;Araure; +city::3649833;Acarigua;AGV;Acarigua;Acarígua;Akarigua;Akarigva;a ka li gua;akaligwa;akarigua;akarygwa;Акаригуа;Акарігуа;اکاریگوا;აკარიგუა;アカリグア;阿卡里瓜;아카리과; +city::3778045;Maturin;MUN;Maturin;Maturinas;Maturín;ma tu lin;matulin;matwryn;Матурин;Матурін;ماتورين;ماتورین;მატურინი;馬圖林;마투린; +city::3803515;Caucaguita;; +city::3805673;San Fernando de Apure;SFD;San Fernando;San Fernando Apure;San Fernando de Apure; +city::4796512;Saint Croix;Agay;Ay Ay;Ay-Ay;Ayay;Cibuguiera;Cibuquiera;Eylandet Saint Croix;L'Isle de Sainte Croix;STX;Sainte Croix;Sanct Croix;Sancta Crux;Santa Cruz;St Croix;The Quiet Virgin; +city::1560037;Yen Vinh;; +city::1560349;Yen Bai;Jenbaj;Yen Bai;Yen Bay;Yên Bái;Йенбай; +city::1562414;Vung Tau;Cap-Saint-Jacques;Cape Saint James;Saint James;VTG;Ville du Cap;Vung Tau;Vungtau;Vũng Tàu;Xa Vung Tau;bungttau;buntau;tou dun shi;Вунгтау;ブンタウ;頭 頓市;붕따우; +city::1562693;Vinh Long;Vinh Long;Vĩnh Long;XVL; +city::1562798;Vinh;VII;Vin;Vin';Vinh;Vinis;bin;fynh;rong shi;vu~in;wiy;wyn;wyn wytnam;Вин;Винь;Вінь;וין;فينه;وین، ویتنام;وینہ;วิญ;ヴィン;荣市;빈; +city::1562820;Viet Tri;Viet Tri;Vietri;Việt Trì; +city::1563241;Thanh Pho Uong Bi;Thanh Pho Uong Bi;Thành Phố Uông Bí;Uong Bi;Uông Bí; +city::1563281;Tuy Hoa;Chau Thanh;TBB;Thanh pho Tuy Hoa;Thuy Hoa;Thành phố Tuy Hòa;Toy Hoa;Tuikhoa;Tuy Hoa;Tuy Hòa;sui he shi;to~uihoa;Туихоа;トゥイホア;綏和市; +city::1563926;Tra Vinh;Phu Vinh;Phú Vinh;Tra Vin;Tra Vinh;Trà Vinh; +city::1565022;Thu Dau Mot;Phu Cuong;Phú Cường;Thu Dau Mot;Thủ Dầu Một;Tkhuzaumot;thu seiwhmt;to~uzaumotto;tu long mu shi she;tujeoumos;tw dayw mwt;Тхузаумот;تو دائو موت;تھو داو مؤت;ถูเสิ่วหมต;トゥーザウモット;土龍木市社;투저우못; +city::1566083;Ho Chi Minh City;Cathair Ho Chi Minh;Cidade de Ho Chi Minh;Ciudad Ho Chi Minh;HCMC;HCMV;Ho Chi Minh;Ho Chi Minh City;Ho Chi Minh Ville;Ho Chi Minh-borg;Ho Chi Minh-byen;Ho Chi Minhin kaupunki;Ho Chi Minhstad;Ho Ci Minovo Mesto;Ho Si Minh-varos;Ho Si Minh-város;Ho Či Minovo Město;Ho-Chi-Minh-Stadt;Ho-Chi-Minh-Ville;Ho-Ci-Min-urbo;Ho-Ĉi-Min-urbo;HoChiMinh City;Hociminovo Mesto;Hosimina;Hosiminh;Hočiminovo Mesto;Hošimina;Hošiminh;Hô Chi Minh Ville;Hô-Chi-Minh-Ville;Hồ Chí Minhin kaupunki;Khoshimin;Kota Ho Chi Minh;Kota Hồ Chí Minh;SGN;Sai Gon;Saigon;Saïgon;Sài Gòn;TPHCM;Thanh pho Ho Chi Minh;Thành phố Hồ Chí Minh;hochimin;hochimin shi;hojjimin si;hu zhi ming shi;hw z'y myn syty;mdynt hw tshy mynh;saigon;saygwn;Хошимин;הו צ'י מין סיטי;سايگون;مدينة هو تشي مينه;サイゴン;ホーチミン;ホーチミン市;胡志明市;호찌민 시;호치민; +city::1566166;Thanh Hoa;THD;Than" Hoa;Thanh Hoa;Thanh Hóa;Than” Hoa; +city::1566319;Thanh Pho Thai Nguyen;Taj-Nguen;Thai Nguyen;Thanh Pho Thai Nguyen;Thành Phố Thái Nguyên;Thái Nguyên;Тай-Нгуен; +city::1566346;Thanh Pho Thai Binh;Kua Loc;Taibinh;Thai Bin;Thai Binh;Thanh Pho Thai Binh;Thành Phố Thái Bình;Thái Bình; +city::1567069;Tan An;Tan;Tan Am;Tan An;Tân An;Тан; +city::1567148;Tam Ky;Tam Ky;Tam Kỳ;Tanky; +city::1567723;Song Cau;Bong Cau;Bông Cầu;Song Cau;Song Ka;Song Ko;Songkau;Sông Cầu; +city::1567788;Soc Trang;Khanh Hong;Khanh Hung;Khánh Hưng;SOA;Shokchang;Soc Trang;Sok Trang;Sóc Trăng;Шокчанг; +city::1568043;Sa Pa;Chapa;Shapa;Шапа; +city::1568212;Sa Dec;Sa Dec;Sa Đéc;Sadek; +city::1568510;Rach Gia;Gorad Rac'zja;Lit-ka-su;Li̍t-ka-sṳ;Rach Gia;Rach Zhia;Racza;Racža;Rat'zja;Rạch Giá;VKG;Zhac Zhja;di shi shi;lagja;racha gya;rakkuza;rch gya;sak sa;Горад Рацьзя;Жаћ Жја;Ратьзя;راچا گیا;رچ گیآ;สักซ้า;ラックザー;迪石市;락자; +city::1568574;Qui Nhon;Ki N'on;Ki N’on;Kin-hon;Kuinjon;Kwinhon;Qui Nhan;Qui Nhon;Qui Nhơn;Quinn Yan;Quinton;Quy Nhon;Quy Nhơn;UIH;gui ren shi;kku-inyeon;kuinyon;Куинён;クイニョン;歸仁市;꾸이년; +city::1569684;Pleiku;Gia Lai;PXU;Play Cu;Play Ku;Plei Cu;Pleiku;Plejku;Plây Cu;Plây Ku;Po-loi-ku;Pô-lòi-kú;Tinh Pleiku;Tỉnh Pleiku;bo lai gu shi;pel yku;plykw;ppeullaeikku;pureiku;Плеику;Плейку;پلیکو;เปล็ยกู;プレイク;波來古市;쁠래이꾸; +city::1571058;Phan Thiet;Fan Thiet;Fant'et;Fanthit;Fantiet;Phan Thiet;Phan Thiết;Phan Tiet;Xa Phan Thiet;pan qie;Фантьет;潘切; +city::1571067;Phan Rang-Thap Cham;PHA;Phan Rang;Phan Rang- Thap Cham;Phan Rang-Thap Cham;Phan Rang-Tháp Chàm;Phan Ranh; +city::1572151;Nha Trang;Gorad Njachang;INhatrang;Kanh-Hoa;NHA;Nacana;Nga-tsong-su;Ngà-tsông-sṳ;Nha Trang;Niacangas;Niačangas;Nja Chang;Njachang;nateulang;nha tranj;nha trng;nyachan;nyajjang;ya cang;ya zhuang;ya zhuang shi;Ņačana;Ња Чанг;Горад Нячанг;Ня Чанг;Нячанг;نها ترانج;نها ترنگ;ญาจาง;ニャチャン;芽庄市;芽莊;芽莊市;나트랑;냐짱; +city::1573517;Thanh Pho Nam Dinh;Nam Din;Nam Dinh;Nam GJinh;Nam Định;Namdin';Thanh Pho Nam Dinh;Thành Phố Nam Định;Намдинь; +city::1574023;My Tho;Mitho;My Tho;Mỹ Tho; +city::1574507;Mong Cai;Mon Cay;Mon Gay;Mong Cai;Monkai;Móng Cái;Wangchieh; +city::1575627;Long Xuyen;Cholong Xuyen;Chơlong Xuyen;Long Swiyen;Long Xuyen;Long Xuyên;Long-Shuyen; +city::1576633;Thanh Pho Lang Son;Lang Son;Lạng Sơn;Thanh Pho Lang Son;Thành Phố Lạng Sơn; +city::1577995;La Gi;La Ghi;La Gi;Lag;Lagi; +city::1580240;Hue;Choue;HUI;Hue;Huje;Hujė;Hué;Huế;Khjue;Khjueh;Khue;Sun-fa-su;Sun-fa-sṳ;Thanh pho Hue;Thành phố Huế;fue;hue;hwyh;shun hua;shun hua shi;we;Χουέ;Хуе;Хюе;Хюэ;הואה;هوئه;ہوائے;เว้;ჰუე;フエ;順化;順化市;顺化市;후에; +city::1580410;Thanh Pho Ha Long;Ha Long;Hon Cay;Hon Gai;Hon Gay;Hon Goi;Hong Gai;Honggay;Hạ Long;Hồng Gai;Khalong;Thanh Pho Ha Long;Thành Phố Hạ Long;xia long shi;Халонг;下龙市; +city::1580830;Thanh Pho Hoa Binh;Hao Binh;Hoa Bin;Hoa Binh;Hòa Bình;Thanh Pho Hoa Binh;Thành Phố Hòa Bình; +city::1581130;Hanoi;Anoi;Anoy;Anòy;Gorad Khanoj;HAN;Ha Noi;Ha Nui;Hanoi;Hanoj;Hanoja;Hanojo;Hanojus;Hanoy;Hanoí;Hanoï;Hanòi;Hanói;Ho-nui-su;Hà Nội;Hò-nui-sṳ;Keicho;Khanoj;hano'i;hanoi;hanoy;hanwy;hanxy;he nei;he nei shi;hyanaya;khanwy;Ανόι;Горад Ханой;Ханой;Ханој;Հանոյ;האנוי;خانوي;هانوى;هانوي;هانوی;ھانۆی;ہنوئی;हनोई;হ্যানয়;ਹਨੋਈ;ହାନୋଇ;ஹனோய்;ಹಾನೊಯ್;හැනෝයි;ฮานอย;ཧེ་ནོ།;ဟနွိုင်းမြို့;ჰანოი;ሀኖይ;ទីក្រុងហានូយ;Ḥanoi;ハノイ;河內;河內市;하노이; +city::1581298;Haiphong;HPH;Hai Phong;Haiphong;Hajfong;Hải Phòng;Khajfon;hai fang shi;haifon;hayfwngh;hi fxng;Хайфон;هايفونغ;ไฮฟอง;ハイフォン;海防市; +city::1581326;Thanh Pho Hai Duong;Hai Doong;Hai Duong;Hai dzung;Hai-Doung;Haidong;Haidöng;Hải Dương;Khajzyong;Thanh Pho Hai Duong;Thành Phố Hải Dương;Хайзыонг; +city::1581364;Ha Dong;Ha Dong;Hà Đông; +city::1582173;GJuc Trong;Duc Trong;Dyk Trong;Lien Nghia;Liên Nghĩa;Đưc Trọng;Дык Тронг; +city::1583992;Da Nang;DAD;Da Nang;Danang;GJa Nang;Tourane;Turan;danan;danang;xian gang;Đà Nẵng;Да Нанг;ダナン;岘港;峴港;다낭; +city::1584071;Da Lat;DLI;Da Lat;Da lat;Dalat;Ðà Lạt;Далат; +city::1584661;Cu Chi;Cu Chi;Củ Chi;Ku-Chi;Ку-Чи; +city::1585660;Cho Dok;Angiang;Chau Doc;Chau Phu;Chau Phú;Chaudok;Cho Dok;Châu Đốc; +city::1586151;Cao Lanh;Cao Lanh;Cao Lãnh;Phong Thanh; +city::1586203;Can Tho;Can Tho;Cần Thơ;Kan Tho;VCA;kanto;qin ju shi;カントー;芹苴市; +city::1586288;Can Gio;Can Gio;Can Thanh;Cần Giờ;Cần Thạnh; +city::1586296;Can Giuoc;Can Duoc;Can Gioc;Can Giuoc;Cần Duộc;Cần Giuộc; +city::1586350;Cam Ranh;Cam Linh;Cam Ranh Port;Kamran';Thon Cam Ranh;Thôn Cam Ranh;Камрань; +city::1586357;Cam Pha Mines;; +city::1586443;Ca Mau;CAH;Ca Mau;Camo;Cu Mau;Cà Mau;Kamao;Kamau;Quan Long;Quang Long;Song Kualon;Камау; +city::1586896;Buon Ma Thuot;BMV;Ban Me Thaut;Ban Me Thnot;Ban Me Thot;Ban Me Thout;Ban Me Thuot;Ban Mê Thuột;Ban-me-Thurt;Benmethout;Buon Ma Thuot;Buon Me Thuot;Buôn Ma Thuột;Buôn Mê Thuột;Lac Giao;Lạc Giao;Me Thuot;Metuotas; +city::1587919;Bim Son;Bien Son;Bim Son;Biên Sơn;Bỉm Sơn; +city::1587923;Bien Hoa;Bia Hoa;Bien Hoa;Biên Hòa; +city::1587976;Ben Tre;Ben Tre;Bến Tre;Truc Giang;Trúc Giang; +city::1588275;Bao Loc;Ap Thanh Tam;Ban Lao;Bao Loc;Baolok;Blao;Bảo Lộc;Cong Hinh;Баолок;Ấp Thánh Tâm; +city::1591474;Thanh pho Bac Lieu;Bac Lieu;Bac-Lien;Bach Lieu;Bak Lieu;Bạc Liêu;Thanh pho Bac Lieu;Thành phố Bạc Liêu;Vinh Loi;Vĩnh Lợi; +city::1591527;Bac Giang;Bac Giang;Bakziangas;Bakzjang;Bắc Giang;Pet-kong;Pet-kông;Phu Lang Thong;Phu Lang Thuong;Phu Long Thuong;Thuong;Vilojati Bak Giang;bagjang;bak gyang;bak zyang;bakuzan;bei jiang shi;Бакзянг;Вилояти Бак Гианг;باک زیانگ;باک گیانگ;バクザン;北江市;박장; +city::8340760;Cung Kiem;Cung Kiem;Cung Kiệm; +city::784759;Ferizaj;Ferezaj;Ferizaj;Ferizovik;Urosevac;Uroshevac;Uroševac;Урошевац; +city::785238;Suva Reka;Lumthate;Lumthatë;Suha Reka;Suhareka;Suhareke;Suharekë;Suharjeka;Sukareke;Sukarekë;Suva Reka;Suva Reki;Theranda;Thëranda;Сува Река; +city::786712;Prizren;Perzeren;Perzerin;Prizren;Prizrena;Prizrenas;Prizreni;Përzeren;bryzrn;peulijeulen;pryzrn;pu li ci lun;purizuren;Πρίζρεν;Призрен;Приꙁрѣнь;Прізрен;بريزرن;پریزرن;プリズレン;普里兹伦;프리즈렌; +city::786714;Pristina;Gorad Pryshcina;PRN;Prestena;Prishhina;Prishtina;Prishtinae;Prishtine;Prishtinë;Prisjtina;Pristin;Pristina;Pristine;Pristino;Pristína;Prisztina;Prixtina;Priŝtino;Priştina;Priştine;Prištin;Priština;Priștina;Prìstina;Prėštėna;bryshtyna;peulisyutina;phrich ti na;piristina;prisatina;pristina;pryshtyna;prystynh;prysٹyna;pu li shen di na;purishutina;Πρίστινα;Горад Прышціна;Приштинæ;Приштина;Прищина;Պրիշտինա;פרישטינה;بريشتينا;پریسٹینا;پریشتینا;प्रिस्टिना;ਪ੍ਰਿਸ਼ਤੀਨਾ;பிரிஸ்டினா;พริชตีนา;པི་རི་སི་ཊི་ན།;პრიშტინა;プリシュティナ;普里什蒂納;普里什蒂纳;프리슈티나; +city::787157;Peje;Pec;Pecas;Pech;Pegia;Peja;Peje;Pejë;Peć;Pečas;Picaria;Πέγια;Печ;Пећ; +city::789225;Mitrovice;Kosovska Mitrovica;Mitrovica;Mitrovice;Mitrovicë;Косовска Митровица; +city::790674;Gjilan;Gilan;Gjilan;Gjilani;Gnilane;Gniljane;Gnjilane;Gnjilanė;Komuna e Gjilanit;Гњилане; +city::790701;Glogovac;Drenas;Drenasi;Gllogoc;Gllogoci;Gllogofc;Gllogovc;Glogovac;Glogovce;Глоговац; +city::791580;Decan;Decan;Decani;Dekan;Deçan;Deçani;Декан; +city::791646;Gjakove;Gjakova;Gjakove;Gjakovë; +city::69500;Zabid;Zabid;Zabīd;Zebid;zbyd;Забид;زبيد; +city::70225;Ta`izz;TAI;Ta'izz;Ta`izz;Taiz;Taizz;Ta‘izz;Таиз;تعز; +city::70979;Sayyan;Saiyan;Saiyān;Sayyan;Sayyān;Seijan;Seijân;Sian;Siryan;Siryān;syan;سيان; +city::71137;Sanaa;SAH;San"o;San'a;San'a';San'ah;San`a';Sana;Sana'a;Sanaa;Sanaà;Sanaá;Saná;San’ah;sa na;sana;sanua;Şan‘ā';Şan‘ā’;Σάνα;Сана;Санъо;צנעא;صنعاء;ሳና;サヌア;萨那;사나; +city::71334;Sa'dah;SYE;Sa'dah;Sa`da;Sa`dah;Saada;Sa‘da;Sa’dah;Şa‘dah;صعده; +city::74477;Ibb;Ibas;Ibb;ab;ibbu;ibeu;yi bo;Ібб;Ибб;איב;إب;اب;イッブ;伊卜;이브; +city::76184;Dhamar;DMR;Damar;Dhamar;Dhamār;dhmar;ذمار; +city::78428;'Amran;`Amran;`Umran;عمران;‘Amrān;‘Umrān; +city::78754;Al Mukalla;Al Mukalla;Al Mukallā;Al'-Mukalla;Al-Mukalla;MKX;Mukalla;RIY;almkla;Аль-Мукалла;المكلا; +city::79415;Al Hudaydah;Al Hudaydah;Al Ḩudaydah;El-Hodeidah;El-Ḥodeidah;HOD;Hodaidah;Hodeida;Hudaida;Hudaydah;alhdydt;hdydh;الحديدة;حدیده;Ḩudaydah; +city::415189;Aden;ADE;Adan;Adem;Aden;Aden khot;Aden shaary;Adena;Adenas;Adeno;Adén;Aidin;Anten;Cadan;Gorad Adehn;`Adan;adana;aden;edana;xeden;ya ding;Áden;Áidin;Ədən;Ɛaden;Άντεν;Аден;Аден хот;Аден шаары;Горад Адэн;Ադեն;עדן;عدن;अदन;एडन;เอเดน;အေဒင်မြို့;‘Adan;アデン;亚丁;亞丁;아덴; +city::921815;Mamoudzou;Mambutzou;Mamoudzou;Mamoutzou;Mamudzu;Mamutzu;Мамудзу; +city::936374;Roodepoort;Roodepoort;Roodeport-Maraisburg; +city::939270;Witbank;EMalahleni;Ehmalakhleni;Emalahleni;Gorad Ehmalakhleni;Vitbank;Vitbankas;Witbank;wei te ban ke;Вітбанк;Горад Эмалахлені;Эмалахлени;وٹبینک;威特班克; +city::940316;Westonaria;Vestonarija;Westonaria;Вестонария; +city::940909;Welkom;Velkom;Velkomas;WEL;Welkom;u~erukomu;wei er ke mu;Велком;Վելկոմ;ウェルコム;韋爾科姆; +city::941966;Warmbaths;Warmbad;Warmbaths; +city::942470;Vryheid;VYD;Vryheid; +city::943882;Virginia;Virdzhinija;Virginia;Вирджиния; +city::943960;Viljoenskroon;Viljoenskroon; +city::944385;Vereeniging;Feriniging;Ferinikhing;Vereeniging;Vereniging;Verenigingas;ferinihingu;fu li ni xin;peleinihing;wrynygyng;Веренигинг;Феринихинг;Ферінігінг;ورینیگینگ;フェリーニヒング;弗里尼欣;페레이니힝; +city::944986;Vanderbijlpark;Fanderbajpark;Fanderbejlpark;Vanderbijlpark;fan de bai er pa ke;fandrbyjlbark;phandarabilaparka;wandrbjlpark;wndrbyjlprk;Фандербајпарк;Фандербейлпарк;فاندربيجلبارك;واندربجلپارک;وندربیجلپرک;फांडरबीलपार्क;范德拜爾帕克; +city::945945;Upington;Apington;UTN;Upington;eopingteon;wu ping tong;Апингтон;烏平通;어핑턴; +city::946058;Mthatha;Mthatha;UTT;Umtata;umutata;wu mu ta ta;Умтата;متھاتھا;ウムタタ;烏姆塔塔; +city::946877;Uitenhage;Ehjtenkhakhe;Ejtenkhakhe;Jutunkhakh;Uitenhage;awytnhag;oitenhahe;Ейтенхахе;Эйтенхахе;Ютънхах;اویتنهاگ;オイテンハーヘ; +city::949880;Tembisa;Tembisa; +city::952192;Stilfontein;Stilfontein; +city::952734;Stanger;KwaDukuza;Stanger;Stanger Station; +city::952747;Standerton;Standerston;Standerton; +city::953781;Soweto;Mpanzaville;Souehto;Soueto;Sovetas;Soveto;Soweto;sou~eto;soweto;suo wei tuo;swwtw;swytw;Σοβέτο;Совето;Соуэто;סווטו;سويتو;სოვეტო;ソウェト;索韦托;소웨토; +city::956907;Schweizer-Reneke;Schweizer-Reineke;Schweizer-Reneke; +city::957487;Sasolburg;Sasolburg; +city::958724;Rustenburg;Restenberha;Rjustenburg;Rustemburg;Rustemburgo;Rustenburg;Rustenburgas;lei si teng bao;luseutenbeogeu;rastnbrg;rstnbwrg;rus then beirk;rustenabarga;rusutenburuku;rwstnbrgh;Рустенбург;Рюстенбург;רסטנבורג;راستنبرگ;رسٹنبرگ;روستنبرغ;روسٹنبرگ;रुस्टेनबर्ग;รุสเทนเบิร์ก;ሩስተንበርግ;ルステンブルク;勒斯滕堡;루스텐버그; +city::962367;Richards Bay;RCB;Ricardusbaia;Richards Bay;Richards Bej;Richards-Bej;Richardsbaai;Ричардс Беј;Ричардс-Бей; +city::963230;Randfontein;Randfontejn;lan de fang tan;Рандфонтейн;蘭德方坦; +city::963516;Queenstown;EKomani;Kuinstaun;Kvinstaun;Queenstown;UTW;kun shi dui;Квинстаун;Куинстаун;昆士敦; +city::964137;Pretoria;E-Pitoli;Gorad Prehtoryja;IPitoli;PRY;Pitoli;Praetoria;Pretori;Pretoria;Pretoria/Pole tou Akroteriou;Pretoriae;Pretorii;Pretorija;Pretorio;Pretoriya;Pretoriye;Pretoriä;Pretoría;Pretòria;Pretória;Prétoriye;Pta;Tshwane;bi lei tuo li ya;brytwrya;peulitolia;phri thx reiy;pirittoriya;pritori'a;pritoriya;pritteariya;prtwrya;prtwryh;pu li tuo li ya;puretoria;Πρετόρια;Πρετόρια/Πόλη του Ακρωτηρίου;Горад Прэторыя;Претори;Претория;Преторија;Преторія;Պրետորիա;פרטוריה;بريتوريا;پرتوریا;پریٹوریا;پرێتۆریا;प्रिटोरिया;ਪ੍ਰਿਟੋਰੀਆ;பிரிட்டோரியா;ప్రిటోరియా;പ്രിട്ടോറിയ;พริทอเรีย;ཕི་རི་ཐོ་རི་ཡ།;პრეტორია;ፕሪቶሪያ;プレトリア;普利托里亞;比勒陀利亞;프리토리아; +city::964315;Mokopane;Mokopane;Potgietersrus;Potgietersrust;Potgitersrus;mo ke pa nei;Мокопане;Потгитерсрус;莫科帕內; +city::964349;Potchefstroom;PCF;Pochefstrum;Potchefstroom;Potchefstrum;bo qie fu si te lu mu;peaccephestrum;pocephastruma;pochefusutorumu;pochepeuseuteulom;Потчефструм;Почефструм;पॉचेफस्ट्रूम;പൊച്ചെഫെസ്ട്രൂം;ポチェフストルーム;波切夫斯特魯姆;포체프스트롬; +city::964406;Port Shepstone;Port Shepstone;Port-Shepston;xie pu si dui gang;Порт-Шепстон;謝普斯敦港; +city::964420;Port Elizabeth;Gorad Port-Ehlizabet;IBhayi;Ibhayi;PLZ;Port Elisabeth;Port Elizabet;Port Elizabetas;Port Elizabeth;Port Elizampeth;Port-Ehlizabet;Port-Elizabet;Portelizabeta;Porto Elizabeth;Portus Elisabethae;Puerto Elizabeth;bwrt alyzabyth;phxrt xe li sabeth;porta elijhabetha;porta elizabetha;poteuellijabeseu;pwrt alyzabt;yi li sha bai gang;Πορτ Ελίζαμπεθ;Горад Порт-Элізабет;Порт Елизабет;Порт-Елізабет;Порт-Элизабет;פורט אליזבת;بورت إليزابيث;پورت الیزابت;پورٹ الزبتھ;पोर्ट एलिज़ाबेथ;पोर्ट एलिझाबेथ;พอร์ตเอลิซาเบท;პორტ-ელიზაბეთი;ፖርት ኤልሳቤጥ;ポート・エリザベス;伊莉莎白港;포트엘리자베스; +city::965241;Piet Retief;Piet Retief; +city::965289;Polokwane;Gorad Palakvaneh;PTG;Petriburgum;Pietersburg;Polokouane;Polokvane;Polokvanė;Polokwane;bo luo ke wa ni;bwlwkwan;pho lokhe wn;polakvani;pollokwane;polokvane;porokuwane;pwlwkwyn;Πολοκουάνε;Горад Палакванэ;Полокване;פולוקוואנה;بولوكوان;پولوکوانے;پولوکوین;पोलक्वानी;पोलोक्वाने;โพโลเควน;ፖሎክዋኔ;ポロクワネ;波羅克瓦尼;폴로콰네; +city::965301;Pietermaritzburg;Gorad Pitehrmarycburg;Maritzburg;Mokokotlofo;PZB;Petromaritzburgum;Pietermaritsburg;Pietermaritzburg;Pitermaricburg;Pitermaricburgas;Piturmaricburg;bi de ma li ci bao;bytrmarytzbrgh;pi texr ma rits beirk;pitamarittsubagu;pitaramairitsabarga;pitaramaritjhabarga;piteomalicheubeogeu;pytrmarytsbrg;Горад Пітэрмарыцбург;Питермарицбург;Питърмарицбург;Пітермаріцбург;بيترماريتزبرغ;پیترماریتسبرگ;پیٹرماریٹزبرگ;پیٹرومیرٹبرگ;पीटरमारित्झबर्ग;पीटरमैरिट्सबर्ग;ปีเตอร์มาริตซ์เบิร์ก;ピーターマリッツバーグ;彼得马里茨堡;피터마리츠버그; +city::965401;Phuthaditjhaba;Phutaditjhaba;Phuthaditjhaba; +city::965528;Phalaborwa;PHW;Palabora;Palaborva;Phalaborwa;Pkhalaborva;pa la bo lu wa;Палаборва;Пхалаборва;帕拉博魯瓦; +city::966166;Parys;Paris;Parys;Парис; +city::967106;Oudtshoorn;OUH;Oudskhorn;Oudtshoorn;ao ci hu en;Оудсхорн;奧茨胡恩; +city::967476;Orkney;Eastleigh;Orknejskie;Orkney;Оркнейские; +city::970566;Nigel;Najdzhel;Nigel;Найджел; +city::971421;Newcastle;NCS;Newcastle; +city::971534;Nelspruit;Mbombela;NLP;Naspoti;Nel'sprjujt;Nelspreyt;Nelsprojt;Nelspruit;mbombela;nei er si pu lei te;nels pirt;nelsapru'ita;nelseupeulu-iteu;nerusupuroito;nlsprwyt;nlspryyt;nylsbrwyt;nylsprwyt;Мбомбела;Нелспройт;Нелспруит;Нельспрюйт;נלספרייט;نلسپرویت;نيلسبرويت;نیلسپرویت;नेल्सप्रूइत;म्बोम्बेला;เนลสไปรต์;ኔልስፕሩዊት;ネルスプロイト;内尔斯普雷特;넬스프루이트; +city::973111;Mpumalanga;Mpumalanga; +city::973709;Mossel Bay;MZY;Mossel Bay;Mossel-Bej;Mosselbaai;Mosul Bej;Teluk Mossel;mo sai er bei;Моссел-Бей;Мосъл Бей;莫塞爾貝; +city::976361;Middelburg;Middelberg;Middelburg;mi de er bao;Мидделбург;米德爾堡; +city::980921;Mabopane;Mabopane; +city::981827;Louis Trichardt;LCD;Louis Trichardt;Luis-Trichard;lu yi te li ha te;Луис-Тричард;لوئی ٹرشارٹ;ルイス・トリハート;路易特里哈特; +city::982899;Lichtenburg;Lichtenburg;Likhtenburge;Лихтенбурге; +city::986083;Kutloanong;; +city::986822;Krugersdorp;Krjugersdorp;Krjugersdorpa;Krugersdorp;Krugersdorpas;ke lu ge si duo pu;Крюгерсдорп;Крюгерсдорпа;克魯格斯多普; +city::986846;Kroonstad;Kroonstad;Krunstad;ke long si ta de;krwnstad;Крунстад;کرونستاد;克龍斯塔德; +city::988698;Knysna;De Nysna;Knajsno;Knisna;Knysna;Najsna;ke ni si na;knysna;Книсна;Найсна;كنيسنا;克尼斯納; +city::989921;Klerksdorp;Gorad Klerksdorp;KXE;Klerksdorp;ke lai ke si duo pu;Горад Клерксдорп;Клерксдорп;克萊克斯多普; +city::990930;Kimberley;Gorad Kimberli;KIM;Kimberley;Kimberli;Kimberlis;Kimburli;jin bo li;kimbarali;kimbeolli;kinbari;kmbrly shmaly kyp;kymbrly;qymbrly;Горад Кімберлі;Кимберли;Кимбърли;Кімберлі;קימברלי;كيمبرلي;کمبرلی، شمالی کیپ;کمبرلے;کیمبرلی;किम्बरली;キンバリー;金伯利;킴벌리; +city::993800;Johannesburg;EGoli;Giochanesmpournk;Gorad Joganesburg;IGoli;IJohannesburg;Ioannesburgum;JNB;Jo'anna;Joanesburgo;Joburg;Jog'annesburg;Jogannesburg;Johanesburgas;Johanesburgo;Johannesarborg;Johannesbourg;Johannesburg;Johannesburga;Johannesburgo;Johannesburgu;Jokhanesburg;Jokhanezburg;Jokhannesburg;J·ohanesbôrg;Jóhannesarborg;Xohanesburgo;Yohannesburg;Yohannesburq;Yohannésburg;Yok-hon-ni-su-pau;Yok-hon-nì-sṳ̂-páu;Yoxannesburg;cohannes beirk;iohanesburgi;johanisabaraga;johannesbarga;johansabarga;jokanasperk;jwhansbrgh;yohaneseubeogeu;yohanesuburugu;yue han nei si bao;yue han ni si bao;ywhnsbwrg;zhwhansbwrg;Γιοχάνεσμπουργκ;Јоханезбург;Јоханесбург;Горад Ёганесбург;Йоганнесбург;Йогьаннесбург;Йоханесбург;Йоханнесбург;Յոհաննեսբուրգ;יאהאנעסבורג;יוהנסבורג;جوهانسبرغ;جوہانسبرگ;جۆھانسبێرگ;ژوهانسبورگ;یوہانس برگ;जोहन्नेस्बर्ग;जोहान्सबर्ग;ਜੋਹਾਨਿਸਬਰਗ;ஜோகானஸ்பேர்க்;ജൊഹാനസ്‌ബർഗ്;โจฮันเนสเบิร์ก;ဂျိုဟန္နက်စဗတ်မြို့;იოჰანესბურგი;ጆሃንስበርግ;ヨハネスブルグ;約翰尼斯堡;约翰内斯堡;요하네스버그; +city::997140;Heilbron;Heilbron; +city::997151;Heidelberg;Gejdel'berg;Heidelberg;Heidelburg;Гейдельберг; +city::1000501;Grahamstown;Grahamstad;Grahamstown;Grehkhehmstaun;IRhini;ge la han zhen;geuleieomseutaun;gurahamuzutaun;Грэхэмстаун;グラハムズタウン;格拉罕鎮;그레이엄스타운; +city::1000543;Graaff-Reinet;Graaf Reinet;Graaff Reinet;Graaff-Reinet;Khraff-Rejnet;ge la fu-li nei te;gurafu=raine;Храфф-Рейнет;グラーフ=ライネ;格拉夫-里內特; +city::1002851;Ga-Rankuwa;Ga-Rankuwa; +city::1003953;Fort Beaufort;Fort Beaufort;Fort-Bofort;bo fu te gang;Форт-Бофорт;فورٹ بیوفورٹ;博福特港; +city::1004109;Fochville;Fochville; +city::1005646;eMbalenhle;eMbalenhle; +city::1006984;East London;Buffalo City;ELS;EMonti;East London;Gorad Ist-Londan;Ist-London;Istochni London;Iztochen London;Londinium Orientale;Oos Londen;Oos-Londen;Orient-Londono;Tung Lun-tun;Tûng Lùn-tûn;Yst Londonas;ayst lndn;dong lun dui;iseuteuleondeon;ista landana;Іст-Лондон;Горад Іст-Лондан;Източен Лондон;Ист-Лондон;Источни Лондон;איסט לונדון;إيست لندن;ایسٹ لندن;ईस्ट लंडन;イースト・ロンドン;東倫敦;이스트런던; +city::1007311;Durban;DUR;Durban;Durbana;Durbanas;Durbano;Durbanum;EThekwini;Gorad Durban;ITheku;Ntermpan;Port Natal;Thekong;daban;darabana;darban;darbana;de ban;de xr ban;deoban;die bin;drbn;durbani;dwrban;dyrban;tarpan;Ντέρμπαν;Горад Дурбан;Дурбан;Дърбан;Դուրբան;דרבן;دوربان;ديربان;ڈربن;डरबन;डर्बन;ਡਰਬਨ;டர்பன்;డర్బన్;ಡರ್ಬನ್;ഡർബൻ;เดอร์บัน;ဒါဘန်မြို့;დურბანი;ደርባን;ダーバン;德班;爹濱;더반; +city::1007400;Dundee;Dandi;Dundee;Данди; +city::1011031;Delmas;Del'mas;Delmas;Дельмас; +city::1014073;Carletonville;Carletonville; +city::1015621;Brits;Britancy;Brits;bu li ci;Британцы;Бритс;布里茨; +city::1016181;Brakpan;Brakpan; +city::1016670;Botshabelo;Botshabelo; +city::1016698;Bothaville;Botavill';Bothaville;Ботавилль; +city::1017780;Boksburg;Boksburg;Boksburgas;Боксбург;Բոկսբուրգ; +city::1018725;Bloemfontein;BFN;Bloemfontein;Blumfonteina;Blumfonteinas;Blumfontejn;Blumfonteyn;EBloemfontein;Gorad Blumfantehjn;IBloemfontein;Mangaung;Mploumphontein;balumaphontaina;beullumpontein;blum fxn then;blumafonatena;blumaphamtena;blumphanteyiൻ;blwmfwntn;blwmfwntyn;blwmpwntyyn;blwwmfۆntەyn;bu long fang dan;burumufonten;Μπλουμφοντέιν;Блумфонтейн;Блумфонтејн;Горад Блумфантэйн;Բլումֆոնթեյն;בלומפונטיין;بلوئمفونٹین;بلومفونتن;بلومفونتين;بلومفونٹین;بلوومفۆنتەین;ब्लूमफ़ोनटेन;ब्लूमफाँटेन;ਬਲੂਮਫੋਂਟੈਨ;ബ്ലൂംഫൗണ്ടെയിൻ;บลูมฟอนเทน;ბლუმფონტეინი;ብሉምፎንቴይን;ブルームフォンテーン;布隆方丹;블룸폰테인; +city::1019330;Bhisho;BIY;Bhisho;Bisho;Biso;Bišo;bhiso;bi shao;bisho;bisyo;byshw;Бишо;Бішо;بيشو;بھشو;بھیشو;भिशो;ビショ;比绍;비쇼; +city::1019704;Bethlehem;Bethlehem;Vifleem;Вифлеем; +city::1019760;Bethal;Bethal; +city::1020098;Benoni;Benoni;Бенони;Беноні;Բենոնի; +city::1021086;Barberton;Barberton;ba bo dun;巴伯頓; +city::1105776;Midrand;Midrand;Мидранд; +city::1105777;Centurion;Centurion;Verwoerdburg;centurion;sencyuriyana;Центурион;सेंच्युरियन; +city::3359041;Worcester;Gorad Vustehr;Vuster;Worcester;Worcester i Western Cape;usuta;wu si te;Вустер;Горад Вустэр;ウースター;伍斯特; +city::3359510;Wellington;Wellington; +city::3361025;Stellenbosch;Stellenbos;Stellenbosch;seutellenboseu;si tai lun bo si;suterenbosshu;Стелленбос;Սթելլենբոս;ステレンボッシュ;斯泰倫博斯;스텔렌보스; +city::3361934;Saldanha;Hoedjes Bay;Hoedjesbaai;Hoetjes Bay;SDB;Saldana;Saldanha;Салдана; +city::3363094;Paarl;Paarl;pa a er;paru;Паарл;パール;帕阿爾; +city::3365083;Kraaifontein;Kraaifontein; +city::3369157;Cape Town;Altepetl In Cabo;Ar Chab;CPT;Cape Toun;Cape Town;Cidade do Cabo;Cita del Cap;Citati du Capu;Citati dû Capu;Citta del Capo;Cittae do Cavo;Città del Capo;Cità del Cap;Ciuda del Cabu;Ciudad del Cabo;Ciudat do Cabo;Ciudá del Cabu;Ciutat del Cap;Civitas Capitis;El Cabo;Fokvaros;Fokváros;Gorad Kejptaun;Hoefdaborg;Hovdastadur;Höfðaborg;Høvdastaður;IKapa;Kaapstad;Kaapsted;Kaapstêd;Kab town;Kabe Urbe;Kaburbo;Kaepstad;Kapetown;Kapkaupunki;Kaplinn;Kapske Mesto;Kapske Misto;Kapské Mesto;Kapské Město;Kapstad;Kapstaden;Kapstadt;Kapsztad;Kapétown;Keip Taoun;Keiptaun;Keiptauna;Keiptaunas;Keiptauns;Kejptaun;Keyptaun;Keyptawn;Keýptaun;Le Cap;Li Kap;Lo Cap;Lurmutur Hiria;Lé Cap;Sita del Cao;Sita del Cap;Sità del Cao;Sità dël Cap;Tref y Penrhyn;Yvy akua Tava;Yvy akua Táva;hao wang jiao zhen;iKapa;kai pu dui;kai pu dun;keipeutaun;kep taun;kep tavun;kepa ta'una;kepata'una;keputaun;khep thawn;kyb tawn;kېp ټawn;Çittæ do Cavo;Κέιπ Τάουν;Горад Кейптаўн;Капске Місто;Кейптаун;Кејптаун;Քեյփթաուն;קאפשטאט;קייפטאון;كيب تاون;کیپ ٹاؤن;کیپ‌تاون;کېپ ټاون;کەیپ تاون;केपटाउन;केपताउन;কেপ টাউন;ਕੇਪਟਾਊਨ;કેપ ટાઉન;କେପ ଟାଉନ;கேப் டவுன்;కేప్ టౌన్;ಕೇಪ್ ಟೌನ್;കേപ് ടൗൺ;เคปทาวน์;ကိပ်တောင်းမြို့;კეიპტაუნი;ኬፕ ታውን;ケープタウン;好望角鎮;開普敦;케이프타운; +city::3370352;Atlantis;Atlantida;Atlantis;Атлантида; +city::901344;Ndola;Gorad Ndola;NLA;Ndola;Ntola;en duo la;eundolla;ndola;ndora;ndwla;Ντόλα;Горад Ндола;Ндола;ندولا;ნდოლა;ンドラ;恩多拉;은돌라; +city::905395;Mufulira;Mufulira;Mufulire;Муфулире; +city::906054;Mongu;MNR;Mongu;Mungu;Монгу; +city::907111;Mazabuka;Mazabuka;Мазабука; +city::909137;Lusaka;Gorad Lusaka;LUN;Lousaka;Louzaka;Lusaca;Lusak;Lusaka;Lusako;Lúsaka;Lûsaka;lu sa ka;lu sha ka;lucakka;lusaka;lwsaka;lwsqh;lwwsaka;rusaka;Λουσάκα;Горад Лусака;Лусака;Լուսակա;לוסאקא;לוסקה;لوساكا;لوساکا;لووساکا;لۇساكا;लुसाका;লুসাকা;ਲੁਸਾਕਾ;ଲୁସାକ;லுசாக்கா;ลูซากา;ལུ་ས་ཀ།;ლუსაკა;ሉሳካ;ルサカ;盧薩卡;路沙卡;루사카; +city::909863;Luanshya;Luansh'ja;Luansha;Luanshya;Luanshyo;Luansija;Luanšija;lu an xia;luansya;lwanshya;ruansha;Луанша;Луаншья;لوانشیا;ルアンシャ;盧安夏;루안샤; +city::910111;Livingstone;LVI;Livin'nkston;Livingston;Livingston shaary;Livingstonas;Livingstone;Livingstore;Livingstun;Maramba;li wen si dun;libingseuteon;lywwyngstwn;Λίβινγκστον;Ливингстон;Ливингстон шаары;Ливингстън;Марамба;ליווינגסטון;لیونگسٹون، زیمبیا;利文斯顿;리빙스턴; +city::911148;Kitwe;KIW;Kitoue;Kitue;Kitve;Kitve-Nkana;Kitvė;Kitwe;Kitwe Nkana;Nkana-Kitwe;ji te wei;kiteuwe;kitou~e;kytwy;Κίτουε;Китве;Китве-Нкана;Китуе;Кітве;Կիտվե-Նկանա;كيتوي;کتوے;კიტვე;キトウェ;基特韦;키트웨; +city::912764;Kasama;Arcidiocesi di Kasama;KAA;Kasama;Kazama;ka sa ma;kasama;kasama zymbya;Καζάμα;Касама;Կասամա;کاساما، زیمبیا;カサマ;卡薩馬;카사마; +city::914959;Kalulushi;Kalulshi;Kalulushi; +city::916095;Kabwe;Broken Hill;Gorad Kabveh;Kabue;Kabve;Kabvė;Kabwe;QKE;ka bu wei;kabeuwe;kabuu~e;kabwy;Горад Кабвэ;Кабве;Кабуе;كابوي;کابوے;カブウェ;卡布韦;카브웨; +city::918702;Chipata;CIP;Chipata;Cipata;Fort Jameson;Tsipata;chipata;chpata;qi pa ta;Čipata;Τσιπάτα;Чипата;چپاتا;奇帕塔;치파타; +city::919009;Chingola;CGJ;Chingola;Cingola;ching-golla;chingora;chngwla;qin ge la;shynghwla;Čingola;Чингола;شينغولا;چنگولا;チンゴラ;欽戈拉;칭골라; +city::919544;Chililabombwe;Bancroft;Chilabombwe;Chiliabombwe;Chiliadomewe;Chililabombwe; +city::884141;Norton;Norton;Нортон; +city::884979;Mutare;Gorad Mutareh;Mutare;Mutarė;Nyautare;UTA;Umtali;mu ta lei;mutale;Горад Мутарэ;Мутаре;穆塔雷;무타레; +city::886763;Masvingo;Fort Victoria;MVZ;Mashvingo;Masvingo;Nyanda;Машвинго; +city::886990;Marondera;Marandellas;Marondera; +city::888710;Kwekwe;Hwe Hwe;Kvekve;Kvekvė;Kwekwe;Que Que;kui kui shi;kwekwe;kwykwy;kwyykwyy;Квекве;كويكوى;کوئیکوئی;奎奎市;퀘퀘; +city::889453;Kadoma;Gatooma;Kadoma;Kadome;Katoma;ka duo ma;kadoma;Кадома;Кадоме;کادوما، زمبابوے;カドマ;卡多馬;카도마; +city::890299;Harare;Arare;Charare;Gorad Kharareh;HRE;Harare;Hararensis Urbs;Harareo;Hararė;Kharare;Salisbury;ha la lei;halale;harare;harary;hrarh;hrary;Χαράρε;Горад Харарэ;Хараре;Հարարե;הארארה;هارارى;هراره;هراري;ھارارې;ھەرارێ;ہرارے;हरारे;ਹਰਾਰੇ;ହାରାରେ;ஹராரே;ฮาราเร;ཧ་ར་རི།;ჰარარე;ሀራሬ;ハラレ;哈拉雷;하라레; +city::890422;Gweru;GWE;Gveru;Gwelo;Gweru;Гверу; +city::893697;Chinhoyi;Chinhoyi;Chinkhoi;Chinkhoji;Chinoyi;Cinhojis;Sinoia;qi nuo yi;Činhojis;Чинхойи;Чинхої;Чинхоји;چینہوئی;奇諾伊; +city::894701;Bulawayo;BUQ;Bulavajas;Bulavajo;Bulavejo;Bulawayo;Gorad Bulavajo;bu la wa yue;bullawayo;burawayo;Булавайо;Булавајо;Булавейо;Горад Булаваё;ブラワヨ;布拉瓦约;불라와요; +city::1106542;Chitungwiza;Chitungviza;Chitungwiza;Citungviza;Gorad Chytungviza;chytwngwyza;Čitungviza;Горад Чытунгвіза;Читунгвиза;Читунгвіза;چیتونگویزا; \ No newline at end of file diff --git a/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/dedupConfig.st b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/dedupConfig.st new file mode 100644 index 000000000..100b023f8 --- /dev/null +++ b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/dedupConfig.st @@ -0,0 +1,27 @@ +{ + "wf" : { + "threshold" : "$threshold$", + "dedupRun" : "$run$", + "entityType" : "$entityType$", + "subEntityType" : "$subEntityType$", + "subEntityValue" : "$subEntityValue$", + "orderField" : "$orderField$", + "queueMaxSize" : "$queueMaxSize$", + "groupMaxSize" : "$groupMaxSize$", + "slidingWindowSize" : "$slidingWindowSize$", + "rootBuilder" : [ $rootBuilder:{"$it$"};separator=", "$ ], + "includeChildren" : "$includeChildren$", + "configurationId" : "$configurationId$" + }, + "pace" : { + "clustering" : [ + ], + "sufficientConditions" : [ + ], + "necessaryConditions" : [ + ], + "model" : [ + ], + "blacklists" : { } + } +} \ No newline at end of file diff --git a/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/name_particles.txt b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/name_particles.txt new file mode 100644 index 000000000..dae37c9dc --- /dev/null +++ b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/name_particles.txt @@ -0,0 +1,7 @@ +van +der +de +dell +sig +mr +mrs diff --git a/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/ngram_blacklist.txt b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/ngram_blacklist.txt new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_de.txt b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_de.txt new file mode 100644 index 000000000..c9478968e --- /dev/null +++ b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_de.txt @@ -0,0 +1,620 @@ +a +ab +aber +ach +acht +achte +achten +achter +achtes +ag +alle +allein +allem +aller +allerdings +alles +allgemeinen +als +also +am +an +ander +andere +anderem +anderen +anderer +anderes +anderm +andern +anderr +anders +au +auch +auf +aus +ausser +ausserdem +außer +außerdem +b +bald +bei +beide +beiden +beim +beispiel +bekannt +bereits +besonders +besser +besten +bin +bis +bisher +bist +c +d +d.h +da +dabei +dadurch +dafür +dagegen +daher +dahin +dahinter +damals +damit +danach +daneben +dank +dann +daran +darauf +daraus +darf +darfst +darin +darum +darunter +darüber +das +dasein +daselbst +dass +dasselbe +davon +davor +dazu +dazwischen +daß +dein +deine +deinem +deinen +deiner +deines +dem +dementsprechend +demgegenüber +demgemäss +demgemäß +demselben +demzufolge +den +denen +denn +denselben +der +deren +derer +derjenige +derjenigen +dermassen +dermaßen +derselbe +derselben +des +deshalb +desselben +dessen +deswegen +dich +die +diejenige +diejenigen +dies +diese +dieselbe +dieselben +diesem +diesen +dieser +dieses +dir +doch +dort +drei +drin +dritte +dritten +dritter +drittes +du +durch +durchaus +durfte +durften +dürfen +dürft +e +eben +ebenso +ehrlich +ei +ei, +eigen +eigene +eigenen +eigener +eigenes +ein +einander +eine +einem +einen +einer +eines +einig +einige +einigem +einigen +einiger +einiges +einmal +eins +elf +en +ende +endlich +entweder +er +ernst +erst +erste +ersten +erster +erstes +es +etwa +etwas +euch +euer +eure +eurem +euren +eurer +eures +f +folgende +früher +fünf +fünfte +fünften +fünfter +fünftes +für +g +gab +ganz +ganze +ganzen +ganzer +ganzes +gar +gedurft +gegen +gegenüber +gehabt +gehen +geht +gekannt +gekonnt +gemacht +gemocht +gemusst +genug +gerade +gern +gesagt +geschweige +gewesen +gewollt +geworden +gibt +ging +gleich +gott +gross +grosse +grossen +grosser +grosses +groß +große +großen +großer +großes +gut +gute +guter +gutes +h +hab +habe +haben +habt +hast +hat +hatte +hatten +hattest +hattet +heisst +her +heute +hier +hin +hinter +hoch +hätte +hätten +i +ich +ihm +ihn +ihnen +ihr +ihre +ihrem +ihren +ihrer +ihres +im +immer +in +indem +infolgedessen +ins +irgend +ist +j +ja +jahr +jahre +jahren +je +jede +jedem +jeden +jeder +jedermann +jedermanns +jedes +jedoch +jemand +jemandem +jemanden +jene +jenem +jenen +jener +jenes +jetzt +k +kam +kann +kannst +kaum +kein +keine +keinem +keinen +keiner +keines +kleine +kleinen +kleiner +kleines +kommen +kommt +konnte +konnten +kurz +können +könnt +könnte +l +lang +lange +leicht +leide +lieber +los +m +machen +macht +machte +mag +magst +mahn +mal +man +manche +manchem +manchen +mancher +manches +mann +mehr +mein +meine +meinem +meinen +meiner +meines +mensch +menschen +mich +mir +mit +mittel +mochte +mochten +morgen +muss +musst +musste +mussten +muß +mußt +möchte +mögen +möglich +mögt +müssen +müsst +müßt +n +na +nach +nachdem +nahm +natürlich +neben +nein +neue +neuen +neun +neunte +neunten +neunter +neuntes +nicht +nichts +nie +niemand +niemandem +niemanden +noch +nun +nur +o +ob +oben +oder +offen +oft +ohne +ordnung +p +q +r +recht +rechte +rechten +rechter +rechtes +richtig +rund +s +sa +sache +sagt +sagte +sah +satt +schlecht +schluss +schon +sechs +sechste +sechsten +sechster +sechstes +sehr +sei +seid +seien +sein +seine +seinem +seinen +seiner +seines +seit +seitdem +selbst +sich +sie +sieben +siebente +siebenten +siebenter +siebentes +sind +so +solang +solche +solchem +solchen +solcher +solches +soll +sollen +sollst +sollt +sollte +sollten +sondern +sonst +soweit +sowie +später +startseite +statt +steht +suche +t +tag +tage +tagen +tat +teil +tel +tritt +trotzdem +tun +u +uhr +um +und +und? +uns +unse +unsem +unsen +unser +unsere +unserer +unses +unter +v +vergangenen +viel +viele +vielem +vielen +vielleicht +vier +vierte +vierten +vierter +viertes +vom +von +vor +w +wahr? +wann +war +waren +warst +wart +warum +was +weg +wegen +weil +weit +weiter +weitere +weiteren +weiteres +welche +welchem +welchen +welcher +welches +wem +wen +wenig +wenige +weniger +weniges +wenigstens +wenn +wer +werde +werden +werdet +weshalb +wessen +wie +wieder +wieso +will +willst +wir +wird +wirklich +wirst +wissen +wo +woher +wohin +wohl +wollen +wollt +wollte +wollten +worden +wurde +wurden +während +währenddem +währenddessen +wäre +würde +würden +x +y +z +z.b +zehn +zehnte +zehnten +zehnter +zehntes +zeit +zu +zuerst +zugleich +zum +zunächst +zur +zurück +zusammen +zwanzig +zwar +zwei +zweite +zweiten +zweiter +zweites +zwischen +zwölf +über +überhaupt +übrigens \ No newline at end of file diff --git a/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_en.txt b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_en.txt new file mode 100644 index 000000000..0a013d33d --- /dev/null +++ b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_en.txt @@ -0,0 +1,138 @@ +a +about +above +after +again +against +all +an +and +any +are +aren +as +at +be +because +been +before +being +below +between +both +but +by +can +cannot +could +couldn +did +didn +do +does +doesn +doing +don +down +during +each +few +for +from +further +had +hadn +has +hasn +have +havent +having +he +hed +her +here +hers +herself +him +himself +his +how +if +in +into +is +isn +it +its +itself +let +more +most +mustn +myself +no +nor +not +of +off +on +once +only +other +ought +our +ours +ourselves +out +over +own +s +same +shan +she +should +shouldn +so +some +such +than +that +the +their +theirs +themselves +then +there +these +they +this +those +through +to +too +under +until +up +very +was +wasn +we +were +weren +what +when +where +which +while +who +whom +why +with +won +would +wouldn +you +your +yours +yourself +yourselves \ No newline at end of file diff --git a/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_es.txt b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_es.txt new file mode 100644 index 000000000..79d31a0bb --- /dev/null +++ b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_es.txt @@ -0,0 +1,720 @@ +a +actualmente +acuerdo +adelante +ademas +además +adrede +afirmó +agregó +ahi +ahora +ahí +al +algo +alguna +algunas +alguno +algunos +algún +alli +allí +alrededor +ambos +ampleamos +antano +antaño +ante +anterior +antes +apenas +aproximadamente +aquel +aquella +aquellas +aquello +aquellos +aqui +aquél +aquélla +aquéllas +aquéllos +aquí +arriba +arribaabajo +aseguró +asi +así +atras +aun +aunque +ayer +añadió +aún +b +bajo +bastante +bien +breve +buen +buena +buenas +bueno +buenos +c +cada +casi +cerca +cierta +ciertas +cierto +ciertos +cinco +claro +comentó +como +con +conmigo +conocer +conseguimos +conseguir +considera +consideró +consigo +consigue +consiguen +consigues +contigo +contra +cosas +creo +cual +cuales +cualquier +cuando +cuanta +cuantas +cuanto +cuantos +cuatro +cuenta +cuál +cuáles +cuándo +cuánta +cuántas +cuánto +cuántos +cómo +d +da +dado +dan +dar +de +debajo +debe +deben +debido +decir +dejó +del +delante +demasiado +demás +dentro +deprisa +desde +despacio +despues +después +detras +detrás +dia +dias +dice +dicen +dicho +dieron +diferente +diferentes +dijeron +dijo +dio +donde +dos +durante +día +días +dónde +e +ejemplo +el +ella +ellas +ello +ellos +embargo +empleais +emplean +emplear +empleas +empleo +en +encima +encuentra +enfrente +enseguida +entonces +entre +era +erais +eramos +eran +eras +eres +es +esa +esas +ese +eso +esos +esta +estaba +estabais +estaban +estabas +estad +estada +estadas +estado +estados +estais +estamos +estan +estando +estar +estaremos +estará +estarán +estarás +estaré +estaréis +estaría +estaríais +estaríamos +estarían +estarías +estas +este +estemos +esto +estos +estoy +estuve +estuviera +estuvierais +estuvieran +estuvieras +estuvieron +estuviese +estuvieseis +estuviesen +estuvieses +estuvimos +estuviste +estuvisteis +estuviéramos +estuviésemos +estuvo +está +estábamos +estáis +están +estás +esté +estéis +estén +estés +ex +excepto +existe +existen +explicó +expresó +f +fin +final +fue +fuera +fuerais +fueran +fueras +fueron +fuese +fueseis +fuesen +fueses +fui +fuimos +fuiste +fuisteis +fuéramos +fuésemos +g +general +gran +grandes +gueno +h +ha +haber +habia +habida +habidas +habido +habidos +habiendo +habla +hablan +habremos +habrá +habrán +habrás +habré +habréis +habría +habríais +habríamos +habrían +habrías +habéis +había +habíais +habíamos +habían +habías +hace +haceis +hacemos +hacen +hacer +hacerlo +haces +hacia +haciendo +hago +han +has +hasta +hay +haya +hayamos +hayan +hayas +hayáis +he +hecho +hemos +hicieron +hizo +horas +hoy +hube +hubiera +hubierais +hubieran +hubieras +hubieron +hubiese +hubieseis +hubiesen +hubieses +hubimos +hubiste +hubisteis +hubiéramos +hubiésemos +hubo +i +igual +incluso +indicó +informo +informó +intenta +intentais +intentamos +intentan +intentar +intentas +intento +ir +j +junto +k +l +la +lado +largo +las +le +lejos +les +llegó +lleva +llevar +lo +los +luego +lugar +m +mal +manera +manifestó +mas +mayor +me +mediante +medio +mejor +mencionó +menos +menudo +mi +mia +mias +mientras +mio +mios +mis +misma +mismas +mismo +mismos +modo +momento +mucha +muchas +mucho +muchos +muy +más +mí +mía +mías +mío +míos +n +nada +nadie +ni +ninguna +ningunas +ninguno +ningunos +ningún +no +nos +nosotras +nosotros +nuestra +nuestras +nuestro +nuestros +nueva +nuevas +nuevo +nuevos +nunca +o +ocho +os +otra +otras +otro +otros +p +pais +para +parece +parte +partir +pasada +pasado +paìs +peor +pero +pesar +poca +pocas +poco +pocos +podeis +podemos +poder +podria +podriais +podriamos +podrian +podrias +podrá +podrán +podría +podrían +poner +por +por qué +porque +posible +primer +primera +primero +primeros +principalmente +pronto +propia +propias +propio +propios +proximo +próximo +próximos +pudo +pueda +puede +pueden +puedo +pues +q +qeu +que +quedó +queremos +quien +quienes +quiere +quiza +quizas +quizá +quizás +quién +quiénes +qué +r +raras +realizado +realizar +realizó +repente +respecto +s +sabe +sabeis +sabemos +saben +saber +sabes +sal +salvo +se +sea +seamos +sean +seas +segun +segunda +segundo +según +seis +ser +sera +seremos +será +serán +serás +seré +seréis +sería +seríais +seríamos +serían +serías +seáis +señaló +si +sido +siempre +siendo +siete +sigue +siguiente +sin +sino +sobre +sois +sola +solamente +solas +solo +solos +somos +son +soy +soyos +su +supuesto +sus +suya +suyas +suyo +suyos +sé +sí +sólo +t +tal +tambien +también +tampoco +tan +tanto +tarde +te +temprano +tendremos +tendrá +tendrán +tendrás +tendré +tendréis +tendría +tendríais +tendríamos +tendrían +tendrías +tened +teneis +tenemos +tener +tenga +tengamos +tengan +tengas +tengo +tengáis +tenida +tenidas +tenido +tenidos +teniendo +tenéis +tenía +teníais +teníamos +tenían +tenías +tercera +ti +tiempo +tiene +tienen +tienes +toda +todas +todavia +todavía +todo +todos +trabaja +trabajais +trabajamos +trabajan +trabajar +trabajas +trabajo +tras +trata +través +tres +tu +tus +tuve +tuviera +tuvierais +tuvieran +tuvieras +tuvieron +tuviese +tuvieseis +tuviesen +tuvieses +tuvimos +tuviste +tuvisteis +tuviéramos +tuviésemos +tuvo +tuya +tuyas +tuyo +tuyos +tú +u +ultimo +un +una +unas +uno +unos +usa +usais +usamos +usan +usar +usas +uso +usted +ustedes +v +va +vais +valor +vamos +van +varias +varios +vaya +veces +ver +verdad +verdadera +verdadero +vez +vosotras +vosotros +voy +vuestra +vuestras +vuestro +vuestros +w +x +y +ya +yo +z +él +éramos +ésa +ésas +ése +ésos +ésta +éstas +éste +éstos +última +últimas +último +últimos \ No newline at end of file diff --git a/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_fr.txt b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_fr.txt new file mode 100644 index 000000000..f767a125a --- /dev/null +++ b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_fr.txt @@ -0,0 +1,688 @@ +a +abord +absolument +afin +ah +ai +aie +aient +aies +ailleurs +ainsi +ait +allaient +allo +allons +allô +alors +anterieur +anterieure +anterieures +apres +après +as +assez +attendu +au +aucun +aucune +aucuns +aujourd +aujourd'hui +aupres +auquel +aura +aurai +auraient +aurais +aurait +auras +aurez +auriez +aurions +aurons +auront +aussi +autre +autrefois +autrement +autres +autrui +aux +auxquelles +auxquels +avaient +avais +avait +avant +avec +avez +aviez +avions +avoir +avons +ayant +ayez +ayons +b +bah +bas +basee +bat +beau +beaucoup +bien +bigre +bon +boum +bravo +brrr +c +car +ce +ceci +cela +celle +celle-ci +celle-là +celles +celles-ci +celles-là +celui +celui-ci +celui-là +celà +cent +cependant +certain +certaine +certaines +certains +certes +ces +cet +cette +ceux +ceux-ci +ceux-là +chacun +chacune +chaque +cher +chers +chez +chiche +chut +chère +chères +ci +cinq +cinquantaine +cinquante +cinquantième +cinquième +clac +clic +combien +comme +comment +comparable +comparables +compris +concernant +contre +couic +crac +d +da +dans +de +debout +dedans +dehors +deja +delà +depuis +dernier +derniere +derriere +derrière +des +desormais +desquelles +desquels +dessous +dessus +deux +deuxième +deuxièmement +devant +devers +devra +devrait +different +differentes +differents +différent +différente +différentes +différents +dire +directe +directement +dit +dite +dits +divers +diverse +diverses +dix +dix-huit +dix-neuf +dix-sept +dixième +doit +doivent +donc +dont +dos +douze +douzième +dring +droite +du +duquel +durant +dès +début +désormais +e +effet +egale +egalement +egales +eh +elle +elle-même +elles +elles-mêmes +en +encore +enfin +entre +envers +es +essai +est +et +etant +etc +etre +eu +eue +eues +euh +eurent +eus +eusse +eussent +eusses +eussiez +eussions +eut +eux +eux-mêmes +exactement +excepté +extenso +exterieur +eûmes +eût +eûtes +f +fais +faisaient +faisant +fait +faites +façon +feront +fi +flac +floc +fois +font +force +furent +fus +fusse +fussent +fusses +fussiez +fussions +fut +fûmes +fût +fûtes +g +gens +h +ha +haut +hein +hem +hep +hi +ho +holà +hop +hormis +hors +hou +houp +hue +hui +huit +huitième +hum +hurrah +hé +hélas +i +ici +il +ils +importe +j +je +jusqu +jusque +juste +k +l +la +laisser +laquelle +las +le +lequel +les +lesquelles +lesquels +leur +leurs +longtemps +lors +lorsque +lui +lui-meme +lui-même +là +lès +m +ma +maint +maintenant +mais +malgre +malgré +maximale +me +meme +memes +merci +mes +mien +mienne +miennes +miens +mille +mince +mine +minimale +moi +moi-meme +moi-même +moindres +moins +mon +mot +moyennant +multiple +multiples +même +mêmes +n +na +naturel +naturelle +naturelles +ne +neanmoins +necessaire +necessairement +neuf +neuvième +ni +nombreuses +nombreux +nommés +non +nos +notamment +notre +nous +nous-mêmes +nouveau +nouveaux +nul +néanmoins +nôtre +nôtres +o +oh +ohé +ollé +olé +on +ont +onze +onzième +ore +ou +ouf +ouias +oust +ouste +outre +ouvert +ouverte +ouverts +o| +où +p +paf +pan +par +parce +parfois +parle +parlent +parler +parmi +parole +parseme +partant +particulier +particulière +particulièrement +pas +passé +pendant +pense +permet +personne +personnes +peu +peut +peuvent +peux +pff +pfft +pfut +pif +pire +pièce +plein +plouf +plupart +plus +plusieurs +plutôt +possessif +possessifs +possible +possibles +pouah +pour +pourquoi +pourrais +pourrait +pouvait +prealable +precisement +premier +première +premièrement +pres +probable +probante +procedant +proche +près +psitt +pu +puis +puisque +pur +pure +q +qu +quand +quant +quant-à-soi +quanta +quarante +quatorze +quatre +quatre-vingt +quatrième +quatrièmement +que +quel +quelconque +quelle +quelles +quelqu'un +quelque +quelques +quels +qui +quiconque +quinze +quoi +quoique +r +rare +rarement +rares +relative +relativement +remarquable +rend +rendre +restant +reste +restent +restrictif +retour +revoici +revoilà +rien +s +sa +sacrebleu +sait +sans +sapristi +sauf +se +sein +seize +selon +semblable +semblaient +semble +semblent +sent +sept +septième +sera +serai +seraient +serais +serait +seras +serez +seriez +serions +serons +seront +ses +seul +seule +seulement +si +sien +sienne +siennes +siens +sinon +six +sixième +soi +soi-même +soient +sois +soit +soixante +sommes +son +sont +sous +souvent +soyez +soyons +specifique +specifiques +speculatif +stop +strictement +subtiles +suffisant +suffisante +suffit +suis +suit +suivant +suivante +suivantes +suivants +suivre +sujet +superpose +sur +surtout +t +ta +tac +tandis +tant +tardive +te +tel +telle +tellement +telles +tels +tenant +tend +tenir +tente +tes +tic +tien +tienne +tiennes +tiens +toc +toi +toi-même +ton +touchant +toujours +tous +tout +toute +toutefois +toutes +treize +trente +tres +trois +troisième +troisièmement +trop +très +tsoin +tsouin +tu +té +u +un +une +unes +uniformement +unique +uniques +uns +v +va +vais +valeur +vas +vers +via +vif +vifs +vingt +vivat +vive +vives +vlan +voici +voie +voient +voilà +vont +vos +votre +vous +vous-mêmes +vu +vé +vôtre +vôtres +w +x +y +z +zut +à +â +ça +ès +étaient +étais +était +étant +état +étiez +étions +été +étée +étées +étés +êtes +être +ô \ No newline at end of file diff --git a/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_gr.txt b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_gr.txt new file mode 100644 index 000000000..25deffb38 --- /dev/null +++ b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_gr.txt @@ -0,0 +1,847 @@ +ένα +έναν +ένας +αι +ακομα +ακομη +ακριβως +αληθεια +αληθινα +αλλα +αλλαχου +αλλες +αλλη +αλλην +αλλης +αλλιως +αλλιωτικα +αλλο +αλλοι +αλλοιως +αλλοιωτικα +αλλον +αλλος +αλλοτε +αλλου +αλλους +αλλων +αμα +αμεσα +αμεσως +αν +ανα +αναμεσα +αναμεταξυ +ανευ +αντι +αντιπερα +αντις +ανω +ανωτερω +αξαφνα +απ +απεναντι +απο +αποψε +από +αρα +αραγε +αργα +αργοτερο +αριστερα +αρκετα +αρχικα +ας +αυριο +αυτα +αυτες +αυτεσ +αυτη +αυτην +αυτης +αυτο +αυτοι +αυτον +αυτος +αυτοσ +αυτου +αυτους +αυτουσ +αυτων +αφοτου +αφου +αἱ +αἳ +αἵ +αὐτόσ +αὐτὸς +αὖ +α∆ιακοπα +βεβαια +βεβαιοτατα +γάρ +γα +γα^ +γε +γι +για +γοῦν +γρηγορα +γυρω +γὰρ +δ' +δέ +δή +δαί +δαίσ +δαὶ +δαὶς +δε +δεν +δι +δι' +διά +δια +διὰ +δὲ +δὴ +δ’ +εαν +εαυτο +εαυτον +εαυτου +εαυτους +εαυτων +εγκαιρα +εγκαιρως +εγω +ειθε +ειμαι +ειμαστε +ειναι +εις +εισαι +εισαστε +ειστε +ειτε +ειχα +ειχαμε +ειχαν +ειχατε +ειχε +ειχες +ει∆εμη +εκ +εκαστα +εκαστες +εκαστη +εκαστην +εκαστης +εκαστο +εκαστοι +εκαστον +εκαστος +εκαστου +εκαστους +εκαστων +εκει +εκεινα +εκεινες +εκεινεσ +εκεινη +εκεινην +εκεινης +εκεινο +εκεινοι +εκεινον +εκεινος +εκεινοσ +εκεινου +εκεινους +εκεινουσ +εκεινων +εκτος +εμας +εμεις +εμενα +εμπρος +εν +ενα +εναν +ενας +ενος +εντελως +εντος +εντωμεταξυ +ενω +ενός +εξ +εξαφνα +εξης +εξισου +εξω +επ +επί +επανω +επειτα +επει∆η +επι +επισης +επομενως +εσας +εσεις +εσενα +εστω +εσυ +ετερα +ετεραι +ετερας +ετερες +ετερη +ετερης +ετερο +ετεροι +ετερον +ετερος +ετερου +ετερους +ετερων +ετουτα +ετουτες +ετουτη +ετουτην +ετουτης +ετουτο +ετουτοι +ετουτον +ετουτος +ετουτου +ετουτους +ετουτων +ετσι +ευγε +ευθυς +ευτυχως +εφεξης +εχει +εχεις +εχετε +εχθες +εχομε +εχουμε +εχουν +εχτες +εχω +εως +εἰ +εἰμί +εἰμὶ +εἰς +εἰσ +εἴ +εἴμι +εἴτε +ε∆ω +η +ημασταν +ημαστε +ημουν +ησασταν +ησαστε +ησουν +ηταν +ητανε +ητοι +ηττον +η∆η +θα +ι +ιι +ιιι +ισαμε +ισια +ισως +ισωσ +ι∆ια +ι∆ιαν +ι∆ιας +ι∆ιες +ι∆ιο +ι∆ιοι +ι∆ιον +ι∆ιος +ι∆ιου +ι∆ιους +ι∆ιων +ι∆ιως +κ +καί +καίτοι +καθ +καθε +καθεμια +καθεμιας +καθενα +καθενας +καθενος +καθετι +καθολου +καθως +και +κακα +κακως +καλα +καλως +καμια +καμιαν +καμιας +καμποσα +καμποσες +καμποση +καμποσην +καμποσης +καμποσο +καμποσοι +καμποσον +καμποσος +καμποσου +καμποσους +καμποσων +κανεις +κανεν +κανενα +κανεναν +κανενας +κανενος +καποια +καποιαν +καποιας +καποιες +καποιο +καποιοι +καποιον +καποιος +καποιου +καποιους +καποιων +καποτε +καπου +καπως +κατ +κατά +κατα +κατι +κατιτι +κατοπιν +κατω +κατὰ +καὶ +κι +κιολας +κλπ +κοντα +κτλ +κυριως +κἀν +κἂν +λιγακι +λιγο +λιγωτερο +λογω +λοιπα +λοιπον +μέν +μέσα +μή +μήτε +μία +μα +μαζι +μακαρι +μακρυα +μαλιστα +μαλλον +μας +με +μεθ +μεθαυριο +μειον +μελει +μελλεται +μεμιας +μεν +μερικα +μερικες +μερικοι +μερικους +μερικων +μεσα +μετ +μετά +μετα +μεταξυ +μετὰ +μεχρι +μη +μην +μηπως +μητε +μη∆ε +μιά +μια +μιαν +μιας +μολις +μολονοτι +μοναχα +μονες +μονη +μονην +μονης +μονο +μονοι +μονομιας +μονος +μονου +μονους +μονων +μου +μπορει +μπορουν +μπραβο +μπρος +μἐν +μὲν +μὴ +μὴν +να +ναι +νωρις +ξανα +ξαφνικα +ο +οι +ολα +ολες +ολη +ολην +ολης +ολο +ολογυρα +ολοι +ολον +ολονεν +ολος +ολοτελα +ολου +ολους +ολων +ολως +ολως∆ιολου +ομως +ομωσ +οποια +οποιαν +οποιαν∆ηποτε +οποιας +οποιας∆ηποτε +οποια∆ηποτε +οποιες +οποιες∆ηποτε +οποιο +οποιοι +οποιον +οποιον∆ηποτε +οποιος +οποιος∆ηποτε +οποιου +οποιους +οποιους∆ηποτε +οποιου∆ηποτε +οποιο∆ηποτε +οποιων +οποιων∆ηποτε +οποι∆ηποτε +οποτε +οποτε∆ηποτε +οπου +οπου∆ηποτε +οπως +οπωσ +ορισμενα +ορισμενες +ορισμενων +ορισμενως +οσα +οσα∆ηποτε +οσες +οσες∆ηποτε +οση +οσην +οσην∆ηποτε +οσης +οσης∆ηποτε +οση∆ηποτε +οσο +οσοι +οσοι∆ηποτε +οσον +οσον∆ηποτε +οσος +οσος∆ηποτε +οσου +οσους +οσους∆ηποτε +οσου∆ηποτε +οσο∆ηποτε +οσων +οσων∆ηποτε +οταν +οτι +οτι∆ηποτε +οτου +ου +ουτε +ου∆ε +οχι +οἱ +οἳ +οἷς +οὐ +οὐδ +οὐδέ +οὐδείσ +οὐδεὶς +οὐδὲ +οὐδὲν +οὐκ +οὐχ +οὐχὶ +οὓς +οὔτε +οὕτω +οὕτως +οὕτωσ +οὖν +οὗ +οὗτος +οὗτοσ +παλι +παντοτε +παντου +παντως +παρ +παρά +παρα +παρὰ +περί +περα +περι +περιπου +περισσοτερο +περσι +περυσι +περὶ +πια +πιθανον +πιο +πισω +πλαι +πλεον +πλην +ποια +ποιαν +ποιας +ποιες +ποιεσ +ποιο +ποιοι +ποιον +ποιος +ποιοσ +ποιου +ποιους +ποιουσ +ποιων +πολυ +ποσες +ποση +ποσην +ποσης +ποσοι +ποσος +ποσους +ποτε +που +πουθε +πουθενα +ποῦ +πρεπει +πριν +προ +προκειμενου +προκειται +προπερσι +προς +προσ +προτου +προχθες +προχτες +πρωτυτερα +πρόσ +πρὸ +πρὸς +πως +πωσ +σαν +σας +σε +σεις +σημερα +σιγα +σου +στα +στη +στην +στης +στις +στο +στον +στου +στους +στων +συγχρονως +συν +συναμα +συνεπως +συνηθως +συχνα +συχνας +συχνες +συχνη +συχνην +συχνης +συχνο +συχνοι +συχνον +συχνος +συχνου +συχνους +συχνων +συχνως +σχε∆ον +σωστα +σόσ +σύ +σύν +σὸς +σὺ +σὺν +τά +τήν +τί +τίς +τίσ +τα +ταυτα +ταυτες +ταυτη +ταυτην +ταυτης +ταυτο,ταυτον +ταυτος +ταυτου +ταυτων +ταχα +ταχατε +ταῖς +τα∆ε +τε +τελικα +τελικως +τες +τετοια +τετοιαν +τετοιας +τετοιες +τετοιο +τετοιοι +τετοιον +τετοιος +τετοιου +τετοιους +τετοιων +τη +την +της +τησ +τι +τινα +τιποτα +τιποτε +τις +τισ +το +τοί +τοι +τοιοῦτος +τοιοῦτοσ +τον +τος +τοσα +τοσες +τοση +τοσην +τοσης +τοσο +τοσοι +τοσον +τοσος +τοσου +τοσους +τοσων +τοτε +του +τουλαχιστο +τουλαχιστον +τους +τουτα +τουτες +τουτη +τουτην +τουτης +τουτο +τουτοι +τουτοις +τουτον +τουτος +τουτου +τουτους +τουτων +τούσ +τοὺς +τοῖς +τοῦ +τυχον +των +τωρα +τό +τόν +τότε +τὰ +τὰς +τὴν +τὸ +τὸν +τῆς +τῆσ +τῇ +τῶν +τῷ +υπ +υπερ +υπο +υποψη +υποψιν +υπό +υστερα +φετος +χαμηλα +χθες +χτες +χωρις +χωριστα +ψηλα +ω +ωραια +ως +ωσ +ωσαν +ωσοτου +ωσπου +ωστε +ωστοσο +ωχ +ἀλλ' +ἀλλά +ἀλλὰ +ἀλλ’ +ἀπ +ἀπό +ἀπὸ +ἀφ +ἂν +ἃ +ἄλλος +ἄλλοσ +ἄν +ἄρα +ἅμα +ἐάν +ἐγώ +ἐγὼ +ἐκ +ἐμόσ +ἐμὸς +ἐν +ἐξ +ἐπί +ἐπεὶ +ἐπὶ +ἐστι +ἐφ +ἐὰν +ἑαυτοῦ +ἔτι +ἡ +ἢ +ἣ +ἤ +ἥ +ἧς +ἵνα +ὁ +ὃ +ὃν +ὃς +ὅ +ὅδε +ὅθεν +ὅπερ +ὅς +ὅσ +ὅστις +ὅστισ +ὅτε +ὅτι +ὑμόσ +ὑπ +ὑπέρ +ὑπό +ὑπὲρ +ὑπὸ +ὡς +ὡσ +ὥς +ὥστε +ὦ +ᾧ +∆α +∆ε +∆εινα +∆εν +∆εξια +∆ηθεν +∆ηλα∆η +∆ι +∆ια +∆ιαρκως +∆ικα +∆ικο +∆ικοι +∆ικος +∆ικου +∆ικους +∆ιολου +∆ιπλα +∆ιχως \ No newline at end of file diff --git a/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_it.txt b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_it.txt new file mode 100644 index 000000000..5b1434de3 --- /dev/null +++ b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_it.txt @@ -0,0 +1,655 @@ +a +abbastanza +abbia +abbiamo +abbiano +abbiate +accidenti +ad +adesso +affinche +agl +agli +ahime +ahim㨠+ahimè +ai +al +alcuna +alcuni +alcuno +all +alla +alle +allo +allora +altre +altri +altrimenti +altro +altrove +altrui +anche +ancora +anni +anno +ansa +anticipo +assai +attesa +attraverso +avanti +avemmo +avendo +avente +aver +avere +averlo +avesse +avessero +avessi +avessimo +aveste +avesti +avete +aveva +avevamo +avevano +avevate +avevi +avevo +avrai +avranno +avrebbe +avrebbero +avrei +avremmo +avremo +avreste +avresti +avrete +avrà +avrò +avuta +avute +avuti +avuto +basta +ben +bene +benissimo +berlusconi +brava +bravo +buono +c +casa +caso +cento +certa +certe +certi +certo +che +chi +chicchessia +chiunque +ci +ciascuna +ciascuno +cima +cinque +cio +cioe +cio㨠+cioè +circa +citta +città +cittã +ciã² +ciò +co +codesta +codesti +codesto +cogli +coi +col +colei +coll +coloro +colui +come +cominci +comprare +comunque +con +concernente +conciliarsi +conclusione +consecutivi +consecutivo +consiglio +contro +cortesia +cos +cosa +cosi +cos㬠+così +cui +d +da +dagl +dagli +dai +dal +dall +dalla +dalle +dallo +dappertutto +davanti +degl +degli +dei +del +dell +della +delle +dello +dentro +detto +deve +devo +di +dice +dietro +dire +dirimpetto +diventa +diventare +diventato +dopo +doppio +dov +dove +dovra +dovrà +dovrã +dovunque +due +dunque +durante +e +ebbe +ebbero +ebbi +ecc +ecco +ed +effettivamente +egli +ella +entrambi +eppure +era +erano +eravamo +eravate +eri +ero +esempio +esse +essendo +esser +essere +essi +ex +fa +faccia +facciamo +facciano +facciate +faccio +facemmo +facendo +facesse +facessero +facessi +facessimo +faceste +facesti +faceva +facevamo +facevano +facevate +facevi +facevo +fai +fanno +farai +faranno +fare +farebbe +farebbero +farei +faremmo +faremo +fareste +faresti +farete +farà +farò +fatto +favore +fece +fecero +feci +fin +finalmente +finche +fine +fino +forse +forza +fosse +fossero +fossi +fossimo +foste +fosti +fra +frattempo +fu +fui +fummo +fuori +furono +futuro +generale +gente +gia +giacche +giorni +giorno +giu +già +giã +gli +gliela +gliele +glieli +glielo +gliene +governo +grande +grazie +gruppo +ha +haha +hai +hanno +ho +i +ie +ieri +il +improvviso +in +inc +indietro +infatti +inoltre +insieme +intanto +intorno +invece +io +l +la +lasciato +lato +lavoro +le +lei +li +lo +lontano +loro +lui +lungo +luogo +là +lã +ma +macche +magari +maggior +mai +male +malgrado +malissimo +mancanza +me +medesimo +mediante +meglio +meno +mentre +mesi +mezzo +mi +mia +mie +miei +mila +miliardi +milioni +minimi +ministro +mio +modo +molta +molti +moltissimo +molto +momento +mondo +mosto +nazionale +ne +negl +negli +nei +nel +nell +nella +nelle +nello +nemmeno +neppure +nessun +nessuna +nessuno +niente +no +noi +nome +non +nondimeno +nonostante +nonsia +nostra +nostre +nostri +nostro +novanta +nove +nulla +nuovi +nuovo +o +od +oggi +ogni +ognuna +ognuno +oltre +oppure +ora +ore +osi +ossia +ottanta +otto +paese +parecchi +parecchie +parecchio +parte +partendo +peccato +peggio +per +perche +perch㨠+perchè +perché +percio +perciã² +perciò +perfino +pero +persino +persone +perã² +però +piedi +pieno +piglia +piu +piuttosto +piã¹ +più +po +pochissimo +poco +poi +poiche +possa +possedere +posteriore +posto +potrebbe +preferibilmente +presa +prima +primo +principalmente +probabilmente +promesso +proprio +puo +pure +purtroppo +puã² +può +qua +qualche +qualcosa +qualcuna +qualcuno +quale +quali +qualunque +quando +quanta +quante +quanti +quanto +quantunque +quarto +quasi +quattro +quel +quella +quelle +quelli +quello +quest +questa +queste +questi +questo +qui +quindi +quinto +realmente +recente +recentemente +registrazione +relativo +riecco +rispetto +salvo +sara +sarai +saranno +sarebbe +sarebbero +sarei +saremmo +saremo +sareste +saresti +sarete +sarà +sarã +sarò +scola +scopo +scorso +se +secondo +seguente +seguito +sei +sembra +sembrare +sembrato +sembrava +sembri +sempre +senza +sette +si +sia +siamo +siano +siate +siete +sig +solito +solo +soltanto +sono +sopra +soprattutto +sotto +spesso +srl +sta +stai +stando +stanno +starai +staranno +starebbe +starebbero +starei +staremmo +staremo +stareste +staresti +starete +starà +starò +stata +stati +stava +stavamo +stavano +stavate +stavi +stavo +stemmo +stessa +stesse +stessero +stessi +stessimo +stesso +steste +stesti +stette +stettero +stetti +stia +stiamo +stiano +stiate +sto +su +sua +subito +successivamente +successivo +sue +sugl +sugli +sui +sul +sull +sulla +sulle +sullo +suo +suoi +tale +tali +talvolta +tanto +te +tempo +terzo +th +ti +titolo +tra +tranne +tre +trenta +triplo +troppo +trovato +tu +tua +tue +tuo +tuoi +tutta +tuttavia +tutte +tutti +tutto +uguali +ulteriore +ultimo +un +una +uno +uomo +va +vai +vale +vari +varia +varie +vario +verso +vi +via +vicino +visto +vita +voi +volta +volte +vostra +vostre +vostri +vostro +㨠+è \ No newline at end of file diff --git a/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_pt.txt b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_pt.txt new file mode 100644 index 000000000..53e429818 --- /dev/null +++ b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/stopwords_pt.txt @@ -0,0 +1,560 @@ +a +acerca +adeus +agora +ainda +alem +algmas +algo +algumas +alguns +ali +além +ambas +ambos +ano +anos +antes +ao +aonde +aos +apenas +apoio +apontar +apos +após +aquela +aquelas +aquele +aqueles +aqui +aquilo +as +assim +através +atrás +até +aí +baixo +bastante +bem +boa +boas +bom +bons +breve +cada +caminho +catorze +cedo +cento +certamente +certeza +cima +cinco +coisa +com +como +comprido +conhecido +conselho +contra +contudo +corrente +cuja +cujas +cujo +cujos +custa +cá +da +daquela +daquelas +daquele +daqueles +dar +das +de +debaixo +dela +delas +dele +deles +demais +dentro +depois +desde +desligado +dessa +dessas +desse +desses +desta +destas +deste +destes +deve +devem +deverá +dez +dezanove +dezasseis +dezassete +dezoito +dia +diante +direita +dispoe +dispoem +diversa +diversas +diversos +diz +dizem +dizer +do +dois +dos +doze +duas +durante +dá +dão +dúvida +e +ela +elas +ele +eles +em +embora +enquanto +entao +entre +então +era +eram +essa +essas +esse +esses +esta +estado +estamos +estar +estará +estas +estava +estavam +este +esteja +estejam +estejamos +estes +esteve +estive +estivemos +estiver +estivera +estiveram +estiverem +estivermos +estivesse +estivessem +estiveste +estivestes +estivéramos +estivéssemos +estou +está +estás +estávamos +estão +eu +exemplo +falta +fará +favor +faz +fazeis +fazem +fazemos +fazer +fazes +fazia +faço +fez +fim +final +foi +fomos +for +fora +foram +forem +forma +formos +fosse +fossem +foste +fostes +fui +fôramos +fôssemos +geral +grande +grandes +grupo +ha +haja +hajam +hajamos +havemos +havia +hei +hoje +hora +horas +houve +houvemos +houver +houvera +houveram +houverei +houverem +houveremos +houveria +houveriam +houvermos +houverá +houverão +houveríamos +houvesse +houvessem +houvéramos +houvéssemos +há +hão +iniciar +inicio +ir +irá +isso +ista +iste +isto +já +lado +lhe +lhes +ligado +local +logo +longe +lugar +lá +maior +maioria +maiorias +mais +mal +mas +me +mediante +meio +menor +menos +meses +mesma +mesmas +mesmo +mesmos +meu +meus +mil +minha +minhas +momento +muito +muitos +máximo +mês +na +nada +nao +naquela +naquelas +naquele +naqueles +nas +nem +nenhuma +nessa +nessas +nesse +nesses +nesta +nestas +neste +nestes +no +noite +nome +nos +nossa +nossas +nosso +nossos +nova +novas +nove +novo +novos +num +numa +numas +nunca +nuns +não +nível +nós +número +o +obra +obrigada +obrigado +oitava +oitavo +oito +onde +ontem +onze +os +ou +outra +outras +outro +outros +para +parece +parte +partir +paucas +pegar +pela +pelas +pelo +pelos +perante +perto +pessoas +pode +podem +poder +poderá +podia +pois +ponto +pontos +por +porque +porquê +portanto +posição +possivelmente +posso +possível +pouca +pouco +poucos +povo +primeira +primeiras +primeiro +primeiros +promeiro +propios +proprio +própria +próprias +próprio +próprios +próxima +próximas +próximo +próximos +puderam +pôde +põe +põem +quais +qual +qualquer +quando +quanto +quarta +quarto +quatro +que +quem +quer +quereis +querem +queremas +queres +quero +questão +quieto +quinta +quinto +quinze +quáis +quê +relação +sabe +sabem +saber +se +segunda +segundo +sei +seis +seja +sejam +sejamos +sem +sempre +sendo +ser +serei +seremos +seria +seriam +será +serão +seríamos +sete +seu +seus +sexta +sexto +sim +sistema +sob +sobre +sois +somente +somos +sou +sua +suas +são +sétima +sétimo +só +tal +talvez +tambem +também +tanta +tantas +tanto +tarde +te +tem +temos +tempo +tendes +tenha +tenham +tenhamos +tenho +tens +tentar +tentaram +tente +tentei +ter +terceira +terceiro +terei +teremos +teria +teriam +terá +terão +teríamos +teu +teus +teve +tinha +tinham +tipo +tive +tivemos +tiver +tivera +tiveram +tiverem +tivermos +tivesse +tivessem +tiveste +tivestes +tivéramos +tivéssemos +toda +todas +todo +todos +trabalhar +trabalho +treze +três +tu +tua +tuas +tudo +tão +tém +têm +tínhamos +um +uma +umas +uns +usa +usar +vai +vais +valor +veja +vem +vens +ver +verdade +verdadeiro +vez +vezes +viagem +vindo +vinte +você +vocês +vos +vossa +vossas +vosso +vossos +vários +vão +vêm +vós +zero +à +às +área +é +éramos +és +último \ No newline at end of file diff --git a/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/title_blacklist.txt b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/title_blacklist.txt new file mode 100644 index 000000000..374bec1f9 --- /dev/null +++ b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/title_blacklist.txt @@ -0,0 +1,14 @@ +^(Corpus Oral Dialectal \(COD\)\.).*$ +^(Kiri Karl Morgensternile).*$ +^(\[Eksliibris Aleksandr).*\]$ +^(Kiri A\. de Vignolles).*$ +^(2 kirja Karl Morgensternile).*$ +^(Pirita kloostri idaosa arheoloogilised).*$ +^(Kiri tundmatule).*$ +^(Kiri Jenaer Allgemeine Literaturzeitung toimetusele).*$ +^(Eksliibris Nikolai Birukovile).*$ +^(Eksliibris Nikolai Issakovile).*$ +^(\[Eksliibris Aleksandr).*$ +^(WHP Cruise Summary Information of section).*$ +^(Measurement of the top quark\-pair production cross section with ATLAS in pp collisions at).*$ +^(Measurement of the spin\-dependent structure function).* \ No newline at end of file diff --git a/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/translation_map.csv b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/translation_map.csv new file mode 100644 index 000000000..e97fd5213 --- /dev/null +++ b/dhp-pace-core/src/main/resources/eu/dnetlib/pace/config/translation_map.csv @@ -0,0 +1,104 @@ +key::1;university;universita;universita studi;universitario;universitaria;université;universitaire;universitaires;universidad;universitade;Universität;universitaet;Uniwersytet;университет;universiteit;πανεπιστήμιο;universitesi;universiteti +key::2;studies;studi;études;estudios;estudos;Studien;studia;исследования;studies;σπουδές +key::3;advanced;superiore;supérieur;supérieure;supérieurs;supérieures;avancado;avancados;fortgeschrittene;fortgeschritten;zaawansowany;передовой;gevorderd;gevorderde;προχωρημένος;προχωρημένη;προχωρημένο;προχωρημένες;προχωρημένα;wyzsza +key::4;institute;istituto;institut;instituto;instituto;Institut;instytut;институт;instituut;ινστιτούτο +key::5;hospital;ospedale;hôpital;hospital;hospital;Krankenhaus;szpital;больница;ziekenhuis;νοσοκομείο +key::6;research;ricerca;recherche;investigacion;pesquisa;Forschung;badania;исследования;onderzoek;έρευνα;erevna;erevnas +key::7;college;collegio;université;colegio;faculdade;Hochschule;Szkoła Wyższa;Высшая школа;universiteit;κολλέγιο +key::8;foundation;fondazione;fondation;fundación;fundação;Stiftung;Fundacja;фонд;stichting;ίδρυμα;idryma +key::9;center;centro;centre;centro;centro;zentrum;centrum;центр;centrum;κέντρο +key::10;national;nazionale;national;nationale;nationaux;nationales;nacional;nacional;national;krajowy;национальный;nationaal;nationale;εθνικό +key::11;association;associazione;association;asociación;associação;Verein;verband;stowarzyszenie;ассоциация;associatie +key::12;society;societa;société;sociedad;sociedade;gesellschaft;społeczeństwo;общество;maatschappij;κοινωνία +key::13;international;internazionale;international;internacional;internacional;international;międzynarodowy;Международный;internationaal;internationale;διεθνής;διεθνή;διεθνές +key::14;community;comunita;communauté;comunidad;comunidade;Gemeinschaft;społeczność;сообщество;gemeenschap;κοινότητα +key::15;school;scuola;école;escuela;escola;schule;Szkoła;школа;school;σχολείο +key::16;education;educazione;éducation;educacion;Educação;Bildung;Edukacja;образование;opleiding;εκπαίδευση +key::17;academy;accademia;académie;academia;academia;Akademie;akademie;академия;academie;ακαδημία +key::18;public;pubblico;public;publique;publics;publiques;publico;publico;Öffentlichkeit;publiczny;публичный;publiek;publieke;δημόσιος;δημόσια;δημόσιο +key::19;museum;museo;musée;mueso;museu;museum;muzeum;музей;museum;μουσείο +key::20;group;gruppo;groupe;grupo;grupo;gruppe;grupa;группа;groep;ομάδα;όμιλος +key::21;department;dipartimento;département;departamento;departamento;abteilung;departament;отдел;afdeling;τμήμα +key::22;council;consiglio;conseil;Consejo;conselho;gesellschaft;rada;совет;raad;συμβούλιο +key::23;library;biblioteca;bibliothèque;biblioteca;biblioteca;Bibliothek;biblioteka;библиотека;bibliotheek;βιβλιοθήκη +key::24;ministry;ministero;ministère;ministerio;ministério;Ministerium;ministerstwo;министерство;ministerie;υπουργείο +key::25;services;servizi;services;servicios;Serviços;Dienstleistungen;usługi;услуги;diensten;υπηρεσίες +key::26;central;centrale;central;centrale;centrales;central;central;zentral;centralny;цетральный;centraal;κεντρικός;κεντρική;κεντρικό;κεντρικά +key::27;general;generale;général;générale;généraux;générales;general;geral;general;Allgemeines;general;общий;algemeen;algemene;γενικός;γενική;γενικό;γενικά +key::28;applied;applicati;appliqué;appliquée;appliqués;appliquées;aplicado;aplicada;angewendet;stosowany;прикладной;toegepast;toegepaste;εφαρμοσμένος;εφαρμοσμένη;εφαρμοσμένο;εφαρμοσμένα +key::29;european;europee;europea;européen;européenne;européens;européennes;europeo;europeu;europäisch;europejski;европейский;Europees;Europese;ευρωπαϊκός;ευρωπαϊκή;ευρωπαϊκό;ευρωπαϊκά +key::30;agency;agenzia;agence;agencia;agencia;agentur;agencja;агенция;agentschap;πρακτορείο +key::31;laboratory;laboratorio;laboratoire;laboratorio;laboratorio;labor;laboratorium;лаборатория;laboratorium;εργαστήριο +key::32;industry;industria;industrie;индустрия;industrie;βιομηχανία +key::33;industrial;industriale;industriel;industrielle;industriels;industrielles;индустриальный;industrieel;βιομηχανικός;βιομηχανική;βιομηχανικό;βιομηχανικά;βιομηχανικές +key::34;consortium;consorzio;consortium;консорциум;consortium;κοινοπραξία +key::35;organization;organizzazione;organisation;organización;organização;organizacja;организация;organisatie;οργανισμός +key::36;authority;autorità;autorité;авторитет;autoriteit +key::37;federation;federazione;fédération;федерация;federatie;ομοσπονδία +key::38;observatory;osservatorio;observatoire;обсерватория;observatorium;αστεροσκοπείο +key::39;bureau;ufficio;bureau;офис;bureau;γραφείο +key::40;company;impresa;compagnie;société;компания;bedrijf;εταιρία +key::41;polytechnic;politecnico;polytechnique;политехника;polytechnisch;πολυτεχνείο;universita politecnica;polytechnic university;universidad politecnica;universitat politecnica;politechnika;politechniki;university technology;university science technology +key::42;coalition;coalizione;coalition;коалиция;coalitie;συνασπισμός +key::43;initiative;iniziativa;initiative;инициатива;initiatief;πρωτοβουλία +key::44;academic;accademico;académique;universitaire;акадеческий academisch;ακαδημαϊκός;ακαδημαϊκή;ακαδημαϊκό;ακαδημαϊκές;ακαδημαϊκοί +key::45;institution;istituzione;institution;институциональный;instelling;ινστιτούτο +key::46;division;divisione;division;отделение;divisie;τμήμα +key::47;committee;comitato;comité;комитет;commissie;επιτροπή +key::48;promotion;promozione;продвижение;proothisis;forderung +key::49;medical;medicine;clinical;medicina;clinici;médico;medicina;clínica;médico;medicina;clínica;medizinisch;Medizin;klinisch;medisch;geneeskunde;klinisch;ιατρικός;ιατρική;ιατρικό;ιατρικά;κλινικός;κλινική;κλινικό;κλινικά;tıbbi;tıp;klinik;orvosi;orvostudomány;klinikai;zdravniški;medicinski;klinični;meditsiini;kliinik;kliiniline +key::50;technology;technological;tecnologia;tecnologie;tecnología;tecnológico;tecnologia;tecnológico;Technologie;technologisch;technologie;technologisch;τεχνολογία;τεχνολογικός;τεχνολογική;τεχνολογικό;teknoloji;teknolojik;technológia;technológiai;tehnologija;tehnološki;tehnoloogia;tehnoloogiline;technologii;technical;texniki;teknik +key::51;science;scientific;scienza;scientifiche;scienze;ciencia;científico;ciência;científico;Wissenschaft;wissenschaftlich;wetenschap;wetenschappelijk;επιστήμη;επιστημονικός;επιστημονική;επιστημονικό;επιστημονικά;bilim;bilimsel;tudomány;tudományos;znanost;znanstveni;teadus;teaduslik; +key::52;engineering;ingegneria;ingeniería;engenharia;Ingenieurwissenschaft;ingenieurswetenschappen;bouwkunde;μηχανικός;μηχανική;μηχανικό;mühendislik;mérnöki;Inženirstvo;inseneeria;inseneri; +key::53;management;gestione;gestionale;gestionali;gestión;administración;gestão;administração;Verwaltung;management;διαχείριση;yönetim;menedzsment;vodstvo;upravljanje;management;juhtkond;juhtimine;haldus; +key::54;energy;energia;energía;energia;Energie;energie;ενέργεια;enerji;energia;energija;energia; +key::55;agricultural;agriculture;agricoltura;agricole;agrícola;agricultura;agrícola;agricultura;landwirtschaftlich;Landwirtschaft;landbouwkundig;landbouw;αγροτικός;αγροτική;αγροτικό;γεωργικός;γεωργική;γεωργικό;γεωργία;tarımsal;tarım;mezőgazdasági;mezőgazdaság;poljedelski;poljedelstvo;põllumajandus;põllumajanduslik; +key::56;information;informazione;información;informação;Information;informatie;πληροφορία;bilgi;információ;informacija;informatsioon;informatycznych; +key::57;social;sociali;social;social;Sozial;sociaal;maatschappelijk;κοινωνικός;κοινωνική;κοινωνικό;κοινωνικά;sosyal;szociális;družbeni;sotsiaal;sotsiaalne; +key::58;environmental;ambiente;medioambiental;ambiente;medioambiente;meioambiente;Umwelt;milieu;milieuwetenschap;milieukunde;περιβαλλοντικός;περιβαλλοντική;περιβαλλοντικό;περιβαλλοντικά;çevre;környezeti;okoliški;keskonna;; +key::59;business;economia;economiche;economica;negocio;empresa;negócio;Unternehmen;bedrijf;bedrijfskunde;επιχείρηση;iş;üzleti;posel;ettevõte/äri; +key::60;pharmaceuticals;pharmacy;farmacia;farmaceutica;farmacéutica;farmacia;farmacêutica;farmácia;Pharmazeutika;Arzneimittelkunde;farmaceutica;geneesmiddelen;apotheek;φαρμακευτικός;φαρμακευτική;φαρμακευτικό;φαρμακευτικά;φαρμακείο;ilaç;eczane;gyógyszerészeti;gyógyszertár;farmacevtika;lekarništvo;farmaatsia;farmatseutiline; +key::61;healthcare;health services;salute;atenciónmédica;cuidadodelasalud;cuidadoscomasaúde;Gesundheitswesen;gezondheidszorg;ιατροφαρμακευτικήπερίθαλψη;sağlıkhizmeti;egészségügy;zdravstvo;tervishoid;tervishoiu; +key::62;history;storia;historia;história;Geschichte;geschiedenis;geschiedkunde;ιστορία;tarih;történelem;zgodovina;ajalugu; +key::63;materials;materiali;materia;materiales;materiais;materialen;υλικά;τεκμήρια;malzemeler;anyagok;materiali;materjalid;vahendid; +key::64;economics;economia;economiche;economica;economía;economia;Wirtschaft;economie;οικονομικά;οικονομικέςεπιστήμες;ekonomi;közgazdaságtan;gospodarstvo;ekonomija;majanduslik;majandus; +key::65;therapeutics;terapeutica;terapéutica;terapêutica;therapie;θεραπευτική;tedavibilimi;gyógykezelés;terapevtika;terapeutiline;ravi; +key::66;oncology;oncologia;oncologico;oncología;oncologia;Onkologie;oncologie;ογκολογία;onkoloji;onkológia;onkologija;onkoloogia; +key::67;natural;naturali;naturale;natural;natural;natürlich;natuurlijk;φυσικός;φυσική;φυσικό;φυσικά;doğal;természetes;naraven;loodus; +key::68;educational;educazione;pedagogia;educacional;educativo;educacional;pädagogisch;educatief;εκπαιδευτικός;εκπαιδευτική;εκπαιδευτικό;εκπαιδευτικά;eğitimsel;oktatási;izobraževalen;haridus;hariduslik; +key::69;biomedical;biomedica;biomédico;biomédico;biomedizinisch;biomedisch;βιοιατρικός;βιοιατρική;βιοιατρικό;βιοιατρικά;biyomedikal;orvosbiológiai;biomedicinski;biomeditsiiniline; +key::70;veterinary;veterinaria;veterinarie;veterinaria;veterinária;tierärtzlich;veterinair;veeartsenijlkunde;κτηνιατρικός;κτηνιατρική;κτηνιατρικό;κτηνιατρικά;veteriner;állatorvosi;veterinar;veterinarski;veterinaaria; +key::71;chemistry;chimica;química;química;Chemie;chemie;scheikunde;χημεία;kimya;kémia;kemija;keemia; +key::72;security;sicurezza;seguridad;segurança;Sicherheit;veiligheid;ασφάλεια;güvenlik;biztonsági;varnost;turvalisus;julgeolek; +key::73;biotechnology;biotecnologia;biotecnologie;biotecnología;biotecnologia;Biotechnologie;biotechnologie;βιοτεχνολογία;biyoteknoloji;biotechnológia;biotehnologija;biotehnoloogia; +key::74;military;militare;militari;militar;militar;Militär;militair;leger;στρατιωτικός;στρατιωτική;στρατιωτικό;στρατιωτικά;askeri;katonai;vojaški;vojni;militaar;wojskowa; +key::75;theological;teologia;teologico;teológico;tecnológica;theologisch;theologisch;θεολογικός;θεολογική;θεολογικό;θεολογικά;teolojik;technológiai;teološki;teoloogia;usuteadus;teoloogiline; +key::76;electronics;elettronica;electrónica;eletrônicos;Elektronik;elektronica;ηλεκτρονική;elektronik;elektronika;elektronika;elektroonika; +key::77;forestry;forestale;forestali;silvicultura;forestal;floresta;Forstwirtschaft;bosbouw;δασοκομία;δασολογία;ormancılık;erdészet;gozdarstvo;metsandus; +key::78;maritime;marittima;marittime;marittimo;marítimo;marítimo;maritiem;ναυτικός;ναυτική;ναυτικό;ναυτικά;ναυτιλιακός;ναυτιλιακή;ναυτιλιακό;ναυτιλιακά;θαλάσσιος;θαλάσσια;θαλάσσιο;denizcilik;tengeri;morski;mere;merendus; +key::79;sports;sport;deportes;esportes;Sport;sport;sportwetenschappen;άθληση;γυμναστικήδραστηριότητα;spor;sport;šport;sport;spordi; +key::80;surgery;chirurgia;chirurgiche;cirugía;cirurgia;Chirurgie;chirurgie;heelkunde;εγχείρηση;επέμβαση;χειρουργικήεπέμβαση;cerrahi;sebészet;kirurgija;kirurgia; +key::81;cultural;culturale;culturali;cultura;cultural;cultural;kulturell;cultureel;πολιτιστικός;πολιτιστική;πολιτιστικό;πολιτισμικός;πολιτισμική;πολιτισμικό;kültürel;kultúrális;kulturni;kultuuri;kultuuriline; +key::82;computerscience;informatica;ordenador;computadora;informática;computación;cienciasdelacomputación;ciênciadacomputação;Computer;computer;υπολογιστής;ηλεκτρονικόςυπολογιστής;bilgisayar;számítógép;računalnik;arvuti; +key::83;finance;financial;finanza;finanziarie;finanza;financiero;finanças;financeiro;Finanzen;finanziell;financiën;financieel;χρηματοοικονομικά;χρηματοδότηση;finanse;finansal;pénzügy;pénzügyi;finance;finančni;finants;finantsiline; +key::84;communication;comunicazione;comuniciación;comunicação;Kommunikation;communication;επικοινωνία;iletişim;kommunikáció;komuniciranje;kommunikatsioon; +key::85;justice;giustizia;justicia;justiça;Recht;Justiz;justitie;gerechtigheid;δικαιοσύνη;υπουργείοδικαιοσύνης;δίκαιο;adalet;igazságügy;pravo;õigus; +key::86;aerospace;aerospaziale;aerospaziali;aeroespacio;aeroespaço;Luftfahrt;luchtvaart;ruimtevaart;αεροπορικός;αεροπορική;αεροπορικό;αεροναυπηγικός;αεροναυπηγική;αεροναυπηγικό;αεροναυπηγικά;havacılıkveuzay;légtér;zrakoplovstvo;atmosfäär;kosmos; +key::87;dermatology;dermatologia;dermatología;dermatologia;Dermatologie;dermatologie;δρματολογία;dermatoloji;bőrgyógyászat;dermatológia;dermatologija;dermatoloogia; +key::88;architecture;architettura;arquitectura;arquitetura;Architektur;architectuur;αρχιτεκτονική;mimarlık;építészet;arhitektura;arhitektuur; +key::89;mathematics;matematica;matematiche;matemáticas;matemáticas;Mathematik;wiskunde;mathematica;μαθηματικά;matematik;matematika;matematika;matemaatika; +key::90;language;lingue;linguistica;linguistiche;lenguaje;idioma;língua;idioma;Sprache;taal;taalkunde;γλώσσα;dil;nyelv;jezik;keel; +key::91;neuroscience;neuroscienza;neurociencia;neurociência;Neurowissenschaft;neurowetenschappen;νευροεπιστήμη;nörobilim;idegtudomány;nevroznanost;neuroteadused; +key::92;automation;automazione;automatización;automação;Automatisierung;automatisering;αυτοματοποίηση;otomasyon;automatizálás;avtomatizacija;automatiseeritud; +key::93;pediatric;pediatria;pediatriche;pediatrico;pediátrico;pediatría;pediátrico;pediatria;pädiatrisch;pediatrische;παιδιατρική;pediatrik;gyermekgyógyászat;pediatrija;pediaatria; +key::94;photonics;fotonica;fotoniche;fotónica;fotônica;Photonik;fotonica;φωτονική;fotonik;fotonika;fotonika;fotoonika; +key::95;mechanics;meccanica;meccaniche;mecánica;mecânica;Mechanik;Maschinenbau;mechanica;werktuigkunde;μηχανικής;mekanik;gépészet;mehanika;mehaanika; +key::96;psychiatrics;psichiatria;psichiatrica;psichiatriche;psiquiatría;psiquiatria;Psychiatrie;psychiatrie;ψυχιατρική;psikiyatrik;pszihiátria;psihiatrija;psühhaatria; +key::97;psychology;fisiologia;psicología;psicologia;Psychologie;psychologie;ψυχολογία;psikoloji;pszihológia;psihologija;psühholoogia; +key::98;automotive;industriaautomobilistica;industriadelautomóvil;automotriz;industriaautomotriz;automotivo;Automobilindustrie;autoindustrie;αυτοκίνητος;αυτοκίνητη;αυτοκίνητο;αυτοκινούμενος;αυτοκινούμενη;αυτοκινούμενο;αυτοκινητιστικός;αυτοκινητιστική;αυτοκινητιστικό;otomotiv;autóipari;samogiben;avtomobilskaindustrija;auto-; +key::99;neurology;neurologia;neurologiche;neurología;neurologia;Neurologie;neurologie;zenuwleer;νευρολογία;nöroloji;neurológia;ideggyógyászat;nevrologija;neuroloogia; +key::100;geology;geologia;geologiche;geología;geologia;Geologie;geologie;aardkunde;γεωλογία;jeoloji;geológia;földtudomány;geologija;geoloogia; +key::101;microbiology;microbiologia;micro-biologia;microbiologiche;microbiología;microbiologia;Mikrobiologie;microbiologie;μικροβιολογία;mikrobiyoloji;mikrobiológia;mikrobiologija;mikrobioloogia; +key::102;informatics;informatica;informática;informática;informatica; +key:103;forschungsgemeinschaft;comunita ricerca;research community;research foundation;research association +key:104;commerce;ticaret;ticarət;commercio;trade;handel;comercio; \ No newline at end of file diff --git a/dhp-pace-core/src/test/java/eu/dnetlib/pace/AbstractPaceTest.java b/dhp-pace-core/src/test/java/eu/dnetlib/pace/AbstractPaceTest.java new file mode 100644 index 000000000..d3f502f35 --- /dev/null +++ b/dhp-pace-core/src/test/java/eu/dnetlib/pace/AbstractPaceTest.java @@ -0,0 +1,44 @@ + +package eu.dnetlib.pace; + +import java.io.IOException; +import java.io.StringWriter; +import java.util.List; + +import org.apache.commons.io.IOUtils; + +import eu.dnetlib.pace.common.AbstractPaceFunctions; + +public abstract class AbstractPaceTest extends AbstractPaceFunctions { + + protected String readFromClasspath(final String filename) { + final StringWriter sw = new StringWriter(); + try { + IOUtils.copy(getClass().getResourceAsStream(filename), sw); + return sw.toString(); + } catch (final IOException e) { + throw new RuntimeException("cannot load resource from classpath: " + filename); + } + } + + protected String title(final String s) { + return s; + } + + protected String person(final String s) { + return s; + } + + protected String url(final String s) { + return s; + } + + protected double[] array(final double[] a) { + return a; + } + + protected List createFieldList(List strings, String fieldName) { + return strings; + + } +} diff --git a/dhp-pace-core/src/test/java/eu/dnetlib/pace/clustering/ClusteringFunctionTest.java b/dhp-pace-core/src/test/java/eu/dnetlib/pace/clustering/ClusteringFunctionTest.java new file mode 100644 index 000000000..80e349a3f --- /dev/null +++ b/dhp-pace-core/src/test/java/eu/dnetlib/pace/clustering/ClusteringFunctionTest.java @@ -0,0 +1,254 @@ + +package eu.dnetlib.pace.clustering; + +import java.util.Map; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; + +import eu.dnetlib.pace.AbstractPaceTest; +import eu.dnetlib.pace.common.AbstractPaceFunctions; +import eu.dnetlib.pace.config.DedupConfig; + +public class ClusteringFunctionTest extends AbstractPaceTest { + + private static Map params; + private static DedupConfig conf; + + @BeforeAll + public static void setUp() throws Exception { + params = Maps.newHashMap(); + conf = DedupConfig + .load( + AbstractPaceFunctions + .readFromClasspath( + "/eu/dnetlib/pace/config/organization.current.conf.json", ClusteringFunctionTest.class)); + } + + @Test + public void testUrlClustering() { + + final ClusteringFunction urlClustering = new UrlClustering(params); + + final String s = "http://www.test.it/path/to/resource"; + System.out.println(s); + System.out.println(urlClustering.apply(conf, Lists.newArrayList(s))); + } + + @Test + public void testNgram() { + params.put("ngramLen", "3"); + params.put("max", "8"); + params.put("maxPerToken", "2"); + params.put("minNgramLen", "1"); + + final ClusteringFunction ngram = new Ngrams(params); + + final String s = "Search for the Standard Model Higgs Boson"; + System.out.println(s); + System.out.println(ngram.apply(conf, Lists.newArrayList(s))); + } + + @Test + public void testNgramPairs() { + params.put("ngramLen", "3"); + params.put("max", "2"); + + final ClusteringFunction np = new NgramPairs(params); + + final String s = "Search for the Standard Model Higgs Boson"; + System.out.println(s); + System.out.println(np.apply(conf, Lists.newArrayList(s))); + } + + @Test + public void testSortedNgramPairs() { + params.put("ngramLen", "3"); + params.put("max", "2"); + + final ClusteringFunction np = new SortedNgramPairs(params); + + final String s1 = "University of Pisa"; + System.out.println(s1); + System.out.println(np.apply(conf, Lists.newArrayList(s1))); + + final String s2 = "Pisa University"; + System.out.println(s2); + System.out.println(np.apply(conf, Lists.newArrayList(s2))); + + final String s3 = "Parco Tecnologico Agroalimentare Umbria"; + System.out.println(s3); + System.out.println(np.apply(conf, Lists.newArrayList(s3))); + + } + + @Test + public void testAcronym() { + params.put("max", "4"); + params.put("minLen", "1"); + params.put("maxLen", "3"); + + final ClusteringFunction acro = new Acronyms(params); + + final String s = "Search for the Standard Model Higgs Boson"; + System.out.println(s); + System.out.println(acro.apply(conf, Lists.newArrayList(s))); + } + + @Test + public void testSuffixPrefix() { + params.put("len", "3"); + params.put("max", "4"); + + final ClusteringFunction sp = new SuffixPrefix(params); + + final String s = "Search for the Standard Model Higgs Boson"; + System.out.println(s); + System.out.println(sp.apply(conf, Lists.newArrayList(s))); + + params.put("len", "3"); + params.put("max", "1"); + + System.out.println(sp.apply(conf, Lists.newArrayList("Framework for general-purpose deduplication"))); + } + + @Test + public void testWordsSuffixPrefix() { + + params.put("len", "3"); + params.put("max", "4"); + + final ClusteringFunction sp = new WordsSuffixPrefix(params); + + final String s = "Search for the Standard Model Higgs Boson"; + System.out.println(s); + System.out.println(sp.apply(conf, Lists.newArrayList(s))); + } + + @Test + public void testWordsStatsSuffixPrefix() { + params.put("mod", "10"); + + final ClusteringFunction sp = new WordsStatsSuffixPrefixChain(params); + + String s = "Search for the Standard Model Higgs Boson"; + System.out.println(s); + System.out.println(sp.apply(conf, Lists.newArrayList(s))); + + s = "A Physical Education Teacher Is Like...: Examining Turkish Students Perceptions of Physical Education Teachers Through Metaphor Analysis"; + System.out.println(s); + System.out.println(sp.apply(conf, Lists.newArrayList(s))); + + s = "Structure of a Eukaryotic Nonribosomal Peptide Synthetase Adenylation Domain That Activates a Large Hydroxamate Amino Acid in Siderophore Biosynthesis"; + System.out.println(s); + System.out.println(sp.apply(conf, Lists.newArrayList(s))); + + s = "Performance Evaluation"; + System.out.println(s); + System.out.println(sp.apply(conf, Lists.newArrayList(s))); + + s = "JRC Open Power Plants Database (JRC-PPDB-OPEN)"; + System.out.println(s); + System.out.println(sp.apply(conf, Lists.newArrayList(s))); + + s = "JRC Open Power Plants Database"; + System.out.println(s); + System.out.println(sp.apply(conf, Lists.newArrayList(s))); + + s = "niivue/niivue: 0.21.1"; + System.out.println(s); + System.out.println(sp.apply(conf, Lists.newArrayList(s))); + + } + + @Test + public void testFieldValue() { + + params.put("randomLength", "5"); + + final ClusteringFunction sp = new SpaceTrimmingFieldValue(params); + + final String s = "Search for the Standard Model Higgs Boson"; + System.out.println(s); + System.out.println(sp.apply(conf, Lists.newArrayList(s))); + } + + @Test + public void testKeywordsClustering() { + + final ClusteringFunction cf = new KeywordsClustering(params); + final String s = "Polytechnic University of Turin"; + System.out.println(s); + System.out.println(cf.apply(conf, Lists.newArrayList(s))); + + final String s1 = "POLITECNICO DI TORINO"; + System.out.println(s1); + System.out.println(cf.apply(conf, Lists.newArrayList(s1))); + + final String s2 = "Universita farmaceutica culturale di milano bergamo"; + System.out.println("s2 = " + s2); + System.out.println(cf.apply(conf, Lists.newArrayList(s2))); + + final String s3 = "universita universita milano milano"; + System.out.println("s3 = " + s3); + System.out.println(cf.apply(conf, Lists.newArrayList(s3))); + + final String s4 = "Politechniki Warszawskiej (Warsaw University of Technology)"; + System.out.println("s4 = " + s4); + System.out.println(cf.apply(conf, Lists.newArrayList(s4))); + + final String s5 = "İstanbul Ticarət Universiteti"; + System.out.println("s5 = " + s5); + System.out.println(cf.apply(conf, Lists.newArrayList(s5))); + + final String s6 = "National and Kapodistrian University of Athens"; + System.out.println("s6 = " + s6); + System.out.println(cf.apply(conf, Lists.newArrayList(s6))); + + final String s7 = "Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών"; + System.out.println("s7 = " + s7); + System.out.println(cf.apply(conf, Lists.newArrayList(s7))); + + } + + @Test + public void testPersonClustering() { + + final ClusteringFunction cf = new PersonClustering(params); + final String s = "Abd-Alla, Abo-el-nour N."; + System.out.println("s = " + s); + System.out.println(cf.apply(conf, Lists.newArrayList(s))); + + final String s1 = "Manghi, Paolo"; + System.out.println("s1 = " + s1); + System.out.println(cf.apply(conf, Lists.newArrayList(s1))); + + } + + @Test + public void testPersonHash() { + + final ClusteringFunction cf = new PersonHash(params); + final String s = "Manghi, Paolo"; + System.out.println("s = " + s); + System.out.println(cf.apply(conf, Lists.newArrayList(s))); + + final String s1 = "Manghi, P."; + System.out.println("s = " + s1); + System.out.println(cf.apply(conf, Lists.newArrayList(s1))); + + } + + @Test + public void testLastNameFirstInitial() { + + final ClusteringFunction cf = new LastNameFirstInitial(params); + final String s = "LI Yonghong"; + System.out.println("s = " + s); + System.out.println(cf.apply(conf, Lists.newArrayList(s))); + } + +} diff --git a/dhp-pace-core/src/test/java/eu/dnetlib/pace/common/PaceFunctionTest.java b/dhp-pace-core/src/test/java/eu/dnetlib/pace/common/PaceFunctionTest.java new file mode 100644 index 000000000..7fd81d975 --- /dev/null +++ b/dhp-pace-core/src/test/java/eu/dnetlib/pace/common/PaceFunctionTest.java @@ -0,0 +1,57 @@ + +package eu.dnetlib.pace.common; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.*; + +public class PaceFunctionTest extends AbstractPaceFunctions { + + private final static String TEST_STRING = "Toshiba NB550D: è un netbook su piattaforma AMD Fusion⁽¹²⁾."; + + @Test + public void normalizePidTest() { + + assertEquals("identifier", normalizePid("IdentifIer")); + assertEquals("10.1109/tns.2015.2493347", normalizePid("10.1109/TNS.2015.2493347")); + assertEquals("10.0001/testdoi", normalizePid("http://dx.doi.org/10.0001/testDOI")); + assertEquals("10.0001/testdoi", normalizePid("https://dx.doi.org/10.0001/testDOI")); + } + + @Test + public void filterAllStopwordsTest() { + + assertEquals("universita politecnica marche", filterAllStopWords("universita politecnica delle marche")); + } + + @Test + public void normalizeTest() { + assertEquals("universitat", normalize("Universität")); + + System.out.println(normalize("İstanbul Ticarət Universiteti")); + } + + @Test + public void cleanupTest() { + assertEquals("istanbul ticaret universiteti", cleanup("İstanbul Ticarət Universiteti")); + + System.out.println("cleaned up : " + cleanup(TEST_STRING)); + } + + @Test + public void testGetNumbers() { + System.out.println("Numbers : " + getNumbers(TEST_STRING)); + } + + @Test + public void testRemoveSymbols() { + System.out.println("Without symbols: " + removeSymbols(TEST_STRING)); + } + + @Test + public void testFixAliases() { + System.out.println("Fixed aliases : " + fixAliases(TEST_STRING)); + } + +} diff --git a/dhp-pace-core/src/test/java/eu/dnetlib/pace/comparators/ComparatorTest.java b/dhp-pace-core/src/test/java/eu/dnetlib/pace/comparators/ComparatorTest.java new file mode 100644 index 000000000..b37e16cf5 --- /dev/null +++ b/dhp-pace-core/src/test/java/eu/dnetlib/pace/comparators/ComparatorTest.java @@ -0,0 +1,339 @@ + +package eu.dnetlib.pace.comparators; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.*; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; + +import eu.dnetlib.pace.AbstractPaceTest; +import eu.dnetlib.pace.clustering.NGramUtils; +import eu.dnetlib.pace.config.DedupConfig; +import eu.dnetlib.pace.tree.*; + +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +public class ComparatorTest extends AbstractPaceTest { + + private Map params; + private DedupConfig conf; + + @BeforeAll + public void setup() { + conf = DedupConfig + .load(readFromClasspath("/eu/dnetlib/pace/config/organization.current.conf.json", ComparatorTest.class)); + } + + @BeforeEach + public void beforeEachTest() { + params = new HashMap<>(); + params.put("weight", "1.0"); + params.put("surname_th", "0.99"); + params.put("name_th", "0.95"); + params.put("jpath_value", "$.value"); + params.put("jpath_classid", "$.qualifier.classid"); + } + + @Test + public void testCleanForSorting() { + NGramUtils utils = new NGramUtils(); + System.out.println(utils.cleanupForOrdering("University of Pisa")); + } + + @Test + public void cityMatchTest() { + final CityMatch cityMatch = new CityMatch(params); + + // both names with no cities + assertEquals(1.0, cityMatch.distance("Università", "Centro di ricerca", conf)); + + // one of the two names with no cities + assertEquals(-1.0, cityMatch.distance("Università di Bologna", "Centro di ricerca", conf)); + + // both names with cities (same) + assertEquals(1.0, cityMatch.distance("Universita di Bologna", "Biblioteca di Bologna", conf)); + + // both names with cities (different) + assertEquals(0.0, cityMatch.distance("Universita di Bologna", "Universita di Torino", conf)); + assertEquals(0.0, cityMatch.distance("Franklin College", "Concordia College", conf)); + + // particular cases + assertEquals(1.0, cityMatch.distance("Free University of Bozen-Bolzano", "Università di Bolzano", conf)); + assertEquals( + 1.0, + cityMatch + .distance( + "Politechniki Warszawskiej (Warsaw University of Technology)", "Warsaw University of Technology", + conf)); + + // failing becasuse 'Allen' is a transliterrated greek stopword + // assertEquals(-1.0, cityMatch.distance("Allen (United States)", "United States Military Academy", conf)); + assertEquals(-1.0, cityMatch.distance("Washington (United States)", "United States Military Academy", conf)); + } + + @Test + public void keywordMatchTest() { + params.put("threshold", "0.5"); + + final KeywordMatch keywordMatch = new KeywordMatch(params); + + assertEquals( + 0.5, keywordMatch.distance("Biblioteca dell'Universita di Bologna", "Università di Bologna", conf)); + assertEquals(1.0, keywordMatch.distance("Universita degli studi di Pisa", "Universita di Pisa", conf)); + assertEquals(1.0, keywordMatch.distance("Polytechnic University of Turin", "POLITECNICO DI TORINO", conf)); + assertEquals(1.0, keywordMatch.distance("Istanbul Commerce University", "İstanbul Ticarət Universiteti", conf)); + assertEquals(1.0, keywordMatch.distance("Franklin College", "Concordia College", conf)); + assertEquals(2.0 / 3.0, keywordMatch.distance("University of Georgia", "Georgia State University", conf)); + assertEquals(0.5, keywordMatch.distance("University College London", "University of London", conf)); + assertEquals(0.5, keywordMatch.distance("Washington State University", "University of Washington", conf)); + assertEquals(-1.0, keywordMatch.distance("Allen (United States)", "United States Military Academy", conf)); + + } + + @Test + public void listContainsMatchTest() { + + List a = createFieldList(Arrays.asList("Article", "Publication", "ORP"), "instanceType"); + List b = createFieldList(Arrays.asList("Publication", "Article", "ORP"), "instanceType"); + + params.put("string", "Article"); + params.put("bool", "XOR"); + params.put("caseSensitive", "false"); + + ListContainsMatch listContainsMatch = new ListContainsMatch(params); + + assertEquals(0.0, listContainsMatch.compare(a, b, conf)); + + params.put("string", "Article"); + params.put("bool", "AND"); + params.put("caseSensitive", "false"); + + listContainsMatch = new ListContainsMatch(params); + + assertEquals(1.0, listContainsMatch.compare(a, b, conf)); + } + + @Test + public void stringContainsMatchTest() { + + params.put("string", "openorgs"); + params.put("aggregator", "XOR"); + params.put("caseSensitive", "false"); + + StringContainsMatch stringContainsMatch = new StringContainsMatch(params); + + assertEquals(0.0, stringContainsMatch.distance("openorgs", "openorgs", conf)); + + params.put("string", "openorgs"); + params.put("aggregator", "AND"); + params.put("caseSensitive", "false"); + + stringContainsMatch = new StringContainsMatch(params); + + assertEquals(1.0, stringContainsMatch.distance("openorgs", "openorgs", conf)); + } + + @Test + public void numbersMatchTest() { + final NumbersMatch numbersMatch = new NumbersMatch(params); + + assertEquals(0.0, numbersMatch.distance("University of Rennes 2", "Universita di Rennes 7", conf)); + assertEquals(1.0, numbersMatch.distance("Universit de Rennes 2", "Universita di Rennes 2", conf)); + } + + @Test + public void romansMatchTest() { + + final RomansMatch romansMatch = new RomansMatch(params); + + assertEquals(-1.0, romansMatch.distance("University of Paris X", "Universita di Parigi", conf)); + assertEquals(0.0, romansMatch.distance("University of Paris IX", "University of Paris X", conf)); + assertEquals(1.0, romansMatch.distance("University of Paris VII", "University of Paris VII", conf)); + } + + @Test + public void jaroWinklerNormalizedNameTest() { + + final JaroWinklerNormalizedName jaroWinklerNormalizedName = new JaroWinklerNormalizedName(params); + + double result = jaroWinklerNormalizedName + .distance("AT&T (United States)", "United States Military Academy", conf); + System.out.println("result = " + result); + + result = jaroWinklerNormalizedName.distance("NOAA - Servicio Meteorol\\u00f3gico Nacional", "NOAA - NWS", conf); + System.out.println("result = " + result); + + } + + @Test + public void jaroWinklerTest() { + + final JaroWinkler jaroWinkler = new JaroWinkler(params); + + double result = jaroWinkler.distance("Sofia", "Sofìa", conf); + System.out.println("result = " + result); + + result = jaroWinkler.distance("University of Victoria Dataverse", "University of Windsor Dataverse", conf); + System.out.println("result = " + result); + + result = jaroWinkler.distance("Victoria Dataverse", "Windsor Dataverse", conf); + System.out.println("result = " + result); + + } + + @Test + public void levensteinTitleTest() { + + final LevensteinTitle levensteinTitle = new LevensteinTitle(params); + + double result = levensteinTitle + .distance( + "Degradation of lignin β‐aryl ether units in Arabidopsis thaliana expressing LigD, LigF and LigG from Sphingomonas paucimobilis SYK‐6", + "Degradation of lignin β-aryl ether units in Arabidopsis thaliana expressing LigD, LigF and LigG from Sphingomonas paucimobilis SYK-6", + conf); + + System.out.println("result = " + result); + } + + @Test + public void levensteinTest() { + final Levenstein levenstein = new Levenstein(params); + + double result = levenstein.distance("la bruzzo", "la bruzzo", conf); + System.out.println("result = " + result); + } + + @Test + public void instanceTypeMatchTest() { + + final InstanceTypeMatch instanceTypeMatch = new InstanceTypeMatch(params); + + List a = createFieldList(Arrays.asList("Article", "Article", "Article"), "instanceType"); + List b = createFieldList(Arrays.asList("Article", "Article", "Article"), "instanceType"); + double result = instanceTypeMatch.compare(a, b, conf); + + assertEquals(1.0, result); + + List c = createFieldList( + Arrays.asList("Conference object", "Conference object", "Conference object"), "instanceType"); + result = instanceTypeMatch.compare(c, b, conf); + + assertEquals(1.0, result); + + List d = createFieldList( + Arrays.asList("Master thesis", "Master thesis", "Master thesis"), "instanceType"); + List e = createFieldList( + Arrays.asList("Bachelor thesis", "Bachelor thesis", "Bachelor thesis"), "instanceType"); + result = instanceTypeMatch.compare(d, e, conf); + + assertEquals(1.0, result); + + List g = createFieldList(Arrays.asList("Software Paper", "Software Paper"), "instanceType"); + result = instanceTypeMatch.compare(e, g, conf); + + assertEquals(0.0, result); + + List h = createFieldList(Arrays.asList("Other literature type", "Article"), "instanceType"); + result = instanceTypeMatch.compare(a, h, conf); + + assertEquals(1.0, result); + } + + @Test + public void authorsMatchTest() { + + AuthorsMatch authorsMatch = new AuthorsMatch(params); + + List a = createFieldList( + Arrays.asList("La Bruzzo, Sandro", "Atzori, Claudio", "De Bonis, Michele"), "authors"); + List b = createFieldList(Arrays.asList("Atzori, C.", "La Bruzzo, S.", "De Bonis, M."), "authors"); + double result = authorsMatch.compare(a, b, conf); + + assertEquals(1.0, result); + + List c = createFieldList(Arrays.asList("Manghi, Paolo"), "authors"); + List d = createFieldList(Arrays.asList("Manghi, Pasquale"), "authors"); + result = authorsMatch.compare(c, d, conf); + + assertEquals(0.0, result); + + params.put("mode", "surname"); + authorsMatch = new AuthorsMatch(params); + result = authorsMatch.compare(c, d, conf); + + assertEquals(1.0, result); + + List e = createFieldList(Arrays.asList("Manghi, Paolo", "Atzori, Claudio"), "authors"); + result = authorsMatch.compare(a, e, conf); + + assertEquals(0.25, result); + + List f = createFieldList(new ArrayList<>(), "authors"); + result = authorsMatch.compare(f, f, conf); + System.out.println("result = " + result); + + } + + @Test + public void jsonListMatch() { + + JsonListMatch jsonListMatch = new JsonListMatch(params); + + List a = createFieldList( + Arrays + .asList( + "{\"datainfo\":{\"deletedbyinference\":false,\"inferenceprovenance\":null,\"inferred\":false,\"invisible\":false,\"provenanceaction\":{\"classid\":\"sysimport:actionset\",\"classname\":\"Harvested\",\"schemeid\":\"dnet:provenanceActions\",\"schemename\":\"dnet:provenanceActions\"},\"trust\":\"0.9\"},\"qualifier\":{\"classid\":\"doi\",\"classname\":\"Digital Object Identifier\",\"schemeid\":\"dnet:pid_types\",\"schemename\":\"dnet:pid_types\"},\"value\":\"10.1111/pbi.12655\"}"), + "authors"); + List b = createFieldList( + Arrays + .asList( + "{\"datainfo\":{\"deletedbyinference\":false,\"inferenceprovenance\":\"\",\"inferred\":false,\"invisible\":false,\"provenanceaction\":{\"classid\":\"sysimport:crosswalk:repository\",\"classname\":\"Harvested\",\"schemeid\":\"dnet:provenanceActions\",\"schemename\":\"dnet:provenanceActions\"},\"trust\":\"0.9\"},\"qualifier\":{\"classid\":\"pmc\",\"classname\":\"PubMed Central ID\",\"schemeid\":\"dnet:pid_types\",\"schemename\":\"dnet:pid_types\"},\"value\":\"PMC5399005\"}", + "{\"datainfo\":{\"deletedbyinference\":false,\"inferenceprovenance\":\"\",\"inferred\":false,\"invisible\":false,\"provenanceaction\":{\"classid\":\"sysimport:crosswalk:repository\",\"classname\":\"Harvested\",\"schemeid\":\"dnet:provenanceActions\",\"schemename\":\"dnet:provenanceActions\"},\"trust\":\"0.9\"},\"qualifier\":{\"classid\":\"pmid\",\"classname\":\"PubMed ID\",\"schemeid\":\"dnet:pid_types\",\"schemename\":\"dnet:pid_types\"},\"value\":\"27775869\"}", + "{\"datainfo\":{\"deletedbyinference\":false,\"inferenceprovenance\":\"\",\"inferred\":false,\"invisible\":false,\"provenanceaction\":{\"classid\":\"user:claim\",\"classname\":\"Linked by user\",\"schemeid\":\"dnet:provenanceActions\",\"schemename\":\"dnet:provenanceActions\"},\"trust\":\"0.9\"},\"qualifier\":{\"classid\":\"doi\",\"classname\":\"Digital Object Identifier\",\"schemeid\":\"dnet:pid_types\",\"schemename\":\"dnet:pid_types\"},\"value\":\"10.1111/pbi.12655\"}", + "{\"datainfo\":{\"deletedbyinference\":false,\"inferenceprovenance\":\"\",\"inferred\":false,\"invisible\":false,\"provenanceaction\":{\"classid\":\"sysimport:crosswalk:repository\",\"classname\":\"Harvested\",\"schemeid\":\"dnet:provenanceActions\",\"schemename\":\"dnet:provenanceActions\"},\"trust\":\"0.9\"},\"qualifier\":{\"classid\":\"handle\",\"classname\":\"Handle\",\"schemeid\":\"dnet:pid_types\",\"schemename\":\"dnet:pid_types\"},\"value\":\"1854/LU-8523529\"}"), + "authors"); + + double result = jsonListMatch.compare(a, b, conf); + + assertEquals(0.25, result); + + params.put("mode", "count"); + jsonListMatch = new JsonListMatch(params); + result = jsonListMatch.compare(a, b, conf); + + assertEquals(1.0, result); + } + + @Test + public void domainExactMatch() { + + DomainExactMatch domainExactMatch = new DomainExactMatch(params); + String a = url("http://www.flowrepository.org"); + String b = url("http://flowrepository.org/"); + + double compare = domainExactMatch.compare(a, b, conf); + System.out.println("compare = " + compare); + + } + + @Test + public void cosineSimilarity() { + + CosineSimilarity cosineSimilarity = new CosineSimilarity(params); + + double[] a = new double[] { + 1, 2, 3 + }; + double[] b = new double[] { + 1, 2, 3 + }; + + double compare = cosineSimilarity.compare(a, b, conf); + + System.out.println("compare = " + compare); + } + +} diff --git a/dhp-pace-core/src/test/java/eu/dnetlib/pace/config/ConfigTest.java b/dhp-pace-core/src/test/java/eu/dnetlib/pace/config/ConfigTest.java new file mode 100644 index 000000000..b46085bb4 --- /dev/null +++ b/dhp-pace-core/src/test/java/eu/dnetlib/pace/config/ConfigTest.java @@ -0,0 +1,82 @@ + +package eu.dnetlib.pace.config; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import java.util.HashMap; +import java.util.Map; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import eu.dnetlib.pace.AbstractPaceTest; +import eu.dnetlib.pace.util.MapDocumentUtil; + +public class ConfigTest extends AbstractPaceTest { + + private static Map params; + + @BeforeAll + public static void setup() { + params = new HashMap<>(); + params.put("jpath_value", "$.value"); + params.put("jpath_classid", "$.qualifier.classid"); + + } + + @Test + public void dedupConfigSerializationTest() { + final DedupConfig cfgFromClasspath = DedupConfig.load(readFromClasspath("organization.current.conf.json")); + + final String conf = cfgFromClasspath.toString(); + + final DedupConfig cfgFromSerialization = DedupConfig.load(conf); + + assertEquals(cfgFromClasspath.toString(), cfgFromSerialization.toString()); + + assertNotNull(cfgFromClasspath); + assertNotNull(cfgFromSerialization); + } + + @Test + public void dedupConfigTest() { + + DedupConfig load = DedupConfig.load(readFromClasspath("organization.current.conf.json")); + + System.out.println(load.toString()); + } + + @Test + public void initTranslationMapTest() { + + DedupConfig load = DedupConfig.load(readFromClasspath("organization.current.conf.json")); + + Map translationMap = load.translationMap(); + + System.out.println("translationMap = " + translationMap.size()); + + for (String key : translationMap.keySet()) { + if (translationMap.get(key).equals("key::1")) + System.out.println("key = " + key); + } + } + + @Test + public void emptyTranslationMapTest() { + + DedupConfig load = DedupConfig.load(readFromClasspath("organization.no_synonyms.conf.json")); + + assertEquals(0, load.getPace().translationMap().keySet().size()); + } + + @Test + public void testJPath() { + final String json = readFromClasspath("organization.json"); + + final String jpath = "$.id"; + + System.out.println("result = " + MapDocumentUtil.getJPathString(jpath, json)); + } + +} diff --git a/dhp-pace-core/src/test/java/eu/dnetlib/pace/util/IncrementalConnectedComponentsTest.java b/dhp-pace-core/src/test/java/eu/dnetlib/pace/util/IncrementalConnectedComponentsTest.java new file mode 100644 index 000000000..b0f105d7c --- /dev/null +++ b/dhp-pace-core/src/test/java/eu/dnetlib/pace/util/IncrementalConnectedComponentsTest.java @@ -0,0 +1,40 @@ + +package eu.dnetlib.pace.util; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; + +import org.junit.jupiter.api.Test; + +public class IncrementalConnectedComponentsTest { + + @Test + public void transitiveClosureTest() { + IncrementalConnectedComponents icc = new IncrementalConnectedComponents(10); + + icc.connect(0, 1); + icc.connect(0, 2); + icc.connect(0, 3); + + icc.connect(1, 2); + icc.connect(1, 4); + icc.connect(1, 5); + + icc.connect(6, 7); + icc.connect(6, 9); + + assertEquals(icc.getConnections(0).toString(), "{0, 1, 2, 3, 4, 5}"); + assertEquals(icc.getConnections(1).toString(), "{0, 1, 2, 3, 4, 5}"); + assertEquals(icc.getConnections(2).toString(), "{0, 1, 2, 3, 4, 5}"); + assertEquals(icc.getConnections(3).toString(), "{0, 1, 2, 3, 4, 5}"); + assertEquals(icc.getConnections(4).toString(), "{0, 1, 2, 3, 4, 5}"); + assertEquals(icc.getConnections(5).toString(), "{0, 1, 2, 3, 4, 5}"); + + assertEquals(icc.getConnections(6).toString(), "{6, 7, 9}"); + assertEquals(icc.getConnections(7).toString(), "{6, 7, 9}"); + assertEquals(icc.getConnections(9).toString(), "{6, 7, 9}"); + + assertNull(icc.getConnections(8)); + } + +} diff --git a/dhp-pace-core/src/test/java/eu/dnetlib/pace/util/UtilTest.java b/dhp-pace-core/src/test/java/eu/dnetlib/pace/util/UtilTest.java new file mode 100644 index 000000000..6056c342d --- /dev/null +++ b/dhp-pace-core/src/test/java/eu/dnetlib/pace/util/UtilTest.java @@ -0,0 +1,44 @@ + +package eu.dnetlib.pace.util; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.HashMap; +import java.util.Map; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import eu.dnetlib.pace.model.Person; +import jdk.nashorn.internal.ir.annotations.Ignore; + +public class UtilTest { + + static Map params; + + @BeforeAll + public static void setUp() { + params = new HashMap<>(); + } + + @Test + @Ignore + public void paceResolverTest() { + PaceResolver paceResolver = new PaceResolver(); + paceResolver.getComparator("keywordMatch", params); + } + + @Test + public void personTest() { + Person p = new Person("j. f. kennedy", false); + + assertEquals("kennedy", p.getSurnameString()); + assertEquals("j f", p.getNameString()); + + p = new Person("Guan-Hua Du", false); + + System.out.println("surname = " + p.getSurnameString()); + System.out.println("name = " + p.getNameString()); + } + +} diff --git a/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/author.fdup.conf.json b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/author.fdup.conf.json new file mode 100644 index 000000000..c7d158ce6 --- /dev/null +++ b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/author.fdup.conf.json @@ -0,0 +1,134 @@ +{ + "wf": { + "threshold": "0.99", + "dedupRun": "001", + "entityType": "author", + "subEntityType": "author", + "subEntityValue": "author", + "orderField": "fullname", + "queueMaxSize": "200", + "groupMaxSize": "100", + "maxChildren": "100", + "slidingWindowSize": "50", + "rootBuilder": [ + "result", + "resultProject_outcome_isProducedBy", + "resultResult_publicationDataset_isRelatedTo", + "resultResult_similarity_isAmongTopNSimilarDocuments", + "resultResult_similarity_hasAmongTopNSimilarDocuments", + "resultOrganization_affiliation_isAffiliatedWith", + "resultResult_part_hasPart", + "resultResult_part_isPartOf", + "resultResult_supplement_isSupplementTo", + "resultResult_supplement_isSupplementedBy", + "resultResult_version_isVersionOf" + ], + "includeChildren": "true", + "maxIterations": 20, + "idPath": "$.id" + }, + "pace": { + "clustering" : [ + { "name" : "lnfi", "fields" : [ "fullname" ], "params" : {} } + ], + "decisionTree": { + "start": { + "fields": [ + { + "field": "orcid", + "comparator": "exactMatch", + "weight": 1.0, + "countIfUndefined": "true", + "params": {} + } + ], + "threshold": 1.0, + "aggregation": "MAX", + "positive": "MATCH", + "negative": "NO_MATCH", + "undefined": "orcids", + "ignoreUndefined": "true" + }, + "orcids": { + "fields": [ + { + "field": "orcids", + "comparator": "stringListMatch", + "weight": 1.0, + "countIfUndefined": "true", + "params": {"type": "count"} + } + ], + "threshold": 3.0, + "aggregation": "MAX", + "positive": "MATCH", + "negative": "coauthors", + "undefined": "coauthors", + "ignoreUndefined": "true" + }, + "coauthors": { + "fields": [ + { + "field": "coauthors", + "comparator": "authorsMatch", + "weight": 1.0, + "countIfUndefined": "true", + "params": {"type": "count"} + } + ], + "threshold": 1.0, + "aggregation": "MAX", + "positive": "topicsMatch", + "negative": "NO_MATCH", + "undefined": "topicsMatch", + "ignoreUndefined": "true" + }, + "topicsMatch": { + "fields": [ + { + "field": "topics", + "comparator": "cosineSimilarity", + "weight": 1.0, + "countIfUndefined": "true", + "params": {} + } + ], + "threshold": 1.0, + "aggregation": "MAX", + "positive": "MATCH", + "negative": "NO_MATCH", + "undefined": "NO_MATCH", + "ignoreUndefined": "false" + } + }, + "model": [ + { + "name": "topics", + "type": "DoubleArray", + "path": "$.topics" + }, + { + "name": "fullname", + "type": "String", + "path": "$.fullname" + }, + { + "name": "orcid", + "type": "String", + "path": "$.orcid" + }, + { + "name": "coauthors", + "type": "List", + "path": "$.coAuthors[*].fullname" + }, + { + "name": "orcids", + "type": "List", + "path": "$.coAuthors[*].orcid" + } + ], + "blacklists": {}, + "synonyms": {} + } +} \ No newline at end of file diff --git a/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/author.json b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/author.json new file mode 100644 index 000000000..f867afda1 --- /dev/null +++ b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/author.json @@ -0,0 +1 @@ +{"fullname":"Zaragoza, Maria Cleofé","firstname":"Maria Cleofé","lastname":"Zaragoza","coAuthors":[{"fullname":"Cambras, Trinitat","lastname":"Cambras","firstname":"Trinitat","orcid":"0000-0002-9009-4690"},{"fullname":"Castro-Marrero, Jesús","lastname":"Castro-Marrero","firstname":"Jesús","orcid":""},{"fullname":"Díez-Noguera, Antoni","lastname":"Díez-Noguera","firstname":"Antoni","orcid":""},{"fullname":"Alegre, José","lastname":"Alegre","firstname":"José","orcid":"0000-0002-7582-7585"}],"topics":[0.9522090839562252,0.04779091604377485],"orcid":"0000-0002-9797-0219","id":"author::1a10826c83c7f9f0dcebe7df05e37a2a","pubId":"50|pmid________::db7fd19db5a620eafad40cfb97f9690d"} \ No newline at end of file diff --git a/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/organization.cross.compare.conf.json b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/organization.cross.compare.conf.json new file mode 100644 index 000000000..a349661e1 --- /dev/null +++ b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/organization.cross.compare.conf.json @@ -0,0 +1,52 @@ +{ + "wf" : { + "threshold" : "0.99", + "dedupRun" : "001", + "entityType" : "organization", + "orderField" : "legalname", + "queueMaxSize" : "2000", + "groupMaxSize" : "50", + "slidingWindowSize" : "200", + "idPath":"$.id", + "rootBuilder" : [ "organization", "projectOrganization_participation_isParticipant", "datasourceOrganization_provision_isProvidedBy" ], + "includeChildren" : "true", + "maxIterations": "20" + }, + "pace" : { + "clustering" : [ + { "name" : "sortedngrampairs", "fields" : [ "legalname" ], "params" : { "max" : 2, "ngramLen" : "3"} }, + { "name" : "suffixprefix", "fields" : [ "legalname" ], "params" : {"max" : 1, "len" : "3" } }, + { "name" : "urlclustering", "fields" : [ "websiteurl" ], "params" : { } }, + { "name" : "keywordsclustering", "fields" : [ "legalname" ], "params" : { "max": 2, "windowSize": 4} } + ], + "decisionTree" : { + "start": { + "fields": [ + { + "field": "legalname", + "comparator": "levenstein", + "weight": 1, + "countIfUndefined": "false", + "params": { + "crossCompare" : "legalshortname" + } + } + ], + "threshold": 1, + "aggregation": "AVG", + "positive": "MATCH", + "negative": "NO_MATCH", + "undefined": "NO_MATCH", + "ignoreUndefined": "false" + } + }, + "model" : [ + { "name" : "legalshortname", "type" : "String", "path" : "$.organization.metadata.legalshortname.value"}, + { "name" : "legalname", "type" : "String", "path" : "$.organization.metadata.legalname.value" } + ], + "blacklists" : { + "legalname" : [] + }, + "synonyms": {} + } +} \ No newline at end of file diff --git a/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/organization.current.conf.json b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/organization.current.conf.json new file mode 100644 index 000000000..7fa731c1d --- /dev/null +++ b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/organization.current.conf.json @@ -0,0 +1,265 @@ +{ + "wf" : { + "threshold" : "0.99", + "dedupRun" : "001", + "entityType" : "organization", + "orderField" : "legalname", + "queueMaxSize" : "2000", + "groupMaxSize" : "50", + "slidingWindowSize" : "200", + "idPath":"$.id", + "rootBuilder" : [ "organization", "projectOrganization_participation_isParticipant", "datasourceOrganization_provision_isProvidedBy" ], + "includeChildren" : "true", + "maxIterations": "20" + }, + "pace" : { + "clustering" : [ + { "name" : "sortedngrampairs", "fields" : [ "legalname" ], "params" : { "max" : 2, "ngramLen" : "3"} }, + { "name" : "suffixprefix", "fields" : [ "legalname" ], "params" : { "max" : 1, "len" : "3" } }, + { "name" : "urlclustering", "fields" : [ "websiteurl" ], "params" : { } }, + { "name" : "keywordsclustering", "fields" : [ "legalname" ], "params" : { "max": 2, "windowSize": 4} } + ], + "decisionTree" : { + "start": { + "fields": [ + { + "field": "gridid", + "comparator": "exactMatch", + "weight": 1, + "countIfUndefined": "false", + "params": {} + } + ], + "threshold": 1, + "aggregation": "AVG", + "positive": "MATCH", + "negative": "NO_MATCH", + "undefined": "layer2", + "ignoreUndefined": "false" + }, + "layer2": { + "fields": [ + { + "field": "websiteurl", + "comparator": "domainExactMatch", + "weight": 1, + "countIfUndefined": "false", + "params": {} + }, + { + "field": "country", + "comparator": "exactMatch", + "weight": 1, + "countIfUndefined": "true", + "params": {} + }, + { + "field": "legalname", + "comparator": "numbersMatch", + "weight": 1, + "countIfUndefined": "true", + "params": {} + }, + { + "field": "legalname", + "comparator": "romansMatch", + "weight": 1, + "countIfUndefined": "true", + "params": {} + } + ], + "threshold": 1, + "aggregation": "AND", + "positive": "layer3", + "negative": "NO_MATCH", + "undefined": "layer3", + "ignoreUndefined": "true" + }, + "layer3": { + "fields": [ + { + "field": "legalname", + "comparator": "cityMatch", + "weight": 1.0, + "countIfUndefined": "true", + "params": { + "windowSize": "4" + } + } + ], + "threshold": 0.7, + "aggregation": "W_MEAN", + "positive": "layer4", + "negative": "NO_MATCH", + "undefined": "NO_MATCH", + "ignoreUndefined": "true" + }, + "layer4": { + "fields": [ + { + "field": "legalname", + "comparator": "keywordMatch", + "weight": 1.0, + "countIfUndefined": "true", + "params": { + "windowSize": "4" + } + } + ], + "threshold": 0.9, + "aggregation": "AVG", + "positive": "layer5", + "negative": "NO_MATCH", + "undefined": "layer5", + "ignoreUndefined": "true" + }, + "layer5": { + "fields": [ + { + "field": "legalname", + "comparator": "jaroWinklerNormalizedName", + "weight": 0.9, + "countIfUndefined": "true", + "params": { + "windowSize": "4" + } + }, + { + "field": "legalshortname", + "comparator": "jaroWinklerNormalizedName", + "weight": 0.1, + "countIfUndefined": "false", + "params": {} + } + ], + "threshold": 0.99, + "aggregation": "W_MEAN", + "positive": "MATCH", + "negative": "NO_MATCH", + "undefined": "NO_MATCH", + "ignoreUndefined": "true" + } + }, + "model" : [ + { "name" : "country", "type" : "String", "path" : "$.organization.metadata.country.classid"}, + { "name" : "legalshortname", "type" : "String", "path" : "$.organization.metadata.legalshortname.value"}, + { "name" : "legalname", "type" : "String", "path" : "$.organization.metadata.legalname.value" }, + { "name" : "websiteurl", "type" : "URL", "path" : "$.organization.metadata.websiteurl.value" }, + { "name" : "gridid", "type" : "String", "path" : "$.pid[?(@.qualifier.classid =='grid.ac')].value"}, + { "name" : "originalId", "type" : "String", "path" : "$.id" } + ], + "blacklists" : { + "legalname" : [] + }, + "synonyms": { + "key::1": ["university","università","università studi","universitario","universitaria","université","universitaire","universitaires","universidad","universitade","Universität","universitaet","Uniwersytet","университет","universiteit","πανεπιστήμιο","universitesi","universiteti", "universiti"], + "key::2": ["studies","studi","études","estudios","estudos","Studien","studia","исследования","studies","σπουδές"], + "key::3": ["advanced","superiore","supérieur","supérieure","supérieurs","supérieures","avancado","avancados","fortgeschrittene","fortgeschritten","zaawansowany","передовой","gevorderd","gevorderde","προχωρημένος","προχωρημένη","προχωρημένο","προχωρημένες","προχωρημένα","wyzsza"], + "key::4": ["institute","istituto","institut","instituto","instituto","Institut","instytut","институт","instituut","ινστιτούτο"], + "key::5": ["hospital","ospedale","hôpital","hospital","hospital","Krankenhaus","szpital","больница","ziekenhuis","νοσοκομείο"], + "key::6": ["research","ricerca","recherche","investigacion","pesquisa","Forschung","badania","исследования","onderzoek","έρευνα","erevna","erevnas"], + "key::7": ["college","collegio","université","colegio","faculdade","Hochschule","Szkoła Wyższa","Высшая школа","universiteit","κολλέγιο"], + "key::8": ["foundation","fondazione","fondation","fundación","fundação","Stiftung","Fundacja","фонд","stichting","ίδρυμα","idryma"], + "key::9": ["center","centro","centre","centro","centro","zentrum","centrum","центр","centrum","κέντρο"], + "key::10": ["national","nazionale","national","nationale","nationaux","nationales","nacional","nacional","national","krajowy","национальный","nationaal","nationale","εθνικό"], + "key::11": ["association","associazione","association","asociación","associação","Verein","verband","stowarzyszenie","ассоциация","associatie"], + "key::12": ["society","societa","société","sociedad","sociedade","gesellschaft","społeczeństwo","общество","maatschappij","κοινωνία"], + "key::13": ["international","internazionale","international","internacional","internacional","international","międzynarodowy","Международный","internationaal","internationale","διεθνής","διεθνή","διεθνές"], + "key::14": ["community","comunita","communauté","comunidad","comunidade","Gemeinschaft","społeczność","сообщество","gemeenschap","κοινότητα"], + "key::15": ["school","scuola","école","escuela","escola","schule","Szkoła","школа","school","σχολείο"], + "key::16": ["education","educazione","éducation","educacion","Educação","Bildung","Edukacja","образование","opleiding","εκπαίδευση"], + "key::17": ["academy","accademia","académie","academia","academia","Akademie","akademie","академия","academie","ακαδημία"], + "key::18": ["public","pubblico","public","publique","publics","publiques","publico","publico","Öffentlichkeit","publiczny","публичный","publiek","publieke","δημόσιος","δημόσια","δημόσιο"], + "key::19": ["museum","museo","musée","mueso","museu","museum","muzeum","музей","museum","μουσείο"], + "key::20": ["group","gruppo","groupe","grupo","grupo","gruppe","grupa","группа","groep","ομάδα","όμιλος"], + "key::21": ["department","dipartimento","département","departamento","departamento","abteilung","departament","отдел","afdeling","τμήμα"], + "key::22": ["council","consiglio","conseil","Consejo","conselho","gesellschaft","rada","совет","raad","συμβούλιο"], + "key::23": ["library","biblioteca","bibliothèque","biblioteca","biblioteca","Bibliothek","biblioteka","библиотека","bibliotheek","βιβλιοθήκη"], + "key::24": ["ministry","ministero","ministère","ministerio","ministério","Ministerium","ministerstwo","министерство","ministerie","υπουργείο"], + "key::25": ["services","servizi","services","servicios","Serviços","Dienstleistungen","usługi","услуги","diensten","υπηρεσίες"], + "key::26": ["central","centrale","central","centrale","centrales","central","central","zentral","centralny","цетральный","centraal","κεντρικός","κεντρική","κεντρικό","κεντρικά"], + "key::27": ["general","generale","général","générale","généraux","générales","general","geral","general","Allgemeines","general","общий","algemeen","algemene","γενικός","γενική","γενικό","γενικά"], + "key::28": ["applied","applicati","appliqué","appliquée","appliqués","appliquées","aplicado","aplicada","angewendet","stosowany","прикладной","toegepast","toegepaste","εφαρμοσμένος","εφαρμοσμένη","εφαρμοσμένο","εφαρμοσμένα"], + "key::29": ["european","europee","europea","européen","européenne","européens","européennes","europeo","europeu","europäisch","europejski","европейский","Europees","Europese","ευρωπαϊκός","ευρωπαϊκή","ευρωπαϊκό","ευρωπαϊκά"], + "key::30": ["agency","agenzia","agence","agencia","agencia","agentur","agencja","агенция","agentschap","πρακτορείο"], + "key::31": ["laboratory","laboratorio","laboratoire","laboratorio","laboratorio","labor","laboratorium","лаборатория","laboratorium","εργαστήριο"], + "key::32": ["industry","industria","industrie","индустрия","industrie","βιομηχανία"], + "key::33": ["industrial","industriale","industriel","industrielle","industriels","industrielles","индустриальный","industrieel","βιομηχανικός","βιομηχανική","βιομηχανικό","βιομηχανικά","βιομηχανικές"], + "key::34": ["consortium","consorzio","consortium","консорциум","consortium","κοινοπραξία"], + "key::35": ["organization","organizzazione","organisation","organización","organização","organizacja","организация","organisatie","οργανισμός"], + "key::36": ["authority","autorità","autorité","авторитет","autoriteit"], + "key::37": ["federation","federazione","fédération","федерация","federatie","ομοσπονδία"], + "key::38": ["observatory","osservatorio","observatoire","обсерватория","observatorium","αστεροσκοπείο"], + "key::39": ["bureau","ufficio","bureau","офис","bureau","γραφείο"], + "key::40": ["company","impresa","compagnie","société","компания","bedrijf","εταιρία"], + "key::41": ["polytechnic","politecnico","polytechnique","политехника","polytechnisch","πολυτεχνείο","universita politecnica","polytechnic university","universidad politecnica","universitat politecnica","politechnika","politechniki","university technology","university science technology"], + "key::42": ["coalition","coalizione","coalition","коалиция","coalitie","συνασπισμός"], + "key::43": ["initiative","iniziativa","initiative","инициатива","initiatief","πρωτοβουλία"], + "key::44": ["academic","accademico","académique","universitaire","акадеческий academisch","ακαδημαϊκός","ακαδημαϊκή","ακαδημαϊκό","ακαδημαϊκές","ακαδημαϊκοί"], + "key::45": ["institution","istituzione","institution","институциональный","instelling","ινστιτούτο"], + "key::46": ["division","divisione","division","отделение","divisie","τμήμα"], + "key::47": ["committee","comitato","comité","комитет","commissie","επιτροπή"], + "key::48": ["promotion","promozione","продвижение","proothisis","forderung"], + "key::49": ["medical","medicine","clinical","medicina","clinici","médico","medicina","clínica","médico","medicina","clínica","medizinisch","Medizin","klinisch","medisch","geneeskunde","klinisch","ιατρικός","ιατρική","ιατρικό","ιατρικά","κλινικός","κλινική","κλινικό","κλινικά","tıbbi","tıp","klinik","orvosi","orvostudomány","klinikai","zdravniški","medicinski","klinični","meditsiini","kliinik","kliiniline"], + "key::50": ["technology","technological","tecnologia","tecnologie","tecnología","tecnológico","tecnologia","tecnológico","Technologie","technologisch","technologie","technologisch","τεχνολογία","τεχνολογικός","τεχνολογική","τεχνολογικό","teknoloji","teknolojik","technológia","technológiai","tehnologija","tehnološki","tehnoloogia","tehnoloogiline","technologii","technical","texniki","teknik"], + "key::51": ["science","scientific","scienza","scientifiche","scienze","ciencia","científico","ciência","científico","Wissenschaft","wissenschaftlich","wetenschap","wetenschappelijk","επιστήμη","επιστημονικός","επιστημονική","επιστημονικό","επιστημονικά","bilim","bilimsel","tudomány","tudományos","znanost","znanstveni","teadus","teaduslik",""], + "key::52": ["engineering","ingegneria","ingeniería","engenharia","Ingenieurwissenschaft","ingenieurswetenschappen","bouwkunde","μηχανικός","μηχανική","μηχανικό","mühendislik","mérnöki","Inženirstvo","inseneeria","inseneri",""], + "key::53": ["management","gestione","gestionale","gestionali","gestión","administración","gestão","administração","Verwaltung","management","διαχείριση","yönetim","menedzsment","vodstvo","upravljanje","management","juhtkond","juhtimine","haldus",""], + "key::54": ["energy","energia","energía","energia","Energie","energie","ενέργεια","enerji","energia","energija","energia",""], + "key::55": ["agricultural","agriculture","agricoltura","agricole","agrícola","agricultura","agrícola","agricultura","landwirtschaftlich","Landwirtschaft","landbouwkundig","landbouw","αγροτικός","αγροτική","αγροτικό","γεωργικός","γεωργική","γεωργικό","γεωργία","tarımsal","tarım","mezőgazdasági","mezőgazdaság","poljedelski","poljedelstvo","põllumajandus","põllumajanduslik",""], + "key::56": ["information","informazione","información","informação","Information","informatie","πληροφορία","bilgi","információ","informacija","informatsioon","informatycznych",""], + "key::57": ["social","sociali","social","social","Sozial","sociaal","maatschappelijk","κοινωνικός","κοινωνική","κοινωνικό","κοινωνικά","sosyal","szociális","družbeni","sotsiaal","sotsiaalne",""], + "key::58": ["environmental","ambiente","medioambiental","ambiente","medioambiente","meioambiente","Umwelt","milieu","milieuwetenschap","milieukunde","περιβαλλοντικός","περιβαλλοντική","περιβαλλοντικό","περιβαλλοντικά","çevre","környezeti","okoliški","keskonna",""], + "key::59": ["business","economia","economiche","economica","negocio","empresa","negócio","Unternehmen","bedrijf","bedrijfskunde","επιχείρηση","iş","üzleti","posel","ettevõte/äri",""], + "key::60": ["pharmaceuticals","pharmacy","farmacia","farmaceutica","farmacéutica","farmacia","farmacêutica","farmácia","Pharmazeutika","Arzneimittelkunde","farmaceutica","geneesmiddelen","apotheek","φαρμακευτικός","φαρμακευτική","φαρμακευτικό","φαρμακευτικά","φαρμακείο","ilaç","eczane","gyógyszerészeti","gyógyszertár","farmacevtika","lekarništvo","farmaatsia","farmatseutiline",""], + "key::61": ["healthcare","health services","salute","atenciónmédica","cuidadodelasalud","cuidadoscomasaúde","Gesundheitswesen","gezondheidszorg","ιατροφαρμακευτικήπερίθαλψη","sağlıkhizmeti","egészségügy","zdravstvo","tervishoid","tervishoiu",""], + "key::62": ["history","storia","historia","história","Geschichte","geschiedenis","geschiedkunde","ιστορία","tarih","történelem","zgodovina","ajalugu",""], + "key::63": ["materials","materiali","materia","materiales","materiais","materialen","υλικά","τεκμήρια","malzemeler","anyagok","materiali","materjalid","vahendid",""], + "key::64": ["economics","economia","economiche","economica","economía","economia","Wirtschaft","economie","οικονομικά","οικονομικέςεπιστήμες","ekonomi","közgazdaságtan","gospodarstvo","ekonomija","majanduslik","majandus",""], + "key::65": ["therapeutics","terapeutica","terapéutica","terapêutica","therapie","θεραπευτική","tedavibilimi","gyógykezelés","terapevtika","terapeutiline","ravi",""], + "key::66": ["oncology","oncologia","oncologico","oncología","oncologia","Onkologie","oncologie","ογκολογία","onkoloji","onkológia","onkologija","onkoloogia",""], + "key::67": ["natural","naturali","naturale","natural","natural","natürlich","natuurlijk","φυσικός","φυσική","φυσικό","φυσικά","doğal","természetes","naraven","loodus",""], + "key::68": ["educational","educazione","pedagogia","educacional","educativo","educacional","pädagogisch","educatief","εκπαιδευτικός","εκπαιδευτική","εκπαιδευτικό","εκπαιδευτικά","eğitimsel","oktatási","izobraževalen","haridus","hariduslik",""], + "key::69": ["biomedical","biomedica","biomédico","biomédico","biomedizinisch","biomedisch","βιοιατρικός","βιοιατρική","βιοιατρικό","βιοιατρικά","biyomedikal","orvosbiológiai","biomedicinski","biomeditsiiniline",""], + "key::70": ["veterinary","veterinaria","veterinarie","veterinaria","veterinária","tierärtzlich","veterinair","veeartsenijlkunde","κτηνιατρικός","κτηνιατρική","κτηνιατρικό","κτηνιατρικά","veteriner","állatorvosi","veterinar","veterinarski","veterinaaria",""], + "key::71": ["chemistry","chimica","química","química","Chemie","chemie","scheikunde","χημεία","kimya","kémia","kemija","keemia",""], + "key::72": ["security","sicurezza","seguridad","segurança","Sicherheit","veiligheid","ασφάλεια","güvenlik","biztonsági","varnost","turvalisus","julgeolek",""], + "key::73": ["biotechnology","biotecnologia","biotecnologie","biotecnología","biotecnologia","Biotechnologie","biotechnologie","βιοτεχνολογία","biyoteknoloji","biotechnológia","biotehnologija","biotehnoloogia",""], + "key::74": ["military","militare","militari","militar","militar","Militär","militair","leger","στρατιωτικός","στρατιωτική","στρατιωτικό","στρατιωτικά","askeri","katonai","vojaški","vojni","militaar","wojskowa",""], + "key::75": ["theological","teologia","teologico","teológico","tecnológica","theologisch","theologisch","θεολογικός","θεολογική","θεολογικό","θεολογικά","teolojik","technológiai","teološki","teoloogia","usuteadus","teoloogiline",""], + "key::76": ["electronics","elettronica","electrónica","eletrônicos","Elektronik","elektronica","ηλεκτρονική","elektronik","elektronika","elektronika","elektroonika",""], + "key::77": ["forestry","forestale","forestali","silvicultura","forestal","floresta","Forstwirtschaft","bosbouw","δασοκομία","δασολογία","ormancılık","erdészet","gozdarstvo","metsandus",""], + "key::78": ["maritime","marittima","marittime","marittimo","marítimo","marítimo","maritiem","ναυτικός","ναυτική","ναυτικό","ναυτικά","ναυτιλιακός","ναυτιλιακή","ναυτιλιακό","ναυτιλιακά","θαλάσσιος","θαλάσσια","θαλάσσιο","denizcilik","tengeri","morski","mere","merendus",""], + "key::79": ["sports","sport","deportes","esportes","Sport","sport","sportwetenschappen","άθληση","γυμναστικήδραστηριότητα","spor","sport","šport","sport","spordi",""], + "key::80": ["surgery","chirurgia","chirurgiche","cirugía","cirurgia","Chirurgie","chirurgie","heelkunde","εγχείρηση","επέμβαση","χειρουργικήεπέμβαση","cerrahi","sebészet","kirurgija","kirurgia",""], + "key::81": ["cultural","culturale","culturali","cultura","cultural","cultural","kulturell","cultureel","πολιτιστικός","πολιτιστική","πολιτιστικό","πολιτισμικός","πολιτισμική","πολιτισμικό","kültürel","kultúrális","kulturni","kultuuri","kultuuriline",""], + "key::82": ["computerscience","informatica","ordenador","computadora","informática","computación","cienciasdelacomputación","ciênciadacomputação","Computer","computer","υπολογιστής","ηλεκτρονικόςυπολογιστής","bilgisayar","számítógép","računalnik","arvuti",""], + "key::83": ["finance","financial","finanza","finanziarie","finanza","financiero","finanças","financeiro","Finanzen","finanziell","financiën","financieel","χρηματοοικονομικά","χρηματοδότηση","finanse","finansal","pénzügy","pénzügyi","finance","finančni","finants","finantsiline",""], + "key::84": ["communication","comunicazione","comuniciación","comunicação","Kommunikation","communication","επικοινωνία","iletişim","kommunikáció","komuniciranje","kommunikatsioon",""], + "key::85": ["justice","giustizia","justicia","justiça","Recht","Justiz","justitie","gerechtigheid","δικαιοσύνη","υπουργείοδικαιοσύνης","δίκαιο","adalet","igazságügy","pravo","õigus",""], + "key::86": ["aerospace","aerospaziale","aerospaziali","aeroespacio","aeroespaço","Luftfahrt","luchtvaart","ruimtevaart","αεροπορικός","αεροπορική","αεροπορικό","αεροναυπηγικός","αεροναυπηγική","αεροναυπηγικό","αεροναυπηγικά","havacılıkveuzay","légtér","zrakoplovstvo","atmosfäär","kosmos",""], + "key::87": ["dermatology","dermatologia","dermatología","dermatologia","Dermatologie","dermatologie","δρματολογία","dermatoloji","bőrgyógyászat","dermatológia","dermatologija","dermatoloogia",""], + "key::88": ["architecture","architettura","arquitectura","arquitetura","Architektur","architectuur","αρχιτεκτονική","mimarlık","építészet","arhitektura","arhitektuur",""], + "key::89": ["mathematics","matematica","matematiche","matemáticas","matemáticas","Mathematik","wiskunde","mathematica","μαθηματικά","matematik","matematika","matematika","matemaatika",""], + "key::90": ["language","lingue","linguistica","linguistiche","lenguaje","idioma","língua","idioma","Sprache","taal","taalkunde","γλώσσα","dil","nyelv","jezik","keel",""], + "key::91": ["neuroscience","neuroscienza","neurociencia","neurociência","Neurowissenschaft","neurowetenschappen","νευροεπιστήμη","nörobilim","idegtudomány","nevroznanost","neuroteadused",""], + "key::92": ["automation","automazione","automatización","automação","Automatisierung","automatisering","αυτοματοποίηση","otomasyon","automatizálás","avtomatizacija","automatiseeritud",""], + "key::93": ["pediatric","pediatria","pediatriche","pediatrico","pediátrico","pediatría","pediátrico","pediatria","pädiatrisch","pediatrische","παιδιατρική","pediatrik","gyermekgyógyászat","pediatrija","pediaatria",""], + "key::94": ["photonics","fotonica","fotoniche","fotónica","fotônica","Photonik","fotonica","φωτονική","fotonik","fotonika","fotonika","fotoonika",""], + "key::95": ["mechanics", "mechanical", "meccanica","meccaniche","mecánica","mecânica","Mechanik","Maschinenbau","mechanica","werktuigkunde","μηχανικής","mekanik","gépészet","mehanika","mehaanika",""], + "key::96": ["psychiatrics","psichiatria","psichiatrica","psichiatriche","psiquiatría","psiquiatria","Psychiatrie","psychiatrie","ψυχιατρική","psikiyatrik","pszihiátria","psihiatrija","psühhaatria",""], + "key::97": ["psychology","fisiologia","psicología","psicologia","Psychologie","psychologie","ψυχολογία","psikoloji","pszihológia","psihologija","psühholoogia",""], + "key::98": ["automotive","industriaautomobilistica","industriadelautomóvil","automotriz","industriaautomotriz","automotivo","Automobilindustrie","autoindustrie","αυτοκίνητος","αυτοκίνητη","αυτοκίνητο","αυτοκινούμενος","αυτοκινούμενη","αυτοκινούμενο","αυτοκινητιστικός","αυτοκινητιστική","αυτοκινητιστικό","otomotiv","autóipari","samogiben","avtomobilskaindustrija","auto-",""], + "key::99": ["neurology","neurologia","neurologiche","neurología","neurologia","Neurologie","neurologie","zenuwleer","νευρολογία","nöroloji","neurológia","ideggyógyászat","nevrologija","neuroloogia",""], + "key::100": ["geology","geologia","geologiche","geología","geologia","Geologie","geologie","aardkunde","γεωλογία","jeoloji","geológia","földtudomány","geologija","geoloogia",""], + "key::101": ["microbiology","microbiologia","micro-biologia","microbiologiche","microbiología","microbiologia","Mikrobiologie","microbiologie","μικροβιολογία","mikrobiyoloji","mikrobiológia","mikrobiologija","mikrobioloogia",""], + "key::102": ["informatics","informatica","informática","informática","informatica",""], + "key::103": ["forschungsgemeinschaft","comunita ricerca","research community","research foundation","research association"], + "key::104": ["commerce","ticaret","ticarət","commercio","trade","handel","comercio"], + "key::105" : ["state", "stato", "etade", "estado", "statale", "etat", "zustand", "estado"], + "key::106" : ["seminary", "seminario", "seminaire", "seminar"], + "key::107" : ["agricultural forestry", "af", "a f"], + "key::108" : ["agricultural mechanical", "am", "a m"] + } + } +} \ No newline at end of file diff --git a/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/organization.json b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/organization.json new file mode 100644 index 000000000..c2e44e192 --- /dev/null +++ b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/organization.json @@ -0,0 +1 @@ +{"dateoftransformation":"2019-10-14 08:59:35.295767","originalId":["openorgs____::0000000985"],"pid":[{"qualifier":{"classid":"ISNI","classname":"ISNI","schemename":"dnet:pid_types","schemeid":"dnet:pid_types"},"value":"0000 0004 0478 6426"},{"qualifier":{"classid":"FundRef","classname":"FundRef","schemename":"dnet:pid_types","schemeid":"dnet:pid_types"},"value":"100000126"},{"qualifier":{"classid":"FundRef","classname":"FundRef","schemename":"dnet:pid_types","schemeid":"dnet:pid_types"},"value":"100000190"},{"qualifier":{"classid":"FundRef","classname":"FundRef","schemename":"dnet:pid_types","schemeid":"dnet:pid_types"},"value":"100000205"},{"qualifier":{"classid":"FundRef","classname":"FundRef","schemename":"dnet:pid_types","schemeid":"dnet:pid_types"},"value":"100005822"},{"qualifier":{"classid":"FundRef","classname":"FundRef","schemename":"dnet:pid_types","schemeid":"dnet:pid_types"},"value":"100005823"},{"qualifier":{"classid":"FundRef","classname":"FundRef","schemename":"dnet:pid_types","schemeid":"dnet:pid_types"},"value":"100005824"},{"qualifier":{"classid":"OrgRef","classname":"OrgRef","schemename":"dnet:pid_types","schemeid":"dnet:pid_types"},"value":"70243"},{"qualifier":{"classid":"Wikidata","classname":"Wikidata","schemename":"dnet:pid_types","schemeid":"dnet:pid_types"},"value":"Q503577"},{"qualifier":{"classid":"grid.ac","classname":"grid.ac","schemename":"dnet:pid_types","schemeid":"dnet:pid_types"},"value":"grid.239119.1"}],"collectedfrom":[{"value":"OpenOrgs Database","key":"10|openaire____::0362fcdb3076765d9c0041ad331553e8"}],"organization":{"metadata":{"legalshortname":{"value":"USDoC"},"websiteurl":{"value":"http://www.commerce.gov/"},"country":{"classid":"US","classname":"United States","schemename":"dnet:countries","schemeid":"dnet:countries"},"alternativeNames":[{"value":"Departamento de Comercio de Estados Unidos"},{"value":"Département du commerce des États-unis"},{"value":"United States Department of Commerce"},{"value":"United States Department of Commerce and Labor"}],"legalname":{"value":"United States Department of Commerce"}}},"dateofcollection":"","type":20,"id":"20|openorgs____::051dc42607887282d1939f094e5906f5"} \ No newline at end of file diff --git a/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/organization.no_synonyms.conf.json b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/organization.no_synonyms.conf.json new file mode 100644 index 000000000..b0d1d6c93 --- /dev/null +++ b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/organization.no_synonyms.conf.json @@ -0,0 +1,156 @@ +{ + "wf" : { + "threshold" : "0.99", + "dedupRun" : "001", + "entityType" : "organization", + "orderField" : "legalname", + "queueMaxSize" : "2000", + "groupMaxSize" : "50", + "slidingWindowSize" : "200", + "idPath":"$.id", + "rootBuilder" : [ "organization", "projectOrganization_participation_isParticipant", "datasourceOrganization_provision_isProvidedBy" ], + "includeChildren" : "true", + "maxIterations": "20" + }, + "pace" : { + "clustering" : [ + { "name" : "sortedngrampairs", "fields" : [ "legalname" ], "params" : { "max" : 2, "ngramLen" : "3"} }, + { "name" : "suffixprefix", "fields" : [ "legalname" ], "params" : { "max" : 1, "len" : "3" } }, + { "name" : "urlclustering", "fields" : [ "websiteurl" ], "params" : { } }, + { "name" : "keywordsclustering", "fields" : [ "legalname" ], "params" : { "max": 2, "windowSize": 4} } + ], + "decisionTree" : { + "start": { + "fields": [ + { + "field": "gridid", + "comparator": "exactMatch", + "weight": 1, + "countIfUndefined": "false", + "params": {} + } + ], + "threshold": 1, + "aggregation": "AVG", + "positive": "MATCH", + "negative": "NO_MATCH", + "undefined": "layer2", + "ignoreUndefined": "false" + }, + "layer2": { + "fields": [ + { + "field": "websiteurl", + "comparator": "domainExactMatch", + "weight": 1, + "countIfUndefined": "false", + "params": {} + }, + { + "field": "country", + "comparator": "exactMatch", + "weight": 1, + "countIfUndefined": "true", + "params": {} + }, + { + "field": "legalname", + "comparator": "numbersMatch", + "weight": 1, + "countIfUndefined": "true", + "params": {} + }, + { + "field": "legalname", + "comparator": "romansMatch", + "weight": 1, + "countIfUndefined": "true", + "params": {} + } + ], + "threshold": 1, + "aggregation": "AND", + "positive": "layer3", + "negative": "NO_MATCH", + "undefined": "layer3", + "ignoreUndefined": "true" + }, + "layer3": { + "fields": [ + { + "field": "legalname", + "comparator": "cityMatch", + "weight": 1.0, + "countIfUndefined": "true", + "params": { + "windowSize": "4" + } + } + ], + "threshold": 0.7, + "aggregation": "W_MEAN", + "positive": "layer4", + "negative": "NO_MATCH", + "undefined": "NO_MATCH", + "ignoreUndefined": "true" + }, + "layer4": { + "fields": [ + { + "field": "legalname", + "comparator": "keywordMatch", + "weight": 1.0, + "countIfUndefined": "true", + "params": { + "windowSize": "4" + } + } + ], + "threshold": 0.9, + "aggregation": "AVG", + "positive": "layer5", + "negative": "NO_MATCH", + "undefined": "layer5", + "ignoreUndefined": "true" + }, + "layer5": { + "fields": [ + { + "field": "legalname", + "comparator": "jaroWinklerNormalizedName", + "weight": 0.9, + "countIfUndefined": "true", + "params": { + "windowSize": "4" + } + }, + { + "field": "legalshortname", + "comparator": "jaroWinklerNormalizedName", + "weight": 0.1, + "countIfUndefined": "false", + "params": {} + } + ], + "threshold": 0.99, + "aggregation": "W_MEAN", + "positive": "MATCH", + "negative": "NO_MATCH", + "undefined": "NO_MATCH", + "ignoreUndefined": "true" + } + }, + "model" : [ + { "name" : "country", "type" : "String", "path" : "$.organization.metadata.country.classid"}, + { "name" : "legalshortname", "type" : "String", "path" : "$.organization.metadata.legalshortname.value"}, + { "name" : "legalname", "type" : "String", "path" : "$.organization.metadata.legalname.value" }, + { "name" : "websiteurl", "type" : "URL", "path" : "$.organization.metadata.websiteurl.value" }, + { "name" : "gridid", "type" : "String", "path" : "$.pid[?(@.qualifier.classid =='grid.ac')].value"}, + { "name" : "originalId", "type" : "String", "path" : "$.id" } + ], + "blacklists" : { + "legalname" : [] + }, + "synonyms": {} + } +} \ No newline at end of file diff --git a/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/pub.instancetype.tree.conf.json b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/pub.instancetype.tree.conf.json new file mode 100644 index 000000000..8ebd2be33 --- /dev/null +++ b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/pub.instancetype.tree.conf.json @@ -0,0 +1,442 @@ +{ + "wf": { + "threshold": "0.99", + "dedupRun": "001", + "entityType": "result", + "subEntityType": "resulttype", + "subEntityValue": "publication", + "orderField": "title", + "queueMaxSize": "200", + "groupMaxSize": "100", + "maxChildren": "100", + "slidingWindowSize": "50", + "rootBuilder": [ + "result", + "resultProject_outcome_isProducedBy", + "resultResult_publicationDataset_isRelatedTo", + "resultResult_similarity_isAmongTopNSimilarDocuments", + "resultResult_similarity_hasAmongTopNSimilarDocuments", + "resultOrganization_affiliation_isAffiliatedWith", + "resultResult_part_hasPart", + "resultResult_part_isPartOf", + "resultResult_supplement_isSupplementTo", + "resultResult_supplement_isSupplementedBy", + "resultResult_version_isVersionOf" + ], + "includeChildren": "true", + "maxIterations": 20, + "idPath": "$.id" + }, + "pace": { + "clustering": [ + { + "name": "wordsStatsSuffixPrefixChain", + "fields": [ + "title" + ], + "params": { + "mod": "10" + } + }, + { + "name": "lowercase", + "fields": [ + "doi", + "altdoi" + ], + "params": { + "collapseOn:pid": "0" + } + } + ], + "decisionTree": { + "start": { + "fields": [ + { + "field": "instance", + "comparator": "instanceTypeMatch", + "weight": 1.0, + "countIfUndefined": "false", + "params": {} + } + ], + "threshold": 0.5, + "aggregation": "MAX", + "positive": "layer1", + "negative": "NO_MATCH", + "undefined": "layer1", + "ignoreUndefined": "true" + }, + "layer1": { + "fields": [ + { + "field": "pid", + "comparator": "jsonListMatch", + "weight": 1.0, + "countIfUndefined": "false", + "params": { + "jpath_value": "$.value", + "jpath_classid": "$.qualifier.classid" + } + }, + { + "field": "pid", + "comparator": "jsonListMatch", + "weight": 1.0, + "countIfUndefined": "false", + "params": { + "jpath_value": "$.value", + "jpath_classid": "$.qualifier.classid", + "crossCompare": "alternateid" + } + } + ], + "threshold": 0.5, + "aggregation": "MAX", + "positive": "layer2", + "negative": "layer3", + "undefined": "layer3", + "ignoreUndefined": "true" + }, + "layer2": { + "fields": [ + { + "field": "title", + "comparator": "levensteinTitle", + "weight": 1.0, + "countIfUndefined": "true", + "params": {} + } + ], + "threshold": 0.9, + "aggregation": "AVG", + "positive": "MATCH", + "negative": "NO_MATCH", + "undefined": "NO_MATCH", + "ignoreUndefined": "true" + }, + "layer3": { + "fields": [ + { + "field": "title", + "comparator": "titleVersionMatch", + "weight": 1.0, + "countIfUndefined": "false", + "params": {} + }, + { + "field": "authors", + "comparator": "sizeMatch", + "weight": 1.0, + "countIfUndefined": "false", + "params": {} + } + ], + "threshold": 1.0, + "aggregation": "AND", + "positive": "layer4", + "negative": "NO_MATCH", + "undefined": "layer4", + "ignoreUndefined": "false" + }, + "layer4": { + "fields": [ + { + "field": "title", + "comparator": "levensteinTitle", + "weight": 1.0, + "countIfUndefined": "true", + "params": {} + } + ], + "threshold": 0.99, + "aggregation": "AVG", + "positive": "MATCH", + "negative": "NO_MATCH", + "undefined": "NO_MATCH", + "ignoreUndefined": "true" + } + }, + "model": [ + { + "name": "doi", + "type": "String", + "path": "$.instance[*].pid[?(@.qualifier.classid == 'doi')].value" + }, + { + "name": "altdoi", + "type": "String", + "path": "$.instance[*].alternateIdentifier[?(@.qualifier.classid == 'doi')].value" + }, + { + "name": "pid", + "type": "JSON", + "path": "$.instance[*].pid[*]", + "overrideMatch": "true" + }, + { + "name": "alternateid", + "type": "JSON", + "path": "$.instance[*].alternateIdentifier[*]", + "overrideMatch": "true" + }, + { + "name": "title", + "type": "String", + "path": "$.title[?(@.qualifier.classid == 'main title')].value", + "length": 250, + "size": 5 + }, + { + "name": "authors", + "type": "List", + "path": "$.author[*].fullname", + "size": 200 + }, + { + "name": "resulttype", + "type": "String", + "path": "$.resulttype.classid" + }, + { + "name": "instance", + "type": "List", + "path": "$.instance[*].instancetype.classname" + } + ], + "blacklists": { + "title": [ + "(?i)^Data Management Plan", + "^Inside Front Cover$", + "(?i)^Poster presentations$", + "^THE ASSOCIATION AND THE GENERAL MEDICAL COUNCIL$", + "^Problems with perinatal pathology\\.?$", + "(?i)^Cases? of Puerperal Convulsions$", + "(?i)^Operative Gyna?ecology$", + "(?i)^Mind the gap\\!?\\:?$", + "^Chronic fatigue syndrome\\.?$", + "^Cartas? ao editor Letters? to the Editor$", + "^Note from the Editor$", + "^Anesthesia Abstract$", + "^Annual report$", + "(?i)^“?THE RADICAL PREVENTION OF VENEREAL DISEASE\\.?”?$", + "(?i)^Graph and Table of Infectious Diseases?$", + "^Presentation$", + "(?i)^Reviews and Information on Publications$", + "(?i)^PUBLIC HEALTH SERVICES?$", + "(?i)^COMBINED TEXT-?BOOK OF OBSTETRICS AND GYN(Æ|ae)COLOGY$", + "(?i)^Adrese autora$", + "(?i)^Systematic Part .*\\. Catalogus Fossilium Austriae, Band 2: Echinoidea neogenica$", + "(?i)^Acknowledgement to Referees$", + "(?i)^Behçet's disease\\.?$", + "(?i)^Isolation and identification of restriction endonuclease.*$", + "(?i)^CEREBROVASCULAR DISEASES?.?$", + "(?i)^Screening for abdominal aortic aneurysms?\\.?$", + "^Event management$", + "(?i)^Breakfast and Crohn's disease.*\\.?$", + "^Cálculo de concentraciones en disoluciones acuosas. Ejercicio interactivo\\..*\\.$", + "(?i)^Genetic and functional analyses of SHANK2 mutations suggest a multiple hit model of Autism spectrum disorders?\\.?$", + "^Gushi hakubutsugaku$", + "^Starobosanski nadpisi u Bosni i Hercegovini \\(.*\\)$", + "^Intestinal spirocha?etosis$", + "^Treatment of Rodent Ulcer$", + "(?i)^\\W*Cloud Computing\\W*$", + "^Compendio mathematico : en que se contienen todas las materias mas principales de las Ciencias que tratan de la cantidad$", + "^Free Communications, Poster Presentations: Session [A-F]$", + "^“The Historical Aspects? of Quackery\\.?”$", + "^A designated centre for people with disabilities operated by St John of God Community Services (Limited|Ltd), Louth$", + "^P(er|re)-Mile Premiums for Auto Insurance\\.?$", + "(?i)^Case Report$", + "^Boletín Informativo$", + "(?i)^Glioblastoma Multiforme$", + "(?i)^Nuevos táxones animales descritos en la península Ibérica y Macaronesia desde 1994 \\(.*\\)$", + "^Zaměstnanecké výhody$", + "(?i)^The Economics of Terrorism and Counter-Terrorism: A Survey \\(Part .*\\)$", + "(?i)^Carotid body tumours?\\.?$", + "(?i)^\\[Españoles en Francia : La condición Emigrante.*\\]$", + "^Avant-propos$", + "(?i)^St\\. Patrick's Cathedral, Dublin, County Dublin - Head(s)? and Capital(s)?$", + "(?i)^St\\. Patrick's Cathedral, Dublin, County Dublin - Bases?$", + "(?i)^PUBLIC HEALTH VERSUS THE STATE$", + "^Viñetas de Cortázar$", + "(?i)^Search for heavy neutrinos and W(\\[|_|\\(|_\\{|-)?R(\\]|\\)|\\})? bosons with right-handed couplings in a left-right symmetric model in pp collisions at.*TeV(\\.)?$", + "(?i)^Measurement of the pseudorapidity and centrality dependence of the transverse energy density in Pb(-?)Pb collisions at.*tev(\\.?)$", + "(?i)^Search for resonances decaying into top-quark pairs using fully hadronic decays in pp collisions with ATLAS at.*TeV$", + "(?i)^Search for neutral minimal supersymmetric standard model Higgs bosons decaying to tau pairs in pp collisions at.*tev$", + "(?i)^Relatório de Estágio (de|em) Angiologia e Cirurgia Vascular$", + "^Aus der AGMB$", + "^Znanstveno-stručni prilozi$", + "(?i)^Zhodnocení finanční situace podniku a návrhy na zlepšení$", + "(?i)^Evaluation of the Financial Situation in the Firm and Proposals to its Improvement$", + "(?i)^Hodnocení finanční situace podniku a návrhy na její zlepšení$", + "^Finanční analýza podniku$", + "^Financial analysis( of business)?$", + "(?i)^Textbook of Gyn(a)?(Æ)?(e)?cology$", + "^Jikken nihon shūshinsho$", + "(?i)^CORONER('|s)(s|') INQUESTS$", + "(?i)^(Μελέτη παραγόντων )?risk management( για ανάπτυξη και εφαρμογή ενός πληροφοριακού συστήματος| και ανάπτυξη συστήματος)?$", + "(?i)^Consultants' contract(s)?$", + "(?i)^Upute autorima$", + "(?i)^Bijdrage tot de Kennis van den Godsdienst der Dajaks van Lan(d|f)ak en Tajan$", + "^Joshi shin kokubun$", + "^Kōtō shōgaku dokuhon nōson'yō$", + "^Jinjō shōgaku shōka$", + "^Shōgaku shūjichō$", + "^Nihon joshi dokuhon$", + "^Joshi shin dokuhon$", + "^Chūtō kanbun dokuhon$", + "^Wabun dokuhon$", + "(?i)^(Analysis of economy selected village or town|Rozbor hospodaření vybrané obce či města)$", + "(?i)^cardiac rehabilitation$", + "(?i)^Analytical summary$", + "^Thesaurus resolutionum Sacrae Congregationis Concilii$", + "(?i)^Sumario analítico(\\s{1})?(Analitic summary)?$", + "^Prikazi i osvrti$", + "^Rodinný dům s provozovnou$", + "^Family house with an establishment$", + "^Shinsei chūtō shin kokugun$", + "^Pulmonary alveolar proteinosis(\\.?)$", + "^Shinshū kanbun$", + "^Viñeta(s?) de Rodríguez$", + "(?i)^RUBRIKA UREDNIKA$", + "^A Matching Model of the Academic Publication Market$", + "^Yōgaku kōyō$", + "^Internetový marketing$", + "^Internet marketing$", + "^Chūtō kokugo dokuhon$", + "^Kokugo dokuhon$", + "^Antibiotic Cover for Dental Extraction(s?)$", + "^Strategie podniku$", + "^Strategy of an Enterprise$", + "(?i)^respiratory disease(s?)(\\.?)$", + "^Award(s?) for Gallantry in Civil Defence$", + "^Podniková kultura$", + "^Corporate Culture$", + "^Severe hyponatraemia in hospital inpatient(s?)(\\.?)$", + "^Pracovní motivace$", + "^Work Motivation$", + "^Kaitei kōtō jogaku dokuhon$", + "^Konsolidovaná účetní závěrka$", + "^Consolidated Financial Statements$", + "(?i)^intracranial tumour(s?)$", + "^Climate Change Mitigation Options and Directed Technical Change: A Decentralized Equilibrium Analysis$", + "^\\[CERVECERIAS MAHOU(\\.|\\:) INTERIOR\\] \\[Material gráfico\\]$", + "^Housing Market Dynamics(\\:|\\.) On the Contribution of Income Shocks and Credit Constraint(s?)$", + "^\\[Funciones auxiliares de la música en Radio París,.*\\]$", + "^Úroveň motivačního procesu jako způsobu vedení lidí$", + "^The level of motivation process as a leadership$", + "^Pay-beds in N(\\.?)H(\\.?)S(\\.?) Hospitals$", + "(?i)^news and events$", + "(?i)^NOVOSTI I DOGAĐAJI$", + "^Sansū no gakushū$", + "^Posouzení informačního systému firmy a návrh změn$", + "^Information System Assessment and Proposal for ICT Modification$", + "^Stresové zatížení pracovníků ve vybrané profesi$", + "^Stress load in a specific job$", + "^Sunday: Poster Sessions, Pt.*$", + "^Monday: Poster Sessions, Pt.*$", + "^Wednesday: Poster Sessions, Pt.*", + "^Tuesday: Poster Sessions, Pt.*$", + "^Analýza reklamy$", + "^Analysis of advertising$", + "^Shōgaku shūshinsho$", + "^Shōgaku sansū$", + "^Shintei joshi kokubun$", + "^Taishō joshi kokubun dokuhon$", + "^Joshi kokubun$", + "^Účetní uzávěrka a účetní závěrka v ČR$", + "(?i)^The \"?Causes\"? of Cancer$", + "^Normas para la publicación de artículos$", + "^Editor('|s)(s|') [Rr]eply$", + "^Editor(’|s)(s|’) letter$", + "^Redaktoriaus žodis$", + "^DISCUSSION ON THE PRECEDING PAPER$", + "^Kōtō shōgaku shūshinsho jidōyō$", + "^Shōgaku nihon rekishi$", + "^(Theory of the flow of action currents in isolated myelinated nerve fibers).*$", + "^Préface$", + "^Occupational [Hh]ealth [Ss]ervices.$", + "^In Memoriam Professor Toshiyuki TAKESHIMA$", + "^Účetní závěrka ve vybraném podniku.*$", + "^Financial statements in selected company$", + "^Abdominal [Aa]ortic [Aa]neurysms.*$", + "^Pseudomyxoma peritonei$", + "^Kazalo autora$", + "(?i)^uvodna riječ$", + "^Motivace jako způsob vedení lidí$", + "^Motivation as a leadership$", + "^Polyfunkční dům$", + "^Multi\\-funkcional building$", + "^Podnikatelský plán$", + "(?i)^Podnikatelský záměr$", + "(?i)^Business Plan$", + "^Oceňování nemovitostí$", + "^Marketingová komunikace$", + "^Marketing communication$", + "^Sumario Analítico$", + "^Riječ uredništva$", + "^Savjetovanja i priredbe$", + "^Índice$", + "^(Starobosanski nadpisi).*$", + "^Vzdělávání pracovníků v organizaci$", + "^Staff training in organization$", + "^(Life Histories of North American Geometridae).*$", + "^Strategická analýza podniku$", + "^Strategic Analysis of an Enterprise$", + "^Sadržaj$", + "^Upute suradnicima$", + "^Rodinný dům$", + "(?i)^Fami(l)?ly house$", + "^Upute autorima$", + "^Strategic Analysis$", + "^Finanční analýza vybraného podniku$", + "^Finanční analýza$", + "^Riječ urednika$", + "(?i)^Content(s?)$", + "(?i)^Inhalt$", + "^Jinjō shōgaku shūshinsho jidōyō$", + "(?i)^Index$", + "^Chūgaku kokubun kyōkasho$", + "^Retrato de una mujer$", + "^Retrato de un hombre$", + "^Kōtō shōgaku dokuhon$", + "^Shotōka kokugo$", + "^Shōgaku dokuhon$", + "^Jinjō shōgaku kokugo dokuhon$", + "^Shinsei kokugo dokuhon$", + "^Teikoku dokuhon$", + "^Instructions to Authors$", + "^KİTAP TAHLİLİ$", + "^PRZEGLĄD PIŚMIENNICTWA$", + "(?i)^Presentación$", + "^İçindekiler$", + "(?i)^Tabl?e of contents$", + "^(CODICE DEL BEATO DE LOS REYES FERNANDO I Y SANCHA).*$", + "^(\\[MADRID\\. BIBL\\. NAC\\. N.*KING FERDINAND I.*FROM SAN ISIDORO DE LEON\\. FACUNDUS SCRIPSIT DATED.*\\]).*", + "^Editorial( Board)?$", + "(?i)^Editorial \\(English\\)$", + "^Editörden$", + "^(Corpus Oral Dialectal \\(COD\\)\\.).*$", + "^(Kiri Karl Morgensternile).*$", + "^(\\[Eksliibris Aleksandr).*\\]$", + "^(\\[Eksliibris Aleksandr).*$", + "^(Eksliibris Aleksandr).*$", + "^(Kiri A\\. de Vignolles).*$", + "^(2 kirja Karl Morgensternile).*$", + "^(Pirita kloostri idaosa arheoloogilised).*$", + "^(Kiri tundmatule).*$", + "^(Kiri Jenaer Allgemeine Literaturzeitung toimetusele).*$", + "^(Eksliibris Nikolai Birukovile).*$", + "^(Eksliibris Nikolai Issakovile).*$", + "^(WHP Cruise Summary Information of section).*$", + "^(Measurement of the top quark\\-pair production cross section with ATLAS in pp collisions at).*$", + "^(Measurement of the spin\\-dependent structure function).*", + "(?i)^.*authors['’′]? reply\\.?$", + "(?i)^.*authors['’′]? response\\.?$", + "^Data [mM]anagement [sS]ervices\\.$", + "Research and Advanced Technology for Digital Libraries" + ] + }, + "synonyms": {} + } +} \ No newline at end of file diff --git a/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/pub.new.tree.conf.json b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/pub.new.tree.conf.json new file mode 100644 index 000000000..153e38ada --- /dev/null +++ b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/pub.new.tree.conf.json @@ -0,0 +1,465 @@ +{ + "wf": { + "threshold": "0.99", + "dedupRun": "001", + "entityType": "result", + "subEntityType": "resulttype", + "subEntityValue": "publication", + "orderField": "title", + "queueMaxSize": "200", + "groupMaxSize": "100", + "maxChildren": "100", + "slidingWindowSize": "50", + "rootBuilder": [ + "result", + "resultProject_outcome_isProducedBy", + "resultResult_publicationDataset_isRelatedTo", + "resultResult_similarity_isAmongTopNSimilarDocuments", + "resultResult_similarity_hasAmongTopNSimilarDocuments", + "resultOrganization_affiliation_isAffiliatedWith", + "resultResult_part_hasPart", + "resultResult_part_isPartOf", + "resultResult_supplement_isSupplementTo", + "resultResult_supplement_isSupplementedBy", + "resultResult_version_isVersionOf" + ], + "includeChildren": "true", + "maxIterations": 20, + "idPath": "$.id" + }, + "pace": { + "clustering": [ + { + "name": "wordsStatsSuffixPrefixChain", + "fields": [ + "title" + ], + "params": { + "mod": "10" + } + }, + { + "name": "lowercase", + "fields": [ + "doi", + "altdoi" + ], + "params": { + "collapseOn:pid": "0" + } + } + ], + "decisionTree": { + "start": { + "fields": [ + { + "field": "pid", + "comparator": "jsonListMatch", + "weight": 1.0, + "countIfUndefined": "false", + "params": { + "jpath_value": "$.value", + "jpath_classid": "$.qualifier.classid", + "mode": "count" + } + } + ], + "threshold": 1.0, + "aggregation": "MAX", + "positive": "MATCH", + "negative": "NO_MATCH", + "undefined": "instanceTypeCheck", + "ignoreUndefined": "false" + }, + "instanceTypeCheck": { + "fields": [ + { + "field": "instance", + "comparator": "instanceTypeMatch", + "weight": 1.0, + "countIfUndefined": "false", + "params": {} + } + ], + "threshold": 0.5, + "aggregation": "MAX", + "positive": "pidVSaltid", + "negative": "NO_MATCH", + "undefined": "pidVSaltid", + "ignoreUndefined": "true" + }, + "pidVSaltid": { + "fields": [ + { + "field": "pid", + "comparator": "jsonListMatch", + "weight": 1.0, + "countIfUndefined": "false", + "params": { + "jpath_value": "$.value", + "jpath_classid": "$.qualifier.classid", + "crossCompare": "alternateid", + "mode": "count" + } + } + ], + "threshold": 1.0, + "aggregation": "MAX", + "positive": "softCheck", + "negative": "earlyExits", + "undefined": "earlyExits", + "ignoreUndefined": "true" + }, + "softCheck": { + "fields": [ + { + "field": "title", + "comparator": "levensteinTitle", + "weight": 1.0, + "countIfUndefined": "true", + "params": {} + } + ], + "threshold": 0.9, + "aggregation": "AVG", + "positive": "MATCH", + "negative": "NO_MATCH", + "undefined": "NO_MATCH", + "ignoreUndefined": "true" + }, + "earlyExits": { + "fields": [ + { + "field": "title", + "comparator": "titleVersionMatch", + "weight": 1.0, + "countIfUndefined": "false", + "params": {} + }, + { + "field": "authors", + "comparator": "sizeMatch", + "weight": 1.0, + "countIfUndefined": "false", + "params": {} + }, + { + "field": "authors", + "comparator": "authorsMatch", + "weight": 1.0, + "countIfUndefined": "false", + "params": { + "surname_th": 0.99, + "fullname_th": 0.95, + "mode": "surname" + } + } + ], + "threshold": 1.0, + "aggregation": "AND", + "positive": "strongCheck", + "negative": "NO_MATCH", + "undefined": "strongCheck", + "ignoreUndefined": "false" + }, + "strongCheck": { + "fields": [ + { + "field": "title", + "comparator": "levensteinTitle", + "weight": 1.0, + "countIfUndefined": "true", + "params": {} + } + ], + "threshold": 0.99, + "aggregation": "AVG", + "positive": "MATCH", + "negative": "NO_MATCH", + "undefined": "NO_MATCH", + "ignoreUndefined": "true" + } + }, + "model": [ + { + "name": "doi", + "type": "String", + "path": "$.instance[*].pid[?(@.qualifier.classid == 'doi')].value" + }, + { + "name": "altdoi", + "type": "String", + "path": "$.instance[*].alternateIdentifier[?(@.qualifier.classid == 'doi')].value" + }, + { + "name": "pid", + "type": "JSON", + "path": "$.instance[*].pid[*]", + "overrideMatch": "true" + }, + { + "name": "alternateid", + "type": "JSON", + "path": "$.instance[*].alternateIdentifier[*]", + "overrideMatch": "true" + }, + { + "name": "title", + "type": "String", + "path": "$.title[?(@.qualifier.classid == 'main title')].value", + "length": 250, + "size": 5 + }, + { + "name": "authors", + "type": "List", + "path": "$.author[*].fullname", + "size": 200 + }, + { + "name": "resulttype", + "type": "String", + "path": "$.resulttype.classid" + }, + { + "name": "instance", + "type": "List", + "path": "$.instance[*].instancetype.classname" + } + ], + "blacklists": { + "title": [ + "(?i)^Data Management Plan", + "^Inside Front Cover$", + "(?i)^Poster presentations$", + "^THE ASSOCIATION AND THE GENERAL MEDICAL COUNCIL$", + "^Problems with perinatal pathology\\.?$", + "(?i)^Cases? of Puerperal Convulsions$", + "(?i)^Operative Gyna?ecology$", + "(?i)^Mind the gap\\!?\\:?$", + "^Chronic fatigue syndrome\\.?$", + "^Cartas? ao editor Letters? to the Editor$", + "^Note from the Editor$", + "^Anesthesia Abstract$", + "^Annual report$", + "(?i)^“?THE RADICAL PREVENTION OF VENEREAL DISEASE\\.?”?$", + "(?i)^Graph and Table of Infectious Diseases?$", + "^Presentation$", + "(?i)^Reviews and Information on Publications$", + "(?i)^PUBLIC HEALTH SERVICES?$", + "(?i)^COMBINED TEXT-?BOOK OF OBSTETRICS AND GYN(Æ|ae)COLOGY$", + "(?i)^Adrese autora$", + "(?i)^Systematic Part .*\\. Catalogus Fossilium Austriae, Band 2: Echinoidea neogenica$", + "(?i)^Acknowledgement to Referees$", + "(?i)^Behçet's disease\\.?$", + "(?i)^Isolation and identification of restriction endonuclease.*$", + "(?i)^CEREBROVASCULAR DISEASES?.?$", + "(?i)^Screening for abdominal aortic aneurysms?\\.?$", + "^Event management$", + "(?i)^Breakfast and Crohn's disease.*\\.?$", + "^Cálculo de concentraciones en disoluciones acuosas. Ejercicio interactivo\\..*\\.$", + "(?i)^Genetic and functional analyses of SHANK2 mutations suggest a multiple hit model of Autism spectrum disorders?\\.?$", + "^Gushi hakubutsugaku$", + "^Starobosanski nadpisi u Bosni i Hercegovini \\(.*\\)$", + "^Intestinal spirocha?etosis$", + "^Treatment of Rodent Ulcer$", + "(?i)^\\W*Cloud Computing\\W*$", + "^Compendio mathematico : en que se contienen todas las materias mas principales de las Ciencias que tratan de la cantidad$", + "^Free Communications, Poster Presentations: Session [A-F]$", + "^“The Historical Aspects? of Quackery\\.?”$", + "^A designated centre for people with disabilities operated by St John of God Community Services (Limited|Ltd), Louth$", + "^P(er|re)-Mile Premiums for Auto Insurance\\.?$", + "(?i)^Case Report$", + "^Boletín Informativo$", + "(?i)^Glioblastoma Multiforme$", + "(?i)^Nuevos táxones animales descritos en la península Ibérica y Macaronesia desde 1994 \\(.*\\)$", + "^Zaměstnanecké výhody$", + "(?i)^The Economics of Terrorism and Counter-Terrorism: A Survey \\(Part .*\\)$", + "(?i)^Carotid body tumours?\\.?$", + "(?i)^\\[Españoles en Francia : La condición Emigrante.*\\]$", + "^Avant-propos$", + "(?i)^St\\. Patrick's Cathedral, Dublin, County Dublin - Head(s)? and Capital(s)?$", + "(?i)^St\\. Patrick's Cathedral, Dublin, County Dublin - Bases?$", + "(?i)^PUBLIC HEALTH VERSUS THE STATE$", + "^Viñetas de Cortázar$", + "(?i)^Search for heavy neutrinos and W(\\[|_|\\(|_\\{|-)?R(\\]|\\)|\\})? bosons with right-handed couplings in a left-right symmetric model in pp collisions at.*TeV(\\.)?$", + "(?i)^Measurement of the pseudorapidity and centrality dependence of the transverse energy density in Pb(-?)Pb collisions at.*tev(\\.?)$", + "(?i)^Search for resonances decaying into top-quark pairs using fully hadronic decays in pp collisions with ATLAS at.*TeV$", + "(?i)^Search for neutral minimal supersymmetric standard model Higgs bosons decaying to tau pairs in pp collisions at.*tev$", + "(?i)^Relatório de Estágio (de|em) Angiologia e Cirurgia Vascular$", + "^Aus der AGMB$", + "^Znanstveno-stručni prilozi$", + "(?i)^Zhodnocení finanční situace podniku a návrhy na zlepšení$", + "(?i)^Evaluation of the Financial Situation in the Firm and Proposals to its Improvement$", + "(?i)^Hodnocení finanční situace podniku a návrhy na její zlepšení$", + "^Finanční analýza podniku$", + "^Financial analysis( of business)?$", + "(?i)^Textbook of Gyn(a)?(Æ)?(e)?cology$", + "^Jikken nihon shūshinsho$", + "(?i)^CORONER('|s)(s|') INQUESTS$", + "(?i)^(Μελέτη παραγόντων )?risk management( για ανάπτυξη και εφαρμογή ενός πληροφοριακού συστήματος| και ανάπτυξη συστήματος)?$", + "(?i)^Consultants' contract(s)?$", + "(?i)^Upute autorima$", + "(?i)^Bijdrage tot de Kennis van den Godsdienst der Dajaks van Lan(d|f)ak en Tajan$", + "^Joshi shin kokubun$", + "^Kōtō shōgaku dokuhon nōson'yō$", + "^Jinjō shōgaku shōka$", + "^Shōgaku shūjichō$", + "^Nihon joshi dokuhon$", + "^Joshi shin dokuhon$", + "^Chūtō kanbun dokuhon$", + "^Wabun dokuhon$", + "(?i)^(Analysis of economy selected village or town|Rozbor hospodaření vybrané obce či města)$", + "(?i)^cardiac rehabilitation$", + "(?i)^Analytical summary$", + "^Thesaurus resolutionum Sacrae Congregationis Concilii$", + "(?i)^Sumario analítico(\\s{1})?(Analitic summary)?$", + "^Prikazi i osvrti$", + "^Rodinný dům s provozovnou$", + "^Family house with an establishment$", + "^Shinsei chūtō shin kokugun$", + "^Pulmonary alveolar proteinosis(\\.?)$", + "^Shinshū kanbun$", + "^Viñeta(s?) de Rodríguez$", + "(?i)^RUBRIKA UREDNIKA$", + "^A Matching Model of the Academic Publication Market$", + "^Yōgaku kōyō$", + "^Internetový marketing$", + "^Internet marketing$", + "^Chūtō kokugo dokuhon$", + "^Kokugo dokuhon$", + "^Antibiotic Cover for Dental Extraction(s?)$", + "^Strategie podniku$", + "^Strategy of an Enterprise$", + "(?i)^respiratory disease(s?)(\\.?)$", + "^Award(s?) for Gallantry in Civil Defence$", + "^Podniková kultura$", + "^Corporate Culture$", + "^Severe hyponatraemia in hospital inpatient(s?)(\\.?)$", + "^Pracovní motivace$", + "^Work Motivation$", + "^Kaitei kōtō jogaku dokuhon$", + "^Konsolidovaná účetní závěrka$", + "^Consolidated Financial Statements$", + "(?i)^intracranial tumour(s?)$", + "^Climate Change Mitigation Options and Directed Technical Change: A Decentralized Equilibrium Analysis$", + "^\\[CERVECERIAS MAHOU(\\.|\\:) INTERIOR\\] \\[Material gráfico\\]$", + "^Housing Market Dynamics(\\:|\\.) On the Contribution of Income Shocks and Credit Constraint(s?)$", + "^\\[Funciones auxiliares de la música en Radio París,.*\\]$", + "^Úroveň motivačního procesu jako způsobu vedení lidí$", + "^The level of motivation process as a leadership$", + "^Pay-beds in N(\\.?)H(\\.?)S(\\.?) Hospitals$", + "(?i)^news and events$", + "(?i)^NOVOSTI I DOGAĐAJI$", + "^Sansū no gakushū$", + "^Posouzení informačního systému firmy a návrh změn$", + "^Information System Assessment and Proposal for ICT Modification$", + "^Stresové zatížení pracovníků ve vybrané profesi$", + "^Stress load in a specific job$", + "^Sunday: Poster Sessions, Pt.*$", + "^Monday: Poster Sessions, Pt.*$", + "^Wednesday: Poster Sessions, Pt.*", + "^Tuesday: Poster Sessions, Pt.*$", + "^Analýza reklamy$", + "^Analysis of advertising$", + "^Shōgaku shūshinsho$", + "^Shōgaku sansū$", + "^Shintei joshi kokubun$", + "^Taishō joshi kokubun dokuhon$", + "^Joshi kokubun$", + "^Účetní uzávěrka a účetní závěrka v ČR$", + "(?i)^The \"?Causes\"? of Cancer$", + "^Normas para la publicación de artículos$", + "^Editor('|s)(s|') [Rr]eply$", + "^Editor(’|s)(s|’) letter$", + "^Redaktoriaus žodis$", + "^DISCUSSION ON THE PRECEDING PAPER$", + "^Kōtō shōgaku shūshinsho jidōyō$", + "^Shōgaku nihon rekishi$", + "^(Theory of the flow of action currents in isolated myelinated nerve fibers).*$", + "^Préface$", + "^Occupational [Hh]ealth [Ss]ervices.$", + "^In Memoriam Professor Toshiyuki TAKESHIMA$", + "^Účetní závěrka ve vybraném podniku.*$", + "^Financial statements in selected company$", + "^Abdominal [Aa]ortic [Aa]neurysms.*$", + "^Pseudomyxoma peritonei$", + "^Kazalo autora$", + "(?i)^uvodna riječ$", + "^Motivace jako způsob vedení lidí$", + "^Motivation as a leadership$", + "^Polyfunkční dům$", + "^Multi\\-funkcional building$", + "^Podnikatelský plán$", + "(?i)^Podnikatelský záměr$", + "(?i)^Business Plan$", + "^Oceňování nemovitostí$", + "^Marketingová komunikace$", + "^Marketing communication$", + "^Sumario Analítico$", + "^Riječ uredništva$", + "^Savjetovanja i priredbe$", + "^Índice$", + "^(Starobosanski nadpisi).*$", + "^Vzdělávání pracovníků v organizaci$", + "^Staff training in organization$", + "^(Life Histories of North American Geometridae).*$", + "^Strategická analýza podniku$", + "^Strategic Analysis of an Enterprise$", + "^Sadržaj$", + "^Upute suradnicima$", + "^Rodinný dům$", + "(?i)^Fami(l)?ly house$", + "^Upute autorima$", + "^Strategic Analysis$", + "^Finanční analýza vybraného podniku$", + "^Finanční analýza$", + "^Riječ urednika$", + "(?i)^Content(s?)$", + "(?i)^Inhalt$", + "^Jinjō shōgaku shūshinsho jidōyō$", + "(?i)^Index$", + "^Chūgaku kokubun kyōkasho$", + "^Retrato de una mujer$", + "^Retrato de un hombre$", + "^Kōtō shōgaku dokuhon$", + "^Shotōka kokugo$", + "^Shōgaku dokuhon$", + "^Jinjō shōgaku kokugo dokuhon$", + "^Shinsei kokugo dokuhon$", + "^Teikoku dokuhon$", + "^Instructions to Authors$", + "^KİTAP TAHLİLİ$", + "^PRZEGLĄD PIŚMIENNICTWA$", + "(?i)^Presentación$", + "^İçindekiler$", + "(?i)^Tabl?e of contents$", + "^(CODICE DEL BEATO DE LOS REYES FERNANDO I Y SANCHA).*$", + "^(\\[MADRID\\. BIBL\\. NAC\\. N.*KING FERDINAND I.*FROM SAN ISIDORO DE LEON\\. FACUNDUS SCRIPSIT DATED.*\\]).*", + "^Editorial( Board)?$", + "(?i)^Editorial \\(English\\)$", + "^Editörden$", + "^(Corpus Oral Dialectal \\(COD\\)\\.).*$", + "^(Kiri Karl Morgensternile).*$", + "^(\\[Eksliibris Aleksandr).*\\]$", + "^(\\[Eksliibris Aleksandr).*$", + "^(Eksliibris Aleksandr).*$", + "^(Kiri A\\. de Vignolles).*$", + "^(2 kirja Karl Morgensternile).*$", + "^(Pirita kloostri idaosa arheoloogilised).*$", + "^(Kiri tundmatule).*$", + "^(Kiri Jenaer Allgemeine Literaturzeitung toimetusele).*$", + "^(Eksliibris Nikolai Birukovile).*$", + "^(Eksliibris Nikolai Issakovile).*$", + "^(WHP Cruise Summary Information of section).*$", + "^(Measurement of the top quark\\-pair production cross section with ATLAS in pp collisions at).*$", + "^(Measurement of the spin\\-dependent structure function).*", + "(?i)^.*authors['’′]? reply\\.?$", + "(?i)^.*authors['’′]? response\\.?$", + "^Data [mM]anagement [sS]ervices\\.$", + "Research and Advanced Technology for Digital Libraries" + ] + }, + "synonyms": {} + } +} \ No newline at end of file diff --git a/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/pub.prod.conf.json b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/pub.prod.conf.json new file mode 100644 index 000000000..ab34ed877 --- /dev/null +++ b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/pub.prod.conf.json @@ -0,0 +1,402 @@ + +{ + "wf": { + "threshold": "0.99", + "dedupRun": "001", + "entityType": "result", + "subEntityType": "resulttype", + "subEntityValue": "publication", + "orderField": "title", + "queueMaxSize": "200", + "groupMaxSize": "100", + "maxChildren": "100", + "slidingWindowSize": "50", + "rootBuilder": [ + "result", + "resultProject_outcome_isProducedBy", + "resultResult_publicationDataset_isRelatedTo", + "resultResult_similarity_isAmongTopNSimilarDocuments", + "resultResult_similarity_hasAmongTopNSimilarDocuments", + "resultOrganization_affiliation_isAffiliatedWith", + "resultResult_part_hasPart", + "resultResult_part_isPartOf", + "resultResult_supplement_isSupplementTo", + "resultResult_supplement_isSupplementedBy", + "resultResult_version_isVersionOf" + ], + "includeChildren": "true", + "maxIterations": 20, + "idPath": "$.id" + }, + "pace": { + "clustering" : [ + { "name" : "wordsStatsSuffixPrefixChain", "fields" : [ "title" ], "params" : { "mod" : "10" } }, + { "name" : "lowercase", "fields" : [ "doi", "altdoi" ], "params" : { "collapseOn:pid": "0"} } + ], + "decisionTree": { + "start": { + "fields": [ + { + "field": "pid", + "comparator": "jsonListMatch", + "weight": 1.0, + "countIfUndefined": "false", + "params": { + "jpath_value": "$.value", + "jpath_classid": "$.qualifier.classid" + } + }, + { + "field": "pid", + "comparator": "jsonListMatch", + "weight": 1.0, + "countIfUndefined": "false", + "params": { + "jpath_value": "$.value", + "jpath_classid": "$.qualifier.classid", + "crossCompare": "alternateid" + } + } + ], + "threshold": 0.5, + "aggregation": "MAX", + "positive": "layer1", + "negative": "layer2", + "undefined": "layer2", + "ignoreUndefined": "true" + }, + "layer1": { + "fields": [ + { + "field": "title", + "comparator": "levensteinTitle", + "weight": 1.0, + "countIfUndefined": "true", + "params": {} + } + ], + "threshold": 0.9, + "aggregation": "AVG", + "positive": "MATCH", + "negative": "NO_MATCH", + "undefined": "NO_MATCH", + "ignoreUndefined": "true" + }, + "layer2": { + "fields": [ + { + "field": "title", + "comparator": "titleVersionMatch", + "weight": 1.0, + "countIfUndefined": "false", + "params": {} + }, + { + "field": "authors", + "comparator": "sizeMatch", + "weight": 1.0, + "countIfUndefined": "false", + "params": {} + } + ], + "threshold": 1.0, + "aggregation": "AND", + "positive": "layer3", + "negative": "NO_MATCH", + "undefined": "layer3", + "ignoreUndefined": "false" + }, + "layer3": { + "fields": [ + { + "field": "title", + "comparator": "levensteinTitle", + "weight": 1.0, + "countIfUndefined": "true", + "params": {} + } + ], + "threshold": 0.99, + "aggregation": "AVG", + "positive": "MATCH", + "negative": "NO_MATCH", + "undefined": "NO_MATCH", + "ignoreUndefined": "true" + } + }, + "model": [ + { + "name": "doi", + "type": "String", + "path": "$.instance.pid[?(@.qualifier.classid == 'doi')].value" + }, + { + "name": "altdoi", + "type": "String", + "path": "$.instance.alternateIdentifier[?(@.qualifier.classid == 'doi')].value" + }, + { + "name": "pid", + "type": "JSON", + "path": "$.instance.pid", + "overrideMatch": "true" + }, + { + "name": "alternateid", + "type": "JSON", + "path": "$.instance.alternateIdentifier", + "overrideMatch": "true" + }, + { + "name": "title", + "type": "String", + "path": "$.title[?(@.qualifier.classid == 'main title')].value", + "length": 250, + "size": 5 + }, + { + "name": "authors", + "type": "List", + "path": "$.author[*].fullname", + "size": 200 + }, + { + "name": "resulttype", + "type": "String", + "path": "$.resulttype.classid" + } + ], + "blacklists": { + "title": [ + "(?i)^Data Management Plan", + "^Inside Front Cover$", + "(?i)^Poster presentations$", + "^THE ASSOCIATION AND THE GENERAL MEDICAL COUNCIL$", + "^Problems with perinatal pathology\\.?$", + "(?i)^Cases? of Puerperal Convulsions$", + "(?i)^Operative Gyna?ecology$", + "(?i)^Mind the gap\\!?\\:?$", + "^Chronic fatigue syndrome\\.?$", + "^Cartas? ao editor Letters? to the Editor$", + "^Note from the Editor$", + "^Anesthesia Abstract$", + "^Annual report$", + "(?i)^“?THE RADICAL PREVENTION OF VENEREAL DISEASE\\.?”?$", + "(?i)^Graph and Table of Infectious Diseases?$", + "^Presentation$", + "(?i)^Reviews and Information on Publications$", + "(?i)^PUBLIC HEALTH SERVICES?$", + "(?i)^COMBINED TEXT-?BOOK OF OBSTETRICS AND GYN(Æ|ae)COLOGY$", + "(?i)^Adrese autora$", + "(?i)^Systematic Part .*\\. Catalogus Fossilium Austriae, Band 2: Echinoidea neogenica$", + "(?i)^Acknowledgement to Referees$", + "(?i)^Behçet's disease\\.?$", + "(?i)^Isolation and identification of restriction endonuclease.*$", + "(?i)^CEREBROVASCULAR DISEASES?.?$", + "(?i)^Screening for abdominal aortic aneurysms?\\.?$", + "^Event management$", + "(?i)^Breakfast and Crohn's disease.*\\.?$", + "^Cálculo de concentraciones en disoluciones acuosas. Ejercicio interactivo\\..*\\.$", + "(?i)^Genetic and functional analyses of SHANK2 mutations suggest a multiple hit model of Autism spectrum disorders?\\.?$", + "^Gushi hakubutsugaku$", + "^Starobosanski nadpisi u Bosni i Hercegovini \\(.*\\)$", + "^Intestinal spirocha?etosis$", + "^Treatment of Rodent Ulcer$", + "(?i)^\\W*Cloud Computing\\W*$", + "^Compendio mathematico : en que se contienen todas las materias mas principales de las Ciencias que tratan de la cantidad$", + "^Free Communications, Poster Presentations: Session [A-F]$", + "^“The Historical Aspects? of Quackery\\.?”$", + "^A designated centre for people with disabilities operated by St John of God Community Services (Limited|Ltd), Louth$", + "^P(er|re)-Mile Premiums for Auto Insurance\\.?$", + "(?i)^Case Report$", + "^Boletín Informativo$", + "(?i)^Glioblastoma Multiforme$", + "(?i)^Nuevos táxones animales descritos en la península Ibérica y Macaronesia desde 1994 \\(.*\\)$", + "^Zaměstnanecké výhody$", + "(?i)^The Economics of Terrorism and Counter-Terrorism: A Survey \\(Part .*\\)$", + "(?i)^Carotid body tumours?\\.?$", + "(?i)^\\[Españoles en Francia : La condición Emigrante.*\\]$", + "^Avant-propos$", + "(?i)^St\\. Patrick's Cathedral, Dublin, County Dublin - Head(s)? and Capital(s)?$", + "(?i)^St\\. Patrick's Cathedral, Dublin, County Dublin - Bases?$", + "(?i)^PUBLIC HEALTH VERSUS THE STATE$", + "^Viñetas de Cortázar$", + "(?i)^Search for heavy neutrinos and W(\\[|_|\\(|_\\{|-)?R(\\]|\\)|\\})? bosons with right-handed couplings in a left-right symmetric model in pp collisions at.*TeV(\\.)?$", + "(?i)^Measurement of the pseudorapidity and centrality dependence of the transverse energy density in Pb(-?)Pb collisions at.*tev(\\.?)$", + "(?i)^Search for resonances decaying into top-quark pairs using fully hadronic decays in pp collisions with ATLAS at.*TeV$", + "(?i)^Search for neutral minimal supersymmetric standard model Higgs bosons decaying to tau pairs in pp collisions at.*tev$", + "(?i)^Relatório de Estágio (de|em) Angiologia e Cirurgia Vascular$", + "^Aus der AGMB$", + "^Znanstveno-stručni prilozi$", + "(?i)^Zhodnocení finanční situace podniku a návrhy na zlepšení$", + "(?i)^Evaluation of the Financial Situation in the Firm and Proposals to its Improvement$", + "(?i)^Hodnocení finanční situace podniku a návrhy na její zlepšení$", + "^Finanční analýza podniku$", + "^Financial analysis( of business)?$", + "(?i)^Textbook of Gyn(a)?(Æ)?(e)?cology$", + "^Jikken nihon shūshinsho$", + "(?i)^CORONER('|s)(s|') INQUESTS$", + "(?i)^(Μελέτη παραγόντων )?risk management( για ανάπτυξη και εφαρμογή ενός πληροφοριακού συστήματος| και ανάπτυξη συστήματος)?$", + "(?i)^Consultants' contract(s)?$", + "(?i)^Upute autorima$", + "(?i)^Bijdrage tot de Kennis van den Godsdienst der Dajaks van Lan(d|f)ak en Tajan$", + "^Joshi shin kokubun$", + "^Kōtō shōgaku dokuhon nōson'yō$", + "^Jinjō shōgaku shōka$", + "^Shōgaku shūjichō$", + "^Nihon joshi dokuhon$", + "^Joshi shin dokuhon$", + "^Chūtō kanbun dokuhon$", + "^Wabun dokuhon$", + "(?i)^(Analysis of economy selected village or town|Rozbor hospodaření vybrané obce či města)$", + "(?i)^cardiac rehabilitation$", + "(?i)^Analytical summary$", + "^Thesaurus resolutionum Sacrae Congregationis Concilii$", + "(?i)^Sumario analítico(\\s{1})?(Analitic summary)?$", + "^Prikazi i osvrti$", + "^Rodinný dům s provozovnou$", + "^Family house with an establishment$", + "^Shinsei chūtō shin kokugun$", + "^Pulmonary alveolar proteinosis(\\.?)$", + "^Shinshū kanbun$", + "^Viñeta(s?) de Rodríguez$", + "(?i)^RUBRIKA UREDNIKA$", + "^A Matching Model of the Academic Publication Market$", + "^Yōgaku kōyō$", + "^Internetový marketing$", + "^Internet marketing$", + "^Chūtō kokugo dokuhon$", + "^Kokugo dokuhon$", + "^Antibiotic Cover for Dental Extraction(s?)$", + "^Strategie podniku$", + "^Strategy of an Enterprise$", + "(?i)^respiratory disease(s?)(\\.?)$", + "^Award(s?) for Gallantry in Civil Defence$", + "^Podniková kultura$", + "^Corporate Culture$", + "^Severe hyponatraemia in hospital inpatient(s?)(\\.?)$", + "^Pracovní motivace$", + "^Work Motivation$", + "^Kaitei kōtō jogaku dokuhon$", + "^Konsolidovaná účetní závěrka$", + "^Consolidated Financial Statements$", + "(?i)^intracranial tumour(s?)$", + "^Climate Change Mitigation Options and Directed Technical Change: A Decentralized Equilibrium Analysis$", + "^\\[CERVECERIAS MAHOU(\\.|\\:) INTERIOR\\] \\[Material gráfico\\]$", + "^Housing Market Dynamics(\\:|\\.) On the Contribution of Income Shocks and Credit Constraint(s?)$", + "^\\[Funciones auxiliares de la música en Radio París,.*\\]$", + "^Úroveň motivačního procesu jako způsobu vedení lidí$", + "^The level of motivation process as a leadership$", + "^Pay-beds in N(\\.?)H(\\.?)S(\\.?) Hospitals$", + "(?i)^news and events$", + "(?i)^NOVOSTI I DOGAĐAJI$", + "^Sansū no gakushū$", + "^Posouzení informačního systému firmy a návrh změn$", + "^Information System Assessment and Proposal for ICT Modification$", + "^Stresové zatížení pracovníků ve vybrané profesi$", + "^Stress load in a specific job$", + "^Sunday: Poster Sessions, Pt.*$", + "^Monday: Poster Sessions, Pt.*$", + "^Wednesday: Poster Sessions, Pt.*", + "^Tuesday: Poster Sessions, Pt.*$", + "^Analýza reklamy$", + "^Analysis of advertising$", + "^Shōgaku shūshinsho$", + "^Shōgaku sansū$", + "^Shintei joshi kokubun$", + "^Taishō joshi kokubun dokuhon$", + "^Joshi kokubun$", + "^Účetní uzávěrka a účetní závěrka v ČR$", + "(?i)^The \"?Causes\"? of Cancer$", + "^Normas para la publicación de artículos$", + "^Editor('|s)(s|') [Rr]eply$", + "^Editor(’|s)(s|’) letter$", + "^Redaktoriaus žodis$", + "^DISCUSSION ON THE PRECEDING PAPER$", + "^Kōtō shōgaku shūshinsho jidōyō$", + "^Shōgaku nihon rekishi$", + "^(Theory of the flow of action currents in isolated myelinated nerve fibers).*$", + "^Préface$", + "^Occupational [Hh]ealth [Ss]ervices.$", + "^In Memoriam Professor Toshiyuki TAKESHIMA$", + "^Účetní závěrka ve vybraném podniku.*$", + "^Financial statements in selected company$", + "^Abdominal [Aa]ortic [Aa]neurysms.*$", + "^Pseudomyxoma peritonei$", + "^Kazalo autora$", + "(?i)^uvodna riječ$", + "^Motivace jako způsob vedení lidí$", + "^Motivation as a leadership$", + "^Polyfunkční dům$", + "^Multi\\-funkcional building$", + "^Podnikatelský plán$", + "(?i)^Podnikatelský záměr$", + "(?i)^Business Plan$", + "^Oceňování nemovitostí$", + "^Marketingová komunikace$", + "^Marketing communication$", + "^Sumario Analítico$", + "^Riječ uredništva$", + "^Savjetovanja i priredbe$", + "^Índice$", + "^(Starobosanski nadpisi).*$", + "^Vzdělávání pracovníků v organizaci$", + "^Staff training in organization$", + "^(Life Histories of North American Geometridae).*$", + "^Strategická analýza podniku$", + "^Strategic Analysis of an Enterprise$", + "^Sadržaj$", + "^Upute suradnicima$", + "^Rodinný dům$", + "(?i)^Fami(l)?ly house$", + "^Upute autorima$", + "^Strategic Analysis$", + "^Finanční analýza vybraného podniku$", + "^Finanční analýza$", + "^Riječ urednika$", + "(?i)^Content(s?)$", + "(?i)^Inhalt$", + "^Jinjō shōgaku shūshinsho jidōyō$", + "(?i)^Index$", + "^Chūgaku kokubun kyōkasho$", + "^Retrato de una mujer$", + "^Retrato de un hombre$", + "^Kōtō shōgaku dokuhon$", + "^Shotōka kokugo$", + "^Shōgaku dokuhon$", + "^Jinjō shōgaku kokugo dokuhon$", + "^Shinsei kokugo dokuhon$", + "^Teikoku dokuhon$", + "^Instructions to Authors$", + "^KİTAP TAHLİLİ$", + "^PRZEGLĄD PIŚMIENNICTWA$", + "(?i)^Presentación$", + "^İçindekiler$", + "(?i)^Tabl?e of contents$", + "^(CODICE DEL BEATO DE LOS REYES FERNANDO I Y SANCHA).*$", + "^(\\[MADRID\\. BIBL\\. NAC\\. N.*KING FERDINAND I.*FROM SAN ISIDORO DE LEON\\. FACUNDUS SCRIPSIT DATED.*\\]).*", + "^Editorial( Board)?$", + "(?i)^Editorial \\(English\\)$", + "^Editörden$", + "^(Corpus Oral Dialectal \\(COD\\)\\.).*$", + "^(Kiri Karl Morgensternile).*$", + "^(\\[Eksliibris Aleksandr).*\\]$", + "^(\\[Eksliibris Aleksandr).*$", + "^(Eksliibris Aleksandr).*$", + "^(Kiri A\\. de Vignolles).*$", + "^(2 kirja Karl Morgensternile).*$", + "^(Pirita kloostri idaosa arheoloogilised).*$", + "^(Kiri tundmatule).*$", + "^(Kiri Jenaer Allgemeine Literaturzeitung toimetusele).*$", + "^(Eksliibris Nikolai Birukovile).*$", + "^(Eksliibris Nikolai Issakovile).*$", + "^(WHP Cruise Summary Information of section).*$", + "^(Measurement of the top quark\\-pair production cross section with ATLAS in pp collisions at).*$", + "^(Measurement of the spin\\-dependent structure function).*", + "(?i)^.*authors['’′]? reply\\.?$", + "(?i)^.*authors['’′]? response\\.?$" + ] + }, + "synonyms": {} + } +} \ No newline at end of file diff --git a/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/publication.current.conf.json b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/publication.current.conf.json new file mode 100644 index 000000000..267ed458a --- /dev/null +++ b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/publication.current.conf.json @@ -0,0 +1,362 @@ +{ + "wf": { + "threshold": "0.99", + "dedupRun": "001", + "entityType": "result", + "subEntityType": "resulttype", + "subEntityValue": "publication", + "orderField": "title", + "queueMaxSize": "2000", + "groupMaxSize": "100", + "maxChildren": "100", + "slidingWindowSize": "200", + "rootBuilder": [ + "result", + "resultProject_outcome_isProducedBy", + "resultResult_publicationDataset_isRelatedTo", + "resultResult_similarity_isAmongTopNSimilarDocuments", + "resultResult_similarity_hasAmongTopNSimilarDocuments", + "resultOrganization_affiliation_isAffiliatedWith", + "resultResult_part_hasPart", + "resultResult_part_isPartOf", + "resultResult_supplement_isSupplementTo", + "resultResult_supplement_isSupplementedBy", + "resultResult_version_isVersionOf" + ], + "includeChildren": "true", + "maxIterations": 20, + "idPath": "$.id" + }, + "pace": { + "clustering" : [ + { "name" : "ngrampairs", "fields" : [ "title" ], "params" : { "max" : "1", "ngramLen" : "3", "collapseOn:test": ""} }, + { "name" : "suffixprefix", "fields" : [ "title" ], "params" : { "max" : "1", "len" : "3" } }, + { "name" : "lowercase", "fields" : [ "doi" ], "params" : { } } + ], + "decisionTree": { + "start": { + "fields": [ + { + "field": "pid", + "comparator": "jsonListMatch", + "weight": 1.0, + "countIfUndefined": "false", + "params": { + "jpath_value": "$.value", + "jpath_classid": "$.qualifier.classid" + } + } + ], + "threshold": 0.5, + "aggregation": "AVG", + "positive": "MATCH", + "negative": "layer2", + "undefined": "layer2", + "ignoreUndefined": "true" + }, + "layer2": { + "fields": [ + { + "field": "title", + "comparator": "titleVersionMatch", + "weight": 1.0, + "countIfUndefined": "false", + "params": {} + }, + { + "field": "authors", + "comparator": "sizeMatch", + "weight": 1.0, + "countIfUndefined": "false", + "params": {} + } + ], + "threshold": 1.0, + "aggregation": "AND", + "positive": "layer3", + "negative": "NO_MATCH", + "undefined": "layer3", + "ignoreUndefined": "false" + }, + "layer3": { + "fields": [ + { + "field": "title", + "comparator": "levensteinTitle", + "weight": 1.0, + "countIfUndefined": "true", + "params": {} + } + ], + "threshold": 0.99, + "aggregation": "AVG", + "positive": "MATCH", + "negative": "NO_MATCH", + "undefined": "NO_MATCH", + "ignoreUndefined": "true" + } + }, + "model": [ + { + "name": "doi", + "type": "String", + "path": "$.pid[?(@.qualifier.classid == 'doi')].value" + }, + { + "name": "pid", + "type": "JSON", + "path": "$.pid", + "overrideMatch": "true" + }, + { + "name": "title", + "type": "String", + "path": "$.title[?(@.qualifier.classid == 'main title')].value", + "length": 250, + "size": 5 + }, + { + "name": "authors", + "type": "List", + "path": "$.author[*].fullname", + "size": 200 + }, + { + "name": "resulttype", + "type": "String", + "path": "$.resulttype.classid" + } + ], + "blacklists": { + "title": [ + "^Inside Front Cover$", + "(?i)^Poster presentations$", + "^THE ASSOCIATION AND THE GENERAL MEDICAL COUNCIL$", + "^Problems with perinatal pathology\\.?$", + "(?i)^Cases? of Puerperal Convulsions$", + "(?i)^Operative Gyna?ecology$", + "(?i)^Mind the gap\\!?\\:?$", + "^Chronic fatigue syndrome\\.?$", + "^Cartas? ao editor Letters? to the Editor$", + "^Note from the Editor$", + "^Anesthesia Abstract$", + "^Annual report$", + "(?i)^“?THE RADICAL PREVENTION OF VENEREAL DISEASE\\.?”?$", + "(?i)^Graph and Table of Infectious Diseases?$", + "^Presentation$", + "(?i)^Reviews and Information on Publications$", + "(?i)^PUBLIC HEALTH SERVICES?$", + "(?i)^COMBINED TEXT-?BOOK OF OBSTETRICS AND GYN(Æ|ae)COLOGY$", + "(?i)^Adrese autora$", + "(?i)^Systematic Part .*\\. Catalogus Fossilium Austriae, Band 2: Echinoidea neogenica$", + "(?i)^Acknowledgement to Referees$", + "(?i)^Behçet's disease\\.?$", + "(?i)^Isolation and identification of restriction endonuclease.*$", + "(?i)^CEREBROVASCULAR DISEASES?.?$", + "(?i)^Screening for abdominal aortic aneurysms?\\.?$", + "^Event management$", + "(?i)^Breakfast and Crohn's disease.*\\.?$", + "^Cálculo de concentraciones en disoluciones acuosas. Ejercicio interactivo\\..*\\.$", + "(?i)^Genetic and functional analyses of SHANK2 mutations suggest a multiple hit model of Autism spectrum disorders?\\.?$", + "^Gushi hakubutsugaku$", + "^Starobosanski nadpisi u Bosni i Hercegovini \\(.*\\)$", + "^Intestinal spirocha?etosis$", + "^Treatment of Rodent Ulcer$", + "(?i)^\\W*Cloud Computing\\W*$", + "^Compendio mathematico : en que se contienen todas las materias mas principales de las Ciencias que tratan de la cantidad$", + "^Free Communications, Poster Presentations: Session [A-F]$", + "^“The Historical Aspects? of Quackery\\.?”$", + "^A designated centre for people with disabilities operated by St John of God Community Services (Limited|Ltd), Louth$", + "^P(er|re)-Mile Premiums for Auto Insurance\\.?$", + "(?i)^Case Report$", + "^Boletín Informativo$", + "(?i)^Glioblastoma Multiforme$", + "(?i)^Nuevos táxones animales descritos en la península Ibérica y Macaronesia desde 1994 \\(.*\\)$", + "^Zaměstnanecké výhody$", + "(?i)^The Economics of Terrorism and Counter-Terrorism: A Survey \\(Part .*\\)$", + "(?i)^Carotid body tumours?\\.?$", + "(?i)^\\[Españoles en Francia : La condición Emigrante.*\\]$", + "^Avant-propos$", + "(?i)^St\\. Patrick's Cathedral, Dublin, County Dublin - Head(s)? and Capital(s)?$", + "(?i)^St\\. Patrick's Cathedral, Dublin, County Dublin - Bases?$", + "(?i)^PUBLIC HEALTH VERSUS THE STATE$", + "^Viñetas de Cortázar$", + "(?i)^Search for heavy neutrinos and W(\\[|_|\\(|_\\{|-)?R(\\]|\\)|\\})? bosons with right-handed couplings in a left-right symmetric model in pp collisions at.*TeV(\\.)?$", + "(?i)^Measurement of the pseudorapidity and centrality dependence of the transverse energy density in Pb(-?)Pb collisions at.*tev(\\.?)$", + "(?i)^Search for resonances decaying into top-quark pairs using fully hadronic decays in pp collisions with ATLAS at.*TeV$", + "(?i)^Search for neutral minimal supersymmetric standard model Higgs bosons decaying to tau pairs in pp collisions at.*tev$", + "(?i)^Relatório de Estágio (de|em) Angiologia e Cirurgia Vascular$", + "^Aus der AGMB$", + "^Znanstveno-stručni prilozi$", + "(?i)^Zhodnocení finanční situace podniku a návrhy na zlepšení$", + "(?i)^Evaluation of the Financial Situation in the Firm and Proposals to its Improvement$", + "(?i)^Hodnocení finanční situace podniku a návrhy na její zlepšení$", + "^Finanční analýza podniku$", + "^Financial analysis( of business)?$", + "(?i)^Textbook of Gyn(a)?(Æ)?(e)?cology$", + "^Jikken nihon shūshinsho$", + "(?i)^CORONER('|s)(s|') INQUESTS$", + "(?i)^(Μελέτη παραγόντων )?risk management( για ανάπτυξη και εφαρμογή ενός πληροφοριακού συστήματος| και ανάπτυξη συστήματος)?$", + "(?i)^Consultants' contract(s)?$", + "(?i)^Upute autorima$", + "(?i)^Bijdrage tot de Kennis van den Godsdienst der Dajaks van Lan(d|f)ak en Tajan$", + "^Joshi shin kokubun$", + "^Kōtō shōgaku dokuhon nōson'yō$", + "^Jinjō shōgaku shōka$", + "^Shōgaku shūjichō$", + "^Nihon joshi dokuhon$", + "^Joshi shin dokuhon$", + "^Chūtō kanbun dokuhon$", + "^Wabun dokuhon$", + "(?i)^(Analysis of economy selected village or town|Rozbor hospodaření vybrané obce či města)$", + "(?i)^cardiac rehabilitation$", + "(?i)^Analytical summary$", + "^Thesaurus resolutionum Sacrae Congregationis Concilii$", + "(?i)^Sumario analítico(\\s{1})?(Analitic summary)?$", + "^Prikazi i osvrti$", + "^Rodinný dům s provozovnou$", + "^Family house with an establishment$", + "^Shinsei chūtō shin kokugun$", + "^Pulmonary alveolar proteinosis(\\.?)$", + "^Shinshū kanbun$", + "^Viñeta(s?) de Rodríguez$", + "(?i)^RUBRIKA UREDNIKA$", + "^A Matching Model of the Academic Publication Market$", + "^Yōgaku kōyō$", + "^Internetový marketing$", + "^Internet marketing$", + "^Chūtō kokugo dokuhon$", + "^Kokugo dokuhon$", + "^Antibiotic Cover for Dental Extraction(s?)$", + "^Strategie podniku$", + "^Strategy of an Enterprise$", + "(?i)^respiratory disease(s?)(\\.?)$", + "^Award(s?) for Gallantry in Civil Defence$", + "^Podniková kultura$", + "^Corporate Culture$", + "^Severe hyponatraemia in hospital inpatient(s?)(\\.?)$", + "^Pracovní motivace$", + "^Work Motivation$", + "^Kaitei kōtō jogaku dokuhon$", + "^Konsolidovaná účetní závěrka$", + "^Consolidated Financial Statements$", + "(?i)^intracranial tumour(s?)$", + "^Climate Change Mitigation Options and Directed Technical Change: A Decentralized Equilibrium Analysis$", + "^\\[CERVECERIAS MAHOU(\\.|\\:) INTERIOR\\] \\[Material gráfico\\]$", + "^Housing Market Dynamics(\\:|\\.) On the Contribution of Income Shocks and Credit Constraint(s?)$", + "^\\[Funciones auxiliares de la música en Radio París,.*\\]$", + "^Úroveň motivačního procesu jako způsobu vedení lidí$", + "^The level of motivation process as a leadership$", + "^Pay-beds in N(\\.?)H(\\.?)S(\\.?) Hospitals$", + "(?i)^news and events$", + "(?i)^NOVOSTI I DOGAĐAJI$", + "^Sansū no gakushū$", + "^Posouzení informačního systému firmy a návrh změn$", + "^Information System Assessment and Proposal for ICT Modification$", + "^Stresové zatížení pracovníků ve vybrané profesi$", + "^Stress load in a specific job$", + "^Sunday: Poster Sessions, Pt.*$", + "^Monday: Poster Sessions, Pt.*$", + "^Wednesday: Poster Sessions, Pt.*", + "^Tuesday: Poster Sessions, Pt.*$", + "^Analýza reklamy$", + "^Analysis of advertising$", + "^Shōgaku shūshinsho$", + "^Shōgaku sansū$", + "^Shintei joshi kokubun$", + "^Taishō joshi kokubun dokuhon$", + "^Joshi kokubun$", + "^Účetní uzávěrka a účetní závěrka v ČR$", + "(?i)^The \"?Causes\"? of Cancer$", + "^Normas para la publicación de artículos$", + "^Editor('|s)(s|') [Rr]eply$", + "^Editor(’|s)(s|’) letter$", + "^Redaktoriaus žodis$", + "^DISCUSSION ON THE PRECEDING PAPER$", + "^Kōtō shōgaku shūshinsho jidōyō$", + "^Shōgaku nihon rekishi$", + "^(Theory of the flow of action currents in isolated myelinated nerve fibers).*$", + "^Préface$", + "^Occupational [Hh]ealth [Ss]ervices.$", + "^In Memoriam Professor Toshiyuki TAKESHIMA$", + "^Účetní závěrka ve vybraném podniku.*$", + "^Financial statements in selected company$", + "^Abdominal [Aa]ortic [Aa]neurysms.*$", + "^Pseudomyxoma peritonei$", + "^Kazalo autora$", + "(?i)^uvodna riječ$", + "^Motivace jako způsob vedení lidí$", + "^Motivation as a leadership$", + "^Polyfunkční dům$", + "^Multi\\-funkcional building$", + "^Podnikatelský plán$", + "(?i)^Podnikatelský záměr$", + "(?i)^Business Plan$", + "^Oceňování nemovitostí$", + "^Marketingová komunikace$", + "^Marketing communication$", + "^Sumario Analítico$", + "^Riječ uredništva$", + "^Savjetovanja i priredbe$", + "^Índice$", + "^(Starobosanski nadpisi).*$", + "^Vzdělávání pracovníků v organizaci$", + "^Staff training in organization$", + "^(Life Histories of North American Geometridae).*$", + "^Strategická analýza podniku$", + "^Strategic Analysis of an Enterprise$", + "^Sadržaj$", + "^Upute suradnicima$", + "^Rodinný dům$", + "(?i)^Fami(l)?ly house$", + "^Upute autorima$", + "^Strategic Analysis$", + "^Finanční analýza vybraného podniku$", + "^Finanční analýza$", + "^Riječ urednika$", + "(?i)^Content(s?)$", + "(?i)^Inhalt$", + "^Jinjō shōgaku shūshinsho jidōyō$", + "(?i)^Index$", + "^Chūgaku kokubun kyōkasho$", + "^Retrato de una mujer$", + "^Retrato de un hombre$", + "^Kōtō shōgaku dokuhon$", + "^Shotōka kokugo$", + "^Shōgaku dokuhon$", + "^Jinjō shōgaku kokugo dokuhon$", + "^Shinsei kokugo dokuhon$", + "^Teikoku dokuhon$", + "^Instructions to Authors$", + "^KİTAP TAHLİLİ$", + "^PRZEGLĄD PIŚMIENNICTWA$", + "(?i)^Presentación$", + "^İçindekiler$", + "(?i)^Tabl?e of contents$", + "^(CODICE DEL BEATO DE LOS REYES FERNANDO I Y SANCHA).*$", + "^(\\[MADRID\\. BIBL\\. NAC\\. N.*KING FERDINAND I.*FROM SAN ISIDORO DE LEON\\. FACUNDUS SCRIPSIT DATED.*\\]).*", + "^Editorial( Board)?$", + "(?i)^Editorial \\(English\\)$", + "^Editörden$", + "^(Corpus Oral Dialectal \\(COD\\)\\.).*$", + "^(Kiri Karl Morgensternile).*$", + "^(\\[Eksliibris Aleksandr).*\\]$", + "^(\\[Eksliibris Aleksandr).*$", + "^(Eksliibris Aleksandr).*$", + "^(Kiri A\\. de Vignolles).*$", + "^(2 kirja Karl Morgensternile).*$", + "^(Pirita kloostri idaosa arheoloogilised).*$", + "^(Kiri tundmatule).*$", + "^(Kiri Jenaer Allgemeine Literaturzeitung toimetusele).*$", + "^(Eksliibris Nikolai Birukovile).*$", + "^(Eksliibris Nikolai Issakovile).*$", + "^(WHP Cruise Summary Information of section).*$", + "^(Measurement of the top quark\\-pair production cross section with ATLAS in pp collisions at).*$", + "^(Measurement of the spin\\-dependent structure function).*", + "(?i)^.*authors['’′]? reply\\.?$", + "(?i)^.*authors['’′]? response\\.?$" + ] + }, + "synonyms": {} + } +} \ No newline at end of file diff --git a/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/publication.example.json b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/publication.example.json new file mode 100644 index 000000000..e15cdc524 --- /dev/null +++ b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/publication.example.json @@ -0,0 +1 @@ +{"dataInfo": {"deletedbyinference": false, "provenanceaction": {"classid": "sysimport:crosswalk:repository", "classname": "sysimport:crosswalk:repository", "schemename": "dnet:provenanceActions", "schemeid": "dnet:provenanceActions"}, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "pid": [], "oaiprovenance": {"originDescription": {"metadataNamespace": "", "harvestDate": "2021-06-10T10:03:36.091Z", "baseURL": "file%3A%2F%2F%2Fvar%2Flib%2Fdnet%2Fdata%2Fsygma%2Fnew_ingestion%2Fcrossref", "datestamp": "", "altered": true, "identifier": ""}}, "relevantdate": [], "contributor": [], "id": "50|sygma_______::3bbb03e6ec8df0d219b2d2165ea1d446", "subject": [], "lastupdatetimestamp": 1628684944004, "author": [{"surname": "Pan", "fullname": "Pan, Mengwu", "pid": [], "name": "Mengwu", "rank": 1}, {"surname": "Blattner", "fullname": "Blattner, Christine", "pid": [{"dataInfo": {"deletedbyinference": false, "provenanceaction": {"classid": "sysimport:crosswalk:repository", "classname": "sysimport:crosswalk:repository", "schemename": "dnet:provenanceActions", "schemeid": "dnet:provenanceActions"}, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "qualifier": {"classid": "orcid_pending", "classname": "Open Researcher and Contributor ID", "schemename": "dnet:pid_types", "schemeid": "dnet:pid_types"}, "value": "0000-0002-7250-5273"}], "name": "Christine", "rank": 2}], "collectedfrom": [{"value": "Sygma", "key": "10|openaire____::a8db6f6b2ce4fe72e8b2314a9a93e7d9"}], "instance": [{"refereed": {"classid": "UNKNOWN", "classname": "Unknown", "schemename": "dnet:review_levels", "schemeid": "dnet:review_levels"}, "hostedby": {"value": "Cancers", "key": "10|issn__online::69ba871b903253074dcf4054e619afff"}, "license": {"dataInfo": {"deletedbyinference": false, "provenanceaction": {"classid": "sysimport:crosswalk:repository", "classname": "sysimport:crosswalk:repository", "schemename": "dnet:provenanceActions", "schemeid": "dnet:provenanceActions"}, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "value": "https://creativecommons.org/licenses/by/4.0/"}, "url": ["http://dx.doi.org/10.3390/cancers13040745"], "pid": [], "distributionlocation": "", "alternateIdentifier": [{"dataInfo": {"deletedbyinference": false, "provenanceaction": {"classid": "sysimport:crosswalk:repository", "classname": "sysimport:crosswalk:repository", "schemename": "dnet:provenanceActions", "schemeid": "dnet:provenanceActions"}, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "qualifier": {"classid": "doi", "classname": "Digital Object Identifier", "schemename": "dnet:pid_types", "schemeid": "dnet:pid_types"}, "value": "10.3390/cancers13040745"}], "collectedfrom": {"value": "Sygma", "key": "10|openaire____::a8db6f6b2ce4fe72e8b2314a9a93e7d9"}, "accessright": {"classid": "OPEN", "classname": "Open Access", "schemename": "dnet:access_modes", "schemeid": "dnet:access_modes"}, "instancetype": {"classid": "0001", "classname": "Article", "schemename": "dnet:publication_resource", "schemeid": "dnet:publication_resource"}}], "resulttype": {"classid": "publication", "classname": "publication", "schemename": "dnet:result_typologies", "schemeid": "dnet:result_typologies"}, "dateofcollection": "2021-06-10T10:03:36.091Z", "fulltext": [], "dateoftransformation": "2021-07-20T16:59:21.682Z", "description": [], "format": [], "journal": {"issnPrinted": "", "vol": "13", "dataInfo": {"deletedbyinference": false, "provenanceaction": {"classid": "sysimport:crosswalk:repository", "classname": "sysimport:crosswalk:repository", "schemename": "dnet:provenanceActions", "schemeid": "dnet:provenanceActions"}, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "name": "Cancers", "iss": "4", "sp": "745", "edition": "", "issnOnline": "2072-6694", "ep": "", "issnLinking": ""}, "coverage": [], "externalReference": [], "language": {"classid": "eng", "classname": "English", "schemename": "dnet:languages", "schemeid": "dnet:languages"}, "bestaccessright": {"classid": "OPEN", "classname": "Open Access", "schemename": "dnet:access_modes", "schemeid": "dnet:access_modes"}, "country": [], "extraInfo": [], "originalId": ["10.3390/cancers13040745", "50|sygma_______::3bbb03e6ec8df0d219b2d2165ea1d446"], "source": [], "context": [], "title": [{"dataInfo": {"deletedbyinference": false, "provenanceaction": {"classid": "sysimport:crosswalk:repository", "classname": "sysimport:crosswalk:repository", "schemename": "dnet:provenanceActions", "schemeid": "dnet:provenanceActions"}, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "qualifier": {"classid": "main title", "classname": "main title", "schemename": "dnet:dataCite_title", "schemeid": "dnet:dataCite_title"}, "value": "Regulation of p53 by E3s"}]} \ No newline at end of file diff --git a/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/publication.json b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/publication.json new file mode 100644 index 000000000..9486d6ba3 --- /dev/null +++ b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/publication.json @@ -0,0 +1,230 @@ +{ + "journal": { + "name": "", + "issnPrinted": "", + "issnOnline": "", + "issnLinking": "", + "ep": "", + "iss": "", + "sp": "", + "vol": "", + "edition": "", + "conferenceplace": "", + "conferencedate": "", + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "inferenceprovenance": "", + "provenanceaction": { + "classid": "", + "classname": "", + "schemeid": "", + "schemename": "" + } + } + }, + "author": [ + { + "fullname": "Osti Guerrazzi, Amedeo", + "name": "Amedeo", + "surname": "Osti Guerrazzi", + "rank": 1, + "pid": [], + "affiliation": [] + } + ], + "resulttype": { + "classid": "publication", + "classname": "publication", + "schemeid": "dnet:result_typologies", + "schemename": "dnet:result_typologies" + }, + "language": { + "classid": "", + "classname": "", + "schemeid": "", + "schemename": "" + }, + "country": [], + "subject": [], + "title": [ + { + "value": "Rezension: Gabriele Rigano: L\u2019interprete di Auschwitz. Arminio Wachsberger un testimone d\u2019eccezione della deportazione degli ebrei di Roma (rezensiert von Amedeo Osti Guerrazzi)", + "qualifier": { + "classid": "main title", + "classname": "main title", + "schemeid": "dnet:dataCite_title", + "schemename": "dnet:dataCite_title" + }, + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "inferenceprovenance": "", + "provenanceaction": { + "classid": "", + "classname": "", + "schemeid": "", + "schemename": "" + } + } + } + ], + "relevantdate": [], + "description": [], + "dateofacceptance": { + "value": "2018-01-01", + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "inferenceprovenance": "", + "provenanceaction": { + "classid": "", + "classname": "", + "schemeid": "", + "schemename": "" + } + } + }, + "publisher": { + "value": "BSB - Bavarian State Library", + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "inferenceprovenance": "", + "provenanceaction": { + "classid": "", + "classname": "", + "schemeid": "", + "schemename": "" + } + } + }, + "embargoenddate": { + "value": "", + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "inferenceprovenance": "", + "provenanceaction": { + "classid": "", + "classname": "", + "schemeid": "", + "schemename": "" + } + } + }, + "source": [], + "fulltext": [], + "format": [], + "contributor": [], + "resourcetype": { + "classid": "RezensionReview", + "classname": "RezensionReview", + "schemeid": "dnet:dataCite_resource", + "schemename": "dnet:dataCite_resource" + }, + "coverage": [], + "refereed": { + "value": "", + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "inferenceprovenance": "", + "provenanceaction": { + "classid": "", + "classname": "", + "schemeid": "", + "schemename": "" + } + } + }, + "context": [], + "id": "50|datacite____::e23cad995f89bf6cfe63dcc83d41cce9", + "originalId": [ + "http://dx.doi.org/10.15463/rec.2071701652", + "10.15463/rec.2071701652", + "https://doi.org/10.15463/rec.2071701652" + ], + "collectedfrom": [ + { + "key": "10|openaire____::9e3be59865b2c1c335d32dae2fe7b254", + "value": "Datacite", + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "inferenceprovenance": "", + "provenanceaction": { + "classid": "", + "classname": "", + "schemeid": "", + "schemename": "" + } + } + } + ], + "pid": [ + { + "value": "https://doi.org/10.15463/rec.2071701652", + "qualifier": { + "classid": "doi", + "classname": "doi", + "schemeid": "dnet:pid_types", + "schemename": "dnet:pid_types" + }, + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "inferenceprovenance": "", + "provenanceaction": { + "classid": "", + "classname": "", + "schemeid": "", + "schemename": "" + } + } + }, + { + "value": "10.15463/rec.2071701652", + "qualifier": { + "classid": "doi", + "classname": "doi", + "schemeid": "dnet:pid_types", + "schemename": "dnet:pid_types" + }, + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "inferenceprovenance": "", + "provenanceaction": { + "classid": "", + "classname": "", + "schemeid": "", + "schemename": "" + } + } + } + ], + "extraInfo": [], + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "inferenceprovenance": "", + "provenanceaction": { + "classid": "sysimport:crosswalk:datasetarchive", + "classname": "sysimport:crosswalk:datasetarchive", + "schemeid": "dnet:provenanceActions", + "schemename": "dnet:provenanceActions" + } + }, + "lastupdatetimestamp": 0 +} \ No newline at end of file diff --git a/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/title_blacklist.txt b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/title_blacklist.txt new file mode 100644 index 000000000..f9774db08 --- /dev/null +++ b/dhp-pace-core/src/test/resources/eu/dnetlib/pace/config/title_blacklist.txt @@ -0,0 +1,15 @@ +^(Corpus Oral Dialectal \(COD\)\.).*$ +^(Kiri Karl Morgensternile).*$ +^(\[Eksliibris Aleksandr).*\]$ +^(Kiri A\. de Vignolles).*$ +^(2 kirja Karl Morgensternile).*$ +^(Pirita kloostri idaosa arheoloogilised).*$ +^(Kiri tundmatule).*$ +^(Kiri Jenaer Allgemeine Literaturzeitung toimetusele).*$ +^(Eksliibris Nikolai Birukovile).*$ +^(Eksliibris Nikolai Issakovile).*$ +^(\[Eksliibris Aleksandr).*$ +^(WHP Cruise Summary Information of section).*$ +^(Measurement of the top quark\-pair production cross section with ATLAS in pp collisions at).*$ +^(Measurement of the spin\-dependent structure function).* +^(lorem ipsum).* \ No newline at end of file diff --git a/dhp-workflows/dhp-actionmanager/README.md b/dhp-workflows/dhp-actionmanager/README.md new file mode 100644 index 000000000..9899c4a98 --- /dev/null +++ b/dhp-workflows/dhp-actionmanager/README.md @@ -0,0 +1,72 @@ +# Action Management Framework + +This module implements the oozie workflow for the integration of pre-built contents into the OpenAIRE Graph. + +Such contents can be + +* brand new, non-existing records to be introduced as nodes of the graph +* updates (or enrichment) for records that does exist in the graph (e.g. a new subject term for a publication) +* relations among existing nodes + +The actionset contents are organised into logical containers, each of them can contain multiple versions contents and is characterised by + +* a name +* an identifier +* the paths on HDFS where each version of the contents is stored + +Each version is then characterised by + +* the creation date +* the last update date +* the indication where it is the latest one or it is an expired version, candidate for garbage collection + +## ActionSet serialization + +Each actionset version contains records compliant to the graph internal data model, i.e. subclasses of `eu.dnetlib.dhp.schema.oaf.Oaf`, +defined in the external schemas module + +``` + + eu.dnetlib.dhp + ${dhp-schemas.artifact} + ${dhp-schemas.version} + +``` + +When the actionset contains a relationship, the model class to use is `eu.dnetlib.dhp.schema.oaf.Relation`, otherwise +when the actionset contains an entity, it is a `eu.dnetlib.dhp.schema.oaf.OafEntity` or one of its subclasses +`Datasource`, `Organization`, `Project`, `Result` (or one of its subclasses `Publication`, `Dataset`, etc...). + +Then, each OpenAIRE Graph model class instance must be wrapped using the class `eu.dnetlib.dhp.schema.action.AtomicAction`, a generic +container that defines two attributes + +* `T payload` the OpenAIRE Graph class instance containing the data; +* `Class clazz` must contain the class whose instance is contained in the payload. + +Each AtomicAction can be then serialised in JSON format using `com.fasterxml.jackson.databind.ObjectMapper` from + +``` + + com.fasterxml.jackson.core + jackson-databind + ${dhp.jackson.version} + +``` + +Then, the JSON serialization must be stored as a GZip compressed sequence file (`org.apache.hadoop.mapred.SequenceFileOutputFormat`). +As such, it contains a set of tuples, a key and a value defined as `org.apache.hadoop.io.Text` where + +* the `key` must be set to the class canonical name contained in the `AtomicAction`; +* the `value` must be set to the AtomicAction JSON serialization. + +The following snippet provides an example of how create an actionset version of Relation records: + +``` + rels // JavaRDD + .map(relation -> new AtomicAction(Relation.class, relation)) + .mapToPair( + aa -> new Tuple2<>(new Text(aa.getClazz().getCanonicalName()), + new Text(OBJECT_MAPPER.writeValueAsString(aa)))) + .saveAsHadoopFile(outputPath, Text.class, Text.class, SequenceFileOutputFormat.class, GzipCodec.class); +``` + diff --git a/dhp-workflows/dhp-actionmanager/pom.xml b/dhp-workflows/dhp-actionmanager/pom.xml index 29e1fab1f..ce13502b6 100644 --- a/dhp-workflows/dhp-actionmanager/pom.xml +++ b/dhp-workflows/dhp-actionmanager/pom.xml @@ -11,12 +11,12 @@ org.apache.spark - spark-core_2.11 + spark-core_${scala.binary.version} org.apache.spark - spark-sql_2.11 + spark-sql_${scala.binary.version} diff --git a/dhp-workflows/dhp-actionmanager/src/main/java/eu/dnetlib/dhp/actionmanager/promote/PromoteActionPayloadForGraphTableJob.java b/dhp-workflows/dhp-actionmanager/src/main/java/eu/dnetlib/dhp/actionmanager/promote/PromoteActionPayloadForGraphTableJob.java index c5f252c97..7b024bea8 100644 --- a/dhp-workflows/dhp-actionmanager/src/main/java/eu/dnetlib/dhp/actionmanager/promote/PromoteActionPayloadForGraphTableJob.java +++ b/dhp-workflows/dhp-actionmanager/src/main/java/eu/dnetlib/dhp/actionmanager/promote/PromoteActionPayloadForGraphTableJob.java @@ -20,6 +20,7 @@ import org.apache.spark.sql.SparkSession; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException; @@ -33,7 +34,8 @@ import eu.dnetlib.dhp.schema.oaf.*; public class PromoteActionPayloadForGraphTableJob { private static final Logger logger = LoggerFactory.getLogger(PromoteActionPayloadForGraphTableJob.class); - private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper() + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); public static void main(String[] args) throws Exception { String jsonConfiguration = IOUtils diff --git a/dhp-workflows/dhp-actionmanager/src/test/java/eu/dnetlib/dhp/actionmanager/partition/PartitionActionSetsByPayloadTypeJobTest.java b/dhp-workflows/dhp-actionmanager/src/test/java/eu/dnetlib/dhp/actionmanager/partition/PartitionActionSetsByPayloadTypeJobTest.java index 62eec13d5..de74350f3 100644 --- a/dhp-workflows/dhp-actionmanager/src/test/java/eu/dnetlib/dhp/actionmanager/partition/PartitionActionSetsByPayloadTypeJobTest.java +++ b/dhp-workflows/dhp-actionmanager/src/test/java/eu/dnetlib/dhp/actionmanager/partition/PartitionActionSetsByPayloadTypeJobTest.java @@ -31,6 +31,7 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.jupiter.MockitoExtension; +import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import eu.dnetlib.dhp.actionmanager.ISClient; @@ -46,7 +47,8 @@ public class PartitionActionSetsByPayloadTypeJobTest { private static Configuration configuration; private static SparkSession spark; - private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper() + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); private static final StructType ATOMIC_ACTION_SCHEMA = StructType$.MODULE$ .apply( diff --git a/dhp-workflows/dhp-actionmanager/src/test/java/eu/dnetlib/dhp/actionmanager/promote/PromoteActionPayloadForGraphTableJobTest.java b/dhp-workflows/dhp-actionmanager/src/test/java/eu/dnetlib/dhp/actionmanager/promote/PromoteActionPayloadForGraphTableJobTest.java index df9202ed8..83153ae16 100644 --- a/dhp-workflows/dhp-actionmanager/src/test/java/eu/dnetlib/dhp/actionmanager/promote/PromoteActionPayloadForGraphTableJobTest.java +++ b/dhp-workflows/dhp-actionmanager/src/test/java/eu/dnetlib/dhp/actionmanager/promote/PromoteActionPayloadForGraphTableJobTest.java @@ -25,6 +25,7 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; +import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import eu.dnetlib.dhp.schema.common.ModelSupport; @@ -41,7 +42,8 @@ public class PromoteActionPayloadForGraphTableJobTest { private Path inputActionPayloadRootDir; private Path outputDir; - private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper() + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); @BeforeAll public static void beforeAll() { @@ -154,6 +156,10 @@ public class PromoteActionPayloadForGraphTableJobTest { List actualOutputRows = readGraphTableFromJobOutput(outputGraphTableDir.toString(), rowClazz) .collectAsList() .stream() + .map(s -> { + s.setLastupdatetimestamp(0L); + return s; + }) .sorted(Comparator.comparingInt(Object::hashCode)) .collect(Collectors.toList()); String expectedOutputGraphTableJsonDumpPath = resultFileLocation(strategy, rowClazz, actionPayloadClazz); @@ -166,6 +172,10 @@ public class PromoteActionPayloadForGraphTableJobTest { expectedOutputGraphTableJsonDumpFile.toString(), rowClazz) .collectAsList() .stream() + .map(s -> { + s.setLastupdatetimestamp(0L); + return s; + }) .sorted(Comparator.comparingInt(Object::hashCode)) .collect(Collectors.toList()); assertIterableEquals(expectedOutputRows, actualOutputRows); diff --git a/dhp-workflows/dhp-aggregation/pom.xml b/dhp-workflows/dhp-aggregation/pom.xml index 53d349d2a..108d25ba6 100644 --- a/dhp-workflows/dhp-aggregation/pom.xml +++ b/dhp-workflows/dhp-aggregation/pom.xml @@ -38,6 +38,8 @@ + true + ${scala.binary.version} ${scala.version} @@ -54,11 +56,11 @@ org.apache.spark - spark-core_2.11 + spark-core_${scala.binary.version} org.apache.spark - spark-sql_2.11 + spark-sql_${scala.binary.version} @@ -75,6 +77,11 @@ dom4j dom4j + + org.scala-lang.modules + scala-xml_${scala.binary.version} + ${scala-xml.version} + xml-apis diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/Constants.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/Constants.java index 1f2145d66..006d3af76 100644 --- a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/Constants.java +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/Constants.java @@ -11,6 +11,7 @@ import org.apache.spark.sql.SparkSession; import com.fasterxml.jackson.databind.ObjectMapper; import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.common.HdfsSupport; import eu.dnetlib.dhp.schema.common.ModelConstants; import eu.dnetlib.dhp.schema.oaf.StructuredProperty; import eu.dnetlib.dhp.schema.oaf.Subject; @@ -39,6 +40,7 @@ public class Constants { public static final String SDG_CLASS_NAME = "Sustainable Development Goals"; public static final String NULL = "NULL"; + public static final String NA = "N/A"; public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); @@ -60,10 +62,16 @@ public class Constants { .map((MapFunction) value -> OBJECT_MAPPER.readValue(value, clazz), Encoders.bean(clazz)); } - public static Subject getSubject(String sbj, String classid, String classname, - String diqualifierclassid) { - if (sbj == null || sbj.equals(NULL)) + public static Subject getSubject(String sbj, String classid, String classname, String diqualifierclassid, + Boolean split) { + if (sbj == null || sbj.equals(NULL) || sbj.startsWith(NA)) return null; + String trust = ""; + String subject = sbj; + if (split) { + sbj = subject.split("@@")[0]; + trust = subject.split("@@")[1]; + } Subject s = new Subject(); s.setValue(sbj); s @@ -88,9 +96,19 @@ public class Constants { UPDATE_CLASS_NAME, ModelConstants.DNET_PROVENANCE_ACTIONS, ModelConstants.DNET_PROVENANCE_ACTIONS), - "")); + trust)); return s; + } + + public static Subject getSubject(String sbj, String classid, String classname, + String diqualifierclassid) { + return getSubject(sbj, classid, classname, diqualifierclassid, false); } + + public static void removeOutputDir(SparkSession spark, String path) { + HdfsSupport.remove(path, spark.sparkContext().hadoopConfiguration()); + } + } diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/bipaffiliations/PrepareAffiliationRelations.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/bipaffiliations/PrepareAffiliationRelations.java new file mode 100644 index 000000000..1bdb06ecc --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/bipaffiliations/PrepareAffiliationRelations.java @@ -0,0 +1,178 @@ + +package eu.dnetlib.dhp.actionmanager.bipaffiliations; + +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.List; + +import org.apache.commons.io.IOUtils; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.io.compress.GzipCodec; +import org.apache.hadoop.mapred.SequenceFileOutputFormat; +import org.apache.spark.SparkConf; +import org.apache.spark.api.java.JavaPairRDD; +import org.apache.spark.api.java.function.FlatMapFunction; +import org.apache.spark.sql.*; +import org.apache.spark.sql.Dataset; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import eu.dnetlib.dhp.actionmanager.Constants; +import eu.dnetlib.dhp.actionmanager.ror.GenerateRorActionSetJob; +import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.schema.action.AtomicAction; +import eu.dnetlib.dhp.schema.common.ModelConstants; +import eu.dnetlib.dhp.schema.oaf.*; +import eu.dnetlib.dhp.schema.oaf.utils.CleaningFunctions; +import eu.dnetlib.dhp.schema.oaf.utils.IdentifierFactory; +import eu.dnetlib.dhp.schema.oaf.utils.OafMapperUtils; +import scala.Tuple2; + +/** + * Creates action sets for Crossref affiliation relations inferred by BIP! + */ +public class PrepareAffiliationRelations implements Serializable { + + private static final Logger log = LoggerFactory.getLogger(PrepareAffiliationRelations.class); + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + private static final String ID_PREFIX = "50|doi_________::"; + public static final String BIP_AFFILIATIONS_CLASSID = "result:organization:bipinference"; + public static final String BIP_AFFILIATIONS_CLASSNAME = "Affiliation relation inferred by BIP!"; + public static final String BIP_INFERENCE_PROVENANCE = "bip:affiliation:crossref"; + + public static void main(String[] args) throws Exception { + + String jsonConfiguration = IOUtils + .toString( + PrepareAffiliationRelations.class + .getResourceAsStream( + "/eu/dnetlib/dhp/actionmanager/bipaffiliations/input_actionset_parameter.json")); + + final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); + parser.parseArgument(args); + + Boolean isSparkSessionManaged = Constants.isSparkSessionManaged(parser); + log.info("isSparkSessionManaged: {}", isSparkSessionManaged); + + final String crossrefInputPath = parser.get("crossrefInputPath"); + log.info("crossrefInputPath: {}", crossrefInputPath); + + final String pubmedInputPath = parser.get("pubmedInputPath"); + log.info("pubmedInputPath: {}", pubmedInputPath); + + final String outputPath = parser.get("outputPath"); + log.info("outputPath: {}", outputPath); + + SparkConf conf = new SparkConf(); + + runWithSparkSession( + conf, + isSparkSessionManaged, + spark -> { + Constants.removeOutputDir(spark, outputPath); + + List collectedFromCrossref = OafMapperUtils + .listKeyValues(ModelConstants.CROSSREF_ID, "Crossref"); + JavaPairRDD crossrefRelations = prepareAffiliationRelations( + spark, crossrefInputPath, collectedFromCrossref); + + List collectedFromPubmed = OafMapperUtils + .listKeyValues(ModelConstants.PUBMED_CENTRAL_ID, "Pubmed"); + JavaPairRDD pubmedRelations = prepareAffiliationRelations( + spark, pubmedInputPath, collectedFromPubmed); + + crossrefRelations + .union(pubmedRelations) + .saveAsHadoopFile( + outputPath, Text.class, Text.class, SequenceFileOutputFormat.class, GzipCodec.class); + + }); + } + + private static JavaPairRDD prepareAffiliationRelations(SparkSession spark, + String inputPath, + List collectedfrom) { + + // load and parse affiliation relations from HDFS + Dataset df = spark + .read() + .schema("`DOI` STRING, `Matchings` ARRAY>") + .json(inputPath); + + // unroll nested arrays + df = df + .withColumn("matching", functions.explode(new Column("Matchings"))) + .select( + new Column("DOI").as("doi"), + new Column("matching.RORid").as("rorid"), + new Column("matching.Confidence").as("confidence")); + + // prepare action sets for affiliation relations + return df + .toJavaRDD() + .flatMap((FlatMapFunction) row -> { + + // DOI to OpenAIRE id + final String paperId = ID_PREFIX + + IdentifierFactory.md5(CleaningFunctions.normalizePidValue("doi", row.getAs("doi"))); + + // ROR id to OpenAIRE id + final String affId = GenerateRorActionSetJob.calculateOpenaireId(row.getAs("rorid")); + + Qualifier qualifier = OafMapperUtils + .qualifier( + BIP_AFFILIATIONS_CLASSID, + BIP_AFFILIATIONS_CLASSNAME, + ModelConstants.DNET_PROVENANCE_ACTIONS, + ModelConstants.DNET_PROVENANCE_ACTIONS); + + // format data info; setting `confidence` into relation's `trust` + DataInfo dataInfo = OafMapperUtils + .dataInfo( + false, + BIP_INFERENCE_PROVENANCE, + true, + false, + qualifier, + Double.toString(row.getAs("confidence"))); + + // return bi-directional relations + return getAffiliationRelationPair(paperId, affId, collectedfrom, dataInfo).iterator(); + + }) + .map(p -> new AtomicAction(Relation.class, p)) + .mapToPair( + aa -> new Tuple2<>(new Text(aa.getClazz().getCanonicalName()), + new Text(OBJECT_MAPPER.writeValueAsString(aa)))); + } + + private static List getAffiliationRelationPair(String paperId, String affId, List collectedfrom, + DataInfo dataInfo) { + return Arrays + .asList( + OafMapperUtils + .getRelation( + paperId, + affId, + ModelConstants.RESULT_ORGANIZATION, + ModelConstants.AFFILIATION, + ModelConstants.HAS_AUTHOR_INSTITUTION, + collectedfrom, + dataInfo, + null), + OafMapperUtils + .getRelation( + affId, + paperId, + ModelConstants.RESULT_ORGANIZATION, + ModelConstants.AFFILIATION, + ModelConstants.IS_AUTHOR_INSTITUTION_OF, + collectedfrom, + dataInfo, + null)); + } +} diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/bipfinder/SparkAtomicActionScoreJob.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/bipfinder/SparkAtomicActionScoreJob.java index ddf5f4adf..040c89782 100644 --- a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/bipfinder/SparkAtomicActionScoreJob.java +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/bipfinder/SparkAtomicActionScoreJob.java @@ -6,13 +6,14 @@ import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; import java.io.Serializable; import java.util.List; -import java.util.Optional; import java.util.stream.Collectors; import org.apache.commons.io.IOUtils; import org.apache.hadoop.io.Text; +import org.apache.hadoop.io.compress.GzipCodec; import org.apache.hadoop.mapred.SequenceFileOutputFormat; import org.apache.spark.SparkConf; +import org.apache.spark.api.java.JavaPairRDD; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.api.java.function.MapFunction; @@ -24,8 +25,9 @@ import org.slf4j.LoggerFactory; import com.fasterxml.jackson.databind.ObjectMapper; -import eu.dnetlib.dhp.actionmanager.bipmodel.BipDeserialize; import eu.dnetlib.dhp.actionmanager.bipmodel.BipScore; +import eu.dnetlib.dhp.actionmanager.bipmodel.score.deserializers.BipProjectModel; +import eu.dnetlib.dhp.actionmanager.bipmodel.score.deserializers.BipResultModel; import eu.dnetlib.dhp.application.ArgumentApplicationParser; import eu.dnetlib.dhp.common.HdfsSupport; import eu.dnetlib.dhp.schema.action.AtomicAction; @@ -40,7 +42,6 @@ import scala.Tuple2; */ public class SparkAtomicActionScoreJob implements Serializable { - private static final String DOI = "doi"; private static final Logger log = LoggerFactory.getLogger(SparkAtomicActionScoreJob.class); private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); @@ -56,18 +57,17 @@ public class SparkAtomicActionScoreJob implements Serializable { parser.parseArgument(args); - Boolean isSparkSessionManaged = Optional - .ofNullable(parser.get("isSparkSessionManaged")) - .map(Boolean::valueOf) - .orElse(Boolean.TRUE); - + Boolean isSparkSessionManaged = isSparkSessionManaged(parser); log.info("isSparkSessionManaged: {}", isSparkSessionManaged); - final String inputPath = parser.get("inputPath"); - log.info("inputPath {}: ", inputPath); + final String resultsInputPath = parser.get("resultsInputPath"); + log.info("resultsInputPath: {}", resultsInputPath); + + final String projectsInputPath = parser.get("projectsInputPath"); + log.info("projectsInputPath: {}", projectsInputPath); final String outputPath = parser.get("outputPath"); - log.info("outputPath {}: ", outputPath); + log.info("outputPath: {}", outputPath); SparkConf conf = new SparkConf(); @@ -76,17 +76,45 @@ public class SparkAtomicActionScoreJob implements Serializable { isSparkSessionManaged, spark -> { removeOutputDir(spark, outputPath); - prepareResults(spark, inputPath, outputPath); + + JavaPairRDD resultsRDD = prepareResults(spark, resultsInputPath, outputPath); + JavaPairRDD projectsRDD = prepareProjects(spark, projectsInputPath, outputPath); + + resultsRDD + .union(projectsRDD) + .saveAsHadoopFile( + outputPath, Text.class, Text.class, SequenceFileOutputFormat.class, GzipCodec.class); }); } - private static void prepareResults(SparkSession spark, String bipScorePath, String outputPath) { + private static JavaPairRDD prepareProjects(SparkSession spark, String inputPath, + String outputPath) { + + // read input bip project scores + Dataset projectScores = readPath(spark, inputPath, BipProjectModel.class); + + return projectScores.map((MapFunction) bipProjectScores -> { + Project project = new Project(); + project.setId(bipProjectScores.getProjectId()); + project.setMeasures(bipProjectScores.toMeasures()); + return project; + }, Encoders.bean(Project.class)) + .toJavaRDD() + .map(p -> new AtomicAction(Project.class, p)) + .mapToPair( + aa -> new Tuple2<>(new Text(aa.getClazz().getCanonicalName()), + new Text(OBJECT_MAPPER.writeValueAsString(aa)))); + + } + + private static JavaPairRDD prepareResults(SparkSession spark, String bipScorePath, + String outputPath) { final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); - JavaRDD bipDeserializeJavaRDD = sc + JavaRDD bipDeserializeJavaRDD = sc .textFile(bipScorePath) - .map(item -> OBJECT_MAPPER.readValue(item, BipDeserialize.class)); + .map(item -> OBJECT_MAPPER.readValue(item, BipResultModel.class)); Dataset bipScores = spark .createDataset(bipDeserializeJavaRDD.flatMap(entry -> entry.keySet().stream().map(key -> { @@ -96,24 +124,20 @@ public class SparkAtomicActionScoreJob implements Serializable { return bs; }).collect(Collectors.toList()).iterator()).rdd(), Encoders.bean(BipScore.class)); - bipScores + return bipScores.map((MapFunction) bs -> { + Result ret = new Result(); - .map((MapFunction) bs -> { - Result ret = new Result(); + ret.setId(bs.getId()); - ret.setId(bs.getId()); + ret.setMeasures(getMeasure(bs)); - ret.setMeasures(getMeasure(bs)); - - return ret; - }, Encoders.bean(Result.class)) + return ret; + }, Encoders.bean(Result.class)) .toJavaRDD() .map(p -> new AtomicAction(Result.class, p)) .mapToPair( aa -> new Tuple2<>(new Text(aa.getClazz().getCanonicalName()), - new Text(OBJECT_MAPPER.writeValueAsString(aa)))) - .saveAsHadoopFile(outputPath, Text.class, Text.class, SequenceFileOutputFormat.class); - + new Text(OBJECT_MAPPER.writeValueAsString(aa)))); } private static List getMeasure(BipScore value) { @@ -159,12 +183,4 @@ public class SparkAtomicActionScoreJob implements Serializable { HdfsSupport.remove(path, spark.sparkContext().hadoopConfiguration()); } - public static Dataset readPath( - SparkSession spark, String inputPath, Class clazz) { - return spark - .read() - .textFile(inputPath) - .map((MapFunction) value -> OBJECT_MAPPER.readValue(value, clazz), Encoders.bean(clazz)); - } - } diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/bipmodel/score/deserializers/BipProjectModel.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/bipmodel/score/deserializers/BipProjectModel.java new file mode 100644 index 000000000..680e12504 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/bipmodel/score/deserializers/BipProjectModel.java @@ -0,0 +1,74 @@ + +package eu.dnetlib.dhp.actionmanager.bipmodel.score.deserializers; + +import static eu.dnetlib.dhp.actionmanager.Constants.*; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import com.opencsv.bean.CsvBindByPosition; + +import eu.dnetlib.dhp.schema.common.ModelConstants; +import eu.dnetlib.dhp.schema.oaf.KeyValue; +import eu.dnetlib.dhp.schema.oaf.Measure; +import eu.dnetlib.dhp.schema.oaf.utils.OafMapperUtils; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@NoArgsConstructor +@AllArgsConstructor +@Getter +@Setter +public class BipProjectModel { + String projectId; + + String numOfInfluentialResults; + + String numOfPopularResults; + + String totalImpulse; + + String totalCitationCount; + + // each project bip measure has exactly one value, hence one key-value pair + private Measure createMeasure(String measureId, String measureValue) { + + KeyValue kv = new KeyValue(); + kv.setKey("score"); + kv.setValue(measureValue); + kv + .setDataInfo( + OafMapperUtils + .dataInfo( + false, + UPDATE_DATA_INFO_TYPE, + true, + false, + OafMapperUtils + .qualifier( + UPDATE_MEASURE_BIP_CLASS_ID, + UPDATE_CLASS_NAME, + ModelConstants.DNET_PROVENANCE_ACTIONS, + ModelConstants.DNET_PROVENANCE_ACTIONS), + "")); + + Measure measure = new Measure(); + measure.setId(measureId); + measure.setUnit(Collections.singletonList(kv)); + return measure; + } + + public List toMeasures() { + return Arrays + .asList( + createMeasure("numOfInfluentialResults", numOfInfluentialResults), + createMeasure("numOfPopularResults", numOfPopularResults), + createMeasure("totalImpulse", totalImpulse), + createMeasure("totalCitationCount", totalCitationCount)); + } + +} diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/bipmodel/BipDeserialize.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/bipmodel/score/deserializers/BipResultModel.java similarity index 65% rename from dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/bipmodel/BipDeserialize.java rename to dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/bipmodel/score/deserializers/BipResultModel.java index a70bca618..f992dc59f 100644 --- a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/bipmodel/BipDeserialize.java +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/bipmodel/score/deserializers/BipResultModel.java @@ -1,19 +1,21 @@ -package eu.dnetlib.dhp.actionmanager.bipmodel; +package eu.dnetlib.dhp.actionmanager.bipmodel.score.deserializers; import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import eu.dnetlib.dhp.actionmanager.bipmodel.Score; + /** * Class that maps the model of the bipFinder! input data. * Only needed for deserialization purposes */ -public class BipDeserialize extends HashMap> implements Serializable { +public class BipResultModel extends HashMap> implements Serializable { - public BipDeserialize() { + public BipResultModel() { super(); } diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/GetFOSSparkJob.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/GetFOSSparkJob.java index 0cc2f93df..abea6acd7 100644 --- a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/GetFOSSparkJob.java +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/GetFOSSparkJob.java @@ -75,9 +75,12 @@ public class GetFOSSparkJob implements Serializable { fosData.map((MapFunction) r -> { FOSDataModel fosDataModel = new FOSDataModel(); fosDataModel.setDoi(r.getString(0).toLowerCase()); - fosDataModel.setLevel1(r.getString(1)); - fosDataModel.setLevel2(r.getString(2)); - fosDataModel.setLevel3(r.getString(3)); + fosDataModel.setLevel1(r.getString(2)); + fosDataModel.setLevel2(r.getString(3)); + fosDataModel.setLevel3(r.getString(4)); + fosDataModel.setLevel4(r.getString(5)); + fosDataModel.setScoreL3(String.valueOf(r.getDouble(6))); + fosDataModel.setScoreL4(String.valueOf(r.getDouble(7))); return fosDataModel; }, Encoders.bean(FOSDataModel.class)) .write() diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/PrepareBipFinder.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/PrepareBipFinder.java deleted file mode 100644 index 80573c71a..000000000 --- a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/PrepareBipFinder.java +++ /dev/null @@ -1,178 +0,0 @@ - -package eu.dnetlib.dhp.actionmanager.createunresolvedentities; - -import static eu.dnetlib.dhp.actionmanager.Constants.*; -import static eu.dnetlib.dhp.actionmanager.Constants.UPDATE_CLASS_NAME; -import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; - -import java.io.Serializable; -import java.util.Arrays; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; - -import org.apache.commons.io.IOUtils; -import org.apache.spark.SparkConf; -import org.apache.spark.api.java.JavaRDD; -import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.api.java.function.MapFunction; -import org.apache.spark.sql.Encoders; -import org.apache.spark.sql.SaveMode; -import org.apache.spark.sql.SparkSession; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.databind.ObjectMapper; - -import eu.dnetlib.dhp.actionmanager.bipmodel.BipDeserialize; -import eu.dnetlib.dhp.actionmanager.bipmodel.BipScore; -import eu.dnetlib.dhp.application.ArgumentApplicationParser; -import eu.dnetlib.dhp.common.HdfsSupport; -import eu.dnetlib.dhp.schema.common.ModelConstants; -import eu.dnetlib.dhp.schema.oaf.Instance; -import eu.dnetlib.dhp.schema.oaf.KeyValue; -import eu.dnetlib.dhp.schema.oaf.Measure; -import eu.dnetlib.dhp.schema.oaf.Result; -import eu.dnetlib.dhp.schema.oaf.utils.CleaningFunctions; -import eu.dnetlib.dhp.schema.oaf.utils.OafMapperUtils; -import eu.dnetlib.dhp.utils.DHPUtils; - -public class PrepareBipFinder implements Serializable { - - private static final Logger log = LoggerFactory.getLogger(PrepareBipFinder.class); - private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); - - public static void main(String[] args) throws Exception { - - String jsonConfiguration = IOUtils - .toString( - PrepareBipFinder.class - .getResourceAsStream( - "/eu/dnetlib/dhp/actionmanager/createunresolvedentities/prepare_parameters.json")); - - final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); - - parser.parseArgument(args); - - Boolean isSparkSessionManaged = Optional - .ofNullable(parser.get("isSparkSessionManaged")) - .map(Boolean::valueOf) - .orElse(Boolean.TRUE); - - log.info("isSparkSessionManaged: {}", isSparkSessionManaged); - - final String sourcePath = parser.get("sourcePath"); - log.info("sourcePath {}: ", sourcePath); - - final String outputPath = parser.get("outputPath"); - log.info("outputPath {}: ", outputPath); - - SparkConf conf = new SparkConf(); - - runWithSparkSession( - conf, - isSparkSessionManaged, - spark -> { - HdfsSupport.remove(outputPath, spark.sparkContext().hadoopConfiguration()); - prepareResults(spark, sourcePath, outputPath); - }); - } - - private static void prepareResults(SparkSession spark, String inputPath, String outputPath) { - - final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); - - JavaRDD bipDeserializeJavaRDD = sc - .textFile(inputPath) - .map(item -> OBJECT_MAPPER.readValue(item, BipDeserialize.class)); - - spark - .createDataset(bipDeserializeJavaRDD.flatMap(entry -> entry.keySet().stream().map(key -> { - BipScore bs = new BipScore(); - bs.setId(key); - bs.setScoreList(entry.get(key)); - - return bs; - }).collect(Collectors.toList()).iterator()).rdd(), Encoders.bean(BipScore.class)) - .map((MapFunction) v -> { - Result r = new Result(); - final String cleanedPid = CleaningFunctions.normalizePidValue(DOI, v.getId()); - - r.setId(DHPUtils.generateUnresolvedIdentifier(v.getId(), DOI)); - Instance inst = new Instance(); - inst.setMeasures(getMeasure(v)); - - inst - .setPid( - Arrays - .asList( - OafMapperUtils - .structuredProperty( - cleanedPid, - OafMapperUtils - .qualifier( - DOI, DOI_CLASSNAME, - ModelConstants.DNET_PID_TYPES, - ModelConstants.DNET_PID_TYPES), - null))); - r.setInstance(Arrays.asList(inst)); - r - .setDataInfo( - OafMapperUtils - .dataInfo( - false, null, true, - false, - OafMapperUtils - .qualifier( - ModelConstants.PROVENANCE_ENRICH, - null, - ModelConstants.DNET_PROVENANCE_ACTIONS, - ModelConstants.DNET_PROVENANCE_ACTIONS), - null)); - return r; - }, Encoders.bean(Result.class)) - .write() - .mode(SaveMode.Overwrite) - .option("compression", "gzip") - .json(outputPath + "/bip"); - } - - private static List getMeasure(BipScore value) { - return value - .getScoreList() - .stream() - .map(score -> { - Measure m = new Measure(); - m.setId(score.getId()); - m - .setUnit( - score - .getUnit() - .stream() - .map(unit -> { - KeyValue kv = new KeyValue(); - kv.setValue(unit.getValue()); - kv.setKey(unit.getKey()); - kv - .setDataInfo( - OafMapperUtils - .dataInfo( - false, - UPDATE_DATA_INFO_TYPE, - true, - false, - OafMapperUtils - .qualifier( - UPDATE_MEASURE_BIP_CLASS_ID, - UPDATE_CLASS_NAME, - ModelConstants.DNET_PROVENANCE_ACTIONS, - ModelConstants.DNET_PROVENANCE_ACTIONS), - "")); - return kv; - }) - .collect(Collectors.toList())); - return m; - }) - .collect(Collectors.toList()); - } -} diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/PrepareFOSSparkJob.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/PrepareFOSSparkJob.java index 4d2d25215..b1ffe7f37 100644 --- a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/PrepareFOSSparkJob.java +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/PrepareFOSSparkJob.java @@ -78,12 +78,20 @@ public class PrepareFOSSparkJob implements Serializable { HashSet level1 = new HashSet<>(); HashSet level2 = new HashSet<>(); HashSet level3 = new HashSet<>(); - addLevels(level1, level2, level3, first); - it.forEachRemaining(v -> addLevels(level1, level2, level3, v)); + HashSet level4 = new HashSet<>(); + addLevels(level1, level2, level3, level4, first); + it.forEachRemaining(v -> addLevels(level1, level2, level3, level4, v)); List sbjs = new ArrayList<>(); - level1.forEach(l -> sbjs.add(getSubject(l, FOS_CLASS_ID, FOS_CLASS_NAME, UPDATE_SUBJECT_FOS_CLASS_ID))); - level2.forEach(l -> sbjs.add(getSubject(l, FOS_CLASS_ID, FOS_CLASS_NAME, UPDATE_SUBJECT_FOS_CLASS_ID))); - level3.forEach(l -> sbjs.add(getSubject(l, FOS_CLASS_ID, FOS_CLASS_NAME, UPDATE_SUBJECT_FOS_CLASS_ID))); + level1 + .forEach(l -> add(sbjs, getSubject(l, FOS_CLASS_ID, FOS_CLASS_NAME, UPDATE_SUBJECT_FOS_CLASS_ID))); + level2 + .forEach(l -> add(sbjs, getSubject(l, FOS_CLASS_ID, FOS_CLASS_NAME, UPDATE_SUBJECT_FOS_CLASS_ID))); + level3 + .forEach( + l -> add(sbjs, getSubject(l, FOS_CLASS_ID, FOS_CLASS_NAME, UPDATE_SUBJECT_FOS_CLASS_ID, true))); + level4 + .forEach( + l -> add(sbjs, getSubject(l, FOS_CLASS_ID, FOS_CLASS_NAME, UPDATE_SUBJECT_FOS_CLASS_ID, true))); r.setSubject(sbjs); r .setDataInfo( @@ -106,11 +114,29 @@ public class PrepareFOSSparkJob implements Serializable { .json(outputPath + "/fos"); } + private static void add(List sbsjs, Subject sbj) { + if (sbj != null) + sbsjs.add(sbj); + } + private static void addLevels(HashSet level1, HashSet level2, HashSet level3, + HashSet level4, FOSDataModel first) { level1.add(first.getLevel1()); level2.add(first.getLevel2()); - level3.add(first.getLevel3()); + if (Optional.ofNullable(first.getLevel3()).isPresent() && + !first.getLevel3().equalsIgnoreCase(NA) && !first.getLevel3().equalsIgnoreCase(NULL) + && first.getLevel3() != null) + level3.add(first.getLevel3() + "@@" + first.getScoreL3()); + else + level3.add(NULL); + if (Optional.ofNullable(first.getLevel4()).isPresent() && + !first.getLevel4().equalsIgnoreCase(NA) && + !first.getLevel4().equalsIgnoreCase(NULL) && + first.getLevel4() != null) + level4.add(first.getLevel4() + "@@" + first.getScoreL4()); + else + level4.add(NULL); } } diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/SparkSaveUnresolved.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/SparkSaveUnresolved.java index 3b9775094..93bbfcc88 100644 --- a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/SparkSaveUnresolved.java +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/SparkSaveUnresolved.java @@ -69,9 +69,9 @@ public class SparkSaveUnresolved implements Serializable { .mapGroups((MapGroupsFunction) (k, it) -> { Result ret = it.next(); it.forEachRemaining(r -> { - if (r.getInstance() != null) { - ret.setInstance(r.getInstance()); - } +// if (r.getInstance() != null) { +// ret.setInstance(r.getInstance()); +// } if (r.getSubject() != null) { if (ret.getSubject() != null) ret.getSubject().addAll(r.getSubject()); diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/model/FOSDataModel.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/model/FOSDataModel.java index e98ba74a1..a82d7bfd6 100644 --- a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/model/FOSDataModel.java +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/model/FOSDataModel.java @@ -11,21 +11,43 @@ public class FOSDataModel implements Serializable { private String doi; @CsvBindByPosition(position = 1) +// @CsvBindByName(column = "doi") + private String oaid; + @CsvBindByPosition(position = 2) // @CsvBindByName(column = "level1") private String level1; - @CsvBindByPosition(position = 2) + @CsvBindByPosition(position = 3) // @CsvBindByName(column = "level2") private String level2; - @CsvBindByPosition(position = 3) + @CsvBindByPosition(position = 4) // @CsvBindByName(column = "level3") private String level3; + @CsvBindByPosition(position = 5) +// @CsvBindByName(column = "level3") + private String level4; + @CsvBindByPosition(position = 6) + private String scoreL3; + @CsvBindByPosition(position = 7) + private String scoreL4; + public FOSDataModel() { } + public FOSDataModel(String doi, String level1, String level2, String level3, String level4, String l3score, + String l4score) { + this.doi = doi; + this.level1 = level1; + this.level2 = level2; + this.level3 = level3; + this.level4 = level4; + this.scoreL3 = l3score; + this.scoreL4 = l4score; + } + public FOSDataModel(String doi, String level1, String level2, String level3) { this.doi = doi; this.level1 = level1; @@ -33,8 +55,41 @@ public class FOSDataModel implements Serializable { this.level3 = level3; } - public static FOSDataModel newInstance(String d, String level1, String level2, String level3) { - return new FOSDataModel(d, level1, level2, level3); + public static FOSDataModel newInstance(String d, String level1, String level2, String level3, String level4, + String scorel3, String scorel4) { + return new FOSDataModel(d, level1, level2, level3, level4, scorel3, scorel4); + } + + public String getOaid() { + return oaid; + } + + public void setOaid(String oaid) { + this.oaid = oaid; + } + + public String getLevel4() { + return level4; + } + + public void setLevel4(String level4) { + this.level4 = level4; + } + + public String getScoreL3() { + return scoreL3; + } + + public void setScoreL3(String scoreL3) { + this.scoreL3 = scoreL3; + } + + public String getScoreL4() { + return scoreL4; + } + + public void setScoreL4(String scoreL4) { + this.scoreL4 = scoreL4; } public String getDoi() { diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/opencitations/CreateActionSetSparkJob.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/opencitations/CreateActionSetSparkJob.java index 4c658e52f..b707fdcd3 100644 --- a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/opencitations/CreateActionSetSparkJob.java +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/opencitations/CreateActionSetSparkJob.java @@ -10,8 +10,10 @@ import java.util.*; import org.apache.commons.cli.ParseException; import org.apache.commons.io.IOUtils; import org.apache.hadoop.io.Text; +import org.apache.hadoop.io.compress.GzipCodec; import org.apache.hadoop.mapred.SequenceFileOutputFormat; import org.apache.spark.SparkConf; +import org.apache.spark.api.java.JavaPairRDD; import org.apache.spark.api.java.function.FilterFunction; import org.apache.spark.api.java.function.FlatMapFunction; import org.apache.spark.api.java.function.MapFunction; @@ -26,19 +28,29 @@ import eu.dnetlib.dhp.actionmanager.opencitations.model.COCI; import eu.dnetlib.dhp.application.ArgumentApplicationParser; import eu.dnetlib.dhp.schema.action.AtomicAction; import eu.dnetlib.dhp.schema.common.ModelConstants; -import eu.dnetlib.dhp.schema.common.ModelSupport; import eu.dnetlib.dhp.schema.oaf.*; -import eu.dnetlib.dhp.schema.oaf.utils.CleaningFunctions; -import eu.dnetlib.dhp.schema.oaf.utils.IdentifierFactory; +import eu.dnetlib.dhp.schema.oaf.utils.*; +import eu.dnetlib.dhp.utils.DHPUtils; import scala.Tuple2; public class CreateActionSetSparkJob implements Serializable { public static final String OPENCITATIONS_CLASSID = "sysimport:crosswalk:opencitations"; public static final String OPENCITATIONS_CLASSNAME = "Imported from OpenCitations"; - private static final String ID_PREFIX = "50|doi_________::"; + + // DOI-to-DOI citations + public static final String COCI = "COCI"; + + // PMID-to-PMID citations + public static final String POCI = "POCI"; + + private static final String DOI_PREFIX = "50|doi_________::"; + + private static final String PMID_PREFIX = "50|pmid________::"; + private static final String TRUST = "0.91"; private static final Logger log = LoggerFactory.getLogger(CreateActionSetSparkJob.class); + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); public static void main(final String[] args) throws IOException, ParseException { @@ -62,7 +74,7 @@ public class CreateActionSetSparkJob implements Serializable { log.info("isSparkSessionManaged: {}", isSparkSessionManaged); final String inputPath = parser.get("inputPath"); - log.info("inputPath {}", inputPath.toString()); + log.info("inputPath {}", inputPath); final String outputPath = parser.get("outputPath"); log.info("outputPath {}", outputPath); @@ -76,41 +88,68 @@ public class CreateActionSetSparkJob implements Serializable { runWithSparkSession( conf, isSparkSessionManaged, - spark -> { - extractContent(spark, inputPath, outputPath, shouldDuplicateRels); - }); + spark -> extractContent(spark, inputPath, outputPath, shouldDuplicateRels)); } private static void extractContent(SparkSession spark, String inputPath, String outputPath, boolean shouldDuplicateRels) { - spark + + getTextTextJavaPairRDD(spark, inputPath, shouldDuplicateRels, COCI) + .union(getTextTextJavaPairRDD(spark, inputPath, shouldDuplicateRels, POCI)) + .saveAsHadoopFile(outputPath, Text.class, Text.class, SequenceFileOutputFormat.class, GzipCodec.class); + } + + private static JavaPairRDD getTextTextJavaPairRDD(SparkSession spark, String inputPath, + boolean shouldDuplicateRels, String prefix) { + return spark .read() - .textFile(inputPath + "/*") + .textFile(inputPath + "/" + prefix + "/" + prefix + "_JSON/*") .map( (MapFunction) value -> OBJECT_MAPPER.readValue(value, COCI.class), Encoders.bean(COCI.class)) .flatMap( - (FlatMapFunction) value -> createRelation(value, shouldDuplicateRels).iterator(), + (FlatMapFunction) value -> createRelation( + value, shouldDuplicateRels, prefix) + .iterator(), Encoders.bean(Relation.class)) - .filter((FilterFunction) value -> value != null) + .filter((FilterFunction) Objects::nonNull) .toJavaRDD() .map(p -> new AtomicAction(p.getClass(), p)) .mapToPair( aa -> new Tuple2<>(new Text(aa.getClazz().getCanonicalName()), - new Text(OBJECT_MAPPER.writeValueAsString(aa)))) - .saveAsHadoopFile(outputPath, Text.class, Text.class, SequenceFileOutputFormat.class); - + new Text(OBJECT_MAPPER.writeValueAsString(aa)))); } - private static List createRelation(COCI value, boolean duplicate) { + private static List createRelation(COCI value, boolean duplicate, String p) { List relationList = new ArrayList<>(); + String prefix; + String citing; + String cited; - String citing = ID_PREFIX - + IdentifierFactory.md5(CleaningFunctions.normalizePidValue("doi", value.getCiting())); - final String cited = ID_PREFIX - + IdentifierFactory.md5(CleaningFunctions.normalizePidValue("doi", value.getCited())); + switch (p) { + case COCI: + prefix = DOI_PREFIX; + citing = prefix + + IdentifierFactory + .md5(PidCleaner.normalizePidValue(PidType.doi.toString(), value.getCiting())); + cited = prefix + + IdentifierFactory + .md5(PidCleaner.normalizePidValue(PidType.doi.toString(), value.getCited())); + break; + case POCI: + prefix = PMID_PREFIX; + citing = prefix + + IdentifierFactory + .md5(PidCleaner.normalizePidValue(PidType.pmid.toString(), value.getCiting())); + cited = prefix + + IdentifierFactory + .md5(PidCleaner.normalizePidValue(PidType.pmid.toString(), value.getCited())); + break; + default: + throw new IllegalStateException("Invalid prefix: " + p); + } if (!citing.equals(cited)) { relationList @@ -120,7 +159,7 @@ public class CreateActionSetSparkJob implements Serializable { cited, ModelConstants.CITES)); if (duplicate && value.getCiting().endsWith(".refs")) { - citing = ID_PREFIX + IdentifierFactory + citing = prefix + IdentifierFactory .md5( CleaningFunctions .normalizePidValue( @@ -132,59 +171,30 @@ public class CreateActionSetSparkJob implements Serializable { return relationList; } - private static Collection getRelations(String citing, String cited) { - - return Arrays - .asList( - getRelation(citing, cited, ModelConstants.CITES), - getRelation(cited, citing, ModelConstants.IS_CITED_BY)); - } - public static Relation getRelation( String source, String target, - String relclass) { - Relation r = new Relation(); - r.setCollectedfrom(getCollectedFrom()); - r.setSource(source); - r.setTarget(target); - r.setRelClass(relclass); - r.setRelType(ModelConstants.RESULT_RESULT); - r.setSubRelType(ModelConstants.CITATION); - r - .setDataInfo( - getDataInfo()); - return r; - } + String relClass) { - public static List getCollectedFrom() { - KeyValue kv = new KeyValue(); - kv.setKey(ModelConstants.OPENOCITATIONS_ID); - kv.setValue(ModelConstants.OPENOCITATIONS_NAME); - - return Arrays.asList(kv); - } - - public static DataInfo getDataInfo() { - DataInfo di = new DataInfo(); - di.setInferred(false); - di.setDeletedbyinference(false); - di.setTrust(TRUST); - - di - .setProvenanceaction( - getQualifier(OPENCITATIONS_CLASSID, OPENCITATIONS_CLASSNAME, ModelConstants.DNET_PROVENANCE_ACTIONS)); - return di; - } - - public static Qualifier getQualifier(String class_id, String class_name, - String qualifierSchema) { - Qualifier pa = new Qualifier(); - pa.setClassid(class_id); - pa.setClassname(class_name); - pa.setSchemeid(qualifierSchema); - pa.setSchemename(qualifierSchema); - return pa; + return OafMapperUtils + .getRelation( + source, + target, + ModelConstants.RESULT_RESULT, + ModelConstants.CITATION, + relClass, + Arrays + .asList( + OafMapperUtils.keyValue(ModelConstants.OPENOCITATIONS_ID, ModelConstants.OPENOCITATIONS_NAME)), + OafMapperUtils + .dataInfo( + false, null, false, false, + OafMapperUtils + .qualifier( + OPENCITATIONS_CLASSID, OPENCITATIONS_CLASSNAME, + ModelConstants.DNET_PROVENANCE_ACTIONS, ModelConstants.DNET_PROVENANCE_ACTIONS), + TRUST), + null); } } diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/opencitations/GetOpenCitationsRefs.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/opencitations/GetOpenCitationsRefs.java index 3530c9980..600cf7df1 100644 --- a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/opencitations/GetOpenCitationsRefs.java +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/opencitations/GetOpenCitationsRefs.java @@ -3,6 +3,7 @@ package eu.dnetlib.dhp.actionmanager.opencitations; import java.io.*; import java.io.Serializable; +import java.util.Arrays; import java.util.Objects; import java.util.zip.GZIPOutputStream; import java.util.zip.ZipEntry; @@ -37,7 +38,7 @@ public class GetOpenCitationsRefs implements Serializable { parser.parseArgument(args); final String[] inputFile = parser.get("inputFile").split(";"); - log.info("inputFile {}", inputFile.toString()); + log.info("inputFile {}", Arrays.asList(inputFile)); final String workingPath = parser.get("workingPath"); log.info("workingPath {}", workingPath); @@ -45,6 +46,9 @@ public class GetOpenCitationsRefs implements Serializable { final String hdfsNameNode = parser.get("hdfsNameNode"); log.info("hdfsNameNode {}", hdfsNameNode); + final String prefix = parser.get("prefix"); + log.info("prefix {}", prefix); + Configuration conf = new Configuration(); conf.set("fs.defaultFS", hdfsNameNode); @@ -53,30 +57,31 @@ public class GetOpenCitationsRefs implements Serializable { GetOpenCitationsRefs ocr = new GetOpenCitationsRefs(); for (String file : inputFile) { - ocr.doExtract(workingPath + "/Original/" + file, workingPath, fileSystem); + ocr.doExtract(workingPath + "/Original/" + file, workingPath, fileSystem, prefix); } } - private void doExtract(String inputFile, String workingPath, FileSystem fileSystem) + private void doExtract(String inputFile, String workingPath, FileSystem fileSystem, String prefix) throws IOException { final Path path = new Path(inputFile); FSDataInputStream oc_zip = fileSystem.open(path); - int count = 1; + // int count = 1; try (ZipInputStream zis = new ZipInputStream(oc_zip)) { ZipEntry entry = null; while ((entry = zis.getNextEntry()) != null) { if (!entry.isDirectory()) { String fileName = entry.getName(); - fileName = fileName.substring(0, fileName.indexOf("T")) + "_" + count; - count++; + // fileName = fileName.substring(0, fileName.indexOf("T")) + "_" + count; + fileName = fileName.substring(0, fileName.lastIndexOf(".")); + // count++; try ( FSDataOutputStream out = fileSystem - .create(new Path(workingPath + "/COCI/" + fileName + ".gz")); + .create(new Path(workingPath + "/" + prefix + "/" + fileName + ".gz")); GZIPOutputStream gzipOs = new GZIPOutputStream(new BufferedOutputStream(out))) { IOUtils.copy(zis, gzipOs); diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/opencitations/ReadCOCI.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/opencitations/ReadCOCI.java index 4293ca187..b9c24df3b 100644 --- a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/opencitations/ReadCOCI.java +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/opencitations/ReadCOCI.java @@ -7,6 +7,7 @@ import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; import java.io.IOException; import java.io.Serializable; +import java.util.Arrays; import java.util.Optional; import org.apache.commons.io.IOUtils; @@ -42,13 +43,16 @@ public class ReadCOCI implements Serializable { log.info("outputPath: {}", outputPath); final String[] inputFile = parser.get("inputFile").split(";"); - log.info("inputFile {}", inputFile.toString()); + log.info("inputFile {}", Arrays.asList(inputFile)); Boolean isSparkSessionManaged = isSparkSessionManaged(parser); log.info("isSparkSessionManaged: {}", isSparkSessionManaged); final String workingPath = parser.get("workingPath"); log.info("workingPath {}", workingPath); + final String format = parser.get("format"); + log.info("format {}", format); + SparkConf sconf = new SparkConf(); final String delimiter = Optional @@ -64,16 +68,17 @@ public class ReadCOCI implements Serializable { workingPath, inputFile, outputPath, - delimiter); + delimiter, + format); }); } private static void doRead(SparkSession spark, String workingPath, String[] inputFiles, String outputPath, - String delimiter) throws IOException { + String delimiter, String format) { for (String inputFile : inputFiles) { - String p_string = workingPath + "/" + inputFile + ".gz"; + String pString = workingPath + "/" + inputFile + ".gz"; Dataset cociData = spark .read() @@ -82,14 +87,20 @@ public class ReadCOCI implements Serializable { .option("inferSchema", "true") .option("header", "true") .option("quotes", "\"") - .load(p_string) + .load(pString) .repartition(100); cociData.map((MapFunction) row -> { COCI coci = new COCI(); + if (format.equals("COCI")) { + coci.setCiting(row.getString(1)); + coci.setCited(row.getString(2)); + } else { + coci.setCiting(String.valueOf(row.getInt(1))); + coci.setCited(String.valueOf(row.getInt(2))); + } coci.setOci(row.getString(0)); - coci.setCiting(row.getString(1)); - coci.setCited(row.getString(2)); + return coci; }, Encoders.bean(COCI.class)) .write() diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/utils/EXCELParser.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/utils/EXCELParser.java index 139f7e74a..e507f8c56 100644 --- a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/utils/EXCELParser.java +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/utils/EXCELParser.java @@ -7,8 +7,8 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.reflect.FieldUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.reflect.FieldUtils; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.ss.usermodel.Cell; diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/utils/ReadProjects.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/utils/ReadProjects.java index 904837e3d..f652b3dba 100644 --- a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/utils/ReadProjects.java +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/utils/ReadProjects.java @@ -1,12 +1,13 @@ package eu.dnetlib.dhp.actionmanager.project.utils; -import java.io.*; +import java.io.BufferedWriter; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.Serializable; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; -import java.util.zip.ZipEntry; -import java.util.zip.ZipInputStream; import org.apache.commons.io.IOUtils; import org.apache.hadoop.conf.Configuration; @@ -66,7 +67,7 @@ public class ReadProjects implements Serializable { FSDataInputStream inputStream = fs.open(hdfsreadpath); - ArrayList projects = OBJECT_MAPPER + List projects = OBJECT_MAPPER .readValue( IOUtils.toString(inputStream, "UTF-8"), new TypeReference>() { diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/utils/ReadTopics.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/utils/ReadTopics.java index e0e34be31..3b0603c6b 100644 --- a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/utils/ReadTopics.java +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/utils/ReadTopics.java @@ -6,7 +6,6 @@ import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Serializable; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; import java.util.List; import org.apache.commons.io.IOUtils; @@ -23,7 +22,6 @@ import com.fasterxml.jackson.databind.ObjectMapper; import eu.dnetlib.dhp.actionmanager.project.PrepareProjects; import eu.dnetlib.dhp.actionmanager.project.utils.model.JsonTopic; -import eu.dnetlib.dhp.actionmanager.project.utils.model.Project; import eu.dnetlib.dhp.application.ArgumentApplicationParser; /** @@ -68,7 +66,7 @@ public class ReadTopics implements Serializable { FSDataInputStream inputStream = fs.open(hdfsreadpath); - ArrayList topics = OBJECT_MAPPER + List topics = OBJECT_MAPPER .readValue( IOUtils.toString(inputStream, "UTF-8"), new TypeReference>() { diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/ror/GenerateRorActionSetJob.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/ror/GenerateRorActionSetJob.java index 1be2a96fd..5f3493d56 100644 --- a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/ror/GenerateRorActionSetJob.java +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/ror/GenerateRorActionSetJob.java @@ -168,7 +168,7 @@ public class GenerateRorActionSetJob { } - private static String calculateOpenaireId(final String rorId) { + public static String calculateOpenaireId(final String rorId) { return String.format("20|%s::%s", Constants.ROR_NS_PREFIX, DHPUtils.md5(rorId)); } diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/DownloadORCIDDumpApplication.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/DownloadORCIDDumpApplication.java new file mode 100644 index 000000000..69661bbf6 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/DownloadORCIDDumpApplication.java @@ -0,0 +1,102 @@ + +package eu.dnetlib.dhp.collection.orcid; + +import static eu.dnetlib.dhp.utils.DHPUtils.getHadoopConfiguration; + +import java.io.InputStream; +import java.net.URL; +import java.net.URLConnection; +import java.util.Objects; + +import org.apache.commons.io.IOUtils; +import org.apache.hadoop.fs.FSDataOutputStream; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.Path; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; + +public class DownloadORCIDDumpApplication { + private static final Logger log = LoggerFactory.getLogger(DownloadORCIDDumpApplication.class); + + private final FileSystem fileSystem; + + public DownloadORCIDDumpApplication(FileSystem fileSystem) { + this.fileSystem = fileSystem; + } + + public static void main(String[] args) throws Exception { + final ArgumentApplicationParser argumentParser = new ArgumentApplicationParser( + IOUtils + .toString( + Objects + .requireNonNull( + DownloadORCIDDumpApplication.class + .getResourceAsStream( + "/eu/dnetlib/dhp/collection/orcid/download_orcid_parameter.json")))); + argumentParser.parseArgument(args); + + final String hdfsuri = argumentParser.get("namenode"); + log.info("hdfsURI is {}", hdfsuri); + + final String targetPath = argumentParser.get("targetPath"); + log.info("targetPath is {}", targetPath); + + final String apiURL = argumentParser.get("apiURL"); + log.info("apiURL is {}", apiURL); + + final FileSystem fileSystem = FileSystem.get(getHadoopConfiguration(hdfsuri)); + + new DownloadORCIDDumpApplication(fileSystem).run(targetPath, apiURL); + + } + + private void downloadItem(final String name, final String itemURL, final String basePath) { + try { + final Path hdfsWritePath = new Path(String.format("%s/%s", basePath, name)); + final FSDataOutputStream fsDataOutputStream = fileSystem.create(hdfsWritePath, true); + final HttpGet request = new HttpGet(itemURL); + final int timeout = 60; // seconds + final RequestConfig config = RequestConfig + .custom() + .setConnectTimeout(timeout * 1000) + .setConnectionRequestTimeout(timeout * 1000) + .setSocketTimeout(timeout * 1000) + .build(); + log.info("Downloading url {} into {}", itemURL, hdfsWritePath.getName()); + try (CloseableHttpClient client = HttpClientBuilder.create().setDefaultRequestConfig(config).build(); + CloseableHttpResponse response = client.execute(request)) { + int responseCode = response.getStatusLine().getStatusCode(); + log.info("Response code is {}", responseCode); + if (responseCode >= 200 && responseCode < 400) { + IOUtils.copy(response.getEntity().getContent(), fsDataOutputStream); + } + } catch (Throwable eu) { + throw new RuntimeException(eu); + } + } catch (Throwable e) { + throw new RuntimeException(e); + } + } + + protected void run(final String targetPath, final String apiURL) throws Exception { + final ObjectMapper mapper = new ObjectMapper(); + final URL url = new URL(apiURL); + URLConnection conn = url.openConnection(); + InputStream is = conn.getInputStream(); + final String json = IOUtils.toString(is); + JsonNode jsonNode = mapper.readTree(json); + jsonNode + .get("files") + .forEach(i -> downloadItem(i.get("name").asText(), i.get("download_url").asText(), targetPath)); + } +} diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/ExtractORCIDDump.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/ExtractORCIDDump.java new file mode 100644 index 000000000..4aefdb5e9 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/ExtractORCIDDump.java @@ -0,0 +1,71 @@ + +package eu.dnetlib.dhp.collection.orcid; + +import static eu.dnetlib.dhp.utils.DHPUtils.getHadoopConfiguration; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import org.apache.commons.io.IOUtils; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.LocatedFileStatus; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.fs.RemoteIterator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; + +public class ExtractORCIDDump { + private static final Logger log = LoggerFactory.getLogger(ExtractORCIDDump.class); + + private final FileSystem fileSystem; + + public ExtractORCIDDump(FileSystem fileSystem) { + this.fileSystem = fileSystem; + } + + public static void main(String[] args) throws Exception { + final ArgumentApplicationParser argumentParser = new ArgumentApplicationParser( + IOUtils + .toString( + Objects + .requireNonNull( + DownloadORCIDDumpApplication.class + .getResourceAsStream( + "/eu/dnetlib/dhp/collection/orcid/extract_orcid_parameter.json")))); + argumentParser.parseArgument(args); + + final String hdfsuri = argumentParser.get("namenode"); + log.info("hdfsURI is {}", hdfsuri); + + final String sourcePath = argumentParser.get("sourcePath"); + log.info("sourcePath is {}", sourcePath); + + final String targetPath = argumentParser.get("targetPath"); + log.info("targetPath is {}", targetPath); + + final FileSystem fileSystem = FileSystem.get(getHadoopConfiguration(hdfsuri)); + + new ExtractORCIDDump(fileSystem).run(sourcePath, targetPath); + + } + + public void run(final String sourcePath, final String targetPath) throws IOException, InterruptedException { + RemoteIterator ls = fileSystem.listFiles(new Path(sourcePath), false); + final List workers = new ArrayList<>(); + int i = 0; + while (ls.hasNext()) { + LocatedFileStatus current = ls.next(); + if (current.getPath().getName().endsWith("tar.gz")) { + workers.add(new ORCIDExtractor(fileSystem, "" + i++, current.getPath(), targetPath)); + } + } + workers.forEach(Thread::start); + for (ORCIDExtractor worker : workers) { + worker.join(); + } + } +} diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/ORCIDExtractor.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/ORCIDExtractor.java new file mode 100644 index 000000000..11f4c55d8 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/ORCIDExtractor.java @@ -0,0 +1,171 @@ + +package eu.dnetlib.dhp.collection.orcid; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.HashMap; +import java.util.Map; + +import org.apache.commons.compress.archivers.tar.TarArchiveEntry; +import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.io.IOUtils; +import org.apache.hadoop.io.SequenceFile; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.io.compress.CompressionCodec; +import org.apache.hadoop.io.compress.CompressionCodecFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/**\ + * The ORCIDExtractor class extracts ORCID data from a TAR archive. + * The class creates a map of SequenceFile.Writer objects, one for each type of data that is to be extracted (e.g., employments, works, summaries). + * Then, it iterates over the TAR archive and writes each entry to the appropriate SequenceFile.Writer object. + * Finally, it closes all the SequenceFile.Writer objects. + */ +public class ORCIDExtractor extends Thread { + + private static final Logger log = LoggerFactory.getLogger(ORCIDExtractor.class); + + private final FileSystem fileSystem; + + private final String id; + + private final Path sourcePath; + + private final String baseOutputPath; + + public ORCIDExtractor(FileSystem fileSystem, String id, Path sourcePath, String baseOutputPath) { + this.fileSystem = fileSystem; + this.id = id; + this.sourcePath = sourcePath; + this.baseOutputPath = baseOutputPath; + } + + /** + * creates a map of SequenceFile.Writer objects, + * one for each type of data that is to be extracted. The map is created based on the filename in the TAR archive. + * For example, if the filename is employments.json, the map will contain an entry for the SequenceFile.Writer + * object that writes employment data. + * @return the Map + */ + private Map createMap() { + try { + log.info("Thread {} Creating sequence files starting from this input Path {}", id, sourcePath.getName()); + Map res = new HashMap<>(); + if (sourcePath.getName().contains("summaries")) { + + final String summaryPath = String.format("%s/summaries_%s", baseOutputPath, id); + final SequenceFile.Writer summary_file = SequenceFile + .createWriter( + fileSystem.getConf(), + SequenceFile.Writer.file(new Path(summaryPath)), + SequenceFile.Writer.keyClass(Text.class), + SequenceFile.Writer.valueClass(Text.class)); + + log.info("Thread {} Creating only summary path here {}", id, summaryPath); + res.put("summary", summary_file); + return res; + } else { + String employmentsPath = String.format("%s/employments_%s", baseOutputPath, id); + final SequenceFile.Writer employments_file = SequenceFile + .createWriter( + fileSystem.getConf(), + SequenceFile.Writer.file(new Path(employmentsPath)), + SequenceFile.Writer.keyClass(Text.class), + SequenceFile.Writer.valueClass(Text.class)); + res.put("employments", employments_file); + log.info("Thread {} Creating employments path here {}", id, employmentsPath); + + final String worksPath = String.format("%s/works_%s", baseOutputPath, id); + final SequenceFile.Writer works_file = SequenceFile + .createWriter( + fileSystem.getConf(), + SequenceFile.Writer.file(new Path(worksPath)), + SequenceFile.Writer.keyClass(Text.class), + SequenceFile.Writer.valueClass(Text.class)); + res.put("works", works_file); + log.info("Thread {} Creating works path here {}", id, worksPath); + + return res; + } + } catch (Throwable e) { + throw new RuntimeException(e); + } + } + + @Override + public void run() { + + CompressionCodecFactory factory = new CompressionCodecFactory(fileSystem.getConf()); + CompressionCodec codec = factory.getCodec(sourcePath); + if (codec == null) { + System.err.println("No codec found for " + sourcePath.getName()); + System.exit(1); + } + + InputStream gzipInputStream = null; + try { + gzipInputStream = codec.createInputStream(fileSystem.open(sourcePath)); + final Map fileMap = createMap(); + iterateTar(fileMap, gzipInputStream); + + } catch (IOException e) { + throw new RuntimeException(e); + } finally { + log.info("Closing gzip stream"); + IOUtils.closeStream(gzipInputStream); + } + + } + + private SequenceFile.Writer retrieveFile(Map fileMap, final String path) { + if (sourcePath.getName().contains("summaries")) { + return fileMap.get("summary"); + } + + if (path.contains("works")) { + return fileMap.get("works"); + } + if (path.contains("employments")) + return fileMap.get("employments"); + return null; + } + + private void iterateTar(Map fileMap, InputStream gzipInputStream) throws IOException { + + int extractedItem = 0; + try (final TarArchiveInputStream tais = new TarArchiveInputStream(gzipInputStream)) { + + TarArchiveEntry entry; + while ((entry = tais.getNextTarEntry()) != null) { + + if (entry.isFile()) { + + final SequenceFile.Writer fl = retrieveFile(fileMap, entry.getName()); + if (fl != null) { + final Text key = new Text(entry.getName()); + final Text value = new Text( + org.apache.commons.io.IOUtils.toString(new BufferedReader(new InputStreamReader(tais)))); + fl.append(key, value); + extractedItem++; + if (extractedItem % 100000 == 0) { + log.info("Thread {}: Extracted {} items", id, extractedItem); + break; + } + } + } + } + } finally { + for (SequenceFile.Writer k : fileMap.values()) { + log.info("Thread {}: Completed processed {} items", id, extractedItem); + k.hflush(); + k.close(); + } + } + + } +} diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/OrcidParser.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/OrcidParser.java new file mode 100644 index 000000000..159b8a5fc --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/OrcidParser.java @@ -0,0 +1,251 @@ + +package eu.dnetlib.dhp.collection.orcid; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.ximpleware.*; + +import eu.dnetlib.dhp.collection.orcid.model.*; +import eu.dnetlib.dhp.parser.utility.VtdException; +import eu.dnetlib.dhp.parser.utility.VtdUtilityParser; + +public class OrcidParser { + + final Logger log = LoggerFactory.getLogger(OrcidParser.class); + private VTDNav vn; + + private AutoPilot ap; + private static final String NS_COMMON_URL = "http://www.orcid.org/ns/common"; + private static final String NS_COMMON = "common"; + private static final String NS_PERSON_URL = "http://www.orcid.org/ns/person"; + private static final String NS_PERSON = "person"; + private static final String NS_DETAILS_URL = "http://www.orcid.org/ns/personal-details"; + private static final String NS_DETAILS = "personal-details"; + private static final String NS_OTHER_URL = "http://www.orcid.org/ns/other-name"; + private static final String NS_OTHER = "other-name"; + private static final String NS_RECORD_URL = "http://www.orcid.org/ns/record"; + private static final String NS_RECORD = "record"; + private static final String NS_ERROR_URL = "http://www.orcid.org/ns/error"; + private static final String NS_ACTIVITIES = "activities"; + private static final String NS_ACTIVITIES_URL = "http://www.orcid.org/ns/activities"; + private static final String NS_WORK = "work"; + private static final String NS_WORK_URL = "http://www.orcid.org/ns/work"; + + private static final String NS_ERROR = "error"; + private static final String NS_HISTORY = "history"; + private static final String NS_HISTORY_URL = "http://www.orcid.org/ns/history"; + private static final String NS_BULK_URL = "http://www.orcid.org/ns/bulk"; + private static final String NS_BULK = "bulk"; + private static final String NS_EXTERNAL = "external-identifier"; + private static final String NS_EXTERNAL_URL = "http://www.orcid.org/ns/external-identifier"; + + private void generateParsedDocument(final String xml) throws ParseException { + final VTDGen vg = new VTDGen(); + vg.setDoc(xml.getBytes()); + vg.parse(true); + this.vn = vg.getNav(); + this.ap = new AutoPilot(vn); + ap.declareXPathNameSpace(NS_COMMON, NS_COMMON_URL); + ap.declareXPathNameSpace(NS_PERSON, NS_PERSON_URL); + ap.declareXPathNameSpace(NS_DETAILS, NS_DETAILS_URL); + ap.declareXPathNameSpace(NS_OTHER, NS_OTHER_URL); + ap.declareXPathNameSpace(NS_RECORD, NS_RECORD_URL); + ap.declareXPathNameSpace(NS_ERROR, NS_ERROR_URL); + ap.declareXPathNameSpace(NS_HISTORY, NS_HISTORY_URL); + ap.declareXPathNameSpace(NS_WORK, NS_WORK_URL); + ap.declareXPathNameSpace(NS_EXTERNAL, NS_EXTERNAL_URL); + ap.declareXPathNameSpace(NS_ACTIVITIES, NS_ACTIVITIES_URL); + } + + public Author parseSummary(final String xml) { + + try { + final Author author = new Author(); + generateParsedDocument(xml); + List recordNodes = VtdUtilityParser + .getTextValuesWithAttributes( + ap, vn, "//record:record", Arrays.asList("path")); + if (!recordNodes.isEmpty()) { + final String oid = (recordNodes.get(0).getAttributes().get("path")).substring(1); + author.setOrcid(oid); + } else { + return null; + } + List personNodes = VtdUtilityParser + .getTextValuesWithAttributes( + ap, vn, "//person:name", Arrays.asList("visibility")); + final String visibility = (personNodes.get(0).getAttributes().get("visibility")); + author.setVisibility(visibility); + final String name = VtdUtilityParser.getSingleValue(ap, vn, "//personal-details:given-names"); + author.setGivenName(name); + + final String surnames = VtdUtilityParser.getSingleValue(ap, vn, "//personal-details:family-name"); + author.setFamilyName(surnames); + + final String creditNames = VtdUtilityParser.getSingleValue(ap, vn, "//personal-details:credit-name"); + author.setCreditName(creditNames); + + final String biography = VtdUtilityParser + .getSingleValue(ap, vn, "//person:biography/personal-details:content"); + author.setBiography(biography); + + final List otherNames = VtdUtilityParser.getTextValue(ap, vn, "//other-name:content"); + if (!otherNames.isEmpty()) { + author.setOtherNames(otherNames); + } + + ap.selectXPath("//external-identifier:external-identifier"); + + while (ap.evalXPath() != -1) { + final Pid pid = new Pid(); + + final AutoPilot ap1 = new AutoPilot(ap.getNav()); + + ap1.selectXPath("./common:external-id-type"); + while (ap1.evalXPath() != -1) { + int it = vn.getText(); + pid.setSchema(vn.toNormalizedString(it)); + } + ap1.selectXPath("./common:external-id-value"); + while (ap1.evalXPath() != -1) { + int it = vn.getText(); + pid.setValue(vn.toNormalizedString(it)); + } + + author.addOtherPid(pid); + } + + return author; + } catch (Throwable e) { + log.error("Error on parsing {}", xml); + log.error(e.getMessage()); + return null; + } + } + + public Work parseWork(final String xml) { + + try { + final Work work = new Work(); + generateParsedDocument(xml); + List workNodes = VtdUtilityParser + .getTextValuesWithAttributes(ap, vn, "//work:work", Arrays.asList("path", "visibility")); + if (!workNodes.isEmpty()) { + final String oid = (workNodes.get(0).getAttributes().get("path")).split("/")[1]; + work.setOrcid(oid); + } else { + return null; + } + + ap.selectXPath("//common:external-id"); + + while (ap.evalXPath() != -1) { + final Pid pid = new Pid(); + + final AutoPilot ap1 = new AutoPilot(ap.getNav()); + + ap1.selectXPath("./common:external-id-type"); + while (ap1.evalXPath() != -1) { + int it = vn.getText(); + pid.setSchema(vn.toNormalizedString(it)); + } + ap1.selectXPath("./common:external-id-value"); + while (ap1.evalXPath() != -1) { + int it = vn.getText(); + pid.setValue(vn.toNormalizedString(it)); + } + + work.addPid(pid); + } + + work.setTitle(VtdUtilityParser.getSingleValue(ap, vn, "//work:title/common:title")); + + return work; + } catch (Throwable e) { + log.error("Error on parsing {}", xml); + log.error(e.getMessage()); + return null; + } + + } + + private String extractEmploymentDate(final String xpath) throws Exception { + + ap.selectXPath(xpath); + StringBuilder sb = new StringBuilder(); + while (ap.evalXPath() != -1) { + final AutoPilot ap1 = new AutoPilot(ap.getNav()); + ap1.selectXPath("./common:year"); + while (ap1.evalXPath() != -1) { + int it = vn.getText(); + sb.append(vn.toNormalizedString(it)); + } + ap1.selectXPath("./common:month"); + while (ap1.evalXPath() != -1) { + int it = vn.getText(); + sb.append("-"); + sb.append(vn.toNormalizedString(it)); + } + ap1.selectXPath("./common:day"); + while (ap1.evalXPath() != -1) { + int it = vn.getText(); + sb.append("-"); + sb.append(vn.toNormalizedString(it)); + } + } + return sb.toString(); + + } + + public Employment parseEmployment(final String xml) { + try { + final Employment employment = new Employment(); + generateParsedDocument(xml); + final String oid = VtdUtilityParser + .getSingleValue(ap, vn, "//common:source-orcid/common:path"); + if (StringUtils.isNotBlank(oid)) { + employment.setOrcid(oid); + } else { + return null; + } + final String depName = VtdUtilityParser + .getSingleValue(ap, vn, "//common:department-name"); + final String rolTitle = VtdUtilityParser + .getSingleValue(ap, vn, "//common:role-title"); + if (StringUtils.isNotBlank(rolTitle)) + employment.setRoleTitle(rolTitle); + if (StringUtils.isNotBlank(depName)) + employment.setDepartmentName(depName); + else + employment + .setDepartmentName( + VtdUtilityParser + .getSingleValue(ap, vn, "//common:organization/common:name")); + + employment.setStartDate(extractEmploymentDate("//common:start-date")); + employment.setEndDate(extractEmploymentDate("//common:end-date")); + + final String affiliationId = VtdUtilityParser + .getSingleValue(ap, vn, "//common:disambiguated-organization-identifier"); + final String affiliationIdType = VtdUtilityParser + .getSingleValue(ap, vn, "//common:disambiguation-source"); + + if (StringUtils.isNotBlank(affiliationId) || StringUtils.isNotBlank(affiliationIdType)) + employment.setAffiliationId(new Pid(affiliationId, affiliationIdType)); + + return employment; + } catch (Throwable e) { + log.error("Error on parsing {}", xml); + log.error(e.getMessage()); + return null; + } + + } + +} diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/model/Author.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/model/Author.java new file mode 100644 index 000000000..32c321b41 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/model/Author.java @@ -0,0 +1,83 @@ + +package eu.dnetlib.dhp.collection.orcid.model; + +import java.util.ArrayList; +import java.util.List; + +public class Author extends ORCIDItem { + private String givenName; + private String familyName; + + private String visibility; + + private String creditName; + + private List otherNames; + + private List otherPids; + + private String biography; + + public String getBiography() { + return biography; + } + + public void setBiography(String biography) { + this.biography = biography; + } + + public String getGivenName() { + return givenName; + } + + public void setGivenName(String givenName) { + this.givenName = givenName; + } + + public String getFamilyName() { + return familyName; + } + + public void setFamilyName(String familyName) { + this.familyName = familyName; + } + + public String getCreditName() { + return creditName; + } + + public void setCreditName(String creditName) { + this.creditName = creditName; + } + + public List getOtherNames() { + return otherNames; + } + + public void setOtherNames(List otherNames) { + this.otherNames = otherNames; + } + + public String getVisibility() { + return visibility; + } + + public void setVisibility(String visibility) { + this.visibility = visibility; + } + + public List getOtherPids() { + return otherPids; + } + + public void setOtherPids(List otherPids) { + this.otherPids = otherPids; + } + + public void addOtherPid(final Pid pid) { + + if (otherPids == null) + otherPids = new ArrayList<>(); + otherPids.add(pid); + } +} diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/model/Employment.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/model/Employment.java new file mode 100644 index 000000000..baee67d46 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/model/Employment.java @@ -0,0 +1,54 @@ + +package eu.dnetlib.dhp.collection.orcid.model; + +public class Employment extends ORCIDItem { + + private String startDate; + private String EndDate; + + private Pid affiliationId; + + private String departmentName; + + private String roleTitle; + + public String getStartDate() { + return startDate; + } + + public void setStartDate(String startDate) { + this.startDate = startDate; + } + + public String getEndDate() { + return EndDate; + } + + public void setEndDate(String endDate) { + EndDate = endDate; + } + + public Pid getAffiliationId() { + return affiliationId; + } + + public void setAffiliationId(Pid affiliationId) { + this.affiliationId = affiliationId; + } + + public String getDepartmentName() { + return departmentName; + } + + public void setDepartmentName(String departmentName) { + this.departmentName = departmentName; + } + + public String getRoleTitle() { + return roleTitle; + } + + public void setRoleTitle(String roleTitle) { + this.roleTitle = roleTitle; + } +} diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/model/ORCIDItem.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/model/ORCIDItem.java new file mode 100644 index 000000000..6bc47bc26 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/model/ORCIDItem.java @@ -0,0 +1,14 @@ + +package eu.dnetlib.dhp.collection.orcid.model; + +public class ORCIDItem { + private String orcid; + + public String getOrcid() { + return orcid; + } + + public void setOrcid(String orcid) { + this.orcid = orcid; + } +} diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/model/Pid.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/model/Pid.java new file mode 100644 index 000000000..077dc2550 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/model/Pid.java @@ -0,0 +1,33 @@ + +package eu.dnetlib.dhp.collection.orcid.model; + +public class Pid { + + private String value; + + private String schema; + + public Pid() { + } + + public Pid(String value, String schema) { + this.value = value; + this.schema = schema; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getSchema() { + return schema; + } + + public void setSchema(String schema) { + this.schema = schema; + } +} diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/model/Work.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/model/Work.java new file mode 100644 index 000000000..670170323 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/orcid/model/Work.java @@ -0,0 +1,35 @@ + +package eu.dnetlib.dhp.collection.orcid.model; + +import java.util.ArrayList; +import java.util.List; + +public class Work extends ORCIDItem { + + private String title; + + private List pids; + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public List getPids() { + return pids; + } + + public void setPids(List pids) { + this.pids = pids; + } + + public void addPid(Pid pid) { + if (pids == null) + pids = new ArrayList<>(); + pids.add(pid); + } + +} diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/plugin/oai/OaiIterator.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/plugin/oai/OaiIterator.java index 28b2572fb..8f4a9e393 100644 --- a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/plugin/oai/OaiIterator.java +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/collection/plugin/oai/OaiIterator.java @@ -9,7 +9,7 @@ import java.util.Iterator; import java.util.Queue; import java.util.concurrent.PriorityBlockingQueue; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; diff --git a/dhp-common/src/main/resources/eu/dnetlib/dhp/oa/merge/dispatch_entities_parameters.json b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/bipaffiliations/input_actionset_parameter.json similarity index 51% rename from dhp-common/src/main/resources/eu/dnetlib/dhp/oa/merge/dispatch_entities_parameters.json rename to dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/bipaffiliations/input_actionset_parameter.json index aa8d2a7c2..c6f905199 100644 --- a/dhp-common/src/main/resources/eu/dnetlib/dhp/oa/merge/dispatch_entities_parameters.json +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/bipaffiliations/input_actionset_parameter.json @@ -6,21 +6,21 @@ "paramRequired": false }, { - "paramName": "i", - "paramLongName": "inputPath", - "paramDescription": "the source path", + "paramName": "cip", + "paramLongName": "crossrefInputPath", + "paramDescription": "the path to get the input data from Crossref", + "paramRequired": true + }, + { + "paramName": "pip", + "paramLongName": "pubmedInputPath", + "paramDescription": "the path to get the input data from Pubmed", "paramRequired": true }, { "paramName": "o", "paramLongName": "outputPath", - "paramDescription": "path of the output graph", - "paramRequired": true - }, - { - "paramName": "c", - "paramLongName": "graphTableClassName", - "paramDescription": "the graph entity class name", + "paramDescription": "the path of the new ActionSet", "paramRequired": true } ] \ No newline at end of file diff --git a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/bipaffiliations/job.properties b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/bipaffiliations/job.properties new file mode 100644 index 000000000..a3d55ff0c --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/bipaffiliations/job.properties @@ -0,0 +1,36 @@ +# --- You can override the following properties (if needed) coming from your ~/.dhp/application.properties --- +# dhp.hadoop.frontend.temp.dir=/home/ilias.kanellos +# dhp.hadoop.frontend.user.name=ilias.kanellos +# dhp.hadoop.frontend.host.name=iis-cdh5-test-gw.ocean.icm.edu.pl +# dhp.hadoop.frontend.port.ssh=22 +# oozieServiceLoc=http://iis-cdh5-test-m3:11000/oozie +# jobTracker=yarnRM +# nameNode=hdfs://nameservice1 +# oozie.execution.log.file.location = target/extract-and-run-on-remote-host.log +# maven.executable=mvn + +# Some memory and driver settings for more demanding tasks +sparkDriverMemory=10G +sparkExecutorMemory=10G +sparkExecutorCores=4 +sparkShufflePartitions=7680 + +# The above is given differently in an example I found online +oozie.action.sharelib.for.spark=spark2 +oozieActionShareLibForSpark2=spark2 +spark2YarnHistoryServerAddress=http://iis-cdh5-test-gw.ocean.icm.edu.pl:18089 +spark2EventLogDir=/user/spark/spark2ApplicationHistory +sparkSqlWarehouseDir=/user/hive/warehouse +hiveMetastoreUris=thrift://iis-cdh5-test-m3.ocean.icm.edu.pl:9083 +# This MAY avoid the no library used error +oozie.use.system.libpath=true +# Some stuff copied from openaire's jobs +spark2ExtraListeners=com.cloudera.spark.lineage.NavigatorAppListener +spark2SqlQueryExecutionListeners=com.cloudera.spark.lineage.NavigatorQueryListener + +# The following is needed as a property of a workflow +oozie.wf.application.path=${oozieTopWfApplicationPath} + +crossrefInputPath=/data/bip-affiliations/data.json +pubmedInputPath=/data/bip-affiliations/pubmed-data.json +outputPath=/tmp/crossref-affiliations-output-v5 diff --git a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/bipaffiliations/oozie_app/config-default.xml b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/bipaffiliations/oozie_app/config-default.xml new file mode 100644 index 000000000..d262cb6e0 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/bipaffiliations/oozie_app/config-default.xml @@ -0,0 +1,30 @@ + + + jobTracker + yarnRM + + + nameNode + hdfs://nameservice1 + + + oozie.use.system.libpath + true + + + hiveMetastoreUris + thrift://iis-cdh5-test-m3.ocean.icm.edu.pl:9083 + + + hiveJdbcUrl + jdbc:hive2://iis-cdh5-test-m3.ocean.icm.edu.pl:10000 + + + hiveDbName + openaire + + + oozie.launcher.mapreduce.user.classpath.first + true + + diff --git a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/bipaffiliations/oozie_app/workflow.xml b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/bipaffiliations/oozie_app/workflow.xml new file mode 100644 index 000000000..c5ac6f884 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/bipaffiliations/oozie_app/workflow.xml @@ -0,0 +1,112 @@ + + + + + crossrefInputPath + the path where to find the inferred affiliation relations from Crossref + + + pubmedInputPath + the path where to find the inferred affiliation relations from Pubmed + + + outputPath + the path where to store the actionset + + + sparkDriverMemory + memory for driver process + + + sparkExecutorMemory + memory for individual executor + + + sparkExecutorCores + number of cores used by single executor + + + oozieActionShareLibForSpark2 + oozie action sharelib for spark 2.* + + + spark2ExtraListeners + com.cloudera.spark.lineage.NavigatorAppListener + spark 2.* extra listeners classname + + + spark2SqlQueryExecutionListeners + com.cloudera.spark.lineage.NavigatorQueryListener + spark 2.* sql query execution listeners classname + + + spark2YarnHistoryServerAddress + spark 2.* yarn history server address + + + spark2EventLogDir + spark 2.* event log dir location + + + + + ${jobTracker} + ${nameNode} + + + mapreduce.job.queuename + ${queueName} + + + oozie.launcher.mapred.job.queue.name + ${oozieLauncherQueueName} + + + oozie.action.sharelib.for.spark + ${oozieActionShareLibForSpark2} + + + + + + + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + + + + + + + + + + + + yarn + cluster + Produces the atomic action with the inferred by BIP! affiliation relations (from Crossref and Pubmed) + eu.dnetlib.dhp.actionmanager.bipaffiliations.PrepareAffiliationRelations + dhp-aggregation-${projectVersion}.jar + + --executor-memory=${sparkExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + --conf spark.sql.warehouse.dir=${sparkSqlWarehouseDir} + + --crossrefInputPath${crossrefInputPath} + --pubmedInputPath${pubmedInputPath} + --outputPath${outputPath} + + + + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/bipfinder/input_actionset_parameter.json b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/bipfinder/input_actionset_parameter.json index 7663a454b..c472eb5e6 100644 --- a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/bipfinder/input_actionset_parameter.json +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/bipfinder/input_actionset_parameter.json @@ -6,9 +6,15 @@ "paramRequired": false }, { - "paramName": "ip", - "paramLongName": "inputPath", - "paramDescription": "the URL from where to get the programme file", + "paramName": "rip", + "paramLongName": "resultsInputPath", + "paramDescription": "the URL from where to get the input file for results", + "paramRequired": true + }, + { + "paramName": "pip", + "paramLongName": "projectsInputPath", + "paramDescription": "the URL from where to get the input file for projects", "paramRequired": true }, { diff --git a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/createunresolvedentities/oozie_app/workflow.xml b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/createunresolvedentities/oozie_app/workflow.xml index c8af64594..c8e9547dc 100644 --- a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/createunresolvedentities/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/createunresolvedentities/oozie_app/workflow.xml @@ -5,11 +5,6 @@ fosPath the input path of the resources to be extended - - - bipScorePath - the path where to find the bipFinder scores - outputPath the path where to store the actionset @@ -77,35 +72,10 @@ - - - - yarn - cluster - Produces the unresolved from BIP! Finder - eu.dnetlib.dhp.actionmanager.createunresolvedentities.PrepareBipFinder - dhp-aggregation-${projectVersion}.jar - - --executor-memory=${sparkExecutorMemory} - --executor-cores=${sparkExecutorCores} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.sql.warehouse.dir=${sparkSqlWarehouseDir} - - --sourcePath${bipScorePath} - --outputPath${workingDir}/prepared - - - - - yarn @@ -125,6 +95,7 @@ --sourcePath${fosPath} --outputPath${workingDir}/input/fos + --delimiter${delimiter} @@ -213,7 +184,7 @@ yarn cluster - Saves the result produced for bip and fos by grouping results with the same id + Save the unresolved entities grouping results with the same id eu.dnetlib.dhp.actionmanager.createunresolvedentities.SparkSaveUnresolved dhp-aggregation-${projectVersion}.jar diff --git a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/opencitations/as_parameters.json b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/opencitations/as_parameters.json index 308e02026..5244a6fe4 100644 --- a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/opencitations/as_parameters.json +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/opencitations/as_parameters.json @@ -16,10 +16,11 @@ "paramLongName": "isSparkSessionManaged", "paramDescription": "the hdfs name node", "paramRequired": false - }, { - "paramName": "sdr", - "paramLongName": "shouldDuplicateRels", - "paramDescription": "the hdfs name node", - "paramRequired": false -} + }, + { + "paramName": "sdr", + "paramLongName": "shouldDuplicateRels", + "paramDescription": "activates/deactivates the construction of bidirectional relations Cites/IsCitedBy", + "paramRequired": false + } ] diff --git a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/opencitations/input_parameters.json b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/opencitations/input_parameters.json index 4910ad11d..96db7eeb7 100644 --- a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/opencitations/input_parameters.json +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/opencitations/input_parameters.json @@ -16,5 +16,11 @@ "paramLongName": "hdfsNameNode", "paramDescription": "the hdfs name node", "paramRequired": true + }, + { + "paramName": "p", + "paramLongName": "prefix", + "paramDescription": "COCI or POCI", + "paramRequired": true } ] diff --git a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/opencitations/input_readcoci_parameters.json b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/opencitations/input_readcoci_parameters.json index b57cb5d9a..fa840089d 100644 --- a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/opencitations/input_readcoci_parameters.json +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/opencitations/input_readcoci_parameters.json @@ -30,7 +30,12 @@ "paramLongName": "inputFile", "paramDescription": "the hdfs name node", "paramRequired": true - } + }, { + "paramName": "f", + "paramLongName": "format", + "paramDescription": "the hdfs name node", + "paramRequired": true +} ] diff --git a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/opencitations/oozie_app/workflow.xml b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/opencitations/oozie_app/workflow.xml index 0f01039f7..deb32459b 100644 --- a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/opencitations/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/actionmanager/opencitations/oozie_app/workflow.xml @@ -34,6 +34,7 @@ Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + ${jobTracker} @@ -46,7 +47,7 @@ download.sh ${filelist} - ${workingPath}/Original + ${workingPath}/${prefix}/Original HADOOP_USER_NAME=${wf:user()} download.sh @@ -54,12 +55,14 @@ + eu.dnetlib.dhp.actionmanager.opencitations.GetOpenCitationsRefs --hdfsNameNode${nameNode} --inputFile${inputFile} - --workingPath${workingPath} + --workingPath${workingPath}/${prefix} + --prefix${prefix} @@ -82,10 +85,11 @@ --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} --conf spark.sql.warehouse.dir=${sparkSqlWarehouseDir} - --workingPath${workingPath}/COCI - --outputPath${workingPath}/COCI_JSON/ + --workingPath${workingPath}/${prefix}/${prefix} + --outputPath${workingPath}/${prefix}/${prefix}_JSON/ --delimiter${delimiter} --inputFile${inputFileCoci} + --format${prefix} @@ -108,7 +112,7 @@ --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} --conf spark.sql.warehouse.dir=${sparkSqlWarehouseDir} - --inputPath${workingPath}/COCI_JSON + --inputPath${workingPath} --outputPath${outputPath} diff --git a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/collection/orcid/download_orcid_parameter.json b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/collection/orcid/download_orcid_parameter.json new file mode 100644 index 000000000..4a84cbbb9 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/collection/orcid/download_orcid_parameter.json @@ -0,0 +1,21 @@ +[ + { + "paramName": "n", + "paramLongName": "namenode", + "paramDescription": "the Name Node URI", + "paramRequired": true + }, + { + "paramName": "t", + "paramLongName": "targetPath", + "paramDescription": "the target PATH where download the files", + "paramRequired": true + }, + { + "paramName": "a", + "paramLongName": "apiURL", + "paramDescription": "the FIGSHARE API id URL to retrieve all the dump files", + "paramRequired": true + } + +] \ No newline at end of file diff --git a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/collection/orcid/extract_orcid_parameter.json b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/collection/orcid/extract_orcid_parameter.json new file mode 100644 index 000000000..4af371875 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/collection/orcid/extract_orcid_parameter.json @@ -0,0 +1,21 @@ +[ + { + "paramName": "n", + "paramLongName": "namenode", + "paramDescription": "the Name Node URI", + "paramRequired": true + }, + { + "paramName": "t", + "paramLongName": "targetPath", + "paramDescription": "the target PATH to extract files", + "paramRequired": true + }, + { + "paramName": "s", + "paramLongName": "sourcePath", + "paramDescription": "the PATH where the tar.gz files were downloaded", + "paramRequired": true + } + +] \ No newline at end of file diff --git a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/collection/orcid/generate_orcid_table_parameter.json b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/collection/orcid/generate_orcid_table_parameter.json new file mode 100644 index 000000000..01d81ea97 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/collection/orcid/generate_orcid_table_parameter.json @@ -0,0 +1,21 @@ +[ + { + "paramName": "m", + "paramLongName": "master", + "paramDescription": "the master name", + "paramRequired": true + }, + { + "paramName": "t", + "paramLongName": "targetPath", + "paramDescription": "the target PATH of the DF tables", + "paramRequired": true + }, + { + "paramName": "s", + "paramLongName": "sourcePath", + "paramDescription": "the PATH of the ORCID sequence file", + "paramRequired": true + } + +] \ No newline at end of file diff --git a/dhp-workflows/dhp-distcp/src/main/resources/eu/dnetlib/dhp/distcp/oozie_app/config-default.xml b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/collection/orcid/oozie_app/config-default.xml similarity index 60% rename from dhp-workflows/dhp-distcp/src/main/resources/eu/dnetlib/dhp/distcp/oozie_app/config-default.xml rename to dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/collection/orcid/oozie_app/config-default.xml index 905fb9984..dd3c32c62 100644 --- a/dhp-workflows/dhp-distcp/src/main/resources/eu/dnetlib/dhp/distcp/oozie_app/config-default.xml +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/collection/orcid/oozie_app/config-default.xml @@ -7,12 +7,17 @@ nameNode hdfs://nameservice1 - - sourceNN - webhdfs://namenode2.hadoop.dm.openaire.eu:50071 - oozie.use.system.libpath true + + oozie.action.sharelib.for.spark + spark2 + + + + oozie.launcher.mapreduce.user.classpath.first + true + \ No newline at end of file diff --git a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/collection/orcid/oozie_app/workflow.xml b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/collection/orcid/oozie_app/workflow.xml new file mode 100644 index 000000000..1a5f425e5 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/collection/orcid/oozie_app/workflow.xml @@ -0,0 +1,81 @@ + + + + targetPath + the path to store the original ORCID dump + + + apiURL + The figshare API URL to retrieve the list file to download + + + + + + + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + + + + oozie.launcher.mapreduce.user.classpath.first + true + + + eu.dnetlib.dhp.collection.orcid.DownloadORCIDDumpApplication + --namenode${nameNode} + --targetPath${targetPath} + --apiURL${apiURL} + + + + + + + + + + oozie.launcher.mapreduce.user.classpath.first + true + + + + eu.dnetlib.dhp.collection.orcid.ExtractORCIDDump + -Xmx6g + --namenode${nameNode} + --sourcePath${targetPath} + --targetPath${targetPath}/extracted + + + + + + + + yarn + cluster + Generate ORCID Tables + eu.dnetlib.dhp.collection.orcid.SparkGenerateORCIDTable + dhp-aggregation-${projectVersion}.jar + + --executor-memory=${sparkExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkDriverMemory} + --conf spark.executor.memoryOverhead=2g + --conf spark.sql.shuffle.partitions=3000 + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + --sourcePath${targetPath}/extracted + --targetPath${targetPath}/tables + --masteryarn + + + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/collection/orcid/preprocess_orcid_dump_parameter.json b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/collection/orcid/preprocess_orcid_dump_parameter.json new file mode 100644 index 000000000..4a84cbbb9 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/collection/orcid/preprocess_orcid_dump_parameter.json @@ -0,0 +1,21 @@ +[ + { + "paramName": "n", + "paramLongName": "namenode", + "paramDescription": "the Name Node URI", + "paramRequired": true + }, + { + "paramName": "t", + "paramLongName": "targetPath", + "paramDescription": "the target PATH where download the files", + "paramRequired": true + }, + { + "paramName": "a", + "paramLongName": "apiURL", + "paramDescription": "the FIGSHARE API id URL to retrieve all the dump files", + "paramRequired": true + } + +] \ No newline at end of file diff --git a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/datacite/hostedBy_map.json b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/datacite/hostedBy_map.json index 9088d2960..d07cc33cb 100644 --- a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/datacite/hostedBy_map.json +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/datacite/hostedBy_map.json @@ -1,4 +1,9 @@ { + "ETHZ.UNIGENF": { + "openaire_id": "opendoar____::1400", + "datacite_name": "Uni Genf", + "official_name": "Archive ouverte UNIGE" + }, "GESIS.RKI": { "openaire_id": "re3data_____::r3d100010436", "datacite_name": "Forschungsdatenzentrum am Robert Koch Institut", diff --git a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/sx/bio/ebi/baseline_to_oaf_params.json b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/sx/bio/ebi/baseline_to_oaf_params.json index 8dc8a2aae..3ba83764d 100644 --- a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/sx/bio/ebi/baseline_to_oaf_params.json +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/sx/bio/ebi/baseline_to_oaf_params.json @@ -2,7 +2,7 @@ {"paramName":"mt", "paramLongName":"master", "paramDescription": "should be local or yarn", "paramRequired": true}, {"paramName":"i", "paramLongName":"isLookupUrl", "paramDescription": "isLookupUrl", "paramRequired": true}, {"paramName":"w", "paramLongName":"workingPath", "paramDescription": "the path of the sequencial file to read", "paramRequired": true}, - {"paramName":"t", "paramLongName":"targetPath", "paramDescription": "the oaf path ", "paramRequired": true}, + {"paramName":"mo", "paramLongName":"mdstoreOutputVersion", "paramDescription": "the oaf path ", "paramRequired": true}, {"paramName":"s", "paramLongName":"skipUpdate", "paramDescription": "skip update ", "paramRequired": false}, {"paramName":"h", "paramLongName":"hdfsServerUri", "paramDescription": "the working path ", "paramRequired": true} ] \ No newline at end of file diff --git a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/sx/bio/pubmed/oozie_app/workflow.xml b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/sx/bio/pubmed/oozie_app/workflow.xml index 8915a090b..30eb41469 100644 --- a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/sx/bio/pubmed/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/sx/bio/pubmed/oozie_app/workflow.xml @@ -1,4 +1,4 @@ - + baselineWorkingPath @@ -9,8 +9,12 @@ The IS lookUp service endopoint - targetPath - The target path + mdStoreOutputId + the identifier of the cleaned MDStore + + + mdStoreManagerURI + the path of the cleaned mdstore skipUpdate @@ -19,12 +23,31 @@ - + + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + + oozie.launcher.mapreduce.user.classpath.first + true + + + eu.dnetlib.dhp.aggregation.mdstore.MDStoreActionNode + --actionNEW_VERSION + --mdStoreID${mdStoreOutputId} + --mdStoreManagerURI${mdStoreManagerURI} + + + + + + yarn @@ -43,16 +66,52 @@ --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} --workingPath${baselineWorkingPath} - --targetPath${targetPath} + --mdstoreOutputVersion${wf:actionData('StartTransaction')['mdStoreVersion']} --masteryarn --isLookupUrl${isLookupUrl} --hdfsServerUri${nameNode} --skipUpdate${skipUpdate} + + + + + + + + + oozie.launcher.mapreduce.user.classpath.first + true + + + eu.dnetlib.dhp.aggregation.mdstore.MDStoreActionNode + --actionCOMMIT + --namenode${nameNode} + --mdStoreVersion${wf:actionData('StartTransaction')['mdStoreVersion']} + --mdStoreManagerURI${mdStoreManagerURI} + + + + + + oozie.launcher.mapreduce.user.classpath.first + true + + + eu.dnetlib.dhp.aggregation.mdstore.MDStoreActionNode + --actionROLLBACK + --mdStoreVersion${wf:actionData('StartTransaction')['mdStoreVersion']} + --mdStoreManagerURI${mdStoreManagerURI} + + + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/collection/orcid/SparkGenerateORCIDTable.scala b/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/collection/orcid/SparkGenerateORCIDTable.scala new file mode 100644 index 000000000..f0c4cd214 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/collection/orcid/SparkGenerateORCIDTable.scala @@ -0,0 +1,101 @@ +package eu.dnetlib.dhp.collection.orcid + +import eu.dnetlib.dhp.application.AbstractScalaApplication +import eu.dnetlib.dhp.collection.orcid.model.{Author, Employment, Pid, Work} +import org.apache.hadoop.io.Text +import org.apache.spark.SparkContext +import org.apache.spark.sql.{Encoder, Encoders, SaveMode, SparkSession} +import org.slf4j.{Logger, LoggerFactory} + +class SparkGenerateORCIDTable(propertyPath: String, args: Array[String], log: Logger) + extends AbstractScalaApplication(propertyPath, args, log: Logger) { + + /** Here all the spark applications runs this method + * where the whole logic of the spark node is defined + */ + override def run(): Unit = { + val sourcePath: String = parser.get("sourcePath") + log.info("found parameters sourcePath: {}", sourcePath) + val targetPath: String = parser.get("targetPath") + log.info("found parameters targetPath: {}", targetPath) + extractORCIDTable(spark, sourcePath, targetPath) + extractORCIDEmploymentsTable(spark, sourcePath, targetPath) + extractORCIDWorksTable(spark, sourcePath, targetPath) + } + + def extractORCIDTable(spark: SparkSession, sourcePath: String, targetPath: String): Unit = { + val sc: SparkContext = spark.sparkContext + import spark.implicits._ + val df = sc + .sequenceFile(sourcePath, classOf[Text], classOf[Text]) + .map { case (x, y) => (x.toString, y.toString) } + .toDF + .as[(String, String)] + implicit val orcidAuthor: Encoder[Author] = Encoders.bean(classOf[Author]) +// implicit val orcidPID:Encoder[Pid] = Encoders.bean(classOf[Pid]) + df.filter(r => r._1.contains("summaries")) + .map { r => + val p = new OrcidParser + p.parseSummary(r._2) + } + .filter(p => p != null) + .write + .mode(SaveMode.Overwrite) + .save(s"$targetPath/Authors") + } + + def extractORCIDWorksTable(spark: SparkSession, sourcePath: String, targetPath: String): Unit = { + val sc: SparkContext = spark.sparkContext + import spark.implicits._ + val df = sc + .sequenceFile(sourcePath, classOf[Text], classOf[Text]) + .map { case (x, y) => (x.toString, y.toString) } + .toDF + .as[(String, String)] + implicit val orcidWorkAuthor: Encoder[Work] = Encoders.bean(classOf[Work]) + implicit val orcidPID: Encoder[Pid] = Encoders.bean(classOf[Pid]) + df.filter(r => r._1.contains("works")) + .map { r => + val p = new OrcidParser + p.parseWork(r._2) + } + .filter(p => p != null) + .write + .mode(SaveMode.Overwrite) + .save(s"$targetPath/Works") + } + + def extractORCIDEmploymentsTable(spark: SparkSession, sourcePath: String, targetPath: String): Unit = { + val sc: SparkContext = spark.sparkContext + import spark.implicits._ + val df = sc + .sequenceFile(sourcePath, classOf[Text], classOf[Text]) + .map { case (x, y) => (x.toString, y.toString) } + .toDF + .as[(String, String)] + implicit val orcidEmploymentAuthor: Encoder[Employment] = Encoders.bean(classOf[Employment]) + implicit val orcidPID: Encoder[Pid] = Encoders.bean(classOf[Pid]) + df.filter(r => r._1.contains("employments")) + .map { r => + val p = new OrcidParser + p.parseEmployment(r._2) + } + .filter(p => p != null) + .write + .mode(SaveMode.Overwrite) + .save(s"$targetPath/Employments") + } +} + +object SparkGenerateORCIDTable { + + val log: Logger = LoggerFactory.getLogger(SparkGenerateORCIDTable.getClass) + + def main(args: Array[String]): Unit = { + + new SparkGenerateORCIDTable("/eu/dnetlib/dhp/collection/orcid/generate_orcid_table_parameter.json", args, log) + .initialize() + .run() + + } +} diff --git a/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/datacite/DataciteToOAFTransformation.scala b/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/datacite/DataciteToOAFTransformation.scala index 45f5f9729..7603715b9 100644 --- a/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/datacite/DataciteToOAFTransformation.scala +++ b/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/datacite/DataciteToOAFTransformation.scala @@ -166,7 +166,7 @@ object DataciteToOAFTransformation { resourceTypeGeneral: String, schemaOrg: String, vocabularies: VocabularyGroup - ): (Qualifier, Qualifier) = { + ): (Qualifier, Qualifier, String) = { if (resourceType != null && resourceType.nonEmpty) { val typeQualifier = vocabularies.getSynonymAsQualifier(ModelConstants.DNET_PUBLICATION_RESOURCE, resourceType) @@ -176,7 +176,8 @@ object DataciteToOAFTransformation { vocabularies.getSynonymAsQualifier( ModelConstants.DNET_RESULT_TYPOLOGIES, typeQualifier.getClassid - ) + ), + resourceType ) } if (schemaOrg != null && schemaOrg.nonEmpty) { @@ -188,7 +189,8 @@ object DataciteToOAFTransformation { vocabularies.getSynonymAsQualifier( ModelConstants.DNET_RESULT_TYPOLOGIES, typeQualifier.getClassid - ) + ), + schemaOrg ) } @@ -203,7 +205,8 @@ object DataciteToOAFTransformation { vocabularies.getSynonymAsQualifier( ModelConstants.DNET_RESULT_TYPOLOGIES, typeQualifier.getClassid - ) + ), + resourceTypeGeneral ) } @@ -216,12 +219,18 @@ object DataciteToOAFTransformation { schemaOrg: String, vocabularies: VocabularyGroup ): Result = { - val typeQualifiers: (Qualifier, Qualifier) = + val typeQualifiers: (Qualifier, Qualifier, String) = getTypeQualifier(resourceType, resourceTypeGeneral, schemaOrg, vocabularies) if (typeQualifiers == null) return null val i = new Instance i.setInstancetype(typeQualifiers._1) + // ADD ORIGINAL TYPE + val itm = new InstanceTypeMapping + itm.setOriginalType(typeQualifiers._3) + itm.setVocabularyName(ModelConstants.OPENAIRE_COAR_RESOURCE_TYPES_3_1) + i.setInstanceTypeMapping(List(itm).asJava) + typeQualifiers._2.getClassname match { case "dataset" => val r = new OafDataset diff --git a/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/sx/bio/BioDBToOAF.scala b/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/sx/bio/BioDBToOAF.scala index c079f7537..df356548a 100644 --- a/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/sx/bio/BioDBToOAF.scala +++ b/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/sx/bio/BioDBToOAF.scala @@ -176,7 +176,7 @@ object BioDBToOAF { i.setUrl(List(s"${resolvedURL(input.pidType)}${input.pid}").asJava) } - if (input.pidType.equalsIgnoreCase("clinicaltrials.gov")) + if (input.pidType.equalsIgnoreCase("clinicaltrials.gov")) { i.setInstancetype( OafMapperUtils.qualifier( "0037", @@ -185,7 +185,11 @@ object BioDBToOAF { ModelConstants.DNET_PUBLICATION_RESOURCE ) ) - else + val itm = new InstanceTypeMapping + itm.setOriginalType(input.pidType) + itm.setVocabularyName(ModelConstants.OPENAIRE_COAR_RESOURCE_TYPES_3_1) + i.setInstanceTypeMapping(List(itm).asJava) + } else { i.setInstancetype( OafMapperUtils.qualifier( "0046", @@ -194,6 +198,11 @@ object BioDBToOAF { ModelConstants.DNET_PUBLICATION_RESOURCE ) ) + val itm = new InstanceTypeMapping + itm.setOriginalType("Bioentity") + itm.setVocabularyName(ModelConstants.OPENAIRE_COAR_RESOURCE_TYPES_3_1) + i.setInstanceTypeMapping(List(itm).asJava) + } if (input.datasource == null || input.datasource.isEmpty) return null @@ -265,6 +274,10 @@ object BioDBToOAF { ModelConstants.DNET_PUBLICATION_RESOURCE ) ) + val itm = new InstanceTypeMapping + itm.setOriginalType("Bioentity") + itm.setVocabularyName(ModelConstants.OPENAIRE_COAR_RESOURCE_TYPES_3_1) + i.setInstanceTypeMapping(List(itm).asJava) i.setCollectedfrom(collectedFromMap("uniprot")) d.setInstance(List(i).asJava) @@ -471,6 +484,10 @@ object BioDBToOAF { ModelConstants.DNET_PUBLICATION_RESOURCE ) ) + val itm = new InstanceTypeMapping + itm.setOriginalType("Bioentity") + itm.setVocabularyName(ModelConstants.OPENAIRE_COAR_RESOURCE_TYPES_3_1) + i.setInstanceTypeMapping(List(itm).asJava) i.setCollectedfrom(collectedFromMap("pdb")) d.setInstance(List(i).asJava) @@ -571,6 +588,10 @@ object BioDBToOAF { ModelConstants.DNET_PUBLICATION_RESOURCE ) ) + val itm = new InstanceTypeMapping + itm.setOriginalType("Bioentity") + itm.setVocabularyName(ModelConstants.OPENAIRE_COAR_RESOURCE_TYPES_3_1) + i.setInstanceTypeMapping(List(itm).asJava) i.setCollectedfrom(collectedFromMap("ebi")) d.setInstance(List(i).asJava) diff --git a/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/sx/bio/ebi/SparkCreateBaselineDataFrame.scala b/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/sx/bio/ebi/SparkCreateBaselineDataFrame.scala index 8ac8b00bf..639918151 100644 --- a/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/sx/bio/ebi/SparkCreateBaselineDataFrame.scala +++ b/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/sx/bio/ebi/SparkCreateBaselineDataFrame.scala @@ -2,9 +2,12 @@ package eu.dnetlib.dhp.sx.bio.ebi import eu.dnetlib.dhp.application.ArgumentApplicationParser import eu.dnetlib.dhp.collection.CollectionUtils +import eu.dnetlib.dhp.common.Constants.{MDSTORE_DATA_PATH, MDSTORE_SIZE_PATH} import eu.dnetlib.dhp.common.vocabulary.VocabularyGroup +import eu.dnetlib.dhp.schema.mdstore.MDStoreVersion import eu.dnetlib.dhp.schema.oaf.{Oaf, Result} import eu.dnetlib.dhp.sx.bio.pubmed._ +import eu.dnetlib.dhp.utils.DHPUtils.{MAPPER, writeHdfsFile} import eu.dnetlib.dhp.utils.ISLookupClientFactory import org.apache.commons.io.IOUtils import org.apache.hadoop.conf.Configuration @@ -164,11 +167,15 @@ object SparkCreateBaselineDataFrame { val workingPath = parser.get("workingPath") log.info("workingPath: {}", workingPath) - val targetPath = parser.get("targetPath") - log.info("targetPath: {}", targetPath) + val mdstoreOutputVersion = parser.get("mdstoreOutputVersion") + log.info("mdstoreOutputVersion: {}", mdstoreOutputVersion) + + val cleanedMdStoreVersion = MAPPER.readValue(mdstoreOutputVersion, classOf[MDStoreVersion]) + val outputBasePath = cleanedMdStoreVersion.getHdfsPath + log.info("outputBasePath: {}", outputBasePath) val hdfsServerUri = parser.get("hdfsServerUri") - log.info("hdfsServerUri: {}", targetPath) + log.info("hdfsServerUri: {}", hdfsServerUri) val skipUpdate = parser.get("skipUpdate") log.info("skipUpdate: {}", skipUpdate) @@ -216,8 +223,11 @@ object SparkCreateBaselineDataFrame { .map(a => PubMedToOaf.convert(a, vocabularies)) .as[Oaf] .filter(p => p != null), - targetPath + s"$outputBasePath/$MDSTORE_DATA_PATH" ) + val df = spark.read.text(s"$outputBasePath/$MDSTORE_DATA_PATH") + val mdStoreSize = df.count + writeHdfsFile(spark.sparkContext.hadoopConfiguration, s"$mdStoreSize", s"$outputBasePath/$MDSTORE_SIZE_PATH") } } diff --git a/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/sx/bio/pubmed/PubMedToOaf.scala b/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/sx/bio/pubmed/PubMedToOaf.scala index 410686f97..d59d73bd0 100644 --- a/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/sx/bio/pubmed/PubMedToOaf.scala +++ b/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/sx/bio/pubmed/PubMedToOaf.scala @@ -188,13 +188,24 @@ object PubMedToOaf { val cojbCategory = getVocabularyTerm(ModelConstants.DNET_PUBLICATION_RESOURCE, vocabularies, ja.get.getValue) pubmedInstance.setInstancetype(cojbCategory) + // ADD ORIGINAL TYPE to the publication + val itm = new InstanceTypeMapping + itm.setOriginalType(ja.get.getValue) + itm.setVocabularyName(ModelConstants.OPENAIRE_COAR_RESOURCE_TYPES_3_1) + pubmedInstance.setInstanceTypeMapping(List(itm).asJava) } else { val i_type = article.getPublicationTypes.asScala - .map(s => getVocabularyTerm(ModelConstants.DNET_PUBLICATION_RESOURCE, vocabularies, s.getValue)) - .find(q => q != null) - if (i_type.isDefined) - pubmedInstance.setInstancetype(i_type.get) - else + .map(s => (s.getValue, getVocabularyTerm(ModelConstants.DNET_PUBLICATION_RESOURCE, vocabularies, s.getValue))) + .find(q => q._2 != null) + + if (i_type.isDefined) { + pubmedInstance.setInstancetype(i_type.get._2) + // ADD ORIGINAL TYPE to the publication + val itm = new InstanceTypeMapping + itm.setOriginalType(i_type.get._1) + itm.setVocabularyName(ModelConstants.OPENAIRE_COAR_RESOURCE_TYPES_3_1) + pubmedInstance.setInstanceTypeMapping(List(itm).asJava) + } else return null } val result = createResult(pubmedInstance.getInstancetype, vocabularies) diff --git a/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/bipaffiliations/PrepareAffiliationRelationsTest.java b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/bipaffiliations/PrepareAffiliationRelationsTest.java new file mode 100644 index 000000000..b87738879 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/bipaffiliations/PrepareAffiliationRelationsTest.java @@ -0,0 +1,150 @@ + +package eu.dnetlib.dhp.actionmanager.bipaffiliations; + +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; + +import org.apache.commons.io.FileUtils; +import org.apache.hadoop.io.Text; +import org.apache.spark.SparkConf; +import org.apache.spark.api.java.JavaRDD; +import org.apache.spark.api.java.JavaSparkContext; +import org.apache.spark.sql.Dataset; +import org.apache.spark.sql.Encoders; +import org.apache.spark.sql.Row; +import org.apache.spark.sql.SparkSession; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import eu.dnetlib.dhp.schema.action.AtomicAction; +import eu.dnetlib.dhp.schema.common.ModelConstants; +import eu.dnetlib.dhp.schema.oaf.Relation; +import eu.dnetlib.dhp.schema.oaf.utils.CleaningFunctions; +import eu.dnetlib.dhp.schema.oaf.utils.IdentifierFactory; + +public class PrepareAffiliationRelationsTest { + + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + + private static SparkSession spark; + + private static Path workingDir; + private static final String ID_PREFIX = "50|doi_________::"; + private static final Logger log = LoggerFactory + .getLogger(PrepareAffiliationRelationsTest.class); + + @BeforeAll + public static void beforeAll() throws IOException { + workingDir = Files.createTempDirectory(PrepareAffiliationRelationsTest.class.getSimpleName()); + + log.info("Using work dir {}", workingDir); + + SparkConf conf = new SparkConf(); + conf.setAppName(PrepareAffiliationRelationsTest.class.getSimpleName()); + + conf.setMaster("local[*]"); + conf.set("spark.driver.host", "localhost"); + conf.set("hive.metastore.local", "true"); + conf.set("spark.ui.enabled", "false"); + conf.set("spark.sql.warehouse.dir", workingDir.toString()); + conf.set("hive.metastore.warehouse.dir", workingDir.resolve("warehouse").toString()); + + spark = SparkSession + .builder() + .appName(PrepareAffiliationRelationsTest.class.getSimpleName()) + .config(conf) + .getOrCreate(); + } + + @AfterAll + public static void afterAll() throws IOException { + FileUtils.deleteDirectory(workingDir.toFile()); + spark.stop(); + } + + @Test + void testMatch() throws Exception { + + String crossrefAffiliationRelationPath = getClass() + .getResource("/eu/dnetlib/dhp/actionmanager/bipaffiliations/doi_to_ror.json") + .getPath(); + + String pubmedAffiliationRelationsPath = getClass() + .getResource("/eu/dnetlib/dhp/actionmanager/bipaffiliations/doi_to_ror.json") + .getPath(); + + String outputPath = workingDir.toString() + "/actionSet"; + + PrepareAffiliationRelations + .main( + new String[] { + "-isSparkSessionManaged", Boolean.FALSE.toString(), + "-crossrefInputPath", crossrefAffiliationRelationPath, + "-pubmedInputPath", pubmedAffiliationRelationsPath, + "-outputPath", outputPath + }); + + final JavaSparkContext sc = new JavaSparkContext(spark.sparkContext()); + + JavaRDD tmp = sc + .sequenceFile(outputPath, Text.class, Text.class) + .map(value -> OBJECT_MAPPER.readValue(value._2().toString(), AtomicAction.class)) + .map(aa -> ((Relation) aa.getPayload())); + +// for (Relation r : tmp.collect()) { +// System.out.println( +// r.getSource() + "\t" + r.getTarget() + "\t" + r.getRelType() + "\t" + r.getRelClass() + "\t" + r.getSubRelType() + "\t" + r.getValidationDate() + "\t" + r.getDataInfo().getTrust() + "\t" + r.getDataInfo().getInferred() +// ); +// } + // count the number of relations + assertEquals(40, tmp.count()); + + Dataset dataset = spark.createDataset(tmp.rdd(), Encoders.bean(Relation.class)); + dataset.createOrReplaceTempView("result"); + + Dataset execVerification = spark + .sql("select r.relType, r.relClass, r.source, r.target, r.dataInfo.trust from result r"); + + // verify that we have equal number of bi-directional relations + Assertions + .assertEquals( + 20, execVerification + .filter( + "relClass='" + ModelConstants.HAS_AUTHOR_INSTITUTION + "'") + .collectAsList() + .size()); + + Assertions + .assertEquals( + 20, execVerification + .filter( + "relClass='" + ModelConstants.IS_AUTHOR_INSTITUTION_OF + "'") + .collectAsList() + .size()); + + // check confidence value of a specific relation + String sourceDOI = "10.1061/(asce)0733-9399(2002)128:7(759)"; + + final String sourceOpenaireId = ID_PREFIX + + IdentifierFactory.md5(CleaningFunctions.normalizePidValue("doi", sourceDOI)); + + Assertions + .assertEquals( + "0.7071067812", execVerification + .filter( + "source='" + sourceOpenaireId + "'") + .collectAsList() + .get(0) + .getString(4)); + + } +} diff --git a/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/bipfinder/SparkAtomicActionScoreJobTest.java b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/bipfinder/SparkAtomicActionScoreJobTest.java index be82b9fc3..542354836 100644 --- a/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/bipfinder/SparkAtomicActionScoreJobTest.java +++ b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/bipfinder/SparkAtomicActionScoreJobTest.java @@ -6,7 +6,8 @@ import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.List; + +import javax.xml.crypto.Data; import org.apache.commons.io.FileUtils; import org.apache.hadoop.io.Text; @@ -27,7 +28,9 @@ import org.slf4j.LoggerFactory; import com.fasterxml.jackson.databind.ObjectMapper; import eu.dnetlib.dhp.schema.action.AtomicAction; -import eu.dnetlib.dhp.schema.oaf.Publication; +import eu.dnetlib.dhp.schema.oaf.KeyValue; +import eu.dnetlib.dhp.schema.oaf.OafEntity; +import eu.dnetlib.dhp.schema.oaf.Project; import eu.dnetlib.dhp.schema.oaf.Result; public class SparkAtomicActionScoreJobTest { @@ -37,8 +40,8 @@ public class SparkAtomicActionScoreJobTest { private static SparkSession spark; private static Path workingDir; - private static final Logger log = LoggerFactory - .getLogger(SparkAtomicActionScoreJobTest.class); + + private static final Logger log = LoggerFactory.getLogger(SparkAtomicActionScoreJobTest.class); @BeforeAll public static void beforeAll() throws IOException { @@ -69,47 +72,64 @@ public class SparkAtomicActionScoreJobTest { spark.stop(); } - @Test - void testMatch() throws Exception { - String bipScoresPath = getClass() - .getResource("/eu/dnetlib/dhp/actionmanager/bipfinder/bip_scores_oid.json") - .getPath(); - + private void runJob(String resultsInputPath, String projectsInputPath, String outputPath) throws Exception { SparkAtomicActionScoreJob .main( new String[] { - "-isSparkSessionManaged", - Boolean.FALSE.toString(), - "-inputPath", - - bipScoresPath, - - "-outputPath", - workingDir.toString() + "/actionSet" + "-isSparkSessionManaged", Boolean.FALSE.toString(), + "-resultsInputPath", resultsInputPath, + "-projectsInputPath", projectsInputPath, + "-outputPath", outputPath, }); + } + + @Test + void testScores() throws Exception { + + String resultsInputPath = getClass() + .getResource("/eu/dnetlib/dhp/actionmanager/bipfinder/result_bip_scores.json") + .getPath(); + + String projectsInputPath = getClass() + .getResource("/eu/dnetlib/dhp/actionmanager/bipfinder/project_bip_scores.json") + .getPath(); + + String outputPath = workingDir.toString() + "/actionSet"; + + // execute the job to generate the action sets for result scores + runJob(resultsInputPath, projectsInputPath, outputPath); final JavaSparkContext sc = new JavaSparkContext(spark.sparkContext()); - JavaRDD tmp = sc - .sequenceFile(workingDir.toString() + "/actionSet", Text.class, Text.class) + JavaRDD tmp = sc + .sequenceFile(outputPath, Text.class, Text.class) .map(value -> OBJECT_MAPPER.readValue(value._2().toString(), AtomicAction.class)) - .map(aa -> ((Result) aa.getPayload())); + .map(aa -> ((OafEntity) aa.getPayload())); - assertEquals(4, tmp.count()); + assertEquals(8, tmp.count()); - Dataset verificationDataset = spark.createDataset(tmp.rdd(), Encoders.bean(Result.class)); + Dataset verificationDataset = spark.createDataset(tmp.rdd(), Encoders.bean(OafEntity.class)); verificationDataset.createOrReplaceTempView("result"); - Dataset execVerification = spark + Dataset testDataset = spark .sql( "Select p.id oaid, mes.id, mUnit.value from result p " + "lateral view explode(measures) m as mes " + "lateral view explode(mes.unit) u as mUnit "); - Assertions.assertEquals(12, execVerification.count()); +// execVerification.show(); + + Assertions.assertEquals(28, testDataset.count()); + + assertResultImpactScores(testDataset); + assertProjectImpactScores(testDataset); + + } + + void assertResultImpactScores(Dataset testDataset) { Assertions .assertEquals( - "6.63451994567e-09", execVerification + "6.63451994567e-09", testDataset .filter( "oaid='50|arXiv_dedup_::4a2d5fd8d71daec016c176ec71d957b1' " + "and id = 'influence'") @@ -119,7 +139,7 @@ public class SparkAtomicActionScoreJobTest { .getString(0)); Assertions .assertEquals( - "0.348694533145", execVerification + "0.348694533145", testDataset .filter( "oaid='50|arXiv_dedup_::4a2d5fd8d71daec016c176ec71d957b1' " + "and id = 'popularity_alt'") @@ -129,7 +149,7 @@ public class SparkAtomicActionScoreJobTest { .getString(0)); Assertions .assertEquals( - "2.16094680115e-09", execVerification + "2.16094680115e-09", testDataset .filter( "oaid='50|arXiv_dedup_::4a2d5fd8d71daec016c176ec71d957b1' " + "and id = 'popularity'") @@ -137,7 +157,49 @@ public class SparkAtomicActionScoreJobTest { .collectAsList() .get(0) .getString(0)); - } + void assertProjectImpactScores(Dataset testDataset) throws Exception { + + Assertions + .assertEquals( + "0", testDataset + .filter( + "oaid='40|nih_________::c02a8233e9b60f05bb418f0c9b714833' " + + "and id = 'numOfInfluentialResults'") + .select("value") + .collectAsList() + .get(0) + .getString(0)); + Assertions + .assertEquals( + "1", testDataset + .filter( + "oaid='40|nih_________::c02a8233e9b60f05bb418f0c9b714833' " + + "and id = 'numOfPopularResults'") + .select("value") + .collectAsList() + .get(0) + .getString(0)); + Assertions + .assertEquals( + "25", testDataset + .filter( + "oaid='40|nih_________::c02a8233e9b60f05bb418f0c9b714833' " + + "and id = 'totalImpulse'") + .select("value") + .collectAsList() + .get(0) + .getString(0)); + Assertions + .assertEquals( + "43", testDataset + .filter( + "oaid='40|nih_________::c02a8233e9b60f05bb418f0c9b714833' " + + "and id = 'totalCitationCount'") + .select("value") + .collectAsList() + .get(0) + .getString(0)); + } } diff --git a/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/GetFosTest.java b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/GetFosTest.java index 7e0acc2bb..d4fe129df 100644 --- a/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/GetFosTest.java +++ b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/GetFosTest.java @@ -13,10 +13,7 @@ import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.sql.SparkSession; -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -68,6 +65,7 @@ public class GetFosTest { } @Test + @Disabled void test3() throws Exception { final String sourcePath = getClass() .getResource("/eu/dnetlib/dhp/actionmanager/createunresolvedentities/fos/fos_sbs.tsv") @@ -96,4 +94,37 @@ public class GetFosTest { tmp.foreach(t -> Assertions.assertTrue(t.getLevel3() != null)); } + + @Test + void test4() throws Exception { + final String sourcePath = getClass() + .getResource("/eu/dnetlib/dhp/actionmanager/createunresolvedentities/fos/fos_sbs2.csv") + .getPath(); + + final String outputPath = workingDir.toString() + "/fos.json"; + GetFOSSparkJob + .main( + new String[] { + "--isSparkSessionManaged", Boolean.FALSE.toString(), + "--sourcePath", sourcePath, + "--delimiter", ",", + "-outputPath", outputPath + + }); + + final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); + + JavaRDD tmp = sc + .textFile(outputPath) + .map(item -> OBJECT_MAPPER.readValue(item, FOSDataModel.class)); + + tmp.foreach(t -> Assertions.assertTrue(t.getDoi() != null)); + tmp.foreach(t -> Assertions.assertTrue(t.getLevel1() != null)); + tmp.foreach(t -> Assertions.assertTrue(t.getLevel2() != null)); + tmp.foreach(t -> Assertions.assertTrue(t.getLevel3() != null)); + tmp.foreach(t -> Assertions.assertTrue(t.getLevel4() != null)); + tmp.foreach(t -> Assertions.assertTrue(t.getScoreL3() != null)); + tmp.foreach(t -> Assertions.assertTrue(t.getScoreL4() != null)); + + } } diff --git a/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/PrepareTest.java b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/PrepareTest.java index cc8108bde..da7bcd3de 100644 --- a/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/PrepareTest.java +++ b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/PrepareTest.java @@ -67,92 +67,6 @@ public class PrepareTest { spark.stop(); } - @Test - void bipPrepareTest() throws Exception { - final String sourcePath = getClass() - .getResource("/eu/dnetlib/dhp/actionmanager/createunresolvedentities/bip/bip.json") - .getPath(); - - PrepareBipFinder - .main( - new String[] { - "--isSparkSessionManaged", Boolean.FALSE.toString(), - "--sourcePath", sourcePath, - "--outputPath", workingDir.toString() + "/work" - - }); - - final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); - - JavaRDD tmp = sc - .textFile(workingDir.toString() + "/work/bip") - .map(item -> OBJECT_MAPPER.readValue(item, Result.class)); - - Assertions.assertEquals(86, tmp.count()); - - String doi1 = "unresolved::10.0000/096020199389707::doi"; - - Assertions.assertEquals(1, tmp.filter(r -> r.getId().equals(doi1)).count()); - Assertions.assertEquals(1, tmp.filter(r -> r.getId().equals(doi1)).collect().get(0).getInstance().size()); - Assertions - .assertEquals( - 3, tmp.filter(r -> r.getId().equals(doi1)).collect().get(0).getInstance().get(0).getMeasures().size()); - Assertions - .assertEquals( - "6.34596412687e-09", tmp - .filter(r -> r.getId().equals(doi1)) - .collect() - .get(0) - .getInstance() - .get(0) - .getMeasures() - .stream() - .filter(sl -> sl.getId().equals("influence")) - .collect(Collectors.toList()) - .get(0) - .getUnit() - .get(0) - .getValue()); - Assertions - .assertEquals( - "0.641151896994", tmp - .filter(r -> r.getId().equals(doi1)) - .collect() - .get(0) - .getInstance() - .get(0) - .getMeasures() - .stream() - .filter(sl -> sl.getId().equals("popularity_alt")) - .collect(Collectors.toList()) - .get(0) - .getUnit() - .get(0) - .getValue()); - Assertions - .assertEquals( - "2.33375102921e-09", tmp - .filter(r -> r.getId().equals(doi1)) - .collect() - .get(0) - .getInstance() - .get(0) - .getMeasures() - .stream() - .filter(sl -> sl.getId().equals("popularity")) - .collect(Collectors.toList()) - .get(0) - .getUnit() - .get(0) - .getValue()); - - final String doi2 = "unresolved::10.3390/s18072310::doi"; - - Assertions.assertEquals(1, tmp.filter(r -> r.getId().equals(doi2)).count()); - Assertions.assertEquals(1, tmp.filter(r -> r.getId().equals(doi2)).collect().get(0).getInstance().size()); - - } - @Test void fosPrepareTest() throws Exception { final String sourcePath = getClass() @@ -222,6 +136,76 @@ public class PrepareTest { } + @Test + void fosPrepareTest2() throws Exception { + final String sourcePath = getClass() + .getResource("/eu/dnetlib/dhp/actionmanager/createunresolvedentities/fos/fos_sbs_2.json") + .getPath(); + + PrepareFOSSparkJob + .main( + new String[] { + "--isSparkSessionManaged", Boolean.FALSE.toString(), + "--sourcePath", sourcePath, + + "-outputPath", workingDir.toString() + "/work" + + }); + + final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); + + JavaRDD tmp = sc + .textFile(workingDir.toString() + "/work/fos") + .map(item -> OBJECT_MAPPER.readValue(item, Result.class)); + + String doi1 = "unresolved::10.1016/j.revmed.2006.07.012::doi"; + + assertEquals(13, tmp.count()); + assertEquals(1, tmp.filter(row -> row.getId().equals(doi1)).count()); + + Result result = tmp + .filter(r -> r.getId().equals(doi1)) + .first(); + + result.getSubject().forEach(s -> System.out.println(s.getValue() + " trust = " + s.getDataInfo().getTrust())); + Assertions.assertEquals(6, result.getSubject().size()); + + assertTrue( + result + .getSubject() + .stream() + .anyMatch( + s -> s.getValue().contains("03 medical and health sciences") + && s.getDataInfo().getTrust().equals(""))); + + assertTrue( + result + .getSubject() + .stream() + .anyMatch( + s -> s.getValue().contains("0302 clinical medicine") && s.getDataInfo().getTrust().equals(""))); + + assertTrue( + result + .getSubject() + .stream() + .anyMatch( + s -> s + .getValue() + .contains("030204 cardiovascular system & hematology") + && s.getDataInfo().getTrust().equals("0.5101401805877686"))); + assertTrue( + result + .getSubject() + .stream() + .anyMatch( + s -> s + .getValue() + .contains("03020409 Hematology/Coagulopathies") + && s.getDataInfo().getTrust().equals("0.0546871414174914"))); + + } + @Test void sdgPrepareTest() throws Exception { final String sourcePath = getClass() @@ -268,57 +252,4 @@ public class PrepareTest { } -// @Test -// void test3() throws Exception { -// final String sourcePath = "/Users/miriam.baglioni/Downloads/doi_fos_results_20_12_2021.csv.gz"; -// -// final String outputPath = workingDir.toString() + "/fos.json"; -// GetFOSSparkJob -// .main( -// new String[] { -// "--isSparkSessionManaged", Boolean.FALSE.toString(), -// "--sourcePath", sourcePath, -// -// "-outputPath", outputPath -// -// }); -// -// final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); -// -// JavaRDD tmp = sc -// .textFile(outputPath) -// .map(item -> OBJECT_MAPPER.readValue(item, FOSDataModel.class)); -// -// tmp.foreach(t -> Assertions.assertTrue(t.getDoi() != null)); -// tmp.foreach(t -> Assertions.assertTrue(t.getLevel1() != null)); -// tmp.foreach(t -> Assertions.assertTrue(t.getLevel2() != null)); -// tmp.foreach(t -> Assertions.assertTrue(t.getLevel3() != null)); -// -// } -// -// @Test -// void test4() throws Exception { -// final String sourcePath = "/Users/miriam.baglioni/Downloads/doi_sdg_results_20_12_21.csv.gz"; -// -// final String outputPath = workingDir.toString() + "/sdg.json"; -// GetSDGSparkJob -// .main( -// new String[] { -// "--isSparkSessionManaged", Boolean.FALSE.toString(), -// "--sourcePath", sourcePath, -// -// "-outputPath", outputPath -// -// }); -// -// final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); -// -// JavaRDD tmp = sc -// .textFile(outputPath) -// .map(item -> OBJECT_MAPPER.readValue(item, SDGDataModel.class)); -// -// tmp.foreach(t -> Assertions.assertTrue(t.getDoi() != null)); -// tmp.foreach(t -> Assertions.assertTrue(t.getSbj() != null)); -// -// } } diff --git a/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/ProduceTest.java b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/ProduceTest.java index c3c110f09..ce116688a 100644 --- a/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/ProduceTest.java +++ b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/createunresolvedentities/ProduceTest.java @@ -340,18 +340,7 @@ public class ProduceTest { } private JavaRDD getResultJavaRDD() throws Exception { - final String bipPath = getClass() - .getResource("/eu/dnetlib/dhp/actionmanager/createunresolvedentities/bip/bip.json") - .getPath(); - PrepareBipFinder - .main( - new String[] { - "--isSparkSessionManaged", Boolean.FALSE.toString(), - "--sourcePath", bipPath, - "--outputPath", workingDir.toString() + "/work" - - }); final String fosPath = getClass() .getResource("/eu/dnetlib/dhp/actionmanager/createunresolvedentities/fos/fos.json") .getPath(); @@ -379,6 +368,40 @@ public class ProduceTest { .map(item -> OBJECT_MAPPER.readValue(item, Result.class)); } + @Test + public JavaRDD getResultFosJavaRDD() throws Exception { + + final String fosPath = getClass() + .getResource("/eu/dnetlib/dhp/actionmanager/createunresolvedentities/fos/fos_sbs_2.json") + .getPath(); + + PrepareFOSSparkJob + .main( + new String[] { + "--isSparkSessionManaged", Boolean.FALSE.toString(), + "--sourcePath", fosPath, + "-outputPath", workingDir.toString() + "/work" + }); + + SparkSaveUnresolved.main(new String[] { + "--isSparkSessionManaged", Boolean.FALSE.toString(), + "--sourcePath", workingDir.toString() + "/work", + + "-outputPath", workingDir.toString() + "/unresolved" + + }); + + final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); + + JavaRDD tmp = sc + .textFile(workingDir.toString() + "/unresolved") + .map(item -> OBJECT_MAPPER.readValue(item, Result.class)); + tmp.foreach(r -> System.out.println(new ObjectMapper().writeValueAsString(r))); + + return tmp; + + } + @Test void prepareTest5Subjects() throws Exception { final String doi = "unresolved::10.1063/5.0032658::doi"; @@ -415,18 +438,7 @@ public class ProduceTest { } private JavaRDD getResultJavaRDDPlusSDG() throws Exception { - final String bipPath = getClass() - .getResource("/eu/dnetlib/dhp/actionmanager/createunresolvedentities/bip/bip.json") - .getPath(); - PrepareBipFinder - .main( - new String[] { - "--isSparkSessionManaged", Boolean.FALSE.toString(), - "--sourcePath", bipPath, - "--outputPath", workingDir.toString() + "/work" - - }); final String fosPath = getClass() .getResource("/eu/dnetlib/dhp/actionmanager/createunresolvedentities/fos/fos.json") .getPath(); @@ -483,14 +495,6 @@ public class ProduceTest { .filter(row -> row.getSubject() != null) .count()); - Assertions - .assertEquals( - 85, - tmp - .filter(row -> !row.getId().equals(doi)) - .filter(r -> r.getInstance() != null && r.getInstance().size() > 0) - .count()); - } @Test diff --git a/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/collection/orcid/DownloadORCIDTest.java b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/collection/orcid/DownloadORCIDTest.java new file mode 100644 index 000000000..868f4e92d --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/collection/orcid/DownloadORCIDTest.java @@ -0,0 +1,119 @@ + +package eu.dnetlib.dhp.collection.orcid; + +import java.io.IOException; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; + +import org.apache.commons.io.IOUtils; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.io.Text; +import org.apache.spark.SparkContext; +import org.apache.spark.api.java.JavaSparkContext; +import org.apache.spark.sql.Encoders; +import org.apache.spark.sql.SparkSession; +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.ximpleware.NavException; +import com.ximpleware.ParseException; +import com.ximpleware.XPathEvalException; +import com.ximpleware.XPathParseException; + +import eu.dnetlib.dhp.collection.orcid.model.Author; +import eu.dnetlib.dhp.collection.orcid.model.ORCIDItem; +import eu.dnetlib.dhp.parser.utility.VtdException; + +public class DownloadORCIDTest { + private final Logger log = LoggerFactory.getLogger(DownloadORCIDTest.class); + + @Test + public void testSummary() throws Exception { + final String xml = IOUtils + .toString( + Objects.requireNonNull(getClass().getResourceAsStream("/eu/dnetlib/dhp/collection/orcid/summary.xml"))); + + final OrcidParser parser = new OrcidParser(); + ORCIDItem orcidItem = parser.parseSummary(xml); + + final ObjectMapper mapper = new ObjectMapper(); + System.out.println(mapper.writeValueAsString(orcidItem)); + + } + + @Test + public void testParsingWork() throws Exception { + + final List works_path = Arrays + .asList( + "/eu/dnetlib/dhp/collection/orcid/activity_work_0000-0002-2536-4498.xml", + "/eu/dnetlib/dhp/collection/orcid/activity_work_0000-0002-5982-8983.xml", + "/eu/dnetlib/dhp/collection/orcid/activity_work_0000-0003-2760-1191.xml", + "/eu/dnetlib/dhp/collection/orcid/activity_work_0000-0003-2760-1191-similarity.xml", + "/eu/dnetlib/dhp/collection/orcid/activity_work_0000-0003-2760-1191_contributors.xml" + + ); + + final OrcidParser parser = new OrcidParser(); + final ObjectMapper mapper = new ObjectMapper(); + works_path.stream().map(s -> { + try { + return IOUtils + .toString( + Objects + .requireNonNull( + getClass() + .getResourceAsStream( + s))); + } catch (IOException e) { + throw new RuntimeException(e); + } + }).forEach(s -> { + try { + System.out.println(mapper.writeValueAsString(parser.parseWork(s))); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + } + + @Test + public void testParsingEmployments() throws Exception { + + final List works_path = Arrays + .asList( + "/eu/dnetlib/dhp/collection/orcid/employment.xml", + "/eu/dnetlib/dhp/collection/orcid/employment_2.xml", + "/eu/dnetlib/dhp/collection/orcid/employment_3.xml" + + ); + + final OrcidParser parser = new OrcidParser(); + final ObjectMapper mapper = new ObjectMapper(); + works_path.stream().map(s -> { + try { + return IOUtils + .toString( + Objects + .requireNonNull( + getClass() + .getResourceAsStream( + s))); + } catch (IOException e) { + throw new RuntimeException(e); + } + }).forEach(s -> { + try { + System.out.println(mapper.writeValueAsString(parser.parseEmployment(s))); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + } + +} diff --git a/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/bipaffiliations/doi_to_ror.json b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/bipaffiliations/doi_to_ror.json new file mode 100644 index 000000000..985a8d14b --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/bipaffiliations/doi_to_ror.json @@ -0,0 +1,7 @@ +{"DOI":"10.1061\/(asce)0733-9399(2002)128:7(759)","Matchings":[{"RORid":"https:\/\/ror.org\/03yxnpp24","Confidence":0.7071067812},{"RORid":"https:\/\/ror.org\/01teme464","Confidence":0.89}]} +{"DOI":"10.1105\/tpc.8.3.343","Matchings":[{"RORid":"https:\/\/ror.org\/02k40bc56","Confidence":0.7071067812}]} +{"DOI":"10.1161\/01.cir.0000013305.01850.37","Matchings":[{"RORid":"https:\/\/ror.org\/00qjgza05","Confidence":1}]} +{"DOI":"10.1142\/s021821650200186x","Matchings":[{"RORid":"https:\/\/ror.org\/035xkbk20","Confidence":1},{"RORid":"https:\/\/ror.org\/05apxxy63","Confidence":1}]} +{"DOI":"10.1061\/(asce)0733-9372(2002)128:7(575)","Matchings":[{"RORid":"https:\/\/ror.org\/04j198w64","Confidence":0.82}]} +{"DOI":"10.1061\/(asce)0733-9372(2002)128:7(588)","Matchings":[{"RORid":"https:\/\/ror.org\/03m8km719","Confidence":0.8660254038},{"RORid":"https:\/\/ror.org\/02aze4h65","Confidence":0.87}]} +{"DOI":"10.1161\/hy0202.103001","Matchings":[{"RORid":"https:\/\/ror.org\/057xtrt18","Confidence":0.7071067812}]} \ No newline at end of file diff --git a/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/bipfinder/project_bip_scores.json b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/bipfinder/project_bip_scores.json new file mode 100644 index 000000000..096268287 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/bipfinder/project_bip_scores.json @@ -0,0 +1,4 @@ +{"projectId":"40|nsf_________::d93e50d22374a1cf59f6a232413ea027","numOfInfluentialResults":0,"numOfPopularResults":10,"totalImpulse":181,"totalCitationCount":235} +{"projectId":"40|nih_________::1c93debc7085e440f245fbe70b2e8b21","numOfInfluentialResults":14,"numOfPopularResults":17,"totalImpulse":1558,"totalCitationCount":4226} +{"projectId":"40|nih_________::c02a8233e9b60f05bb418f0c9b714833","numOfInfluentialResults":0,"numOfPopularResults":1,"totalImpulse":25,"totalCitationCount":43} +{"projectId":"40|corda_______::d91dcf3a87dd7f72248fab0b8a4ba273","numOfInfluentialResults":2,"numOfPopularResults":3,"totalImpulse":78,"totalCitationCount":178} \ No newline at end of file diff --git a/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/bipfinder/bip_scores_oid.json b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/bipfinder/result_bip_scores.json similarity index 100% rename from dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/bipfinder/bip_scores_oid.json rename to dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/bipfinder/result_bip_scores.json diff --git a/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/createunresolvedentities/fos/fos_sbs2.csv b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/createunresolvedentities/fos/fos_sbs2.csv new file mode 100644 index 000000000..3b1f2304f --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/createunresolvedentities/fos/fos_sbs2.csv @@ -0,0 +1,26 @@ +DOI,OAID,level1,level2,level3,level4,score_for_L3,score_for_L4 +10.1016/j.anucene.2006.02.004,doi_________::00059d9963edf633bec756fb21b5bd72,02 engineering and technology,"0202 electrical engineering, electronic engineering, information engineering",020209 energy,02020908 Climate change policy/Ethanol fuel,0.5,0.5 +10.1016/j.anucene.2006.02.004,doi_________::00059d9963edf633bec756fb21b5bd72,02 engineering and technology,0211 other engineering and technologies,021108 energy,02110808 Climate change policy/Ethanol fuel,0.5,0.5 +10.1016/j.revmed.2006.07.010,doi_________::0026476c1651a92c933d752ff12496c7,03 medical and health sciences,0302 clinical medicine,030220 oncology & carcinogenesis,N/A,0.5036656856536865,0.0 +10.1016/j.revmed.2006.07.010,doi_________::0026476c1651a92c933d752ff12496c7,03 medical and health sciences,0302 clinical medicine,030212 general & internal medicine,N/A,0.4963343143463135,0.0 +10.20965/jrm.2006.p0312,doi_________::0028336a2f3826cc83c47dbefac71543,02 engineering and technology,0209 industrial biotechnology,020901 industrial engineering & automation,02090104 Robotics/Robots,0.6111094951629639,0.5053805979936855 +10.20965/jrm.2006.p0312,doi_________::0028336a2f3826cc83c47dbefac71543,01 natural sciences,0104 chemical sciences,010401 analytical chemistry,N/A,0.3888905048370361,0.0 +10.1111/j.1747-7379.2006.040_1.x,doi_________::002c7077e7c114a8304eb90f59e45fa4,05 social sciences,0506 political science,050602 political science & public administration,05060202 Ethnic groups/Ethnicity,0.6159052848815918,0.7369035568037298 +10.1111/j.1747-7379.2006.040_1.x,doi_________::002c7077e7c114a8304eb90f59e45fa4,05 social sciences,0502 economics and business,050207 economics,N/A,0.3840946555137634,0.0 +10.1007/s10512-006-0049-9,doi_________::003f29f9254819cf4c78558b1bc25f10,02 engineering and technology,"0202 electrical engineering, electronic engineering, information engineering",020209 energy,02020908 Climate change policy/Ethanol fuel,0.5,0.5 +10.1007/s10512-006-0049-9,doi_________::003f29f9254819cf4c78558b1bc25f10,02 engineering and technology,0211 other engineering and technologies,021108 energy,02110808 Climate change policy/Ethanol fuel,0.5,0.5 +10.1111/j.1365-2621.2005.01045.x,doi_________::00419355b4c3e0646bd0e1b301164c8e,04 agricultural and veterinary sciences,0404 agricultural biotechnology,040401 food science,04040102 Food science/Food industry,0.5,0.5 +10.1111/j.1365-2621.2005.01045.x,doi_________::00419355b4c3e0646bd0e1b301164c8e,04 agricultural and veterinary sciences,0405 other agricultural sciences,040502 food science,04050202 Food science/Food industry,0.5,0.5 +10.1002/chin.200617262,doi_________::004c8cef80668904961b9e62841793c8,01 natural sciences,0104 chemical sciences,010405 organic chemistry,01040508 Functional groups/Ethers,0.5566747188568115,0.5582916736602783 +10.1002/chin.200617262,doi_________::004c8cef80668904961b9e62841793c8,01 natural sciences,0104 chemical sciences,010402 general chemistry,01040207 Chemical synthesis/Total synthesis,0.4433253407478332,0.4417082965373993 +10.1016/j.revmed.2006.07.012,doi_________::005b1d0fb650b680abaf6cfe26a21604,03 medical and health sciences,0302 clinical medicine,030204 cardiovascular system & hematology,03020409 Hematology/Coagulopathies,0.5101401805877686,0.0546871414174914 +10.1016/j.revmed.2006.07.012,doi_________::005b1d0fb650b680abaf6cfe26a21604,03 medical and health sciences,0301 basic medicine,030105 genetics & heredity,N/A,0.4898599088191986,0.0 +10.4109/jslab.17.132,doi_________::00889baa06de363e37930daaf8e800c0,03 medical and health sciences,0301 basic medicine,030104 developmental biology,N/A,0.5,0.0 +10.4109/jslab.17.132,doi_________::00889baa06de363e37930daaf8e800c0,03 medical and health sciences,0303 health sciences,030304 developmental biology,N/A,0.5,0.0 +10.1108/00251740610715687,doi_________::0092cb1b1920d556719385a26363ecaa,05 social sciences,0502 economics and business,050203 business & management,05020311 International business/International trade,0.605047881603241,0.2156608108845153 +10.1108/00251740610715687,doi_________::0092cb1b1920d556719385a26363ecaa,05 social sciences,0502 economics and business,050211 marketing,N/A,0.394952118396759,0.0 +10.1080/03067310500248098,doi_________::00a76678d230e3f20b6356804448028f,04 agricultural and veterinary sciences,0404 agricultural biotechnology,040401 food science,04040102 Food science/Food industry,0.5,0.5 +10.1080/03067310500248098,doi_________::00a76678d230e3f20b6356804448028f,04 agricultural and veterinary sciences,0405 other agricultural sciences,040502 food science,04050202 Food science/Food industry,0.5,0.5 +10.3152/147154306781778533,doi_________::00acc520f3939e5a6675343881fed4f2,05 social sciences,0502 economics and business,050203 business & management,05020307 Innovation/Product management,0.5293408632278442,0.5326762795448303 +10.3152/147154306781778533,doi_________::00acc520f3939e5a6675343881fed4f2,05 social sciences,0509 other social sciences,050905 science studies,05090502 Social philosophy/Capitalism,0.4706590473651886,0.4673237204551697 +10.1785/0120050806,doi_________::00d5831d329e7ae4523d78bfc3042e98,02 engineering and technology,0211 other engineering and technologies,021101 geological & geomatics engineering,02110103 Concrete/Building materials,0.5343400835990906,0.3285667930180677 \ No newline at end of file diff --git a/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/createunresolvedentities/fos/fos_sbs_2.json b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/createunresolvedentities/fos/fos_sbs_2.json new file mode 100644 index 000000000..00ffad70c --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/createunresolvedentities/fos/fos_sbs_2.json @@ -0,0 +1,25 @@ +{"doi":"10.1016/j.anucene.2006.02.004","level1":"02 engineering and technology","level2":"0202 electrical engineering, electronic engineering, information engineering","level3":"020209 energy","level4":"02020908 Climate change policy/Ethanol fuel","scoreL3":"0.5","scoreL4":"0.5"} +{"doi":"10.1016/j.anucene.2006.02.004","level1":"02 engineering and technology","level2":"0211 other engineering and technologies","level3":"021108 energy","level4":"02110808 Climate change policy/Ethanol fuel","scoreL3":"0.5","scoreL4":"0.5"} +{"doi":"10.1016/j.revmed.2006.07.010","level1":"03 medical and health sciences","level2":"0302 clinical medicine","level3":"030220 oncology & carcinogenesis","level4":"N/A","scoreL3":"0.5036656856536865","scoreL4":"0.0"} +{"doi":"10.1016/j.revmed.2006.07.010","level1":"03 medical and health sciences","level2":"0302 clinical medicine","level3":"030212 general & internal medicine","level4":"N/A","scoreL3":"0.4963343143463135","scoreL4":"0.0"} +{"doi":"10.20965/jrm.2006.p0312","level1":"02 engineering and technology","level2":"0209 industrial biotechnology","level3":"020901 industrial engineering & automation","level4":"02090104 Robotics/Robots","scoreL3":"0.6111094951629639","scoreL4":"0.5053805979936855"} +{"doi":"10.20965/jrm.2006.p0312","level1":"01 natural sciences","level2":"0104 chemical sciences","level3":"010401 analytical chemistry","level4":"N/A","scoreL3":"0.3888905048370361","scoreL4":"0.0"} +{"doi":"10.1111/j.1747-7379.2006.040_1.x","level1":"05 social sciences","level2":"0506 political science","level3":"050602 political science & public administration","level4":"05060202 Ethnic groups/Ethnicity","scoreL3":"0.6159052848815918","scoreL4":"0.7369035568037298"} +{"doi":"10.1111/j.1747-7379.2006.040_1.x","level1":"05 social sciences","level2":"0502 economics and business","level3":"050207 economics","level4":"N/A","scoreL3":"0.3840946555137634","scoreL4":"0.0"} +{"doi":"10.1007/s10512-006-0049-9","level1":"02 engineering and technology","level2":"0202 electrical engineering, electronic engineering, information engineering","level3":"020209 energy","level4":"02020908 Climate change policy/Ethanol fuel","scoreL3":"0.5","scoreL4":"0.5"} +{"doi":"10.1007/s10512-006-0049-9","level1":"02 engineering and technology","level2":"0211 other engineering and technologies","level3":"021108 energy","level4":"02110808 Climate change policy/Ethanol fuel","scoreL3":"0.5","scoreL4":"0.5"} +{"doi":"10.1111/j.1365-2621.2005.01045.x","level1":"04 agricultural and veterinary sciences","level2":"0404 agricultural biotechnology","level3":"040401 food science","level4":"04040102 Food science/Food industry","scoreL3":"0.5","scoreL4":"0.5"} +{"doi":"10.1111/j.1365-2621.2005.01045.x","level1":"04 agricultural and veterinary sciences","level2":"0405 other agricultural sciences","level3":"040502 food science","level4":"04050202 Food science/Food industry","scoreL3":"0.5","scoreL4":"0.5"} +{"doi":"10.1002/chin.200617262","level1":"01 natural sciences","level2":"0104 chemical sciences","level3":"010405 organic chemistry","level4":"01040508 Functional groups/Ethers","scoreL3":"0.5566747188568115","scoreL4":"0.5582916736602783"} +{"doi":"10.1002/chin.200617262","level1":"01 natural sciences","level2":"0104 chemical sciences","level3":"010402 general chemistry","level4":"01040207 Chemical synthesis/Total synthesis","scoreL3":"0.4433253407478332","scoreL4":"0.4417082965373993"} +{"doi":"10.1016/j.revmed.2006.07.012","level1":"03 medical and health sciences","level2":"0302 clinical medicine","level3":"030204 cardiovascular system & hematology","level4":"03020409 Hematology/Coagulopathies","scoreL3":"0.5101401805877686","scoreL4":"0.0546871414174914"} +{"doi":"10.1016/j.revmed.2006.07.012","level1":"03 medical and health sciences","level2":"0301 basic medicine","level3":"030105 genetics & heredity","level4":"N/A","scoreL3":"0.4898599088191986","scoreL4":"0.0"} +{"doi":"10.4109/jslab.17.132","level1":"03 medical and health sciences","level2":"0301 basic medicine","level3":"030104 developmental biology","level4":"N/A","scoreL3":"0.5","scoreL4":"0.0"} +{"doi":"10.4109/jslab.17.132","level1":"03 medical and health sciences","level2":"0303 health sciences","level3":"030304 developmental biology","level4":"N/A","scoreL3":"0.5","scoreL4":"0.0"} +{"doi":"10.1108/00251740610715687","level1":"05 social sciences","level2":"0502 economics and business","level3":"050203 business & management","level4":"05020311 International business/International trade","scoreL3":"0.605047881603241","scoreL4":"0.2156608108845153"} +{"doi":"10.1108/00251740610715687","level1":"05 social sciences","level2":"0502 economics and business","level3":"050211 marketing","level4":"N/A","scoreL3":"0.394952118396759","scoreL4":"0.0"} +{"doi":"10.1080/03067310500248098","level1":"04 agricultural and veterinary sciences","level2":"0404 agricultural biotechnology","level3":"040401 food science","level4":"04040102 Food science/Food industry","scoreL3":"0.5","scoreL4":"0.5"} +{"doi":"10.1080/03067310500248098","level1":"04 agricultural and veterinary sciences","level2":"0405 other agricultural sciences","level3":"040502 food science","level4":"04050202 Food science/Food industry","scoreL3":"0.5","scoreL4":"0.5"} +{"doi":"10.3152/147154306781778533","level1":"05 social sciences","level2":"0502 economics and business","level3":"050203 business & management","level4":"05020307 Innovation/Product management","scoreL3":"0.5293408632278442","scoreL4":"0.5326762795448303"} +{"doi":"10.3152/147154306781778533","level1":"05 social sciences","level2":"0509 other social sciences","level3":"050905 science studies","level4":"05090502 Social philosophy/Capitalism","scoreL3":"0.4706590473651886","scoreL4":"0.4673237204551697"} +{"doi":"10.1785/0120050806","level1":"02 engineering and technology","level2":"0211 other engineering and technologies","level3":"021101 geological & geomatics engineering","level4":"02110103 Concrete/Building materials","scoreL3":"0.5343400835990906","scoreL4":"0.3285667930180677"} diff --git a/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/activity_work_0000-0002-2536-4498.xml b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/activity_work_0000-0002-2536-4498.xml new file mode 100644 index 000000000..2c89b83f6 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/activity_work_0000-0002-2536-4498.xml @@ -0,0 +1,69 @@ + + + 2016-09-01T19:22:46.768Z + 2022-05-25T03:48:56.968Z + + + https://orcid.org/client/0000-0002-5982-8983 + 0000-0002-5982-8983 + orcid.org + + Scopus - Elsevier + + https://orcid.org/0000-0001-5010-5001 + 0000-0001-5010-5001 + orcid.org + + Quang Nguyen + + + Vision outcomes and major complications after endovascular coil embolization of ophthalmic segment aneurysms + + American Journal of Neuroradiology + + bibtex + @article{Nguyen2014,title = {Vision outcomes and major complications after endovascular coil embolization of ophthalmic segment aneurysms},journal = {American Journal of Neuroradiology},year = {2014},volume = {35},number = {11},pages = {2140-2145},author = {Durst, C. and Starke, R.M. and Gaughen, J. and Nguyen, Q. and Patrie, J. and Jensen, M.E. and Evans, A.J.}} + + journal-article + + 2014 + + + + doi + 10.3174/ajnr.A4032 + 10.3174/ajnr.a4032 + self + + + eid + 2-s2.0-84911865199 + 2-s2.0-84911865199 + self + + + http://www.scopus.com/inward/record.url?eid=2-s2.0-84911865199&partnerID=MN8TOARS + + + Durst, C. + + + Starke, R.M. + + + Gaughen, J. + + + Nguyen, Q. + + + Patrie, J. + + + Jensen, M.E. + + + Evans, A.J. + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/activity_work_0000-0002-5982-8983.xml b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/activity_work_0000-0002-5982-8983.xml new file mode 100644 index 000000000..63b4405f1 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/activity_work_0000-0002-5982-8983.xml @@ -0,0 +1,79 @@ + + + 2018-11-01T19:49:45.562Z + 2018-11-01T19:49:45.562Z + + + https://orcid.org/client/0000-0002-5982-8983 + 0000-0002-5982-8983 + orcid.org + + Scopus - Elsevier + + + "Calling Out" in class: Degrees of candor in addressing social injustices in + racially homogenous and heterogeneous U.S. history classrooms + + Journal of Social Studies Research + + bibtex + @article{Massaro2018,title = {{"}Calling Out{"} in class: Degrees of + candor in addressing social injustices in racially homogenous and heterogeneous U.S. + history classrooms},journal = {Journal of Social Studies Research},year = {2018},author + = {Parkhouse, H. and Massaro, V.R.}} + + journal-article + + 2018 + + + + doi + 10.1016/j.jssr.2018.01.004 + 10.1016/j.jssr.2018.01.004 + self + + + eid + 2-s2.0-85041949043 + 2-s2.0-85041949043 + self + + + http://www.scopus.com/inward/record.url?eid=2-s2.0-85041949043&partnerID=MN8TOARS + + + Parkhouse, H. + + + Massaro, V.R. + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/activity_work_0000-0003-2760-1191-similarity.xml b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/activity_work_0000-0003-2760-1191-similarity.xml new file mode 100644 index 000000000..650d5a4cb --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/activity_work_0000-0003-2760-1191-similarity.xml @@ -0,0 +1,113 @@ + + + 2016-12-12T23:02:05.233Z + 2016-12-13T09:08:16.412Z + + + https://orcid.org/0000-0002-9157-3431 + 0000-0002-9157-3431 + orcid.org + + Europe PubMed Central + + + Cutoff Value of Admission N-Terminal Pro-Brain Natriuretic Peptide Which + Predicts Poor Myocardial Perfusion after Primary Percutaneous Coronary Intervention for + ST-Segment-Elevation Myocardial Infarction. + + + formatted-unspecified + Abdel-Dayem K, Eweda II, El-Sherbiny A, Dimitry MO, Nammas W, Acta + Cardiologica Sinica, 2016, vol. 32, no. 6, pp. 649-655, 2016 + + journal-article + + 2016 + 11 + + + + pmid + 27899851 + 27899851 + self + + + pmc + PMC5126442 + PMC5126442 + self + + + http://europepmc.org/abstract/med/27899851 + + + Abdel-Dayem K + + first + author + + + + Abdel-Dayem Fake + + first + author + + + + Eweda II + + first + author + + + + El-Sherbiny A + + first + author + + + + Dimitry MO + + first + author + + + + Nammas W + + first + author + + + + diff --git a/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/activity_work_0000-0003-2760-1191.xml b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/activity_work_0000-0003-2760-1191.xml new file mode 100644 index 000000000..83752b145 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/activity_work_0000-0003-2760-1191.xml @@ -0,0 +1,106 @@ + + + 2016-12-12T23:02:05.233Z + 2016-12-13T09:08:16.412Z + + + https://orcid.org/0000-0002-9157-3431 + 0000-0002-9157-3431 + orcid.org + + Europe PubMed Central + + + Cutoff Value of Admission N-Terminal Pro-Brain Natriuretic Peptide Which + Predicts Poor Myocardial Perfusion after Primary Percutaneous Coronary Intervention for + ST-Segment-Elevation Myocardial Infarction. + + + formatted-unspecified + Abdel-Dayem K, Eweda II, El-Sherbiny A, Dimitry MO, Nammas W, Acta + Cardiologica Sinica, 2016, vol. 32, no. 6, pp. 649-655, 2016 + + journal-article + + 2016 + 11 + + + + pmid + 27899851 + 27899851 + self + + + pmc + PMC5126442 + PMC5126442 + self + + + http://europepmc.org/abstract/med/27899851 + + + Khair Abde Daye + + first + author + + + + Eweda II + + first + author + + + + El-Sherbiny A + + first + author + + + + Dimitry MO + + first + author + + + + Nammas W + + first + author + + + + diff --git a/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/activity_work_0000-0003-2760-1191_contributors.xml b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/activity_work_0000-0003-2760-1191_contributors.xml new file mode 100644 index 000000000..26e64aeda --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/activity_work_0000-0003-2760-1191_contributors.xml @@ -0,0 +1,101 @@ + + + 2016-12-12T23:02:05.233Z + 2016-12-13T09:08:16.412Z + + + https://orcid.org/0000-0002-9157-3431 + 0000-0002-9157-3431 + orcid.org + + Europe PubMed Central + + + Cutoff Value of Admission N-Terminal Pro-Brain Natriuretic Peptide Which + Predicts Poor Myocardial Perfusion after Primary Percutaneous Coronary Intervention for + ST-Segment-Elevation Myocardial Infarction. + + + formatted-unspecified + Abdel-Dayem K, Eweda II, El-Sherbiny A, Dimitry MO, Nammas W, Acta + Cardiologica Sinica, 2016, vol. 32, no. 6, pp. 649-655, 2016 + + journal-article + + 2016 + 11 + + + + pmid + 27899851 + 27899851 + self + + + pmc + PMC5126442 + PMC5126442 + self + + + http://europepmc.org/abstract/med/27899851 + + + + seq0 + role0 + + + + creditname1 + + + creditname2 + + seq2 + + + + + creditname3 + + + role3 + + + + + + seq4 + role4 + + + + diff --git a/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/employment.xml b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/employment.xml new file mode 100644 index 000000000..89c7f7020 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/employment.xml @@ -0,0 +1,50 @@ + + + 2016-09-01T19:21:05.791Z + 2016-09-01T19:21:05.791Z + + + https://orcid.org/0000-0001-5010-5001 + 0000-0001-5010-5001 + orcid.org + + Quang Nguyen + + + Beth Israel Deaconess Medical Center + + Boston + MA + US + + + 1859 + RINGGOLD + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/employment_2.xml b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/employment_2.xml new file mode 100644 index 000000000..c0e88e236 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/employment_2.xml @@ -0,0 +1,55 @@ + + + 2018-09-03T01:46:19.474Z + 2018-09-03T01:46:19.474Z + + + https://orcid.org/0000-0001-5011-3001 + 0000-0001-5011-3001 + orcid.org + + zhengyan li + + + 2008 + 09 + 01 + + + Anhui Academy of Agricultural Sciences + + Hefei + Anhui + CN + + + 125385 + RINGGOLD + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/employment_3.xml b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/employment_3.xml new file mode 100644 index 000000000..8e7857fb8 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/employment_3.xml @@ -0,0 +1,62 @@ + + + 2021-03-11T14:48:29.603Z + 2021-03-11T14:48:29.603Z + + + https://orcid.org/0000-0001-5012-1001 + 0000-0001-5012-1001 + orcid.org + + Asma Bazzi + + Pathology and Laboratory Medicine + Medical Laboratory Technologist + + 1994 + 10 + 01 + + + 2000 + 06 + 30 + + + American University of Beirut + + Hamra + Beirut + LB + + + 11238 + RINGGOLD + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/summary.xml b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/summary.xml new file mode 100644 index 000000000..1f5a1bff1 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/collection/orcid/summary.xml @@ -0,0 +1,581 @@ + + + + https://orcid.org/0000-0001-5045-1000 + 0000-0001-5045-1000 + orcid.org + + + es + + + Direct + 2023-01-17T23:50:40.215Z + 2023-09-04T17:51:57.749Z + true + true + true + + + + 2023-01-17T23:50:40.472Z + 2023-01-17T23:50:40.472Z + Patricio + Sánchez Quinchuela + + + + 2023-01-19T13:47:33.653Z + 2023-01-19T13:47:33.653Z + Especialista de vinculación con la sociedad y docente de la Universidad de las Artes. Magister en Economía Social y Solidaria por el IAEN; Magister en Proyectos Sociales y Productivos por la UNACH. Licenciado en Artes UCE. Licenciado en Castellano y Literatura por la UNACH. Doctorando del programa de Sociología de la UNED España. Larga trayectoria vinculado a las organizaciones sociales acompañando procesos de gestión cultural, formación de liderazgos y economía solidaria. + + + + + + + 2018-02-05T23:27:36.636Z + + 2013-03-08T03:20:39.347Z + 2018-02-05T23:27:36.636Z + + + https://orcid.org/client/0000-0002-5982-8983 + 0000-0002-5982-8983 + orcid.org + + Scopus - Elsevier + + https://orcid.org/0000-0001-7291-3210 + 0000-0001-7291-3210 + orcid.org + + Paolo Manghi + + Scopus Author ID + 6602255248 + http://www.scopus.com/inward/authorDetails.url?authorID=6602255248&partnerID=MN8TOARS + self + + + + + 2023-09-04T17:51:57.749Z + + 2023-01-19T13:49:48.482Z + + 2023-01-19T13:49:48.482Z + + + 2023-01-19T13:49:48.482Z + 2023-01-19T13:49:48.482Z + + + https://orcid.org/0000-0001-5045-1000 + 0000-0001-5045-1000 + orcid.org + + Patricio Sánchez Quinchuela + + Programa de Maestría + Becario del programa de Maestría en Economía Social y Solidaria + + 2014 + 10 + 20 + + + Instituto de Altos Estudios Nacionales + + Quito + Pichincha + EC + + + https://ror.org/011g3me54 + ROR + + + + + + + 2023-01-18T21:41:03.175Z + + 2023-01-18T21:41:03.175Z + + + 2023-01-18T21:41:03.175Z + 2023-01-18T21:41:03.175Z + + + https://orcid.org/0000-0001-5045-1000 + 0000-0001-5045-1000 + orcid.org + + Patricio Sánchez Quinchuela + + Programa de Doctorado en Sociología + Doctorando del Programa de Sociología + + 2020 + 11 + 06 + + + Universidad Nacional de Educación a Distancia Facultad de Ciencias Políticas y Sociología + + Madrid + Comunidad de Madrid + ES + + + 223339 + RINGGOLD + + + + + + + 2023-01-18T21:25:07.138Z + + 2023-01-18T21:22:21.513Z + + + 2023-01-17T23:57:08.246Z + 2023-01-18T21:22:21.513Z + + + https://orcid.org/0000-0001-5045-1000 + 0000-0001-5045-1000 + orcid.org + + Patricio Sánchez Quinchuela + + Dirección de Vinculación con la Sociedad + Especialista de Proyectos y docente + + 2021 + 11 + 01 + + + Universidad de las Artes + + Guayaquil + Guayas + EC + + + https://ror.org/016drwn73 + ROR + + + + + + 2023-01-18T21:25:07.138Z + + + 2023-01-18T21:25:07.138Z + 2023-01-18T21:25:07.138Z + + + https://orcid.org/0000-0001-5045-1000 + 0000-0001-5045-1000 + orcid.org + + Patricio Sánchez Quinchuela + + Dirección de Vinculación con la Sociedad + Director + + 2019 + 11 + 05 + + + 2021 + 10 + 31 + + + Universidad Regional Amazónica IKIAM + + Tena + Napo + EC + + + https://ror.org/05xedqd83 + ROR + + + http://ikiam.edu.ec + + + + + + + 2023-03-24T18:16:09.131Z + + 2023-03-24T18:16:09.131Z + + + 2023-03-24T18:16:09.131Z + 2023-03-24T18:16:09.131Z + + + https://orcid.org/0000-0001-5045-1000 + 0000-0001-5045-1000 + orcid.org + + Patricio Sánchez Quinchuela + + Artes Escénicas + Miembro + + 2000 + 07 + 15 + + + Casa de la Cultura Ecuatoriana + + Riobamba + Sierra Centro + EC + + + + + + + + 2023-01-18T21:45:07.379Z + + 2023-01-18T21:29:11.300Z + + + 2023-01-18T21:29:11.300Z + 2023-01-18T21:29:11.300Z + + + https://orcid.org/0000-0001-5045-1000 + 0000-0001-5045-1000 + orcid.org + + Patricio Sánchez Quinchuela + + Programa de Gobernabilidad + Magister en Economïa Social y Solidaria + + 2014 + 10 + 20 + + + 2017 + 01 + 26 + + + Instituto de Altos Estudios Nacionales + + Quito + Pichincha + EC + + + https://ror.org/011g3me54 + ROR + + + + + + 2023-01-18T21:34:32.093Z + + + 2023-01-18T21:34:32.093Z + 2023-01-18T21:34:32.093Z + + + https://orcid.org/0000-0001-5045-1000 + 0000-0001-5045-1000 + orcid.org + + Patricio Sánchez Quinchuela + + Posgrados + Magister en Proyectos Sociales y Productivos + + 2001 + 03 + 09 + + + 2003 + 02 + 27 + + + Universidad Nacional de Chimborazo + + Riobamba + Chimborazo + EC + + + https://ror.org/059wmd288 + ROR + + + + + + 2023-01-18T21:45:07.379Z + + + 2023-01-18T21:45:07.379Z + 2023-01-18T21:45:07.379Z + + + https://orcid.org/0000-0001-5045-1000 + 0000-0001-5045-1000 + orcid.org + + Patricio Sánchez Quinchuela + + Ciencias de la Educación + Licenciado en Ciencias de la Educación en Castellano y Literatura + + 1994 + 10 + 03 + + + 2000 + 01 + 31 + + + Universidad Nacional de Chimborazo + + Riobamba + Chimborazo + EC + + + https://ror.org/059wmd288 + ROR + + + + + + 2023-01-18T21:37:42.186Z + + + 2023-01-18T21:37:42.186Z + 2023-01-18T21:37:42.186Z + + + https://orcid.org/0000-0001-5045-1000 + 0000-0001-5045-1000 + orcid.org + + Patricio Sánchez Quinchuela + + Facultad de Artes + Licenciado en Artes + + 1989 + 09 + 05 + + + 1997 + 08 + 07 + + + Universidad Central del Ecuador + + Quito + Pichincha + EC + + + http://dx.doi.org/10.13039/100019134 + FUNDREF + + + + + + + + + 2023-09-04T17:51:57.749Z + + 2023-06-09T22:15:12.910Z + + + 2023-03-24T18:36:56.180Z + 2023-06-09T22:15:12.910Z + + + https://orcid.org/0000-0001-5045-1000 + 0000-0001-5045-1000 + orcid.org + + Patricio Sánchez Quinchuela + + + Experience in a non-capitalist way: solidarity funds that do not tax interest on the use of money + + + + isbn + 978-9942-29-089-2 + 9789942290892 + part-of + + + book-chapter + + 2023 + 06 + 07 + + Finanzas éticas y solidarias en América Latina: diagnósticos, debates y propuestas + + + + 2023-03-24T19:05:36.384Z + + + 2023-03-24T19:05:36.384Z + 2023-03-24T19:05:36.384Z + + + https://orcid.org/0000-0001-5045-1000 + 0000-0001-5045-1000 + orcid.org + + Patricio Sánchez Quinchuela + + + Incidence of artistic practices in the social transformation of the territory. study of case: Hilarte Association, Guayaquil-Ecuador + + + conference-abstract + + 2022 + 10 + 06 + + + + + 2023-09-04T17:40:30.215Z + + + other-id + 2018 + 2018 + self + + + + 2023-09-04T17:40:30.215Z + 2023-09-04T17:40:30.215Z + + + https://orcid.org/0000-0001-5045-1000 + 0000-0001-5045-1000 + orcid.org + + Patricio Sánchez Quinchuela + + + Más allá de la transferencia de conocimientos, un espacio para el interaprendizaje y el diálogo de saberes + + + + other-id + 2018 + 2018 + self + + + https://drive.google.com/drive/folders/1Tclz6isxGzSjTq-hfTnxe6M1nux-88wF?usp=drive_link + conference-poster + + 2018 + 11 + 30 + + Más allá de la transferencia de conocimientos, un espacio para el interaprendizaje y el diálogo de saberes + + + + 2023-03-24T18:57:10.095Z + + + 2023-03-24T18:57:10.095Z + 2023-03-24T18:57:10.095Z + + + https://orcid.org/0000-0001-5045-1000 + 0000-0001-5045-1000 + orcid.org + + Patricio Sánchez Quinchuela + + + Promotion of the popular and solidarity economy from the state: principles and challenges in the experience of Ecuador + + + dissertation-thesis + + 2017 + 01 + 26 + + + + + 2023-09-04T17:51:57.749Z + + + 2023-09-04T17:51:57.749Z + 2023-09-04T17:51:57.749Z + + + https://orcid.org/0000-0001-5045-1000 + 0000-0001-5045-1000 + orcid.org + + Patricio Sánchez Quinchuela + + + La Rebelión de los Dioses + + + https://drive.google.com/drive/folders/1Tclz6isxGzSjTq-hfTnxe6M1nux-88wF?usp=drive_link + registered-copyright + + 2001 + 08 + 28 + + Editorial pedagógica freire + + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-blacklist/pom.xml b/dhp-workflows/dhp-blacklist/pom.xml index 479a9e8c6..7ecc8b35d 100644 --- a/dhp-workflows/dhp-blacklist/pom.xml +++ b/dhp-workflows/dhp-blacklist/pom.xml @@ -16,11 +16,11 @@ org.apache.spark - spark-core_2.11 + spark-core_${scala.binary.version} org.apache.spark - spark-sql_2.11 + spark-sql_${scala.binary.version} diff --git a/dhp-workflows/dhp-broker-events/pom.xml b/dhp-workflows/dhp-broker-events/pom.xml index 5a41a0090..322fc7e93 100644 --- a/dhp-workflows/dhp-broker-events/pom.xml +++ b/dhp-workflows/dhp-broker-events/pom.xml @@ -18,11 +18,11 @@ org.apache.spark - spark-core_2.11 + spark-core_${scala.binary.version} org.apache.spark - spark-sql_2.11 + spark-sql_${scala.binary.version} org.elasticsearch @@ -41,8 +41,9 @@ - eu.dnetlib - dnet-pace-core + eu.dnetlib.dhp + dhp-pace-core + ${project.version} diff --git a/dhp-workflows/dhp-broker-events/src/main/java/eu/dnetlib/dhp/broker/oa/CheckDuplictedIdsJob.java b/dhp-workflows/dhp-broker-events/src/main/java/eu/dnetlib/dhp/broker/oa/CheckDuplictedIdsJob.java index f0aa6491f..bb3a17ac4 100644 --- a/dhp-workflows/dhp-broker-events/src/main/java/eu/dnetlib/dhp/broker/oa/CheckDuplictedIdsJob.java +++ b/dhp-workflows/dhp-broker-events/src/main/java/eu/dnetlib/dhp/broker/oa/CheckDuplictedIdsJob.java @@ -2,7 +2,7 @@ package eu.dnetlib.dhp.broker.oa; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.spark.SparkConf; import org.apache.spark.api.java.function.FilterFunction; import org.apache.spark.api.java.function.MapFunction; diff --git a/dhp-workflows/dhp-broker-events/src/main/java/eu/dnetlib/dhp/broker/oa/util/TrustUtils.java b/dhp-workflows/dhp-broker-events/src/main/java/eu/dnetlib/dhp/broker/oa/util/TrustUtils.java index a49801f32..67468c6f9 100644 --- a/dhp-workflows/dhp-broker-events/src/main/java/eu/dnetlib/dhp/broker/oa/util/TrustUtils.java +++ b/dhp-workflows/dhp-broker-events/src/main/java/eu/dnetlib/dhp/broker/oa/util/TrustUtils.java @@ -2,7 +2,10 @@ package eu.dnetlib.dhp.broker.oa.util; import java.io.IOException; +import java.nio.charset.StandardCharsets; +import org.apache.commons.io.IOUtils; +import org.apache.spark.sql.Row; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -10,9 +13,8 @@ import com.fasterxml.jackson.databind.ObjectMapper; import eu.dnetlib.broker.objects.OaBrokerMainEntity; import eu.dnetlib.pace.config.DedupConfig; -import eu.dnetlib.pace.model.MapDocument; +import eu.dnetlib.pace.model.SparkDeduper; import eu.dnetlib.pace.tree.support.TreeProcessor; -import eu.dnetlib.pace.util.MapDocumentUtil; public class TrustUtils { @@ -20,13 +22,22 @@ public class TrustUtils { private static DedupConfig dedupConfig; + private static SparkDeduper deduper; + + private static final ObjectMapper mapper; + static { - final ObjectMapper mapper = new ObjectMapper(); + mapper = new ObjectMapper(); try { - dedupConfig = mapper - .readValue( - DedupConfig.class.getResourceAsStream("/eu/dnetlib/dhp/broker/oa/dedupConfig/dedupConfig.json"), - DedupConfig.class); + dedupConfig = DedupConfig + .load( + IOUtils + .toString( + DedupConfig.class + .getResourceAsStream("/eu/dnetlib/dhp/broker/oa/dedupConfig/dedupConfig.json"), + StandardCharsets.UTF_8)); + + deduper = new SparkDeduper(dedupConfig); } catch (final IOException e) { log.error("Error loading dedupConfig, e"); } @@ -42,11 +53,8 @@ public class TrustUtils { } try { - final ObjectMapper objectMapper = new ObjectMapper(); - final MapDocument doc1 = MapDocumentUtil - .asMapDocumentWithJPath(dedupConfig, objectMapper.writeValueAsString(r1)); - final MapDocument doc2 = MapDocumentUtil - .asMapDocumentWithJPath(dedupConfig, objectMapper.writeValueAsString(r2)); + final Row doc1 = deduper.model().rowFromJson(mapper.writeValueAsString(r1)); + final Row doc2 = deduper.model().rowFromJson(mapper.writeValueAsString(r2)); final double score = new TreeProcessor(dedupConfig).computeScore(doc1, doc2); @@ -55,7 +63,7 @@ public class TrustUtils { return TrustUtils.rescale(score, threshold); } catch (final Exception e) { log.error("Error computing score between results", e); - return BrokerConstants.MIN_TRUST; + throw new RuntimeException(e); } } diff --git a/dhp-workflows/dhp-broker-events/src/main/java/eu/dnetlib/dhp/broker/oa/util/aggregators/stats/StatsAggregator.java b/dhp-workflows/dhp-broker-events/src/main/java/eu/dnetlib/dhp/broker/oa/util/aggregators/stats/StatsAggregator.java index 240e2d211..0f8bad2ce 100644 --- a/dhp-workflows/dhp-broker-events/src/main/java/eu/dnetlib/dhp/broker/oa/util/aggregators/stats/StatsAggregator.java +++ b/dhp-workflows/dhp-broker-events/src/main/java/eu/dnetlib/dhp/broker/oa/util/aggregators/stats/StatsAggregator.java @@ -1,7 +1,7 @@ package eu.dnetlib.dhp.broker.oa.util.aggregators.stats; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.spark.sql.Encoder; import org.apache.spark.sql.Encoders; import org.apache.spark.sql.expressions.Aggregator; diff --git a/dhp-workflows/dhp-broker-events/src/test/java/eu/dnetlib/dhp/broker/oa/samples/SimpleVariableJobTest.java b/dhp-workflows/dhp-broker-events/src/test/java/eu/dnetlib/dhp/broker/oa/samples/SimpleVariableJobTest.java index a6d1c89d3..73d1731cf 100644 --- a/dhp-workflows/dhp-broker-events/src/test/java/eu/dnetlib/dhp/broker/oa/samples/SimpleVariableJobTest.java +++ b/dhp-workflows/dhp-broker-events/src/test/java/eu/dnetlib/dhp/broker/oa/samples/SimpleVariableJobTest.java @@ -12,6 +12,7 @@ import java.util.stream.Collectors; import org.apache.commons.io.FileUtils; import org.apache.spark.SparkConf; +import org.apache.spark.api.java.function.FilterFunction; import org.apache.spark.api.java.function.MapFunction; import org.apache.spark.sql.Encoders; import org.apache.spark.sql.SparkSession; @@ -82,8 +83,8 @@ public class SimpleVariableJobTest { final long n = spark .createDataset(inputList, Encoders.STRING()) - .filter(s -> filter(map.get(s))) - .map((MapFunction) s -> s.toLowerCase(), Encoders.STRING()) + .filter((FilterFunction) s -> filter(map.get(s))) + .map((MapFunction) String::toLowerCase, Encoders.STRING()) .count(); System.out.println(n); @@ -96,8 +97,8 @@ public class SimpleVariableJobTest { final long n = spark .createDataset(inputList, Encoders.STRING()) - .filter(s -> filter(staticMap.get(s))) - .map((MapFunction) s -> s.toLowerCase(), Encoders.STRING()) + .filter((FilterFunction) s -> filter(staticMap.get(s))) + .map((MapFunction) String::toLowerCase, Encoders.STRING()) .count(); System.out.println(n); diff --git a/dhp-workflows/dhp-dedup-openaire/pom.xml b/dhp-workflows/dhp-dedup-openaire/pom.xml index a14076a78..a271efe8e 100644 --- a/dhp-workflows/dhp-dedup-openaire/pom.xml +++ b/dhp-workflows/dhp-dedup-openaire/pom.xml @@ -13,7 +13,7 @@ net.alchim31.maven scala-maven-plugin - 4.0.1 + ${net.alchim31.maven.version} scala-compile-first @@ -32,6 +32,8 @@ + true + ${scala.binary.version} ${scala.version} @@ -42,20 +44,48 @@ - org.apache.spark - spark-core_2.11 - - - org.apache.spark - spark-sql_2.11 + eu.dnetlib.dhp + dhp-common + ${project.version} eu.dnetlib.dhp - dhp-common + dhp-pace-core ${project.version} + + org.apache.commons + commons-lang3 + + + + org.scala-lang.modules + scala-java8-compat_${scala.binary.version} + 1.0.2 + + + + org.scala-lang.modules + scala-collection-compat_${scala.binary.version} + 2.11.0 + + + + org.apache.spark + spark-core_${scala.binary.version} + + + org.apache.spark + spark-sql_${scala.binary.version} + + + + org.apache.spark + spark-graphx_${scala.binary.version} + + com.arakelian java-jq @@ -68,16 +98,6 @@ jaxen jaxen - - - - eu.dnetlib - dnet-pace-core - - - org.apache.spark - spark-graphx_2.11 - com.fasterxml.jackson.core jackson-databind diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/AbstractSparkAction.java b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/AbstractSparkAction.java index 136413376..0af7bb6d0 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/AbstractSparkAction.java +++ b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/AbstractSparkAction.java @@ -88,9 +88,7 @@ abstract class AbstractSparkAction implements Serializable { "for $x in /RESOURCE_PROFILE[.//RESOURCE_IDENTIFIER/@value = '%s'] return $x//DEDUPLICATION/text()", configProfileId)); - DedupConfig dedupConfig = new ObjectMapper().readValue(conf, DedupConfig.class); - dedupConfig.getPace().initModel(); - dedupConfig.getPace().initTranslationMap(); + DedupConfig dedupConfig = DedupConfig.load(conf); dedupConfig.getWf().setConfigurationId(actionSetId); return dedupConfig; @@ -103,6 +101,10 @@ abstract class AbstractSparkAction implements Serializable { return SparkSession.builder().config(conf).getOrCreate(); } + protected static SparkSession getSparkWithHiveSession(SparkConf conf) { + return SparkSession.builder().enableHiveSupport().config(conf).getOrCreate(); + } + protected static void save(Dataset dataset, String outPath, SaveMode mode) { dataset.write().option("compression", "gzip").mode(mode).json(outPath); } diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/DatePicker.java b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/DatePicker.java index 9d767c4d2..8ed3c68b2 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/DatePicker.java +++ b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/DatePicker.java @@ -5,14 +5,14 @@ import static java.util.Collections.reverseOrder; import static java.util.Map.Entry.comparingByValue; import static java.util.stream.Collectors.toMap; -import static org.apache.commons.lang.StringUtils.endsWith; -import static org.apache.commons.lang.StringUtils.substringBefore; +import static org.apache.commons.lang3.StringUtils.endsWith; +import static org.apache.commons.lang3.StringUtils.substringBefore; import java.time.Year; import java.util.*; import java.util.stream.Collectors; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import eu.dnetlib.dhp.schema.oaf.Field; diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/DedupRecordFactory.java b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/DedupRecordFactory.java index 7637cde93..eddfba309 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/DedupRecordFactory.java +++ b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/DedupRecordFactory.java @@ -1,124 +1,193 @@ package eu.dnetlib.dhp.oa.dedup; -import java.lang.reflect.InvocationTargetException; import java.util.*; -import java.util.stream.Collectors; +import java.util.stream.Stream; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.spark.api.java.function.FlatMapFunction; import org.apache.spark.api.java.function.MapFunction; -import org.apache.spark.api.java.function.MapGroupsFunction; -import org.apache.spark.sql.Dataset; -import org.apache.spark.sql.Encoders; -import org.apache.spark.sql.SparkSession; - -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.collect.Lists; +import org.apache.spark.api.java.function.ReduceFunction; +import org.apache.spark.sql.*; import eu.dnetlib.dhp.oa.dedup.model.Identifier; import eu.dnetlib.dhp.oa.merge.AuthorMerger; import eu.dnetlib.dhp.schema.common.ModelSupport; -import eu.dnetlib.dhp.schema.oaf.*; +import eu.dnetlib.dhp.schema.oaf.Author; +import eu.dnetlib.dhp.schema.oaf.DataInfo; +import eu.dnetlib.dhp.schema.oaf.OafEntity; +import eu.dnetlib.dhp.schema.oaf.Result; import scala.Tuple2; +import scala.Tuple3; +import scala.collection.JavaConversions; public class DedupRecordFactory { + public static final class DedupRecordReduceState { + public final String dedupId; - protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper() - .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + public final ArrayList aliases = new ArrayList<>(); + + public final HashSet acceptanceDate = new HashSet<>(); + + public OafEntity entity; + + public DedupRecordReduceState(String dedupId, String id, OafEntity entity) { + this.dedupId = dedupId; + this.entity = entity; + if (entity == null) { + aliases.add(id); + } else { + if (Result.class.isAssignableFrom(entity.getClass())) { + Result result = (Result) entity; + if (result.getDateofacceptance() != null + && StringUtils.isNotBlank(result.getDateofacceptance().getValue())) { + acceptanceDate.add(result.getDateofacceptance().getValue()); + } + } + } + } + + public String getDedupId() { + return dedupId; + } + } + + private static final int MAX_ACCEPTANCE_DATE = 20; private DedupRecordFactory() { } - public static Dataset createDedupRecord( + public static Dataset createDedupRecord( final SparkSession spark, final DataInfo dataInfo, final String mergeRelsInputPath, final String entitiesInputPath, - final Class clazz) { + final Class clazz) { - long ts = System.currentTimeMillis(); + final long ts = System.currentTimeMillis(); + final Encoder beanEncoder = Encoders.bean(clazz); + final Encoder kryoEncoder = Encoders.kryo(clazz); // - Dataset> entities = spark + Dataset entities = spark .read() - .textFile(entitiesInputPath) + .schema(Encoders.bean(clazz).schema()) + .json(entitiesInputPath) + .as(beanEncoder) .map( - (MapFunction>) it -> { - T entity = OBJECT_MAPPER.readValue(it, clazz); + (MapFunction>) entity -> { return new Tuple2<>(entity.getId(), entity); }, - Encoders.tuple(Encoders.STRING(), Encoders.kryo(clazz))); + Encoders.tuple(Encoders.STRING(), kryoEncoder)) + .selectExpr("_1 AS id", "_2 AS kryoObject"); // : source is the dedup_id, target is the id of the mergedIn - Dataset> mergeRels = spark + Dataset mergeRels = spark .read() .load(mergeRelsInputPath) - .as(Encoders.bean(Relation.class)) .where("relClass == 'merges'") - .map( - (MapFunction>) r -> new Tuple2<>(r.getSource(), r.getTarget()), - Encoders.tuple(Encoders.STRING(), Encoders.STRING())); + .selectExpr("source as dedupId", "target as id"); return mergeRels - .joinWith(entities, mergeRels.col("_2").equalTo(entities.col("_1")), "inner") + .join(entities, JavaConversions.asScalaBuffer(Collections.singletonList("id")), "left") + .select("dedupId", "id", "kryoObject") + .as(Encoders.tuple(Encoders.STRING(), Encoders.STRING(), kryoEncoder)) .map( - (MapFunction, Tuple2>, Tuple2>) value -> new Tuple2<>( - value._1()._1(), value._2()._2()), - Encoders.tuple(Encoders.STRING(), Encoders.kryo(clazz))) + (MapFunction, DedupRecordReduceState>) t -> new DedupRecordReduceState( + t._1(), t._2(), t._3()), + Encoders.kryo(DedupRecordReduceState.class)) .groupByKey( - (MapFunction, String>) Tuple2::_1, Encoders.STRING()) - .mapGroups( - (MapGroupsFunction, T>) (key, - values) -> entityMerger(key, values, ts, dataInfo, clazz), - Encoders.bean(clazz)); + (MapFunction) DedupRecordReduceState::getDedupId, Encoders.STRING()) + .reduceGroups( + (ReduceFunction) (t1, t2) -> { + if (t1.entity == null) { + t2.aliases.addAll(t1.aliases); + return t2; + } + if (t1.acceptanceDate.size() < MAX_ACCEPTANCE_DATE) { + t1.acceptanceDate.addAll(t2.acceptanceDate); + } + t1.aliases.addAll(t2.aliases); + t1.entity = reduceEntity(t1.entity, t2.entity); + + return t1; + }) + .flatMap((FlatMapFunction, OafEntity>) t -> { + String dedupId = t._1(); + DedupRecordReduceState agg = t._2(); + + if (agg.acceptanceDate.size() >= MAX_ACCEPTANCE_DATE) { + return Collections.emptyIterator(); + } + + return Stream + .concat(Stream.of(agg.getDedupId()), agg.aliases.stream()) + .map(id -> { + try { + OafEntity res = (OafEntity) BeanUtils.cloneBean(agg.entity); + res.setId(id); + res.setDataInfo(dataInfo); + res.setLastupdatetimestamp(ts); + return res; + } catch (Exception e) { + throw new RuntimeException(e); + } + }) + .iterator(); + }, beanEncoder); } - public static T entityMerger( - String id, Iterator> entities, long ts, DataInfo dataInfo, Class clazz) - throws IllegalAccessException, InstantiationException, InvocationTargetException { + private static OafEntity reduceEntity(OafEntity entity, OafEntity duplicate) { - final Comparator> idComparator = new IdentifierComparator<>(); - - final LinkedList entityList = Lists - .newArrayList(entities) - .stream() - .map(t -> Identifier.newInstance(t._2())) - .sorted(idComparator) - .map(Identifier::getEntity) - .collect(Collectors.toCollection(LinkedList::new)); - - final T entity = clazz.newInstance(); - final T first = entityList.removeFirst(); - - BeanUtils.copyProperties(entity, first); - - final List> authors = Lists.newArrayList(); - - entityList - .forEach( - duplicate -> { - entity.mergeFrom(duplicate); - if (ModelSupport.isSubClass(duplicate, Result.class)) { - Result r1 = (Result) duplicate; - Optional - .ofNullable(r1.getAuthor()) - .ifPresent(a -> authors.add(a)); - } - }); - - // set authors and date - if (ModelSupport.isSubClass(entity, Result.class)) { - ((Result) entity).setAuthor(AuthorMerger.merge(authors)); + if (duplicate == null) { + return entity; } - entity.setId(id); + int compare = new IdentifierComparator<>() + .compare(Identifier.newInstance(entity), Identifier.newInstance(duplicate)); - entity.setLastupdatetimestamp(ts); - entity.setDataInfo(dataInfo); + if (compare > 0) { + OafEntity swap = duplicate; + duplicate = entity; + entity = swap; + } + + entity.mergeFrom(duplicate); + + if (ModelSupport.isSubClass(duplicate, Result.class)) { + Result re = (Result) entity; + Result rd = (Result) duplicate; + + List> authors = new ArrayList<>(); + if (re.getAuthor() != null) { + authors.add(re.getAuthor()); + } + if (rd.getAuthor() != null) { + authors.add(rd.getAuthor()); + } + + re.setAuthor(AuthorMerger.merge(authors)); + } return entity; } + public static T entityMerger( + String id, Iterator> entities, long ts, DataInfo dataInfo, Class clazz) { + T base = entities.next()._2(); + + while (entities.hasNext()) { + T duplicate = entities.next()._2(); + if (duplicate != null) + base = (T) reduceEntity(base, duplicate); + } + + base.setId(id); + base.setDataInfo(dataInfo); + base.setLastupdatetimestamp(ts); + + return base; + } + } diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/DedupUtility.java b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/DedupUtility.java index aeb485768..a7a27f5c9 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/DedupUtility.java +++ b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/DedupUtility.java @@ -2,27 +2,22 @@ package eu.dnetlib.dhp.oa.dedup; import java.io.StringReader; -import java.util.*; +import java.util.ArrayList; +import java.util.List; -import org.apache.spark.SparkContext; -import org.apache.spark.util.LongAccumulator; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.xml.sax.SAXException; -import com.google.common.collect.Sets; - import eu.dnetlib.dhp.schema.common.ModelConstants; import eu.dnetlib.dhp.schema.oaf.DataInfo; import eu.dnetlib.dhp.schema.oaf.Relation; import eu.dnetlib.dhp.utils.ISLookupClientFactory; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; -import eu.dnetlib.pace.clustering.BlacklistAwareClusteringCombiner; import eu.dnetlib.pace.config.DedupConfig; -import eu.dnetlib.pace.model.MapDocument; public class DedupUtility { @@ -32,43 +27,6 @@ public class DedupUtility { private DedupUtility() { } - public static Map constructAccumulator( - final DedupConfig dedupConf, final SparkContext context) { - - Map accumulators = new HashMap<>(); - - String acc1 = String.format("%s::%s", dedupConf.getWf().getEntityType(), "records per hash key = 1"); - accumulators.put(acc1, context.longAccumulator(acc1)); - String acc2 = String - .format( - "%s::%s", - dedupConf.getWf().getEntityType(), "missing " + dedupConf.getWf().getOrderField()); - accumulators.put(acc2, context.longAccumulator(acc2)); - String acc3 = String - .format( - "%s::%s", - dedupConf.getWf().getEntityType(), - String - .format( - "Skipped records for count(%s) >= %s", - dedupConf.getWf().getOrderField(), dedupConf.getWf().getGroupMaxSize())); - accumulators.put(acc3, context.longAccumulator(acc3)); - String acc4 = String.format("%s::%s", dedupConf.getWf().getEntityType(), "skip list"); - accumulators.put(acc4, context.longAccumulator(acc4)); - String acc5 = String.format("%s::%s", dedupConf.getWf().getEntityType(), "dedupSimilarity (x2)"); - accumulators.put(acc5, context.longAccumulator(acc5)); - String acc6 = String - .format( - "%s::%s", dedupConf.getWf().getEntityType(), "d < " + dedupConf.getWf().getThreshold()); - accumulators.put(acc6, context.longAccumulator(acc6)); - - return accumulators; - } - - static Set getGroupingKeys(DedupConfig conf, MapDocument doc) { - return Sets.newHashSet(BlacklistAwareClusteringCombiner.filterAndCombine(doc, conf)); - } - public static String createDedupRecordPath( final String basePath, final String actionSetId, final String entityType) { return String.format("%s/%s/%s_deduprecord", basePath, actionSetId, entityType); diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/Deduper.java b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/Deduper.java deleted file mode 100644 index 68201677e..000000000 --- a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/Deduper.java +++ /dev/null @@ -1,58 +0,0 @@ - -package eu.dnetlib.dhp.oa.dedup; - -import java.util.Map; -import java.util.stream.Collectors; - -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.util.LongAccumulator; - -import eu.dnetlib.dhp.oa.dedup.model.Block; -import eu.dnetlib.pace.config.DedupConfig; -import eu.dnetlib.pace.model.MapDocument; -import eu.dnetlib.pace.util.BlockProcessor; -import scala.Serializable; -import scala.Tuple2; - -public class Deduper implements Serializable { - - public static JavaPairRDD computeRelations( - JavaSparkContext context, JavaPairRDD blocks, DedupConfig config) { - Map accumulators = DedupUtility.constructAccumulator(config, context.sc()); - - return blocks - .flatMapToPair( - it -> { - final SparkReporter reporter = new SparkReporter(accumulators); - new BlockProcessor(config) - .processSortedBlock(it._1(), it._2().getDocuments(), reporter); - return reporter.getRelations().iterator(); - }) - .mapToPair(it -> new Tuple2<>(it._1() + it._2(), it)) - .reduceByKey((a, b) -> a) - .mapToPair(Tuple2::_2); - } - - public static JavaPairRDD createSortedBlocks( - JavaPairRDD mapDocs, DedupConfig config) { - final String of = config.getWf().getOrderField(); - final int maxQueueSize = config.getWf().getQueueMaxSize(); - - return mapDocs - // the reduce is just to be sure that we haven't document with same id - .reduceByKey((a, b) -> a) - .map(Tuple2::_2) - // Clustering: from to List - .flatMap( - a -> DedupUtility - .getGroupingKeys(config, a) - .stream() - .map(it -> Block.from(it, a)) - .collect(Collectors.toList()) - .iterator()) - .mapToPair(block -> new Tuple2<>(block.getKey(), block)) - .reduceByKey((b1, b2) -> Block.from(b1, b2, of, maxQueueSize)) - .filter(b -> b._2().getDocuments().size() > 1); - } -} diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/IdGenerator.java b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/IdGenerator.java index 7e0d66062..1d3d4afdd 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/IdGenerator.java +++ b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/IdGenerator.java @@ -1,6 +1,7 @@ package eu.dnetlib.dhp.oa.dedup; +import static eu.dnetlib.dhp.utils.DHPUtils.md5; import static org.apache.commons.lang3.StringUtils.substringAfter; import static org.apache.commons.lang3.StringUtils.substringBefore; @@ -14,33 +15,36 @@ import eu.dnetlib.dhp.schema.oaf.utils.PidType; public class IdGenerator implements Serializable { // pick the best pid from the list (consider date and pidtype) - public static String generate(List> pids, String defaultID) { + public static String generate(List pids, String defaultID) { if (pids == null || pids.isEmpty()) return defaultID; return generateId(pids); } - private static String generateId(List> pids) { - Identifier bp = pids + private static String generateId(List pids) { + Identifier bp = pids .stream() .min(Identifier::compareTo) .orElseThrow(() -> new IllegalStateException("unable to generate id")); - String prefix = substringBefore(bp.getOriginalID(), "|"); - String ns = substringBefore(substringAfter(bp.getOriginalID(), "|"), "::"); - String suffix = substringAfter(bp.getOriginalID(), "::"); + return generate(bp.getOriginalID()); + } + + public static String generate(String originalId) { + String prefix = substringBefore(originalId, "|"); + String ns = substringBefore(substringAfter(originalId, "|"), "::"); + String suffix = substringAfter(originalId, "::"); final String pidType = substringBefore(ns, "_"); if (PidType.isValid(pidType)) { return prefix + "|" + dedupify(ns) + "::" + suffix; } else { - return prefix + "|dedup_wf_001::" + suffix; + return prefix + "|dedup_wf_002::" + md5(originalId); // hash the whole originalId to avoid collisions } } private static String dedupify(String ns) { - StringBuilder prefix; if (PidType.valueOf(substringBefore(ns, "_")) == PidType.openorgs) { prefix = new StringBuilder(substringBefore(ns, "_")); @@ -53,5 +57,4 @@ public class IdGenerator implements Serializable { } return prefix.substring(0, 12); } - } diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/RelationAggregator.java b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/RelationAggregator.java deleted file mode 100644 index 96d783dbf..000000000 --- a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/RelationAggregator.java +++ /dev/null @@ -1,57 +0,0 @@ - -package eu.dnetlib.dhp.oa.dedup; - -import java.util.Objects; - -import org.apache.spark.sql.Encoder; -import org.apache.spark.sql.Encoders; -import org.apache.spark.sql.expressions.Aggregator; - -import eu.dnetlib.dhp.schema.oaf.Relation; - -public class RelationAggregator extends Aggregator { - - private static final Relation ZERO = new Relation(); - - @Override - public Relation zero() { - return ZERO; - } - - @Override - public Relation reduce(Relation b, Relation a) { - return mergeRel(b, a); - } - - @Override - public Relation merge(Relation b, Relation a) { - return mergeRel(b, a); - } - - @Override - public Relation finish(Relation r) { - return r; - } - - private Relation mergeRel(Relation b, Relation a) { - if (Objects.equals(b, ZERO)) { - return a; - } - if (Objects.equals(a, ZERO)) { - return b; - } - - b.mergeFrom(a); - return b; - } - - @Override - public Encoder bufferEncoder() { - return Encoders.kryo(Relation.class); - } - - @Override - public Encoder outputEncoder() { - return Encoders.kryo(Relation.class); - } -} diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkBlockStats.java b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkBlockStats.java index c9c9dd8fe..3e5215d42 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkBlockStats.java +++ b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkBlockStats.java @@ -2,32 +2,26 @@ package eu.dnetlib.dhp.oa.dedup; import java.io.IOException; +import java.util.Collection; import java.util.Optional; import org.apache.commons.io.IOUtils; import org.apache.spark.SparkConf; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.api.java.function.PairFunction; -import org.apache.spark.sql.Encoders; -import org.apache.spark.sql.SaveMode; -import org.apache.spark.sql.SparkSession; +import org.apache.spark.api.java.function.MapFunction; +import org.apache.spark.sql.*; import org.dom4j.DocumentException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.xml.sax.SAXException; import eu.dnetlib.dhp.application.ArgumentApplicationParser; -import eu.dnetlib.dhp.oa.dedup.model.Block; import eu.dnetlib.dhp.oa.dedup.model.BlockStats; import eu.dnetlib.dhp.utils.ISLookupClientFactory; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; import eu.dnetlib.pace.config.DedupConfig; -import eu.dnetlib.pace.model.MapDocument; -import eu.dnetlib.pace.util.MapDocumentUtil; -import scala.Tuple2; +import eu.dnetlib.pace.model.SparkDeduper; public class SparkBlockStats extends AbstractSparkAction { @@ -91,36 +85,35 @@ public class SparkBlockStats extends AbstractSparkAction { JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); - JavaPairRDD mapDocuments = sc + SparkDeduper deduper = new SparkDeduper(dedupConf); + + Dataset simRels = spark + .read() .textFile(DedupUtility.createEntityPath(graphBasePath, subEntity)) - .repartition(numPartitions) - .mapToPair( - (PairFunction) s -> { - MapDocument d = MapDocumentUtil.asMapDocumentWithJPath(dedupConf, s); - return new Tuple2<>(d.getIdentifier(), d); - }); + .transform(deduper.model().parseJsonDataset()) + .transform(deduper.filterAndCleanup()) + .transform(deduper.generateClustersWithCollect()) + .filter(functions.size(new Column("block")).geq(1)); - // create blocks for deduplication - JavaRDD blockStats = Deduper - .createSortedBlocks(mapDocuments, dedupConf) - .repartition(numPartitions) - .map(b -> asBlockStats(dedupConf, b)); + simRels.map((MapFunction) row -> { + Collection mapDocuments = row.getList(row.fieldIndex("block")); - // save the blockstats in the workingdir - spark - .createDataset(blockStats.rdd(), Encoders.bean(BlockStats.class)) + /* + * List mapDocuments = documents .stream() .sorted( new + * RowDataOrderingComparator(deduper.model().orderingFieldPosition(), + * deduper.model().identityFieldPosition())) .limit(dedupConf.getWf().getQueueMaxSize()) + * .collect(Collectors.toList()); + */ + + return new BlockStats( + row.getString(row.fieldIndex("key")), + (long) mapDocuments.size(), + computeComparisons( + (long) mapDocuments.size(), (long) dedupConf.getWf().getSlidingWindowSize())); + }, Encoders.bean(BlockStats.class)) .write() .mode(SaveMode.Overwrite) .save(outputPath); } } - - private BlockStats asBlockStats(DedupConfig dedupConf, Tuple2 b) { - return new BlockStats( - b._1(), - (long) b._2().getDocuments().size(), - computeComparisons( - (long) b._2().getDocuments().size(), (long) dedupConf.getWf().getSlidingWindowSize())); - } - } diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkCopyOpenorgsMergeRels.java b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkCopyOpenorgsMergeRels.java index 9d0f61007..eca2193af 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkCopyOpenorgsMergeRels.java +++ b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkCopyOpenorgsMergeRels.java @@ -7,6 +7,7 @@ import java.util.Optional; import org.apache.commons.io.IOUtils; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD; +import org.apache.spark.sql.Dataset; import org.apache.spark.sql.Encoders; import org.apache.spark.sql.SaveMode; import org.apache.spark.sql.SparkSession; @@ -77,13 +78,12 @@ public class SparkCopyOpenorgsMergeRels extends AbstractSparkAction { log.info("Number of Openorgs Merge Relations collected: {}", mergeRelsRDD.count()); - spark + final Dataset relations = spark .createDataset( mergeRelsRDD.rdd(), - Encoders.bean(Relation.class)) - .write() - .mode(SaveMode.Append) - .parquet(outputPath); + Encoders.bean(Relation.class)); + + saveParquet(relations, outputPath, SaveMode.Append); } private boolean isMergeRel(Relation rel) { diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkCopyRelationsNoOpenorgs.java b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkCopyRelationsNoOpenorgs.java index 62cbb5bff..e10f41c82 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkCopyRelationsNoOpenorgs.java +++ b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkCopyRelationsNoOpenorgs.java @@ -67,12 +67,7 @@ public class SparkCopyRelationsNoOpenorgs extends AbstractSparkAction { log.debug("Number of non-Openorgs relations collected: {}", simRels.count()); } - spark - .createDataset(simRels.rdd(), Encoders.bean(Relation.class)) - .write() - .mode(SaveMode.Overwrite) - .json(outputPath); - + save(spark.createDataset(simRels.rdd(), Encoders.bean(Relation.class)), outputPath, SaveMode.Overwrite); } } diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkCreateMergeRels.java b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkCreateMergeRels.java index 2f551b244..59626c141 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkCreateMergeRels.java +++ b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkCreateMergeRels.java @@ -3,49 +3,47 @@ package eu.dnetlib.dhp.oa.dedup; import static eu.dnetlib.dhp.schema.common.ModelConstants.DNET_PROVENANCE_ACTIONS; import static eu.dnetlib.dhp.schema.common.ModelConstants.PROVENANCE_DEDUP; +import static org.apache.spark.sql.functions.*; import java.io.IOException; -import java.util.*; -import java.util.stream.Collectors; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Optional; import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.spark.SparkConf; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.api.java.function.FlatMapFunction; -import org.apache.spark.api.java.function.MapFunction; -import org.apache.spark.api.java.function.MapGroupsFunction; -import org.apache.spark.graphx.Edge; -import org.apache.spark.rdd.RDD; +import org.apache.spark.sql.*; import org.apache.spark.sql.Dataset; -import org.apache.spark.sql.Encoders; -import org.apache.spark.sql.SaveMode; -import org.apache.spark.sql.SparkSession; +import org.apache.spark.sql.catalyst.encoders.RowEncoder; +import org.apache.spark.sql.expressions.UserDefinedFunction; +import org.apache.spark.sql.expressions.Window; +import org.apache.spark.sql.expressions.WindowSpec; +import org.apache.spark.sql.types.DataTypes; +import org.apache.spark.sql.types.StructType; import org.dom4j.DocumentException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.xml.sax.SAXException; -import com.google.common.collect.Lists; import com.google.common.hash.Hashing; +import com.kwartile.lib.cc.ConnectedComponent; import eu.dnetlib.dhp.application.ArgumentApplicationParser; -import eu.dnetlib.dhp.oa.dedup.graph.ConnectedComponent; -import eu.dnetlib.dhp.oa.dedup.graph.GraphProcessor; -import eu.dnetlib.dhp.oa.dedup.model.Identifier; import eu.dnetlib.dhp.schema.common.EntityType; import eu.dnetlib.dhp.schema.common.ModelConstants; import eu.dnetlib.dhp.schema.common.ModelSupport; -import eu.dnetlib.dhp.schema.oaf.DataInfo; -import eu.dnetlib.dhp.schema.oaf.OafEntity; -import eu.dnetlib.dhp.schema.oaf.Qualifier; -import eu.dnetlib.dhp.schema.oaf.Relation; +import eu.dnetlib.dhp.schema.oaf.*; +import eu.dnetlib.dhp.schema.oaf.utils.PidType; import eu.dnetlib.dhp.utils.ISLookupClientFactory; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; import eu.dnetlib.pace.config.DedupConfig; -import eu.dnetlib.pace.util.MapDocumentUtil; -import scala.Tuple2; +import scala.Tuple3; +import scala.collection.JavaConversions; public class SparkCreateMergeRels extends AbstractSparkAction { @@ -68,10 +66,12 @@ public class SparkCreateMergeRels extends AbstractSparkAction { log.info("isLookupUrl {}", isLookUpUrl); SparkConf conf = new SparkConf(); + conf.set("hive.metastore.uris", parser.get("hiveMetastoreUris")); conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer"); + conf.registerKryoClasses(ModelSupport.getOafModelClasses()); - new SparkCreateMergeRels(parser, getSparkSession(conf)) + new SparkCreateMergeRels(parser, getSparkWithHiveSession(conf)) .run(ISLookupClientFactory.getLookUpService(isLookUpUrl)); } @@ -87,14 +87,15 @@ public class SparkCreateMergeRels extends AbstractSparkAction { .ofNullable(parser.get("cutConnectedComponent")) .map(Integer::valueOf) .orElse(0); + + final String pivotHistoryDatabase = parser.get("pivotHistoryDatabase"); + log.info("connected component cut: '{}'", cut); log.info("graphBasePath: '{}'", graphBasePath); log.info("isLookUpUrl: '{}'", isLookUpUrl); log.info("actionSetId: '{}'", actionSetId); log.info("workingPath: '{}'", workingPath); - final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); - for (DedupConfig dedupConf : getConfigurations(isLookUpService, actionSetId)) { final String subEntity = dedupConf.getWf().getSubEntityValue(); final Class clazz = ModelSupport.entityTypes.get(EntityType.valueOf(subEntity)); @@ -106,113 +107,173 @@ public class SparkCreateMergeRels extends AbstractSparkAction { final String mergeRelPath = DedupUtility.createMergeRelPath(workingPath, actionSetId, subEntity); - // - JavaPairRDD vertexes = createVertexes(sc, graphBasePath, subEntity, dedupConf); - - final RDD> edgeRdd = spark + final Dataset simRels = spark .read() .load(DedupUtility.createSimRelPath(workingPath, actionSetId, subEntity)) - .as(Encoders.bean(Relation.class)) - .javaRDD() - .map(it -> new Edge<>(hash(it.getSource()), hash(it.getTarget()), it.getRelClass())) - .rdd(); + .select("source", "target"); - Dataset> rawMergeRels = spark - .createDataset( - GraphProcessor - .findCCs(vertexes.rdd(), edgeRdd, maxIterations, cut) - .toJavaRDD() - .filter(k -> k.getIds().size() > 1) - .flatMap(this::ccToRels) - .rdd(), - Encoders.tuple(Encoders.STRING(), Encoders.STRING())); + UserDefinedFunction hashUDF = functions + .udf( + (String s) -> hash(s), DataTypes.LongType); - Dataset> entities = spark + // + Dataset vertexIdMap = simRels + .selectExpr("source as id") + .union(simRels.selectExpr("target as id")) + .distinct() + .withColumn("vertexId", hashUDF.apply(functions.col("id"))); + + // transform simrels into pairs of numeric ids + final Dataset edges = spark .read() - .textFile(DedupUtility.createEntityPath(graphBasePath, subEntity)) - .map( - (MapFunction>) it -> { - OafEntity entity = OBJECT_MAPPER.readValue(it, clazz); - return new Tuple2<>(entity.getId(), entity); - }, - Encoders.tuple(Encoders.STRING(), Encoders.kryo(clazz))); + .load(DedupUtility.createSimRelPath(workingPath, actionSetId, subEntity)) + .select("source", "target") + .withColumn("source", hashUDF.apply(functions.col("source"))) + .withColumn("target", hashUDF.apply(functions.col("target"))); - Dataset mergeRels = rawMergeRels - .joinWith(entities, rawMergeRels.col("_2").equalTo(entities.col("_1")), "inner") - // , - .map( - (MapFunction, Tuple2>, Tuple2>) value -> new Tuple2<>( - value._1()._1(), value._2()._2()), - Encoders.tuple(Encoders.STRING(), Encoders.kryo(clazz))) - // - .groupByKey( - (MapFunction, String>) Tuple2::_1, Encoders.STRING()) - .mapGroups( - (MapGroupsFunction, ConnectedComponent>) this::generateID, - Encoders.bean(ConnectedComponent.class)) - // + // resolve connected components + // ("vertexId", "groupId") + Dataset cliques = ConnectedComponent + .runOnPairs(edges, 50, spark); + + // transform "vertexId" back to its original string value + // groupId is kept numeric as its string value is not used + // ("id", "groupId") + Dataset rawMergeRels = cliques + .join(vertexIdMap, JavaConversions.asScalaBuffer(Collections.singletonList("vertexId")), "inner") + .drop("vertexId") + .distinct(); + + // empty dataframe if historydatabase is not used + Dataset pivotHistory = spark + .createDataset( + Collections.emptyList(), + RowEncoder + .apply(StructType.fromDDL("id STRING, lastUsage STRING"))); + + if (StringUtils.isNotBlank(pivotHistoryDatabase)) { + pivotHistory = spark + .read() + .table(pivotHistoryDatabase + "." + subEntity) + .selectExpr("id", "lastUsage"); + } + + // depending on resulttype collectefrom and dateofacceptance are evaluated differently + String collectedfromExpr = "false AS collectedfrom"; + String dateExpr = "'' AS date"; + + if (Result.class.isAssignableFrom(clazz)) { + if (Publication.class.isAssignableFrom(clazz)) { + collectedfromExpr = "array_contains(collectedfrom.key, '" + ModelConstants.CROSSREF_ID + + "') AS collectedfrom"; + } else if (eu.dnetlib.dhp.schema.oaf.Dataset.class.isAssignableFrom(clazz)) { + collectedfromExpr = "array_contains(collectedfrom.key, '" + ModelConstants.DATACITE_ID + + "') AS collectedfrom"; + } + + dateExpr = "dateofacceptance.value AS date"; + } + + // cap pidType at w3id as from there on they are considered equal + UserDefinedFunction mapPid = udf( + (String s) -> Math.min(PidType.tryValueOf(s).ordinal(), PidType.w3id.ordinal()), DataTypes.IntegerType); + + UserDefinedFunction validDate = udf((String date) -> { + if (StringUtils.isNotBlank(date) + && date.matches(DatePicker.DATE_PATTERN) && DatePicker.inRange(date)) { + return date; + } + return LocalDate.now().plusWeeks(1).toString(); + }, DataTypes.StringType); + + Dataset pivotingData = spark + .read() + .schema(Encoders.bean(clazz).schema()) + .json(DedupUtility.createEntityPath(graphBasePath, subEntity)) + .selectExpr( + "id", + "regexp_extract(id, '^\\\\d+\\\\|([^_]+).*::', 1) AS pidType", + collectedfromExpr, + dateExpr) + .withColumn("pidType", mapPid.apply(col("pidType"))) // ordinal of pid type + .withColumn("date", validDate.apply(col("date"))); + + // ordering to selected pivot id + WindowSpec w = Window + .partitionBy("groupId") + .orderBy( + col("lastUsage").desc_nulls_last(), + col("pidType").asc_nulls_last(), + col("collectedfrom").desc_nulls_last(), + col("date").asc_nulls_last(), + col("id").asc_nulls_last()); + + Dataset output = rawMergeRels + .join(pivotHistory, JavaConversions.asScalaBuffer(Collections.singletonList("id")), "full") + .join(pivotingData, JavaConversions.asScalaBuffer(Collections.singletonList("id")), "left") + .withColumn("pivot", functions.first("id").over(w)) + .withColumn("position", functions.row_number().over(w)) .flatMap( - (FlatMapFunction) cc -> ccToMergeRel(cc, dedupConf), - Encoders.bean(Relation.class)); + (FlatMapFunction>) (Row r) -> { + String id = r.getAs("id"); + String dedupId = IdGenerator.generate(id); - mergeRels.write().mode(SaveMode.Overwrite).parquet(mergeRelPath); + String pivot = r.getAs("pivot"); + String pivotDedupId = IdGenerator.generate(pivot); + // filter out id == pivotDedupId + // those are caused by claim expressed on pivotDedupId + // information will be merged after creating deduprecord + if (id.equals(pivotDedupId)) { + return Collections.emptyIterator(); + } + + ArrayList> res = new ArrayList<>(); + + // singleton pivots have null groupId as they do not match rawMergeRels + if (r.isNullAt(r.fieldIndex("groupId"))) { + // the record is existing if it matches pivotingData + if (!r.isNullAt(r.fieldIndex("collectedfrom"))) { + // create relation with old dedup id + res.add(new Tuple3<>(id, dedupId, null)); + } + return res.iterator(); + } + + // this was a pivot in a previous graph but it has been merged into a new group with different + // pivot + if (!r.isNullAt(r.fieldIndex("lastUsage")) && !pivot.equals(id) + && !dedupId.equals(pivotDedupId)) { + // materialize the previous dedup record as a merge relation with the new one + res.add(new Tuple3<>(dedupId, pivotDedupId, null)); + } + + // add merge relations + if (cut <= 0 || r. getAs("position") <= cut) { + res.add(new Tuple3<>(id, pivotDedupId, pivot)); + } + + return res.iterator(); + }, Encoders.tuple(Encoders.STRING(), Encoders.STRING(), Encoders.STRING())) + .distinct() + .flatMap( + (FlatMapFunction, Relation>) (Tuple3 r) -> { + String id = r._1(); + String dedupId = r._2(); + String pivot = r._3(); + + ArrayList res = new ArrayList<>(); + res.add(rel(pivot, dedupId, id, ModelConstants.MERGES, dedupConf)); + res.add(rel(pivot, id, dedupId, ModelConstants.IS_MERGED_IN, dedupConf)); + + return res.iterator(); + }, Encoders.bean(Relation.class)); + + saveParquet(output, mergeRelPath, SaveMode.Overwrite); } } - private ConnectedComponent generateID(String key, Iterator> values) { - - List> identifiers = Lists - .newArrayList(values) - .stream() - .map(v -> Identifier.newInstance(v._2())) - .collect(Collectors.toList()); - - String rootID = IdGenerator.generate(identifiers, key); - - if (Objects.equals(rootID, key)) - throw new IllegalStateException("generated default ID: " + rootID); - - return new ConnectedComponent(rootID, - identifiers.stream().map(i -> i.getEntity().getId()).collect(Collectors.toSet())); - } - - private JavaPairRDD createVertexes(JavaSparkContext sc, String graphBasePath, String subEntity, - DedupConfig dedupConf) { - - return sc - .textFile(DedupUtility.createEntityPath(graphBasePath, subEntity)) - .mapToPair(json -> { - String id = MapDocumentUtil.getJPathString(dedupConf.getWf().getIdPath(), json); - return new Tuple2<>(hash(id), id); - }); - } - - private Iterator> ccToRels(ConnectedComponent cc) { - return cc - .getIds() - .stream() - .map(id -> new Tuple2<>(cc.getCcId(), id)) - .iterator(); - } - - private Iterator ccToMergeRel(ConnectedComponent cc, DedupConfig dedupConf) { - return cc - .getIds() - .stream() - .flatMap( - id -> { - List tmp = new ArrayList<>(); - - tmp.add(rel(cc.getCcId(), id, ModelConstants.MERGES, dedupConf)); - tmp.add(rel(id, cc.getCcId(), ModelConstants.IS_MERGED_IN, dedupConf)); - - return tmp.stream(); - }) - .iterator(); - } - - private Relation rel(String source, String target, String relClass, DedupConfig dedupConf) { + private static Relation rel(String pivot, String source, String target, String relClass, DedupConfig dedupConf) { String entityType = dedupConf.getWf().getEntityType(); @@ -238,6 +299,14 @@ public class SparkCreateMergeRels extends AbstractSparkAction { // TODO calculate the trust value based on the similarity score of the elements in the CC r.setDataInfo(info); + + if (pivot != null) { + KeyValue pivotKV = new KeyValue(); + pivotKV.setKey("pivot"); + pivotKV.setValue(pivot); + + r.setProperties(Arrays.asList(pivotKV)); + } return r; } diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkCreateOrgsDedupRecord.java b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkCreateOrgsDedupRecord.java index 8e5e9fd69..25e394f25 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkCreateOrgsDedupRecord.java +++ b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkCreateOrgsDedupRecord.java @@ -72,11 +72,7 @@ public class SparkCreateOrgsDedupRecord extends AbstractSparkAction { final String mergeRelsPath = DedupUtility.createMergeRelPath(workingPath, actionSetId, "organization"); - rootOrganization(spark, entityPath, mergeRelsPath) - .write() - .mode(SaveMode.Overwrite) - .option("compression", "gzip") - .json(outputPath); + save(rootOrganization(spark, entityPath, mergeRelsPath), outputPath, SaveMode.Overwrite); } diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkCreateSimRels.java b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkCreateSimRels.java index ca6398e8a..5f54c34df 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkCreateSimRels.java +++ b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkCreateSimRels.java @@ -7,13 +7,9 @@ import java.util.Optional; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.spark.SparkConf; -import org.apache.spark.api.java.JavaPairRDD; import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.api.java.function.PairFunction; -import org.apache.spark.sql.Dataset; -import org.apache.spark.sql.Encoders; -import org.apache.spark.sql.SaveMode; -import org.apache.spark.sql.SparkSession; +import org.apache.spark.api.java.function.MapFunction; +import org.apache.spark.sql.*; import org.dom4j.DocumentException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,15 +18,12 @@ import org.xml.sax.SAXException; import eu.dnetlib.dhp.application.ArgumentApplicationParser; import eu.dnetlib.dhp.application.dedup.log.DedupLogModel; import eu.dnetlib.dhp.application.dedup.log.DedupLogWriter; -import eu.dnetlib.dhp.oa.dedup.model.Block; import eu.dnetlib.dhp.schema.oaf.Relation; import eu.dnetlib.dhp.utils.ISLookupClientFactory; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; import eu.dnetlib.pace.config.DedupConfig; -import eu.dnetlib.pace.model.MapDocument; -import eu.dnetlib.pace.util.MapDocumentUtil; -import scala.Tuple2; +import eu.dnetlib.pace.model.SparkDeduper; public class SparkCreateSimRels extends AbstractSparkAction { @@ -38,6 +31,7 @@ public class SparkCreateSimRels extends AbstractSparkAction { public SparkCreateSimRels(ArgumentApplicationParser parser, SparkSession spark) { super(parser, spark); + spark.sparkContext().setLogLevel("WARN"); } public static void main(String[] args) throws Exception { @@ -79,7 +73,6 @@ public class SparkCreateSimRels extends AbstractSparkAction { // for each dedup configuration for (DedupConfig dedupConf : getConfigurations(isLookUpService, actionSetId)) { - final long start = System.currentTimeMillis(); final String entity = dedupConf.getWf().getEntityType(); @@ -89,29 +82,17 @@ public class SparkCreateSimRels extends AbstractSparkAction { final String outputPath = DedupUtility.createSimRelPath(workingPath, actionSetId, subEntity); removeOutputDir(spark, outputPath); - JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); + SparkDeduper deduper = new SparkDeduper(dedupConf); - JavaPairRDD mapDocuments = sc + Dataset simRels = spark + .read() .textFile(DedupUtility.createEntityPath(graphBasePath, subEntity)) - .repartition(numPartitions) - .mapToPair( - (PairFunction) s -> { - MapDocument d = MapDocumentUtil.asMapDocumentWithJPath(dedupConf, s); - return new Tuple2<>(d.getIdentifier(), d); - }); - - // create blocks for deduplication - JavaPairRDD blocks = Deduper - .createSortedBlocks(mapDocuments, dedupConf) - .repartition(numPartitions); - - Dataset simRels = spark - .createDataset( - Deduper - .computeRelations(sc, blocks, dedupConf) - .map(t -> DedupUtility.createSimRel(t._1(), t._2(), entity)) - .repartition(numPartitions) - .rdd(), + .transform(deduper.model().parseJsonDataset()) + .transform(deduper.dedup()) + .distinct() + .map( + (MapFunction) t -> DedupUtility + .createSimRel(t.getStruct(0).getString(0), t.getStruct(0).getString(1), entity), Encoders.bean(Relation.class)); saveParquet(simRels, outputPath, SaveMode.Overwrite); diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkPropagateRelation.java b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkPropagateRelation.java index 0fa41bd6d..cb1c70059 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkPropagateRelation.java +++ b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkPropagateRelation.java @@ -3,18 +3,19 @@ package eu.dnetlib.dhp.oa.dedup; import static org.apache.spark.sql.functions.col; -import java.util.Objects; - import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringUtils; import org.apache.spark.SparkConf; -import org.apache.spark.api.java.function.FilterFunction; import org.apache.spark.api.java.function.MapFunction; +import org.apache.spark.api.java.function.ReduceFunction; import org.apache.spark.sql.*; +import org.apache.spark.sql.catalyst.encoders.RowEncoder; +import org.apache.spark.sql.types.StructType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.common.HdfsSupport; +import eu.dnetlib.dhp.schema.common.EntityType; import eu.dnetlib.dhp.schema.common.ModelConstants; import eu.dnetlib.dhp.schema.common.ModelSupport; import eu.dnetlib.dhp.schema.oaf.DataInfo; @@ -28,9 +29,9 @@ public class SparkPropagateRelation extends AbstractSparkAction { private static final Logger log = LoggerFactory.getLogger(SparkPropagateRelation.class); - enum FieldType { - SOURCE, TARGET - } + private static Encoder REL_BEAN_ENC = Encoders.bean(Relation.class); + + private static Encoder REL_KRYO_ENC = Encoders.kryo(Relation.class); public SparkPropagateRelation(ArgumentApplicationParser parser, SparkSession spark) { super(parser, spark); @@ -65,154 +66,99 @@ public class SparkPropagateRelation extends AbstractSparkAction { log.info("workingPath: '{}'", workingPath); log.info("graphOutputPath: '{}'", graphOutputPath); - final String outputRelationPath = DedupUtility.createEntityPath(graphOutputPath, "relation"); - removeOutputDir(spark, outputRelationPath); - Dataset mergeRels = spark .read() .load(DedupUtility.createMergeRelPath(workingPath, "*", "*")) - .as(Encoders.bean(Relation.class)); + .as(REL_BEAN_ENC); // - Dataset> mergedIds = mergeRels + Dataset idsToMerge = mergeRels .where(col("relClass").equalTo(ModelConstants.MERGES)) - .select(col("source"), col("target")) - .distinct() - .map( - (MapFunction>) r -> new Tuple2<>(r.getString(1), r.getString(0)), - Encoders.tuple(Encoders.STRING(), Encoders.STRING())) - .cache(); + .select(col("source").as("dedupID"), col("target").as("mergedObjectID")) + .distinct(); - final String relationPath = DedupUtility.createEntityPath(graphBasePath, "relation"); + Dataset allRels = spark + .read() + .schema(REL_BEAN_ENC.schema()) + .json(graphBasePath + "/relation"); - Dataset rels = spark.read().textFile(relationPath).map(patchRelFn(), Encoders.bean(Relation.class)); + Dataset dedupedRels = allRels + .joinWith(idsToMerge, allRels.col("source").equalTo(idsToMerge.col("mergedObjectID")), "left_outer") + .joinWith(idsToMerge, col("_1.target").equalTo(idsToMerge.col("mergedObjectID")), "left_outer") + .select("_1._1", "_1._2.dedupID", "_2.dedupID") + .as(Encoders.tuple(REL_BEAN_ENC, Encoders.STRING(), Encoders.STRING())) + .map((MapFunction, Relation>) t -> { + Relation rel = t._1(); + String newSource = t._2(); + String newTarget = t._3(); - Dataset newRels = createNewRels(rels, mergedIds, getFixRelFn()); + if (rel.getDataInfo() == null) { + rel.setDataInfo(new DataInfo()); + } - Dataset updated = processDataset( - processDataset(rels, mergedIds, FieldType.SOURCE, getDeletedFn()), - mergedIds, - FieldType.TARGET, - getDeletedFn()); + if (newSource != null || newTarget != null) { + rel.getDataInfo().setDeletedbyinference(false); - save( - distinctRelations( - newRels - .union(updated) - .union(mergeRels) - .map((MapFunction) r -> r, Encoders.kryo(Relation.class))) - .filter((FilterFunction) r -> !Objects.equals(r.getSource(), r.getTarget())), - outputRelationPath, SaveMode.Overwrite); - } + if (newSource != null) + rel.setSource(newSource); - private Dataset distinctRelations(Dataset rels) { - return rels - .filter(getRelationFilterFunction()) + if (newTarget != null) + rel.setTarget(newTarget); + } + + return rel; + }, REL_BEAN_ENC); + + // ids of records that are both not deletedbyinference and not invisible + Dataset ids = validIds(spark, graphBasePath); + + // filter relations that point to valid records, can force them to be visible + Dataset cleanedRels = dedupedRels + .join(ids, col("source").equalTo(ids.col("id")), "leftsemi") + .join(ids, col("target").equalTo(ids.col("id")), "leftsemi") + .as(REL_BEAN_ENC) + .map((MapFunction) r -> { + r.getDataInfo().setInvisible(false); + return r; + }, REL_KRYO_ENC); + + Dataset distinctRels = cleanedRels .groupByKey( (MapFunction) r -> String - .join(r.getSource(), r.getTarget(), r.getRelType(), r.getSubRelType(), r.getRelClass()), + .join(" ", r.getSource(), r.getTarget(), r.getRelType(), r.getSubRelType(), r.getRelClass()), Encoders.STRING()) - .agg(new RelationAggregator().toColumn()) - .map((MapFunction, Relation>) Tuple2::_2, Encoders.bean(Relation.class)); + .reduceGroups((ReduceFunction) (b, a) -> { + b.mergeFrom(a); + return b; + }) + .map((MapFunction, Relation>) Tuple2::_2, REL_BEAN_ENC); + + final String outputRelationPath = graphOutputPath + "/relation"; + removeOutputDir(spark, outputRelationPath); + save( + distinctRels + .union(mergeRels) + .filter("source != target AND dataInfo.deletedbyinference != true AND dataInfo.invisible != true"), + outputRelationPath, + SaveMode.Overwrite); } - // redirect the relations to the dedupID - private static Dataset createNewRels( - Dataset rels, // all the relations to be redirected - Dataset> mergedIds, // merge rels: - MapFunction, Tuple2>, Tuple2>, Relation> mapRel) { + static Dataset validIds(SparkSession spark, String graphBasePath) { + StructType idsSchema = StructType + .fromDDL("`id` STRING, `dataInfo` STRUCT<`deletedbyinference`:BOOLEAN,`invisible`:BOOLEAN>"); - // - Dataset> mapped = rels - .map( - (MapFunction>) r -> new Tuple3<>(getId(r, FieldType.SOURCE), - r, getId(r, FieldType.TARGET)), - Encoders.tuple(Encoders.STRING(), Encoders.kryo(Relation.class), Encoders.STRING())); + Dataset allIds = spark.emptyDataset(RowEncoder.apply(idsSchema)); - // < , > - Dataset, Tuple2>> relSource = mapped - .joinWith(mergedIds, mapped.col("_1").equalTo(mergedIds.col("_1")), "left_outer"); + for (EntityType entityType : ModelSupport.entityTypes.keySet()) { + String entityPath = graphBasePath + '/' + entityType.name(); + if (HdfsSupport.exists(entityPath, spark.sparkContext().hadoopConfiguration())) { + allIds = allIds.union(spark.read().schema(idsSchema).json(entityPath)); + } + } - // < <, >, > - Dataset, Tuple2>, Tuple2>> relSourceTarget = relSource - .joinWith(mergedIds, relSource.col("_1._3").equalTo(mergedIds.col("_1")), "left_outer"); - - return relSourceTarget - .filter( - (FilterFunction, Tuple2>, Tuple2>>) r -> r - ._1() - ._1() != null || r._2() != null) - .map(mapRel, Encoders.bean(Relation.class)) + return allIds + .filter("dataInfo.deletedbyinference != true AND dataInfo.invisible != true") + .select("id") .distinct(); } - - private static Dataset processDataset( - Dataset rels, - Dataset> mergedIds, - FieldType type, - MapFunction, Tuple2>, Relation> mapFn) { - final Dataset> mapped = rels - .map( - (MapFunction>) r -> new Tuple2<>(getId(r, type), r), - Encoders.tuple(Encoders.STRING(), Encoders.kryo(Relation.class))); - return mapped - .joinWith(mergedIds, mapped.col("_1").equalTo(mergedIds.col("_1")), "left_outer") - .map(mapFn, Encoders.bean(Relation.class)); - } - - private FilterFunction getRelationFilterFunction() { - return r -> StringUtils.isNotBlank(r.getSource()) || - StringUtils.isNotBlank(r.getTarget()) || - StringUtils.isNotBlank(r.getRelType()) || - StringUtils.isNotBlank(r.getSubRelType()) || - StringUtils.isNotBlank(r.getRelClass()); - } - - private static String getId(Relation r, FieldType type) { - switch (type) { - case SOURCE: - return r.getSource(); - case TARGET: - return r.getTarget(); - default: - throw new IllegalArgumentException(""); - } - } - - private static MapFunction, Tuple2>, Tuple2>, Relation> getFixRelFn() { - return value -> { - - Relation r = value._1()._1()._2(); - String newSource = value._1()._2() != null ? value._1()._2()._2() : null; - String newTarget = value._2() != null ? value._2()._2() : null; - - if (r.getDataInfo() == null) { - r.setDataInfo(new DataInfo()); - } - r.getDataInfo().setDeletedbyinference(false); - - if (newSource != null) - r.setSource(newSource); - - if (newTarget != null) - r.setTarget(newTarget); - - return r; - }; - } - - private static MapFunction, Tuple2>, Relation> getDeletedFn() { - return value -> { - if (value._2() != null) { - Relation r = value._1()._2(); - if (r.getDataInfo() == null) { - r.setDataInfo(new DataInfo()); - } - r.getDataInfo().setDeletedbyinference(true); - return r; - } - return value._1()._2(); - }; - } - } diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkReporter.java b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkReporter.java deleted file mode 100644 index 005e65ddf..000000000 --- a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkReporter.java +++ /dev/null @@ -1,50 +0,0 @@ - -package eu.dnetlib.dhp.oa.dedup; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import org.apache.spark.util.LongAccumulator; - -import eu.dnetlib.pace.util.Reporter; -import scala.Serializable; -import scala.Tuple2; - -public class SparkReporter implements Serializable, Reporter { - - private final List> relations = new ArrayList<>(); - - private final Map accumulators; - - public SparkReporter(Map accumulators) { - this.accumulators = accumulators; - } - - public void incrementCounter( - String counterGroup, - String counterName, - long delta, - Map accumulators) { - - final String accumulatorName = String.format("%s::%s", counterGroup, counterName); - if (accumulators.containsKey(accumulatorName)) { - accumulators.get(accumulatorName).add(delta); - } - } - - @Override - public void incrementCounter(String counterGroup, String counterName, long delta) { - - incrementCounter(counterGroup, counterName, delta, accumulators); - } - - @Override - public void emit(String type, String from, String to) { - relations.add(new Tuple2<>(from, to)); - } - - public List> getRelations() { - return relations; - } -} diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkWhitelistSimRels.java b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkWhitelistSimRels.java index 72c10e2a6..60752a457 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkWhitelistSimRels.java +++ b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/SparkWhitelistSimRels.java @@ -8,26 +8,18 @@ import org.apache.commons.io.IOUtils; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.api.java.function.MapFunction; -import org.apache.spark.api.java.function.PairFunction; -import org.apache.spark.sql.Dataset; -import org.apache.spark.sql.Encoders; -import org.apache.spark.sql.SaveMode; -import org.apache.spark.sql.SparkSession; +import org.apache.spark.sql.*; import org.dom4j.DocumentException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.xml.sax.SAXException; import eu.dnetlib.dhp.application.ArgumentApplicationParser; -import eu.dnetlib.dhp.schema.oaf.DataInfo; import eu.dnetlib.dhp.schema.oaf.Relation; import eu.dnetlib.dhp.utils.ISLookupClientFactory; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; import eu.dnetlib.pace.config.DedupConfig; -import eu.dnetlib.pace.model.MapDocument; -import eu.dnetlib.pace.util.MapDocumentUtil; -import scala.Tuple2; public class SparkWhitelistSimRels extends AbstractSparkAction { @@ -75,18 +67,15 @@ public class SparkWhitelistSimRels extends AbstractSparkAction { log.info("workingPath: '{}'", workingPath); log.info("whiteListPath: '{}'", whiteListPath); - JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); - // file format: source####target - Dataset> whiteListRels = spark - .createDataset( - sc - .textFile(whiteListPath) - // check if the line is in the correct format: id1####id2 - .filter(s -> s.contains(WHITELIST_SEPARATOR) && s.split(WHITELIST_SEPARATOR).length == 2) - .map(s -> new Tuple2<>(s.split(WHITELIST_SEPARATOR)[0], s.split(WHITELIST_SEPARATOR)[1])) - .rdd(), - Encoders.tuple(Encoders.STRING(), Encoders.STRING())); + Dataset whiteListRels = spark + .read() + .textFile(whiteListPath) + .withColumn("pairs", functions.split(new Column("value"), WHITELIST_SEPARATOR)) + .filter(functions.size(new Column("pairs")).equalTo(2)) + .select( + functions.element_at(new Column("pairs"), 1).as("from"), + functions.element_at(new Column("pairs"), 2).as("to")); // for each dedup configuration for (DedupConfig dedupConf : getConfigurations(isLookUpService, actionSetId)) { @@ -97,35 +86,20 @@ public class SparkWhitelistSimRels extends AbstractSparkAction { final String outputPath = DedupUtility.createSimRelPath(workingPath, actionSetId, subEntity); - Dataset> entities = spark - .createDataset( - sc - .textFile(DedupUtility.createEntityPath(graphBasePath, subEntity)) - .repartition(numPartitions) - .mapToPair( - (PairFunction) s -> { - MapDocument d = MapDocumentUtil.asMapDocumentWithJPath(dedupConf, s); - return new Tuple2<>(d.getIdentifier(), "present"); - }) - .rdd(), - Encoders.tuple(Encoders.STRING(), Encoders.STRING())); + // DFMapDocumentUtils.registerUDFs(spark, dedupConf); - Dataset> whiteListRels1 = whiteListRels - .joinWith(entities, whiteListRels.col("_1").equalTo(entities.col("_1")), "inner") - .map( - (MapFunction, Tuple2>, Tuple2>) Tuple2::_1, - Encoders.tuple(Encoders.STRING(), Encoders.STRING())); + Dataset entities = spark + .read() + .textFile(DedupUtility.createEntityPath(graphBasePath, subEntity)) + .select(functions.get_json_object(new Column("value"), dedupConf.getWf().getIdPath()).as("id")) + .distinct(); - Dataset> whiteListRels2 = whiteListRels1 - .joinWith(entities, whiteListRels1.col("_2").equalTo(entities.col("_1")), "inner") + Dataset whiteListSimRels = whiteListRels + .join(entities, entities.col("id").equalTo(whiteListRels.col("from")), "leftsemi") + .join(entities, functions.col("to").equalTo(entities.col("id")), "leftsemi") .map( - (MapFunction, Tuple2>, Tuple2>) Tuple2::_1, - Encoders.tuple(Encoders.STRING(), Encoders.STRING())); - - Dataset whiteListSimRels = whiteListRels2 - .map( - (MapFunction, Relation>) r -> DedupUtility - .createSimRel(r._1(), r._2(), entity), + (MapFunction) r -> DedupUtility + .createSimRel(r.getString(0), r.getString(1), entity), Encoders.bean(Relation.class)); saveParquet(whiteListSimRels, outputPath, SaveMode.Append); diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/graph/ConnectedComponent.java b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/graph/ConnectedComponent.java deleted file mode 100644 index 3e564052e..000000000 --- a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/graph/ConnectedComponent.java +++ /dev/null @@ -1,100 +0,0 @@ - -package eu.dnetlib.dhp.oa.dedup.graph; - -import java.io.IOException; -import java.io.Serializable; -import java.util.Set; -import java.util.stream.Collectors; - -import org.apache.commons.lang.StringUtils; -import org.codehaus.jackson.annotate.JsonIgnore; - -import com.fasterxml.jackson.databind.ObjectMapper; - -import eu.dnetlib.dhp.utils.DHPUtils; -import eu.dnetlib.pace.util.PaceException; - -public class ConnectedComponent implements Serializable { - - private String ccId; - private Set ids; - - private static final String CONNECTED_COMPONENT_ID_PREFIX = "connect_comp"; - - public ConnectedComponent(Set ids, final int cut) { - this.ids = ids; - - this.ccId = createDefaultID(); - - if (cut > 0 && ids.size() > cut) { - this.ids = ids - .stream() - .filter(id -> !ccId.equalsIgnoreCase(id)) - .limit(cut - 1) - .collect(Collectors.toSet()); -// this.ids.add(ccId); ?? - } - } - - public ConnectedComponent(String ccId, Set ids) { - this.ccId = ccId; - this.ids = ids; - } - - public String createDefaultID() { - if (ids.size() > 1) { - final String s = getMin(); - String prefix = s.split("\\|")[0]; - ccId = prefix + "|" + CONNECTED_COMPONENT_ID_PREFIX + "::" + DHPUtils.md5(s); - return ccId; - } else { - return ids.iterator().next(); - } - } - - @JsonIgnore - public String getMin() { - - final StringBuilder min = new StringBuilder(); - - ids - .forEach( - id -> { - if (StringUtils.isBlank(min.toString())) { - min.append(id); - } else { - if (min.toString().compareTo(id) > 0) { - min.setLength(0); - min.append(id); - } - } - }); - return min.toString(); - } - - @Override - public String toString() { - ObjectMapper mapper = new ObjectMapper(); - try { - return mapper.writeValueAsString(this); - } catch (IOException e) { - throw new PaceException("Failed to create Json: ", e); - } - } - - public Set getIds() { - return ids; - } - - public void setIds(Set ids) { - this.ids = ids; - } - - public String getCcId() { - return ccId; - } - - public void setCcId(String ccId) { - this.ccId = ccId; - } -} diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/graph/GraphProcessor.scala b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/graph/GraphProcessor.scala deleted file mode 100644 index f4dd85d75..000000000 --- a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/graph/GraphProcessor.scala +++ /dev/null @@ -1,37 +0,0 @@ -package eu.dnetlib.dhp.oa.dedup.graph - -import org.apache.spark.graphx._ -import org.apache.spark.rdd.RDD - -import scala.collection.JavaConversions; - -object GraphProcessor { - - def findCCs(vertexes: RDD[(VertexId, String)], edges: RDD[Edge[String]], maxIterations: Int, cut:Int): RDD[ConnectedComponent] = { - val graph: Graph[String, String] = Graph(vertexes, edges).partitionBy(PartitionStrategy.RandomVertexCut) //TODO remember to remove partitionby - val cc = graph.connectedComponents(maxIterations).vertices - - val joinResult = vertexes.leftOuterJoin(cc).map { - case (id, (openaireId, cc)) => { - if (cc.isEmpty) { - (id, openaireId) - } - else { - (cc.get, openaireId) - } - } - } - val connectedComponents = joinResult.groupByKey() - .map[ConnectedComponent](cc => asConnectedComponent(cc, cut)) - connectedComponents - } - - - - def asConnectedComponent(group: (VertexId, Iterable[String]), cut:Int): ConnectedComponent = { - val docs = group._2.toSet[String] - val connectedComponent = new ConnectedComponent(JavaConversions.setAsJavaSet[String](docs), cut); - connectedComponent - } - -} \ No newline at end of file diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/model/Block.java b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/model/Block.java deleted file mode 100644 index 4f0d95c8f..000000000 --- a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/model/Block.java +++ /dev/null @@ -1,80 +0,0 @@ - -package eu.dnetlib.dhp.oa.dedup.model; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.Iterator; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import java.util.stream.StreamSupport; - -import com.google.common.collect.Lists; - -import eu.dnetlib.pace.model.MapDocument; - -public class Block implements Serializable { - - private String key; - - private List documents; - - public Block() { - super(); - } - - public static Block from(String key, MapDocument doc) { - Block block = new Block(); - block.setKey(key); - block.setDocuments(Lists.newArrayList(doc)); - return block; - } - - public static Block from(String key, Iterator blocks, String orderField, int maxSize) { - Block block = new Block(); - block.setKey(key); - - Iterable it = () -> blocks; - - block - .setDocuments( - StreamSupport - .stream(it.spliterator(), false) - .flatMap(b -> b.getDocuments().stream()) - .sorted(Comparator.comparing(a -> a.getFieldMap().get(orderField).stringValue())) - .limit(maxSize) - .collect(Collectors.toCollection(ArrayList::new))); - return block; - } - - public static Block from(Block b1, Block b2, String orderField, int maxSize) { - Block block = new Block(); - block.setKey(b1.getKey()); - block - .setDocuments( - Stream - .concat(b1.getDocuments().stream(), b2.getDocuments().stream()) - .sorted(Comparator.comparing(a -> a.getFieldMap().get(orderField).stringValue())) - .limit(maxSize) - .collect(Collectors.toCollection(ArrayList::new))); - - return block; - } - - public String getKey() { - return key; - } - - public void setKey(String key) { - this.key = key; - } - - public List getDocuments() { - return documents; - } - - public void setDocuments(List documents) { - this.documents = documents; - } -} diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/model/Identifier.java b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/model/Identifier.java index 0cba4fc3b..e03c3bf95 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/model/Identifier.java +++ b/dhp-workflows/dhp-dedup-openaire/src/main/java/eu/dnetlib/dhp/oa/dedup/model/Identifier.java @@ -3,21 +3,21 @@ package eu.dnetlib.dhp.oa.dedup.model; import java.io.Serializable; import java.text.SimpleDateFormat; -import java.util.*; -import java.util.stream.Collectors; +import java.time.LocalDate; +import java.util.Date; +import java.util.List; +import java.util.Objects; import org.apache.commons.lang3.StringUtils; -import com.google.common.collect.Sets; - import eu.dnetlib.dhp.oa.dedup.DatePicker; import eu.dnetlib.dhp.oa.dedup.IdentifierComparator; import eu.dnetlib.dhp.schema.common.EntityType; -import eu.dnetlib.dhp.schema.common.ModelConstants; import eu.dnetlib.dhp.schema.common.ModelSupport; -import eu.dnetlib.dhp.schema.oaf.*; -import eu.dnetlib.dhp.schema.oaf.utils.OafMapperUtils; -import eu.dnetlib.dhp.schema.oaf.utils.PidComparator; +import eu.dnetlib.dhp.schema.oaf.Field; +import eu.dnetlib.dhp.schema.oaf.KeyValue; +import eu.dnetlib.dhp.schema.oaf.OafEntity; +import eu.dnetlib.dhp.schema.oaf.Result; import eu.dnetlib.dhp.schema.oaf.utils.PidType; public class Identifier implements Serializable, Comparable> { @@ -50,7 +50,7 @@ public class Identifier implements Serializable, Comparable if (Objects.nonNull(date)) { return date; } else { - String sDate = BASE_DATE; + String sDate = LocalDate.now().plusDays(1).toString(); if (ModelSupport.isSubClass(getEntity(), Result.class)) { Result result = (Result) getEntity(); if (isWellformed(result.getDateofacceptance())) { diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/consistency/oozie_app/config-default.xml b/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/consistency/oozie_app/config-default.xml index 2e0ed9aee..0980c3731 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/consistency/oozie_app/config-default.xml +++ b/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/consistency/oozie_app/config-default.xml @@ -15,4 +15,8 @@ oozie.action.sharelib.for.spark spark2 + + sparkExecutorMemoryOverhead + 1G + \ No newline at end of file diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/consistency/oozie_app/workflow.xml b/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/consistency/oozie_app/workflow.xml index 7c500493f..306229e79 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/consistency/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/consistency/oozie_app/workflow.xml @@ -12,19 +12,30 @@ graphOutputPath path of the output graph + + filterInvisible + whether filter out invisible entities after merge + + + isLookupUrl + the URL address of the lookUp service + sparkDriverMemory - memory for driver process + heap memory for driver process sparkExecutorMemory - memory for individual executor + heap memory for individual executor + + + sparkExecutorMemoryOverhead + off-heap memory for individual executor sparkExecutorCores number of cores used by single executor - oozieActionShareLibForSpark2 oozie action sharelib for spark 2.* @@ -83,6 +94,7 @@ dhp-dedup-openaire-${projectVersion}.jar --executor-memory=${sparkExecutorMemory} + --conf spark.executor.memoryOverhead=${sparkExecutorMemoryOverhead} --executor-cores=${sparkExecutorCores} --driver-memory=${sparkDriverMemory} --conf spark.extraListeners=${spark2ExtraListeners} @@ -92,7 +104,7 @@ --conf spark.sql.shuffle.partitions=15000 --graphBasePath${graphBasePath} - --o${graphOutputPath} + --graphOutputPath${graphOutputPath} --workingPath${workingPath} @@ -107,8 +119,9 @@ eu.dnetlib.dhp.oa.merge.GroupEntitiesSparkJob dhp-dedup-openaire-${projectVersion}.jar - --executor-cores=${sparkExecutorCores} --executor-memory=${sparkExecutorMemory} + --conf spark.executor.memoryOverhead=${sparkExecutorMemoryOverhead} + --executor-cores=${sparkExecutorCores} --driver-memory=${sparkDriverMemory} --conf spark.extraListeners=${spark2ExtraListeners} --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} @@ -117,198 +130,14 @@ --conf spark.sql.shuffle.partitions=15000 --graphInputPath${graphBasePath} - --outputPath${workingPath}/grouped_entities + --checkpointPath${workingPath}/grouped_entities + --outputPath${graphOutputPath} + --isLookupUrl${isLookupUrl} + --filterInvisible${filterInvisible} - + - - - - - - - - - - - - - yarn - cluster - Dispatch publications - eu.dnetlib.dhp.oa.merge.DispatchEntitiesSparkJob - dhp-dedup-openaire-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.sql.shuffle.partitions=7680 - - --inputPath${workingPath}/grouped_entities - --outputPath${graphOutputPath}/datasource - --graphTableClassNameeu.dnetlib.dhp.schema.oaf.Datasource - - - - - - - - yarn - cluster - Dispatch project - eu.dnetlib.dhp.oa.merge.DispatchEntitiesSparkJob - dhp-dedup-openaire-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.sql.shuffle.partitions=7680 - - --inputPath${workingPath}/grouped_entities - --outputPath${graphOutputPath}/project - --graphTableClassNameeu.dnetlib.dhp.schema.oaf.Project - - - - - - - - yarn - cluster - Dispatch organization - eu.dnetlib.dhp.oa.merge.DispatchEntitiesSparkJob - dhp-dedup-openaire-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.sql.shuffle.partitions=7680 - - --inputPath${workingPath}/grouped_entities - --outputPath${graphOutputPath}/organization - --graphTableClassNameeu.dnetlib.dhp.schema.oaf.Organization - - - - - - - - yarn - cluster - Dispatch publication - eu.dnetlib.dhp.oa.merge.DispatchEntitiesSparkJob - dhp-dedup-openaire-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.sql.shuffle.partitions=7680 - - --inputPath${workingPath}/grouped_entities - --outputPath${graphOutputPath}/publication - --graphTableClassNameeu.dnetlib.dhp.schema.oaf.Publication - - - - - - - - yarn - cluster - Dispatch dataset - eu.dnetlib.dhp.oa.merge.DispatchEntitiesSparkJob - dhp-dedup-openaire-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.sql.shuffle.partitions=7680 - - --inputPath${workingPath}/grouped_entities - --outputPath${graphOutputPath}/dataset - --graphTableClassNameeu.dnetlib.dhp.schema.oaf.Dataset - - - - - - - - yarn - cluster - Dispatch software - eu.dnetlib.dhp.oa.merge.DispatchEntitiesSparkJob - dhp-dedup-openaire-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.sql.shuffle.partitions=7680 - - --inputPath${workingPath}/grouped_entities - --outputPath${graphOutputPath}/software - --graphTableClassNameeu.dnetlib.dhp.schema.oaf.Software - - - - - - - - yarn - cluster - Dispatch otherresearchproduct - eu.dnetlib.dhp.oa.merge.DispatchEntitiesSparkJob - dhp-dedup-openaire-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.sql.shuffle.partitions=7680 - - --inputPath${workingPath}/grouped_entities - --outputPath${graphOutputPath}/otherresearchproduct - --graphTableClassNameeu.dnetlib.dhp.schema.oaf.OtherResearchProduct - - - - - - - \ No newline at end of file diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/createCC_parameters.json b/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/createCC_parameters.json index b1df08535..4f9f4b0b5 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/createCC_parameters.json +++ b/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/createCC_parameters.json @@ -28,5 +28,17 @@ "paramLongName": "workingPath", "paramDescription": "path for the working directory", "paramRequired": true + }, + { + "paramName":"h", + "paramLongName":"hiveMetastoreUris", + "paramDescription": "the hive metastore uris", + "paramRequired": true + }, + { + "paramName": "p", + "paramLongName": "pivotHistoryDatabase", + "paramDescription": "Pivot history database", + "paramRequired": false } ] \ No newline at end of file diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/pivothistory/oozie_app/config-default.xml b/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/pivothistory/oozie_app/config-default.xml new file mode 100644 index 000000000..17bb70647 --- /dev/null +++ b/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/pivothistory/oozie_app/config-default.xml @@ -0,0 +1,26 @@ + + + jobTracker + yarnRM + + + nameNode + hdfs://nameservice1 + + + oozie.use.system.libpath + true + + + oozie.action.sharelib.for.spark + spark2 + + + hiveMetastoreUris + thrift://iis-cdh5-test-m3.ocean.icm.edu.pl:9083 + + + sparkSqlWarehouseDir + /user/hive/warehouse + + \ No newline at end of file diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/pivothistory/oozie_app/sql.sql b/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/pivothistory/oozie_app/sql.sql new file mode 100644 index 000000000..86dbda1c9 --- /dev/null +++ b/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/pivothistory/oozie_app/sql.sql @@ -0,0 +1,62 @@ + +CREATE TABLE `${pivot_history_db}`.`dataset_new` STORED AS PARQUET AS +WITH pivots ( + SELECT property.value AS id, '${new_graph_date}' AS usedIn FROM `${new_graph_db}`.`relation` + LEFT SEMI JOIN `${new_graph_db}`.`dataset` ON relation.source = dataset.id + LATERAL VIEW EXPLODE(properties) AS property WHERE relClass = 'isMergedIn' AND property.key = 'pivot' +UNION + SELECT id, usedIn FROM `${pivot_history_db}`.`dataset` LATERAL VIEW EXPLODE(usages) AS usedIn +) +SELECT id, min(usedIn) as firstUsage, max(usedIn) as lastUsage, collect_set(usedIn) as usages + FROM pivots + GROUP BY id; /*EOS*/ +CREATE TABLE `${pivot_history_db}`.`publication_new` STORED AS PARQUET AS +WITH pivots ( + SELECT property.value AS id, '${new_graph_date}' AS usedIn FROM `${new_graph_db}`.`relation` + LEFT SEMI JOIN `${new_graph_db}`.`publication` ON relation.source = publication.id + LATERAL VIEW EXPLODE(properties) AS property WHERE relClass = 'isMergedIn' AND property.key = 'pivot' +UNION + SELECT id, usedIn FROM `${pivot_history_db}`.`publication` LATERAL VIEW EXPLODE(usages) AS usedIn +) +SELECT id, min(usedIn) as firstUsage, max(usedIn) as lastUsage, collect_set(usedIn) as usages + FROM pivots + GROUP BY id; /*EOS*/ +CREATE TABLE `${pivot_history_db}`.`software_new` STORED AS PARQUET AS +WITH pivots ( + SELECT property.value AS id, '${new_graph_date}' AS usedIn FROM `${new_graph_db}`.`relation` + LEFT SEMI JOIN `${new_graph_db}`.`software` ON relation.source = software.id + LATERAL VIEW EXPLODE(properties) AS property WHERE relClass = 'isMergedIn' AND property.key = 'pivot' +UNION + SELECT id, usedIn FROM `${pivot_history_db}`.`software` LATERAL VIEW EXPLODE(usages) AS usedIn +) +SELECT id, min(usedIn) as firstUsage, max(usedIn) as lastUsage, collect_set(usedIn) as usages + FROM pivots + GROUP BY id; /*EOS*/ +CREATE TABLE `${pivot_history_db}`.`otherresearchproduct_new` STORED AS PARQUET AS +WITH pivots ( + SELECT property.value AS id, '${new_graph_date}' AS usedIn FROM `${new_graph_db}`.`relation` + LEFT SEMI JOIN `${new_graph_db}`.`otherresearchproduct` ON relation.source = otherresearchproduct.id + LATERAL VIEW EXPLODE(properties) AS property WHERE relClass = 'isMergedIn' AND property.key = 'pivot' +UNION + SELECT id, usedIn FROM `${pivot_history_db}`.`otherresearchproduct` LATERAL VIEW EXPLODE(usages) AS usedIn +) +SELECT id, min(usedIn) as firstUsage, max(usedIn) as lastUsage, collect_set(usedIn) as usages + FROM pivots + GROUP BY id; /*EOS*/ + + +DROP TABLE IF EXISTS `${pivot_history_db}`.`dataset_old`; /*EOS*/ +ALTER TABLE `${pivot_history_db}`.`dataset` RENAME TO `${pivot_history_db}`.`dataset_old`; /*EOS*/ +ALTER TABLE `${pivot_history_db}`.`dataset_new` RENAME TO `${pivot_history_db}`.`dataset`; /*EOS*/ + +DROP TABLE IF EXISTS `${pivot_history_db}`.`publication_old`; /*EOS*/ +ALTER TABLE `${pivot_history_db}`.`publication` RENAME TO `${pivot_history_db}`.`publication_old`; /*EOS*/ +ALTER TABLE `${pivot_history_db}`.`publication_new` RENAME TO `${pivot_history_db}`.`publication`; /*EOS*/ + +DROP TABLE IF EXISTS `${pivot_history_db}`.`software_old`; /*EOS*/ +ALTER TABLE `${pivot_history_db}`.`software` RENAME TO `${pivot_history_db}`.`software_old`; /*EOS*/ +ALTER TABLE `${pivot_history_db}`.`software_new` RENAME TO `${pivot_history_db}`.`software`; /*EOS*/ + +DROP TABLE IF EXISTS `${pivot_history_db}`.`otherresearchproduct_old`; /*EOS*/ +ALTER TABLE `${pivot_history_db}`.`otherresearchproduct` RENAME TO `${pivot_history_db}`.`otherresearchproduct_old`; /*EOS*/ +ALTER TABLE `${pivot_history_db}`.`otherresearchproduct_new` RENAME TO `${pivot_history_db}`.`otherresearchproduct`; /*EOS*/ diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/pivothistory/oozie_app/workflow.xml b/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/pivothistory/oozie_app/workflow.xml new file mode 100644 index 000000000..d562f088e --- /dev/null +++ b/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/pivothistory/oozie_app/workflow.xml @@ -0,0 +1,95 @@ + + + + + pivot_history_db + + Pivot history DB on hive + + + new_graph_db + + New graph DB on hive + + + new_graph_date + + Creation date of new graph db + + + + + hiveMetastoreUris + hive server metastore URIs + + + sparkSqlWarehouseDir + + + + sparkClusterOpts + --conf spark.network.timeout=600 --conf spark.extraListeners= --conf spark.sql.queryExecutionListeners= --conf spark.yarn.historyServer.address=http://iis-cdh5-test-m3.ocean.icm.edu.pl:18088 --conf spark.eventLog.dir=hdfs://nameservice1/user/spark/applicationHistory + spark cluster-wide options + + + sparkResourceOpts + --executor-memory=3G --conf spark.executor.memoryOverhead=3G --executor-cores=6 --driver-memory=8G --driver-cores=4 + spark resource options + + + sparkApplicationOpts + --conf spark.sql.shuffle.partitions=3840 + spark resource options + + + + + ${jobTracker} + ${nameNode} + + + mapreduce.job.queuename + ${queueName} + + + oozie.launcher.mapred.job.queue.name + ${oozieLauncherQueueName} + + + oozie.action.sharelib.for.spark + ${oozieActionShareLibForSpark2} + + + + + + + + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + + yarn + cluster + Upgrade Pivot History + eu.dnetlib.dhp.oozie.RunSQLSparkJob + dhp-dedup-openaire-${projectVersion}.jar + + --conf spark.sql.warehouse.dir=${sparkSqlWarehouseDir} + ${sparkClusterOpts} + ${sparkResourceOpts} + ${sparkApplicationOpts} + + --hiveMetastoreUris${hiveMetastoreUris} + --sqleu/dnetlib/dhp/oa/dedup/pivothistory/oozie_app/sql.sql + --pivot_history_db${pivot_history_db} + --new_graph_db${new_graph_db} + --new_graph_date${new_graph_date} + + + + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/scan/oozie_app/config-default.xml b/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/scan/oozie_app/config-default.xml index 2e0ed9aee..cd29965e3 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/scan/oozie_app/config-default.xml +++ b/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/scan/oozie_app/config-default.xml @@ -15,4 +15,8 @@ oozie.action.sharelib.for.spark spark2 + + hiveMetastoreUris + thrift://iis-cdh5-test-m3.ocean.icm.edu.pl:9083 + \ No newline at end of file diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/scan/oozie_app/workflow.xml b/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/scan/oozie_app/workflow.xml index ba2270c8a..49a331def 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/scan/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-dedup-openaire/src/main/resources/eu/dnetlib/dhp/oa/dedup/scan/oozie_app/workflow.xml @@ -188,6 +188,8 @@ --isLookUpUrl${isLookUpUrl} --actionSetId${actionSetId} --cutConnectedComponent${cutConnectedComponent} + --hiveMetastoreUris${hiveMetastoreUris} + --pivotHistoryDatabase${pivotHistoryDatabase} diff --git a/dhp-workflows/dhp-dedup-openaire/src/main/scala/com/kwartile/lib/cc/ConnectedComponent.scala b/dhp-workflows/dhp-dedup-openaire/src/main/scala/com/kwartile/lib/cc/ConnectedComponent.scala new file mode 100644 index 000000000..4c3362235 --- /dev/null +++ b/dhp-workflows/dhp-dedup-openaire/src/main/scala/com/kwartile/lib/cc/ConnectedComponent.scala @@ -0,0 +1,335 @@ +/** Copyright (c) 2017 Kwartile, Inc., http://www.kwartile.com + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/** Map-reduce implementation of Connected Component + * Given lists of subgraphs, returns all the nodes that are connected. + */ + +package com.kwartile.lib.cc + +import org.apache.spark.rdd.RDD +import org.apache.spark.sql.{Dataset, Row, SparkSession} +import org.apache.spark.storage.StorageLevel + +import scala.annotation.tailrec +import scala.collection.mutable + +object ConnectedComponent extends Serializable { + + /** Applies Small Star operation on RDD of nodePairs + * + * @param nodePairs on which to apply Small Star operations + * @return new nodePairs after the operation and conncectivy change count + */ + private def smallStar(nodePairs: RDD[(Long, Long)]): (RDD[(Long, Long)], Long) = { + + /** generate RDD of (self, List(neighbors)) where self > neighbors + * E.g.: nodePairs (1, 4), (6, 1), (3, 2), (6, 5) + * will result into (4, List(1)), (6, List(1)), (3, List(2)), (6, List(5)) + */ + val neighbors = nodePairs.map(x => { + val (self, neighbor) = (x._1, x._2) + if (self > neighbor) + (self, neighbor) + else + (neighbor, self) + }) + + /** reduce on self to get list of all its neighbors. + * E.g: (4, List(1)), (6, List(1)), (3, List(2)), (6, List(5)) + * will result into (4, List(1)), (6, List(1, 5)), (3, List(2)) + * Note: + * (1) you may need to tweak number of partitions. + * (2) also, watch out for data skew. In that case, consider using rangePartitioner + */ + val empty = mutable.HashSet[Long]() + val allNeighbors = neighbors.aggregateByKey(empty)( + (lb, v) => lb += v, + (lb1, lb2) => lb1 ++ lb2 + ) + + /** Apply Small Star operation on (self, List(neighbor)) to get newNodePairs and count the change in connectivity + */ + + val newNodePairsWithChangeCount = allNeighbors + .map(x => { + val self = x._1 + val neighbors = x._2.toList + val minNode = argMin(self :: neighbors) + val newNodePairs = (self :: neighbors) + .map(neighbor => { + (neighbor, minNode) + }) + .filter(x => { + val neighbor = x._1 + val minNode = x._2 + (neighbor <= self && neighbor != minNode) || (self == neighbor) + }) + val uniqueNewNodePairs = newNodePairs.toSet.toList + + /** We count the change by taking a diff of the new node pairs with the old node pairs + */ + val connectivityChangeCount = (uniqueNewNodePairs diff neighbors.map((self, _))).length + (uniqueNewNodePairs, connectivityChangeCount) + }) + .persist(StorageLevel.MEMORY_AND_DISK_SER) + + /** Sum all the changeCounts + */ + val totalConnectivityCountChange = newNodePairsWithChangeCount + .mapPartitions(iter => { + val (v, l) = iter.toSeq.unzip + val sum = l.sum + Iterator(sum) + }) + .sum + .toLong + + val newNodePairs = newNodePairsWithChangeCount.map(x => x._1).flatMap(x => x) + newNodePairsWithChangeCount.unpersist(false) + (newNodePairs, totalConnectivityCountChange) + } + + /** Apply Large Star operation on a RDD of nodePairs + * + * @param nodePairs on which to apply Large Star operations + * @return new nodePairs after the operation and conncectivy change count + */ + private def largeStar(nodePairs: RDD[(Long, Long)]): (RDD[(Long, Long)], Long) = { + + /** generate RDD of (self, List(neighbors)) + * E.g.: nodePairs (1, 4), (6, 1), (3, 2), (6, 5) + * will result into (4, List(1)), (1, List(4)), (6, List(1)), (1, List(6)), (3, List(2)), (2, List(3)), (6, List(5)), (5, List(6)) + */ + + val neighbors = nodePairs.flatMap(x => { + val (self, neighbor) = (x._1, x._2) + if (self == neighbor) + List((self, neighbor)) + else + List((self, neighbor), (neighbor, self)) + }) + + /** reduce on self to get list of all its neighbors. + * E.g: (4, List(1)), (1, List(4)), (6, List(1)), (1, List(6)), (3, List(2)), (2, List(3)), (6, List(5)), (5, List(6)) + * will result into (4, List(1)), (1, List(4, 6)), (6, List(1, 5)), (3, List(2)), (2, List(3)), (5, List(6)) + * Note: + * (1) you may need to tweak number of partitions. + * (2) also, watch out for data skew. In that case, consider using rangePartitioner + */ + + val localAdd = (s: mutable.HashSet[Long], v: Long) => s += v + val partitionAdd = (s1: mutable.HashSet[Long], s2: mutable.HashSet[Long]) => s1 ++= s2 + val allNeighbors = + neighbors.aggregateByKey(mutable.HashSet.empty[Long] /*, rangePartitioner*/ )(localAdd, partitionAdd) + + /** Apply Large Star operation on (self, List(neighbor)) to get newNodePairs and count the change in connectivity + */ + + val newNodePairsWithChangeCount = allNeighbors + .map(x => { + val self = x._1 + val neighbors = x._2.toList + val minNode = argMin(self :: neighbors) + val newNodePairs = (self :: neighbors) + .map(neighbor => { + (neighbor, minNode) + }) + .filter(x => { + val neighbor = x._1 + val minNode = x._2 + neighbor > self || neighbor == minNode + }) + + val uniqueNewNodePairs = newNodePairs.toSet.toList + val connectivityChangeCount = (uniqueNewNodePairs diff neighbors.map((self, _))).length + (uniqueNewNodePairs, connectivityChangeCount) + }) + .persist(StorageLevel.MEMORY_AND_DISK_SER) + + val totalConnectivityCountChange = newNodePairsWithChangeCount + .mapPartitions(iter => { + val (v, l) = iter.toSeq.unzip + val sum = l.sum + Iterator(sum) + }) + .sum + .toLong + + /** Sum all the changeCounts + */ + val newNodePairs = newNodePairsWithChangeCount.map(x => x._1).flatMap(x => x) + newNodePairsWithChangeCount.unpersist(false) + (newNodePairs, totalConnectivityCountChange) + } + + private def argMin(nodes: List[Long]): Long = { + nodes.min(Ordering.by((node: Long) => node)) + } + + /** Build nodePairs given a list of nodes. A list of nodes represents a subgraph. + * + * @param nodes that are part of a subgraph + * @return nodePairs for a subgraph + */ + private def buildPairs(nodes: List[Long]): List[(Long, Long)] = { + buildPairs(nodes.head, nodes.tail, null.asInstanceOf[List[(Long, Long)]]) + } + + @tailrec + private def buildPairs(node: Long, neighbors: List[Long], partialPairs: List[(Long, Long)]): List[(Long, Long)] = { + if (neighbors.isEmpty) { + if (partialPairs != null) + List((node, node)) ::: partialPairs + else + List((node, node)) + } else if (neighbors.length == 1) { + val neighbor = neighbors(0) + if (node > neighbor) + if (partialPairs != null) List((node, neighbor)) ::: partialPairs else List((node, neighbor)) + else if (partialPairs != null) List((neighbor, node)) ::: partialPairs + else List((neighbor, node)) + } else { + val newPartialPairs = neighbors + .map(neighbor => { + if (node > neighbor) + List((node, neighbor)) + else + List((neighbor, node)) + }) + .flatMap(x => x) + + if (partialPairs != null) + buildPairs(neighbors.head, neighbors.tail, newPartialPairs ::: partialPairs) + else + buildPairs(neighbors.head, neighbors.tail, newPartialPairs) + } + } + + /** Implements alternatingAlgo. Converges when the changeCount is either 0 or does not change from the previous iteration + * + * @param nodePairs for a graph + * @param largeStarConnectivityChangeCount change count that resulted from the previous iteration + * @param smallStarConnectivityChangeCount change count that resulted from the previous iteration + * @param didConverge flag to indicate the alorigth converged + * @param currIterationCount counter to capture number of iterations + * @param maxIterationCount maximum number iterations to try before giving up + * @return RDD of nodePairs + */ + + @tailrec + private def alternatingAlgo( + nodePairs: RDD[(Long, Long)], + largeStarConnectivityChangeCount: Long, + smallStarConnectivityChangeCount: Long, + didConverge: Boolean, + currIterationCount: Int, + maxIterationCount: Int + ): (RDD[(Long, Long)], Boolean, Long) = { + + val iterationCount = currIterationCount + 1 + if (didConverge) + (nodePairs, true, currIterationCount) + else if (currIterationCount >= maxIterationCount) { + (nodePairs, false, currIterationCount) + } else { + + val (nodePairsLargeStar, currLargeStarConnectivityChangeCount) = largeStar(nodePairs) + val (nodePairsSmallStar, currSmallStarConnectivityChangeCount) = smallStar(nodePairsLargeStar) + + if ( + (currLargeStarConnectivityChangeCount == largeStarConnectivityChangeCount && + currSmallStarConnectivityChangeCount == smallStarConnectivityChangeCount) || + (currSmallStarConnectivityChangeCount == 0 && currLargeStarConnectivityChangeCount == 0) + ) { + alternatingAlgo( + nodePairsSmallStar, + currLargeStarConnectivityChangeCount, + currSmallStarConnectivityChangeCount, + true, + iterationCount, + maxIterationCount + ) + } else { + alternatingAlgo( + nodePairsSmallStar, + currLargeStarConnectivityChangeCount, + currSmallStarConnectivityChangeCount, + false, + iterationCount, + maxIterationCount + ) + } + } + } + + /** Driver function + * + * @param cliques list of nodes representing subgraphs (or cliques) + * @param maxIterationCount maximum number iterations to try before giving up + * @return Connected Components as nodePairs where second member of the nodePair is the minimum node in the component + */ + def run(cliques: RDD[List[Long]], maxIterationCount: Int): (RDD[(Long, Long)], Boolean, Long) = { + + val nodePairs = cliques + .map(aClique => { + buildPairs(aClique) + }) + .flatMap(x => x) + + val (cc, didConverge, iterCount) = alternatingAlgo(nodePairs, 9999999L, 9999999L, false, 0, maxIterationCount) + + if (didConverge) { + (cc, didConverge, iterCount) + } else { + (null.asInstanceOf[RDD[(Long, Long)]], didConverge, iterCount) + } + } + + def runOnPairs(nodePairs: RDD[(Long, Long)], maxIterationCount: Int): (RDD[(Long, Long)], Boolean, Long) = { + val (cc, didConverge, iterCount) = alternatingAlgo(nodePairs, 9999999L, 9999999L, false, 0, maxIterationCount) + + if (didConverge) { + (cc, didConverge, iterCount) + } else { + (null.asInstanceOf[RDD[(Long, Long)]], didConverge, iterCount) + } + } + + def runOnPairs(nodePairs: Dataset[Row], maxIterationCount: Int)(implicit spark: SparkSession): Dataset[Row] = { + import spark.implicits._ + + val (cc, didConverge, iterCount) = alternatingAlgo( + nodePairs.map(e => (e.getLong(0), e.getLong(1))).rdd, + 9999999L, + 9999999L, + false, + 0, + maxIterationCount + ) + + if (didConverge) { + cc.toDF("vertexId", "groupId") + } else { + null.asInstanceOf[Dataset[Row]] + } + } + +} diff --git a/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/EntityMergerTest.java b/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/EntityMergerTest.java index c9cfb8cb2..42ca1613f 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/EntityMergerTest.java +++ b/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/EntityMergerTest.java @@ -9,7 +9,8 @@ import java.io.IOException; import java.io.Serializable; import java.lang.reflect.InvocationTargetException; import java.nio.file.Paths; -import java.util.*; +import java.util.ArrayList; +import java.util.List; import java.util.stream.Collectors; import org.codehaus.jackson.map.ObjectMapper; @@ -17,7 +18,10 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import eu.dnetlib.dhp.oa.merge.AuthorMerger; -import eu.dnetlib.dhp.schema.oaf.*; +import eu.dnetlib.dhp.schema.oaf.DataInfo; +import eu.dnetlib.dhp.schema.oaf.Publication; +import eu.dnetlib.dhp.schema.oaf.Software; +import eu.dnetlib.dhp.schema.oaf.StructuredProperty; import eu.dnetlib.pace.util.MapDocumentUtil; import scala.Tuple2; diff --git a/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/SparkDedupTest.java b/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/SparkDedupTest.java index 3de14f577..8b3480e60 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/SparkDedupTest.java +++ b/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/SparkDedupTest.java @@ -22,12 +22,9 @@ import java.util.stream.Collectors; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apache.spark.SparkConf; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.api.java.function.FilterFunction; import org.apache.spark.api.java.function.MapFunction; -import org.apache.spark.api.java.function.PairFunction; import org.apache.spark.sql.Dataset; import org.apache.spark.sql.Encoders; import org.apache.spark.sql.Row; @@ -44,10 +41,12 @@ import com.google.common.collect.Sets; import eu.dnetlib.dhp.application.ArgumentApplicationParser; import eu.dnetlib.dhp.schema.common.ModelConstants; +import eu.dnetlib.dhp.schema.common.ModelSupport; import eu.dnetlib.dhp.schema.oaf.*; +import eu.dnetlib.dhp.schema.oaf.utils.OafMapperUtils; +import eu.dnetlib.dhp.schema.sx.OafUtils; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; -import eu.dnetlib.pace.util.MapDocumentUtil; import scala.Tuple2; @ExtendWith(MockitoExtension.class) @@ -63,6 +62,8 @@ public class SparkDedupTest implements Serializable { private static String testGraphBasePath; private static String testOutputBasePath; private static String testDedupGraphBasePath; + private static String testConsistencyGraphBasePath; + private static final String testActionSetId = "test-orchestrator"; private static String whitelistPath; private static List whiteList; @@ -76,6 +77,7 @@ public class SparkDedupTest implements Serializable { .get(SparkDedupTest.class.getResource("/eu/dnetlib/dhp/dedup/entities").toURI()) .toFile() .getAbsolutePath(); + testOutputBasePath = createTempDirectory(SparkDedupTest.class.getSimpleName() + "-") .toAbsolutePath() .toString(); @@ -84,6 +86,10 @@ public class SparkDedupTest implements Serializable { .toAbsolutePath() .toString(); + testConsistencyGraphBasePath = createTempDirectory(SparkDedupTest.class.getSimpleName() + "-") + .toAbsolutePath() + .toString(); + whitelistPath = Paths .get(SparkDedupTest.class.getResource("/eu/dnetlib/dhp/dedup/whitelist.simrels.txt").toURI()) .toFile() @@ -95,6 +101,7 @@ public class SparkDedupTest implements Serializable { final SparkConf conf = new SparkConf(); conf.set("spark.sql.shuffle.partitions", "200"); + conf.set("spark.sql.warehouse.dir", testOutputBasePath + "/spark-warehouse"); spark = SparkSession .builder() .appName(SparkDedupTest.class.getSimpleName()) @@ -178,16 +185,18 @@ public class SparkDedupTest implements Serializable { .load(DedupUtility.createSimRelPath(testOutputBasePath, testActionSetId, "otherresearchproduct")) .count(); - assertEquals(3076, orgs_simrel); - assertEquals(7046, pubs_simrel); - assertEquals(336, sw_simrel); - assertEquals(442, ds_simrel); - assertEquals(6784, orp_simrel); -// System.out.println("orgs_simrel = " + orgs_simrel); -// System.out.println("pubs_simrel = " + pubs_simrel); -// System.out.println("sw_simrel = " + sw_simrel); -// System.out.println("ds_simrel = " + ds_simrel); -// System.out.println("orp_simrel = " + orp_simrel); + System.out.println("orgs_simrel = " + orgs_simrel); + System.out.println("pubs_simrel = " + pubs_simrel); + System.out.println("sw_simrel = " + sw_simrel); + System.out.println("ds_simrel = " + ds_simrel); + System.out.println("orp_simrel = " + orp_simrel); + + assertEquals(751, orgs_simrel); + assertEquals(546, pubs_simrel); + assertEquals(113, sw_simrel); + assertEquals(148, ds_simrel); + assertEquals(280, orp_simrel); + } @Test @@ -231,10 +240,10 @@ public class SparkDedupTest implements Serializable { .count(); // entities simrels supposed to be equal to the number of previous step (no rels in whitelist) - assertEquals(3076, orgs_simrel); - assertEquals(7046, pubs_simrel); - assertEquals(442, ds_simrel); - assertEquals(6784, orp_simrel); + assertEquals(751, orgs_simrel); + assertEquals(546, pubs_simrel); + assertEquals(148, ds_simrel); + assertEquals(280, orp_simrel); // System.out.println("orgs_simrel = " + orgs_simrel); // System.out.println("pubs_simrel = " + pubs_simrel); // System.out.println("ds_simrel = " + ds_simrel); @@ -264,7 +273,7 @@ public class SparkDedupTest implements Serializable { && rel.getTarget().equalsIgnoreCase(whiteList.get(1).split(WHITELIST_SEPARATOR)[1])) .count() > 0); - assertEquals(338, sw_simrel.count()); + assertEquals(115, sw_simrel.count()); // System.out.println("sw_simrel = " + sw_simrel.count()); } @@ -288,7 +297,9 @@ public class SparkDedupTest implements Serializable { "-w", testOutputBasePath, "-cc", - "3" + "3", + "-h", + "" }); new SparkCreateMergeRels(parser, spark).run(isLookUpService); @@ -361,6 +372,113 @@ public class SparkDedupTest implements Serializable { .deleteDirectory(new File(testOutputBasePath + "/" + testActionSetId + "/otherresearchproduct_mergerel")); } + @Test + @Order(3) + void createMergeRelsWithPivotHistoryTest() throws Exception { + + ArgumentApplicationParser parser = new ArgumentApplicationParser( + classPathResourceAsString("/eu/dnetlib/dhp/oa/dedup/createCC_parameters.json")); + + spark.sql("CREATE DATABASE IF NOT EXISTS pivot_history_test"); + ModelSupport.oafTypes.keySet().forEach(entityType -> { + try { + spark + .read() + .json( + Paths + .get(SparkDedupTest.class.getResource("/eu/dnetlib/dhp/dedup/pivot_history").toURI()) + .toFile() + .getAbsolutePath()) + .write() + .mode("overwrite") + .saveAsTable("pivot_history_test." + entityType); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + }); + + parser + .parseArgument( + new String[] { + "-i", + testGraphBasePath, + "-asi", + testActionSetId, + "-la", + "lookupurl", + "-w", + testOutputBasePath, + "-h", + "", + "-pivotHistoryDatabase", + "pivot_history_test" + + }); + + new SparkCreateMergeRels(parser, spark).run(isLookUpService); + + long orgs_mergerel = spark + .read() + .load(testOutputBasePath + "/" + testActionSetId + "/organization_mergerel") + .count(); + final Dataset pubs = spark + .read() + .load(testOutputBasePath + "/" + testActionSetId + "/publication_mergerel") + .as(Encoders.bean(Relation.class)); + long sw_mergerel = spark + .read() + .load(testOutputBasePath + "/" + testActionSetId + "/software_mergerel") + .count(); + long ds_mergerel = spark + .read() + .load(testOutputBasePath + "/" + testActionSetId + "/dataset_mergerel") + .count(); + + long orp_mergerel = spark + .read() + .load(testOutputBasePath + "/" + testActionSetId + "/otherresearchproduct_mergerel") + .count(); + + final List merges = pubs + .filter("source == '50|arXiv_dedup_::c93aeb433eb90ed7a86e29be00791b7c'") + .collectAsList(); + assertEquals(3, merges.size()); + Set dups = Sets + .newHashSet( + "50|doi_________::3b1d0d8e8f930826665df9d6b82fbb73", + "50|doi_________::d5021b53204e4fdeab6ff5d5bc468032", + "50|arXiv_______::c93aeb433eb90ed7a86e29be00791b7c"); + merges.forEach(r -> { + assertEquals(ModelConstants.RESULT_RESULT, r.getRelType()); + assertEquals(ModelConstants.DEDUP, r.getSubRelType()); + assertEquals(ModelConstants.MERGES, r.getRelClass()); + assertTrue(dups.contains(r.getTarget())); + }); + + final List mergedIn = pubs + .filter("target == '50|arXiv_dedup_::c93aeb433eb90ed7a86e29be00791b7c'") + .collectAsList(); + assertEquals(3, mergedIn.size()); + mergedIn.forEach(r -> { + assertEquals(ModelConstants.RESULT_RESULT, r.getRelType()); + assertEquals(ModelConstants.DEDUP, r.getSubRelType()); + assertEquals(ModelConstants.IS_MERGED_IN, r.getRelClass()); + assertTrue(dups.contains(r.getSource())); + }); + + assertEquals(1268, orgs_mergerel); + assertEquals(1112, pubs.count()); + assertEquals(292, sw_mergerel); + assertEquals(476, ds_mergerel); + assertEquals(742, orp_mergerel); +// System.out.println("orgs_mergerel = " + orgs_mergerel); +// System.out.println("pubs_mergerel = " + pubs_mergerel); +// System.out.println("sw_mergerel = " + sw_mergerel); +// System.out.println("ds_mergerel = " + ds_mergerel); +// System.out.println("orp_mergerel = " + orp_mergerel); + + } + @Test @Order(4) void createMergeRelsTest() throws Exception { @@ -378,7 +496,9 @@ public class SparkDedupTest implements Serializable { "-la", "lookupurl", "-w", - testOutputBasePath + testOutputBasePath, + "-h", + "" }); new SparkCreateMergeRels(parser, spark).run(isLookUpService); @@ -433,10 +553,10 @@ public class SparkDedupTest implements Serializable { }); assertEquals(1268, orgs_mergerel); - assertEquals(1450, pubs.count()); - assertEquals(286, sw_mergerel); - assertEquals(472, ds_mergerel); - assertEquals(738, orp_mergerel); + assertEquals(1112, pubs.count()); + assertEquals(292, sw_mergerel); + assertEquals(476, ds_mergerel); + assertEquals(742, orp_mergerel); // System.out.println("orgs_mergerel = " + orgs_mergerel); // System.out.println("pubs_mergerel = " + pubs_mergerel); // System.out.println("sw_mergerel = " + sw_mergerel); @@ -488,8 +608,8 @@ public class SparkDedupTest implements Serializable { .count(); assertEquals(86, orgs_deduprecord); - assertEquals(68, pubs.count()); - assertEquals(49, sw_deduprecord); + assertEquals(91, pubs.count()); + assertEquals(47, sw_deduprecord); assertEquals(97, ds_deduprecord); assertEquals(92, orp_deduprecord); @@ -625,11 +745,11 @@ public class SparkDedupTest implements Serializable { .distinct() .count(); - assertEquals(902, publications); + assertEquals(925, publications); assertEquals(839, organizations); assertEquals(100, projects); assertEquals(100, datasource); - assertEquals(198, softwares); + assertEquals(196, softwares); assertEquals(389, dataset); assertEquals(520, otherresearchproduct); @@ -673,6 +793,30 @@ public class SparkDedupTest implements Serializable { assertEquals(mergedOrp, deletedOrp); } + @Test + @Order(6) + void copyRelationsNoOpenorgsTest() throws Exception { + + ArgumentApplicationParser parser = new ArgumentApplicationParser( + IOUtils + .toString( + SparkCopyRelationsNoOpenorgs.class + .getResourceAsStream( + "/eu/dnetlib/dhp/oa/dedup/updateEntity_parameters.json"))); + parser + .parseArgument( + new String[] { + "-i", testGraphBasePath, "-w", testOutputBasePath, "-o", testDedupGraphBasePath + }); + + new SparkCopyRelationsNoOpenorgs(parser, spark).run(isLookUpService); + + final Dataset outputRels = spark.read().text(testDedupGraphBasePath + "/relation"); + + System.out.println(outputRels.count()); + // assertEquals(2382, outputRels.count()); + } + @Test @Order(7) void propagateRelationTest() throws Exception { @@ -682,7 +826,7 @@ public class SparkDedupTest implements Serializable { parser .parseArgument( new String[] { - "-i", testGraphBasePath, "-w", testOutputBasePath, "-o", testDedupGraphBasePath + "-i", testDedupGraphBasePath, "-w", testOutputBasePath, "-o", testConsistencyGraphBasePath }); new SparkPropagateRelation(parser, spark).run(isLookUpService); @@ -697,31 +841,56 @@ public class SparkDedupTest implements Serializable { .read() .load(DedupUtility.createMergeRelPath(testOutputBasePath, "*", "*")) .as(Encoders.bean(Relation.class)); - final JavaPairRDD mergedIds = mergeRels - .where("relClass == 'merges'") - .select(mergeRels.col("target")) - .distinct() - .toJavaRDD() - .mapToPair( - (PairFunction) r -> new Tuple2(r.getString(0), "d")); - JavaRDD toCheck = jsc - .textFile(testDedupGraphBasePath + "/relation") - .mapToPair(json -> new Tuple2<>(MapDocumentUtil.getJPathString("$.source", json), json)) - .join(mergedIds) - .map(t -> t._2()._1()) - .mapToPair(json -> new Tuple2<>(MapDocumentUtil.getJPathString("$.target", json), json)) - .join(mergedIds) - .map(t -> t._2()._1()); + Dataset inputRels = spark + .read() + .json(testDedupGraphBasePath + "/relation"); - long deletedbyinference = toCheck.filter(this::isDeletedByInference).count(); - long updated = toCheck.count(); + Dataset outputRels = spark + .read() + .json(testConsistencyGraphBasePath + "/relation"); - assertEquals(updated, deletedbyinference); + assertEquals( + 0, outputRels + .filter("dataInfo.deletedbyinference == true OR dataInfo.invisible == true") + .count()); + + assertEquals( + 5, outputRels + .filter("relClass NOT IN ('merges', 'isMergedIn')") + .count()); + + assertEquals(5 + mergeRels.count(), outputRels.count()); } @Test @Order(8) + void testCleanedPropagatedRelations() throws Exception { + Dataset df_before = spark + .read() + .schema(Encoders.bean(Relation.class).schema()) + .json(testDedupGraphBasePath + "/relation"); + + Dataset df_after = spark + .read() + .schema(Encoders.bean(Relation.class).schema()) + .json(testConsistencyGraphBasePath + "/relation"); + + assertNotEquals(df_before.count(), df_after.count()); + + assertEquals( + 0, df_after + .filter("dataInfo.deletedbyinference == true OR dataInfo.invisible == true") + .count()); + + assertEquals( + 5, df_after + .filter("relClass NOT IN ('merges', 'isMergedIn')") + .count()); + } + + @Test + @Order(10) void testRelations() throws Exception { testUniqueness("/eu/dnetlib/dhp/dedup/test/relation_1.json", 12, 10); testUniqueness("/eu/dnetlib/dhp/dedup/test/relation_2.json", 10, 2); @@ -743,6 +912,7 @@ public class SparkDedupTest implements Serializable { public static void finalCleanUp() throws IOException { FileUtils.deleteDirectory(new File(testOutputBasePath)); FileUtils.deleteDirectory(new File(testDedupGraphBasePath)); + FileUtils.deleteDirectory(new File(testConsistencyGraphBasePath)); } public boolean isDeletedByInference(String s) { diff --git a/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/SparkOpenorgsDedupTest.java b/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/SparkOpenorgsDedupTest.java index 88c28ab2f..a0c7772e9 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/SparkOpenorgsDedupTest.java +++ b/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/SparkOpenorgsDedupTest.java @@ -143,7 +143,7 @@ public class SparkOpenorgsDedupTest implements Serializable { .load(DedupUtility.createSimRelPath(testOutputBasePath, testActionSetId, "organization")) .count(); - assertEquals(290, orgs_simrel); + assertEquals(145, orgs_simrel); } @Test @@ -172,7 +172,7 @@ public class SparkOpenorgsDedupTest implements Serializable { .load(DedupUtility.createSimRelPath(testOutputBasePath, testActionSetId, "organization")) .count(); - assertEquals(326, orgs_simrel); + assertEquals(181, orgs_simrel); } @Test diff --git a/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/SparkOpenorgsProvisionTest.java b/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/SparkOpenorgsProvisionTest.java index 2a9f34dee..73e768cf1 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/SparkOpenorgsProvisionTest.java +++ b/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/SparkOpenorgsProvisionTest.java @@ -3,6 +3,7 @@ package eu.dnetlib.dhp.oa.dedup; import static java.nio.file.Files.createTempDirectory; +import static org.apache.spark.sql.functions.col; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.lenient; @@ -11,16 +12,10 @@ import java.io.IOException; import java.io.Serializable; import java.net.URISyntaxException; import java.nio.file.Paths; -import java.util.List; -import java.util.stream.Collectors; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apache.spark.SparkConf; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaRDD; -import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.api.java.function.PairFunction; import org.apache.spark.sql.Dataset; import org.apache.spark.sql.Encoders; import org.apache.spark.sql.Row; @@ -31,14 +26,10 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.jupiter.MockitoExtension; -import com.fasterxml.jackson.databind.ObjectMapper; - import eu.dnetlib.dhp.application.ArgumentApplicationParser; import eu.dnetlib.dhp.schema.oaf.Relation; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; -import eu.dnetlib.pace.util.MapDocumentUtil; -import scala.Tuple2; @ExtendWith(MockitoExtension.class) @TestMethodOrder(MethodOrderer.OrderAnnotation.class) @@ -48,11 +39,11 @@ public class SparkOpenorgsProvisionTest implements Serializable { ISLookUpService isLookUpService; private static SparkSession spark; - private static JavaSparkContext jsc; private static String testGraphBasePath; private static String testOutputBasePath; private static String testDedupGraphBasePath; + private static String testConsistencyGraphBasePath; private static final String testActionSetId = "test-orchestrator"; @BeforeAll @@ -68,6 +59,9 @@ public class SparkOpenorgsProvisionTest implements Serializable { testDedupGraphBasePath = createTempDirectory(SparkOpenorgsProvisionTest.class.getSimpleName() + "-") .toAbsolutePath() .toString(); + testConsistencyGraphBasePath = createTempDirectory(SparkOpenorgsProvisionTest.class.getSimpleName() + "-") + .toAbsolutePath() + .toString(); FileUtils.deleteDirectory(new File(testOutputBasePath)); FileUtils.deleteDirectory(new File(testDedupGraphBasePath)); @@ -80,8 +74,13 @@ public class SparkOpenorgsProvisionTest implements Serializable { .master("local[*]") .config(conf) .getOrCreate(); + } - jsc = JavaSparkContext.fromSparkContext(spark.sparkContext()); + @AfterAll + public static void finalCleanUp() throws IOException { + FileUtils.deleteDirectory(new File(testOutputBasePath)); + FileUtils.deleteDirectory(new File(testDedupGraphBasePath)); + FileUtils.deleteDirectory(new File(testConsistencyGraphBasePath)); } @BeforeEach @@ -190,26 +189,21 @@ public class SparkOpenorgsProvisionTest implements Serializable { new SparkUpdateEntity(parser, spark).run(isLookUpService); - long organizations = jsc.textFile(testDedupGraphBasePath + "/organization").count(); + Dataset organizations = spark.read().json(testDedupGraphBasePath + "/organization"); - long mergedOrgs = spark + Dataset mergedOrgs = spark .read() .load(testOutputBasePath + "/" + testActionSetId + "/organization_mergerel") - .as(Encoders.bean(Relation.class)) .where("relClass=='merges'") - .javaRDD() - .map(Relation::getTarget) - .distinct() - .count(); + .select("target") + .distinct(); - assertEquals(80, organizations); + assertEquals(80, organizations.count()); - long deletedOrgs = jsc - .textFile(testDedupGraphBasePath + "/organization") - .filter(this::isDeletedByInference) - .count(); + Dataset deletedOrgs = organizations + .filter("dataInfo.deletedbyinference = TRUE"); - assertEquals(mergedOrgs, deletedOrgs); + assertEquals(mergedOrgs.count(), deletedOrgs.count()); } @Test @@ -230,10 +224,9 @@ public class SparkOpenorgsProvisionTest implements Serializable { new SparkCopyRelationsNoOpenorgs(parser, spark).run(isLookUpService); - final JavaRDD rels = jsc.textFile(testDedupGraphBasePath + "/relation"); - - assertEquals(2382, rels.count()); + final Dataset outputRels = spark.read().text(testDedupGraphBasePath + "/relation"); + assertEquals(2382, outputRels.count()); } @Test @@ -248,51 +241,41 @@ public class SparkOpenorgsProvisionTest implements Serializable { parser .parseArgument( new String[] { - "-i", testGraphBasePath, "-w", testOutputBasePath, "-o", testDedupGraphBasePath + "-i", testDedupGraphBasePath, "-w", testOutputBasePath, "-o", testConsistencyGraphBasePath }); new SparkPropagateRelation(parser, spark).run(isLookUpService); - long relations = jsc.textFile(testDedupGraphBasePath + "/relation").count(); - - assertEquals(4896, relations); - - // check deletedbyinference final Dataset mergeRels = spark .read() .load(DedupUtility.createMergeRelPath(testOutputBasePath, "*", "*")) .as(Encoders.bean(Relation.class)); - final JavaPairRDD mergedIds = mergeRels + + Dataset inputRels = spark + .read() + .json(testDedupGraphBasePath + "/relation"); + + Dataset outputRels = spark + .read() + .json(testConsistencyGraphBasePath + "/relation"); + + final Dataset mergedIds = mergeRels .where("relClass == 'merges'") - .select(mergeRels.col("target")) - .distinct() - .toJavaRDD() - .mapToPair( - (PairFunction) r -> new Tuple2(r.getString(0), "d")); + .select(col("target").as("id")) + .distinct(); - JavaRDD toCheck = jsc - .textFile(testDedupGraphBasePath + "/relation") - .mapToPair(json -> new Tuple2<>(MapDocumentUtil.getJPathString("$.source", json), json)) - .join(mergedIds) - .map(t -> t._2()._1()) - .mapToPair(json -> new Tuple2<>(MapDocumentUtil.getJPathString("$.target", json), json)) - .join(mergedIds) - .map(t -> t._2()._1()); + Dataset toUpdateRels = inputRels + .as("rel") + .join(mergedIds.as("s"), col("rel.source").equalTo(col("s.id")), "left_outer") + .join(mergedIds.as("t"), col("rel.target").equalTo(col("t.id")), "left_outer") + .filter("s.id IS NOT NULL OR t.id IS NOT NULL") + .distinct(); - long deletedbyinference = toCheck.filter(this::isDeletedByInference).count(); - long updated = toCheck.count(); + Dataset updatedRels = inputRels + .select("source", "target", "relClass") + .except(outputRels.select("source", "target", "relClass")); - assertEquals(updated, deletedbyinference); + assertEquals(toUpdateRels.count(), updatedRels.count()); + assertEquals(140, outputRels.count()); } - - @AfterAll - public static void finalCleanUp() throws IOException { - FileUtils.deleteDirectory(new File(testOutputBasePath)); - FileUtils.deleteDirectory(new File(testDedupGraphBasePath)); - } - - public boolean isDeletedByInference(String s) { - return s.contains("\"deletedbyinference\":true"); - } - } diff --git a/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/SparkPublicationRootsTest.java b/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/SparkPublicationRootsTest.java index 3cff836eb..e3fe882ef 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/SparkPublicationRootsTest.java +++ b/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/SparkPublicationRootsTest.java @@ -129,7 +129,7 @@ public class SparkPublicationRootsTest implements Serializable { .load(DedupUtility.createSimRelPath(workingPath, testActionSetId, "publication")) .count(); - assertEquals(74, pubs_simrel); + assertEquals(37, pubs_simrel); } @Test diff --git a/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/SparkStatsTest.java b/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/SparkStatsTest.java index b33b627e7..07e993444 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/SparkStatsTest.java +++ b/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/SparkStatsTest.java @@ -145,34 +145,34 @@ public class SparkStatsTest implements Serializable { long orgs_blocks = spark .read() - .textFile(testOutputBasePath + "/" + testActionSetId + "/organization_blockstats") + .load(testOutputBasePath + "/" + testActionSetId + "/organization_blockstats") .count(); long pubs_blocks = spark .read() - .textFile(testOutputBasePath + "/" + testActionSetId + "/publication_blockstats") + .load(testOutputBasePath + "/" + testActionSetId + "/publication_blockstats") .count(); long sw_blocks = spark .read() - .textFile(testOutputBasePath + "/" + testActionSetId + "/software_blockstats") + .load(testOutputBasePath + "/" + testActionSetId + "/software_blockstats") .count(); long ds_blocks = spark .read() - .textFile(testOutputBasePath + "/" + testActionSetId + "/dataset_blockstats") + .load(testOutputBasePath + "/" + testActionSetId + "/dataset_blockstats") .count(); long orp_blocks = spark .read() - .textFile(testOutputBasePath + "/" + testActionSetId + "/otherresearchproduct_blockstats") + .load(testOutputBasePath + "/" + testActionSetId + "/otherresearchproduct_blockstats") .count(); - assertEquals(480, orgs_blocks); - assertEquals(295, pubs_blocks); - assertEquals(122, sw_blocks); - assertEquals(191, ds_blocks); - assertEquals(178, orp_blocks); + assertEquals(414, orgs_blocks); + assertEquals(187, pubs_blocks); + assertEquals(128, sw_blocks); + assertEquals(192, ds_blocks); + assertEquals(194, orp_blocks); } @AfterAll diff --git a/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/jpath/JsonPathTest.java b/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/jpath/JsonPathTest.java index 7348a3bd2..705c2cc84 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/jpath/JsonPathTest.java +++ b/dhp-workflows/dhp-dedup-openaire/src/test/java/eu/dnetlib/dhp/oa/dedup/jpath/JsonPathTest.java @@ -1,305 +1,31 @@ package eu.dnetlib.dhp.oa.dedup.jpath; +import java.io.IOException; + +import org.apache.commons.io.IOUtils; +import org.apache.spark.sql.Row; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.platform.commons.util.StringUtils; import eu.dnetlib.pace.config.DedupConfig; -import eu.dnetlib.pace.model.MapDocument; -import eu.dnetlib.pace.util.MapDocumentUtil; +import eu.dnetlib.pace.model.SparkModel; class JsonPathTest { - String json = "{\t\"dataInfo\":{\t\t\"invisible\":false,\t\t\"inferred\":false,\t\t\"deletedbyinference\":false,\t\t\"trust\":\"0.810000002384185791\",\t\t\"inferenceprovenance\":\"\",\t\t\"provenanceaction\":{\t\t\t\"classid\":\"sysimport:crosswalk:entityregistry\",\t\t\t\"classname\":\"sysimport:crosswalk:entityregistry\",\t\t\t\"schemeid\":\"dnet:provenance_actions\",\t\t\t\"schemename\":\"dnet:provenance_actions\"\t\t}\t},\t\"lastupdatetimestamp\":1584960968152,\t\"id\":\"20|corda__h2020::9faf23721249f26ac2c16eb857ea1fb9\",\t\"originalId\":[\t\t\"corda__h2020::927957582\"\t],\t\"collectedfrom\":[\t\t{\t\t\t\"key\":\"openaire____::corda_h2020\",\t\t\t\"value\":\"CORDA - COmmon Research DAta Warehouse - Horizon 2020\",\t\t\t\"dataInfo\":null\t\t}\t],\t\"pid\":[\t],\t\"dateofcollection\":\"2016-06-05\",\t\"dateoftransformation\":\"2019-11-19\",\t\"extraInfo\":[\t],\t\"oaiprovenance\":null,\t\"legalshortname\":{\t\t\"value\":\"Comentor AB\",\t\t\"dataInfo\":{\t\t\t\"invisible\":false,\t\t\t\"inferred\":false,\t\t\t\"deletedbyinference\":false,\t\t\t\"trust\":\"0.810000002384185791\",\t\t\t\"inferenceprovenance\":\"\",\t\t\t\"provenanceaction\":{\t\t\t\t\"classid\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"classname\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"schemeid\":\"dnet:provenance_actions\",\t\t\t\t\"schemename\":\"dnet:provenance_actions\"\t\t\t}\t\t}\t},\t\"legalname\":{\t\t\"value\":\"Comentor AB\",\t\t\"dataInfo\":{\t\t\t\"invisible\":false,\t\t\t\"inferred\":false,\t\t\t\"deletedbyinference\":false,\t\t\t\"trust\":\"0.810000002384185791\",\t\t\t\"inferenceprovenance\":\"\",\t\t\t\"provenanceaction\":{\t\t\t\t\"classid\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"classname\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"schemeid\":\"dnet:provenance_actions\",\t\t\t\t\"schemename\":\"dnet:provenance_actions\"\t\t\t}\t\t}\t},\t\"alternativeNames\":[\t],\t\"websiteurl\":{\t\t\"value\":\"http://www.comentor.se\",\t\t\"dataInfo\":{\t\t\t\"invisible\":false,\t\t\t\"inferred\":false,\t\t\t\"deletedbyinference\":false,\t\t\t\"trust\":\"0.810000002384185791\",\t\t\t\"inferenceprovenance\":\"\",\t\t\t\"provenanceaction\":{\t\t\t\t\"classid\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"classname\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"schemeid\":\"dnet:provenance_actions\",\t\t\t\t\"schemename\":\"dnet:provenance_actions\"\t\t\t}\t\t}\t},\t\"logourl\":null,\t\"eclegalbody\":{\t\t\"value\":\"false\",\t\t\"dataInfo\":{\t\t\t\"invisible\":false,\t\t\t\"inferred\":false,\t\t\t\"deletedbyinference\":false,\t\t\t\"trust\":\"0.810000002384185791\",\t\t\t\"inferenceprovenance\":\"\",\t\t\t\"provenanceaction\":{\t\t\t\t\"classid\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"classname\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"schemeid\":\"dnet:provenance_actions\",\t\t\t\t\"schemename\":\"dnet:provenance_actions\"\t\t\t}\t\t}\t},\t\"eclegalperson\":{\t\t\"value\":\"true\",\t\t\"dataInfo\":{\t\t\t\"invisible\":false,\t\t\t\"inferred\":false,\t\t\t\"deletedbyinference\":false,\t\t\t\"trust\":\"0.810000002384185791\",\t\t\t\"inferenceprovenance\":\"\",\t\t\t\"provenanceaction\":{\t\t\t\t\"classid\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"classname\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"schemeid\":\"dnet:provenance_actions\",\t\t\t\t\"schemename\":\"dnet:provenance_actions\"\t\t\t}\t\t}\t},\t\"ecnonprofit\":{\t\t\"value\":\"false\",\t\t\"dataInfo\":{\t\t\t\"invisible\":false,\t\t\t\"inferred\":false,\t\t\t\"deletedbyinference\":false,\t\t\t\"trust\":\"0.810000002384185791\",\t\t\t\"inferenceprovenance\":\"\",\t\t\t\"provenanceaction\":{\t\t\t\t\"classid\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"classname\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"schemeid\":\"dnet:provenance_actions\",\t\t\t\t\"schemename\":\"dnet:provenance_actions\"\t\t\t}\t\t}\t},\t\"ecresearchorganization\":{\t\t\"value\":\"false\",\t\t\"dataInfo\":{\t\t\t\"invisible\":false,\t\t\t\"inferred\":false,\t\t\t\"deletedbyinference\":false,\t\t\t\"trust\":\"0.810000002384185791\",\t\t\t\"inferenceprovenance\":\"\",\t\t\t\"provenanceaction\":{\t\t\t\t\"classid\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"classname\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"schemeid\":\"dnet:provenance_actions\",\t\t\t\t\"schemename\":\"dnet:provenance_actions\"\t\t\t}\t\t}\t},\t\"echighereducation\":{\t\t\"value\":\"false\",\t\t\"dataInfo\":{\t\t\t\"invisible\":false,\t\t\t\"inferred\":false,\t\t\t\"deletedbyinference\":false,\t\t\t\"trust\":\"0.810000002384185791\",\t\t\t\"inferenceprovenance\":\"\",\t\t\t\"provenanceaction\":{\t\t\t\t\"classid\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"classname\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"schemeid\":\"dnet:provenance_actions\",\t\t\t\t\"schemename\":\"dnet:provenance_actions\"\t\t\t}\t\t}\t},\t\"ecinternationalorganizationeurinterests\":{\t\t\"value\":\"false\",\t\t\"dataInfo\":{\t\t\t\"invisible\":false,\t\t\t\"inferred\":false,\t\t\t\"deletedbyinference\":false,\t\t\t\"trust\":\"0.810000002384185791\",\t\t\t\"inferenceprovenance\":\"\",\t\t\t\"provenanceaction\":{\t\t\t\t\"classid\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"classname\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"schemeid\":\"dnet:provenance_actions\",\t\t\t\t\"schemename\":\"dnet:provenance_actions\"\t\t\t}\t\t}\t},\t\"ecinternationalorganization\":{\t\t\"value\":\"false\",\t\t\"dataInfo\":{\t\t\t\"invisible\":false,\t\t\t\"inferred\":false,\t\t\t\"deletedbyinference\":false,\t\t\t\"trust\":\"0.810000002384185791\",\t\t\t\"inferenceprovenance\":\"\",\t\t\t\"provenanceaction\":{\t\t\t\t\"classid\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"classname\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"schemeid\":\"dnet:provenance_actions\",\t\t\t\t\"schemename\":\"dnet:provenance_actions\"\t\t\t}\t\t}\t},\t\"ecenterprise\":{\t\t\"value\":\"false\",\t\t\"dataInfo\":{\t\t\t\"invisible\":false,\t\t\t\"inferred\":false,\t\t\t\"deletedbyinference\":false,\t\t\t\"trust\":\"0.810000002384185791\",\t\t\t\"inferenceprovenance\":\"\",\t\t\t\"provenanceaction\":{\t\t\t\t\"classid\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"classname\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"schemeid\":\"dnet:provenance_actions\",\t\t\t\t\"schemename\":\"dnet:provenance_actions\"\t\t\t}\t\t}\t},\t\"ecsmevalidated\":{\t\t\"value\":\"true\",\t\t\"dataInfo\":{\t\t\t\"invisible\":false,\t\t\t\"inferred\":false,\t\t\t\"deletedbyinference\":false,\t\t\t\"trust\":\"0.810000002384185791\",\t\t\t\"inferenceprovenance\":\"\",\t\t\t\"provenanceaction\":{\t\t\t\t\"classid\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"classname\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"schemeid\":\"dnet:provenance_actions\",\t\t\t\t\"schemename\":\"dnet:provenance_actions\"\t\t\t}\t\t}\t},\t\"ecnutscode\":{\t\t\"value\":\"false\",\t\t\"dataInfo\":{\t\t\t\"invisible\":false,\t\t\t\"inferred\":false,\t\t\t\"deletedbyinference\":false,\t\t\t\"trust\":\"0.810000002384185791\",\t\t\t\"inferenceprovenance\":\"\",\t\t\t\"provenanceaction\":{\t\t\t\t\"classid\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"classname\":\"sysimport:crosswalk:entityregistry\",\t\t\t\t\"schemeid\":\"dnet:provenance_actions\",\t\t\t\t\"schemename\":\"dnet:provenance_actions\"\t\t\t}\t\t}\t},\t\"country\":null}"; - DedupConfig conf = DedupConfig - .load( - "{\n" - + " \"wf\" : {\n" - + " \"threshold\" : \"0.99\",\n" - + " \"dedupRun\" : \"001\",\n" - + " \"entityType\" : \"organization\",\n" - + " \"subEntityValue\": \"organization\",\n" - + " \"orderField\" : \"legalname\",\n" - + " \"queueMaxSize\" : \"2000\",\n" - + " \"groupMaxSize\" : \"50\",\n" - + " \"slidingWindowSize\" : \"200\",\n" - + " \"idPath\":\"$.id\",\n" - + " \"rootBuilder\" : [ \"organization\", \"projectOrganization_participation_isParticipant\", \"datasourceOrganization_provision_isProvidedBy\" ],\n" - + " \"includeChildren\" : \"true\",\n" - + " \"maxIterations\": \"20\"\n" - + " },\n" - + " \"pace\" : {\n" - + " \"clustering\" : [\n" - + " { \"name\" : \"sortedngrampairs\", \"fields\" : [ \"legalname\" ], \"params\" : { \"max\" : 2, \"ngramLen\" : \"3\"} },\n" - + " { \"name\" : \"suffixprefix\", \"fields\" : [ \"legalname\" ], \"params\" : { \"max\" : 1, \"len\" : \"3\" } },\n" - + " { \"name\" : \"urlclustering\", \"fields\" : [ \"websiteurl\" ], \"params\" : { } },\n" - + " { \"name\" : \"keywordsclustering\", \"fields\" : [ \"legalname\" ], \"params\" : { \"max\": 2, \"windowSize\": 4} }\n" - + " ],\n" - + " \"decisionTree\" : {\n" - + " \"start\": {\n" - + " \"fields\": [\n" - + " {\n" - + " \"field\": \"gridid\",\n" - + " \"comparator\": \"exactMatch\",\n" - + " \"weight\": 1,\n" - + " \"countIfUndefined\": \"false\",\n" - + " \"params\": {}\n" - + " }\n" - + " ],\n" - + " \"threshold\": 1,\n" - + " \"aggregation\": \"AVG\",\n" - + " \"positive\": \"MATCH\",\n" - + " \"negative\": \"NO_MATCH\",\n" - + " \"undefined\": \"layer2\",\n" - + " \"ignoreUndefined\": \"false\"\n" - + " },\n" - + " \"layer2\": {\n" - + " \"fields\": [\n" - + " {\n" - + " \"field\": \"websiteurl\",\n" - + " \"comparator\": \"domainExactMatch\",\n" - + " \"weight\": 1,\n" - + " \"countIfUndefined\": \"false\",\n" - + " \"params\": {}\n" - + " },\n" - + " {\n" - + " \"field\": \"country\",\n" - + " \"comparator\": \"exactMatch\",\n" - + " \"weight\": 1,\n" - + " \"countIfUndefined\": \"true\",\n" - + " \"params\": {}\n" - + " },\n" - + " {\n" - + " \"field\": \"legalname\",\n" - + " \"comparator\": \"numbersMatch\",\n" - + " \"weight\": 1,\n" - + " \"countIfUndefined\": \"true\",\n" - + " \"params\": {}\n" - + " },\n" - + " {\n" - + " \"field\": \"legalname\",\n" - + " \"comparator\": \"romansMatch\",\n" - + " \"weight\": 1,\n" - + " \"countIfUndefined\": \"true\",\n" - + " \"params\": {}\n" - + " }\n" - + " ],\n" - + " \"threshold\": 1,\n" - + " \"aggregation\": \"AND\",\n" - + " \"positive\": \"layer3\",\n" - + " \"negative\": \"NO_MATCH\",\n" - + " \"undefined\": \"layer3\",\n" - + " \"ignoreUndefined\": \"true\"\n" - + " },\n" - + " \"layer3\": {\n" - + " \"fields\": [\n" - + " {\n" - + " \"field\": \"legalname\",\n" - + " \"comparator\": \"cityMatch\",\n" - + " \"weight\": 1.0,\n" - + " \"countIfUndefined\": \"true\",\n" - + " \"params\": {\n" - + " \"windowSize\": \"4\"\n" - + " }\n" - + " }\n" - + " ],\n" - + " \"threshold\": 0.1,\n" - + " \"aggregation\": \"AVG\",\n" - + " \"positive\": \"layer4\",\n" - + " \"negative\": \"NO_MATCH\",\n" - + " \"undefined\": \"NO_MATCH\",\n" - + " \"ignoreUndefined\": \"true\"\n" - + " },\n" - + " \"layer4\": {\n" - + " \"fields\": [\n" - + " {\n" - + " \"field\": \"legalname\",\n" - + " \"comparator\": \"keywordMatch\",\n" - + " \"weight\": 1.0,\n" - + " \"countIfUndefined\": \"true\",\n" - + " \"params\": {\n" - + " \"windowSize\": \"4\"\n" - + " }\n" - + " }\n" - + " ],\n" - + " \"threshold\": 0.7,\n" - + " \"aggregation\": \"AVG\",\n" - + " \"positive\": \"layer5\",\n" - + " \"negative\": \"NO_MATCH\",\n" - + " \"undefined\": \"layer5\",\n" - + " \"ignoreUndefined\": \"true\"\n" - + " },\n" - + " \"layer5\": {\n" - + " \"fields\": [\n" - + " {\n" - + " \"field\": \"legalname\",\n" - + " \"comparator\": \"jaroWinklerNormalizedName\",\n" - + " \"weight\": 0.9,\n" - + " \"countIfUndefined\": \"true\",\n" - + " \"params\": {\n" - + " \"windowSize\": \"4\"\n" - + " }\n" - + " },\n" - + " {\n" - + " \"field\": \"legalshortname\",\n" - + " \"comparator\": \"jaroWinklerNormalizedName\",\n" - + " \"weight\": 0.1,\n" - + " \"countIfUndefined\": \"false\",\n" - + " \"params\": {\n" - + " \"windowSize\": 4\n" - + " }\n" - + " }\n" - + " ],\n" - + " \"threshold\": 0.9,\n" - + " \"aggregation\": \"W_MEAN\",\n" - + " \"positive\": \"MATCH\",\n" - + " \"negative\": \"NO_MATCH\",\n" - + " \"undefined\": \"NO_MATCH\",\n" - + " \"ignoreUndefined\": \"true\"\n" - + " }\n" - + " },\n" - + " \"model\" : [\n" - + " { \"name\" : \"country\", \"type\" : \"String\", \"path\" : \"$.country.classid\"},\n" - + " { \"name\" : \"legalshortname\", \"type\" : \"String\", \"path\" : \"$.legalshortname.value\"},\n" - + " { \"name\" : \"legalname\", \"type\" : \"String\", \"path\" : \"$.legalname.value\" },\n" - + " { \"name\" : \"websiteurl\", \"type\" : \"URL\", \"path\" : \"$.websiteurl.value\" },\n" - + " { \"name\" : \"gridid\", \"type\" : \"String\", \"path\" : \"$.pid[?(@.qualifier.classid =='grid')].value\"},\n" - + " { \"name\" : \"originalId\", \"type\" : \"String\", \"path\" : \"$.id\" }\n" - + " ],\n" - + " \"blacklists\" : {\n" - + " \"legalname\" : []\n" - + " },\n" - + " \"synonyms\": {\n" - + " \"key::1\": [\"university\",\"università\", \"universitas\", \"università studi\",\"universitario\",\"universitaria\",\"université\", \"universite\", \"universitaire\",\"universitaires\",\"universidad\",\"universitade\",\"Universität\",\"universitaet\",\"Uniwersytet\",\"университет\",\"universiteit\",\"πανεπιστήμιο\",\"universitesi\",\"universiteti\", \"universiti\"],\n" - + " \"key::2\": [\"studies\",\"studi\",\"études\",\"estudios\",\"estudos\",\"Studien\",\"studia\",\"исследования\",\"studies\",\"σπουδές\"],\n" - + " \"key::3\": [\"advanced\",\"superiore\",\"supérieur\",\"supérieure\",\"supérieurs\",\"supérieures\",\"avancado\",\"avancados\",\"fortgeschrittene\",\"fortgeschritten\",\"zaawansowany\",\"передовой\",\"gevorderd\",\"gevorderde\",\"προχωρημένος\",\"προχωρημένη\",\"προχωρημένο\",\"προχωρημένες\",\"προχωρημένα\",\"wyzsza\"],\n" - + " \"key::4\": [\"institute\",\"istituto\",\"institut\",\"instituto\",\"instituto\",\"Institut\",\"instytut\",\"институт\",\"instituut\",\"ινστιτούτο\"],\n" - + " \"key::5\": [\"hospital\",\"ospedale\",\"hôpital\",\"hospital\",\"hospital\",\"Krankenhaus\",\"szpital\",\"больница\",\"ziekenhuis\",\"νοσοκομείο\"],\n" - + " \"key::6\": [\"research\",\"ricerca\",\"recherche\",\"investigacion\",\"pesquisa\",\"Forschung\",\"badania\",\"исследования\",\"onderzoek\",\"έρευνα\",\"erevna\",\"erevnas\"],\n" - + " \"key::7\": [\"college\",\"collegio\",\"colegio\",\"faculdade\",\"Hochschule\",\"Szkoła Wyższa\",\"Высшая школа\",\"κολλέγιο\"],\n" - + " \"key::8\": [\"foundation\",\"fondazione\",\"fondation\",\"fundación\",\"fundação\",\"Stiftung\",\"Fundacja\",\"фонд\",\"stichting\",\"ίδρυμα\",\"idryma\"],\n" - + " \"key::9\": [\"center\",\"centro\",\"centre\",\"centro\",\"centro\",\"zentrum\",\"centrum\",\"центр\",\"centrum\",\"κέντρο\"],\n" - + " \"key::10\": [\"national\",\"nazionale\",\"national\",\"nationale\",\"nationaux\",\"nationales\",\"nacional\",\"nacional\",\"national\",\"krajowy\",\"национальный\",\"nationaal\",\"nationale\",\"εθνικό\"],\n" - + " \"key::11\": [\"association\",\"associazione\",\"association\",\"asociación\",\"associação\",\"Verein\",\"verband\",\"stowarzyszenie\",\"ассоциация\",\"associatie\"],\n" - + " \"key::12\": [\"society\",\"societa\",\"société\",\"sociedad\",\"sociedade\",\"gesellschaft\",\"społeczeństwo\",\"общество\",\"maatschappij\",\"κοινωνία\"],\n" - + " \"key::13\": [\"international\",\"internazionale\",\"international\",\"internacional\",\"internacional\",\"international\",\"międzynarodowy\",\"Международный\",\"internationaal\",\"internationale\",\"διεθνής\",\"διεθνή\",\"διεθνές\"],\n" - + " \"key::14\": [\"community\",\"comunita\",\"communauté\",\"comunidad\",\"comunidade\",\"Gemeinschaft\",\"społeczność\",\"сообщество\",\"gemeenschap\",\"κοινότητα\"],\n" - + " \"key::15\": [\"school\",\"scuola\",\"école\",\"escuela\",\"escola\",\"schule\",\"Szkoła\",\"школа\",\"school\",\"σχολείο\"],\n" - + " \"key::16\": [\"education\",\"educazione\",\"éducation\",\"educacion\",\"Educação\",\"Bildung\",\"Edukacja\",\"образование\",\"opleiding\",\"εκπαίδευση\"],\n" - + " \"key::17\": [\"academy\",\"accademia\",\"académie\",\"academia\",\"academia\",\"Akademie\",\"akademie\",\"академия\",\"academie\",\"ακαδημία\"],\n" - + " \"key::18\": [\"public\",\"pubblico\",\"public\",\"publique\",\"publics\",\"publiques\",\"publico\",\"publico\",\"Öffentlichkeit\",\"publiczny\",\"публичный\",\"publiek\",\"publieke\",\"δημόσιος\",\"δημόσια\",\"δημόσιο\"],\n" - + " \"key::19\": [\"museum\",\"museo\",\"musée\",\"mueso\",\"museu\",\"museum\",\"muzeum\",\"музей\",\"museum\",\"μουσείο\"],\n" - + " \"key::20\": [\"group\",\"gruppo\",\"groupe\",\"grupo\",\"grupo\",\"gruppe\",\"grupa\",\"группа\",\"groep\",\"ομάδα\",\"όμιλος\"],\n" - + " \"key::21\": [\"department\",\"dipartimento\",\"département\",\"departamento\",\"departamento\",\"abteilung\",\"departament\",\"отдел\",\"afdeling\",\"τμήμα\"],\n" - + " \"key::22\": [\"council\",\"consiglio\",\"conseil\",\"Consejo\",\"conselho\",\"gesellschaft\",\"rada\",\"совет\",\"raad\",\"συμβούλιο\"],\n" - + " \"key::23\": [\"library\",\"biblioteca\",\"bibliothèque\",\"biblioteca\",\"biblioteca\",\"Bibliothek\",\"biblioteka\",\"библиотека\",\"bibliotheek\",\"βιβλιοθήκη\"],\n" - + " \"key::24\": [\"ministry\",\"ministero\",\"ministère\",\"ministerio\",\"ministério\",\"Ministerium\",\"ministerstwo\",\"министерство\",\"ministerie\",\"υπουργείο\"],\n" - + " \"key::25\": [\"services\",\"servizi\",\"services\",\"servicios\",\"Serviços\",\"Dienstleistungen\",\"usługi\",\"услуги\",\"diensten\",\"υπηρεσίες\"],\n" - + " \"key::26\": [\"central\",\"centrale\",\"central\",\"centrale\",\"centrales\",\"central\",\"central\",\"zentral\",\"centralny\",\"цетральный\",\"centraal\",\"κεντρικός\",\"κεντρική\",\"κεντρικό\",\"κεντρικά\"],\n" - + " \"key::27\": [\"general\",\"generale\",\"général\",\"générale\",\"généraux\",\"générales\",\"general\",\"geral\",\"general\",\"Allgemeines\",\"general\",\"общий\",\"algemeen\",\"algemene\",\"γενικός\",\"γενική\",\"γενικό\",\"γενικά\"],\n" - + " \"key::28\": [\"applied\",\"applicati\",\"appliqué\",\"appliquée\",\"appliqués\",\"appliquées\",\"aplicado\",\"aplicada\",\"angewendet\",\"stosowany\",\"прикладной\",\"toegepast\",\"toegepaste\",\"εφαρμοσμένος\",\"εφαρμοσμένη\",\"εφαρμοσμένο\",\"εφαρμοσμένα\"],\n" - + " \"key::29\": [\"european\",\"europee\",\"europea\",\"européen\",\"européenne\",\"européens\",\"européennes\",\"europeo\",\"europeu\",\"europäisch\",\"europejski\",\"европейский\",\"Europees\",\"Europese\",\"ευρωπαϊκός\",\"ευρωπαϊκή\",\"ευρωπαϊκό\",\"ευρωπαϊκά\"],\n" - + " \"key::30\": [\"agency\",\"agenzia\",\"agence\",\"agencia\",\"agencia\",\"agentur\",\"agencja\",\"агенция\",\"agentschap\",\"πρακτορείο\"],\n" - + " \"key::31\": [\"laboratory\",\"laboratorio\",\"laboratoire\",\"laboratorio\",\"laboratorio\",\"labor\",\"laboratorium\",\"лаборатория\",\"laboratorium\",\"εργαστήριο\"],\n" - + " \"key::32\": [\"industry\",\"industria\",\"industrie\",\"индустрия\",\"industrie\",\"βιομηχανία\"],\n" - + " \"key::33\": [\"industrial\",\"industriale\",\"industriel\",\"industrielle\",\"industriels\",\"industrielles\",\"индустриальный\",\"industrieel\",\"βιομηχανικός\",\"βιομηχανική\",\"βιομηχανικό\",\"βιομηχανικά\",\"βιομηχανικές\"],\n" - + " \"key::34\": [\"consortium\",\"consorzio\",\"consortium\",\"консорциум\",\"consortium\",\"κοινοπραξία\"],\n" - + " \"key::35\": [\"organization\",\"organizzazione\",\"organisation\",\"organización\",\"organização\",\"organizacja\",\"организация\",\"organisatie\",\"οργανισμός\"],\n" - + " \"key::36\": [\"authority\",\"autorità\",\"autorité\",\"авторитет\",\"autoriteit\"],\n" - + " \"key::37\": [\"federation\",\"federazione\",\"fédération\",\"федерация\",\"federatie\",\"ομοσπονδία\"],\n" - + " \"key::38\": [\"observatory\",\"osservatorio\",\"observatoire\",\"обсерватория\",\"observatorium\",\"αστεροσκοπείο\"],\n" - + " \"key::39\": [\"bureau\",\"ufficio\",\"bureau\",\"офис\",\"bureau\",\"γραφείο\"],\n" - + " \"key::40\": [\"company\",\"impresa\",\"compagnie\",\"société\",\"компания\",\"bedrijf\",\"εταιρία\"],\n" - + " \"key::41\": [\"polytechnic\",\"politecnico\",\"polytechnique\",\"политехника\",\"polytechnisch\",\"πολυτεχνείο\",\"universita politecnica\",\"polytechnic university\",\"universidad politecnica\",\"universitat politecnica\",\"politechnika\",\"politechniki\",\"university technology\",\"university science technology\"],\n" - + " \"key::42\": [\"coalition\",\"coalizione\",\"coalition\",\"коалиция\",\"coalitie\",\"συνασπισμός\"],\n" - + " \"key::43\": [\"initiative\",\"iniziativa\",\"initiative\",\"инициатива\",\"initiatief\",\"πρωτοβουλία\"],\n" - + " \"key::44\": [\"academic\",\"accademico\",\"académique\",\"universitaire\",\"акадеческий academisch\",\"ακαδημαϊκός\",\"ακαδημαϊκή\",\"ακαδημαϊκό\",\"ακαδημαϊκές\",\"ακαδημαϊκοί\"],\n" - + " \"key::45\": [\"institution\",\"istituzione\",\"institution\",\"институциональный\",\"instelling\",\"ινστιτούτο\"],\n" - + " \"key::46\": [\"division\",\"divisione\",\"division\",\"отделение\",\"divisie\",\"τμήμα\"],\n" - + " \"key::47\": [\"committee\",\"comitato\",\"comité\",\"комитет\",\"commissie\",\"επιτροπή\"],\n" - + " \"key::48\": [\"promotion\",\"promozione\",\"продвижение\",\"proothisis\",\"forderung\"],\n" - + " \"key::49\": [\"medical\",\"medicine\",\"clinical\",\"medicina\",\"clinici\",\"médico\",\"medicina\",\"clínica\",\"médico\",\"medicina\",\"clínica\",\"medizinisch\",\"Medizin\",\"klinisch\",\"medisch\",\"geneeskunde\",\"klinisch\",\"ιατρικός\",\"ιατρική\",\"ιατρικό\",\"ιατρικά\",\"κλινικός\",\"κλινική\",\"κλινικό\",\"κλινικά\",\"tıbbi\",\"tıp\",\"klinik\",\"orvosi\",\"orvostudomány\",\"klinikai\",\"zdravniški\",\"medicinski\",\"klinični\",\"meditsiini\",\"kliinik\",\"kliiniline\"],\n" - + " \"key::50\": [\"technology\",\"technological\",\"tecnologia\",\"tecnologie\",\"tecnología\",\"tecnológico\",\"tecnologia\",\"tecnológico\",\"Technologie\",\"technologisch\",\"technologie\",\"technologisch\",\"τεχνολογία\",\"τεχνολογικός\",\"τεχνολογική\",\"τεχνολογικό\",\"teknoloji\",\"teknolojik\",\"technológia\",\"technológiai\",\"tehnologija\",\"tehnološki\",\"tehnoloogia\",\"tehnoloogiline\",\"technologii\",\"technical\",\"texniki\",\"teknik\"],\n" - + " \"key::51\": [\"science\",\"scientific\",\"scienza\",\"scientifiche\",\"scienze\",\"ciencia\",\"científico\",\"ciência\",\"científico\",\"Wissenschaft\",\"wissenschaftlich\",\"wetenschap\",\"wetenschappelijk\",\"επιστήμη\",\"επιστημονικός\",\"επιστημονική\",\"επιστημονικό\",\"επιστημονικά\",\"bilim\",\"bilimsel\",\"tudomány\",\"tudományos\",\"znanost\",\"znanstveni\",\"teadus\",\"teaduslik\",\"\"],\n" - + " \"key::52\": [\"engineering\",\"ingegneria\",\"ingeniería\",\"engenharia\",\"Ingenieurwissenschaft\",\"ingenieurswetenschappen\",\"bouwkunde\",\"μηχανικός\",\"μηχανική\",\"μηχανικό\",\"mühendislik\",\"mérnöki\",\"Inženirstvo\",\"inseneeria\",\"inseneri\",\"\"],\n" - + " \"key::53\": [\"management\",\"gestione\",\"gestionale\",\"gestionali\",\"gestión\",\"administración\",\"gestão\",\"administração\",\"Verwaltung\",\"management\",\"διαχείριση\",\"yönetim\",\"menedzsment\",\"vodstvo\",\"upravljanje\",\"management\",\"juhtkond\",\"juhtimine\",\"haldus\",\"\"],\n" - + " \"key::54\": [\"energy\",\"energia\",\"energía\",\"energia\",\"Energie\",\"energie\",\"ενέργεια\",\"enerji\",\"energia\",\"energija\",\"energia\",\"\"],\n" - + " \"key::55\": [\"agricultural\",\"agriculture\",\"agricoltura\",\"agricole\",\"agrícola\",\"agricultura\",\"agrícola\",\"agricultura\",\"landwirtschaftlich\",\"Landwirtschaft\",\"landbouwkundig\",\"landbouw\",\"αγροτικός\",\"αγροτική\",\"αγροτικό\",\"γεωργικός\",\"γεωργική\",\"γεωργικό\",\"γεωργία\",\"tarımsal\",\"tarım\",\"mezőgazdasági\",\"mezőgazdaság\",\"poljedelski\",\"poljedelstvo\",\"põllumajandus\",\"põllumajanduslik\",\"\"],\n" - + " \"key::56\": [\"information\",\"informazione\",\"información\",\"informação\",\"Information\",\"informatie\",\"πληροφορία\",\"bilgi\",\"információ\",\"informacija\",\"informatsioon\",\"informatycznych\",\"\"],\n" - + " \"key::57\": [\"social\",\"sociali\",\"social\",\"social\",\"Sozial\",\"sociaal\",\"maatschappelijk\",\"κοινωνικός\",\"κοινωνική\",\"κοινωνικό\",\"κοινωνικά\",\"sosyal\",\"szociális\",\"družbeni\",\"sotsiaal\",\"sotsiaalne\",\"\"],\n" - + " \"key::58\": [\"environmental\",\"ambiente\",\"medioambiental\",\"ambiente\",\"medioambiente\",\"meioambiente\",\"Umwelt\",\"milieu\",\"milieuwetenschap\",\"milieukunde\",\"περιβαλλοντικός\",\"περιβαλλοντική\",\"περιβαλλοντικό\",\"περιβαλλοντικά\",\"çevre\",\"környezeti\",\"okoliški\",\"keskonna\",\"\"],\n" - + " \"key::59\": [\"business\",\"economia\",\"economiche\",\"economica\",\"negocio\",\"empresa\",\"negócio\",\"Unternehmen\",\"bedrijf\",\"bedrijfskunde\",\"επιχείρηση\",\"iş\",\"üzleti\",\"posel\",\"ettevõte/äri\",\"\"],\n" - + " \"key::60\": [\"pharmaceuticals\",\"pharmacy\",\"farmacia\",\"farmaceutica\",\"farmacéutica\",\"farmacia\",\"farmacêutica\",\"farmácia\",\"Pharmazeutika\",\"Arzneimittelkunde\",\"farmaceutica\",\"geneesmiddelen\",\"apotheek\",\"φαρμακευτικός\",\"φαρμακευτική\",\"φαρμακευτικό\",\"φαρμακευτικά\",\"φαρμακείο\",\"ilaç\",\"eczane\",\"gyógyszerészeti\",\"gyógyszertár\",\"farmacevtika\",\"lekarništvo\",\"farmaatsia\",\"farmatseutiline\",\"\"],\n" - + " \"key::61\": [\"healthcare\",\"health services\",\"salute\",\"atenciónmédica\",\"cuidadodelasalud\",\"cuidadoscomasaúde\",\"Gesundheitswesen\",\"gezondheidszorg\",\"ιατροφαρμακευτικήπερίθαλψη\",\"sağlıkhizmeti\",\"egészségügy\",\"zdravstvo\",\"tervishoid\",\"tervishoiu\",\"\"],\n" - + " \"key::62\": [\"history\",\"storia\",\"historia\",\"história\",\"Geschichte\",\"geschiedenis\",\"geschiedkunde\",\"ιστορία\",\"tarih\",\"történelem\",\"zgodovina\",\"ajalugu\",\"\"],\n" - + " \"key::63\": [\"materials\",\"materiali\",\"materia\",\"materiales\",\"materiais\",\"materialen\",\"υλικά\",\"τεκμήρια\",\"malzemeler\",\"anyagok\",\"materiali\",\"materjalid\",\"vahendid\",\"\"],\n" - + " \"key::64\": [\"economics\",\"economia\",\"economiche\",\"economica\",\"economía\",\"economia\",\"Wirtschaft\",\"economie\",\"οικονομικά\",\"οικονομικέςεπιστήμες\",\"ekonomi\",\"közgazdaságtan\",\"gospodarstvo\",\"ekonomija\",\"majanduslik\",\"majandus\",\"\"],\n" - + " \"key::65\": [\"therapeutics\",\"terapeutica\",\"terapéutica\",\"terapêutica\",\"therapie\",\"θεραπευτική\",\"tedavibilimi\",\"gyógykezelés\",\"terapevtika\",\"terapeutiline\",\"ravi\",\"\"],\n" - + " \"key::66\": [\"oncology\",\"oncologia\",\"oncologico\",\"oncología\",\"oncologia\",\"Onkologie\",\"oncologie\",\"ογκολογία\",\"onkoloji\",\"onkológia\",\"onkologija\",\"onkoloogia\",\"\"],\n" - + " \"key::67\": [\"natural\",\"naturali\",\"naturale\",\"natural\",\"natural\",\"natürlich\",\"natuurlijk\",\"φυσικός\",\"φυσική\",\"φυσικό\",\"φυσικά\",\"doğal\",\"természetes\",\"naraven\",\"loodus\",\"\"],\n" - + " \"key::68\": [\"educational\",\"educazione\",\"pedagogia\",\"educacional\",\"educativo\",\"educacional\",\"pädagogisch\",\"educatief\",\"εκπαιδευτικός\",\"εκπαιδευτική\",\"εκπαιδευτικό\",\"εκπαιδευτικά\",\"eğitimsel\",\"oktatási\",\"izobraževalen\",\"haridus\",\"hariduslik\",\"\"],\n" - + " \"key::69\": [\"biomedical\",\"biomedica\",\"biomédico\",\"biomédico\",\"biomedizinisch\",\"biomedisch\",\"βιοιατρικός\",\"βιοιατρική\",\"βιοιατρικό\",\"βιοιατρικά\",\"biyomedikal\",\"orvosbiológiai\",\"biomedicinski\",\"biomeditsiiniline\",\"\"],\n" - + " \"key::70\": [\"veterinary\",\"veterinaria\",\"veterinarie\",\"veterinaria\",\"veterinária\",\"tierärtzlich\",\"veterinair\",\"veeartsenijlkunde\",\"κτηνιατρικός\",\"κτηνιατρική\",\"κτηνιατρικό\",\"κτηνιατρικά\",\"veteriner\",\"állatorvosi\",\"veterinar\",\"veterinarski\",\"veterinaaria\",\"\"],\n" - + " \"key::71\": [\"chemistry\",\"chimica\",\"química\",\"química\",\"Chemie\",\"chemie\",\"scheikunde\",\"χημεία\",\"kimya\",\"kémia\",\"kemija\",\"keemia\",\"\"],\n" - + " \"key::72\": [\"security\",\"sicurezza\",\"seguridad\",\"segurança\",\"Sicherheit\",\"veiligheid\",\"ασφάλεια\",\"güvenlik\",\"biztonsági\",\"varnost\",\"turvalisus\",\"julgeolek\",\"\"],\n" - + " \"key::73\": [\"biotechnology\",\"biotecnologia\",\"biotecnologie\",\"biotecnología\",\"biotecnologia\",\"Biotechnologie\",\"biotechnologie\",\"βιοτεχνολογία\",\"biyoteknoloji\",\"biotechnológia\",\"biotehnologija\",\"biotehnoloogia\",\"\"],\n" - + " \"key::74\": [\"military\",\"militare\",\"militari\",\"militar\",\"militar\",\"Militär\",\"militair\",\"leger\",\"στρατιωτικός\",\"στρατιωτική\",\"στρατιωτικό\",\"στρατιωτικά\",\"askeri\",\"katonai\",\"vojaški\",\"vojni\",\"militaar\",\"wojskowa\",\"\"],\n" - + " \"key::75\": [\"theological\",\"teologia\",\"teologico\",\"teológico\",\"tecnológica\",\"theologisch\",\"theologisch\",\"θεολογικός\",\"θεολογική\",\"θεολογικό\",\"θεολογικά\",\"teolojik\",\"technológiai\",\"teološki\",\"teoloogia\",\"usuteadus\",\"teoloogiline\",\"\"],\n" - + " \"key::76\": [\"electronics\",\"elettronica\",\"electrónica\",\"eletrônicos\",\"Elektronik\",\"elektronica\",\"ηλεκτρονική\",\"elektronik\",\"elektronika\",\"elektronika\",\"elektroonika\",\"\"],\n" - + " \"key::77\": [\"forestry\",\"forestale\",\"forestali\",\"silvicultura\",\"forestal\",\"floresta\",\"Forstwirtschaft\",\"bosbouw\",\"δασοκομία\",\"δασολογία\",\"ormancılık\",\"erdészet\",\"gozdarstvo\",\"metsandus\",\"\"],\n" - + " \"key::78\": [\"maritime\",\"marittima\",\"marittime\",\"marittimo\",\"marítimo\",\"marítimo\",\"maritiem\",\"ναυτικός\",\"ναυτική\",\"ναυτικό\",\"ναυτικά\",\"ναυτιλιακός\",\"ναυτιλιακή\",\"ναυτιλιακό\",\"ναυτιλιακά\",\"θαλάσσιος\",\"θαλάσσια\",\"θαλάσσιο\",\"denizcilik\",\"tengeri\",\"morski\",\"mere\",\"merendus\",\"\"],\n" - + " \"key::79\": [\"sports\",\"sport\",\"deportes\",\"esportes\",\"Sport\",\"sport\",\"sportwetenschappen\",\"άθληση\",\"γυμναστικήδραστηριότητα\",\"spor\",\"sport\",\"šport\",\"sport\",\"spordi\",\"\"],\n" - + " \"key::80\": [\"surgery\",\"chirurgia\",\"chirurgiche\",\"cirugía\",\"cirurgia\",\"Chirurgie\",\"chirurgie\",\"heelkunde\",\"εγχείρηση\",\"επέμβαση\",\"χειρουργικήεπέμβαση\",\"cerrahi\",\"sebészet\",\"kirurgija\",\"kirurgia\",\"\"],\n" - + " \"key::81\": [\"cultural\",\"culturale\",\"culturali\",\"cultura\",\"cultural\",\"cultural\",\"kulturell\",\"cultureel\",\"πολιτιστικός\",\"πολιτιστική\",\"πολιτιστικό\",\"πολιτισμικός\",\"πολιτισμική\",\"πολιτισμικό\",\"kültürel\",\"kultúrális\",\"kulturni\",\"kultuuri\",\"kultuuriline\",\"\"],\n" - + " \"key::82\": [\"computerscience\",\"informatica\",\"ordenador\",\"computadora\",\"informática\",\"computación\",\"cienciasdelacomputación\",\"ciênciadacomputação\",\"Computer\",\"computer\",\"υπολογιστής\",\"ηλεκτρονικόςυπολογιστής\",\"bilgisayar\",\"számítógép\",\"računalnik\",\"arvuti\",\"\"],\n" - + " \"key::83\": [\"finance\",\"financial\",\"finanza\",\"finanziarie\",\"finanza\",\"financiero\",\"finanças\",\"financeiro\",\"Finanzen\",\"finanziell\",\"financiën\",\"financieel\",\"χρηματοοικονομικά\",\"χρηματοδότηση\",\"finanse\",\"finansal\",\"pénzügy\",\"pénzügyi\",\"finance\",\"finančni\",\"finants\",\"finantsiline\",\"\"],\n" - + " \"key::84\": [\"communication\",\"comunicazione\",\"comuniciación\",\"comunicação\",\"Kommunikation\",\"communication\",\"επικοινωνία\",\"iletişim\",\"kommunikáció\",\"komuniciranje\",\"kommunikatsioon\",\"\"],\n" - + " \"key::85\": [\"justice\",\"giustizia\",\"justicia\",\"justiça\",\"Recht\",\"Justiz\",\"justitie\",\"gerechtigheid\",\"δικαιοσύνη\",\"υπουργείοδικαιοσύνης\",\"δίκαιο\",\"adalet\",\"igazságügy\",\"pravo\",\"õigus\",\"\"],\n" - + " \"key::86\": [\"aerospace\",\"aerospaziale\",\"aerospaziali\",\"aeroespacio\",\"aeroespaço\",\"Luftfahrt\",\"luchtvaart\",\"ruimtevaart\",\"αεροπορικός\",\"αεροπορική\",\"αεροπορικό\",\"αεροναυπηγικός\",\"αεροναυπηγική\",\"αεροναυπηγικό\",\"αεροναυπηγικά\",\"havacılıkveuzay\",\"légtér\",\"zrakoplovstvo\",\"atmosfäär\",\"kosmos\",\"\"],\n" - + " \"key::87\": [\"dermatology\",\"dermatologia\",\"dermatología\",\"dermatologia\",\"Dermatologie\",\"dermatologie\",\"δρματολογία\",\"dermatoloji\",\"bőrgyógyászat\",\"dermatológia\",\"dermatologija\",\"dermatoloogia\",\"\"],\n" - + " \"key::88\": [\"architecture\",\"architettura\",\"arquitectura\",\"arquitetura\",\"Architektur\",\"architectuur\",\"αρχιτεκτονική\",\"mimarlık\",\"építészet\",\"arhitektura\",\"arhitektuur\",\"\"],\n" - + " \"key::89\": [\"mathematics\",\"matematica\",\"matematiche\",\"matemáticas\",\"matemáticas\",\"Mathematik\",\"wiskunde\",\"mathematica\",\"μαθηματικά\",\"matematik\",\"matematika\",\"matematika\",\"matemaatika\",\"\"],\n" - + " \"key::90\": [\"language\",\"lingue\",\"linguistica\",\"linguistiche\",\"lenguaje\",\"idioma\",\"língua\",\"idioma\",\"Sprache\",\"taal\",\"taalkunde\",\"γλώσσα\",\"dil\",\"nyelv\",\"jezik\",\"keel\",\"\"],\n" - + " \"key::91\": [\"neuroscience\",\"neuroscienza\",\"neurociencia\",\"neurociência\",\"Neurowissenschaft\",\"neurowetenschappen\",\"νευροεπιστήμη\",\"nörobilim\",\"idegtudomány\",\"nevroznanost\",\"neuroteadused\",\"\"],\n" - + " \"key::92\": [\"automation\",\"automazione\",\"automatización\",\"automação\",\"Automatisierung\",\"automatisering\",\"αυτοματοποίηση\",\"otomasyon\",\"automatizálás\",\"avtomatizacija\",\"automatiseeritud\",\"\"],\n" - + " \"key::93\": [\"pediatric\",\"pediatria\",\"pediatriche\",\"pediatrico\",\"pediátrico\",\"pediatría\",\"pediátrico\",\"pediatria\",\"pädiatrisch\",\"pediatrische\",\"παιδιατρική\",\"pediatrik\",\"gyermekgyógyászat\",\"pediatrija\",\"pediaatria\",\"\"],\n" - + " \"key::94\": [\"photonics\",\"fotonica\",\"fotoniche\",\"fotónica\",\"fotônica\",\"Photonik\",\"fotonica\",\"φωτονική\",\"fotonik\",\"fotonika\",\"fotonika\",\"fotoonika\",\"\"],\n" - + " \"key::95\": [\"mechanics\", \"mechanical\", \"meccanica\",\"meccaniche\",\"mecánica\",\"mecânica\",\"Mechanik\",\"Maschinenbau\",\"mechanica\",\"werktuigkunde\",\"μηχανικής\",\"mekanik\",\"gépészet\",\"mehanika\",\"mehaanika\",\"\"],\n" - + " \"key::96\": [\"psychiatrics\",\"psichiatria\",\"psichiatrica\",\"psichiatriche\",\"psiquiatría\",\"psiquiatria\",\"Psychiatrie\",\"psychiatrie\",\"ψυχιατρική\",\"psikiyatrik\",\"pszihiátria\",\"psihiatrija\",\"psühhaatria\",\"\"],\n" - + " \"key::97\": [\"psychology\",\"fisiologia\",\"psicología\",\"psicologia\",\"Psychologie\",\"psychologie\",\"ψυχολογία\",\"psikoloji\",\"pszihológia\",\"psihologija\",\"psühholoogia\",\"\"],\n" - + " \"key::98\": [\"automotive\",\"industriaautomobilistica\",\"industriadelautomóvil\",\"automotriz\",\"industriaautomotriz\",\"automotivo\",\"Automobilindustrie\",\"autoindustrie\",\"αυτοκίνητος\",\"αυτοκίνητη\",\"αυτοκίνητο\",\"αυτοκινούμενος\",\"αυτοκινούμενη\",\"αυτοκινούμενο\",\"αυτοκινητιστικός\",\"αυτοκινητιστική\",\"αυτοκινητιστικό\",\"otomotiv\",\"autóipari\",\"samogiben\",\"avtomobilskaindustrija\",\"auto-\",\"\"],\n" - + " \"key::99\": [\"neurology\",\"neurologia\",\"neurologiche\",\"neurología\",\"neurologia\",\"Neurologie\",\"neurologie\",\"zenuwleer\",\"νευρολογία\",\"nöroloji\",\"neurológia\",\"ideggyógyászat\",\"nevrologija\",\"neuroloogia\",\"\"],\n" - + " \"key::100\": [\"geology\",\"geologia\",\"geologiche\",\"geología\",\"geologia\",\"Geologie\",\"geologie\",\"aardkunde\",\"γεωλογία\",\"jeoloji\",\"geológia\",\"földtudomány\",\"geologija\",\"geoloogia\",\"\"],\n" - + " \"key::101\": [\"microbiology\",\"microbiologia\",\"micro-biologia\",\"microbiologiche\",\"microbiología\",\"microbiologia\",\"Mikrobiologie\",\"microbiologie\",\"μικροβιολογία\",\"mikrobiyoloji\",\"mikrobiológia\",\"mikrobiologija\",\"mikrobioloogia\",\"\"],\n" - + " \"key::102\": [\"informatics\",\"informatica\",\"informática\",\"informática\",\"informatica\",\"\"],\n" - + " \"key::103\": [\"forschungsgemeinschaft\",\"comunita ricerca\",\"research community\",\"research foundation\",\"research association\"],\n" - + " \"key::104\": [\"commerce\",\"ticaret\",\"ticarət\",\"commercio\",\"trade\",\"handel\",\"comercio\"],\n" - + " \"key::105\" : [\"state\", \"stato\", \"etade\", \"estado\", \"statale\", \"etat\", \"zustand\", \"estado\"],\n" - + " \"key::106\" : [\"seminary\", \"seminario\", \"seminaire\", \"seminar\"],\n" - + " \"key::107\" : [\"agricultural forestry\", \"af\", \"a f\"],\n" - + " \"key::108\" : [\"agricultural mechanical\", \"am\", \"a m\"],\n" - + " \"key::109\" : [\"catholic\", \"catholique\", \"katholische\", \"catolica\", \"cattolica\", \"catolico\"]\n" - + " }\n" - + " }\n" - + "}"); - @Test - void testJPath() { + void testJPath() throws IOException { - MapDocument d = MapDocumentUtil.asMapDocumentWithJPath(conf, json); + DedupConfig conf = DedupConfig + .load(IOUtils.toString(getClass().getResourceAsStream("dedup_conf_organization.json"))); - Assertions.assertNotNull(d); - Assertions.assertTrue(StringUtils.isNotBlank(d.getIdentifier())); + final String org = IOUtils.toString(getClass().getResourceAsStream("organization.json")); - System.out.println("d = " + d); + Row row = SparkModel.apply(conf).rowFromJson(org); + + Assertions.assertNotNull(row); + Assertions.assertTrue(StringUtils.isNotBlank(row.getAs("identifier"))); } - @Test - void testNull() { - final Object p = null; - - System.out.println((String) p); - - } } diff --git a/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/dedup/conf/ds.curr.conf.json b/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/dedup/conf/ds.curr.conf.json index fa889d63b..ff6670f1e 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/dedup/conf/ds.curr.conf.json +++ b/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/dedup/conf/ds.curr.conf.json @@ -101,7 +101,8 @@ "type" : "String", "path" : "$.title[?(@.qualifier.classid == 'main title')].value", "length" : 250, - "size" : 5 + "size" : 5, + "clean": "title" }, { "name" : "authors", diff --git a/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/dedup/conf/orp.curr.conf.json b/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/dedup/conf/orp.curr.conf.json index b45b6ae83..a4a3761a3 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/dedup/conf/orp.curr.conf.json +++ b/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/dedup/conf/orp.curr.conf.json @@ -101,7 +101,8 @@ "type" : "String", "path" : "$.title[?(@.qualifier.classid == 'main title')].value", "length" : 250, - "size" : 5 + "size" : 5, + "clean": "title" }, { "name" : "authors", diff --git a/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/dedup/conf/pub.curr.conf.json b/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/dedup/conf/pub.curr.conf.json index 15ebc7a6a..c3a769874 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/dedup/conf/pub.curr.conf.json +++ b/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/dedup/conf/pub.curr.conf.json @@ -29,9 +29,8 @@ }, "pace": { "clustering" : [ - { "name" : "ngrampairs", "fields" : [ "title" ], "params" : { "max" : "1", "ngramLen" : "3"} }, - { "name" : "suffixprefix", "fields" : [ "title" ], "params" : { "max" : "1", "len" : "3" } }, - { "name" : "lowercase", "fields" : [ "doi" ], "params" : { } } + { "name" : "numAuthorsTitleSuffixPrefixChain", "fields" : [ "num_authors", "title" ], "params" : { "mod" : "10" } }, + { "name" : "jsonlistclustering", "fields" : [ "pid" ], "params" : { "jpath_value": "$.value", "jpath_classid": "$.qualifier.classid"} } ], "decisionTree": { "start": { @@ -79,13 +78,37 @@ "ignoreUndefined": "false" }, "layer3": { + "fields": [ + { + "field": "authors", + "comparator": "authorsMatch", + "weight": 1.0, + "countIfUndefined": "false", + "params": { + "surname_th": 0.75, + "fullname_th": 0.75, + "threshold": 0.6, + "mode": "full" + } + } + ], + "threshold": 0.6, + "aggregation": "MAX", + "positive": "layer4", + "negative": "NO_MATCH", + "undefined": "MATCH", + "ignoreUndefined": "true" + }, + "layer4": { "fields": [ { "field": "title", "comparator": "levensteinTitle", "weight": 1.0, "countIfUndefined": "true", - "params": {} + "params": { + "threshold": "0.99" + } } ], "threshold": 0.99, @@ -97,23 +120,25 @@ } }, "model": [ - { - "name": "doi", - "type": "String", - "path": "$.pid[?(@.qualifier.classid == 'doi')].value" - }, { "name": "pid", "type": "JSON", "path": "$.pid", "overrideMatch": "true" }, + { + "name": "alternateid", + "type": "JSON", + "path": "$.instance[*].alternateIdentifier[*]", + "overrideMatch": "true" + }, { "name": "title", "type": "String", "path": "$.title[?(@.qualifier.classid == 'main title')].value", "length": 250, - "size": 5 + "size": 5, + "clean": "title" }, { "name": "authors", @@ -122,9 +147,9 @@ "size": 200 }, { - "name": "resulttype", + "name": "num_authors", "type": "String", - "path": "$.resulttype.classid" + "path": "$.author.length()" } ], "blacklists": { diff --git a/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/dedup/conf/sw.curr.conf.json b/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/dedup/conf/sw.curr.conf.json index f53ff385f..3c6c8aa5f 100644 --- a/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/dedup/conf/sw.curr.conf.json +++ b/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/dedup/conf/sw.curr.conf.json @@ -75,7 +75,8 @@ "type" : "String", "path" : "$.title[?(@.qualifier.classid == 'main title')].value", "length" : 250, - "size" : 5 + "size" : 5, + "clean": "title" }, { "name" : "url", diff --git a/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/dedup/pivot_history/pivot_history.json b/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/dedup/pivot_history/pivot_history.json new file mode 100644 index 000000000..8af1a6d06 --- /dev/null +++ b/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/dedup/pivot_history/pivot_history.json @@ -0,0 +1 @@ +{"id": "50|arXiv_______::c93aeb433eb90ed7a86e29be00791b7c", "firstUsage": "2022-01-01", "lastUsage": "2022-01-01", "dedupId": "50|arXiv_dedup_::c93aeb433eb90ed7a86e29be00791b7c" } \ No newline at end of file diff --git a/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/oa/dedup/jpath/dedup_conf_organization.json b/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/oa/dedup/jpath/dedup_conf_organization.json new file mode 100644 index 000000000..726f2b899 --- /dev/null +++ b/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/oa/dedup/jpath/dedup_conf_organization.json @@ -0,0 +1,269 @@ +{ + "wf" : { + "threshold" : "0.99", + "dedupRun" : "001", + "entityType" : "organization", + "subEntityValue": "organization", + "orderField" : "legalname", + "queueMaxSize" : "2000", + "groupMaxSize" : "50", + "slidingWindowSize" : "200", + "idPath":"$.id", + "rootBuilder" : [ "organization", "projectOrganization_participation_isParticipant", "datasourceOrganization_provision_isProvidedBy" ], + "includeChildren" : "true", + "maxIterations": "20" + }, + "pace" : { + "clustering" : [ + { "name" : "sortedngrampairs", "fields" : [ "legalname" ], "params" : { "max" : 2, "ngramLen" : "3"} }, + { "name" : "suffixprefix", "fields" : [ "legalname" ], "params" : { "max" : 1, "len" : "3" } }, + { "name" : "urlclustering", "fields" : [ "websiteurl" ], "params" : { } }, + { "name" : "keywordsclustering", "fields" : [ "legalname" ], "params" : { "max": 2, "windowSize": 4} } + ], + "decisionTree" : { + "start": { + "fields": [ + { + "field": "gridid", + "comparator": "exactMatch", + "weight": 1, + "countIfUndefined": "false", + "params": {} + } + ], + "threshold": 1, + "aggregation": "AVG", + "positive": "MATCH", + "negative": "NO_MATCH", + "undefined": "layer2", + "ignoreUndefined": "false" + }, + "layer2": { + "fields": [ + { + "field": "websiteurl", + "comparator": "domainExactMatch", + "weight": 1, + "countIfUndefined": "false", + "params": {} + }, + { + "field": "country", + "comparator": "exactMatch", + "weight": 1, + "countIfUndefined": "true", + "params": {} + }, + { + "field": "legalname", + "comparator": "numbersMatch", + "weight": 1, + "countIfUndefined": "true", + "params": {} + }, + { + "field": "legalname", + "comparator": "romansMatch", + "weight": 1, + "countIfUndefined": "true", + "params": {} + } + ], + "threshold": 1, + "aggregation": "AND", + "positive": "layer3", + "negative": "NO_MATCH", + "undefined": "layer3", + "ignoreUndefined": "true" + }, + "layer3": { + "fields": [ + { + "field": "legalname", + "comparator": "cityMatch", + "weight": 1.0, + "countIfUndefined": "true", + "params": { + "windowSize": "4" + } + } + ], + "threshold": 0.1, + "aggregation": "AVG", + "positive": "layer4", + "negative": "NO_MATCH", + "undefined": "NO_MATCH", + "ignoreUndefined": "true" + }, + "layer4": { + "fields": [ + { + "field": "legalname", + "comparator": "keywordMatch", + "weight": 1.0, + "countIfUndefined": "true", + "params": { + "windowSize": "4" + } + } + ], + "threshold": 0.7, + "aggregation": "AVG", + "positive": "layer5", + "negative": "NO_MATCH", + "undefined": "layer5", + "ignoreUndefined": "true" + }, + "layer5": { + "fields": [ + { + "field": "legalname", + "comparator": "jaroWinklerNormalizedName", + "weight": 0.9, + "countIfUndefined": "true", + "params": { + "windowSize": "4" + } + }, + { + "field": "legalshortname", + "comparator": "jaroWinklerNormalizedName", + "weight": 0.1, + "countIfUndefined": "false", + "params": { + "windowSize": 4 + } + } + ], + "threshold": 0.9, + "aggregation": "W_MEAN", + "positive": "MATCH", + "negative": "NO_MATCH", + "undefined": "NO_MATCH", + "ignoreUndefined": "true" + } + }, + "model" : [ + { "name" : "country", "type" : "String", "path" : "$.country.classid"}, + { "name" : "legalshortname", "type" : "String", "path" : "$.legalshortname.value"}, + { "name" : "legalname", "type" : "String", "path" : "$.legalname.value" }, + { "name" : "websiteurl", "type" : "URL", "path" : "$.websiteurl.value" }, + { "name" : "gridid", "type" : "String", "path" : "$.pid[?(@.qualifier.classid =='grid')].value"}, + { "name" : "originalId", "type" : "String", "path" : "$.id" } + ], + "blacklists" : { + "legalname" : [] + }, + "synonyms": { + "key::1": ["university","università", "universitas", "università studi","universitario","universitaria","université", "universite", "universitaire","universitaires","universidad","universitade","Universität","universitaet","Uniwersytet","университет","universiteit","πανεπιστήμιο","universitesi","universiteti", "universiti"], + "key::2": ["studies","studi","études","estudios","estudos","Studien","studia","исследования","studies","σπουδές"], + "key::3": ["advanced","superiore","supérieur","supérieure","supérieurs","supérieures","avancado","avancados","fortgeschrittene","fortgeschritten","zaawansowany","передовой","gevorderd","gevorderde","προχωρημένος","προχωρημένη","προχωρημένο","προχωρημένες","προχωρημένα","wyzsza"], + "key::4": ["institute","istituto","institut","instituto","instituto","Institut","instytut","институт","instituut","ινστιτούτο"], + "key::5": ["hospital","ospedale","hôpital","hospital","hospital","Krankenhaus","szpital","больница","ziekenhuis","νοσοκομείο"], + "key::6": ["research","ricerca","recherche","investigacion","pesquisa","Forschung","badania","исследования","onderzoek","έρευνα","erevna","erevnas"], + "key::7": ["college","collegio","colegio","faculdade","Hochschule","Szkoła Wyższa","Высшая школа","κολλέγιο"], + "key::8": ["foundation","fondazione","fondation","fundación","fundação","Stiftung","Fundacja","фонд","stichting","ίδρυμα","idryma"], + "key::9": ["center","centro","centre","centro","centro","zentrum","centrum","центр","centrum","κέντρο"], + "key::10": ["national","nazionale","national","nationale","nationaux","nationales","nacional","nacional","national","krajowy","национальный","nationaal","nationale","εθνικό"], + "key::11": ["association","associazione","association","asociación","associação","Verein","verband","stowarzyszenie","ассоциация","associatie"], + "key::12": ["society","societa","société","sociedad","sociedade","gesellschaft","społeczeństwo","общество","maatschappij","κοινωνία"], + "key::13": ["international","internazionale","international","internacional","internacional","international","międzynarodowy","Международный","internationaal","internationale","διεθνής","διεθνή","διεθνές"], + "key::14": ["community","comunita","communauté","comunidad","comunidade","Gemeinschaft","społeczność","сообщество","gemeenschap","κοινότητα"], + "key::15": ["school","scuola","école","escuela","escola","schule","Szkoła","школа","school","σχολείο"], + "key::16": ["education","educazione","éducation","educacion","Educação","Bildung","Edukacja","образование","opleiding","εκπαίδευση"], + "key::17": ["academy","accademia","académie","academia","academia","Akademie","akademie","академия","academie","ακαδημία"], + "key::18": ["public","pubblico","public","publique","publics","publiques","publico","publico","Öffentlichkeit","publiczny","публичный","publiek","publieke","δημόσιος","δημόσια","δημόσιο"], + "key::19": ["museum","museo","musée","mueso","museu","museum","muzeum","музей","museum","μουσείο"], + "key::20": ["group","gruppo","groupe","grupo","grupo","gruppe","grupa","группа","groep","ομάδα","όμιλος"], + "key::21": ["department","dipartimento","département","departamento","departamento","abteilung","departament","отдел","afdeling","τμήμα"], + "key::22": ["council","consiglio","conseil","Consejo","conselho","gesellschaft","rada","совет","raad","συμβούλιο"], + "key::23": ["library","biblioteca","bibliothèque","biblioteca","biblioteca","Bibliothek","biblioteka","библиотека","bibliotheek","βιβλιοθήκη"], + "key::24": ["ministry","ministero","ministère","ministerio","ministério","Ministerium","ministerstwo","министерство","ministerie","υπουργείο"], + "key::25": ["services","servizi","services","servicios","Serviços","Dienstleistungen","usługi","услуги","diensten","υπηρεσίες"], + "key::26": ["central","centrale","central","centrale","centrales","central","central","zentral","centralny","цетральный","centraal","κεντρικός","κεντρική","κεντρικό","κεντρικά"], + "key::27": ["general","generale","général","générale","généraux","générales","general","geral","general","Allgemeines","general","общий","algemeen","algemene","γενικός","γενική","γενικό","γενικά"], + "key::28": ["applied","applicati","appliqué","appliquée","appliqués","appliquées","aplicado","aplicada","angewendet","stosowany","прикладной","toegepast","toegepaste","εφαρμοσμένος","εφαρμοσμένη","εφαρμοσμένο","εφαρμοσμένα"], + "key::29": ["european","europee","europea","européen","européenne","européens","européennes","europeo","europeu","europäisch","europejski","европейский","Europees","Europese","ευρωπαϊκός","ευρωπαϊκή","ευρωπαϊκό","ευρωπαϊκά"], + "key::30": ["agency","agenzia","agence","agencia","agencia","agentur","agencja","агенция","agentschap","πρακτορείο"], + "key::31": ["laboratory","laboratorio","laboratoire","laboratorio","laboratorio","labor","laboratorium","лаборатория","laboratorium","εργαστήριο"], + "key::32": ["industry","industria","industrie","индустрия","industrie","βιομηχανία"], + "key::33": ["industrial","industriale","industriel","industrielle","industriels","industrielles","индустриальный","industrieel","βιομηχανικός","βιομηχανική","βιομηχανικό","βιομηχανικά","βιομηχανικές"], + "key::34": ["consortium","consorzio","consortium","консорциум","consortium","κοινοπραξία"], + "key::35": ["organization","organizzazione","organisation","organización","organização","organizacja","организация","organisatie","οργανισμός"], + "key::36": ["authority","autorità","autorité","авторитет","autoriteit"], + "key::37": ["federation","federazione","fédération","федерация","federatie","ομοσπονδία"], + "key::38": ["observatory","osservatorio","observatoire","обсерватория","observatorium","αστεροσκοπείο"], + "key::39": ["bureau","ufficio","bureau","офис","bureau","γραφείο"], + "key::40": ["company","impresa","compagnie","société","компания","bedrijf","εταιρία"], + "key::41": ["polytechnic","politecnico","polytechnique","политехника","polytechnisch","πολυτεχνείο","universita politecnica","polytechnic university","universidad politecnica","universitat politecnica","politechnika","politechniki","university technology","university science technology"], + "key::42": ["coalition","coalizione","coalition","коалиция","coalitie","συνασπισμός"], + "key::43": ["initiative","iniziativa","initiative","инициатива","initiatief","πρωτοβουλία"], + "key::44": ["academic","accademico","académique","universitaire","акадеческий academisch","ακαδημαϊκός","ακαδημαϊκή","ακαδημαϊκό","ακαδημαϊκές","ακαδημαϊκοί"], + "key::45": ["institution","istituzione","institution","институциональный","instelling","ινστιτούτο"], + "key::46": ["division","divisione","division","отделение","divisie","τμήμα"], + "key::47": ["committee","comitato","comité","комитет","commissie","επιτροπή"], + "key::48": ["promotion","promozione","продвижение","proothisis","forderung"], + "key::49": ["medical","medicine","clinical","medicina","clinici","médico","medicina","clínica","médico","medicina","clínica","medizinisch","Medizin","klinisch","medisch","geneeskunde","klinisch","ιατρικός","ιατρική","ιατρικό","ιατρικά","κλινικός","κλινική","κλινικό","κλινικά","tıbbi","tıp","klinik","orvosi","orvostudomány","klinikai","zdravniški","medicinski","klinični","meditsiini","kliinik","kliiniline"], + "key::50": ["technology","technological","tecnologia","tecnologie","tecnología","tecnológico","tecnologia","tecnológico","Technologie","technologisch","technologie","technologisch","τεχνολογία","τεχνολογικός","τεχνολογική","τεχνολογικό","teknoloji","teknolojik","technológia","technológiai","tehnologija","tehnološki","tehnoloogia","tehnoloogiline","technologii","technical","texniki","teknik"], + "key::51": ["science","scientific","scienza","scientifiche","scienze","ciencia","científico","ciência","científico","Wissenschaft","wissenschaftlich","wetenschap","wetenschappelijk","επιστήμη","επιστημονικός","επιστημονική","επιστημονικό","επιστημονικά","bilim","bilimsel","tudomány","tudományos","znanost","znanstveni","teadus","teaduslik",""], + "key::52": ["engineering","ingegneria","ingeniería","engenharia","Ingenieurwissenschaft","ingenieurswetenschappen","bouwkunde","μηχανικός","μηχανική","μηχανικό","mühendislik","mérnöki","Inženirstvo","inseneeria","inseneri",""], + "key::53": ["management","gestione","gestionale","gestionali","gestión","administración","gestão","administração","Verwaltung","management","διαχείριση","yönetim","menedzsment","vodstvo","upravljanje","management","juhtkond","juhtimine","haldus",""], + "key::54": ["energy","energia","energía","energia","Energie","energie","ενέργεια","enerji","energia","energija","energia",""], + "key::55": ["agricultural","agriculture","agricoltura","agricole","agrícola","agricultura","agrícola","agricultura","landwirtschaftlich","Landwirtschaft","landbouwkundig","landbouw","αγροτικός","αγροτική","αγροτικό","γεωργικός","γεωργική","γεωργικό","γεωργία","tarımsal","tarım","mezőgazdasági","mezőgazdaság","poljedelski","poljedelstvo","põllumajandus","põllumajanduslik",""], + "key::56": ["information","informazione","información","informação","Information","informatie","πληροφορία","bilgi","információ","informacija","informatsioon","informatycznych",""], + "key::57": ["social","sociali","social","social","Sozial","sociaal","maatschappelijk","κοινωνικός","κοινωνική","κοινωνικό","κοινωνικά","sosyal","szociális","družbeni","sotsiaal","sotsiaalne",""], + "key::58": ["environmental","ambiente","medioambiental","ambiente","medioambiente","meioambiente","Umwelt","milieu","milieuwetenschap","milieukunde","περιβαλλοντικός","περιβαλλοντική","περιβαλλοντικό","περιβαλλοντικά","çevre","környezeti","okoliški","keskonna",""], + "key::59": ["business","economia","economiche","economica","negocio","empresa","negócio","Unternehmen","bedrijf","bedrijfskunde","επιχείρηση","iş","üzleti","posel","ettevõte/äri",""], + "key::60": ["pharmaceuticals","pharmacy","farmacia","farmaceutica","farmacéutica","farmacia","farmacêutica","farmácia","Pharmazeutika","Arzneimittelkunde","farmaceutica","geneesmiddelen","apotheek","φαρμακευτικός","φαρμακευτική","φαρμακευτικό","φαρμακευτικά","φαρμακείο","ilaç","eczane","gyógyszerészeti","gyógyszertár","farmacevtika","lekarništvo","farmaatsia","farmatseutiline",""], + "key::61": ["healthcare","health services","salute","atenciónmédica","cuidadodelasalud","cuidadoscomasaúde","Gesundheitswesen","gezondheidszorg","ιατροφαρμακευτικήπερίθαλψη","sağlıkhizmeti","egészségügy","zdravstvo","tervishoid","tervishoiu",""], + "key::62": ["history","storia","historia","história","Geschichte","geschiedenis","geschiedkunde","ιστορία","tarih","történelem","zgodovina","ajalugu",""], + "key::63": ["materials","materiali","materia","materiales","materiais","materialen","υλικά","τεκμήρια","malzemeler","anyagok","materiali","materjalid","vahendid",""], + "key::64": ["economics","economia","economiche","economica","economía","economia","Wirtschaft","economie","οικονομικά","οικονομικέςεπιστήμες","ekonomi","közgazdaságtan","gospodarstvo","ekonomija","majanduslik","majandus",""], + "key::65": ["therapeutics","terapeutica","terapéutica","terapêutica","therapie","θεραπευτική","tedavibilimi","gyógykezelés","terapevtika","terapeutiline","ravi",""], + "key::66": ["oncology","oncologia","oncologico","oncología","oncologia","Onkologie","oncologie","ογκολογία","onkoloji","onkológia","onkologija","onkoloogia",""], + "key::67": ["natural","naturali","naturale","natural","natural","natürlich","natuurlijk","φυσικός","φυσική","φυσικό","φυσικά","doğal","természetes","naraven","loodus",""], + "key::68": ["educational","educazione","pedagogia","educacional","educativo","educacional","pädagogisch","educatief","εκπαιδευτικός","εκπαιδευτική","εκπαιδευτικό","εκπαιδευτικά","eğitimsel","oktatási","izobraževalen","haridus","hariduslik",""], + "key::69": ["biomedical","biomedica","biomédico","biomédico","biomedizinisch","biomedisch","βιοιατρικός","βιοιατρική","βιοιατρικό","βιοιατρικά","biyomedikal","orvosbiológiai","biomedicinski","biomeditsiiniline",""], + "key::70": ["veterinary","veterinaria","veterinarie","veterinaria","veterinária","tierärtzlich","veterinair","veeartsenijlkunde","κτηνιατρικός","κτηνιατρική","κτηνιατρικό","κτηνιατρικά","veteriner","állatorvosi","veterinar","veterinarski","veterinaaria",""], + "key::71": ["chemistry","chimica","química","química","Chemie","chemie","scheikunde","χημεία","kimya","kémia","kemija","keemia",""], + "key::72": ["security","sicurezza","seguridad","segurança","Sicherheit","veiligheid","ασφάλεια","güvenlik","biztonsági","varnost","turvalisus","julgeolek",""], + "key::73": ["biotechnology","biotecnologia","biotecnologie","biotecnología","biotecnologia","Biotechnologie","biotechnologie","βιοτεχνολογία","biyoteknoloji","biotechnológia","biotehnologija","biotehnoloogia",""], + "key::74": ["military","militare","militari","militar","militar","Militär","militair","leger","στρατιωτικός","στρατιωτική","στρατιωτικό","στρατιωτικά","askeri","katonai","vojaški","vojni","militaar","wojskowa",""], + "key::75": ["theological","teologia","teologico","teológico","tecnológica","theologisch","theologisch","θεολογικός","θεολογική","θεολογικό","θεολογικά","teolojik","technológiai","teološki","teoloogia","usuteadus","teoloogiline",""], + "key::76": ["electronics","elettronica","electrónica","eletrônicos","Elektronik","elektronica","ηλεκτρονική","elektronik","elektronika","elektronika","elektroonika",""], + "key::77": ["forestry","forestale","forestali","silvicultura","forestal","floresta","Forstwirtschaft","bosbouw","δασοκομία","δασολογία","ormancılık","erdészet","gozdarstvo","metsandus",""], + "key::78": ["maritime","marittima","marittime","marittimo","marítimo","marítimo","maritiem","ναυτικός","ναυτική","ναυτικό","ναυτικά","ναυτιλιακός","ναυτιλιακή","ναυτιλιακό","ναυτιλιακά","θαλάσσιος","θαλάσσια","θαλάσσιο","denizcilik","tengeri","morski","mere","merendus",""], + "key::79": ["sports","sport","deportes","esportes","Sport","sport","sportwetenschappen","άθληση","γυμναστικήδραστηριότητα","spor","sport","šport","sport","spordi",""], + "key::80": ["surgery","chirurgia","chirurgiche","cirugía","cirurgia","Chirurgie","chirurgie","heelkunde","εγχείρηση","επέμβαση","χειρουργικήεπέμβαση","cerrahi","sebészet","kirurgija","kirurgia",""], + "key::81": ["cultural","culturale","culturali","cultura","cultural","cultural","kulturell","cultureel","πολιτιστικός","πολιτιστική","πολιτιστικό","πολιτισμικός","πολιτισμική","πολιτισμικό","kültürel","kultúrális","kulturni","kultuuri","kultuuriline",""], + "key::82": ["computerscience","informatica","ordenador","computadora","informática","computación","cienciasdelacomputación","ciênciadacomputação","Computer","computer","υπολογιστής","ηλεκτρονικόςυπολογιστής","bilgisayar","számítógép","računalnik","arvuti",""], + "key::83": ["finance","financial","finanza","finanziarie","finanza","financiero","finanças","financeiro","Finanzen","finanziell","financiën","financieel","χρηματοοικονομικά","χρηματοδότηση","finanse","finansal","pénzügy","pénzügyi","finance","finančni","finants","finantsiline",""], + "key::84": ["communication","comunicazione","comuniciación","comunicação","Kommunikation","communication","επικοινωνία","iletişim","kommunikáció","komuniciranje","kommunikatsioon",""], + "key::85": ["justice","giustizia","justicia","justiça","Recht","Justiz","justitie","gerechtigheid","δικαιοσύνη","υπουργείοδικαιοσύνης","δίκαιο","adalet","igazságügy","pravo","õigus",""], + "key::86": ["aerospace","aerospaziale","aerospaziali","aeroespacio","aeroespaço","Luftfahrt","luchtvaart","ruimtevaart","αεροπορικός","αεροπορική","αεροπορικό","αεροναυπηγικός","αεροναυπηγική","αεροναυπηγικό","αεροναυπηγικά","havacılıkveuzay","légtér","zrakoplovstvo","atmosfäär","kosmos",""], + "key::87": ["dermatology","dermatologia","dermatología","dermatologia","Dermatologie","dermatologie","δρματολογία","dermatoloji","bőrgyógyászat","dermatológia","dermatologija","dermatoloogia",""], + "key::88": ["architecture","architettura","arquitectura","arquitetura","Architektur","architectuur","αρχιτεκτονική","mimarlık","építészet","arhitektura","arhitektuur",""], + "key::89": ["mathematics","matematica","matematiche","matemáticas","matemáticas","Mathematik","wiskunde","mathematica","μαθηματικά","matematik","matematika","matematika","matemaatika",""], + "key::90": ["language","lingue","linguistica","linguistiche","lenguaje","idioma","língua","idioma","Sprache","taal","taalkunde","γλώσσα","dil","nyelv","jezik","keel",""], + "key::91": ["neuroscience","neuroscienza","neurociencia","neurociência","Neurowissenschaft","neurowetenschappen","νευροεπιστήμη","nörobilim","idegtudomány","nevroznanost","neuroteadused",""], + "key::92": ["automation","automazione","automatización","automação","Automatisierung","automatisering","αυτοματοποίηση","otomasyon","automatizálás","avtomatizacija","automatiseeritud",""], + "key::93": ["pediatric","pediatria","pediatriche","pediatrico","pediátrico","pediatría","pediátrico","pediatria","pädiatrisch","pediatrische","παιδιατρική","pediatrik","gyermekgyógyászat","pediatrija","pediaatria",""], + "key::94": ["photonics","fotonica","fotoniche","fotónica","fotônica","Photonik","fotonica","φωτονική","fotonik","fotonika","fotonika","fotoonika",""], + "key::95": ["mechanics", "mechanical", "meccanica","meccaniche","mecánica","mecânica","Mechanik","Maschinenbau","mechanica","werktuigkunde","μηχανικής","mekanik","gépészet","mehanika","mehaanika",""], + "key::96": ["psychiatrics","psichiatria","psichiatrica","psichiatriche","psiquiatría","psiquiatria","Psychiatrie","psychiatrie","ψυχιατρική","psikiyatrik","pszihiátria","psihiatrija","psühhaatria",""], + "key::97": ["psychology","fisiologia","psicología","psicologia","Psychologie","psychologie","ψυχολογία","psikoloji","pszihológia","psihologija","psühholoogia",""], + "key::98": ["automotive","industriaautomobilistica","industriadelautomóvil","automotriz","industriaautomotriz","automotivo","Automobilindustrie","autoindustrie","αυτοκίνητος","αυτοκίνητη","αυτοκίνητο","αυτοκινούμενος","αυτοκινούμενη","αυτοκινούμενο","αυτοκινητιστικός","αυτοκινητιστική","αυτοκινητιστικό","otomotiv","autóipari","samogiben","avtomobilskaindustrija","auto-",""], + "key::99": ["neurology","neurologia","neurologiche","neurología","neurologia","Neurologie","neurologie","zenuwleer","νευρολογία","nöroloji","neurológia","ideggyógyászat","nevrologija","neuroloogia",""], + "key::100": ["geology","geologia","geologiche","geología","geologia","Geologie","geologie","aardkunde","γεωλογία","jeoloji","geológia","földtudomány","geologija","geoloogia",""], + "key::101": ["microbiology","microbiologia","micro-biologia","microbiologiche","microbiología","microbiologia","Mikrobiologie","microbiologie","μικροβιολογία","mikrobiyoloji","mikrobiológia","mikrobiologija","mikrobioloogia",""], + "key::102": ["informatics","informatica","informática","informática","informatica",""], + "key::103": ["forschungsgemeinschaft","comunita ricerca","research community","research foundation","research association"], + "key::104": ["commerce","ticaret","ticarət","commercio","trade","handel","comercio"], + "key::105" : ["state", "stato", "etade", "estado", "statale", "etat", "zustand", "estado"], + "key::106" : ["seminary", "seminario", "seminaire", "seminar"], + "key::107" : ["agricultural forestry", "af", "a f"], + "key::108" : ["agricultural mechanical", "am", "a m"], + "key::109" : ["catholic", "catholique", "katholische", "catolica", "cattolica", "catolico"] + } + } +} \ No newline at end of file diff --git a/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/oa/dedup/jpath/organization.json b/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/oa/dedup/jpath/organization.json new file mode 100644 index 000000000..f3777ec0c --- /dev/null +++ b/dhp-workflows/dhp-dedup-openaire/src/test/resources/eu/dnetlib/dhp/oa/dedup/jpath/organization.json @@ -0,0 +1,241 @@ +{ + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "trust": "0.810000002384185791", + "inferenceprovenance": "", + "provenanceaction": { + "classid": "sysimport:crosswalk:entityregistry", + "classname": "sysimport:crosswalk:entityregistry", + "schemeid": "dnet:provenance_actions", + "schemename": "dnet:provenance_actions" + } + }, + "lastupdatetimestamp": 1584960968152, + "id": "20|corda__h2020::9faf23721249f26ac2c16eb857ea1fb9", + "originalId": ["corda__h2020::927957582"], + "collectedfrom": [ + { + "key": "openaire____::corda_h2020", + "value": "CORDA - COmmon Research DAta Warehouse - Horizon 2020", + "dataInfo": null + } + ], + "pid": [], + "dateofcollection": "2016-06-05", + "dateoftransformation": "2019-11-19", + "extraInfo": [], + "oaiprovenance": null, + "legalshortname": { + "value": "Comentor AB", + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "trust": "0.810000002384185791", + "inferenceprovenance": "", + "provenanceaction": { + "classid": "sysimport:crosswalk:entityregistry", + "classname": "sysimport:crosswalk:entityregistry", + "schemeid": "dnet:provenance_actions", + "schemename": "dnet:provenance_actions" + } + } + }, + "legalname": { + "value": "Comentor AB", + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "trust": "0.810000002384185791", + "inferenceprovenance": "", + "provenanceaction": { + "classid": "sysimport:crosswalk:entityregistry", + "classname": "sysimport:crosswalk:entityregistry", + "schemeid": "dnet:provenance_actions", + "schemename": "dnet:provenance_actions" + } + } + }, + "alternativeNames": [], + "websiteurl": { + "value": "http://www.comentor.se", + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "trust": "0.810000002384185791", + "inferenceprovenance": "", + "provenanceaction": { + "classid": "sysimport:crosswalk:entityregistry", + "classname": "sysimport:crosswalk:entityregistry", + "schemeid": "dnet:provenance_actions", + "schemename": "dnet:provenance_actions" + } + } + }, + "logourl": null, + "eclegalbody": { + "value": "false", + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "trust": "0.810000002384185791", + "inferenceprovenance": "", + "provenanceaction": { + "classid": "sysimport:crosswalk:entityregistry", + "classname": "sysimport:crosswalk:entityregistry", + "schemeid": "dnet:provenance_actions", + "schemename": "dnet:provenance_actions" + } + } + }, + "eclegalperson": { + "value": "true", + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "trust": "0.810000002384185791", + "inferenceprovenance": "", + "provenanceaction": { + "classid": "sysimport:crosswalk:entityregistry", + "classname": "sysimport:crosswalk:entityregistry", + "schemeid": "dnet:provenance_actions", + "schemename": "dnet:provenance_actions" + } + } + }, + "ecnonprofit": { + "value": "false", + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "trust": "0.810000002384185791", + "inferenceprovenance": "", + "provenanceaction": { + "classid": "sysimport:crosswalk:entityregistry", + "classname": "sysimport:crosswalk:entityregistry", + "schemeid": "dnet:provenance_actions", + "schemename": "dnet:provenance_actions" + } + } + }, + "ecresearchorganization": { + "value": "false", + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "trust": "0.810000002384185791", + "inferenceprovenance": "", + "provenanceaction": { + "classid": "sysimport:crosswalk:entityregistry", + "classname": "sysimport:crosswalk:entityregistry", + "schemeid": "dnet:provenance_actions", + "schemename": "dnet:provenance_actions" + } + } + }, + "echighereducation": { + "value": "false", + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "trust": "0.810000002384185791", + "inferenceprovenance": "", + "provenanceaction": { + "classid": "sysimport:crosswalk:entityregistry", + "classname": "sysimport:crosswalk:entityregistry", + "schemeid": "dnet:provenance_actions", + "schemename": "dnet:provenance_actions" + } + } + }, + "ecinternationalorganizationeurinterests": { + "value": "false", + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "trust": "0.810000002384185791", + "inferenceprovenance": "", + "provenanceaction": { + "classid": "sysimport:crosswalk:entityregistry", + "classname": "sysimport:crosswalk:entityregistry", + "schemeid": "dnet:provenance_actions", + "schemename": "dnet:provenance_actions" + } + } + }, + "ecinternationalorganization": { + "value": "false", + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "trust": "0.810000002384185791", + "inferenceprovenance": "", + "provenanceaction": { + "classid": "sysimport:crosswalk:entityregistry", + "classname": "sysimport:crosswalk:entityregistry", + "schemeid": "dnet:provenance_actions", + "schemename": "dnet:provenance_actions" + } + } + }, + "ecenterprise": { + "value": "false", + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "trust": "0.810000002384185791", + "inferenceprovenance": "", + "provenanceaction": { + "classid": "sysimport:crosswalk:entityregistry", + "classname": "sysimport:crosswalk:entityregistry", + "schemeid": "dnet:provenance_actions", + "schemename": "dnet:provenance_actions" + } + } + }, + "ecsmevalidated": { + "value": "true", + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "trust": "0.810000002384185791", + "inferenceprovenance": "", + "provenanceaction": { + "classid": "sysimport:crosswalk:entityregistry", + "classname": "sysimport:crosswalk:entityregistry", + "schemeid": "dnet:provenance_actions", + "schemename": "dnet:provenance_actions" + } + } + }, + "ecnutscode": { + "value": "false", + "dataInfo": { + "invisible": false, + "inferred": false, + "deletedbyinference": false, + "trust": "0.810000002384185791", + "inferenceprovenance": "", + "provenanceaction": { + "classid": "sysimport:crosswalk:entityregistry", + "classname": "sysimport:crosswalk:entityregistry", + "schemeid": "dnet:provenance_actions", + "schemename": "dnet:provenance_actions" + } + } + }, + "country": null +} diff --git a/dhp-workflows/dhp-distcp/pom.xml b/dhp-workflows/dhp-distcp/pom.xml deleted file mode 100644 index c3d3a7375..000000000 --- a/dhp-workflows/dhp-distcp/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - dhp-workflows - eu.dnetlib.dhp - 1.2.5-SNAPSHOT - - 4.0.0 - - dhp-distcp - - - \ No newline at end of file diff --git a/dhp-workflows/dhp-distcp/src/main/resources/eu/dnetlib/dhp/distcp/oozie_app/workflow.xml b/dhp-workflows/dhp-distcp/src/main/resources/eu/dnetlib/dhp/distcp/oozie_app/workflow.xml deleted file mode 100644 index 91b97332b..000000000 --- a/dhp-workflows/dhp-distcp/src/main/resources/eu/dnetlib/dhp/distcp/oozie_app/workflow.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - sourceNN - the source name node - - - sourcePath - the source path - - - targetPath - the target path - - - hbase_dump_distcp_memory_mb - 6144 - memory for distcp action copying InfoSpace dump from remote cluster - - - hbase_dump_distcp_num_maps - 1 - maximum number of simultaneous copies of InfoSpace dump from remote location - - - - - - - Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] - - - - - -Dmapreduce.map.memory.mb=${hbase_dump_distcp_memory_mb} - -pb - -m ${hbase_dump_distcp_num_maps} - ${sourceNN}/${sourcePath} - ${nameNode}/${targetPath} - - - - - - - \ No newline at end of file diff --git a/dhp-workflows/dhp-doiboost/pom.xml b/dhp-workflows/dhp-doiboost/pom.xml index 37accbc4f..6e8911fba 100644 --- a/dhp-workflows/dhp-doiboost/pom.xml +++ b/dhp-workflows/dhp-doiboost/pom.xml @@ -33,6 +33,8 @@ + true + ${scala.binary.version} ${scala.version} @@ -70,12 +72,12 @@ org.apache.spark - spark-core_2.11 + spark-core_${scala.binary.version} org.apache.spark - spark-sql_2.11 + spark-sql_${scala.binary.version} diff --git a/dhp-workflows/dhp-doiboost/src/main/resources/eu/dnetlib/dhp/doiboost/crossref/irish_funder.json b/dhp-workflows/dhp-doiboost/src/main/resources/eu/dnetlib/dhp/doiboost/crossref/irish_funder.json new file mode 100644 index 000000000..15eb1b711 --- /dev/null +++ b/dhp-workflows/dhp-doiboost/src/main/resources/eu/dnetlib/dhp/doiboost/crossref/irish_funder.json @@ -0,0 +1,940 @@ +[ + { + "id": "100007630", + "uri": "http://dx.doi.org/10.13039/100007630", + "name": "College of Engineering and Informatics, National University of Ireland, Galway", + "synonym": [] + }, + { + "id": "100007731", + "uri": "http://dx.doi.org/10.13039/100007731", + "name": "Endo International", + "synonym": [] + }, + { + "id": "100008099", + "uri": "http://dx.doi.org/10.13039/100008099", + "name": "Food Safety Authority of Ireland", + "synonym": [] + }, + { + "id": "100008124", + "uri": "http://dx.doi.org/10.13039/100008124", + "name": "Department of Jobs, Enterprise and Innovation", + "synonym": [] + }, + { + "id": "100009098", + "uri": "http://dx.doi.org/10.13039/100009098", + "name": "Department of Foreign Affairs and Trade, Ireland", + "synonym": [] + }, + { + "id": "100009099", + "uri": "http://dx.doi.org/10.13039/100009099", + "name": "Irish Aid", + "synonym": [] + }, + { + "id": "100009770", + "uri": "http://dx.doi.org/10.13039/100009770", + "name": "National University of Ireland", + "synonym": [] + }, + { + "id": "100009985", + "uri": "http://dx.doi.org/10.13039/100009985", + "name": "Parkinson's Association of Ireland", + "synonym": [] + }, + { + "id": "100010399", + "uri": "http://dx.doi.org/10.13039/100010399", + "name": "European Society of Cataract and Refractive Surgeons", + "synonym": [] + }, + { + "id": "100010414", + "uri": "http://dx.doi.org/10.13039/100010414", + "name": "Health Research Board", + "synonym": [ + "501100001590" + ] + }, + { + "id": "100010546", + "uri": "http://dx.doi.org/10.13039/100010546", + "name": "Deparment of Children and Youth Affairs, Ireland", + "synonym": [] + }, + { + "id": "100010993", + "uri": "http://dx.doi.org/10.13039/100010993", + "name": "Irish Nephrology Society", + "synonym": [] + }, + { + "id": "100011062", + "uri": "http://dx.doi.org/10.13039/100011062", + "name": "Asian Spinal Cord Network", + "synonym": [] + }, + { + "id": "100011096", + "uri": "http://dx.doi.org/10.13039/100011096", + "name": "Jazz Pharmaceuticals", + "synonym": [] + }, + { + "id": "100011396", + "uri": "http://dx.doi.org/10.13039/100011396", + "name": "Irish College of General Practitioners", + "synonym": [] + }, + { + "id": "100012734", + "uri": "http://dx.doi.org/10.13039/100012734", + "name": "Department for Culture, Heritage and the Gaeltacht, Ireland", + "synonym": [] + }, + { + "id": "100012754", + "uri": "http://dx.doi.org/10.13039/100012754", + "name": "Horizon Pharma", + "synonym": [] + }, + { + "id": "100012891", + "uri": "http://dx.doi.org/10.13039/100012891", + "name": "Medical Research Charities Group", + "synonym": [] + }, + { + "id": "100012919", + "uri": "http://dx.doi.org/10.13039/100012919", + "name": "Epilepsy Ireland", + "synonym": [] + }, + { + "id": "100012920", + "uri": "http://dx.doi.org/10.13039/100012920", + "name": "GLEN", + "synonym": [] + }, + { + "id": "100012921", + "uri": "http://dx.doi.org/10.13039/100012921", + "name": "Royal College of Surgeons in Ireland", + "synonym": [] + }, + { + "id": "100013029", + "uri": "http://dx.doi.org/10.13039/100013029", + "name": "Iris O'Brien Foundation", + "synonym": [] + }, + { + "id": "100013206", + "uri": "http://dx.doi.org/10.13039/100013206", + "name": "Food Institutional Research Measure", + "synonym": [] + }, + { + "id": "100013381", + "uri": "http://dx.doi.org/10.13039/100013381", + "name": "Irish Phytochemical Food Network", + "synonym": [] + }, + { + "id": "100013433", + "uri": "http://dx.doi.org/10.13039/100013433", + "name": "Transport Infrastructure Ireland", + "synonym": [] + }, + { + "id": "100013461", + "uri": "http://dx.doi.org/10.13039/100013461", + "name": "Arts and Disability Ireland", + "synonym": [] + }, + { + "id": "100013548", + "uri": "http://dx.doi.org/10.13039/100013548", + "name": "Filmbase", + "synonym": [] + }, + { + "id": "100013917", + "uri": "http://dx.doi.org/10.13039/100013917", + "name": "Society for Musicology in Ireland", + "synonym": [] + }, + { + "id": "100014251", + "uri": "http://dx.doi.org/10.13039/100014251", + "name": "Humanities in the European Research Area", + "synonym": [] + }, + { + "id": "100014364", + "uri": "http://dx.doi.org/10.13039/100014364", + "name": "National Children's Research Centre", + "synonym": [] + }, + { + "id": "100014384", + "uri": "http://dx.doi.org/10.13039/100014384", + "name": "Amarin Corporation", + "synonym": [] + }, + { + "id": "100014902", + "uri": "http://dx.doi.org/10.13039/100014902", + "name": "Irish Association for Cancer Research", + "synonym": [] + }, + { + "id": "100015023", + "uri": "http://dx.doi.org/10.13039/100015023", + "name": "Ireland Funds", + "synonym": [] + }, + { + "id": "100015037", + "uri": "http://dx.doi.org/10.13039/100015037", + "name": "Simon Cumbers Media Fund", + "synonym": [] + }, + { + "id": "100015319", + "uri": "http://dx.doi.org/10.13039/100015319", + "name": "Sport Ireland Institute", + "synonym": [] + }, + { + "id": "100015320", + "uri": "http://dx.doi.org/10.13039/100015320", + "name": "Paralympics Ireland", + "synonym": [] + }, + { + "id": "100015442", + "uri": "http://dx.doi.org/10.13039/100015442", + "name": "Global Brain Health Institute", + "synonym": [] + }, + { + "id": "100015776", + "uri": "http://dx.doi.org/10.13039/100015776", + "name": "Health and Social Care Board", + "synonym": [] + }, + { + "id": "100015992", + "uri": "http://dx.doi.org/10.13039/100015992", + "name": "St. Luke's Institute of Cancer Research", + "synonym": [] + }, + { + "id": "100017897", + "uri": "http://dx.doi.org/10.13039/100017897", + "name": "Friedreich\u2019s Ataxia Research Alliance Ireland", + "synonym": [] + }, + { + "id": "100018064", + "uri": "http://dx.doi.org/10.13039/100018064", + "name": "Department of Tourism, Culture, Arts, Gaeltacht, Sport and Media", + "synonym": [] + }, + { + "id": "100018172", + "uri": "http://dx.doi.org/10.13039/100018172", + "name": "Department of the Environment, Climate and Communications", + "synonym": [] + }, + { + "id": "100018175", + "uri": "http://dx.doi.org/10.13039/100018175", + "name": "Dairy Processing Technology Centre", + "synonym": [] + }, + { + "id": "100018270", + "uri": "http://dx.doi.org/10.13039/100018270", + "name": "Health Service Executive", + "synonym": [] + }, + { + "id": "100018529", + "uri": "http://dx.doi.org/10.13039/100018529", + "name": "Alkermes", + "synonym": [] + }, + { + "id": "100018542", + "uri": "http://dx.doi.org/10.13039/100018542", + "name": "Irish Endocrine Society", + "synonym": [] + }, + { + "id": "100018754", + "uri": "http://dx.doi.org/10.13039/100018754", + "name": "An Roinn Sl\u00e1inte", + "synonym": [] + }, + { + "id": "100018998", + "uri": "http://dx.doi.org/10.13039/100018998", + "name": "Irish Research eLibrary", + "synonym": [] + }, + { + "id": "100019428", + "uri": "http://dx.doi.org/10.13039/100019428", + "name": "Nabriva Therapeutics", + "synonym": [] + }, + { + "id": "100019637", + "uri": "http://dx.doi.org/10.13039/100019637", + "name": "Horizon Therapeutics", + "synonym": [] + }, + { + "id": "100020174", + "uri": "http://dx.doi.org/10.13039/100020174", + "name": "Health Research Charities Ireland", + "synonym": [] + }, + { + "id": "100020202", + "uri": "http://dx.doi.org/10.13039/100020202", + "name": "UCD Foundation", + "synonym": [] + }, + { + "id": "100020233", + "uri": "http://dx.doi.org/10.13039/100020233", + "name": "Ireland Canada University Foundation", + "synonym": [] + }, + { + "id": "100022943", + "uri": "http://dx.doi.org/10.13039/100022943", + "name": "National Cancer Registry Ireland", + "synonym": [] + }, + { + "id": "501100001581", + "uri": "http://dx.doi.org/10.13039/501100001581", + "name": "Arts Council of Ireland", + "synonym": [] + }, + { + "id": "501100001582", + "uri": "http://dx.doi.org/10.13039/501100001582", + "name": "Centre for Ageing Research and Development in Ireland", + "synonym": [] + }, + { + "id": "501100001583", + "uri": "http://dx.doi.org/10.13039/501100001583", + "name": "Cystinosis Foundation Ireland", + "synonym": [] + }, + { + "id": "501100001584", + "uri": "http://dx.doi.org/10.13039/501100001584", + "name": "Department of Agriculture, Food and the Marine, Ireland", + "synonym": [] + }, + { + "id": "501100001586", + "uri": "http://dx.doi.org/10.13039/501100001586", + "name": "Department of Education and Skills, Ireland", + "synonym": [] + }, + { + "id": "501100001587", + "uri": "http://dx.doi.org/10.13039/501100001587", + "name": "Economic and Social Research Institute", + "synonym": [] + }, + { + "id": "501100001588", + "uri": "http://dx.doi.org/10.13039/501100001588", + "name": "Enterprise Ireland", + "synonym": [] + }, + { + "id": "501100001589", + "uri": "http://dx.doi.org/10.13039/501100001589", + "name": "Environmental Protection Agency", + "synonym": [] + }, + { + "id": "501100001591", + "uri": "http://dx.doi.org/10.13039/501100001591", + "name": "Heritage Council", + "synonym": [] + }, + { + "id": "501100001592", + "uri": "http://dx.doi.org/10.13039/501100001592", + "name": "Higher Education Authority", + "synonym": [] + }, + { + "id": "501100001593", + "uri": "http://dx.doi.org/10.13039/501100001593", + "name": "Irish Cancer Society", + "synonym": [] + }, + { + "id": "501100001594", + "uri": "http://dx.doi.org/10.13039/501100001594", + "name": "Irish Heart Foundation", + "synonym": [] + }, + { + "id": "501100001595", + "uri": "http://dx.doi.org/10.13039/501100001595", + "name": "Irish Hospice Foundation", + "synonym": [] + }, + { + "id": "501100001596", + "uri": "http://dx.doi.org/10.13039/501100001596", + "name": "Irish Research Council for Science, Engineering and Technology", + "synonym": [] + }, + { + "id": "501100001597", + "uri": "http://dx.doi.org/10.13039/501100001597", + "name": "Irish Research Council for the Humanities and Social Sciences", + "synonym": [] + }, + { + "id": "501100001598", + "uri": "http://dx.doi.org/10.13039/501100001598", + "name": "Mental Health Commission", + "synonym": [] + }, + { + "id": "501100001600", + "uri": "http://dx.doi.org/10.13039/501100001600", + "name": "Research and Education Foundation, Sligo General Hospital", + "synonym": [] + }, + { + "id": "501100001601", + "uri": "http://dx.doi.org/10.13039/501100001601", + "name": "Royal Irish Academy", + "synonym": [] + }, + { + "id": "501100001603", + "uri": "http://dx.doi.org/10.13039/501100001603", + "name": "Sustainable Energy Authority of Ireland", + "synonym": [] + }, + { + "id": "501100001604", + "uri": "http://dx.doi.org/10.13039/501100001604", + "name": "Teagasc", + "synonym": [] + }, + { + "id": "501100001627", + "uri": "http://dx.doi.org/10.13039/501100001627", + "name": "Marine Institute", + "synonym": [] + }, + { + "id": "501100001628", + "uri": "http://dx.doi.org/10.13039/501100001628", + "name": "Central Remedial Clinic", + "synonym": [] + }, + { + "id": "501100001629", + "uri": "http://dx.doi.org/10.13039/501100001629", + "name": "Royal Dublin Society", + "synonym": [] + }, + { + "id": "501100001630", + "uri": "http://dx.doi.org/10.13039/501100001630", + "name": "Dublin Institute for Advanced Studies", + "synonym": [] + }, + { + "id": "501100001631", + "uri": "http://dx.doi.org/10.13039/501100001631", + "name": "University College Dublin", + "synonym": [] + }, + { + "id": "501100001633", + "uri": "http://dx.doi.org/10.13039/501100001633", + "name": "National University of Ireland, Maynooth", + "synonym": [] + }, + { + "id": "501100001634", + "uri": "http://dx.doi.org/10.13039/501100001634", + "name": "University of Galway", + "synonym": [] + }, + { + "id": "501100001635", + "uri": "http://dx.doi.org/10.13039/501100001635", + "name": "University of Limerick", + "synonym": [] + }, + { + "id": "501100001636", + "uri": "http://dx.doi.org/10.13039/501100001636", + "name": "University College Cork", + "synonym": [] + }, + { + "id": "501100001637", + "uri": "http://dx.doi.org/10.13039/501100001637", + "name": "Trinity College Dublin", + "synonym": [] + }, + { + "id": "501100001638", + "uri": "http://dx.doi.org/10.13039/501100001638", + "name": "Dublin City University", + "synonym": [] + }, + { + "id": "501100002081", + "uri": "http://dx.doi.org/10.13039/501100002081", + "name": "Irish Research Council", + "synonym": [] + }, + { + "id": "501100002736", + "uri": "http://dx.doi.org/10.13039/501100002736", + "name": "Covidien", + "synonym": [] + }, + { + "id": "501100002755", + "uri": "http://dx.doi.org/10.13039/501100002755", + "name": "Brennan and Company", + "synonym": [] + }, + { + "id": "501100002919", + "uri": "http://dx.doi.org/10.13039/501100002919", + "name": "Cork Institute of Technology", + "synonym": [] + }, + { + "id": "501100002959", + "uri": "http://dx.doi.org/10.13039/501100002959", + "name": "Dublin City Council", + "synonym": [] + }, + { + "id": "501100003036", + "uri": "http://dx.doi.org/10.13039/501100003036", + "name": "Perrigo Company Charitable Foundation", + "synonym": [] + }, + { + "id": "501100003037", + "uri": "http://dx.doi.org/10.13039/501100003037", + "name": "Elan", + "synonym": [] + }, + { + "id": "501100003496", + "uri": "http://dx.doi.org/10.13039/501100003496", + "name": "HeyStaks Technologies", + "synonym": [] + }, + { + "id": "501100003553", + "uri": "http://dx.doi.org/10.13039/501100003553", + "name": "Gaelic Athletic Association", + "synonym": [] + }, + { + "id": "501100003840", + "uri": "http://dx.doi.org/10.13039/501100003840", + "name": "Irish Institute of Clinical Neuroscience", + "synonym": [] + }, + { + "id": "501100003956", + "uri": "http://dx.doi.org/10.13039/501100003956", + "name": "Aspect Medical Systems", + "synonym": [] + }, + { + "id": "501100004162", + "uri": "http://dx.doi.org/10.13039/501100004162", + "name": "Meath Foundation", + "synonym": [] + }, + { + "id": "501100004210", + "uri": "http://dx.doi.org/10.13039/501100004210", + "name": "Our Lady's Children's Hospital, Crumlin", + "synonym": [] + }, + { + "id": "501100004321", + "uri": "http://dx.doi.org/10.13039/501100004321", + "name": "Shire", + "synonym": [] + }, + { + "id": "501100004981", + "uri": "http://dx.doi.org/10.13039/501100004981", + "name": "Athlone Institute of Technology", + "synonym": [] + }, + { + "id": "501100006518", + "uri": "http://dx.doi.org/10.13039/501100006518", + "name": "Department of Communications, Energy and Natural Resources, Ireland", + "synonym": [] + }, + { + "id": "501100006553", + "uri": "http://dx.doi.org/10.13039/501100006553", + "name": "Collaborative Centre for Applied Nanotechnology", + "synonym": [] + }, + { + "id": "501100006759", + "uri": "http://dx.doi.org/10.13039/501100006759", + "name": "CLARITY Centre for Sensor Web Technologies", + "synonym": [] + }, + { + "id": "501100009246", + "uri": "http://dx.doi.org/10.13039/501100009246", + "name": "Technological University Dublin", + "synonym": [] + }, + { + "id": "501100009269", + "uri": "http://dx.doi.org/10.13039/501100009269", + "name": "Programme of Competitive Forestry Research for Development", + "synonym": [] + }, + { + "id": "501100009315", + "uri": "http://dx.doi.org/10.13039/501100009315", + "name": "Cystinosis Ireland", + "synonym": [] + }, + { + "id": "501100010808", + "uri": "http://dx.doi.org/10.13039/501100010808", + "name": "Geological Survey of Ireland", + "synonym": [] + }, + { + "id": "501100011030", + "uri": "http://dx.doi.org/10.13039/501100011030", + "name": "Alimentary Glycoscience Research Cluster", + "synonym": [] + }, + { + "id": "501100011031", + "uri": "http://dx.doi.org/10.13039/501100011031", + "name": "Alimentary Health", + "synonym": [] + }, + { + "id": "501100011103", + "uri": "http://dx.doi.org/10.13039/501100011103", + "name": "Rann\u00eds", + "synonym": [] + }, + { + "id": "501100012354", + "uri": "http://dx.doi.org/10.13039/501100012354", + "name": "Inland Fisheries Ireland", + "synonym": [] + }, + { + "id": "501100014384", + "uri": "http://dx.doi.org/10.13039/501100014384", + "name": "X-Bolt Orthopaedics", + "synonym": [] + }, + { + "id": "501100014710", + "uri": "http://dx.doi.org/10.13039/501100014710", + "name": "PrecisionBiotics Group", + "synonym": [] + }, + { + "id": "501100014827", + "uri": "http://dx.doi.org/10.13039/501100014827", + "name": "Dormant Accounts Fund", + "synonym": [] + }, + { + "id": "501100016041", + "uri": "http://dx.doi.org/10.13039/501100016041", + "name": "St Vincents Anaesthesia Foundation", + "synonym": [] + }, + { + "id": "501100017501", + "uri": "http://dx.doi.org/10.13039/501100017501", + "name": "FotoNation", + "synonym": [] + }, + { + "id": "501100018641", + "uri": "http://dx.doi.org/10.13039/501100018641", + "name": "Dairy Research Ireland", + "synonym": [] + }, + { + "id": "501100018839", + "uri": "http://dx.doi.org/10.13039/501100018839", + "name": "Irish Centre for High-End Computing", + "synonym": [] + }, + { + "id": "501100019905", + "uri": "http://dx.doi.org/10.13039/501100019905", + "name": "Galway University Foundation", + "synonym": [] + }, + { + "id": "501100020036", + "uri": "http://dx.doi.org/10.13039/501100020036", + "name": "Dystonia Ireland", + "synonym": [] + }, + { + "id": "501100020221", + "uri": "http://dx.doi.org/10.13039/501100020221", + "name": "Irish Motor Neurone Disease Association", + "synonym": [] + }, + { + "id": "501100020270", + "uri": "http://dx.doi.org/10.13039/501100020270", + "name": "Advanced Materials and Bioengineering Research", + "synonym": [] + }, + { + "id": "501100020403", + "uri": "http://dx.doi.org/10.13039/501100020403", + "name": "Irish Composites Centre", + "synonym": [] + }, + { + "id": "501100020425", + "uri": "http://dx.doi.org/10.13039/501100020425", + "name": "Irish Thoracic Society", + "synonym": [] + }, + { + "id": "501100021102", + "uri": "http://dx.doi.org/10.13039/501100021102", + "name": "Waterford Institute of Technology", + "synonym": [] + }, + { + "id": "501100021110", + "uri": "http://dx.doi.org/10.13039/501100021110", + "name": "Irish MPS Society", + "synonym": [] + }, + { + "id": "501100021525", + "uri": "http://dx.doi.org/10.13039/501100021525", + "name": "Insight SFI Research Centre for Data Analytics", + "synonym": [] + }, + { + "id": "501100021694", + "uri": "http://dx.doi.org/10.13039/501100021694", + "name": "Elan Pharma International", + "synonym": [] + }, + { + "id": "501100021838", + "uri": "http://dx.doi.org/10.13039/501100021838", + "name": "Royal College of Physicians of Ireland", + "synonym": [] + }, + { + "id": "501100022542", + "uri": "http://dx.doi.org/10.13039/501100022542", + "name": "Breakthrough Cancer Research", + "synonym": [] + }, + { + "id": "501100022610", + "uri": "http://dx.doi.org/10.13039/501100022610", + "name": "Breast Cancer Ireland", + "synonym": [] + }, + { + "id": "501100022728", + "uri": "http://dx.doi.org/10.13039/501100022728", + "name": "Munster Technological University", + "synonym": [] + }, + { + "id": "501100022729", + "uri": "http://dx.doi.org/10.13039/501100022729", + "name": "Institute of Technology, Tralee", + "synonym": [] + }, + { + "id": "501100023273", + "uri": "http://dx.doi.org/10.13039/501100023273", + "name": "HRB Clinical Research Facility Galway", + "synonym": [] + }, + { + "id": "501100023378", + "uri": "http://dx.doi.org/10.13039/501100023378", + "name": "Lauritzson Foundation", + "synonym": [] + }, + { + "id": "501100023551", + "uri": "http://dx.doi.org/10.13039/501100023551", + "name": "Cystic Fibrosis Ireland", + "synonym": [] + }, + { + "id": "501100023970", + "uri": "http://dx.doi.org/10.13039/501100023970", + "name": "Tyndall National Institute", + "synonym": [] + }, + { + "id": "501100024094", + "uri": "http://dx.doi.org/10.13039/501100024094", + "name": "Raidi\u00f3 Teilif\u00eds \u00c9ireann", + "synonym": [] + }, + { + "id": "501100024242", + "uri": "http://dx.doi.org/10.13039/501100024242", + "name": "Synthesis and Solid State Pharmaceutical Centre", + "synonym": [] + }, + { + "id": "501100024313", + "uri": "http://dx.doi.org/10.13039/501100024313", + "name": "Irish Rugby Football Union", + "synonym": [] + }, + { + "id": "100007490", + "uri": "http://dx.doi.org/10.13039/100007490", + "name": "Bausch and Lomb Ireland", + "synonym": [] + }, + { + "id": "100007819", + "uri": "http://dx.doi.org/10.13039/100007819", + "name": "Allergan", + "synonym": [] + }, + { + "id": "100010547", + "uri": "http://dx.doi.org/10.13039/100010547", + "name": "Irish Youth Justice Service", + "synonym": [] + }, + { + "id": "100012733", + "uri": "http://dx.doi.org/10.13039/100012733", + "name": "National Parks and Wildlife Service", + "synonym": [] + }, + { + "id": "100015278", + "uri": "http://dx.doi.org/10.13039/100015278", + "name": "Pfizer Healthcare Ireland", + "synonym": [] + }, + { + "id": "100017144", + "uri": "http://dx.doi.org/10.13039/100017144", + "name": "Shell E and P Ireland", + "synonym": [] + }, + { + "id": "100022895", + "uri": "http://dx.doi.org/10.13039/100022895", + "name": "Health Research Institute, University of Limerick", + "synonym": [] + }, + { + "id": "501100001599", + "uri": "http://dx.doi.org/10.13039/501100001599", + "name": "National Council for Forest Research and Development", + "synonym": [] + }, + { + "id": "501100006554", + "uri": "http://dx.doi.org/10.13039/501100006554", + "name": "IDA Ireland", + "synonym": [] + }, + { + "id": "501100011626", + "uri": "http://dx.doi.org/10.13039/501100011626", + "name": "Energy Policy Research Centre, Economic and Social Research Institute", + "synonym": [] + }, + { + "id": "501100014531", + "uri": "http://dx.doi.org/10.13039/501100014531", + "name": "Physical Education and Sport Sciences Department, University of Limerick", + "synonym": [] + }, + { + "id": "501100014745", + "uri": "http://dx.doi.org/10.13039/501100014745", + "name": "APC Microbiome Institute", + "synonym": [] + }, + { + "id": "501100014826", + "uri": "http://dx.doi.org/10.13039/501100014826", + "name": "ADAPT - Centre for Digital Content Technology", + "synonym": [] + }, + { + "id": "501100020570", + "uri": "http://dx.doi.org/10.13039/501100020570", + "name": "College of Medicine, Nursing and Health Sciences, National University of Ireland, Galway", + "synonym": [] + }, + { + "id": "501100020871", + "uri": "http://dx.doi.org/10.13039/501100020871", + "name": "Bernal Institute, University of Limerick", + "synonym": [] + }, + { + "id": "501100023852", + "uri": "http://dx.doi.org/10.13039/501100023852", + "name": "Moore Institute for Research in the Humanities and Social Studies, University of Galway", + "synonym": [] + } +] \ No newline at end of file diff --git a/dhp-workflows/dhp-doiboost/src/main/resources/eu/dnetlib/dhp/doiboost/preprocess/oozie_app/workflow.xml b/dhp-workflows/dhp-doiboost/src/main/resources/eu/dnetlib/dhp/doiboost/preprocess/oozie_app/workflow.xml index 40a17b486..309031ee4 100644 --- a/dhp-workflows/dhp-doiboost/src/main/resources/eu/dnetlib/dhp/doiboost/preprocess/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-doiboost/src/main/resources/eu/dnetlib/dhp/doiboost/preprocess/oozie_app/workflow.xml @@ -34,18 +34,6 @@ the MAG working path - - - - inputPathOrcid - the ORCID input path - - - - workingPathOrcid - the ORCID working path - - @@ -65,7 +53,6 @@ ${wf:conf('resumeFrom') eq 'ResetMagWorkingPath'} ${wf:conf('resumeFrom') eq 'ConvertMagToDataset'} - ${wf:conf('resumeFrom') eq 'PreProcessORCID'} @@ -133,32 +120,6 @@ --targetPath${inputPathMAG}/dataset --masteryarn-cluster - - - - - - - - yarn-cluster - cluster - Convert ORCID to Dataset - eu.dnetlib.doiboost.orcid.SparkPreprocessORCID - dhp-doiboost-${projectVersion}.jar - - --executor-memory=${sparkExecutorMemory} - --executor-cores=${sparkExecutorCores} - --driver-memory=${sparkDriverMemory} - --conf spark.sql.shuffle.partitions=3840 - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - - --sourcePath${inputPathOrcid} - --workingPath${workingPathOrcid} - --masteryarn-cluster - diff --git a/dhp-workflows/dhp-doiboost/src/main/resources/eu/dnetlib/dhp/doiboost/process/oozie_app/workflow.xml b/dhp-workflows/dhp-doiboost/src/main/resources/eu/dnetlib/dhp/doiboost/process/oozie_app/workflow.xml index 29a12f4df..84cbc5232 100644 --- a/dhp-workflows/dhp-doiboost/src/main/resources/eu/dnetlib/dhp/doiboost/process/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-doiboost/src/main/resources/eu/dnetlib/dhp/doiboost/process/oozie_app/workflow.xml @@ -59,10 +59,10 @@ - - workingPathOrcid - the ORCID working path - + + + + @@ -84,7 +84,6 @@ ${wf:conf('resumeFrom') eq 'Skip'} ${wf:conf('resumeFrom') eq 'PreprocessMag'} ${wf:conf('resumeFrom') eq 'PreprocessUW'} - ${wf:conf('resumeFrom') eq 'ProcessORCID'} ${wf:conf('resumeFrom') eq 'CreateDOIBoost'} ${wf:conf('resumeFrom') eq 'GenerateActionSet'} @@ -170,32 +169,6 @@ --targetPath${workingPath}/uwPublication --masteryarn-cluster - - - - - - - - yarn-cluster - cluster - Convert ORCID to Dataset - eu.dnetlib.doiboost.orcid.SparkConvertORCIDToOAF - dhp-doiboost-${projectVersion}.jar - - --executor-memory=${sparkExecutorMemory} - --executor-cores=${sparkExecutorCores} - --driver-memory=${sparkDriverMemory} - --conf spark.sql.shuffle.partitions=3840 - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - - --workingPath${workingPathOrcid} - --targetPath${workingPath}/orcidPublication - --masteryarn-cluster - diff --git a/dhp-workflows/dhp-doiboost/src/main/scala/eu/dnetlib/doiboost/SparkGenerateDoiBoost.scala b/dhp-workflows/dhp-doiboost/src/main/scala/eu/dnetlib/doiboost/SparkGenerateDoiBoost.scala index 3315fc41d..9ffaeeeef 100644 --- a/dhp-workflows/dhp-doiboost/src/main/scala/eu/dnetlib/doiboost/SparkGenerateDoiBoost.scala +++ b/dhp-workflows/dhp-doiboost/src/main/scala/eu/dnetlib/doiboost/SparkGenerateDoiBoost.scala @@ -66,7 +66,7 @@ object SparkGenerateDoiBoost { Encoders.tuple(Encoders.STRING, mapEncoderPub) implicit val mapEncoderRel: Encoder[Relation] = Encoders.kryo[Relation] - logger.info("Phase 2) Join Crossref with UnpayWall") + logger.info("Phase 1) Join Crossref with UnpayWall") val crossrefPublication: Dataset[(String, Publication)] = spark.read.load(s"$workingDirPath/crossrefPublication").as[Publication].map(p => (p.getId, p)) @@ -91,20 +91,10 @@ object SparkGenerateDoiBoost { .write .mode(SaveMode.Overwrite) .save(s"$workingDirPath/firstJoin") - logger.info("Phase 3) Join Result with ORCID") - val fj: Dataset[(String, Publication)] = - spark.read.load(s"$workingDirPath/firstJoin").as[Publication].map(p => (p.getId, p)) - val orcidPublication: Dataset[(String, Publication)] = - spark.read.load(s"$workingDirPath/orcidPublication").as[Publication].map(p => (p.getId, p)) - fj.joinWith(orcidPublication, fj("_1").equalTo(orcidPublication("_1")), "left") - .map(applyMerge) - .write - .mode(SaveMode.Overwrite) - .save(s"$workingDirPath/secondJoin") - logger.info("Phase 4) Join Result with MAG") + logger.info("Phase 2) Join Result with MAG") val sj: Dataset[(String, Publication)] = - spark.read.load(s"$workingDirPath/secondJoin").as[Publication].map(p => (p.getId, p)) + spark.read.load(s"$workingDirPath/firstJoin").as[Publication].map(p => (p.getId, p)) val magPublication: Dataset[(String, Publication)] = spark.read.load(s"$workingDirPath/magPublication").as[Publication].map(p => (p.getId, p)) @@ -284,4 +274,4 @@ object SparkGenerateDoiBoost { .save(s"$workingDirPath/doiBoostOrganization") } -} \ No newline at end of file +} diff --git a/dhp-workflows/dhp-doiboost/src/main/scala/eu/dnetlib/doiboost/crossref/Crossref2Oaf.scala b/dhp-workflows/dhp-doiboost/src/main/scala/eu/dnetlib/doiboost/crossref/Crossref2Oaf.scala index 9c63b709b..64090733d 100644 --- a/dhp-workflows/dhp-doiboost/src/main/scala/eu/dnetlib/doiboost/crossref/Crossref2Oaf.scala +++ b/dhp-workflows/dhp-doiboost/src/main/scala/eu/dnetlib/doiboost/crossref/Crossref2Oaf.scala @@ -16,6 +16,7 @@ import org.slf4j.{Logger, LoggerFactory} import java.util import scala.collection.JavaConverters._ import scala.collection.mutable +import scala.io.Source import scala.util.matching.Regex case class CrossrefDT(doi: String, json: String, timestamp: Long) {} @@ -24,17 +25,28 @@ case class mappingAffiliation(name: String) {} case class mappingAuthor( given: Option[String], - family: String, + family: Option[String], sequence: Option[String], ORCID: Option[String], affiliation: Option[mappingAffiliation] ) {} +case class funderInfo(id: String, uri: String, name: String, synonym: List[String]) {} + case class mappingFunder(name: String, DOI: Option[String], award: Option[List[String]]) {} case object Crossref2Oaf { val logger: Logger = LoggerFactory.getLogger(Crossref2Oaf.getClass) + val irishFunder: List[funderInfo] = { + val s = Source + .fromInputStream(getClass.getResourceAsStream("/eu/dnetlib/dhp/doiboost/crossref/irish_funder.json")) + .mkString + implicit lazy val formats: DefaultFormats.type = org.json4s.DefaultFormats + lazy val json: org.json4s.JValue = parse(s) + json.extract[List[funderInfo]] + } + val mappingCrossrefType = Map( "book-section" -> "publication", "book" -> "publication", @@ -88,7 +100,14 @@ case object Crossref2Oaf { "report" -> "0017 Report" ) - def mappingResult(result: Result, json: JValue, cobjCategory: String): Result = { + def getIrishId(doi: String): Option[String] = { + val id = doi.split("/").last + irishFunder + .find(f => id.equalsIgnoreCase(f.id) || (f.synonym.nonEmpty && f.synonym.exists(s => s.equalsIgnoreCase(id)))) + .map(f => f.id) + } + + def mappingResult(result: Result, json: JValue, cobjCategory: String, originalType: String): Result = { implicit lazy val formats: DefaultFormats.type = org.json4s.DefaultFormats //MAPPING Crossref DOI into PID @@ -207,14 +226,14 @@ case object Crossref2Oaf { //Mapping Author val authorList: List[mappingAuthor] = - (json \ "author").extractOrElse[List[mappingAuthor]](List()) + (json \ "author").extract[List[mappingAuthor]].filter(a => a.family.isDefined) val sorted_list = authorList.sortWith((a: mappingAuthor, b: mappingAuthor) => a.sequence.isDefined && a.sequence.get.equalsIgnoreCase("first") ) result.setAuthor(sorted_list.zipWithIndex.map { case (a, index) => - generateAuhtor(a.given.orNull, a.family, a.ORCID.orNull, index) + generateAuhtor(a.given.orNull, a.family.get, a.ORCID.orNull, index) }.asJava) // Mapping instance @@ -264,6 +283,11 @@ case object Crossref2Oaf { ModelConstants.DNET_PUBLICATION_RESOURCE ) ) + //ADD ORIGINAL TYPE to the mapping + val itm = new InstanceTypeMapping + itm.setOriginalType(originalType) + itm.setVocabularyName(ModelConstants.OPENAIRE_COAR_RESOURCE_TYPES_3_1) + instance.setInstanceTypeMapping(List(itm).asJava) result.setResourcetype( OafMapperUtils.qualifier( cobjCategory.substring(0, 4), @@ -348,7 +372,9 @@ case object Crossref2Oaf { objectType, mappingCrossrefSubType.getOrElse(objectSubType, "0038 Other literature type") ) - mappingResult(result, json, cOBJCategory) + + val originalType = if (mappingCrossrefSubType.contains(objectType)) objectType else objectSubType + mappingResult(result, json, cOBJCategory, originalType) if (result == null || result.getId == null) return List() @@ -467,6 +493,14 @@ case object Crossref2Oaf { if (funders != null) funders.foreach(funder => { if (funder.DOI.isDefined && funder.DOI.get.nonEmpty) { + + if (getIrishId(funder.DOI.get).isDefined) { + val nsPrefix = getIrishId(funder.DOI.get).get.padTo(12, '_') + val targetId = getProjectId(nsPrefix, "1e5e62235d094afd01cd56e65112fc63") + queue += generateRelation(sourceId, targetId, ModelConstants.IS_PRODUCED_BY) + queue += generateRelation(targetId, sourceId, ModelConstants.PRODUCES) + } + funder.DOI.get match { case "10.13039/100010663" | "10.13039/100010661" | "10.13039/501100007601" | "10.13039/501100000780" | "10.13039/100010665" => diff --git a/dhp-workflows/dhp-doiboost/src/test/resources/eu/dnetlib/doiboost/crossref/s41567-022-01757-y.json b/dhp-workflows/dhp-doiboost/src/test/resources/eu/dnetlib/doiboost/crossref/s41567-022-01757-y.json new file mode 100644 index 000000000..8e75f3586 --- /dev/null +++ b/dhp-workflows/dhp-doiboost/src/test/resources/eu/dnetlib/doiboost/crossref/s41567-022-01757-y.json @@ -0,0 +1 @@ +{"indexed":{"date-parts":[[2023,12,29]],"date-time":"2023-12-29T10:40:34Z","timestamp":1703846434800},"reference-count":65,"publisher":"Springer Science and Business Media LLC","license":[{"start":{"date-parts":[[2023,2,9]],"date-time":"2023-02-09T00:00:00Z","timestamp":1675900800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"},{"start":{"date-parts":[[2023,2,9]],"date-time":"2023-02-09T00:00:00Z","timestamp":1675900800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Nat. Phys."],"DOI":"10.1038\/s41567-022-01757-y","type":"journal-article","created":{"date-parts":[[2023,2,10]],"date-time":"2023-02-10T15:32:19Z","timestamp":1676043139000},"update-policy":"http:\/\/dx.doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["Observation of electroweak production of two jets and a Z-boson pair"],"prefix":"10.1038","author":[{"name":"ATLAS Collaboration","sequence":"first","affiliation":[]},{"given":"G.","family":"Aad","sequence":"additional","affiliation":[]},{"given":"B.","family":"Abbott","sequence":"additional","affiliation":[]},{"given":"D. C.","family":"Abbott","sequence":"additional","affiliation":[]},{"given":"A.","family":"Abed Abud","sequence":"additional","affiliation":[]},{"given":"K.","family":"Abeling","sequence":"additional","affiliation":[]},{"given":"D. K.","family":"Abhayasinghe","sequence":"additional","affiliation":[]},{"given":"S. H.","family":"Abidi","sequence":"additional","affiliation":[]},{"given":"O. S.","family":"AbouZeid","sequence":"additional","affiliation":[]},{"given":"N. L.","family":"Abraham","sequence":"additional","affiliation":[]},{"given":"H.","family":"Abramowicz","sequence":"additional","affiliation":[]},{"given":"H.","family":"Abreu","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Abulaiti","sequence":"additional","affiliation":[]},{"given":"B. S.","family":"Acharya","sequence":"additional","affiliation":[]},{"given":"B.","family":"Achkar","sequence":"additional","affiliation":[]},{"given":"S.","family":"Adachi","sequence":"additional","affiliation":[]},{"given":"L.","family":"Adam","sequence":"additional","affiliation":[]},{"given":"C. Adam","family":"Bourdarios","sequence":"additional","affiliation":[]},{"given":"L.","family":"Adamczyk","sequence":"additional","affiliation":[]},{"given":"L.","family":"Adamek","sequence":"additional","affiliation":[]},{"given":"J.","family":"Adelman","sequence":"additional","affiliation":[]},{"given":"M.","family":"Adersberger","sequence":"additional","affiliation":[]},{"given":"A.","family":"Adiguzel","sequence":"additional","affiliation":[]},{"given":"S.","family":"Adorni","sequence":"additional","affiliation":[]},{"given":"T.","family":"Adye","sequence":"additional","affiliation":[]},{"given":"A. A.","family":"Affolder","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Afik","sequence":"additional","affiliation":[]},{"given":"C.","family":"Agapopoulou","sequence":"additional","affiliation":[]},{"given":"M. N.","family":"Agaras","sequence":"additional","affiliation":[]},{"given":"A.","family":"Aggarwal","sequence":"additional","affiliation":[]},{"given":"C.","family":"Agheorghiesei","sequence":"additional","affiliation":[]},{"given":"J. A.","family":"Aguilar-Saavedra","sequence":"additional","affiliation":[]},{"given":"F.","family":"Ahmadov","sequence":"additional","affiliation":[]},{"given":"W. S.","family":"Ahmed","sequence":"additional","affiliation":[]},{"given":"X.","family":"Ai","sequence":"additional","affiliation":[]},{"given":"G.","family":"Aielli","sequence":"additional","affiliation":[]},{"given":"S.","family":"Akatsuka","sequence":"additional","affiliation":[]},{"given":"T. P. A.","family":"\u00c5kesson","sequence":"additional","affiliation":[]},{"given":"E.","family":"Akilli","sequence":"additional","affiliation":[]},{"given":"A. V.","family":"Akimov","sequence":"additional","affiliation":[]},{"given":"K.","family":"Al Khoury","sequence":"additional","affiliation":[]},{"given":"G. L.","family":"Alberghi","sequence":"additional","affiliation":[]},{"given":"J.","family":"Albert","sequence":"additional","affiliation":[]},{"given":"M. J.","family":"Alconada Verzini","sequence":"additional","affiliation":[]},{"given":"S.","family":"Alderweireldt","sequence":"additional","affiliation":[]},{"given":"M.","family":"Aleksa","sequence":"additional","affiliation":[]},{"given":"I. N.","family":"Aleksandrov","sequence":"additional","affiliation":[]},{"given":"C.","family":"Alexa","sequence":"additional","affiliation":[]},{"given":"T.","family":"Alexopoulos","sequence":"additional","affiliation":[]},{"given":"A.","family":"Alfonsi","sequence":"additional","affiliation":[]},{"given":"F.","family":"Alfonsi","sequence":"additional","affiliation":[]},{"given":"M.","family":"Alhroob","sequence":"additional","affiliation":[]},{"given":"B.","family":"Ali","sequence":"additional","affiliation":[]},{"given":"M.","family":"Aliev","sequence":"additional","affiliation":[]},{"given":"G.","family":"Alimonti","sequence":"additional","affiliation":[]},{"given":"C.","family":"Allaire","sequence":"additional","affiliation":[]},{"given":"B. M. M.","family":"Allbrooke","sequence":"additional","affiliation":[]},{"given":"B. W.","family":"Allen","sequence":"additional","affiliation":[]},{"given":"P. P.","family":"Allport","sequence":"additional","affiliation":[]},{"given":"A.","family":"Aloisio","sequence":"additional","affiliation":[]},{"given":"F.","family":"Alonso","sequence":"additional","affiliation":[]},{"given":"C.","family":"Alpigiani","sequence":"additional","affiliation":[]},{"given":"A. A.","family":"Alshehri","sequence":"additional","affiliation":[]},{"given":"E.","family":"Alunno Camelia","sequence":"additional","affiliation":[]},{"given":"M.","family":"Alvarez Estevez","sequence":"additional","affiliation":[]},{"given":"M. G.","family":"Alviggi","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Amaral Coutinho","sequence":"additional","affiliation":[]},{"given":"A.","family":"Ambler","sequence":"additional","affiliation":[]},{"given":"L.","family":"Ambroz","sequence":"additional","affiliation":[]},{"given":"C.","family":"Amelung","sequence":"additional","affiliation":[]},{"given":"D.","family":"Amidei","sequence":"additional","affiliation":[]},{"given":"S. P. Amor","family":"Dos Santos","sequence":"additional","affiliation":[]},{"given":"S.","family":"Amoroso","sequence":"additional","affiliation":[]},{"given":"C. S.","family":"Amrouche","sequence":"additional","affiliation":[]},{"given":"F.","family":"An","sequence":"additional","affiliation":[]},{"given":"C.","family":"Anastopoulos","sequence":"additional","affiliation":[]},{"given":"N.","family":"Andari","sequence":"additional","affiliation":[]},{"given":"T.","family":"Andeen","sequence":"additional","affiliation":[]},{"given":"C. F.","family":"Anders","sequence":"additional","affiliation":[]},{"given":"J. K.","family":"Anders","sequence":"additional","affiliation":[]},{"given":"A.","family":"Andreazza","sequence":"additional","affiliation":[]},{"given":"V.","family":"Andrei","sequence":"additional","affiliation":[]},{"given":"C. R.","family":"Anelli","sequence":"additional","affiliation":[]},{"given":"S.","family":"Angelidakis","sequence":"additional","affiliation":[]},{"given":"A.","family":"Angerami","sequence":"additional","affiliation":[]},{"given":"A. V.","family":"Anisenkov","sequence":"additional","affiliation":[]},{"given":"A.","family":"Annovi","sequence":"additional","affiliation":[]},{"given":"C.","family":"Antel","sequence":"additional","affiliation":[]},{"given":"M. T.","family":"Anthony","sequence":"additional","affiliation":[]},{"given":"E.","family":"Antipov","sequence":"additional","affiliation":[]},{"given":"M.","family":"Antonelli","sequence":"additional","affiliation":[]},{"given":"D. J. A.","family":"Antrim","sequence":"additional","affiliation":[]},{"given":"F.","family":"Anulli","sequence":"additional","affiliation":[]},{"given":"M.","family":"Aoki","sequence":"additional","affiliation":[]},{"given":"J. A. Aparisi","family":"Pozo","sequence":"additional","affiliation":[]},{"given":"M. A.","family":"Aparo","sequence":"additional","affiliation":[]},{"given":"L. Aperio","family":"Bella","sequence":"additional","affiliation":[]},{"given":"J. P.","family":"Araque","sequence":"additional","affiliation":[]},{"given":"V. Araujo","family":"Ferraz","sequence":"additional","affiliation":[]},{"given":"R. Araujo","family":"Pereira","sequence":"additional","affiliation":[]},{"given":"C.","family":"Arcangeletti","sequence":"additional","affiliation":[]},{"given":"A. T. H.","family":"Arce","sequence":"additional","affiliation":[]},{"given":"F. A.","family":"Arduh","sequence":"additional","affiliation":[]},{"given":"J-F.","family":"Arguin","sequence":"additional","affiliation":[]},{"given":"S.","family":"Argyropoulos","sequence":"additional","affiliation":[]},{"given":"J.-H.","family":"Arling","sequence":"additional","affiliation":[]},{"given":"A. J.","family":"Armbruster","sequence":"additional","affiliation":[]},{"given":"A.","family":"Armstrong","sequence":"additional","affiliation":[]},{"given":"O.","family":"Arnaez","sequence":"additional","affiliation":[]},{"given":"H.","family":"Arnold","sequence":"additional","affiliation":[]},{"given":"Z. P. Arrubarrena","family":"Tame","sequence":"additional","affiliation":[]},{"given":"G.","family":"Artoni","sequence":"additional","affiliation":[]},{"given":"S.","family":"Artz","sequence":"additional","affiliation":[]},{"given":"S.","family":"Asai","sequence":"additional","affiliation":[]},{"given":"T.","family":"Asawatavonvanich","sequence":"additional","affiliation":[]},{"given":"N. A.","family":"Asbah","sequence":"additional","affiliation":[]},{"given":"E. M.","family":"Asimakopoulou","sequence":"additional","affiliation":[]},{"given":"L.","family":"Asquith","sequence":"additional","affiliation":[]},{"given":"J.","family":"Assahsah","sequence":"additional","affiliation":[]},{"given":"K.","family":"Assamagan","sequence":"additional","affiliation":[]},{"given":"R.","family":"Astalos","sequence":"additional","affiliation":[]},{"given":"R. J.","family":"Atkin","sequence":"additional","affiliation":[]},{"given":"M.","family":"Atkinson","sequence":"additional","affiliation":[]},{"given":"N. B.","family":"Atlay","sequence":"additional","affiliation":[]},{"given":"H.","family":"Atmani","sequence":"additional","affiliation":[]},{"given":"K.","family":"Augsten","sequence":"additional","affiliation":[]},{"given":"G.","family":"Avolio","sequence":"additional","affiliation":[]},{"given":"M. K.","family":"Ayoub","sequence":"additional","affiliation":[]},{"given":"G.","family":"Azuelos","sequence":"additional","affiliation":[]},{"given":"H.","family":"Bachacou","sequence":"additional","affiliation":[]},{"given":"K.","family":"Bachas","sequence":"additional","affiliation":[]},{"given":"M.","family":"Backes","sequence":"additional","affiliation":[]},{"given":"F.","family":"Backman","sequence":"additional","affiliation":[]},{"given":"P.","family":"Bagnaia","sequence":"additional","affiliation":[]},{"given":"H.","family":"Bahrasemani","sequence":"additional","affiliation":[]},{"given":"A. J.","family":"Bailey","sequence":"additional","affiliation":[]},{"given":"V. R.","family":"Bailey","sequence":"additional","affiliation":[]},{"given":"J. T.","family":"Baines","sequence":"additional","affiliation":[]},{"given":"C.","family":"Bakalis","sequence":"additional","affiliation":[]},{"given":"O. K.","family":"Baker","sequence":"additional","affiliation":[]},{"given":"P. J.","family":"Bakker","sequence":"additional","affiliation":[]},{"given":"D. Bakshi","family":"Gupta","sequence":"additional","affiliation":[]},{"given":"S.","family":"Balaji","sequence":"additional","affiliation":[]},{"given":"E. M.","family":"Baldin","sequence":"additional","affiliation":[]},{"given":"P.","family":"Balek","sequence":"additional","affiliation":[]},{"given":"F.","family":"Balli","sequence":"additional","affiliation":[]},{"given":"W. K.","family":"Balunas","sequence":"additional","affiliation":[]},{"given":"J.","family":"Balz","sequence":"additional","affiliation":[]},{"given":"E.","family":"Banas","sequence":"additional","affiliation":[]},{"given":"A.","family":"Bandyopadhyay","sequence":"additional","affiliation":[]},{"given":"Sw.","family":"Banerjee","sequence":"additional","affiliation":[]},{"given":"A. A. E.","family":"Bannoura","sequence":"additional","affiliation":[]},{"given":"L.","family":"Barak","sequence":"additional","affiliation":[]},{"given":"W. M.","family":"Barbe","sequence":"additional","affiliation":[]},{"given":"E. L.","family":"Barberio","sequence":"additional","affiliation":[]},{"given":"D.","family":"Barberis","sequence":"additional","affiliation":[]},{"given":"M.","family":"Barbero","sequence":"additional","affiliation":[]},{"given":"G.","family":"Barbour","sequence":"additional","affiliation":[]},{"given":"T.","family":"Barillari","sequence":"additional","affiliation":[]},{"given":"M-S.","family":"Barisits","sequence":"additional","affiliation":[]},{"given":"J.","family":"Barkeloo","sequence":"additional","affiliation":[]},{"given":"T.","family":"Barklow","sequence":"additional","affiliation":[]},{"given":"R.","family":"Barnea","sequence":"additional","affiliation":[]},{"given":"B. M.","family":"Barnett","sequence":"additional","affiliation":[]},{"given":"R. M.","family":"Barnett","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Barnovska-Blenessy","sequence":"additional","affiliation":[]},{"given":"A.","family":"Baroncelli","sequence":"additional","affiliation":[]},{"given":"G.","family":"Barone","sequence":"additional","affiliation":[]},{"given":"A. J.","family":"Barr","sequence":"additional","affiliation":[]},{"given":"L.","family":"Barranco Navarro","sequence":"additional","affiliation":[]},{"given":"F.","family":"Barreiro","sequence":"additional","affiliation":[]},{"given":"J.","family":"Barreiro Guimar\u00e3es da Costa","sequence":"additional","affiliation":[]},{"given":"S.","family":"Barsov","sequence":"additional","affiliation":[]},{"given":"R.","family":"Bartoldus","sequence":"additional","affiliation":[]},{"given":"G.","family":"Bartolini","sequence":"additional","affiliation":[]},{"given":"A. E.","family":"Barton","sequence":"additional","affiliation":[]},{"given":"P.","family":"Bartos","sequence":"additional","affiliation":[]},{"given":"A.","family":"Basalaev","sequence":"additional","affiliation":[]},{"given":"A.","family":"Basan","sequence":"additional","affiliation":[]},{"given":"A.","family":"Bassalat","sequence":"additional","affiliation":[]},{"given":"M. J.","family":"Basso","sequence":"additional","affiliation":[]},{"given":"R. L.","family":"Bates","sequence":"additional","affiliation":[]},{"given":"S.","family":"Batlamous","sequence":"additional","affiliation":[]},{"given":"J. R.","family":"Batley","sequence":"additional","affiliation":[]},{"given":"B.","family":"Batool","sequence":"additional","affiliation":[]},{"given":"M.","family":"Battaglia","sequence":"additional","affiliation":[]},{"given":"M.","family":"Bauce","sequence":"additional","affiliation":[]},{"given":"F.","family":"Bauer","sequence":"additional","affiliation":[]},{"given":"K. T.","family":"Bauer","sequence":"additional","affiliation":[]},{"given":"H. S.","family":"Bawa","sequence":"additional","affiliation":[]},{"given":"J. B.","family":"Beacham","sequence":"additional","affiliation":[]},{"given":"T.","family":"Beau","sequence":"additional","affiliation":[]},{"given":"P. H.","family":"Beauchemin","sequence":"additional","affiliation":[]},{"given":"F.","family":"Becherer","sequence":"additional","affiliation":[]},{"given":"P.","family":"Bechtle","sequence":"additional","affiliation":[]},{"given":"H. C.","family":"Beck","sequence":"additional","affiliation":[]},{"given":"H. P.","family":"Beck","sequence":"additional","affiliation":[]},{"given":"K.","family":"Becker","sequence":"additional","affiliation":[]},{"given":"C.","family":"Becot","sequence":"additional","affiliation":[]},{"given":"A.","family":"Beddall","sequence":"additional","affiliation":[]},{"given":"A. J.","family":"Beddall","sequence":"additional","affiliation":[]},{"given":"V. A.","family":"Bednyakov","sequence":"additional","affiliation":[]},{"given":"M.","family":"Bedognetti","sequence":"additional","affiliation":[]},{"given":"C. P.","family":"Bee","sequence":"additional","affiliation":[]},{"given":"T. A.","family":"Beermann","sequence":"additional","affiliation":[]},{"given":"M.","family":"Begalli","sequence":"additional","affiliation":[]},{"given":"M.","family":"Begel","sequence":"additional","affiliation":[]},{"given":"A.","family":"Behera","sequence":"additional","affiliation":[]},{"given":"J. K.","family":"Behr","sequence":"additional","affiliation":[]},{"given":"F.","family":"Beisiegel","sequence":"additional","affiliation":[]},{"given":"A. S.","family":"Bell","sequence":"additional","affiliation":[]},{"given":"G.","family":"Bella","sequence":"additional","affiliation":[]},{"given":"L.","family":"Bellagamba","sequence":"additional","affiliation":[]},{"given":"A.","family":"Bellerive","sequence":"additional","affiliation":[]},{"given":"P.","family":"Bellos","sequence":"additional","affiliation":[]},{"given":"K.","family":"Beloborodov","sequence":"additional","affiliation":[]},{"given":"K.","family":"Belotskiy","sequence":"additional","affiliation":[]},{"given":"N. L.","family":"Belyaev","sequence":"additional","affiliation":[]},{"given":"D.","family":"Benchekroun","sequence":"additional","affiliation":[]},{"given":"N.","family":"Benekos","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Benhammou","sequence":"additional","affiliation":[]},{"given":"D. P.","family":"Benjamin","sequence":"additional","affiliation":[]},{"given":"M.","family":"Benoit","sequence":"additional","affiliation":[]},{"given":"J. R.","family":"Bensinger","sequence":"additional","affiliation":[]},{"given":"S.","family":"Bentvelsen","sequence":"additional","affiliation":[]},{"given":"L.","family":"Beresford","sequence":"additional","affiliation":[]},{"given":"M.","family":"Beretta","sequence":"additional","affiliation":[]},{"given":"D.","family":"Berge","sequence":"additional","affiliation":[]},{"given":"E. Bergeaas","family":"Kuutmann","sequence":"additional","affiliation":[]},{"given":"N.","family":"Berger","sequence":"additional","affiliation":[]},{"given":"B.","family":"Bergmann","sequence":"additional","affiliation":[]},{"given":"L. J.","family":"Bergsten","sequence":"additional","affiliation":[]},{"given":"J.","family":"Beringer","sequence":"additional","affiliation":[]},{"given":"S.","family":"Berlendis","sequence":"additional","affiliation":[]},{"given":"G.","family":"Bernardi","sequence":"additional","affiliation":[]},{"given":"C.","family":"Bernius","sequence":"additional","affiliation":[]},{"given":"F. U.","family":"Bernlochner","sequence":"additional","affiliation":[]},{"given":"T.","family":"Berry","sequence":"additional","affiliation":[]},{"given":"P.","family":"Berta","sequence":"additional","affiliation":[]},{"given":"C.","family":"Bertella","sequence":"additional","affiliation":[]},{"given":"I. A.","family":"Bertram","sequence":"additional","affiliation":[]},{"given":"O.","family":"Bessidskaia Bylund","sequence":"additional","affiliation":[]},{"given":"N.","family":"Besson","sequence":"additional","affiliation":[]},{"given":"A.","family":"Bethani","sequence":"additional","affiliation":[]},{"given":"S.","family":"Bethke","sequence":"additional","affiliation":[]},{"given":"A.","family":"Betti","sequence":"additional","affiliation":[]},{"given":"A. J.","family":"Bevan","sequence":"additional","affiliation":[]},{"given":"J.","family":"Beyer","sequence":"additional","affiliation":[]},{"given":"D. S.","family":"Bhattacharya","sequence":"additional","affiliation":[]},{"given":"P.","family":"Bhattarai","sequence":"additional","affiliation":[]},{"given":"R.","family":"Bi","sequence":"additional","affiliation":[]},{"given":"R. M.","family":"Bianchi","sequence":"additional","affiliation":[]},{"given":"O.","family":"Biebel","sequence":"additional","affiliation":[]},{"given":"D.","family":"Biedermann","sequence":"additional","affiliation":[]},{"given":"R.","family":"Bielski","sequence":"additional","affiliation":[]},{"given":"K.","family":"Bierwagen","sequence":"additional","affiliation":[]},{"given":"N. V.","family":"Biesuz","sequence":"additional","affiliation":[]},{"given":"M.","family":"Biglietti","sequence":"additional","affiliation":[]},{"given":"T. R. V.","family":"Billoud","sequence":"additional","affiliation":[]},{"given":"M.","family":"Bindi","sequence":"additional","affiliation":[]},{"given":"A.","family":"Bingul","sequence":"additional","affiliation":[]},{"given":"C.","family":"Bini","sequence":"additional","affiliation":[]},{"given":"S.","family":"Biondi","sequence":"additional","affiliation":[]},{"given":"M.","family":"Birman","sequence":"additional","affiliation":[]},{"given":"T.","family":"Bisanz","sequence":"additional","affiliation":[]},{"given":"J. P.","family":"Biswal","sequence":"additional","affiliation":[]},{"given":"D.","family":"Biswas","sequence":"additional","affiliation":[]},{"given":"A.","family":"Bitadze","sequence":"additional","affiliation":[]},{"given":"C.","family":"Bittrich","sequence":"additional","affiliation":[]},{"given":"K.","family":"Bj\u00f8rke","sequence":"additional","affiliation":[]},{"given":"T.","family":"Blazek","sequence":"additional","affiliation":[]},{"given":"I.","family":"Bloch","sequence":"additional","affiliation":[]},{"given":"C.","family":"Blocker","sequence":"additional","affiliation":[]},{"given":"A.","family":"Blue","sequence":"additional","affiliation":[]},{"given":"U.","family":"Blumenschein","sequence":"additional","affiliation":[]},{"given":"G. J.","family":"Bobbink","sequence":"additional","affiliation":[]},{"given":"V. S.","family":"Bobrovnikov","sequence":"additional","affiliation":[]},{"given":"S. S.","family":"Bocchetta","sequence":"additional","affiliation":[]},{"given":"A.","family":"Bocci","sequence":"additional","affiliation":[]},{"given":"D.","family":"Bogavac","sequence":"additional","affiliation":[]},{"given":"A. G.","family":"Bogdanchikov","sequence":"additional","affiliation":[]},{"given":"C.","family":"Bohm","sequence":"additional","affiliation":[]},{"given":"V.","family":"Boisvert","sequence":"additional","affiliation":[]},{"given":"P.","family":"Bokan","sequence":"additional","affiliation":[]},{"given":"T.","family":"Bold","sequence":"additional","affiliation":[]},{"given":"A. E.","family":"Bolz","sequence":"additional","affiliation":[]},{"given":"M.","family":"Bomben","sequence":"additional","affiliation":[]},{"given":"M.","family":"Bona","sequence":"additional","affiliation":[]},{"given":"J. S.","family":"Bonilla","sequence":"additional","affiliation":[]},{"given":"M.","family":"Boonekamp","sequence":"additional","affiliation":[]},{"given":"C. D.","family":"Booth","sequence":"additional","affiliation":[]},{"given":"H. M.","family":"Borecka-Bielska","sequence":"additional","affiliation":[]},{"given":"L. S.","family":"Borgna","sequence":"additional","affiliation":[]},{"given":"A.","family":"Borisov","sequence":"additional","affiliation":[]},{"given":"G.","family":"Borissov","sequence":"additional","affiliation":[]},{"given":"J.","family":"Bortfeldt","sequence":"additional","affiliation":[]},{"given":"D.","family":"Bortoletto","sequence":"additional","affiliation":[]},{"given":"D.","family":"Boscherini","sequence":"additional","affiliation":[]},{"given":"M.","family":"Bosman","sequence":"additional","affiliation":[]},{"given":"J. D. Bossio","family":"Sola","sequence":"additional","affiliation":[]},{"given":"K.","family":"Bouaouda","sequence":"additional","affiliation":[]},{"given":"J.","family":"Boudreau","sequence":"additional","affiliation":[]},{"given":"E. V.","family":"Bouhova-Thacker","sequence":"additional","affiliation":[]},{"given":"D.","family":"Boumediene","sequence":"additional","affiliation":[]},{"given":"S. K.","family":"Boutle","sequence":"additional","affiliation":[]},{"given":"A.","family":"Boveia","sequence":"additional","affiliation":[]},{"given":"J.","family":"Boyd","sequence":"additional","affiliation":[]},{"given":"D.","family":"Boye","sequence":"additional","affiliation":[]},{"given":"I. R.","family":"Boyko","sequence":"additional","affiliation":[]},{"given":"A. J.","family":"Bozson","sequence":"additional","affiliation":[]},{"given":"J.","family":"Bracinik","sequence":"additional","affiliation":[]},{"given":"N.","family":"Brahimi","sequence":"additional","affiliation":[]},{"given":"G.","family":"Brandt","sequence":"additional","affiliation":[]},{"given":"O.","family":"Brandt","sequence":"additional","affiliation":[]},{"given":"F.","family":"Braren","sequence":"additional","affiliation":[]},{"given":"B.","family":"Brau","sequence":"additional","affiliation":[]},{"given":"J. E.","family":"Brau","sequence":"additional","affiliation":[]},{"given":"W. D. Breaden","family":"Madden","sequence":"additional","affiliation":[]},{"given":"K.","family":"Brendlinger","sequence":"additional","affiliation":[]},{"given":"L.","family":"Brenner","sequence":"additional","affiliation":[]},{"given":"R.","family":"Brenner","sequence":"additional","affiliation":[]},{"given":"S.","family":"Bressler","sequence":"additional","affiliation":[]},{"given":"B.","family":"Brickwedde","sequence":"additional","affiliation":[]},{"given":"D. L.","family":"Briglin","sequence":"additional","affiliation":[]},{"given":"D.","family":"Britton","sequence":"additional","affiliation":[]},{"given":"D.","family":"Britzger","sequence":"additional","affiliation":[]},{"given":"I.","family":"Brock","sequence":"additional","affiliation":[]},{"given":"R.","family":"Brock","sequence":"additional","affiliation":[]},{"given":"G.","family":"Brooijmans","sequence":"additional","affiliation":[]},{"given":"W. K.","family":"Brooks","sequence":"additional","affiliation":[]},{"given":"E.","family":"Brost","sequence":"additional","affiliation":[]},{"given":"J. H.","family":"Broughton","sequence":"additional","affiliation":[]},{"given":"P. A.","family":"Bruckman de Renstrom","sequence":"additional","affiliation":[]},{"given":"D.","family":"Bruncko","sequence":"additional","affiliation":[]},{"given":"A.","family":"Bruni","sequence":"additional","affiliation":[]},{"given":"G.","family":"Bruni","sequence":"additional","affiliation":[]},{"given":"L. S.","family":"Bruni","sequence":"additional","affiliation":[]},{"given":"S.","family":"Bruno","sequence":"additional","affiliation":[]},{"given":"M.","family":"Bruschi","sequence":"additional","affiliation":[]},{"given":"N.","family":"Bruscino","sequence":"additional","affiliation":[]},{"given":"P.","family":"Bryant","sequence":"additional","affiliation":[]},{"given":"L.","family":"Bryngemark","sequence":"additional","affiliation":[]},{"given":"T.","family":"Buanes","sequence":"additional","affiliation":[]},{"given":"Q.","family":"Buat","sequence":"additional","affiliation":[]},{"given":"P.","family":"Buchholz","sequence":"additional","affiliation":[]},{"given":"A. G.","family":"Buckley","sequence":"additional","affiliation":[]},{"given":"I. A.","family":"Budagov","sequence":"additional","affiliation":[]},{"given":"M. K.","family":"Bugge","sequence":"additional","affiliation":[]},{"given":"F.","family":"B\u00fchrer","sequence":"additional","affiliation":[]},{"given":"O.","family":"Bulekov","sequence":"additional","affiliation":[]},{"given":"T. J.","family":"Burch","sequence":"additional","affiliation":[]},{"given":"S.","family":"Burdin","sequence":"additional","affiliation":[]},{"given":"C. D.","family":"Burgard","sequence":"additional","affiliation":[]},{"given":"A. M.","family":"Burger","sequence":"additional","affiliation":[]},{"given":"B.","family":"Burghgrave","sequence":"additional","affiliation":[]},{"given":"J. T. P.","family":"Burr","sequence":"additional","affiliation":[]},{"given":"C. D.","family":"Burton","sequence":"additional","affiliation":[]},{"given":"J. C.","family":"Burzynski","sequence":"additional","affiliation":[]},{"given":"V.","family":"B\u00fcscher","sequence":"additional","affiliation":[]},{"given":"E.","family":"Buschmann","sequence":"additional","affiliation":[]},{"given":"P. J.","family":"Bussey","sequence":"additional","affiliation":[]},{"given":"J. M.","family":"Butler","sequence":"additional","affiliation":[]},{"given":"C. M.","family":"Buttar","sequence":"additional","affiliation":[]},{"given":"J. M.","family":"Butterworth","sequence":"additional","affiliation":[]},{"given":"P.","family":"Butti","sequence":"additional","affiliation":[]},{"given":"W.","family":"Buttinger","sequence":"additional","affiliation":[]},{"given":"C. J.","family":"Buxo Vazquez","sequence":"additional","affiliation":[]},{"given":"A.","family":"Buzatu","sequence":"additional","affiliation":[]},{"given":"A. R.","family":"Buzykaev","sequence":"additional","affiliation":[]},{"given":"G.","family":"Cabras","sequence":"additional","affiliation":[]},{"given":"S.","family":"Cabrera Urb\u00e1n","sequence":"additional","affiliation":[]},{"given":"D.","family":"Caforio","sequence":"additional","affiliation":[]},{"given":"H.","family":"Cai","sequence":"additional","affiliation":[]},{"given":"V. M. M.","family":"Cairo","sequence":"additional","affiliation":[]},{"given":"O.","family":"Cakir","sequence":"additional","affiliation":[]},{"given":"N.","family":"Calace","sequence":"additional","affiliation":[]},{"given":"P.","family":"Calafiura","sequence":"additional","affiliation":[]},{"given":"A.","family":"Calandri","sequence":"additional","affiliation":[]},{"given":"G.","family":"Calderini","sequence":"additional","affiliation":[]},{"given":"P.","family":"Calfayan","sequence":"additional","affiliation":[]},{"given":"G.","family":"Callea","sequence":"additional","affiliation":[]},{"given":"L. P.","family":"Caloba","sequence":"additional","affiliation":[]},{"given":"A.","family":"Caltabiano","sequence":"additional","affiliation":[]},{"given":"S.","family":"Calvente Lopez","sequence":"additional","affiliation":[]},{"given":"D.","family":"Calvet","sequence":"additional","affiliation":[]},{"given":"S.","family":"Calvet","sequence":"additional","affiliation":[]},{"given":"T. P.","family":"Calvet","sequence":"additional","affiliation":[]},{"given":"M.","family":"Calvetti","sequence":"additional","affiliation":[]},{"given":"R.","family":"Camacho Toro","sequence":"additional","affiliation":[]},{"given":"S.","family":"Camarda","sequence":"additional","affiliation":[]},{"given":"D.","family":"Camarero Munoz","sequence":"additional","affiliation":[]},{"given":"P.","family":"Camarri","sequence":"additional","affiliation":[]},{"given":"D.","family":"Cameron","sequence":"additional","affiliation":[]},{"given":"C.","family":"Camincher","sequence":"additional","affiliation":[]},{"given":"S.","family":"Campana","sequence":"additional","affiliation":[]},{"given":"M.","family":"Campanelli","sequence":"additional","affiliation":[]},{"given":"A.","family":"Camplani","sequence":"additional","affiliation":[]},{"given":"A.","family":"Campoverde","sequence":"additional","affiliation":[]},{"given":"V.","family":"Canale","sequence":"additional","affiliation":[]},{"given":"A.","family":"Canesse","sequence":"additional","affiliation":[]},{"given":"M. Cano","family":"Bret","sequence":"additional","affiliation":[]},{"given":"J.","family":"Cantero","sequence":"additional","affiliation":[]},{"given":"T.","family":"Cao","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Cao","sequence":"additional","affiliation":[]},{"given":"M. D. M.","family":"Capeans Garrido","sequence":"additional","affiliation":[]},{"given":"M.","family":"Capua","sequence":"additional","affiliation":[]},{"given":"R.","family":"Cardarelli","sequence":"additional","affiliation":[]},{"given":"F.","family":"Cardillo","sequence":"additional","affiliation":[]},{"given":"G.","family":"Carducci","sequence":"additional","affiliation":[]},{"given":"I.","family":"Carli","sequence":"additional","affiliation":[]},{"given":"T.","family":"Carli","sequence":"additional","affiliation":[]},{"given":"G.","family":"Carlino","sequence":"additional","affiliation":[]},{"given":"B. T.","family":"Carlson","sequence":"additional","affiliation":[]},{"given":"E. M.","family":"Carlson","sequence":"additional","affiliation":[]},{"given":"L.","family":"Carminati","sequence":"additional","affiliation":[]},{"given":"R. M. D.","family":"Carney","sequence":"additional","affiliation":[]},{"given":"S.","family":"Caron","sequence":"additional","affiliation":[]},{"given":"E.","family":"Carquin","sequence":"additional","affiliation":[]},{"given":"S.","family":"Carr\u00e1","sequence":"additional","affiliation":[]},{"given":"J. W. S.","family":"Carter","sequence":"additional","affiliation":[]},{"given":"M. P.","family":"Casado","sequence":"additional","affiliation":[]},{"given":"A. F.","family":"Casha","sequence":"additional","affiliation":[]},{"given":"R.","family":"Castelijn","sequence":"additional","affiliation":[]},{"given":"F. L.","family":"Castillo","sequence":"additional","affiliation":[]},{"given":"L.","family":"Castillo Garcia","sequence":"additional","affiliation":[]},{"given":"V.","family":"Castillo Gimenez","sequence":"additional","affiliation":[]},{"given":"N. F.","family":"Castro","sequence":"additional","affiliation":[]},{"given":"A.","family":"Catinaccio","sequence":"additional","affiliation":[]},{"given":"J. R.","family":"Catmore","sequence":"additional","affiliation":[]},{"given":"A.","family":"Cattai","sequence":"additional","affiliation":[]},{"given":"V.","family":"Cavaliere","sequence":"additional","affiliation":[]},{"given":"E.","family":"Cavallaro","sequence":"additional","affiliation":[]},{"given":"M.","family":"Cavalli-Sforza","sequence":"additional","affiliation":[]},{"given":"V.","family":"Cavasinni","sequence":"additional","affiliation":[]},{"given":"E.","family":"Celebi","sequence":"additional","affiliation":[]},{"given":"L.","family":"Cerda Alberich","sequence":"additional","affiliation":[]},{"given":"K.","family":"Cerny","sequence":"additional","affiliation":[]},{"given":"A. S.","family":"Cerqueira","sequence":"additional","affiliation":[]},{"given":"A.","family":"Cerri","sequence":"additional","affiliation":[]},{"given":"L.","family":"Cerrito","sequence":"additional","affiliation":[]},{"given":"F.","family":"Cerutti","sequence":"additional","affiliation":[]},{"given":"A.","family":"Cervelli","sequence":"additional","affiliation":[]},{"given":"S. A.","family":"Cetin","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Chadi","sequence":"additional","affiliation":[]},{"given":"D.","family":"Chakraborty","sequence":"additional","affiliation":[]},{"given":"J.","family":"Chan","sequence":"additional","affiliation":[]},{"given":"W. S.","family":"Chan","sequence":"additional","affiliation":[]},{"given":"W. Y.","family":"Chan","sequence":"additional","affiliation":[]},{"given":"J. D.","family":"Chapman","sequence":"additional","affiliation":[]},{"given":"B.","family":"Chargeishvili","sequence":"additional","affiliation":[]},{"given":"D. G.","family":"Charlton","sequence":"additional","affiliation":[]},{"given":"T. P.","family":"Charman","sequence":"additional","affiliation":[]},{"given":"C. C.","family":"Chau","sequence":"additional","affiliation":[]},{"given":"S.","family":"Che","sequence":"additional","affiliation":[]},{"given":"S.","family":"Chekanov","sequence":"additional","affiliation":[]},{"given":"S. V.","family":"Chekulaev","sequence":"additional","affiliation":[]},{"given":"G. A.","family":"Chelkov","sequence":"additional","affiliation":[]},{"given":"B.","family":"Chen","sequence":"additional","affiliation":[]},{"given":"C.","family":"Chen","sequence":"additional","affiliation":[]},{"given":"C. H.","family":"Chen","sequence":"additional","affiliation":[]},{"given":"H.","family":"Chen","sequence":"additional","affiliation":[]},{"given":"J.","family":"Chen","sequence":"additional","affiliation":[]},{"given":"J.","family":"Chen","sequence":"additional","affiliation":[]},{"given":"J.","family":"Chen","sequence":"additional","affiliation":[]},{"given":"S.","family":"Chen","sequence":"additional","affiliation":[]},{"given":"S. J.","family":"Chen","sequence":"additional","affiliation":[]},{"given":"X.","family":"Chen","sequence":"additional","affiliation":[]},{"given":"Y-H.","family":"Chen","sequence":"additional","affiliation":[]},{"given":"H. C.","family":"Cheng","sequence":"additional","affiliation":[]},{"given":"H. J.","family":"Cheng","sequence":"additional","affiliation":[]},{"given":"A.","family":"Cheplakov","sequence":"additional","affiliation":[]},{"given":"E.","family":"Cheremushkina","sequence":"additional","affiliation":[]},{"given":"R.","family":"Cherkaoui El Moursli","sequence":"additional","affiliation":[]},{"given":"E.","family":"Cheu","sequence":"additional","affiliation":[]},{"given":"K.","family":"Cheung","sequence":"additional","affiliation":[]},{"given":"T. J. A.","family":"Cheval\u00e9rias","sequence":"additional","affiliation":[]},{"given":"L.","family":"Chevalier","sequence":"additional","affiliation":[]},{"given":"V.","family":"Chiarella","sequence":"additional","affiliation":[]},{"given":"G.","family":"Chiarelli","sequence":"additional","affiliation":[]},{"given":"G.","family":"Chiodini","sequence":"additional","affiliation":[]},{"given":"A. S.","family":"Chisholm","sequence":"additional","affiliation":[]},{"given":"A.","family":"Chitan","sequence":"additional","affiliation":[]},{"given":"I.","family":"Chiu","sequence":"additional","affiliation":[]},{"given":"Y. H.","family":"Chiu","sequence":"additional","affiliation":[]},{"given":"M. V.","family":"Chizhov","sequence":"additional","affiliation":[]},{"given":"K.","family":"Choi","sequence":"additional","affiliation":[]},{"given":"A. R.","family":"Chomont","sequence":"additional","affiliation":[]},{"given":"S.","family":"Chouridou","sequence":"additional","affiliation":[]},{"given":"E. Y. S.","family":"Chow","sequence":"additional","affiliation":[]},{"given":"M. C.","family":"Chu","sequence":"additional","affiliation":[]},{"given":"X.","family":"Chu","sequence":"additional","affiliation":[]},{"given":"J.","family":"Chudoba","sequence":"additional","affiliation":[]},{"given":"J. J.","family":"Chwastowski","sequence":"additional","affiliation":[]},{"given":"L.","family":"Chytka","sequence":"additional","affiliation":[]},{"given":"D.","family":"Cieri","sequence":"additional","affiliation":[]},{"given":"K. M.","family":"Ciesla","sequence":"additional","affiliation":[]},{"given":"D.","family":"Cinca","sequence":"additional","affiliation":[]},{"given":"V.","family":"Cindro","sequence":"additional","affiliation":[]},{"given":"I. A.","family":"Cioar\u0103","sequence":"additional","affiliation":[]},{"given":"A.","family":"Ciocio","sequence":"additional","affiliation":[]},{"given":"F.","family":"Cirotto","sequence":"additional","affiliation":[]},{"given":"Z. H.","family":"Citron","sequence":"additional","affiliation":[]},{"given":"M.","family":"Citterio","sequence":"additional","affiliation":[]},{"given":"D. A.","family":"Ciubotaru","sequence":"additional","affiliation":[]},{"given":"B. M.","family":"Ciungu","sequence":"additional","affiliation":[]},{"given":"A.","family":"Clark","sequence":"additional","affiliation":[]},{"given":"M. R.","family":"Clark","sequence":"additional","affiliation":[]},{"given":"P. J.","family":"Clark","sequence":"additional","affiliation":[]},{"given":"C.","family":"Clement","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Coadou","sequence":"additional","affiliation":[]},{"given":"M.","family":"Cobal","sequence":"additional","affiliation":[]},{"given":"A.","family":"Coccaro","sequence":"additional","affiliation":[]},{"given":"J.","family":"Cochran","sequence":"additional","affiliation":[]},{"given":"R.","family":"Coelho Lopes De Sa","sequence":"additional","affiliation":[]},{"given":"H.","family":"Cohen","sequence":"additional","affiliation":[]},{"given":"A. E. C.","family":"Coimbra","sequence":"additional","affiliation":[]},{"given":"B.","family":"Cole","sequence":"additional","affiliation":[]},{"given":"A. P.","family":"Colijn","sequence":"additional","affiliation":[]},{"given":"J.","family":"Collot","sequence":"additional","affiliation":[]},{"given":"P. Conde","family":"Mui\u00f1o","sequence":"additional","affiliation":[]},{"given":"S. H.","family":"Connell","sequence":"additional","affiliation":[]},{"given":"I. A.","family":"Connelly","sequence":"additional","affiliation":[]},{"given":"S.","family":"Constantinescu","sequence":"additional","affiliation":[]},{"given":"F.","family":"Conventi","sequence":"additional","affiliation":[]},{"given":"A. M.","family":"Cooper-Sarkar","sequence":"additional","affiliation":[]},{"given":"F.","family":"Cormier","sequence":"additional","affiliation":[]},{"given":"K. J. R.","family":"Cormier","sequence":"additional","affiliation":[]},{"given":"L. D.","family":"Corpe","sequence":"additional","affiliation":[]},{"given":"M.","family":"Corradi","sequence":"additional","affiliation":[]},{"given":"E. E.","family":"Corrigan","sequence":"additional","affiliation":[]},{"given":"F.","family":"Corriveau","sequence":"additional","affiliation":[]},{"given":"M. J.","family":"Costa","sequence":"additional","affiliation":[]},{"given":"F.","family":"Costanza","sequence":"additional","affiliation":[]},{"given":"D.","family":"Costanzo","sequence":"additional","affiliation":[]},{"given":"G.","family":"Cowan","sequence":"additional","affiliation":[]},{"given":"J. W.","family":"Cowley","sequence":"additional","affiliation":[]},{"given":"J.","family":"Crane","sequence":"additional","affiliation":[]},{"given":"K.","family":"Cranmer","sequence":"additional","affiliation":[]},{"given":"S. J.","family":"Crawley","sequence":"additional","affiliation":[]},{"given":"R. A.","family":"Creager","sequence":"additional","affiliation":[]},{"given":"S.","family":"Cr\u00e9p\u00e9-Renaudin","sequence":"additional","affiliation":[]},{"given":"F.","family":"Crescioli","sequence":"additional","affiliation":[]},{"given":"M.","family":"Cristinziani","sequence":"additional","affiliation":[]},{"given":"V.","family":"Croft","sequence":"additional","affiliation":[]},{"given":"G.","family":"Crosetti","sequence":"additional","affiliation":[]},{"given":"A.","family":"Cueto","sequence":"additional","affiliation":[]},{"given":"T.","family":"Cuhadar Donszelmann","sequence":"additional","affiliation":[]},{"given":"A. R.","family":"Cukierman","sequence":"additional","affiliation":[]},{"given":"W. R.","family":"Cunningham","sequence":"additional","affiliation":[]},{"given":"S.","family":"Czekierda","sequence":"additional","affiliation":[]},{"given":"P.","family":"Czodrowski","sequence":"additional","affiliation":[]},{"given":"M. J.","family":"Da Cunha Sargedas De Sousa","sequence":"additional","affiliation":[]},{"given":"J. V.","family":"Da Fonseca Pinto","sequence":"additional","affiliation":[]},{"given":"C.","family":"Da Via","sequence":"additional","affiliation":[]},{"given":"W.","family":"Dabrowski","sequence":"additional","affiliation":[]},{"given":"F.","family":"Dachs","sequence":"additional","affiliation":[]},{"given":"T.","family":"Dado","sequence":"additional","affiliation":[]},{"given":"S.","family":"Dahbi","sequence":"additional","affiliation":[]},{"given":"T.","family":"Dai","sequence":"additional","affiliation":[]},{"given":"C.","family":"Dallapiccola","sequence":"additional","affiliation":[]},{"given":"M.","family":"Dam","sequence":"additional","affiliation":[]},{"given":"G.","family":"D\u2019amen","sequence":"additional","affiliation":[]},{"given":"V.","family":"D\u2019Amico","sequence":"additional","affiliation":[]},{"given":"J.","family":"Damp","sequence":"additional","affiliation":[]},{"given":"J. R.","family":"Dandoy","sequence":"additional","affiliation":[]},{"given":"M. F.","family":"Daneri","sequence":"additional","affiliation":[]},{"given":"N. S.","family":"Dann","sequence":"additional","affiliation":[]},{"given":"M.","family":"Danninger","sequence":"additional","affiliation":[]},{"given":"V.","family":"Dao","sequence":"additional","affiliation":[]},{"given":"G.","family":"Darbo","sequence":"additional","affiliation":[]},{"given":"O.","family":"Dartsi","sequence":"additional","affiliation":[]},{"given":"A.","family":"Dattagupta","sequence":"additional","affiliation":[]},{"given":"T.","family":"Daubney","sequence":"additional","affiliation":[]},{"given":"S.","family":"D\u2019Auria","sequence":"additional","affiliation":[]},{"given":"C.","family":"David","sequence":"additional","affiliation":[]},{"given":"T.","family":"Davidek","sequence":"additional","affiliation":[]},{"given":"D. R.","family":"Davis","sequence":"additional","affiliation":[]},{"given":"I.","family":"Dawson","sequence":"additional","affiliation":[]},{"given":"K.","family":"De","sequence":"additional","affiliation":[]},{"given":"R.","family":"De Asmundis","sequence":"additional","affiliation":[]},{"given":"M.","family":"De Beurs","sequence":"additional","affiliation":[]},{"given":"S.","family":"De Castro","sequence":"additional","affiliation":[]},{"given":"S.","family":"De Cecco","sequence":"additional","affiliation":[]},{"given":"N.","family":"De Groot","sequence":"additional","affiliation":[]},{"given":"P.","family":"de Jong","sequence":"additional","affiliation":[]},{"given":"H.","family":"De la Torre","sequence":"additional","affiliation":[]},{"given":"A.","family":"De Maria","sequence":"additional","affiliation":[]},{"given":"D.","family":"De Pedis","sequence":"additional","affiliation":[]},{"given":"A.","family":"De Salvo","sequence":"additional","affiliation":[]},{"given":"U.","family":"De Sanctis","sequence":"additional","affiliation":[]},{"given":"M.","family":"De Santis","sequence":"additional","affiliation":[]},{"given":"A.","family":"De Santo","sequence":"additional","affiliation":[]},{"given":"K.","family":"De Vasconcelos Corga","sequence":"additional","affiliation":[]},{"given":"J. B.","family":"De Vivie De Regie","sequence":"additional","affiliation":[]},{"given":"C.","family":"Debenedetti","sequence":"additional","affiliation":[]},{"given":"D. V.","family":"Dedovich","sequence":"additional","affiliation":[]},{"given":"A. M.","family":"Deiana","sequence":"additional","affiliation":[]},{"given":"J.","family":"Del Peso","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Delabat Diaz","sequence":"additional","affiliation":[]},{"given":"D.","family":"Delgove","sequence":"additional","affiliation":[]},{"given":"F.","family":"Deliot","sequence":"additional","affiliation":[]},{"given":"C. M.","family":"Delitzsch","sequence":"additional","affiliation":[]},{"given":"M.","family":"Della Pietra","sequence":"additional","affiliation":[]},{"given":"D.","family":"Della Volpe","sequence":"additional","affiliation":[]},{"given":"A.","family":"Dell\u2019Acqua","sequence":"additional","affiliation":[]},{"given":"L.","family":"Dell\u2019Asta","sequence":"additional","affiliation":[]},{"given":"M.","family":"Delmastro","sequence":"additional","affiliation":[]},{"given":"C.","family":"Delporte","sequence":"additional","affiliation":[]},{"given":"P. A.","family":"Delsart","sequence":"additional","affiliation":[]},{"given":"D. A.","family":"DeMarco","sequence":"additional","affiliation":[]},{"given":"S.","family":"Demers","sequence":"additional","affiliation":[]},{"given":"M.","family":"Demichev","sequence":"additional","affiliation":[]},{"given":"G.","family":"Demontigny","sequence":"additional","affiliation":[]},{"given":"S. P.","family":"Denisov","sequence":"additional","affiliation":[]},{"given":"L.","family":"D\u2019Eramo","sequence":"additional","affiliation":[]},{"given":"D.","family":"Derendarz","sequence":"additional","affiliation":[]},{"given":"J. E.","family":"Derkaoui","sequence":"additional","affiliation":[]},{"given":"F.","family":"Derue","sequence":"additional","affiliation":[]},{"given":"P.","family":"Dervan","sequence":"additional","affiliation":[]},{"given":"K.","family":"Desch","sequence":"additional","affiliation":[]},{"given":"C.","family":"Deterre","sequence":"additional","affiliation":[]},{"given":"K.","family":"Dette","sequence":"additional","affiliation":[]},{"given":"C.","family":"Deutsch","sequence":"additional","affiliation":[]},{"given":"M. R.","family":"Devesa","sequence":"additional","affiliation":[]},{"given":"P. O.","family":"Deviveiros","sequence":"additional","affiliation":[]},{"given":"F. A.","family":"Di Bello","sequence":"additional","affiliation":[]},{"given":"A.","family":"Di Ciaccio","sequence":"additional","affiliation":[]},{"given":"L.","family":"Di Ciaccio","sequence":"additional","affiliation":[]},{"given":"W. K.","family":"Di Clemente","sequence":"additional","affiliation":[]},{"given":"C.","family":"Di Donato","sequence":"additional","affiliation":[]},{"given":"A.","family":"Di Girolamo","sequence":"additional","affiliation":[]},{"given":"G.","family":"Di Gregorio","sequence":"additional","affiliation":[]},{"given":"B.","family":"Di Micco","sequence":"additional","affiliation":[]},{"given":"R.","family":"Di Nardo","sequence":"additional","affiliation":[]},{"given":"K. F.","family":"Di Petrillo","sequence":"additional","affiliation":[]},{"given":"R.","family":"Di Sipio","sequence":"additional","affiliation":[]},{"given":"C.","family":"Diaconu","sequence":"additional","affiliation":[]},{"given":"F. A.","family":"Dias","sequence":"additional","affiliation":[]},{"given":"T. Dias","family":"Do Vale","sequence":"additional","affiliation":[]},{"given":"M. A.","family":"Diaz","sequence":"additional","affiliation":[]},{"given":"J.","family":"Dickinson","sequence":"additional","affiliation":[]},{"given":"E. B.","family":"Diehl","sequence":"additional","affiliation":[]},{"given":"J.","family":"Dietrich","sequence":"additional","affiliation":[]},{"given":"S.","family":"D\u00edez Cornell","sequence":"additional","affiliation":[]},{"given":"A.","family":"Dimitrievska","sequence":"additional","affiliation":[]},{"given":"W.","family":"Ding","sequence":"additional","affiliation":[]},{"given":"J.","family":"Dingfelder","sequence":"additional","affiliation":[]},{"given":"F.","family":"Dittus","sequence":"additional","affiliation":[]},{"given":"F.","family":"Djama","sequence":"additional","affiliation":[]},{"given":"T.","family":"Djobava","sequence":"additional","affiliation":[]},{"given":"J. I.","family":"Djuvsland","sequence":"additional","affiliation":[]},{"given":"M. A. B.","family":"Do Vale","sequence":"additional","affiliation":[]},{"given":"M.","family":"Dobre","sequence":"additional","affiliation":[]},{"given":"D.","family":"Dodsworth","sequence":"additional","affiliation":[]},{"given":"C.","family":"Doglioni","sequence":"additional","affiliation":[]},{"given":"J.","family":"Dolejsi","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Dolezal","sequence":"additional","affiliation":[]},{"given":"M.","family":"Donadelli","sequence":"additional","affiliation":[]},{"given":"B.","family":"Dong","sequence":"additional","affiliation":[]},{"given":"J.","family":"Donini","sequence":"additional","affiliation":[]},{"given":"A.","family":"D\u2019onofrio","sequence":"additional","affiliation":[]},{"given":"M.","family":"D\u2019Onofrio","sequence":"additional","affiliation":[]},{"given":"J.","family":"Dopke","sequence":"additional","affiliation":[]},{"given":"A.","family":"Doria","sequence":"additional","affiliation":[]},{"given":"M. T.","family":"Dova","sequence":"additional","affiliation":[]},{"given":"A. T.","family":"Doyle","sequence":"additional","affiliation":[]},{"given":"E.","family":"Drechsler","sequence":"additional","affiliation":[]},{"given":"E.","family":"Dreyer","sequence":"additional","affiliation":[]},{"given":"T.","family":"Dreyer","sequence":"additional","affiliation":[]},{"given":"A. S.","family":"Drobac","sequence":"additional","affiliation":[]},{"given":"D.","family":"Du","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Duan","sequence":"additional","affiliation":[]},{"given":"F.","family":"Dubinin","sequence":"additional","affiliation":[]},{"given":"M.","family":"Dubovsky","sequence":"additional","affiliation":[]},{"given":"A.","family":"Dubreuil","sequence":"additional","affiliation":[]},{"given":"E.","family":"Duchovni","sequence":"additional","affiliation":[]},{"given":"G.","family":"Duckeck","sequence":"additional","affiliation":[]},{"given":"A.","family":"Ducourthial","sequence":"additional","affiliation":[]},{"given":"O. A.","family":"Ducu","sequence":"additional","affiliation":[]},{"given":"D.","family":"Duda","sequence":"additional","affiliation":[]},{"given":"A.","family":"Dudarev","sequence":"additional","affiliation":[]},{"given":"A. C.","family":"Dudder","sequence":"additional","affiliation":[]},{"given":"E. M.","family":"Duffield","sequence":"additional","affiliation":[]},{"given":"L.","family":"Duflot","sequence":"additional","affiliation":[]},{"given":"M.","family":"D\u00fchrssen","sequence":"additional","affiliation":[]},{"given":"C.","family":"D\u00fclsen","sequence":"additional","affiliation":[]},{"given":"lsen M.","family":"Dumancic","sequence":"additional","affiliation":[]},{"given":"A. E.","family":"Dumitriu","sequence":"additional","affiliation":[]},{"given":"A. K.","family":"Duncan","sequence":"additional","affiliation":[]},{"given":"M.","family":"Dunford","sequence":"additional","affiliation":[]},{"given":"A.","family":"Duperrin","sequence":"additional","affiliation":[]},{"given":"H. Duran","family":"Yildiz","sequence":"additional","affiliation":[]},{"given":"M.","family":"D\u00fcren","sequence":"additional","affiliation":[]},{"given":"A.","family":"Durglishvili","sequence":"additional","affiliation":[]},{"given":"D.","family":"Duschinger","sequence":"additional","affiliation":[]},{"given":"B.","family":"Dutta","sequence":"additional","affiliation":[]},{"given":"D.","family":"Duvnjak","sequence":"additional","affiliation":[]},{"given":"B. L.","family":"Dwyer","sequence":"additional","affiliation":[]},{"given":"G. I.","family":"Dyckes","sequence":"additional","affiliation":[]},{"given":"M.","family":"Dyndal","sequence":"additional","affiliation":[]},{"given":"S.","family":"Dysch","sequence":"additional","affiliation":[]},{"given":"B. S.","family":"Dziedzic","sequence":"additional","affiliation":[]},{"given":"K. M.","family":"Ecker","sequence":"additional","affiliation":[]},{"given":"M. G.","family":"Eggleston","sequence":"additional","affiliation":[]},{"given":"T.","family":"Eifert","sequence":"additional","affiliation":[]},{"given":"G.","family":"Eigen","sequence":"additional","affiliation":[]},{"given":"K.","family":"Einsweiler","sequence":"additional","affiliation":[]},{"given":"T.","family":"Ekelof","sequence":"additional","affiliation":[]},{"given":"H.","family":"El Jarrari","sequence":"additional","affiliation":[]},{"given":"R.","family":"El Kosseifi","sequence":"additional","affiliation":[]},{"given":"V.","family":"Ellajosyula","sequence":"additional","affiliation":[]},{"given":"M.","family":"Ellert","sequence":"additional","affiliation":[]},{"given":"F.","family":"Ellinghaus","sequence":"additional","affiliation":[]},{"given":"A. A.","family":"Elliot","sequence":"additional","affiliation":[]},{"given":"N.","family":"Ellis","sequence":"additional","affiliation":[]},{"given":"J.","family":"Elmsheuser","sequence":"additional","affiliation":[]},{"given":"M.","family":"Elsing","sequence":"additional","affiliation":[]},{"given":"D.","family":"Emeliyanov","sequence":"additional","affiliation":[]},{"given":"A.","family":"Emerman","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Enari","sequence":"additional","affiliation":[]},{"given":"M. B.","family":"Epland","sequence":"additional","affiliation":[]},{"given":"J.","family":"Erdmann","sequence":"additional","affiliation":[]},{"given":"A.","family":"Ereditato","sequence":"additional","affiliation":[]},{"given":"P. A.","family":"Erland","sequence":"additional","affiliation":[]},{"given":"M.","family":"Errenst","sequence":"additional","affiliation":[]},{"given":"M.","family":"Escalier","sequence":"additional","affiliation":[]},{"given":"C.","family":"Escobar","sequence":"additional","affiliation":[]},{"given":"O.","family":"Estrada Pastor","sequence":"additional","affiliation":[]},{"given":"E.","family":"Etzion","sequence":"additional","affiliation":[]},{"given":"H.","family":"Evans","sequence":"additional","affiliation":[]},{"given":"M. O.","family":"Evans","sequence":"additional","affiliation":[]},{"given":"A.","family":"Ezhilov","sequence":"additional","affiliation":[]},{"given":"F.","family":"Fabbri","sequence":"additional","affiliation":[]},{"given":"L.","family":"Fabbri","sequence":"additional","affiliation":[]},{"given":"V.","family":"Fabiani","sequence":"additional","affiliation":[]},{"given":"G.","family":"Facini","sequence":"additional","affiliation":[]},{"given":"R. M.","family":"Faisca Rodrigues Pereira","sequence":"additional","affiliation":[]},{"given":"R. M.","family":"Fakhrutdinov","sequence":"additional","affiliation":[]},{"given":"S.","family":"Falciano","sequence":"additional","affiliation":[]},{"given":"P. J.","family":"Falke","sequence":"additional","affiliation":[]},{"given":"S.","family":"Falke","sequence":"additional","affiliation":[]},{"given":"J.","family":"Faltova","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Fang","sequence":"additional","affiliation":[]},{"given":"G.","family":"Fanourakis","sequence":"additional","affiliation":[]},{"given":"M.","family":"Fanti","sequence":"additional","affiliation":[]},{"given":"M.","family":"Faraj","sequence":"additional","affiliation":[]},{"given":"A.","family":"Farbin","sequence":"additional","affiliation":[]},{"given":"A.","family":"Farilla","sequence":"additional","affiliation":[]},{"given":"E. M.","family":"Farina","sequence":"additional","affiliation":[]},{"given":"T.","family":"Farooque","sequence":"additional","affiliation":[]},{"given":"S. M.","family":"Farrington","sequence":"additional","affiliation":[]},{"given":"P.","family":"Farthouat","sequence":"additional","affiliation":[]},{"given":"F.","family":"Fassi","sequence":"additional","affiliation":[]},{"given":"P.","family":"Fassnacht","sequence":"additional","affiliation":[]},{"given":"D.","family":"Fassouliotis","sequence":"additional","affiliation":[]},{"given":"M.","family":"Faucci Giannelli","sequence":"additional","affiliation":[]},{"given":"W. J.","family":"Fawcett","sequence":"additional","affiliation":[]},{"given":"L.","family":"Fayard","sequence":"additional","affiliation":[]},{"given":"O. L.","family":"Fedin","sequence":"additional","affiliation":[]},{"given":"W.","family":"Fedorko","sequence":"additional","affiliation":[]},{"given":"M.","family":"Feickert","sequence":"additional","affiliation":[]},{"given":"L.","family":"Feligioni","sequence":"additional","affiliation":[]},{"given":"A.","family":"Fell","sequence":"additional","affiliation":[]},{"given":"C.","family":"Feng","sequence":"additional","affiliation":[]},{"given":"M.","family":"Feng","sequence":"additional","affiliation":[]},{"given":"M. J.","family":"Fenton","sequence":"additional","affiliation":[]},{"given":"A. B.","family":"Fenyuk","sequence":"additional","affiliation":[]},{"given":"S. W.","family":"Ferguson","sequence":"additional","affiliation":[]},{"given":"J.","family":"Ferrando","sequence":"additional","affiliation":[]},{"given":"A.","family":"Ferrante","sequence":"additional","affiliation":[]},{"given":"A.","family":"Ferrari","sequence":"additional","affiliation":[]},{"given":"P.","family":"Ferrari","sequence":"additional","affiliation":[]},{"given":"R.","family":"Ferrari","sequence":"additional","affiliation":[]},{"given":"D. E.","family":"Ferreira de Lima","sequence":"additional","affiliation":[]},{"given":"A.","family":"Ferrer","sequence":"additional","affiliation":[]},{"given":"D.","family":"Ferrere","sequence":"additional","affiliation":[]},{"given":"C.","family":"Ferretti","sequence":"additional","affiliation":[]},{"given":"F.","family":"Fiedler","sequence":"additional","affiliation":[]},{"given":"A.","family":"Filip\u010di\u010d","sequence":"additional","affiliation":[]},{"given":"F.","family":"Filthaut","sequence":"additional","affiliation":[]},{"given":"K. D.","family":"Finelli","sequence":"additional","affiliation":[]},{"given":"M. C. N.","family":"Fiolhais","sequence":"additional","affiliation":[]},{"given":"L.","family":"Fiorini","sequence":"additional","affiliation":[]},{"given":"F.","family":"Fischer","sequence":"additional","affiliation":[]},{"given":"W. C.","family":"Fisher","sequence":"additional","affiliation":[]},{"given":"I.","family":"Fleck","sequence":"additional","affiliation":[]},{"given":"P.","family":"Fleischmann","sequence":"additional","affiliation":[]},{"given":"T.","family":"Flick","sequence":"additional","affiliation":[]},{"given":"B. M.","family":"Flierl","sequence":"additional","affiliation":[]},{"given":"L.","family":"Flores","sequence":"additional","affiliation":[]},{"given":"L. R.","family":"Flores Castillo","sequence":"additional","affiliation":[]},{"given":"F. M.","family":"Follega","sequence":"additional","affiliation":[]},{"given":"N.","family":"Fomin","sequence":"additional","affiliation":[]},{"given":"J. H.","family":"Foo","sequence":"additional","affiliation":[]},{"given":"G. T.","family":"Forcolin","sequence":"additional","affiliation":[]},{"given":"A.","family":"Formica","sequence":"additional","affiliation":[]},{"given":"F. A.","family":"F\u00f6rster","sequence":"additional","affiliation":[]},{"given":"A. C.","family":"Forti","sequence":"additional","affiliation":[]},{"given":"A. G.","family":"Foster","sequence":"additional","affiliation":[]},{"given":"M. G.","family":"Foti","sequence":"additional","affiliation":[]},{"given":"D.","family":"Fournier","sequence":"additional","affiliation":[]},{"given":"H.","family":"Fox","sequence":"additional","affiliation":[]},{"given":"P.","family":"Francavilla","sequence":"additional","affiliation":[]},{"given":"S.","family":"Francescato","sequence":"additional","affiliation":[]},{"given":"M.","family":"Franchini","sequence":"additional","affiliation":[]},{"given":"S.","family":"Franchino","sequence":"additional","affiliation":[]},{"given":"D.","family":"Francis","sequence":"additional","affiliation":[]},{"given":"L.","family":"Franconi","sequence":"additional","affiliation":[]},{"given":"M.","family":"Franklin","sequence":"additional","affiliation":[]},{"given":"A. N.","family":"Fray","sequence":"additional","affiliation":[]},{"given":"P. M.","family":"Freeman","sequence":"additional","affiliation":[]},{"given":"B.","family":"Freund","sequence":"additional","affiliation":[]},{"given":"W. S.","family":"Freund","sequence":"additional","affiliation":[]},{"given":"E. M.","family":"Freundlich","sequence":"additional","affiliation":[]},{"given":"D. C.","family":"Frizzell","sequence":"additional","affiliation":[]},{"given":"D.","family":"Froidevaux","sequence":"additional","affiliation":[]},{"given":"J. A.","family":"Frost","sequence":"additional","affiliation":[]},{"given":"C.","family":"Fukunaga","sequence":"additional","affiliation":[]},{"given":"E.","family":"Fullana Torregrosa","sequence":"additional","affiliation":[]},{"given":"T.","family":"Fusayasu","sequence":"additional","affiliation":[]},{"given":"J.","family":"Fuster","sequence":"additional","affiliation":[]},{"given":"A.","family":"Gabrielli","sequence":"additional","affiliation":[]},{"given":"A.","family":"Gabrielli","sequence":"additional","affiliation":[]},{"given":"S.","family":"Gadatsch","sequence":"additional","affiliation":[]},{"given":"P.","family":"Gadow","sequence":"additional","affiliation":[]},{"given":"G.","family":"Gagliardi","sequence":"additional","affiliation":[]},{"given":"L. G.","family":"Gagnon","sequence":"additional","affiliation":[]},{"given":"B.","family":"Galhardo","sequence":"additional","affiliation":[]},{"given":"G. E.","family":"Gallardo","sequence":"additional","affiliation":[]},{"given":"E. J.","family":"Gallas","sequence":"additional","affiliation":[]},{"given":"B. J.","family":"Gallop","sequence":"additional","affiliation":[]},{"given":"G.","family":"Galster","sequence":"additional","affiliation":[]},{"given":"R.","family":"Gamboa Goni","sequence":"additional","affiliation":[]},{"given":"K. K.","family":"Gan","sequence":"additional","affiliation":[]},{"given":"S.","family":"Ganguly","sequence":"additional","affiliation":[]},{"given":"J.","family":"Gao","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Gao","sequence":"additional","affiliation":[]},{"given":"Y. S.","family":"Gao","sequence":"additional","affiliation":[]},{"given":"C.","family":"Garc\u00eda","sequence":"additional","affiliation":[]},{"given":"J. E.","family":"Garc\u00eda Navarro","sequence":"additional","affiliation":[]},{"given":"J. A.","family":"Garc\u00eda Pascual","sequence":"additional","affiliation":[]},{"given":"C.","family":"Garcia-Argos","sequence":"additional","affiliation":[]},{"given":"M.","family":"Garcia-Sciveres","sequence":"additional","affiliation":[]},{"given":"R. W.","family":"Gardner","sequence":"additional","affiliation":[]},{"given":"N.","family":"Garelli","sequence":"additional","affiliation":[]},{"given":"S.","family":"Gargiulo","sequence":"additional","affiliation":[]},{"given":"C. A.","family":"Garner","sequence":"additional","affiliation":[]},{"given":"V.","family":"Garonne","sequence":"additional","affiliation":[]},{"given":"S. J.","family":"Gasiorowski","sequence":"additional","affiliation":[]},{"given":"P.","family":"Gaspar","sequence":"additional","affiliation":[]},{"given":"A.","family":"Gaudiello","sequence":"additional","affiliation":[]},{"given":"G.","family":"Gaudio","sequence":"additional","affiliation":[]},{"given":"I. L.","family":"Gavrilenko","sequence":"additional","affiliation":[]},{"given":"A.","family":"Gavrilyuk","sequence":"additional","affiliation":[]},{"given":"C.","family":"Gay","sequence":"additional","affiliation":[]},{"given":"G.","family":"Gaycken","sequence":"additional","affiliation":[]},{"given":"E. N.","family":"Gazis","sequence":"additional","affiliation":[]},{"given":"A. A.","family":"Geanta","sequence":"additional","affiliation":[]},{"given":"C. M.","family":"Gee","sequence":"additional","affiliation":[]},{"given":"C. N. P.","family":"Gee","sequence":"additional","affiliation":[]},{"given":"J.","family":"Geisen","sequence":"additional","affiliation":[]},{"given":"M.","family":"Geisen","sequence":"additional","affiliation":[]},{"given":"C.","family":"Gemme","sequence":"additional","affiliation":[]},{"given":"M. H.","family":"Genest","sequence":"additional","affiliation":[]},{"given":"C.","family":"Geng","sequence":"additional","affiliation":[]},{"given":"S.","family":"Gentile","sequence":"additional","affiliation":[]},{"given":"S.","family":"George","sequence":"additional","affiliation":[]},{"given":"T.","family":"Geralis","sequence":"additional","affiliation":[]},{"given":"L. O.","family":"Gerlach","sequence":"additional","affiliation":[]},{"given":"P.","family":"Gessinger-Befurt","sequence":"additional","affiliation":[]},{"given":"G.","family":"Gessner","sequence":"additional","affiliation":[]},{"given":"S.","family":"Ghasemi","sequence":"additional","affiliation":[]},{"given":"M.","family":"Ghasemi Bostanabad","sequence":"additional","affiliation":[]},{"given":"M.","family":"Ghneimat","sequence":"additional","affiliation":[]},{"given":"A.","family":"Ghosh","sequence":"additional","affiliation":[]},{"given":"A.","family":"Ghosh","sequence":"additional","affiliation":[]},{"given":"B.","family":"Giacobbe","sequence":"additional","affiliation":[]},{"given":"S.","family":"Giagu","sequence":"additional","affiliation":[]},{"given":"N.","family":"Giangiacomi","sequence":"additional","affiliation":[]},{"given":"P.","family":"Giannetti","sequence":"additional","affiliation":[]},{"given":"A.","family":"Giannini","sequence":"additional","affiliation":[]},{"given":"G.","family":"Giannini","sequence":"additional","affiliation":[]},{"given":"S. M.","family":"Gibson","sequence":"additional","affiliation":[]},{"given":"M.","family":"Gignac","sequence":"additional","affiliation":[]},{"given":"D.","family":"Gillberg","sequence":"additional","affiliation":[]},{"given":"G.","family":"Gilles","sequence":"additional","affiliation":[]},{"given":"D. M.","family":"Gingrich","sequence":"additional","affiliation":[]},{"given":"M. P.","family":"Giordani","sequence":"additional","affiliation":[]},{"given":"P. F.","family":"Giraud","sequence":"additional","affiliation":[]},{"given":"G.","family":"Giugliarelli","sequence":"additional","affiliation":[]},{"given":"D.","family":"Giugni","sequence":"additional","affiliation":[]},{"given":"F.","family":"Giuli","sequence":"additional","affiliation":[]},{"given":"S.","family":"Gkaitatzis","sequence":"additional","affiliation":[]},{"given":"I.","family":"Gkialas","sequence":"additional","affiliation":[]},{"given":"E. L.","family":"Gkougkousis","sequence":"additional","affiliation":[]},{"given":"P.","family":"Gkountoumis","sequence":"additional","affiliation":[]},{"given":"L. K.","family":"Gladilin","sequence":"additional","affiliation":[]},{"given":"C.","family":"Glasman","sequence":"additional","affiliation":[]},{"given":"J.","family":"Glatzer","sequence":"additional","affiliation":[]},{"given":"P. C. F.","family":"Glaysher","sequence":"additional","affiliation":[]},{"given":"A.","family":"Glazov","sequence":"additional","affiliation":[]},{"given":"G. R.","family":"Gledhill","sequence":"additional","affiliation":[]},{"given":"I.","family":"Gnesi","sequence":"additional","affiliation":[]},{"given":"M.","family":"Goblirsch-Kolb","sequence":"additional","affiliation":[]},{"given":"D.","family":"Godin","sequence":"additional","affiliation":[]},{"given":"S.","family":"Goldfarb","sequence":"additional","affiliation":[]},{"given":"T.","family":"Golling","sequence":"additional","affiliation":[]},{"given":"D.","family":"Golubkov","sequence":"additional","affiliation":[]},{"given":"A.","family":"Gomes","sequence":"additional","affiliation":[]},{"given":"R.","family":"Goncalves Gama","sequence":"additional","affiliation":[]},{"given":"R.","family":"Gon\u00e7alo","sequence":"additional","affiliation":[]},{"given":"G.","family":"Gonella","sequence":"additional","affiliation":[]},{"given":"L.","family":"Gonella","sequence":"additional","affiliation":[]},{"given":"A.","family":"Gongadze","sequence":"additional","affiliation":[]},{"given":"F.","family":"Gonnella","sequence":"additional","affiliation":[]},{"given":"J. L.","family":"Gonski","sequence":"additional","affiliation":[]},{"given":"S.","family":"Gonz\u00e1lez de la Hoz","sequence":"additional","affiliation":[]},{"given":"S.","family":"Gonzalez Fernandez","sequence":"additional","affiliation":[]},{"given":"S.","family":"Gonzalez-Sevilla","sequence":"additional","affiliation":[]},{"given":"G. R.","family":"Gonzalvo Rodriguez","sequence":"additional","affiliation":[]},{"given":"L.","family":"Goossens","sequence":"additional","affiliation":[]},{"given":"N. A.","family":"Gorasia","sequence":"additional","affiliation":[]},{"given":"P. A.","family":"Gorbounov","sequence":"additional","affiliation":[]},{"given":"H. A.","family":"Gordon","sequence":"additional","affiliation":[]},{"given":"B.","family":"Gorini","sequence":"additional","affiliation":[]},{"given":"E.","family":"Gorini","sequence":"additional","affiliation":[]},{"given":"A.","family":"Gori\u0161ek","sequence":"additional","affiliation":[]},{"given":"A. T.","family":"Goshaw","sequence":"additional","affiliation":[]},{"given":"M. I.","family":"Gostkin","sequence":"additional","affiliation":[]},{"given":"C. A.","family":"Gottardo","sequence":"additional","affiliation":[]},{"given":"M.","family":"Gouighri","sequence":"additional","affiliation":[]},{"given":"A. G.","family":"Goussiou","sequence":"additional","affiliation":[]},{"given":"N.","family":"Govender","sequence":"additional","affiliation":[]},{"given":"C.","family":"Goy","sequence":"additional","affiliation":[]},{"given":"E.","family":"Gozani","sequence":"additional","affiliation":[]},{"given":"I.","family":"Grabowska-Bold","sequence":"additional","affiliation":[]},{"given":"E. C.","family":"Graham","sequence":"additional","affiliation":[]},{"given":"J.","family":"Gramling","sequence":"additional","affiliation":[]},{"given":"E.","family":"Gramstad","sequence":"additional","affiliation":[]},{"given":"S.","family":"Grancagnolo","sequence":"additional","affiliation":[]},{"given":"M.","family":"Grandi","sequence":"additional","affiliation":[]},{"given":"V.","family":"Gratchev","sequence":"additional","affiliation":[]},{"given":"P. M.","family":"Gravila","sequence":"additional","affiliation":[]},{"given":"F. G.","family":"Gravili","sequence":"additional","affiliation":[]},{"given":"C.","family":"Gray","sequence":"additional","affiliation":[]},{"given":"H. M.","family":"Gray","sequence":"additional","affiliation":[]},{"given":"C.","family":"Grefe","sequence":"additional","affiliation":[]},{"given":"K.","family":"Gregersen","sequence":"additional","affiliation":[]},{"given":"I. M.","family":"Gregor","sequence":"additional","affiliation":[]},{"given":"P.","family":"Grenier","sequence":"additional","affiliation":[]},{"given":"K.","family":"Grevtsov","sequence":"additional","affiliation":[]},{"given":"C.","family":"Grieco","sequence":"additional","affiliation":[]},{"given":"N. A.","family":"Grieser","sequence":"additional","affiliation":[]},{"given":"A. A.","family":"Grillo","sequence":"additional","affiliation":[]},{"given":"K.","family":"Grimm","sequence":"additional","affiliation":[]},{"given":"S.","family":"Grinstein","sequence":"additional","affiliation":[]},{"given":"J.-F.","family":"Grivaz","sequence":"additional","affiliation":[]},{"given":"S.","family":"Groh","sequence":"additional","affiliation":[]},{"given":"E.","family":"Gross","sequence":"additional","affiliation":[]},{"given":"J.","family":"Grosse-Knetter","sequence":"additional","affiliation":[]},{"given":"Z. J.","family":"Grout","sequence":"additional","affiliation":[]},{"given":"C.","family":"Grud","sequence":"additional","affiliation":[]},{"given":"A.","family":"Grummer","sequence":"additional","affiliation":[]},{"given":"L.","family":"Guan","sequence":"additional","affiliation":[]},{"given":"W.","family":"Guan","sequence":"additional","affiliation":[]},{"given":"C.","family":"Gubbels","sequence":"additional","affiliation":[]},{"given":"J.","family":"Guenther","sequence":"additional","affiliation":[]},{"given":"A.","family":"Guerguichon","sequence":"additional","affiliation":[]},{"given":"J. G. R.","family":"Guerrero Rojas","sequence":"additional","affiliation":[]},{"given":"F.","family":"Guescini","sequence":"additional","affiliation":[]},{"given":"D.","family":"Guest","sequence":"additional","affiliation":[]},{"given":"R.","family":"Gugel","sequence":"additional","affiliation":[]},{"given":"T.","family":"Guillemin","sequence":"additional","affiliation":[]},{"given":"S.","family":"Guindon","sequence":"additional","affiliation":[]},{"given":"U.","family":"Gul","sequence":"additional","affiliation":[]},{"given":"J.","family":"Guo","sequence":"additional","affiliation":[]},{"given":"W.","family":"Guo","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Guo","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Guo","sequence":"additional","affiliation":[]},{"given":"R.","family":"Gupta","sequence":"additional","affiliation":[]},{"given":"S.","family":"Gurbuz","sequence":"additional","affiliation":[]},{"given":"G.","family":"Gustavino","sequence":"additional","affiliation":[]},{"given":"M.","family":"Guth","sequence":"additional","affiliation":[]},{"given":"P.","family":"Gutierrez","sequence":"additional","affiliation":[]},{"given":"C.","family":"Gutschow","sequence":"additional","affiliation":[]},{"given":"C.","family":"Guyot","sequence":"additional","affiliation":[]},{"given":"C.","family":"Gwenlan","sequence":"additional","affiliation":[]},{"given":"C. B.","family":"Gwilliam","sequence":"additional","affiliation":[]},{"given":"A.","family":"Haas","sequence":"additional","affiliation":[]},{"given":"C.","family":"Haber","sequence":"additional","affiliation":[]},{"given":"H. K.","family":"Hadavand","sequence":"additional","affiliation":[]},{"given":"A.","family":"Hadef","sequence":"additional","affiliation":[]},{"given":"M.","family":"Haleem","sequence":"additional","affiliation":[]},{"given":"J.","family":"Haley","sequence":"additional","affiliation":[]},{"given":"G.","family":"Halladjian","sequence":"additional","affiliation":[]},{"given":"G. D.","family":"Hallewell","sequence":"additional","affiliation":[]},{"given":"K.","family":"Hamacher","sequence":"additional","affiliation":[]},{"given":"P.","family":"Hamal","sequence":"additional","affiliation":[]},{"given":"K.","family":"Hamano","sequence":"additional","affiliation":[]},{"given":"H.","family":"Hamdaoui","sequence":"additional","affiliation":[]},{"given":"M.","family":"Hamer","sequence":"additional","affiliation":[]},{"given":"G. N.","family":"Hamity","sequence":"additional","affiliation":[]},{"given":"K.","family":"Han","sequence":"additional","affiliation":[]},{"given":"L.","family":"Han","sequence":"additional","affiliation":[]},{"given":"S.","family":"Han","sequence":"additional","affiliation":[]},{"given":"Y. F.","family":"Han","sequence":"additional","affiliation":[]},{"given":"K.","family":"Hanagaki","sequence":"additional","affiliation":[]},{"given":"M.","family":"Hance","sequence":"additional","affiliation":[]},{"given":"D. M.","family":"Handl","sequence":"additional","affiliation":[]},{"given":"B.","family":"Haney","sequence":"additional","affiliation":[]},{"given":"R.","family":"Hankache","sequence":"additional","affiliation":[]},{"given":"E.","family":"Hansen","sequence":"additional","affiliation":[]},{"given":"J. B.","family":"Hansen","sequence":"additional","affiliation":[]},{"given":"J. D.","family":"Hansen","sequence":"additional","affiliation":[]},{"given":"M. C.","family":"Hansen","sequence":"additional","affiliation":[]},{"given":"P. H.","family":"Hansen","sequence":"additional","affiliation":[]},{"given":"E. C.","family":"Hanson","sequence":"additional","affiliation":[]},{"given":"K.","family":"Hara","sequence":"additional","affiliation":[]},{"given":"T.","family":"Harenberg","sequence":"additional","affiliation":[]},{"given":"S.","family":"Harkusha","sequence":"additional","affiliation":[]},{"given":"P. F.","family":"Harrison","sequence":"additional","affiliation":[]},{"given":"N. M.","family":"Hartmann","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Hasegawa","sequence":"additional","affiliation":[]},{"given":"A.","family":"Hasib","sequence":"additional","affiliation":[]},{"given":"S.","family":"Hassani","sequence":"additional","affiliation":[]},{"given":"S.","family":"Haug","sequence":"additional","affiliation":[]},{"given":"R.","family":"Hauser","sequence":"additional","affiliation":[]},{"given":"L. B.","family":"Havener","sequence":"additional","affiliation":[]},{"given":"M.","family":"Havranek","sequence":"additional","affiliation":[]},{"given":"C. M.","family":"Hawkes","sequence":"additional","affiliation":[]},{"given":"R. J.","family":"Hawkings","sequence":"additional","affiliation":[]},{"given":"D.","family":"Hayden","sequence":"additional","affiliation":[]},{"given":"C.","family":"Hayes","sequence":"additional","affiliation":[]},{"given":"R. L.","family":"Hayes","sequence":"additional","affiliation":[]},{"given":"C. P.","family":"Hays","sequence":"additional","affiliation":[]},{"given":"J. M.","family":"Hays","sequence":"additional","affiliation":[]},{"given":"H. S.","family":"Hayward","sequence":"additional","affiliation":[]},{"given":"S. J.","family":"Haywood","sequence":"additional","affiliation":[]},{"given":"F.","family":"He","sequence":"additional","affiliation":[]},{"given":"M. P.","family":"Heath","sequence":"additional","affiliation":[]},{"given":"V.","family":"Hedberg","sequence":"additional","affiliation":[]},{"given":"S.","family":"Heer","sequence":"additional","affiliation":[]},{"given":"K. K.","family":"Heidegger","sequence":"additional","affiliation":[]},{"given":"W. D.","family":"Heidorn","sequence":"additional","affiliation":[]},{"given":"J.","family":"Heilman","sequence":"additional","affiliation":[]},{"given":"S.","family":"Heim","sequence":"additional","affiliation":[]},{"given":"T.","family":"Heim","sequence":"additional","affiliation":[]},{"given":"B.","family":"Heinemann","sequence":"additional","affiliation":[]},{"given":"J. J.","family":"Heinrich","sequence":"additional","affiliation":[]},{"given":"L.","family":"Heinrich","sequence":"additional","affiliation":[]},{"given":"J.","family":"Hejbal","sequence":"additional","affiliation":[]},{"given":"L.","family":"Helary","sequence":"additional","affiliation":[]},{"given":"A.","family":"Held","sequence":"additional","affiliation":[]},{"given":"S.","family":"Hellesund","sequence":"additional","affiliation":[]},{"given":"C. M.","family":"Helling","sequence":"additional","affiliation":[]},{"given":"S.","family":"Hellman","sequence":"additional","affiliation":[]},{"given":"C.","family":"Helsens","sequence":"additional","affiliation":[]},{"given":"R. C. W.","family":"Henderson","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Heng","sequence":"additional","affiliation":[]},{"given":"L.","family":"Henkelmann","sequence":"additional","affiliation":[]},{"given":"S.","family":"Henkelmann","sequence":"additional","affiliation":[]},{"given":"A. M.","family":"Henriques Correia","sequence":"additional","affiliation":[]},{"given":"H.","family":"Herde","sequence":"additional","affiliation":[]},{"given":"V.","family":"Herget","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Hern\u00e1ndez Jim\u00e9nez","sequence":"additional","affiliation":[]},{"given":"H.","family":"Herr","sequence":"additional","affiliation":[]},{"given":"M. G.","family":"Herrmann","sequence":"additional","affiliation":[]},{"given":"T.","family":"Herrmann","sequence":"additional","affiliation":[]},{"given":"G.","family":"Herten","sequence":"additional","affiliation":[]},{"given":"R.","family":"Hertenberger","sequence":"additional","affiliation":[]},{"given":"L.","family":"Hervas","sequence":"additional","affiliation":[]},{"given":"T. C.","family":"Herwig","sequence":"additional","affiliation":[]},{"given":"G. G.","family":"Hesketh","sequence":"additional","affiliation":[]},{"given":"N. P.","family":"Hessey","sequence":"additional","affiliation":[]},{"given":"A.","family":"Higashida","sequence":"additional","affiliation":[]},{"given":"S.","family":"Higashino","sequence":"additional","affiliation":[]},{"given":"E.","family":"Hig\u00f3n-Rodriguez","sequence":"additional","affiliation":[]},{"given":"K.","family":"Hildebrand","sequence":"additional","affiliation":[]},{"given":"J. C.","family":"Hill","sequence":"additional","affiliation":[]},{"given":"K. K.","family":"Hill","sequence":"additional","affiliation":[]},{"given":"K. H.","family":"Hiller","sequence":"additional","affiliation":[]},{"given":"S. J.","family":"Hillier","sequence":"additional","affiliation":[]},{"given":"M.","family":"Hils","sequence":"additional","affiliation":[]},{"given":"I.","family":"Hinchliffe","sequence":"additional","affiliation":[]},{"given":"F.","family":"Hinterkeuser","sequence":"additional","affiliation":[]},{"given":"M.","family":"Hirose","sequence":"additional","affiliation":[]},{"given":"S.","family":"Hirose","sequence":"additional","affiliation":[]},{"given":"D.","family":"Hirschbuehl","sequence":"additional","affiliation":[]},{"given":"B.","family":"Hiti","sequence":"additional","affiliation":[]},{"given":"O.","family":"Hladik","sequence":"additional","affiliation":[]},{"given":"D. R.","family":"Hlaluku","sequence":"additional","affiliation":[]},{"given":"J.","family":"Hobbs","sequence":"additional","affiliation":[]},{"given":"N.","family":"Hod","sequence":"additional","affiliation":[]},{"given":"M. C.","family":"Hodgkinson","sequence":"additional","affiliation":[]},{"given":"A.","family":"Hoecker","sequence":"additional","affiliation":[]},{"given":"D.","family":"Hohn","sequence":"additional","affiliation":[]},{"given":"D.","family":"Hohov","sequence":"additional","affiliation":[]},{"given":"T.","family":"Holm","sequence":"additional","affiliation":[]},{"given":"T. R.","family":"Holmes","sequence":"additional","affiliation":[]},{"given":"M.","family":"Holzbock","sequence":"additional","affiliation":[]},{"given":"L. B. A. H.","family":"Hommels","sequence":"additional","affiliation":[]},{"given":"S.","family":"Honda","sequence":"additional","affiliation":[]},{"given":"T. M.","family":"Hong","sequence":"additional","affiliation":[]},{"given":"J. C.","family":"Honig","sequence":"additional","affiliation":[]},{"given":"A.","family":"H\u00f6nle","sequence":"additional","affiliation":[]},{"given":"B. H.","family":"Hooberman","sequence":"additional","affiliation":[]},{"given":"W. H.","family":"Hopkins","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Horii","sequence":"additional","affiliation":[]},{"given":"P.","family":"Horn","sequence":"additional","affiliation":[]},{"given":"L. A.","family":"Horyn","sequence":"additional","affiliation":[]},{"given":"S.","family":"Hou","sequence":"additional","affiliation":[]},{"given":"A.","family":"Hoummada","sequence":"additional","affiliation":[]},{"given":"J.","family":"Howarth","sequence":"additional","affiliation":[]},{"given":"J.","family":"Hoya","sequence":"additional","affiliation":[]},{"given":"M.","family":"Hrabovsky","sequence":"additional","affiliation":[]},{"given":"J.","family":"Hrdinka","sequence":"additional","affiliation":[]},{"given":"I.","family":"Hristova","sequence":"additional","affiliation":[]},{"given":"J.","family":"Hrivnac","sequence":"additional","affiliation":[]},{"given":"A.","family":"Hrynevich","sequence":"additional","affiliation":[]},{"given":"T.","family":"Hryn\u2019ova","sequence":"additional","affiliation":[]},{"given":"P. J.","family":"Hsu","sequence":"additional","affiliation":[]},{"given":"S.-C.","family":"Hsu","sequence":"additional","affiliation":[]},{"given":"Q.","family":"Hu","sequence":"additional","affiliation":[]},{"given":"S.","family":"Hu","sequence":"additional","affiliation":[]},{"given":"Y. F.","family":"Hu","sequence":"additional","affiliation":[]},{"given":"D. P.","family":"Huang","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Huang","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Huang","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Hubacek","sequence":"additional","affiliation":[]},{"given":"F.","family":"Hubaut","sequence":"additional","affiliation":[]},{"given":"M.","family":"Huebner","sequence":"additional","affiliation":[]},{"given":"F.","family":"Huegging","sequence":"additional","affiliation":[]},{"given":"T. B.","family":"Huffman","sequence":"additional","affiliation":[]},{"given":"M.","family":"Huhtinen","sequence":"additional","affiliation":[]},{"given":"R. F. H.","family":"Hunter","sequence":"additional","affiliation":[]},{"given":"P.","family":"Huo","sequence":"additional","affiliation":[]},{"given":"N.","family":"Huseynov","sequence":"additional","affiliation":[]},{"given":"J.","family":"Huston","sequence":"additional","affiliation":[]},{"given":"J.","family":"Huth","sequence":"additional","affiliation":[]},{"given":"R.","family":"Hyneman","sequence":"additional","affiliation":[]},{"given":"S.","family":"Hyrych","sequence":"additional","affiliation":[]},{"given":"G.","family":"Iacobucci","sequence":"additional","affiliation":[]},{"given":"G.","family":"Iakovidis","sequence":"additional","affiliation":[]},{"given":"I.","family":"Ibragimov","sequence":"additional","affiliation":[]},{"given":"L.","family":"Iconomidou-Fayard","sequence":"additional","affiliation":[]},{"given":"P.","family":"Iengo","sequence":"additional","affiliation":[]},{"given":"R.","family":"Ignazzi","sequence":"additional","affiliation":[]},{"given":"O.","family":"Igonkina","sequence":"additional","affiliation":[]},{"given":"R.","family":"Iguchi","sequence":"additional","affiliation":[]},{"given":"T.","family":"Iizawa","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Ikegami","sequence":"additional","affiliation":[]},{"given":"M.","family":"Ikeno","sequence":"additional","affiliation":[]},{"given":"A.","family":"Ilg","sequence":"additional","affiliation":[]},{"given":"D.","family":"Iliadis","sequence":"additional","affiliation":[]},{"given":"N.","family":"Ilic","sequence":"additional","affiliation":[]},{"given":"F.","family":"Iltzsche","sequence":"additional","affiliation":[]},{"given":"G.","family":"Introzzi","sequence":"additional","affiliation":[]},{"given":"M.","family":"Iodice","sequence":"additional","affiliation":[]},{"given":"K.","family":"Iordanidou","sequence":"additional","affiliation":[]},{"given":"V.","family":"Ippolito","sequence":"additional","affiliation":[]},{"given":"M. F.","family":"Isacson","sequence":"additional","affiliation":[]},{"given":"M.","family":"Ishino","sequence":"additional","affiliation":[]},{"given":"W.","family":"Islam","sequence":"additional","affiliation":[]},{"given":"C.","family":"Issever","sequence":"additional","affiliation":[]},{"given":"S.","family":"Istin","sequence":"additional","affiliation":[]},{"given":"F.","family":"Ito","sequence":"additional","affiliation":[]},{"given":"J. M.","family":"Iturbe Ponce","sequence":"additional","affiliation":[]},{"given":"R.","family":"Iuppa","sequence":"additional","affiliation":[]},{"given":"A.","family":"Ivina","sequence":"additional","affiliation":[]},{"given":"H.","family":"Iwasaki","sequence":"additional","affiliation":[]},{"given":"J. M.","family":"Izen","sequence":"additional","affiliation":[]},{"given":"V.","family":"Izzo","sequence":"additional","affiliation":[]},{"given":"P.","family":"Jacka","sequence":"additional","affiliation":[]},{"given":"P.","family":"Jackson","sequence":"additional","affiliation":[]},{"given":"R. M.","family":"Jacobs","sequence":"additional","affiliation":[]},{"given":"B. P.","family":"Jaeger","sequence":"additional","affiliation":[]},{"given":"V.","family":"Jain","sequence":"additional","affiliation":[]},{"given":"G.","family":"J\u00e4kel","sequence":"additional","affiliation":[]},{"given":"K. B.","family":"Jakobi","sequence":"additional","affiliation":[]},{"given":"K.","family":"Jakobs","sequence":"additional","affiliation":[]},{"given":"T.","family":"Jakoubek","sequence":"additional","affiliation":[]},{"given":"J.","family":"Jamieson","sequence":"additional","affiliation":[]},{"given":"K. W.","family":"Janas","sequence":"additional","affiliation":[]},{"given":"R.","family":"Jansky","sequence":"additional","affiliation":[]},{"given":"M.","family":"Janus","sequence":"additional","affiliation":[]},{"given":"P. A.","family":"Janus","sequence":"additional","affiliation":[]},{"given":"G.","family":"Jarlskog","sequence":"additional","affiliation":[]},{"given":"N.","family":"Javadov","sequence":"additional","affiliation":[]},{"given":"T.","family":"Jav\u016frek","sequence":"additional","affiliation":[]},{"given":"M.","family":"Javurkova","sequence":"additional","affiliation":[]},{"given":"F.","family":"Jeanneau","sequence":"additional","affiliation":[]},{"given":"L.","family":"Jeanty","sequence":"additional","affiliation":[]},{"given":"J.","family":"Jejelava","sequence":"additional","affiliation":[]},{"given":"A.","family":"Jelinskas","sequence":"additional","affiliation":[]},{"given":"P.","family":"Jenni","sequence":"additional","affiliation":[]},{"given":"N.","family":"Jeong","sequence":"additional","affiliation":[]},{"given":"S.","family":"J\u00e9z\u00e9quel","sequence":"additional","affiliation":[]},{"given":"H.","family":"Ji","sequence":"additional","affiliation":[]},{"given":"J.","family":"Jia","sequence":"additional","affiliation":[]},{"given":"H.","family":"Jiang","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Jiang","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Jiang","sequence":"additional","affiliation":[]},{"given":"S.","family":"Jiggins","sequence":"additional","affiliation":[]},{"given":"F. A.","family":"Jimenez Morales","sequence":"additional","affiliation":[]},{"given":"J.","family":"Jimenez Pena","sequence":"additional","affiliation":[]},{"given":"S.","family":"Jin","sequence":"additional","affiliation":[]},{"given":"A.","family":"Jinaru","sequence":"additional","affiliation":[]},{"given":"O.","family":"Jinnouchi","sequence":"additional","affiliation":[]},{"given":"H.","family":"Jivan","sequence":"additional","affiliation":[]},{"given":"P.","family":"Johansson","sequence":"additional","affiliation":[]},{"given":"K. A.","family":"Johns","sequence":"additional","affiliation":[]},{"given":"C. A.","family":"Johnson","sequence":"additional","affiliation":[]},{"given":"R. W. L.","family":"Jones","sequence":"additional","affiliation":[]},{"given":"S. D.","family":"Jones","sequence":"additional","affiliation":[]},{"given":"S.","family":"Jones","sequence":"additional","affiliation":[]},{"given":"T. J.","family":"Jones","sequence":"additional","affiliation":[]},{"given":"J.","family":"Jongmanns","sequence":"additional","affiliation":[]},{"given":"P. M.","family":"Jorge","sequence":"additional","affiliation":[]},{"given":"J.","family":"Jovicevic","sequence":"additional","affiliation":[]},{"given":"X.","family":"Ju","sequence":"additional","affiliation":[]},{"given":"J. J.","family":"Junggeburth","sequence":"additional","affiliation":[]},{"given":"A.","family":"Juste Rozas","sequence":"additional","affiliation":[]},{"given":"A.","family":"Kaczmarska","sequence":"additional","affiliation":[]},{"given":"M.","family":"Kado","sequence":"additional","affiliation":[]},{"given":"H.","family":"Kagan","sequence":"additional","affiliation":[]},{"given":"M.","family":"Kagan","sequence":"additional","affiliation":[]},{"given":"A.","family":"Kahn","sequence":"additional","affiliation":[]},{"given":"C.","family":"Kahra","sequence":"additional","affiliation":[]},{"given":"T.","family":"Kaji","sequence":"additional","affiliation":[]},{"given":"E.","family":"Kajomovitz","sequence":"additional","affiliation":[]},{"given":"C. W.","family":"Kalderon","sequence":"additional","affiliation":[]},{"given":"A.","family":"Kaluza","sequence":"additional","affiliation":[]},{"given":"A.","family":"Kamenshchikov","sequence":"additional","affiliation":[]},{"given":"M.","family":"Kaneda","sequence":"additional","affiliation":[]},{"given":"N. J.","family":"Kang","sequence":"additional","affiliation":[]},{"given":"S.","family":"Kang","sequence":"additional","affiliation":[]},{"given":"L.","family":"Kanjir","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Kano","sequence":"additional","affiliation":[]},{"given":"J.","family":"Kanzaki","sequence":"additional","affiliation":[]},{"given":"L. S.","family":"Kaplan","sequence":"additional","affiliation":[]},{"given":"D.","family":"Kar","sequence":"additional","affiliation":[]},{"given":"K.","family":"Karava","sequence":"additional","affiliation":[]},{"given":"M. J.","family":"Kareem","sequence":"additional","affiliation":[]},{"given":"S. N.","family":"Karpov","sequence":"additional","affiliation":[]},{"given":"Z. M.","family":"Karpova","sequence":"additional","affiliation":[]},{"given":"V.","family":"Kartvelishvili","sequence":"additional","affiliation":[]},{"given":"A. N.","family":"Karyukhin","sequence":"additional","affiliation":[]},{"given":"A.","family":"Kastanas","sequence":"additional","affiliation":[]},{"given":"C.","family":"Kato","sequence":"additional","affiliation":[]},{"given":"J.","family":"Katzy","sequence":"additional","affiliation":[]},{"given":"K.","family":"Kawade","sequence":"additional","affiliation":[]},{"given":"K.","family":"Kawagoe","sequence":"additional","affiliation":[]},{"given":"T.","family":"Kawaguchi","sequence":"additional","affiliation":[]},{"given":"T.","family":"Kawamoto","sequence":"additional","affiliation":[]},{"given":"G.","family":"Kawamura","sequence":"additional","affiliation":[]},{"given":"E. F.","family":"Kay","sequence":"additional","affiliation":[]},{"given":"V. F.","family":"Kazanin","sequence":"additional","affiliation":[]},{"given":"R.","family":"Keeler","sequence":"additional","affiliation":[]},{"given":"R.","family":"Kehoe","sequence":"additional","affiliation":[]},{"given":"J. S.","family":"Keller","sequence":"additional","affiliation":[]},{"given":"E.","family":"Kellermann","sequence":"additional","affiliation":[]},{"given":"D.","family":"Kelsey","sequence":"additional","affiliation":[]},{"given":"J. J.","family":"Kempster","sequence":"additional","affiliation":[]},{"given":"J.","family":"Kendrick","sequence":"additional","affiliation":[]},{"given":"K. E.","family":"Kennedy","sequence":"additional","affiliation":[]},{"given":"O.","family":"Kepka","sequence":"additional","affiliation":[]},{"given":"S.","family":"Kersten","sequence":"additional","affiliation":[]},{"given":"B. P.","family":"Ker\u0161evan","sequence":"additional","affiliation":[]},{"given":"S.","family":"Ketabchi Haghighat","sequence":"additional","affiliation":[]},{"given":"M.","family":"Khader","sequence":"additional","affiliation":[]},{"given":"F.","family":"Khalil-Zada","sequence":"additional","affiliation":[]},{"given":"M.","family":"Khandoga","sequence":"additional","affiliation":[]},{"given":"A.","family":"Khanov","sequence":"additional","affiliation":[]},{"given":"A. G.","family":"Kharlamov","sequence":"additional","affiliation":[]},{"given":"T.","family":"Kharlamova","sequence":"additional","affiliation":[]},{"given":"E. E.","family":"Khoda","sequence":"additional","affiliation":[]},{"given":"A.","family":"Khodinov","sequence":"additional","affiliation":[]},{"given":"T. J.","family":"Khoo","sequence":"additional","affiliation":[]},{"given":"E.","family":"Khramov","sequence":"additional","affiliation":[]},{"given":"J.","family":"Khubua","sequence":"additional","affiliation":[]},{"given":"S.","family":"Kido","sequence":"additional","affiliation":[]},{"given":"M.","family":"Kiehn","sequence":"additional","affiliation":[]},{"given":"C. R.","family":"Kilby","sequence":"additional","affiliation":[]},{"given":"E.","family":"Kim","sequence":"additional","affiliation":[]},{"given":"Y. K.","family":"Kim","sequence":"additional","affiliation":[]},{"given":"N.","family":"Kimura","sequence":"additional","affiliation":[]},{"given":"O. M.","family":"Kind","sequence":"additional","affiliation":[]},{"given":"B. T.","family":"King","sequence":"additional","affiliation":[]},{"given":"D.","family":"Kirchmeier","sequence":"additional","affiliation":[]},{"given":"J.","family":"Kirk","sequence":"additional","affiliation":[]},{"given":"A. E.","family":"Kiryunin","sequence":"additional","affiliation":[]},{"given":"T.","family":"Kishimoto","sequence":"additional","affiliation":[]},{"given":"D. P.","family":"Kisliuk","sequence":"additional","affiliation":[]},{"given":"V.","family":"Kitali","sequence":"additional","affiliation":[]},{"given":"O.","family":"Kivernyk","sequence":"additional","affiliation":[]},{"given":"T.","family":"Klapdor-Kleingrothaus","sequence":"additional","affiliation":[]},{"given":"M.","family":"Klassen","sequence":"additional","affiliation":[]},{"given":"C.","family":"Klein","sequence":"additional","affiliation":[]},{"given":"M. H.","family":"Klein","sequence":"additional","affiliation":[]},{"given":"M.","family":"Klein","sequence":"additional","affiliation":[]},{"given":"U.","family":"Klein","sequence":"additional","affiliation":[]},{"given":"K.","family":"Kleinknecht","sequence":"additional","affiliation":[]},{"given":"P.","family":"Klimek","sequence":"additional","affiliation":[]},{"given":"A.","family":"Klimentov","sequence":"additional","affiliation":[]},{"given":"T.","family":"Klingl","sequence":"additional","affiliation":[]},{"given":"T.","family":"Klioutchnikova","sequence":"additional","affiliation":[]},{"given":"F. F.","family":"Klitzner","sequence":"additional","affiliation":[]},{"given":"P.","family":"Kluit","sequence":"additional","affiliation":[]},{"given":"S.","family":"Kluth","sequence":"additional","affiliation":[]},{"given":"E.","family":"Kneringer","sequence":"additional","affiliation":[]},{"given":"E. B. F. G.","family":"Knoops","sequence":"additional","affiliation":[]},{"given":"A.","family":"Knue","sequence":"additional","affiliation":[]},{"given":"D.","family":"Kobayashi","sequence":"additional","affiliation":[]},{"given":"T.","family":"Kobayashi","sequence":"additional","affiliation":[]},{"given":"M.","family":"Kobel","sequence":"additional","affiliation":[]},{"given":"M.","family":"Kocian","sequence":"additional","affiliation":[]},{"given":"T.","family":"Kodama","sequence":"additional","affiliation":[]},{"given":"P.","family":"Kodys","sequence":"additional","affiliation":[]},{"given":"P. T.","family":"Koenig","sequence":"additional","affiliation":[]},{"given":"T.","family":"Koffas","sequence":"additional","affiliation":[]},{"given":"N. M.","family":"K\u00f6hler","sequence":"additional","affiliation":[]},{"given":"M.","family":"Kolb","sequence":"additional","affiliation":[]},{"given":"I.","family":"Koletsou","sequence":"additional","affiliation":[]},{"given":"T.","family":"Komarek","sequence":"additional","affiliation":[]},{"given":"T.","family":"Kondo","sequence":"additional","affiliation":[]},{"given":"K.","family":"K\u00f6neke","sequence":"additional","affiliation":[]},{"given":"A. X. Y.","family":"Kong","sequence":"additional","affiliation":[]},{"given":"A. C.","family":"K\u00f6nig","sequence":"additional","affiliation":[]},{"given":"T.","family":"Kono","sequence":"additional","affiliation":[]},{"given":"V.","family":"Konstantinides","sequence":"additional","affiliation":[]},{"given":"N.","family":"Konstantinidis","sequence":"additional","affiliation":[]},{"given":"B.","family":"Konya","sequence":"additional","affiliation":[]},{"given":"R.","family":"Kopeliansky","sequence":"additional","affiliation":[]},{"given":"S.","family":"Koperny","sequence":"additional","affiliation":[]},{"given":"K.","family":"Korcyl","sequence":"additional","affiliation":[]},{"given":"K.","family":"Kordas","sequence":"additional","affiliation":[]},{"given":"G.","family":"Koren","sequence":"additional","affiliation":[]},{"given":"A.","family":"Korn","sequence":"additional","affiliation":[]},{"given":"I.","family":"Korolkov","sequence":"additional","affiliation":[]},{"given":"E. V.","family":"Korolkova","sequence":"additional","affiliation":[]},{"given":"N.","family":"Korotkova","sequence":"additional","affiliation":[]},{"given":"O.","family":"Kortner","sequence":"additional","affiliation":[]},{"given":"S.","family":"Kortner","sequence":"additional","affiliation":[]},{"given":"T.","family":"Kosek","sequence":"additional","affiliation":[]},{"given":"V. V.","family":"Kostyukhin","sequence":"additional","affiliation":[]},{"given":"A.","family":"Kotsokechagia","sequence":"additional","affiliation":[]},{"given":"A.","family":"Kotwal","sequence":"additional","affiliation":[]},{"given":"A.","family":"Koulouris","sequence":"additional","affiliation":[]},{"given":"A.","family":"Kourkoumeli-Charalampidi","sequence":"additional","affiliation":[]},{"given":"C.","family":"Kourkoumelis","sequence":"additional","affiliation":[]},{"given":"E.","family":"Kourlitis","sequence":"additional","affiliation":[]},{"given":"V.","family":"Kouskoura","sequence":"additional","affiliation":[]},{"given":"A. B.","family":"Kowalewska","sequence":"additional","affiliation":[]},{"given":"R.","family":"Kowalewski","sequence":"additional","affiliation":[]},{"given":"W.","family":"Kozanecki","sequence":"additional","affiliation":[]},{"given":"A. S.","family":"Kozhin","sequence":"additional","affiliation":[]},{"given":"V. A.","family":"Kramarenko","sequence":"additional","affiliation":[]},{"given":"G.","family":"Kramberger","sequence":"additional","affiliation":[]},{"given":"D.","family":"Krasnopevtsev","sequence":"additional","affiliation":[]},{"given":"M. W.","family":"Krasny","sequence":"additional","affiliation":[]},{"given":"A.","family":"Krasznahorkay","sequence":"additional","affiliation":[]},{"given":"D.","family":"Krauss","sequence":"additional","affiliation":[]},{"given":"J. A.","family":"Kremer","sequence":"additional","affiliation":[]},{"given":"J.","family":"Kretzschmar","sequence":"additional","affiliation":[]},{"given":"P.","family":"Krieger","sequence":"additional","affiliation":[]},{"given":"F.","family":"Krieter","sequence":"additional","affiliation":[]},{"given":"A.","family":"Krishnan","sequence":"additional","affiliation":[]},{"given":"K.","family":"Krizka","sequence":"additional","affiliation":[]},{"given":"K.","family":"Kroeninger","sequence":"additional","affiliation":[]},{"given":"H.","family":"Kroha","sequence":"additional","affiliation":[]},{"given":"J.","family":"Kroll","sequence":"additional","affiliation":[]},{"given":"J.","family":"Kroll","sequence":"additional","affiliation":[]},{"given":"K. S.","family":"Krowpman","sequence":"additional","affiliation":[]},{"given":"U.","family":"Kruchonak","sequence":"additional","affiliation":[]},{"given":"H.","family":"Kr\u00fcger","sequence":"additional","affiliation":[]},{"given":"N.","family":"Krumnack","sequence":"additional","affiliation":[]},{"given":"M. C.","family":"Kruse","sequence":"additional","affiliation":[]},{"given":"J. A.","family":"Krzysiak","sequence":"additional","affiliation":[]},{"given":"T.","family":"Kubota","sequence":"additional","affiliation":[]},{"given":"O.","family":"Kuchinskaia","sequence":"additional","affiliation":[]},{"given":"S.","family":"Kuday","sequence":"additional","affiliation":[]},{"given":"D.","family":"Kuechler","sequence":"additional","affiliation":[]},{"given":"J. T.","family":"Kuechler","sequence":"additional","affiliation":[]},{"given":"S.","family":"Kuehn","sequence":"additional","affiliation":[]},{"given":"A.","family":"Kugel","sequence":"additional","affiliation":[]},{"given":"T.","family":"Kuhl","sequence":"additional","affiliation":[]},{"given":"V.","family":"Kukhtin","sequence":"additional","affiliation":[]},{"given":"R.","family":"Kukla","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Kulchitsky","sequence":"additional","affiliation":[]},{"given":"S.","family":"Kuleshov","sequence":"additional","affiliation":[]},{"given":"Y. P.","family":"Kulinich","sequence":"additional","affiliation":[]},{"given":"M.","family":"Kuna","sequence":"additional","affiliation":[]},{"given":"T.","family":"Kunigo","sequence":"additional","affiliation":[]},{"given":"A.","family":"Kupco","sequence":"additional","affiliation":[]},{"given":"T.","family":"Kupfer","sequence":"additional","affiliation":[]},{"given":"O.","family":"Kuprash","sequence":"additional","affiliation":[]},{"given":"H.","family":"Kurashige","sequence":"additional","affiliation":[]},{"given":"L. L.","family":"Kurchaninov","sequence":"additional","affiliation":[]},{"given":"Y. A.","family":"Kurochkin","sequence":"additional","affiliation":[]},{"given":"A.","family":"Kurova","sequence":"additional","affiliation":[]},{"given":"M. G.","family":"Kurth","sequence":"additional","affiliation":[]},{"given":"E. S.","family":"Kuwertz","sequence":"additional","affiliation":[]},{"given":"M.","family":"Kuze","sequence":"additional","affiliation":[]},{"given":"A. K.","family":"Kvam","sequence":"additional","affiliation":[]},{"given":"J.","family":"Kvita","sequence":"additional","affiliation":[]},{"given":"T.","family":"Kwan","sequence":"additional","affiliation":[]},{"given":"L.","family":"La Rotonda","sequence":"additional","affiliation":[]},{"given":"F.","family":"La Ruffa","sequence":"additional","affiliation":[]},{"given":"C.","family":"Lacasta","sequence":"additional","affiliation":[]},{"given":"F.","family":"Lacava","sequence":"additional","affiliation":[]},{"given":"D. P. J.","family":"Lack","sequence":"additional","affiliation":[]},{"given":"H.","family":"Lacker","sequence":"additional","affiliation":[]},{"given":"D.","family":"Lacour","sequence":"additional","affiliation":[]},{"given":"E.","family":"Ladygin","sequence":"additional","affiliation":[]},{"given":"R.","family":"Lafaye","sequence":"additional","affiliation":[]},{"given":"B.","family":"Laforge","sequence":"additional","affiliation":[]},{"given":"T.","family":"Lagouri","sequence":"additional","affiliation":[]},{"given":"S.","family":"Lai","sequence":"additional","affiliation":[]},{"given":"I. K.","family":"Lakomiec","sequence":"additional","affiliation":[]},{"given":"S.","family":"Lammers","sequence":"additional","affiliation":[]},{"given":"W.","family":"Lampl","sequence":"additional","affiliation":[]},{"given":"C.","family":"Lampoudis","sequence":"additional","affiliation":[]},{"given":"E.","family":"Lan\u00e7on","sequence":"additional","affiliation":[]},{"given":"U.","family":"Landgraf","sequence":"additional","affiliation":[]},{"given":"M. P. J.","family":"Landon","sequence":"additional","affiliation":[]},{"given":"M. C.","family":"Lanfermann","sequence":"additional","affiliation":[]},{"given":"V. S.","family":"Lang","sequence":"additional","affiliation":[]},{"given":"J. C.","family":"Lange","sequence":"additional","affiliation":[]},{"given":"R. J.","family":"Langenberg","sequence":"additional","affiliation":[]},{"given":"A. J.","family":"Lankford","sequence":"additional","affiliation":[]},{"given":"F.","family":"Lanni","sequence":"additional","affiliation":[]},{"given":"K.","family":"Lantzsch","sequence":"additional","affiliation":[]},{"given":"A.","family":"Lanza","sequence":"additional","affiliation":[]},{"given":"A.","family":"Lapertosa","sequence":"additional","affiliation":[]},{"given":"S.","family":"Laplace","sequence":"additional","affiliation":[]},{"given":"J. F.","family":"Laporte","sequence":"additional","affiliation":[]},{"given":"T.","family":"Lari","sequence":"additional","affiliation":[]},{"given":"F.","family":"Lasagni Manghi","sequence":"additional","affiliation":[]},{"given":"M.","family":"Lassnig","sequence":"additional","affiliation":[]},{"given":"T. S.","family":"Lau","sequence":"additional","affiliation":[]},{"given":"A.","family":"Laudrain","sequence":"additional","affiliation":[]},{"given":"A.","family":"Laurier","sequence":"additional","affiliation":[]},{"given":"M.","family":"Lavorgna","sequence":"additional","affiliation":[]},{"given":"S. D.","family":"Lawlor","sequence":"additional","affiliation":[]},{"given":"M.","family":"Lazzaroni","sequence":"additional","affiliation":[]},{"given":"B.","family":"Le","sequence":"additional","affiliation":[]},{"given":"E.","family":"Le Guirriec","sequence":"additional","affiliation":[]},{"given":"A.","family":"Lebedev","sequence":"additional","affiliation":[]},{"given":"M.","family":"LeBlanc","sequence":"additional","affiliation":[]},{"given":"T.","family":"LeCompte","sequence":"additional","affiliation":[]},{"given":"F.","family":"Ledroit-Guillon","sequence":"additional","affiliation":[]},{"given":"A. C. A.","family":"Lee","sequence":"additional","affiliation":[]},{"given":"C. A.","family":"Lee","sequence":"additional","affiliation":[]},{"given":"G. R.","family":"Lee","sequence":"additional","affiliation":[]},{"given":"L.","family":"Lee","sequence":"additional","affiliation":[]},{"given":"S. C.","family":"Lee","sequence":"additional","affiliation":[]},{"given":"S.","family":"Lee","sequence":"additional","affiliation":[]},{"given":"B.","family":"Lefebvre","sequence":"additional","affiliation":[]},{"given":"H. P.","family":"Lefebvre","sequence":"additional","affiliation":[]},{"given":"M.","family":"Lefebvre","sequence":"additional","affiliation":[]},{"given":"C.","family":"Leggett","sequence":"additional","affiliation":[]},{"given":"K.","family":"Lehmann","sequence":"additional","affiliation":[]},{"given":"N.","family":"Lehmann","sequence":"additional","affiliation":[]},{"given":"G.","family":"Lehmann Miotto","sequence":"additional","affiliation":[]},{"given":"W. A.","family":"Leight","sequence":"additional","affiliation":[]},{"given":"A.","family":"Leisos","sequence":"additional","affiliation":[]},{"given":"M. A. L.","family":"Leite","sequence":"additional","affiliation":[]},{"given":"C. E.","family":"Leitgeb","sequence":"additional","affiliation":[]},{"given":"R.","family":"Leitner","sequence":"additional","affiliation":[]},{"given":"D.","family":"Lellouch","sequence":"additional","affiliation":[]},{"given":"K. J. C.","family":"Leney","sequence":"additional","affiliation":[]},{"given":"T.","family":"Lenz","sequence":"additional","affiliation":[]},{"given":"R.","family":"Leone","sequence":"additional","affiliation":[]},{"given":"S.","family":"Leone","sequence":"additional","affiliation":[]},{"given":"C.","family":"Leonidopoulos","sequence":"additional","affiliation":[]},{"given":"A.","family":"Leopold","sequence":"additional","affiliation":[]},{"given":"C.","family":"Leroy","sequence":"additional","affiliation":[]},{"given":"R.","family":"Les","sequence":"additional","affiliation":[]},{"given":"C. G.","family":"Lester","sequence":"additional","affiliation":[]},{"given":"M.","family":"Levchenko","sequence":"additional","affiliation":[]},{"given":"J.","family":"Lev\u00eaque","sequence":"additional","affiliation":[]},{"given":"D.","family":"Levin","sequence":"additional","affiliation":[]},{"given":"L. J.","family":"Levinson","sequence":"additional","affiliation":[]},{"given":"D. J.","family":"Lewis","sequence":"additional","affiliation":[]},{"given":"B.","family":"Li","sequence":"additional","affiliation":[]},{"given":"B.","family":"Li","sequence":"additional","affiliation":[]},{"given":"C-Q.","family":"Li","sequence":"additional","affiliation":[]},{"given":"F.","family":"Li","sequence":"additional","affiliation":[]},{"given":"H.","family":"Li","sequence":"additional","affiliation":[]},{"given":"H.","family":"Li","sequence":"additional","affiliation":[]},{"given":"J.","family":"Li","sequence":"additional","affiliation":[]},{"given":"K.","family":"Li","sequence":"additional","affiliation":[]},{"given":"L.","family":"Li","sequence":"additional","affiliation":[]},{"given":"M.","family":"Li","sequence":"additional","affiliation":[]},{"given":"Q.","family":"Li","sequence":"additional","affiliation":[]},{"given":"Q. Y.","family":"Li","sequence":"additional","affiliation":[]},{"given":"S.","family":"Li","sequence":"additional","affiliation":[]},{"given":"X.","family":"Li","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Li","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Li","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Li","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Liang","sequence":"additional","affiliation":[]},{"given":"B.","family":"Liberti","sequence":"additional","affiliation":[]},{"given":"A.","family":"Liblong","sequence":"additional","affiliation":[]},{"given":"K.","family":"Lie","sequence":"additional","affiliation":[]},{"given":"S.","family":"Lim","sequence":"additional","affiliation":[]},{"given":"C. Y.","family":"Lin","sequence":"additional","affiliation":[]},{"given":"K.","family":"Lin","sequence":"additional","affiliation":[]},{"given":"T. H.","family":"Lin","sequence":"additional","affiliation":[]},{"given":"R. A.","family":"Linck","sequence":"additional","affiliation":[]},{"given":"J. H.","family":"Lindon","sequence":"additional","affiliation":[]},{"given":"A. L.","family":"Lionti","sequence":"additional","affiliation":[]},{"given":"E.","family":"Lipeles","sequence":"additional","affiliation":[]},{"given":"A.","family":"Lipniacka","sequence":"additional","affiliation":[]},{"given":"T. M.","family":"Liss","sequence":"additional","affiliation":[]},{"given":"A.","family":"Lister","sequence":"additional","affiliation":[]},{"given":"J. D.","family":"Little","sequence":"additional","affiliation":[]},{"given":"B.","family":"Liu","sequence":"additional","affiliation":[]},{"given":"B. X.","family":"Liu","sequence":"additional","affiliation":[]},{"given":"H. B.","family":"Liu","sequence":"additional","affiliation":[]},{"given":"H.","family":"Liu","sequence":"additional","affiliation":[]},{"given":"J. B.","family":"Liu","sequence":"additional","affiliation":[]},{"given":"J. K. K.","family":"Liu","sequence":"additional","affiliation":[]},{"given":"K.","family":"Liu","sequence":"additional","affiliation":[]},{"given":"M.","family":"Liu","sequence":"additional","affiliation":[]},{"given":"M. Y.","family":"Liu","sequence":"additional","affiliation":[]},{"given":"P.","family":"Liu","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Liu","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Liu","sequence":"additional","affiliation":[]},{"given":"Y. L.","family":"Liu","sequence":"additional","affiliation":[]},{"given":"Y. W.","family":"Liu","sequence":"additional","affiliation":[]},{"given":"M.","family":"Livan","sequence":"additional","affiliation":[]},{"given":"A.","family":"Lleres","sequence":"additional","affiliation":[]},{"given":"J.","family":"Llorente Merino","sequence":"additional","affiliation":[]},{"given":"S. L.","family":"Lloyd","sequence":"additional","affiliation":[]},{"given":"C. Y.","family":"Lo","sequence":"additional","affiliation":[]},{"given":"E. M.","family":"Lobodzinska","sequence":"additional","affiliation":[]},{"given":"P.","family":"Loch","sequence":"additional","affiliation":[]},{"given":"S.","family":"Loffredo","sequence":"additional","affiliation":[]},{"given":"T.","family":"Lohse","sequence":"additional","affiliation":[]},{"given":"K.","family":"Lohwasser","sequence":"additional","affiliation":[]},{"given":"M.","family":"Lokajicek","sequence":"additional","affiliation":[]},{"given":"J. D.","family":"Long","sequence":"additional","affiliation":[]},{"given":"R. E.","family":"Long","sequence":"additional","affiliation":[]},{"given":"L.","family":"Longo","sequence":"additional","affiliation":[]},{"given":"K. A.","family":"Looper","sequence":"additional","affiliation":[]},{"given":"J. A.","family":"Lopez","sequence":"additional","affiliation":[]},{"given":"I. Lopez","family":"Paz","sequence":"additional","affiliation":[]},{"given":"A.","family":"Lopez Solis","sequence":"additional","affiliation":[]},{"given":"J.","family":"Lorenz","sequence":"additional","affiliation":[]},{"given":"N.","family":"Lorenzo Martinez","sequence":"additional","affiliation":[]},{"given":"A. M.","family":"Lory","sequence":"additional","affiliation":[]},{"given":"M.","family":"Losada","sequence":"additional","affiliation":[]},{"given":"P. J.","family":"L\u00f6sel","sequence":"additional","affiliation":[]},{"given":"A.","family":"L\u00f6sle","sequence":"additional","affiliation":[]},{"given":"X.","family":"Lou","sequence":"additional","affiliation":[]},{"given":"X.","family":"Lou","sequence":"additional","affiliation":[]},{"given":"A.","family":"Lounis","sequence":"additional","affiliation":[]},{"given":"J.","family":"Love","sequence":"additional","affiliation":[]},{"given":"P. A.","family":"Love","sequence":"additional","affiliation":[]},{"given":"J. J.","family":"Lozano Bahilo","sequence":"additional","affiliation":[]},{"given":"M.","family":"Lu","sequence":"additional","affiliation":[]},{"given":"Y. J.","family":"Lu","sequence":"additional","affiliation":[]},{"given":"H. J.","family":"Lubatti","sequence":"additional","affiliation":[]},{"given":"C.","family":"Luci","sequence":"additional","affiliation":[]},{"given":"A.","family":"Lucotte","sequence":"additional","affiliation":[]},{"given":"C.","family":"Luedtke","sequence":"additional","affiliation":[]},{"given":"F.","family":"Luehring","sequence":"additional","affiliation":[]},{"given":"I.","family":"Luise","sequence":"additional","affiliation":[]},{"given":"L.","family":"Luminari","sequence":"additional","affiliation":[]},{"given":"B.","family":"Lund-Jensen","sequence":"additional","affiliation":[]},{"given":"M. S.","family":"Lutz","sequence":"additional","affiliation":[]},{"given":"D.","family":"Lynn","sequence":"additional","affiliation":[]},{"given":"H.","family":"Lyons","sequence":"additional","affiliation":[]},{"given":"R.","family":"Lysak","sequence":"additional","affiliation":[]},{"given":"E.","family":"Lytken","sequence":"additional","affiliation":[]},{"given":"F.","family":"Lyu","sequence":"additional","affiliation":[]},{"given":"V.","family":"Lyubushkin","sequence":"additional","affiliation":[]},{"given":"T.","family":"Lyubushkina","sequence":"additional","affiliation":[]},{"given":"H.","family":"Ma","sequence":"additional","affiliation":[]},{"given":"L. L.","family":"Ma","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Ma","sequence":"additional","affiliation":[]},{"given":"G.","family":"Maccarrone","sequence":"additional","affiliation":[]},{"given":"A.","family":"Macchiolo","sequence":"additional","affiliation":[]},{"given":"C. M.","family":"Macdonald","sequence":"additional","affiliation":[]},{"given":"J.","family":"Machado Miguens","sequence":"additional","affiliation":[]},{"given":"D.","family":"Madaffari","sequence":"additional","affiliation":[]},{"given":"R.","family":"Madar","sequence":"additional","affiliation":[]},{"given":"W. F.","family":"Mader","sequence":"additional","affiliation":[]},{"given":"M.","family":"Madugoda Ralalage Don","sequence":"additional","affiliation":[]},{"given":"N.","family":"Madysa","sequence":"additional","affiliation":[]},{"given":"J.","family":"Maeda","sequence":"additional","affiliation":[]},{"given":"T.","family":"Maeno","sequence":"additional","affiliation":[]},{"given":"M.","family":"Maerker","sequence":"additional","affiliation":[]},{"given":"V.","family":"Magerl","sequence":"additional","affiliation":[]},{"given":"N.","family":"Magini","sequence":"additional","affiliation":[]},{"given":"J.","family":"Magro","sequence":"additional","affiliation":[]},{"given":"D. J.","family":"Mahon","sequence":"additional","affiliation":[]},{"given":"C.","family":"Maidantchik","sequence":"additional","affiliation":[]},{"given":"T.","family":"Maier","sequence":"additional","affiliation":[]},{"given":"A.","family":"Maio","sequence":"additional","affiliation":[]},{"given":"K.","family":"Maj","sequence":"additional","affiliation":[]},{"given":"O.","family":"Majersky","sequence":"additional","affiliation":[]},{"given":"S.","family":"Majewski","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Makida","sequence":"additional","affiliation":[]},{"given":"N.","family":"Makovec","sequence":"additional","affiliation":[]},{"given":"B.","family":"Malaescu","sequence":"additional","affiliation":[]},{"given":"Pa.","family":"Malecki","sequence":"additional","affiliation":[]},{"given":"V. P.","family":"Maleev","sequence":"additional","affiliation":[]},{"given":"F.","family":"Malek","sequence":"additional","affiliation":[]},{"given":"U.","family":"Mallik","sequence":"additional","affiliation":[]},{"given":"D.","family":"Malon","sequence":"additional","affiliation":[]},{"given":"C.","family":"Malone","sequence":"additional","affiliation":[]},{"given":"S.","family":"Maltezos","sequence":"additional","affiliation":[]},{"given":"S.","family":"Malyukov","sequence":"additional","affiliation":[]},{"given":"J.","family":"Mamuzic","sequence":"additional","affiliation":[]},{"given":"G.","family":"Mancini","sequence":"additional","affiliation":[]},{"given":"I.","family":"Mandi\u0107","sequence":"additional","affiliation":[]},{"given":"L.","family":"Manhaes de Andrade Filho","sequence":"additional","affiliation":[]},{"given":"I. M.","family":"Maniatis","sequence":"additional","affiliation":[]},{"given":"J.","family":"Manjarres Ramos","sequence":"additional","affiliation":[]},{"given":"K. H.","family":"Mankinen","sequence":"additional","affiliation":[]},{"given":"A.","family":"Mann","sequence":"additional","affiliation":[]},{"given":"A.","family":"Manousos","sequence":"additional","affiliation":[]},{"given":"B.","family":"Mansoulie","sequence":"additional","affiliation":[]},{"given":"I.","family":"Manthos","sequence":"additional","affiliation":[]},{"given":"S.","family":"Manzoni","sequence":"additional","affiliation":[]},{"given":"A.","family":"Marantis","sequence":"additional","affiliation":[]},{"given":"G.","family":"Marceca","sequence":"additional","affiliation":[]},{"given":"L.","family":"Marchese","sequence":"additional","affiliation":[]},{"given":"G.","family":"Marchiori","sequence":"additional","affiliation":[]},{"given":"M.","family":"Marcisovsky","sequence":"additional","affiliation":[]},{"given":"L.","family":"Marcoccia","sequence":"additional","affiliation":[]},{"given":"C.","family":"Marcon","sequence":"additional","affiliation":[]},{"given":"C. A.","family":"Marin Tobon","sequence":"additional","affiliation":[]},{"given":"M.","family":"Marjanovic","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Marshall","sequence":"additional","affiliation":[]},{"given":"M. U. F.","family":"Martensson","sequence":"additional","affiliation":[]},{"given":"S.","family":"Marti-Garcia","sequence":"additional","affiliation":[]},{"given":"C. B.","family":"Martin","sequence":"additional","affiliation":[]},{"given":"T. A.","family":"Martin","sequence":"additional","affiliation":[]},{"given":"V. J.","family":"Martin","sequence":"additional","affiliation":[]},{"given":"B.","family":"Martin dit Latour","sequence":"additional","affiliation":[]},{"given":"L.","family":"Martinelli","sequence":"additional","affiliation":[]},{"given":"M.","family":"Martinez","sequence":"additional","affiliation":[]},{"given":"V. I.","family":"Martinez Outschoorn","sequence":"additional","affiliation":[]},{"given":"S.","family":"Martin-Haugh","sequence":"additional","affiliation":[]},{"given":"V. S.","family":"Martoiu","sequence":"additional","affiliation":[]},{"given":"A. C.","family":"Martyniuk","sequence":"additional","affiliation":[]},{"given":"A.","family":"Marzin","sequence":"additional","affiliation":[]},{"given":"S. R.","family":"Maschek","sequence":"additional","affiliation":[]},{"given":"L.","family":"Masetti","sequence":"additional","affiliation":[]},{"given":"T.","family":"Mashimo","sequence":"additional","affiliation":[]},{"given":"R.","family":"Mashinistov","sequence":"additional","affiliation":[]},{"given":"J.","family":"Masik","sequence":"additional","affiliation":[]},{"given":"A. L.","family":"Maslennikov","sequence":"additional","affiliation":[]},{"given":"L.","family":"Massa","sequence":"additional","affiliation":[]},{"given":"P.","family":"Massarotti","sequence":"additional","affiliation":[]},{"given":"P.","family":"Mastrandrea","sequence":"additional","affiliation":[]},{"given":"A.","family":"Mastroberardino","sequence":"additional","affiliation":[]},{"given":"T.","family":"Masubuchi","sequence":"additional","affiliation":[]},{"given":"D.","family":"Matakias","sequence":"additional","affiliation":[]},{"given":"A.","family":"Matic","sequence":"additional","affiliation":[]},{"given":"N.","family":"Matsuzawa","sequence":"additional","affiliation":[]},{"given":"P.","family":"M\u00e4ttig","sequence":"additional","affiliation":[]},{"given":"J.","family":"Maurer","sequence":"additional","affiliation":[]},{"given":"B.","family":"Ma\u010dek","sequence":"additional","affiliation":[]},{"given":"D. A.","family":"Maximov","sequence":"additional","affiliation":[]},{"given":"R.","family":"Mazini","sequence":"additional","affiliation":[]},{"given":"I.","family":"Maznas","sequence":"additional","affiliation":[]},{"given":"S. M.","family":"Mazza","sequence":"additional","affiliation":[]},{"given":"S. P.","family":"Mc Kee","sequence":"additional","affiliation":[]},{"given":"T. G.","family":"McCarthy","sequence":"additional","affiliation":[]},{"given":"W. P.","family":"McCormack","sequence":"additional","affiliation":[]},{"given":"E. F.","family":"McDonald","sequence":"additional","affiliation":[]},{"given":"J. A.","family":"Mcfayden","sequence":"additional","affiliation":[]},{"given":"G.","family":"Mchedlidze","sequence":"additional","affiliation":[]},{"given":"M. A.","family":"McKay","sequence":"additional","affiliation":[]},{"given":"K. D.","family":"McLean","sequence":"additional","affiliation":[]},{"given":"S. J.","family":"McMahon","sequence":"additional","affiliation":[]},{"given":"P. C.","family":"McNamara","sequence":"additional","affiliation":[]},{"given":"C. J.","family":"McNicol","sequence":"additional","affiliation":[]},{"given":"R. A.","family":"McPherson","sequence":"additional","affiliation":[]},{"given":"J. E.","family":"Mdhluli","sequence":"additional","affiliation":[]},{"given":"Z. A.","family":"Meadows","sequence":"additional","affiliation":[]},{"given":"S.","family":"Meehan","sequence":"additional","affiliation":[]},{"given":"T.","family":"Megy","sequence":"additional","affiliation":[]},{"given":"S.","family":"Mehlhase","sequence":"additional","affiliation":[]},{"given":"A.","family":"Mehta","sequence":"additional","affiliation":[]},{"given":"T.","family":"Meideck","sequence":"additional","affiliation":[]},{"given":"B.","family":"Meirose","sequence":"additional","affiliation":[]},{"given":"D.","family":"Melini","sequence":"additional","affiliation":[]},{"given":"B. R.","family":"Mellado Garcia","sequence":"additional","affiliation":[]},{"given":"J. D.","family":"Mellenthin","sequence":"additional","affiliation":[]},{"given":"M.","family":"Melo","sequence":"additional","affiliation":[]},{"given":"F.","family":"Meloni","sequence":"additional","affiliation":[]},{"given":"A.","family":"Melzer","sequence":"additional","affiliation":[]},{"given":"S. B.","family":"Menary","sequence":"additional","affiliation":[]},{"given":"E. D.","family":"Mendes Gouveia","sequence":"additional","affiliation":[]},{"given":"L.","family":"Meng","sequence":"additional","affiliation":[]},{"given":"X. T.","family":"Meng","sequence":"additional","affiliation":[]},{"given":"S.","family":"Menke","sequence":"additional","affiliation":[]},{"given":"E.","family":"Meoni","sequence":"additional","affiliation":[]},{"given":"S.","family":"Mergelmeyer","sequence":"additional","affiliation":[]},{"given":"S. A. M.","family":"Merkt","sequence":"additional","affiliation":[]},{"given":"C.","family":"Merlassino","sequence":"additional","affiliation":[]},{"given":"P.","family":"Mermod","sequence":"additional","affiliation":[]},{"given":"L.","family":"Merola","sequence":"additional","affiliation":[]},{"given":"C.","family":"Meroni","sequence":"additional","affiliation":[]},{"given":"G.","family":"Merz","sequence":"additional","affiliation":[]},{"given":"O.","family":"Meshkov","sequence":"additional","affiliation":[]},{"given":"J. K. R.","family":"Meshreki","sequence":"additional","affiliation":[]},{"given":"A.","family":"Messina","sequence":"additional","affiliation":[]},{"given":"J.","family":"Metcalfe","sequence":"additional","affiliation":[]},{"given":"A. S.","family":"Mete","sequence":"additional","affiliation":[]},{"given":"C.","family":"Meyer","sequence":"additional","affiliation":[]},{"given":"J-P.","family":"Meyer","sequence":"additional","affiliation":[]},{"given":"H.","family":"Meyer Zu Theenhausen","sequence":"additional","affiliation":[]},{"given":"F.","family":"Miano","sequence":"additional","affiliation":[]},{"given":"M.","family":"Michetti","sequence":"additional","affiliation":[]},{"given":"R. P.","family":"Middleton","sequence":"additional","affiliation":[]},{"given":"L.","family":"Mijovi\u0107","sequence":"additional","affiliation":[]},{"given":"G.","family":"Mikenberg","sequence":"additional","affiliation":[]},{"given":"M.","family":"Mikestikova","sequence":"additional","affiliation":[]},{"given":"M.","family":"Miku\u017e","sequence":"additional","affiliation":[]},{"given":"H.","family":"Mildner","sequence":"additional","affiliation":[]},{"given":"M.","family":"Milesi","sequence":"additional","affiliation":[]},{"given":"A.","family":"Milic","sequence":"additional","affiliation":[]},{"given":"C. D.","family":"Milke","sequence":"additional","affiliation":[]},{"given":"D. A.","family":"Millar","sequence":"additional","affiliation":[]},{"given":"D. W.","family":"Miller","sequence":"additional","affiliation":[]},{"given":"A.","family":"Milov","sequence":"additional","affiliation":[]},{"given":"D. A.","family":"Milstead","sequence":"additional","affiliation":[]},{"given":"R. A.","family":"Mina","sequence":"additional","affiliation":[]},{"given":"A. A.","family":"Minaenko","sequence":"additional","affiliation":[]},{"given":"M.","family":"Mi\u00f1ano Moya","sequence":"additional","affiliation":[]},{"given":"I. A.","family":"Minashvili","sequence":"additional","affiliation":[]},{"given":"A. I.","family":"Mincer","sequence":"additional","affiliation":[]},{"given":"B.","family":"Mindur","sequence":"additional","affiliation":[]},{"given":"M.","family":"Mineev","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Minegishi","sequence":"additional","affiliation":[]},{"given":"L. M.","family":"Mir","sequence":"additional","affiliation":[]},{"given":"A.","family":"Mirto","sequence":"additional","affiliation":[]},{"given":"K. P.","family":"Mistry","sequence":"additional","affiliation":[]},{"given":"T.","family":"Mitani","sequence":"additional","affiliation":[]},{"given":"J.","family":"Mitrevski","sequence":"additional","affiliation":[]},{"given":"V. A.","family":"Mitsou","sequence":"additional","affiliation":[]},{"given":"M.","family":"Mittal","sequence":"additional","affiliation":[]},{"given":"O.","family":"Miu","sequence":"additional","affiliation":[]},{"given":"A.","family":"Miucci","sequence":"additional","affiliation":[]},{"given":"P. S.","family":"Miyagawa","sequence":"additional","affiliation":[]},{"given":"A.","family":"Mizukami","sequence":"additional","affiliation":[]},{"given":"J. U.","family":"Mj\u00f6rnmark","sequence":"additional","affiliation":[]},{"given":"T.","family":"Mkrtchyan","sequence":"additional","affiliation":[]},{"given":"M.","family":"Mlynarikova","sequence":"additional","affiliation":[]},{"given":"T.","family":"Moa","sequence":"additional","affiliation":[]},{"given":"K.","family":"Mochizuki","sequence":"additional","affiliation":[]},{"given":"P.","family":"Mogg","sequence":"additional","affiliation":[]},{"given":"S.","family":"Mohapatra","sequence":"additional","affiliation":[]},{"given":"R.","family":"Moles-Valls","sequence":"additional","affiliation":[]},{"given":"M. C.","family":"Mondragon","sequence":"additional","affiliation":[]},{"given":"K.","family":"M\u00f6nig","sequence":"additional","affiliation":[]},{"given":"J.","family":"Monk","sequence":"additional","affiliation":[]},{"given":"E.","family":"Monnier","sequence":"additional","affiliation":[]},{"given":"A.","family":"Montalbano","sequence":"additional","affiliation":[]},{"given":"J.","family":"Montejo Berlingen","sequence":"additional","affiliation":[]},{"given":"M.","family":"Montella","sequence":"additional","affiliation":[]},{"given":"F.","family":"Monticelli","sequence":"additional","affiliation":[]},{"given":"N.","family":"Morange","sequence":"additional","affiliation":[]},{"given":"D.","family":"Moreno","sequence":"additional","affiliation":[]},{"given":"M.","family":"Moreno Ll\u00e1cer","sequence":"additional","affiliation":[]},{"given":"C.","family":"Moreno Martinez","sequence":"additional","affiliation":[]},{"given":"P.","family":"Morettini","sequence":"additional","affiliation":[]},{"given":"M.","family":"Morgenstern","sequence":"additional","affiliation":[]},{"given":"S.","family":"Morgenstern","sequence":"additional","affiliation":[]},{"given":"D.","family":"Mori","sequence":"additional","affiliation":[]},{"given":"M.","family":"Morii","sequence":"additional","affiliation":[]},{"given":"M.","family":"Morinaga","sequence":"additional","affiliation":[]},{"given":"V.","family":"Morisbak","sequence":"additional","affiliation":[]},{"given":"A. K.","family":"Morley","sequence":"additional","affiliation":[]},{"given":"G.","family":"Mornacchi","sequence":"additional","affiliation":[]},{"given":"A. P.","family":"Morris","sequence":"additional","affiliation":[]},{"given":"L.","family":"Morvaj","sequence":"additional","affiliation":[]},{"given":"P.","family":"Moschovakos","sequence":"additional","affiliation":[]},{"given":"B.","family":"Moser","sequence":"additional","affiliation":[]},{"given":"M.","family":"Mosidze","sequence":"additional","affiliation":[]},{"given":"T.","family":"Moskalets","sequence":"additional","affiliation":[]},{"given":"H. J.","family":"Moss","sequence":"additional","affiliation":[]},{"given":"J.","family":"Moss","sequence":"additional","affiliation":[]},{"given":"E. J. W.","family":"Moyse","sequence":"additional","affiliation":[]},{"given":"S.","family":"Muanza","sequence":"additional","affiliation":[]},{"given":"J.","family":"Mueller","sequence":"additional","affiliation":[]},{"given":"R. S. P.","family":"Mueller","sequence":"additional","affiliation":[]},{"given":"D.","family":"Muenstermann","sequence":"additional","affiliation":[]},{"given":"G. A.","family":"Mullier","sequence":"additional","affiliation":[]},{"given":"D. P.","family":"Mungo","sequence":"additional","affiliation":[]},{"given":"J. L.","family":"Munoz Martinez","sequence":"additional","affiliation":[]},{"given":"F. J.","family":"Munoz Sanchez","sequence":"additional","affiliation":[]},{"given":"P.","family":"Murin","sequence":"additional","affiliation":[]},{"given":"W. J.","family":"Murray","sequence":"additional","affiliation":[]},{"given":"A.","family":"Murrone","sequence":"additional","affiliation":[]},{"given":"M.","family":"Mu\u0161kinja","sequence":"additional","affiliation":[]},{"given":"kinja C.","family":"Mwewa","sequence":"additional","affiliation":[]},{"given":"A. G.","family":"Myagkov","sequence":"additional","affiliation":[]},{"given":"A. A.","family":"Myers","sequence":"additional","affiliation":[]},{"given":"J.","family":"Myers","sequence":"additional","affiliation":[]},{"given":"M.","family":"Myska","sequence":"additional","affiliation":[]},{"given":"B. P.","family":"Nachman","sequence":"additional","affiliation":[]},{"given":"O.","family":"Nackenhorst","sequence":"additional","affiliation":[]},{"given":"A. Nag","family":"Nag","sequence":"additional","affiliation":[]},{"given":"K.","family":"Nagai","sequence":"additional","affiliation":[]},{"given":"K.","family":"Nagano","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Nagasaka","sequence":"additional","affiliation":[]},{"given":"J. L.","family":"Nagle","sequence":"additional","affiliation":[]},{"given":"E.","family":"Nagy","sequence":"additional","affiliation":[]},{"given":"A. M.","family":"Nairz","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Nakahama","sequence":"additional","affiliation":[]},{"given":"K.","family":"Nakamura","sequence":"additional","affiliation":[]},{"given":"T.","family":"Nakamura","sequence":"additional","affiliation":[]},{"given":"I.","family":"Nakano","sequence":"additional","affiliation":[]},{"given":"H.","family":"Nanjo","sequence":"additional","affiliation":[]},{"given":"F.","family":"Napolitano","sequence":"additional","affiliation":[]},{"given":"R. F.","family":"Naranjo Garcia","sequence":"additional","affiliation":[]},{"given":"R.","family":"Narayan","sequence":"additional","affiliation":[]},{"given":"I.","family":"Naryshkin","sequence":"additional","affiliation":[]},{"given":"T.","family":"Naumann","sequence":"additional","affiliation":[]},{"given":"G.","family":"Navarro","sequence":"additional","affiliation":[]},{"given":"P. Y.","family":"Nechaeva","sequence":"additional","affiliation":[]},{"given":"F.","family":"Nechansky","sequence":"additional","affiliation":[]},{"given":"T. J.","family":"Neep","sequence":"additional","affiliation":[]},{"given":"A.","family":"Negri","sequence":"additional","affiliation":[]},{"given":"M.","family":"Negrini","sequence":"additional","affiliation":[]},{"given":"C.","family":"Nellist","sequence":"additional","affiliation":[]},{"given":"M. E.","family":"Nelson","sequence":"additional","affiliation":[]},{"given":"S.","family":"Nemecek","sequence":"additional","affiliation":[]},{"given":"M.","family":"Nessi","sequence":"additional","affiliation":[]},{"given":"M. S.","family":"Neubauer","sequence":"additional","affiliation":[]},{"given":"F.","family":"Neuhaus","sequence":"additional","affiliation":[]},{"given":"M.","family":"Neumann","sequence":"additional","affiliation":[]},{"given":"R.","family":"Newhouse","sequence":"additional","affiliation":[]},{"given":"P. R.","family":"Newman","sequence":"additional","affiliation":[]},{"given":"C. W.","family":"Ng","sequence":"additional","affiliation":[]},{"given":"Y. S.","family":"Ng","sequence":"additional","affiliation":[]},{"given":"Y. W. Y.","family":"Ng","sequence":"additional","affiliation":[]},{"given":"B.","family":"Ngair","sequence":"additional","affiliation":[]},{"given":"H. D. N.","family":"Nguyen","sequence":"additional","affiliation":[]},{"given":"T.","family":"Nguyen Manh","sequence":"additional","affiliation":[]},{"given":"E.","family":"Nibigira","sequence":"additional","affiliation":[]},{"given":"R. B.","family":"Nickerson","sequence":"additional","affiliation":[]},{"given":"R.","family":"Nicolaidou","sequence":"additional","affiliation":[]},{"given":"D. S.","family":"Nielsen","sequence":"additional","affiliation":[]},{"given":"J.","family":"Nielsen","sequence":"additional","affiliation":[]},{"given":"N.","family":"Nikiforou","sequence":"additional","affiliation":[]},{"given":"V.","family":"Nikolaenko","sequence":"additional","affiliation":[]},{"given":"I.","family":"Nikolic-Audit","sequence":"additional","affiliation":[]},{"given":"K.","family":"Nikolopoulos","sequence":"additional","affiliation":[]},{"given":"P.","family":"Nilsson","sequence":"additional","affiliation":[]},{"given":"H. R.","family":"Nindhito","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Ninomiya","sequence":"additional","affiliation":[]},{"given":"A.","family":"Nisati","sequence":"additional","affiliation":[]},{"given":"N.","family":"Nishu","sequence":"additional","affiliation":[]},{"given":"R.","family":"Nisius","sequence":"additional","affiliation":[]},{"given":"I.","family":"Nitsche","sequence":"additional","affiliation":[]},{"given":"T.","family":"Nitta","sequence":"additional","affiliation":[]},{"given":"T.","family":"Nobe","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Noguchi","sequence":"additional","affiliation":[]},{"given":"I.","family":"Nomidis","sequence":"additional","affiliation":[]},{"given":"M. A.","family":"Nomura","sequence":"additional","affiliation":[]},{"given":"M.","family":"Nordberg","sequence":"additional","affiliation":[]},{"given":"T.","family":"Novak","sequence":"additional","affiliation":[]},{"given":"O.","family":"Novgorodova","sequence":"additional","affiliation":[]},{"given":"R.","family":"Novotny","sequence":"additional","affiliation":[]},{"given":"L.","family":"Nozka","sequence":"additional","affiliation":[]},{"given":"K.","family":"Ntekas","sequence":"additional","affiliation":[]},{"given":"E.","family":"Nurse","sequence":"additional","affiliation":[]},{"given":"F. G.","family":"Oakham","sequence":"additional","affiliation":[]},{"given":"H.","family":"Oberlack","sequence":"additional","affiliation":[]},{"given":"J.","family":"Ocariz","sequence":"additional","affiliation":[]},{"given":"A.","family":"Ochi","sequence":"additional","affiliation":[]},{"given":"I.","family":"Ochoa","sequence":"additional","affiliation":[]},{"given":"J. P.","family":"Ochoa-Ricoux","sequence":"additional","affiliation":[]},{"given":"K.","family":"O\u2019Connor","sequence":"additional","affiliation":[]},{"given":"S.","family":"Oda","sequence":"additional","affiliation":[]},{"given":"S.","family":"Odaka","sequence":"additional","affiliation":[]},{"given":"S.","family":"Oerdek","sequence":"additional","affiliation":[]},{"given":"A.","family":"Ogrodnik","sequence":"additional","affiliation":[]},{"given":"A.","family":"Oh","sequence":"additional","affiliation":[]},{"given":"S. H.","family":"Oh","sequence":"additional","affiliation":[]},{"given":"C. C.","family":"Ohm","sequence":"additional","affiliation":[]},{"given":"H.","family":"Oide","sequence":"additional","affiliation":[]},{"given":"M. L.","family":"Ojeda","sequence":"additional","affiliation":[]},{"given":"H.","family":"Okawa","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Okazaki","sequence":"additional","affiliation":[]},{"given":"M. W.","family":"O\u2019Keefe","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Okumura","sequence":"additional","affiliation":[]},{"given":"T.","family":"Okuyama","sequence":"additional","affiliation":[]},{"given":"A.","family":"Olariu","sequence":"additional","affiliation":[]},{"given":"L. F.","family":"Oleiro Seabra","sequence":"additional","affiliation":[]},{"given":"S. A.","family":"Olivares Pino","sequence":"additional","affiliation":[]},{"given":"D.","family":"Oliveira Damazio","sequence":"additional","affiliation":[]},{"given":"J. L.","family":"Oliver","sequence":"additional","affiliation":[]},{"given":"M. J. R.","family":"Olsson","sequence":"additional","affiliation":[]},{"given":"A.","family":"Olszewski","sequence":"additional","affiliation":[]},{"given":"J.","family":"Olszowska","sequence":"additional","affiliation":[]},{"given":"D. C.","family":"O\u2019Neil","sequence":"additional","affiliation":[]},{"given":"A. P.","family":"O\u2019neill","sequence":"additional","affiliation":[]},{"given":"A.","family":"Onofre","sequence":"additional","affiliation":[]},{"given":"P. U. E.","family":"Onyisi","sequence":"additional","affiliation":[]},{"given":"H.","family":"Oppen","sequence":"additional","affiliation":[]},{"given":"M. J.","family":"Oreglia","sequence":"additional","affiliation":[]},{"given":"G. E.","family":"Orellana","sequence":"additional","affiliation":[]},{"given":"D.","family":"Orestano","sequence":"additional","affiliation":[]},{"given":"N.","family":"Orlando","sequence":"additional","affiliation":[]},{"given":"R. S.","family":"Orr","sequence":"additional","affiliation":[]},{"given":"V.","family":"O\u2019Shea","sequence":"additional","affiliation":[]},{"given":"R.","family":"Ospanov","sequence":"additional","affiliation":[]},{"given":"G.","family":"Otero y Garzon","sequence":"additional","affiliation":[]},{"given":"H.","family":"Otono","sequence":"additional","affiliation":[]},{"given":"P. S.","family":"Ott","sequence":"additional","affiliation":[]},{"given":"M.","family":"Ouchrif","sequence":"additional","affiliation":[]},{"given":"J.","family":"Ouellette","sequence":"additional","affiliation":[]},{"given":"F.","family":"Ould-Saada","sequence":"additional","affiliation":[]},{"given":"A.","family":"Ouraou","sequence":"additional","affiliation":[]},{"given":"Q.","family":"Ouyang","sequence":"additional","affiliation":[]},{"given":"M.","family":"Owen","sequence":"additional","affiliation":[]},{"given":"R. E.","family":"Owen","sequence":"additional","affiliation":[]},{"given":"V. E.","family":"Ozcan","sequence":"additional","affiliation":[]},{"given":"N.","family":"Ozturk","sequence":"additional","affiliation":[]},{"given":"J.","family":"Pacalt","sequence":"additional","affiliation":[]},{"given":"H. A.","family":"Pacey","sequence":"additional","affiliation":[]},{"given":"K.","family":"Pachal","sequence":"additional","affiliation":[]},{"given":"A.","family":"Pacheco Pages","sequence":"additional","affiliation":[]},{"given":"C.","family":"Padilla Aranda","sequence":"additional","affiliation":[]},{"given":"S.","family":"Pagan Griso","sequence":"additional","affiliation":[]},{"given":"M.","family":"Paganini","sequence":"additional","affiliation":[]},{"given":"G.","family":"Palacino","sequence":"additional","affiliation":[]},{"given":"S.","family":"Palazzo","sequence":"additional","affiliation":[]},{"given":"S.","family":"Palestini","sequence":"additional","affiliation":[]},{"given":"M.","family":"Palka","sequence":"additional","affiliation":[]},{"given":"D.","family":"Pallin","sequence":"additional","affiliation":[]},{"given":"P.","family":"Palni","sequence":"additional","affiliation":[]},{"given":"I.","family":"Panagoulias","sequence":"additional","affiliation":[]},{"given":"C. E.","family":"Pandini","sequence":"additional","affiliation":[]},{"given":"J. G.","family":"Panduro Vazquez","sequence":"additional","affiliation":[]},{"given":"P.","family":"Pani","sequence":"additional","affiliation":[]},{"given":"G.","family":"Panizzo","sequence":"additional","affiliation":[]},{"given":"L.","family":"Paolozzi","sequence":"additional","affiliation":[]},{"given":"C.","family":"Papadatos","sequence":"additional","affiliation":[]},{"given":"K.","family":"Papageorgiou","sequence":"additional","affiliation":[]},{"given":"S.","family":"Parajuli","sequence":"additional","affiliation":[]},{"given":"A.","family":"Paramonov","sequence":"additional","affiliation":[]},{"given":"D.","family":"Paredes Hernandez","sequence":"additional","affiliation":[]},{"given":"S. R.","family":"Paredes Saenz","sequence":"additional","affiliation":[]},{"given":"B.","family":"Parida","sequence":"additional","affiliation":[]},{"given":"T. H.","family":"Park","sequence":"additional","affiliation":[]},{"given":"A. J.","family":"Parker","sequence":"additional","affiliation":[]},{"given":"M. A.","family":"Parker","sequence":"additional","affiliation":[]},{"given":"F.","family":"Parodi","sequence":"additional","affiliation":[]},{"given":"E. W.","family":"Parrish","sequence":"additional","affiliation":[]},{"given":"J. A.","family":"Parsons","sequence":"additional","affiliation":[]},{"given":"U.","family":"Parzefall","sequence":"additional","affiliation":[]},{"given":"L.","family":"Pascual Dominguez","sequence":"additional","affiliation":[]},{"given":"V. R.","family":"Pascuzzi","sequence":"additional","affiliation":[]},{"given":"J. M. P.","family":"Pasner","sequence":"additional","affiliation":[]},{"given":"F.","family":"Pasquali","sequence":"additional","affiliation":[]},{"given":"E.","family":"Pasqualucci","sequence":"additional","affiliation":[]},{"given":"S.","family":"Passaggio","sequence":"additional","affiliation":[]},{"given":"F.","family":"Pastore","sequence":"additional","affiliation":[]},{"given":"P.","family":"Pasuwan","sequence":"additional","affiliation":[]},{"given":"S.","family":"Pataraia","sequence":"additional","affiliation":[]},{"given":"J. R.","family":"Pater","sequence":"additional","affiliation":[]},{"given":"A.","family":"Pathak","sequence":"additional","affiliation":[]},{"given":"J.","family":"Patton","sequence":"additional","affiliation":[]},{"given":"T.","family":"Pauly","sequence":"additional","affiliation":[]},{"given":"J.","family":"Pearkes","sequence":"additional","affiliation":[]},{"given":"B.","family":"Pearson","sequence":"additional","affiliation":[]},{"given":"M.","family":"Pedersen","sequence":"additional","affiliation":[]},{"given":"L.","family":"Pedraza Diaz","sequence":"additional","affiliation":[]},{"given":"R.","family":"Pedro","sequence":"additional","affiliation":[]},{"given":"T.","family":"Peiffer","sequence":"additional","affiliation":[]},{"given":"S. V.","family":"Peleganchuk","sequence":"additional","affiliation":[]},{"given":"O.","family":"Penc","sequence":"additional","affiliation":[]},{"given":"H.","family":"Peng","sequence":"additional","affiliation":[]},{"given":"B. S.","family":"Peralva","sequence":"additional","affiliation":[]},{"given":"M. M.","family":"Perego","sequence":"additional","affiliation":[]},{"given":"A. P.","family":"Pereira Peixoto","sequence":"additional","affiliation":[]},{"given":"L.","family":"Pereira Sanchez","sequence":"additional","affiliation":[]},{"given":"D. V.","family":"Perepelitsa","sequence":"additional","affiliation":[]},{"given":"F.","family":"Peri","sequence":"additional","affiliation":[]},{"given":"L.","family":"Perini","sequence":"additional","affiliation":[]},{"given":"H.","family":"Pernegger","sequence":"additional","affiliation":[]},{"given":"S.","family":"Perrella","sequence":"additional","affiliation":[]},{"given":"A.","family":"Perrevoort","sequence":"additional","affiliation":[]},{"given":"K.","family":"Peters","sequence":"additional","affiliation":[]},{"given":"R. F. Y.","family":"Peters","sequence":"additional","affiliation":[]},{"given":"B. A.","family":"Petersen","sequence":"additional","affiliation":[]},{"given":"T. C.","family":"Petersen","sequence":"additional","affiliation":[]},{"given":"E.","family":"Petit","sequence":"additional","affiliation":[]},{"given":"A.","family":"Petridis","sequence":"additional","affiliation":[]},{"given":"C.","family":"Petridou","sequence":"additional","affiliation":[]},{"given":"M.","family":"Petrov","sequence":"additional","affiliation":[]},{"given":"F.","family":"Petrucci","sequence":"additional","affiliation":[]},{"given":"M.","family":"Pettee","sequence":"additional","affiliation":[]},{"given":"N. E.","family":"Pettersson","sequence":"additional","affiliation":[]},{"given":"K.","family":"Petukhova","sequence":"additional","affiliation":[]},{"given":"A.","family":"Peyaud","sequence":"additional","affiliation":[]},{"given":"R.","family":"Pezoa","sequence":"additional","affiliation":[]},{"given":"L.","family":"Pezzotti","sequence":"additional","affiliation":[]},{"given":"T.","family":"Pham","sequence":"additional","affiliation":[]},{"given":"F. H.","family":"Phillips","sequence":"additional","affiliation":[]},{"given":"P. W.","family":"Phillips","sequence":"additional","affiliation":[]},{"given":"M. W.","family":"Phipps","sequence":"additional","affiliation":[]},{"given":"G.","family":"Piacquadio","sequence":"additional","affiliation":[]},{"given":"E.","family":"Pianori","sequence":"additional","affiliation":[]},{"given":"A.","family":"Picazio","sequence":"additional","affiliation":[]},{"given":"R. H.","family":"Pickles","sequence":"additional","affiliation":[]},{"given":"R.","family":"Piegaia","sequence":"additional","affiliation":[]},{"given":"D.","family":"Pietreanu","sequence":"additional","affiliation":[]},{"given":"J. E.","family":"Pilcher","sequence":"additional","affiliation":[]},{"given":"A. D.","family":"Pilkington","sequence":"additional","affiliation":[]},{"given":"M.","family":"Pinamonti","sequence":"additional","affiliation":[]},{"given":"J. L.","family":"Pinfold","sequence":"additional","affiliation":[]},{"given":"M.","family":"Pitt","sequence":"additional","affiliation":[]},{"given":"L.","family":"Pizzimento","sequence":"additional","affiliation":[]},{"given":"M.-A.","family":"Pleier","sequence":"additional","affiliation":[]},{"given":"V.","family":"Pleskot","sequence":"additional","affiliation":[]},{"given":"E.","family":"Plotnikova","sequence":"additional","affiliation":[]},{"given":"P.","family":"Podberezko","sequence":"additional","affiliation":[]},{"given":"R.","family":"Poettgen","sequence":"additional","affiliation":[]},{"given":"R.","family":"Poggi","sequence":"additional","affiliation":[]},{"given":"L.","family":"Poggioli","sequence":"additional","affiliation":[]},{"given":"I.","family":"Pogrebnyak","sequence":"additional","affiliation":[]},{"given":"D.","family":"Pohl","sequence":"additional","affiliation":[]},{"given":"I.","family":"Pokharel","sequence":"additional","affiliation":[]},{"given":"G.","family":"Polesello","sequence":"additional","affiliation":[]},{"given":"A.","family":"Poley","sequence":"additional","affiliation":[]},{"given":"A.","family":"Policicchio","sequence":"additional","affiliation":[]},{"given":"R.","family":"Polifka","sequence":"additional","affiliation":[]},{"given":"A.","family":"Polini","sequence":"additional","affiliation":[]},{"given":"C. S.","family":"Pollard","sequence":"additional","affiliation":[]},{"given":"V.","family":"Polychronakos","sequence":"additional","affiliation":[]},{"given":"D.","family":"Ponomarenko","sequence":"additional","affiliation":[]},{"given":"L.","family":"Pontecorvo","sequence":"additional","affiliation":[]},{"given":"S.","family":"Popa","sequence":"additional","affiliation":[]},{"given":"G. A.","family":"Popeneciu","sequence":"additional","affiliation":[]},{"given":"L.","family":"Portales","sequence":"additional","affiliation":[]},{"given":"D. M.","family":"Portillo Quintero","sequence":"additional","affiliation":[]},{"given":"S.","family":"Pospisil","sequence":"additional","affiliation":[]},{"given":"K.","family":"Potamianos","sequence":"additional","affiliation":[]},{"given":"I. N.","family":"Potrap","sequence":"additional","affiliation":[]},{"given":"C. J.","family":"Potter","sequence":"additional","affiliation":[]},{"given":"H.","family":"Potti","sequence":"additional","affiliation":[]},{"given":"T.","family":"Poulsen","sequence":"additional","affiliation":[]},{"given":"J.","family":"Poveda","sequence":"additional","affiliation":[]},{"given":"T. D.","family":"Powell","sequence":"additional","affiliation":[]},{"given":"G.","family":"Pownall","sequence":"additional","affiliation":[]},{"given":"M. E.","family":"Pozo Astigarraga","sequence":"additional","affiliation":[]},{"given":"P.","family":"Pralavorio","sequence":"additional","affiliation":[]},{"given":"S.","family":"Prell","sequence":"additional","affiliation":[]},{"given":"D.","family":"Price","sequence":"additional","affiliation":[]},{"given":"M.","family":"Primavera","sequence":"additional","affiliation":[]},{"given":"S.","family":"Prince","sequence":"additional","affiliation":[]},{"given":"M. L.","family":"Proffitt","sequence":"additional","affiliation":[]},{"given":"N.","family":"Proklova","sequence":"additional","affiliation":[]},{"given":"K.","family":"Prokofiev","sequence":"additional","affiliation":[]},{"given":"F.","family":"Prokoshin","sequence":"additional","affiliation":[]},{"given":"S.","family":"Protopopescu","sequence":"additional","affiliation":[]},{"given":"J.","family":"Proudfoot","sequence":"additional","affiliation":[]},{"given":"M.","family":"Przybycien","sequence":"additional","affiliation":[]},{"given":"D.","family":"Pudzha","sequence":"additional","affiliation":[]},{"given":"A.","family":"Puri","sequence":"additional","affiliation":[]},{"given":"P.","family":"Puzo","sequence":"additional","affiliation":[]},{"given":"J.","family":"Qian","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Qin","sequence":"additional","affiliation":[]},{"given":"A.","family":"Quadt","sequence":"additional","affiliation":[]},{"given":"M.","family":"Queitsch-Maitland","sequence":"additional","affiliation":[]},{"given":"A.","family":"Qureshi","sequence":"additional","affiliation":[]},{"given":"M.","family":"Racko","sequence":"additional","affiliation":[]},{"given":"F.","family":"Ragusa","sequence":"additional","affiliation":[]},{"given":"G.","family":"Rahal","sequence":"additional","affiliation":[]},{"given":"J. A.","family":"Raine","sequence":"additional","affiliation":[]},{"given":"S.","family":"Rajagopalan","sequence":"additional","affiliation":[]},{"given":"A. Ramirez","family":"Morales","sequence":"additional","affiliation":[]},{"given":"K.","family":"Ran","sequence":"additional","affiliation":[]},{"given":"T.","family":"Rashid","sequence":"additional","affiliation":[]},{"given":"S.","family":"Raspopov","sequence":"additional","affiliation":[]},{"given":"D. M.","family":"Rauch","sequence":"additional","affiliation":[]},{"given":"F.","family":"Rauscher","sequence":"additional","affiliation":[]},{"given":"S.","family":"Rave","sequence":"additional","affiliation":[]},{"given":"B.","family":"Ravina","sequence":"additional","affiliation":[]},{"given":"I.","family":"Ravinovich","sequence":"additional","affiliation":[]},{"given":"J. H.","family":"Rawling","sequence":"additional","affiliation":[]},{"given":"M.","family":"Raymond","sequence":"additional","affiliation":[]},{"given":"A. L.","family":"Read","sequence":"additional","affiliation":[]},{"given":"N. P.","family":"Readioff","sequence":"additional","affiliation":[]},{"given":"M.","family":"Reale","sequence":"additional","affiliation":[]},{"given":"D. M.","family":"Rebuzzi","sequence":"additional","affiliation":[]},{"given":"A.","family":"Redelbach","sequence":"additional","affiliation":[]},{"given":"G.","family":"Redlinger","sequence":"additional","affiliation":[]},{"given":"K.","family":"Reeves","sequence":"additional","affiliation":[]},{"given":"L.","family":"Rehnisch","sequence":"additional","affiliation":[]},{"given":"J.","family":"Reichert","sequence":"additional","affiliation":[]},{"given":"D.","family":"Reikher","sequence":"additional","affiliation":[]},{"given":"A.","family":"Reiss","sequence":"additional","affiliation":[]},{"given":"A.","family":"Rej","sequence":"additional","affiliation":[]},{"given":"C.","family":"Rembser","sequence":"additional","affiliation":[]},{"given":"A.","family":"Renardi","sequence":"additional","affiliation":[]},{"given":"M.","family":"Renda","sequence":"additional","affiliation":[]},{"given":"M.","family":"Rescigno","sequence":"additional","affiliation":[]},{"given":"S.","family":"Resconi","sequence":"additional","affiliation":[]},{"given":"E. D.","family":"Resseguie","sequence":"additional","affiliation":[]},{"given":"S.","family":"Rettie","sequence":"additional","affiliation":[]},{"given":"B.","family":"Reynolds","sequence":"additional","affiliation":[]},{"given":"E.","family":"Reynolds","sequence":"additional","affiliation":[]},{"given":"O. L.","family":"Rezanova","sequence":"additional","affiliation":[]},{"given":"P.","family":"Reznicek","sequence":"additional","affiliation":[]},{"given":"E.","family":"Ricci","sequence":"additional","affiliation":[]},{"given":"R.","family":"Richter","sequence":"additional","affiliation":[]},{"given":"S.","family":"Richter","sequence":"additional","affiliation":[]},{"given":"E.","family":"Richter-Was","sequence":"additional","affiliation":[]},{"given":"O.","family":"Ricken","sequence":"additional","affiliation":[]},{"given":"M.","family":"Ridel","sequence":"additional","affiliation":[]},{"given":"P.","family":"Rieck","sequence":"additional","affiliation":[]},{"given":"O.","family":"Rifki","sequence":"additional","affiliation":[]},{"given":"M.","family":"Rijssenbeek","sequence":"additional","affiliation":[]},{"given":"A.","family":"Rimoldi","sequence":"additional","affiliation":[]},{"given":"M.","family":"Rimoldi","sequence":"additional","affiliation":[]},{"given":"L.","family":"Rinaldi","sequence":"additional","affiliation":[]},{"given":"G.","family":"Ripellino","sequence":"additional","affiliation":[]},{"given":"I.","family":"Riu","sequence":"additional","affiliation":[]},{"given":"J. C.","family":"Rivera Vergara","sequence":"additional","affiliation":[]},{"given":"F.","family":"Rizatdinova","sequence":"additional","affiliation":[]},{"given":"E.","family":"Rizvi","sequence":"additional","affiliation":[]},{"given":"C.","family":"Rizzi","sequence":"additional","affiliation":[]},{"given":"R. T.","family":"Roberts","sequence":"additional","affiliation":[]},{"given":"S. H.","family":"Robertson","sequence":"additional","affiliation":[]},{"given":"M.","family":"Robin","sequence":"additional","affiliation":[]},{"given":"D.","family":"Robinson","sequence":"additional","affiliation":[]},{"given":"C. M.","family":"Robles Gajardo","sequence":"additional","affiliation":[]},{"given":"M.","family":"Robles Manzano","sequence":"additional","affiliation":[]},{"given":"A.","family":"Robson","sequence":"additional","affiliation":[]},{"given":"A.","family":"Rocchi","sequence":"additional","affiliation":[]},{"given":"E.","family":"Rocco","sequence":"additional","affiliation":[]},{"given":"C.","family":"Roda","sequence":"additional","affiliation":[]},{"given":"S.","family":"Rodriguez Bosca","sequence":"additional","affiliation":[]},{"given":"A.","family":"Rodriguez Perez","sequence":"additional","affiliation":[]},{"given":"D.","family":"Rodriguez Rodriguez","sequence":"additional","affiliation":[]},{"given":"A. M.","family":"Rodr\u00edguez Vera","sequence":"additional","affiliation":[]},{"given":"S.","family":"Roe","sequence":"additional","affiliation":[]},{"given":"O.","family":"R\u00f8hne","sequence":"additional","affiliation":[]},{"given":"R.","family":"R\u00f6hrig","sequence":"additional","affiliation":[]},{"given":"R. A.","family":"Rojas","sequence":"additional","affiliation":[]},{"given":"B.","family":"Roland","sequence":"additional","affiliation":[]},{"given":"C. P. A.","family":"Roland","sequence":"additional","affiliation":[]},{"given":"J.","family":"Roloff","sequence":"additional","affiliation":[]},{"given":"A.","family":"Romaniouk","sequence":"additional","affiliation":[]},{"given":"M.","family":"Romano","sequence":"additional","affiliation":[]},{"given":"N.","family":"Rompotis","sequence":"additional","affiliation":[]},{"given":"M.","family":"Ronzani","sequence":"additional","affiliation":[]},{"given":"L.","family":"Roos","sequence":"additional","affiliation":[]},{"given":"S.","family":"Rosati","sequence":"additional","affiliation":[]},{"given":"G.","family":"Rosin","sequence":"additional","affiliation":[]},{"given":"B. J.","family":"Rosser","sequence":"additional","affiliation":[]},{"given":"E.","family":"Rossi","sequence":"additional","affiliation":[]},{"given":"E.","family":"Rossi","sequence":"additional","affiliation":[]},{"given":"E.","family":"Rossi","sequence":"additional","affiliation":[]},{"given":"L. P.","family":"Rossi","sequence":"additional","affiliation":[]},{"given":"L.","family":"Rossini","sequence":"additional","affiliation":[]},{"given":"R.","family":"Rosten","sequence":"additional","affiliation":[]},{"given":"M.","family":"Rotaru","sequence":"additional","affiliation":[]},{"given":"J.","family":"Rothberg","sequence":"additional","affiliation":[]},{"given":"B.","family":"Rottler","sequence":"additional","affiliation":[]},{"given":"D.","family":"Rousseau","sequence":"additional","affiliation":[]},{"given":"G.","family":"Rovelli","sequence":"additional","affiliation":[]},{"given":"A.","family":"Roy","sequence":"additional","affiliation":[]},{"given":"D.","family":"Roy","sequence":"additional","affiliation":[]},{"given":"A.","family":"Rozanov","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Rozen","sequence":"additional","affiliation":[]},{"given":"X.","family":"Ruan","sequence":"additional","affiliation":[]},{"given":"F.","family":"R\u00fchr","sequence":"additional","affiliation":[]},{"given":"A.","family":"Ruiz-Martinez","sequence":"additional","affiliation":[]},{"given":"A.","family":"Rummler","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Rurikova","sequence":"additional","affiliation":[]},{"given":"N. A.","family":"Rusakovich","sequence":"additional","affiliation":[]},{"given":"H. L.","family":"Russell","sequence":"additional","affiliation":[]},{"given":"L.","family":"Rustige","sequence":"additional","affiliation":[]},{"given":"J. P.","family":"Rutherfoord","sequence":"additional","affiliation":[]},{"given":"E. M.","family":"R\u00fcttinger","sequence":"additional","affiliation":[]},{"given":"M.","family":"Rybar","sequence":"additional","affiliation":[]},{"given":"G.","family":"Rybkin","sequence":"additional","affiliation":[]},{"given":"E. B.","family":"Rye","sequence":"additional","affiliation":[]},{"given":"A.","family":"Ryzhov","sequence":"additional","affiliation":[]},{"given":"J. A.","family":"Sabater Iglesias","sequence":"additional","affiliation":[]},{"given":"P.","family":"Sabatini","sequence":"additional","affiliation":[]},{"given":"G.","family":"Sabato","sequence":"additional","affiliation":[]},{"given":"S.","family":"Sacerdoti","sequence":"additional","affiliation":[]},{"given":"H. F-W.","family":"Sadrozinski","sequence":"additional","affiliation":[]},{"given":"R.","family":"Sadykov","sequence":"additional","affiliation":[]},{"given":"F.","family":"Safai Tehrani","sequence":"additional","affiliation":[]},{"given":"B.","family":"Safarzadeh Samani","sequence":"additional","affiliation":[]},{"given":"M.","family":"Safdari","sequence":"additional","affiliation":[]},{"given":"P.","family":"Saha","sequence":"additional","affiliation":[]},{"given":"S.","family":"Saha","sequence":"additional","affiliation":[]},{"given":"M.","family":"Sahinsoy","sequence":"additional","affiliation":[]},{"given":"A.","family":"Sahu","sequence":"additional","affiliation":[]},{"given":"M.","family":"Saimpert","sequence":"additional","affiliation":[]},{"given":"M.","family":"Saito","sequence":"additional","affiliation":[]},{"given":"T.","family":"Saito","sequence":"additional","affiliation":[]},{"given":"H.","family":"Sakamoto","sequence":"additional","affiliation":[]},{"given":"D.","family":"Salamani","sequence":"additional","affiliation":[]},{"given":"G.","family":"Salamanna","sequence":"additional","affiliation":[]},{"given":"J. E.","family":"Salazar Loyola","sequence":"additional","affiliation":[]},{"given":"A.","family":"Salnikov","sequence":"additional","affiliation":[]},{"given":"J.","family":"Salt","sequence":"additional","affiliation":[]},{"given":"D.","family":"Salvatore","sequence":"additional","affiliation":[]},{"given":"F.","family":"Salvatore","sequence":"additional","affiliation":[]},{"given":"A.","family":"Salvucci","sequence":"additional","affiliation":[]},{"given":"A.","family":"Salzburger","sequence":"additional","affiliation":[]},{"given":"J.","family":"Samarati","sequence":"additional","affiliation":[]},{"given":"D.","family":"Sammel","sequence":"additional","affiliation":[]},{"given":"D.","family":"Sampsonidis","sequence":"additional","affiliation":[]},{"given":"D.","family":"Sampsonidou","sequence":"additional","affiliation":[]},{"given":"J.","family":"S\u00e1nchez","sequence":"additional","affiliation":[]},{"given":"A.","family":"Sanchez Pineda","sequence":"additional","affiliation":[]},{"given":"H.","family":"Sandaker","sequence":"additional","affiliation":[]},{"given":"C. O.","family":"Sander","sequence":"additional","affiliation":[]},{"given":"I. G.","family":"Sanderswood","sequence":"additional","affiliation":[]},{"given":"M.","family":"Sandhoff","sequence":"additional","affiliation":[]},{"given":"C.","family":"Sandoval","sequence":"additional","affiliation":[]},{"given":"D. P. C.","family":"Sankey","sequence":"additional","affiliation":[]},{"given":"M.","family":"Sannino","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Sano","sequence":"additional","affiliation":[]},{"given":"A.","family":"Sansoni","sequence":"additional","affiliation":[]},{"given":"C.","family":"Santoni","sequence":"additional","affiliation":[]},{"given":"H.","family":"Santos","sequence":"additional","affiliation":[]},{"given":"S. N.","family":"Santpur","sequence":"additional","affiliation":[]},{"given":"A.","family":"Santra","sequence":"additional","affiliation":[]},{"given":"A.","family":"Sapronov","sequence":"additional","affiliation":[]},{"given":"J. G.","family":"Saraiva","sequence":"additional","affiliation":[]},{"given":"J.","family":"Sardain","sequence":"additional","affiliation":[]},{"given":"O.","family":"Sasaki","sequence":"additional","affiliation":[]},{"given":"K.","family":"Sato","sequence":"additional","affiliation":[]},{"given":"F.","family":"Sauerburger","sequence":"additional","affiliation":[]},{"given":"E.","family":"Sauvan","sequence":"additional","affiliation":[]},{"given":"P.","family":"Savard","sequence":"additional","affiliation":[]},{"given":"R.","family":"Sawada","sequence":"additional","affiliation":[]},{"given":"C.","family":"Sawyer","sequence":"additional","affiliation":[]},{"given":"L.","family":"Sawyer","sequence":"additional","affiliation":[]},{"given":"C.","family":"Sbarra","sequence":"additional","affiliation":[]},{"given":"A.","family":"Sbrizzi","sequence":"additional","affiliation":[]},{"given":"T.","family":"Scanlon","sequence":"additional","affiliation":[]},{"given":"J.","family":"Schaarschmidt","sequence":"additional","affiliation":[]},{"given":"P.","family":"Schacht","sequence":"additional","affiliation":[]},{"given":"B. M.","family":"Schachtner","sequence":"additional","affiliation":[]},{"given":"D.","family":"Schaefer","sequence":"additional","affiliation":[]},{"given":"L.","family":"Schaefer","sequence":"additional","affiliation":[]},{"given":"J.","family":"Schaeffer","sequence":"additional","affiliation":[]},{"given":"S.","family":"Schaepe","sequence":"additional","affiliation":[]},{"given":"U.","family":"Sch\u00e4fer","sequence":"additional","affiliation":[]},{"given":"A. C.","family":"Schaffer","sequence":"additional","affiliation":[]},{"given":"D.","family":"Schaile","sequence":"additional","affiliation":[]},{"given":"R. D.","family":"Schamberger","sequence":"additional","affiliation":[]},{"given":"N.","family":"Scharmberg","sequence":"additional","affiliation":[]},{"given":"V. A.","family":"Schegelsky","sequence":"additional","affiliation":[]},{"given":"D.","family":"Scheirich","sequence":"additional","affiliation":[]},{"given":"F.","family":"Schenck","sequence":"additional","affiliation":[]},{"given":"M.","family":"Schernau","sequence":"additional","affiliation":[]},{"given":"C.","family":"Schiavi","sequence":"additional","affiliation":[]},{"given":"L. K.","family":"Schildgen","sequence":"additional","affiliation":[]},{"given":"Z. M.","family":"Schillaci","sequence":"additional","affiliation":[]},{"given":"E. J.","family":"Schioppa","sequence":"additional","affiliation":[]},{"given":"M.","family":"Schioppa","sequence":"additional","affiliation":[]},{"given":"K. E.","family":"Schleicher","sequence":"additional","affiliation":[]},{"given":"S.","family":"Schlenker","sequence":"additional","affiliation":[]},{"given":"K. R.","family":"Schmidt-Sommerfeld","sequence":"additional","affiliation":[]},{"given":"K.","family":"Schmieden","sequence":"additional","affiliation":[]},{"given":"C.","family":"Schmitt","sequence":"additional","affiliation":[]},{"given":"S.","family":"Schmitt","sequence":"additional","affiliation":[]},{"given":"S.","family":"Schmitz","sequence":"additional","affiliation":[]},{"given":"J. C.","family":"Schmoeckel","sequence":"additional","affiliation":[]},{"given":"L.","family":"Schoeffel","sequence":"additional","affiliation":[]},{"given":"A.","family":"Schoening","sequence":"additional","affiliation":[]},{"given":"P. G.","family":"Scholer","sequence":"additional","affiliation":[]},{"given":"E.","family":"Schopf","sequence":"additional","affiliation":[]},{"given":"M.","family":"Schott","sequence":"additional","affiliation":[]},{"given":"J. F. P.","family":"Schouwenberg","sequence":"additional","affiliation":[]},{"given":"J.","family":"Schovancova","sequence":"additional","affiliation":[]},{"given":"S.","family":"Schramm","sequence":"additional","affiliation":[]},{"given":"F.","family":"Schroeder","sequence":"additional","affiliation":[]},{"given":"A.","family":"Schulte","sequence":"additional","affiliation":[]},{"given":"H-C.","family":"Schultz-Coulon","sequence":"additional","affiliation":[]},{"given":"M.","family":"Schumacher","sequence":"additional","affiliation":[]},{"given":"B. A.","family":"Schumm","sequence":"additional","affiliation":[]},{"given":"Ph.","family":"Schune","sequence":"additional","affiliation":[]},{"given":"A.","family":"Schwartzman","sequence":"additional","affiliation":[]},{"given":"T. A.","family":"Schwarz","sequence":"additional","affiliation":[]},{"given":"Ph.","family":"Schwemling","sequence":"additional","affiliation":[]},{"given":"R.","family":"Schwienhorst","sequence":"additional","affiliation":[]},{"given":"A.","family":"Sciandra","sequence":"additional","affiliation":[]},{"given":"G.","family":"Sciolla","sequence":"additional","affiliation":[]},{"given":"M.","family":"Scodeggio","sequence":"additional","affiliation":[]},{"given":"M.","family":"Scornajenghi","sequence":"additional","affiliation":[]},{"given":"F.","family":"Scuri","sequence":"additional","affiliation":[]},{"given":"F.","family":"Scutti","sequence":"additional","affiliation":[]},{"given":"L. M.","family":"Scyboz","sequence":"additional","affiliation":[]},{"given":"C. D.","family":"Sebastiani","sequence":"additional","affiliation":[]},{"given":"P.","family":"Seema","sequence":"additional","affiliation":[]},{"given":"S. C.","family":"Seidel","sequence":"additional","affiliation":[]},{"given":"A.","family":"Seiden","sequence":"additional","affiliation":[]},{"given":"B. D.","family":"Seidlitz","sequence":"additional","affiliation":[]},{"given":"T.","family":"Seiss","sequence":"additional","affiliation":[]},{"given":"J. M.","family":"Seixas","sequence":"additional","affiliation":[]},{"given":"G.","family":"Sekhniaidze","sequence":"additional","affiliation":[]},{"given":"S. J.","family":"Sekula","sequence":"additional","affiliation":[]},{"given":"N.","family":"Semprini-Cesari","sequence":"additional","affiliation":[]},{"given":"S.","family":"Sen","sequence":"additional","affiliation":[]},{"given":"C.","family":"Serfon","sequence":"additional","affiliation":[]},{"given":"L.","family":"Serin","sequence":"additional","affiliation":[]},{"given":"L.","family":"Serkin","sequence":"additional","affiliation":[]},{"given":"M.","family":"Sessa","sequence":"additional","affiliation":[]},{"given":"H.","family":"Severini","sequence":"additional","affiliation":[]},{"given":"S.","family":"Sevova","sequence":"additional","affiliation":[]},{"given":"T.","family":"\u0160filigoj","sequence":"additional","affiliation":[]},{"given":"F.","family":"Sforza","sequence":"additional","affiliation":[]},{"given":"A.","family":"Sfyrla","sequence":"additional","affiliation":[]},{"given":"E.","family":"Shabalina","sequence":"additional","affiliation":[]},{"given":"J. D.","family":"Shahinian","sequence":"additional","affiliation":[]},{"given":"N. W.","family":"Shaikh","sequence":"additional","affiliation":[]},{"given":"D.","family":"Shaked Renous","sequence":"additional","affiliation":[]},{"given":"L. Y.","family":"Shan","sequence":"additional","affiliation":[]},{"given":"J. T.","family":"Shank","sequence":"additional","affiliation":[]},{"given":"M.","family":"Shapiro","sequence":"additional","affiliation":[]},{"given":"A.","family":"Sharma","sequence":"additional","affiliation":[]},{"given":"A. S.","family":"Sharma","sequence":"additional","affiliation":[]},{"given":"P. B.","family":"Shatalov","sequence":"additional","affiliation":[]},{"given":"K.","family":"Shaw","sequence":"additional","affiliation":[]},{"given":"S. M.","family":"Shaw","sequence":"additional","affiliation":[]},{"given":"M.","family":"Shehade","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Shen","sequence":"additional","affiliation":[]},{"given":"A. D.","family":"Sherman","sequence":"additional","affiliation":[]},{"given":"P.","family":"Sherwood","sequence":"additional","affiliation":[]},{"given":"L.","family":"Shi","sequence":"additional","affiliation":[]},{"given":"S.","family":"Shimizu","sequence":"additional","affiliation":[]},{"given":"C. O.","family":"Shimmin","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Shimogama","sequence":"additional","affiliation":[]},{"given":"M.","family":"Shimojima","sequence":"additional","affiliation":[]},{"given":"I. P. J.","family":"Shipsey","sequence":"additional","affiliation":[]},{"given":"S.","family":"Shirabe","sequence":"additional","affiliation":[]},{"given":"M.","family":"Shiyakova","sequence":"additional","affiliation":[]},{"given":"J.","family":"Shlomi","sequence":"additional","affiliation":[]},{"given":"A.","family":"Shmeleva","sequence":"additional","affiliation":[]},{"given":"M. J.","family":"Shochet","sequence":"additional","affiliation":[]},{"given":"J.","family":"Shojaii","sequence":"additional","affiliation":[]},{"given":"D. R.","family":"Shope","sequence":"additional","affiliation":[]},{"given":"S.","family":"Shrestha","sequence":"additional","affiliation":[]},{"given":"E. M.","family":"Shrif","sequence":"additional","affiliation":[]},{"given":"E.","family":"Shulga","sequence":"additional","affiliation":[]},{"given":"P.","family":"Sicho","sequence":"additional","affiliation":[]},{"given":"A. M.","family":"Sickles","sequence":"additional","affiliation":[]},{"given":"P. E.","family":"Sidebo","sequence":"additional","affiliation":[]},{"given":"E.","family":"Sideras Haddad","sequence":"additional","affiliation":[]},{"given":"O.","family":"Sidiropoulou","sequence":"additional","affiliation":[]},{"given":"A.","family":"Sidoti","sequence":"additional","affiliation":[]},{"given":"F.","family":"Siegert","sequence":"additional","affiliation":[]},{"given":"Dj.","family":"Sijacki","sequence":"additional","affiliation":[]},{"given":"M.","family":"Silva","sequence":"additional","affiliation":[]},{"given":"M. V.","family":"Silva Oliveira","sequence":"additional","affiliation":[]},{"given":"S. B.","family":"Silverstein","sequence":"additional","affiliation":[]},{"given":"S.","family":"Simion","sequence":"additional","affiliation":[]},{"given":"R.","family":"Simoniello","sequence":"additional","affiliation":[]},{"given":"C. J.","family":"Simpson-allsop","sequence":"additional","affiliation":[]},{"given":"S.","family":"Simsek","sequence":"additional","affiliation":[]},{"given":"P.","family":"Sinervo","sequence":"additional","affiliation":[]},{"given":"V.","family":"Sinetckii","sequence":"additional","affiliation":[]},{"given":"S.","family":"Singh","sequence":"additional","affiliation":[]},{"given":"M.","family":"Sioli","sequence":"additional","affiliation":[]},{"given":"I.","family":"Siral","sequence":"additional","affiliation":[]},{"given":"S. Yu.","family":"Sivoklokov","sequence":"additional","affiliation":[]},{"given":"J.","family":"Sj\u00f6lin","sequence":"additional","affiliation":[]},{"given":"E.","family":"Skorda","sequence":"additional","affiliation":[]},{"given":"P.","family":"Skubic","sequence":"additional","affiliation":[]},{"given":"M.","family":"Slawinska","sequence":"additional","affiliation":[]},{"given":"K.","family":"Sliwa","sequence":"additional","affiliation":[]},{"given":"R.","family":"Slovak","sequence":"additional","affiliation":[]},{"given":"V.","family":"Smakhtin","sequence":"additional","affiliation":[]},{"given":"B. H.","family":"Smart","sequence":"additional","affiliation":[]},{"given":"J.","family":"Smiesko","sequence":"additional","affiliation":[]},{"given":"N.","family":"Smirnov","sequence":"additional","affiliation":[]},{"given":"S. Yu.","family":"Smirnov","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Smirnov","sequence":"additional","affiliation":[]},{"given":"L. N.","family":"Smirnova","sequence":"additional","affiliation":[]},{"given":"O.","family":"Smirnova","sequence":"additional","affiliation":[]},{"given":"J. W.","family":"Smith","sequence":"additional","affiliation":[]},{"given":"M.","family":"Smizanska","sequence":"additional","affiliation":[]},{"given":"K.","family":"Smolek","sequence":"additional","affiliation":[]},{"given":"A.","family":"Smykiewicz","sequence":"additional","affiliation":[]},{"given":"A. A.","family":"Snesarev","sequence":"additional","affiliation":[]},{"given":"H. L.","family":"Snoek","sequence":"additional","affiliation":[]},{"given":"I. M.","family":"Snyder","sequence":"additional","affiliation":[]},{"given":"S.","family":"Snyder","sequence":"additional","affiliation":[]},{"given":"R.","family":"Sobie","sequence":"additional","affiliation":[]},{"given":"A.","family":"Soffer","sequence":"additional","affiliation":[]},{"given":"A.","family":"S\u00f8gaard","sequence":"additional","affiliation":[]},{"given":"F.","family":"Sohns","sequence":"additional","affiliation":[]},{"given":"C. A.","family":"Solans Sanchez","sequence":"additional","affiliation":[]},{"given":"E. Yu.","family":"Soldatov","sequence":"additional","affiliation":[]},{"given":"U.","family":"Soldevila","sequence":"additional","affiliation":[]},{"given":"A. A.","family":"Solodkov","sequence":"additional","affiliation":[]},{"given":"A.","family":"Soloshenko","sequence":"additional","affiliation":[]},{"given":"O. V.","family":"Solovyanov","sequence":"additional","affiliation":[]},{"given":"V.","family":"Solovyev","sequence":"additional","affiliation":[]},{"given":"P.","family":"Sommer","sequence":"additional","affiliation":[]},{"given":"H.","family":"Son","sequence":"additional","affiliation":[]},{"given":"W.","family":"Song","sequence":"additional","affiliation":[]},{"given":"W. Y.","family":"Song","sequence":"additional","affiliation":[]},{"given":"A.","family":"Sopczak","sequence":"additional","affiliation":[]},{"given":"A. L.","family":"Sopio","sequence":"additional","affiliation":[]},{"given":"F.","family":"Sopkova","sequence":"additional","affiliation":[]},{"given":"C. L.","family":"Sotiropoulou","sequence":"additional","affiliation":[]},{"given":"S.","family":"Sottocornola","sequence":"additional","affiliation":[]},{"given":"R.","family":"Soualah","sequence":"additional","affiliation":[]},{"given":"A. M.","family":"Soukharev","sequence":"additional","affiliation":[]},{"given":"D.","family":"South","sequence":"additional","affiliation":[]},{"given":"S.","family":"Spagnolo","sequence":"additional","affiliation":[]},{"given":"M.","family":"Spalla","sequence":"additional","affiliation":[]},{"given":"M.","family":"Spangenberg","sequence":"additional","affiliation":[]},{"given":"F.","family":"Span\u00f2","sequence":"additional","affiliation":[]},{"given":"D.","family":"Sperlich","sequence":"additional","affiliation":[]},{"given":"T. M.","family":"Spieker","sequence":"additional","affiliation":[]},{"given":"G.","family":"Spigo","sequence":"additional","affiliation":[]},{"given":"M.","family":"Spina","sequence":"additional","affiliation":[]},{"given":"D. P.","family":"Spiteri","sequence":"additional","affiliation":[]},{"given":"M.","family":"Spousta","sequence":"additional","affiliation":[]},{"given":"A.","family":"Stabile","sequence":"additional","affiliation":[]},{"given":"R.","family":"Stamen","sequence":"additional","affiliation":[]},{"given":"M.","family":"Stamenkovic","sequence":"additional","affiliation":[]},{"given":"E.","family":"Stanecka","sequence":"additional","affiliation":[]},{"given":"B.","family":"Stanislaus","sequence":"additional","affiliation":[]},{"given":"M. M.","family":"Stanitzki","sequence":"additional","affiliation":[]},{"given":"M.","family":"Stankaityte","sequence":"additional","affiliation":[]},{"given":"B.","family":"Stapf","sequence":"additional","affiliation":[]},{"given":"E. A.","family":"Starchenko","sequence":"additional","affiliation":[]},{"given":"G. H.","family":"Stark","sequence":"additional","affiliation":[]},{"given":"J.","family":"Stark","sequence":"additional","affiliation":[]},{"given":"P.","family":"Staroba","sequence":"additional","affiliation":[]},{"given":"P.","family":"Starovoitov","sequence":"additional","affiliation":[]},{"given":"S.","family":"St\u00e4rz","sequence":"additional","affiliation":[]},{"given":"R.","family":"Staszewski","sequence":"additional","affiliation":[]},{"given":"G.","family":"Stavropoulos","sequence":"additional","affiliation":[]},{"given":"M.","family":"Stegler","sequence":"additional","affiliation":[]},{"given":"P.","family":"Steinberg","sequence":"additional","affiliation":[]},{"given":"A. L.","family":"Steinhebel","sequence":"additional","affiliation":[]},{"given":"B.","family":"Stelzer","sequence":"additional","affiliation":[]},{"given":"H. J.","family":"Stelzer","sequence":"additional","affiliation":[]},{"given":"O.","family":"Stelzer-Chilton","sequence":"additional","affiliation":[]},{"given":"H.","family":"Stenzel","sequence":"additional","affiliation":[]},{"given":"T. J.","family":"Stevenson","sequence":"additional","affiliation":[]},{"given":"G. A.","family":"Stewart","sequence":"additional","affiliation":[]},{"given":"M. C.","family":"Stockton","sequence":"additional","affiliation":[]},{"given":"G.","family":"Stoicea","sequence":"additional","affiliation":[]},{"given":"M.","family":"Stolarski","sequence":"additional","affiliation":[]},{"given":"S.","family":"Stonjek","sequence":"additional","affiliation":[]},{"given":"A.","family":"Straessner","sequence":"additional","affiliation":[]},{"given":"J.","family":"Strandberg","sequence":"additional","affiliation":[]},{"given":"S.","family":"Strandberg","sequence":"additional","affiliation":[]},{"given":"M.","family":"Strauss","sequence":"additional","affiliation":[]},{"given":"P.","family":"Strizenec","sequence":"additional","affiliation":[]},{"given":"R.","family":"Str\u00f6hmer","sequence":"additional","affiliation":[]},{"given":"D. M.","family":"Strom","sequence":"additional","affiliation":[]},{"given":"R.","family":"Stroynowski","sequence":"additional","affiliation":[]},{"given":"A.","family":"Strubig","sequence":"additional","affiliation":[]},{"given":"S. A.","family":"Stucci","sequence":"additional","affiliation":[]},{"given":"B.","family":"Stugu","sequence":"additional","affiliation":[]},{"given":"J.","family":"Stupak","sequence":"additional","affiliation":[]},{"given":"N. A.","family":"Styles","sequence":"additional","affiliation":[]},{"given":"D.","family":"Su","sequence":"additional","affiliation":[]},{"given":"W.","family":"Su","sequence":"additional","affiliation":[]},{"given":"S.","family":"Suchek","sequence":"additional","affiliation":[]},{"given":"V. V.","family":"Sulin","sequence":"additional","affiliation":[]},{"given":"M. J.","family":"Sullivan","sequence":"additional","affiliation":[]},{"given":"D. M. S.","family":"Sultan","sequence":"additional","affiliation":[]},{"given":"S.","family":"Sultansoy","sequence":"additional","affiliation":[]},{"given":"T.","family":"Sumida","sequence":"additional","affiliation":[]},{"given":"S.","family":"Sun","sequence":"additional","affiliation":[]},{"given":"X.","family":"Sun","sequence":"additional","affiliation":[]},{"given":"K.","family":"Suruliz","sequence":"additional","affiliation":[]},{"given":"C. J. E.","family":"Suster","sequence":"additional","affiliation":[]},{"given":"M. R.","family":"Sutton","sequence":"additional","affiliation":[]},{"given":"S.","family":"Suzuki","sequence":"additional","affiliation":[]},{"given":"M.","family":"Svatos","sequence":"additional","affiliation":[]},{"given":"M.","family":"Swiatlowski","sequence":"additional","affiliation":[]},{"given":"S. P.","family":"Swift","sequence":"additional","affiliation":[]},{"given":"T.","family":"Swirski","sequence":"additional","affiliation":[]},{"given":"A.","family":"Sydorenko","sequence":"additional","affiliation":[]},{"given":"I.","family":"Sykora","sequence":"additional","affiliation":[]},{"given":"M.","family":"Sykora","sequence":"additional","affiliation":[]},{"given":"T.","family":"Sykora","sequence":"additional","affiliation":[]},{"given":"D.","family":"Ta","sequence":"additional","affiliation":[]},{"given":"K.","family":"Tackmann","sequence":"additional","affiliation":[]},{"given":"J.","family":"Taenzer","sequence":"additional","affiliation":[]},{"given":"A.","family":"Taffard","sequence":"additional","affiliation":[]},{"given":"R.","family":"Tafirout","sequence":"additional","affiliation":[]},{"given":"H.","family":"Takai","sequence":"additional","affiliation":[]},{"given":"R.","family":"Takashima","sequence":"additional","affiliation":[]},{"given":"K.","family":"Takeda","sequence":"additional","affiliation":[]},{"given":"T.","family":"Takeshita","sequence":"additional","affiliation":[]},{"given":"E. P.","family":"Takeva","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Takubo","sequence":"additional","affiliation":[]},{"given":"M.","family":"Talby","sequence":"additional","affiliation":[]},{"given":"A. A.","family":"Talyshev","sequence":"additional","affiliation":[]},{"given":"N. M.","family":"Tamir","sequence":"additional","affiliation":[]},{"given":"J.","family":"Tanaka","sequence":"additional","affiliation":[]},{"given":"M.","family":"Tanaka","sequence":"additional","affiliation":[]},{"given":"R.","family":"Tanaka","sequence":"additional","affiliation":[]},{"given":"S.","family":"Tapia Araya","sequence":"additional","affiliation":[]},{"given":"S.","family":"Tapprogge","sequence":"additional","affiliation":[]},{"given":"A.","family":"Tarek Abouelfadl Mohamed","sequence":"additional","affiliation":[]},{"given":"S.","family":"Tarem","sequence":"additional","affiliation":[]},{"given":"K.","family":"Tariq","sequence":"additional","affiliation":[]},{"given":"G.","family":"Tarna","sequence":"additional","affiliation":[]},{"given":"G. F.","family":"Tartarelli","sequence":"additional","affiliation":[]},{"given":"P.","family":"Tas","sequence":"additional","affiliation":[]},{"given":"M.","family":"Tasevsky","sequence":"additional","affiliation":[]},{"given":"T.","family":"Tashiro","sequence":"additional","affiliation":[]},{"given":"E.","family":"Tassi","sequence":"additional","affiliation":[]},{"given":"A.","family":"Tavares Delgado","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Tayalati","sequence":"additional","affiliation":[]},{"given":"A. J.","family":"Taylor","sequence":"additional","affiliation":[]},{"given":"G. N.","family":"Taylor","sequence":"additional","affiliation":[]},{"given":"W.","family":"Taylor","sequence":"additional","affiliation":[]},{"given":"A. S.","family":"Tee","sequence":"additional","affiliation":[]},{"given":"R.","family":"Teixeira De Lima","sequence":"additional","affiliation":[]},{"given":"P.","family":"Teixeira-Dias","sequence":"additional","affiliation":[]},{"given":"H.","family":"Ten Kate","sequence":"additional","affiliation":[]},{"given":"J. J.","family":"Teoh","sequence":"additional","affiliation":[]},{"given":"S.","family":"Terada","sequence":"additional","affiliation":[]},{"given":"K.","family":"Terashi","sequence":"additional","affiliation":[]},{"given":"J.","family":"Terron","sequence":"additional","affiliation":[]},{"given":"S.","family":"Terzo","sequence":"additional","affiliation":[]},{"given":"M.","family":"Testa","sequence":"additional","affiliation":[]},{"given":"R. J.","family":"Teuscher","sequence":"additional","affiliation":[]},{"given":"S. J.","family":"Thais","sequence":"additional","affiliation":[]},{"given":"T.","family":"Theveneaux-Pelzer","sequence":"additional","affiliation":[]},{"given":"F.","family":"Thiele","sequence":"additional","affiliation":[]},{"given":"D. W.","family":"Thomas","sequence":"additional","affiliation":[]},{"given":"J. O.","family":"Thomas","sequence":"additional","affiliation":[]},{"given":"J. P.","family":"Thomas","sequence":"additional","affiliation":[]},{"given":"P. D.","family":"Thompson","sequence":"additional","affiliation":[]},{"given":"L. A.","family":"Thomsen","sequence":"additional","affiliation":[]},{"given":"E.","family":"Thomson","sequence":"additional","affiliation":[]},{"given":"E. J.","family":"Thorpe","sequence":"additional","affiliation":[]},{"given":"R. E.","family":"Ticse Torres","sequence":"additional","affiliation":[]},{"given":"V.","family":"Tikhomirov","sequence":"additional","affiliation":[]},{"given":"Yu. A.","family":"Tikhonov","sequence":"additional","affiliation":[]},{"given":"S.","family":"Timoshenko","sequence":"additional","affiliation":[]},{"given":"P.","family":"Tipton","sequence":"additional","affiliation":[]},{"given":"S.","family":"Tisserant","sequence":"additional","affiliation":[]},{"given":"K.","family":"Todome","sequence":"additional","affiliation":[]},{"given":"S.","family":"Todorova-Nova","sequence":"additional","affiliation":[]},{"given":"S.","family":"Todt","sequence":"additional","affiliation":[]},{"given":"J.","family":"Tojo","sequence":"additional","affiliation":[]},{"given":"S.","family":"Tok\u00e1r","sequence":"additional","affiliation":[]},{"given":"K.","family":"Tokushuku","sequence":"additional","affiliation":[]},{"given":"E.","family":"Tolley","sequence":"additional","affiliation":[]},{"given":"K. G.","family":"Tomiwa","sequence":"additional","affiliation":[]},{"given":"M.","family":"Tomoto","sequence":"additional","affiliation":[]},{"given":"L.","family":"Tompkins","sequence":"additional","affiliation":[]},{"given":"B.","family":"Tong","sequence":"additional","affiliation":[]},{"given":"P.","family":"Tornambe","sequence":"additional","affiliation":[]},{"given":"E.","family":"Torrence","sequence":"additional","affiliation":[]},{"given":"H.","family":"Torres","sequence":"additional","affiliation":[]},{"given":"E.","family":"Torr\u00f3 Pastor","sequence":"additional","affiliation":[]},{"given":"C.","family":"Tosciri","sequence":"additional","affiliation":[]},{"given":"J.","family":"Toth","sequence":"additional","affiliation":[]},{"given":"D. R.","family":"Tovey","sequence":"additional","affiliation":[]},{"given":"A.","family":"Traeet","sequence":"additional","affiliation":[]},{"given":"C. J.","family":"Treado","sequence":"additional","affiliation":[]},{"given":"T.","family":"Trefzger","sequence":"additional","affiliation":[]},{"given":"F.","family":"Tresoldi","sequence":"additional","affiliation":[]},{"given":"A.","family":"Tricoli","sequence":"additional","affiliation":[]},{"given":"I. M.","family":"Trigger","sequence":"additional","affiliation":[]},{"given":"S.","family":"Trincaz-Duvoid","sequence":"additional","affiliation":[]},{"given":"D. A.","family":"Trischuk","sequence":"additional","affiliation":[]},{"given":"W.","family":"Trischuk","sequence":"additional","affiliation":[]},{"given":"B.","family":"Trocm\u00e9","sequence":"additional","affiliation":[]},{"given":"A.","family":"Trofymov","sequence":"additional","affiliation":[]},{"given":"C.","family":"Troncon","sequence":"additional","affiliation":[]},{"given":"F.","family":"Trovato","sequence":"additional","affiliation":[]},{"given":"L.","family":"Truong","sequence":"additional","affiliation":[]},{"given":"M.","family":"Trzebinski","sequence":"additional","affiliation":[]},{"given":"A.","family":"Trzupek","sequence":"additional","affiliation":[]},{"given":"F.","family":"Tsai","sequence":"additional","affiliation":[]},{"given":"J. C-L.","family":"Tseng","sequence":"additional","affiliation":[]},{"given":"P. V.","family":"Tsiareshka","sequence":"additional","affiliation":[]},{"given":"A.","family":"Tsirigotis","sequence":"additional","affiliation":[]},{"given":"V.","family":"Tsiskaridze","sequence":"additional","affiliation":[]},{"given":"E. G.","family":"Tskhadadze","sequence":"additional","affiliation":[]},{"given":"M.","family":"Tsopoulou","sequence":"additional","affiliation":[]},{"given":"I. I.","family":"Tsukerman","sequence":"additional","affiliation":[]},{"given":"V.","family":"Tsulaia","sequence":"additional","affiliation":[]},{"given":"S.","family":"Tsuno","sequence":"additional","affiliation":[]},{"given":"D.","family":"Tsybychev","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Tu","sequence":"additional","affiliation":[]},{"given":"A.","family":"Tudorache","sequence":"additional","affiliation":[]},{"given":"V.","family":"Tudorache","sequence":"additional","affiliation":[]},{"given":"T. T.","family":"Tulbure","sequence":"additional","affiliation":[]},{"given":"A. N.","family":"Tuna","sequence":"additional","affiliation":[]},{"given":"S.","family":"Turchikhin","sequence":"additional","affiliation":[]},{"given":"D.","family":"Turgeman","sequence":"additional","affiliation":[]},{"given":"I. Turk","family":"Cakir","sequence":"additional","affiliation":[]},{"given":"R. J.","family":"Turner","sequence":"additional","affiliation":[]},{"given":"R.","family":"Turra","sequence":"additional","affiliation":[]},{"given":"P. M.","family":"Tuts","sequence":"additional","affiliation":[]},{"given":"S.","family":"Tzamarias","sequence":"additional","affiliation":[]},{"given":"E.","family":"Tzovara","sequence":"additional","affiliation":[]},{"given":"G.","family":"Ucchielli","sequence":"additional","affiliation":[]},{"given":"K.","family":"Uchida","sequence":"additional","affiliation":[]},{"given":"F.","family":"Ukegawa","sequence":"additional","affiliation":[]},{"given":"G.","family":"Unal","sequence":"additional","affiliation":[]},{"given":"A.","family":"Undrus","sequence":"additional","affiliation":[]},{"given":"G.","family":"Unel","sequence":"additional","affiliation":[]},{"given":"F. C.","family":"Ungaro","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Unno","sequence":"additional","affiliation":[]},{"given":"K.","family":"Uno","sequence":"additional","affiliation":[]},{"given":"J.","family":"Urban","sequence":"additional","affiliation":[]},{"given":"P.","family":"Urquijo","sequence":"additional","affiliation":[]},{"given":"G.","family":"Usai","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Uysal","sequence":"additional","affiliation":[]},{"given":"V.","family":"Vacek","sequence":"additional","affiliation":[]},{"given":"B.","family":"Vachon","sequence":"additional","affiliation":[]},{"given":"K. O. H.","family":"Vadla","sequence":"additional","affiliation":[]},{"given":"A.","family":"Vaidya","sequence":"additional","affiliation":[]},{"given":"C.","family":"Valderanis","sequence":"additional","affiliation":[]},{"given":"E.","family":"Valdes Santurio","sequence":"additional","affiliation":[]},{"given":"M.","family":"Valente","sequence":"additional","affiliation":[]},{"given":"S.","family":"Valentinetti","sequence":"additional","affiliation":[]},{"given":"A.","family":"Valero","sequence":"additional","affiliation":[]},{"given":"L.","family":"Val\u00e9ry","sequence":"additional","affiliation":[]},{"given":"R. A.","family":"Vallance","sequence":"additional","affiliation":[]},{"given":"A.","family":"Vallier","sequence":"additional","affiliation":[]},{"given":"J. A.","family":"Valls Ferrer","sequence":"additional","affiliation":[]},{"given":"T. R.","family":"Van Daalen","sequence":"additional","affiliation":[]},{"given":"P.","family":"Van Gemmeren","sequence":"additional","affiliation":[]},{"given":"I.","family":"Van Vulpen","sequence":"additional","affiliation":[]},{"given":"M.","family":"Vanadia","sequence":"additional","affiliation":[]},{"given":"W.","family":"Vandelli","sequence":"additional","affiliation":[]},{"given":"M.","family":"Vandenbroucke","sequence":"additional","affiliation":[]},{"given":"E. R.","family":"Vandewall","sequence":"additional","affiliation":[]},{"given":"A.","family":"Vaniachine","sequence":"additional","affiliation":[]},{"given":"D.","family":"Vannicola","sequence":"additional","affiliation":[]},{"given":"R.","family":"Vari","sequence":"additional","affiliation":[]},{"given":"E. W.","family":"Varnes","sequence":"additional","affiliation":[]},{"given":"C.","family":"Varni","sequence":"additional","affiliation":[]},{"given":"T.","family":"Varol","sequence":"additional","affiliation":[]},{"given":"D.","family":"Varouchas","sequence":"additional","affiliation":[]},{"given":"K. E.","family":"Varvell","sequence":"additional","affiliation":[]},{"given":"M. E.","family":"Vasile","sequence":"additional","affiliation":[]},{"given":"G. A.","family":"Vasquez","sequence":"additional","affiliation":[]},{"given":"F.","family":"Vazeille","sequence":"additional","affiliation":[]},{"given":"D.","family":"Vazquez Furelos","sequence":"additional","affiliation":[]},{"given":"T.","family":"Vazquez Schroeder","sequence":"additional","affiliation":[]},{"given":"J.","family":"Veatch","sequence":"additional","affiliation":[]},{"given":"V.","family":"Vecchio","sequence":"additional","affiliation":[]},{"given":"M. J.","family":"Veen","sequence":"additional","affiliation":[]},{"given":"L. M.","family":"Veloce","sequence":"additional","affiliation":[]},{"given":"F.","family":"Veloso","sequence":"additional","affiliation":[]},{"given":"S.","family":"Veneziano","sequence":"additional","affiliation":[]},{"given":"A.","family":"Ventura","sequence":"additional","affiliation":[]},{"given":"N.","family":"Venturi","sequence":"additional","affiliation":[]},{"given":"A.","family":"Verbytskyi","sequence":"additional","affiliation":[]},{"given":"V.","family":"Vercesi","sequence":"additional","affiliation":[]},{"given":"M.","family":"Verducci","sequence":"additional","affiliation":[]},{"given":"C. M.","family":"Vergel Infante","sequence":"additional","affiliation":[]},{"given":"C.","family":"Vergis","sequence":"additional","affiliation":[]},{"given":"W.","family":"Verkerke","sequence":"additional","affiliation":[]},{"given":"A. T.","family":"Vermeulen","sequence":"additional","affiliation":[]},{"given":"J. C.","family":"Vermeulen","sequence":"additional","affiliation":[]},{"given":"M. C.","family":"Vetterli","sequence":"additional","affiliation":[]},{"given":"N.","family":"Viaux Maira","sequence":"additional","affiliation":[]},{"given":"M. Vicente","family":"Barreto Pinto","sequence":"additional","affiliation":[]},{"given":"T.","family":"Vickey","sequence":"additional","affiliation":[]},{"given":"O. E. Vickey","family":"Boeriu","sequence":"additional","affiliation":[]},{"given":"G. H. A.","family":"Viehhauser","sequence":"additional","affiliation":[]},{"given":"L.","family":"Vigani","sequence":"additional","affiliation":[]},{"given":"M.","family":"Villa","sequence":"additional","affiliation":[]},{"given":"M.","family":"Villaplana Perez","sequence":"additional","affiliation":[]},{"given":"E.","family":"Vilucchi","sequence":"additional","affiliation":[]},{"given":"M. G.","family":"Vincter","sequence":"additional","affiliation":[]},{"given":"G. S.","family":"Virdee","sequence":"additional","affiliation":[]},{"given":"A.","family":"Vishwakarma","sequence":"additional","affiliation":[]},{"given":"C.","family":"Vittori","sequence":"additional","affiliation":[]},{"given":"I.","family":"Vivarelli","sequence":"additional","affiliation":[]},{"given":"M.","family":"Vogel","sequence":"additional","affiliation":[]},{"given":"P.","family":"Vokac","sequence":"additional","affiliation":[]},{"given":"S. E.","family":"von Buddenbrock","sequence":"additional","affiliation":[]},{"given":"E.","family":"Von Toerne","sequence":"additional","affiliation":[]},{"given":"V.","family":"Vorobel","sequence":"additional","affiliation":[]},{"given":"K.","family":"Vorobev","sequence":"additional","affiliation":[]},{"given":"M.","family":"Vos","sequence":"additional","affiliation":[]},{"given":"J. H.","family":"Vossebeld","sequence":"additional","affiliation":[]},{"given":"M.","family":"Vozak","sequence":"additional","affiliation":[]},{"given":"N.","family":"Vranjes","sequence":"additional","affiliation":[]},{"given":"M. Vranjes","family":"Milosavljevic","sequence":"additional","affiliation":[]},{"given":"V.","family":"Vrba","sequence":"additional","affiliation":[]},{"given":"M.","family":"Vreeswijk","sequence":"additional","affiliation":[]},{"given":"R.","family":"Vuillermet","sequence":"additional","affiliation":[]},{"given":"I.","family":"Vukotic","sequence":"additional","affiliation":[]},{"given":"P.","family":"Wagner","sequence":"additional","affiliation":[]},{"given":"W.","family":"Wagner","sequence":"additional","affiliation":[]},{"given":"J.","family":"Wagner-Kuhr","sequence":"additional","affiliation":[]},{"given":"S.","family":"Wahdan","sequence":"additional","affiliation":[]},{"given":"H.","family":"Wahlberg","sequence":"additional","affiliation":[]},{"given":"V. M.","family":"Walbrecht","sequence":"additional","affiliation":[]},{"given":"J.","family":"Walder","sequence":"additional","affiliation":[]},{"given":"R.","family":"Walker","sequence":"additional","affiliation":[]},{"given":"S. D.","family":"Walker","sequence":"additional","affiliation":[]},{"given":"W.","family":"Walkowiak","sequence":"additional","affiliation":[]},{"given":"V.","family":"Wallangen","sequence":"additional","affiliation":[]},{"given":"A. M.","family":"Wang","sequence":"additional","affiliation":[]},{"given":"A. Z.","family":"Wang","sequence":"additional","affiliation":[]},{"given":"C.","family":"Wang","sequence":"additional","affiliation":[]},{"given":"F.","family":"Wang","sequence":"additional","affiliation":[]},{"given":"H.","family":"Wang","sequence":"additional","affiliation":[]},{"given":"H.","family":"Wang","sequence":"additional","affiliation":[]},{"given":"J.","family":"Wang","sequence":"additional","affiliation":[]},{"given":"J.","family":"Wang","sequence":"additional","affiliation":[]},{"given":"P.","family":"Wang","sequence":"additional","affiliation":[]},{"given":"Q.","family":"Wang","sequence":"additional","affiliation":[]},{"given":"R.-J.","family":"Wang","sequence":"additional","affiliation":[]},{"given":"R.","family":"Wang","sequence":"additional","affiliation":[]},{"given":"R.","family":"Wang","sequence":"additional","affiliation":[]},{"given":"S. M.","family":"Wang","sequence":"additional","affiliation":[]},{"given":"W. T.","family":"Wang","sequence":"additional","affiliation":[]},{"given":"W. X.","family":"Wang","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Wang","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Wang","sequence":"additional","affiliation":[]},{"given":"C.","family":"Wanotayaroj","sequence":"additional","affiliation":[]},{"given":"A.","family":"Warburton","sequence":"additional","affiliation":[]},{"given":"C. P.","family":"Ward","sequence":"additional","affiliation":[]},{"given":"D. R.","family":"Wardrope","sequence":"additional","affiliation":[]},{"given":"N.","family":"Warrack","sequence":"additional","affiliation":[]},{"given":"A.","family":"Washbrook","sequence":"additional","affiliation":[]},{"given":"A. T.","family":"Watson","sequence":"additional","affiliation":[]},{"given":"M. F.","family":"Watson","sequence":"additional","affiliation":[]},{"given":"G.","family":"Watts","sequence":"additional","affiliation":[]},{"given":"B. M.","family":"Waugh","sequence":"additional","affiliation":[]},{"given":"A. F.","family":"Webb","sequence":"additional","affiliation":[]},{"given":"C.","family":"Weber","sequence":"additional","affiliation":[]},{"given":"M. S.","family":"Weber","sequence":"additional","affiliation":[]},{"given":"S. A.","family":"Weber","sequence":"additional","affiliation":[]},{"given":"S. M.","family":"Weber","sequence":"additional","affiliation":[]},{"given":"A. R.","family":"Weidberg","sequence":"additional","affiliation":[]},{"given":"J.","family":"Weingarten","sequence":"additional","affiliation":[]},{"given":"M.","family":"Weirich","sequence":"additional","affiliation":[]},{"given":"C.","family":"Weiser","sequence":"additional","affiliation":[]},{"given":"P. S.","family":"Wells","sequence":"additional","affiliation":[]},{"given":"T.","family":"Wenaus","sequence":"additional","affiliation":[]},{"given":"T.","family":"Wengler","sequence":"additional","affiliation":[]},{"given":"S.","family":"Wenig","sequence":"additional","affiliation":[]},{"given":"N.","family":"Wermes","sequence":"additional","affiliation":[]},{"given":"M. D.","family":"Werner","sequence":"additional","affiliation":[]},{"given":"M.","family":"Wessels","sequence":"additional","affiliation":[]},{"given":"T. D.","family":"Weston","sequence":"additional","affiliation":[]},{"given":"K.","family":"Whalen","sequence":"additional","affiliation":[]},{"given":"N. L.","family":"Whallon","sequence":"additional","affiliation":[]},{"given":"A. M.","family":"Wharton","sequence":"additional","affiliation":[]},{"given":"A. S.","family":"White","sequence":"additional","affiliation":[]},{"given":"A.","family":"White","sequence":"additional","affiliation":[]},{"given":"M. J.","family":"White","sequence":"additional","affiliation":[]},{"given":"D.","family":"Whiteson","sequence":"additional","affiliation":[]},{"given":"B. W.","family":"Whitmore","sequence":"additional","affiliation":[]},{"given":"W.","family":"Wiedenmann","sequence":"additional","affiliation":[]},{"given":"C.","family":"Wiel","sequence":"additional","affiliation":[]},{"given":"M.","family":"Wielers","sequence":"additional","affiliation":[]},{"given":"N.","family":"Wieseotte","sequence":"additional","affiliation":[]},{"given":"C.","family":"Wiglesworth","sequence":"additional","affiliation":[]},{"given":"L. A. M.","family":"Wiik-Fuchs","sequence":"additional","affiliation":[]},{"given":"H. G.","family":"Wilkens","sequence":"additional","affiliation":[]},{"given":"L. J.","family":"Wilkins","sequence":"additional","affiliation":[]},{"given":"H. H.","family":"Williams","sequence":"additional","affiliation":[]},{"given":"S.","family":"Williams","sequence":"additional","affiliation":[]},{"given":"C.","family":"Willis","sequence":"additional","affiliation":[]},{"given":"S.","family":"Willocq","sequence":"additional","affiliation":[]},{"given":"I.","family":"Wingerter-Seez","sequence":"additional","affiliation":[]},{"given":"E.","family":"Winkels","sequence":"additional","affiliation":[]},{"given":"F.","family":"Winklmeier","sequence":"additional","affiliation":[]},{"given":"O. J.","family":"Winston","sequence":"additional","affiliation":[]},{"given":"B. T.","family":"Winter","sequence":"additional","affiliation":[]},{"given":"M.","family":"Wittgen","sequence":"additional","affiliation":[]},{"given":"M.","family":"Wobisch","sequence":"additional","affiliation":[]},{"given":"A.","family":"Wolf","sequence":"additional","affiliation":[]},{"given":"T. M. H.","family":"Wolf","sequence":"additional","affiliation":[]},{"given":"R.","family":"Wolff","sequence":"additional","affiliation":[]},{"given":"R.","family":"W\u00f6lker","sequence":"additional","affiliation":[]},{"given":"J.","family":"Wollrath","sequence":"additional","affiliation":[]},{"given":"M. W.","family":"Wolter","sequence":"additional","affiliation":[]},{"given":"H.","family":"Wolters","sequence":"additional","affiliation":[]},{"given":"V. W. S.","family":"Wong","sequence":"additional","affiliation":[]},{"given":"N. L.","family":"Woods","sequence":"additional","affiliation":[]},{"given":"S. D.","family":"Worm","sequence":"additional","affiliation":[]},{"given":"B. K.","family":"Wosiek","sequence":"additional","affiliation":[]},{"given":"K. W.","family":"Wo\u017aniak","sequence":"additional","affiliation":[]},{"given":"K.","family":"Wraight","sequence":"additional","affiliation":[]},{"given":"S. L.","family":"Wu","sequence":"additional","affiliation":[]},{"given":"X.","family":"Wu","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Wu","sequence":"additional","affiliation":[]},{"given":"T. R.","family":"Wyatt","sequence":"additional","affiliation":[]},{"given":"B. M.","family":"Wynne","sequence":"additional","affiliation":[]},{"given":"S.","family":"Xella","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Xi","sequence":"additional","affiliation":[]},{"given":"X.","family":"Xiao","sequence":"additional","affiliation":[]},{"given":"I.","family":"Xiotidis","sequence":"additional","affiliation":[]},{"given":"D.","family":"Xu","sequence":"additional","affiliation":[]},{"given":"H.","family":"Xu","sequence":"additional","affiliation":[]},{"given":"L.","family":"Xu","sequence":"additional","affiliation":[]},{"given":"T.","family":"Xu","sequence":"additional","affiliation":[]},{"given":"W.","family":"Xu","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Xu","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Xu","sequence":"additional","affiliation":[]},{"given":"B.","family":"Yabsley","sequence":"additional","affiliation":[]},{"given":"S.","family":"Yacoob","sequence":"additional","affiliation":[]},{"given":"K.","family":"Yajima","sequence":"additional","affiliation":[]},{"given":"D. P.","family":"Yallup","sequence":"additional","affiliation":[]},{"given":"N.","family":"Yamaguchi","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Yamaguchi","sequence":"additional","affiliation":[]},{"given":"A.","family":"Yamamoto","sequence":"additional","affiliation":[]},{"given":"M.","family":"Yamatani","sequence":"additional","affiliation":[]},{"given":"T.","family":"Yamazaki","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Yamazaki","sequence":"additional","affiliation":[]},{"given":"J.","family":"Yan","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Yan","sequence":"additional","affiliation":[]},{"given":"H. J.","family":"Yang","sequence":"additional","affiliation":[]},{"given":"H. T.","family":"Yang","sequence":"additional","affiliation":[]},{"given":"S.","family":"Yang","sequence":"additional","affiliation":[]},{"given":"T.","family":"Yang","sequence":"additional","affiliation":[]},{"given":"X.","family":"Yang","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Yang","sequence":"additional","affiliation":[]},{"given":"W-M.","family":"Yao","sequence":"additional","affiliation":[]},{"given":"Y. C.","family":"Yap","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Yasu","sequence":"additional","affiliation":[]},{"given":"E.","family":"Yatsenko","sequence":"additional","affiliation":[]},{"given":"H.","family":"Ye","sequence":"additional","affiliation":[]},{"given":"J.","family":"Ye","sequence":"additional","affiliation":[]},{"given":"S.","family":"Ye","sequence":"additional","affiliation":[]},{"given":"I.","family":"Yeletskikh","sequence":"additional","affiliation":[]},{"given":"M. R.","family":"Yexley","sequence":"additional","affiliation":[]},{"given":"E.","family":"Yigitbasi","sequence":"additional","affiliation":[]},{"given":"K.","family":"Yorita","sequence":"additional","affiliation":[]},{"given":"K.","family":"Yoshihara","sequence":"additional","affiliation":[]},{"given":"C. J. S.","family":"Young","sequence":"additional","affiliation":[]},{"given":"C.","family":"Young","sequence":"additional","affiliation":[]},{"given":"J.","family":"Yu","sequence":"additional","affiliation":[]},{"given":"R.","family":"Yuan","sequence":"additional","affiliation":[]},{"given":"X.","family":"Yue","sequence":"additional","affiliation":[]},{"given":"M.","family":"Zaazoua","sequence":"additional","affiliation":[]},{"given":"B.","family":"Zabinski","sequence":"additional","affiliation":[]},{"given":"G.","family":"Zacharis","sequence":"additional","affiliation":[]},{"given":"E.","family":"Zaffaroni","sequence":"additional","affiliation":[]},{"given":"A. M.","family":"Zaitsev","sequence":"additional","affiliation":[]},{"given":"T.","family":"Zakareishvili","sequence":"additional","affiliation":[]},{"given":"N.","family":"Zakharchuk","sequence":"additional","affiliation":[]},{"given":"S.","family":"Zambito","sequence":"additional","affiliation":[]},{"given":"D.","family":"Zanzi","sequence":"additional","affiliation":[]},{"given":"D. R.","family":"Zaripovas","sequence":"additional","affiliation":[]},{"given":"S. V.","family":"Zei\u00dfner","sequence":"additional","affiliation":[]},{"given":"C.","family":"Zeitnitz","sequence":"additional","affiliation":[]},{"given":"G.","family":"Zemaityte","sequence":"additional","affiliation":[]},{"given":"J. C.","family":"Zeng","sequence":"additional","affiliation":[]},{"given":"O.","family":"Zenin","sequence":"additional","affiliation":[]},{"given":"T.","family":"\u017deni\u0161","sequence":"additional","affiliation":[]},{"given":"D.","family":"Zerwas","sequence":"additional","affiliation":[]},{"given":"M.","family":"Zgubi\u010d","sequence":"additional","affiliation":[]},{"given":"B.","family":"Zhang","sequence":"additional","affiliation":[]},{"given":"D. F.","family":"Zhang","sequence":"additional","affiliation":[]},{"given":"G.","family":"Zhang","sequence":"additional","affiliation":[]},{"given":"H.","family":"Zhang","sequence":"additional","affiliation":[]},{"given":"J.","family":"Zhang","sequence":"additional","affiliation":[]},{"given":"L.","family":"Zhang","sequence":"additional","affiliation":[]},{"given":"L.","family":"Zhang","sequence":"additional","affiliation":[]},{"given":"M.","family":"Zhang","sequence":"additional","affiliation":[]},{"given":"R.","family":"Zhang","sequence":"additional","affiliation":[]},{"given":"S.","family":"Zhang","sequence":"additional","affiliation":[]},{"given":"X.","family":"Zhang","sequence":"additional","affiliation":[]},{"given":"X.","family":"Zhang","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Zhang","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Zhang","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Zhang","sequence":"additional","affiliation":[]},{"given":"P.","family":"Zhao","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Zhao","sequence":"additional","affiliation":[]},{"given":"A.","family":"Zhemchugov","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Zheng","sequence":"additional","affiliation":[]},{"given":"D.","family":"Zhong","sequence":"additional","affiliation":[]},{"given":"B.","family":"Zhou","sequence":"additional","affiliation":[]},{"given":"C.","family":"Zhou","sequence":"additional","affiliation":[]},{"given":"M. S.","family":"Zhou","sequence":"additional","affiliation":[]},{"given":"M.","family":"Zhou","sequence":"additional","affiliation":[]},{"given":"N.","family":"Zhou","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Zhou","sequence":"additional","affiliation":[]},{"given":"C. G.","family":"Zhu","sequence":"additional","affiliation":[]},{"given":"C.","family":"Zhu","sequence":"additional","affiliation":[]},{"given":"H. L.","family":"Zhu","sequence":"additional","affiliation":[]},{"given":"H.","family":"Zhu","sequence":"additional","affiliation":[]},{"given":"J.","family":"Zhu","sequence":"additional","affiliation":[]},{"given":"Y.","family":"Zhu","sequence":"additional","affiliation":[]},{"given":"X.","family":"Zhuang","sequence":"additional","affiliation":[]},{"given":"K.","family":"Zhukov","sequence":"additional","affiliation":[]},{"given":"V.","family":"Zhulanov","sequence":"additional","affiliation":[]},{"given":"D.","family":"Zieminska","sequence":"additional","affiliation":[]},{"given":"N. I.","family":"Zimine","sequence":"additional","affiliation":[]},{"given":"S.","family":"Zimmermann","sequence":"additional","affiliation":[]},{"given":"Z.","family":"Zinonos","sequence":"additional","affiliation":[]},{"given":"M.","family":"Ziolkowski","sequence":"additional","affiliation":[]},{"given":"L.","family":"\u017divkovi\u0107","sequence":"additional","affiliation":[]},{"given":"G.","family":"Zobernig","sequence":"additional","affiliation":[]},{"given":"A.","family":"Zoccoli","sequence":"additional","affiliation":[]},{"given":"K.","family":"Zoch","sequence":"additional","affiliation":[]},{"given":"T. G.","family":"Zorbas","sequence":"additional","affiliation":[]},{"given":"R.","family":"Zou","sequence":"additional","affiliation":[]},{"given":"L.","family":"Zwalinski","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2023,2,9]]},"reference":[{"key":"1757_CR1","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1016\/j.physletb.2012.08.020","volume":"716","author":"ATLAS Collaboration.","year":"2012","unstructured":"ATLAS Collaboration. Observation of a new particle in the search for the Standard Model Higgs boson with the ATLAS detector at the LHC. Phys. Lett. B 716, 1\u201329 (2012).","journal-title":"Phys. Lett. B"},{"key":"1757_CR2","doi-asserted-by":"publisher","first-page":"30","DOI":"10.1016\/j.physletb.2012.08.021","volume":"716","author":"CMS Collaboration.","year":"2012","unstructured":"CMS Collaboration. Observation of a new boson at a mass of 125\u2009GeV with the CMS experiment at the LHC. Phys. Lett. B 716, 30\u201361 (2012).","journal-title":"Phys. Lett. B"},{"key":"1757_CR3","doi-asserted-by":"publisher","first-page":"883","DOI":"10.1103\/PhysRevLett.38.883","volume":"38","author":"BW Lee","year":"1977","unstructured":"Lee, B. W., Quigg, C. & Thacker, H. B. Strength of weak interactions at very high energies and the Higgs boson mass. Phys. Rev. Lett. 38, 883\u2013885 (1977).","journal-title":"Phys. Rev. Lett."},{"key":"1757_CR4","doi-asserted-by":"publisher","first-page":"379","DOI":"10.1016\/0550-3213(85)90580-2","volume":"261","author":"MS Chanowitz","year":"1985","unstructured":"Chanowitz, M. S. & Gaillard, M. K. The TeV physics of strongly interacting W\u2019s and Z\u2019s. Nucl. Phys. B 261, 379\u2013431 (1985).","journal-title":"Nucl. Phys. B"},{"key":"1757_CR5","unstructured":"Szleper, M. The Higgs boson and the physics of WW scattering before and after Higgs discovery. Preprint at https:\/\/arxiv.org\/abs\/1412.8367 (2014)."},{"key":"1757_CR6","doi-asserted-by":"publisher","first-page":"081","DOI":"10.1007\/JHEP10(2011)081","volume":"10","author":"R Contino","year":"2011","unstructured":"Contino, R., Pappadopulo, D., Marzocca, D. & Rattazzi, R. On the effect of resonances in composite Higgs phenomenology. J. High Energy Phys. 10, 081 (2011).","journal-title":"J. High Energy Phys."},{"key":"1757_CR7","doi-asserted-by":"publisher","first-page":"034","DOI":"10.1088\/1126-6708\/2002\/07\/034","volume":"07","author":"N Arkani-Hamed","year":"2002","unstructured":"Arkani-Hamed, N., Cohen, A. G., Katz, E. & Nelson, A. E. The littlest Higgs. J. High Energy Phys. 07, 034 (2002).","journal-title":"J. High Energy Phys."},{"key":"1757_CR8","doi-asserted-by":"publisher","DOI":"10.1140\/epjc\/s10052-013-2704-3","volume":"74","author":"A Djouadi","year":"2014","unstructured":"Djouadi, A. Implications of the Higgs discovery for the MSSM. Eur. Phys. J. C 74, 2704 (2014).","journal-title":"Eur. Phys. J. C"},{"key":"1757_CR9","doi-asserted-by":"publisher","first-page":"073005","DOI":"10.1103\/PhysRevD.74.073005","volume":"74","author":"OJP Eboli","year":"2006","unstructured":"Eboli, O. J. P., Gonzalez-Garcia, M. C. & Mizukoshi, J. K. pp\u2009\u2192\u2009jje\u00b1\u03bc\u00b1\u03bd\u03bd and jje\u00b1\u03bc\u2213\u03bd\u03bd at $$O({\\alpha }_{em}^{6})$$ and $$O({\\alpha }_{em}^{6})$$ for the study of the quartic electroweak gauge boson vertex at CERN LHC. Phys. Rev. D 74, 073005 (2006).","journal-title":"Phys. Rev. D"},{"key":"1757_CR10","doi-asserted-by":"publisher","first-page":"39","DOI":"10.1007\/JHEP05(2022)039","volume":"2022","author":"R Bellan","year":"2022","unstructured":"Bellan, R. et al. A sensitivity study of VBS and diboson WW to dimension-6 EFT operators at the LHC. J. High Energy Phys. 2022, 39 (2022).","journal-title":"J. High Energy Phys."},{"key":"1757_CR11","doi-asserted-by":"publisher","first-page":"389","DOI":"10.1140\/epjc\/s10052-019-6893-2","volume":"79","author":"R Gomez-Ambrosio","year":"2019","unstructured":"Gomez-Ambrosio, R. Studies of dimension-six EFT effects in vector boson scattering. Eur. Phys. J. C 79, 389 (2019).","journal-title":"Eur. Phys. J. C"},{"key":"1757_CR12","doi-asserted-by":"publisher","first-page":"161801","DOI":"10.1103\/PhysRevLett.123.161801","volume":"123","author":"ATLAS Collaboration.","year":"2019","unstructured":"ATLAS Collaboration. Observation of electroweak production of a same-sign W boson pair in association with two jets in pp collisions at $$\\sqrt{s}=13$$ TeV with the ATLAS detector. Phys. Rev. Lett. 123, 161801 (2019).","journal-title":"Phys. Rev. Lett."},{"key":"1757_CR13","doi-asserted-by":"publisher","first-page":"469","DOI":"10.1016\/j.physletb.2019.05.012","volume":"793","author":"ATLAS Collaboration.","year":"2019","unstructured":"ATLAS Collaboration. Observation of electroweak W\u00b1Z boson pair production in association with two jets in pp collisions at $$\\sqrt{s}=$$ 13 TeV with the ATLAS detector. Phys. Lett. B 793, 469\u2013492 (2019).","journal-title":"Phys. Lett. B"},{"key":"1757_CR14","doi-asserted-by":"publisher","first-page":"081801","DOI":"10.1103\/PhysRevLett.120.081801","volume":"120","author":"CMS Collaboration.","year":"2018","unstructured":"CMS Collaboration. Observation of electroweak production of same-sign W boson pairs in the two jet and two same-sign lepton final state in proton\u2013proton collisions at $$\\sqrt{s}=$$ 13 TeV. Phys. Rev. Lett. 120, 081801 (2018).","journal-title":"Phys. Rev. Lett."},{"key":"1757_CR15","unstructured":"CMS Collaboration. Measurements of production cross sections of WZ and same-sign WW boson pairs in association with two jets in proton\u2013proton collisions at $$\\sqrt{s}=$$ 13 TeV. Phys. Lett. B 809, 135710 (2020)."},{"key":"1757_CR16","doi-asserted-by":"publisher","first-page":"135992","DOI":"10.1016\/j.physletb.2020.135992","volume":"812","author":"CMS Collaboration.","year":"2021","unstructured":"CMS Collaboration. Evidence for electroweak production of four charged leptons and two jets in proton\u2013proton collisions at $$\\sqrt{s}=13\\,{{{\\rm{TeV}}}}$$. Phys. Lett. B 812, 135992 (2021).","journal-title":"Phys. Lett. B"},{"key":"1757_CR17","doi-asserted-by":"publisher","first-page":"053003","DOI":"10.1103\/PhysRevD.90.053003","volume":"90","author":"C Englert","year":"2014","unstructured":"Englert, C. & Spannowsky, M. Limitations and opportunities of off-shell coupling measurements. Phys. Rev. D 90, 053003 (2014).","journal-title":"Phys. Rev. D"},{"key":"1757_CR18","unstructured":"ATLAS Collaboration. The ATLAS experiment at the CERN Large Hadron Collider. J. Instrum. 3, S08003 (2008)."},{"key":"1757_CR19","unstructured":"ATLAS Collaboration. ATLAS insertable B-layer technical design report, ATLAS-TDR-19. CERN https:\/\/cds.cern.ch\/record\/1291633 (2010)."},{"key":"1757_CR20","doi-asserted-by":"publisher","first-page":"T05008","DOI":"10.1088\/1748-0221\/13\/05\/T05008","volume":"13","author":"B Abbott","year":"2018","unstructured":"Abbott, B. et al. Production and integration of the ATLAS Insertable B-Layer. J. Instrum. 13, T05008 (2018).","journal-title":"J. Instrum."},{"key":"1757_CR21","doi-asserted-by":"publisher","DOI":"10.1140\/epjc\/s10052-017-4852-3","volume":"77","author":"ATLAS Collaboration.","year":"2017","unstructured":"ATLAS Collaboration. Performance of the ATLAS trigger system in 2015. Eur. Phys. J. C 77, 317 (2017).","journal-title":"Eur. Phys. J. C"},{"key":"1757_CR22","doi-asserted-by":"publisher","first-page":"141","DOI":"10.1007\/JHEP03(2014)141","volume":"2014","author":"B J\u00e4ger","year":"2014","unstructured":"J\u00e4ger, B., Karlberg, A. & Zanderighi, G. Electroweak ZZjj production in the Standard Model and beyond in the POWHEG-BOX V2. J. High Energy Phys. 2014, 141 (2014).","journal-title":"J. High Energy Phys."},{"key":"1757_CR23","doi-asserted-by":"publisher","first-page":"040","DOI":"10.1007\/JHEP04(2015)040","volume":"04","author":"RD Ball","year":"2015","unstructured":"Ball, R. D. et al. Parton distributions for the LHC run II. J. High Energy Phys. 04, 040 (2015).","journal-title":"J. High Energy Phys."},{"key":"1757_CR24","doi-asserted-by":"publisher","first-page":"079","DOI":"10.1007\/JHEP07(2014)079","volume":"07","author":"J Alwall","year":"2014","unstructured":"Alwall, J. et al. The automated computation of tree-level and next-to-leading order differential cross sections, and their matching to parton shower simulations. J. High Energy Phys. 07, 079 (2014).","journal-title":"J. High Energy Phys."},{"key":"1757_CR25","doi-asserted-by":"publisher","first-page":"007","DOI":"10.1088\/1126-6708\/2009\/02\/007","volume":"02","author":"T Gleisberg","year":"2009","unstructured":"Gleisberg, T. et al. Event generation with SHERPA 1.1. J. High Energy Phys. 02, 007 (2009).","journal-title":"J. High Energy Phys."},{"key":"1757_CR26","doi-asserted-by":"publisher","first-page":"082","DOI":"10.1007\/JHEP12(2013)082","volume":"12","author":"N Kauer","year":"2013","unstructured":"Kauer, N. Interference effects for H\u2009\u2192\u2009WW\/ZZ $$\\to \\ell {\\overline{\\nu }}_{\\ell }\\overline{\\ell }{\\nu }_{\\ell }$$ searches in gluon fusion at the LHC. J. High Energy Phys. 12, 082, (2013).","journal-title":"J. High Energy Phys."},{"key":"1757_CR27","doi-asserted-by":"publisher","first-page":"033009","DOI":"10.1103\/PhysRevD.89.033009","volume":"89","author":"J Gao","year":"2014","unstructured":"Gao, J. et al. CT10 next-to-next-to-leading order global analysis of QCD. Phys. Rev. D 89, 033009 (2014).","journal-title":"Phys. Rev. D"},{"key":"1757_CR28","doi-asserted-by":"publisher","first-page":"126","DOI":"10.1088\/1126-6708\/2007\/09\/126","volume":"09","author":"S Frixione","year":"2007","unstructured":"Frixione, S., Ridolfi, G. & Nason, P. A positive-weight next-to-leading-order Monte Carlo for heavy flavour hadroproduction. J. High Energy Phys. 09, 126 (2007).","journal-title":"J. High Energy Phys."},{"key":"1757_CR29","doi-asserted-by":"publisher","first-page":"111","DOI":"10.1088\/1126-6708\/2009\/09\/111","volume":"09","author":"S Alioli","year":"2009","unstructured":"Alioli, S., Nason, P., Oleari, C. & Re, E. NLO single-top production matched with shower in POWHEG: s- and t-channel contributions. J. High Energy Phys. 09, 111 (2009).","journal-title":"J. High Energy Phys."},{"key":"1757_CR30","doi-asserted-by":"publisher","first-page":"130","DOI":"10.1007\/JHEP09(2012)130","volume":"09","author":"R Frederix","year":"2012","unstructured":"Frederix, R., Re, E. & Torrielli, P. Single-top t-channel hadroproduction in the four-flavour scheme with POWHEG and aMC@NLO. J. High Energy Phys. 09, 130 (2012).","journal-title":"J. High Energy Phys."},{"key":"1757_CR31","doi-asserted-by":"publisher","DOI":"10.1140\/epjc\/s10052-011-1547-z","volume":"71","author":"E Re","year":"2011","unstructured":"Re, E. Single-top Wt-channel production matched with parton showers using the POWHEG method. Eur. Phys. J. C 71, 1547 (2011).","journal-title":"Eur. Phys. J. C"},{"key":"1757_CR32","doi-asserted-by":"publisher","first-page":"852","DOI":"10.1016\/j.cpc.2008.01.036","volume":"178","author":"T Sj\u00f6strand","year":"2008","unstructured":"Sj\u00f6strand, T., Mrenna, S. & Skands, P. Z. A brief introduction to PYTHIA 8.1. Comput. Phys. Commun. 178, 852\u2013867 (2008).","journal-title":"Comput. Phys. Commun."},{"key":"1757_CR33","doi-asserted-by":"publisher","first-page":"244","DOI":"10.1016\/j.nuclphysb.2012.10.003","volume":"867","author":"RD Ball","year":"2013","unstructured":"Ball, R. D. et al. Parton distributions with LHC data. Nucl. Phys. B 867, 244\u2013289 (2013).","journal-title":"Nucl. Phys. B"},{"key":"1757_CR34","unstructured":"ATLAS Collaboration. ATLAS Pythia 8 tunes to 7\u2009TeV data, ATL-PHYS-PUB-2014-021 CERN https:\/\/cds.cern.ch\/record\/1966419 (2014)."},{"key":"1757_CR35","doi-asserted-by":"publisher","DOI":"10.1140\/epjc\/s10052-010-1429-9","volume":"70","author":"ATLAS Collaboration.","year":"2010","unstructured":"ATLAS Collaboration. The ATLAS simulation infrastructure. Eur. Phys. J. C 70, 823 (2010).","journal-title":"Eur. Phys. J. C"},{"key":"1757_CR36","doi-asserted-by":"publisher","first-page":"250","DOI":"10.1016\/S0168-9002(03)01368-8","volume":"506","author":"S Agostinelli","year":"2003","unstructured":"Agostinelli, S. et al. Geant4\u2014a simulation toolkit. Nucl. Instrum. Methods A 506, 250\u2013303 (2003).","journal-title":"Nucl. Instrum. Methods A"},{"key":"1757_CR37","doi-asserted-by":"publisher","first-page":"3","DOI":"10.1007\/s41781-021-00062-2","volume":"6","author":"G Aad","year":"2022","unstructured":"Aad, G. et al. Emulating the impact of additional proton-proton interactions in the ATLAS simulation by presampling sets of inelastic Monte Carlo events. Comput. Softw. Big Sci. 6, 3 (2022).","journal-title":"Comput. Softw. Big Sci."},{"key":"1757_CR38","doi-asserted-by":"publisher","DOI":"10.1140\/epjc\/s10052-016-4120-y","volume":"76","author":"ATLAS Collaboration.","year":"2016","unstructured":"ATLAS Collaboration. Muon reconstruction performance of the ATLAS detector in proton\u2013proton collision data at $$\\sqrt{s}=13\\,{{{\\rm{TeV}}}}$$. Eur. Phys. J. C 76, 292 (2016).","journal-title":"Eur. Phys. J. C"},{"key":"1757_CR39","doi-asserted-by":"publisher","DOI":"10.1140\/epjc\/s10052-019-7140-6","volume":"79","author":"ATLAS Collaboration.","year":"2019","unstructured":"ATLAS Collaboration. Electron reconstruction and identification in the ATLAS experiment using the 2015 and 2016 LHC proton\u2013proton collision data at$$\\sqrt{s}$$ = 13\u2009TeV. Eur. Phys. J. C 79, 639 (2019).","journal-title":"Eur. Phys. J. C"},{"key":"1757_CR40","doi-asserted-by":"publisher","first-page":"063","DOI":"10.1088\/1126-6708\/2008\/04\/063","volume":"04","author":"M Cacciari","year":"2008","unstructured":"Cacciari, M., Salam, G. P. & Soyez, G. The anti-kt jet clustering algorithm. J. High Energy Phys. 04, 063 (2008).","journal-title":"J. High Energy Phys."},{"key":"1757_CR41","doi-asserted-by":"publisher","DOI":"10.1140\/epjc\/s10052-012-1896-2","volume":"72","author":"M Cacciari","year":"2012","unstructured":"Cacciari, M., Salam, G. P. & Soyez, G. FastJet user manual. Eur. Phys. J. C 72, 1896 (2012).","journal-title":"Eur. Phys. J. C"},{"key":"1757_CR42","doi-asserted-by":"publisher","first-page":"072002","DOI":"10.1103\/PhysRevD.96.072002","volume":"96","author":"ATLAS Collaboration.","year":"2017","unstructured":"ATLAS Collaboration. Jet energy scale measurements and their systematic uncertainties in proton\u2013proton collisions at $$\\sqrt{s}=13$$ TeV with the ATLAS detector. Phys. Rev. D 96, 072002 (2017).","journal-title":"Phys. Rev. D"},{"key":"1757_CR43","doi-asserted-by":"publisher","DOI":"10.1140\/epjc\/s10052-016-4395-z","volume":"76","author":"ATLAS Collaboration.","year":"2016","unstructured":"ATLAS Collaboration. Performance of pile-up mitigation techniques for jets in pp collisions at $$\\sqrt{s}=8\\,{{{\\rm{TeV}}}}$$ using the ATLAS detector. Eur. Phys. J. C 76, 581 (2016).","journal-title":"Eur. Phys. J. C"},{"key":"1757_CR44","doi-asserted-by":"publisher","first-page":"970","DOI":"10.1140\/epjc\/s10052-019-7450-8","volume":"79","author":"ATLAS Collaboration.","year":"2019","unstructured":"ATLAS Collaboration. ATLAS b-jet identification performance and efficiency measurement with $$t\\overline{t}$$ events in pp collisions at $$\\sqrt{s}=13$$ TeV. Eur. Phys. J. C 79, 970 (2019).","journal-title":"Eur. Phys. J. C"},{"key":"1757_CR45","doi-asserted-by":"publisher","first-page":"032003","DOI":"10.1103\/PhysRevD.94.032003","volume":"94","author":"ATLAS Collaboration.","year":"2016","unstructured":"ATLAS Collaboration. Search for pair production of gluinos decaying via stop and sbottom in events with b-jets and large missing transverse momentum in pp collisions at $$\\sqrt{s}=13$$ TeV with the ATLAS detector. Phys. Rev. D 94, 032003 (2016).","journal-title":"Phys. Rev. D"},{"key":"1757_CR46","doi-asserted-by":"publisher","DOI":"10.1140\/epjc\/s10052-018-6288-9","volume":"78","author":"ATLAS Collaboration.","year":"2018","unstructured":"ATLAS Collaboration. Performance of missing transverse momentum reconstruction with the ATLAS detector using proton\u2013proton collisions at $$\\sqrt{s}$$ = 13 TeV. Eur. Phys. J. C 78, 903 (2018).","journal-title":"Eur. Phys. J. C"},{"key":"1757_CR47","unstructured":"ATLAS Collaboration. Object-based missing transverse momentum significance in the ATLAS detector. ATLAS-CONF-2018-038. CERN https:\/\/cds.cern.ch\/record\/2630948 (2018)."},{"key":"1757_CR48","doi-asserted-by":"publisher","first-page":"135341","DOI":"10.1016\/j.physletb.2020.135341","volume":"803","author":"ATLAS Collaboration.","year":"2020","unstructured":"ATLAS Collaboration. Evidence for electroweak production of two jets in association with a em>Z\u03b3 pair in pp collisions at $$\\sqrt{s}=13\\,{{{\\rm{TeV}}}}$$ with the ATLAS detector. Phys. Lett. B 803, 135341 (2020).","journal-title":"Phys. Lett. B"},{"key":"1757_CR49","first-page":"031","volume":"04","author":"ATLAS Collaboration.","year":"2014","unstructured":"ATLAS Collaboration. Measurement of the electroweak production of dijets in association with a Z-boson and distributions sensitive to vector boson fusion in proton\u2013proton collisions at $$\\sqrt{s}=8\\,{{{\\rm{TeV}}}}$$ using the ATLAS detector. J. High Energy Phys. 04, 031 (2014).","journal-title":"J. High Energy Phys."},{"key":"1757_CR50","doi-asserted-by":"publisher","DOI":"10.1140\/epjc\/s10052-017-5007-2","volume":"77","author":"ATLAS Collaboration.","year":"2017","unstructured":"ATLAS Collaboration. Measurements of electroweak Wjj production and constraints on anomalous gauge couplings with the ATLAS detector. Eur. Phys. J. C 77, 474 (2017).","journal-title":"Eur. Phys. J. C"},{"key":"1757_CR51","doi-asserted-by":"publisher","first-page":"206","DOI":"10.1016\/j.physletb.2017.10.040","volume":"775","author":"ATLAS Collaboration.","year":"2017","unstructured":"ATLAS Collaboration. Measurement of the cross-section for electroweak production of dijets in association with a Z boson in pp collisions at $$\\sqrt{s}=13\\,{{{\\rm{TeV}}}}$$ with the ATLAS detector. Phys. Lett. B 775, 206\u2013228 (2017).","journal-title":"Phys. Lett. B"},{"key":"1757_CR52","doi-asserted-by":"publisher","first-page":"032005","DOI":"10.1103\/PhysRevD.97.032005","volume":"97","author":"ATLAS Collaboration.","year":"2018","unstructured":"ATLAS Collaboration. $$ZZ\\to {\\ell }^{+}{\\ell }^{-}{\\ell }^{{\\,}^{\\prime} +}{\\ell }^{{\\,}^{\\prime} -}$$ cross-section measurements and search for anomalous triple gauge couplings in 13\u2009TeV pp collisions with the ATLAS detector. Phys. Rev. D 97, 032005 (2018).","journal-title":"Phys. Rev. D"},{"key":"1757_CR53","doi-asserted-by":"publisher","first-page":"318","DOI":"10.1016\/j.physletb.2017.11.049","volume":"776","author":"ATLAS Collaboration.","year":"2018","unstructured":"ATLAS Collaboration. Search for an invisibly decaying Higgs boson or dark matter candidates produced in association with a Z boson in pp collisions at $$\\sqrt{s}=$$ 13\u2009TeV with the ATLAS detector. Phys. Lett. B 776, 318\u2013337 (2018).","journal-title":"Phys. Lett. B"},{"key":"1757_CR54","unstructured":"ATLAS Collaboration. Luminosity determination in pp collisions at $$\\sqrt{s}=13$$ TeV using the ATLAS detector at the LHC, ATLAS-CONF-2019-021. CERN http:\/\/cds.cern.ch\/record\/2677054 (2019)."},{"key":"1757_CR55","doi-asserted-by":"publisher","first-page":"P07017","DOI":"10.1088\/1748-0221\/13\/07\/P07017","volume":"13","author":"G Avoni","year":"2018","unstructured":"Avoni, G. et al. The new lucid-2 detector for luminosity measurement and monitoring in atlas. J. Instrum. 13, P07017 (2018).","journal-title":"J. Instrum."},{"key":"1757_CR56","doi-asserted-by":"publisher","first-page":"023001","DOI":"10.1088\/0954-3899\/43\/2\/023001","volume":"43","author":"J Butterworth","year":"2016","unstructured":"Butterworth, J. et al. PDF4LHC recommendations for LHC Run II. J. Phys. G 43, 023001 (2016).","journal-title":"J. Phys. G"},{"key":"1757_CR57","doi-asserted-by":"publisher","first-page":"127","DOI":"10.1007\/JHEP10(2019)127","volume":"10","author":"ATLAS Collaboration.","year":"2019","unstructured":"ATLAS Collaboration. Measurement of ZZ production in the \u2113\u2113\u03bd\u03bd final state with the ATLAS detector in pp collisions at $$\\sqrt{s}=13$$ TeV. J. High Energy Phys. 10, 127 (2019).","journal-title":"J. High Energy Phys."},{"key":"1757_CR58","doi-asserted-by":"publisher","DOI":"10.1140\/epjc\/s10052-016-4018-8","volume":"76","author":"J Bellm","year":"2016","unstructured":"Bellm, J. et al. Herwig 7.0\/Herwig++ 3.0 release note. Eur. Phys. J. C 76, 196 (2016).","journal-title":"Eur. Phys. J. C"},{"key":"1757_CR59","doi-asserted-by":"publisher","first-page":"639","DOI":"10.1140\/epjc\/s10052-008-0798-9","volume":"58","author":"M B\u00e4hr","year":"2008","unstructured":"B\u00e4hr, M. et al. Herwig++ physics and manual. Eur. Phys. J. C 58, 639\u2013707 (2008).","journal-title":"Eur. Phys. J. C"},{"key":"1757_CR60","doi-asserted-by":"publisher","first-page":"1189","DOI":"10.1214\/aos\/1013203451","volume":"29","author":"JH Friedman","year":"2001","unstructured":"Friedman, J. H. Greedy function approximation: A gradient boosting machine. Ann. Stat. 29, 1189\u20131232 (2001).","journal-title":"Ann. Stat."},{"key":"1757_CR61","unstructured":"H\u00f6cker, A. et al. TMVA \u2013 toolkit for multivariate data analysis. Preprint at https:\/\/arxiv.org\/abs\/physics\/0703039 (2007)."},{"key":"1757_CR62","doi-asserted-by":"publisher","first-page":"1554","DOI":"10.1140\/epjc\/s10052-011-1554-0","volume":"71","author":"G Cowan","year":"2011","unstructured":"Cowan, G., Cranmer, K., Gross, E. & Vitells, O. Asymptotic formulae for likelihood-based tests of new physics. Eur. Phys. J. C 71, 1554 (2011).","journal-title":"Eur. Phys. J. C"},{"key":"1757_CR63","doi-asserted-by":"publisher","first-page":"682","DOI":"10.1016\/j.physletb.2017.10.020","volume":"774","author":"CMS Collaboration.","year":"2017","unstructured":"CMS Collaboration. Measurement of vector boson scattering and constraints on anomalous quartic couplings from events with four leptons and two jets in proton\u2013proton collisions at $$\\sqrt{s}=$$ 13 TeV. Phys. Lett. B 774, 682\u2013705 (2017).","journal-title":"Phys. Lett. B"},{"key":"1757_CR64","unstructured":"ATLAS Collaboration. ATLAS computing acknowledgements, ATL-SOFT-PUB-2021-003. CERN (2021) https:\/\/cds.cern.ch\/record\/2776662."},{"key":"1757_CR65","doi-asserted-by":"publisher","unstructured":"ATLAS Collaboration. Observation of electroweak production of two jets and a Z-boson pair with the ATLAS detector at the LHC (version 3). HEPData https:\/\/doi.org\/10.17182\/hepdata.93015.v3 (2022).","DOI":"10.17182\/hepdata.93015.v3"}],"container-title":["Nature Physics"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.nature.com\/articles\/s41567-022-01757-y.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/www.nature.com\/articles\/s41567-022-01757-y","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/www.nature.com\/articles\/s41567-022-01757-y.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,2,10]],"date-time":"2023-02-10T15:32:36Z","timestamp":1676043156000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.nature.com\/articles\/s41567-022-01757-y"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,2,9]]},"references-count":65,"alternative-id":["1757"],"URL":"http:\/\/dx.doi.org\/10.1038\/s41567-022-01757-y","relation":{},"ISSN":["1745-2473","1745-2481"],"issn-type":[{"value":"1745-2473","type":"print"},{"value":"1745-2481","type":"electronic"}],"subject":["General Physics and Astronomy"],"published":{"date-parts":[[2023,2,9]]},"assertion":[{"value":"27 April 2020","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"15 August 2022","order":2,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"9 February 2023","order":3,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"The authors declare no competing interests.","order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Competing interests"}}]} \ No newline at end of file diff --git a/dhp-workflows/dhp-doiboost/src/test/scala/eu/dnetlib/dhp/doiboost/crossref/CrossrefMappingTest.scala b/dhp-workflows/dhp-doiboost/src/test/scala/eu/dnetlib/dhp/doiboost/crossref/CrossrefMappingTest.scala index e0ef0e65c..c27cebf65 100644 --- a/dhp-workflows/dhp-doiboost/src/test/scala/eu/dnetlib/dhp/doiboost/crossref/CrossrefMappingTest.scala +++ b/dhp-workflows/dhp-doiboost/src/test/scala/eu/dnetlib/dhp/doiboost/crossref/CrossrefMappingTest.scala @@ -22,6 +22,13 @@ class CrossrefMappingTest { val logger: Logger = LoggerFactory.getLogger(Crossref2Oaf.getClass) val mapper = new ObjectMapper() + @Test + def testMissingAuthorParser():Unit = { + val json: String = Source.fromInputStream(getClass.getResourceAsStream("/eu/dnetlib/doiboost/crossref/s41567-022-01757-y.json")).mkString + val result = Crossref2Oaf.convert(json) + result.filter(o => o.isInstanceOf[Publication]).map(p=> p.asInstanceOf[Publication]).foreach(p =>assertTrue(p.getAuthor.size()>0)) + } + @Test def testFunderRelationshipsMapping(): Unit = { val template = Source @@ -149,7 +156,7 @@ class CrossrefMappingTest { assertNotNull(relationList) assertFalse(relationList.isEmpty) - assertEquals(doisReference.size * 2, relationList.size) + assertEquals(doisReference.size, relationList.size) mapper.getSerializationConfig.enable(SerializationConfig.Feature.INDENT_OUTPUT) relationList.foreach(p => println(mapper.writeValueAsString(p))) diff --git a/dhp-workflows/dhp-enrichment/pom.xml b/dhp-workflows/dhp-enrichment/pom.xml index 591cad252..9698dee03 100644 --- a/dhp-workflows/dhp-enrichment/pom.xml +++ b/dhp-workflows/dhp-enrichment/pom.xml @@ -12,11 +12,11 @@ org.apache.spark - spark-core_2.11 + spark-core_${scala.binary.version} org.apache.spark - spark-sql_2.11 + spark-sql_${scala.binary.version} @@ -27,7 +27,7 @@ org.apache.spark - spark-hive_2.11 + spark-hive_${scala.binary.version} test diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/MoveResult.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/MoveResult.java new file mode 100644 index 000000000..c71ccb439 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/MoveResult.java @@ -0,0 +1,84 @@ + +package eu.dnetlib.dhp; + +import static eu.dnetlib.dhp.PropagationConstant.isSparkSessionManaged; +import static eu.dnetlib.dhp.PropagationConstant.readPath; +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; + +import java.io.Serializable; + +import org.apache.commons.io.IOUtils; +import org.apache.spark.SparkConf; +import org.apache.spark.sql.Dataset; +import org.apache.spark.sql.SaveMode; +import org.apache.spark.sql.SparkSession; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.resulttocommunityfromorganization.SparkResultToCommunityFromOrganizationJob; +import eu.dnetlib.dhp.schema.common.ModelSupport; +import eu.dnetlib.dhp.schema.oaf.Result; + +/** + * @author miriam.baglioni + * @Date 15/01/24 + */ +public class MoveResult implements Serializable { + private static final Logger log = LoggerFactory.getLogger(MoveResult.class); + + public static void main(String[] args) throws Exception { + String jsonConfiguration = IOUtils + .toString( + MoveResult.class + .getResourceAsStream( + "/eu/dnetlib/dhp/wf/subworkflows/input_moveresult_parameters.json")); + + final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); + + parser.parseArgument(args); + + Boolean isSparkSessionManaged = isSparkSessionManaged(parser); + log.info("isSparkSessionManaged: {}", isSparkSessionManaged); + + String inputPath = parser.get("sourcePath"); + log.info("inputPath: {}", inputPath); + + final String outputPath = parser.get("outputPath"); + log.info("outputPath: {}", outputPath); + + SparkConf conf = new SparkConf(); + + runWithSparkSession( + conf, + isSparkSessionManaged, + spark -> { + moveResults(spark, inputPath, outputPath); + + }); + } + + public static void moveResults(SparkSession spark, String inputPath, String outputPath) { + + ModelSupport.entityTypes + .keySet() + .parallelStream() + .filter(e -> ModelSupport.isResult(e)) + // .parallelStream() + .forEach(e -> { + Class resultClazz = ModelSupport.entityTypes.get(e); + Dataset resultDataset = readPath(spark, inputPath + e.name(), resultClazz); + if (resultDataset.count() > 0) { + + resultDataset + .write() + .mode(SaveMode.Overwrite) + .option("compression", "gzip") + .json(outputPath + e.name()); + } + + }); + + } + +} diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/PropagationConstant.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/PropagationConstant.java index 053300696..7c4186663 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/PropagationConstant.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/PropagationConstant.java @@ -71,6 +71,9 @@ public class PropagationConstant { public static final String PROPAGATION_RESULT_COMMUNITY_ORGANIZATION_CLASS_ID = "result:community:organization"; public static final String PROPAGATION_RESULT_COMMUNITY_ORGANIZATION_CLASS_NAME = " Propagation of result belonging to community through organization"; + public static final String PROPAGATION_RESULT_COMMUNITY_PROJECT_CLASS_ID = "result:community:project"; + public static final String PROPAGATION_RESULT_COMMUNITY_PROJECT_CLASS_NAME = " Propagation of result belonging to community through project"; + public static final String PROPAGATION_ORCID_TO_RESULT_FROM_SEM_REL_CLASS_ID = "authorpid:result"; public static final String PROPAGATION_ORCID_TO_RESULT_FROM_SEM_REL_CLASS_NAME = "Propagation of authors pid to result through semantic relations"; diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/QueryCommunityAPI.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/QueryCommunityAPI.java new file mode 100644 index 000000000..cf33c6509 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/QueryCommunityAPI.java @@ -0,0 +1,80 @@ + +package eu.dnetlib.dhp.api; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; + +import org.jetbrains.annotations.NotNull; + +/** + * @author miriam.baglioni + * @Date 06/10/23 + */ +public class QueryCommunityAPI { + + private static String get(String geturl) throws IOException { + URL url = new URL(geturl); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setDoOutput(true); + conn.setRequestMethod("GET"); + + int responseCode = conn.getResponseCode(); + String body = getBody(conn); + conn.disconnect(); + if (responseCode != HttpURLConnection.HTTP_OK) + throw new IOException("Unexpected code " + responseCode + body); + + return body; + } + + public static String communities(String baseURL) throws IOException { + + return get(baseURL + "communities"); + + } + + public static String community(String id, String baseURL) throws IOException { + + return get(baseURL + id); + + } + + public static String communityDatasource(String id, String baseURL) throws IOException { + + return get(baseURL + id + "/contentproviders"); + + } + + public static String communityPropagationOrganization(String id, String baseURL) throws IOException { + + return get(baseURL + id + "/propagationOrganizations"); + + } + + public static String communityProjects(String id, String page, String size, String baseURL) throws IOException { + + return get(baseURL + id + "/projects/" + page + "/" + size); + + } + + @NotNull + private static String getBody(HttpURLConnection conn) throws IOException { + String body = "{}"; + try (BufferedReader br = new BufferedReader( + new InputStreamReader(conn.getInputStream(), "utf-8"))) { + StringBuilder response = new StringBuilder(); + String responseLine = null; + while ((responseLine = br.readLine()) != null) { + response.append(responseLine.trim()); + } + + body = response.toString(); + + } + return body; + } + +} diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/Utils.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/Utils.java new file mode 100644 index 000000000..06d0f95c2 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/Utils.java @@ -0,0 +1,177 @@ + +package eu.dnetlib.dhp.api; + +import java.io.IOException; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; + +import javax.management.Query; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.amazonaws.util.StringUtils; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.Maps; + +import eu.dnetlib.dhp.api.model.*; +import eu.dnetlib.dhp.bulktag.community.Community; +import eu.dnetlib.dhp.bulktag.community.CommunityConfiguration; +import eu.dnetlib.dhp.bulktag.community.Provider; +import eu.dnetlib.dhp.bulktag.criteria.VerbResolver; +import eu.dnetlib.dhp.bulktag.criteria.VerbResolverFactory; +import eu.dnetlib.dhp.resulttocommunityfromorganization.SparkResultToCommunityFromOrganizationJob; + +/** + * @author miriam.baglioni + * @Date 09/10/23 + */ +public class Utils implements Serializable { + private static final ObjectMapper MAPPER = new ObjectMapper(); + private static final VerbResolver resolver = VerbResolverFactory.newInstance(); + + private static final Logger log = LoggerFactory.getLogger(Utils.class); + + public static CommunityConfiguration getCommunityConfiguration(String baseURL) throws IOException { + final Map communities = Maps.newHashMap(); + List validCommunities = new ArrayList<>(); + getValidCommunities(baseURL) + .forEach(community -> { + try { + CommunityModel cm = MAPPER + .readValue(QueryCommunityAPI.community(community.getId(), baseURL), CommunityModel.class); + validCommunities.add(getCommunity(cm)); + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + validCommunities.forEach(community -> { + try { + DatasourceList dl = MAPPER + .readValue( + QueryCommunityAPI.communityDatasource(community.getId(), baseURL), DatasourceList.class); + community.setProviders(dl.stream().map(d -> { + if (d.getEnabled() == null || Boolean.FALSE.equals(d.getEnabled())) + return null; + Provider p = new Provider(); + p.setOpenaireId("10|" + d.getOpenaireId()); + p.setSelectionConstraints(d.getSelectioncriteria()); + if (p.getSelectionConstraints() != null) + p.getSelectionConstraints().setSelection(resolver); + return p; + }) + .filter(Objects::nonNull) + .collect(Collectors.toList())); + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + + validCommunities.forEach(community -> { + if (community.isValid()) + communities.put(community.getId(), community); + }); + return new CommunityConfiguration(communities); + } + + private static Community getCommunity(CommunityModel cm) { + Community c = new Community(); + c.setId(cm.getId()); + c.setZenodoCommunities(cm.getOtherZenodoCommunities()); + if (!StringUtils.isNullOrEmpty(cm.getZenodoCommunity())) + c.getZenodoCommunities().add(cm.getZenodoCommunity()); + c.setSubjects(cm.getSubjects()); + c.getSubjects().addAll(cm.getFos()); + c.getSubjects().addAll(cm.getSdg()); + if (cm.getAdvancedConstraints() != null) { + c.setConstraints(cm.getAdvancedConstraints()); + c.getConstraints().setSelection(resolver); + } + if (cm.getRemoveConstraints() != null) { + c.setRemoveConstraints(cm.getRemoveConstraints()); + c.getRemoveConstraints().setSelection(resolver); + } + return c; + } + + public static List getValidCommunities(String baseURL) throws IOException { + return MAPPER + .readValue(QueryCommunityAPI.communities(baseURL), CommunitySummary.class) + .stream() + .filter( + community -> !community.getStatus().equals("hidden") && + (community.getType().equals("ri") || community.getType().equals("community"))) + .collect(Collectors.toList()); + } + + /** + * it returns for each organization the list of associated communities + */ + public static CommunityEntityMap getCommunityOrganization(String baseURL) throws IOException { + CommunityEntityMap organizationMap = new CommunityEntityMap(); + getValidCommunities(baseURL) + .forEach(community -> { + String id = community.getId(); + try { + List associatedOrgs = MAPPER + .readValue( + QueryCommunityAPI.communityPropagationOrganization(id, baseURL), OrganizationList.class); + associatedOrgs.forEach(o -> { + if (!organizationMap + .keySet() + .contains( + "20|" + o)) + organizationMap.put("20|" + o, new ArrayList<>()); + organizationMap.get("20|" + o).add(community.getId()); + }); + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + + return organizationMap; + } + + public static CommunityEntityMap getCommunityProjects(String baseURL) throws IOException { + CommunityEntityMap projectMap = new CommunityEntityMap(); + + getValidCommunities(baseURL) + .forEach(community -> { + int page = -1; + int size = 100; + ContentModel cm = new ContentModel(); + do { + page++; + try { + cm = MAPPER + .readValue( + QueryCommunityAPI + .communityProjects( + community.getId(), String.valueOf(page), String.valueOf(size), baseURL), + ContentModel.class); + if (cm.getContent().size() > 0) { + cm.getContent().forEach(p -> { + if (!projectMap.keySet().contains("40|" + p.getOpenaireId())) + projectMap.put("40|" + p.getOpenaireId(), new ArrayList<>()); + projectMap.get("40|" + p.getOpenaireId()).add(community.getId()); + }); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } while (!cm.getLast()); + }); + return projectMap; + } + + public static List getCommunityIdList(String baseURL) throws IOException { + return getValidCommunities(baseURL) + .stream() + .map(community -> community.getId()) + .collect(Collectors.toList()); + } +} diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/CommunityContentprovider.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/CommunityContentprovider.java new file mode 100644 index 000000000..9fab5a80c --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/CommunityContentprovider.java @@ -0,0 +1,43 @@ + +package eu.dnetlib.dhp.api.model; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.google.gson.Gson; + +import eu.dnetlib.dhp.bulktag.community.SelectionConstraints; + +@JsonAutoDetect +@JsonIgnoreProperties(ignoreUnknown = true) +public class CommunityContentprovider { + private String openaireId; + private SelectionConstraints selectioncriteria; + + private String enabled; + + public String getEnabled() { + return enabled; + } + + public void setEnabled(String enabled) { + this.enabled = enabled; + } + + public String getOpenaireId() { + return openaireId; + } + + public void setOpenaireId(final String openaireId) { + this.openaireId = openaireId; + } + + public SelectionConstraints getSelectioncriteria() { + + return this.selectioncriteria; + } + + public void setSelectioncriteria(SelectionConstraints selectioncriteria) { + this.selectioncriteria = selectioncriteria; + + } +} diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromorganization/OrganizationMap.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/CommunityEntityMap.java similarity index 59% rename from dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromorganization/OrganizationMap.java rename to dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/CommunityEntityMap.java index 7d786058a..ca3eb2857 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromorganization/OrganizationMap.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/CommunityEntityMap.java @@ -1,13 +1,13 @@ -package eu.dnetlib.dhp.resulttocommunityfromorganization; +package eu.dnetlib.dhp.api.model; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -public class OrganizationMap extends HashMap> { +public class CommunityEntityMap extends HashMap> { - public OrganizationMap() { + public CommunityEntityMap() { super(); } diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/CommunityModel.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/CommunityModel.java new file mode 100644 index 000000000..745e7efc2 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/CommunityModel.java @@ -0,0 +1,108 @@ + +package eu.dnetlib.dhp.api.model; + +import java.io.Serializable; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +import eu.dnetlib.dhp.bulktag.community.SelectionConstraints; + +/** + * @author miriam.baglioni + * @Date 06/10/23 + */ +@JsonIgnoreProperties(ignoreUnknown = true) +public class CommunityModel implements Serializable { + private String id; + private String type; + private String status; + + private String zenodoCommunity; + private List subjects; + private List otherZenodoCommunities; + private List fos; + private List sdg; + private SelectionConstraints advancedConstraints; + private SelectionConstraints removeConstraints; + + public String getZenodoCommunity() { + return zenodoCommunity; + } + + public void setZenodoCommunity(String zenodoCommunity) { + this.zenodoCommunity = zenodoCommunity; + } + + public List getSubjects() { + return subjects; + } + + public void setSubjects(List subjects) { + this.subjects = subjects; + } + + public List getOtherZenodoCommunities() { + return otherZenodoCommunities; + } + + public void setOtherZenodoCommunities(List otherZenodoCommunities) { + this.otherZenodoCommunities = otherZenodoCommunities; + } + + public List getFos() { + return fos; + } + + public void setFos(List fos) { + this.fos = fos; + } + + public List getSdg() { + return sdg; + } + + public void setSdg(List sdg) { + this.sdg = sdg; + } + + public SelectionConstraints getRemoveConstraints() { + return removeConstraints; + } + + public void setRemoveConstraints(SelectionConstraints removeConstraints) { + this.removeConstraints = removeConstraints; + } + + public SelectionConstraints getAdvancedConstraints() { + return advancedConstraints; + } + + public void setAdvancedConstraints(SelectionConstraints advancedConstraints) { + this.advancedConstraints = advancedConstraints; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } +} diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/CommunitySummary.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/CommunitySummary.java new file mode 100644 index 000000000..a0541f7ee --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/CommunitySummary.java @@ -0,0 +1,15 @@ + +package eu.dnetlib.dhp.api.model; + +import java.io.Serializable; +import java.util.ArrayList; + +/** + * @author miriam.baglioni + * @Date 06/10/23 + */ +public class CommunitySummary extends ArrayList implements Serializable { + public CommunitySummary() { + super(); + } +} diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/ContentModel.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/ContentModel.java new file mode 100644 index 000000000..469709f59 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/ContentModel.java @@ -0,0 +1,51 @@ + +package eu.dnetlib.dhp.api.model; + +import java.io.Serializable; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +/** + * @author miriam.baglioni + * @Date 09/10/23 + */ +@JsonIgnoreProperties(ignoreUnknown = true) +public class ContentModel implements Serializable { + private List content; + private Integer totalPages; + private Boolean last; + private Integer number; + + public List getContent() { + return content; + } + + public void setContent(List content) { + this.content = content; + } + + public Integer getTotalPages() { + return totalPages; + } + + public void setTotalPages(Integer totalPages) { + this.totalPages = totalPages; + } + + public Boolean getLast() { + return last; + } + + public void setLast(Boolean last) { + this.last = last; + } + + public Integer getNumber() { + return number; + } + + public void setNumber(Integer number) { + this.number = number; + } +} diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/DatasourceList.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/DatasourceList.java new file mode 100644 index 000000000..30d0241c3 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/DatasourceList.java @@ -0,0 +1,13 @@ + +package eu.dnetlib.dhp.api.model; + +import java.io.Serializable; +import java.util.ArrayList; + +import eu.dnetlib.dhp.api.model.CommunityContentprovider; + +public class DatasourceList extends ArrayList implements Serializable { + public DatasourceList() { + super(); + } +} diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/OrganizationList.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/OrganizationList.java new file mode 100644 index 000000000..3c81ad179 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/OrganizationList.java @@ -0,0 +1,16 @@ + +package eu.dnetlib.dhp.api.model; + +import java.io.Serializable; +import java.util.ArrayList; + +/** + * @author miriam.baglioni + * @Date 09/10/23 + */ +public class OrganizationList extends ArrayList implements Serializable { + + public OrganizationList() { + super(); + } +} diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/ProjectModel.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/ProjectModel.java new file mode 100644 index 000000000..3495d6a63 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/api/model/ProjectModel.java @@ -0,0 +1,24 @@ + +package eu.dnetlib.dhp.api.model; + +import java.io.Serializable; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +/** + * @author miriam.baglioni + * @Date 09/10/23 + */ +@JsonIgnoreProperties(ignoreUnknown = true) +public class ProjectModel implements Serializable { + + private String openaireId; + + public String getOpenaireId() { + return openaireId; + } + + public void setOpenaireId(String openaireId) { + this.openaireId = openaireId; + } +} diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/SparkBulkTagJob.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/SparkBulkTagJob.java index 3186ed5c0..e20fcb081 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/SparkBulkTagJob.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/SparkBulkTagJob.java @@ -9,7 +9,6 @@ import java.util.*; import org.apache.commons.io.IOUtils; import org.apache.spark.SparkConf; import org.apache.spark.api.java.function.FilterFunction; -import org.apache.spark.api.java.function.ForeachFunction; import org.apache.spark.api.java.function.MapFunction; import org.apache.spark.sql.Dataset; import org.apache.spark.sql.Encoders; @@ -21,10 +20,14 @@ import org.slf4j.LoggerFactory; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.Gson; +import eu.dnetlib.dhp.api.Utils; import eu.dnetlib.dhp.application.ArgumentApplicationParser; import eu.dnetlib.dhp.bulktag.community.*; +import eu.dnetlib.dhp.schema.common.EntityType; +import eu.dnetlib.dhp.schema.common.ModelSupport; import eu.dnetlib.dhp.schema.oaf.Datasource; import eu.dnetlib.dhp.schema.oaf.Result; +import eu.dnetlib.dhp.schema.oaf.utils.OafMapperUtils; public class SparkBulkTagJob { @@ -42,7 +45,7 @@ public class SparkBulkTagJob { .toString( SparkBulkTagJob.class .getResourceAsStream( - "/eu/dnetlib/dhp/bulktag/input_bulkTag_parameters.json")); + "/eu/dnetlib/dhp/wf/subworkflows/bulktag/input_bulkTag_parameters.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); parser.parseArgument(args); @@ -53,50 +56,39 @@ public class SparkBulkTagJob { .orElse(Boolean.TRUE); log.info("isSparkSessionManaged: {}", isSparkSessionManaged); - Boolean isTest = Optional - .ofNullable(parser.get("isTest")) - .map(Boolean::valueOf) - .orElse(Boolean.FALSE); - log.info("isTest: {} ", isTest); - final String inputPath = parser.get("sourcePath"); log.info("inputPath: {}", inputPath); final String outputPath = parser.get("outputPath"); log.info("outputPath: {}", outputPath); + final String baseURL = parser.get("baseURL"); + log.info("baseURL: {}", baseURL); + ProtoMap protoMappingParams = new Gson().fromJson(parser.get("pathMap"), ProtoMap.class); log.info("pathMap: {}", new Gson().toJson(protoMappingParams)); - final String resultClassName = parser.get("resultTableName"); - log.info("resultTableName: {}", resultClassName); - - final Boolean saveGraph = Optional - .ofNullable(parser.get("saveGraph")) - .map(Boolean::valueOf) - .orElse(Boolean.TRUE); - log.info("saveGraph: {}", saveGraph); - - Class resultClazz = (Class) Class.forName(resultClassName); - SparkConf conf = new SparkConf(); CommunityConfiguration cc; - String taggingConf = parser.get("taggingConf"); + String taggingConf = Optional + .ofNullable(parser.get("taggingConf")) + .map(String::valueOf) + .orElse(null); - if (isTest) { + if (taggingConf != null) { cc = CommunityConfigurationFactory.newInstance(taggingConf); } else { - cc = QueryInformationSystem.getCommunityConfiguration(parser.get("isLookUpUrl")); + cc = Utils.getCommunityConfiguration(baseURL); + log.info(OBJECT_MAPPER.writeValueAsString(cc)); } runWithSparkSession( conf, isSparkSessionManaged, spark -> { - removeOutputDir(spark, outputPath); extendCommunityConfigurationForEOSC(spark, inputPath, cc); - execBulkTag(spark, inputPath, outputPath, protoMappingParams, resultClazz, cc); + execBulkTag(spark, inputPath, outputPath, protoMappingParams, cc); }); } @@ -105,10 +97,7 @@ public class SparkBulkTagJob { Dataset datasources = readPath( spark, inputPath - .substring( - 0, - inputPath.lastIndexOf("/")) - + "/datasource", + + "datasource", Datasource.class) .filter((FilterFunction) ds -> isOKDatasource(ds)) .map((MapFunction) ds -> ds.getId(), Encoders.STRING()); @@ -116,10 +105,9 @@ public class SparkBulkTagJob { Map>> dsm = cc.getEoscDatasourceMap(); for (String ds : datasources.collectAsList()) { - final String dsId = ds.substring(3); - if (!dsm.containsKey(dsId)) { + if (!dsm.containsKey(ds)) { ArrayList> eoscList = new ArrayList<>(); - dsm.put(dsId, eoscList); + dsm.put(ds, eoscList); } } @@ -127,13 +115,11 @@ public class SparkBulkTagJob { private static boolean isOKDatasource(Datasource ds) { final String compatibility = ds.getOpenairecompatibility().getClassid(); - boolean isOk = (compatibility.equalsIgnoreCase(OPENAIRE_3) || + return (compatibility.equalsIgnoreCase(OPENAIRE_3) || compatibility.equalsIgnoreCase(OPENAIRE_4) || compatibility.equalsIgnoreCase(OPENAIRE_CRIS) || compatibility.equalsIgnoreCase(OPENAIRE_DATA)) && ds.getCollectedfrom().stream().anyMatch(cf -> cf.getKey().equals(EOSC)); - - return isOk; } private static void execBulkTag( @@ -141,22 +127,36 @@ public class SparkBulkTagJob { String inputPath, String outputPath, ProtoMap protoMappingParams, - Class resultClazz, CommunityConfiguration communityConfiguration) { - ResultTagger resultTagger = new ResultTagger(); - readPath(spark, inputPath, resultClazz) - .map(patchResult(), Encoders.bean(resultClazz)) - .filter(Objects::nonNull) - .map( - (MapFunction) value -> resultTagger - .enrichContextCriteria( - value, communityConfiguration, protoMappingParams), - Encoders.bean(resultClazz)) - .write() - .mode(SaveMode.Overwrite) - .option("compression", "gzip") - .json(outputPath); + ModelSupport.entityTypes + .keySet() + .parallelStream() + .filter(ModelSupport::isResult) + .forEach(e -> { + removeOutputDir(spark, outputPath + e.name()); + ResultTagger resultTagger = new ResultTagger(); + Class resultClazz = ModelSupport.entityTypes.get(e); + readPath(spark, inputPath + e.name(), resultClazz) + .map(patchResult(), Encoders.bean(resultClazz)) + .filter(Objects::nonNull) + .map( + (MapFunction) value -> resultTagger + .enrichContextCriteria( + value, communityConfiguration, protoMappingParams), + Encoders.bean(resultClazz)) + .write() + .mode(SaveMode.Overwrite) + .option("compression", "gzip") + .json(outputPath + e.name());// writing the tagging in the working dir for entity + + readPath(spark, outputPath + e.name(), resultClazz) // copy the tagging in the actual result output path + .write() + .mode(SaveMode.Overwrite) + .option("compression", "gzip") + .json(inputPath + e.name()); + }); + } public static Dataset readPath( @@ -170,10 +170,12 @@ public class SparkBulkTagJob { // TODO remove this hack as soon as the values fixed by this method will be provided as NON null private static MapFunction patchResult() { return r -> { - if (r.getDataInfo().getDeletedbyinference() == null) { + if (Objects.isNull(r.getDataInfo())) { + r.setDataInfo(OafMapperUtils.dataInfo(false, "", false, false, OafMapperUtils.unknown("", ""), "")); + } else if (r.getDataInfo().getDeletedbyinference() == null) { r.getDataInfo().setDeletedbyinference(false); } - if (r.getContext() == null) { + if (Objects.isNull(r.getContext())) { r.setContext(new ArrayList<>()); } return r; diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/Community.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/Community.java index b44376e22..9cd3a8f82 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/Community.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/Community.java @@ -4,6 +4,7 @@ package eu.dnetlib.dhp.bulktag.community; import java.io.Serializable; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import com.google.gson.Gson; @@ -13,7 +14,7 @@ public class Community implements Serializable { private String id; private List subjects = new ArrayList<>(); private List providers = new ArrayList<>(); - private List zenodoCommunities = new ArrayList<>(); + private List zenodoCommunities = new ArrayList<>(); private SelectionConstraints constraints = new SelectionConstraints(); private SelectionConstraints removeConstraints = new SelectionConstraints(); @@ -26,7 +27,7 @@ public class Community implements Serializable { return !getSubjects().isEmpty() || !getProviders().isEmpty() || !getZenodoCommunities().isEmpty() - || getConstraints().getCriteria() != null; + || (Optional.ofNullable(getConstraints()).isPresent() && getConstraints().getCriteria() != null); } public String getId() { @@ -53,11 +54,11 @@ public class Community implements Serializable { this.providers = providers; } - public List getZenodoCommunities() { + public List getZenodoCommunities() { return zenodoCommunities; } - public void setZenodoCommunities(List zenodoCommunities) { + public void setZenodoCommunities(List zenodoCommunities) { this.zenodoCommunities = zenodoCommunities; } diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/CommunityConfiguration.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/CommunityConfiguration.java index e061ccd5e..a658c7ff5 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/CommunityConfiguration.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/CommunityConfiguration.java @@ -81,7 +81,7 @@ public class CommunityConfiguration implements Serializable { this.removeConstraintsMap = removeConstraintsMap; } - CommunityConfiguration(final Map communities) { + public CommunityConfiguration(final Map communities) { this.communities = communities; init(); } @@ -117,10 +117,10 @@ public class CommunityConfiguration implements Serializable { add(d.getOpenaireId(), new Pair<>(id, d.getSelectionConstraints()), datasourceMap); } // get zenodo communities - for (ZenodoCommunity zc : c.getZenodoCommunities()) { + for (String zc : c.getZenodoCommunities()) { add( - zc.getZenodoCommunityId(), - new Pair<>(id, zc.getSelCriteria()), + zc, + new Pair<>(id, null), zenodocommunityMap); } selectionConstraintsMap.put(id, c.getConstraints()); diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/CommunityConfigurationFactory.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/CommunityConfigurationFactory.java index 7b9e03ef6..955ca3856 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/CommunityConfigurationFactory.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/CommunityConfigurationFactory.java @@ -143,16 +143,16 @@ public class CommunityConfigurationFactory { return providerList; } - private static List parseZenodoCommunities(final Node node) { + private static List parseZenodoCommunities(final Node node) { final List list = node.selectNodes("./zenodocommunities/zenodocommunity"); - final List zenodoCommunityList = new ArrayList<>(); + final List zenodoCommunityList = new ArrayList<>(); for (Node n : list) { - ZenodoCommunity zc = new ZenodoCommunity(); - zc.setZenodoCommunityId(n.selectSingleNode("./zenodoid").getText()); - zc.setSelCriteria(n.selectSingleNode("./selcriteria")); +// ZenodoCommunity zc = new ZenodoCommunity(); +// zc.setZenodoCommunityId(n.selectSingleNode("./zenodoid").getText()); +// zc.setSelCriteria(n.selectSingleNode("./selcriteria")); - zenodoCommunityList.add(zc); + zenodoCommunityList.add(n.selectSingleNode("./zenodoid").getText()); } log.info("size of the zenodo community list " + zenodoCommunityList.size()); diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/Constraint.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/Constraint.java index ed58cc14d..82a6a3b85 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/Constraint.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/Constraint.java @@ -4,6 +4,8 @@ package eu.dnetlib.dhp.bulktag.community; import java.io.Serializable; import java.lang.reflect.InvocationTargetException; +import org.apache.htrace.fasterxml.jackson.annotation.JsonIgnore; + import eu.dnetlib.dhp.bulktag.criteria.Selection; import eu.dnetlib.dhp.bulktag.criteria.VerbResolver; @@ -12,6 +14,7 @@ public class Constraint implements Serializable { private String field; private String value; // private String element; + @JsonIgnore private Selection selection; public String getVerb() { @@ -38,10 +41,11 @@ public class Constraint implements Serializable { this.value = value; } - public void setSelection(Selection sel) { - selection = sel; - } - +//@JsonIgnore + // public void setSelection(Selection sel) { +// selection = sel; +// } + @JsonIgnore public void setSelection(VerbResolver resolver) throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException { @@ -52,11 +56,4 @@ public class Constraint implements Serializable { return selection.apply(metadata); } -// public String getElement() { -// return element; -// } -// -// public void setElement(String element) { -// this.element = element; -// } } diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/QueryInformationSystem.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/QueryInformationSystem.java deleted file mode 100644 index 5fe3cf81f..000000000 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/QueryInformationSystem.java +++ /dev/null @@ -1,34 +0,0 @@ - -package eu.dnetlib.dhp.bulktag.community; - -import java.io.IOException; -import java.util.List; - -import org.apache.commons.io.IOUtils; -import org.dom4j.DocumentException; -import org.xml.sax.SAXException; - -import com.google.common.base.Joiner; - -import eu.dnetlib.dhp.utils.ISLookupClientFactory; -import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException; -import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; - -public class QueryInformationSystem { - - public static CommunityConfiguration getCommunityConfiguration(final String isLookupUrl) - throws ISLookUpException, DocumentException, SAXException, IOException { - ISLookUpService isLookUp = ISLookupClientFactory.getLookUpService(isLookupUrl); - final List res = isLookUp - .quickSearchProfile( - IOUtils - .toString( - QueryInformationSystem.class - .getResourceAsStream( - "/eu/dnetlib/dhp/bulktag/query.xq"))); - - final String xmlConf = "" + Joiner.on(" ").join(res) + ""; - - return CommunityConfigurationFactory.newInstance(xmlConf); - } -} diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/ResultTagger.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/ResultTagger.java index 5f62c10f4..98c46cf00 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/ResultTagger.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/ResultTagger.java @@ -82,19 +82,23 @@ public class ResultTagger implements Serializable { // communities contains all the communities to be not added to the context final Set removeCommunities = new HashSet<>(); + // if (conf.getRemoveConstraintsMap().keySet().size() > 0) conf .getRemoveConstraintsMap() .keySet() - .forEach(communityId -> { - if (conf.getRemoveConstraintsMap().get(communityId).getCriteria() != null && - conf - .getRemoveConstraintsMap() - .get(communityId) - .getCriteria() - .stream() - .anyMatch(crit -> crit.verifyCriteria(param))) - removeCommunities.add(communityId); - }); + .forEach( + communityId -> { + // log.info("Remove constraints for " + communityId); + if (conf.getRemoveConstraintsMap().keySet().contains(communityId) && + conf.getRemoveConstraintsMap().get(communityId).getCriteria() != null && + conf + .getRemoveConstraintsMap() + .get(communityId) + .getCriteria() + .stream() + .anyMatch(crit -> crit.verifyCriteria(param))) + removeCommunities.add(communityId); + }); // communities contains all the communities to be added as context for the result final Set communities = new HashSet<>(); @@ -124,10 +128,10 @@ public class ResultTagger implements Serializable { if (Objects.nonNull(result.getInstance())) { for (Instance i : result.getInstance()) { if (Objects.nonNull(i.getCollectedfrom()) && Objects.nonNull(i.getCollectedfrom().getKey())) { - collfrom.add(StringUtils.substringAfter(i.getCollectedfrom().getKey(), "|")); + collfrom.add(i.getCollectedfrom().getKey()); } if (Objects.nonNull(i.getHostedby()) && Objects.nonNull(i.getHostedby().getKey())) { - hostdby.add(StringUtils.substringAfter(i.getHostedby().getKey(), "|")); + hostdby.add(i.getHostedby().getKey()); } } diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/SelectionConstraints.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/SelectionConstraints.java index c7dcce812..57cc658fc 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/SelectionConstraints.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/SelectionConstraints.java @@ -7,11 +7,13 @@ import java.util.Collection; import java.util.List; import java.util.Map; +import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import eu.dnetlib.dhp.bulktag.criteria.VerbResolver; +@JsonAutoDetect public class SelectionConstraints implements Serializable { private List criteria; diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/countrypropagation/PrepareDatasourceCountryAssociation.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/countrypropagation/PrepareDatasourceCountryAssociation.java index b9f3bff52..a016509e5 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/countrypropagation/PrepareDatasourceCountryAssociation.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/countrypropagation/PrepareDatasourceCountryAssociation.java @@ -45,7 +45,7 @@ public class PrepareDatasourceCountryAssociation { .toString( PrepareDatasourceCountryAssociation.class .getResourceAsStream( - "/eu/dnetlib/dhp/countrypropagation/input_prepareassoc_parameters.json")); + "/eu/dnetlib/dhp/wf/subworkflows/countrypropagation/input_prepareassoc_parameters.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); @@ -66,7 +66,7 @@ public class PrepareDatasourceCountryAssociation { conf, isSparkSessionManaged, spark -> { - removeOutputDir(spark, outputPath); + // removeOutputDir(spark, outputPath); prepareDatasourceCountryAssociation( spark, Arrays.asList(parser.get("whitelist").split(";")), @@ -90,7 +90,8 @@ public class PrepareDatasourceCountryAssociation { (FilterFunction) ds -> !ds.getDataInfo().getDeletedbyinference() && Optional.ofNullable(ds.getDatasourcetype()).isPresent() && Optional.ofNullable(ds.getDatasourcetype().getClassid()).isPresent() && - (allowedtypes.contains(ds.getDatasourcetype().getClassid()) || + ((Optional.ofNullable(ds.getJurisdiction()).isPresent() && + allowedtypes.contains(ds.getJurisdiction().getClassid())) || whitelist.contains(ds.getId()))); // filtering of the relations taking the non deleted by inference and those with IsProvidedBy as relclass diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/countrypropagation/PrepareResultCountrySet.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/countrypropagation/PrepareResultCountrySet.java index 28b6f616d..884aa0e47 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/countrypropagation/PrepareResultCountrySet.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/countrypropagation/PrepareResultCountrySet.java @@ -5,10 +5,7 @@ import static eu.dnetlib.dhp.PropagationConstant.*; import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkHiveSession; import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; import org.apache.commons.io.IOUtils; @@ -35,7 +32,7 @@ public class PrepareResultCountrySet { .toString( PrepareResultCountrySet.class .getResourceAsStream( - "/eu/dnetlib/dhp/countrypropagation/input_prepareresultcountry_parameters.json")); + "/eu/dnetlib/dhp/wf/subworkflows/countrypropagation/input_prepareresultcountry_parameters.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); @@ -88,14 +85,33 @@ public class PrepareResultCountrySet { // selects all the results non deleted by inference and non invisible Dataset result = readPath(spark, inputPath, resultClazz) .filter( - (FilterFunction) r -> !r.getDataInfo().getDeletedbyinference() && - !r.getDataInfo().getInvisible()); + (FilterFunction) r -> Optional + .ofNullable(r.getDataInfo()) + .map(dataInfo -> !dataInfo.getDeletedbyinference() && !dataInfo.getInvisible()) + .orElse(true)); // of the results collects the distinct keys for collected from (at the level of the result) and hosted by // and produces pairs resultId, key for each distinct key associated to the result result.flatMap((FlatMapFunction) r -> { - Set cfhb = r.getCollectedfrom().stream().map(cf -> cf.getKey()).collect(Collectors.toSet()); - cfhb.addAll(r.getInstance().stream().map(i -> i.getHostedby().getKey()).collect(Collectors.toSet())); + Set cfhb = Optional + .ofNullable(r.getCollectedfrom()) + .map(cf -> cf.stream().map(KeyValue::getKey).collect(Collectors.toSet())) + .orElse(new HashSet<>()); + cfhb + .addAll( + Optional + .ofNullable(r.getInstance()) + .map( + i -> i + .stream() + .map( + ii -> Optional + .ofNullable(ii.getHostedby()) + .map(KeyValue::getKey) + .orElse(null)) + .filter(Objects::nonNull) + .collect(Collectors.toSet())) + .orElse(new HashSet<>())); return cfhb .stream() .map(value -> EntityEntityRel.newInstance(r.getId(), value)) diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/countrypropagation/SparkCountryPropagationJob.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/countrypropagation/SparkCountryPropagationJob.java index d9f6433a0..a0cc4c84a 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/countrypropagation/SparkCountryPropagationJob.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/countrypropagation/SparkCountryPropagationJob.java @@ -35,7 +35,7 @@ public class SparkCountryPropagationJob { .toString( SparkCountryPropagationJob.class .getResourceAsStream( - "/eu/dnetlib/dhp/countrypropagation/input_countrypropagation_parameters.json")); + "/eu/dnetlib/dhp/wf/subworkflows/countrypropagation/input_countrypropagation_parameters.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/entitytoorganizationfromsemrel/PrepareInfo.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/entitytoorganizationfromsemrel/PrepareInfo.java index 8d3432f06..bdfdde13b 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/entitytoorganizationfromsemrel/PrepareInfo.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/entitytoorganizationfromsemrel/PrepareInfo.java @@ -60,7 +60,7 @@ public class PrepareInfo implements Serializable { .toString( SparkResultToOrganizationFromIstRepoJob.class .getResourceAsStream( - "/eu/dnetlib/dhp/entitytoorganizationfromsemrel/input_preparation_parameter.json")); + "/eu/dnetlib/dhp/wf/subworkflows/entitytoorganizationfromsemrel/input_preparation_parameter.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/entitytoorganizationfromsemrel/SparkResultToOrganizationFromSemRel.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/entitytoorganizationfromsemrel/SparkEntityToOrganizationFromSemRel.java similarity index 97% rename from dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/entitytoorganizationfromsemrel/SparkResultToOrganizationFromSemRel.java rename to dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/entitytoorganizationfromsemrel/SparkEntityToOrganizationFromSemRel.java index 27e502aba..4e30a6d6a 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/entitytoorganizationfromsemrel/SparkResultToOrganizationFromSemRel.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/entitytoorganizationfromsemrel/SparkEntityToOrganizationFromSemRel.java @@ -27,8 +27,8 @@ import eu.dnetlib.dhp.resulttoorganizationfrominstrepo.SparkResultToOrganization import eu.dnetlib.dhp.schema.common.ModelConstants; import eu.dnetlib.dhp.schema.oaf.Relation; -public class SparkResultToOrganizationFromSemRel implements Serializable { - private static final Logger log = LoggerFactory.getLogger(SparkResultToOrganizationFromSemRel.class); +public class SparkEntityToOrganizationFromSemRel implements Serializable { + private static final Logger log = LoggerFactory.getLogger(SparkEntityToOrganizationFromSemRel.class); private static final int MAX_ITERATION = 5; public static final String NEW_RESULT_RELATION_PATH = "/newResultRelation"; public static final String NEW_PROJECT_RELATION_PATH = "/newProjectRelation"; @@ -39,7 +39,7 @@ public class SparkResultToOrganizationFromSemRel implements Serializable { .toString( SparkResultToOrganizationFromIstRepoJob.class .getResourceAsStream( - "/eu/dnetlib/dhp/entitytoorganizationfromsemrel/input_propagation_parameter.json")); + "/eu/dnetlib/dhp/wf/subworkflows/entitytoorganizationfromsemrel/input_propagation_parameter.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/entitytoorganizationfromsemrel/StepActions.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/entitytoorganizationfromsemrel/StepActions.java index 386ea1a5c..36a7523c5 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/entitytoorganizationfromsemrel/StepActions.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/entitytoorganizationfromsemrel/StepActions.java @@ -3,8 +3,8 @@ package eu.dnetlib.dhp.entitytoorganizationfromsemrel; import static eu.dnetlib.dhp.PropagationConstant.*; import static eu.dnetlib.dhp.PropagationConstant.readPath; -import static eu.dnetlib.dhp.entitytoorganizationfromsemrel.SparkResultToOrganizationFromSemRel.NEW_PROJECT_RELATION_PATH; -import static eu.dnetlib.dhp.entitytoorganizationfromsemrel.SparkResultToOrganizationFromSemRel.NEW_RESULT_RELATION_PATH; +import static eu.dnetlib.dhp.entitytoorganizationfromsemrel.SparkEntityToOrganizationFromSemRel.NEW_PROJECT_RELATION_PATH; +import static eu.dnetlib.dhp.entitytoorganizationfromsemrel.SparkEntityToOrganizationFromSemRel.NEW_RESULT_RELATION_PATH; import java.io.Serializable; import java.util.*; @@ -20,7 +20,6 @@ import org.jetbrains.annotations.NotNull; import com.fasterxml.jackson.databind.ObjectMapper; import eu.dnetlib.dhp.KeyValueSet; -import eu.dnetlib.dhp.schema.common.ModelConstants; import eu.dnetlib.dhp.schema.oaf.Relation; import scala.Tuple2; diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/orcidtoresultfromsemrel/PrepareResultOrcidAssociationStep1.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/orcidtoresultfromsemrel/PrepareResultOrcidAssociationStep1.java index 95b870292..bc72a2ae1 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/orcidtoresultfromsemrel/PrepareResultOrcidAssociationStep1.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/orcidtoresultfromsemrel/PrepareResultOrcidAssociationStep1.java @@ -31,7 +31,7 @@ public class PrepareResultOrcidAssociationStep1 { .toString( PrepareResultOrcidAssociationStep1.class .getResourceAsStream( - "/eu/dnetlib/dhp/orcidtoresultfromsemrel/input_prepareorcidtoresult_parameters.json")); + "/eu/dnetlib/dhp/wf/subworkflows/orcidtoresultfromsemrel/input_prepareorcidtoresult_parameters.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConf); parser.parseArgument(args); diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/orcidtoresultfromsemrel/PrepareResultOrcidAssociationStep2.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/orcidtoresultfromsemrel/PrepareResultOrcidAssociationStep2.java index c60012a74..46894d0e1 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/orcidtoresultfromsemrel/PrepareResultOrcidAssociationStep2.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/orcidtoresultfromsemrel/PrepareResultOrcidAssociationStep2.java @@ -29,7 +29,7 @@ public class PrepareResultOrcidAssociationStep2 { .toString( PrepareResultOrcidAssociationStep2.class .getResourceAsStream( - "/eu/dnetlib/dhp/orcidtoresultfromsemrel/input_prepareorcidtoresult_parameters2.json")); + "/eu/dnetlib/dhp/wf/subworkflows/orcidtoresultfromsemrel/input_prepareorcidtoresult_parameters2.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/orcidtoresultfromsemrel/SparkOrcidToResultFromSemRelJob.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/orcidtoresultfromsemrel/SparkOrcidToResultFromSemRelJob.java index a38b4da2e..c5d632658 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/orcidtoresultfromsemrel/SparkOrcidToResultFromSemRelJob.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/orcidtoresultfromsemrel/SparkOrcidToResultFromSemRelJob.java @@ -2,7 +2,7 @@ package eu.dnetlib.dhp.orcidtoresultfromsemrel; import static eu.dnetlib.dhp.PropagationConstant.*; -import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkHiveSession; +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; import java.util.List; import java.util.Optional; @@ -36,7 +36,7 @@ public class SparkOrcidToResultFromSemRelJob { .toString( SparkOrcidToResultFromSemRelJob.class .getResourceAsStream( - "/eu/dnetlib/dhp/orcidtoresultfromsemrel/input_orcidtoresult_parameters.json")); + "/eu/dnetlib/dhp/wf/subworkflows/orcidtoresultfromsemrel/input_orcidtoresult_parameters.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); parser.parseArgument(args); @@ -65,9 +65,8 @@ public class SparkOrcidToResultFromSemRelJob { Class resultClazz = (Class) Class.forName(resultClassName); SparkConf conf = new SparkConf(); - conf.set("hive.metastore.uris", parser.get("hive_metastore_uris")); - runWithSparkHiveSession( + runWithSparkSession( conf, isSparkSessionManaged, spark -> { diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/projecttoresult/PrepareProjectResultsAssociation.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/projecttoresult/PrepareProjectResultsAssociation.java index ac61e26f9..8f4e2ad9a 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/projecttoresult/PrepareProjectResultsAssociation.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/projecttoresult/PrepareProjectResultsAssociation.java @@ -28,7 +28,7 @@ public class PrepareProjectResultsAssociation { .toString( PrepareProjectResultsAssociation.class .getResourceAsStream( - "/eu/dnetlib/dhp/projecttoresult/input_prepareprojecttoresult_parameters.json")); + "/eu/dnetlib/dhp/wf/subworkflows/projecttoresult/input_prepareprojecttoresult_parameters.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/projecttoresult/SparkResultToProjectThroughSemRelJob.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/projecttoresult/SparkResultToProjectThroughSemRelJob.java index 1ec521af1..a6466716a 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/projecttoresult/SparkResultToProjectThroughSemRelJob.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/projecttoresult/SparkResultToProjectThroughSemRelJob.java @@ -33,7 +33,7 @@ public class SparkResultToProjectThroughSemRelJob { .toString( SparkResultToProjectThroughSemRelJob.class .getResourceAsStream( - "/eu/dnetlib/dhp/projecttoresult/input_projecttoresult_parameters.json")); + "/eu/dnetlib/dhp/wf/subworkflows/projecttoresult/input_projecttoresult_parameters.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); @@ -64,7 +64,7 @@ public class SparkResultToProjectThroughSemRelJob { removeOutputDir(spark, outputPath); } execPropagation( - spark, outputPath, alreadyLinkedPath, potentialUpdatePath, saveGraph); + spark, outputPath, alreadyLinkedPath, potentialUpdatePath); }); } @@ -72,24 +72,23 @@ public class SparkResultToProjectThroughSemRelJob { SparkSession spark, String outputPath, String alreadyLinkedPath, - String potentialUpdatePath, - Boolean saveGraph) { + String potentialUpdatePath) { Dataset toaddrelations = readPath(spark, potentialUpdatePath, ResultProjectSet.class); Dataset alreadyLinked = readPath(spark, alreadyLinkedPath, ResultProjectSet.class); - if (saveGraph) { - toaddrelations - .joinWith( - alreadyLinked, - toaddrelations.col("resultId").equalTo(alreadyLinked.col("resultId")), - "left_outer") - .flatMap(mapRelationRn(), Encoders.bean(Relation.class)) - .write() - .mode(SaveMode.Append) - .option("compression", "gzip") - .json(outputPath); - } + // if (saveGraph) { + toaddrelations + .joinWith( + alreadyLinked, + toaddrelations.col("resultId").equalTo(alreadyLinked.col("resultId")), + "left_outer") + .flatMap(mapRelationRn(), Encoders.bean(Relation.class)) + .write() + .mode(SaveMode.Append) + .option("compression", "gzip") + .json(outputPath); + // } } private static FlatMapFunction, Relation> mapRelationRn() { diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromorganization/PrepareResultCommunitySet.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromorganization/PrepareResultCommunitySet.java index 0fc8cb390..be31cd46c 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromorganization/PrepareResultCommunitySet.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromorganization/PrepareResultCommunitySet.java @@ -9,9 +9,7 @@ import java.util.*; import org.apache.commons.io.IOUtils; import org.apache.hadoop.io.compress.GzipCodec; import org.apache.spark.SparkConf; -import org.apache.spark.api.java.function.FilterFunction; import org.apache.spark.api.java.function.MapFunction; -import org.apache.spark.api.java.function.MapGroupsFunction; import org.apache.spark.sql.Dataset; import org.apache.spark.sql.Encoders; import org.apache.spark.sql.SparkSession; @@ -20,6 +18,8 @@ import org.slf4j.LoggerFactory; import com.google.gson.Gson; +import eu.dnetlib.dhp.api.Utils; +import eu.dnetlib.dhp.api.model.CommunityEntityMap; import eu.dnetlib.dhp.application.ArgumentApplicationParser; import eu.dnetlib.dhp.schema.common.ModelConstants; import eu.dnetlib.dhp.schema.oaf.Relation; @@ -34,7 +34,7 @@ public class PrepareResultCommunitySet { .toString( PrepareResultCommunitySet.class .getResourceAsStream( - "/eu/dnetlib/dhp/resulttocommunityfromorganization/input_preparecommunitytoresult_parameters.json")); + "/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromorganization/input_preparecommunitytoresult_parameters.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); parser.parseArgument(args); @@ -48,10 +48,10 @@ public class PrepareResultCommunitySet { final String outputPath = parser.get("outputPath"); log.info("outputPath: {}", outputPath); - final OrganizationMap organizationMap = new Gson() - .fromJson( - parser.get("organizationtoresultcommunitymap"), - OrganizationMap.class); + final String baseURL = parser.get("baseURL"); + log.info("baseURL: {}", baseURL); + + final CommunityEntityMap organizationMap = Utils.getCommunityOrganization(baseURL); log.info("organizationMap: {}", new Gson().toJson(organizationMap)); SparkConf conf = new SparkConf(); @@ -70,7 +70,7 @@ public class PrepareResultCommunitySet { SparkSession spark, String inputPath, String outputPath, - OrganizationMap organizationMap) { + CommunityEntityMap organizationMap) { Dataset relation = readPath(spark, inputPath, Relation.class); relation.createOrReplaceTempView("relation"); @@ -115,7 +115,7 @@ public class PrepareResultCommunitySet { } private static MapFunction mapResultCommunityFn( - OrganizationMap organizationMap) { + CommunityEntityMap organizationMap) { return value -> { String rId = value.getResultId(); Optional> orgs = Optional.ofNullable(value.getMerges()); diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromorganization/SparkResultToCommunityFromOrganizationJob.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromorganization/SparkResultToCommunityFromOrganizationJob.java index 50df08f8c..4f755266a 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromorganization/SparkResultToCommunityFromOrganizationJob.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromorganization/SparkResultToCommunityFromOrganizationJob.java @@ -2,7 +2,7 @@ package eu.dnetlib.dhp.resulttocommunityfromorganization; import static eu.dnetlib.dhp.PropagationConstant.*; -import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkHiveSession; +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; import java.util.ArrayList; import java.util.Arrays; @@ -22,6 +22,7 @@ import org.slf4j.LoggerFactory; import eu.dnetlib.dhp.application.ArgumentApplicationParser; import eu.dnetlib.dhp.schema.common.ModelConstants; +import eu.dnetlib.dhp.schema.common.ModelSupport; import eu.dnetlib.dhp.schema.oaf.Context; import eu.dnetlib.dhp.schema.oaf.Result; import scala.Tuple2; @@ -35,7 +36,7 @@ public class SparkResultToCommunityFromOrganizationJob { .toString( SparkResultToCommunityFromOrganizationJob.class .getResourceAsStream( - "/eu/dnetlib/dhp/resulttocommunityfromorganization/input_communitytoresult_parameters.json")); + "/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromorganization/input_communitytoresult_parameters.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); @@ -53,29 +54,14 @@ public class SparkResultToCommunityFromOrganizationJob { final String possibleupdatespath = parser.get("preparedInfoPath"); log.info("preparedInfoPath: {}", possibleupdatespath); - final String resultClassName = parser.get("resultTableName"); - log.info("resultTableName: {}", resultClassName); - - final Boolean saveGraph = Optional - .ofNullable(parser.get("saveGraph")) - .map(Boolean::valueOf) - .orElse(Boolean.TRUE); - log.info("saveGraph: {}", saveGraph); - - @SuppressWarnings("unchecked") - Class resultClazz = (Class) Class.forName(resultClassName); - SparkConf conf = new SparkConf(); - conf.set("hive.metastore.uris", parser.get("hive_metastore_uris")); - runWithSparkHiveSession( + runWithSparkSession( conf, isSparkSessionManaged, spark -> { - removeOutputDir(spark, outputPath); - if (saveGraph) { - execPropagation(spark, inputPath, outputPath, resultClazz, possibleupdatespath); - } + execPropagation(spark, inputPath, outputPath, possibleupdatespath); + }); } @@ -83,22 +69,50 @@ public class SparkResultToCommunityFromOrganizationJob { SparkSession spark, String inputPath, String outputPath, - Class resultClazz, String possibleUpdatesPath) { Dataset possibleUpdates = readPath(spark, possibleUpdatesPath, ResultCommunityList.class); - Dataset result = readPath(spark, inputPath, resultClazz); - result - .joinWith( - possibleUpdates, - result.col("id").equalTo(possibleUpdates.col("resultId")), - "left_outer") - .map(resultCommunityFn(), Encoders.bean(resultClazz)) - .write() - .mode(SaveMode.Overwrite) - .option("compression", "gzip") - .json(outputPath); + ModelSupport.entityTypes + .keySet() + .parallelStream() + .filter(e -> ModelSupport.isResult(e)) + // .parallelStream() + .forEach(e -> { + // if () { + Class resultClazz = ModelSupport.entityTypes.get(e); + removeOutputDir(spark, outputPath + e.name()); + Dataset result = readPath(spark, inputPath + e.name(), resultClazz); + + log.info("executing left join"); + result + .joinWith( + possibleUpdates, + result.col("id").equalTo(possibleUpdates.col("resultId")), + "left_outer") + .map(resultCommunityFn(), Encoders.bean(resultClazz)) + .write() + .mode(SaveMode.Overwrite) + .option("compression", "gzip") + .json(outputPath + e.name()); + +// log +// .info( +// "reading results from " + outputPath + e.name() + " and copying them to " + inputPath +// + e.name()); +// Dataset tmp = readPath(spark, outputPath + e.name(), resultClazz); +// if (tmp.count() > 0){ +// +// tmp +// .write() +// .mode(SaveMode.Overwrite) +// .option("compression", "gzip") +// .json(inputPath + e.name()); +// } + + // } + }); + } private static MapFunction, R> resultCommunityFn() { @@ -113,11 +127,11 @@ public class SparkResultToCommunityFromOrganizationJob { .map(Context::getId) .collect(Collectors.toList()); - @SuppressWarnings("unchecked") - R res = (R) ret.getClass().newInstance(); + // @SuppressWarnings("unchecked") + // R res = (R) ret.getClass().newInstance(); - res.setId(ret.getId()); - List propagatedContexts = new ArrayList<>(); + // res.setId(ret.getId()); + // List propagatedContexts = new ArrayList<>(); for (String cId : communitySet) { if (!contextList.contains(cId)) { Context newContext = new Context(); @@ -131,11 +145,11 @@ public class SparkResultToCommunityFromOrganizationJob { PROPAGATION_RESULT_COMMUNITY_ORGANIZATION_CLASS_ID, PROPAGATION_RESULT_COMMUNITY_ORGANIZATION_CLASS_NAME, ModelConstants.DNET_PROVENANCE_ACTIONS))); - propagatedContexts.add(newContext); + ret.getContext().add(newContext); } } - res.setContext(propagatedContexts); - ret.mergeFrom(res); + // res.setContext(propagatedContexts); + // ret.mergeFrom(res); } return ret; }; diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromproject/PrepareResultCommunitySet.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromproject/PrepareResultCommunitySet.java new file mode 100644 index 000000000..512dfa9be --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromproject/PrepareResultCommunitySet.java @@ -0,0 +1,123 @@ + +package eu.dnetlib.dhp.resulttocommunityfromproject; + +import static eu.dnetlib.dhp.PropagationConstant.*; +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkHiveSession; +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; + +import java.util.*; + +import org.apache.commons.io.IOUtils; +import org.apache.hadoop.io.compress.GzipCodec; +import org.apache.spark.SparkConf; +import org.apache.spark.api.java.function.MapFunction; +import org.apache.spark.api.java.function.MapGroupsFunction; +import org.apache.spark.sql.*; +import org.apache.spark.sql.types.DataTypes; +import org.apache.spark.sql.types.StructType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.gson.Gson; + +import eu.dnetlib.dhp.api.Utils; +import eu.dnetlib.dhp.api.model.CommunityEntityMap; +import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.resulttocommunityfromorganization.ResultCommunityList; +import eu.dnetlib.dhp.resulttocommunityfromorganization.ResultOrganizations; +import eu.dnetlib.dhp.schema.common.ModelConstants; +import eu.dnetlib.dhp.schema.oaf.Relation; +import scala.Tuple2; + +public class PrepareResultCommunitySet { + + private static final Logger log = LoggerFactory.getLogger(PrepareResultCommunitySet.class); + + public static void main(String[] args) throws Exception { + String jsonConfiguration = IOUtils + .toString( + PrepareResultCommunitySet.class + .getResourceAsStream( + "/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromproject/input_preparecommunitytoresult_parameters.json")); + + final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); + parser.parseArgument(args); + + Boolean isSparkSessionManaged = isSparkSessionManaged(parser); + log.info("isSparkSessionManaged: {}", isSparkSessionManaged); + + String inputPath = parser.get("sourcePath"); + log.info("inputPath: {}", inputPath); + + final String outputPath = parser.get("outputPath"); + log.info("outputPath: {}", outputPath); + + final String baseURL = parser.get("baseURL"); + log.info("baseURL: {}", baseURL); + + final CommunityEntityMap projectsMap = Utils.getCommunityProjects(baseURL); + + SparkConf conf = new SparkConf(); + + runWithSparkSession( + conf, + isSparkSessionManaged, + spark -> { + removeOutputDir(spark, outputPath); + prepareInfo(spark, inputPath, outputPath, projectsMap); + }); + } + + private static void prepareInfo( + SparkSession spark, + String inputPath, + String outputPath, + CommunityEntityMap projectMap) { + + final StructType structureSchema = new StructType() + .add( + "dataInfo", new StructType() + .add("deletedbyinference", DataTypes.BooleanType) + .add("invisible", DataTypes.BooleanType)) + .add("source", DataTypes.StringType) + .add("target", DataTypes.StringType) + .add("relClass", DataTypes.StringType); + + spark + .read() + .schema(structureSchema) + .json(inputPath) + .filter( + "dataInfo.deletedbyinference != true " + + "and relClass == '" + ModelConstants.IS_PRODUCED_BY + "'") + .select( + new Column("source").as("resultId"), + new Column("target").as("projectId")) + .groupByKey((MapFunction) r -> (String) r.getAs("resultId"), Encoders.STRING()) + .mapGroups((MapGroupsFunction) (k, v) -> { + ResultProjectList rpl = new ResultProjectList(); + rpl.setResultId(k); + ArrayList cl = new ArrayList<>(); + cl.addAll(projectMap.get(v.next().getAs("projectId"))); + v.forEachRemaining(r -> { + projectMap + .get(r.getAs("projectId")) + .forEach(c -> { + if (!cl.contains(c)) + cl.add(c); + }); + + }); + if (cl.size() == 0) + return null; + rpl.setCommunityList(cl); + return rpl; + }, Encoders.bean(ResultProjectList.class)) + .filter(Objects::nonNull) + .write() + .mode(SaveMode.Overwrite) + .option("compression", "gzip") + .json(outputPath); + } + +} diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromproject/ResultProjectList.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromproject/ResultProjectList.java new file mode 100644 index 000000000..44798a1f3 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromproject/ResultProjectList.java @@ -0,0 +1,26 @@ + +package eu.dnetlib.dhp.resulttocommunityfromproject; + +import java.io.Serializable; +import java.util.ArrayList; + +public class ResultProjectList implements Serializable { + private String resultId; + private ArrayList communityList; + + public String getResultId() { + return resultId; + } + + public void setResultId(String resultId) { + this.resultId = resultId; + } + + public ArrayList getCommunityList() { + return communityList; + } + + public void setCommunityList(ArrayList communityList) { + this.communityList = communityList; + } +} diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromproject/SparkResultToCommunityFromProject.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromproject/SparkResultToCommunityFromProject.java new file mode 100644 index 000000000..f9c36d7ca --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromproject/SparkResultToCommunityFromProject.java @@ -0,0 +1,170 @@ + +package eu.dnetlib.dhp.resulttocommunityfromproject; + +import static eu.dnetlib.dhp.PropagationConstant.*; +import static eu.dnetlib.dhp.PropagationConstant.PROPAGATION_RESULT_COMMUNITY_ORGANIZATION_CLASS_NAME; +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkHiveSession; +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +import org.apache.commons.io.IOUtils; +import org.apache.spark.SparkConf; +import org.apache.spark.api.java.function.MapFunction; +import org.apache.spark.sql.Dataset; +import org.apache.spark.sql.Encoders; +import org.apache.spark.sql.SaveMode; +import org.apache.spark.sql.SparkSession; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.resulttocommunityfromorganization.ResultCommunityList; +import eu.dnetlib.dhp.resulttocommunityfromorganization.SparkResultToCommunityFromOrganizationJob; +import eu.dnetlib.dhp.schema.common.ModelConstants; +import eu.dnetlib.dhp.schema.common.ModelSupport; +import eu.dnetlib.dhp.schema.oaf.Context; +import eu.dnetlib.dhp.schema.oaf.Result; +import scala.Tuple2; + +/** + * @author miriam.baglioni + * @Date 11/10/23 + */ +public class SparkResultToCommunityFromProject implements Serializable { + private static final Logger log = LoggerFactory.getLogger(SparkResultToCommunityFromProject.class); + + public static void main(String[] args) throws Exception { + String jsonConfiguration = IOUtils + .toString( + SparkResultToCommunityFromProject.class + .getResourceAsStream( + "/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromproject/input_communitytoresult_parameters.json")); + + final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); + + parser.parseArgument(args); + + Boolean isSparkSessionManaged = isSparkSessionManaged(parser); + log.info("isSparkSessionManaged: {}", isSparkSessionManaged); + + String inputPath = parser.get("sourcePath"); + log.info("inputPath: {}", inputPath); + + final String outputPath = parser.get("outputPath"); + log.info("outputPath: {}", outputPath); + + final String possibleupdatespath = parser.get("preparedInfoPath"); + log.info("preparedInfoPath: {}", possibleupdatespath); + + SparkConf conf = new SparkConf(); + + runWithSparkSession( + conf, + isSparkSessionManaged, + spark -> { + + execPropagation(spark, inputPath, outputPath, possibleupdatespath); + + }); + } + + private static void execPropagation( + SparkSession spark, + String inputPath, + String outputPath, + + String possibleUpdatesPath) { + + Dataset possibleUpdates = readPath(spark, possibleUpdatesPath, ResultProjectList.class); + + ModelSupport.entityTypes + .keySet() + .parallelStream() + .filter(e -> ModelSupport.isResult(e)) + .forEach(e -> { + // if () { + removeOutputDir(spark, outputPath + e.name()); + Class resultClazz = ModelSupport.entityTypes.get(e); + Dataset result = readPath(spark, inputPath + e.name(), resultClazz); + + result + .joinWith( + possibleUpdates, + result.col("id").equalTo(possibleUpdates.col("resultId")), + "left_outer") + .map(resultCommunityFn(), Encoders.bean(resultClazz)) + .write() + .mode(SaveMode.Overwrite) + .option("compression", "gzip") + .json(outputPath + e.name()); + +// readPath(spark, outputPath + e.name(), resultClazz) +// .write() +// .mode(SaveMode.Overwrite) +// .option("compression", "gzip") +// .json(inputPath + e.name()); + // } + }); + + } + + private static MapFunction, R> resultCommunityFn() { + return value -> { + R ret = value._1(); + Optional rcl = Optional.ofNullable(value._2()); + if (rcl.isPresent()) { + // ArrayList communitySet = rcl.get().getCommunityList(); + List contextList = ret + .getContext() + .stream() + .map(Context::getId) + .collect(Collectors.toList()); + + @SuppressWarnings("unchecked") + R res = (R) ret.getClass().newInstance(); + + res.setId(ret.getId()); + List propagatedContexts = new ArrayList<>(); + for (String cId : rcl.get().getCommunityList()) { + if (!contextList.contains(cId)) { + Context newContext = new Context(); + newContext.setId(cId); + newContext + .setDataInfo( + Arrays + .asList( + getDataInfo( + PROPAGATION_DATA_INFO_TYPE, + PROPAGATION_RESULT_COMMUNITY_PROJECT_CLASS_ID, + PROPAGATION_RESULT_COMMUNITY_PROJECT_CLASS_NAME, + ModelConstants.DNET_PROVENANCE_ACTIONS))); + propagatedContexts.add(newContext); + } else { + ret + .getContext() + .stream() + .filter(c -> c.getId().equals(cId)) + .findFirst() + .get() + .getDataInfo() + .add( + getDataInfo( + PROPAGATION_DATA_INFO_TYPE, + PROPAGATION_RESULT_COMMUNITY_PROJECT_CLASS_ID, + PROPAGATION_RESULT_COMMUNITY_PROJECT_CLASS_NAME, + ModelConstants.DNET_PROVENANCE_ACTIONS)); + } + } + res.setContext(propagatedContexts); + ret.mergeFrom(res); + } + return ret; + }; + } +} diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromsemrel/PrepareResultCommunitySetStep1.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromsemrel/PrepareResultCommunitySetStep1.java index 0c836a3ba..aede9ef05 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromsemrel/PrepareResultCommunitySetStep1.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromsemrel/PrepareResultCommunitySetStep1.java @@ -4,6 +4,7 @@ package eu.dnetlib.dhp.resulttocommunityfromsemrel; import static eu.dnetlib.dhp.PropagationConstant.*; import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkHiveSession; +import java.io.IOException; import java.util.Arrays; import java.util.List; @@ -15,6 +16,7 @@ import org.slf4j.LoggerFactory; import com.google.gson.Gson; +import eu.dnetlib.dhp.api.Utils; import eu.dnetlib.dhp.application.ArgumentApplicationParser; import eu.dnetlib.dhp.resulttocommunityfromorganization.ResultCommunityList; import eu.dnetlib.dhp.schema.oaf.Relation; @@ -26,11 +28,6 @@ import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; public class PrepareResultCommunitySetStep1 { private static final Logger log = LoggerFactory.getLogger(PrepareResultCommunitySetStep1.class); - private static final String COMMUNITY_LIST_XQUERY = "for $x in collection('/db/DRIVER/ContextDSResources/ContextDSResourceType')" - + " where $x//CONFIGURATION/context[./@type='community' or ./@type='ri']" - + " and $x//CONFIGURATION/context/param[./@name='status']/text() != 'hidden'" - + " return $x//CONFIGURATION/context/@id/string()"; - /** * associates to each result the set of community contexts they are associated to; associates to each target of a * relation with allowed semantics the set of community context it could possibly inherit from the source of the @@ -64,7 +61,7 @@ public class PrepareResultCommunitySetStep1 { .toString( PrepareResultCommunitySetStep1.class .getResourceAsStream( - "/eu/dnetlib/dhp/resulttocommunityfromsemrel/input_preparecommunitytoresult_parameters.json")); + "/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromsemrel/input_preparecommunitytoresult_parameters.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); @@ -88,10 +85,10 @@ public class PrepareResultCommunitySetStep1 { final List allowedsemrel = Arrays.asList(parser.get("allowedsemrels").split(";")); log.info("allowedSemRel: {}", new Gson().toJson(allowedsemrel)); - final String isLookupUrl = parser.get("isLookUpUrl"); - log.info("isLookupUrl: {}", isLookupUrl); + final String baseURL = parser.get("baseURL"); + log.info("baseURL: {}", baseURL); - final List communityIdList = getCommunityList(isLookupUrl); + final List communityIdList = getCommunityList(baseURL); log.info("communityIdList: {}", new Gson().toJson(communityIdList)); final String resultType = resultClassName.substring(resultClassName.lastIndexOf(".") + 1).toLowerCase(); @@ -159,9 +156,8 @@ public class PrepareResultCommunitySetStep1 { .json(outputResultPath); } - public static List getCommunityList(final String isLookupUrl) throws ISLookUpException { - ISLookUpService isLookUp = ISLookupClientFactory.getLookUpService(isLookupUrl); - return isLookUp.quickSearchProfile(COMMUNITY_LIST_XQUERY); + public static List getCommunityList(final String baseURL) throws IOException { + return Utils.getCommunityIdList(baseURL); } } diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromsemrel/PrepareResultCommunitySetStep2.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromsemrel/PrepareResultCommunitySetStep2.java index 0ddb19a1a..a53d3dfe3 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromsemrel/PrepareResultCommunitySetStep2.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromsemrel/PrepareResultCommunitySetStep2.java @@ -31,7 +31,7 @@ public class PrepareResultCommunitySetStep2 { .toString( PrepareResultCommunitySetStep2.class .getResourceAsStream( - "/eu/dnetlib/dhp/resulttocommunityfromsemrel/input_preparecommunitytoresult2_parameters.json")); + "/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromsemrel/input_preparecommunitytoresult2_parameters.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromsemrel/SparkResultToCommunityThroughSemRelJob.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromsemrel/SparkResultToCommunityThroughSemRelJob.java index f31a26230..3cf2f73c3 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromsemrel/SparkResultToCommunityThroughSemRelJob.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttocommunityfromsemrel/SparkResultToCommunityThroughSemRelJob.java @@ -33,7 +33,7 @@ public class SparkResultToCommunityThroughSemRelJob { .toString( SparkResultToCommunityThroughSemRelJob.class .getResourceAsStream( - "/eu/dnetlib/dhp/resulttocommunityfromsemrel/input_communitytoresult_parameters.json")); + "/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromsemrel/input_communitytoresult_parameters.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); @@ -100,6 +100,7 @@ public class SparkResultToCommunityThroughSemRelJob { .mode(SaveMode.Overwrite) .option("compression", "gzip") .json(outputPath); + } private static MapFunction, R> contextUpdaterFn() { @@ -109,11 +110,11 @@ public class SparkResultToCommunityThroughSemRelJob { if (rcl.isPresent()) { Set contexts = new HashSet<>(); ret.getContext().forEach(c -> contexts.add(c.getId())); - List contextList = rcl + rcl .get() .getCommunityList() .stream() - .map( + .forEach( c -> { if (!contexts.contains(c)) { Context newContext = new Context(); @@ -127,19 +128,11 @@ public class SparkResultToCommunityThroughSemRelJob { PROPAGATION_RESULT_COMMUNITY_SEMREL_CLASS_ID, PROPAGATION_RESULT_COMMUNITY_SEMREL_CLASS_NAME, ModelConstants.DNET_PROVENANCE_ACTIONS))); - return newContext; + ret.getContext().add(newContext); } - return null; - }) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - @SuppressWarnings("unchecked") - R r = (R) ret.getClass().newInstance(); + }); - r.setId(ret.getId()); - r.setContext(contextList); - ret.mergeFrom(r); } return ret; diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/AppendNewRelations.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/AppendNewRelations.java new file mode 100644 index 000000000..11e942142 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/AppendNewRelations.java @@ -0,0 +1,68 @@ + +package eu.dnetlib.dhp.resulttoorganizationfrominstrepo; + +import static eu.dnetlib.dhp.PropagationConstant.*; +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; + +import java.io.Serializable; + +import org.apache.commons.io.IOUtils; +import org.apache.spark.SparkConf; +import org.apache.spark.sql.SaveMode; +import org.apache.spark.sql.SparkSession; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.schema.oaf.Relation; + +/** + * @author miriam.baglioni + * @Date 09/12/23 + */ +public class AppendNewRelations implements Serializable { + + private static final Logger log = LoggerFactory.getLogger(AppendNewRelations.class); + + public static void main(String[] args) throws Exception { + + String jsonConfiguration = IOUtils + .toString( + AppendNewRelations.class + .getResourceAsStream( + "/eu/dnetlib/dhp/wf/subworkflows/resulttoorganizationfrominstrepo/input_newrelation_parameters.json")); + + final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); + + parser.parseArgument(args); + + Boolean isSparkSessionManaged = isSparkSessionManaged(parser); + log.info("isSparkSessionManaged: {}", isSparkSessionManaged); + + String inputPath = parser.get("sourcePath"); + log.info("inputPath: {}", inputPath); + + final String outputPath = parser.get("outputPath"); + log.info("outputPath: {}", outputPath); + + SparkConf conf = new SparkConf(); + + runWithSparkSession( + conf, + isSparkSessionManaged, + spark -> appendNewRelation(spark, inputPath, outputPath)); + } + + private static void appendNewRelation(SparkSession spark, String inputPath, String outputPath) { + + readPath(spark, inputPath + "publication/relation", Relation.class) + .union(readPath(spark, inputPath + "dataset/relation", Relation.class)) + .union(readPath(spark, inputPath + "otherresearchproduct/relation", Relation.class)) + .union(readPath(spark, inputPath + "software/relation", Relation.class)) + .write() + .mode(SaveMode.Append) + .option("compression", "gzip") + .json(outputPath); + } + +} diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/PrepareResultInstRepoAssociation.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/PrepareResultInstRepoAssociation.java index 1663afb32..57488bd20 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/PrepareResultInstRepoAssociation.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/PrepareResultInstRepoAssociation.java @@ -40,7 +40,7 @@ public class PrepareResultInstRepoAssociation { .toString( PrepareResultInstRepoAssociation.class .getResourceAsStream( - "/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/input_prepareresultorg_parameters.json")); + "/eu/dnetlib/dhp/wf/subworkflows/resulttoorganizationfrominstrepo/input_prepareresultorg_parameters.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); @@ -52,10 +52,13 @@ public class PrepareResultInstRepoAssociation { String inputPath = parser.get("sourcePath"); log.info("inputPath: {}", inputPath); - final String datasourceOrganizationPath = parser.get("datasourceOrganizationPath"); + final String workingPath = parser.get("workingPath"); + log.info("workingPath : {}", workingPath); + + final String datasourceOrganizationPath = workingPath + "/preparedInfo/datasourceOrganization"; log.info("datasourceOrganizationPath {}: ", datasourceOrganizationPath); - final String alreadyLinkedPath = parser.get("alreadyLinkedPath"); + final String alreadyLinkedPath = workingPath + "/preparedInfo/alreadyLinked"; log.info("alreadyLinkedPath {}: ", alreadyLinkedPath); List blacklist = Optional diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/SparkResultToOrganizationFromIstRepoJob.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/SparkResultToOrganizationFromIstRepoJob.java index 0757ebccd..c8862b10c 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/SparkResultToOrganizationFromIstRepoJob.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/SparkResultToOrganizationFromIstRepoJob.java @@ -47,7 +47,7 @@ public class SparkResultToOrganizationFromIstRepoJob { .toString( SparkResultToOrganizationFromIstRepoJob.class .getResourceAsStream( - "/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/input_propagationresulaffiliationfrominstrepo_parameters.json")); + "/eu/dnetlib/dhp/wf/subworkflows/resulttoorganizationfrominstrepo/input_propagationresulaffiliationfrominstrepo_parameters.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); @@ -119,7 +119,7 @@ public class SparkResultToOrganizationFromIstRepoJob { "left_outer") .flatMap(createRelationFn(), Encoders.bean(Relation.class)) .write() - .mode(SaveMode.Append) + .mode(SaveMode.Overwrite) .option("compression", "gzip") .json(outputPath); } diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/datasourcemaster_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/datasourcemaster_parameters.json deleted file mode 100644 index 9a2eadaa7..000000000 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/datasourcemaster_parameters.json +++ /dev/null @@ -1,32 +0,0 @@ -[ - { - "paramName": "p", - "paramLongName": "hdfsPath", - "paramDescription": "the path where storing the sequential file", - "paramRequired": true - }, - { - "paramName": "nn", - "paramLongName": "hdfsNameNode", - "paramDescription": "the name node on hdfs", - "paramRequired": true - }, - { - "paramName": "pgurl", - "paramLongName": "postgresUrl", - "paramDescription": "postgres url, example: jdbc:postgresql://localhost:5432/testdb", - "paramRequired": true - }, - { - "paramName": "pguser", - "paramLongName": "postgresUser", - "paramDescription": "postgres user", - "paramRequired": false - }, - { - "paramName": "pgpasswd", - "paramLongName": "postgresPassword", - "paramDescription": "postgres password", - "paramRequired": false - } -] \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/input_eosc_bulkTag_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/input_eosc_bulkTag_parameters.json deleted file mode 100644 index 5aace346d..000000000 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/input_eosc_bulkTag_parameters.json +++ /dev/null @@ -1,41 +0,0 @@ -[ - - { - "paramName":"s", - "paramLongName":"sourcePath", - "paramDescription": "the path of the sequencial file to read", - "paramRequired": true - }, - { - "paramName": "dmp", - "paramLongName":"datasourceMapPath", - "paramDescription": "the path where the association datasource master has been stored", - "paramRequired": true - }, - { - "paramName":"tn", - "paramLongName":"resultTableName", - "paramDescription": "the name of the result table we are currently working on", - "paramRequired": true - }, - { - "paramName": "wp", - "paramLongName": "workingPath", - "paramDescription": "the path used to store temporary output files", - "paramRequired": true - }, - { - "paramName": "ssm", - "paramLongName": "isSparkSessionManaged", - "paramDescription": "true if the spark session is managed, false otherwise", - "paramRequired": false - }, - { - - "paramName": "rt", - "paramLongName": "resultType", - "paramDescription": "the result type", - "paramRequired": true - } - -] \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/oozie_app/workflow.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/oozie_app/workflow.xml deleted file mode 100644 index b868e4c72..000000000 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/oozie_app/workflow.xml +++ /dev/null @@ -1,227 +0,0 @@ - - - - sourcePath - the source path - - - isLookUpUrl - the isLookup service endpoint - - - pathMap - the json path associated to each selection field - - - outputPath - the output path - - - - - postgresURL - the url of the postgress server to query - - - postgresUser - the username to access the postgres db - - - postgresPassword - the postgres password - - - - - - ${jobTracker} - ${nameNode} - - - oozie.action.sharelib.for.spark - ${oozieActionShareLibForSpark2} - - - - - - - - Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] - - - - - - - - - - - - - - - - - - - - - ${nameNode}/${sourcePath}/relation - ${nameNode}/${outputPath}/relation - - - - - - - - ${nameNode}/${sourcePath}/organization - ${nameNode}/${outputPath}/organization - - - - - - - - ${nameNode}/${sourcePath}/project - ${nameNode}/${outputPath}/project - - - - - - - - ${nameNode}/${sourcePath}/datasource - ${nameNode}/${outputPath}/datasource - - - - - - - - - - - - - - - - - yarn-cluster - cluster - bulkTagging-publication - eu.dnetlib.dhp.bulktag.SparkBulkTagJob - dhp-enrichment-${projectVersion}.jar - - --num-executors=${sparkExecutorNumber} - --executor-memory=${sparkExecutorMemory} - --executor-cores=${sparkExecutorCores} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - - --sourcePath${sourcePath}/publication - --resultTableNameeu.dnetlib.dhp.schema.oaf.Publication - --outputPath${outputPath}/publication - --pathMap${pathMap} - --isLookUpUrl${isLookUpUrl} - - - - - - - - yarn-cluster - cluster - bulkTagging-dataset - eu.dnetlib.dhp.bulktag.SparkBulkTagJob - dhp-enrichment-${projectVersion}.jar - - --num-executors=${sparkExecutorNumber} - --executor-memory=${sparkExecutorMemory} - --executor-cores=${sparkExecutorCores} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - - --sourcePath${sourcePath}/dataset - --resultTableNameeu.dnetlib.dhp.schema.oaf.Dataset - --outputPath${outputPath}/dataset - --pathMap${pathMap} - --isLookUpUrl${isLookUpUrl} - - - - - - - - yarn-cluster - cluster - bulkTagging-orp - eu.dnetlib.dhp.bulktag.SparkBulkTagJob - dhp-enrichment-${projectVersion}.jar - - --num-executors=${sparkExecutorNumber} - --executor-memory=${sparkExecutorMemory} - --executor-cores=${sparkExecutorCores} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - - --sourcePath${sourcePath}/otherresearchproduct - --resultTableNameeu.dnetlib.dhp.schema.oaf.OtherResearchProduct - --outputPath${outputPath}/otherresearchproduct - --pathMap${pathMap} - --isLookUpUrl${isLookUpUrl} - - - - - - - - yarn-cluster - cluster - bulkTagging-software - eu.dnetlib.dhp.bulktag.SparkBulkTagJob - dhp-enrichment-${projectVersion}.jar - - --num-executors=${sparkExecutorNumber} - --executor-memory=${sparkExecutorMemory} - --executor-cores=${sparkExecutorCores} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - - --sourcePath${sourcePath}/software - --resultTableNameeu.dnetlib.dhp.schema.oaf.Software - --outputPath${outputPath}/software - --pathMap${pathMap} - --isLookUpUrl${isLookUpUrl} - - - - - - - - - - - \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/query.xq b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/query.xq deleted file mode 100644 index 052037efb..000000000 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/query.xq +++ /dev/null @@ -1,62 +0,0 @@ -for $x in collection('/db/DRIVER/ContextDSResources/ContextDSResourceType') -let $subj := $x//CONFIGURATION/context/param[./@name='subject']/text() -let $datasources := $x//CONFIGURATION/context/category[./@id=concat($x//CONFIGURATION/context/@id,'::contentproviders')]/concept -let $organizations := $x//CONFIGURATION/context/category[./@id=concat($x//CONFIGURATION/context/@id,'::resultorganizations')]/concept -let $communities := $x//CONFIGURATION/context/category[./@id=concat($x//CONFIGURATION/context/@id,'::zenodocommunities')]/concept -let $fos := $x//CONFIGURATION/context/param[./@name='fos']/text() -let $sdg := $x//CONFIGURATION/context/param[./@name='sdg']/text() -let $zenodo := $x//param[./@name='zenodoCommunity']/text() -where $x//CONFIGURATION/context[./@type='community' or ./@type='ri'] and $x//context/param[./@name = 'status']/text() != 'hidden' -return - -{ $x//CONFIGURATION/context/@id} - -{$x//CONFIGURATION/context/param[./@name='removeConstraints']/text() } - - -{$x//CONFIGURATION/context/param[./@name='advancedConstraints']/text() } - - - {for $y in tokenize($subj,',') - return - {$y}} - {for $y in tokenize($fos,',') - return - {$y}} - {for $y in tokenize($sdg,',') - return - {$y}} - - - {for $d in $datasources - where $d/param[./@name='enabled']/text()='true' - return - - - {$d//param[./@name='openaireId']/text()} - - - {$d/param[./@name='selcriteria']/text()} - - } - - -{for $zc in $zenodo -return - - -{$zc} - -} -{for $zc in $communities -return - - -{$zc/param[./@name='zenodoid']/text()} - - -{$zc/param[./@name='selcriteria']/text()} - -} - - \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/entitytoorganizationfromsemrel/oozie_app/workflow.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/entitytoorganizationfromsemrel/oozie_app/workflow.xml deleted file mode 100644 index 16c8c4e19..000000000 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/entitytoorganizationfromsemrel/oozie_app/workflow.xml +++ /dev/null @@ -1,197 +0,0 @@ - - - - sourcePath - the source path - - - outputPath - sets the outputPath - - - - - ${jobTracker} - ${nameNode} - - - oozie.action.sharelib.for.spark - ${oozieActionShareLibForSpark2} - - - - - - - - Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] - - - - - ${wf:conf('resumeFrom') eq 'PrepareInfo'} - - - - - - - - - - - - - - - - - - - - - - - - - - - ${nameNode}/${sourcePath}/relation - ${nameNode}/${outputPath}/relation - - - - - - - - ${nameNode}/${sourcePath}/publication - ${nameNode}/${outputPath}/publication - - - - - - - - ${nameNode}/${sourcePath}/dataset - ${nameNode}/${outputPath}/dataset - - - - - - - - ${nameNode}/${sourcePath}/otherresearchproduct - ${nameNode}/${outputPath}/otherresearchproduct - - - - - - - - ${nameNode}/${sourcePath}/software - ${nameNode}/${outputPath}/software - - - - - - - - ${nameNode}/${sourcePath}/organization - ${nameNode}/${outputPath}/organization - - - - - - - - ${nameNode}/${sourcePath}/project - ${nameNode}/${outputPath}/project - - - - - - - - ${nameNode}/${sourcePath}/datasource - ${nameNode}/${outputPath}/datasource - - - - - - - - - - - yarn - cluster - PrepareResultOrganizationAssociation - eu.dnetlib.dhp.entitytoorganizationfromsemrel.PrepareInfo - dhp-enrichment-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - - --graphPath${sourcePath} - --hive_metastore_uris${hive_metastore_uris} - --leavesPath${workingDir}/preparedInfo/leavesPath - --childParentPath${workingDir}/preparedInfo/childParentPath - --resultOrgPath${workingDir}/preparedInfo/resultOrgPath - --projectOrganizationPath${workingDir}/preparedInfo/projectOrganizationPath - --relationPath${workingDir}/preparedInfo/relation - - - - - - - - yarn - cluster - resultToOrganizationFromSemRel - eu.dnetlib.dhp.entitytoorganizationfromsemrel.SparkResultToOrganizationFromSemRel - dhp-enrichment-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.dynamicAllocation.enabled=true - --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} - --conf spark.sql.shuffle.partitions=3840 - - --relationPath${workingDir}/preparedInfo/relation - --outputPath${outputPath}/relation - --leavesPath${workingDir}/preparedInfo/leavesPath - --childParentPath${workingDir}/preparedInfo/childParentPath - --resultOrgPath${workingDir}/preparedInfo/resultOrgPath - --projectOrganizationPath${workingDir}/preparedInfo/projectOrganizationPath - --hive_metastore_uris${hive_metastore_uris} - --workingDir${workingDir}/working - --iterations${iterations} - - - - - - - - - - \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/projecttoresult/oozie_app/workflow.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/projecttoresult/oozie_app/workflow.xml deleted file mode 100644 index 9e91c06fb..000000000 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/projecttoresult/oozie_app/workflow.xml +++ /dev/null @@ -1,184 +0,0 @@ - - - - sourcePath - the source path - - - allowedsemrels - the allowed semantics - - - outputPath - the output path - - - - - ${jobTracker} - ${nameNode} - - - oozie.action.sharelib.for.spark - ${oozieActionShareLibForSpark2} - - - - - - - - Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] - - - - - - - - - - - - - - - - - - - - - - - - - ${nameNode}/${sourcePath}/relation - ${nameNode}/${outputPath}/relation - - - - - - - - ${nameNode}/${sourcePath}/publication - ${nameNode}/${outputPath}/publication - - - - - - - - ${nameNode}/${sourcePath}/dataset - ${nameNode}/${outputPath}/dataset - - - - - - - - ${nameNode}/${sourcePath}/otherresearchproduct - ${nameNode}/${outputPath}/otherresearchproduct - - - - - - - - ${nameNode}/${sourcePath}/software - ${nameNode}/${outputPath}/software - - - - - - - - ${nameNode}/${sourcePath}/organization - ${nameNode}/${outputPath}/organization - - - - - - - - ${nameNode}/${sourcePath}/project - ${nameNode}/${outputPath}/project - - - - - - - - ${nameNode}/${sourcePath}/datasource - ${nameNode}/${outputPath}/datasource - - - - - - - - - - yarn - cluster - PrepareProjectResultsAssociation - eu.dnetlib.dhp.projecttoresult.PrepareProjectResultsAssociation - dhp-enrichment-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - - --sourcePath${sourcePath}/relation - --allowedsemrels${allowedsemrels} - --hive_metastore_uris${hive_metastore_uris} - --potentialUpdatePath${workingDir}/preparedInfo/potentialUpdates - --alreadyLinkedPath${workingDir}/preparedInfo/alreadyLinked - - - - - - - - yarn - cluster - ProjectToResultPropagation - eu.dnetlib.dhp.projecttoresult.SparkResultToProjectThroughSemRelJob - dhp-enrichment-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.dynamicAllocation.enabled=true - --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} - - --saveGraph${saveGraph} - --hive_metastore_uris${hive_metastore_uris} - --outputPath${outputPath}/relation - --potentialUpdatePath${workingDir}/preparedInfo/potentialUpdates - --alreadyLinkedPath${workingDir}/preparedInfo/alreadyLinked - - - - - - - - \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/input_communitytoresult_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/input_communitytoresult_parameters.json deleted file mode 100644 index eebc1a0ca..000000000 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/input_communitytoresult_parameters.json +++ /dev/null @@ -1,51 +0,0 @@ -[ - { - "paramName":"s", - "paramLongName":"sourcePath", - "paramDescription": "the path of the sequencial file to read", - "paramRequired": true - }, - { - "paramName":"h", - "paramLongName":"hive_metastore_uris", - "paramDescription": "the hive metastore uris", - "paramRequired": true - }, - { - "paramName":"sg", - "paramLongName":"saveGraph", - "paramDescription": "true if the new version of the graph must be saved", - "paramRequired": false - }, - { - "paramName":"test", - "paramLongName":"isTest", - "paramDescription": "true if it is executing a test", - "paramRequired": false - }, - { - "paramName": "out", - "paramLongName": "outputPath", - "paramDescription": "the path used to store temporary output files", - "paramRequired": true - }, - { - "paramName": "ssm", - "paramLongName": "isSparkSessionManaged", - "paramDescription": "true if the spark session is managed, false otherwise", - "paramRequired": false - }, - { - "paramName":"tn", - "paramLongName":"resultTableName", - "paramDescription": "the name of the result table we are currently working on", - "paramRequired": true - }, - { - "paramName": "p", - "paramLongName": "preparedInfoPath", - "paramDescription": "the path where prepared info have been stored", - "paramRequired": true - } - -] \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/oozie_app/workflow.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/oozie_app/workflow.xml deleted file mode 100644 index 6a329fdc4..000000000 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/oozie_app/workflow.xml +++ /dev/null @@ -1,242 +0,0 @@ - - - - sourcePath - the source path - - - organizationtoresultcommunitymap - organization community map - - - outputPath - the output path - - - - - ${jobTracker} - ${nameNode} - - - oozie.action.sharelib.for.spark - ${oozieActionShareLibForSpark2} - - - - - - - - Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] - - - - - - - - - - - - - - - - - - - - - ${nameNode}/${sourcePath}/relation - ${nameNode}/${outputPath}/relation - - - - - - - - ${nameNode}/${sourcePath}/organization - ${nameNode}/${outputPath}/organization - - - - - - - - ${nameNode}/${sourcePath}/project - ${nameNode}/${outputPath}/project - - - - - - - - ${nameNode}/${sourcePath}/datasource - ${nameNode}/${outputPath}/datasource - - - - - - - - - - yarn - cluster - Prepare-Community-Result-Organization - eu.dnetlib.dhp.resulttocommunityfromorganization.PrepareResultCommunitySet - dhp-enrichment-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.dynamicAllocation.enabled=true - --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} - - --sourcePath${sourcePath}/relation - --outputPath${workingDir}/preparedInfo/resultCommunityList - --hive_metastore_uris${hive_metastore_uris} - --organizationtoresultcommunitymap${organizationtoresultcommunitymap} - - - - - - - - - - - - - - - yarn - cluster - community2resultfromorganization-Publication - eu.dnetlib.dhp.resulttocommunityfromorganization.SparkResultToCommunityFromOrganizationJob - dhp-enrichment-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.dynamicAllocation.enabled=true - --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} - - --preparedInfoPath${workingDir}/preparedInfo/resultCommunityList - --sourcePath${sourcePath}/publication - --outputPath${outputPath}/publication - --hive_metastore_uris${hive_metastore_uris} - --resultTableNameeu.dnetlib.dhp.schema.oaf.Publication - --saveGraph${saveGraph} - - - - - - - - yarn - cluster - community2resultfromorganization-Dataset - eu.dnetlib.dhp.resulttocommunityfromorganization.SparkResultToCommunityFromOrganizationJob - dhp-enrichment-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.dynamicAllocation.enabled=true - --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} - - --preparedInfoPath${workingDir}/preparedInfo/resultCommunityList - --sourcePath${sourcePath}/dataset - --outputPath${outputPath}/dataset - --hive_metastore_uris${hive_metastore_uris} - --resultTableNameeu.dnetlib.dhp.schema.oaf.Dataset - --saveGraph${saveGraph} - - - - - - - - yarn - cluster - community2resultfromorganization-ORP - eu.dnetlib.dhp.resulttocommunityfromorganization.SparkResultToCommunityFromOrganizationJob - dhp-enrichment-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.dynamicAllocation.enabled=true - --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} - - --preparedInfoPath${workingDir}/preparedInfo/resultCommunityList - --sourcePath${sourcePath}/otherresearchproduct - --outputPath${outputPath}/otherresearchproduct - --hive_metastore_uris${hive_metastore_uris} - --resultTableNameeu.dnetlib.dhp.schema.oaf.OtherResearchProduct - --saveGraph${saveGraph} - - - - - - - - yarn - cluster - community2resultfromorganization-Software - eu.dnetlib.dhp.resulttocommunityfromorganization.SparkResultToCommunityFromOrganizationJob - dhp-enrichment-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.dynamicAllocation.enabled=true - --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} - - --preparedInfoPath${workingDir}/preparedInfo/resultCommunityList - --sourcePath${sourcePath}/software - --outputPath${outputPath}/software - --hive_metastore_uris${hive_metastore_uris} - --resultTableNameeu.dnetlib.dhp.schema.oaf.Software - --saveGraph${saveGraph} - - - - - - - - - - \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/main/job.properties b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/main/job.properties new file mode 100644 index 000000000..05db04090 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/main/job.properties @@ -0,0 +1,28 @@ +sourcePath=/tmp/beta_provision/graph/10_graph_orcid_enriched +resumeFrom=ResultProject +allowedsemrelsorcidprop=isSupplementedBy;isSupplementTo +allowedsemrelsresultproject=isSupplementedBy;isSupplementTo +allowedsemrelscommunitysemrel=isSupplementedBy;isSupplementTo +datasourceWhitelistForCountryPropagation=10|opendoar____::16e6a3326dd7d868cbc926602a61e4d0;10|openaire____::fdb035c8b3e0540a8d9a561a6c44f4de;10|eurocrisdris::fe4903425d9040f680d8610d9079ea14;10|openaire____::5b76240cc27a58c6f7ceef7d8c36660e;10|openaire____::172bbccecf8fca44ab6a6653e84cb92a;10|openaire____::149c6590f8a06b46314eed77bfca693f;10|eurocrisdris::a6026877c1a174d60f81fd71f62df1c1;10|openaire____::4692342f0992d91f9e705c26959f09e0;10|openaire____::8d529dbb05ec0284662b391789e8ae2a;10|openaire____::345c9d171ef3c5d706d08041d506428c;10|opendoar____::1c1d4df596d01da60385f0bb17a4a9e0;10|opendoar____::7a614fd06c325499f1680b9896beedeb;10|opendoar____::1ee3dfcd8a0645a25a35977997223d22;10|opendoar____::d296c101daa88a51f6ca8cfc1ac79b50;10|opendoar____::798ed7d4ee7138d49b8828958048130a;10|openaire____::c9d2209ecc4d45ba7b4ca7597acb88a2;10|eurocrisdris::c49e0fe4b9ba7b7fab717d1f0f0a674d;10|eurocrisdris::9ae43d14471c4b33661fedda6f06b539;10|eurocrisdris::432ca599953ff50cd4eeffe22faf3e48 +#allowedtypes=pubsrepository::institutional +allowedtypes=Institutional +outputPath=/tmp/miriam/graph/11_graph_orcid +pathMap ={"author":"$['author'][*]['fullname']", \ + "title":"$['title'][*]['value']",\ + "orcid":"$['author'][*]['pid'][*][?(@['qualifier']['classid']=='orcid')]['value']" ,\ + "orcid_pending":"$['author'][*]['pid'][*][?(@['qualifier']['classid']=='orcid_pending')]['value']" ,\ + "contributor" : "$['contributor'][*]['value']",\ + "description" : "$['description'][*]['value']",\ + "subject" :"$['subject'][*]['value']" , \ + "fos" : "$['subject'][?(@['qualifier']['classid']=='FOS')].value" ,\ + "sdg" : "$['subject'][?(@['qualifier']['classid']=='SDG')].value",\ + "journal":"$['journal'].name",\ + "hostedby":"$['instance'][*]['hostedby']['key']",\ + "collectedfrom":"$['instance'][*]['collectedfrom']['key']",\ + "publisher":"$['publisher'].value",\ + "publicationyear":"$['dateofacceptance'].value"} +blacklist=empty +allowedpids=orcid;orcid_pending +baseURL = https://services.openaire.eu/openaire/community/ +iterations=1 + diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/main/oozie_app/config-default.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/main/oozie_app/config-default.xml new file mode 100644 index 000000000..d262cb6e0 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/main/oozie_app/config-default.xml @@ -0,0 +1,30 @@ + + + jobTracker + yarnRM + + + nameNode + hdfs://nameservice1 + + + oozie.use.system.libpath + true + + + hiveMetastoreUris + thrift://iis-cdh5-test-m3.ocean.icm.edu.pl:9083 + + + hiveJdbcUrl + jdbc:hive2://iis-cdh5-test-m3.ocean.icm.edu.pl:10000 + + + hiveDbName + openaire + + + oozie.launcher.mapreduce.user.classpath.first + true + + diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/main/oozie_app/import.txt b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/main/oozie_app/import.txt new file mode 100644 index 000000000..b20259414 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/main/oozie_app/import.txt @@ -0,0 +1,10 @@ +## This is a classpath-based import file (this header is required) +orcid_propagation classpath eu/dnetlib/dhp/wf/subworkflows/orcidtoresultfromsemrel/oozie_app +bulk_tagging classpath eu/dnetlib/dhp/wf/subworkflows/bulktag/oozie_app +affiliation_inst_repo classpath eu/dnetlib/dhp/wf/subworkflows/resulttoorganizationfrominstrepo/oozie_app +entity_semantic_relation classpath eu/dnetlib/dhp/wf/subworkflows/entitytoorganizationfromsemrel/oozie_app +community_organization classpath eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromorganization/oozie_app +result_project classpath eu/dnetlib/dhp/wf/subworkflows/projecttoresult/oozie_app +community_project classpath eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromproject/oozie_app +community_sem_rel classpath eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromsemrel/oozie_app +country_propagation classpath eu/dnetlib/dhp/wf/subworkflows/countrypropagation/oozie_app \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/main/oozie_app/workflow.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/main/oozie_app/workflow.xml new file mode 100644 index 000000000..8e91707b6 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/main/oozie_app/workflow.xml @@ -0,0 +1,324 @@ + + + + + sourcePath + the source path + + + allowedsemrelsorcidprop + the semantic relationships allowed for propagation + + + allowedsemrelsresultproject + the allowed semantics + + + allowedsemrelscommunitysemrel + the semantic relationships allowed for propagation + + + datasourceWhitelistForCountryPropagation + the white list + + + allowedtypes + the allowed types + + + outputPath + the output path + + + pathMap + the json path associated to each selection field + + + blacklist + list of datasources in blacklist for the affiliation from instrepo propagation + + + + hiveDbName + the target hive database name + + + hiveJdbcUrl + hive server jdbc url + + + hiveMetastoreUris + hive server metastore URIs + + + sparkDriverMemory + memory for driver process + + + sparkExecutorMemory + memory for individual executor + + + sparkExecutorCores + number of cores used by single executor + + + oozieActionShareLibForSpark2 + oozie action sharelib for spark 2.* + + + spark2ExtraListeners + com.cloudera.spark.lineage.NavigatorAppListener + spark 2.* extra listeners classname + + + spark2SqlQueryExecutionListeners + com.cloudera.spark.lineage.NavigatorQueryListener + spark 2.* sql query execution listeners classname + + + spark2YarnHistoryServerAddress + spark 2.* yarn history server address + + + spark2EventLogDir + spark 2.* event log dir location + + + + + ${jobTracker} + ${nameNode} + + + mapreduce.job.queuename + ${queueName} + + + oozie.launcher.mapred.job.queue.name + ${oozieLauncherQueueName} + + + oozie.action.sharelib.for.spark + ${oozieActionShareLibForSpark2} + + + + + + + + + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + + ${wf:conf('resumeFrom') eq 'BulkTagging'} + ${wf:conf('resumeFrom') eq 'AffiliationInstitutionalRepository'} + ${wf:conf('resumeFrom') eq 'AffiliationSemanticRelation'} + ${wf:conf('resumeFrom') eq 'CommunityOrganization'} + ${wf:conf('resumeFrom') eq 'ResultProject'} + ${wf:conf('resumeFrom') eq 'CommunityProject'} + ${wf:conf('resumeFrom') eq 'CommunitySemanticRelation'} + ${wf:conf('resumeFrom') eq 'CountryPropagation'} + + + + + + + + ${wf:appPath()}/orcid_propagation + + + + + sourcePath + ${sourcePath} + + + allowedsemrels + ${allowedsemrelsorcidprop} + + + outputPath + ${outputPath} + + + + + + + + + + ${wf:appPath()}/bulk_tagging + + + + + sourcePath + ${outputPath} + + + baseURL + ${baseURL} + + + pathMap + ${pathMap} + + + + + + + + + + ${wf:appPath()}/affiliation_inst_repo + + + + + sourcePath + ${outputPath} + + + blacklist + ${blacklist} + + + + + + + + + + ${wf:appPath()}/entity_semantic_relation + + + + + sourcePath + ${outputPath} + + + iterations + ${iterations} + + + + + + + + + + ${wf:appPath()}/community_organization + + + + + sourcePath + ${outputPath} + + + baseURL + ${baseURL} + + + + + + + + + + ${wf:appPath()}/result_project + + + + + sourcePath + ${outputPath} + + + allowedsemrels + ${allowedsemrelsresultproject} + + + + + + + + + + ${wf:appPath()}/community_project + + + + + sourcePath + ${outputPath} + + + + + + + + + + ${wf:appPath()}/community_sem_rel + + + + + sourcePath + ${outputPath} + + + allowedsemrels + ${allowedsemrelscommunitysemrel} + + + baseURL + ${baseURL} + + + + + + + + + + ${wf:appPath()}/country_propagation + + + + + sourcePath + ${outputPath} + + + whitelist + ${datasourceWhitelistForCountryPropagation} + + + allowedtypes + ${allowedtypes} + + + + + + + + + + diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/input_bulkTag_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/bulktag/input_bulkTag_parameters.json similarity index 64% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/input_bulkTag_parameters.json rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/bulktag/input_bulkTag_parameters.json index a8be7c32e..ce1a8ecab 100644 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/input_bulkTag_parameters.json +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/bulktag/input_bulkTag_parameters.json @@ -1,10 +1,4 @@ [ - { - "paramName":"is", - "paramLongName":"isLookUpUrl", - "paramDescription": "URL of the isLookUp Service", - "paramRequired": true - }, { "paramName":"s", "paramLongName":"sourcePath", @@ -17,12 +11,6 @@ "paramDescription": "the json path associated to each selection field", "paramRequired": true }, - { - "paramName":"tn", - "paramLongName":"resultTableName", - "paramDescription": "the name of the result table we are currently working on", - "paramRequired": true - }, { "paramName": "out", "paramLongName": "outputPath", @@ -35,17 +23,16 @@ "paramDescription": "true if the spark session is managed, false otherwise", "paramRequired": false }, - { - "paramName": "test", - "paramLongName": "isTest", - "paramDescription": "Parameter intended for testing purposes only. True if the reun is relatesd to a test and so the taggingConf parameter should be loaded", - "paramRequired": false - }, { "paramName": "tg", "paramLongName": "taggingConf", "paramDescription": "this parameter is intended for testing purposes only. It is a possible tagging configuration obtained via the XQUERY. Intended to be removed", "paramRequired": false + }, + { + "paramName": "bu", + "paramLongName": "baseURL", + "paramDescription": "this parameter is to specify the api to be queried (beta or production)", + "paramRequired": false } - ] \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/bulktag/oozie_app/config-default.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/bulktag/oozie_app/config-default.xml new file mode 100644 index 000000000..2695253e6 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/bulktag/oozie_app/config-default.xml @@ -0,0 +1,62 @@ + + + jobTracker + yarnRM + + + nameNode + hdfs://nameservice1 + + + oozie.use.system.libpath + true + + + oozie.action.sharelib.for.spark + spark2 + + + hive_metastore_uris + thrift://iis-cdh5-test-m3.ocean.icm.edu.pl:9083 + + + spark2YarnHistoryServerAddress + http://iis-cdh5-test-gw.ocean.icm.edu.pl:18089 + + + spark2ExtraListeners + com.cloudera.spark.lineage.NavigatorAppListener + + + spark2SqlQueryExecutionListeners + com.cloudera.spark.lineage.NavigatorQueryListener + + + sparkExecutorNumber + 4 + + + spark2EventLogDir + /user/spark/spark2ApplicationHistory + + + sparkDriverMemory + 15G + + + sparkExecutorMemory + 5G + + + sparkExecutorCores + 4 + + + memoryOverhead + 3G + + + partitions + 3284 + + \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/bulktag/oozie_app/workflow.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/bulktag/oozie_app/workflow.xml new file mode 100644 index 000000000..c7a9e8a26 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/bulktag/oozie_app/workflow.xml @@ -0,0 +1,88 @@ + + + + sourcePath + the source path + + + pathMap + the json path associated to each selection field + + + baseURL + The URL to access the community APIs + + + startFrom> + undelete + + + + + + ${jobTracker} + ${nameNode} + + + oozie.action.sharelib.for.spark + ${oozieActionShareLibForSpark2} + + + + + + + + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + + ${wf:conf('startFrom') eq 'undelete'} + + + + + + + + + + + + + + + + + yarn-cluster + cluster + bulkTagging + eu.dnetlib.dhp.bulktag.SparkBulkTagJob + dhp-enrichment-${projectVersion}.jar + + --num-executors=${sparkExecutorNumber} + --executor-memory=${sparkExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkDriverMemory} + --conf spark.executor.memoryOverhead=${memoryOverhead} + --conf spark.sql.shuffle.partitions=${partitions} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + --sourcePath${sourcePath}/ + --outputPath${workingDir}/bulktag/ + --pathMap${pathMap} + --baseURL${baseURL} + + + + + + + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/countrypropagation/input_countrypropagation_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/countrypropagation/input_countrypropagation_parameters.json similarity index 99% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/countrypropagation/input_countrypropagation_parameters.json rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/countrypropagation/input_countrypropagation_parameters.json index f217e2458..d3cde8b74 100644 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/countrypropagation/input_countrypropagation_parameters.json +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/countrypropagation/input_countrypropagation_parameters.json @@ -29,4 +29,4 @@ "paramDescription": "true if the spark session is managed, false otherwise", "paramRequired": false } -] \ No newline at end of file +] diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/countrypropagation/input_prepareassoc_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/countrypropagation/input_prepareassoc_parameters.json similarity index 100% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/countrypropagation/input_prepareassoc_parameters.json rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/countrypropagation/input_prepareassoc_parameters.json diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/countrypropagation/input_prepareresultcountry_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/countrypropagation/input_prepareresultcountry_parameters.json similarity index 100% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/countrypropagation/input_prepareresultcountry_parameters.json rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/countrypropagation/input_prepareresultcountry_parameters.json diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/countrypropagation/oozie_app/config-default.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/countrypropagation/oozie_app/config-default.xml new file mode 100644 index 000000000..1cb0b8a5e --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/countrypropagation/oozie_app/config-default.xml @@ -0,0 +1,58 @@ + + + jobTracker + yarnRM + + + nameNode + hdfs://nameservice1 + + + oozie.use.system.libpath + true + + + oozie.action.sharelib.for.spark + spark2 + + + hive_metastore_uris + thrift://iis-cdh5-test-m3.ocean.icm.edu.pl:9083 + + + spark2YarnHistoryServerAddress + http://iis-cdh5-test-gw.ocean.icm.edu.pl:18089 + + + spark2EventLogDir + /user/spark/spark2ApplicationHistory + + + spark2ExtraListeners + com.cloudera.spark.lineage.NavigatorAppListener + + + spark2SqlQueryExecutionListeners + com.cloudera.spark.lineage.NavigatorQueryListener + + + sparkExecutorNumber + 4 + + + sparkDriverMemory + 15G + + + sparkExecutorMemory + 5G + + + sparkExecutorCores + 4 + + + spark2MaxExecutors + 50 + + \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/countrypropagation/oozie_app/workflow.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/countrypropagation/oozie_app/workflow.xml similarity index 72% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/countrypropagation/oozie_app/workflow.xml rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/countrypropagation/oozie_app/workflow.xml index 271ccbf72..b9cf69517 100644 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/countrypropagation/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/countrypropagation/oozie_app/workflow.xml @@ -13,10 +13,9 @@ the allowed types - outputPath - the output path + startFrom + undelete - @@ -30,7 +29,15 @@ - + + + + + ${wf:conf('startFrom') eq 'undelete'} + + + + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] @@ -38,57 +45,13 @@ - - + + - + - - - - - - - - - - ${nameNode}/${sourcePath}/relation - ${nameNode}/${outputPath}/relation - - - - - - - - ${nameNode}/${sourcePath}/organization - ${nameNode}/${outputPath}/organization - - - - - - - - ${nameNode}/${sourcePath}/project - ${nameNode}/${outputPath}/project - - - - - - - - ${nameNode}/${sourcePath}/datasource - ${nameNode}/${outputPath}/datasource - - - - - - @@ -110,20 +73,20 @@ --sourcePath${sourcePath} --whitelist${whitelist} --allowedtypes${allowedtypes} - --outputPath${workingDir}/preparedInfo + --outputPath${workingDir}/country/preparedInfo - + - - - - - + + + + + - + yarn cluster @@ -144,16 +107,16 @@ --conf spark.sql.shuffle.partitions=3840 --sourcePath${sourcePath}/publication - --outputPath${workingDir}/publication - --workingPath${workingDir}/workingP + --outputPath${workingDir}/country/publication + --workingPath${workingDir}/country/workingP --resultTableNameeu.dnetlib.dhp.schema.oaf.Publication - --preparedInfoPath${workingDir}/preparedInfo + --preparedInfoPath${workingDir}/country/preparedInfo - + yarn cluster @@ -174,16 +137,16 @@ --conf spark.sql.shuffle.partitions=3840 --sourcePath${sourcePath}/dataset - --outputPath${workingDir}/dataset - --workingPath${workingDir}/workingD + --outputPath${workingDir}/country/dataset + --workingPath${workingDir}/country/workingD --resultTableNameeu.dnetlib.dhp.schema.oaf.Dataset - --preparedInfoPath${workingDir}/preparedInfo + --preparedInfoPath${workingDir}/country/preparedInfo - + yarn cluster @@ -204,16 +167,16 @@ --conf spark.sql.shuffle.partitions=3840 --sourcePath${sourcePath}/otherresearchproduct - --outputPath${workingDir}/otherresearchproduct - --workingPath${workingDir}/workingO + --outputPath${workingDir}/country/otherresearchproduct + --workingPath${workingDir}/country/workingO --resultTableNameeu.dnetlib.dhp.schema.oaf.OtherResearchProduct - --preparedInfoPath${workingDir}/preparedInfo + --preparedInfoPath${workingDir}/country/preparedInfo - + yarn cluster @@ -234,25 +197,25 @@ --conf spark.sql.shuffle.partitions=3840 --sourcePath${sourcePath}/software - --outputPath${workingDir}/software - --workingPath${workingDir}/workingS + --outputPath${workingDir}/country/software + --workingPath${workingDir}/country/workingS --resultTableNameeu.dnetlib.dhp.schema.oaf.Software - --preparedInfoPath${workingDir}/preparedInfo + --preparedInfoPath${workingDir}/country/preparedInfo - + - - - - - + + + + + - + yarn cluster @@ -270,18 +233,18 @@ --conf spark.speculation=false --conf spark.hadoop.mapreduce.map.speculative=false --conf spark.hadoop.mapreduce.reduce.speculative=false - --conf spark.sql.shuffle.partitions=3840 + --conf spark.sql.shuffle.partitions=7680 --sourcePath${sourcePath}/publication - --preparedInfoPath${workingDir}/publication + --preparedInfoPath${workingDir}/country/publication --resultTableNameeu.dnetlib.dhp.schema.oaf.Publication - --outputPath${outputPath}/publication + --outputPath${workingDir}/country/country/publication - + yarn cluster @@ -302,15 +265,15 @@ --conf spark.sql.shuffle.partitions=3840 --sourcePath${sourcePath}/dataset - --preparedInfoPath${workingDir}/dataset + --preparedInfoPath${workingDir}/country/dataset --resultTableNameeu.dnetlib.dhp.schema.oaf.Dataset - --outputPath${outputPath}/dataset + --outputPath${workingDir}/country/country/dataset - + yarn cluster @@ -331,15 +294,15 @@ --conf spark.sql.shuffle.partitions=3840 --sourcePath${sourcePath}/otherresearchproduct - --preparedInfoPath${workingDir}/otherresearchproduct + --preparedInfoPath${workingDir}/country/otherresearchproduct --resultTableNameeu.dnetlib.dhp.schema.oaf.OtherResearchProduct - --outputPath${outputPath}/otherresearchproduct + --outputPath${workingDir}/country/country/otherresearchproduct - + yarn cluster @@ -360,16 +323,57 @@ --conf spark.sql.shuffle.partitions=3840 --sourcePath${sourcePath}/software - --preparedInfoPath${workingDir}/software + --preparedInfoPath${workingDir}/country/software --resultTableNameeu.dnetlib.dhp.schema.oaf.Software - --outputPath${outputPath}/software - + --outputPath${workingDir}/country/country/software + - + + + + yarn + cluster + community2resultfromorganization - move results + eu.dnetlib.dhp.MoveResult + dhp-enrichment-${projectVersion}.jar + + --executor-cores=6 + --executor-memory=5G + --conf spark.executor.memoryOverhead=3g + --conf spark.sql.shuffle.partitions=3284 + --driver-memory=${sparkDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} + + --sourcePath${workingDir}/country/country/ + --outputPath${sourcePath}/ + + + + + + + + ${wf:conf('startFrom') eq 'undelete'} + + + + + + + + + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/entitytoorganizationfromsemrel/input_preparation_parameter.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/entitytoorganizationfromsemrel/input_preparation_parameter.json similarity index 100% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/entitytoorganizationfromsemrel/input_preparation_parameter.json rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/entitytoorganizationfromsemrel/input_preparation_parameter.json diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/entitytoorganizationfromsemrel/input_propagation_parameter.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/entitytoorganizationfromsemrel/input_propagation_parameter.json similarity index 100% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/entitytoorganizationfromsemrel/input_propagation_parameter.json rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/entitytoorganizationfromsemrel/input_propagation_parameter.json diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/countrypropagation/oozie_app/config-default.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/entitytoorganizationfromsemrel/oozie_app/config-default.xml similarity index 100% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/countrypropagation/oozie_app/config-default.xml rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/entitytoorganizationfromsemrel/oozie_app/config-default.xml diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/entitytoorganizationfromsemrel/oozie_app/workflow.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/entitytoorganizationfromsemrel/oozie_app/workflow.xml new file mode 100644 index 000000000..ecec3579b --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/entitytoorganizationfromsemrel/oozie_app/workflow.xml @@ -0,0 +1,112 @@ + + + + sourcePath + the source path + + + startFrom + undelete + + + + + ${jobTracker} + ${nameNode} + + + oozie.action.sharelib.for.spark + ${oozieActionShareLibForSpark2} + + + + + + + + + ${wf:conf('startFrom') eq 'undelete'} + + + + + + + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + + + + + + + + + + + yarn + cluster + PrepareResultProjectOrganizationAssociation + eu.dnetlib.dhp.entitytoorganizationfromsemrel.PrepareInfo + dhp-enrichment-${projectVersion}.jar + + --executor-cores=${sparkExecutorCores} + --executor-memory=${sparkExecutorMemory} + --driver-memory=${sparkDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + --graphPath${sourcePath} + --hive_metastore_uris${hive_metastore_uris} + --leavesPath${workingDir}/entitiesSemanticRelation/preparedInfo/leavesPath + --childParentPath${workingDir}/entitiesSemanticRelation/preparedInfo/childParentPath + --resultOrgPath${workingDir}/entitiesSemanticRelation/preparedInfo/resultOrgPath + --projectOrganizationPath${workingDir}/entitiesSemanticRelation/preparedInfo/projectOrganizationPath + --relationPath${workingDir}/entitiesSemanticRelation/preparedInfo/relation + + + + + + + + yarn + cluster + entityToOrganizationFromSemRel + eu.dnetlib.dhp.entitytoorganizationfromsemrel.SparkEntityToOrganizationFromSemRel + dhp-enrichment-${projectVersion}.jar + + --executor-cores=${sparkExecutorCores} + --executor-memory=${sparkExecutorMemory} + --driver-memory=${sparkDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + --conf spark.dynamicAllocation.enabled=true + --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} + --conf spark.sql.shuffle.partitions=3840 + + --relationPath${workingDir}/entitiesSemanticRelation/preparedInfo/relation + --outputPath${sourcePath}/relation + --leavesPath${workingDir}/entitiesSemanticRelation/preparedInfo/leavesPath + --childParentPath${workingDir}/entitiesSemanticRelation/preparedInfo/childParentPath + --resultOrgPath${workingDir}/entitiesSemanticRelation/preparedInfo/resultOrgPath + --projectOrganizationPath${workingDir}/entitiesSemanticRelation/preparedInfo/projectOrganizationPath + --hive_metastore_uris${hive_metastore_uris} + --workingDir${workingDir}/entitiesSemanticRelation/working + --iterations${iterations} + + + + + + + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/input_eoscTag_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/input_moveresult_parameters.json similarity index 88% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/input_eoscTag_parameters.json rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/input_moveresult_parameters.json index 4c25fea01..4645be435 100644 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/input_eoscTag_parameters.json +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/input_moveresult_parameters.json @@ -5,9 +5,10 @@ "paramDescription": "the path of the sequencial file to read", "paramRequired": true }, + { - "paramName": "wp", - "paramLongName": "workingPath", + "paramName": "out", + "paramLongName": "outputPath", "paramDescription": "the path used to store temporary output files", "paramRequired": true }, diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/orcidtoresultfromsemrel/input_orcidtoresult_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/orcidtoresultfromsemrel/input_orcidtoresult_parameters.json similarity index 88% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/orcidtoresultfromsemrel/input_orcidtoresult_parameters.json rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/orcidtoresultfromsemrel/input_orcidtoresult_parameters.json index d8aa7eb9a..3cbaa23bb 100644 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/orcidtoresultfromsemrel/input_orcidtoresult_parameters.json +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/orcidtoresultfromsemrel/input_orcidtoresult_parameters.json @@ -11,12 +11,6 @@ "paramDescription": "true if the new version of the graph must be saved", "paramRequired": false }, - { - "paramName":"h", - "paramLongName":"hive_metastore_uris", - "paramDescription": "the hive metastore uris", - "paramRequired": true - }, { "paramName": "out", "paramLongName": "outputPath", diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/orcidtoresultfromsemrel/input_prepareorcidtoresult_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/orcidtoresultfromsemrel/input_prepareorcidtoresult_parameters.json similarity index 100% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/orcidtoresultfromsemrel/input_prepareorcidtoresult_parameters.json rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/orcidtoresultfromsemrel/input_prepareorcidtoresult_parameters.json diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/orcidtoresultfromsemrel/input_prepareorcidtoresult_parameters2.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/orcidtoresultfromsemrel/input_prepareorcidtoresult_parameters2.json similarity index 100% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/orcidtoresultfromsemrel/input_prepareorcidtoresult_parameters2.json rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/orcidtoresultfromsemrel/input_prepareorcidtoresult_parameters2.json diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/orcidtoresultfromsemrel/oozie_app/config-default.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/orcidtoresultfromsemrel/oozie_app/config-default.xml similarity index 100% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/orcidtoresultfromsemrel/oozie_app/config-default.xml rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/orcidtoresultfromsemrel/oozie_app/config-default.xml diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/orcidtoresultfromsemrel/oozie_app/workflow.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/orcidtoresultfromsemrel/oozie_app/workflow.xml similarity index 93% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/orcidtoresultfromsemrel/oozie_app/workflow.xml rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/orcidtoresultfromsemrel/oozie_app/workflow.xml index 5f52c1658..bab1e55df 100644 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/orcidtoresultfromsemrel/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/orcidtoresultfromsemrel/oozie_app/workflow.xml @@ -114,7 +114,7 @@ --sourcePath${sourcePath} --hive_metastore_uris${hive_metastore_uris} --resultTableNameeu.dnetlib.dhp.schema.oaf.Publication - --outputPath${workingDir}/preparedInfo/targetOrcidAssoc + --outputPath${workingDir}/orcid/preparedInfo/targetOrcidAssoc --allowedsemrels${allowedsemrels} @@ -142,7 +142,7 @@ --sourcePath${sourcePath} --hive_metastore_uris${hive_metastore_uris} --resultTableNameeu.dnetlib.dhp.schema.oaf.Dataset - --outputPath${workingDir}/preparedInfo/targetOrcidAssoc + --outputPath${workingDir}/orcid/preparedInfo/targetOrcidAssoc --allowedsemrels${allowedsemrels} @@ -170,7 +170,7 @@ --sourcePath${sourcePath} --hive_metastore_uris${hive_metastore_uris} --resultTableNameeu.dnetlib.dhp.schema.oaf.OtherResearchProduct - --outputPath${workingDir}/preparedInfo/targetOrcidAssoc + --outputPath${workingDir}/orcid/preparedInfo/targetOrcidAssoc --allowedsemrels${allowedsemrels} @@ -198,7 +198,7 @@ --sourcePath${sourcePath} --hive_metastore_uris${hive_metastore_uris} --resultTableNameeu.dnetlib.dhp.schema.oaf.Software - --outputPath${workingDir}/preparedInfo/targetOrcidAssoc + --outputPath${workingDir}/orcid/preparedInfo/targetOrcidAssoc --allowedsemrels${allowedsemrels} @@ -225,8 +225,8 @@ --conf spark.dynamicAllocation.enabled=true --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} - --sourcePath${workingDir}/preparedInfo/targetOrcidAssoc - --outputPath${workingDir}/preparedInfo/mergedOrcidAssoc + --sourcePath${workingDir}/orcid/orcidprop + --outputPath${workingDir}/orcid/orcidprop/mergedOrcidAssoc @@ -261,9 +261,8 @@ --conf spark.hadoop.mapreduce.reduce.speculative=false --conf spark.sql.shuffle.partitions=3840 - --possibleUpdatesPath${workingDir}/preparedInfo/mergedOrcidAssoc + --possibleUpdatesPath${workingDir}/orcid/orcidprop/mergedOrcidAssoc --sourcePath${sourcePath}/publication - --hive_metastore_uris${hive_metastore_uris} --resultTableNameeu.dnetlib.dhp.schema.oaf.Publication --outputPath${outputPath}/publication @@ -292,9 +291,8 @@ --conf spark.hadoop.mapreduce.map.speculative=false --conf spark.hadoop.mapreduce.reduce.speculative=false - --possibleUpdatesPath${workingDir}/preparedInfo/mergedOrcidAssoc + --possibleUpdatesPath${workingDir}/orcid/orcidprop/mergedOrcidAssoc --sourcePath${sourcePath}/dataset - --hive_metastore_uris${hive_metastore_uris} --resultTableNameeu.dnetlib.dhp.schema.oaf.Dataset --outputPath${outputPath}/dataset @@ -323,9 +321,8 @@ --conf spark.hadoop.mapreduce.map.speculative=false --conf spark.hadoop.mapreduce.reduce.speculative=false - --possibleUpdatesPath${workingDir}/preparedInfo/mergedOrcidAssoc + --possibleUpdatesPath${workingDir}/orcid/orcidprop/mergedOrcidAssoc --sourcePath${sourcePath}/otherresearchproduct - --hive_metastore_uris${hive_metastore_uris} --resultTableNameeu.dnetlib.dhp.schema.oaf.OtherResearchProduct --outputPath${outputPath}/otherresearchproduct @@ -354,9 +351,8 @@ --conf spark.hadoop.mapreduce.map.speculative=false --conf spark.hadoop.mapreduce.reduce.speculative=false - --possibleUpdatesPath${workingDir}/preparedInfo/mergedOrcidAssoc + --possibleUpdatesPath${workingDir}/orcid/orcidprop/mergedOrcidAssoc --sourcePath${sourcePath}/software - --hive_metastore_uris${hive_metastore_uris} --resultTableNameeu.dnetlib.dhp.schema.oaf.Software --outputPath${outputPath}/software @@ -365,6 +361,15 @@ + + + + + + + + + diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/projecttoresult/input_prepareprojecttoresult_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/projecttoresult/input_prepareprojecttoresult_parameters.json similarity index 100% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/projecttoresult/input_prepareprojecttoresult_parameters.json rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/projecttoresult/input_prepareprojecttoresult_parameters.json diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/projecttoresult/input_projecttoresult_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/projecttoresult/input_projecttoresult_parameters.json similarity index 100% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/projecttoresult/input_projecttoresult_parameters.json rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/projecttoresult/input_projecttoresult_parameters.json diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/projecttoresult/oozie_app/config-default.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/projecttoresult/oozie_app/config-default.xml similarity index 100% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/projecttoresult/oozie_app/config-default.xml rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/projecttoresult/oozie_app/config-default.xml diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/projecttoresult/oozie_app/workflow.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/projecttoresult/oozie_app/workflow.xml new file mode 100644 index 000000000..287ee4ba8 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/projecttoresult/oozie_app/workflow.xml @@ -0,0 +1,104 @@ + + + + sourcePath + the source path + + + allowedsemrels + the allowed semantics + + + startFrom + undelete + + + + + ${jobTracker} + ${nameNode} + + + oozie.action.sharelib.for.spark + ${oozieActionShareLibForSpark2} + + + + + + + + + ${wf:conf('startFrom') eq 'undelete'} + + + + + + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + + + + + + + + + + + yarn + cluster + PrepareProjectResultsAssociation + eu.dnetlib.dhp.projecttoresult.PrepareProjectResultsAssociation + dhp-enrichment-${projectVersion}.jar + + --executor-cores=${sparkExecutorCores} + --executor-memory=${sparkExecutorMemory} + --driver-memory=${sparkDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + --sourcePath${sourcePath}/relation + --allowedsemrels${allowedsemrels} + --hive_metastore_uris${hive_metastore_uris} + --potentialUpdatePath${workingDir}/resultproject/preparedInfo/potentialUpdates + --alreadyLinkedPath${workingDir}/resultproject/preparedInfo/alreadyLinked + + + + + + + + yarn + cluster + ProjectToResultPropagation + eu.dnetlib.dhp.projecttoresult.SparkResultToProjectThroughSemRelJob + dhp-enrichment-${projectVersion}.jar + + --executor-cores=${sparkExecutorCores} + --executor-memory=${sparkExecutorMemory} + --driver-memory=${sparkDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + --conf spark.dynamicAllocation.enabled=true + --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} + + --hive_metastore_uris${hive_metastore_uris} + --outputPath${sourcePath}/relation + --potentialUpdatePath${workingDir}/resultproject/preparedInfo/potentialUpdates + --alreadyLinkedPath${workingDir}/resultproject/preparedInfo/alreadyLinked + + + + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromorganization/input_communitytoresult_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromorganization/input_communitytoresult_parameters.json new file mode 100644 index 000000000..0db8085d1 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromorganization/input_communitytoresult_parameters.json @@ -0,0 +1,28 @@ +[ + { + "paramName":"s", + "paramLongName":"sourcePath", + "paramDescription": "the path of the sequencial file to read", + "paramRequired": true + }, + + { + "paramName": "out", + "paramLongName": "outputPath", + "paramDescription": "the path used to store temporary output files", + "paramRequired": true + }, + { + "paramName": "ssm", + "paramLongName": "isSparkSessionManaged", + "paramDescription": "true if the spark session is managed, false otherwise", + "paramRequired": false + }, + { + "paramName": "p", + "paramLongName": "preparedInfoPath", + "paramDescription": "the path where prepared info have been stored", + "paramRequired": true + } + +] \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/input_preparecommunitytoresult_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromorganization/input_preparecommunitytoresult_parameters.json similarity index 78% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/input_preparecommunitytoresult_parameters.json rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromorganization/input_preparecommunitytoresult_parameters.json index 8df509abf..3601db7ac 100644 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/input_preparecommunitytoresult_parameters.json +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromorganization/input_preparecommunitytoresult_parameters.json @@ -5,12 +5,6 @@ "paramDescription": "the path of the sequencial file to read", "paramRequired": true }, - { - "paramName":"ocm", - "paramLongName":"organizationtoresultcommunitymap", - "paramDescription": "the map for the association organization communities", - "paramRequired": true - }, { "paramName":"h", "paramLongName":"hive_metastore_uris", @@ -28,6 +22,12 @@ "paramLongName": "outputPath", "paramDescription": "the path used to store temporary output files", "paramRequired": true + }, + { + "paramName": "bu", + "paramLongName": "baseURL", + "paramDescription": "the base URL to the community API to use", + "paramRequired": false } ] \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/entitytoorganizationfromsemrel/oozie_app/config-default.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromorganization/oozie_app/config-default.xml similarity index 100% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/entitytoorganizationfromsemrel/oozie_app/config-default.xml rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromorganization/oozie_app/config-default.xml diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromorganization/oozie_app/workflow.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromorganization/oozie_app/workflow.xml new file mode 100644 index 000000000..aa5357eea --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromorganization/oozie_app/workflow.xml @@ -0,0 +1,136 @@ + + + + sourcePath + the source path + + + baseURL + the baseURL from where to reach the community APIs + + + startFrom + undelete + + + + + ${jobTracker} + ${nameNode} + + + oozie.action.sharelib.for.spark + ${oozieActionShareLibForSpark2} + + + + + + + + + ${wf:conf('startFrom') eq 'undelete'} + + + + + + + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + + + + + + + + + + + yarn + cluster + Prepare-Community-Result-Organization + eu.dnetlib.dhp.resulttocommunityfromorganization.PrepareResultCommunitySet + dhp-enrichment-${projectVersion}.jar + + --executor-cores=6 + --executor-memory=5G + --conf spark.executor.memoryOverhead=3g + --conf spark.sql.shuffle.partitions=3284 + --driver-memory=${sparkDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} + + --sourcePath${sourcePath}/relation + --outputPath${workingDir}/communityorganization/preparedInfo/resultCommunityList + --hive_metastore_uris${hive_metastore_uris} + --baseURL${baseURL} + + + + + + + + yarn + cluster + community2resultfromorganization + eu.dnetlib.dhp.resulttocommunityfromorganization.SparkResultToCommunityFromOrganizationJob + dhp-enrichment-${projectVersion}.jar + + --executor-cores=6 + --executor-memory=5G + --conf spark.executor.memoryOverhead=3g + --conf spark.sql.shuffle.partitions=3284 + --driver-memory=${sparkDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} + + --preparedInfoPath${workingDir}/communityorganization/preparedInfo/resultCommunityList + --sourcePath${sourcePath}/ + --outputPath${workingDir}/communityorganization/resulttocommunityfromorganization/ + + + + + + + + yarn + cluster + community2resultfromorganization - move results + eu.dnetlib.dhp.MoveResult + dhp-enrichment-${projectVersion}.jar + + --executor-cores=6 + --executor-memory=5G + --conf spark.executor.memoryOverhead=3g + --conf spark.sql.shuffle.partitions=3284 + --driver-memory=${sparkDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} + + --sourcePath${workingDir}/communityorganization/resulttocommunityfromorganization/ + --outputPath${sourcePath}/ + + + + + + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromproject/input_communitytoresult_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromproject/input_communitytoresult_parameters.json new file mode 100644 index 000000000..0db8085d1 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromproject/input_communitytoresult_parameters.json @@ -0,0 +1,28 @@ +[ + { + "paramName":"s", + "paramLongName":"sourcePath", + "paramDescription": "the path of the sequencial file to read", + "paramRequired": true + }, + + { + "paramName": "out", + "paramLongName": "outputPath", + "paramDescription": "the path used to store temporary output files", + "paramRequired": true + }, + { + "paramName": "ssm", + "paramLongName": "isSparkSessionManaged", + "paramDescription": "true if the spark session is managed, false otherwise", + "paramRequired": false + }, + { + "paramName": "p", + "paramLongName": "preparedInfoPath", + "paramDescription": "the path where prepared info have been stored", + "paramRequired": true + } + +] \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromproject/input_preparecommunitytoresult_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromproject/input_preparecommunitytoresult_parameters.json new file mode 100644 index 000000000..cbc01c2d5 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromproject/input_preparecommunitytoresult_parameters.json @@ -0,0 +1,28 @@ +[ + { + "paramName":"s", + "paramLongName":"sourcePath", + "paramDescription": "the path of the sequencial file to read", + "paramRequired": true + }, + + { + "paramName": "ssm", + "paramLongName": "isSparkSessionManaged", + "paramDescription": "true if the spark session is managed, false otherwise", + "paramRequired": false + }, + { + "paramName": "out", + "paramLongName": "outputPath", + "paramDescription": "the path used to store temporary output files", + "paramRequired": true + }, + { + "paramName": "bu", + "paramLongName": "baseURL", + "paramDescription": "the path used to store temporary output files", + "paramRequired": false + } + +] \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/oozie_app/config-default.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromproject/oozie_app/config-default.xml similarity index 100% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/oozie_app/config-default.xml rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromproject/oozie_app/config-default.xml diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromproject/oozie_app/workflow.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromproject/oozie_app/workflow.xml new file mode 100644 index 000000000..0ceee5a7e --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromproject/oozie_app/workflow.xml @@ -0,0 +1,134 @@ + + + + sourcePath + the source path + + + baseURL + the base URL to use to select the right community APIs + + + startFrom + undelete + + + + + ${jobTracker} + ${nameNode} + + + oozie.action.sharelib.for.spark + ${oozieActionShareLibForSpark2} + + + + + + + + + ${wf:conf('startFrom') eq 'undelete'} + + + + + + + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + + + + + + + + + + yarn + cluster + Prepare-Community-Result-Organization + eu.dnetlib.dhp.resulttocommunityfromproject.PrepareResultCommunitySet + dhp-enrichment-${projectVersion}.jar + + --executor-cores=6 + --executor-memory=5G + --conf spark.executor.memoryOverhead=3g + --conf spark.sql.shuffle.partitions=3284 + --driver-memory=${sparkDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} + + --sourcePath${sourcePath}/relation + --outputPath${workingDir}/communitythroughproject/preparedInfo/resultCommunityList + --baseURL${baseURL} + + + + + + + + yarn + cluster + community2resultfromproject + eu.dnetlib.dhp.resulttocommunityfromproject.SparkResultToCommunityFromProject + dhp-enrichment-${projectVersion}.jar + + --executor-cores=6 + --executor-memory=5G + --conf spark.executor.memoryOverhead=3g + --conf spark.sql.shuffle.partitions=3284 + --driver-memory=${sparkDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} + + --preparedInfoPath${workingDir}/communitythroughproject/preparedInfo/resultCommunityList + --sourcePath${sourcePath}/ + --outputPath${workingDir}/communitythroughproject/ + + + + + + + + yarn + cluster + move results + eu.dnetlib.dhp.MoveResult + dhp-enrichment-${projectVersion}.jar + + --executor-cores=6 + --executor-memory=5G + --conf spark.executor.memoryOverhead=3g + --conf spark.sql.shuffle.partitions=3284 + --driver-memory=${sparkDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} + + --sourcePath${workingDir}/communitythroughproject/ + --outputPath${sourcePath}/ + + + + + + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromsemrel/input_communitytoresult_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromsemrel/input_communitytoresult_parameters.json similarity index 100% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromsemrel/input_communitytoresult_parameters.json rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromsemrel/input_communitytoresult_parameters.json diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromsemrel/input_preparecommunitytoresult2_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromsemrel/input_preparecommunitytoresult2_parameters.json similarity index 100% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromsemrel/input_preparecommunitytoresult2_parameters.json rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromsemrel/input_preparecommunitytoresult2_parameters.json diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromsemrel/input_preparecommunitytoresult_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromsemrel/input_preparecommunitytoresult_parameters.json similarity index 80% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromsemrel/input_preparecommunitytoresult_parameters.json rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromsemrel/input_preparecommunitytoresult_parameters.json index 8c99da673..c6389ec8d 100644 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromsemrel/input_preparecommunitytoresult_parameters.json +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromsemrel/input_preparecommunitytoresult_parameters.json @@ -1,7 +1,7 @@ [ { - "paramName":"is", - "paramLongName":"isLookUpUrl", + "paramName":"bu", + "paramLongName":"baseURL", "paramDescription": "URL of the isLookUp Service", "paramRequired": true }, @@ -36,9 +36,9 @@ "paramRequired": true }, { - "paramName":"tn", - "paramLongName":"resultTableName", - "paramDescription": "the name of the result table we are currently working on", - "paramRequired": true - } + "paramName":"tn", + "paramLongName":"resultTableName", + "paramDescription": "the name of the result table we are currently working on", + "paramRequired": true + } ] \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromsemrel/oozie_app/config-default.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromsemrel/oozie_app/config-default.xml similarity index 100% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromsemrel/oozie_app/config-default.xml rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromsemrel/oozie_app/config-default.xml diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromsemrel/oozie_app/workflow.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromsemrel/oozie_app/workflow.xml similarity index 71% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromsemrel/oozie_app/workflow.xml rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromsemrel/oozie_app/workflow.xml index 81b51443c..b5e6fbf05 100644 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttocommunityfromsemrel/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttocommunityfromsemrel/oozie_app/workflow.xml @@ -9,16 +9,28 @@ the semantic relationships allowed for propagation - isLookUpUrl + baseURL the isLookup service endpoint outputPath the output path + + startFrom + undelete + - + + + + + ${wf:conf('startFrom') eq 'undelete'} + + + + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] @@ -26,66 +38,13 @@ - - + + - + - - - - - - - - - - ${jobTracker} - ${nameNode} - ${nameNode}/${sourcePath}/relation - ${nameNode}/${outputPath}/relation - - - - - - - - ${jobTracker} - ${nameNode} - ${nameNode}/${sourcePath}/organization - ${nameNode}/${outputPath}/organization - - - - - - - - ${jobTracker} - ${nameNode} - ${nameNode}/${sourcePath}/project - ${nameNode}/${outputPath}/project - - - - - - - - ${jobTracker} - ${nameNode} - ${nameNode}/${sourcePath}/datasource - ${nameNode}/${outputPath}/datasource - - - - - - - @@ -101,8 +60,10 @@ eu.dnetlib.dhp.resulttocommunityfromsemrel.PrepareResultCommunitySetStep1 dhp-enrichment-${projectVersion}.jar - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} + --executor-cores=6 + --executor-memory=5G + --conf spark.executor.memoryOverhead=3g + --conf spark.sql.shuffle.partitions=3284 --driver-memory=${sparkDriverMemory} --conf spark.extraListeners=${spark2ExtraListeners} --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} @@ -114,9 +75,9 @@ --sourcePath${sourcePath} --hive_metastore_uris${hive_metastore_uris} --resultTableNameeu.dnetlib.dhp.schema.oaf.Publication - --outputPath${workingDir}/preparedInfo/targetCommunityAssoc + --outputPath${workingDir}/communitysemrel/preparedInfo/targetCommunityAssoc --allowedsemrels${allowedsemrels} - --isLookUpUrl${isLookUpUrl} + --baseURL${baseURL} @@ -130,8 +91,10 @@ eu.dnetlib.dhp.resulttocommunityfromsemrel.PrepareResultCommunitySetStep1 dhp-enrichment-${projectVersion}.jar - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} + --executor-cores=6 + --executor-memory=5G + --conf spark.executor.memoryOverhead=3g + --conf spark.sql.shuffle.partitions=3284 --driver-memory=${sparkDriverMemory} --conf spark.extraListeners=${spark2ExtraListeners} --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} @@ -143,9 +106,9 @@ --sourcePath${sourcePath} --hive_metastore_uris${hive_metastore_uris} --resultTableNameeu.dnetlib.dhp.schema.oaf.Dataset - --outputPath${workingDir}/preparedInfo/targetCommunityAssoc + --outputPath${workingDir}/communitysemrel/preparedInfo/targetCommunityAssoc --allowedsemrels${allowedsemrels} - --isLookUpUrl${isLookUpUrl} + --baseURL${baseURL} @@ -159,8 +122,10 @@ eu.dnetlib.dhp.resulttocommunityfromsemrel.PrepareResultCommunitySetStep1 dhp-enrichment-${projectVersion}.jar - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} + --executor-cores=6 + --executor-memory=5G + --conf spark.executor.memoryOverhead=3g + --conf spark.sql.shuffle.partitions=3284 --driver-memory=${sparkDriverMemory} --conf spark.extraListeners=${spark2ExtraListeners} --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} @@ -172,9 +137,9 @@ --sourcePath${sourcePath} --hive_metastore_uris${hive_metastore_uris} --resultTableNameeu.dnetlib.dhp.schema.oaf.OtherResearchProduct - --outputPath${workingDir}/preparedInfo/targetCommunityAssoc + --outputPath${workingDir}/communitysemrel/preparedInfo/targetCommunityAssoc --allowedsemrels${allowedsemrels} - --isLookUpUrl${isLookUpUrl} + --baseURL${baseURL} @@ -188,8 +153,10 @@ eu.dnetlib.dhp.resulttocommunityfromsemrel.PrepareResultCommunitySetStep1 dhp-enrichment-${projectVersion}.jar - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} + --executor-cores=6 + --executor-memory=5G + --conf spark.executor.memoryOverhead=3g + --conf spark.sql.shuffle.partitions=3284 --driver-memory=${sparkDriverMemory} --conf spark.extraListeners=${spark2ExtraListeners} --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} @@ -201,9 +168,9 @@ --sourcePath${sourcePath} --hive_metastore_uris${hive_metastore_uris} --resultTableNameeu.dnetlib.dhp.schema.oaf.Software - --outputPath${workingDir}/preparedInfo/targetCommunityAssoc + --outputPath${workingDir}/communitysemrel/preparedInfo/targetCommunityAssoc --allowedsemrels${allowedsemrels} - --isLookUpUrl${isLookUpUrl} + --baseURL${baseURL} @@ -219,8 +186,10 @@ eu.dnetlib.dhp.resulttocommunityfromsemrel.PrepareResultCommunitySetStep2 dhp-enrichment-${projectVersion}.jar - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} + --executor-cores=6 + --executor-memory=5G + --conf spark.executor.memoryOverhead=3g + --conf spark.sql.shuffle.partitions=3284 --driver-memory=${sparkDriverMemory} --conf spark.extraListeners=${spark2ExtraListeners} --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} @@ -229,8 +198,8 @@ --conf spark.dynamicAllocation.enabled=true --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} - --sourcePath${workingDir}/preparedInfo/targetCommunityAssoc - --outputPath${workingDir}/preparedInfo/mergedCommunityAssoc + --sourcePath${workingDir}/communitysemrel/preparedInfo/targetCommunityAssoc + --outputPath${workingDir}/communitysemrel/preparedInfo/mergedCommunityAssoc @@ -251,8 +220,10 @@ eu.dnetlib.dhp.resulttocommunityfromsemrel.SparkResultToCommunityThroughSemRelJob dhp-enrichment-${projectVersion}.jar - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} + --executor-cores=6 + --executor-memory=4G + --conf spark.executor.memoryOverhead=5G + --conf spark.sql.shuffle.partitions=15000 --driver-memory=${sparkDriverMemory} --conf spark.extraListeners=${spark2ExtraListeners} --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} @@ -261,12 +232,12 @@ --conf spark.dynamicAllocation.enabled=true --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} - --preparedInfoPath${workingDir}/preparedInfo/mergedCommunityAssoc + --preparedInfoPath${workingDir}/communitysemrel/preparedInfo/mergedCommunityAssoc --sourcePath${sourcePath}/publication --hive_metastore_uris${hive_metastore_uris} --resultTableNameeu.dnetlib.dhp.schema.oaf.Publication - --outputPath${outputPath}/publication - --saveGraph${saveGraph} + --outputPath${workingDir}/communitysemrel/publication + @@ -280,8 +251,10 @@ eu.dnetlib.dhp.resulttocommunityfromsemrel.SparkResultToCommunityThroughSemRelJob dhp-enrichment-${projectVersion}.jar - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} + --executor-cores=6 + --executor-memory=5G + --conf spark.executor.memoryOverhead=3g + --conf spark.sql.shuffle.partitions=3284 --driver-memory=${sparkDriverMemory} --conf spark.extraListeners=${spark2ExtraListeners} --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} @@ -290,12 +263,12 @@ --conf spark.dynamicAllocation.enabled=true --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} - --preparedInfoPath${workingDir}/preparedInfo/mergedCommunityAssoc + --preparedInfoPath${workingDir}/communitysemrel/preparedInfo/mergedCommunityAssoc --sourcePath${sourcePath}/dataset --hive_metastore_uris${hive_metastore_uris} --resultTableNameeu.dnetlib.dhp.schema.oaf.Dataset - --outputPath${outputPath}/dataset - --saveGraph${saveGraph} + --outputPath${workingDir}/communitysemrel/dataset + @@ -309,8 +282,10 @@ eu.dnetlib.dhp.resulttocommunityfromsemrel.SparkResultToCommunityThroughSemRelJob dhp-enrichment-${projectVersion}.jar - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} + --executor-cores=6 + --executor-memory=5G + --conf spark.executor.memoryOverhead=3g + --conf spark.sql.shuffle.partitions=3284 --driver-memory=${sparkDriverMemory} --conf spark.extraListeners=${spark2ExtraListeners} --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} @@ -319,12 +294,12 @@ --conf spark.dynamicAllocation.enabled=true --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} - --preparedInfoPath${workingDir}/preparedInfo/mergedCommunityAssoc + --preparedInfoPath${workingDir}/communitysemrel/preparedInfo/mergedCommunityAssoc --sourcePath${sourcePath}/otherresearchproduct --hive_metastore_uris${hive_metastore_uris} --resultTableNameeu.dnetlib.dhp.schema.oaf.OtherResearchProduct - --outputPath${outputPath}/otherresearchproduct - --saveGraph${saveGraph} + --outputPath${workingDir}/communitysemrel/otherresearchproduct + @@ -338,8 +313,10 @@ eu.dnetlib.dhp.resulttocommunityfromsemrel.SparkResultToCommunityThroughSemRelJob dhp-enrichment-${projectVersion}.jar - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} + --executor-cores=6 + --executor-memory=5G + --conf spark.executor.memoryOverhead=3g + --conf spark.sql.shuffle.partitions=3284 --driver-memory=${sparkDriverMemory} --conf spark.extraListeners=${spark2ExtraListeners} --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} @@ -348,18 +325,45 @@ --conf spark.dynamicAllocation.enabled=true --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} - --preparedInfoPath${workingDir}/preparedInfo/mergedCommunityAssoc + --preparedInfoPath${workingDir}/communitysemrel/preparedInfo/mergedCommunityAssoc --sourcePath${sourcePath}/software --hive_metastore_uris${hive_metastore_uris} --resultTableNameeu.dnetlib.dhp.schema.oaf.Software - --outputPath${outputPath}/software - --saveGraph${saveGraph} + --outputPath${workingDir}/communitysemrel/software + - + + + + + yarn + cluster + move results + eu.dnetlib.dhp.MoveResult + dhp-enrichment-${projectVersion}.jar + + --executor-cores=6 + --executor-memory=5G + --conf spark.executor.memoryOverhead=3g + --conf spark.sql.shuffle.partitions=3284 + --driver-memory=${sparkDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} + + --sourcePath${workingDir}/communitysemrel/ + --outputPath${sourcePath}/ + + + + + diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttoorganizationfrominstrepo/input_newrelation_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttoorganizationfrominstrepo/input_newrelation_parameters.json new file mode 100644 index 000000000..5fe92cff1 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttoorganizationfrominstrepo/input_newrelation_parameters.json @@ -0,0 +1,20 @@ +[ + { + "paramName":"s", + "paramLongName":"sourcePath", + "paramDescription": "the path of the sequencial file to read", + "paramRequired": true + }, + + { + "paramName": "ssm", + "paramLongName": "isSparkSessionManaged", + "paramDescription": "the path where prepared info have been stored", + "paramRequired": false + },{ + "paramName": "o", + "paramLongName": "outputPath", + "paramDescription": "institutional repositories that should not be considered for the propagation", + "paramRequired": false +} +] \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/input_prepareresultorg_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttoorganizationfrominstrepo/input_prepareresultorg_parameters.json similarity index 66% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/input_prepareresultorg_parameters.json rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttoorganizationfrominstrepo/input_prepareresultorg_parameters.json index 2f00bacae..3f4b1d151 100644 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/input_prepareresultorg_parameters.json +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttoorganizationfrominstrepo/input_prepareresultorg_parameters.json @@ -11,16 +11,11 @@ "paramDescription": "the hive metastore uris", "paramRequired": true }, + { - "paramName":"dop", - "paramLongName":"datasourceOrganizationPath", - "paramDescription": "path where to store/find association from datasource and organization", - "paramRequired": true - }, - { - "paramName":"alp", - "paramLongName":"alreadyLinkedPath", - "paramDescription": "path where to store/find already linked results and organizations", + "paramName":"wp", + "paramLongName":"workingPath", + "paramDescription": "the working path", "paramRequired": true }, { diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/input_propagationresulaffiliationfrominstrepo_parameters.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttoorganizationfrominstrepo/input_propagationresulaffiliationfrominstrepo_parameters.json similarity index 100% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/input_propagationresulaffiliationfrominstrepo_parameters.json rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttoorganizationfrominstrepo/input_propagationresulaffiliationfrominstrepo_parameters.json diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/oozie_app/config-default.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttoorganizationfrominstrepo/oozie_app/config-default.xml similarity index 100% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/oozie_app/config-default.xml rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttoorganizationfrominstrepo/oozie_app/config-default.xml diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/oozie_app/workflow.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttoorganizationfrominstrepo/oozie_app/workflow.xml similarity index 67% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/oozie_app/workflow.xml rename to dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttoorganizationfrominstrepo/oozie_app/workflow.xml index edfff8817..ca76a0e85 100644 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/wf/subworkflows/resulttoorganizationfrominstrepo/oozie_app/workflow.xml @@ -5,8 +5,12 @@ the source path - outputPath - sets the outputPath + blacklist + The list of institutional repositories that should not be used for the propagation + + + startFrom + undelete @@ -21,7 +25,15 @@ - + + + + + ${wf:conf('startFrom') eq 'undelete'} + + + + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] @@ -29,97 +41,13 @@ - - + + - + - - - - - - - - - - - - - - ${nameNode}/${sourcePath}/relation - ${nameNode}/${outputPath}/relation - - - - - - - - ${nameNode}/${sourcePath}/publication - ${nameNode}/${outputPath}/publication - - - - - - - - ${nameNode}/${sourcePath}/dataset - ${nameNode}/${outputPath}/dataset - - - - - - - - ${nameNode}/${sourcePath}/otherresearchproduct - ${nameNode}/${outputPath}/otherresearchproduct - - - - - - - - ${nameNode}/${sourcePath}/software - ${nameNode}/${outputPath}/software - - - - - - - - ${nameNode}/${sourcePath}/organization - ${nameNode}/${outputPath}/organization - - - - - - - - ${nameNode}/${sourcePath}/project - ${nameNode}/${outputPath}/project - - - - - - - - ${nameNode}/${sourcePath}/datasource - ${nameNode}/${outputPath}/datasource - - - - - - @@ -138,10 +66,9 @@ --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} --sourcePath${sourcePath} - --hive_metastore_uris${hive_metastore_uris} - --datasourceOrganizationPath${workingDir}/preparedInfo/datasourceOrganization - --alreadyLinkedPath${workingDir}/preparedInfo/alreadyLinked + --workingPath${workingDir}/affiliationInstRepo --blacklist${blacklist} + --hive_metastore_uris${hive_metastore_uris} @@ -173,9 +100,9 @@ --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} --sourcePath${sourcePath}/publication - --outputPath${outputPath}/relation - --datasourceOrganizationPath${workingDir}/preparedInfo/datasourceOrganization - --alreadyLinkedPath${workingDir}/preparedInfo/alreadyLinked + --outputPath${workingDir}/affiliationInstRepo/publication/relation + --datasourceOrganizationPath${workingDir}/affiliationInstRepo/preparedInfo/datasourceOrganization + --alreadyLinkedPath${workingDir}/affiliationInstRepo/preparedInfo/alreadyLinked --hive_metastore_uris${hive_metastore_uris} --resultTableNameeu.dnetlib.dhp.schema.oaf.Publication @@ -202,9 +129,9 @@ --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} --sourcePath${sourcePath}/dataset - --outputPath${outputPath}/relation - --datasourceOrganizationPath${workingDir}/preparedInfo/datasourceOrganization - --alreadyLinkedPath${workingDir}/preparedInfo/alreadyLinked + --outputPath${workingDir}/affiliationInstRepo/dataset/relation + --datasourceOrganizationPath${workingDir}/affiliationInstRepo/preparedInfo/datasourceOrganization + --alreadyLinkedPath${workingDir}/affiliationInstRepo/preparedInfo/alreadyLinked --hive_metastore_uris${hive_metastore_uris} --resultTableNameeu.dnetlib.dhp.schema.oaf.Dataset @@ -231,9 +158,9 @@ --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} --sourcePath${sourcePath}/otherresearchproduct - --outputPath${outputPath}/relation - --datasourceOrganizationPath${workingDir}/preparedInfo/datasourceOrganization - --alreadyLinkedPath${workingDir}/preparedInfo/alreadyLinked + --outputPath${workingDir}/affiliationInstRepo/otherresearchproduct/relation + --datasourceOrganizationPath${workingDir}/affiliationInstRepo/preparedInfo/datasourceOrganization + --alreadyLinkedPath${workingDir}/affiliationInstRepo/preparedInfo/alreadyLinked --hive_metastore_uris${hive_metastore_uris} --resultTableNameeu.dnetlib.dhp.schema.oaf.OtherResearchProduct @@ -260,9 +187,9 @@ --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} --sourcePath${sourcePath}/software - --outputPath${outputPath}/relation - --datasourceOrganizationPath${workingDir}/preparedInfo/datasourceOrganization - --alreadyLinkedPath${workingDir}/preparedInfo/alreadyLinked + --outputPath${workingDir}/affiliationInstRepo/software/relation + --datasourceOrganizationPath${workingDir}/affiliationInstRepo/preparedInfo/datasourceOrganization + --alreadyLinkedPath${workingDir}/affiliationInstRepo/preparedInfo/alreadyLinked --hive_metastore_uris${hive_metastore_uris} --resultTableNameeu.dnetlib.dhp.schema.oaf.Software @@ -270,7 +197,32 @@ - + + + + + yarn + cluster + append new relations + eu.dnetlib.dhp.resulttoorganizationfrominstrepo.AppendNewRelations + dhp-enrichment-${projectVersion}.jar + + --executor-cores=${sparkExecutorCores} + --executor-memory=${sparkExecutorMemory} + --driver-memory=${sparkDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + --conf spark.dynamicAllocation.enabled=true + --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} + + --outputPath${sourcePath}/relation + --sourcePath${workingDir}/affiliationInstRepo/ + + + + diff --git a/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/bulktag/BulkTagJobTest.java b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/bulktag/BulkTagJobTest.java index 660a55472..743e62b5f 100644 --- a/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/bulktag/BulkTagJobTest.java +++ b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/bulktag/BulkTagJobTest.java @@ -31,8 +31,6 @@ public class BulkTagJobTest { private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); - public static final String MOCK_IS_LOOK_UP_URL = "BASEURL:8280/is/services/isLookUp"; - public static final String pathMap = "{ \"author\" : \"$['author'][*]['fullname']\"," + " \"title\" : \"$['title'][*]['value']\"," + " \"orcid\" : \"$['author'][*]['pid'][*][?(@['key']=='ORCID')]['value']\"," @@ -42,7 +40,9 @@ public class BulkTagJobTest { "\"fos\" : \"$['subject'][?(@['qualifier']['classid']=='FOS')].value\"," + "\"sdg\" : \"$['subject'][?(@['qualifier']['classid']=='SDG')].value\"," + "\"hostedby\" : \"$['instance'][*]['hostedby']['key']\" , " + - "\"collectedfrom\" : \"$['instance'][*]['collectedfrom']['key']\"} "; + "\"collectedfrom\" : \"$['instance'][*]['collectedfrom']['key']\"," + + "\"publisher\":\"$['publisher'].value\"," + + "\"publicationyear\":\"$['dateofacceptance'].value\"} "; private static SparkSession spark; @@ -98,14 +98,11 @@ public class BulkTagJobTest { SparkBulkTagJob .main( new String[] { - "-isTest", Boolean.TRUE.toString(), "-isSparkSessionManaged", Boolean.FALSE.toString(), "-sourcePath", - getClass().getResource("/eu/dnetlib/dhp/bulktag/sample/dataset/no_updates").getPath(), + getClass().getResource("/eu/dnetlib/dhp/bulktag/sample/dataset/no_updates/").getPath(), "-taggingConf", taggingConf, - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.Dataset", - "-outputPath", workingDir.toString() + "/dataset", - "-isLookUpUrl", MOCK_IS_LOOK_UP_URL, + "-outputPath", workingDir.toString() + "/", "-pathMap", pathMap }); @@ -133,19 +130,16 @@ public class BulkTagJobTest { @Test void bulktagBySubjectNoPreviousContextTest() throws Exception { final String sourcePath = getClass() - .getResource("/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/nocontext") + .getResource("/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/nocontext/") .getPath(); final String pathMap = BulkTagJobTest.pathMap; SparkBulkTagJob .main( new String[] { - "-isTest", Boolean.TRUE.toString(), "-isSparkSessionManaged", Boolean.FALSE.toString(), "-sourcePath", sourcePath, "-taggingConf", taggingConf, - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.Dataset", - "-outputPath", workingDir.toString() + "/dataset", - "-isLookUpUrl", MOCK_IS_LOOK_UP_URL, + "-outputPath", workingDir.toString() + "/", "-pathMap", pathMap }); @@ -230,19 +224,19 @@ public class BulkTagJobTest { void bulktagBySubjectPreviousContextNoProvenanceTest() throws Exception { final String sourcePath = getClass() .getResource( - "/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/contextnoprovenance") + "/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/contextnoprovenance/") .getPath(); final String pathMap = BulkTagJobTest.pathMap; SparkBulkTagJob .main( new String[] { - "-isTest", Boolean.TRUE.toString(), + "-isSparkSessionManaged", Boolean.FALSE.toString(), "-sourcePath", sourcePath, "-taggingConf", taggingConf, - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.Dataset", - "-outputPath", workingDir.toString() + "/dataset", - "-isLookUpUrl", MOCK_IS_LOOK_UP_URL, + + "-outputPath", workingDir.toString() + "/", + "-pathMap", pathMap }); @@ -311,18 +305,18 @@ public class BulkTagJobTest { @Test void bulktagByDatasourceTest() throws Exception { final String sourcePath = getClass() - .getResource("/eu/dnetlib/dhp/bulktag/sample/publication/update_datasource") + .getResource("/eu/dnetlib/dhp/bulktag/sample/publication/update_datasource/") .getPath(); SparkBulkTagJob .main( new String[] { - "-isTest", Boolean.TRUE.toString(), + "-isSparkSessionManaged", Boolean.FALSE.toString(), "-sourcePath", sourcePath, "-taggingConf", taggingConf, - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.Publication", - "-outputPath", workingDir.toString() + "/publication", - "-isLookUpUrl", MOCK_IS_LOOK_UP_URL, + + "-outputPath", workingDir.toString() + "/", + "-pathMap", pathMap }); @@ -384,25 +378,25 @@ public class BulkTagJobTest { void bulktagByZenodoCommunityTest() throws Exception { final String sourcePath = getClass() .getResource( - "/eu/dnetlib/dhp/bulktag/sample/otherresearchproduct/update_zenodocommunity") + "/eu/dnetlib/dhp/bulktag/sample/otherresearchproduct/update_zenodocommunity/") .getPath(); SparkBulkTagJob .main( new String[] { - "-isTest", Boolean.TRUE.toString(), + "-isSparkSessionManaged", Boolean.FALSE.toString(), "-sourcePath", sourcePath, "-taggingConf", taggingConf, - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.OtherResearchProduct", - "-outputPath", workingDir.toString() + "/orp", - "-isLookUpUrl", MOCK_IS_LOOK_UP_URL, + + "-outputPath", workingDir.toString() + "/", + "-pathMap", pathMap }); final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); JavaRDD tmp = sc - .textFile(workingDir.toString() + "/orp") + .textFile(workingDir.toString() + "/otherresearchproduct") .map(item -> OBJECT_MAPPER.readValue(item, OtherResearchProduct.class)); Assertions.assertEquals(10, tmp.count()); @@ -505,18 +499,18 @@ public class BulkTagJobTest { @Test void bulktagBySubjectDatasourceTest() throws Exception { final String sourcePath = getClass() - .getResource("/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject_datasource") + .getResource("/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject_datasource/") .getPath(); SparkBulkTagJob .main( new String[] { - "-isTest", Boolean.TRUE.toString(), + "-isSparkSessionManaged", Boolean.FALSE.toString(), "-sourcePath", sourcePath, "-taggingConf", taggingConf, - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.Dataset", - "-outputPath", workingDir.toString() + "/dataset", - "-isLookUpUrl", MOCK_IS_LOOK_UP_URL, + + "-outputPath", workingDir.toString() + "/", + "-pathMap", pathMap }); @@ -539,6 +533,7 @@ public class BulkTagJobTest { + "where MyD.inferenceprovenance = 'bulktagging'"; org.apache.spark.sql.Dataset idExplodeCommunity = spark.sql(query); + Assertions.assertEquals(7, idExplodeCommunity.count()); Assertions @@ -636,14 +631,14 @@ public class BulkTagJobTest { SparkBulkTagJob .main( new String[] { - "-isTest", Boolean.TRUE.toString(), + "-isSparkSessionManaged", Boolean.FALSE.toString(), "-sourcePath", - getClass().getResource("/eu/dnetlib/dhp/bulktag/sample/software/software_10.json.gz").getPath(), + getClass().getResource("/eu/dnetlib/dhp/bulktag/sample/software/").getPath(), "-taggingConf", taggingConf, - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.Software", - "-outputPath", workingDir.toString() + "/software", - "-isLookUpUrl", MOCK_IS_LOOK_UP_URL, + + "-outputPath", workingDir.toString() + "/", + "-pathMap", pathMap }); @@ -732,18 +727,18 @@ public class BulkTagJobTest { final String sourcePath = getClass() .getResource( - "/eu/dnetlib/dhp/bulktag/sample/dataset/update_datasourcewithconstraints") + "/eu/dnetlib/dhp/bulktag/sample/dataset/update_datasourcewithconstraints/") .getPath(); SparkBulkTagJob .main( new String[] { - "-isTest", Boolean.TRUE.toString(), + "-isSparkSessionManaged", Boolean.FALSE.toString(), "-sourcePath", sourcePath, "-taggingConf", taggingConf, - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.Dataset", - "-outputPath", workingDir.toString() + "/dataset", - "-isLookUpUrl", MOCK_IS_LOOK_UP_URL, + + "-outputPath", workingDir.toString() + "/", + "-pathMap", pathMap }); @@ -774,19 +769,19 @@ public class BulkTagJobTest { void bulkTagOtherJupyter() throws Exception { final String sourcePath = getClass() .getResource( - "/eu/dnetlib/dhp/eosctag/jupyter/otherresearchproduct") + "/eu/dnetlib/dhp/eosctag/jupyter/") .getPath(); SparkBulkTagJob .main( new String[] { - "-isTest", Boolean.TRUE.toString(), + "-isSparkSessionManaged", Boolean.FALSE.toString(), "-sourcePath", sourcePath, "-taggingConf", taggingConf, - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.OtherResearchProduct", - "-outputPath", workingDir.toString() + "/otherresearchproduct", - "-isLookUpUrl", MOCK_IS_LOOK_UP_URL, + + "-outputPath", workingDir.toString() + "/", + "-pathMap", pathMap }); @@ -829,18 +824,18 @@ public class BulkTagJobTest { public void bulkTagDatasetJupyter() throws Exception { final String sourcePath = getClass() .getResource( - "/eu/dnetlib/dhp/eosctag/jupyter/dataset") + "/eu/dnetlib/dhp/eosctag/jupyter/") .getPath(); SparkBulkTagJob .main( new String[] { - "-isTest", Boolean.TRUE.toString(), + "-isSparkSessionManaged", Boolean.FALSE.toString(), "-sourcePath", sourcePath, "-taggingConf", taggingConf, - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.Dataset", - "-outputPath", workingDir.toString() + "/dataset", - "-isLookUpUrl", MOCK_IS_LOOK_UP_URL, + + "-outputPath", workingDir.toString() + "/", + "-pathMap", pathMap }); @@ -878,18 +873,18 @@ public class BulkTagJobTest { final String sourcePath = getClass() .getResource( - "/eu/dnetlib/dhp/eosctag/jupyter/software") + "/eu/dnetlib/dhp/eosctag/jupyter/") .getPath(); SparkBulkTagJob .main( new String[] { - "-isTest", Boolean.TRUE.toString(), + "-isSparkSessionManaged", Boolean.FALSE.toString(), "-sourcePath", sourcePath, "-taggingConf", taggingConf, - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.Software", - "-outputPath", workingDir.toString() + "/software", - "-isLookUpUrl", MOCK_IS_LOOK_UP_URL, + + "-outputPath", workingDir.toString() + "/", + "-pathMap", pathMap }); @@ -1096,18 +1091,18 @@ public class BulkTagJobTest { void galaxyOtherTest() throws Exception { final String sourcePath = getClass() .getResource( - "/eu/dnetlib/dhp/eosctag/galaxy/otherresearchproduct") + "/eu/dnetlib/dhp/eosctag/galaxy/") .getPath(); SparkBulkTagJob .main( new String[] { - "-isTest", Boolean.TRUE.toString(), + "-isSparkSessionManaged", Boolean.FALSE.toString(), "-sourcePath", sourcePath, "-taggingConf", taggingConf, - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.OtherResearchProduct", - "-outputPath", workingDir.toString() + "/otherresearchproduct", - "-isLookUpUrl", MOCK_IS_LOOK_UP_URL, + + "-outputPath", workingDir.toString() + "/", + "-pathMap", pathMap }); @@ -1214,18 +1209,18 @@ public class BulkTagJobTest { void galaxySoftwareTest() throws Exception { final String sourcePath = getClass() .getResource( - "/eu/dnetlib/dhp/eosctag/galaxy/software") + "/eu/dnetlib/dhp/eosctag/galaxy/") .getPath(); SparkBulkTagJob .main( new String[] { - "-isTest", Boolean.TRUE.toString(), + "-isSparkSessionManaged", Boolean.FALSE.toString(), "-sourcePath", sourcePath, "-taggingConf", taggingConf, - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.Software", - "-outputPath", workingDir.toString() + "/software", - "-isLookUpUrl", MOCK_IS_LOOK_UP_URL, + + "-outputPath", workingDir.toString() + "/", + "-pathMap", pathMap }); @@ -1333,19 +1328,19 @@ public class BulkTagJobTest { void twitterDatasetTest() throws Exception { final String sourcePath = getClass() .getResource( - "/eu/dnetlib/dhp/eosctag/twitter/dataset") + "/eu/dnetlib/dhp/eosctag/twitter/") .getPath(); SparkBulkTagJob .main( new String[] { - "-isTest", Boolean.TRUE.toString(), + "-isSparkSessionManaged", Boolean.FALSE.toString(), "-sourcePath", sourcePath, "-taggingConf", taggingConf, - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.Dataset", - "-outputPath", workingDir.toString() + "/dataset", - "-isLookUpUrl", MOCK_IS_LOOK_UP_URL, + + "-outputPath", workingDir.toString() + "/", + "-pathMap", pathMap }); @@ -1373,19 +1368,19 @@ public class BulkTagJobTest { void twitterOtherTest() throws Exception { final String sourcePath = getClass() .getResource( - "/eu/dnetlib/dhp/eosctag/twitter/otherresearchproduct") + "/eu/dnetlib/dhp/eosctag/twitter/") .getPath(); SparkBulkTagJob .main( new String[] { - "-isTest", Boolean.TRUE.toString(), + "-isSparkSessionManaged", Boolean.FALSE.toString(), "-sourcePath", sourcePath, "-taggingConf", taggingConf, - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.OtherResearchProduct", - "-outputPath", workingDir.toString() + "/otherresearchproduct", - "-isLookUpUrl", MOCK_IS_LOOK_UP_URL, + + "-outputPath", workingDir.toString() + "/", + "-pathMap", pathMap }); @@ -1418,19 +1413,19 @@ public class BulkTagJobTest { void twitterSoftwareTest() throws Exception { final String sourcePath = getClass() .getResource( - "/eu/dnetlib/dhp/eosctag/twitter/software") + "/eu/dnetlib/dhp/eosctag/twitter/") .getPath(); SparkBulkTagJob .main( new String[] { - "-isTest", Boolean.TRUE.toString(), + "-isSparkSessionManaged", Boolean.FALSE.toString(), "-sourcePath", sourcePath, "-taggingConf", taggingConf, - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.Software", - "-outputPath", workingDir.toString() + "/software", - "-isLookUpUrl", MOCK_IS_LOOK_UP_URL, + + "-outputPath", workingDir.toString() + "/", + "-pathMap", pathMap }); @@ -1455,19 +1450,19 @@ public class BulkTagJobTest { void EoscContextTagTest() throws Exception { final String sourcePath = getClass() .getResource( - "/eu/dnetlib/dhp/bulktag/eosc/dataset/dataset_10.json") + "/eu/dnetlib/dhp/bulktag/eosc/dataset/") .getPath(); SparkBulkTagJob .main( new String[] { - "-isTest", Boolean.TRUE.toString(), + "-isSparkSessionManaged", Boolean.FALSE.toString(), "-sourcePath", sourcePath, "-taggingConf", taggingConf, - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.Dataset", - "-outputPath", workingDir.toString() + "/dataset", - "-isLookUpUrl", MOCK_IS_LOOK_UP_URL, + + "-outputPath", workingDir.toString() + "/", + "-pathMap", pathMap }); @@ -1533,16 +1528,16 @@ public class BulkTagJobTest { SparkBulkTagJob .main( new String[] { - "-isTest", Boolean.TRUE.toString(), + "-isSparkSessionManaged", Boolean.FALSE.toString(), "-sourcePath", getClass() - .getResource("/eu/dnetlib/dhp/bulktag/sample/dataset/update_datasourcewithconstraints") + .getResource("/eu/dnetlib/dhp/bulktag/sample/dataset/update_datasourcewithconstraints/") .getPath(), "-taggingConf", taggingConf, - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.Dataset", - "-outputPath", workingDir.toString() + "/dataset", - "-isLookUpUrl", MOCK_IS_LOOK_UP_URL, + + "-outputPath", workingDir.toString() + "/", + "-pathMap", pathMap }); final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); @@ -1568,4 +1563,41 @@ public class BulkTagJobTest { } + @Test + void newConfTest() throws Exception { + final String pathMap = BulkTagJobTest.pathMap; + SparkBulkTagJob + .main( + new String[] { + + "-isSparkSessionManaged", Boolean.FALSE.toString(), + "-sourcePath", + getClass().getResource("/eu/dnetlib/dhp/bulktag/sample/dataset/no_updates/").getPath(), + "-outputPath", workingDir.toString() + "/", +// "-baseURL", "https://services.openaire.eu/openaire/community/", + "-pathMap", pathMap, + "-taggingConf", taggingConf + }); + + final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); + + JavaRDD tmp = sc + .textFile(workingDir.toString() + "/dataset") + .map(item -> OBJECT_MAPPER.readValue(item, Dataset.class)); + + Assertions.assertEquals(10, tmp.count()); + org.apache.spark.sql.Dataset verificationDataset = spark + .createDataset(tmp.rdd(), Encoders.bean(Dataset.class)); + + verificationDataset.createOrReplaceTempView("dataset"); + + String query = "select id, MyT.id community " + + "from dataset " + + "lateral view explode(context) c as MyT " + + "lateral view explode(MyT.datainfo) d as MyD " + + "where MyD.inferenceprovenance = 'bulktagging'"; + + Assertions.assertEquals(0, spark.sql(query).count()); + } + } diff --git a/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/bulktag/CommunityConfigurationFactoryTest.java b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/bulktag/CommunityConfigurationFactoryTest.java index c8fd62c8e..5f0b1d7f1 100644 --- a/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/bulktag/CommunityConfigurationFactoryTest.java +++ b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/bulktag/CommunityConfigurationFactoryTest.java @@ -47,7 +47,7 @@ class CommunityConfigurationFactoryTest { sc.setVerb("not_contains"); sc.setField("contributor"); sc.setValue("DARIAH"); - sc.setSelection(resolver.getSelectionCriteria(sc.getVerb(), sc.getValue())); + sc.setSelection(resolver);// .getSelectionCriteria(sc.getVerb(), sc.getValue())); String metadata = "This work has been partially supported by DARIAH-EU infrastructure"; Assertions.assertFalse(sc.verifyCriteria(metadata)); } diff --git a/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/entitytoorganizationfromsemrel/SparkJobTest.java b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/entitytoorganizationfromsemrel/SparkJobTest.java index 2e75c75ad..db917658a 100644 --- a/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/entitytoorganizationfromsemrel/SparkJobTest.java +++ b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/entitytoorganizationfromsemrel/SparkJobTest.java @@ -11,8 +11,10 @@ import org.apache.commons.io.FileUtils; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; +import org.apache.spark.sql.SaveMode; import org.apache.spark.sql.SparkSession; import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -58,6 +60,11 @@ public class SparkJobTest { .getOrCreate(); } + @AfterEach + public void afterEach() throws IOException { + FileUtils.deleteDirectory(workingDir.toFile()); + } + @AfterAll public static void afterAll() throws IOException { FileUtils.deleteDirectory(workingDir.toFile()); @@ -91,20 +98,23 @@ public class SparkJobTest { readPath(spark, leavesPath, Leaves.class) .write() + .mode(SaveMode.Overwrite) .option("compression", "gzip") .json(workingDir.toString() + "/leavesInput"); readPath(spark, resultOrgPath, KeyValueSet.class) .write() + .mode(SaveMode.Overwrite) .option("compression", "gzip") .json(workingDir.toString() + "/orgsInput"); readPath(spark, projectOrgPath, KeyValueSet.class) .write() + .mode(SaveMode.Overwrite) .option("compression", "gzip") .json(workingDir.toString() + "/projectInput"); - SparkResultToOrganizationFromSemRel + SparkEntityToOrganizationFromSemRel .main( new String[] { @@ -369,20 +379,23 @@ public class SparkJobTest { readPath(spark, leavesPath, Leaves.class) .write() + .mode(SaveMode.Overwrite) .option("compression", "gzip") .json(workingDir.toString() + "/leavesInput"); readPath(spark, resultOrgPath, KeyValueSet.class) .write() + .mode(SaveMode.Overwrite) .option("compression", "gzip") .json(workingDir.toString() + "/orgsInput"); readPath(spark, projectOrgPath, KeyValueSet.class) .write() + .mode(SaveMode.Overwrite) .option("compression", "gzip") .json(workingDir.toString() + "/projectInput"); - SparkResultToOrganizationFromSemRel + SparkEntityToOrganizationFromSemRel .main( new String[] { @@ -649,20 +662,23 @@ public class SparkJobTest { readPath(spark, leavesPath, Leaves.class) .write() + .mode(SaveMode.Overwrite) .option("compression", "gzip") .json(workingDir.toString() + "/leavesInput"); readPath(spark, resultOrgPath, KeyValueSet.class) .write() + .mode(SaveMode.Overwrite) .option("compression", "gzip") .json(workingDir.toString() + "/orgsInput"); readPath(spark, projectOrgPath, KeyValueSet.class) .write() + .mode(SaveMode.Overwrite) .option("compression", "gzip") .json(workingDir.toString() + "/projectInput"); - SparkResultToOrganizationFromSemRel + SparkEntityToOrganizationFromSemRel .main( new String[] { diff --git a/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/orcidtoresultfromsemrel/OrcidPropagationJobTest.java b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/orcidtoresultfromsemrel/OrcidPropagationJobTest.java index 85db7ecf9..40849132e 100644 --- a/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/orcidtoresultfromsemrel/OrcidPropagationJobTest.java +++ b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/orcidtoresultfromsemrel/OrcidPropagationJobTest.java @@ -19,10 +19,8 @@ import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.cloudera.org.codehaus.jackson.map.jsontype.impl.ClassNameIdResolver; import com.fasterxml.jackson.databind.ObjectMapper; -import eu.dnetlib.dhp.PropagationConstant; import eu.dnetlib.dhp.schema.common.ModelConstants; import eu.dnetlib.dhp.schema.oaf.Dataset; diff --git a/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttocommunityfromorganization/ResultToCommunityJobTest.java b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttocommunityfromorganization/ResultToCommunityJobTest.java index 4dd8b976c..6440ded92 100644 --- a/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttocommunityfromorganization/ResultToCommunityJobTest.java +++ b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttocommunityfromorganization/ResultToCommunityJobTest.java @@ -72,15 +72,13 @@ public class ResultToCommunityJobTest { SparkResultToCommunityFromOrganizationJob .main( new String[] { - "-isTest", Boolean.TRUE.toString(), + "-isSparkSessionManaged", Boolean.FALSE.toString(), "-sourcePath", getClass() - .getResource("/eu/dnetlib/dhp/resulttocommunityfromorganization/sample") + .getResource("/eu/dnetlib/dhp/resulttocommunityfromorganization/sample/") .getPath(), - "-hive_metastore_uris", "", - "-saveGraph", "true", - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.Dataset", - "-outputPath", workingDir.toString() + "/dataset", + + "-outputPath", workingDir.toString() + "/", "-preparedInfoPath", preparedInfoPath }); diff --git a/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttocommunityfromproject/ResultToCommunityJobTest.java b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttocommunityfromproject/ResultToCommunityJobTest.java new file mode 100644 index 000000000..5642501b3 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttocommunityfromproject/ResultToCommunityJobTest.java @@ -0,0 +1,133 @@ + +package eu.dnetlib.dhp.resulttocommunityfromproject; + +import static org.apache.spark.sql.functions.desc; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; + +import org.apache.commons.io.FileUtils; +import org.apache.spark.SparkConf; +import org.apache.spark.api.java.JavaRDD; +import org.apache.spark.api.java.JavaSparkContext; +import org.apache.spark.sql.Encoders; +import org.apache.spark.sql.Row; +import org.apache.spark.sql.SparkSession; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import eu.dnetlib.dhp.orcidtoresultfromsemrel.OrcidPropagationJobTest; +import eu.dnetlib.dhp.resulttocommunityfromorganization.SparkResultToCommunityFromOrganizationJob; +import eu.dnetlib.dhp.schema.oaf.Context; +import eu.dnetlib.dhp.schema.oaf.Dataset; + +public class ResultToCommunityJobTest { + + private static final Logger log = LoggerFactory.getLogger(ResultToCommunityJobTest.class); + + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + + private static SparkSession spark; + + private static Path workingDir; + + @BeforeAll + public static void beforeAll() throws IOException { + workingDir = Files.createTempDirectory(ResultToCommunityJobTest.class.getSimpleName()); + log.info("using work dir {}", workingDir); + + SparkConf conf = new SparkConf(); + conf.setAppName(ResultToCommunityJobTest.class.getSimpleName()); + + conf.setMaster("local[*]"); + conf.set("spark.driver.host", "localhost"); + conf.set("hive.metastore.local", "true"); + conf.set("spark.ui.enabled", "false"); + conf.set("spark.sql.warehouse.dir", workingDir.toString()); + conf.set("hive.metastore.warehouse.dir", workingDir.resolve("warehouse").toString()); + + spark = SparkSession + .builder() + .appName(OrcidPropagationJobTest.class.getSimpleName()) + .config(conf) + .getOrCreate(); + } + + @AfterAll + public static void afterAll() throws IOException { + FileUtils.deleteDirectory(workingDir.toFile()); + spark.stop(); + } + + @Test + void testSparkResultToCommunityFromProjectJob() throws Exception { + final String preparedInfoPath = getClass() + .getResource("/eu/dnetlib/dhp/resulttocommunityfromproject/preparedInfo") + .getPath(); + SparkResultToCommunityFromProject + .main( + new String[] { + + "-isSparkSessionManaged", Boolean.FALSE.toString(), + "-sourcePath", getClass() + .getResource("/eu/dnetlib/dhp/resulttocommunityfromproject/sample/") + .getPath(), + + "-outputPath", workingDir.toString() + "/", + "-preparedInfoPath", preparedInfoPath + }); + + final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); + + JavaRDD tmp = sc + .textFile(workingDir.toString() + "/dataset") + .map(item -> OBJECT_MAPPER.readValue(item, Dataset.class)); + + Assertions.assertEquals(10, tmp.count()); + /** + * {"resultId":"50|57a035e5b1ae::d5be548ca7ae489d762f893be67af52f","communityList":["aurora"]} + * {"resultId":"50|57a035e5b1ae::a77232ffca9115fcad51c3503dbc7e3e","communityList":["aurora"]} + * {"resultId":"50|57a035e5b1ae::803aaad4decab7e27cd4b52a1931b3a1","communityList":["sdsn-gr"]} + * {"resultId":"50|57a035e5b1ae::a02e9e4087bca50687731ae5c765b5e1","communityList":["netherlands"]} + */ + List context = tmp + .filter(r -> r.getId().equals("50|57a035e5b1ae::d5be548ca7ae489d762f893be67af52f")) + .first() + .getContext(); + Assertions.assertTrue(context.stream().anyMatch(c -> containsResultCommunityProject(c))); + + context = tmp + .filter(r -> r.getId().equals("50|57a035e5b1ae::a77232ffca9115fcad51c3503dbc7e3e")) + .first() + .getContext(); + Assertions.assertTrue(context.stream().anyMatch(c -> containsResultCommunityProject(c))); + + Assertions + .assertEquals( + 0, tmp.filter(r -> r.getId().equals("50|57a035e5b1ae::803aaad4decab7e27cd4b52a1931b3a1")).count()); + + Assertions + .assertEquals( + 0, tmp.filter(r -> r.getId().equals("50|57a035e5b1ae::a02e9e4087bca50687731ae5c765b5e1")).count()); + + Assertions + .assertEquals( + 2, tmp.filter(r -> r.getContext().stream().anyMatch(c -> c.getId().equals("aurora"))).count()); + + } + + private static boolean containsResultCommunityProject(Context c) { + return c + .getDataInfo() + .stream() + .anyMatch(di -> di.getProvenanceaction().getClassid().equals("result:community:project")); + } +} diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/communityconfiguration/tagging_conf_remove.xml b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/communityconfiguration/tagging_conf_remove.xml index edd6c7e0a..21c7d452f 100644 --- a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/communityconfiguration/tagging_conf_remove.xml +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/communityconfiguration/tagging_conf_remove.xml @@ -26,7 +26,7 @@ - re3data_____::a507cdacc5bbcc08761c92185dee5cab + 10|re3data_____::a507cdacc5bbcc08761c92185dee5cab @@ -140,39 +140,39 @@ - re3data_____::9ebe127e5f3a0bf401875690f3bb6b81 + 10|re3data_____::9ebe127e5f3a0bf401875690f3bb6b81 - doajarticles::c6cd4b532e12868c1d760a8d7cda6815 + 10|doajarticles::c6cd4b532e12868c1d760a8d7cda6815 - doajarticles::a6de4499bb87bf3c01add0a9e2c9ed0b + 10|doajarticles::a6de4499bb87bf3c01add0a9e2c9ed0b - doajarticles::6eb31d13b12bc06bbac06aef63cf33c9 + 10|doajarticles::6eb31d13b12bc06bbac06aef63cf33c9 - doajarticles::0da84e9dfdc8419576169e027baa8028 + 10|doajarticles::0da84e9dfdc8419576169e027baa8028 - re3data_____::84e123776089ce3c7a33db98d9cd15a8 + 10|re3data_____::84e123776089ce3c7a33db98d9cd15a8 - openaire____::c5502a43e76feab55dd00cf50f519125 + 10|openaire____::c5502a43e76feab55dd00cf50f519125 - re3data_____::a48f09c562b247a9919acfe195549b47 + 10|re3data_____::a48f09c562b247a9919acfe195549b47 - opendoar____::97275a23ca44226c9964043c8462be96 + 10|opendoar____::97275a23ca44226c9964043c8462be96 @@ -287,55 +287,55 @@ - doajarticles::8cec81178926caaca531afbd8eb5d64c + 10|doajarticles::8cec81178926caaca531afbd8eb5d64c - doajarticles::0f7a7f30b5400615cae1829f3e743982 + 10|doajarticles::0f7a7f30b5400615cae1829f3e743982 - doajarticles::9740f7f5af3e506d2ad2c215cdccd51a + 10|doajarticles::9740f7f5af3e506d2ad2c215cdccd51a - doajarticles::9f3fbaae044fa33cb7069b72935a3254 + 10|doajarticles::9f3fbaae044fa33cb7069b72935a3254 - doajarticles::cb67f33eb9819f5c624ce0313957f6b3 + 10|doajarticles::cb67f33eb9819f5c624ce0313957f6b3 - doajarticles::e21c97cbb7a209afc75703681c462906 + 10|doajarticles::e21c97cbb7a209afc75703681c462906 - doajarticles::554cde3be9e5c4588b4c4f9f503120cb + 10|doajarticles::554cde3be9e5c4588b4c4f9f503120cb - tubitakulakb::11e22f49e65b9fd11d5b144b93861a1b + 10|tubitakulakb::11e22f49e65b9fd11d5b144b93861a1b - doajarticles::57c5d3837da943e93b28ec4db82ec7a5 + 10|doajarticles::57c5d3837da943e93b28ec4db82ec7a5 - doajarticles::a186f5ddb8e8c7ecc992ef51cf3315b1 + 10|doajarticles::a186f5ddb8e8c7ecc992ef51cf3315b1 - doajarticles::e21c97cbb7a209afc75703681c462906 + 10|doajarticles::e21c97cbb7a209afc75703681c462906 - doajarticles::dca64612dfe0963fffc119098a319957 + 10|doajarticles::dca64612dfe0963fffc119098a319957 - doajarticles::dd70e44479f0ade25aa106aef3e87a0a + 10|doajarticles::dd70e44479f0ade25aa106aef3e87a0a @@ -406,27 +406,27 @@ - re3data_____::5b9bf9171d92df854cf3c520692e9122 + 10|re3data_____::5b9bf9171d92df854cf3c520692e9122 - doajarticles::c7d3de67dc77af72f6747157441252ec + 10|doajarticles::c7d3de67dc77af72f6747157441252ec - re3data_____::8515794670370f49c1d176c399c714f5 + 10|re3data_____::8515794670370f49c1d176c399c714f5 - doajarticles::d640648c84b10d425f96f11c3de468f3 + 10|doajarticles::d640648c84b10d425f96f11c3de468f3 - doajarticles::0c0e74daa5d95504eade9c81ebbd5b8a + 10|doajarticles::0c0e74daa5d95504eade9c81ebbd5b8a - rest________::fb1a3d4523c95e63496e3bc7ba36244b + 10|rest________::fb1a3d4523c95e63496e3bc7ba36244b @@ -743,27 +743,27 @@ - opendoar____::1a551829d50f1400b0dab21fdd969c04 + 10|opendoar____::1a551829d50f1400b0dab21fdd969c04 - opendoar____::49af6c4e558a7569d80eee2e035e2bd7 + 10|opendoar____::49af6c4e558a7569d80eee2e035e2bd7 - opendoar____::0266e33d3f546cb5436a10798e657d97 + 10|opendoar____::0266e33d3f546cb5436a10798e657d97 - opendoar____::fd4c2dc64ccb8496e6f1f94c85f30d06 + 10|opendoar____::fd4c2dc64ccb8496e6f1f94c85f30d06 - opendoar____::41bfd20a38bb1b0bec75acf0845530a7 + 10|opendoar____::41bfd20a38bb1b0bec75acf0845530a7 - opendoar____::87ae6fb631f7c8a627e8e28785d9992d + 10|opendoar____::87ae6fb631f7c8a627e8e28785d9992d @@ -983,11 +983,11 @@ - opendoar____::7e7757b1e12abcb736ab9a754ffb617a + 10|opendoar____::7e7757b1e12abcb736ab9a754ffb617a {"criteria":[{"constraint":[{"verb":"contains","field":"contributor","value":"DARIAH"}]}]} - opendoar____::96da2f590cd7246bbde0051047b0d6f7 + 10|opendoar____::96da2f590cd7246bbde0051047b0d6f7 {"criteria":[{"constraint":[{"verb":"contains","field":"contributor","value":"DARIAH"}]}]} @@ -1166,87 +1166,87 @@ - doajarticles::1c5bdf8fca58937894ad1441cca99b76 + 10|doajarticles::1c5bdf8fca58937894ad1441cca99b76 - doajarticles::b37a634324a45c821687e6e80e6f53b4 + 10|doajarticles::b37a634324a45c821687e6e80e6f53b4 - doajarticles::4bf64f2a104040e4e055cd9594b2d77c + 10|doajarticles::4bf64f2a104040e4e055cd9594b2d77c - doajarticles::479ca537c12755d1868bbf02938a900c + 10|doajarticles::479ca537c12755d1868bbf02938a900c - doajarticles::55f31df96a60e2309f45b7c265fcf7a2 + 10|doajarticles::55f31df96a60e2309f45b7c265fcf7a2 - doajarticles::c52a09891a5301f9986ebbfe3761810c + 10|doajarticles::c52a09891a5301f9986ebbfe3761810c - doajarticles::379807bc7f6c71a227ef1651462c414c + 10|doajarticles::379807bc7f6c71a227ef1651462c414c - doajarticles::36069db531a00b85a2e8fb301f4bdc19 + 10|doajarticles::36069db531a00b85a2e8fb301f4bdc19 - doajarticles::b6a898da311ded96fabf49c520b80d5d + 10|doajarticles::b6a898da311ded96fabf49c520b80d5d - doajarticles::d0753d9180b35a271d8b4a31f449749f + 10|doajarticles::d0753d9180b35a271d8b4a31f449749f - doajarticles::172050a92511838393a3fe237ae47e31 + 10|doajarticles::172050a92511838393a3fe237ae47e31 - doajarticles::301ed96c62abb160a3e29796efe5c95c + 10|doajarticles::301ed96c62abb160a3e29796efe5c95c - doajarticles::0f4f805b3d842f2c7f1b077c3426fa59 + 10|doajarticles::0f4f805b3d842f2c7f1b077c3426fa59 - doajarticles::ba73728b84437b8d48ae287b867c7215 + 10|doajarticles::ba73728b84437b8d48ae287b867c7215 - doajarticles::86faef424d804309ccf45f692523aa48 + 10|doajarticles::86faef424d804309ccf45f692523aa48 - doajarticles::73bd758fa41671de70964c3ecba013af + 10|doajarticles::73bd758fa41671de70964c3ecba013af - doajarticles::e661fc0bdb24af42b740a08f0ddc6cf4 + 10|doajarticles::e661fc0bdb24af42b740a08f0ddc6cf4 - doajarticles::a6d3052047d5dbfbd43d95b4afb0f3d7 + 10|doajarticles::a6d3052047d5dbfbd43d95b4afb0f3d7 - doajarticles::ca61df07089acc53a1569bde6673d82a + 10|doajarticles::ca61df07089acc53a1569bde6673d82a - doajarticles::237dd6f1606600459d0297abd8ed9976 + 10|doajarticles::237dd6f1606600459d0297abd8ed9976 - doajarticles::fba6191177ede7c51ea1cdf58eae7f8b + 10|doajarticles::fba6191177ede7c51ea1cdf58eae7f8b @@ -1345,87 +1345,87 @@ - doajarticles::c6f0ed5fa41e98863e7c73501fe4bd6d + 10|doajarticles::c6f0ed5fa41e98863e7c73501fe4bd6d - doajarticles::ae4c7286c79590f19fdca670156ce816 + 10|doajarticles::ae4c7286c79590f19fdca670156ce816 - doajarticles::0f664bce92ce953e0c7a92068c46bfb3 + 10|doajarticles::0f664bce92ce953e0c7a92068c46bfb3 - doajarticles::00017183dc4c858fb77541985323a4ef + 10|doajarticles::00017183dc4c858fb77541985323a4ef - doajarticles::93b306f458cce3d7aaaf58c0a725f4f9 + 10|doajarticles::93b306f458cce3d7aaaf58c0a725f4f9 - doajarticles::9dbf8fbf3e9fe0fe1fc01e55fbd90bfc + 10|doajarticles::9dbf8fbf3e9fe0fe1fc01e55fbd90bfc - doajarticles::a2bda8785c863279bba4b8f34827b4c9 + 10|doajarticles::a2bda8785c863279bba4b8f34827b4c9 - doajarticles::019a1fcb42c3fea1c1b689df76330b58 + 10|doajarticles::019a1fcb42c3fea1c1b689df76330b58 - doajarticles::0daa8281938831e9c82bfed8b55a2975 + 10|doajarticles::0daa8281938831e9c82bfed8b55a2975 - doajarticles::f67ad6d268162079b3abd51a24468744 + 10|doajarticles::f67ad6d268162079b3abd51a24468744 - doajarticles::c6f0ed5fa41e98863e7c73501fe4bd6d + 10|doajarticles::c6f0ed5fa41e98863e7c73501fe4bd6d - doajarticles::ad114356e196a4a3d84dda59c720dacd + 10|doajarticles::ad114356e196a4a3d84dda59c720dacd - doajarticles::01e8a54fdecaaf354c67a2dd74ae7d4f + 10|doajarticles::01e8a54fdecaaf354c67a2dd74ae7d4f - doajarticles::449305f096b10a9464449ff2d0e10e06 + 10|doajarticles::449305f096b10a9464449ff2d0e10e06 - doajarticles::982c0c0ac378256254cce2fa6572bb6c + 10|doajarticles::982c0c0ac378256254cce2fa6572bb6c - doajarticles::49d6ed47138884566ce93cf0ccb12c02 + 10|doajarticles::49d6ed47138884566ce93cf0ccb12c02 - doajarticles::a98e820dbc2e8ee0fc84ab66f263267c + 10|doajarticles::a98e820dbc2e8ee0fc84ab66f263267c - doajarticles::50b1ce37427b36368f8f0f1317e47f83 + 10|doajarticles::50b1ce37427b36368f8f0f1317e47f83 - doajarticles::f0ec29b7450b2ac5d0ad45327eeb531a + 10|doajarticles::f0ec29b7450b2ac5d0ad45327eeb531a - doajarticles::d8d421d3b0349a7aaa93758b27a54e84 + 10|doajarticles::d8d421d3b0349a7aaa93758b27a54e84 - doajarticles::7ffc35ac5133da01d421ccf8af5b70bc + 10|doajarticles::7ffc35ac5133da01d421ccf8af5b70bc @@ -1454,81 +1454,81 @@ - opendoar____::358aee4cc897452c00244351e4d91f69 + 10|opendoar____::358aee4cc897452c00244351e4d91f69 {"criteria":[{"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"COVID-19"}]}, {"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"SARS-CoV-2"}]}, {"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"2019-nCoV"}}]} - re3data_____::7b0ad08687b2c960d5aeef06f811d5e6 + 10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6 {"criteria":[{"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"COVID-19"}]}, {"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"SARS-CoV-2"}]}, {"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"2019-nCoV"}]}]} - driver______::bee53aa31dc2cbb538c10c2b65fa5824 + 10|driver______::bee53aa31dc2cbb538c10c2b65fa5824 {"criteria":[{"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"COVID-19"}]}, {"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"SARS-CoV-2"}]}, {"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"2019-nCoV"}]}]} - openaire____::437f4b072b1aa198adcbc35910ff3b98 + 10|openaire____::437f4b072b1aa198adcbc35910ff3b98 {"criteria":[{"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"COVID-19"}]}, {"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"SARS-CoV-2"}]}, {"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"2019-nCoV"}]}]} - openaire____::081b82f96300b6a6e3d282bad31cb6e2 + 10|openaire____::081b82f96300b6a6e3d282bad31cb6e2 {"criteria":[{"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"COVID-19"}]}, {"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"SARS-CoV-2"}]}, {"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"2019-nCoV"}]}]} - openaire____::9e3be59865b2c1c335d32dae2fe7b254 + 10|openaire____::9e3be59865b2c1c335d32dae2fe7b254 {"criteria":[{"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"COVID-19"}]}, {"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"SARS-CoV-2"}]}, {"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"2019-nCoV"}]}]} - opendoar____::8b6dd7db9af49e67306feb59a8bdc52c + 10|opendoar____::8b6dd7db9af49e67306feb59a8bdc52c {"criteria":[{"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"COVID-19"}]}, {"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"SARS-CoV-2"}]}, {"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"2019-nCoV"}]}]} - share_______::4719356ec8d7d55d3feb384ce879ad6c + 10|share_______::4719356ec8d7d55d3feb384ce879ad6c {"criteria":[{"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"COVID-19"}]}, {"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"SARS-CoV-2"}]}, {"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"2019-nCoV"}]}]} - share_______::bbd802baad85d1fd440f32a7a3a2c2b1 + 10|share_______::bbd802baad85d1fd440f32a7a3a2c2b1 {"criteria":[{"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"COVID-19"}]}, {"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"SARS-CoV-2"}]}, {"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"2019-nCoV"}]}]} - opendoar____::6f4922f45568161a8cdf4ad2299f6d23 + 10|opendoar____::6f4922f45568161a8cdf4ad2299f6d23 {"criteria":[{"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"COVID-19"}]}, {"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"SARS-CoV-2"}]}, {"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"2019-nCoV"}]}]} - re3data_____::7980778c78fb4cf0fab13ce2159030dc + 10|re3data_____::7980778c78fb4cf0fab13ce2159030dc {"criteria":[{"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"SARS-CoV-2"}]},{"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"COVID-19"}]},{"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"2019-nCov"}]}]} - re3data_____::978378def740bbf2bfb420de868c460b + 10|re3data_____::978378def740bbf2bfb420de868c460b {"criteria":[{"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"SARS-CoV-2"}]},{"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"COVID-19"}]},{"constraint":[{"verb":"contains_caseinsensitive","field":"title","value":"2019-nCov"}]}]} diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/eosc/dataset/dataset_10.json b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/eosc/dataset/dataset similarity index 100% rename from dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/eosc/dataset/dataset_10.json rename to dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/eosc/dataset/dataset diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/eosc/dataset/otherresearchproduct b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/eosc/dataset/otherresearchproduct new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/eosc/dataset/publication b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/eosc/dataset/publication new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/eosc/dataset/software b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/eosc/dataset/software new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/no_updates/dataset b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/no_updates/dataset new file mode 100644 index 000000000..b3ac15d4c --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/no_updates/dataset @@ -0,0 +1,10 @@ +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055868909,"id":"50|od______3989::02dd5d2c222191b0b9bd4f33c8e96529","originalId":["od______3989::02dd5d2c222191b0b9bd4f33c8e96529"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[{"value":"10.4185/RLCS-2018-1243","qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofcollection":"2020-03-03T13:05:26.091Z","dateoftransformation":"2020-03-03T13:06:53.161Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:26.091Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/562","datestamp":"2018-01-23T15:06:07Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Gallardo-Camacho, Jorge","name":"Jorge","surname":"Gallardo-Camacho","rank":1,"pid":null,"affiliation":null},{"fullname":"Trujillo Fernández, José Ramón","name":"José Ramón","surname":"Trujillo Fernández","rank":2,"pid":null,"affiliation":null},{"fullname":"Jorge Alonso, Ana","name":"Ana","surname":"Jorge Alonso","rank":3,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"yihadismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"viralidad","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"vídeo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"propaganda","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"terrorismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"terrorism","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"jihadism","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"virality","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"video","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"5903 Ideologías Políticas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"6310.13 Terrorismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"El individualismo como estrategia","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Individualism as an improvised strategy","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Se analiza como el Yihadismo distribuye su mensaje propaganístico en You Tube.\nUniversidad Camilo José Cela","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"MediaLab - UCJC","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/562"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055868954,"id":"50|od______3989::05d8c751462f9bb8d2b06956dfbc5c7b","originalId":["od______3989::05d8c751462f9bb8d2b06956dfbc5c7b"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:26.079Z","dateoftransformation":"2020-03-03T13:06:53.239Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:26.079Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/227","datestamp":"2017-11-15T16:29:55Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Rico Pérez, Marta","name":"Marta","surname":"Rico Pérez","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Actividad Física y del Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Eventos deportivos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Retos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"I Congreso Nuevos Retos en los Eventos Deportivos","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"I Congreso Nuevos Retos en los Eventos Deportivos, celebrado en la Universidad Camilo José Cela.\n\n\n\nDerivado del proyecto de investigación \"La situación de los eventos deportivos en España a través de su estructuras y de sus herramientas\", tiene como finalidad conocer la situación de los eventos deportivos en España. Se realizó un estudio descriptivo holístico en el que se investigaron elementos culturales, el perfil de los recursos humanos, la estructura de los comités, entre otras.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2015-06-20","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/227"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2015-06-20","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869097,"id":"50|od______3989::0f89464c4ac4c398fe0c71433b175a62","originalId":["od______3989::0f89464c4ac4c398fe0c71433b175a62"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:26.069Z","dateoftransformation":"2020-03-03T13:06:53.54Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:26.069Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/802","datestamp":"2018-11-14T15:30:47Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","name":"Ciencias La Actividad Física Y. Del Deporte","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Actividad Física y del Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Actividades deportivas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Impacto físico","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Proyectos de investigación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"2411.06 Fisiología del Ejercicio","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Investigaciones en Ciencias de la Actividad Física y del Deporte CCAFD - UCJC","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Blanca Romero, investigadora y docente de Ciencias de la Actividad Física y del Deporte en la Universidad Camilo José Cela, describe dos de las líneas de investigación que se han desarrollado en el departamento CCAFD de UCJC: el impacto físico de las diferentes actividades deportivas y los métodos de recuperación más eficaces tras el ejercicio físico.\nBlanca también destaca la importancia en el ámbito de la salud los estudios en Ciencias de la Actividad Física y del Deporte.\nCiencias de la Actividad Física y del Deporte en la Universidad Camilo José Cela","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/802"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869215,"id":"50|od______3989::1729c3988199b95d1d566851af7d3c55","originalId":["od______3989::1729c3988199b95d1d566851af7d3c55"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:25.653Z","dateoftransformation":"2020-03-03T13:06:53.764Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:25.653Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/801","datestamp":"2018-11-14T15:19:38Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","name":"Ciencias La Actividad Física Y. Del Deporte","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Actividad Física y del Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Prevención","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Hidratación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deportistas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Electrolitos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deportes de resistencia","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"2411.06 Fisiología del Ejercicio","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"La importancia de la hidratación en competiciones resistencia, por Juan del Coso","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Juan del Coso, investigador y profesor en el Grado en Ciencias de la Actividad Física y del Deporte UCJC, presenta el proyecto de investigación que ha realizado el departamento CCAFD de UCJC: la prevención de desequilibrios de agua y electrolitos que se dan en los deportes de resistencia para que los deportistas realicen su actividad de una manera más segura.\nMás información: http://www.ucjc.edu/2016/03/investiga...\nUniversidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Grado en Ciencias de la Actividad Física y del Deporte UCJC","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/801"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869487,"id":"50|od______3989::2e3f34ce90520fae350a7e1148d7dcea","originalId":["od______3989::2e3f34ce90520fae350a7e1148d7dcea"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.912Z","dateoftransformation":"2020-03-03T13:06:54.218Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.912Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/800","datestamp":"2018-11-14T13:43:21Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Actividad Física y del Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Cafeína","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Efectos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Alto rendimiento","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Competiciones","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Beneficios","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"2411.06 Fisiología del Ejercicio","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Investigación - Efectos positivos y negativos del uso de la cafeína en el deporte","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Proyecto de investigación que se están desarrollando en la Universidad Camilo José Cela (UCJC) sobre la cafeína y sus efectos cuando se realiza deporte. https://www.ucjc.edu/2016/08/la-bbc-s...\n\nJuan Del Coso, director del Laboratorio de Fisiología del Ejercicio de la Universidad Camilo José Cela, nos describe cómo está siendo la investigación que desarrolla con deportistas de alto rendimiento y el consumo de cafeína.\n\n\"Nuestra investigación se enmarca dentro del campo de la fisiología del ejercicio y el objetivo que tenemos es investigar los efectos que tiene la cafeína en los deportistas, principalmente saber si es una ayuda ergogénica en la mayor parte de los deportes, pero también conocer qué perjuicios existen para aquellos deportistas que la utilizan para incrementar el rendimiento deportivo\", explica Del Coso.\n\nY es que los datos son muy llamativos: tres de cada cuatro deportistas de alto rendimiento utilizan la cafeína antes de la competición y muchas veces se utiliza sin saber los perjuicios que puede tener para el deportista. \"Lo que estamos investigando es cómo una sustancia, que te puede hacer rendir mejor, cómo puede afectar negativamente cuando termina una competición\".\n\nPero esta investigación no sólo puede extraer conclusiones interesantes y útiles para los deportistas profesionales, \"investigando el deporte de alto rendimiento podemos conocer los beneficios y perjuicios de la cafeína que también afectarían al deportista amateur y hacer un deporte en general más seguro\".\n\nPara el desarrollo de este proyecto de investigación están colaborando el Laboratorio de Fisiología del Ejercicio de la Universidad Camilo José Cela y la Agencia para la Protección de la Salud en el Deporte.\nPara el desarrollo de este proyecto de investigación están colaborando el Laboratorio de Fisiología del Ejercicio de la Universidad Camilo José Cela y la Agencia para la Protección de la Salud en el Deporte.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2017-10-06","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Vicerrectorado de Innovación","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/800"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2017-10-06","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869498,"id":"50|od______3989::2f4f3c820c450bd08dac08d07cc82dcf","originalId":["od______3989::2f4f3c820c450bd08dac08d07cc82dcf"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.806Z","dateoftransformation":"2020-03-03T13:06:54.229Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.806Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/797","datestamp":"2018-11-14T12:12:23Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Cuesta Cano, Laura","name":"Laura","surname":"Cuesta Cano","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Marketing digital","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Medios sociales","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Marcas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Empresas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Emprendedores","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"II Liga de Debate CICAE - UCJC","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"6114.13 Marketing","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Laura Cuesta - Liga de Debate CICAE - UCJC","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Laura Cuesta, profesora en la Universidad Camilo José Cela (UCJC) y Especialista en Marketing Digital y Medios Sociales para marcas y emprendedores. \n\nEn esta ocasión, Laura Cuesta, nos explica el significado de redes sociales y nos habla sobre el uso que le dan los usuarios.\n\nII Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/\n\nLa Universidad Camilo José Cela (UCJC) y la Asociación de Colegios Privados e Independientes –Círculo de Calidad Educativa (CICAE) – organizan la segunda edición de esta gran liga de debate académico. El formato es al estilo inglés, similar al de la Oxford Union, donde algunos jóvenes se reunían a debatir sobre temas de la más candente actualidad y polemizaban con la intención de formarse en tan valoradas habilidades.\n\nLa Liga de Debate CICAE-UCJC es una ocasión única para los alumnos de ponerse en contacto con herramientas tan útiles como la oratoria y la comunicación efectiva. Pero, sobre ","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Vicerrectorado de Innovación","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/797"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055870582,"id":"50|od______3989::752fd0b2bbac1ea1cc50e52fd46eb663","originalId":["od______3989::752fd0b2bbac1ea1cc50e52fd46eb663"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.561Z","dateoftransformation":"2020-03-03T13:06:55.716Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.561Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/798","datestamp":"2018-11-14T12:57:26Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Psicología","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Alcohol","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Dependencia","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Proyectos de investigación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Alcoholismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Realidad virtual","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Psicología conductual","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Investigación - Intervención basada en realidad virtual sobre la dependencia del alcohol","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Proyecto de investigación que se están desarrollando en la Universidad Camilo José Cela (UCJC) con tecnología aplicada al abandono de la dependencia del alcohol. \nRosa Jurado, profesora e investigadora de UCJC https://www.ucjc.edu/, explica cómo se conjuga el alcoholismo con la realidad virtual. \"Mi investigación consiste en desarrollar una técnica de intervención o rehabilitación que tiene como propósito fomentar la capacidad de inhibición para que las personas que tienen dependencia del alcohol sean capaces de controlar su conducta de aproximación hacia aquello que tiene que ver con el consumo de alcohol\".\n\nEn esta investigación, liderada por la Universidad Camilo José Cela, están participando, el Instituto de Investigación Biomédica del Hospital 12 de Octubre y la Universidad Politécnica de Madrid, con el CeDint. \"En nuestro equipo de investigación pensamos que, además del deseo de consumo, existen una carencia clara de capacidad de control inhibitorio en este tipo de personas\", destaca Rosa Jurado.\n\nLa realidad virtual sirve, según explica Gabriel Rubio, jefe de Psiquiatría del Hospital 12 de Octubre, \"para dar un paso más, para ver cómo reacciona un sujeto en un ambiente que no es el real, pero se parece mucho al real\". El objetivo final de estas acciones es \"mejorar la capacidad del individuo para poner en marcha mecanismos de inhibición conductual, para que el sujeto sea capaz de decir que no\".\n\nY no acaba ahí el proceso. La fase final del tratamiento se enfoca en que el paciente \"sea capaz de reconstruir su vida\" a través de programas de entrenamiento de habilidades sociales, asertividad, familias... \"Juntando todas las áreas de intervención, la abstinencia se mantiene mucho más tiempo y las recaídas disminuyen\".","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2017-10-05","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Vicerrectorado de Innovación","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/798"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2017-10-05","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055870750,"id":"50|od______3989::7fcbe3a03280663cddebfd3cb9203177","originalId":["od______3989::7fcbe3a03280663cddebfd3cb9203177"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:25.652Z","dateoftransformation":"2020-03-03T13:06:55.95Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:25.652Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/796","datestamp":"2018-11-05T13:36:54Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Redes sociales","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Información","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Desinformación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"III Liga de Debate CICAE","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Instantaneidad","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Información periodística","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Fake news","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"5910.02 Medios de Comunicación de Masas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Jorge Gallardo - Liga de Debate CICAE","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Jorge Gallardo, profesor de Derecho en la Universidad Camilo José Cela (UCJC), Doctor en Comunicación Audiovisual y MBA en Empresas Audiovisuales. Subdirector de Espejo Público en Antena 3 Noticias. \n\nEn esta ocasión, Jorge Gallardo habla sobre las redes sociales, cómo han transformado la manera en la que nos comunicamos y nos informamos. \n\nIII Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/\n\nLa Universidad Camilo José Cela (UCJC) y la Asociación de Colegios Privados e Independientes –Círculo de Calidad Educativa (CICAE) – organizan la tercera edición de esta gran liga de debate académico. El formato es al estilo inglés, similar al de la Oxford Union, donde algunos jóvenes se reunían a debatir sobre temas de la más candente actualidad y polemizaban con la intención de formarse en tan valoradas habilidades.\n\nLa Liga de Debate CICAE-UCJC es una ocasión única para los alumnos de ponerse en contacto con herramientas tan útiles como la oratoria y la comunicación efectiva. Pero, sobre","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/796"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055872001,"id":"50|od______3989::d791339867bec6d3eb2104deeb4e4961","originalId":["od______3989::d791339867bec6d3eb2104deeb4e4961"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.586Z","dateoftransformation":"2020-03-03T13:06:57.721Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.586Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/645","datestamp":"2018-04-12T07:59:27Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Transferencia de Conocimiento e Innovación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Innovación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Investigación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Ciencia","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Tecnología","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"UCJC Open Science Day 2018","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"El UCJC Open Science Day tiene como objetivo mostrar las actividades de investigación llevadas a cabo por investigadores de la Universidad Camilo José Cela (UCJC) a todos los miembros de la UCJC.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-04-10","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/645"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-04-10","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055872022,"id":"50|od______3989::d90d3a1f64ad264b5ebed8a35b280343","originalId":["od______3989::d90d3a1f64ad264b5ebed8a35b280343"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.912Z","dateoftransformation":"2020-03-03T13:06:57.747Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.912Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/795","datestamp":"2018-11-06T15:43:10Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Unión Europea","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Desinformación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Política","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Periodismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Ciudadanos europeos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Democracias","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Estado de derecho","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Derechos humanos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"5910.02 Medios de Comunicación de Masas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Ramón Luis Varcárcel - La Unión Europea ante el reto de la desinformación","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Conferencia de Ramón Luis Valcárcel, vicepresidente del Parlamento Europeo, en el Campus de Almagro de la Universidad Camilo José Cela (UCJC) bajo el título \"La Unión Europea ante el reto de la desinformación\", en la que ha alertado sobre el alcance de la desinformación en las democracias y sobre cómo pone en peligro los derechos de los ciudadanos europeos. También ha participado el rector de la UCJC, Samuel Martín-Barbero.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-11","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/795"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-11","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/no_updates/dataset_10.json.gz b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/no_updates/dataset_10.json.gz deleted file mode 100644 index bd29d59ae..000000000 Binary files a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/no_updates/dataset_10.json.gz and /dev/null differ diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/no_updates/datasource b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/no_updates/datasource new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/no_updates/otherresearchproduct b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/no_updates/otherresearchproduct new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/no_updates/publication b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/no_updates/publication new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/no_updates/software b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/no_updates/software new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_datasourcewithconstraints/dataset_10.json b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_datasourcewithconstraints/dataset similarity index 100% rename from dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_datasourcewithconstraints/dataset_10.json rename to dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_datasourcewithconstraints/dataset diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_datasourcewithconstraints/datasource b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_datasourcewithconstraints/datasource new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_datasourcewithconstraints/otherresearchproduct b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_datasourcewithconstraints/otherresearchproduct new file mode 100644 index 000000000..ae580eab9 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_datasourcewithconstraints/otherresearchproduct @@ -0,0 +1,10 @@ +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055422336,"id":"50|od______2017::0750a4d0782265873d669520f5e33c07","originalId":["od______2017::0750a4d0782265873d669520f5e33c07"],"collectedfrom":[{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null}],"pid":[],"dateofcollection":"2018-05-08T17:28:57.843Z","dateoftransformation":"2019-11-30T04:19:48.897Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2018-05-08T17:28:57.843Z","altered":true,"baseURL":"http://repositorio.ipv.pt/oai/openaire","identifier":"oai:repositorio.ipv.pt:10400.19/4572","datestamp":"2017-05-05T02:01:39Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Godinho, Maria do Céu","name":"Maria Do Céu","surname":"Godinho","rank":1,"pid":null,"affiliation":null},{"fullname":"Costa, Cristina Amaro","name":"Cristina Amaro","surname":"Costa","rank":2,"pid":null,"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"por","classname":"Portuguese","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Pesticidas","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Proteção integrada","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"O uso dos pesticidas em Portugal. Que caminhos?","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"A agricultura está inevitavelmente associada a um conjunto de variáveis no ecossistema, onde estão incluídos as pragas e doenças nas culturas e presença de outras plantas que competem pelo alimento, água e luz. Estes agentes são responsáveis por perdas no rendimento que, normalmente, não são aceites pelo agricultor. E é, por isso, que se recorre aos pesticidas: é preciso proteger as culturas do ataque dos seus inimigos.\nTambém é verdade que a agricultura é a atividade desenvolvida pelo Homem que mais se aproxima dos sistemas naturais e tem, assim, um papel central na produção de diversos serviços do ecossistema, como a biodiversidade agrícola, qualidade do solo e água, estabilidade climática e manutenção da paisagem. Ora, o uso dos pesticidas introduz efeitos negativos em todo este sistema: degradam o solo, reduzem a qualidade e disponibilidade de água, causam poluição e perda de habitats selvagens e de biodiversidade. Aqui reside a encruzilhada na proteção das culturas.\ninfo:eu-repo/semantics/publishedVersion","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2016-07-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":{"value":"Quercus","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"id":"http://zenodo.org/communities/chicago-covid-19"}],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0020","classname":"Other ORP type","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"url":["http://hdl.handle.net/10400.19/4572"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"dateofacceptance":{"value":"2016-07-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"contactperson":[],"contactgroup":[],"tool":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055423621,"id":"50|od______2017::1bd97baef19dbd2db3203b112bb83bc5","originalId":["od______2017::1bd97baef19dbd2db3203b112bb83bc5"],"collectedfrom":[{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null}],"pid":[],"dateofcollection":"2019-02-25T04:30:56.994Z","dateoftransformation":"2019-11-30T04:19:58.463Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-02-25T04:30:56.994Z","altered":true,"baseURL":"http://repositorio.ipv.pt/oai/openaire","identifier":"oai:repositorio.ipv.pt:10400.19/5415","datestamp":"2019-02-23T03:01:23Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Brandão, Daniela","name":"Daniela","surname":"Brandão","rank":1,"pid":null,"affiliation":null},{"fullname":"Duarte, Natália","name":"Natália","surname":"Duarte","rank":2,"pid":null,"affiliation":null},{"fullname":"Araújo, Lia","name":"Lia","surname":"Araújo","rank":3,"pid":null,"affiliation":null},{"fullname":"Alves, Sara","name":"Sara","surname":"Alves","rank":4,"pid":null,"affiliation":null},{"fullname":"Teixeira, Laetitia","name":"Laetitia","surname":"Teixeira","rank":5,"pid":null,"affiliation":null},{"fullname":"Ribeiro, Oscar","name":"Oscar","surname":"Ribeiro","rank":6,"pid":null,"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Quality of life","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Centenarians","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Centenarians´ quality of life and the role of health and living context","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Introduction: The interest of the scienti􏰀c community to study the centenarian population has been growing due to the signi􏰀cant expansion of life expectancy and human longevity. Evidences about their quality of life (QoL) are, nevertheless, still limited. Different conceptualizations of QoL, the overvaluation of the negative aspects of advanced age and the heterogeneity of the oldest old are some issues that could explain the dif􏰀culties in this assessment. Objectives: This study aims to analyze the perceived QoL in a sample of centenarians and analyze if there are significant life context (community vs institutional) and health (objective and subjective perception) differences.\nMethods: A subsample of 59 Portuguese centenarians who participated in the PT100_Oporto Centenarian Study, conducted in 2013 was considered. Descriptive and chi-square analysis were conducted.\nResults: Most centenarians perceived their QoL in a very positive manner (50.8% rated it as “good”, 6.8% as “very good” and 3.4% as “excellent”); 28.8% perceived it as “acceptable” and 10.2% as “bad”. No significant statistical differences were found for the considered variables.\nConclusions: Centenarians seem to present high levels of perceived QoL, which can be associated with a great ability to adapt to adverse situations that occur through their lives. Neither contextual and health aspects seem to in􏰂uence the perception of QoL in this particular sample study. Nonetheless, more research is \nneeded to understand the speci􏰀cities of the QoL in the centenarian population, namely the role of psychological and social variables.\ninfo:eu-repo/semantics/publishedVersion","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2014-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"id":"http://zenodo.org/communities/edenis"},{"id":"http://zenodo.org/communities/aginfra"}, {"id":"http://zenodo.org/communities/primefish"}],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0020","classname":"Other ORP type","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"url":["http://hdl.handle.net/10400.19/5415"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"dateofacceptance":{"value":"2014-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"contactperson":[],"contactgroup":[],"tool":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055423836,"id":"50|od______2017::1e400f1747487fd15998735c41a55c72","originalId":["od______2017::1e400f1747487fd15998735c41a55c72"],"collectedfrom":[{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null}],"pid":[],"dateofcollection":"2019-02-25T04:30:56.996Z","dateoftransformation":"2019-11-30T04:19:59.556Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-02-25T04:30:56.996Z","altered":true,"baseURL":"http://repositorio.ipv.pt/oai/openaire","identifier":"oai:repositorio.ipv.pt:10400.19/5422","datestamp":"2019-02-23T03:01:29Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Brandão, Daniela","name":"Daniela","surname":"Brandão","rank":1,"pid":null,"affiliation":null},{"fullname":"Ribeiro, Oscar","name":"Oscar","surname":"Ribeiro","rank":2,"pid":null,"affiliation":null},{"fullname":"Araújo, Lia","name":"Lia","surname":"Araújo","rank":3,"pid":null,"affiliation":null},{"fullname":"Paul, Constança","name":"Constança","surname":"Paul","rank":4,"pid":null,"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Oldest old","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Census","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"What about the Portuguese oldest old? A global overview using census data","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Background\nThe older population is itself aging, and achieving an advanced age is becoming more common worldwide. In Portugal, individuals aged 80+ represent 5.6 % of the total population and 26.5 % of the popu- lation were aged 65 and over in 2011. Having a national profile on this population will give important information to develop interven- tion programs and identify the areas requiring most attention. Ob- jective: This study aims to provide a profile of the Portuguese oldest old, as given by the last national census data.\nMethods\nThe characteristics of all residents aged 80+ (N = 532,219) were ana- lysed considering socio-demographic information (gender, marital status, education, type of residence, place of birth, income) and the existence of difficulties in functional, sensorial and cognitive activities due to health problems or ageing.\nResults\nThe majority of the most aged are females (64.5 %), widowed (53.9 %), and present low educational levels (46.1 % never attended school and 31.6 % do not know how to read/write). Own pensions constitute the main source of income (96.3 %) and the majority live in private households (88.8 %), with 43.2 % currently living in the place where they were born. The majority (73.0 %) reported major difficulties in at least one functional activity – bathing/dressing, walk- ing/climbing stairs, seeing, hearing, memory/concentration, under- standing others/being understood.\nConclusions\nThe high percentage of oldest old living in private households and the presence of functional limitations point to the importance of in- formal care and community care services to support this population. Further studies paying attention to their needs and utilisation of ser- vices are required.\ninfo:eu-repo/semantics/publishedVersion","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2016-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"propagation","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:productsthroughsemrel","classname":" Propagation of result belonging to community through semantic relation","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"ee"},{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"propagation","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:productsthroughsemrel","classname":" Propagation of result belonging to community through semantic relation","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"fam"},{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"propagation","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:productsthroughsemrel","classname":" Propagation of result belonging to community through semantic relation","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"covid-19"},{"id":"http://zenodo.org/communities/c2smart"}],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0020","classname":"Other ORP type","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"url":["http://hdl.handle.net/10400.19/5422"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"dateofacceptance":{"value":"2016-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"contactperson":[],"contactgroup":[],"tool":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055424072,"id":"50|od______2017::210281c5bc1c739a11ccceeeca806396","originalId":["od______2017::210281c5bc1c739a11ccceeeca806396"],"collectedfrom":[{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null}],"pid":[],"dateofcollection":"2018-11-29T04:22:08.265Z","dateoftransformation":"2019-11-30T04:20:00.603Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2018-11-29T04:22:08.265Z","altered":true,"baseURL":"http://repositorio.ipv.pt/oai/openaire","identifier":"oai:repositorio.ipv.pt:10400.19/1089","datestamp":"2018-11-26T15:31:28Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Avelar-Rosa, Bruno","name":"Bruno","surname":"Avelar-Rosa","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"por","classname":"Portuguese","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Treino de Jovens","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Iniciação Desportiva","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Metodologia","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Didática","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Treino de Jovens: Princípios Orientadores","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Documento que recolhe os traços gerais da intervenção do treinador de jovens, considerando as possíveis orientações pedagógicas, os eixos de evolução do praticante, os diferentes modelos didáticos de iniciação, os momentos idóneos para a intervenção nas diferentes qualidades motoras e a relação entre o treinador de jovens e os restantes agentes implicados no processo (destacando-se, naturalmente, os pais).","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2010-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":{"value":"Confederação do Desporto de Portugal","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"propagation","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:productsthroughsemrel","classname":" Propagation of result belonging to community through semantic relation","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"beopen"},{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"propagation","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:productsthroughsemrel","classname":" Propagation of result belonging to community through semantic relation","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"fam"},{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"propagation","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:productsthroughsemrel","classname":" Propagation of result belonging to community through semantic relation","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"covid-19"},{"id":"http://zenodo.org/communities/primefish"}, {"id":"http://zenodo.org/communities/c2smart"}] ,"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0020","classname":"Other ORP type","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"url":["http://hdl.handle.net/10400.19/1089"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"dateofacceptance":{"value":"2010-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"contactperson":[],"contactgroup":[],"tool":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055424163,"id":"50|od______2017::225a8382b6a3db76fba97c2dc146f937","originalId":["od______2017::225a8382b6a3db76fba97c2dc146f937"],"collectedfrom":[{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null}],"pid":[],"dateofcollection":"2018-05-08T17:26:56.251Z","dateoftransformation":"2019-11-30T04:20:01.127Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2018-05-08T17:26:56.251Z","altered":true,"baseURL":"http://repositorio.ipv.pt/oai/openaire","identifier":"oai:repositorio.ipv.pt:10400.19/3290","datestamp":"2016-07-14T02:01:33Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Millenium","name":null,"surname":null,"rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"por","classname":"Portuguese","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[],"title":[{"value":"Referências bibliográficas ao estilo APA","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[],"dateofacceptance":{"value":"2016-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"id":"primefish"}],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0020","classname":"Other ORP type","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"url":["http://hdl.handle.net/10400.19/3290"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"dateofacceptance":{"value":"2016-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"contactperson":[],"contactgroup":[],"tool":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055424299,"id":"50|od______2017::241d59362b075000e89d276e7bb6badc","originalId":["od______2017::241d59362b075000e89d276e7bb6badc"],"collectedfrom":[{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null}],"pid":[],"dateofcollection":"2019-09-06T04:39:29.25Z","dateoftransformation":"2019-11-30T04:20:01.631Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-09-06T04:39:29.25Z","altered":true,"baseURL":"http://repositorio.ipv.pt/oai/openaire","identifier":"oai:repositorio.ipv.pt:10400.19/1190","datestamp":"2019-09-04T02:00:41Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Menezes, Luís","name":"Luís","surname":"Menezes","rank":1,"pid":null,"affiliation":null},{"fullname":"Ribeiro, António","name":"António","surname":"Ribeiro","rank":2,"pid":null,"affiliation":null},{"fullname":"Martins, Ana Patrícia","name":"Ana Patrícia","surname":"Martins","rank":3,"pid":null,"affiliation":null},{"fullname":"Rodrigues, Cátia","name":"Cátia","surname":"Rodrigues","rank":4,"pid":null,"affiliation":null},{"fullname":"Gomes, Helena","name":"Helena","surname":"Gomes","rank":5,"pid":null,"affiliation":null},{"fullname":"Novo, Sónia","name":"Sónia","surname":"Novo","rank":6,"pid":null,"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"por","classname":"Portuguese","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Matemática","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Capacidades tranversais","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Penso, comunico, resolvo","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Esta brochura destina-se a alunos do ensino básico (1.º a 9.º anos), tendo como objetivo fornecer informação sobre as capacidades transversais que o novo Programa de Matemática português (2007) veio destacar.\nEscola Superior de Educação de Viseu","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2010-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":{"value":"ESEV","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"id":"http://zenodo.org/communities/fake"}],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0020","classname":"Other ORP type","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"url":["http://hdl.handle.net/10400.19/1190"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"dateofacceptance":{"value":"2010-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"contactperson":[],"contactgroup":[],"tool":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055424626,"id":"50|od______2017::28fe553056801d4a764edac6bec334ec","originalId":["od______2017::28fe553056801d4a764edac6bec334ec"],"collectedfrom":[{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null}],"pid":[],"dateofcollection":"2019-02-25T04:30:56.998Z","dateoftransformation":"2019-11-30T04:20:03.799Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-02-25T04:30:56.998Z","altered":true,"baseURL":"http://repositorio.ipv.pt/oai/openaire","identifier":"oai:repositorio.ipv.pt:10400.19/5432","datestamp":"2019-02-23T03:01:24Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"da Costa Teixeira, Laetitia","name":"Laetitia","surname":"Da Costa Teixeira","rank":1,"pid":null,"affiliation":null},{"fullname":"Araújo, Lia","name":"Lia","surname":"Araújo","rank":2,"pid":null,"affiliation":null},{"fullname":"Ribeiro, Oscar","name":"Oscar","surname":"Ribeiro","rank":3,"pid":null,"affiliation":null},{"fullname":"Jopp, Daniela","name":"Daniela","surname":"Jopp","rank":4,"pid":null,"affiliation":null},{"fullname":"Paul, Constança","name":"Constança","surname":"Paul","rank":5,"pid":null,"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Europe","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Centenarians","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Centenarians in Europe","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"In the last decade, the number of centenarians world- wide has increased. Following this tendency, the number of centenarian studies has also exponentially augmented. Given the complexity to conduct research with centenarians, elementary information on this specific age group remains unknown at a European level. This paper compares basic characteristics of centenarians from 32 European coun- tries based on Census 2011. Results revealed that France is the country with higher ratio of centenarians, followed by Italy and Greece; on the other hand Croatia, Romania and Bulgaria present the lower ratio. The distribution accord- ing to gender is similar for all countries, with higher ratio of women reaching 100 years old. Different patterns of education level were found on countries where this infor- mation was reliable: Portugal and Greece are the countries with lower levels of education, with more than half without formal education; Finland, UK and Iceland are the countries with higher levels of education, with all centenarians having at least lower secondary education. Analysing the residence situation (living in the community or living in the institu- tion), Romania, Bulgaria, Lithuania, Greece and Latvia are the countries that present higher percentages of centenarians living in the community; Iceland is the country with lower percentage of centenarians living in the community. A posi- tive correlation between the number of centenarians and the percentage of Total Health Expenditure of GDP is observed. This study provides important information about the current profile of European centenarians, which is compared to gen- eral information on the centenarian population from EUA and Asia.\ninfo:eu-repo/semantics/publishedVersion","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2017-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0020","classname":"Other ORP type","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"url":["http://hdl.handle.net/10400.19/5432"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"dateofacceptance":{"value":"2017-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"contactperson":[],"contactgroup":[],"tool":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055424730,"id":"50|od______2017::2a777b5c11f070ece546d75162047179","originalId":["od______2017::2a777b5c11f070ece546d75162047179"],"collectedfrom":[{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null}],"pid":[],"dateofcollection":"2019-02-25T04:30:56.998Z","dateoftransformation":"2019-11-30T04:20:04.285Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-02-25T04:30:56.998Z","altered":true,"baseURL":"http://repositorio.ipv.pt/oai/openaire","identifier":"oai:repositorio.ipv.pt:10400.19/5428","datestamp":"2019-02-23T03:01:30Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"da Costa Teixeira, Laetitia","name":"Laetitia","surname":"Da Costa Teixeira","rank":1,"pid":null,"affiliation":null},{"fullname":"Araújo, Lia","name":"Lia","surname":"Araújo","rank":2,"pid":null,"affiliation":null},{"fullname":"Paul, Constança","name":"Constança","surname":"Paul","rank":3,"pid":null,"affiliation":null},{"fullname":"Ribeiro, Oscar","name":"Oscar","surname":"Ribeiro","rank":4,"pid":null,"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Survival","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"100 years old","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Survival after 100 years of age in Portuguese centenarians","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"The group of individuals aged 80 and over is growing faster than other segment of the population, and within this group the number of centenarians has risen exponentially worldwide. This phenomena lead to an increasing number of centenarian studies, improving the knowledge about this population, validating the idea of heterogeneity that char- acterizes this group. However, the factors influencing their aging survival remains understudied. The present study aims to identify factors associated with survival after 100 years old in a sample of Portuguese centenarians. After being included in a population-based study on centenarians (PT100–Oporto Centenarian Study), each participant was assessed by a tel- ephone interview every 6 months in order to assess his/her health condition. Follow-up was considered as the time (in months) between 100th birthday and death or the last tel- ephone contact. Survival analysis was performed to iden- tify factors associated with survival after 100 years old. Sociological and medical factors were considered. 140 cen- tenarians were assessed and 115 (82.1%) died. The median survival time after 100 years old was 38 months. Survival after age 100 was associated with acute disease (last month), self-perception of physical condition and drinking status. This study intends do identify factors that predict longevity in long-lived individuals. Findings recognize the importance of factors related with health status, self-perception of physi- cal condition and life style (no alcohol consume) for survival. Further studies should explore the predictive value of these factors, as well as psychosocial aspects, considering living longer but also the quality of time beyond one hundred.\ninfo:eu-repo/semantics/publishedVersion","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0020","classname":"Other ORP type","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"url":["http://hdl.handle.net/10400.19/5428"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"dateofacceptance":{"value":"2018-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"contactperson":[],"contactgroup":[],"tool":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055426968,"id":"50|od______2017::48eb86b38e6e2cfb94bf0a4663848c10","originalId":["od______2017::48eb86b38e6e2cfb94bf0a4663848c10"],"collectedfrom":[{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null}],"pid":[],"dateofcollection":"2019-02-25T04:30:56.995Z","dateoftransformation":"2019-11-30T04:20:13.611Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-02-25T04:30:56.995Z","altered":true,"baseURL":"http://repositorio.ipv.pt/oai/openaire","identifier":"oai:repositorio.ipv.pt:10400.19/5416","datestamp":"2019-02-23T03:01:21Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Teixeira, Laetitia","name":"Laetitia","surname":"Teixeira","rank":1,"pid":null,"affiliation":null},{"fullname":"Araújo, Lia","name":"Lia","surname":"Araújo","rank":2,"pid":null,"affiliation":null},{"fullname":"Duarte, Natália","name":"Natália","surname":"Duarte","rank":3,"pid":null,"affiliation":null},{"fullname":"Brandão, Daniela","name":"Daniela","surname":"Brandão","rank":4,"pid":null,"affiliation":null},{"fullname":"Azevedo, Maria João","name":"Maria João","surname":"Azevedo","rank":5,"pid":null,"affiliation":null},{"fullname":"Ribeiro, Oscar","name":"Oscar","surname":"Ribeiro","rank":6,"pid":null,"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Cognition","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Survival","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Functional capacity","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Cognition and functionality: how do they related to time lived after 100 years of age?","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Introduction: The number of centenarians has greatly increased in Portugal in the last decades. Therefore, the analysis of survival time after becoming a centenarian and related factors constitute an import- ant issue for the quality of care provision. The objective of this study is to identify health related factors associated with the time lived after being 100 years of age. Methods: Data come from the population-based study PT100 (Oporto Centenarian Study) and considers information gathered through face-to-face interviews with centenarians and their proxies during 2013. Study eligibility criteria included being 100 and more years old and living in the Oporto Metropolitan Area. Survival analyses were performed in order to identify factors associated with survival after the 100. Functional status (e.g., walking, being bedrid- den) and specific health conditions (e.g. presence/absence of cognitive impairment) were considered as potential factors. Results: The sam- ple comprises 140 centenarians with approximately 14.5 months as median survival time after their 100th anniversary. Centenarians who were bedridden presented a higher probability to live after 100 years when compared with functionally independent centenarians. Presence of cognitive impairment was not associated with the time lived after 100 years old. Conclusions: Given the increasing number of centenarians in Portugal, different studies based on this population need to be consid- ered. The present study, focused on the life after 100 years old, provides new information about this topic contributing to the formulation of new scientific questions for this population.\ninfo:eu-repo/semantics/publishedVersion","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2014-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0020","classname":"Other ORP type","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"url":["http://hdl.handle.net/10400.19/5416"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"dateofacceptance":{"value":"2014-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"contactperson":[],"contactgroup":[],"tool":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055427049,"id":"50|od______2017::4a1bcdd965b879fbac86a7d3b947a6cc","originalId":["od______2017::4a1bcdd965b879fbac86a7d3b947a6cc"],"collectedfrom":[{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null}],"pid":[],"dateofcollection":"2018-05-08T17:24:51.637Z","dateoftransformation":"2019-11-30T04:20:13.727Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2018-05-08T17:24:51.637Z","altered":true,"baseURL":"http://repositorio.ipv.pt/oai/openaire","identifier":"oai:repositorio.ipv.pt:10400.19/995","datestamp":"2014-07-15T01:00:31Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Oliveira, Ana Maria","name":"Ana Maria","surname":"Oliveira","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"por","classname":"Portuguese","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Cognição e Linguagem","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Processamento da Linguagem","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Processar a Linguagem através dos Sentidos: entre a doçura e a amargura","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[],"dateofacceptance":{"value":"2010-07-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":{"value":"Instituto de Literatura Comparada Margarida Losa – Faculdade de Letras da Universidade do Porto","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0010","classname":"Lecture","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"url":["http://hdl.handle.net/10400.19/995"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"dateofacceptance":{"value":"2010-07-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"contactperson":[],"contactgroup":[],"tool":[]} diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_datasourcewithconstraints/publication b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_datasourcewithconstraints/publication new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_datasourcewithconstraints/software b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_datasourcewithconstraints/software new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/contextnoprovenance/dataset b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/contextnoprovenance/dataset new file mode 100644 index 000000000..d03739195 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/contextnoprovenance/dataset @@ -0,0 +1,10 @@ +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055868909,"id":"50|od______3989::02dd5d2c222191b0b9bd4f33c8e96529","originalId":["od______3989::02dd5d2c222191b0b9bd4f33c8e96529"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[{"value":"10.4185/RLCS-2018-1243","qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofcollection":"2020-03-03T13:05:26.091Z","dateoftransformation":"2020-03-03T13:06:53.161Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:26.091Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/562","datestamp":"2018-01-23T15:06:07Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Gallardo-Camacho, Jorge","name":"Jorge","surname":"Gallardo-Camacho","rank":1,"pid":null,"affiliation":null},{"fullname":"Trujillo Fernández, José Ramón","name":"José Ramón","surname":"Trujillo Fernández","rank":2,"pid":null,"affiliation":null},{"fullname":"Jorge Alonso, Ana","name":"Ana","surname":"Jorge Alonso","rank":3,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"COVID-19","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"yihadismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"viralidad","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"vídeo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"propaganda","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"terrorismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"terrorism","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"jihadism","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"virality","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"video","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"5903 Ideologías Políticas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"6310.13 Terrorismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"El individualismo como estrategia","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Individualism as an improvised strategy","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Se analiza como el Yihadismo distribuye su mensaje propaganístico en You Tube.\nUniversidad Camilo José Cela","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"MediaLab - UCJC","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"propagation","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:productsthroughsemrel","classname":" Propagation of result belonging to community through semantic relation","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"ee"},{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"propagation","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:productsthroughsemrel","classname":" Propagation of result belonging to community through semantic relation","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"fam"},{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"propagation","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:productsthroughsemrel","classname":" Propagation of result belonging to community through semantic relation","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"covid-19"}],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/562"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055868954,"id":"50|od______3989::05d8c751462f9bb8d2b06956dfbc5c7b","originalId":["od______3989::05d8c751462f9bb8d2b06956dfbc5c7b"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:26.079Z","dateoftransformation":"2020-03-03T13:06:53.239Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:26.079Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/227","datestamp":"2017-11-15T16:29:55Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Rico Pérez, Marta","name":"Marta","surname":"Rico Pérez","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"coronavirus disease-19","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"agriculture","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Retos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"I Congreso Nuevos Retos en los Eventos Deportivos","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"I Congreso Nuevos Retos en los Eventos Deportivos, celebrado en la Universidad Camilo José Cela.\n\n\n\nDerivado del proyecto de investigación \"La situación de los eventos deportivos en España a través de su estructuras y de sus herramientas\", tiene como finalidad conocer la situación de los eventos deportivos en España. Se realizó un estudio descriptivo holístico en el que se investigaron elementos culturales, el perfil de los recursos humanos, la estructura de los comités, entre otras.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2015-06-20","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/227"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2015-06-20","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869097,"id":"50|od______3989::0f89464c4ac4c398fe0c71433b175a62","originalId":["od______3989::0f89464c4ac4c398fe0c71433b175a62"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:26.069Z","dateoftransformation":"2020-03-03T13:06:53.54Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:26.069Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/802","datestamp":"2018-11-14T15:30:47Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","name":"Ciencias La Actividad Física Y. Del Deporte","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"fishery","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"sea","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Impacto físico","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Proyectos de investigación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"2411.06 Fisiología del Ejercicio","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Investigaciones en Ciencias de la Actividad Física y del Deporte CCAFD - UCJC","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Blanca Romero, investigadora y docente de Ciencias de la Actividad Física y del Deporte en la Universidad Camilo José Cela, describe dos de las líneas de investigación que se han desarrollado en el departamento CCAFD de UCJC: el impacto físico de las diferentes actividades deportivas y los métodos de recuperación más eficaces tras el ejercicio físico.\nBlanca también destaca la importancia en el ámbito de la salud los estudios en Ciencias de la Actividad Física y del Deporte.\nCiencias de la Actividad Física y del Deporte en la Universidad Camilo José Cela","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/802"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869215,"id":"50|od______3989::1729c3988199b95d1d566851af7d3c55","originalId":["od______3989::1729c3988199b95d1d566851af7d3c55"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:25.653Z","dateoftransformation":"2020-03-03T13:06:53.764Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:25.653Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/801","datestamp":"2018-11-14T15:19:38Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","name":"Ciencias La Actividad Física Y. Del Deporte","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Actividad Física y del Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Prevención","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Hidratación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deportistas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Electrolitos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deportes de resistencia","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"2411.06 Fisiología del Ejercicio","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"La importancia de la hidratación en competiciones resistencia, por Juan del Coso","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Juan del Coso, investigador y profesor en el Grado en Ciencias de la Actividad Física y del Deporte UCJC, presenta el proyecto de investigación que ha realizado el departamento CCAFD de UCJC: la prevención de desequilibrios de agua y electrolitos que se dan en los deportes de resistencia para que los deportistas realicen su actividad de una manera más segura.\nMás información: http://www.ucjc.edu/2016/03/investiga...\nUniversidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Grado en Ciencias de la Actividad Física y del Deporte UCJC","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/801"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869487,"id":"50|od______3989::2e3f34ce90520fae350a7e1148d7dcea","originalId":["od______3989::2e3f34ce90520fae350a7e1148d7dcea"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.912Z","dateoftransformation":"2020-03-03T13:06:54.218Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.912Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/800","datestamp":"2018-11-14T13:43:21Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Actividad Física y del Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Cafeína","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Efectos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Alto rendimiento","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Competiciones","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Beneficios","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"2411.06 Fisiología del Ejercicio","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Investigación - Efectos positivos y negativos del uso de la cafeína en el deporte","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Proyecto de investigación que se están desarrollando en la Universidad Camilo José Cela (UCJC) sobre la cafeína y sus efectos cuando se realiza deporte. https://www.ucjc.edu/2016/08/la-bbc-s...\n\nJuan Del Coso, director del Laboratorio de Fisiología del Ejercicio de la Universidad Camilo José Cela, nos describe cómo está siendo la investigación que desarrolla con deportistas de alto rendimiento y el consumo de cafeína.\n\n\"Nuestra investigación se enmarca dentro del campo de la fisiología del ejercicio y el objetivo que tenemos es investigar los efectos que tiene la cafeína en los deportistas, principalmente saber si es una ayuda ergogénica en la mayor parte de los deportes, pero también conocer qué perjuicios existen para aquellos deportistas que la utilizan para incrementar el rendimiento deportivo\", explica Del Coso.\n\nY es que los datos son muy llamativos: tres de cada cuatro deportistas de alto rendimiento utilizan la cafeína antes de la competición y muchas veces se utiliza sin saber los perjuicios que puede tener para el deportista. \"Lo que estamos investigando es cómo una sustancia, que te puede hacer rendir mejor, cómo puede afectar negativamente cuando termina una competición\".\n\nPero esta investigación no sólo puede extraer conclusiones interesantes y útiles para los deportistas profesionales, \"investigando el deporte de alto rendimiento podemos conocer los beneficios y perjuicios de la cafeína que también afectarían al deportista amateur y hacer un deporte en general más seguro\".\n\nPara el desarrollo de este proyecto de investigación están colaborando el Laboratorio de Fisiología del Ejercicio de la Universidad Camilo José Cela y la Agencia para la Protección de la Salud en el Deporte.\nPara el desarrollo de este proyecto de investigación están colaborando el Laboratorio de Fisiología del Ejercicio de la Universidad Camilo José Cela y la Agencia para la Protección de la Salud en el Deporte.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2017-10-06","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Vicerrectorado de Innovación","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/800"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2017-10-06","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869498,"id":"50|od______3989::2f4f3c820c450bd08dac08d07cc82dcf","originalId":["od______3989::2f4f3c820c450bd08dac08d07cc82dcf"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.806Z","dateoftransformation":"2020-03-03T13:06:54.229Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.806Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/797","datestamp":"2018-11-14T12:12:23Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Cuesta Cano, Laura","name":"Laura","surname":"Cuesta Cano","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Marketing digital","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Medios sociales","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Marcas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Empresas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Emprendedores","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"II Liga de Debate CICAE - UCJC","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"6114.13 Marketing","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Laura Cuesta - Liga de Debate CICAE - UCJC","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Laura Cuesta, profesora en la Universidad Camilo José Cela (UCJC) y Especialista en Marketing Digital y Medios Sociales para marcas y emprendedores. \n\nEn esta ocasión, Laura Cuesta, nos explica el significado de redes sociales y nos habla sobre el uso que le dan los usuarios.\n\nII Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/\n\nLa Universidad Camilo José Cela (UCJC) y la Asociación de Colegios Privados e Independientes –Círculo de Calidad Educativa (CICAE) – organizan la segunda edición de esta gran liga de debate académico. El formato es al estilo inglés, similar al de la Oxford Union, donde algunos jóvenes se reunían a debatir sobre temas de la más candente actualidad y polemizaban con la intención de formarse en tan valoradas habilidades.\n\nLa Liga de Debate CICAE-UCJC es una ocasión única para los alumnos de ponerse en contacto con herramientas tan útiles como la oratoria y la comunicación efectiva. Pero, sobretodo, una oportunidad de fomentar el pensamiento crítico y la socialización entre alumnos con espíritu emprendedor. La Liga de Debate CICAE - Universidad Camilo José Cela se diferencia del resto de torneos en que potenciamos que sea eminentemente formativa. Alumnos y profesores reciben formación en comunicación, oratoria y debate por parte de alguno de los expertos en debate españoles más reconocidos en la escena internacional.\n\nDatos de la III Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Vicerrectorado de Innovación","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/797"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055870582,"id":"50|od______3989::752fd0b2bbac1ea1cc50e52fd46eb663","originalId":["od______3989::752fd0b2bbac1ea1cc50e52fd46eb663"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.561Z","dateoftransformation":"2020-03-03T13:06:55.716Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.561Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/798","datestamp":"2018-11-14T12:57:26Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Psicología","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Alcohol","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Dependencia","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Proyectos de investigación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Alcoholismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Realidad virtual","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Psicología conductual","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Investigación - Intervención basada en realidad virtual sobre la dependencia del alcohol","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Proyecto de investigación que se están desarrollando en la Universidad Camilo José Cela (UCJC) con tecnología aplicada al abandono de la dependencia del alcohol. \nRosa Jurado, profesora e investigadora de UCJC https://www.ucjc.edu/, explica cómo se conjuga el alcoholismo con la realidad virtual. \"Mi investigación consiste en desarrollar una técnica de intervención o rehabilitación que tiene como propósito fomentar la capacidad de inhibición para que las personas que tienen dependencia del alcohol sean capaces de controlar su conducta de aproximación hacia aquello que tiene que ver con el consumo de alcohol\".\n\nEn esta investigación, liderada por la Universidad Camilo José Cela, están participando, el Instituto de Investigación Biomédica del Hospital 12 de Octubre y la Universidad Politécnica de Madrid, con el CeDint. \"En nuestro equipo de investigación pensamos que, además del deseo de consumo, existen una carencia clara de capacidad de control inhibitorio en este tipo de personas\", destaca Rosa Jurado.\n\nLa realidad virtual sirve, según explica Gabriel Rubio, jefe de Psiquiatría del Hospital 12 de Octubre, \"para dar un paso más, para ver cómo reacciona un sujeto en un ambiente que no es el real, pero se parece mucho al real\". El objetivo final de estas acciones es \"mejorar la capacidad del individuo para poner en marcha mecanismos de inhibición conductual, para que el sujeto sea capaz de decir que no\".\n\nY no acaba ahí el proceso. La fase final del tratamiento se enfoca en que el paciente \"sea capaz de reconstruir su vida\" a través de programas de entrenamiento de habilidades sociales, asertividad, familias... \"Juntando todas las áreas de intervención, la abstinencia se mantiene mucho más tiempo y las recaídas disminuyen\".","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2017-10-05","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Vicerrectorado de Innovación","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/798"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2017-10-05","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055870750,"id":"50|od______3989::7fcbe3a03280663cddebfd3cb9203177","originalId":["od______3989::7fcbe3a03280663cddebfd3cb9203177"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:25.652Z","dateoftransformation":"2020-03-03T13:06:55.95Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:25.652Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/796","datestamp":"2018-11-05T13:36:54Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Redes sociales","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Información","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Desinformación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"III Liga de Debate CICAE","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Instantaneidad","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Información periodística","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Fake news","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"5910.02 Medios de Comunicación de Masas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Jorge Gallardo - Liga de Debate CICAE","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Jorge Gallardo, profesor de Derecho en la Universidad Camilo José Cela (UCJC), Doctor en Comunicación Audiovisual y MBA en Empresas Audiovisuales. Subdirector de Espejo Público en Antena 3 Noticias. \n\nEn esta ocasión, Jorge Gallardo habla sobre las redes sociales, cómo han transformado la manera en la que nos comunicamos y nos informamos. \n\nIII Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/\n\nLa Universidad Camilo José Cela (UCJC) y la Asociación de Colegios Privados e Independientes –Círculo de Calidad Educativa (CICAE) – organizan la tercera edición de esta gran liga de debate académico. El formato es al estilo inglés, similar al de la Oxford Union, donde algunos jóvenes se reunían a debatir sobre temas de la más candente actualidad y polemizaban con la intención de formarse en tan valoradas habilidades.\n\nLa Liga de Debate CICAE-UCJC es una ocasión única para los alumnos de ponerse en contacto con herramientas tan útiles como la oratoria y la comunicación efectiva. Pero, sobretodo, una oportunidad de fomentar el pensamiento crítico y la socialización entre alumnos con espíritu emprendedor. La Liga de Debate CICAE - Universidad Camilo José Cela se diferencia del resto de torneos en que potenciamos que sea eminentemente formativa. Alumnos y profesores reciben formación en comunicación, oratoria y debate por parte de alguno de los expertos en debate españoles más reconocidos en la escena internacional.\n\nDatos de la III Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/796"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055872001,"id":"50|od______3989::d791339867bec6d3eb2104deeb4e4961","originalId":["od______3989::d791339867bec6d3eb2104deeb4e4961"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.586Z","dateoftransformation":"2020-03-03T13:06:57.721Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.586Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/645","datestamp":"2018-04-12T07:59:27Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Transferencia de Conocimiento e Innovación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Innovación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Investigación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Ciencia","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Tecnología","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"UCJC Open Science Day 2018","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"El UCJC Open Science Day tiene como objetivo mostrar las actividades de investigación llevadas a cabo por investigadores de la Universidad Camilo José Cela (UCJC) a todos los miembros de la UCJC.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-04-10","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/645"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-04-10","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055872022,"id":"50|od______3989::d90d3a1f64ad264b5ebed8a35b280343","originalId":["od______3989::d90d3a1f64ad264b5ebed8a35b280343"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.912Z","dateoftransformation":"2020-03-03T13:06:57.747Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.912Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/795","datestamp":"2018-11-06T15:43:10Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Unión Europea","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Desinformación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Política","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Periodismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Ciudadanos europeos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Democracias","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Estado de derecho","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Derechos humanos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"5910.02 Medios de Comunicación de Masas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Ramón Luis Varcárcel - La Unión Europea ante el reto de la desinformación","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Conferencia de Ramón Luis Valcárcel, vicepresidente del Parlamento Europeo, en el Campus de Almagro de la Universidad Camilo José Cela (UCJC) bajo el título \"La Unión Europea ante el reto de la desinformación\", en la que ha alertado sobre el alcance de la desinformación en las democracias y sobre cómo pone en peligro los derechos de los ciudadanos europeos. También ha participado el rector de la UCJC, Samuel Martín-Barbero.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-11","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/795"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-11","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/contextnoprovenance/dataset_10.json.gz b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/contextnoprovenance/dataset_10.json.gz deleted file mode 100644 index ee62cd791..000000000 Binary files a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/contextnoprovenance/dataset_10.json.gz and /dev/null differ diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/contextnoprovenance/datasource b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/contextnoprovenance/datasource new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/contextnoprovenance/otherresearchproduct b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/contextnoprovenance/otherresearchproduct new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/contextnoprovenance/publication b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/contextnoprovenance/publication new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/contextnoprovenance/software b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/contextnoprovenance/software new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/nocontext/dataset b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/nocontext/dataset new file mode 100644 index 000000000..54552697b --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/nocontext/dataset @@ -0,0 +1,10 @@ +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055868909,"id":"50|od______3989::02dd5d2c222191b0b9bd4f33c8e96529","originalId":["od______3989::02dd5d2c222191b0b9bd4f33c8e96529"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[{"value":"10.4185/RLCS-2018-1243","qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofcollection":"2020-03-03T13:05:26.091Z","dateoftransformation":"2020-03-03T13:06:53.161Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:26.091Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/562","datestamp":"2018-01-23T15:06:07Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Gallardo-Camacho, Jorge","name":"Jorge","surname":"Gallardo-Camacho","rank":1,"pid":null,"affiliation":null},{"fullname":"Trujillo Fernández, José Ramón","name":"José Ramón","surname":"Trujillo Fernández","rank":2,"pid":null,"affiliation":null},{"fullname":"Jorge Alonso, Ana","name":"Ana","surname":"Jorge Alonso","rank":3,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"COVID-19","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"yihadismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"viralidad","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"vídeo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"propaganda","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"terrorismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"terrorism","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"jihadism","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"virality","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"video","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"5903 Ideologías Políticas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"6310.13 Terrorismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"El individualismo como estrategia","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Individualism as an improvised strategy","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Se analiza como el Yihadismo distribuye su mensaje propaganístico en You Tube.\nUniversidad Camilo José Cela","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"MediaLab - UCJC","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/562"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055868954,"id":"50|od______3989::05d8c751462f9bb8d2b06956dfbc5c7b","originalId":["od______3989::05d8c751462f9bb8d2b06956dfbc5c7b"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:26.079Z","dateoftransformation":"2020-03-03T13:06:53.239Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:26.079Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/227","datestamp":"2017-11-15T16:29:55Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Rico Pérez, Marta","name":"Marta","surname":"Rico Pérez","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"coronavirus disease-19","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"agriculture","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Retos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"I Congreso Nuevos Retos en los Eventos Deportivos","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"I Congreso Nuevos Retos en los Eventos Deportivos, celebrado en la Universidad Camilo José Cela.\n\n\n\nDerivado del proyecto de investigación \"La situación de los eventos deportivos en España a través de su estructuras y de sus herramientas\", tiene como finalidad conocer la situación de los eventos deportivos en España. Se realizó un estudio descriptivo holístico en el que se investigaron elementos culturales, el perfil de los recursos humanos, la estructura de los comités, entre otras.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2015-06-20","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/227"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2015-06-20","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869097,"id":"50|od______3989::0f89464c4ac4c398fe0c71433b175a62","originalId":["od______3989::0f89464c4ac4c398fe0c71433b175a62"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:26.069Z","dateoftransformation":"2020-03-03T13:06:53.54Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:26.069Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/802","datestamp":"2018-11-14T15:30:47Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","name":"Ciencias La Actividad Física Y. Del Deporte","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"fishery","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"sea","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Impacto físico","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Proyectos de investigación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"2411.06 Fisiología del Ejercicio","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Investigaciones en Ciencias de la Actividad Física y del Deporte CCAFD - UCJC","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Blanca Romero, investigadora y docente de Ciencias de la Actividad Física y del Deporte en la Universidad Camilo José Cela, describe dos de las líneas de investigación que se han desarrollado en el departamento CCAFD de UCJC: el impacto físico de las diferentes actividades deportivas y los métodos de recuperación más eficaces tras el ejercicio físico.\nBlanca también destaca la importancia en el ámbito de la salud los estudios en Ciencias de la Actividad Física y del Deporte.\nCiencias de la Actividad Física y del Deporte en la Universidad Camilo José Cela","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/802"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869215,"id":"50|od______3989::1729c3988199b95d1d566851af7d3c55","originalId":["od______3989::1729c3988199b95d1d566851af7d3c55"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:25.653Z","dateoftransformation":"2020-03-03T13:06:53.764Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:25.653Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/801","datestamp":"2018-11-14T15:19:38Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","name":"Ciencias La Actividad Física Y. Del Deporte","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Actividad Física y del Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Prevención","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Hidratación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deportistas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Electrolitos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deportes de resistencia","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"2411.06 Fisiología del Ejercicio","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"La importancia de la hidratación en competiciones resistencia, por Juan del Coso","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Juan del Coso, investigador y profesor en el Grado en Ciencias de la Actividad Física y del Deporte UCJC, presenta el proyecto de investigación que ha realizado el departamento CCAFD de UCJC: la prevención de desequilibrios de agua y electrolitos que se dan en los deportes de resistencia para que los deportistas realicen su actividad de una manera más segura.\nMás información: http://www.ucjc.edu/2016/03/investiga...\nUniversidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Grado en Ciencias de la Actividad Física y del Deporte UCJC","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/801"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869487,"id":"50|od______3989::2e3f34ce90520fae350a7e1148d7dcea","originalId":["od______3989::2e3f34ce90520fae350a7e1148d7dcea"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.912Z","dateoftransformation":"2020-03-03T13:06:54.218Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.912Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/800","datestamp":"2018-11-14T13:43:21Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Actividad Física y del Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Cafeína","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Efectos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Alto rendimiento","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Competiciones","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Beneficios","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"2411.06 Fisiología del Ejercicio","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Investigación - Efectos positivos y negativos del uso de la cafeína en el deporte","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Proyecto de investigación que se están desarrollando en la Universidad Camilo José Cela (UCJC) sobre la cafeína y sus efectos cuando se realiza deporte. https://www.ucjc.edu/2016/08/la-bbc-s...\n\nJuan Del Coso, director del Laboratorio de Fisiología del Ejercicio de la Universidad Camilo José Cela, nos describe cómo está siendo la investigación que desarrolla con deportistas de alto rendimiento y el consumo de cafeína.\n\n\"Nuestra investigación se enmarca dentro del campo de la fisiología del ejercicio y el objetivo que tenemos es investigar los efectos que tiene la cafeína en los deportistas, principalmente saber si es una ayuda ergogénica en la mayor parte de los deportes, pero también conocer qué perjuicios existen para aquellos deportistas que la utilizan para incrementar el rendimiento deportivo\", explica Del Coso.\n\nY es que los datos son muy llamativos: tres de cada cuatro deportistas de alto rendimiento utilizan la cafeína antes de la competición y muchas veces se utiliza sin saber los perjuicios que puede tener para el deportista. \"Lo que estamos investigando es cómo una sustancia, que te puede hacer rendir mejor, cómo puede afectar negativamente cuando termina una competición\".\n\nPero esta investigación no sólo puede extraer conclusiones interesantes y útiles para los deportistas profesionales, \"investigando el deporte de alto rendimiento podemos conocer los beneficios y perjuicios de la cafeína que también afectarían al deportista amateur y hacer un deporte en general más seguro\".\n\nPara el desarrollo de este proyecto de investigación están colaborando el Laboratorio de Fisiología del Ejercicio de la Universidad Camilo José Cela y la Agencia para la Protección de la Salud en el Deporte.\nPara el desarrollo de este proyecto de investigación están colaborando el Laboratorio de Fisiología del Ejercicio de la Universidad Camilo José Cela y la Agencia para la Protección de la Salud en el Deporte.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2017-10-06","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Vicerrectorado de Innovación","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/800"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2017-10-06","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869498,"id":"50|od______3989::2f4f3c820c450bd08dac08d07cc82dcf","originalId":["od______3989::2f4f3c820c450bd08dac08d07cc82dcf"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.806Z","dateoftransformation":"2020-03-03T13:06:54.229Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.806Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/797","datestamp":"2018-11-14T12:12:23Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Cuesta Cano, Laura","name":"Laura","surname":"Cuesta Cano","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Marketing digital","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Medios sociales","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Marcas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Empresas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Emprendedores","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"II Liga de Debate CICAE - UCJC","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"6114.13 Marketing","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Laura Cuesta - Liga de Debate CICAE - UCJC","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Laura Cuesta, profesora en la Universidad Camilo José Cela (UCJC) y Especialista en Marketing Digital y Medios Sociales para marcas y emprendedores. \n\nEn esta ocasión, Laura Cuesta, nos explica el significado de redes sociales y nos habla sobre el uso que le dan los usuarios.\n\nII Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/\n\nLa Universidad Camilo José Cela (UCJC) y la Asociación de Colegios Privados e Independientes –Círculo de Calidad Educativa (CICAE) – organizan la segunda edición de esta gran liga de debate académico. El formato es al estilo inglés, similar al de la Oxford Union, donde algunos jóvenes se reunían a debatir sobre temas de la más candente actualidad y polemizaban con la intención de formarse en tan valoradas habilidades.\n\nLa Liga de Debate CICAE-UCJC es una ocasión única para los alumnos de ponerse en contacto con herramientas tan útiles como la oratoria y la comunicación efectiva. Pero, sobretodo, una oportunidad de fomentar el pensamiento crítico y la socialización entre alumnos con espíritu emprendedor. La Liga de Debate CICAE - Universidad Camilo José Cela se diferencia del resto de torneos en que potenciamos que sea eminentemente formativa. Alumnos y profesores reciben formación en comunicación, oratoria y debate por parte de alguno de los expertos en debate españoles más reconocidos en la escena internacional.\n\nDatos de la III Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Vicerrectorado de Innovación","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/797"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055870582,"id":"50|od______3989::752fd0b2bbac1ea1cc50e52fd46eb663","originalId":["od______3989::752fd0b2bbac1ea1cc50e52fd46eb663"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.561Z","dateoftransformation":"2020-03-03T13:06:55.716Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.561Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/798","datestamp":"2018-11-14T12:57:26Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Psicología","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Alcohol","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Dependencia","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Proyectos de investigación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Alcoholismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Realidad virtual","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Psicología conductual","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Investigación - Intervención basada en realidad virtual sobre la dependencia del alcohol","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Proyecto de investigación que se están desarrollando en la Universidad Camilo José Cela (UCJC) con tecnología aplicada al abandono de la dependencia del alcohol. \nRosa Jurado, profesora e investigadora de UCJC https://www.ucjc.edu/, explica cómo se conjuga el alcoholismo con la realidad virtual. \"Mi investigación consiste en desarrollar una técnica de intervención o rehabilitación que tiene como propósito fomentar la capacidad de inhibición para que las personas que tienen dependencia del alcohol sean capaces de controlar su conducta de aproximación hacia aquello que tiene que ver con el consumo de alcohol\".\n\nEn esta investigación, liderada por la Universidad Camilo José Cela, están participando, el Instituto de Investigación Biomédica del Hospital 12 de Octubre y la Universidad Politécnica de Madrid, con el CeDint. \"En nuestro equipo de investigación pensamos que, además del deseo de consumo, existen una carencia clara de capacidad de control inhibitorio en este tipo de personas\", destaca Rosa Jurado.\n\nLa realidad virtual sirve, según explica Gabriel Rubio, jefe de Psiquiatría del Hospital 12 de Octubre, \"para dar un paso más, para ver cómo reacciona un sujeto en un ambiente que no es el real, pero se parece mucho al real\". El objetivo final de estas acciones es \"mejorar la capacidad del individuo para poner en marcha mecanismos de inhibición conductual, para que el sujeto sea capaz de decir que no\".\n\nY no acaba ahí el proceso. La fase final del tratamiento se enfoca en que el paciente \"sea capaz de reconstruir su vida\" a través de programas de entrenamiento de habilidades sociales, asertividad, familias... \"Juntando todas las áreas de intervención, la abstinencia se mantiene mucho más tiempo y las recaídas disminuyen\".","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2017-10-05","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Vicerrectorado de Innovación","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/798"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2017-10-05","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055870750,"id":"50|od______3989::7fcbe3a03280663cddebfd3cb9203177","originalId":["od______3989::7fcbe3a03280663cddebfd3cb9203177"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:25.652Z","dateoftransformation":"2020-03-03T13:06:55.95Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:25.652Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/796","datestamp":"2018-11-05T13:36:54Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Redes sociales","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Información","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Desinformación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"III Liga de Debate CICAE","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Instantaneidad","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Información periodística","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Fake news","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"5910.02 Medios de Comunicación de Masas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Jorge Gallardo - Liga de Debate CICAE","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Jorge Gallardo, profesor de Derecho en la Universidad Camilo José Cela (UCJC), Doctor en Comunicación Audiovisual y MBA en Empresas Audiovisuales. Subdirector de Espejo Público en Antena 3 Noticias. \n\nEn esta ocasión, Jorge Gallardo habla sobre las redes sociales, cómo han transformado la manera en la que nos comunicamos y nos informamos. \n\nIII Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/\n\nLa Universidad Camilo José Cela (UCJC) y la Asociación de Colegios Privados e Independientes –Círculo de Calidad Educativa (CICAE) – organizan la tercera edición de esta gran liga de debate académico. El formato es al estilo inglés, similar al de la Oxford Union, donde algunos jóvenes se reunían a debatir sobre temas de la más candente actualidad y polemizaban con la intención de formarse en tan valoradas habilidades.\n\nLa Liga de Debate CICAE-UCJC es una ocasión única para los alumnos de ponerse en contacto con herramientas tan útiles como la oratoria y la comunicación efectiva. Pero, sobretodo, una oportunidad de fomentar el pensamiento crítico y la socialización entre alumnos con espíritu emprendedor. La Liga de Debate CICAE - Universidad Camilo José Cela se diferencia del resto de torneos en que potenciamos que sea eminentemente formativa. Alumnos y profesores reciben formación en comunicación, oratoria y debate por parte de alguno de los expertos en debate españoles más reconocidos en la escena internacional.\n\nDatos de la III Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/796"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055872001,"id":"50|od______3989::d791339867bec6d3eb2104deeb4e4961","originalId":["od______3989::d791339867bec6d3eb2104deeb4e4961"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.586Z","dateoftransformation":"2020-03-03T13:06:57.721Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.586Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/645","datestamp":"2018-04-12T07:59:27Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Transferencia de Conocimiento e Innovación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Innovación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Investigación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Ciencia","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Tecnología","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"UCJC Open Science Day 2018","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"El UCJC Open Science Day tiene como objetivo mostrar las actividades de investigación llevadas a cabo por investigadores de la Universidad Camilo José Cela (UCJC) a todos los miembros de la UCJC.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-04-10","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/645"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-04-10","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055872022,"id":"50|od______3989::d90d3a1f64ad264b5ebed8a35b280343","originalId":["od______3989::d90d3a1f64ad264b5ebed8a35b280343"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.912Z","dateoftransformation":"2020-03-03T13:06:57.747Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.912Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/795","datestamp":"2018-11-06T15:43:10Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Unión Europea","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Desinformación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Política","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Periodismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Ciudadanos europeos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Democracias","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Estado de derecho","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Derechos humanos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"5910.02 Medios de Comunicación de Masas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Ramón Luis Varcárcel - La Unión Europea ante el reto de la desinformación","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Conferencia de Ramón Luis Valcárcel, vicepresidente del Parlamento Europeo, en el Campus de Almagro de la Universidad Camilo José Cela (UCJC) bajo el título \"La Unión Europea ante el reto de la desinformación\", en la que ha alertado sobre el alcance de la desinformación en las democracias y sobre cómo pone en peligro los derechos de los ciudadanos europeos. También ha participado el rector de la UCJC, Samuel Martín-Barbero.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-11","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/795"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-11","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/nocontext/dataset_10.json.gz b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/nocontext/dataset_10.json.gz deleted file mode 100644 index cf3c3aa7b..000000000 Binary files a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/nocontext/dataset_10.json.gz and /dev/null differ diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/nocontext/datasource b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/nocontext/datasource new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/nocontext/otherresearchproduct b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/nocontext/otherresearchproduct new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/nocontext/publication b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/nocontext/publication new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/nocontext/software b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject/nocontext/software new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject_datasource/dataset_10.json b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject_datasource/dataset similarity index 93% rename from dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject_datasource/dataset_10.json rename to dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject_datasource/dataset index 210719e29..32b3d362b 100644 --- a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject_datasource/dataset_10.json +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject_datasource/dataset @@ -3,8 +3,8 @@ {"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869097,"id":"50|od______3989::0f89464c4ac4c398fe0c71433b175a62","originalId":["od______3989::0f89464c4ac4c398fe0c71433b175a62"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:26.069Z","dateoftransformation":"2020-03-03T13:06:53.54Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:26.069Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/802","datestamp":"2018-11-14T15:30:47Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","name":"Ciencias La Actividad Física Y. Del Deporte","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"fishery","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"sea","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Impacto físico","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Proyectos de investigación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"2411.06 Fisiología del Ejercicio","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Investigaciones en Ciencias de la Actividad Física y del Deporte CCAFD - UCJC","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Blanca Romero, investigadora y docente de Ciencias de la Actividad Física y del Deporte en la Universidad Camilo José Cela, describe dos de las líneas de investigación que se han desarrollado en el departamento CCAFD de UCJC: el impacto físico de las diferentes actividades deportivas y los métodos de recuperación más eficaces tras el ejercicio físico.\nBlanca también destaca la importancia en el ámbito de la salud los estudios en Ciencias de la Actividad Física y del Deporte.\nCiencias de la Actividad Física y del Deporte en la Universidad Camilo José Cela","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/802"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} {"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869215,"id":"50|od______3989::1729c3988199b95d1d566851af7d3c55","originalId":["od______3989::1729c3988199b95d1d566851af7d3c55"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:25.653Z","dateoftransformation":"2020-03-03T13:06:53.764Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:25.653Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/801","datestamp":"2018-11-14T15:19:38Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","name":"Ciencias La Actividad Física Y. Del Deporte","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Actividad Física y del Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Prevención","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Hidratación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deportistas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Electrolitos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deportes de resistencia","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"2411.06 Fisiología del Ejercicio","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"La importancia de la hidratación en competiciones resistencia, por Juan del Coso","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Juan del Coso, investigador y profesor en el Grado en Ciencias de la Actividad Física y del Deporte UCJC, presenta el proyecto de investigación que ha realizado el departamento CCAFD de UCJC: la prevención de desequilibrios de agua y electrolitos que se dan en los deportes de resistencia para que los deportistas realicen su actividad de una manera más segura.\nMás información: http://www.ucjc.edu/2016/03/investiga...\nUniversidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Grado en Ciencias de la Actividad Física y del Deporte UCJC","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/801"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} {"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869487,"id":"50|od______3989::2e3f34ce90520fae350a7e1148d7dcea","originalId":["od______3989::2e3f34ce90520fae350a7e1148d7dcea"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.912Z","dateoftransformation":"2020-03-03T13:06:54.218Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.912Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/800","datestamp":"2018-11-14T13:43:21Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Actividad Física y del Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Cafeína","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Efectos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Alto rendimiento","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Competiciones","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Beneficios","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"2411.06 Fisiología del Ejercicio","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Investigación - Efectos positivos y negativos del uso de la cafeína en el deporte","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Proyecto de investigación que se están desarrollando en la Universidad Camilo José Cela (UCJC) sobre la cafeína y sus efectos cuando se realiza deporte. https://www.ucjc.edu/2016/08/la-bbc-s...\n\nJuan Del Coso, director del Laboratorio de Fisiología del Ejercicio de la Universidad Camilo José Cela, nos describe cómo está siendo la investigación que desarrolla con deportistas de alto rendimiento y el consumo de cafeína.\n\n\"Nuestra investigación se enmarca dentro del campo de la fisiología del ejercicio y el objetivo que tenemos es investigar los efectos que tiene la cafeína en los deportistas, principalmente saber si es una ayuda ergogénica en la mayor parte de los deportes, pero también conocer qué perjuicios existen para aquellos deportistas que la utilizan para incrementar el rendimiento deportivo\", explica Del Coso.\n\nY es que los datos son muy llamativos: tres de cada cuatro deportistas de alto rendimiento utilizan la cafeína antes de la competición y muchas veces se utiliza sin saber los perjuicios que puede tener para el deportista. \"Lo que estamos investigando es cómo una sustancia, que te puede hacer rendir mejor, cómo puede afectar negativamente cuando termina una competición\".\n\nPero esta investigación no sólo puede extraer conclusiones interesantes y útiles para los deportistas profesionales, \"investigando el deporte de alto rendimiento podemos conocer los beneficios y perjuicios de la cafeína que también afectarían al deportista amateur y hacer un deporte en general más seguro\".\n\nPara el desarrollo de este proyecto de investigación están colaborando el Laboratorio de Fisiología del Ejercicio de la Universidad Camilo José Cela y la Agencia para la Protección de la Salud en el Deporte.\nPara el desarrollo de este proyecto de investigación están colaborando el Laboratorio de Fisiología del Ejercicio de la Universidad Camilo José Cela y la Agencia para la Protección de la Salud en el Deporte.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2017-10-06","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Vicerrectorado de Innovación","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/800"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2017-10-06","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} -{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869498,"id":"50|od______3989::2f4f3c820c450bd08dac08d07cc82dcf","originalId":["od______3989::2f4f3c820c450bd08dac08d07cc82dcf"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.806Z","dateoftransformation":"2020-03-03T13:06:54.229Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.806Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/797","datestamp":"2018-11-14T12:12:23Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Cuesta Cano, Laura","name":"Laura","surname":"Cuesta Cano","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Marketing digital","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Medios sociales","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Marcas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Empresas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Emprendedores","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"II Liga de Debate CICAE - UCJC","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"6114.13 Marketing","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Laura Cuesta - Liga de Debate CICAE - UCJC","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Laura Cuesta, profesora en la Universidad Camilo José Cela (UCJC) y Especialista en Marketing Digital y Medios Sociales para marcas y emprendedores. \n\nEn esta ocasión, Laura Cuesta, nos explica el significado de redes sociales y nos habla sobre el uso que le dan los usuarios.\n\nII Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/\n\nLa Universidad Camilo José Cela (UCJC) y la Asociación de Colegios Privados e Independientes –Círculo de Calidad Educativa (CICAE) – organizan la segunda edición de esta gran liga de debate académico. El formato es al estilo inglés, similar al de la Oxford Union, donde algunos jóvenes se reunían a debatir sobre temas de la más candente actualidad y polemizaban con la intención de formarse en tan valoradas habilidades.\n\nLa Liga de Debate CICAE-UCJC es una ocasión única para los alumnos de ponerse en contacto con herramientas tan útiles como la oratoria y la comunicación efectiva. Pero, sobre todo, una oportunidad de fomentar el pensamiento crítico y la socialización entre alumnos con espíritu emprendedor. La Liga de Debate CICAE - Universidad Camilo José Cela se diferencia del resto de torneos en que potenciamos que sea eminentemente formativa. Alumnos y profesores reciben formación en comunicación, oratoria y debate por parte de alguno de los expertos en debate españoles más reconocidos en la escena internacional.\n\nDatos de la III Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Vicerrectorado de Innovación","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/797"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869498,"id":"50|od______3989::2f4f3c820c450bd08dac08d07cc82dcf","originalId":["od______3989::2f4f3c820c450bd08dac08d07cc82dcf"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.806Z","dateoftransformation":"2020-03-03T13:06:54.229Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.806Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/797","datestamp":"2018-11-14T12:12:23Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Cuesta Cano, Laura","name":"Laura","surname":"Cuesta Cano","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Marketing digital","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Medios sociales","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Marcas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Empresas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Emprendedores","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"II Liga de Debate CICAE - UCJC","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"6114.13 Marketing","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Laura Cuesta - Liga de Debate CICAE - UCJC","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Laura Cuesta, profesora en la Universidad Camilo José Cela (UCJC) y Especialista en Marketing Digital y Medios Sociales para marcas y emprendedores. \n\nEn esta ocasión, Laura Cuesta, nos explica el significado de redes sociales y nos habla sobre el uso que le dan los usuarios.\n\nII Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/\n\nLa Universidad Camilo José Cela (UCJC) y la Asociación de Colegios Privados e Independientes –Círculo de Calidad Educativa (CICAE) – organizan la segunda edición de esta gran liga de debate académico. El formato es al estilo inglés, similar al de la Oxford Union, donde algunos jóvenes se reunían a debatir sobre temas de la más candente actualidad y polemizaban con la intención de formarse en tan valoradas habilidades.\n\nLa Liga de Debate CICAE-UCJC es una ocasión única para los alumnos de ponerse en contacto con herramientas tan útiles como la oratoria y la comunicación efectiva. Pero, sobretodo, una oportunidad de fomentar el pensamiento crítico y la socialización entre alumnos con espíritu emprendedor. La Liga de Debate CICAE - Universidad Camilo José Cela se diferencia del resto de torneos en que potenciamos que sea eminentemente formativa. Alumnos y profesores reciben formación en comunicación, oratoria y debate por parte de alguno de los expertos en debate españoles más reconocidos en la escena internacional.\n\nDatos de la III Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Vicerrectorado de Innovación","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/797"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} {"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055870582,"id":"50|od______3989::752fd0b2bbac1ea1cc50e52fd46eb663","originalId":["od______3989::752fd0b2bbac1ea1cc50e52fd46eb663"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.561Z","dateoftransformation":"2020-03-03T13:06:55.716Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.561Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/798","datestamp":"2018-11-14T12:57:26Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Psicología","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Alcohol","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Dependencia","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Proyectos de investigación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Alcoholismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Realidad virtual","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Psicología conductual","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Investigación - Intervención basada en realidad virtual sobre la dependencia del alcohol","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Proyecto de investigación que se están desarrollando en la Universidad Camilo José Cela (UCJC) con tecnología aplicada al abandono de la dependencia del alcohol. \nRosa Jurado, profesora e investigadora de UCJC https://www.ucjc.edu/, explica cómo se conjuga el alcoholismo con la realidad virtual. \"Mi investigación consiste en desarrollar una técnica de intervención o rehabilitación que tiene como propósito fomentar la capacidad de inhibición para que las personas que tienen dependencia del alcohol sean capaces de controlar su conducta de aproximación hacia aquello que tiene que ver con el consumo de alcohol\".\n\nEn esta investigación, liderada por la Universidad Camilo José Cela, están participando, el Instituto de Investigación Biomédica del Hospital 12 de Octubre y la Universidad Politécnica de Madrid, con el CeDint. \"En nuestro equipo de investigación pensamos que, además del deseo de consumo, existen una carencia clara de capacidad de control inhibitorio en este tipo de personas\", destaca Rosa Jurado.\n\nLa realidad virtual sirve, según explica Gabriel Rubio, jefe de Psiquiatría del Hospital 12 de Octubre, \"para dar un paso más, para ver cómo reacciona un sujeto en un ambiente que no es el real, pero se parece mucho al real\". El objetivo final de estas acciones es \"mejorar la capacidad del individuo para poner en marcha mecanismos de inhibición conductual, para que el sujeto sea capaz de decir que no\".\n\nY no acaba ahí el proceso. La fase final del tratamiento se enfoca en que el paciente \"sea capaz de reconstruir su vida\" a través de programas de entrenamiento de habilidades sociales, asertividad, familias... \"Juntando todas las áreas de intervención, la abstinencia se mantiene mucho más tiempo y las recaídas disminuyen\".","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2017-10-05","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Vicerrectorado de Innovación","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/798"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2017-10-05","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} -{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055870750,"id":"50|od______3989::7fcbe3a03280663cddebfd3cb9203177","originalId":["od______3989::7fcbe3a03280663cddebfd3cb9203177"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:25.652Z","dateoftransformation":"2020-03-03T13:06:55.95Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:25.652Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/796","datestamp":"2018-11-05T13:36:54Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Redes sociales","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Información","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Desinformación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"III Liga de Debate CICAE","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Instantaneidad","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Información periodística","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Fake news","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"5910.02 Medios de Comunicación de Masas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Jorge Gallardo - Liga de Debate CICAE","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Jorge Gallardo, profesor de Derecho en la Universidad Camilo José Cela (UCJC), Doctor en Comunicación Audiovisual y MBA en Empresas Audiovisuales. Subdirector de Espejo Público en Antena 3 Noticias. \n\nEn esta ocasión, Jorge Gallardo habla sobre las redes sociales, cómo han transformado la manera en la que nos comunicamos y nos informamos. \n\nIII Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/\n\nLa Universidad Camilo José Cela (UCJC) y la Asociación de Colegios Privados e Independientes –Círculo de Calidad Educativa (CICAE) – organizan la tercera edición de esta gran liga de debate académico. El formato es al estilo inglés, similar al de la Oxford Union, donde algunos jóvenes se reunían a debatir sobre temas de la más candente actualidad y polemizaban con la intención de formarse en tan valoradas habilidades.\n\nLa Liga de Debate CICAE-UCJC es una ocasión única para los alumnos de ponerse en contacto con herramientas tan útiles como la oratoria y la comunicación efectiva. Pero, sobre todo, una oportunidad de fomentar el pensamiento crítico y la socialización entre alumnos con espíritu emprendedor. La Liga de Debate CICAE - Universidad Camilo José Cela se diferencia del resto de torneos en que potenciamos que sea eminentemente formativa. Alumnos y profesores reciben formación en comunicación, oratoria y debate por parte de alguno de los expertos en debate españoles más reconocidos en la escena internacional.\n\nDatos de la III Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/796"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055870750,"id":"50|od______3989::7fcbe3a03280663cddebfd3cb9203177","originalId":["od______3989::7fcbe3a03280663cddebfd3cb9203177"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:25.652Z","dateoftransformation":"2020-03-03T13:06:55.95Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:25.652Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/796","datestamp":"2018-11-05T13:36:54Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Redes sociales","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Información","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Desinformación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"III Liga de Debate CICAE","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Instantaneidad","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Información periodística","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Fake news","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"5910.02 Medios de Comunicación de Masas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Jorge Gallardo - Liga de Debate CICAE","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Jorge Gallardo, profesor de Derecho en la Universidad Camilo José Cela (UCJC), Doctor en Comunicación Audiovisual y MBA en Empresas Audiovisuales. Subdirector de Espejo Público en Antena 3 Noticias. \n\nEn esta ocasión, Jorge Gallardo habla sobre las redes sociales, cómo han transformado la manera en la que nos comunicamos y nos informamos. \n\nIII Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/\n\nLa Universidad Camilo José Cela (UCJC) y la Asociación de Colegios Privados e Independientes –Círculo de Calidad Educativa (CICAE) – organizan la tercera edición de esta gran liga de debate académico. El formato es al estilo inglés, similar al de la Oxford Union, donde algunos jóvenes se reunían a debatir sobre temas de la más candente actualidad y polemizaban con la intención de formarse en tan valoradas habilidades.\n\nLa Liga de Debate CICAE-UCJC es una ocasión única para los alumnos de ponerse en contacto con herramientas tan útiles como la oratoria y la comunicación efectiva. Pero, sobretodo, una oportunidad de fomentar el pensamiento crítico y la socialización entre alumnos con espíritu emprendedor. La Liga de Debate CICAE - Universidad Camilo José Cela se diferencia del resto de torneos en que potenciamos que sea eminentemente formativa. Alumnos y profesores reciben formación en comunicación, oratoria y debate por parte de alguno de los expertos en debate españoles más reconocidos en la escena internacional.\n\nDatos de la III Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/796"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} {"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055872001,"id":"50|od______3989::d791339867bec6d3eb2104deeb4e4961","originalId":["od______3989::d791339867bec6d3eb2104deeb4e4961"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.586Z","dateoftransformation":"2020-03-03T13:06:57.721Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.586Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/645","datestamp":"2018-04-12T07:59:27Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Transferencia de Conocimiento e Innovación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Innovación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Investigación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Ciencia","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Tecnología","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"UCJC Open Science Day 2018","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"El UCJC Open Science Day tiene como objetivo mostrar las actividades de investigación llevadas a cabo por investigadores de la Universidad Camilo José Cela (UCJC) a todos los miembros de la UCJC.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-04-10","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/645"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-04-10","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} -{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055872022,"id":"50|od______3989::d90d3a1f64ad264b5ebed8a35b280343","originalId":["od______3989::d90d3a1f64ad264b5ebed8a35b280343"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.912Z","dateoftransformation":"2020-03-03T13:06:57.747Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.912Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/795","datestamp":"2018-11-06T15:43:10Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Unión Europea","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Desinformación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Política","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Periodismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Ciudadanos europeos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Democracias","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Estado de derecho","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Derechos humanos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"5910.02 Medios de Comunicación de Masas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Ramón Luis Varcárcel - La Unión Europea ante el reto de la desinformación","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Conferencia de Ramón Luis Valcárcel, vicepresidente del Parlamento Europeo, en el Campus de Almagro de la Universidad Camilo José Cela (UCJC) bajo el título \"La Unión Europea ante el reto de la desinformación\", en la que ha alertado sobre el alcance de la desinformación en las democracias y sobre cómo pone en peligro los derechos de los ciudadanos europeos. También ha participado el rector de la UCJC, Samuel Martín-Barbero.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-11","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/795"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-11","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055872022,"id":"50|od______3989::d90d3a1f64ad264b5ebed8a35b280343","originalId":["od______3989::d90d3a1f64ad264b5ebed8a35b280343"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.912Z","dateoftransformation":"2020-03-03T13:06:57.747Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.912Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/795","datestamp":"2018-11-06T15:43:10Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Unión Europea","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Desinformación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Política","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Periodismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Ciudadanos europeos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Democracias","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Estado de derecho","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Derechos humanos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"5910.02 Medios de Comunicación de Masas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Ramón Luis Varcárcel - La Unión Europea ante el reto de la desinformación","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Conferencia de Ramón Luis Valcárcel, vicepresidente del Parlamento Europeo, en el Campus de Almagro de la Universidad Camilo José Cela (UCJC) bajo el título \"La Unión Europea ante el reto de la desinformación\", en la que ha alertado sobre el alcance de la desinformación en las democracias y sobre cómo pone en peligro los derechos de los ciudadanos europeos. También ha participado el rector de la UCJC, Samuel Martín-Barbero.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-11","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/795"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-11","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject_datasource/datasource b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject_datasource/datasource new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject_datasource/otherresearchproduct b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject_datasource/otherresearchproduct new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject_datasource/publication b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject_datasource/publication new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject_datasource/software b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/dataset/update_subject_datasource/software new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/otherresearchproduct/update_zenodocommunity/dataset b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/otherresearchproduct/update_zenodocommunity/dataset new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/otherresearchproduct/update_zenodocommunity/datasource b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/otherresearchproduct/update_zenodocommunity/datasource new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/otherresearchproduct/update_zenodocommunity/otherresearchproduct b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/otherresearchproduct/update_zenodocommunity/otherresearchproduct new file mode 100644 index 000000000..ae580eab9 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/otherresearchproduct/update_zenodocommunity/otherresearchproduct @@ -0,0 +1,10 @@ +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055422336,"id":"50|od______2017::0750a4d0782265873d669520f5e33c07","originalId":["od______2017::0750a4d0782265873d669520f5e33c07"],"collectedfrom":[{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null}],"pid":[],"dateofcollection":"2018-05-08T17:28:57.843Z","dateoftransformation":"2019-11-30T04:19:48.897Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2018-05-08T17:28:57.843Z","altered":true,"baseURL":"http://repositorio.ipv.pt/oai/openaire","identifier":"oai:repositorio.ipv.pt:10400.19/4572","datestamp":"2017-05-05T02:01:39Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Godinho, Maria do Céu","name":"Maria Do Céu","surname":"Godinho","rank":1,"pid":null,"affiliation":null},{"fullname":"Costa, Cristina Amaro","name":"Cristina Amaro","surname":"Costa","rank":2,"pid":null,"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"por","classname":"Portuguese","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Pesticidas","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Proteção integrada","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"O uso dos pesticidas em Portugal. Que caminhos?","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"A agricultura está inevitavelmente associada a um conjunto de variáveis no ecossistema, onde estão incluídos as pragas e doenças nas culturas e presença de outras plantas que competem pelo alimento, água e luz. Estes agentes são responsáveis por perdas no rendimento que, normalmente, não são aceites pelo agricultor. E é, por isso, que se recorre aos pesticidas: é preciso proteger as culturas do ataque dos seus inimigos.\nTambém é verdade que a agricultura é a atividade desenvolvida pelo Homem que mais se aproxima dos sistemas naturais e tem, assim, um papel central na produção de diversos serviços do ecossistema, como a biodiversidade agrícola, qualidade do solo e água, estabilidade climática e manutenção da paisagem. Ora, o uso dos pesticidas introduz efeitos negativos em todo este sistema: degradam o solo, reduzem a qualidade e disponibilidade de água, causam poluição e perda de habitats selvagens e de biodiversidade. Aqui reside a encruzilhada na proteção das culturas.\ninfo:eu-repo/semantics/publishedVersion","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2016-07-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":{"value":"Quercus","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"id":"http://zenodo.org/communities/chicago-covid-19"}],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0020","classname":"Other ORP type","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"url":["http://hdl.handle.net/10400.19/4572"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"dateofacceptance":{"value":"2016-07-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"contactperson":[],"contactgroup":[],"tool":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055423621,"id":"50|od______2017::1bd97baef19dbd2db3203b112bb83bc5","originalId":["od______2017::1bd97baef19dbd2db3203b112bb83bc5"],"collectedfrom":[{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null}],"pid":[],"dateofcollection":"2019-02-25T04:30:56.994Z","dateoftransformation":"2019-11-30T04:19:58.463Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-02-25T04:30:56.994Z","altered":true,"baseURL":"http://repositorio.ipv.pt/oai/openaire","identifier":"oai:repositorio.ipv.pt:10400.19/5415","datestamp":"2019-02-23T03:01:23Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Brandão, Daniela","name":"Daniela","surname":"Brandão","rank":1,"pid":null,"affiliation":null},{"fullname":"Duarte, Natália","name":"Natália","surname":"Duarte","rank":2,"pid":null,"affiliation":null},{"fullname":"Araújo, Lia","name":"Lia","surname":"Araújo","rank":3,"pid":null,"affiliation":null},{"fullname":"Alves, Sara","name":"Sara","surname":"Alves","rank":4,"pid":null,"affiliation":null},{"fullname":"Teixeira, Laetitia","name":"Laetitia","surname":"Teixeira","rank":5,"pid":null,"affiliation":null},{"fullname":"Ribeiro, Oscar","name":"Oscar","surname":"Ribeiro","rank":6,"pid":null,"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Quality of life","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Centenarians","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Centenarians´ quality of life and the role of health and living context","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Introduction: The interest of the scienti􏰀c community to study the centenarian population has been growing due to the signi􏰀cant expansion of life expectancy and human longevity. Evidences about their quality of life (QoL) are, nevertheless, still limited. Different conceptualizations of QoL, the overvaluation of the negative aspects of advanced age and the heterogeneity of the oldest old are some issues that could explain the dif􏰀culties in this assessment. Objectives: This study aims to analyze the perceived QoL in a sample of centenarians and analyze if there are significant life context (community vs institutional) and health (objective and subjective perception) differences.\nMethods: A subsample of 59 Portuguese centenarians who participated in the PT100_Oporto Centenarian Study, conducted in 2013 was considered. Descriptive and chi-square analysis were conducted.\nResults: Most centenarians perceived their QoL in a very positive manner (50.8% rated it as “good”, 6.8% as “very good” and 3.4% as “excellent”); 28.8% perceived it as “acceptable” and 10.2% as “bad”. No significant statistical differences were found for the considered variables.\nConclusions: Centenarians seem to present high levels of perceived QoL, which can be associated with a great ability to adapt to adverse situations that occur through their lives. Neither contextual and health aspects seem to in􏰂uence the perception of QoL in this particular sample study. Nonetheless, more research is \nneeded to understand the speci􏰀cities of the QoL in the centenarian population, namely the role of psychological and social variables.\ninfo:eu-repo/semantics/publishedVersion","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2014-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"id":"http://zenodo.org/communities/edenis"},{"id":"http://zenodo.org/communities/aginfra"}, {"id":"http://zenodo.org/communities/primefish"}],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0020","classname":"Other ORP type","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"url":["http://hdl.handle.net/10400.19/5415"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"dateofacceptance":{"value":"2014-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"contactperson":[],"contactgroup":[],"tool":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055423836,"id":"50|od______2017::1e400f1747487fd15998735c41a55c72","originalId":["od______2017::1e400f1747487fd15998735c41a55c72"],"collectedfrom":[{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null}],"pid":[],"dateofcollection":"2019-02-25T04:30:56.996Z","dateoftransformation":"2019-11-30T04:19:59.556Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-02-25T04:30:56.996Z","altered":true,"baseURL":"http://repositorio.ipv.pt/oai/openaire","identifier":"oai:repositorio.ipv.pt:10400.19/5422","datestamp":"2019-02-23T03:01:29Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Brandão, Daniela","name":"Daniela","surname":"Brandão","rank":1,"pid":null,"affiliation":null},{"fullname":"Ribeiro, Oscar","name":"Oscar","surname":"Ribeiro","rank":2,"pid":null,"affiliation":null},{"fullname":"Araújo, Lia","name":"Lia","surname":"Araújo","rank":3,"pid":null,"affiliation":null},{"fullname":"Paul, Constança","name":"Constança","surname":"Paul","rank":4,"pid":null,"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Oldest old","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Census","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"What about the Portuguese oldest old? A global overview using census data","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Background\nThe older population is itself aging, and achieving an advanced age is becoming more common worldwide. In Portugal, individuals aged 80+ represent 5.6 % of the total population and 26.5 % of the popu- lation were aged 65 and over in 2011. Having a national profile on this population will give important information to develop interven- tion programs and identify the areas requiring most attention. Ob- jective: This study aims to provide a profile of the Portuguese oldest old, as given by the last national census data.\nMethods\nThe characteristics of all residents aged 80+ (N = 532,219) were ana- lysed considering socio-demographic information (gender, marital status, education, type of residence, place of birth, income) and the existence of difficulties in functional, sensorial and cognitive activities due to health problems or ageing.\nResults\nThe majority of the most aged are females (64.5 %), widowed (53.9 %), and present low educational levels (46.1 % never attended school and 31.6 % do not know how to read/write). Own pensions constitute the main source of income (96.3 %) and the majority live in private households (88.8 %), with 43.2 % currently living in the place where they were born. The majority (73.0 %) reported major difficulties in at least one functional activity – bathing/dressing, walk- ing/climbing stairs, seeing, hearing, memory/concentration, under- standing others/being understood.\nConclusions\nThe high percentage of oldest old living in private households and the presence of functional limitations point to the importance of in- formal care and community care services to support this population. Further studies paying attention to their needs and utilisation of ser- vices are required.\ninfo:eu-repo/semantics/publishedVersion","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2016-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"propagation","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:productsthroughsemrel","classname":" Propagation of result belonging to community through semantic relation","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"ee"},{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"propagation","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:productsthroughsemrel","classname":" Propagation of result belonging to community through semantic relation","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"fam"},{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"propagation","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:productsthroughsemrel","classname":" Propagation of result belonging to community through semantic relation","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"covid-19"},{"id":"http://zenodo.org/communities/c2smart"}],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0020","classname":"Other ORP type","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"url":["http://hdl.handle.net/10400.19/5422"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"dateofacceptance":{"value":"2016-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"contactperson":[],"contactgroup":[],"tool":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055424072,"id":"50|od______2017::210281c5bc1c739a11ccceeeca806396","originalId":["od______2017::210281c5bc1c739a11ccceeeca806396"],"collectedfrom":[{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null}],"pid":[],"dateofcollection":"2018-11-29T04:22:08.265Z","dateoftransformation":"2019-11-30T04:20:00.603Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2018-11-29T04:22:08.265Z","altered":true,"baseURL":"http://repositorio.ipv.pt/oai/openaire","identifier":"oai:repositorio.ipv.pt:10400.19/1089","datestamp":"2018-11-26T15:31:28Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Avelar-Rosa, Bruno","name":"Bruno","surname":"Avelar-Rosa","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"por","classname":"Portuguese","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Treino de Jovens","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Iniciação Desportiva","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Metodologia","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Didática","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Treino de Jovens: Princípios Orientadores","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Documento que recolhe os traços gerais da intervenção do treinador de jovens, considerando as possíveis orientações pedagógicas, os eixos de evolução do praticante, os diferentes modelos didáticos de iniciação, os momentos idóneos para a intervenção nas diferentes qualidades motoras e a relação entre o treinador de jovens e os restantes agentes implicados no processo (destacando-se, naturalmente, os pais).","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2010-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":{"value":"Confederação do Desporto de Portugal","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"propagation","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:productsthroughsemrel","classname":" Propagation of result belonging to community through semantic relation","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"beopen"},{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"propagation","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:productsthroughsemrel","classname":" Propagation of result belonging to community through semantic relation","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"fam"},{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"propagation","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:productsthroughsemrel","classname":" Propagation of result belonging to community through semantic relation","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"covid-19"},{"id":"http://zenodo.org/communities/primefish"}, {"id":"http://zenodo.org/communities/c2smart"}] ,"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0020","classname":"Other ORP type","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"url":["http://hdl.handle.net/10400.19/1089"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"dateofacceptance":{"value":"2010-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"contactperson":[],"contactgroup":[],"tool":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055424163,"id":"50|od______2017::225a8382b6a3db76fba97c2dc146f937","originalId":["od______2017::225a8382b6a3db76fba97c2dc146f937"],"collectedfrom":[{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null}],"pid":[],"dateofcollection":"2018-05-08T17:26:56.251Z","dateoftransformation":"2019-11-30T04:20:01.127Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2018-05-08T17:26:56.251Z","altered":true,"baseURL":"http://repositorio.ipv.pt/oai/openaire","identifier":"oai:repositorio.ipv.pt:10400.19/3290","datestamp":"2016-07-14T02:01:33Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Millenium","name":null,"surname":null,"rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"por","classname":"Portuguese","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[],"title":[{"value":"Referências bibliográficas ao estilo APA","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[],"dateofacceptance":{"value":"2016-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"id":"primefish"}],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0020","classname":"Other ORP type","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"url":["http://hdl.handle.net/10400.19/3290"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"dateofacceptance":{"value":"2016-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"contactperson":[],"contactgroup":[],"tool":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055424299,"id":"50|od______2017::241d59362b075000e89d276e7bb6badc","originalId":["od______2017::241d59362b075000e89d276e7bb6badc"],"collectedfrom":[{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null}],"pid":[],"dateofcollection":"2019-09-06T04:39:29.25Z","dateoftransformation":"2019-11-30T04:20:01.631Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-09-06T04:39:29.25Z","altered":true,"baseURL":"http://repositorio.ipv.pt/oai/openaire","identifier":"oai:repositorio.ipv.pt:10400.19/1190","datestamp":"2019-09-04T02:00:41Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Menezes, Luís","name":"Luís","surname":"Menezes","rank":1,"pid":null,"affiliation":null},{"fullname":"Ribeiro, António","name":"António","surname":"Ribeiro","rank":2,"pid":null,"affiliation":null},{"fullname":"Martins, Ana Patrícia","name":"Ana Patrícia","surname":"Martins","rank":3,"pid":null,"affiliation":null},{"fullname":"Rodrigues, Cátia","name":"Cátia","surname":"Rodrigues","rank":4,"pid":null,"affiliation":null},{"fullname":"Gomes, Helena","name":"Helena","surname":"Gomes","rank":5,"pid":null,"affiliation":null},{"fullname":"Novo, Sónia","name":"Sónia","surname":"Novo","rank":6,"pid":null,"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"por","classname":"Portuguese","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Matemática","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Capacidades tranversais","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Penso, comunico, resolvo","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Esta brochura destina-se a alunos do ensino básico (1.º a 9.º anos), tendo como objetivo fornecer informação sobre as capacidades transversais que o novo Programa de Matemática português (2007) veio destacar.\nEscola Superior de Educação de Viseu","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2010-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":{"value":"ESEV","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"id":"http://zenodo.org/communities/fake"}],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0020","classname":"Other ORP type","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"url":["http://hdl.handle.net/10400.19/1190"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"dateofacceptance":{"value":"2010-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"contactperson":[],"contactgroup":[],"tool":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055424626,"id":"50|od______2017::28fe553056801d4a764edac6bec334ec","originalId":["od______2017::28fe553056801d4a764edac6bec334ec"],"collectedfrom":[{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null}],"pid":[],"dateofcollection":"2019-02-25T04:30:56.998Z","dateoftransformation":"2019-11-30T04:20:03.799Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-02-25T04:30:56.998Z","altered":true,"baseURL":"http://repositorio.ipv.pt/oai/openaire","identifier":"oai:repositorio.ipv.pt:10400.19/5432","datestamp":"2019-02-23T03:01:24Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"da Costa Teixeira, Laetitia","name":"Laetitia","surname":"Da Costa Teixeira","rank":1,"pid":null,"affiliation":null},{"fullname":"Araújo, Lia","name":"Lia","surname":"Araújo","rank":2,"pid":null,"affiliation":null},{"fullname":"Ribeiro, Oscar","name":"Oscar","surname":"Ribeiro","rank":3,"pid":null,"affiliation":null},{"fullname":"Jopp, Daniela","name":"Daniela","surname":"Jopp","rank":4,"pid":null,"affiliation":null},{"fullname":"Paul, Constança","name":"Constança","surname":"Paul","rank":5,"pid":null,"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Europe","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Centenarians","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Centenarians in Europe","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"In the last decade, the number of centenarians world- wide has increased. Following this tendency, the number of centenarian studies has also exponentially augmented. Given the complexity to conduct research with centenarians, elementary information on this specific age group remains unknown at a European level. This paper compares basic characteristics of centenarians from 32 European coun- tries based on Census 2011. Results revealed that France is the country with higher ratio of centenarians, followed by Italy and Greece; on the other hand Croatia, Romania and Bulgaria present the lower ratio. The distribution accord- ing to gender is similar for all countries, with higher ratio of women reaching 100 years old. Different patterns of education level were found on countries where this infor- mation was reliable: Portugal and Greece are the countries with lower levels of education, with more than half without formal education; Finland, UK and Iceland are the countries with higher levels of education, with all centenarians having at least lower secondary education. Analysing the residence situation (living in the community or living in the institu- tion), Romania, Bulgaria, Lithuania, Greece and Latvia are the countries that present higher percentages of centenarians living in the community; Iceland is the country with lower percentage of centenarians living in the community. A posi- tive correlation between the number of centenarians and the percentage of Total Health Expenditure of GDP is observed. This study provides important information about the current profile of European centenarians, which is compared to gen- eral information on the centenarian population from EUA and Asia.\ninfo:eu-repo/semantics/publishedVersion","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2017-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0020","classname":"Other ORP type","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"url":["http://hdl.handle.net/10400.19/5432"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"dateofacceptance":{"value":"2017-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"contactperson":[],"contactgroup":[],"tool":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055424730,"id":"50|od______2017::2a777b5c11f070ece546d75162047179","originalId":["od______2017::2a777b5c11f070ece546d75162047179"],"collectedfrom":[{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null}],"pid":[],"dateofcollection":"2019-02-25T04:30:56.998Z","dateoftransformation":"2019-11-30T04:20:04.285Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-02-25T04:30:56.998Z","altered":true,"baseURL":"http://repositorio.ipv.pt/oai/openaire","identifier":"oai:repositorio.ipv.pt:10400.19/5428","datestamp":"2019-02-23T03:01:30Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"da Costa Teixeira, Laetitia","name":"Laetitia","surname":"Da Costa Teixeira","rank":1,"pid":null,"affiliation":null},{"fullname":"Araújo, Lia","name":"Lia","surname":"Araújo","rank":2,"pid":null,"affiliation":null},{"fullname":"Paul, Constança","name":"Constança","surname":"Paul","rank":3,"pid":null,"affiliation":null},{"fullname":"Ribeiro, Oscar","name":"Oscar","surname":"Ribeiro","rank":4,"pid":null,"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Survival","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"100 years old","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Survival after 100 years of age in Portuguese centenarians","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"The group of individuals aged 80 and over is growing faster than other segment of the population, and within this group the number of centenarians has risen exponentially worldwide. This phenomena lead to an increasing number of centenarian studies, improving the knowledge about this population, validating the idea of heterogeneity that char- acterizes this group. However, the factors influencing their aging survival remains understudied. The present study aims to identify factors associated with survival after 100 years old in a sample of Portuguese centenarians. After being included in a population-based study on centenarians (PT100–Oporto Centenarian Study), each participant was assessed by a tel- ephone interview every 6 months in order to assess his/her health condition. Follow-up was considered as the time (in months) between 100th birthday and death or the last tel- ephone contact. Survival analysis was performed to iden- tify factors associated with survival after 100 years old. Sociological and medical factors were considered. 140 cen- tenarians were assessed and 115 (82.1%) died. The median survival time after 100 years old was 38 months. Survival after age 100 was associated with acute disease (last month), self-perception of physical condition and drinking status. This study intends do identify factors that predict longevity in long-lived individuals. Findings recognize the importance of factors related with health status, self-perception of physi- cal condition and life style (no alcohol consume) for survival. Further studies should explore the predictive value of these factors, as well as psychosocial aspects, considering living longer but also the quality of time beyond one hundred.\ninfo:eu-repo/semantics/publishedVersion","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0020","classname":"Other ORP type","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"url":["http://hdl.handle.net/10400.19/5428"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"dateofacceptance":{"value":"2018-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"contactperson":[],"contactgroup":[],"tool":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055426968,"id":"50|od______2017::48eb86b38e6e2cfb94bf0a4663848c10","originalId":["od______2017::48eb86b38e6e2cfb94bf0a4663848c10"],"collectedfrom":[{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null}],"pid":[],"dateofcollection":"2019-02-25T04:30:56.995Z","dateoftransformation":"2019-11-30T04:20:13.611Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-02-25T04:30:56.995Z","altered":true,"baseURL":"http://repositorio.ipv.pt/oai/openaire","identifier":"oai:repositorio.ipv.pt:10400.19/5416","datestamp":"2019-02-23T03:01:21Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Teixeira, Laetitia","name":"Laetitia","surname":"Teixeira","rank":1,"pid":null,"affiliation":null},{"fullname":"Araújo, Lia","name":"Lia","surname":"Araújo","rank":2,"pid":null,"affiliation":null},{"fullname":"Duarte, Natália","name":"Natália","surname":"Duarte","rank":3,"pid":null,"affiliation":null},{"fullname":"Brandão, Daniela","name":"Daniela","surname":"Brandão","rank":4,"pid":null,"affiliation":null},{"fullname":"Azevedo, Maria João","name":"Maria João","surname":"Azevedo","rank":5,"pid":null,"affiliation":null},{"fullname":"Ribeiro, Oscar","name":"Oscar","surname":"Ribeiro","rank":6,"pid":null,"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Cognition","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Survival","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Functional capacity","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Cognition and functionality: how do they related to time lived after 100 years of age?","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Introduction: The number of centenarians has greatly increased in Portugal in the last decades. Therefore, the analysis of survival time after becoming a centenarian and related factors constitute an import- ant issue for the quality of care provision. The objective of this study is to identify health related factors associated with the time lived after being 100 years of age. Methods: Data come from the population-based study PT100 (Oporto Centenarian Study) and considers information gathered through face-to-face interviews with centenarians and their proxies during 2013. Study eligibility criteria included being 100 and more years old and living in the Oporto Metropolitan Area. Survival analyses were performed in order to identify factors associated with survival after the 100. Functional status (e.g., walking, being bedrid- den) and specific health conditions (e.g. presence/absence of cognitive impairment) were considered as potential factors. Results: The sam- ple comprises 140 centenarians with approximately 14.5 months as median survival time after their 100th anniversary. Centenarians who were bedridden presented a higher probability to live after 100 years when compared with functionally independent centenarians. Presence of cognitive impairment was not associated with the time lived after 100 years old. Conclusions: Given the increasing number of centenarians in Portugal, different studies based on this population need to be consid- ered. The present study, focused on the life after 100 years old, provides new information about this topic contributing to the formulation of new scientific questions for this population.\ninfo:eu-repo/semantics/publishedVersion","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2014-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0020","classname":"Other ORP type","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"url":["http://hdl.handle.net/10400.19/5416"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"dateofacceptance":{"value":"2014-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"contactperson":[],"contactgroup":[],"tool":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055427049,"id":"50|od______2017::4a1bcdd965b879fbac86a7d3b947a6cc","originalId":["od______2017::4a1bcdd965b879fbac86a7d3b947a6cc"],"collectedfrom":[{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null}],"pid":[],"dateofcollection":"2018-05-08T17:24:51.637Z","dateoftransformation":"2019-11-30T04:20:13.727Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2018-05-08T17:24:51.637Z","altered":true,"baseURL":"http://repositorio.ipv.pt/oai/openaire","identifier":"oai:repositorio.ipv.pt:10400.19/995","datestamp":"2014-07-15T01:00:31Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Oliveira, Ana Maria","name":"Ana Maria","surname":"Oliveira","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"por","classname":"Portuguese","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Cognição e Linguagem","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Processamento da Linguagem","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Processar a Linguagem através dos Sentidos: entre a doçura e a amargura","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[],"dateofacceptance":{"value":"2010-07-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":{"value":"Instituto de Literatura Comparada Margarida Losa – Faculdade de Letras da Universidade do Porto","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0010","classname":"Lecture","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"url":["http://hdl.handle.net/10400.19/995"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::2017","value":"Repositório Científico do Instituto Politécnico de Viseu","dataInfo":null},"dateofacceptance":{"value":"2010-07-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"contactperson":[],"contactgroup":[],"tool":[]} diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/otherresearchproduct/update_zenodocommunity/otherresearchproduct_10.json.gz b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/otherresearchproduct/update_zenodocommunity/otherresearchproduct_10.json.gz deleted file mode 100644 index ea9e212bd..000000000 Binary files a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/otherresearchproduct/update_zenodocommunity/otherresearchproduct_10.json.gz and /dev/null differ diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/otherresearchproduct/update_zenodocommunity/publication b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/otherresearchproduct/update_zenodocommunity/publication new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/otherresearchproduct/update_zenodocommunity/software b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/otherresearchproduct/update_zenodocommunity/software new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/publication/update_datasource/dataset b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/publication/update_datasource/dataset new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/publication/update_datasource/datasource b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/publication/update_datasource/datasource new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/publication/update_datasource/otherresearchproduct b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/publication/update_datasource/otherresearchproduct new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/publication/update_datasource/publication b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/publication/update_datasource/publication new file mode 100644 index 000000000..12b385b22 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/publication/update_datasource/publication @@ -0,0 +1,10 @@ +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055113942,"id":"50|ec_fp7health::000085c89f4b96dc2269bd37edb35306","originalId":["ec_fp7health::000085c89f4b96dc2269bd37edb35306"],"collectedfrom":[{"key":"openaire____::ec_fp7_health","value":"HEALTH FP7 Publications Database","dataInfo":null}],"pid":[{"value":"10.1016/j.fgb.2012.05.007","qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofcollection":"2016-02-11T18:10:02.893Z","dateoftransformation":"2016-03-08T16:42:14.571Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2016-02-11T18:10:02.893Z","altered":true,"baseURL":"file:///var/lib/dnet/health_crossref","identifier":"","datestamp":"","metadataNamespace":""}},"author":[{"fullname":"Lewis, Leanne E.","name":"Leanne E.","surname":"Lewis","rank":1,"pid":null,"affiliation":null},{"fullname":"Bain, Judith M.","name":"Judith M.","surname":"Bain","rank":2,"pid":null,"affiliation":null},{"fullname":"Lowes, Christina","name":"Christina","surname":"Lowes","rank":3,"pid":null,"affiliation":null},{"fullname":"Gow, Neil A.R.","name":"Neil A. R.","surname":"Gow","rank":4,"pid":null,"affiliation":null},{"fullname":"Erwig, Lars-Peter","name":"Lars-Peter","surname":"Erwig","rank":5,"pid":null,"affiliation":null}],"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Candida albicans infection inhibits macrophage cell division and proliferation","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[],"dateofacceptance":{"value":"2012-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":{"value":"Academic Press","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"embargoenddate":null,"source":[{"value":"Fungal Genetics and Biology; Vol 49","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by/3.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0001","classname":"peerReviewed","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"openaire____::1256f046-bf1f-4afc-8b47-d0b147148b18","value":"Unknown Repository","dataInfo":null},"url":["http://dx.doi.org/10.1016/j.fgb.2012.05.007"],"distributionlocation":"","collectedfrom":{"key":"10|doajarticles::8cec81178926caaca531afbd8eb5d64c","value":"HEALTH FP7 Publications Database","dataInfo":null},"dateofacceptance":{"value":"2012-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"journal":{"name":"Fungal Genetics and Biology","issnPrinted":"1087-1845","issnOnline":"","issnLinking":"","ep":"680","iss":"9","sp":"679","vol":"49","edition":"","conferenceplace":null,"conferencedate":null,"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055114128,"id":"50|ec_fp7health::000b9e61f83f5a4b0c35777b7bccdf38","originalId":["ec_fp7health::000b9e61f83f5a4b0c35777b7bccdf38"],"collectedfrom":[{"key":"openaire____::ec_fp7_health","value":"HEALTH FP7 Publications Database","dataInfo":null}],"pid":[{"value":"10.1096/fj.09-145573","qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofcollection":"2016-02-11T18:10:11.811Z","dateoftransformation":"2016-03-08T16:42:14.579Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2016-02-11T18:10:11.811Z","altered":true,"baseURL":"file:///var/lib/dnet/health_crossref","identifier":"","datestamp":"","metadataNamespace":""}},"author":[{"fullname":"Tamassia, N.","name":"N.","surname":"Tamassia","rank":1,"pid":null,"affiliation":null},{"fullname":"Castellucci, M.","name":"M.","surname":"Castellucci","rank":2,"pid":null,"affiliation":null},{"fullname":"Rossato, M.","name":"M.","surname":"Rossato","rank":3,"pid":null,"affiliation":null},{"fullname":"Gasperini, S.","name":"S.","surname":"Gasperini","rank":4,"pid":null,"affiliation":null},{"fullname":"Bosisio, D.","name":"D.","surname":"Bosisio","rank":5,"pid":null,"affiliation":null},{"fullname":"Giacomelli, M.","name":"M.","surname":"Giacomelli","rank":6,"pid":null,"affiliation":null},{"fullname":"Badolato, R.","name":"R.","surname":"Badolato","rank":7,"pid":null,"affiliation":null},{"fullname":"Cassatella, M. A.","name":"M. A.","surname":"Cassatella","rank":8,"pid":null,"affiliation":null},{"fullname":"Bazzoni, F.","name":"F.","surname":"Bazzoni","rank":9,"pid":null,"affiliation":null}],"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Uncovering an IL-10-dependent NF-kappa B recruitment to the IL-1ra promoter that is impaired in STAT3 functionally defective patients","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[],"dateofacceptance":{"value":"2010-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":{"value":"FEDERATION AMER SOC EXP BIOL","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"embargoenddate":null,"source":[{"value":"The FASEB Journal; Vol 24","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"CLOSED","classname":"Closed Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0001","classname":"peerReviewed","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"10|doajarticles::8cec81178926caaca531afbd8eb5d64c","value":"Unknown Repository","dataInfo":null},"url":["http://dx.doi.org/10.1096/fj.09-145573"],"distributionlocation":"","collectedfrom":{"key":"openaire____::ec_fp7_health","value":"HEALTH FP7 Publications Database","dataInfo":null},"dateofacceptance":{"value":"2010-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"journal":{"name":"The FASEB Journal","issnPrinted":"1530-6860","issnOnline":"","issnLinking":"","ep":"1375","iss":"5","sp":"1365","vol":"24","edition":"","conferenceplace":null,"conferencedate":null,"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055114168,"id":"50|ec_fp7health::000c8195edd542e4e64ebb32172cbf89","originalId":["ec_fp7health::000c8195edd542e4e64ebb32172cbf89"],"collectedfrom":[{"key":"openaire____::ec_fp7_health","value":"HEALTH FP7 Publications Database","dataInfo":null}],"pid":[{"value":"10.1097/FJC.0b013e31828780eb","qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofcollection":"2016-02-11T18:09:48.436Z","dateoftransformation":"2016-03-08T16:42:14.58Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2016-02-11T18:09:48.436Z","altered":true,"baseURL":"file:///var/lib/dnet/health_crossref","identifier":"","datestamp":"","metadataNamespace":""}},"author":[{"fullname":"Ford, John","name":"John","surname":"Ford","rank":1,"pid":null,"affiliation":null},{"fullname":"Milnes, James","name":"James","surname":"Milnes","rank":2,"pid":null,"affiliation":null},{"fullname":"Wettwer, Erich","name":"Erich","surname":"Wettwer","rank":3,"pid":null,"affiliation":null},{"fullname":"Christ, Torsten","name":"Torsten","surname":"Christ","rank":4,"pid":null,"affiliation":null},{"fullname":"Rogers, Marc","name":"Marc","surname":"Rogers","rank":5,"pid":null,"affiliation":null},{"fullname":"Sutton, Kathy","name":"Kathy","surname":"Sutton","rank":6,"pid":null,"affiliation":null},{"fullname":"Madge, David","name":"David","surname":"Madge","rank":7,"pid":null,"affiliation":null},{"fullname":"Virag, Laszlo","name":"Laszlo","surname":"Virag","rank":8,"pid":null,"affiliation":null},{"fullname":"Jost, Norbert","name":"Norbert","surname":"Jost","rank":9,"pid":null,"affiliation":null},{"fullname":"Horvath, Zoltan","name":"Zoltan","surname":"Horvath","rank":10,"pid":null,"affiliation":null},{"fullname":"Matschke, Klaus","name":"Klaus","surname":"Matschke","rank":11,"pid":null,"affiliation":null},{"fullname":"Varro, Andras","name":"Andras","surname":"Varro","rank":12,"pid":null,"affiliation":null},{"fullname":"Ravens, Ursula","name":"Ursula","surname":"Ravens","rank":13,"pid":null,"affiliation":null}],"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Human Electrophysiological and Pharmacological Properties of XEN-D0101: A Novel Atrial-Selective Kv1.5/I-Kur Inhibitor","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[],"dateofacceptance":{"value":"2013-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":{"value":"LIPPINCOTT WILLIAMS & WILKINS","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"embargoenddate":null,"source":[{"value":"Journal of Cardiovascular Pharmacology; Vol 61","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"CLOSED","classname":"Closed Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0001","classname":"peerReviewed","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"10|opendoar____::96da2f590cd7246bbde0051047b0d6f7","value":"Unknown Repository","dataInfo":null},"url":["http://dx.doi.org/10.1097/FJC.0b013e31828780eb"],"distributionlocation":"","collectedfrom":{"key":"10|opendoar____::1a551829d50f1400b0dab21fdd969c04","value":"HEALTH FP7 Publications Database","dataInfo":null},"dateofacceptance":{"value":"2013-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"journal":{"name":"Journal of Cardiovascular Pharmacology","issnPrinted":"0160-2446","issnOnline":"","issnLinking":"","ep":"415","iss":"5","sp":"408","vol":"61","edition":"","conferenceplace":null,"conferencedate":null,"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055114204,"id":"50|ec_fp7health::0010eb63e181e3e91b8b6dc6b3e1c798","originalId":["ec_fp7health::0010eb63e181e3e91b8b6dc6b3e1c798"],"collectedfrom":[{"key":"openaire____::ec_fp7_health","value":"HEALTH FP7 Publications Database","dataInfo":null}],"pid":[{"value":"10.1016/j.ajpath.2013.06.019","qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofcollection":"2016-02-11T18:10:16.68Z","dateoftransformation":"2016-03-08T16:42:14.582Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2016-02-11T18:10:16.68Z","altered":true,"baseURL":"file:///var/lib/dnet/health_crossref","identifier":"","datestamp":"","metadataNamespace":""}},"author":[{"fullname":"Pizzolla, Angela","name":"Angela","surname":"Pizzolla","rank":1,"pid":null,"affiliation":null},{"fullname":"Wing, Kajsa","name":"Kajsa","surname":"Wing","rank":2,"pid":null,"affiliation":null},{"fullname":"Holmdahl, Rikard","name":"Rikard","surname":"Holmdahl","rank":3,"pid":null,"affiliation":null}],"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"A Glucose-6-Phosphate Isomerase Peptide Induces T and B Cell-Dependent Chronic Arthritis in C57BL/10 Mice Arthritis without Reactive Oxygen Species and Complement","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[],"dateofacceptance":{"value":"2013-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":{"value":"ELSEVIER SCIENCE INC","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"embargoenddate":null,"source":[{"value":"The American Journal of Pathology; Vol 183","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://www.elsevier.com/open-access/userlicense/1.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0001","classname":"peerReviewed","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"10|doajarticles::8cec81178926caaca531afbd8eb5d64c","value":"Unknown Repository","dataInfo":null},"url":["http://dx.doi.org/10.1016/j.ajpath.2013.06.019"],"distributionlocation":"","collectedfrom":{"key":"10|opendoar____::1a551829d50f1400b0dab21fdd969c04","value":"HEALTH FP7 Publications Database","dataInfo":null},"dateofacceptance":{"value":"2013-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"journal":{"name":"The American Journal of Pathology","issnPrinted":"0002-9440","issnOnline":"","issnLinking":"","ep":"1155","iss":"4","sp":"1144","vol":"183","edition":"","conferenceplace":null,"conferencedate":null,"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055114228,"id":"50|ec_fp7health::00110d3f9d05812aa683d5117964bdcd","originalId":["ec_fp7health::00110d3f9d05812aa683d5117964bdcd"],"collectedfrom":[{"key":"openaire____::ec_fp7_health","value":"HEALTH FP7 Publications Database","dataInfo":null}],"pid":[{"value":"10.1128/MCB.00231-12","qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofcollection":"2016-02-11T18:10:21.541Z","dateoftransformation":"2016-03-08T16:42:14.583Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2016-02-11T18:10:21.541Z","altered":true,"baseURL":"file:///var/lib/dnet/health_crossref","identifier":"","datestamp":"","metadataNamespace":""}},"author":[{"fullname":"Gronroos, E.","name":"E.","surname":"Gronroos","rank":1,"pid":null,"affiliation":null},{"fullname":"Kingston, I. J.","name":"I. J.","surname":"Kingston","rank":2,"pid":null,"affiliation":null},{"fullname":"Ramachandran, A.","name":"A.","surname":"Ramachandran","rank":3,"pid":null,"affiliation":null},{"fullname":"Randall, R. A.","name":"R. A.","surname":"Randall","rank":4,"pid":null,"affiliation":null},{"fullname":"Vizan, P.","name":"P.","surname":"Vizan","rank":5,"pid":null,"affiliation":null},{"fullname":"Hill, C. S.","name":"C. S.","surname":"Hill","rank":6,"pid":null,"affiliation":null}],"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Transforming Growth Factor beta Inhibits Bone Morphogenetic Protein-Induced Transcription through Novel Phosphorylated Smad1/5-Smad3 Complexes","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[],"dateofacceptance":{"value":"2012-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":{"value":"AMER SOC MICROBIOLOGY","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"embargoenddate":null,"source":[{"value":"Molecular and Cellular Biology; Vol 32","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"CLOSED","classname":"Closed Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0001","classname":"peerReviewed","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"openaire____::1256f046-bf1f-4afc-8b47-d0b147148b18","value":"Unknown Repository","dataInfo":null},"url":["http://dx.doi.org/10.1128/MCB.00231-12"],"distributionlocation":"","collectedfrom":{"key":"openaire____::ec_fp7_health","value":"HEALTH FP7 Publications Database","dataInfo":null},"dateofacceptance":{"value":"2012-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"journal":{"name":"Molecular and Cellular Biology","issnPrinted":"0270-7306","issnOnline":"","issnLinking":"","ep":"2916","iss":"14","sp":"2904","vol":"32","edition":"","conferenceplace":null,"conferencedate":null,"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055114253,"id":"50|ec_fp7health::0013c229505d753b29370b1029f196d3","originalId":["ec_fp7health::0013c229505d753b29370b1029f196d3"],"collectedfrom":[{"key":"openaire____::ec_fp7_health","value":"HEALTH FP7 Publications Database","dataInfo":null}],"pid":[{"value":"10.1111/j.1469-0691.2011.03696.x","qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofcollection":"2016-02-11T18:10:16.003Z","dateoftransformation":"2016-03-08T16:42:14.586Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2016-02-11T18:10:16.003Z","altered":true,"baseURL":"file:///var/lib/dnet/health_crossref","identifier":"","datestamp":"","metadataNamespace":""}},"author":[{"fullname":"Espinal, P.","name":"P.","surname":"Espinal","rank":1,"pid":null,"affiliation":null},{"fullname":"Seifert, H.","name":"H.","surname":"Seifert","rank":2,"pid":null,"affiliation":null},{"fullname":"Dijkshoorn, L.","name":"L.","surname":"Dijkshoorn","rank":3,"pid":null,"affiliation":null},{"fullname":"Vila, J.","name":"J.","surname":"Vila","rank":4,"pid":null,"affiliation":null},{"fullname":"Roca, I.","name":"I.","surname":"Roca","rank":5,"pid":null,"affiliation":null}],"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Rapid and accurate identification of genomic species from the Acinetobacter baumannii (Ab) group by MALDI-TOF MS.","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[],"dateofacceptance":{"value":"2012-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":{"value":"Blackwell Publishing","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"embargoenddate":null,"source":[{"value":"Clinical Microbiology and Infection; Vol 18","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://www.elsevier.com/open-access/userlicense/1.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0001","classname":"peerReviewed","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"openaire____::1256f046-bf1f-4afc-8b47-d0b147148b18","value":"Unknown Repository","dataInfo":null},"url":["http://dx.doi.org/10.1111/j.1469-0691.2011.03696.x"],"distributionlocation":"","collectedfrom":{"key":"openaire____::ec_fp7_health","value":"HEALTH FP7 Publications Database","dataInfo":null},"dateofacceptance":{"value":"2012-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"journal":{"name":"Clinical Microbiology and Infection","issnPrinted":"1198-743X","issnOnline":"","issnLinking":"","ep":"1103","iss":"11","sp":"1097","vol":"18","edition":"","conferenceplace":null,"conferencedate":null,"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055114274,"id":"50|ec_fp7health::00161e52ec870cc48b5a0a40c5d88e58","originalId":["ec_fp7health::00161e52ec870cc48b5a0a40c5d88e58"],"collectedfrom":[{"key":"openaire____::ec_fp7_health","value":"HEALTH FP7 Publications Database","dataInfo":null}],"pid":[{"value":"10.1021/ac200237j","qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofcollection":"2016-02-11T18:09:49.972Z","dateoftransformation":"2016-03-08T16:42:14.588Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2016-02-11T18:09:49.972Z","altered":true,"baseURL":"file:///var/lib/dnet/health_crossref","identifier":"","datestamp":"","metadataNamespace":""}},"author":[{"fullname":"Xu, Shoujiang","name":"Shoujiang","surname":"Xu","rank":1,"pid":null,"affiliation":null},{"fullname":"Liu, Yang","name":"Yang","surname":"Liu","rank":2,"pid":null,"affiliation":null},{"fullname":"Wang, Taihong","name":"Taihong","surname":"Wang","rank":3,"pid":null,"affiliation":null},{"fullname":"Li, Jinghong","name":"Jinghong","surname":"Li","rank":4,"pid":null,"affiliation":null}],"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Positive Potential Operation of a Cathodic Electrogenerated Chemiluminescence Immunosensor Based on Luminol and Graphene for Cancer Biomarker Detection","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[],"dateofacceptance":{"value":"2011-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":{"value":"AMER CHEMICAL SOC","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"embargoenddate":null,"source":[{"value":"Analytical Chemistry; Vol 83","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"CLOSED","classname":"Closed Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0001","classname":"peerReviewed","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"openaire____::1256f046-bf1f-4afc-8b47-d0b147148b18","value":"Unknown Repository","dataInfo":null},"url":["http://dx.doi.org/10.1021/ac200237j"],"distributionlocation":"","collectedfrom":{"key":"openaire____::ec_fp7_health","value":"HEALTH FP7 Publications Database","dataInfo":null},"dateofacceptance":{"value":"2011-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"journal":{"name":"Analytical Chemistry","issnPrinted":"0003-2700","issnOnline":"","issnLinking":"","ep":"3823","iss":"10","sp":"3817","vol":"83","edition":"","conferenceplace":null,"conferencedate":null,"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055114298,"id":"50|ec_fp7health::001b3ce526a763539e684a5c8bec1223","originalId":["ec_fp7health::001b3ce526a763539e684a5c8bec1223"],"collectedfrom":[{"key":"openaire____::ec_fp7_health","value":"HEALTH FP7 Publications Database","dataInfo":null}],"pid":[{"value":"10.1038/nrmicro3067","qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofcollection":"2016-02-11T18:10:14.775Z","dateoftransformation":"2016-03-08T16:42:14.589Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2016-02-11T18:10:14.775Z","altered":true,"baseURL":"file:///var/lib/dnet/health_crossref","identifier":"","datestamp":"","metadataNamespace":""}},"author":[{"fullname":"Chandler, Michael","name":"Michael","surname":"Chandler","rank":1,"pid":null,"affiliation":null},{"fullname":"de la Cruz, Fernando","name":"Fernando","surname":"La Cruz","rank":2,"pid":null,"affiliation":null},{"fullname":"Dyda, Fred","name":"Fred","surname":"Dyda","rank":3,"pid":null,"affiliation":null},{"fullname":"Hickman, Alison B.","name":"Alison B.","surname":"Hickman","rank":4,"pid":null,"affiliation":null},{"fullname":"Moncalian, Gabriel","name":"Gabriel","surname":"Moncalian","rank":5,"pid":null,"affiliation":null},{"fullname":"Ton-Hoang, Bao","name":"Bao","surname":"Ton-Hoang","rank":6,"pid":null,"affiliation":null}],"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Breaking and joining single-stranded DNA: the HUH endonuclease superfamily","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[],"dateofacceptance":{"value":"2013-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":{"value":"NATURE PUBLISHING GROUP","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"embargoenddate":null,"source":[{"value":"Nature Reviews Microbiology; Vol 11","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"CLOSED","classname":"Closed Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0001","classname":"peerReviewed","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"openaire____::1256f046-bf1f-4afc-8b47-d0b147148b18","value":"Unknown Repository","dataInfo":null},"url":["http://dx.doi.org/10.1038/nrmicro3067"],"distributionlocation":"","collectedfrom":{"key":"openaire____::ec_fp7_health","value":"HEALTH FP7 Publications Database","dataInfo":null},"dateofacceptance":{"value":"2013-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"journal":{"name":"Nature Reviews Microbiology","issnPrinted":"1740-1526","issnOnline":"","issnLinking":"","ep":"538","iss":"8","sp":"525","vol":"11","edition":"","conferenceplace":null,"conferencedate":null,"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055114326,"id":"50|ec_fp7health::001bd73b6a5ada26a6021d608de6c6a4","originalId":["ec_fp7health::001bd73b6a5ada26a6021d608de6c6a4"],"collectedfrom":[{"key":"openaire____::ec_fp7_health","value":"HEALTH FP7 Publications Database","dataInfo":null}],"pid":[{"value":"10.1016/S0140-6736(12)62202-8","qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofcollection":"2016-02-11T18:10:29.817Z","dateoftransformation":"2016-03-08T16:42:14.591Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2016-02-11T18:10:29.817Z","altered":true,"baseURL":"file:///var/lib/dnet/health_crossref","identifier":"","datestamp":"","metadataNamespace":""}},"author":[{"fullname":"Hansel, Trevor T","name":"Trevor T.","surname":"Hansel","rank":1,"pid":null,"affiliation":null},{"fullname":"Johnston, Sebastian L","name":"Sebastian L.","surname":"Johnston","rank":2,"pid":null,"affiliation":null},{"fullname":"Openshaw, Peter J","name":"Peter J.","surname":"Openshaw","rank":3,"pid":null,"affiliation":null}],"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Microbes and mucosal immune responses in asthma","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[],"dateofacceptance":{"value":"2013-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":{"value":"ELSEVIER SCIENCE INC","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"embargoenddate":null,"source":[{"value":"The Lancet; Vol 381","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"CLOSED","classname":"Closed Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0001","classname":"peerReviewed","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"openaire____::1256f046-bf1f-4afc-8b47-d0b147148b18","value":"Unknown Repository","dataInfo":null},"url":["http://dx.doi.org/10.1016/S0140-6736(12)62202-8"],"distributionlocation":"","collectedfrom":{"key":"openaire____::ec_fp7_health","value":"HEALTH FP7 Publications Database","dataInfo":null},"dateofacceptance":{"value":"2013-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"journal":{"name":"The Lancet","issnPrinted":"0140-6736","issnOnline":"","issnLinking":"","ep":"873","iss":"9869","sp":"861","vol":"381","edition":"","conferenceplace":null,"conferencedate":null,"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055114352,"id":"50|ec_fp7health::001d16a111fbca498017c8d39b0068bf","originalId":["ec_fp7health::001d16a111fbca498017c8d39b0068bf"],"collectedfrom":[{"key":"openaire____::ec_fp7_health","value":"HEALTH FP7 Publications Database","dataInfo":null}],"pid":[{"value":"10.1016/j.expneurol.2011.08.012","qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofcollection":"2016-02-11T18:09:51.03Z","dateoftransformation":"2016-03-08T16:42:14.592Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2016-02-11T18:09:51.03Z","altered":true,"baseURL":"file:///var/lib/dnet/health_crossref","identifier":"","datestamp":"","metadataNamespace":""}},"author":[{"fullname":"Mazarati, Andréy","name":"Andréy","surname":"Mazarati","rank":1,"pid":null,"affiliation":null},{"fullname":"Maroso, Mattia","name":"Mattia","surname":"Maroso","rank":2,"pid":null,"affiliation":null},{"fullname":"Iori, Valentina","name":"Valentina","surname":"Iori","rank":3,"pid":null,"affiliation":null},{"fullname":"Vezzani, Annamaria","name":"Annamaria","surname":"Vezzani","rank":4,"pid":null,"affiliation":null},{"fullname":"Carli, Mirjana","name":"Mirjana","surname":"Carli","rank":5,"pid":null,"affiliation":null}],"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"High-mobility group box-1 impairs memory in mice through both toll-like receptor 4 and Receptor for Advanced Glycation End Products","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[],"dateofacceptance":{"value":"2011-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[{"value":"Experimental Neurology; Vol 232","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"CLOSED","classname":"Closed Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0001","classname":"peerReviewed","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"openaire____::1256f046-bf1f-4afc-8b47-d0b147148b18","value":"Unknown Repository","dataInfo":null},"url":["http://dx.doi.org/10.1016/j.expneurol.2011.08.012"],"distributionlocation":"","collectedfrom":{"key":"openaire____::ec_fp7_health","value":"HEALTH FP7 Publications Database","dataInfo":null},"dateofacceptance":{"value":"2011-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"journal":{"name":"Experimental Neurology","issnPrinted":"0014-4886","issnOnline":"","issnLinking":"","ep":"148","iss":"2","sp":"143","vol":"232","edition":"","conferenceplace":null,"conferencedate":null,"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}} \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/publication/update_datasource/publication_10.json.gz b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/publication/update_datasource/publication_10.json.gz deleted file mode 100644 index 99c4015e7..000000000 Binary files a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/publication/update_datasource/publication_10.json.gz and /dev/null differ diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/publication/update_datasource/software b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/publication/update_datasource/software new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/software/dataset b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/software/dataset new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/software/otherresearchproduct b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/software/otherresearchproduct new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/software/publication b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/software/publication new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/software/software b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/software/software new file mode 100644 index 000000000..92c396a7f --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/software/software @@ -0,0 +1,10 @@ +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055698387,"id":"50|od______1582::4132f5ec9496f0d6adc7b00a50a56ff4","originalId":["od______1582::4132f5ec9496f0d6adc7b00a50a56ff4"],"collectedfrom":[{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null}],"pid":[],"dateofcollection":"2019-01-24T16:45:07Z","dateoftransformation":"","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-01-23T18:34:35.459Z","altered":true,"baseURL":"http://oai.prodinra.inra.fr/ft","identifier":"oai:prodinra.inra.fr:442576","datestamp":"2018-11-12T00:00:00Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Bitteur, Sylvaine","name":"Sylvaine","surname":"Bitteur","rank":1,"pid":null,"affiliation":null},{"fullname":"Hassouna, Melynda","name":"Melynda","surname":"Hassouna","rank":2,"pid":null,"affiliation":null}],"resulttype":{"classid":"software","classname":"software","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value": "Severe acute respiratory syndrome coronavirus 2","qualifier": {"classid": "","classname": "","schemeid": "","schemename": "" },"dataInfo": {"invisible": false,"inferred": false,"deletedbyinference": false,"trust": "0.9","inferenceprovenance": "","provenanceaction": {"classid": "sysimport:crosswalk:repository","classname": "sysimport:crosswalk:repository","schemeid": "dnet:provenanceActions","schemename": "dnet:provenanceActions"}}}],"title":[{"value":"Charte graphique et site web International Symposium EmiLi 2012","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[],"dateofacceptance":{"value":"2012-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"id":"http://zenodo.org/communities/dimpo"}],"externalReference":[],"instance":[{"license":{"value":"https://creativecommons.org/licenses/by-nd/3.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0029","classname":"Software","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"10|doajarticles::8cec81178926caaca531afbd8eb5d64c","value":"ProdInra","dataInfo":null},"url":["http://prodinra.inra.fr/record/442576"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null},"dateofacceptance":{"value":"2012-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"documentationUrl":[],"license":[],"codeRepositoryUrl":null,"programmingLanguage":null} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055711745,"id":"50|od______1582::501b25d420f808c8eddcd9b16e917f11","originalId":["od______1582::501b25d420f808c8eddcd9b16e917f11"],"collectedfrom":[{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null}],"pid":[],"dateofcollection":"2019-01-24T16:45:07Z","dateoftransformation":"","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-01-23T19:54:07.667Z","altered":true,"baseURL":"http://oai.prodinra.inra.fr/ft","identifier":"oai:prodinra.inra.fr:255703","datestamp":"2018-03-20T00:00:00Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Petit R.J., Remy","name":"Remy","surname":"Petit R J","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"software","classname":"software","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"mesh:c000657245","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"richesse allélique","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"gène polymorphe","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"loci","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"diversité des populations","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Contrib","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"This program provides a measure of the contribution of each population to total diversity (measured by H, the expected heterozygosity, or by R, the allelic richness). This contribution is splitted in two components: one due to the diversity of the population, the other due to its differentiation from the remaining populations. The program may also be used to obtain allelic richness after rarefaction (to a sample size chosen by the investigator) for a set of populations. It can be used in conjunction with the program haplodiv, based on the paper by Pons & Petit 1995, TAG 90, 462-470, which will provide standard errors for the diversity and differentiation parameters. The input file is a text file (see example: rartest.txt), where the first line indicates the number of haplotypes (here it is 18), the number of populations (here it is 4), and the rarefaction size (it should not be larger than the smallest population sample size; here the rarefaction size is 10, and the smallest sample size is 20). Then follows the data for each population (line), with the number of each haplotype in each population (don't use relative frequencies): 18 4 10 1 0 1 0 0 0 1 1 ...(18 columns) 0 1 2 1 1 0 13 0 ... 0 0 8 0 0 3 6 0 ... 1 0 9 0 0 3 7 1 Results can be seen in the output file (rartest.out here; to be printed horizontally). General measures are given first: within population diversity (Hs), total diversity (Ht), and Gst are given, followed by similar measures based on allelic richness. Then you get the results for each population : H, its standard error, allelic richness after rarefaction, the divergence from the other populations (DHs, DHt, DGst, see the paper in Conservation Biology), and the contributions Ct, Cs, Cd followed by the contributions for allelic richness measures. The program is written for an haploid gene but may be used for nuclear genes, assuming Hardy-Weinberg equilibrium. How to proceed when there are several loci? Do not take the mean across Gst or across Contributions. They are ratios, so you should take the mean of the numerator and the mean of the denominator separately. For the denominator: take the mean of hT and Rt-1 across loci. For the numerator: multiply the contributions by hT or Rt-1 (respectively for contributions to diversity or to allelic richness) and take the mean of these products across loci. Then compute the ratio of the two means.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2006-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"id":"http://zenodo.org/communities/covid_19_senacyt_abc_panama"},{"id":"covid-19"}],"externalReference":[],"instance":[{"license":{"value":"https://creativecommons.org/licenses/by-sa/3.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0029","classname":"Software","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"10|opendoar____::87ae6fb631f7c8a627e8e28785d9992d","value":"ProdInra","dataInfo":null},"url":["http://prodinra.inra.fr/record/255703"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null},"dateofacceptance":{"value":"2006-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"documentationUrl":[],"license":[],"codeRepositoryUrl":null,"programmingLanguage":null} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055718681,"id":"50|od______1582::581621232a561b7e8b4952b18b8b0e56","originalId":["od______1582::581621232a561b7e8b4952b18b8b0e56"],"collectedfrom":[{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null}],"pid":[],"dateofcollection":"2019-01-24T16:45:07Z","dateoftransformation":"","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-01-23T19:54:07.673Z","altered":true,"baseURL":"http://oai.prodinra.inra.fr/ft","identifier":"oai:prodinra.inra.fr:255707","datestamp":"2018-03-20T00:00:00Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Petit R.J., Remy","name":"Remy","surname":"Petit R J","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"software","classname":"software","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"natural resources and environment","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"richesse allélique","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"gène polymorphe","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"différenciation génétique","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"loci","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"application informatique","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"diversité des populations","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"haploïde","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Logiciels Permut et cpSSR","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"THE PROGRAM PERMUT AND THE PROGRAM CpSSR BECOME ONLY ONE PROGRAM.[br/] When you run the program you can choose if you want to use permut or CpSSR.[br/][br/] README PERMUT[br/] This program is based on the papers (Pons & Petit Genetics 1996, 144:1237-1245) and (Burban et al. 1999, Mol Ecol 8, 1593-1602).[br/] It computes measures of diversity and differenciation from haploid population genetic data, when a measure of the distance between haplotypes is available, and test whether the differentiation and diversity measures differ from the equivalent measures that do not take into account the distances between haplotypes (ie, that consider all haplotypes equally divergent).[br/] The source file should be an ASCII file (its name should have 8 characters maximum: 12345678.txt) and should include the following information:[br/] First line :[br/] Number of cytotypes Number of populations Number of characters distinguishing the variants (for instance number of polymorphic fragments, or of polymorphic nucleotide sites). The program asks for the number of permutations to be made.[br/] see the example (\\ExamplePermut\\input.txt and \\ExamplePermut\\output.out).[br/] Then follows the number of individuals having a given cytotype (column) in a given population (row). Finally, and without interruption, provide the table of character states for all haplotypes, where each line corresponds to one haplotype, and each column to a character. No column should be empty (no missing haplotype) and each population (row) should be composed of AT LEAST 3 individuals![br/] The output file provides permutated values of Nst in a single row, and the value of the last 5% and last 1%. The mean of the permutated values is also given and should be close to the Gst value (by construction). To test if the observed Nst value is larger than the Gst, we count how many permutated values are larger than the observed Nst. If you have 5% of the permutated values greater than the observed value of Nst, then your test is not significant, otherwise it is and you know the P-value. This is akin to testing if Gst = Nst.[br/] [br/] README CpSSR :[br/] It computes measures of diversity and differenciation from haploid population genetic data, when the difference in number of repeats between alleles is available, and tests whether the differentiation and diversity measures differ from the equivalent measures when the distances between haplotypes is not considered (ie, when all haplotypes are considered equally divergent). The source file should be an ASCII file (its name should have 8 characters maximum: 12345678.txt) and should include the following information:[br/] First line :[br/] Number of cytotypes Number of populations Number of cpSSR loci. The program asks for the number of permutations to be made. See the example (\\ExampleCpSSR\\input.txt and \\ExamplePermut\\CpSSR.out).[br/] Then follows the number of individuals having a given haplotype (column) in a given population (row). Finally, and without interruption, provide the table of length variant states for all haplotypes, where each line corresponds to one haplotype, and each column to a character. No column should be empty (no missing haplotype) and each population (row) should be composed of AT LEAST 3 individuals![br/] The output file provides permutated values of Rst in a single row, and the value of the last 5% and last 1%. The mean of the permutated values is also given and should be close to the Gst value (by construction). To test if the observed Rst value is larger than the Gst, you count how many permutated values are larger than the observed Rst. If you have 5% of the permutated values greater than the observed value of Rst, then your test is not significant, otherwise it is and you know the P-value. This is akin to testing if Gst = Rst. I usually go for a one-sided test (i.e. I test if Rst>Gst, and not Rst<>Gst).","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2012-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"id":"http://zenodo.org/communities/euromixproject"}],"externalReference":[],"instance":[{"license":{"value":"https://creativecommons.org/licenses/by-sa/3.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0029","classname":"Software","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"10|opendoar____::fd4c2dc64ccb8496e6f1f94c85f30d06","value":"ProdInra","dataInfo":null},"url":["http://prodinra.inra.fr/record/255707"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null},"dateofacceptance":{"value":"2012-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"documentationUrl":[],"license":[],"codeRepositoryUrl":null,"programmingLanguage":null} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055721330,"id":"50|od______1582::5aec1186054301b66c0c5dc35972a589","originalId":["od______1582::5aec1186054301b66c0c5dc35972a589"],"collectedfrom":[{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null}],"pid":[],"dateofcollection":"2019-01-24T16:45:07Z","dateoftransformation":"","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-01-23T18:54:28.567Z","altered":true,"baseURL":"http://oai.prodinra.inra.fr/ft","identifier":"oai:prodinra.inra.fr:402973","datestamp":"2018-03-19T00:00:00Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Muratorio, Sylvie","name":"Sylvie","surname":"Muratorio","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"software","classname":"software","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"modèle de simulation","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"modèle physiologique","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"approche génétique","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"castanea","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"fagus sylvatica","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"PDG Documentation, version 2","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[],"dateofacceptance":{"value":"2017-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"https://creativecommons.org/licenses/by-sa/3.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0029","classname":"Software","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null},"url":["http://prodinra.inra.fr/record/402973"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null},"dateofacceptance":{"value":"2017-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"documentationUrl":[],"license":[],"codeRepositoryUrl":null,"programmingLanguage":null} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055728345,"id":"50|od______1582::626bf0af9988f811e6290d694587edf5","originalId":["od______1582::626bf0af9988f811e6290d694587edf5"],"collectedfrom":[{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null}],"pid":[],"dateofcollection":"2019-01-24T16:45:07Z","dateoftransformation":"","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-01-23T18:57:53.59Z","altered":true,"baseURL":"http://oai.prodinra.inra.fr/ft","identifier":"oai:prodinra.inra.fr:396375","datestamp":"2018-12-20T00:00:00Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Chades, Iadine","name":"Iadine","surname":"Chades","rank":1,"pid":null,"affiliation":null},{"fullname":"Chapron, Guillaume","name":"Guillaume","surname":"Chapron","rank":2,"pid":null,"affiliation":null},{"fullname":"Cros, Marie-Josee","name":"Marie-Josee","surname":"Cros","rank":3,"pid":null,"affiliation":null},{"fullname":"Garcia, Frederick","name":"Frederick","surname":"Garcia","rank":4,"pid":null,"affiliation":null},{"fullname":"Sabbadin, Regis","name":"Regis","surname":"Sabbadin","rank":5,"pid":null,"affiliation":null}],"resulttype":{"classid":"software","classname":"software","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[],"title":[{"value":"Package MDPtoolbox R","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"The Markov Decision Processes (MDP) toolbox proposes functions related to the resolution of discrete-time Markov Decision Processes: finite horizon, value iteration, policy iteration, linear programming algorithms with some variants and also proposes some functions related to Reinforcement Learning.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2017-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0029","classname":"Software","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null},"url":["http://prodinra.inra.fr/record/396375"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null},"dateofacceptance":{"value":"2017-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"documentationUrl":[],"license":[],"codeRepositoryUrl":null,"programmingLanguage":null} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055729488,"id":"50|od______1582::639909adfad9d708308f2aedb733e4a0","originalId":["od______1582::639909adfad9d708308f2aedb733e4a0"],"collectedfrom":[{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null}],"pid":[],"dateofcollection":"2019-01-24T16:45:07Z","dateoftransformation":"","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-01-23T18:50:56.823Z","altered":true,"baseURL":"http://oai.prodinra.inra.fr/ft","identifier":"oai:prodinra.inra.fr:408837","datestamp":"2018-03-19T00:00:00Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Becheler, Ronan","name":"Ronan","surname":"Becheler","rank":1,"pid":null,"affiliation":null},{"fullname":"Masson, Jean-Pierre","name":"Jean-Pierre","surname":"Masson","rank":2,"pid":null,"affiliation":null},{"fullname":"Arnaud-Haond, Sophie","name":"Sophie","surname":"Arnaud-Haond","rank":3,"pid":null,"affiliation":null},{"fullname":"Halkett, Fabien","name":"Fabien","surname":"Halkett","rank":4,"pid":null,"affiliation":null},{"fullname":"Mariette, Stéphanie","name":"Stéphanie","surname":"Mariette","rank":5,"pid":null,"affiliation":null},{"fullname":"Guillemin, Marie-Laure","name":"Marie-Laure","surname":"Guillemin","rank":6,"pid":null,"affiliation":null},{"fullname":"Valero, Myriam","name":"Myriam","surname":"Valero","rank":7,"pid":null,"affiliation":null},{"fullname":"Destombe, Christophe","name":"Christophe","surname":"Destombe","rank":8,"pid":null,"affiliation":null},{"fullname":"Stoeckel, Solenn","name":"Solenn","surname":"Stoeckel","rank":9,"pid":null,"affiliation":null}],"resulttype":{"classid":"software","classname":"software","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"clonalite","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"eucaryote","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"reproduction clonale","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"approche bayésienne","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"écologie végétale","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"logiciel","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"endogamie","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"autoincompatibilité","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"ClonEstiMate 1.01","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"ClonEstiMate, a Bayesian method for quantifying rates of clonality of populations genotyped at two-time steps","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2016-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"https://creativecommons.org/licenses/by-sa/3.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0029","classname":"Software","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null},"url":["http://prodinra.inra.fr/record/408837"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null},"dateofacceptance":{"value":"2016-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"documentationUrl":[],"license":[],"codeRepositoryUrl":null,"programmingLanguage":null} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055738736,"id":"50|od______1582::6e7a9b21a2feef45673890432af34244","originalId":["od______1582::6e7a9b21a2feef45673890432af34244"],"collectedfrom":[{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null}],"pid":[],"dateofcollection":"2019-01-24T16:45:07Z","dateoftransformation":"","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-01-23T18:53:57.871Z","altered":true,"baseURL":"http://oai.prodinra.inra.fr/ft","identifier":"oai:prodinra.inra.fr:403174","datestamp":"2018-03-19T00:00:00Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Delenne, Jean-Yves","name":"Jean-Yves","surname":"Delenne","rank":1,"pid":null,"affiliation":null},{"fullname":"Richefeu, Vincent","name":"Vincent","surname":"Richefeu","rank":2,"pid":null,"affiliation":null},{"fullname":"Frank, Xavier","name":"Xavier","surname":"Frank","rank":3,"pid":null,"affiliation":null},{"fullname":"Radjaï, Farhang","name":"Farhang","surname":"Radjaï","rank":4,"pid":null,"affiliation":null}],"resulttype":{"classid":"software","classname":"software","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Modélisation et simulation","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Modeling and Simulation","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"structure granulaire","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"algorithme","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"simulation numérique","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"flux de gaz","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"flux de liquide","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Flowbox","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"The code FLOWbox is dedicated to the computation of flow through porous and granular materials.\nFLOWbox is based on an optimized 3D Lattice Boltzmann algorithm for the computation of liquid or gas flows directly at the scale of heterogeneities. FLOWbox intends to be a powerful and versatile software able to operate on highly detailed microstructures in a systematic fashion. These microstructures can be generated either from numerical simulation or from tomography.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2015-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"https://creativecommons.org/licenses/by-sa/3.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0029","classname":"Software","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null},"url":["http://prodinra.inra.fr/record/403174"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null},"dateofacceptance":{"value":"2015-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"documentationUrl":[],"license":[],"codeRepositoryUrl":null,"programmingLanguage":null} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055741711,"id":"50|od______1582::71dd00de0e70764d2800a766c0b165db","originalId":["od______1582::71dd00de0e70764d2800a766c0b165db"],"collectedfrom":[{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null}],"pid":[],"dateofcollection":"2019-01-24T16:45:07Z","dateoftransformation":"","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-01-23T18:35:31.489Z","altered":true,"baseURL":"http://oai.prodinra.inra.fr/ft","identifier":"oai:prodinra.inra.fr:442564","datestamp":"2018-11-12T00:00:00Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Bitteur, Sylvaine","name":"Sylvaine","surname":"Bitteur","rank":1,"pid":null,"affiliation":null},{"fullname":"Lortal, Sylvie","name":"Sylvie","surname":"Lortal","rank":2,"pid":null,"affiliation":null}],"resulttype":{"classid":"software","classname":"software","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[],"title":[{"value":"Charte graphique et site web MILK International Symposium","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[],"dateofacceptance":{"value":"2014-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"https://creativecommons.org/licenses/by-nd/3.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0029","classname":"Software","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null},"url":["http://prodinra.inra.fr/record/442564"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null},"dateofacceptance":{"value":"2014-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"documentationUrl":[],"license":[],"codeRepositoryUrl":null,"programmingLanguage":null} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055745351,"id":"50|od______1582::764d9ba73f2f3e794e00a80b075330ef","originalId":["od______1582::764d9ba73f2f3e794e00a80b075330ef"],"collectedfrom":[{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null}],"pid":[],"dateofcollection":"2019-01-24T16:45:07Z","dateoftransformation":"","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-01-23T18:41:37.345Z","altered":true,"baseURL":"http://oai.prodinra.inra.fr/ft","identifier":"oai:prodinra.inra.fr:407117","datestamp":"2018-05-28T00:00:00Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Favre, Colette","name":"Colette","surname":"Favre","rank":1,"pid":null,"affiliation":null},{"fullname":"Grel, Audrey","name":"Audrey","surname":"Grel","rank":2,"pid":null,"affiliation":null},{"fullname":"Granier, Evelyne","name":"Evelyne","surname":"Granier","rank":3,"pid":null,"affiliation":null},{"fullname":"Cosserat-Mangeot, Régine","name":"Régine","surname":"Cosserat-Mangeot","rank":4,"pid":null,"affiliation":null},{"fullname":"Bachacou, Jean","name":"Jean","surname":"Bachacou","rank":5,"pid":null,"affiliation":null},{"fullname":"LEROY, Nathalie","name":"Nathalie","surname":"Leroy","rank":6,"pid":null,"affiliation":null},{"fullname":"Dupouey, Jean-Luc","name":"Jean-Luc","surname":"Dupouey","rank":7,"pid":null,"affiliation":null}],"resulttype":{"classid":"software","classname":"software","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"fra/fre","classname":"French","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"digitalisation","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"carte des sols","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"géoréférencement","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"vectorisation","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"France","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"usage du sol","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Digitalisation des cartes anciennes : Manuel pour la vectorisation de l'usage des sols et le géo-référencement des minutes 1:40 000 de la carte d' Etat-Major","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[],"dateofacceptance":{"value":"2017-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"https://creativecommons.org/licenses/by-sa/3.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0029","classname":"Software","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null},"url":["http://prodinra.inra.fr/record/407117"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null},"dateofacceptance":{"value":"2017-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"documentationUrl":[],"license":[],"codeRepositoryUrl":null,"programmingLanguage":null} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055748883,"id":"50|od______1582::7a6ace3d7ad42ac813e4955f66a44435","originalId":["od______1582::7a6ace3d7ad42ac813e4955f66a44435"],"collectedfrom":[{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null}],"pid":[],"dateofcollection":"2019-01-24T16:45:07Z","dateoftransformation":"","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2019-01-23T18:52:22.609Z","altered":true,"baseURL":"http://oai.prodinra.inra.fr/ft","identifier":"oai:prodinra.inra.fr:407676","datestamp":"2018-03-19T00:00:00Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Desjeux, Yann","name":"Yann","surname":"Desjeux","rank":1,"pid":null,"affiliation":null},{"fullname":"Latruffe, Laure","name":"Laure","surname":"Latruffe","rank":2,"pid":null,"affiliation":null}],"resulttype":{"classid":"software","classname":"software","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Stochastic Frontier Analysis (SFA);R; R package","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"sfadv: Advanced Methods for Stochastic Frontier Analysis. R package version 1.0.1","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Stochastic frontier analysis with advanced methods.\nIn particular, it applies the approach proposed by Latruffe et al. (2017) to estimate a stochastic frontier with technical inefficiency effects when one input is endogenous.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2017-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"https://creativecommons.org/licenses/by-sa/3.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0029","classname":"Software","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null},"url":["http://prodinra.inra.fr/record/407676"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::1582","value":"ProdInra","dataInfo":null},"dateofacceptance":{"value":"2017-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"documentationUrl":[],"license":[],"codeRepositoryUrl":null,"programmingLanguage":null} diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/software/software_10.json.gz b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/software/software_10.json.gz deleted file mode 100644 index 3dcadf41d..000000000 Binary files a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/bulktag/sample/software/software_10.json.gz and /dev/null differ diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/eosctag/galaxy/publication b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/eosctag/galaxy/publication new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/eosctag/jupyter/publication b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/eosctag/jupyter/publication new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/eosctag/twitter/publication b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/eosctag/twitter/publication new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/preparedInfo/resultCommunityList.json b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/preparedInfo/resultCommunityList.json new file mode 100644 index 000000000..bd4674c4f --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/preparedInfo/resultCommunityList.json @@ -0,0 +1,36 @@ +{"communityList":["beopen"],"resultId":"50|dedup_wf_001::afaf128022d29872c4dad402b2db04fe"} +{"communityList":["beopen"],"resultId":"50|dedup_wf_001::3f62cfc27024d564ea86760c494ba93b"} +{"communityList":["euromarine","mes"],"resultId":"50|od________18::8887b1df8b563c4ea851eb9c882c9d7b"} +{"communityList":["euromarine","mes"],"resultId":"50|doajarticles::8d817039a63710fcf97e30f14662c6c8"} +{"communityList":["euromarine","mes"],"resultId":"50|doajarticles::3c98f0632f1875b4979e552ba3aa01e6"} +{"communityList":["euromarine","mes"],"resultId":"50|doajarticles::53b70ea6e0769d02ddf93307ec8e3e92"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::ef1ac6efc10f420fa9e190e49644f1f2"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::b738aa93950dddfb0294df2e8fdf0579"} +{"communityList":["euromarine","mes"],"resultId":"50|doajarticles::befccb1f9e6b833fd82e587737ae9e7d"} +{"communityList":["euromarine","mes"],"resultId":"50|doajarticles::bf1cba621615e27db1692865a5f35a0b"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::e105de571b336daae05f0e75cf740c5c"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::1fe4f347c9df657b7ba520987d79436e"} +{"communityList":["euromarine","mes"],"resultId":"50|doajarticles::6d7c00a8c8e59f0215459e2e4ee3fd6c"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::39ec88ef4127db0ea1b88938f1c52889"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::3496709db804d98f76c45d7ed023dd95"} +{"communityList":["euromarine","mes"],"resultId":"50|doajarticles::dc97fffbdb6d35f792fc0ab428ff065c"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::b61d082d96619d9b7a876e6dce44cf65"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::32a96881c3036cf2d2165bb2d276ea82"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::76e9e6a959ba588483c74ec580369864"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::1487a0a92572376d95d6cc3f066504b7"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::413a0a0656f888cce9c15f6be6df60e3"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::25c3e91960cbd7a8f95a2e511cbffddd"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::4d523b52094a689856e479bb99063c7a"} +{"communityList":["euromarine","mes"],"resultId":"50|od______2663::393c7262bb71642b7bb4c67cfeab02c5"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::0b3333d875b91ffa4db0735efec94e7a"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::0699c30043edfae40786d80acd20d300"} +{"communityList":["euromarine","mes"],"resultId":"50|doajarticles::7f29ade677e66ffbf1312fa837bc73ca"} +{"communityList":["euromarine","mes"],"resultId":"50|doajarticles::7ba6627ac7590d367cc01bbac4d518e8"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::8ad9bc047433401947dc0cdb4a989cee"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::cce70f27d85df658479d0ec0046a4eb3"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::74304be834b7013dbaeb73c3a19a654b"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::46fc13a87befb6a83ac9c63580528ab0"} +{"communityList":["euromarine","mes"],"resultId":"50|doajarticles::66f1867488b62d9c9fb734273775e203"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::79236995d5c30e5234a47cee4a728cae"} +{"communityList":["euromarine","mes"],"resultId":"50|od______2386::cb7f6cb01d1a835612731d645842f699"} +{"communityList":["euromarine","mes"],"resultId":"50|dedup_wf_001::d424daa43f97a434eb0a12289410cade"} \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/preparedInfo/resultCommunityList.json.gz b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/preparedInfo/resultCommunityList.json.gz deleted file mode 100644 index 8b452d0e1..000000000 Binary files a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/preparedInfo/resultCommunityList.json.gz and /dev/null differ diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/relation/relation b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/relation/relation new file mode 100644 index 000000000..860e837b7 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/relation/relation @@ -0,0 +1,20 @@ +{"subRelType": "affiliation", "relClass": "hasAuthorInstitution", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.7731"}, "target": "20|openorgs____::775eab3c1281cb91d53a31c4a1ba1090", "lastupdatetimestamp": 1694431186898, "relType": "resultOrganization", "source": "50|57a035e5b1ae::803aaad4decab7e27cd4b52a1931b3a1", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "hasAuthorInstitution", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "20|openorgs____::775eab3c1281cb91d53a31c4a1ba1090", "lastupdatetimestamp": 1694431155490, "relType": "resultOrganization", "source": "50|57a035e5b1ae::a02e9e4087bca50687731ae5c765b5e1", "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "hasAuthorInstitution", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "20|openorgs____::e66fe5dd092752e1dd6fd29fc699933a", "lastupdatetimestamp": 1694431195409, "relType": "resultOrganization", "source": "50|57a035e5b1ae::a77232ffca9115fcad51c3503dbc7e3e", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "hasAuthorInstitution", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.7731"}, "target": "20|pending_org_::eb0669daa9efeb898a3090d8aac7c953", "lastupdatetimestamp": 1694431195538, "relType": "resultOrganization", "source": "50|57a035e5b1ae::d5be548ca7ae489d762f893be67af52f", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "hasAuthorInstitution", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "20|openorgs____::eb0669daa9efeb898a3090d8aac7c953", "lastupdatetimestamp": 1694431216929, "relType": "resultOrganization", "source": "50|RECOLECTA___::031d8312287a0108202acd8c5957fcb5", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "hasAuthorInstitution", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "20|pending_org_::26d4324bfca459ab17e1efd966fba8d7", "lastupdatetimestamp": 1694431156296, "relType": "resultOrganization", "source": "50|RECOLECTA___::0ac43c9933175f1d0e091ba4dc814565", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "hasAuthorInstitution", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "20|pending_org_::fc8f734ba211cfc8a3769189808338c2", "lastupdatetimestamp": 1694431218717, "relType": "resultOrganization", "source": "50|RECOLECTA___::1c6c582aa2d57c932069bc4382653229", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "hasAuthorInstitution", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "20|pending_org_::15c4bd8602727bff4ecbaf69e7ac43af", "lastupdatetimestamp": 1694431211627, "relType": "resultOrganization", "source": "50|RECOLECTA___::21c4e85b761c898dd0f6d59d9f9b85f1", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "hasAuthorInstitution", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "20|pending_org_::6e4694bb54928162e3736e2042663ff1", "lastupdatetimestamp": 1694431213910, "relType": "resultOrganization", "source": "50|RECOLECTA___::22436b0491ae186b64671a0667551830", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "hasAuthorInstitution", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "20|openorgs____::5665ec851e301a1f816ee0be3e98757b", "lastupdatetimestamp": 1694431212739, "relType": "resultOrganization", "source": "50|RECOLECTA___::6739f9dda9d6e4703b70f908a4ab6259", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "hasAuthorInstitution", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "20|pending_org_::7ccc3885d6c13b55952c4af07e95f6a6", "lastupdatetimestamp": 1694431203420, "relType": "resultOrganization", "source": "50|RECOLECTA___::a3baa9c23ff95de4f09bf711bcf934a5", "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "hasAuthorInstitution", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.8997"}, "target": "20|openorgs____::2cd85ac41e550e32a488a1b26a71fdd8", "lastupdatetimestamp": 1694431162512, "relType": "resultOrganization", "source": "50|RECOLECTA___::ce1f62947f2773709b75e57ec91eca51", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "hasAuthorInstitution", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "20|pending_org_::2f224aa8c572c740fac1ed8b1a38aa21", "lastupdatetimestamp": 1694431204317, "relType": "resultOrganization", "source": "50|RECOLECTA___::df660a72ea2d758e542cdd0d63dcdbd1", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "hasAuthorInstitution", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.7731"}, "target": "20|openorgs____::d4c564d89cc281f00a27ff7684da5668", "lastupdatetimestamp": 1694431222761, "relType": "resultOrganization", "source": "50|altaiap_____::5c53480b2300ae410d183822b0c1ee9b", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "hasAuthorInstitution", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "20|pending_org_::5f8192f98afda4a06afb4386b7c913cc", "lastupdatetimestamp": 1694431180171, "relType": "resultOrganization", "source": "50|altaiap_____::d036acbdb3155339d2fa77455a0b3d95", "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "hasAuthorInstitution", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.8998"}, "target": "20|pending_org_::afc6d809fd8a8db5ee592469c12a7dc8", "lastupdatetimestamp": 1694431193653, "relType": "resultOrganization", "source": "50|arXiv_______::0007ee48e3aa0c409dc68f172bbc76a8", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "hasAuthorInstitution", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.8998"}, "target": "20|openorgs____::5ab85d71ee109cc81a2bc28cbdeba96a", "lastupdatetimestamp": 1694431224324, "relType": "resultOrganization", "source": "50|arXiv_______::00285f6ee59920bcdb4d96d6cd240095", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "hasAuthorInstitution", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "20|pending_org_::7d22ea802b3405becbde1e2e1ea59197", "lastupdatetimestamp": 1694431220671, "relType": "resultOrganization", "source": "50|arXiv_______::002eb5d6ee54ba872b882bbd3824aa96", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "hasAuthorInstitution", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.8847"}, "target": "20|pending_org_::c44367f733bf59e75fc7e92eb9ad4489", "lastupdatetimestamp": 1694431179461, "relType": "resultOrganization", "source": "50|arXiv_______::00480a6b5ae2cd88dbd7781e1ec341aa", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "hasAuthorInstitution", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.8998"}, "target": "20|openorgs____::293e60068d63e17e20f2de54944cae01", "lastupdatetimestamp": 1694431219918, "relType": "resultOrganization", "source": "50|arXiv_______::00766c4ea96b8b797528b511b793ba62", "collectedfrom": [], "validated": false, "properties": []} \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/sample/dataset b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/sample/dataset new file mode 100644 index 000000000..61a1da1ac --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/sample/dataset @@ -0,0 +1,10 @@ +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055868909,"id":"50|dedup_wf_001::afaf128022d29872c4dad402b2db04fe","originalId":["od______3989::02dd5d2c222191b0b9bd4f33c8e96529"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[{"value":"10.4185/RLCS-2018-1243","qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofcollection":"2020-03-03T13:05:26.091Z","dateoftransformation":"2020-03-03T13:06:53.161Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:26.091Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/562","datestamp":"2018-01-23T15:06:07Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"affiliation":[],"fullname":"Jung, Nicole","name":"Nicole","pid":[{"dataInfo":null,"qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":null,"schemename":null},"value":"0000-0001-9513-2468"}],"rank":1,"surname":"Jung"},{"affiliation":[],"fullname":"Gräßle, Simone","name":"Simone","pid":[],"rank":2,"surname":"Gräßle"}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"yihadismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"viralidad","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"vídeo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"propaganda","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"terrorismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"terrorism","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"jihadism","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"virality","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"video","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"5903 Ideologías Políticas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"6310.13 Terrorismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"El individualismo como estrategia","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Individualism as an improvised strategy","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Se analiza como el Yihadismo distribuye su mensaje propaganístico en You Tube.\nUniversidad Camilo José Cela","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"MediaLab - UCJC","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"propagation:community:organizationtoresult","classname":"Propagation of community result through organization to result association","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"beopen"}],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/562"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055868954,"id":"50|dedup_wf_001::3f62cfc27024d564ea86760c494ba93b","originalId":["od______3989::05d8c751462f9bb8d2b06956dfbc5c7b"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:26.079Z","dateoftransformation":"2020-03-03T13:06:53.239Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:26.079Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/227","datestamp":"2017-11-15T16:29:55Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"affiliation":[],"fullname":"Fischer, Malte","name":"Malte","pid":[{"dataInfo":null,"qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":null,"schemename":null},"value":"0000-0002-2806-1302"}],"rank":1,"surname":"Fischer"},{"affiliation":[],"fullname":"Barbul, Daniel","name":"Daniel","pid":[],"rank":2,"surname":"Barbul"},{"affiliation":[],"fullname":"Schmidtmann, Marc","name":"Marc","pid":[{"dataInfo":null,"qualifier":{"classid":"MAG Identifier","classname":"MAG Identifier","schemeid":null,"schemename":null},"value":"2024269002"}],"rank":3,"surname":"Schmidtmann"},{"affiliation":[],"fullname":"Beckhaus, Ruediger","name":"Ruediger","pid":[],"rank":4,"surname":"Beckhaus"}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Actividad Física y del Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Eventos deportivos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Retos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"I Congreso Nuevos Retos en los Eventos Deportivos","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"I Congreso Nuevos Retos en los Eventos Deportivos, celebrado en la Universidad Camilo José Cela.\n\n\n\nDerivado del proyecto de investigación \"La situación de los eventos deportivos en España a través de su estructuras y de sus herramientas\", tiene como finalidad conocer la situación de los eventos deportivos en España. Se realizó un estudio descriptivo holístico en el que se investigaron elementos culturales, el perfil de los recursos humanos, la estructura de los comités, entre otras.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2015-06-20","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/227"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2015-06-20","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869097,"id":"50|od________18::8887b1df8b563c4ea851eb9c882c9d7b","originalId":["od______3989::0f89464c4ac4c398fe0c71433b175a62"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:26.069Z","dateoftransformation":"2020-03-03T13:06:53.54Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:26.069Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/802","datestamp":"2018-11-14T15:30:47Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","name":"Ciencias La Actividad Física Y. Del Deporte","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Actividad Física y del Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Actividades deportivas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Impacto físico","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Proyectos de investigación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"2411.06 Fisiología del Ejercicio","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Investigaciones en Ciencias de la Actividad Física y del Deporte CCAFD - UCJC","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Blanca Romero, investigadora y docente de Ciencias de la Actividad Física y del Deporte en la Universidad Camilo José Cela, describe dos de las líneas de investigación que se han desarrollado en el departamento CCAFD de UCJC: el impacto físico de las diferentes actividades deportivas y los métodos de recuperación más eficaces tras el ejercicio físico.\nBlanca también destaca la importancia en el ámbito de la salud los estudios en Ciencias de la Actividad Física y del Deporte.\nCiencias de la Actividad Física y del Deporte en la Universidad Camilo José Cela","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:organizationtoresult","classname":"Propagation of community result through organization to result association","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"beopen"}],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/802"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869215,"id":"50|doajarticles::8d817039a63710fcf97e30f14662c6c8","originalId":["od______3989::1729c3988199b95d1d566851af7d3c55"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:25.653Z","dateoftransformation":"2020-03-03T13:06:53.764Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:25.653Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/801","datestamp":"2018-11-14T15:19:38Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","name":"Ciencias La Actividad Física Y. Del Deporte","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Actividad Física y del Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Prevención","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Hidratación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deportistas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Electrolitos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deportes de resistencia","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"2411.06 Fisiología del Ejercicio","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"La importancia de la hidratación en competiciones resistencia, por Juan del Coso","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Juan del Coso, investigador y profesor en el Grado en Ciencias de la Actividad Física y del Deporte UCJC, presenta el proyecto de investigación que ha realizado el departamento CCAFD de UCJC: la prevención de desequilibrios de agua y electrolitos que se dan en los deportes de resistencia para que los deportistas realicen su actividad de una manera más segura.\nMás información: http://www.ucjc.edu/2016/03/investiga...\nUniversidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Grado en Ciencias de la Actividad Física y del Deporte UCJC","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:organizationtoresult","classname":"Propagation of community result through organization to result association","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"euromarine"}],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/801"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869487,"id":"50|doajarticles::3c98f0632f1875b4979e552ba3aa01e6","originalId":["od______3989::2e3f34ce90520fae350a7e1148d7dcea"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.912Z","dateoftransformation":"2020-03-03T13:06:54.218Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.912Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/800","datestamp":"2018-11-14T13:43:21Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Actividad Física y del Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Cafeína","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Efectos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Alto rendimiento","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Competiciones","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Beneficios","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"2411.06 Fisiología del Ejercicio","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Investigación - Efectos positivos y negativos del uso de la cafeína en el deporte","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Proyecto de investigación que se están desarrollando en la Universidad Camilo José Cela (UCJC) sobre la cafeína y sus efectos cuando se realiza deporte. https://www.ucjc.edu/2016/08/la-bbc-s...\n\nJuan Del Coso, director del Laboratorio de Fisiología del Ejercicio de la Universidad Camilo José Cela, nos describe cómo está siendo la investigación que desarrolla con deportistas de alto rendimiento y el consumo de cafeína.\n\n\"Nuestra investigación se enmarca dentro del campo de la fisiología del ejercicio y el objetivo que tenemos es investigar los efectos que tiene la cafeína en los deportistas, principalmente saber si es una ayuda ergogénica en la mayor parte de los deportes, pero también conocer qué perjuicios existen para aquellos deportistas que la utilizan para incrementar el rendimiento deportivo\", explica Del Coso.\n\nY es que los datos son muy llamativos: tres de cada cuatro deportistas de alto rendimiento utilizan la cafeína antes de la competición y muchas veces se utiliza sin saber los perjuicios que puede tener para el deportista. \"Lo que estamos investigando es cómo una sustancia, que te puede hacer rendir mejor, cómo puede afectar negativamente cuando termina una competición\".\n\nPero esta investigación no sólo puede extraer conclusiones interesantes y útiles para los deportistas profesionales, \"investigando el deporte de alto rendimiento podemos conocer los beneficios y perjuicios de la cafeína que también afectarían al deportista amateur y hacer un deporte en general más seguro\".\n\nPara el desarrollo de este proyecto de investigación están colaborando el Laboratorio de Fisiología del Ejercicio de la Universidad Camilo José Cela y la Agencia para la Protección de la Salud en el Deporte.\nPara el desarrollo de este proyecto de investigación están colaborando el Laboratorio de Fisiología del Ejercicio de la Universidad Camilo José Cela y la Agencia para la Protección de la Salud en el Deporte.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2017-10-06","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Vicerrectorado de Innovación","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:organizationtoresult","classname":"Propagation of community result through organization to result association","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"euromarine"},{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:organizationtoresult","classname":"Propagation of community result through organization to result association","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"ni"}],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/800"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2017-10-06","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869498,"id":"50|od______3989::2f4f3c820c450bd08dac08d07cc82dcf","originalId":["od______3989::2f4f3c820c450bd08dac08d07cc82dcf"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.806Z","dateoftransformation":"2020-03-03T13:06:54.229Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.806Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/797","datestamp":"2018-11-14T12:12:23Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Cuesta Cano, Laura","name":"Laura","surname":"Cuesta Cano","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Marketing digital","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Medios sociales","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Marcas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Empresas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Emprendedores","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"II Liga de Debate CICAE - UCJC","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"6114.13 Marketing","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Laura Cuesta - Liga de Debate CICAE - UCJC","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Laura Cuesta, profesora en la Universidad Camilo José Cela (UCJC) y Especialista en Marketing Digital y Medios Sociales para marcas y emprendedores. \n\nEn esta ocasión, Laura Cuesta, nos explica el significado de redes sociales y nos habla sobre el uso que le dan los usuarios.\n\nII Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/\n\nLa Universidad Camilo José Cela (UCJC) y la Asociación de Colegios Privados e Independientes –Círculo de Calidad Educativa (CICAE) – organizan la segunda edición de esta gran liga de debate académico. El formato es al estilo inglés, similar al de la Oxford Union, donde algunos jóvenes se reunían a debatir sobre temas de la más candente actualidad y polemizaban con la intención de formarse en tan valoradas habilidades.\n\nLa Liga de Debate CICAE-UCJC es una ocasión única para los alumnos de ponerse en contacto con herramientas tan útiles como la oratoria y la comunicación efectiva. Pero, sobre todo, una oportunidad de fomentar el pensamiento crítico y la socialización entre alumnos con espíritu emprendedor. La Liga de Debate CICAE - Universidad Camilo José Cela se diferencia del resto de torneos en que potenciamos que sea eminentemente formativa. Alumnos y profesores reciben formación en comunicación, oratoria y debate por parte de alguno de los expertos en debate españoles más reconocidos en la escena internacional.\n\nDatos de la III Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Vicerrectorado de Innovación","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/797"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055870582,"id":"50|od______3989::752fd0b2bbac1ea1cc50e52fd46eb663","originalId":["od______3989::752fd0b2bbac1ea1cc50e52fd46eb663"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.561Z","dateoftransformation":"2020-03-03T13:06:55.716Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.561Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/798","datestamp":"2018-11-14T12:57:26Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Psicología","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Alcohol","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Dependencia","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Proyectos de investigación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Alcoholismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Realidad virtual","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Psicología conductual","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Investigación - Intervención basada en realidad virtual sobre la dependencia del alcohol","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Proyecto de investigación que se están desarrollando en la Universidad Camilo José Cela (UCJC) con tecnología aplicada al abandono de la dependencia del alcohol. \nRosa Jurado, profesora e investigadora de UCJC https://www.ucjc.edu/, explica cómo se conjuga el alcoholismo con la realidad virtual. \"Mi investigación consiste en desarrollar una técnica de intervención o rehabilitación que tiene como propósito fomentar la capacidad de inhibición para que las personas que tienen dependencia del alcohol sean capaces de controlar su conducta de aproximación hacia aquello que tiene que ver con el consumo de alcohol\".\n\nEn esta investigación, liderada por la Universidad Camilo José Cela, están participando, el Instituto de Investigación Biomédica del Hospital 12 de Octubre y la Universidad Politécnica de Madrid, con el CeDint. \"En nuestro equipo de investigación pensamos que, además del deseo de consumo, existen una carencia clara de capacidad de control inhibitorio en este tipo de personas\", destaca Rosa Jurado.\n\nLa realidad virtual sirve, según explica Gabriel Rubio, jefe de Psiquiatría del Hospital 12 de Octubre, \"para dar un paso más, para ver cómo reacciona un sujeto en un ambiente que no es el real, pero se parece mucho al real\". El objetivo final de estas acciones es \"mejorar la capacidad del individuo para poner en marcha mecanismos de inhibición conductual, para que el sujeto sea capaz de decir que no\".\n\nY no acaba ahí el proceso. La fase final del tratamiento se enfoca en que el paciente \"sea capaz de reconstruir su vida\" a través de programas de entrenamiento de habilidades sociales, asertividad, familias... \"Juntando todas las áreas de intervención, la abstinencia se mantiene mucho más tiempo y las recaídas disminuyen\".","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2017-10-05","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Vicerrectorado de Innovación","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/798"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2017-10-05","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055870750,"id":"50|od______3989::7fcbe3a03280663cddebfd3cb9203177","originalId":["od______3989::7fcbe3a03280663cddebfd3cb9203177"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:25.652Z","dateoftransformation":"2020-03-03T13:06:55.95Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:25.652Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/796","datestamp":"2018-11-05T13:36:54Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Redes sociales","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Información","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Desinformación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"III Liga de Debate CICAE","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Instantaneidad","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Información periodística","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Fake news","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"5910.02 Medios de Comunicación de Masas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Jorge Gallardo - Liga de Debate CICAE","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Jorge Gallardo, profesor de Derecho en la Universidad Camilo José Cela (UCJC), Doctor en Comunicación Audiovisual y MBA en Empresas Audiovisuales. Subdirector de Espejo Público en Antena 3 Noticias. \n\nEn esta ocasión, Jorge Gallardo habla sobre las redes sociales, cómo han transformado la manera en la que nos comunicamos y nos informamos. \n\nIII Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/\n\nLa Universidad Camilo José Cela (UCJC) y la Asociación de Colegios Privados e Independientes –Círculo de Calidad Educativa (CICAE) – organizan la tercera edición de esta gran liga de debate académico. El formato es al estilo inglés, similar al de la Oxford Union, donde algunos jóvenes se reunían a debatir sobre temas de la más candente actualidad y polemizaban con la intención de formarse en tan valoradas habilidades.\n\nLa Liga de Debate CICAE-UCJC es una ocasión única para los alumnos de ponerse en contacto con herramientas tan útiles como la oratoria y la comunicación efectiva. Pero, sobre todo, una oportunidad de fomentar el pensamiento crítico y la socialización entre alumnos con espíritu emprendedor. La Liga de Debate CICAE - Universidad Camilo José Cela se diferencia del resto de torneos en que potenciamos que sea eminentemente formativa. Alumnos y profesores reciben formación en comunicación, oratoria y debate por parte de alguno de los expertos en debate españoles más reconocidos en la escena internacional.\n\nDatos de la III Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/796"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055872001,"id":"50|od______3989::d791339867bec6d3eb2104deeb4e4961","originalId":["od______3989::d791339867bec6d3eb2104deeb4e4961"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.586Z","dateoftransformation":"2020-03-03T13:06:57.721Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.586Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/645","datestamp":"2018-04-12T07:59:27Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Transferencia de Conocimiento e Innovación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Innovación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Investigación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Ciencia","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Tecnología","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"UCJC Open Science Day 2018","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"El UCJC Open Science Day tiene como objetivo mostrar las actividades de investigación llevadas a cabo por investigadores de la Universidad Camilo José Cela (UCJC) a todos los miembros de la UCJC.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-04-10","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/645"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-04-10","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055872022,"id":"50|od______3989::d90d3a1f64ad264b5ebed8a35b280343","originalId":["od______3989::d90d3a1f64ad264b5ebed8a35b280343"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.912Z","dateoftransformation":"2020-03-03T13:06:57.747Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.912Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/795","datestamp":"2018-11-06T15:43:10Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Unión Europea","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Desinformación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Política","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Periodismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Ciudadanos europeos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Democracias","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Estado de derecho","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Derechos humanos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"5910.02 Medios de Comunicación de Masas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Ramón Luis Varcárcel - La Unión Europea ante el reto de la desinformación","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Conferencia de Ramón Luis Valcárcel, vicepresidente del Parlamento Europeo, en el Campus de Almagro de la Universidad Camilo José Cela (UCJC) bajo el título \"La Unión Europea ante el reto de la desinformación\", en la que ha alertado sobre el alcance de la desinformación en las democracias y sobre cómo pone en peligro los derechos de los ciudadanos europeos. También ha participado el rector de la UCJC, Samuel Martín-Barbero.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-11","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/795"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-11","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/sample/dataset_10.json.gz b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/sample/dataset_10.json.gz deleted file mode 100644 index dccc28c87..000000000 Binary files a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromorganization/sample/dataset_10.json.gz and /dev/null differ diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromproject/preparedInfo/resultcommunitylist b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromproject/preparedInfo/resultcommunitylist new file mode 100644 index 000000000..a9bbccb5b --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromproject/preparedInfo/resultcommunitylist @@ -0,0 +1,4 @@ +{"resultId":"50|57a035e5b1ae::d5be548ca7ae489d762f893be67af52f","communityList":["aurora"]} +{"resultId":"50|57a035e5b1ae::a77232ffca9115fcad51c3503dbc7e3e","communityList":["aurora"]} +{"resultId":"50|57a035e5b1ae::803aaad4decab7e27cd4b52a1931b3a1","communityList":["sdsn-gr"]} +{"resultId":"50|57a035e5b1ae::a02e9e4087bca50687731ae5c765b5e1","communityList":["netherlands"]} \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromproject/relation/relation b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromproject/relation/relation new file mode 100644 index 000000000..ecf89016f --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromproject/relation/relation @@ -0,0 +1,20 @@ +{"subRelType": "affiliation", "relClass": "isProducedBy", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.7731"}, "target": "40|corda__h2020::5c16b849965ee04493a5e244471aae16", "lastupdatetimestamp": 1694431186898, "relType": "resultOrganization", "source": "50|57a035e5b1ae::803aaad4decab7e27cd4b52a1931b3a1", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "isProducedBy", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "40|nwo_________::a9f6d38fb3626d6659d385f71be9657e", "lastupdatetimestamp": 1694431155490, "relType": "resultOrganization", "source": "50|57a035e5b1ae::a02e9e4087bca50687731ae5c765b5e1", "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "isProducedBy", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "40|ukri________::93b0983bc4fb1a17a8c3d1e6ab45c03b", "lastupdatetimestamp": 1694431195409, "relType": "resultOrganization", "source": "50|57a035e5b1ae::a77232ffca9115fcad51c3503dbc7e3e", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "isProducedBy", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.7731"}, "target": "40|ukri________::93b0983bc4fb1a17a8c3d1e6ab45c03b", "lastupdatetimestamp": 1694431195538, "relType": "resultOrganization", "source": "50|57a035e5b1ae::d5be548ca7ae489d762f893be67af52f", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "isProducedBy", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "40|openorgs____::eb0669daa9efeb898a3090d8aac7c953", "lastupdatetimestamp": 1694431216929, "relType": "resultOrganization", "source": "50|RECOLECTA___::031d8312287a0108202acd8c5957fcb5", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "isProducedBy", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "40|pending_org_::26d4324bfca459ab17e1efd966fba8d7", "lastupdatetimestamp": 1694431156296, "relType": "resultOrganization", "source": "50|RECOLECTA___::0ac43c9933175f1d0e091ba4dc814565", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "isProducedBy", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "40|pending_org_::fc8f734ba211cfc8a3769189808338c2", "lastupdatetimestamp": 1694431218717, "relType": "resultOrganization", "source": "50|RECOLECTA___::1c6c582aa2d57c932069bc4382653229", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "isProducedBy", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "40|pending_org_::15c4bd8602727bff4ecbaf69e7ac43af", "lastupdatetimestamp": 1694431211627, "relType": "resultOrganization", "source": "50|RECOLECTA___::21c4e85b761c898dd0f6d59d9f9b85f1", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "isProducedBy", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "40|pending_org_::6e4694bb54928162e3736e2042663ff1", "lastupdatetimestamp": 1694431213910, "relType": "resultOrganization", "source": "50|RECOLECTA___::22436b0491ae186b64671a0667551830", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "isProducedBy", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "40|openorgs____::5665ec851e301a1f816ee0be3e98757b", "lastupdatetimestamp": 1694431212739, "relType": "resultOrganization", "source": "50|RECOLECTA___::6739f9dda9d6e4703b70f908a4ab6259", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "isProducedBy", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "40|pending_org_::7ccc3885d6c13b55952c4af07e95f6a6", "lastupdatetimestamp": 1694431203420, "relType": "resultOrganization", "source": "50|RECOLECTA___::a3baa9c23ff95de4f09bf711bcf934a5", "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "isProducedBy", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.8997"}, "target": "40|openorgs____::2cd85ac41e550e32a488a1b26a71fdd8", "lastupdatetimestamp": 1694431162512, "relType": "resultOrganization", "source": "50|RECOLECTA___::ce1f62947f2773709b75e57ec91eca51", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "isProducedBy", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "40|pending_org_::2f224aa8c572c740fac1ed8b1a38aa21", "lastupdatetimestamp": 1694431204317, "relType": "resultOrganization", "source": "50|RECOLECTA___::df660a72ea2d758e542cdd0d63dcdbd1", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "isProducedBy", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.7731"}, "target": "40|openorgs____::d4c564d89cc281f00a27ff7684da5668", "lastupdatetimestamp": 1694431222761, "relType": "resultOrganization", "source": "50|altaiap_____::5c53480b2300ae410d183822b0c1ee9b", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "isProducedBy", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "40|pending_org_::5f8192f98afda4a06afb4386b7c913cc", "lastupdatetimestamp": 1694431180171, "relType": "resultOrganization", "source": "50|altaiap_____::d036acbdb3155339d2fa77455a0b3d95", "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "isProducedBy", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.8998"}, "target": "40|pending_org_::afc6d809fd8a8db5ee592469c12a7dc8", "lastupdatetimestamp": 1694431193653, "relType": "resultOrganization", "source": "50|arXiv_______::0007ee48e3aa0c409dc68f172bbc76a8", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "isProducedBy", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.8998"}, "target": "40|openorgs____::5ab85d71ee109cc81a2bc28cbdeba96a", "lastupdatetimestamp": 1694431224324, "relType": "resultOrganization", "source": "50|arXiv_______::00285f6ee59920bcdb4d96d6cd240095", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "isProducedBy", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.9"}, "target": "40|pending_org_::7d22ea802b3405becbde1e2e1ea59197", "lastupdatetimestamp": 1694431220671, "relType": "resultOrganization", "source": "50|arXiv_______::002eb5d6ee54ba872b882bbd3824aa96", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "isProducedBy", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.8847"}, "target": "40|pending_org_::c44367f733bf59e75fc7e92eb9ad4489", "lastupdatetimestamp": 1694431179461, "relType": "resultOrganization", "source": "50|arXiv_______::00480a6b5ae2cd88dbd7781e1ec341aa", "collectedfrom": [], "validated": false, "properties": []} +{"subRelType": "affiliation", "relClass": "isProducedBy", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "Inferred by OpenAIRE", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_affiliations", "invisible": false, "trust": "0.8998"}, "target": "40|openorgs____::293e60068d63e17e20f2de54944cae01", "lastupdatetimestamp": 1694431219918, "relType": "resultOrganization", "source": "50|arXiv_______::00766c4ea96b8b797528b511b793ba62", "collectedfrom": [], "validated": false, "properties": []} \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromproject/sample/dataset b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromproject/sample/dataset new file mode 100644 index 000000000..a264fbc26 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromproject/sample/dataset @@ -0,0 +1,10 @@ +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055868909,"id":"50|57a035e5b1ae::a77232ffca9115fcad51c3503dbc7e3e","originalId":["od______3989::02dd5d2c222191b0b9bd4f33c8e96529"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[{"value":"10.4185/RLCS-2018-1243","qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofcollection":"2020-03-03T13:05:26.091Z","dateoftransformation":"2020-03-03T13:06:53.161Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:26.091Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/562","datestamp":"2018-01-23T15:06:07Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"affiliation":[],"fullname":"Jung, Nicole","name":"Nicole","pid":[{"dataInfo":null,"qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":null,"schemename":null},"value":"0000-0001-9513-2468"}],"rank":1,"surname":"Jung"},{"affiliation":[],"fullname":"Gräßle, Simone","name":"Simone","pid":[],"rank":2,"surname":"Gräßle"}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"yihadismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"viralidad","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"vídeo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"propaganda","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"terrorismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"terrorism","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"jihadism","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"virality","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"video","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"5903 Ideologías Políticas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"6310.13 Terrorismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"El individualismo como estrategia","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Individualism as an improvised strategy","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Se analiza como el Yihadismo distribuye su mensaje propaganístico en You Tube.\nUniversidad Camilo José Cela","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"MediaLab - UCJC","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"propagation:community:organizationtoresult","classname":"Propagation of community result through organization to result association","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"beopen"}],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/562"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-01-01","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055868954,"id":"50|57a035e5b1ae::d5be548ca7ae489d762f893be67af52f","originalId":["od______3989::05d8c751462f9bb8d2b06956dfbc5c7b"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:26.079Z","dateoftransformation":"2020-03-03T13:06:53.239Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:26.079Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/227","datestamp":"2017-11-15T16:29:55Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"affiliation":[],"fullname":"Fischer, Malte","name":"Malte","pid":[{"dataInfo":null,"qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":null,"schemename":null},"value":"0000-0002-2806-1302"}],"rank":1,"surname":"Fischer"},{"affiliation":[],"fullname":"Barbul, Daniel","name":"Daniel","pid":[],"rank":2,"surname":"Barbul"},{"affiliation":[],"fullname":"Schmidtmann, Marc","name":"Marc","pid":[{"dataInfo":null,"qualifier":{"classid":"MAG Identifier","classname":"MAG Identifier","schemeid":null,"schemename":null},"value":"2024269002"}],"rank":3,"surname":"Schmidtmann"},{"affiliation":[],"fullname":"Beckhaus, Ruediger","name":"Ruediger","pid":[],"rank":4,"surname":"Beckhaus"}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Actividad Física y del Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Eventos deportivos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Retos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"I Congreso Nuevos Retos en los Eventos Deportivos","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"I Congreso Nuevos Retos en los Eventos Deportivos, celebrado en la Universidad Camilo José Cela.\n\n\n\nDerivado del proyecto de investigación \"La situación de los eventos deportivos en España a través de su estructuras y de sus herramientas\", tiene como finalidad conocer la situación de los eventos deportivos en España. Se realizó un estudio descriptivo holístico en el que se investigaron elementos culturales, el perfil de los recursos humanos, la estructura de los comités, entre otras.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2015-06-20","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/227"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2015-06-20","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869097,"id":"50|od________18::8887b1df8b563c4ea851eb9c882c9d7b","originalId":["od______3989::0f89464c4ac4c398fe0c71433b175a62"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:26.069Z","dateoftransformation":"2020-03-03T13:06:53.54Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:26.069Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/802","datestamp":"2018-11-14T15:30:47Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","name":"Ciencias La Actividad Física Y. Del Deporte","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Actividad Física y del Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Actividades deportivas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Impacto físico","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Proyectos de investigación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"2411.06 Fisiología del Ejercicio","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Investigaciones en Ciencias de la Actividad Física y del Deporte CCAFD - UCJC","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Blanca Romero, investigadora y docente de Ciencias de la Actividad Física y del Deporte en la Universidad Camilo José Cela, describe dos de las líneas de investigación que se han desarrollado en el departamento CCAFD de UCJC: el impacto físico de las diferentes actividades deportivas y los métodos de recuperación más eficaces tras el ejercicio físico.\nBlanca también destaca la importancia en el ámbito de la salud los estudios en Ciencias de la Actividad Física y del Deporte.\nCiencias de la Actividad Física y del Deporte en la Universidad Camilo José Cela","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:organizationtoresult","classname":"Propagation of community result through organization to result association","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"beopen"}],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/802"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869215,"id":"50|doajarticles::8d817039a63710fcf97e30f14662c6c8","originalId":["od______3989::1729c3988199b95d1d566851af7d3c55"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:25.653Z","dateoftransformation":"2020-03-03T13:06:53.764Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:25.653Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/801","datestamp":"2018-11-14T15:19:38Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","name":"Ciencias La Actividad Física Y. Del Deporte","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Actividad Física y del Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Prevención","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Hidratación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deportistas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Electrolitos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deportes de resistencia","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"2411.06 Fisiología del Ejercicio","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"La importancia de la hidratación en competiciones resistencia, por Juan del Coso","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Juan del Coso, investigador y profesor en el Grado en Ciencias de la Actividad Física y del Deporte UCJC, presenta el proyecto de investigación que ha realizado el departamento CCAFD de UCJC: la prevención de desequilibrios de agua y electrolitos que se dan en los deportes de resistencia para que los deportistas realicen su actividad de una manera más segura.\nMás información: http://www.ucjc.edu/2016/03/investiga...\nUniversidad Camilo José Cela, Ciencias de la Actividad Física y del Deporte","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Grado en Ciencias de la Actividad Física y del Deporte UCJC","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:organizationtoresult","classname":"Propagation of community result through organization to result association","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"euromarine"}],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/801"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2016-03-21","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869487,"id":"50|doajarticles::3c98f0632f1875b4979e552ba3aa01e6","originalId":["od______3989::2e3f34ce90520fae350a7e1148d7dcea"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.912Z","dateoftransformation":"2020-03-03T13:06:54.218Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.912Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/800","datestamp":"2018-11-14T13:43:21Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Actividad Física y del Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Deporte","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Cafeína","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Efectos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Alto rendimiento","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Competiciones","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Beneficios","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"2411.06 Fisiología del Ejercicio","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Investigación - Efectos positivos y negativos del uso de la cafeína en el deporte","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Proyecto de investigación que se están desarrollando en la Universidad Camilo José Cela (UCJC) sobre la cafeína y sus efectos cuando se realiza deporte. https://www.ucjc.edu/2016/08/la-bbc-s...\n\nJuan Del Coso, director del Laboratorio de Fisiología del Ejercicio de la Universidad Camilo José Cela, nos describe cómo está siendo la investigación que desarrolla con deportistas de alto rendimiento y el consumo de cafeína.\n\n\"Nuestra investigación se enmarca dentro del campo de la fisiología del ejercicio y el objetivo que tenemos es investigar los efectos que tiene la cafeína en los deportistas, principalmente saber si es una ayuda ergogénica en la mayor parte de los deportes, pero también conocer qué perjuicios existen para aquellos deportistas que la utilizan para incrementar el rendimiento deportivo\", explica Del Coso.\n\nY es que los datos son muy llamativos: tres de cada cuatro deportistas de alto rendimiento utilizan la cafeína antes de la competición y muchas veces se utiliza sin saber los perjuicios que puede tener para el deportista. \"Lo que estamos investigando es cómo una sustancia, que te puede hacer rendir mejor, cómo puede afectar negativamente cuando termina una competición\".\n\nPero esta investigación no sólo puede extraer conclusiones interesantes y útiles para los deportistas profesionales, \"investigando el deporte de alto rendimiento podemos conocer los beneficios y perjuicios de la cafeína que también afectarían al deportista amateur y hacer un deporte en general más seguro\".\n\nPara el desarrollo de este proyecto de investigación están colaborando el Laboratorio de Fisiología del Ejercicio de la Universidad Camilo José Cela y la Agencia para la Protección de la Salud en el Deporte.\nPara el desarrollo de este proyecto de investigación están colaborando el Laboratorio de Fisiología del Ejercicio de la Universidad Camilo José Cela y la Agencia para la Protección de la Salud en el Deporte.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2017-10-06","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Vicerrectorado de Innovación","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:organizationtoresult","classname":"Propagation of community result through organization to result association","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"euromarine"},{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"","inferred":true,"invisible":false,"provenanceaction":{"classid":"propagation:community:organizationtoresult","classname":"Propagation of community result through organization to result association","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.85"}],"id":"ni"}],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/800"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2017-10-06","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055869498,"id":"50|od______3989::2f4f3c820c450bd08dac08d07cc82dcf","originalId":["od______3989::2f4f3c820c450bd08dac08d07cc82dcf"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.806Z","dateoftransformation":"2020-03-03T13:06:54.229Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.806Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/797","datestamp":"2018-11-14T12:12:23Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Cuesta Cano, Laura","name":"Laura","surname":"Cuesta Cano","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Marketing digital","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Medios sociales","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Marcas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Empresas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Emprendedores","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"II Liga de Debate CICAE - UCJC","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"6114.13 Marketing","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Laura Cuesta - Liga de Debate CICAE - UCJC","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Laura Cuesta, profesora en la Universidad Camilo José Cela (UCJC) y Especialista en Marketing Digital y Medios Sociales para marcas y emprendedores. \n\nEn esta ocasión, Laura Cuesta, nos explica el significado de redes sociales y nos habla sobre el uso que le dan los usuarios.\n\nII Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/\n\nLa Universidad Camilo José Cela (UCJC) y la Asociación de Colegios Privados e Independientes –Círculo de Calidad Educativa (CICAE) – organizan la segunda edición de esta gran liga de debate académico. El formato es al estilo inglés, similar al de la Oxford Union, donde algunos jóvenes se reunían a debatir sobre temas de la más candente actualidad y polemizaban con la intención de formarse en tan valoradas habilidades.\n\nLa Liga de Debate CICAE-UCJC es una ocasión única para los alumnos de ponerse en contacto con herramientas tan útiles como la oratoria y la comunicación efectiva. Pero, sobretodo, una oportunidad de fomentar el pensamiento crítico y la socialización entre alumnos con espíritu emprendedor. La Liga de Debate CICAE - Universidad Camilo José Cela se diferencia del resto de torneos en que potenciamos que sea eminentemente formativa. Alumnos y profesores reciben formación en comunicación, oratoria y debate por parte de alguno de los expertos en debate españoles más reconocidos en la escena internacional.\n\nDatos de la III Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Vicerrectorado de Innovación","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/797"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055870582,"id":"50|od______3989::752fd0b2bbac1ea1cc50e52fd46eb663","originalId":["od______3989::752fd0b2bbac1ea1cc50e52fd46eb663"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.561Z","dateoftransformation":"2020-03-03T13:06:55.716Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.561Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/798","datestamp":"2018-11-14T12:57:26Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Psicología","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Alcohol","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Dependencia","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Proyectos de investigación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Alcoholismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Realidad virtual","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Psicología conductual","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Investigación - Intervención basada en realidad virtual sobre la dependencia del alcohol","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Proyecto de investigación que se están desarrollando en la Universidad Camilo José Cela (UCJC) con tecnología aplicada al abandono de la dependencia del alcohol. \nRosa Jurado, profesora e investigadora de UCJC https://www.ucjc.edu/, explica cómo se conjuga el alcoholismo con la realidad virtual. \"Mi investigación consiste en desarrollar una técnica de intervención o rehabilitación que tiene como propósito fomentar la capacidad de inhibición para que las personas que tienen dependencia del alcohol sean capaces de controlar su conducta de aproximación hacia aquello que tiene que ver con el consumo de alcohol\".\n\nEn esta investigación, liderada por la Universidad Camilo José Cela, están participando, el Instituto de Investigación Biomédica del Hospital 12 de Octubre y la Universidad Politécnica de Madrid, con el CeDint. \"En nuestro equipo de investigación pensamos que, además del deseo de consumo, existen una carencia clara de capacidad de control inhibitorio en este tipo de personas\", destaca Rosa Jurado.\n\nLa realidad virtual sirve, según explica Gabriel Rubio, jefe de Psiquiatría del Hospital 12 de Octubre, \"para dar un paso más, para ver cómo reacciona un sujeto en un ambiente que no es el real, pero se parece mucho al real\". El objetivo final de estas acciones es \"mejorar la capacidad del individuo para poner en marcha mecanismos de inhibición conductual, para que el sujeto sea capaz de decir que no\".\n\nY no acaba ahí el proceso. La fase final del tratamiento se enfoca en que el paciente \"sea capaz de reconstruir su vida\" a través de programas de entrenamiento de habilidades sociales, asertividad, familias... \"Juntando todas las áreas de intervención, la abstinencia se mantiene mucho más tiempo y las recaídas disminuyen\".","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2017-10-05","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[{"value":"Universidad Camilo José Cela, Vicerrectorado de Innovación","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/798"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2017-10-05","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055870750,"id":"50|od______3989::7fcbe3a03280663cddebfd3cb9203177","originalId":["od______3989::7fcbe3a03280663cddebfd3cb9203177"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:25.652Z","dateoftransformation":"2020-03-03T13:06:55.95Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:25.652Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/796","datestamp":"2018-11-05T13:36:54Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Redes sociales","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Información","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Desinformación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"III Liga de Debate CICAE","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Instantaneidad","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Información periodística","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Fake news","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"5910.02 Medios de Comunicación de Masas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Jorge Gallardo - Liga de Debate CICAE","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Jorge Gallardo, profesor de Derecho en la Universidad Camilo José Cela (UCJC), Doctor en Comunicación Audiovisual y MBA en Empresas Audiovisuales. Subdirector de Espejo Público en Antena 3 Noticias. \n\nEn esta ocasión, Jorge Gallardo habla sobre las redes sociales, cómo han transformado la manera en la que nos comunicamos y nos informamos. \n\nIII Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/\n\nLa Universidad Camilo José Cela (UCJC) y la Asociación de Colegios Privados e Independientes –Círculo de Calidad Educativa (CICAE) – organizan la tercera edición de esta gran liga de debate académico. El formato es al estilo inglés, similar al de la Oxford Union, donde algunos jóvenes se reunían a debatir sobre temas de la más candente actualidad y polemizaban con la intención de formarse en tan valoradas habilidades.\n\nLa Liga de Debate CICAE-UCJC es una ocasión única para los alumnos de ponerse en contacto con herramientas tan útiles como la oratoria y la comunicación efectiva. Pero, sobretodo, una oportunidad de fomentar el pensamiento crítico y la socialización entre alumnos con espíritu emprendedor. La Liga de Debate CICAE - Universidad Camilo José Cela se diferencia del resto de torneos en que potenciamos que sea eminentemente formativa. Alumnos y profesores reciben formación en comunicación, oratoria y debate por parte de alguno de los expertos en debate españoles más reconocidos en la escena internacional.\n\nDatos de la III Liga de Debate CICAE - UCJC http://ligacicae.ucjc.edu/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/796"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-23","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055872001,"id":"50|od______3989::d791339867bec6d3eb2104deeb4e4961","originalId":["od______3989::d791339867bec6d3eb2104deeb4e4961"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.586Z","dateoftransformation":"2020-03-03T13:06:57.721Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.586Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/645","datestamp":"2018-04-12T07:59:27Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Transferencia de Conocimiento e Innovación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Innovación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Investigación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Ciencia","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Tecnología","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"UCJC Open Science Day 2018","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"El UCJC Open Science Day tiene como objetivo mostrar las actividades de investigación llevadas a cabo por investigadores de la Universidad Camilo José Cela (UCJC) a todos los miembros de la UCJC.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-04-10","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/645"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-04-10","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} +{"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1585055872022,"id":"50|od______3989::d90d3a1f64ad264b5ebed8a35b280343","originalId":["od______3989::d90d3a1f64ad264b5ebed8a35b280343"],"collectedfrom":[{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null}],"pid":[],"dateofcollection":"2020-03-03T13:05:34.912Z","dateoftransformation":"2020-03-03T13:06:57.747Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2020-03-03T13:05:34.912Z","altered":true,"baseURL":"http%3A%2F%2Frepositorio.ucjc.edu%2Foai%2Frequest","identifier":"oai:repositorio.ucjc.edu:20.500.12020/795","datestamp":"2018-11-06T15:43:10Z","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"author":[{"fullname":"Universidad Camilo José Cela, Vicerrectorado de Innovación","name":"Vicerrectorado Innovación","surname":"Universidad Camilo José Cela","rank":1,"pid":null,"affiliation":null}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"esl/spa","classname":"Spanish","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Ciencias de la Comunicación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Unión Europea","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Desinformación","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Política","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Periodismo","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Ciudadanos europeos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Democracias","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Estado de derecho","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Derechos humanos","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"5910.02 Medios de Comunicación de Masas","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Ramón Luis Varcárcel - La Unión Europea ante el reto de la desinformación","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Conferencia de Ramón Luis Valcárcel, vicepresidente del Parlamento Europeo, en el Campus de Almagro de la Universidad Camilo José Cela (UCJC) bajo el título \"La Unión Europea ante el reto de la desinformación\", en la que ha alertado sobre el alcance de la desinformación en las democracias y sobre cómo pone en peligro los derechos de los ciudadanos europeos. También ha participado el rector de la UCJC, Samuel Martín-Barbero.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-10-11","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":null,"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":null,"coverage":[],"bestaccessright":null,"context":[],"externalReference":[],"instance":[{"license":{"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"instancetype":{"classid":"0024","classname":"Film","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"url":["http://hdl.handle.net/20.500.12020/795"],"distributionlocation":"","collectedfrom":{"key":"opendoar____::3989","value":"Depósito Digital e-UCJC","dataInfo":null},"dateofacceptance":{"value":"2018-10-11","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":null}],"storagedate":null,"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromproject/sample/otherresearchproduct b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromproject/sample/otherresearchproduct new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromproject/sample/publication b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromproject/sample/publication new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromproject/sample/software b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttocommunityfromproject/sample/software new file mode 100644 index 000000000..e69de29bb diff --git a/dhp-workflows/dhp-graph-mapper/pom.xml b/dhp-workflows/dhp-graph-mapper/pom.xml index f579a7d2b..ef35951c0 100644 --- a/dhp-workflows/dhp-graph-mapper/pom.xml +++ b/dhp-workflows/dhp-graph-mapper/pom.xml @@ -14,7 +14,7 @@ net.alchim31.maven scala-maven-plugin - 4.0.1 + ${net.alchim31.maven.version} scala-compile-first @@ -37,6 +37,8 @@ -Xmax-classfile-name 200 + true + ${scala.binary.version} ${scala.version} @@ -64,15 +66,15 @@ org.apache.spark - spark-core_2.11 + spark-core_${scala.binary.version} org.apache.spark - spark-sql_2.11 + spark-sql_${scala.binary.version} org.apache.spark - spark-hive_2.11 + spark-hive_${scala.binary.version} test @@ -125,7 +127,7 @@ org.json4s - json4s-jackson_2.11 + json4s-jackson_${scala.binary.version} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/clean/OafCleaner.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/clean/OafCleaner.java index 102a1fa85..4cfec6fe7 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/clean/OafCleaner.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/clean/OafCleaner.java @@ -59,6 +59,7 @@ public class OafCleaner implements Serializable { private static boolean isPrimitive(Object o) { return Objects.isNull(o) || o.getClass().isPrimitive() + || o.getClass().isEnum() || o instanceof Class || o instanceof Integer || o instanceof Double diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/raw/AbstractMdRecordToOafMapper.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/raw/AbstractMdRecordToOafMapper.java index efb860d44..6d995fb4c 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/raw/AbstractMdRecordToOafMapper.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/raw/AbstractMdRecordToOafMapper.java @@ -29,7 +29,7 @@ public abstract class AbstractMdRecordToOafMapper { protected final VocabularyGroup vocs; - protected static final UrlValidator URL_VALIDATOR = UrlValidator.getInstance(); + protected static final UrlValidator URL_VALIDATOR = new UrlValidator(UrlValidator.ALLOW_2_SLASHES); private final boolean invisible; @@ -41,6 +41,7 @@ public abstract class AbstractMdRecordToOafMapper { protected static final String DATACITE_SCHEMA_KERNEL_4_SLASH = "http://datacite.org/schema/kernel-4/"; protected static final String DATACITE_SCHEMA_KERNEL_3 = "http://datacite.org/schema/kernel-3"; protected static final String DATACITE_SCHEMA_KERNEL_3_SLASH = "http://datacite.org/schema/kernel-3/"; + protected static final Qualifier ORCID_PID_TYPE = qualifier( ModelConstants.ORCID_PENDING, ModelConstants.ORCID_CLASSNAME, @@ -117,14 +118,14 @@ public abstract class AbstractMdRecordToOafMapper { return Lists.newArrayList(); } - final DataInfo info = prepareDataInfo(doc, invisible); + final DataInfo entityInfo = prepareDataInfo(doc, invisible); final long lastUpdateTimestamp = new Date().getTime(); - final List instances = prepareInstances(doc, info, collectedFrom, hostedBy); + final List instances = prepareInstances(doc, entityInfo, collectedFrom, hostedBy); final String type = getResultType(doc, instances); - return createOafs(doc, type, instances, collectedFrom, info, lastUpdateTimestamp); + return createOafs(doc, type, instances, collectedFrom, entityInfo, lastUpdateTimestamp); } catch (DocumentException e) { log.error("Error with record:\n" + xml); return Lists.newArrayList(); @@ -169,7 +170,8 @@ public abstract class AbstractMdRecordToOafMapper { final DataInfo info, final long lastUpdateTimestamp) { - final OafEntity entity = createEntity(doc, type, instances, collectedFrom, info, lastUpdateTimestamp); + final OafEntity entity = createEntity( + doc, type, instances, collectedFrom, info, lastUpdateTimestamp); final Set originalId = Sets.newHashSet(entity.getOriginalId()); originalId.add(entity.getId()); @@ -184,13 +186,15 @@ public abstract class AbstractMdRecordToOafMapper { final List oafs = Lists.newArrayList(entity); + final DataInfo relationInfo = prepareDataInfo(doc, false); + if (!oafs.isEmpty()) { Set rels = Sets.newHashSet(); - rels.addAll(addProjectRels(doc, entity)); - rels.addAll(addOtherResultRels(doc, entity)); - rels.addAll(addRelations(doc, entity)); - rels.addAll(addAffiliations(doc, entity)); + rels.addAll(addProjectRels(doc, entity, relationInfo)); + rels.addAll(addOtherResultRels(doc, entity, relationInfo)); + rels.addAll(addRelations(doc, entity, relationInfo)); + rels.addAll(addAffiliations(doc, entity, relationInfo)); oafs.addAll(rels); } @@ -243,7 +247,7 @@ public abstract class AbstractMdRecordToOafMapper { private List addProjectRels( final Document doc, - final OafEntity entity) { + final OafEntity entity, DataInfo info) { final List res = new ArrayList<>(); @@ -262,18 +266,21 @@ public abstract class AbstractMdRecordToOafMapper { .add( OafMapperUtils .getRelation( - docId, projectId, RESULT_PROJECT, OUTCOME, IS_PRODUCED_BY, entity, validationdDate)); + docId, projectId, RESULT_PROJECT, OUTCOME, IS_PRODUCED_BY, entity.getCollectedfrom(), + info, entity.getLastupdatetimestamp(), validationdDate, null)); res .add( OafMapperUtils - .getRelation(projectId, docId, RESULT_PROJECT, OUTCOME, PRODUCES, entity, validationdDate)); + .getRelation( + projectId, docId, RESULT_PROJECT, OUTCOME, PRODUCES, entity.getCollectedfrom(), info, + entity.getLastupdatetimestamp(), validationdDate, null)); } } return res; } - private List addRelations(Document doc, OafEntity entity) { + private List addRelations(Document doc, OafEntity entity, DataInfo info) { final List rels = Lists.newArrayList(); @@ -301,14 +308,16 @@ public abstract class AbstractMdRecordToOafMapper { .add( OafMapperUtils .getRelation( - entity.getId(), targetId, relType, subRelType, relClass, entity, - validationDate)); + entity.getId(), targetId, relType, subRelType, relClass, + entity.getCollectedfrom(), info, + entity.getLastupdatetimestamp(), validationDate, null)); rels .add( OafMapperUtils .getRelation( - targetId, entity.getId(), relType, subRelType, relClassInverse, entity, - validationDate)); + targetId, entity.getId(), relType, subRelType, relClassInverse, + entity.getCollectedfrom(), info, + entity.getLastupdatetimestamp(), validationDate, null)); } } } @@ -316,7 +325,7 @@ public abstract class AbstractMdRecordToOafMapper { return rels; } - private List addAffiliations(Document doc, OafEntity entity) { + private List addAffiliations(Document doc, OafEntity entity, DataInfo info) { final List rels = Lists.newArrayList(); for (Object o : doc.selectNodes("//datacite:affiliation[@affiliationIdentifierScheme='ROR']")) { @@ -345,14 +354,14 @@ public abstract class AbstractMdRecordToOafMapper { OafMapperUtils .getRelation( resultId, orgId, RESULT_ORGANIZATION, AFFILIATION, HAS_AUTHOR_INSTITUTION, - entity.getCollectedfrom(), entity.getDataInfo(), entity.getLastupdatetimestamp(), null, + entity.getCollectedfrom(), info, entity.getLastupdatetimestamp(), null, properties)); rels .add( OafMapperUtils .getRelation( orgId, resultId, RESULT_ORGANIZATION, AFFILIATION, IS_AUTHOR_INSTITUTION_OF, - entity.getCollectedfrom(), entity.getDataInfo(), entity.getLastupdatetimestamp(), null, + entity.getCollectedfrom(), info, entity.getLastupdatetimestamp(), null, properties)); } } @@ -361,7 +370,7 @@ public abstract class AbstractMdRecordToOafMapper { protected abstract List addOtherResultRels( final Document doc, - final OafEntity entity); + final OafEntity entity, DataInfo info); private void populateResultFields( final Result r, @@ -509,6 +518,19 @@ public abstract class AbstractMdRecordToOafMapper { protected abstract Field prepareDatasetStorageDate(Document doc, DataInfo info); + protected abstract String findOriginalType(Document doc); + + protected List prepareInstanceTypeMapping(Document doc) { + return Optional + .ofNullable(findOriginalType(doc)) + .map(originalType -> { + final List mappings = Lists.newArrayList(); + mappings.add(OafMapperUtils.instanceTypeMapping(originalType, OPENAIRE_COAR_RESOURCE_TYPES_3_1)); + return mappings; + }) + .orElse(new ArrayList<>()); + } + private Journal prepareJournal(final Document doc, final DataInfo info) { final Node n = doc.selectSingleNode("//oaf:journal"); if (n != null) { diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/raw/OafToOafMapper.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/raw/OafToOafMapper.java index 2271a0fff..eee518353 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/raw/OafToOafMapper.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/raw/OafToOafMapper.java @@ -4,7 +4,6 @@ package eu.dnetlib.dhp.oa.graph.raw; import static eu.dnetlib.dhp.schema.common.ModelConstants.*; import static eu.dnetlib.dhp.schema.oaf.utils.OafMapperUtils.*; -import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.util.ArrayList; import java.util.HashSet; @@ -12,6 +11,7 @@ import java.util.List; import java.util.Set; import java.util.stream.Collectors; +import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.dom4j.Document; import org.dom4j.Element; @@ -28,6 +28,15 @@ import eu.dnetlib.dhp.schema.oaf.utils.ModelHardLimits; public class OafToOafMapper extends AbstractMdRecordToOafMapper { + private static Set DC_TYPE_PUBLICATION_VERSION = new HashSet<>(); + + static { + DC_TYPE_PUBLICATION_VERSION.add("info:eu-repo/semantics/submittedVersion"); + DC_TYPE_PUBLICATION_VERSION.add("info:eu-repo/semantics/acceptedVersion"); + DC_TYPE_PUBLICATION_VERSION.add("info:eu-repo/semantics/publishedVersion"); + DC_TYPE_PUBLICATION_VERSION.add("info:eu-repo/semantics/updatedVersion"); + } + public OafToOafMapper(final VocabularyGroup vocs, final boolean invisible, final boolean shouldHashId, final boolean forceOrginalId) { super(vocs, invisible, shouldHashId, forceOrginalId); @@ -140,6 +149,8 @@ public class OafToOafMapper extends AbstractMdRecordToOafMapper { final List alternateIdentifier = prepareResultPids(doc, info); final List pid = IdentifierFactory.getPids(alternateIdentifier, collectedfrom); + instance.setInstanceTypeMapping(prepareInstanceTypeMapping(doc)); + final Set pids = new HashSet<>(pid); instance @@ -188,6 +199,45 @@ public class OafToOafMapper extends AbstractMdRecordToOafMapper { return Lists.newArrayList(instance); } + /** + * The Dublin Core element dc:type can be repeated, but we need to base our mapping on a single value + * So this method tries to give precedence to the COAR resource type, when available. Otherwise, it looks for the + * openaire's info:eu-repo type, but excluding the following + * + * info:eu-repo/semantics/draft + * info:eu-repo/semantics/submittedVersion + * info:eu-repo/semantics/acceptedVersion + * info:eu-repo/semantics/publishedVersion + * info:eu-repo/semantics/updatedVersion + * + * Then, it picks the 1st dc:type text available and, in case there is no dc:type element, as last resort it tries + * to extract the type from the dr:CobjCategory element + * + * Examples: + * + * http://purl.org/coar/resource_type/c_5794 + * info:eu-repo/semantics/article + * Conference article + * 0006 + * + * @param doc the input document + * @return the chosen resource type + */ + @Override + protected String findOriginalType(Document doc) { + final String dcType = (String) doc + .selectNodes("//dc:type") + .stream() + .map(o -> "" + ((Node) o).getText().trim()) + .filter(t -> !DC_TYPE_PUBLICATION_VERSION.contains(t)) + .sorted(new OriginalTypeComparator()) + .findFirst() + .orElse(null); + + final String drCobjCategory = doc.valueOf("//dr:CobjCategory/text()"); + return ObjectUtils.firstNonNull(dcType, drCobjCategory); + } + @Override protected List> prepareSources(final Document doc, final DataInfo info) { return prepareListFields(doc, "//dc:source", info); @@ -292,7 +342,7 @@ public class OafToOafMapper extends AbstractMdRecordToOafMapper { @Override protected List addOtherResultRels( final Document doc, - final OafEntity entity) { + final OafEntity entity, DataInfo info) { final String docId = entity.getId(); final List res = new ArrayList<>(); @@ -308,11 +358,13 @@ public class OafToOafMapper extends AbstractMdRecordToOafMapper { res .add( getRelation( - docId, otherId, RESULT_RESULT, RELATIONSHIP, IS_RELATED_TO, entity)); + docId, otherId, RESULT_RESULT, RELATIONSHIP, IS_RELATED_TO, entity.getCollectedfrom(), info, + entity.getLastupdatetimestamp(), null, null)); res .add( getRelation( - otherId, docId, RESULT_RESULT, RELATIONSHIP, IS_RELATED_TO, entity)); + otherId, docId, RESULT_RESULT, RELATIONSHIP, IS_RELATED_TO, entity.getCollectedfrom(), info, + entity.getLastupdatetimestamp(), null, null)); } } return res; diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/raw/OdfToOafMapper.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/raw/OdfToOafMapper.java index 1faa2fe9b..08529125c 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/raw/OdfToOafMapper.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/raw/OdfToOafMapper.java @@ -5,15 +5,12 @@ import static eu.dnetlib.dhp.schema.common.ModelConstants.*; import static eu.dnetlib.dhp.schema.oaf.utils.OafMapperUtils.*; import static eu.dnetlib.dhp.schema.oaf.utils.OafMapperUtils.structuredProperty; -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; import java.net.URLDecoder; import java.util.*; import java.util.stream.Collectors; +import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.commons.validator.routines.UrlValidator; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.Node; @@ -27,7 +24,6 @@ import eu.dnetlib.dhp.schema.common.RelationInverse; import eu.dnetlib.dhp.schema.oaf.*; import eu.dnetlib.dhp.schema.oaf.utils.CleaningFunctions; import eu.dnetlib.dhp.schema.oaf.utils.IdentifierFactory; -import eu.dnetlib.dhp.schema.oaf.utils.PidType; public class OdfToOafMapper extends AbstractMdRecordToOafMapper { @@ -144,6 +140,8 @@ public class OdfToOafMapper extends AbstractMdRecordToOafMapper { final List alternateIdentifier = prepareResultPids(doc, info); final List pid = IdentifierFactory.getPids(alternateIdentifier, collectedfrom); + instance.setInstanceTypeMapping(prepareInstanceTypeMapping(doc)); + final Set pids = new HashSet<>(pid); instance @@ -222,6 +220,39 @@ public class OdfToOafMapper extends AbstractMdRecordToOafMapper { } } + /** + * Extracts the resource type from The Datacite element + * + * journal article + * + * @param doc the input document + * @return the chosen resource type + */ + @Override + protected String findOriginalType(Document doc) { + final String resourceType = Optional + .ofNullable( + (Element) doc + .selectSingleNode( + "//*[local-name()='metadata']/*[local-name() = 'resource']/*[local-name() = 'resourceType']")) + .map(element -> { + final String resourceTypeURI = element.attributeValue("uri"); + final String resourceTypeAnyURI = element.attributeValue("anyURI"); + final String resourceTypeTxt = element.getText(); + final String resourceTypeGeneral = element.attributeValue("resourceTypeGeneral"); + + return ObjectUtils + .firstNonNull(resourceTypeURI, resourceTypeAnyURI, resourceTypeTxt, resourceTypeGeneral); + }) + .orElse(null); + + final String drCobjCategory = doc.valueOf("//dr:CobjCategory/text()"); + return ObjectUtils.firstNonNull(resourceType, drCobjCategory); + } + @Override protected List> prepareSources(final Document doc, final DataInfo info) { return new ArrayList<>(); // Not present in ODF ??? @@ -397,7 +428,7 @@ public class OdfToOafMapper extends AbstractMdRecordToOafMapper { @Override protected List addOtherResultRels( final Document doc, - final OafEntity entity) { + final OafEntity entity, DataInfo info) { final String docId = entity.getId(); @@ -413,7 +444,7 @@ public class OdfToOafMapper extends AbstractMdRecordToOafMapper { final String relType = ((Node) o).valueOf("@relationType"); String otherId = guessRelatedIdentifier(idType, originalId); if (StringUtils.isNotBlank(otherId)) { - res.addAll(getRelations(relType, docId, otherId, entity)); + res.addAll(getRelations(relType, docId, otherId, entity, info)); } } @@ -434,18 +465,20 @@ public class OdfToOafMapper extends AbstractMdRecordToOafMapper { } protected List getRelations(final String reltype, final String entityId, final String otherId, - final OafEntity entity) { + final OafEntity entity, DataInfo info) { final List res = new ArrayList<>(); RelationInverse rel = ModelSupport.findRelation(reltype); if (rel != null) { res .add( getRelation( - entityId, otherId, rel.getRelType(), rel.getSubReltype(), rel.getRelClass(), entity)); + entityId, otherId, rel.getRelType(), rel.getSubReltype(), rel.getRelClass(), + entity.getCollectedfrom(), info, entity.getLastupdatetimestamp(), null, null)); res .add( getRelation( - otherId, entityId, rel.getRelType(), rel.getSubReltype(), rel.getInverseRelClass(), entity)); + otherId, entityId, rel.getRelType(), rel.getSubReltype(), rel.getInverseRelClass(), + entity.getCollectedfrom(), info, entity.getLastupdatetimestamp(), null, null)); } return res; diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/raw/OriginalTypeComparator.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/raw/OriginalTypeComparator.java new file mode 100644 index 000000000..c3d8b4789 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/raw/OriginalTypeComparator.java @@ -0,0 +1,33 @@ + +package eu.dnetlib.dhp.oa.graph.raw; + +import static org.apache.commons.lang3.StringUtils.contains; +import static org.apache.commons.lang3.StringUtils.startsWith; + +import java.util.Comparator; + +public class OriginalTypeComparator implements Comparator { + + @Override + public int compare(String t1, String t2) { + + if (t1.equals(t2)) { + return 0; + } + if (startsWith(t1, "http") && contains(t1, "coar") && contains(t1, "resource_type")) { + return -1; + } + if (startsWith(t2, "http") && contains(t2, "coar") && contains(t2, "resource_type")) { + return 1; + } + if (startsWith(t1, "info:eu-repo/semantics")) { + return -1; + } + if (startsWith(t2, "info:eu-repo/semantics")) { + return 1; + } + + return t1.compareTo(t2); + } + +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/enrich/orcid/enrich_graph_orcid_parameters.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/enrich/orcid/enrich_graph_orcid_parameters.json new file mode 100644 index 000000000..765c0e8ff --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/enrich/orcid/enrich_graph_orcid_parameters.json @@ -0,0 +1,26 @@ +[ + { + "paramName": "mt", + "paramLongName": "master", + "paramDescription": "should be local or yarn", + "paramRequired": true + }, + { + "paramName": "op", + "paramLongName": "orcidPath", + "paramDescription": "the path of the orcid Table generated by the dump", + "paramRequired": true + }, + { + "paramName": "gp", + "paramLongName": "graphPath", + "paramDescription": "the path of the graph we want to apply enrichment", + "paramRequired": true + }, + { + "paramName": "tp", + "paramLongName": "targetPath", + "paramDescription": "the output path of the graph enriched", + "paramRequired": true + } +] \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/enrich/orcid/oozie_app/config-default.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/enrich/orcid/oozie_app/config-default.xml new file mode 100644 index 000000000..8a7bc8942 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/enrich/orcid/oozie_app/config-default.xml @@ -0,0 +1,34 @@ + + + jobTracker + yarnRM + + + nameNode + hdfs://nameservice1 + + + oozie.use.system.libpath + true + + + oozie.action.sharelib.for.spark + spark2 + + + hiveMetastoreUris + thrift://iis-cdh5-test-m3.ocean.icm.edu.pl:9083 + + + hiveJdbcUrl + jdbc:hive2://iis-cdh5-test-m3.ocean.icm.edu.pl:10000 + + + hiveDbName + openaire + + + oozie.launcher.mapreduce.user.classpath.first + true + + \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/enrich/orcid/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/enrich/orcid/oozie_app/workflow.xml new file mode 100644 index 000000000..bbd3581c5 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/enrich/orcid/oozie_app/workflow.xml @@ -0,0 +1,95 @@ + + + + orcidPath + the path of the orcid Table generated by the dump + + + graphPath + the path of the graph we want to apply enrichment + + + targetPath + the output path of the graph enriched + + + + + + + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + + yarn + cluster + Enrich Graph with ORCID + eu.dnetlib.dhp.enrich.orcid.SparkEnrichGraphWithOrcidAuthors + dhp-graph-mapper-${projectVersion}.jar + + --executor-memory=${sparkExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkDriverMemory} + --conf spark.executor.memoryOverhead=2g + --conf spark.sql.shuffle.partitions=3000 + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + --orcidPath${orcidPath} + --targetPath${targetPath} + --graphPath${graphPath} + --masteryarn + + + + + + + + + + + + + + + + + + + ${nameNode}/${graphPath}/datasource + ${nameNode}/${targetPath}/datasource + + + + + + + ${nameNode}/${graphPath}/organization + ${nameNode}/${targetPath}/organization + + + + + + + ${nameNode}/${graphPath}/project + ${nameNode}/${targetPath}/project + + + + + + + ${nameNode}/${graphPath}/relation + ${nameNode}/${targetPath}/relation + + + + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/group/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/group/oozie_app/workflow.xml index 888a873c5..2f44bea9d 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/group/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/group/oozie_app/workflow.xml @@ -12,6 +12,14 @@ graphOutputPath path of the output graph + + isLookupUrl + the URL address of the lookUp service + + + filterInvisible + whether filter out invisible entities after merge + sparkDriverMemory memory for driver process @@ -92,199 +100,15 @@ --conf spark.sql.shuffle.partitions=15000 --graphInputPath${graphBasePath} - --outputPath${workingPath}/grouped_entities + --checkpointPath${workingPath}/grouped_entities + --outputPath${graphOutputPath} + --isLookupUrl${isLookupUrl} + --filterInvisible${filterInvisible} - + - - - - - - - - - - - - - yarn - cluster - Dispatch publications - eu.dnetlib.dhp.oa.merge.DispatchEntitiesSparkJob - dhp-graph-mapper-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.sql.shuffle.partitions=7680 - - --inputPath${workingPath}/grouped_entities - --outputPath${graphOutputPath}/datasource - --graphTableClassNameeu.dnetlib.dhp.schema.oaf.Datasource - - - - - - - - yarn - cluster - Dispatch project - eu.dnetlib.dhp.oa.merge.DispatchEntitiesSparkJob - dhp-graph-mapper-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.sql.shuffle.partitions=7680 - - --inputPath${workingPath}/grouped_entities - --outputPath${graphOutputPath}/project - --graphTableClassNameeu.dnetlib.dhp.schema.oaf.Project - - - - - - - - yarn - cluster - Dispatch organization - eu.dnetlib.dhp.oa.merge.DispatchEntitiesSparkJob - dhp-graph-mapper-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.sql.shuffle.partitions=7680 - - --inputPath${workingPath}/grouped_entities - --outputPath${graphOutputPath}/organization - --graphTableClassNameeu.dnetlib.dhp.schema.oaf.Organization - - - - - - - - yarn - cluster - Dispatch publication - eu.dnetlib.dhp.oa.merge.DispatchEntitiesSparkJob - dhp-graph-mapper-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.sql.shuffle.partitions=7680 - - --inputPath${workingPath}/grouped_entities - --outputPath${graphOutputPath}/publication - --graphTableClassNameeu.dnetlib.dhp.schema.oaf.Publication - - - - - - - - yarn - cluster - Dispatch dataset - eu.dnetlib.dhp.oa.merge.DispatchEntitiesSparkJob - dhp-graph-mapper-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.sql.shuffle.partitions=7680 - - --inputPath${workingPath}/grouped_entities - --outputPath${graphOutputPath}/dataset - --graphTableClassNameeu.dnetlib.dhp.schema.oaf.Dataset - - - - - - - - yarn - cluster - Dispatch software - eu.dnetlib.dhp.oa.merge.DispatchEntitiesSparkJob - dhp-graph-mapper-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.sql.shuffle.partitions=7680 - - --inputPath${workingPath}/grouped_entities - --outputPath${graphOutputPath}/software - --graphTableClassNameeu.dnetlib.dhp.schema.oaf.Software - - - - - - - - yarn - cluster - Dispatch otherresearchproduct - eu.dnetlib.dhp.oa.merge.DispatchEntitiesSparkJob - dhp-graph-mapper-${projectVersion}.jar - - --executor-cores=${sparkExecutorCores} - --executor-memory=${sparkExecutorMemory} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - --conf spark.sql.shuffle.partitions=7680 - - --inputPath${workingPath}/grouped_entities - --outputPath${graphOutputPath}/otherresearchproduct - --graphTableClassNameeu.dnetlib.dhp.schema.oaf.OtherResearchProduct - - - - - - - diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/hive/oozie_app/lib/scripts/postprocessing.sql b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/hive/oozie_app/lib/scripts/postprocessing.sql index 149c326fa..748f77b27 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/hive/oozie_app/lib/scripts/postprocessing.sql +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/hive/oozie_app/lib/scripts/postprocessing.sql @@ -1,10 +1,10 @@ DROP VIEW IF EXISTS ${hiveDbName}.result; CREATE VIEW IF NOT EXISTS ${hiveDbName}.result as - select id, originalid, dateofcollection, title, publisher, bestaccessright, datainfo, collectedfrom, pid, author, resulttype, language, country, subject, description, dateofacceptance, relevantdate, embargoenddate, resourcetype, context, externalreference, instance, measures, processingchargeamount, eoscifguidelines from ${hiveDbName}.publication p + select id, originalid, dateofcollection, title, publisher, bestaccessright, datainfo, collectedfrom, pid, author, resulttype, metaresourcetype, language, country, subject, description, dateofacceptance, relevantdate, embargoenddate, resourcetype, context, externalreference, instance, measures, processingchargeamount, eoscifguidelines from ${hiveDbName}.publication p union all - select id, originalid, dateofcollection, title, publisher, bestaccessright, datainfo, collectedfrom, pid, author, resulttype, language, country, subject, description, dateofacceptance, relevantdate, embargoenddate, resourcetype, context, externalreference, instance, measures, processingchargeamount, eoscifguidelines from ${hiveDbName}.dataset d + select id, originalid, dateofcollection, title, publisher, bestaccessright, datainfo, collectedfrom, pid, author, resulttype, metaresourcetype, language, country, subject, description, dateofacceptance, relevantdate, embargoenddate, resourcetype, context, externalreference, instance, measures, processingchargeamount, eoscifguidelines from ${hiveDbName}.dataset d union all - select id, originalid, dateofcollection, title, publisher, bestaccessright, datainfo, collectedfrom, pid, author, resulttype, language, country, subject, description, dateofacceptance, relevantdate, embargoenddate, resourcetype, context, externalreference, instance, measures, processingchargeamount, eoscifguidelines from ${hiveDbName}.software s + select id, originalid, dateofcollection, title, publisher, bestaccessright, datainfo, collectedfrom, pid, author, resulttype, metaresourcetype, language, country, subject, description, dateofacceptance, relevantdate, embargoenddate, resourcetype, context, externalreference, instance, measures, processingchargeamount, eoscifguidelines from ${hiveDbName}.software s union all - select id, originalid, dateofcollection, title, publisher, bestaccessright, datainfo, collectedfrom, pid, author, resulttype, language, country, subject, description, dateofacceptance, relevantdate, embargoenddate, resourcetype, context, externalreference, instance, measures, processingchargeamount, eoscifguidelines from ${hiveDbName}.otherresearchproduct o; + select id, originalid, dateofcollection, title, publisher, bestaccessright, datainfo, collectedfrom, pid, author, resulttype, metaresourcetype, language, country, subject, description, dateofacceptance, relevantdate, embargoenddate, resourcetype, context, externalreference, instance, measures, processingchargeamount, eoscifguidelines from ${hiveDbName}.otherresearchproduct o; diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/hostedbymap/oozie_app/download.sh b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/hostedbymap/oozie_app/download.sh index 35220bd8c..9877fe7de 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/hostedbymap/oozie_app/download.sh +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/hostedbymap/oozie_app/download.sh @@ -1,3 +1,3 @@ #!/bin/bash curl -LSs $1 | hdfs dfs -put - $2/$3 -curl -LSs http://api.crossref.org/works/10.1099/jgv.0.001453 > prova.txt \ No newline at end of file +#curl -LSs http://api.crossref.org/works/10.1099/jgv.0.001453 > prova.txt \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/resolution/oozie_app/config-default.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/resolution/oozie_app/config-default.xml index 6fb2a1253..86847ed46 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/resolution/oozie_app/config-default.xml +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/resolution/oozie_app/config-default.xml @@ -1,4 +1,12 @@ + + jobTracker + yarnRM + + + nameNode + hdfs://nameservice1 + oozie.use.system.libpath true @@ -7,4 +15,28 @@ oozie.action.sharelib.for.spark spark2 + + hive_metastore_uris + thrift://iis-cdh5-test-m3.ocean.icm.edu.pl:9083 + + + spark2YarnHistoryServerAddress + http://iis-cdh5-test-gw.ocean.icm.edu.pl:18089 + + + spark2ExtraListeners + com.cloudera.spark.lineage.NavigatorAppListener + + + spark2SqlQueryExecutionListeners + com.cloudera.spark.lineage.NavigatorQueryListener + + + sparkExecutorNumber + 4 + + + spark2EventLogDir + /user/spark/spark2ApplicationHistory + \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/enrich/orcid/AuthorEnricher.scala b/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/enrich/orcid/AuthorEnricher.scala new file mode 100644 index 000000000..15513c8af --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/enrich/orcid/AuthorEnricher.scala @@ -0,0 +1,40 @@ +package eu.dnetlib.dhp.enrich.orcid + +import eu.dnetlib.dhp.schema.common.ModelConstants +import eu.dnetlib.dhp.schema.oaf.{Author, Publication} +import eu.dnetlib.dhp.schema.sx.OafUtils +import org.apache.spark.sql.Row + +import scala.collection.JavaConverters._ + +object AuthorEnricher extends Serializable { + + def createAuthor(givenName: String, familyName: String, orcid: String): Author = { + val a = new Author + a.setName(givenName) + a.setSurname(familyName) + a.setFullname(s"$givenName $familyName") + val pid = OafUtils.createSP(orcid, ModelConstants.ORCID, ModelConstants.ORCID) + pid.setDataInfo(OafUtils.generateDataInfo()) + pid.getDataInfo.setProvenanceaction(OafUtils.createQualifier("ORCID_ENRICHMENT", "ORCID_ENRICHMENT")) + a.setPid(List(pid).asJava) + a + } + + def toOAFAuthor(r: Row): java.util.List[Author] = { + r.getList[Row](1) + .asScala + .map(s => createAuthor(s.getAs[String]("givenName"), s.getAs[String]("familyName"), s.getAs[String]("orcid"))) + .toList + .asJava + } + +// def enrichAuthor(p:Publication,r:Row): Unit = { +// val k:Map[String, OAuthor] =r.getList[Row](1).asScala.map(s => (s.getAs[String]("orcid"), OAuthor(s.getAs[String]("givenName") ,s.getAs[String]("familyName") ))).groupBy(_._1).mapValues(_.map(_._2).head) +// println(k) +// +// +// +// } + +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/enrich/orcid/SparkEnrichGraphWithOrcidAuthors.scala b/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/enrich/orcid/SparkEnrichGraphWithOrcidAuthors.scala new file mode 100644 index 000000000..4822059c6 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/enrich/orcid/SparkEnrichGraphWithOrcidAuthors.scala @@ -0,0 +1,138 @@ +package eu.dnetlib.dhp.enrich.orcid + +import eu.dnetlib.dhp.application.AbstractScalaApplication +import eu.dnetlib.dhp.oa.merge.AuthorMerger +import eu.dnetlib.dhp.schema.common.ModelSupport +import eu.dnetlib.dhp.schema.oaf.{OtherResearchProduct, Publication, Result, Software} +import org.apache.spark.sql.functions._ +import org.apache.spark.sql._ +import org.slf4j.{Logger, LoggerFactory} +import scala.collection.JavaConverters._ + +class SparkEnrichGraphWithOrcidAuthors(propertyPath: String, args: Array[String], log: Logger) + extends AbstractScalaApplication(propertyPath, args, log: Logger) { + + /** Here all the spark applications runs this method + * where the whole logic of the spark node is defined + */ + override def run(): Unit = { + val graphPath = parser.get("graphPath") + log.info(s"graphPath is '$graphPath'") + val orcidPath = parser.get("orcidPath") + log.info(s"orcidPath is '$orcidPath'") + val targetPath = parser.get("targetPath") + log.info(s"targetPath is '$targetPath'") + val orcidPublication: Dataset[Row] = generateOrcidTable(spark, orcidPath) +// ModelSupport.entityTypes.entrySet().asScala.filter(k => k.getKey.getClass isInstance(Result)) + + enrichResult( + spark, + s"$graphPath/publication", + orcidPublication, + s"$targetPath/publication", + Encoders.bean(classOf[Publication]) + ) + enrichResult( + spark, + s"$graphPath/dataset", + orcidPublication, + s"$targetPath/dataset", + Encoders.bean(classOf[eu.dnetlib.dhp.schema.oaf.Dataset]) + ) + enrichResult( + spark, + s"$graphPath/software", + orcidPublication, + s"$targetPath/software", + Encoders.bean(classOf[Software]) + ) + enrichResult( + spark, + s"$graphPath/otherresearchproduct", + orcidPublication, + s"$targetPath/otherresearchproduct", + Encoders.bean(classOf[OtherResearchProduct]) + ) + } + + private def enrichResult[T <: Result]( + spark: SparkSession, + graphPath: String, + orcidPublication: Dataset[Row], + outputPath: String, + enc: Encoder[T] + ): Unit = { + + val entities = spark.read + .schema(enc.schema) + .json(graphPath) + .select(col("id"), col("datainfo"), col("instance")) + .where("datainfo.deletedbyinference != true") + .drop("datainfo") + .withColumn("instances", explode(col("instance"))) + .withColumn("pids", explode(col("instances.pid"))) + .select( + col("pids.qualifier.classid").alias("pid_schema"), + col("pids.value").alias("pid_value"), + col("id").alias("dnet_id") + ) + + val orcidDnet = orcidPublication + .join( + entities, + lower(col("schema")).equalTo(lower(col("pid_schema"))) && + lower(col("value")).equalTo(lower(col("pid_value"))), + "inner" + ) + .groupBy(col("dnet_id")) + .agg(collect_set(orcidPublication("author")).alias("orcid_authors")) + .select("dnet_id", "orcid_authors") + .cache() + orcidDnet.count() + val result = spark.read.schema(enc.schema).json(graphPath).as[T](enc) + + result + .joinWith(orcidDnet, result("id").equalTo(orcidDnet("dnet_id")), "left") + .map { + case (r: T, null) => + r + case (p: T, r: Row) => + p.setAuthor(AuthorMerger.enrichOrcid(p.getAuthor, AuthorEnricher.toOAFAuthor(r))) + p + }(enc) + .write + .mode(SaveMode.Overwrite) + .option("compression", "gzip") + .json(outputPath) + } + + private def generateOrcidTable(spark: SparkSession, inputPath: String): Dataset[Row] = { + val orcidAuthors = + spark.read.load(s"$inputPath/Authors").select("orcid", "familyName", "givenName", "creditName", "otherNames") + val orcidWorks = spark.read + .load(s"$inputPath/Works") + .select(col("orcid"), explode(col("pids")).alias("identifier")) + .where( + "identifier.schema IN('doi','pmid','pmc','arxiv','handle')" + ) + val orcidPublication = orcidAuthors + .join(orcidWorks, orcidAuthors("orcid").equalTo(orcidWorks("orcid"))) + .select( + col("identifier.schema").alias("schema"), + col("identifier.value").alias("value"), + struct(orcidAuthors("orcid").alias("orcid"), col("givenName"), col("familyName")).alias("author") + ) + orcidPublication.cache() + } +} + +object SparkEnrichGraphWithOrcidAuthors { + + val log: Logger = LoggerFactory.getLogger(SparkEnrichGraphWithOrcidAuthors.getClass) + + def main(args: Array[String]): Unit = { + new SparkEnrichGraphWithOrcidAuthors("/eu/dnetlib/dhp/enrich/orcid/enrich_graph_orcid_parameters.json", args, log) + .initialize() + .run() + } +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkCreateInputGraph.scala b/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkCreateInputGraph.scala index 9d57e5869..704c9ab5c 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkCreateInputGraph.scala +++ b/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkCreateInputGraph.scala @@ -130,7 +130,7 @@ object SparkCreateInputGraph { val ds: Dataset[T] = spark.read.load(sourcePath).as[T] ds.groupByKey(_.getId) - .reduceGroups { (x, y) => + .reduceGroups { (x: T, y: T) => x.mergeFrom(y) x } diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/clean/CleanGraphSparkJobTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/clean/CleanGraphSparkJobTest.java index 65182108e..4ae3f82c2 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/clean/CleanGraphSparkJobTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/clean/CleanGraphSparkJobTest.java @@ -251,9 +251,19 @@ public class CleanGraphSparkJobTest { .filter(String.format("id = '%s'", id)) .first(); + final Set invalidURLs = new HashSet<>(); + invalidURLs.add("http://academia.edu/abcd"); + invalidURLs.add("http://repo.scoap3.org/api"); + invalidURLs.add("http://hdl.handle.net/"); + assertNull(p_in.getBestaccessright()); assertTrue(p_in instanceof Result); assertTrue(p_in instanceof Publication); + assertNotNull(p_in.getAuthor()); + assertEquals(14, p_in.getAuthor().size()); + assertNotNull(p_in.getInstance()); + assertNotNull(p_in.getInstance().get(0)); + assertEquals(3, p_in.getInstance().get(0).getUrl().stream().filter(invalidURLs::contains).count()); new CleanGraphSparkJob( args( @@ -273,6 +283,9 @@ public class CleanGraphSparkJobTest { assertNull(p.getPublisher()); + assertNotNull(p.getAuthor()); + assertEquals(12, p.getAuthor().size()); + assertEquals("und", p.getLanguage().getClassid()); assertEquals("Undetermined", p.getLanguage().getClassname()); @@ -364,6 +377,8 @@ public class CleanGraphSparkJobTest { .stream() .anyMatch(s -> s.getValue().equals("10.1009/qwerty"))); + assertTrue(p.getInstance().get(0).getUrl().stream().noneMatch(invalidURLs::contains)); + assertNotNull(p.getSubject()); List fos_subjects = p @@ -675,6 +690,38 @@ public class CleanGraphSparkJobTest { } + @Test + void testClean_ORP() throws Exception { + final String prefix = "gcube "; + + new CleanGraphSparkJob( + args( + "/eu/dnetlib/dhp/oa/graph/input_clean_graph_parameters.json", + new String[] { + "--inputPath", graphInputPath + "/orp", + "--outputPath", graphOutputPath + "/orp", + "--isLookupUrl", "lookupurl", + "--graphTableClassName", OtherResearchProduct.class.getCanonicalName(), + "--deepClean", "true", + "--contextId", "sobigdata", + "--verifyParam", "gCube ", + "--masterDuplicatePath", dsMasterDuplicatePath, + "--country", "NL", + "--verifyCountryParam", "10.17632", + "--collectedfrom", "NARCIS", + "--hostedBy", Objects + .requireNonNull( + getClass() + .getResource("/eu/dnetlib/dhp/oa/graph/clean/hostedBy")) + .getPath() + })).run(false, isLookUpService); + + Dataset orp = read(spark, graphOutputPath + "/orp", OtherResearchProduct.class); + + assertEquals(1, orp.count()); + + } + @Test void testCleanCfHbSparkJob() throws Exception { diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/clean/GraphCleaningFunctionsTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/clean/GraphCleaningFunctionsTest.java index 24b942f4d..8d10508a9 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/clean/GraphCleaningFunctionsTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/clean/GraphCleaningFunctionsTest.java @@ -251,6 +251,12 @@ public class GraphCleaningFunctionsTest { pid.getQualifier().getClassname())); }); + assertTrue( + p_cleaned + .getAuthor() + .stream() + .anyMatch(a -> "Brien, Tom".equals(a.getFullname()))); + assertNotNull(p_cleaned.getSubject()); List fos_subjects = p_cleaned @@ -285,6 +291,31 @@ public class GraphCleaningFunctionsTest { System.out.println(MAPPER.writeValueAsString(p_cleaned)); } + @Test + void testCleaning_dataset() throws Exception { + + assertNotNull(vocabularies); + assertNotNull(mapping); + + String json = IOUtils + .toString(getClass().getResourceAsStream("/eu/dnetlib/dhp/oa/graph/clean/result_dataset.json")); + Dataset p_in = MAPPER.readValue(json, Dataset.class); + + assertTrue(p_in instanceof Result); + assertTrue(p_in instanceof Dataset); + + Dataset p_out = OafCleaner.apply(GraphCleaningFunctions.fixVocabularyNames(p_in), mapping); + + assertNotNull(p_out); + + assertNotNull(p_out.getPublisher()); + assertNotNull(p_out.getPublisher().getValue()); + + Dataset p_cleaned = GraphCleaningFunctions.cleanup(p_out, vocabularies); + + assertEquals("Best publisher in the world", p_cleaned.getPublisher().getValue()); + } + private static void verify_keyword(Publication p_cleaned, String subject) { Optional s1 = p_cleaned .getSubject() @@ -337,6 +368,15 @@ public class GraphCleaningFunctionsTest { Assertions.assertEquals(true, GraphCleaningFunctions.filter(cleaned)); } + @Test + public void testFilterProject() throws IOException { + String json = IOUtils + .toString(getClass().getResourceAsStream("/eu/dnetlib/dhp/oa/graph/clean/project.json")); + Project p_in = MAPPER.readValue(json, Project.class); + + Assertions.assertEquals(false, GraphCleaningFunctions.filter(p_in)); + } + @Test public void testCleanDoiBoost2() throws IOException { String json = IOUtils diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/group/GroupEntitiesSparkJobTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/group/GroupEntitiesSparkJobTest.java index 3bd1c13de..242aed88e 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/group/GroupEntitiesSparkJobTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/group/GroupEntitiesSparkJobTest.java @@ -1,16 +1,23 @@ package eu.dnetlib.dhp.oa.graph.group; -import static org.junit.jupiter.api.Assertions.*; +import static eu.dnetlib.dhp.schema.common.ModelConstants.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.Mockito.lenient; import java.io.IOException; import java.net.URISyntaxException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import org.apache.commons.cli.ParseException; import org.apache.commons.io.FileUtils; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.io.IOUtils; import org.apache.spark.SparkConf; import org.apache.spark.api.java.function.FilterFunction; import org.apache.spark.api.java.function.MapFunction; @@ -18,22 +25,36 @@ import org.apache.spark.sql.Dataset; import org.apache.spark.sql.Encoders; import org.apache.spark.sql.SparkSession; import org.junit.jupiter.api.*; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.collect.Lists; +import eu.dnetlib.dhp.application.ArgumentApplicationParser; import eu.dnetlib.dhp.common.HdfsSupport; -import eu.dnetlib.dhp.oa.merge.DispatchEntitiesSparkJob; +import eu.dnetlib.dhp.common.vocabulary.VocabularyGroup; import eu.dnetlib.dhp.oa.merge.GroupEntitiesSparkJob; +import eu.dnetlib.dhp.schema.common.ModelConstants; import eu.dnetlib.dhp.schema.common.ModelSupport; -import eu.dnetlib.dhp.schema.oaf.Publication; +import eu.dnetlib.dhp.schema.oaf.Instance; +import eu.dnetlib.dhp.schema.oaf.InstanceTypeMapping; +import eu.dnetlib.dhp.schema.oaf.OafEntity; import eu.dnetlib.dhp.schema.oaf.Result; import eu.dnetlib.dhp.utils.DHPUtils; +import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException; +import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; +@ExtendWith(MockitoExtension.class) @TestMethodOrder(MethodOrderer.OrderAnnotation.class) public class GroupEntitiesSparkJobTest { + @Mock + private ISLookUpService isLookUpService; + + private VocabularyGroup vocabularies; + private static SparkSession spark; private static ObjectMapper mapper = new ObjectMapper() @@ -42,15 +63,16 @@ public class GroupEntitiesSparkJobTest { private static Path workingDir; private Path dataInputPath; - private Path groupEntityPath; - private Path dispatchEntityPath; + private Path checkpointPath; + + private Path outputPath; @BeforeAll public static void beforeAll() throws IOException { - workingDir = Files.createTempDirectory(GroupEntitiesSparkJob.class.getSimpleName()); + workingDir = Files.createTempDirectory(GroupEntitiesSparkJobTest.class.getSimpleName()); SparkConf conf = new SparkConf(); - conf.setAppName(GroupEntitiesSparkJob.class.getSimpleName()); + conf.setAppName(GroupEntitiesSparkJobTest.class.getSimpleName()); conf.setMaster("local"); conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer"); conf.registerKryoClasses(ModelSupport.getOafModelClasses()); @@ -58,10 +80,17 @@ public class GroupEntitiesSparkJobTest { } @BeforeEach - public void beforeEach() throws IOException, URISyntaxException { + public void beforeEach() throws IOException, URISyntaxException, ISLookUpException { dataInputPath = Paths.get(ClassLoader.getSystemResource("eu/dnetlib/dhp/oa/graph/group").toURI()); - groupEntityPath = workingDir.resolve("grouped_entity"); - dispatchEntityPath = workingDir.resolve("dispatched_entity"); + checkpointPath = workingDir.resolve("grouped_entity"); + outputPath = workingDir.resolve("dispatched_entity"); + + lenient().when(isLookUpService.quickSearchProfile(VocabularyGroup.VOCABULARIES_XQUERY)).thenReturn(vocs()); + lenient() + .when(isLookUpService.quickSearchProfile(VocabularyGroup.VOCABULARY_SYNONYMS_XQUERY)) + .thenReturn(synonyms()); + + vocabularies = VocabularyGroup.loadVocsFromIS(isLookUpService); } @AfterAll @@ -73,49 +102,32 @@ public class GroupEntitiesSparkJobTest { @Test @Order(1) void testGroupEntities() throws Exception { - GroupEntitiesSparkJob.main(new String[] { - "-isSparkSessionManaged", - Boolean.FALSE.toString(), - "-graphInputPath", - dataInputPath.toString(), - "-outputPath", - groupEntityPath.toString() - }); + new GroupEntitiesSparkJob( + args( + "/eu/dnetlib/dhp/oa/merge/group_graph_entities_parameters.json", + new String[] { + "--isSparkSessionManaged", Boolean.FALSE.toString(), + "--graphInputPath", dataInputPath.toString(), + "--checkpointPath", checkpointPath.toString(), + "--outputPath", outputPath.toString(), + "--filterInvisible", Boolean.FALSE.toString(), + "--isLookupUrl", "lookupurl" + })).run(false, isLookUpService); - Dataset output = spark + Dataset checkpointTable = spark .read() - .textFile(groupEntityPath.toString()) - .map((MapFunction) s -> StringUtils.substringAfter(s, "|"), Encoders.STRING()) - .map((MapFunction) s -> mapper.readValue(s, Result.class), Encoders.bean(Result.class)); + .load(checkpointPath.toString()) + .selectExpr("COALESCE(*)") + .as(Encoders.kryo(OafEntity.class)); assertEquals( 1, - output + checkpointTable .filter( - (FilterFunction) r -> "50|doi_________::09821844208a5cd6300b2bfb13bca1b9" + (FilterFunction) r -> "50|doi_________::09821844208a5cd6300b2bfb13bca1b9" .equals(r.getId()) && r.getCollectedfrom().stream().anyMatch(kv -> kv.getValue().equalsIgnoreCase("zenodo"))) .count()); - } - - @Test - @Order(2) - void testDispatchEntities() throws Exception { - for (String type : Lists - .newArrayList( - Publication.class.getCanonicalName(), eu.dnetlib.dhp.schema.oaf.Dataset.class.getCanonicalName())) { - String directory = StringUtils.substringAfterLast(type, ".").toLowerCase(); - DispatchEntitiesSparkJob.main(new String[] { - "-isSparkSessionManaged", - Boolean.FALSE.toString(), - "-inputPath", - groupEntityPath.toString(), - "-outputPath", - dispatchEntityPath.resolve(directory).toString(), - "-graphTableClassName", - type - }); - } Dataset output = spark .read() @@ -123,10 +135,18 @@ public class GroupEntitiesSparkJobTest { DHPUtils .toSeq( HdfsSupport - .listFiles(dispatchEntityPath.toString(), spark.sparkContext().hadoopConfiguration()))) + .listFiles(outputPath.toString(), spark.sparkContext().hadoopConfiguration()))) .map((MapFunction) s -> mapper.readValue(s, Result.class), Encoders.bean(Result.class)); assertEquals(3, output.count()); + + List resultTypes = output + .map((MapFunction) value -> value.getResulttype().getClassid(), Encoders.STRING()) + .distinct() + .collectAsList(); + + assertEquals(2, resultTypes.size()); + assertEquals( 2, output @@ -139,6 +159,68 @@ public class GroupEntitiesSparkJobTest { .map((MapFunction) r -> r.getResulttype().getClassid(), Encoders.STRING()) .filter((FilterFunction) s -> s.equals("dataset")) .count()); + + Result result = output + .filter("id = '50|doi_________::09821844208a5cd6300b2bfb13bca1b9'") + .first(); + + result.getInstance().forEach(instance -> { + Optional coarType = instance + .getInstanceTypeMapping() + .stream() + .filter(itm -> OPENAIRE_COAR_RESOURCE_TYPES_3_1.equals(itm.getVocabularyName())) + .filter(itm -> "journal-article".equals(itm.getOriginalType())) + .findFirst(); + + assertTrue(coarType.isPresent()); + assertEquals("http://purl.org/coar/resource_type/c_2df8fbb1", coarType.get().getTypeCode()); + assertEquals("research article", coarType.get().getTypeLabel()); + }); + + final Dataset filtered = output.filter("id = '50|DansKnawCris::203a27996ddc0fd1948258e5b7dec61c'"); + assertEquals(1, filtered.count()); + result = filtered.first(); + + result + .getInstance() + .stream() + .flatMap(instance -> instance.getInstanceTypeMapping().stream()) + .filter(itm -> OPENAIRE_COAR_RESOURCE_TYPES_3_1.equals(itm.getVocabularyName())) + .filter(itm -> "Patent".equals(itm.getOriginalType())) + .forEach(itm -> { + assertEquals("http://purl.org/coar/resource_type/c_15cd", itm.getTypeCode()); + assertEquals("patent", itm.getTypeLabel()); + }); + } + + private List vocs() throws IOException { + return IOUtils + .readLines( + Objects + .requireNonNull( + getClass().getResourceAsStream("/eu/dnetlib/dhp/oa/graph/clean/terms.txt"))); + } + + private List synonyms() throws IOException { + return IOUtils + .readLines( + Objects + .requireNonNull( + getClass().getResourceAsStream("/eu/dnetlib/dhp/oa/graph/clean/synonyms.txt"))); + } + + private ArgumentApplicationParser args(String paramSpecs, String[] args) throws IOException, ParseException { + ArgumentApplicationParser parser = new ArgumentApplicationParser(classPathResourceAsString(paramSpecs)); + parser.parseArgument(args); + return parser; + } + + private static String classPathResourceAsString(String path) throws IOException { + return IOUtils + .toString( + Objects + .requireNonNull( + GroupEntitiesSparkJobTest.class.getResourceAsStream(path))); } } diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/hostedbymap/DownloadCsvTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/hostedbymap/DownloadCsvTest.java index 48f1e0c06..9bd32968a 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/hostedbymap/DownloadCsvTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/hostedbymap/DownloadCsvTest.java @@ -49,7 +49,7 @@ public class DownloadCsvTest { @Test void getUnibiFileTest() throws CollectorException, IOException, ClassNotFoundException { - String fileURL = "https://pub.uni-bielefeld.de/download/2944717/2944718/issn_gold_oa_version_4.csv"; + String fileURL = "https://pub.uni-bielefeld.de/download/2944717/2944718/issn_gold_oa_version_5.csv"; final String outputFile = workingDir + "/unibi_gold.json"; new DownloadCSV() diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/raw/GenerateEntitiesApplicationTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/raw/GenerateEntitiesApplicationTest.java index 53b3f8432..6d6b2ffbd 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/raw/GenerateEntitiesApplicationTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/raw/GenerateEntitiesApplicationTest.java @@ -92,13 +92,14 @@ class GenerateEntitiesApplicationTest { private List vocs() throws IOException { return IOUtils .readLines( - GraphCleaningFunctionsTest.class.getResourceAsStream("/eu/dnetlib/dhp/oa/graph/clean/terms.txt")); + GenerateEntitiesApplicationTest.class.getResourceAsStream("/eu/dnetlib/dhp/oa/graph/clean/terms.txt")); } private List synonyms() throws IOException { return IOUtils .readLines( - GraphCleaningFunctionsTest.class.getResourceAsStream("/eu/dnetlib/dhp/oa/graph/clean/synonyms.txt")); + GenerateEntitiesApplicationTest.class + .getResourceAsStream("/eu/dnetlib/dhp/oa/graph/clean/synonyms.txt")); } } diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/raw/MappersTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/raw/MappersTest.java index 894ed33f7..ac0435ce2 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/raw/MappersTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/raw/MappersTest.java @@ -14,6 +14,8 @@ import java.util.stream.Collectors; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.spark.api.java.function.MapFunction; +import org.apache.spark.sql.Encoders; import org.dom4j.DocumentException; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -25,8 +27,11 @@ import com.fasterxml.jackson.databind.ObjectMapper; import eu.dnetlib.dhp.common.Constants; import eu.dnetlib.dhp.common.vocabulary.VocabularyGroup; +import eu.dnetlib.dhp.oa.graph.clean.CleaningRuleMap; +import eu.dnetlib.dhp.oa.graph.clean.OafCleaner; import eu.dnetlib.dhp.schema.common.ModelConstants; import eu.dnetlib.dhp.schema.oaf.*; +import eu.dnetlib.dhp.schema.oaf.utils.GraphCleaningFunctions; import eu.dnetlib.dhp.schema.oaf.utils.IdentifierFactory; import eu.dnetlib.dhp.schema.oaf.utils.PidType; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; @@ -74,7 +79,7 @@ class MappersTest { assertTrue(StringUtils.isNotBlank(p.getDateofcollection())); assertTrue(StringUtils.isNotBlank(p.getDateoftransformation())); - assertTrue(p.getAuthor().size() > 0); + assertFalse(p.getAuthor().isEmpty()); final Optional author = p .getAuthor() .stream() @@ -97,14 +102,14 @@ class MappersTest { assertEquals("Votsi", author.get().getSurname()); assertEquals("Nefta", author.get().getName()); - assertTrue(p.getSubject().size() > 0); + assertFalse(p.getSubject().isEmpty()); assertTrue(StringUtils.isNotBlank(p.getJournal().getIssnOnline())); assertTrue(StringUtils.isNotBlank(p.getJournal().getName())); assertTrue(p.getPid().isEmpty()); assertNotNull(p.getInstance()); - assertTrue(p.getInstance().size() > 0); + assertFalse(p.getInstance().isEmpty()); p .getInstance() .forEach(i -> { @@ -116,6 +121,27 @@ class MappersTest { assertNotNull(instance.getPid()); assertTrue(instance.getPid().isEmpty()); + assertNotNull(instance.getInstanceTypeMapping()); + assertEquals(1, instance.getInstanceTypeMapping().size()); + + Optional coarType = instance + .getInstanceTypeMapping() + .stream() + .filter(itm -> ModelConstants.OPENAIRE_COAR_RESOURCE_TYPES_3_1.equals(itm.getVocabularyName())) + .findFirst(); + + assertTrue(coarType.isPresent()); + assertNull(coarType.get().getTypeCode()); + assertNull(coarType.get().getTypeLabel()); + + Optional userType = instance + .getInstanceTypeMapping() + .stream() + .filter(itm -> ModelConstants.OPENAIRE_USER_RESOURCE_TYPES.equals(itm.getVocabularyName())) + .findFirst(); + + assertFalse(userType.isPresent()); + assertFalse(instance.getAlternateIdentifier().isEmpty()); assertEquals("doi", instance.getAlternateIdentifier().get(0).getQualifier().getClassid()); assertEquals("10.3897/oneeco.2.e13718", instance.getAlternateIdentifier().get(0).getValue()); @@ -207,7 +233,7 @@ class MappersTest { assertTrue(StringUtils.isNotBlank(p.getDateofcollection())); assertTrue(StringUtils.isNotBlank(p.getDateoftransformation())); - assertTrue(p.getAuthor().size() > 0); + assertFalse(p.getAuthor().isEmpty()); final Optional author = p .getAuthor() .stream() @@ -230,13 +256,13 @@ class MappersTest { assertEquals("Votsi", author.get().getSurname()); assertEquals("Nefta", author.get().getName()); - assertTrue(p.getSubject().size() > 0); - assertTrue(p.getPid().size() > 0); + assertFalse(p.getSubject().isEmpty()); + assertFalse(p.getPid().isEmpty()); assertEquals("PMC1517292", p.getPid().get(0).getValue()); assertEquals("pmc", p.getPid().get(0).getQualifier().getClassid()); assertNotNull(p.getInstance()); - assertTrue(p.getInstance().size() > 0); + assertFalse(p.getInstance().isEmpty()); p .getInstance() .forEach(i -> { @@ -245,8 +271,8 @@ class MappersTest { }); Publication p_cleaned = cleanup(p, vocs); - assertEquals("0000", p_cleaned.getInstance().get(0).getRefereed().getClassid()); - assertEquals("Unknown", p_cleaned.getInstance().get(0).getRefereed().getClassname()); + assertEquals("0002", p_cleaned.getInstance().get(0).getRefereed().getClassid()); + assertEquals("nonPeerReviewed", p_cleaned.getInstance().get(0).getRefereed().getClassname()); assertNotNull(p.getInstance().get(0).getPid()); assertEquals(2, p.getInstance().get(0).getPid().size()); @@ -266,7 +292,7 @@ class MappersTest { final List list = new OafToOafMapper(vocs, true, true).processMdRecord(xml); - assertTrue(list.size() > 0); + assertFalse(list.isEmpty()); assertTrue(list.get(0) instanceof Publication); final Publication p = (Publication) list.get(0); @@ -322,7 +348,7 @@ class MappersTest { assertTrue(d.getOriginalId().stream().anyMatch(oid -> oid.equals("oai:zenodo.org:3234526"))); assertValidId(d.getCollectedfrom().get(0).getKey()); assertTrue(StringUtils.isNotBlank(d.getTitle().get(0).getValue())); - assertTrue(d.getAuthor().size() > 0); + assertFalse(d.getAuthor().isEmpty()); final Optional author = d .getAuthor() @@ -356,13 +382,13 @@ class MappersTest { final Field affiliation = opAff.get(); assertEquals("ISTI-CNR", affiliation.getValue()); - assertTrue(d.getSubject().size() > 0); - assertTrue(d.getInstance().size() > 0); - assertTrue(d.getContext().size() > 0); - assertTrue(d.getContext().get(0).getId().length() > 0); + assertFalse(d.getSubject().isEmpty()); + assertFalse(d.getInstance().isEmpty()); + assertFalse(d.getContext().isEmpty()); + assertFalse(d.getContext().get(0).getId().isEmpty()); assertNotNull(d.getInstance()); - assertTrue(d.getInstance().size() > 0); + assertFalse(d.getInstance().isEmpty()); d .getInstance() .forEach(i -> { @@ -436,7 +462,7 @@ class MappersTest { // assertEquals("oai:pub.uni-bielefeld.de:2949739", p.getOriginalId().get(0)); assertValidId(p.getCollectedfrom().get(0).getKey()); - assertTrue(p.getAuthor().size() > 0); + assertFalse(p.getAuthor().isEmpty()); final Optional author = p .getAuthor() @@ -448,14 +474,14 @@ class MappersTest { assertEquals("Potwarka", author.get().getSurname()); assertEquals("Luke R.", author.get().getName()); - assertTrue(p.getSubject().size() > 0); - assertTrue(p.getInstance().size() > 0); + assertFalse(p.getSubject().isEmpty()); + assertFalse(p.getInstance().isEmpty()); assertNotNull(p.getTitle()); assertFalse(p.getTitle().isEmpty()); assertNotNull(p.getInstance()); - assertTrue(p.getInstance().size() > 0); + assertFalse(p.getInstance().isEmpty()); p .getInstance() .forEach(i -> { @@ -464,8 +490,8 @@ class MappersTest { }); Publication p_cleaned = cleanup(p, vocs); - assertEquals("0000", p_cleaned.getInstance().get(0).getRefereed().getClassid()); - assertEquals("Unknown", p_cleaned.getInstance().get(0).getRefereed().getClassname()); + assertEquals("0002", p_cleaned.getInstance().get(0).getRefereed().getClassid()); + assertEquals("nonPeerReviewed", p_cleaned.getInstance().get(0).getRefereed().getClassname()); } @Test @@ -583,8 +609,129 @@ class MappersTest { assertTrue(i.getUrl().contains("https://clinicaltrials.gov/ct2/show/NCT02321059")); Dataset d_cleaned = cleanup(d, vocs); - assertEquals("0000", d_cleaned.getInstance().get(0).getRefereed().getClassid()); - assertEquals("Unknown", d_cleaned.getInstance().get(0).getRefereed().getClassname()); + assertEquals("0002", d_cleaned.getInstance().get(0).getRefereed().getClassid()); + assertEquals("nonPeerReviewed", d_cleaned.getInstance().get(0).getRefereed().getClassname()); + } + + @Test + void test_record_from_Crossref() throws IOException { + + final CleaningRuleMap mapping = CleaningRuleMap.create(vocs); + + final String xml = IOUtils + .toString(Objects.requireNonNull(getClass().getResourceAsStream("oaf_crossref.xml"))); + final List list = new OafToOafMapper(vocs, false, true).processMdRecord(xml); + + assertEquals(1, list.size()); + assertTrue(list.get(0) instanceof Publication); + + final Publication p = OafCleaner.apply(fixVocabularyNames((Publication) list.get(0)), mapping); + + assertNotNull(p.getDateofcollection()); + assertEquals("2020-08-06T07:04:09.62Z", p.getDateofcollection()); + + assertNotNull(p.getDateoftransformation()); + assertEquals("2020-08-06T07:20:57.911Z", p.getDateoftransformation()); + + assertNotNull(p.getDataInfo()); + assertFalse(p.getDataInfo().getInvisible()); + assertFalse(p.getDataInfo().getDeletedbyinference()); + assertEquals("0.9", p.getDataInfo().getTrust()); + + assertValidId(p.getId()); + assertEquals(2, p.getOriginalId().size()); + + assertEquals("50|doi_________::7f0f7807f17db50e5c2b5c452ccaf06d", p.getOriginalId().get(0)); + assertValidId(p.getCollectedfrom().get(0).getKey()); + + assertNotNull(p.getTitle()); + assertEquals(1, p.getTitle().size()); + assertEquals( + "A case report of serious haemolysis in a glucose-6-phosphate dehydrogenase-deficient COVID-19 patient receiving hydroxychloroquine", + p + .getTitle() + .get(0) + .getValue()); + + assertNotNull(p.getDescription()); + assertEquals(0, p.getDescription().size()); + + assertEquals(8, p.getAuthor().size()); + + assertNotNull(p.getInstance()); + assertEquals(1, p.getInstance().size()); + + final Instance i = p.getInstance().get(0); + + assertNotNull(i.getAccessright()); + assertEquals(ModelConstants.DNET_ACCESS_MODES, i.getAccessright().getSchemeid()); + assertEquals(ModelConstants.DNET_ACCESS_MODES, i.getAccessright().getSchemename()); + assertEquals("OPEN", i.getAccessright().getClassid()); + assertEquals("Open Access", i.getAccessright().getClassname()); + + assertNotNull(i.getCollectedfrom()); + assertEquals("10|openaire____::081b82f96300b6a6e3d282bad31cb6e2", i.getCollectedfrom().getKey()); + assertEquals("Crossref", i.getCollectedfrom().getValue()); + + assertNotNull(i.getHostedby()); + assertEquals("10|openaire____::55045bd2a65019fd8e6741a755395c8c", i.getHostedby().getKey()); + assertEquals("Unknown Repository", i.getHostedby().getValue()); + + assertNotNull(i.getInstancetype()); + assertEquals("0001", i.getInstancetype().getClassid()); + assertEquals("Article", i.getInstancetype().getClassname()); + assertEquals(ModelConstants.DNET_PUBLICATION_RESOURCE, i.getInstancetype().getSchemeid()); + assertEquals(ModelConstants.DNET_PUBLICATION_RESOURCE, i.getInstancetype().getSchemename()); + + assertNull(i.getLicense()); + assertNotNull(i.getDateofacceptance()); + assertEquals("2020-06-04", i.getDateofacceptance().getValue()); + + assertNull(i.getProcessingchargeamount()); + assertNull(i.getProcessingchargecurrency()); + + assertNotNull(i.getPid()); + assertEquals(1, i.getPid().size()); + + assertNotNull(i.getAlternateIdentifier()); + assertEquals(0, i.getAlternateIdentifier().size()); + + assertNotNull(i.getUrl()); + assertEquals(1, i.getUrl().size()); + assertTrue(i.getUrl().contains("http://dx.doi.org/10.1080/23744235.2020.1774644")); + + assertEquals("", p.getInstance().get(0).getRefereed().getClassid()); + assertEquals("", p.getInstance().get(0).getRefereed().getClassname()); + + Publication p_cleaned = cleanup(p, vocs); + + assertEquals("0001", p_cleaned.getInstance().get(0).getRefereed().getClassid()); + assertEquals("peerReviewed", p_cleaned.getInstance().get(0).getRefereed().getClassname()); + + assertNull(p_cleaned.getMetaResourceType()); + + assertNotNull(p_cleaned.getInstance().get(0).getInstanceTypeMapping()); + assertEquals(1, p_cleaned.getInstance().get(0).getInstanceTypeMapping().size()); + + assertTrue( + p_cleaned + .getInstance() + .get(0) + .getInstanceTypeMapping() + .stream() + .anyMatch( + t -> "journal-article".equals(t.getOriginalType()) && + ModelConstants.OPENAIRE_COAR_RESOURCE_TYPES_3_1.equals(t.getVocabularyName()) && + Objects.isNull(t.getTypeCode()) && Objects.isNull(t.getTypeLabel()))); + + assertTrue( + p_cleaned + .getInstance() + .get(0) + .getInstanceTypeMapping() + .stream() + .noneMatch( + t -> ModelConstants.OPENAIRE_USER_RESOURCE_TYPES.equals(t.getVocabularyName()))); } @Test @@ -603,9 +750,9 @@ class MappersTest { assertValidId(s.getId()); assertValidId(s.getCollectedfrom().get(0).getKey()); assertTrue(StringUtils.isNotBlank(s.getTitle().get(0).getValue())); - assertTrue(s.getAuthor().size() > 0); - assertTrue(s.getSubject().size() > 0); - assertTrue(s.getInstance().size() > 0); + assertFalse(s.getAuthor().isEmpty()); + assertFalse(s.getSubject().isEmpty()); + assertFalse(s.getInstance().isEmpty()); final Relation r1 = (Relation) list.get(1); final Relation r2 = (Relation) list.get(2); @@ -797,6 +944,20 @@ class MappersTest { assertFalse(p_cleaned.getTitle().isEmpty()); } + @Test + void test_instance_url_validation() throws IOException { + final String xml = IOUtils.toString(Objects.requireNonNull(getClass().getResourceAsStream("idus_sevilla.xml"))); + final List list = new OafToOafMapper(vocs, false, true).processMdRecord(xml); + + final Publication p = (Publication) list.get(0); + + assertNotNull(p.getInstance()); + assertFalse(p.getInstance().isEmpty()); + assertNotNull(p.getInstance().get(0).getUrl()); + assertFalse(p.getInstance().get(0).getUrl().isEmpty()); + assertEquals("https://idus.us.es/handle//11441/118940", p.getInstance().get(0).getUrl().get(0)); + } + @Test void testZenodo() throws IOException, DocumentException { final String xml = IOUtils.toString(Objects.requireNonNull(getClass().getResourceAsStream("odf_zenodo.xml"))); @@ -861,7 +1022,7 @@ class MappersTest { assertEquals(2, p.getOriginalId().size()); assertTrue(p.getOriginalId().stream().anyMatch(oid -> oid.equals("df76e73f-0483-49a4-a9bb-63f2f985574a"))); assertValidId(p.getCollectedfrom().get(0).getKey()); - assertTrue(p.getAuthor().size() > 0); + assertFalse(p.getAuthor().isEmpty()); final Optional author = p .getAuthor() @@ -871,14 +1032,14 @@ class MappersTest { assertEquals("Museum Sønderjylland", author.get().getFullname()); - assertTrue(p.getSubject().size() > 0); - assertTrue(p.getInstance().size() > 0); + assertFalse(p.getSubject().isEmpty()); + assertFalse(p.getInstance().isEmpty()); assertNotNull(p.getTitle()); assertFalse(p.getTitle().isEmpty()); assertNotNull(p.getInstance()); - assertTrue(p.getInstance().size() > 0); + assertFalse(p.getInstance().isEmpty()); p .getInstance() .forEach(i -> { @@ -887,8 +1048,8 @@ class MappersTest { }); Dataset p_cleaned = cleanup(p, vocs); - assertEquals("0000", p_cleaned.getInstance().get(0).getRefereed().getClassid()); - assertEquals("Unknown", p_cleaned.getInstance().get(0).getRefereed().getClassname()); + assertEquals("0002", p_cleaned.getInstance().get(0).getRefereed().getClassid()); + assertEquals("nonPeerReviewed", p_cleaned.getInstance().get(0).getRefereed().getClassname()); } @Test @@ -918,10 +1079,10 @@ class MappersTest { System.out.println("***************"); final Dataset p = (Dataset) list.get(0); - assertTrue(p.getInstance().size() > 0); + assertFalse(p.getInstance().isEmpty()); for (String url : p.getInstance().get(0).getUrl()) { System.out.println(url); - assertTrue(!url.contains("&")); + assertFalse(url.contains("&")); } } @@ -938,7 +1099,7 @@ class MappersTest { assertTrue(o.isPresent()); Publication p = (Publication) o.get(); - assertTrue(p.getInstance().size() > 0); + assertFalse(p.getInstance().isEmpty()); assertEquals("https://doi.org/10.1155/2015/439379", p.getInstance().get(0).getUrl().get(0)); @@ -1067,6 +1228,28 @@ class MappersTest { System.out.println("***************"); } + @Test + public void testD4ScienceTraining() throws IOException { + final String xml = IOUtils + .toString(Objects.requireNonNull(getClass().getResourceAsStream("d4science-1-training.xml"))); + final List list = new OdfToOafMapper(vocs, false, true).processMdRecord(xml); + final OtherResearchProduct trainingMaterial = (OtherResearchProduct) list.get(0); + System.out.println("***************"); + System.out.println(new ObjectMapper().writeValueAsString(trainingMaterial)); + System.out.println("***************"); + } + + @Test + public void testD4ScienceDataset() throws IOException { + final String xml = IOUtils + .toString(Objects.requireNonNull(getClass().getResourceAsStream("d4science-2-dataset.xml"))); + final List list = new OdfToOafMapper(vocs, false, true).processMdRecord(xml); + final Dataset trainingMaterial = (Dataset) list.get(0); + System.out.println("***************"); + System.out.println(new ObjectMapper().writeValueAsString(trainingMaterial)); + System.out.println("***************"); + } + @Test void testNotWellFormed() throws IOException { final String xml = IOUtils diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/graph/orp/orp.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/graph/orp/orp.json new file mode 100644 index 000000000..85045e361 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/graph/orp/orp.json @@ -0,0 +1 @@ +{"collectedfrom":[{"key":"10|openaire____::fffd45256148b1de3114788f21179083","value":"JAIRO","dataInfo":null}],"dataInfo":{"invisible":false,"inferred":true,"deletedbyinference":false,"trust":"0.8","inferenceprovenance":"dedup-result-decisiontree-v3","provenanceaction":{"classid":"sysimport:dedup","classname":"sysimport:dedup","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1701811731058,"id":"50|dedup_wf_001::5ff833ef4a38d08e840935d5c52fc479","originalId":["oai:irdb.nii.ac.jp:01292:0003046643","50|jairo_______::5ff833ef4a38d08e840935d5c52fc479","oai:irdb.nii.ac.jp:0108/00008334","50|jairo_______::f542b980618630c53c3f8052588dca25"],"pid":[],"dateofcollection":"2023-07-12T02:35:49.772Z","dateoftransformation":"2023-07-12T13:51:55.356Z","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2023-07-12T02:35:49.772Z","altered":true,"baseURL":"https%3A%2F%2Firdb.nii.ac.jp%2Foai","identifier":"oai:irdb.nii.ac.jp:01292:0003046643","datestamp":"2023-07-08T10:54:57Z","metadataNamespace":""}},"measures":[{"id":"influence","unit":[{"key":"score","value":"3.244804E-9","dataInfo":{"invisible":false,"inferred":true,"deletedbyinference":false,"trust":"","inferenceprovenance":"update","provenanceaction":{"classid":"measure:bip","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"key":"class","value":"C5","dataInfo":{"invisible":false,"inferred":true,"deletedbyinference":false,"trust":"","inferenceprovenance":"update","provenanceaction":{"classid":"measure:bip","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}]},{"id":"popularity","unit":[{"key":"score","value":"6.0055183E-10","dataInfo":{"invisible":false,"inferred":true,"deletedbyinference":false,"trust":"","inferenceprovenance":"update","provenanceaction":{"classid":"measure:bip","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"key":"class","value":"C5","dataInfo":{"invisible":false,"inferred":true,"deletedbyinference":false,"trust":"","inferenceprovenance":"update","provenanceaction":{"classid":"measure:bip","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}]},{"id":"influence_alt","unit":[{"key":"score","value":"0","dataInfo":{"invisible":false,"inferred":true,"deletedbyinference":false,"trust":"","inferenceprovenance":"update","provenanceaction":{"classid":"measure:bip","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"key":"class","value":"C5","dataInfo":{"invisible":false,"inferred":true,"deletedbyinference":false,"trust":"","inferenceprovenance":"update","provenanceaction":{"classid":"measure:bip","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}]},{"id":"popularity_alt","unit":[{"key":"score","value":"0.0","dataInfo":{"invisible":false,"inferred":true,"deletedbyinference":false,"trust":"","inferenceprovenance":"update","provenanceaction":{"classid":"measure:bip","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"key":"class","value":"C5","dataInfo":{"invisible":false,"inferred":true,"deletedbyinference":false,"trust":"","inferenceprovenance":"update","provenanceaction":{"classid":"measure:bip","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}]},{"id":"impulse","unit":[{"key":"score","value":"0","dataInfo":{"invisible":false,"inferred":true,"deletedbyinference":false,"trust":"","inferenceprovenance":"update","provenanceaction":{"classid":"measure:bip","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"key":"class","value":"C5","dataInfo":{"invisible":false,"inferred":true,"deletedbyinference":false,"trust":"","inferenceprovenance":"update","provenanceaction":{"classid":"measure:bip","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}]}],"processingchargeamount":null,"processingchargecurrency":null,"author":[{"fullname":"Shimazaki, Kazushi","name":"Kazushi","surname":"Shimazaki","rank":2,"pid":[],"affiliation":null}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"metaResourceType":null,"language":{"classid":"jpn","classname":"Japanese","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Reinforced concrete structure","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"damage level","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"柱","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"shear span ratio","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"損傷レベル","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"column","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"鉄筋コンクリート構造","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"残存軸耐力","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Residual Axis Load Capacity","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"せん断スパン比","qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Eximental study odual axis loadity of reinforced concrete column","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"RC造柱の地震後の残存軸耐力に関する研究","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[],"description":[{"value":"Shear failure of columns may lead to collapse for existence buildings.After a severe earthquake,some buildings collapsed by loss of axial capacity of the columns,however, some buildings have stayed even many columns were fractured by shear.For the examinaton of building collapse,it is required to investigate the axial load capacity of the columns after shear failure and to analyze the building performance using the pertinent analytical model for the columns.This paper investigates the analytical model for the collapse analysis of a building based on Yoshimura’s concept of the failure surface contraction. The reduction rate was obtained as a function of the maximum deformation,shear margin ratio,and so on,using the regression analydid of experimental results. The tested results are explained by this formula with good agreement.","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Article","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"研究報告書ページ(113)-(118)","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"学術フロンティア研究プロジェクト(2005年度~2009年度) 2008年度 研究成果報告書","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2008-03-31","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":{"value":"神奈川大学","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"embargoenddate":null,"source":[],"fulltext":[{"value":"https://kanagawa-u.repo.nii.ac.jp/record/4315/files/2008-28.pdf","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"http://klibredb.lib.kanagawa-u.ac.jp/dspace/bitstream/10487/10662/1/2008-28.pdf","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"format":[{"value":"application/pdf","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"contributor":[],"resourcetype":{"classid":"UNKNOWN","classname":"Unknown","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"coverage":[],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"context":[],"externalReference":[],"instance":[{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes","openAccessRoute":null},"instancetype":{"classid":"0000","classname":"Unknown","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"instanceTypeMapping":[{"originalType":"Research Paper","typeCode":null,"typeLabel":null,"vocabularyName":"openaire::coar_resource_types_3_1"}],"hostedby":{"key":"10|openaire____::fffd45256148b1de3114788f21179083","value":"JAIRO","dataInfo":null},"url":["https://kanagawa-u.repo.nii.ac.jp/records/4315"],"distributionlocation":"","collectedfrom":{"key":"10|openaire____::fffd45256148b1de3114788f21179083","value":"JAIRO","dataInfo":null},"pid":[],"alternateIdentifier":[],"dateofacceptance":{"value":"2008-03-31","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":{"classid":"0002","classname":"nonPeerReviewed","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"measures":null,"fulltext":"https://kanagawa-u.repo.nii.ac.jp/record/4315/files/2008-28.pdf"},{"license":null,"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes","openAccessRoute":null},"instancetype":{"classid":"0000","classname":"Unknown","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"instanceTypeMapping":[{"originalType":"Article","typeCode":"http://purl.org/coar/resource_type/c_2df8fbb1","typeLabel":"research article","vocabularyName":"openaire::coar_resource_types_3_1"},{"originalType":"http://purl.org/coar/resource_type/c_2df8fbb1","typeCode":"Article","typeLabel":"Article","vocabularyName":"openaire::user_resource_types"}],"hostedby":{"key":"10|openaire____::fffd45256148b1de3114788f21179083","value":"JAIRO","dataInfo":null},"url":["http://hdl.handle.net/10487/10662"],"distributionlocation":"","collectedfrom":{"key":"10|openaire____::fffd45256148b1de3114788f21179083","value":"JAIRO","dataInfo":null},"pid":[],"alternateIdentifier":[],"dateofacceptance":{"value":"2008-03-31","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":{"classid":"0002","classname":"nonPeerReviewed","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"measures":null,"fulltext":"http://klibredb.lib.kanagawa-u.ac.jp/dspace/bitstream/10487/10662/1/2008-28.pdf"}],"eoscifguidelines":[],"openAccessColor":"bronze","publiclyFunded":false,"contactperson":[],"contactgroup":[],"tool":[],"isGreen":true,"isInDiamondJournal":false} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/graph/publication/publication.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/graph/publication/publication.json index e5d7c88db..e2a2b9449 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/graph/publication/publication.json +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/graph/publication/publication.json @@ -1,4 +1,4 @@ -{"id":"50|CSC_________::2250a70c903c6ac6e4c01438259e9375","author":[{"affiliation":[],"fullname":"Brien, Tom","name":"Tom","pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"ORCID12","classname":"ORCID12","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"0000-0001-9613-6639"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"ORCID12","classname":"ORCID12","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"https://orcid.org/0000-0001-9613-6639"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"sysimport:crosswalk:entityregistry","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"orcid","classname":"ORCID12","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"0000-0001-9613-6639"}],"rank":1,"surname":"Brien"},{"affiliation":[],"fullname":"Ade, Peter","name":"Peter","pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"xyz","classname":"XYZ","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"qwerty"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"","schemename":""},"value":"asdasd"}],"rank":2,"surname":"Ade"},{"affiliation":[],"fullname":"Barry, Peter S.","name":"Peter S.","pid":null,"rank":3,"surname":"Barry"},{"affiliation":[],"fullname":"Dunscombe, Chris J.","name":"Chris J.","pid":[],"rank":4,"surname":"Dunscombe"},{"affiliation":[],"fullname":"Leadley, David R.","name":"David R.","pid":[],"rank":5,"surname":"Leadley"},{"affiliation":[],"fullname":"Morozov, Dmitry V.","name":"Dmitry V.","pid":[],"rank":6,"surname":"Morozov"},{"affiliation":[],"fullname":"Myronov, Maksym","name":"Maksym","pid":[],"rank":7,"surname":"Myronov"},{"affiliation":[],"fullname":"Parker, Evan","name":"Evan","pid":[],"rank":8,"surname":"Parker"},{"affiliation":[],"fullname":"Prest, Martin J.","name":"Martin J.","pid":[],"rank":9,"surname":"Prest"},{"affiliation":[],"fullname":"Prunnila, Mika","name":"Mika","pid":[],"rank":10,"surname":"Prunnila"},{"affiliation":[],"fullname":"Sudiwala, Rashmi V.","name":"Rashmi V.","pid":[],"rank":11,"surname":"Sudiwala"},{"affiliation":[],"fullname":"Whall, Terry E.","name":"Terry E.","pid":[],"rank":12,"surname":"Whall"},{"affiliation":[],"fullname":"Mauskopf","name":"","pid":[],"rank":13,"surname":""},{"affiliation":[],"fullname":" P. D. ","name":"","pid":[],"rank":14,"surname":""}],"bestaccessright":null,"publisher":{"value":null},"collectedfrom":[{"key":"10|CSC_________::a2b9ce8435390bcbfc05f3cae3948747","value":"VIRTA"}],"context":[],"contributor":[],"country":[{"classid":"DE","classname":"DE","schemeid":"dnet:countries","schemename":"dnet:countries"}],"coverage":[],"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"7 oct 1970"},"dateofcollection":"","dateoftransformation":"2020-04-22T12:34:08.009Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"instance":[{"pid":[{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1007/s109090161569x"},{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1008/abcd"}],"alternateIdentifier":[{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1007/s109090161569x"},{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1009/qwerty"}],"accessright":{"classid":"CLOSED","classname":"CLOSED","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|CSC_________::a2b9ce8435390bcbfc05f3cae3948747","value":"VIRTA"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2016-01-01"},"distributionlocation":"","hostedby":{"key":"10|CSC_________::a2b9ce8435390bcbfc05f3cae3948747","value":"VIRTA"},"instancetype":{"classid":"Comment/debate","classname":"Comment/debate","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"url":["http://juuli.fi/Record/0275158616","http://dx.doi.org/10.1007/s109090161569x"]},{"pid":[{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1002/s21010127267xy"},{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1008/abcd"}],"alternateIdentifier":[{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1007/s109090161569x"},{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1009/qwerty"}],"accessright":{"classid":"CLOSED","classname":"CLOSED","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|CSC_________::a2b9ce8435390bcbfc05f3cae3948747","value":"VIRTA"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2016-01-01"},"distributionlocation":"","hostedby":{"key":"10|CSC_________::a2b9ce8435390bcbfc05f3cae3948747","value":"VIRTA"},"instancetype":{"classid":"Model","classname":"Model","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"url":["http://dx.doi.org/10.1002/s21010127267xy"]},{"pid":[{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1002/s21010127267xy"},{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1008/abcd"}],"alternateIdentifier":[{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1007/s109090161569x"},{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1009/qwerty"}],"accessright":{"classid":"CLOSED","classname":"CLOSED","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|CSC_________::a2b9ce8435390bcbfc05f3cae3948747","value":"VIRTA"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2016-01-01"},"distributionlocation":"","hostedby":{"key":"10|CSC_________::a2b9ce8435390bcbfc05f3cae3948747","value":"VIRTA"},"instancetype":{"classid":"xyz","classname":"xyz","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"url":["http://dx.doi.org/10.1002/t32121238378t"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":" 7","iss":"9 March","issnLinking":"","issnOnline":"","issnPrinted":"0022-2291","name":"Journal of Low Temperature Physics - Early Acces","sp":"1 ","vol":""},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1591283286319,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"https%3A%2F%2Fvirta-jtp.csc.fi%2Fapi%2Fcerif","datestamp":"2019-07-30","harvestDate":"2020-04-22T11:04:38.685Z","identifier":"oai:virta-jtp.csc.fi:Publications/0275158616","metadataNamespace":""}},"originalId":["CSC_________::2250a70c903c6ac6e4c01438259e9375"],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1007/s109090161569x"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1007/s109090161569x"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":""}],"relevantdate":[],"resourcetype":{"classid":"0001","classname":"0001","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"deletedbyinference":false,"inferred":false,"inferenceprovenance":"","invisible":false,"trust":"0.9"},"qualifier":{"classid":"FOS","classname":"Fields of Science and Technology classification","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"In Situ Hybridization"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"ta213"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"FOS: Mathematics"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"FOS: Computer and information sciences"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"0101 mathematics"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"subject:fos","classname":"subject:fos","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"0101 mathematics"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"slot antennas"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"strained silicon"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"cold electron bolometers"},{"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:actionset","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"FOS","classname":"Fields of Science and Technology classification","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Avicennia"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"measure noise"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"noise equivalent power"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"optical characterisation"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"optical response"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"photon noise"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"silicon absorbers"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Optical response of strained- and unstrained-silicon cold-electron bolometers test"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"test test 123 test"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"omic"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"「マキャベリ的知性と心の理論の進化論」 リチャード・バーン, アンドリュー・ホワイトゥン 編/藤田和生, 山下博志, 友永雅巳 監訳"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"-"}]} +{"id":"50|CSC_________::2250a70c903c6ac6e4c01438259e9375","author":[{"affiliation":[],"fullname":"Brien, Tom","name":"Tom","pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"ORCID12","classname":"ORCID12","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"0000-0001-9613-6639"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"ORCID12","classname":"ORCID12","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"https://orcid.org/0000-0001-9613-6639"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"sysimport:crosswalk:entityregistry","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"orcid","classname":"ORCID12","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"0000-0001-9613-6639"}],"rank":1,"surname":"Brien"},{"affiliation":[],"fullname":"Ade, Peter","name":"Peter","pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"xyz","classname":"XYZ","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"qwerty"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"ORCID","classname":"ORCID","schemeid":"","schemename":""},"value":"asdasd"}],"rank":2,"surname":"Ade"},{"affiliation":[],"fullname":"Barry, Peter S.","name":"Peter S.","pid":null,"rank":3,"surname":"Barry"},{"affiliation":[],"fullname":"Dunscombe, Chris J.","name":"Chris J.","pid":[],"rank":4,"surname":"Dunscombe"},{"affiliation":[],"fullname":"Leadley, David R.","name":"David R.","pid":[],"rank":5,"surname":"Leadley"},{"affiliation":[],"fullname":"Morozov, Dmitry V.","name":"Dmitry V.","pid":[],"rank":6,"surname":"Morozov"},{"affiliation":[],"fullname":"Myronov, Maksym","name":"Maksym","pid":[],"rank":7,"surname":"Myronov"},{"affiliation":[],"fullname":"Parker, Evan","name":"Evan","pid":[],"rank":8,"surname":"Parker"},{"affiliation":[],"fullname":"Prest, Martin J.","name":"Martin J.","pid":[],"rank":9,"surname":"Prest"},{"affiliation":[],"fullname":"Prunnila, Mika","name":"Mika","pid":[],"rank":10,"surname":"Prunnila"},{"affiliation":[],"fullname":"Sudiwala, Rashmi V.","name":"Rashmi V.","pid":[],"rank":11,"surname":"Sudiwala"},{"affiliation":[],"fullname":"Whall, Terry E.","name":"Terry E.","pid":[],"rank":12,"surname":"Whall"},{"affiliation":[],"fullname":" - ","name":"","pid":[],"rank":13,"surname":""},{"affiliation":[],"fullname":" :none","name":"","pid":[],"rank":14,"surname":""}],"bestaccessright":null,"publisher":{"value":null},"collectedfrom":[{"key":"10|CSC_________::a2b9ce8435390bcbfc05f3cae3948747","value":"VIRTA"}],"context":[],"contributor":[],"country":[{"classid":"DE","classname":"DE","schemeid":"dnet:countries","schemename":"dnet:countries"}],"coverage":[],"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"7 oct 1970"},"dateofcollection":"","dateoftransformation":"2020-04-22T12:34:08.009Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"instance":[{"pid":[{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1007/s109090161569x"},{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1008/abcd"}],"alternateIdentifier":[{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1007/s109090161569x"},{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1009/qwerty"}],"accessright":{"classid":"CLOSED","classname":"CLOSED","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|CSC_________::a2b9ce8435390bcbfc05f3cae3948747","value":"VIRTA"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2016-01-01"},"distributionlocation":"","hostedby":{"key":"10|CSC_________::a2b9ce8435390bcbfc05f3cae3948747","value":"VIRTA"},"instancetype":{"classid":"Comment/debate","classname":"Comment/debate","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"url":["http://juuli.fi/Record/0275158616","http://dx.doi.org/10.1007/s109090161569x","http://academia.edu/abcd","http://repo.scoap3.org/api","http://hdl.handle.net/"]},{"pid":[{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1002/s21010127267xy"},{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1008/abcd"}],"alternateIdentifier":[{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1007/s109090161569x"},{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1009/qwerty"}],"accessright":{"classid":"CLOSED","classname":"CLOSED","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|CSC_________::a2b9ce8435390bcbfc05f3cae3948747","value":"VIRTA"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2016-01-01"},"distributionlocation":"","hostedby":{"key":"10|CSC_________::a2b9ce8435390bcbfc05f3cae3948747","value":"VIRTA"},"instancetype":{"classid":"Model","classname":"Model","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"url":["http://dx.doi.org/10.1002/s21010127267xy"]},{"pid":[{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1002/s21010127267xy"},{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1008/abcd"}],"alternateIdentifier":[{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1007/s109090161569x"},{"dataInfo":null,"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1009/qwerty"}],"accessright":{"classid":"CLOSED","classname":"CLOSED","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|CSC_________::a2b9ce8435390bcbfc05f3cae3948747","value":"VIRTA"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2016-01-01"},"distributionlocation":"","hostedby":{"key":"10|CSC_________::a2b9ce8435390bcbfc05f3cae3948747","value":"VIRTA"},"instancetype":{"classid":"xyz","classname":"xyz","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"url":["http://dx.doi.org/10.1002/t32121238378t"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":" 7","iss":"9 March","issnLinking":"","issnOnline":"","issnPrinted":"0022-2291","name":"Journal of Low Temperature Physics - Early Acces","sp":"1 ","vol":""},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1591283286319,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"https%3A%2F%2Fvirta-jtp.csc.fi%2Fapi%2Fcerif","datestamp":"2019-07-30","harvestDate":"2020-04-22T11:04:38.685Z","identifier":"oai:virta-jtp.csc.fi:Publications/0275158616","metadataNamespace":""}},"originalId":["CSC_________::2250a70c903c6ac6e4c01438259e9375"],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1007/s109090161569x"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1007/s109090161569x"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":""}],"relevantdate":[],"resourcetype":{"classid":"0001","classname":"0001","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"sysimport:crosswalk:repository","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"deletedbyinference":false,"inferred":false,"inferenceprovenance":"","invisible":false,"trust":"0.9"},"qualifier":{"classid":"FOS","classname":"Fields of Science and Technology classification","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"In Situ Hybridization"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"ta213"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"FOS: Mathematics"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"FOS: Computer and information sciences"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"0101 mathematics"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"subject:fos","classname":"subject:fos","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"0101 mathematics"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"slot antennas"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"strained silicon"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"cold electron bolometers"},{"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:actionset","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"FOS","classname":"Fields of Science and Technology classification","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Avicennia"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"measure noise"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"noise equivalent power"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"optical characterisation"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"optical response"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"photon noise"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"silicon absorbers"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Optical response of strained- and unstrained-silicon cold-electron bolometers test"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"test test 123 test"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"omic"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"「マキャベリ的知性と心の理論の進化論」 リチャード・バーン, アンドリュー・ホワイトゥン 編/藤田和生, 山下博志, 友永雅巳 監訳"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"-"}]} {"id":"50|doi_________::b0baa0eb88a5788f0b8815560d2a32f2","context": [], "dataInfo": {"invisible": false, "trust": "0.9", "provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "inferred": false, "deletedbyinference": false}, "resourcetype": {"classid": "0001", "classname": "Article", "schemeid": "dnet:publication_resource", "schemename": "dnet:publication_resource"}, "pid": [{"qualifier": {"classid": "doi", "classname": "doi", "schemeid": "dnet:pid_types", "schemename": "dnet:pid_types"}, "value": "10.1097/00132586-197308000-00003"}], "contributor": [], "bestaccessright": {"classid": "UNKNOWN", "classname": "not available", "schemeid": "dnet:access_modes", "schemename": "dnet:access_modes"}, "relevantdate": [{"qualifier": {"classid": "created", "classname": "created", "schemeid": "dnet:dataCite_date", "schemename": "dnet:dataCite_date"}, "value": "2006-11-06T11:36:37Z"}], "collectedfrom": [{"key": "10|openaire____::081b82f96300b6a6e3d282bad31cb6e2", "value": "Crossref"}], "subject": [], "lastupdatetimestamp": 1620353302565, "author": [{"fullname": "N. S. AGRUSS", "surname": "AGRUSS", "name": "N. S.", "rank": 1}, {"fullname": "E. Y. ROSIN", "surname": "ROSIN", "name": "E. Y.", "rank": 2}, {"fullname": "R. J. ADOLPH", "surname": "ADOLPH", "name": "R. J.", "rank": 3}, {"fullname": "N. O. FOWLER", "surname": "FOWLER", "name": "N. O.", "rank": 4}], "instance": [{"hostedby": {"key": "10|issn___print::b8cee613d4f898f8c03956d57ea69be2", "value": "Survey of Anesthesiology"}, "url": ["https://doi.org/10.1097/00132586-197308000-00003"], "pid": [{"qualifier": {"classid": "doi", "classname": "doi", "schemeid": "dnet:pid_types", "schemename": "dnet:pid_types"}, "value": "10.1097/00132586-197308000-00003"}], "dateofacceptance": {"value": "2006-11-06T11:36:37Z"}, "collectedfrom": {"key": "10|openaire____::081b82f96300b6a6e3d282bad31cb6e2", "value": "Crossref"}, "accessright": {"classid": "UNKNOWN", "classname": "not available", "schemeid": "dnet:access_modes", "schemename": "dnet:access_modes"}, "instancetype": {"classid": "0001", "classname": "Article", "schemeid": "dnet:publication_resource", "schemename": "dnet:publication_resource"}}], "dateofcollection": "2021-05-07T02:08:22Z", "fulltext": [], "description": [], "format": [], "journal": {"issnPrinted": "0039-6206", "vol": "17", "sp": "304", "name": "Survey of Anesthesiology"}, "measures": [], "coverage": [], "externalReference": [], "publisher": {"value": "Ovid Technologies (Wolters Kluwer Health)"}, "resulttype": {"classid": "publication", "classname": "publication", "schemeid": "dnet:result_typologies", "schemename": "dnet:result_typologies"}, "country": [], "extraInfo": [], "originalId": ["10.1097/00132586-197308000-00003", "50|doiboost____::b0baa0eb88a5788f0b8815560d2a32f2"], "source": [{"value": "Crossref"}], "dateofacceptance": {"value": "2006-11-06T11:36:37Z"}, "title": [{"qualifier": {"classid": "main title", "classname": "main title", "schemeid": "dnet:dataCite_title", "schemename": "dnet:dataCite_title"}, "value": "SIGNIFICANCE OF CHRONIC SINUS BRADYCARDIA IN ELDERLY PEOPLE"}]} {"id":"50|doi_________::4972b0ca81b96b225aed8038bb965656","context": [], "dataInfo": {"invisible": false, "trust": "0.9", "provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "inferred": false, "deletedbyinference": false}, "resourcetype": {"classid": "0001", "classname": "Article", "schemeid": "dnet:publication_resource", "schemename": "dnet:publication_resource"}, "pid": [{"qualifier": {"classid": "doi", "classname": "doi", "schemeid": "dnet:pid_types", "schemename": "dnet:pid_types"}, "value": "10.2143/tvg.62.1.5002364"}], "contributor": [], "bestaccessright": {"classid": "UNKNOWN", "classname": "not available", "schemeid": "dnet:access_modes", "schemename": "dnet:access_modes"}, "relevantdate": [{"qualifier": {"classid": "created", "classname": "created", "schemeid": "dnet:dataCite_date", "schemename": "dnet:dataCite_date"}, "value": "2007-08-20T08:35:04Z"}, {"qualifier": {"classid": "published-online", "classname": "published-online", "schemeid": "dnet:dataCite_date", "schemename": "dnet:dataCite_date"}, "value": "2006-01-01"}], "collectedfrom": [{"key": "10|openaire____::081b82f96300b6a6e3d282bad31cb6e2", "value": "Crossref"}], "subject": [{"qualifier": {"classid": "keywords", "classname": "keywords", "schemeid": "dnet:subject_classification_typologies", "schemename": "dnet:subject_classification_typologies"}, "value": "General Medicine"}], "lastupdatetimestamp": 1620381522840, "author": [{"fullname": "null VERHAMME P", "surname": "VERHAMME P", "rank": 1}], "instance": [{"hostedby": {"key": "10|issn__online::7ec728ad1ac65c60cd563a5137111125", "value": "Tijdschrift voor Geneeskunde"}, "url": ["https://doi.org/10.2143/tvg.62.1.5002364"], "pid": [{"qualifier": {"classid": "doi", "classname": "doi", "schemeid": "dnet:pid_types", "schemename": "dnet:pid_types"}, "value": "10.2143/tvg.62.1.5002364"}], "dateofacceptance": {"value": "2006-01-01"}, "collectedfrom": {"key": "10|openaire____::081b82f96300b6a6e3d282bad31cb6e2", "value": "Crossref"}, "accessright": {"classid": "UNKNOWN", "classname": "not available", "schemeid": "dnet:access_modes", "schemename": "dnet:access_modes"}, "instancetype": {"classid": "0001", "classname": "Article", "schemeid": "dnet:publication_resource", "schemename": "dnet:publication_resource"}}], "dateofcollection": "2021-05-07T09:58:42Z", "fulltext": [], "description": [], "format": [], "journal": {"vol": "62", "sp": "55", "issnOnline": "0371-683X", "ep": "61", "name": "Tijdschrift voor Geneeskunde"}, "measures": [], "coverage": [], "externalReference": [], "publisher": {"value": "Peeters Publishers"}, "resulttype": {"classid": "publication", "classname": "publication", "schemeid": "dnet:result_typologies", "schemename": "dnet:result_typologies"}, "country": [], "extraInfo": [], "originalId": ["10.2143/tvg.62.1.5002364", "50|doiboost____::4972b0ca81b96b225aed8038bb965656"], "source": [{"value": "Crossref"}], "dateofacceptance": {"value": "2006-01-01"}, "title": [{"qualifier": {"classid": "main title", "classname": "main title", "schemeid": "dnet:dataCite_title", "schemename": "dnet:dataCite_title"}, "value": "Antitrombotica: nieuwe moleculen"}]} {"id":"50|DansKnawCris::0224aae28af558f21768dbc6439a_ctx","author":[],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"dataInfo":null,"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"dataInfo":[{"deletedbyinference":false,"inferenceprovenance":"bulktagging","inferred":true,"invisible":false,"provenanceaction":{"classid":"community:subject","classname":"Bulktagging for Community - Subject","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":null}],"id":"sobigdata::projects::2"}],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2007-01-01"},"dateofcollection":"","dateoftransformation":"2020-05-25T16:14:18.452Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Lit.opg., bijl."}],"embargoenddate":null,"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"dataInfo":null,"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2007-01-01"},"distributionlocation":"","hostedby":{"dataInfo":null,"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"instancetype":{"classid":"0017","classname":"Report","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":null,"processingchargeamount":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":true,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"8250"},"processingchargecurrency":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":true,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"EUR"},"refereed":null,"url":null}],"language":{"classid":"nl","classname":"nl","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1591282676557,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"http%3A%2F%2Fservices.nod.dans.knaw.nl%2Foa-cerif","datestamp":"2019-12-01T07:51:24Z","harvestDate":"2020-05-25T11:33:13.427Z","identifier":"oai:services.nod.dans.knaw.nl:Publications/rce:document:550013110","metadataNamespace":""}},"originalId":["DansKnawCris::0224aae28af558f21768dbc6439c7a95"],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"urn","classname":"urn","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"http://cultureelerfgoed.adlibsoft.com/dispatcher.aspx?action=search&database=ChoiceRapporten&search=priref=550013110"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"urn","classname":"urn","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"http://cultureelerfgoed.adlibsoft.com/dispatcher.aspx?action=search&database=ChoiceRapporten&search=priref=550013110"}],"publisher":null,"relevantdate":[],"resourcetype":{"classid":"0017","classname":"0017","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"archeologie"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"prospectie"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"Archaeology"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"value":"Archaeology"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Gcube veldonderzoek d.m.v. boringen (karterende fase) : Raadhuisstraat te Dirkshorn, gemeente Harenkarspel"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"sysimport:crosswalk:datasetarchive","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Synthegra Archeologie Rapportenreeks P0502381"}],"journal":null} diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/project.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/project.json new file mode 100644 index 000000000..9ab714376 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/project.json @@ -0,0 +1 @@ +{"measures": [{"id": "downloads", "unit": [{"dataInfo": {"provenanceaction": {"classid": "measure:usage_counts", "classname": "measure:usage_counts", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "update", "invisible": false, "trust": ""}, "key": "count", "value": "1"}]}, {"id": "views", "unit": [{"dataInfo": {"provenanceaction": {"classid": "measure:usage_counts", "classname": "measure:usage_counts", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "update", "invisible": false, "trust": ""}, "key": "count", "value": "0"}]}], "id": "40|aka_________::591da07706352f1195afaeed4065f52e"} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/result.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/result.json index 8f35470e1..8ef642dd3 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/result.json +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/result.json @@ -3,7 +3,7 @@ { "affiliation": [ ], - "fullname": "Brien, Tom", + "fullname": "Brien, Tom", "name": "Tom", "pid": [ { diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/result_dataset.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/result_dataset.json new file mode 100644 index 000000000..bec87c7ae --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/result_dataset.json @@ -0,0 +1,28 @@ +{ + "resulttype": { + "classid": "dataset", + "classname": "dataset", + "schemeid": "dnet:result_typologies", + "schemename": "dnet:result_typologies" + }, + "fulltext": [ + { + "value" : "https://www.researchgate.net" + } + ], + "publisher" : { + "value" : "Best publisher in the world" + }, + "id": "50|CSC_________::2250a70c903c6ac6e4c01438259e9375", + "instance": [ + { + "instancetype": { + "classid": "Comment/debate", + "classname": "Comment/debate", + "schemeid": "dnet:publication_resource", + "schemename": "dnet:publication_resource" + }, + "fulltext": "https://www.researchgate.net" + } + ] +} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/synonyms.txt b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/synonyms.txt index 409dfd5dc..a17a3949a 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/synonyms.txt +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/synonyms.txt @@ -1245,4 +1245,858 @@ dnet:relation_relClass @=@ IsRelatedTo @=@ isRelatedTo dnet:relation_subRelType @=@ relationship @=@ publicationDataset dnet:provenanceActions @=@ iis @=@ erroneous label to be cleaned FOS @=@ 0101 mathematics @=@ FOS: Mathematics -FOS @=@ 0102 computer and information sciences @=@ FOS: Computer and information sciences \ No newline at end of file +FOS @=@ 0102 computer and information sciences @=@ FOS: Computer and information sciences +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ddb1 @=@ Chemical Structures +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ddb1 @=@ Data Cube +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ddb1 @=@ Dataset/Dataset +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ddb1 @=@ Ensemble de données / Dataset +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ddb1 @=@ Research Data +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ddb1 @=@ dataset +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ddb1 @=@ http://purl.org/coar/resource_type/c_ddb1 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/ACF7-8YT9 @=@ collection +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/ACF7-8YT9 @=@ Collection of Datasets +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/ACF7-8YT9 @=@ RO-crate +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/ACF7-8YT9 @=@ Supplementary Collection of Datasets +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/ACF7-8YT9 @=@ Supplementary Dataset +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_12cc @=@ http://purl.org/coar/resource_type/c_12cc +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_12cc @=@ Planimetría +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_cb28 @=@ clinicalTrial +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_cb28 @=@ http://purl.org/coar/resource_type/c_cb28 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_12cd @=@ Carte géographique / Map +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_12cd @=@ http://purl.org/coar/resource_type/c_12cd +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_12cd @=@ map +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_12cd @=@ Mapa +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18cc @=@ Audio +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18cc @=@ http://purl.org/coar/resource_type/c_18cc +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18cc @=@ sound +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_86bc @=@ Book Prospectus +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_86bc @=@ Dictionary Entry +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_86bc @=@ Disclosure +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_86bc @=@ Literature review +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_86bc @=@ Reseña bibliográfica +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_86bc @=@ bibliography +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_86bc @=@ http://purl.org/coar/resource_type/c_86bc +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8a7e @=@ AUDIOVISUAL_DOCUMENT +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8a7e @=@ Audiovisual/Audiovisual +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8a7e @=@ http://purl.org/coar/resource_type/c_8a7e +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ Diagram +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ Drawing +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ Figure +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ Image/Image +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ Imagen - Image +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ Imagen 3-D +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ Imagen +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ Photo +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ Plot +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ StillImage|PRESERVED_SPECIMEN +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ fotó +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ grafika +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ http://purl.org/coar/resource_type/c_ecc8 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ image-diagram +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ image-drawing +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ image-figure +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ image-other +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ image-photo +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ image-plot +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ image +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_12ce @=@ film +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_12ce @=@ Film, vidéo / Motion picture, video +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_12ce @=@ http://purl.org/coar/resource_type/c_12ce +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_12ce @=@ Video +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_12ce @=@ vídeo +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/C53B-JCY5 @=@ H1 Myönnetty patentti +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/C53B-JCY5 @=@ http://purl.org/coar/resource_type/C53B-JCY5 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_15cd @=@ brevet +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_15cd @=@ http://purl.org/coar/resource_type/c_15cd +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_15cd @=@ Patent +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_15cd @=@ Patente +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_15cd @=@ Registered Copyright +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_15cd @=@ Traducción de patente +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/SB3Y-W4EH @=@ Solicitud de patente +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_e9a0 @=@ http://purl.org/coar/resource_type/c_e9a0 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_e9a0 @=@ interactiveResource +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_e059 @=@ http://purl.org/coar/resource_type/c_e059 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_e059 @=@ Learning Object +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_e059 @=@ learningObject +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_e059 @=@ PEDAGOGICAL_DOCUMENT +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ Autre / Other +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ EGI Virtual Appliance +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ Event/Event +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ Exhibition +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ Kita / Other +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ Model/Model +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ Otro - Other +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ Physical Object +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ Research Tool +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ Service +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ Trabajo de divulgación +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ UNKNOWN +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ University Academic Unit +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ application +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ artefact +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ carte +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ composition +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ corpus +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ event +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ http://purl.org/coar/resource_type/c_1843 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ http://purl.org/coar/resource_type/c_26e4 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ info:eu-repo/semantics/other +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ misc +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ model +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ other research product +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ other +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ otro +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ physicalObject +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ revue +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ sonstige Veröffentlichung +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ text/tg.edition+tg.aggregation+xml +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/9DKX-KSAF @=@ Modelo de utilidad +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7ad9 @=@ http://purl.org/coar/resource_type/c_7ad9 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7ad9 @=@ Online Resource +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7ad9 @=@ Sitio web +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7ad9 @=@ Web publication/site +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7877 @=@ Clinical Study +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7877 @=@ http://purl.org/coar/resource_type/c_7877 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ Livre / Book +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ Book (monograph) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ Book (non peer-reviewed) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ Book (peer-reviewed) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ Book - monograph - editorial book +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ Book as author +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ Books +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ Buch +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ Edited Book +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ International Book/Monograph +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ Knyga / Book +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ Książka +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ Lehr- oder Fachbuch +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ Libro - Book +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ Libro +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ Monografia +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ Monograph +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ National Book/Monograph +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ atlas +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ book-series +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ book-set +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ book-track +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ book +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ book_series +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ book_title +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ doc-type:book +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ eBook +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ edited-book +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ http://purl.org/coar/resource_type/c_2f33 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ http://purl.org/eprint/type/Book +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ info:eu-repo/semantics/book +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ könyv +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ ouvrage +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ publication-book +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ reference-book +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ scientific book +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ Книга +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ Учебник +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ Монография +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ A3 Kirjan tai muun kokoomateoksen osa +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Beitrag in einem Lehr- oder Fachbuch +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Book Part (author) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Book Section / Chapter +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Book Section +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Book chapter or Essay in book +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Book editorial +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Book section +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ BookChapter +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Book_Chapter +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Buchbeitrag +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Capítulo de Libro - Book Section +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Capítulo de libro +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Chapitre de livre / Book chapter +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Contribution to International Book/Monograph ISI/JCR +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Contribution to International Book/Monograph +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Contribution to National Book/Monograph +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Contribution to book (non peer-reviewed) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Contribution to book (peer-reviewed) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Knygos dalis / Book chapter +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Part of book - chapter +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Rozdział z książki +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Scientific publication - Book Chapter +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ book chapter +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ book part +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ book-chapter +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ book-part +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ book-section +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ bookPart +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ book_content +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ chapitre_ouvrage +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ chapter +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ doc-type:bookPart +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ http://purl.org/coar/resource_type/c_3248 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ http://purl.org/eprint/type/BookItem +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ info:eu-repo/semantics/Chapter +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ info:eu-repo/semantics/bookPart +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ könyvfejezet +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ publication-section +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ reference-entry +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ reference_entry +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ scientific book chapter +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ Глава монографии +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ba08 @=@ Book Review +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ba08 @=@ book-review +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ba08 @=@ http://purl.org/coar/resource_type/c_ba08 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ba08 @=@ info:eu-repo/semantics/bookreview +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ba08 @=@ reseña de libro +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ A4 Artikkeli konferenssijulkaisussa +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ Article in monograph or in proceedings +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ Article in proceedings +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ Conference Paper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ Conference article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ Conference papers +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ ConferencePaper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ PROCEEDING_PAPER +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ Papers in Conference Proceedings +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ Proceedings paper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ Scientific publication - Conference Paper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ Scientific publication - Conference Short Paper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ conference_paper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ http://purl.org/coar/resource_type/c_5794 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ http://purl.org/eprint/type/ConferencePaper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ http://purl.org/escidoc/metadata/ves/publication-types/conference-report +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ info:eu-repo/semantics/Conference Paper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ info:eu-repo/semantics/conferencePaper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ proceeding with peer review +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ proceedings-article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ publication-conferencepaper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ Επιστημονική δημοσίευση - Ανακοίνωση Συνεδρίου (Short Paper) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18cp @=@ Conference preprint +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18cp @=@ http://purl.org/coar/resource_type/c_18cp +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18co @=@ http://purl.org/coar/resource_type/c_18co +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7acd @=@ correction +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7acd @=@ corrigenda +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7acd @=@ http://purl.org/coar/resource_type/c_7acd +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7acd @=@ partial-retraction +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7acd @=@ reply +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7acd @=@ retraction +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ab20 @=@ Data Management Plan (NSF Generic) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ab20 @=@ Data Management Plan +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ab20 @=@ OutputManagementPlan +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ab20 @=@ http://purl.org/coar/resource_type/c_ab20 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ab20 @=@ http://purl.org/spar/fabio/DataMangementPlan +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ab20 @=@ plan de gestión de datos +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ab20 @=@ publication-datamanagementplan +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_beb9 @=@ Data Descriptor +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_beb9 @=@ data-article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_beb9 @=@ DataPaper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_beb9 @=@ http://purl.org/coar/resource_type/c_beb9 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/H9BQ-739P @=@ Peer review +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/H9BQ-739P @=@ peer-review +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_816b @=@ http://purl.org/coar/resource_type/c_816b +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_816b @=@ info:eu-repo/semantics/preprint +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_816b @=@ Pre Print +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_816b @=@ Pre-print +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_816b @=@ publication-preprint +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_816b @=@ Препринт +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ ACTIVITY_REPORT +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ Case Report +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ Commissioned report +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ Internal note +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ Rapport / Report +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ brief-report +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ case-report +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ chapitre_rapport +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ compte rendu +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ doc-type:report +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ document_institutionnel +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ http://purl.org/coar/resource_type/c_18hj +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ http://purl.org/coar/resource_type/c_18wq +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ http://purl.org/coar/resource_type/c_18ww +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ http://purl.org/coar/resource_type/c_93fc +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ http://purl.org/coar/resource_type/c_ba1f +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ http://purl.org/eprint/type/Report +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ info:eu-repo/semantics/report +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ publication-report +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ rapport_expertise +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ rapport_mission +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ report-paper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ report-paper_title +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ report-series +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ report +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ support_cours +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ A1 Alkuperäisartikkeli tieteellisessä aikakauslehdessä +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Article (author) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Article from Conference in a Journal +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Article in journal +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ ArticleArtikel +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Articles in Journals +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Articolo +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Artículo - Article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Artículo +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Articulo +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Aufsatz +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Journal article (on-line or printed) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Journal article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Journal articles +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Journal paper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ JournalArticle +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Makale +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Original article (non peer-reviewed) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Original article (peer-reviewed) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Peer-reviewed Article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Publication - Article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Published Journal Article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Research Article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Scientific publication - Journal Article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Straipsnis / Article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Taxonomic Paper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Zeitschriftenbeitrag +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ art +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ article in non peer-reviewed journal +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ article in peer-reviewed journal +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ article_site_web +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ artykuł +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ doc-type:Journal Article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ doc-type:article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ foly +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ folyóiratcikk +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ http://purl.org/coar/resource_type/c_6501 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ http://purl.org/escidoc/metadata/ves/publication-types/article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ http://purl.org/ontology/bibo/AcademicArticle +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ info:eu-repo/semantics/Journal Article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ info:eu-repo/semantics/article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ journal-article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ journal_article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ non peer-reviewed article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ publication-article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ rapid-communication +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ research-article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ text (article) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Статья +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ Рецензована стаття +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_dcae04bc @=@ A2 Katsausartikkeli tieteellisessä aikakauslehdessä +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_dcae04bc @=@ Journal Article/Review +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_dcae04bc @=@ Review article (non peer-reviewed) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_dcae04bc @=@ Review article (peer-reviewed) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_dcae04bc @=@ article-commentary +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_dcae04bc @=@ artículo de revisión +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_dcae04bc @=@ Review Article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_dcae04bc @=@ review-article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_dcae04bc @=@ Revisión +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_dcae04bc @=@ RezensionReview +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_dcae04bc @=@ http://purl.org/coar/resource_type/c_dcae04bc +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7bab @=@ http://purl.org/coar/resource_type/c_7bab +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_71bd @=@ Documento tecnico +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_71bd @=@ http://purl.org/coar/resource_type/c_71bd +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_71bd @=@ publication-softwaredocumentation +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_71bd @=@ Software documentation +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/H6QP-SC1X @=@ Trademark +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_393c @=@ http://purl.org/coar/resource_type/c_393c +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_393c @=@ Workflow +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_393c @=@ Workflow/Workflow +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7a1f @=@ Bachelor's Degree +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7a1f @=@ Bachelor's +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7a1f @=@ Bachelors Thesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7a1f @=@ Graduate Thesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7a1f @=@ Proyecto fin de carrera +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7a1f @=@ Undergraduate Thesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7a1f @=@ Undergraduate diploma +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7a1f @=@ bachelor thesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7a1f @=@ http://purl.org/coar/resource_type/c_7a1f +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7a1f @=@ info:eu-repo/semantics/bachelorThesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7a1f @=@ выпускная бакалаврская работа +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ Daktaro disertacija / Doctoral dissertation +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ Diss +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ Dissertation +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ Doctoral Dissertation +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ Doctoral +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ DoctoralThesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ HabilitationThesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ PhD Theses +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ PhD thesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ Tenure-Promotion +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ Tesi di dottorato +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ Tesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ Text.Thesis.Doctoral +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ Theses +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ Thesis or Dissertation +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ Thesis.Doctoral +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ Thesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ doc-type:doctoralThesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ doctoral thesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ dok +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ doktori dolgozat +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ http://purl.org/coar/resource_type/c_db06 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ http://purl.org/eprint/type/Thesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ info:eu-repo/semantics/doctoralThesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ publication-thesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ tesis doctoral +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ these exercice +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ these +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ Diploma Project +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ MSc Thesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ Magistro darbas / Master thesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ Master Degree +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ Master's Degree +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ Master's +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ Masterarbeit u.a. +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ Masters (Taught) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ Masters thesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ Masters-Thesis.Magister +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ Tesina +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ Thesis.Master +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ Trabajo fin de Máster +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ doc-type:masterThesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ hdr +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ http://purl.org/coar/resource_type/c_bdcc +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ info:eu-repo/semantics/masterThesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ master thesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ masterThesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ memoire +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ tesis de maestría +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18wz @=@ http://purl.org/coar/resource_type/c_18wz +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_186u @=@ http://purl.org/coar/resource_type/c_186u +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_186u @=@ http://purl.org/spar/fabio/DataManagementPolicy +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_186u @=@ http://purl.org/spar/fabio/DataManagementPolicyDocument +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_186u @=@ JRC Reference Reports +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18op @=@ Deliverable +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18op @=@ http://purl.org/coar/resource_type/c_18op +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18op @=@ Project deliverable +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18op @=@ Project Report +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18op @=@ publication-deliverable +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18ws @=@ D4 Julkaistu kehittämis- tai tutkimusraportti tai -selvitys +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18ws @=@ EUR - Scientific and Technical Research Reports +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18ws @=@ Project milestone +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18ws @=@ RESEARCH_REPORT +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18ws @=@ http://purl.org/coar/resource_type/c_18ws +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18ws @=@ research report +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18ws @=@ научный доклад +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18gh @=@ Departmental Technical Report +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18gh @=@ Informe Técnico +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18gh @=@ Tech-Report +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18gh @=@ Technical Report +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18gh @=@ document_technique +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18gh @=@ http://purl.org/coar/resource_type/c_18gh +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18gh @=@ informe a organismo financiador +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18gh @=@ publication-technicalnote +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_46ec @=@ Graduate diploma +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_46ec @=@ Hochschulschrift +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_46ec @=@ Tesis/trabajos de grado – Thesis +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_46ec @=@ Thèse ou mémoire / Thesis or Dissertation +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8042 @=@ Arbeitspapier +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8042 @=@ Departmental Bulletin Paper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8042 @=@ Documento de trabajo +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8042 @=@ Paper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8042 @=@ Project description +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8042 @=@ Research-Paper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8042 @=@ ResearchPaper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8042 @=@ Working / discussion paper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8042 @=@ Working Paper / Technical Report +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8042 @=@ Working Paper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8042 @=@ doc-type:workingPaper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8042 @=@ http://purl.org/coar/resource_type/c_8042 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8042 @=@ http://purl.org/escidoc/metadata/ves/publication-types/paper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8042 @=@ info:eu-repo/semantics/paper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8042 @=@ info:eu-repo/semantics/workingPaper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8042 @=@ publication-workingpaper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8042 @=@ workingPaper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_6947 @=@ Blog +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_6947 @=@ Entrada de blog +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_6947 @=@ http://purl.org/coar/resource_type/c_6947 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ Conference Abstract +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ Conference Paper/Proceeding/Abstract +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ Conference Program +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ Conference contribution +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ Conference or Workshop Item +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ Conference paper, poster, etc. +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ Conference paper/abstract +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ Conference report +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ Contribution à un congrès / Conference object +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ Contributions to Conferences +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ International Conference Abstract/Poster +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ International Conference ISI/JCR +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ International Conference communication/abstract/poster +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ Konferenzbeitrag +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ Resumen comunicación Congreso +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ Resúmen comunicación Congreso +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ communication_invitee +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ communication_sans_actes +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ conference item +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ conference object +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ conference +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ conferenceObject +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ doc-type:conferenceObject +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ http://purl.org/coar/resource_type/c_c94f +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ info:eu-repo/semantics/conferenceItem +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ info:eu-repo/semantics/conferenceObject +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ info:eu-repo/semantics/conferenceitemnotinproceedings +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_6670 @=@ Comunicación Congreso +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_6670 @=@ Comunicación de congreso +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_6670 @=@ Conference Poster +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_6670 @=@ National Conference Abstract/Poster +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_6670 @=@ National Conference communication/abstract/poster +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_6670 @=@ Póster de congreso +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_6670 @=@ Póster +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_6670 @=@ Scientific publication - Conference Poster +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_6670 @=@ http://purl.org/coar/resource_type/c_6670 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_6670 @=@ http://purl.org/eprint/type/ConferencePoster +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_6670 @=@ plakat +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_6670 @=@ poster +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/R60J-J5BD @=@ Conference lecture +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/R60J-J5BD @=@ Ponencia - Conference or Workshop Item +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/R60J-J5BD @=@ Presentación +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/R60J-J5BD @=@ Presentation +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/R60J-J5BD @=@ invited conference talk +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/R60J-J5BD @=@ ponencia +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/R60J-J5BD @=@ prezentacja +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_f744 @=@ Actes de congrès / Conference proceedings +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_f744 @=@ Conference Proceedings +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_f744 @=@ GL4 Conference Proceedings +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_f744 @=@ International Conference +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_f744 @=@ National Conference +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_f744 @=@ PREFACE_PROCEEDINGS +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_f744 @=@ Proceedings (peer-reviewed) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_f744 @=@ Proceedings of a Conference +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_f744 @=@ Tagungsband +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_f744 @=@ actas de congreso +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_f744 @=@ actes_congres +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_f744 @=@ communication_avec_actes +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_f744 @=@ communication_par_affiche +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_f744 @=@ conference proceeding +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_f744 @=@ http://purl.org/coar/resource_type/c_f744 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_f744 @=@ http://purl.org/escidoc/metadata/ves/publication-types/proceedings +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_f744 @=@ info:eu-repo/semantics/conferenceproceedings +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_f744 @=@ proceeding, seminar, workshop without peer review +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_f744 @=@ proceedings +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_b239 @=@ Editorial +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_b239 @=@ Editorial ISI/JCR +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_b239 @=@ Editors +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_b239 @=@ Editors (non peer-reviewed) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_b239 @=@ Editors (peer-reviewed) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_b239 @=@ http://purl.org/coar/resource_type/c_b239 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_0640 @=@ http://purl.org/coar/resource_type/c_0640 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_0640 @=@ International Journal +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_0640 @=@ International Journal ISI/JCR +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_0640 @=@ Journal (full / special issue) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_0640 @=@ National Journal +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_0857 @=@ habilitation à diriger des recherches +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_0857 @=@ http://purl.org/coar/resource_type/c_0857 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_545b @=@ Article - letter to the editor +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_545b @=@ Article / Letter to editor +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_545b @=@ Article / Letter to the editor +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_545b @=@ Article-letter to the editor +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_545b @=@ Article/Letter to editor +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_545b @=@ http://purl.org/coar/resource_type/c_545b +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_545b @=@ letter +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2cd9 @=@ Magazine Article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2cd9 @=@ Revista +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2cd9 @=@ Sammelband +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2cd9 @=@ revista divulgativa +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_0040 @=@ foreword +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_0040 @=@ Abstract +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_0040 @=@ Beitrag im Sammelband +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_0040 @=@ Manuscript +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_0040 @=@ Manuscrito +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_0040 @=@ afterword +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_0040 @=@ avantpropos +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_0040 @=@ http://purl.org/coar/resource_type/c_0040 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_0040 @=@ http://purl.org/coar/resource_type/c_3e5a +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_0040 @=@ postface +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2fe3 @=@ revuedepresse +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_998f @=@ Article / Newspaper +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_998f @=@ Newspaper Article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_998f @=@ Newspaper or magazine article +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_998f @=@ http://purl.org/coar/resource_type/c_998f +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_998f @=@ in-brief +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ Berichtsreihe +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ Encyclopedia Entry +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ Funding Submission +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ Índice +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ License +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ Manual +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ Other publication (non peer-review) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ Other publication (peer-review) +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ Supervised Student Publication +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ Text/Text +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ Text +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ Translation +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ Travail étudiant / Student work +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ chronique +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ contributionToPeriodical +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ historicalDocument +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ info:eu-repo/semantics/contributionToPeriodical +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ literature +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ other publication +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ publication-other +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ sa_component +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ standard-series +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ standard +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_baaf @=@ Proposal +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_baaf @=@ http://purl.org/coar/resource_type/c_baaf +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_baaf @=@ research-proposal +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_efa0 @=@ Book/Film/Article review +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_efa0 @=@ http://purl.org/coar/resource_type/c_efa0 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_efa0 @=@ info:eu-repo/semantics/review +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18cf @=@ http://purl.org/coar/resource_type/c_18cf +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1162 @=@ Comentario +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1162 @=@ Comment/debate +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1162 @=@ annotation +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1162 @=@ http://purl.org/coar/resource_type/c_1162 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1162 @=@ info:eu-repo/semantics/annotation +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8544 @=@ Inaugural lecture +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8544 @=@ Material didáctico +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8544 @=@ Matériel didactique / Educational material +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8544 @=@ Public-Lecture +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8544 @=@ Teaching Resource +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8544 @=@ http://purl.org/coar/resource_type/c_8544 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8544 @=@ info:eu-repo/semantics/lecture +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8544 @=@ lesson +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8544 @=@ note de lecture +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8544 @=@ notedelecture +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8544 @=@ Учебный материал +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18cd @=@ Partitura +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18cd @=@ document_audiovisuel +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18cd @=@ http://purl.org/coar/resource_type/c_18cd +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18cw @=@ Estudio y edición crítica de música +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18cw @=@ http://purl.org/coar/resource_type/c_18cw +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c950 @=@ Software/Software +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c950 @=@ Software +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c950 @=@ http://purl.org/coar/resource_type/c_c950 +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5ce6 @=@ Jupyter Notebook +openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5ce6 @=@ http://purl.org/coar/resource_type/c_5ce6 +openaire::user_resource_types @=@ Article @=@ text:conference_output:conference_proceedings:conference_paper +openaire::user_resource_types @=@ Article @=@ http://purl.org/coar/resource_type/c_5794 +openaire::user_resource_types @=@ Article @=@ text:conference_output:conference_paper_not_in_proceedings +openaire::user_resource_types @=@ Article @=@ http://purl.org/coar/resource_type/c_18cp +openaire::user_resource_types @=@ Article @=@ text:conference_output:conference_poster_not_in_proceedings +openaire::user_resource_types @=@ Article @=@ http://purl.org/coar/resource_type/c_18co +openaire::user_resource_types @=@ Article @=@ text:journal:journal_article:corrigendum +openaire::user_resource_types @=@ Article @=@ http://purl.org/coar/resource_type/c_7acd +openaire::user_resource_types @=@ Article @=@ text:journal:journal_article:data_paper +openaire::user_resource_types @=@ Article @=@ http://purl.org/coar/resource_type/c_beb9 +openaire::user_resource_types @=@ Article @=@ text:journal:journal_article +openaire::user_resource_types @=@ Article @=@ http://purl.org/coar/resource_type/c_6501 +openaire::user_resource_types @=@ Article @=@ text:preprint +openaire::user_resource_types @=@ Article @=@ http://purl.org/coar/resource_type/c_816b +openaire::user_resource_types @=@ Article @=@ text:journal:journal_article:research_article +openaire::user_resource_types @=@ Article @=@ http://purl.org/coar/resource_type/c_2df8fbb1 +openaire::user_resource_types @=@ Article @=@ text:journal:journal_article:review_article +openaire::user_resource_types @=@ Article @=@ http://purl.org/coar/resource_type/c_dcae04bc +openaire::user_resource_types @=@ Article @=@ text:journal:journal_article:software_paper +openaire::user_resource_types @=@ Article @=@ http://purl.org/coar/resource_type/c_7bab +openaire::user_resource_types @=@ Article @=@ text:working_paper +openaire::user_resource_types @=@ Article @=@ http://purl.org/coar/resource_type/c_8042 +openaire::user_resource_types @=@ Thesis @=@ text:thesis:bachelor_thesis +openaire::user_resource_types @=@ Thesis @=@ http://purl.org/coar/resource_type/c_7a1f +openaire::user_resource_types @=@ Thesis @=@ text:thesis:doctoral_thesis +openaire::user_resource_types @=@ Thesis @=@ http://purl.org/coar/resource_type/c_db06 +openaire::user_resource_types @=@ Thesis @=@ text:thesis:master_thesis +openaire::user_resource_types @=@ Thesis @=@ http://purl.org/coar/resource_type/c_bdcc +openaire::user_resource_types @=@ Thesis @=@ text:thesis +openaire::user_resource_types @=@ Thesis @=@ http://purl.org/coar/resource_type/c_46ec +openaire::user_resource_types @=@ Report @=@ text:report +openaire::user_resource_types @=@ Report @=@ http://purl.org/coar/resource_type/c_93fc +openaire::user_resource_types @=@ Report @=@ text:report:memorandum +openaire::user_resource_types @=@ Report @=@ http://purl.org/coar/resource_type/c_18wz +openaire::user_resource_types @=@ Report @=@ text:report:policy_report +openaire::user_resource_types @=@ Report @=@ http://purl.org/coar/resource_type/c_186u +openaire::user_resource_types @=@ Report @=@ text:report:research_protocol +openaire::user_resource_types @=@ Report @=@ http://purl.org/coar/resource_type/YZ1N-ZFT9 +openaire::user_resource_types @=@ Report @=@ text:report:research_report +openaire::user_resource_types @=@ Report @=@ http://purl.org/coar/resource_type/c_18ws +openaire::user_resource_types @=@ Report @=@ text:report:technical_report +openaire::user_resource_types @=@ Report @=@ http://purl.org/coar/resource_type/c_18gh +openaire::user_resource_types @=@ Project result @=@ text:report:data_management_plan +openaire::user_resource_types @=@ Project result @=@ http://purl.org/coar/resource_type/c_ab20 +openaire::user_resource_types @=@ Project result @=@ text:report:project_deliverable +openaire::user_resource_types @=@ Project result @=@ http://purl.org/coar/resource_type/c_18op +openaire::user_resource_types @=@ Book/Chapter @=@ text:book +openaire::user_resource_types @=@ Book/Chapter @=@ http://purl.org/coar/resource_type/c_2f33 +openaire::user_resource_types @=@ Book/Chapter @=@ text:book:book_part +openaire::user_resource_types @=@ Book/Chapter @=@ http://purl.org/coar/resource_type/c_3248 +openaire::user_resource_types @=@ Clinical Study @=@ text:report:clinical_study +openaire::user_resource_types @=@ Clinical Study @=@ http://purl.org/coar/resource_type/c_7877 +openaire::meta_resource_types @=@ Research Literature @=@ text:bibliography +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_86bc +openaire::meta_resource_types @=@ Research Literature @=@ patent:design_patent +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/C53B-JCY5 +openaire::meta_resource_types @=@ Research Literature @=@ patent +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_15cd +openaire::meta_resource_types @=@ Research Literature @=@ patent:PCT_application +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/SB3Y-W4EH +openaire::meta_resource_types @=@ Research Literature @=@ patent:plant_patent +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/Z907-YMBB +openaire::meta_resource_types @=@ Research Literature @=@ patent:plant_variety_protection +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/GPQ7-G5VE +openaire::meta_resource_types @=@ Research Literature @=@ patent:software_patent +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/MW8G-3CR8 +openaire::meta_resource_types @=@ Research Literature @=@ patent:utility_model +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/9DKX-KSAF +openaire::meta_resource_types @=@ Research Literature @=@ text:report:clinical_study +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_7877 +openaire::meta_resource_types @=@ Research Literature @=@ text:book +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_2f33 +openaire::meta_resource_types @=@ Research Literature @=@ text:book:book_part +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_3248 +openaire::meta_resource_types @=@ Research Literature @=@ text:review:book_review +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_ba08 +openaire::meta_resource_types @=@ Research Literature @=@ text:review:commentary +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/D97F-VB57 +openaire::meta_resource_types @=@ Research Literature @=@ text:conference_output:conference_proceedings:conference_paper +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_5794 +openaire::meta_resource_types @=@ Research Literature @=@ text:conference_output:conference_paper_not_in_proceedings +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_18cp +openaire::meta_resource_types @=@ Research Literature @=@ text:conference_output:conference_poster_not_in_proceedings +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_18co +openaire::meta_resource_types @=@ Research Literature @=@ text:journal:journal_article:corrigendum +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_7acd +openaire::meta_resource_types @=@ Research Literature @=@ text:report:data_management_plan +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_ab20 +openaire::meta_resource_types @=@ Research Literature @=@ text:journal:journal_article:data_paper +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_beb9 +openaire::meta_resource_types @=@ Research Literature @=@ text:journal:journal_article +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_6501 +openaire::meta_resource_types @=@ Research Literature @=@ text:review:peer_review +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/H9BQ-739P +openaire::meta_resource_types @=@ Research Literature @=@ text:preprint +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_816b +openaire::meta_resource_types @=@ Research Literature @=@ text:report +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_93fc +openaire::meta_resource_types @=@ Research Literature @=@ text:journal:journal_article:research_article +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_2df8fbb1 +openaire::meta_resource_types @=@ Research Literature @=@ text:journal:journal_article:review_article +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_dcae04bc +openaire::meta_resource_types @=@ Research Literature @=@ text:journal:journal_article:software_paper +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_7bab +openaire::meta_resource_types @=@ Research Literature @=@ text:technical_documentation +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_71bd +openaire::meta_resource_types @=@ Research Literature @=@ text:transcription +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/6NC7-GK9S +openaire::meta_resource_types @=@ Research Literature @=@ text:thesis:bachelor_thesis +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_7a1f +openaire::meta_resource_types @=@ Research Literature @=@ text:thesis:doctoral_thesis +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_db06 +openaire::meta_resource_types @=@ Research Literature @=@ text:thesis:master_thesis +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_bdcc +openaire::meta_resource_types @=@ Research Literature @=@ text:report:memorandum +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_18wz +openaire::meta_resource_types @=@ Research Literature @=@ text:report:policy_report +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_186u +openaire::meta_resource_types @=@ Research Literature @=@ text:report:project_deliverable +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_18op +openaire::meta_resource_types @=@ Research Literature @=@ text:report:research_protocol +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/YZ1N-ZFT9 +openaire::meta_resource_types @=@ Research Literature @=@ text:report:research_report +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_18ws +openaire::meta_resource_types @=@ Research Literature @=@ text:report:technical_report +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_18gh +openaire::meta_resource_types @=@ Research Literature @=@ text:thesis +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_46ec +openaire::meta_resource_types @=@ Research Literature @=@ text:working_paper +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_8042 +openaire::meta_resource_types @=@ Research Literature @=@ text:blog_post +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_6947 +openaire::meta_resource_types @=@ Research Literature @=@ text:conference_output +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_c94f +openaire::meta_resource_types @=@ Research Literature @=@ text:conference_output:conference_proceedings:conference_poster +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_6670 +openaire::meta_resource_types @=@ Research Literature @=@ text:conference_output:conference_presentation +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/R60J-J5BD +openaire::meta_resource_types @=@ Research Literature @=@ text:conference_output:conference_proceedings +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_f744 +openaire::meta_resource_types @=@ Research Literature @=@ text:journal:editorial +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_b239 +openaire::meta_resource_types @=@ Research Literature @=@ text:journal +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_0640 +openaire::meta_resource_types @=@ Research Literature @=@ text:letter +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_0857 +openaire::meta_resource_types @=@ Research Literature @=@ text:journal:letter_to_the_editor +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_545b +openaire::meta_resource_types @=@ Research Literature @=@ text:magazine +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_2cd9 +openaire::meta_resource_types @=@ Research Literature @=@ text:manuscript +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_0040 +openaire::meta_resource_types @=@ Research Literature @=@ text:newspaper +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_2fe3 +openaire::meta_resource_types @=@ Research Literature @=@ text:newspaper:newspaper_article +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_998f +openaire::meta_resource_types @=@ Research Literature @=@ text:other_periodical +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/QX5C-AR31 +openaire::meta_resource_types @=@ Research Literature @=@ text:research_proposal +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_baaf +openaire::meta_resource_types @=@ Research Literature @=@ text:review +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_efa0 +openaire::meta_resource_types @=@ Research Literature @=@ text +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_18cf +openaire::meta_resource_types @=@ Research Literature @=@ text:annotation +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_1162 +openaire::meta_resource_types @=@ Research Literature @=@ text:lecture +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_8544 +openaire::meta_resource_types @=@ Research Literature @=@ text:musical_notation +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_18cw +openaire::meta_resource_types @=@ Research Data @=@ dataset +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_ddb1 +openaire::meta_resource_types @=@ Research Data @=@ dataset:aggregated_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/ACF7-8YT9 +openaire::meta_resource_types @=@ Research Data @=@ cartographic_material +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_12cc +openaire::meta_resource_types @=@ Research Data @=@ dataset:clinical_trial_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_cb28 +openaire::meta_resource_types @=@ Research Data @=@ dataset:compiled_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/FXF3-D3G7 +openaire::meta_resource_types @=@ Research Data @=@ dataset:encoded_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/AM6W-6QAW +openaire::meta_resource_types @=@ Research Data @=@ dataset:experimental_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/63NG-B465 +openaire::meta_resource_types @=@ Research Data @=@ dataset:genomic_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/A8F1-NPV9 +openaire::meta_resource_types @=@ Research Data @=@ dataset:geospatial_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/2H0M-X761 +openaire::meta_resource_types @=@ Research Data @=@ dataset:laboratory_notebook +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/H41Y-FW7B +openaire::meta_resource_types @=@ Research Data @=@ cartographic_material:map +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_12cd +openaire::meta_resource_types @=@ Research Data @=@ dataset:measurement_and_test_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/DD58-GFSX +openaire::meta_resource_types @=@ Research Data @=@ dataset:observational_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/FF4C-28RK +openaire::meta_resource_types @=@ Research Data @=@ dataset:recorded_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/CQMR-7K63 +openaire::meta_resource_types @=@ Research Data @=@ dataset:simulation_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/W2XT-7017 +openaire::meta_resource_types @=@ Research Data @=@ sound +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_18cc +openaire::meta_resource_types @=@ Research Data @=@ dataset:survey_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/NHD0-W6SY +openaire::meta_resource_types @=@ Research Data @=@ image +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_c513 +openaire::meta_resource_types @=@ Research Data @=@ image:moving_image +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_8a7e +openaire::meta_resource_types @=@ Research Data @=@ image:still_image +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_ecc8 +openaire::meta_resource_types @=@ Research Data @=@ image:moving_image:video +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_12ce +openaire::meta_resource_types @=@ Research Data @=@ design +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/542X-3S04 +openaire::meta_resource_types @=@ Research Data @=@ design:industrial_design +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/JBNF-DYAD +openaire::meta_resource_types @=@ Research Data @=@ interactive_resource +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_e9a0 +openaire::meta_resource_types @=@ Research Data @=@ design:layout_design +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/BW7T-YM2G +openaire::meta_resource_types @=@ Research Data @=@ interactive_resource:website +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_7ad9 +openaire::meta_resource_types @=@ Research Data @=@ sound:musical_composition +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_18cd +openaire::meta_resource_types @=@ Research Software @=@ software:research_software +openaire::meta_resource_types @=@ Research Software @=@ http://purl.org/coar/resource_type/c_c950 +openaire::meta_resource_types @=@ Research Software @=@ software +openaire::meta_resource_types @=@ Research Software @=@ http://purl.org/coar/resource_type/c_5ce6 +openaire::meta_resource_types @=@ Research Software @=@ software:source_code +openaire::meta_resource_types @=@ Research Software @=@ http://purl.org/coar/resource_type/QH80-2R4E +openaire::meta_resource_types @=@ Other Research Products @=@ learning_object +openaire::meta_resource_types @=@ Other Research Products @=@ http://purl.org/coar/resource_type/c_e059 +openaire::meta_resource_types @=@ Other Research Products @=@ other +openaire::meta_resource_types @=@ Other Research Products @=@ http://purl.org/coar/resource_type/c_1843 +openaire::meta_resource_types @=@ Other Research Products @=@ trademark +openaire::meta_resource_types @=@ Other Research Products @=@ http://purl.org/coar/resource_type/H6QP-SC1X +openaire::meta_resource_types @=@ Other Research Products @=@ workflow +openaire::meta_resource_types @=@ Other Research Products @=@ http://purl.org/coar/resource_type/c_393c \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/terms.txt b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/terms.txt index 24ce42fc2..68828b3d8 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/terms.txt +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/clean/terms.txt @@ -1121,4 +1121,296 @@ dnet:relation_subRelType @=@ dnet:relation_subRelType @=@ supplement @=@ supplem dnet:relation_subRelType @=@ dnet:relation_subRelType @=@ version @=@ version FOS @=@ Fields of Science and Technology classification @=@ 0101 mathematics @=@ 0101 mathematics FOS @=@ Fields of Science and Technology classification @=@ 0102 computer and information sciences @=@ 0102 computer and information sciences -FOS @=@ Fields of Science and Technology classification @=@ 0103 physical sciences @=@ 0103 physical sciences \ No newline at end of file +FOS @=@ Fields of Science and Technology classification @=@ 0103 physical sciences @=@ 0103 physical sciences +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ddb1 @=@ dataset +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/ACF7-8YT9 @=@ aggregated data +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_12cc @=@ cartographic material +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_cb28 @=@ clinical trial data +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/FXF3-D3G7 @=@ compiled data +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/AM6W-6QAW @=@ encoded data +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/63NG-B465 @=@ experimental data +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/A8F1-NPV9 @=@ genomic data +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/2H0M-X761 @=@ geospatial data +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/H41Y-FW7B @=@ laboratory notebook +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_12cd @=@ map +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/DD58-GFSX @=@ measurement and test data +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/FF4C-28RK @=@ observational data +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/CQMR-7K63 @=@ recorded data +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/W2XT-7017 @=@ simulation data +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18cc @=@ sound +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/NHD0-W6SY @=@ survey data +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_86bc @=@ bibliography +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c513 @=@ image +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8a7e @=@ moving image +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ecc8 @=@ still image +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_12ce @=@ video +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/C53B-JCY5 @=@ design patent +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_15cd @=@ patent +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/SB3Y-W4EH @=@ PCT application +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/Z907-YMBB @=@ plant patent +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/GPQ7-G5VE @=@ plant variety protection +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/MW8G-3CR8 @=@ software patent +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/542X-3S04 @=@ design +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/JBNF-DYAD @=@ industrial design +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_e9a0 @=@ interactive resource +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/BW7T-YM2G @=@ layout design +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_e059 @=@ learning object +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1843 @=@ other +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/9DKX-KSAF @=@ utility model +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7ad9 @=@ website +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7877 @=@ clinical study +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2f33 @=@ book +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_3248 @=@ book part +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ba08 @=@ book review +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/D97F-VB57 @=@ commentary +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5794 @=@ conference paper +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18cp @=@ conference paper not in proceedings +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18co @=@ conference poster not in proceedings +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7acd @=@ corrigendum +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_ab20 @=@ data management plan +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_beb9 @=@ data paper +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_6501 @=@ journal article +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/H9BQ-739P @=@ peer review +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_816b @=@ preprint +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_93fc @=@ report +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2df8fbb1 @=@ research article +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_dcae04bc @=@ review article +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7bab @=@ software paper +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_71bd @=@ technical documentation +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/6NC7-GK9S @=@ transcription +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/H6QP-SC1X @=@ trademark +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_393c @=@ workflow +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_7a1f @=@ bachelor thesis +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_db06 @=@ doctoral thesis +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_bdcc @=@ master thesis +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18wz @=@ memorandum +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_186u @=@ policy report +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18op @=@ project deliverable +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/YZ1N-ZFT9 @=@ research protocol +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18ws @=@ research report +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18gh @=@ technical report +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_46ec @=@ thesis +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8042 @=@ working paper +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_6947 @=@ blog post +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c94f @=@ conference output +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_6670 @=@ conference poster +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/R60J-J5BD @=@ conference presentation +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_f744 @=@ conference proceedings +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_b239 @=@ editorial +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_0640 @=@ journal +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_0857 @=@ letter +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_545b @=@ letter to the editor +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2cd9 @=@ magazine +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_0040 @=@ manuscript +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_2fe3 @=@ newspaper +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_998f @=@ newspaper article +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QX5C-AR31 @=@ other periodical +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_baaf @=@ research proposal +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_efa0 @=@ review +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18cf @=@ text +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_1162 @=@ annotation +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_8544 @=@ lecture +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18cd @=@ musical composition +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_18cw @=@ musical notation +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_c950 @=@ research software +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/c_5ce6 @=@ software +openaire::coar_resource_types_3_1 @=@ openaire::coar_resource_types_3_1 @=@ http://purl.org/coar/resource_type/QH80-2R4E @=@ source code +openaire::user_resource_types @=@ openaire::user_resource_types @=@ Article @=@ Article +openaire::user_resource_types @=@ openaire::user_resource_types @=@ Thesis @=@ Thesis +openaire::user_resource_types @=@ openaire::user_resource_types @=@ Report @=@ Report +openaire::user_resource_types @=@ openaire::user_resource_types @=@ Project result @=@ Project result +openaire::user_resource_types @=@ openaire::user_resource_types @=@ Research Data @=@ Research Data +openaire::user_resource_types @=@ openaire::user_resource_types @=@ Presentation @=@ Presentation +openaire::user_resource_types @=@ openaire::user_resource_types @=@ Book/Chapter @=@ Book/Chapter +openaire::user_resource_types @=@ openaire::user_resource_types @=@ Multimedia @=@ Multimedia +openaire::user_resource_types @=@ openaire::user_resource_types @=@ Clinical Study @=@ Clinical Study +openaire::meta_resource_types @=@ openaire::meta_resource_types @=@ Research Literature @=@ Research Literature +openaire::meta_resource_types @=@ openaire::meta_resource_types @=@ Research Data @=@ Research Data +openaire::meta_resource_types @=@ openaire::meta_resource_types @=@ Research Software @=@ Research Software +openaire::meta_resource_types @=@ openaire::meta_resource_types @=@ Other Research Products @=@ Other Research Products +openaire::meta_resource_types @=@ Research Literature @=@ text:bibliography +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_86bc +openaire::meta_resource_types @=@ Research Literature @=@ patent:design_patent +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/C53B-JCY5 +openaire::meta_resource_types @=@ Research Literature @=@ patent +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_15cd +openaire::meta_resource_types @=@ Research Literature @=@ patent:PCT_application +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/SB3Y-W4EH +openaire::meta_resource_types @=@ Research Literature @=@ patent:plant_patent +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/Z907-YMBB +openaire::meta_resource_types @=@ Research Literature @=@ patent:plant_variety_protection +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/GPQ7-G5VE +openaire::meta_resource_types @=@ Research Literature @=@ patent:software_patent +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/MW8G-3CR8 +openaire::meta_resource_types @=@ Research Literature @=@ patent:utility_model +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/9DKX-KSAF +openaire::meta_resource_types @=@ Research Literature @=@ text:report:clinical_study +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_7877 +openaire::meta_resource_types @=@ Research Literature @=@ text:book +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_2f33 +openaire::meta_resource_types @=@ Research Literature @=@ text:book:book_part +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_3248 +openaire::meta_resource_types @=@ Research Literature @=@ text:review:book_review +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_ba08 +openaire::meta_resource_types @=@ Research Literature @=@ text:review:commentary +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/D97F-VB57 +openaire::meta_resource_types @=@ Research Literature @=@ text:conference_output:conference_proceedings:conference_paper +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_5794 +openaire::meta_resource_types @=@ Research Literature @=@ text:conference_output:conference_paper_not_in_proceedings +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_18cp +openaire::meta_resource_types @=@ Research Literature @=@ text:conference_output:conference_poster_not_in_proceedings +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_18co +openaire::meta_resource_types @=@ Research Literature @=@ text:journal:journal_article:corrigendum +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_7acd +openaire::meta_resource_types @=@ Research Literature @=@ text:report:data_management_plan +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_ab20 +openaire::meta_resource_types @=@ Research Literature @=@ text:journal:journal_article:data_paper +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_beb9 +openaire::meta_resource_types @=@ Research Literature @=@ text:journal:journal_article +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_6501 +openaire::meta_resource_types @=@ Research Literature @=@ text:review:peer_review +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/H9BQ-739P +openaire::meta_resource_types @=@ Research Literature @=@ text:preprint +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_816b +openaire::meta_resource_types @=@ Research Literature @=@ text:report +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_93fc +openaire::meta_resource_types @=@ Research Literature @=@ text:journal:journal_article:research_article +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_2df8fbb1 +openaire::meta_resource_types @=@ Research Literature @=@ text:journal:journal_article:review_article +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_dcae04bc +openaire::meta_resource_types @=@ Research Literature @=@ text:journal:journal_article:software_paper +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_7bab +openaire::meta_resource_types @=@ Research Literature @=@ text:technical_documentation +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_71bd +openaire::meta_resource_types @=@ Research Literature @=@ text:transcription +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/6NC7-GK9S +openaire::meta_resource_types @=@ Research Literature @=@ text:thesis:bachelor_thesis +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_7a1f +openaire::meta_resource_types @=@ Research Literature @=@ text:thesis:doctoral_thesis +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_db06 +openaire::meta_resource_types @=@ Research Literature @=@ text:thesis:master_thesis +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_bdcc +openaire::meta_resource_types @=@ Research Literature @=@ text:report:memorandum +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_18wz +openaire::meta_resource_types @=@ Research Literature @=@ text:report:policy_report +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_186u +openaire::meta_resource_types @=@ Research Literature @=@ text:report:project_deliverable +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_18op +openaire::meta_resource_types @=@ Research Literature @=@ text:report:research_protocol +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/YZ1N-ZFT9 +openaire::meta_resource_types @=@ Research Literature @=@ text:report:research_report +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_18ws +openaire::meta_resource_types @=@ Research Literature @=@ text:report:technical_report +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_18gh +openaire::meta_resource_types @=@ Research Literature @=@ text:thesis +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_46ec +openaire::meta_resource_types @=@ Research Literature @=@ text:working_paper +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_8042 +openaire::meta_resource_types @=@ Research Literature @=@ text:blog_post +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_6947 +openaire::meta_resource_types @=@ Research Literature @=@ text:conference_output +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_c94f +openaire::meta_resource_types @=@ Research Literature @=@ text:conference_output:conference_proceedings:conference_poster +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_6670 +openaire::meta_resource_types @=@ Research Literature @=@ text:conference_output:conference_presentation +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/R60J-J5BD +openaire::meta_resource_types @=@ Research Literature @=@ text:conference_output:conference_proceedings +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_f744 +openaire::meta_resource_types @=@ Research Literature @=@ text:journal:editorial +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_b239 +openaire::meta_resource_types @=@ Research Literature @=@ text:journal +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_0640 +openaire::meta_resource_types @=@ Research Literature @=@ text:letter +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_0857 +openaire::meta_resource_types @=@ Research Literature @=@ text:journal:letter_to_the_editor +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_545b +openaire::meta_resource_types @=@ Research Literature @=@ text:magazine +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_2cd9 +openaire::meta_resource_types @=@ Research Literature @=@ text:manuscript +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_0040 +openaire::meta_resource_types @=@ Research Literature @=@ text:newspaper +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_2fe3 +openaire::meta_resource_types @=@ Research Literature @=@ text:newspaper:newspaper_article +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_998f +openaire::meta_resource_types @=@ Research Literature @=@ text:other_periodical +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/QX5C-AR31 +openaire::meta_resource_types @=@ Research Literature @=@ text:research_proposal +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_baaf +openaire::meta_resource_types @=@ Research Literature @=@ text:review +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_efa0 +openaire::meta_resource_types @=@ Research Literature @=@ text +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_18cf +openaire::meta_resource_types @=@ Research Literature @=@ text:annotation +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_1162 +openaire::meta_resource_types @=@ Research Literature @=@ text:lecture +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_8544 +openaire::meta_resource_types @=@ Research Literature @=@ text:musical_notation +openaire::meta_resource_types @=@ Research Literature @=@ http://purl.org/coar/resource_type/c_18cw +openaire::meta_resource_types @=@ Research Data @=@ dataset +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_ddb1 +openaire::meta_resource_types @=@ Research Data @=@ dataset:aggregated_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/ACF7-8YT9 +openaire::meta_resource_types @=@ Research Data @=@ cartographic_material +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_12cc +openaire::meta_resource_types @=@ Research Data @=@ dataset:clinical_trial_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_cb28 +openaire::meta_resource_types @=@ Research Data @=@ dataset:compiled_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/FXF3-D3G7 +openaire::meta_resource_types @=@ Research Data @=@ dataset:encoded_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/AM6W-6QAW +openaire::meta_resource_types @=@ Research Data @=@ dataset:experimental_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/63NG-B465 +openaire::meta_resource_types @=@ Research Data @=@ dataset:genomic_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/A8F1-NPV9 +openaire::meta_resource_types @=@ Research Data @=@ dataset:geospatial_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/2H0M-X761 +openaire::meta_resource_types @=@ Research Data @=@ dataset:laboratory_notebook +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/H41Y-FW7B +openaire::meta_resource_types @=@ Research Data @=@ cartographic_material:map +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_12cd +openaire::meta_resource_types @=@ Research Data @=@ dataset:measurement_and_test_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/DD58-GFSX +openaire::meta_resource_types @=@ Research Data @=@ dataset:observational_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/FF4C-28RK +openaire::meta_resource_types @=@ Research Data @=@ dataset:recorded_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/CQMR-7K63 +openaire::meta_resource_types @=@ Research Data @=@ dataset:simulation_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/W2XT-7017 +openaire::meta_resource_types @=@ Research Data @=@ sound +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_18cc +openaire::meta_resource_types @=@ Research Data @=@ dataset:survey_data +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/NHD0-W6SY +openaire::meta_resource_types @=@ Research Data @=@ image +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_c513 +openaire::meta_resource_types @=@ Research Data @=@ image:moving_image +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_8a7e +openaire::meta_resource_types @=@ Research Data @=@ image:still_image +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_ecc8 +openaire::meta_resource_types @=@ Research Data @=@ image:moving_image:video +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_12ce +openaire::meta_resource_types @=@ Research Data @=@ design +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/542X-3S04 +openaire::meta_resource_types @=@ Research Data @=@ design:industrial_design +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/JBNF-DYAD +openaire::meta_resource_types @=@ Research Data @=@ interactive_resource +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_e9a0 +openaire::meta_resource_types @=@ Research Data @=@ design:layout_design +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/BW7T-YM2G +openaire::meta_resource_types @=@ Research Data @=@ interactive_resource:website +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_7ad9 +openaire::meta_resource_types @=@ Research Data @=@ sound:musical_composition +openaire::meta_resource_types @=@ Research Data @=@ http://purl.org/coar/resource_type/c_18cd +openaire::meta_resource_types @=@ Research Software @=@ software:research_software +openaire::meta_resource_types @=@ Research Software @=@ http://purl.org/coar/resource_type/c_c950 +openaire::meta_resource_types @=@ Research Software @=@ software +openaire::meta_resource_types @=@ Research Software @=@ http://purl.org/coar/resource_type/c_5ce6 +openaire::meta_resource_types @=@ Research Software @=@ software:source_code +openaire::meta_resource_types @=@ Research Software @=@ http://purl.org/coar/resource_type/QH80-2R4E +openaire::meta_resource_types @=@ Other Research Products @=@ learning_object +openaire::meta_resource_types @=@ Other Research Products @=@ http://purl.org/coar/resource_type/c_e059 +openaire::meta_resource_types @=@ Other Research Products @=@ other +openaire::meta_resource_types @=@ Other Research Products @=@ http://purl.org/coar/resource_type/c_1843 +openaire::meta_resource_types @=@ Other Research Products @=@ trademark +openaire::meta_resource_types @=@ Other Research Products @=@ http://purl.org/coar/resource_type/H6QP-SC1X +openaire::meta_resource_types @=@ Other Research Products @=@ workflow +openaire::meta_resource_types @=@ Other Research Products @=@ http://purl.org/coar/resource_type/c_393c \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/group/dataset/dataset.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/group/dataset/dataset.json index e30be47e9..efbabb3c8 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/group/dataset/dataset.json +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/group/dataset/dataset.json @@ -1,3 +1,3 @@ -{"author":[{"affiliation":[],"fullname":"Greenough, B","name":"B","pid":[],"rank":1,"surname":"Greenough"}],"bestaccessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"Zenodo"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofcollection":"2021-09-25T10:55:00.639Z","dateoftransformation":"2021-09-25T11:00:04.201Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Heritage Education"}],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"geolocation":[],"id":"50|doi_________::09821844208a5cd6300b2bfb13bca1b9","instance":[{"accessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"urn","classname":"urn","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"urn:nbn:nl:ui:13-59-cjhf"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"Digital Object Identifier","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.17632/96bpgw5j9d.1"}],"collectedfrom":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"Zenodo"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"instancetype":{"classid":"0021","classname":"Dataset","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"alternateIdentifier":[],"refereed":{"classid":"0000","classname":"Unknown","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["","http://dx.doi.org/10.17632/96bpgw5j9d.1"]}],"language":{"classid":"und","classname":"Undetermined","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1635434801681,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"http%3A%2F%2Fservices.nod.dans.knaw.nl%2Foa-cerif","datestamp":"2021-08-16T15:29:45Z","harvestDate":"2021-09-25T10:55:00.639Z","identifier":"oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:211323","metadataNamespace":""}},"originalId":["50|DansKnawCris::09821844208a5cd6300b2bfb13bca1b9","oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:211323"],"pid":[],"relevantdate":[],"resourcetype":{"classid":"0021","classname":"0021","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Interdisciplinary sciences"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Interdisciplinary sciences"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Heritage Education"}]} -{"author":[{"affiliation":[],"fullname":"Keijers, D.M.G.","name":"D.M.G.","pid":[],"rank":1,"surname":"Keijers"}],"bestaccessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofcollection":"2021-09-25T10:41:59.767Z","dateoftransformation":"2021-09-25T11:00:19.238Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"onderzoeksrapport"}],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"geolocation":[],"id":"50|DansKnawCris::0dd644304b7116e8e58da3a5e3adc37a","instance":[{"accessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"urn","classname":"urn","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"urn:nbn:nl:ui:13-das-fkq"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"Digital Object Identifier","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.17026/dans-xsw-qtnx"}],"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"instancetype":{"classid":"0021","classname":"Dataset","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"alternateIdentifier":[],"refereed":{"classid":"0000","classname":"Unknown","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["","http://dx.doi.org/10.17026/dans-xsw-qtnx"]}],"language":{"classid":"dut/nld","classname":"Dutch; Flemish","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1635434847381,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"http%3A%2F%2Fservices.nod.dans.knaw.nl%2Foa-cerif","datestamp":"2021-08-16T13:53:29Z","harvestDate":"2021-09-25T10:41:59.767Z","identifier":"oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:20759","metadataNamespace":""}},"originalId":["oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:20759","50|DansKnawCris::0dd644304b7116e8e58da3a5e3adc37a"],"pid":[],"relevantdate":[],"resourcetype":{"classid":"0021","classname":"0021","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"PROSPECTIE"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Archaeology"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Plangebied Lange Ekker te Vessem, gemeente Eersel"}]} -{"author":[],"bestaccessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofcollection":"2021-09-25T10:43:13.768Z","dateoftransformation":"2021-09-25T11:01:22.863Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"This find is registered at Portable Antiquities of the Netherlands with number PAN-00054604"}],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"geolocation":[],"id":"50|DansKnawCris::203a27996ddc0fd1948258e5b7dec61c","instance":[{"accessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"urn","classname":"urn","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"urn:nbn:nl:ui:13-a7-hwgy"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"Digital Object Identifier","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.17026/dans-x3z-fsq5"}],"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"instancetype":{"classid":"0021","classname":"Dataset","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"alternateIdentifier":[],"refereed":{"classid":"0000","classname":"Unknown","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["","http://dx.doi.org/10.17026/dans-x3z-fsq5"]}],"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1635434508886,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"http%3A%2F%2Fservices.nod.dans.knaw.nl%2Foa-cerif","datestamp":"2021-08-16T14:01:37Z","harvestDate":"2021-09-25T10:43:13.768Z","identifier":"oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:129566","metadataNamespace":""}},"originalId":["oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:129566","50|DansKnawCris::203a27996ddc0fd1948258e5b7dec61c"],"pid":[],"relevantdate":[],"resourcetype":{"classid":"0021","classname":"0021","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"early medieval enamelled disc brooch variant A9"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Broader Match: disc brooches"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Broader Match: schijffibula - geemailleerd"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"metal"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"copper alloy"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Temporal coverage: Early Middle Ages C"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Temporal coverage: Early Middle Ages D"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Temporal coverage: 800 until 1000"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Archaeology"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"PAN-00054604 - early medieval enamelled disc brooch variant A9"}]} \ No newline at end of file +{"author":[{"affiliation":[],"fullname":"Greenough, B","name":"B","pid":[],"rank":1,"surname":"Greenough"}],"bestaccessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"Zenodo"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofcollection":"2021-09-25T10:55:00.639Z","dateoftransformation":"2021-09-25T11:00:04.201Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Heritage Education"}],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"geolocation":[],"id":"50|doi_________::09821844208a5cd6300b2bfb13bca1b9","instance":[{"instanceTypeMapping":[{"originalType":"journal-article","vocabularyName":"openaire::coar_resource_types_3_1"}],"accessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"urn","classname":"urn","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"urn:nbn:nl:ui:13-59-cjhf"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"Digital Object Identifier","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.17632/96bpgw5j9d.1"}],"collectedfrom":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"Zenodo"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"instancetype":{"classid":"0021","classname":"Dataset","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"alternateIdentifier":[],"refereed":{"classid":"0000","classname":"Unknown","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["","http://dx.doi.org/10.17632/96bpgw5j9d.1"]}],"language":{"classid":"und","classname":"Undetermined","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1635434801681,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"http%3A%2F%2Fservices.nod.dans.knaw.nl%2Foa-cerif","datestamp":"2021-08-16T15:29:45Z","harvestDate":"2021-09-25T10:55:00.639Z","identifier":"oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:211323","metadataNamespace":""}},"originalId":["50|DansKnawCris::09821844208a5cd6300b2bfb13bca1b9","oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:211323"],"pid":[],"relevantdate":[],"resourcetype":{"classid":"0021","classname":"0021","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Interdisciplinary sciences"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Interdisciplinary sciences"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Heritage Education"}]} +{"author":[{"affiliation":[],"fullname":"Keijers, D.M.G.","name":"D.M.G.","pid":[],"rank":1,"surname":"Keijers"}],"bestaccessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofcollection":"2021-09-25T10:41:59.767Z","dateoftransformation":"2021-09-25T11:00:19.238Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"onderzoeksrapport"}],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"geolocation":[],"id":"50|DansKnawCris::0dd644304b7116e8e58da3a5e3adc37a","instance":[{"instanceTypeMapping":[{"originalType":"journal-article","vocabularyName":"openaire::coar_resource_types_3_1"}],"accessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"urn","classname":"urn","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"urn:nbn:nl:ui:13-das-fkq"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"Digital Object Identifier","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.17026/dans-xsw-qtnx"}],"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"instancetype":{"classid":"0021","classname":"Dataset","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"alternateIdentifier":[],"refereed":{"classid":"0000","classname":"Unknown","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["","http://dx.doi.org/10.17026/dans-xsw-qtnx"]}],"language":{"classid":"dut/nld","classname":"Dutch; Flemish","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1635434847381,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"http%3A%2F%2Fservices.nod.dans.knaw.nl%2Foa-cerif","datestamp":"2021-08-16T13:53:29Z","harvestDate":"2021-09-25T10:41:59.767Z","identifier":"oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:20759","metadataNamespace":""}},"originalId":["oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:20759","50|DansKnawCris::0dd644304b7116e8e58da3a5e3adc37a"],"pid":[],"relevantdate":[],"resourcetype":{"classid":"0021","classname":"0021","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"PROSPECTIE"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Archaeology"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Plangebied Lange Ekker te Vessem, gemeente Eersel"}]} +{"author":[],"bestaccessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofcollection":"2021-09-25T10:43:13.768Z","dateoftransformation":"2021-09-25T11:01:22.863Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"This find is registered at Portable Antiquities of the Netherlands with number PAN-00054604"}],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"geolocation":[],"id":"50|DansKnawCris::203a27996ddc0fd1948258e5b7dec61c","instance":[{"instanceTypeMapping":[{"originalType":"journal-article","vocabularyName":"openaire::coar_resource_types_3_1"}],"accessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"urn","classname":"urn","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"urn:nbn:nl:ui:13-a7-hwgy"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"Digital Object Identifier","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.17026/dans-x3z-fsq5"}],"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"instancetype":{"classid":"0021","classname":"Dataset","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"alternateIdentifier":[],"refereed":{"classid":"0000","classname":"Unknown","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["","http://dx.doi.org/10.17026/dans-x3z-fsq5"]}],"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1635434508886,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"http%3A%2F%2Fservices.nod.dans.knaw.nl%2Foa-cerif","datestamp":"2021-08-16T14:01:37Z","harvestDate":"2021-09-25T10:43:13.768Z","identifier":"oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:129566","metadataNamespace":""}},"originalId":["oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:129566","50|DansKnawCris::203a27996ddc0fd1948258e5b7dec61c"],"pid":[],"relevantdate":[],"resourcetype":{"classid":"0021","classname":"0021","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"early medieval enamelled disc brooch variant A9"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Broader Match: disc brooches"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Broader Match: schijffibula - geemailleerd"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"metal"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"copper alloy"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Temporal coverage: Early Middle Ages C"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Temporal coverage: Early Middle Ages D"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Temporal coverage: 800 until 1000"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Archaeology"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"PAN-00054604 - early medieval enamelled disc brooch variant A9"}]} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/group/publication/publication.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/group/publication/publication.json index 29ce76df3..90cf4936b 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/group/publication/publication.json +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/group/publication/publication.json @@ -1,3 +1,3 @@ -{"author":[{"affiliation":[],"fullname":"Greenough, B","name":"B","pid":[],"rank":1,"surname":"Greenough"}],"bestaccessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofcollection":"2021-09-25T10:55:00.639Z","dateoftransformation":"2021-09-25T11:00:04.201Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Heritage Education"}],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"geolocation":[],"id":"50|doi_________::09821844208a5cd6300b2bfb13bca1b9","instance":[{"accessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"urn","classname":"urn","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"urn:nbn:nl:ui:13-59-cjhf"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"Digital Object Identifier","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.17632/96bpgw5j9d.1"}],"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"instancetype":{"classid":"0021","classname":"Dataset","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"alternateIdentifier":[],"refereed":{"classid":"0000","classname":"Unknown","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["","http://dx.doi.org/10.17632/96bpgw5j9d.1"]}],"language":{"classid":"und","classname":"Undetermined","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1635434801681,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"http%3A%2F%2Fservices.nod.dans.knaw.nl%2Foa-cerif","datestamp":"2021-08-16T15:29:45Z","harvestDate":"2021-09-25T10:55:00.639Z","identifier":"oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:211323","metadataNamespace":""}},"originalId":["50|DansKnawCris::09821844208a5cd6300b2bfb13bca1b9","oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:211323"],"pid":[],"relevantdate":[],"resourcetype":{"classid":"0021","classname":"0021","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Interdisciplinary sciences"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Interdisciplinary sciences"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Heritage Education"}]} -{"author":[{"affiliation":[],"fullname":"Keijers, D.M.G.","name":"D.M.G.","pid":[],"rank":1,"surname":"Keijers"}],"bestaccessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofcollection":"2021-09-25T10:41:59.767Z","dateoftransformation":"2021-09-25T11:00:19.238Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"onderzoeksrapport"}],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"geolocation":[],"id":"50|DansKnawCris::0dd644304b7116e8e58da3a5e3adc37a","instance":[{"accessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"urn","classname":"urn","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"urn:nbn:nl:ui:13-das-fkq"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"Digital Object Identifier","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.17026/dans-xsw-qtnx"}],"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"instancetype":{"classid":"0021","classname":"Dataset","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"alternateIdentifier":[],"refereed":{"classid":"0000","classname":"Unknown","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["","http://dx.doi.org/10.17026/dans-xsw-qtnx"]}],"language":{"classid":"dut/nld","classname":"Dutch; Flemish","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1635434847381,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"http%3A%2F%2Fservices.nod.dans.knaw.nl%2Foa-cerif","datestamp":"2021-08-16T13:53:29Z","harvestDate":"2021-09-25T10:41:59.767Z","identifier":"oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:20759","metadataNamespace":""}},"originalId":["oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:20759","50|DansKnawCris::0dd644304b7116e8e58da3a5e3adc37a"],"pid":[],"relevantdate":[],"resourcetype":{"classid":"0021","classname":"0021","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"PROSPECTIE"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Archaeology"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Plangebied Lange Ekker te Vessem, gemeente Eersel"}]} -{"author":[],"bestaccessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofcollection":"2021-09-25T10:43:13.768Z","dateoftransformation":"2021-09-25T11:01:22.863Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"This find is registered at Portable Antiquities of the Netherlands with number PAN-00054604"}],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"geolocation":[],"id":"50|DansKnawCris::203a27996ddc0fd1948258e5b7dec61c","instance":[{"accessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"urn","classname":"urn","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"urn:nbn:nl:ui:13-a7-hwgy"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"Digital Object Identifier","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.17026/dans-x3z-fsq5"}],"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"instancetype":{"classid":"0021","classname":"Dataset","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"alternateIdentifier":[],"refereed":{"classid":"0000","classname":"Unknown","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["","http://dx.doi.org/10.17026/dans-x3z-fsq5"]}],"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1635434508886,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"http%3A%2F%2Fservices.nod.dans.knaw.nl%2Foa-cerif","datestamp":"2021-08-16T14:01:37Z","harvestDate":"2021-09-25T10:43:13.768Z","identifier":"oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:129566","metadataNamespace":""}},"originalId":["oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:129566","50|DansKnawCris::203a27996ddc0fd1948258e5b7dec61c"],"pid":[],"relevantdate":[],"resourcetype":{"classid":"0021","classname":"0021","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"early medieval enamelled disc brooch variant A9"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Broader Match: disc brooches"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Broader Match: schijffibula - geemailleerd"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"metal"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"copper alloy"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Temporal coverage: Early Middle Ages C"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Temporal coverage: Early Middle Ages D"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Temporal coverage: 800 until 1000"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Archaeology"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"PAN-00054604 - early medieval enamelled disc brooch variant A9"}]} \ No newline at end of file +{"author":[{"affiliation":[],"fullname":"Greenough, B","name":"B","pid":[],"rank":1,"surname":"Greenough"}],"bestaccessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofcollection":"2021-09-25T10:55:00.639Z","dateoftransformation":"2021-09-25T11:00:04.201Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Heritage Education"}],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"geolocation":[],"id":"50|doi_________::09821844208a5cd6300b2bfb13bca1b9","instance":[{"instanceTypeMapping":[{"originalType":"journal-article","vocabularyName":"openaire::coar_resource_types_3_1"}],"accessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"urn","classname":"urn","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"urn:nbn:nl:ui:13-59-cjhf"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"Digital Object Identifier","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.17632/96bpgw5j9d.1"}],"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"instancetype":{"classid":"0021","classname":"Dataset","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"alternateIdentifier":[],"refereed":{"classid":"0000","classname":"Unknown","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["","http://dx.doi.org/10.17632/96bpgw5j9d.1"]}],"language":{"classid":"und","classname":"Undetermined","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1635434801681,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"http%3A%2F%2Fservices.nod.dans.knaw.nl%2Foa-cerif","datestamp":"2021-08-16T15:29:45Z","harvestDate":"2021-09-25T10:55:00.639Z","identifier":"oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:211323","metadataNamespace":""}},"originalId":["50|DansKnawCris::09821844208a5cd6300b2bfb13bca1b9","oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:211323"],"pid":[],"relevantdate":[],"resourcetype":{"classid":"0021","classname":"0021","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Interdisciplinary sciences"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Interdisciplinary sciences"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Heritage Education"}]} +{"author":[{"affiliation":[],"fullname":"Keijers, D.M.G.","name":"D.M.G.","pid":[],"rank":1,"surname":"Keijers"}],"bestaccessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofcollection":"2021-09-25T10:41:59.767Z","dateoftransformation":"2021-09-25T11:00:19.238Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"onderzoeksrapport"}],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"geolocation":[],"id":"50|DansKnawCris::0dd644304b7116e8e58da3a5e3adc37a","instance":[{"instanceTypeMapping":[{"originalType":"journal-article","vocabularyName":"openaire::coar_resource_types_3_1"}],"accessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"urn","classname":"urn","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"urn:nbn:nl:ui:13-das-fkq"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"Digital Object Identifier","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.17026/dans-xsw-qtnx"}],"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"instancetype":{"classid":"0021","classname":"Dataset","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"alternateIdentifier":[],"refereed":{"classid":"0000","classname":"Unknown","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["","http://dx.doi.org/10.17026/dans-xsw-qtnx"]}],"language":{"classid":"dut/nld","classname":"Dutch; Flemish","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1635434847381,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"http%3A%2F%2Fservices.nod.dans.knaw.nl%2Foa-cerif","datestamp":"2021-08-16T13:53:29Z","harvestDate":"2021-09-25T10:41:59.767Z","identifier":"oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:20759","metadataNamespace":""}},"originalId":["oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:20759","50|DansKnawCris::0dd644304b7116e8e58da3a5e3adc37a"],"pid":[],"relevantdate":[],"resourcetype":{"classid":"0021","classname":"0021","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"PROSPECTIE"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Archaeology"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Plangebied Lange Ekker te Vessem, gemeente Eersel"}]} +{"author":[],"bestaccessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofcollection":"2021-09-25T10:43:13.768Z","dateoftransformation":"2021-09-25T11:01:22.863Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"This find is registered at Portable Antiquities of the Netherlands with number PAN-00054604"}],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"geolocation":[],"id":"50|DansKnawCris::203a27996ddc0fd1948258e5b7dec61c","instance":[{"accessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"urn","classname":"urn","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"urn:nbn:nl:ui:13-a7-hwgy"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"Digital Object Identifier","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.17026/dans-x3z-fsq5"}],"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"instancetype":{"classid":"0019","classname":"Patent","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"alternateIdentifier":[],"refereed":{"classid":"0000","classname":"Unknown","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["","http://dx.doi.org/10.17026/dans-x3z-fsq5"]}],"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1635434508886,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"http%3A%2F%2Fservices.nod.dans.knaw.nl%2Foa-cerif","datestamp":"2021-08-16T14:01:37Z","harvestDate":"2021-09-25T10:43:13.768Z","identifier":"oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:129566","metadataNamespace":""}},"originalId":["oai:services.nod.dans.knaw.nl:Products/dans:oai:easy.dans.knaw.nl:easy-dataset:129566","50|DansKnawCris::203a27996ddc0fd1948258e5b7dec61c"],"pid":[],"relevantdate":[],"resourcetype":{"classid":"0021","classname":"0021","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"early medieval enamelled disc brooch variant A9"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Broader Match: disc brooches"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Broader Match: schijffibula - geemailleerd"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"metal"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"copper alloy"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Temporal coverage: Early Middle Ages C"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Temporal coverage: Early Middle Ages D"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Temporal coverage: 800 until 1000"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Archaeology"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"PAN-00054604 - early medieval enamelled disc brooch variant A9"}]} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/raw/d4science-1-training.xml b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/raw/d4science-1-training.xml new file mode 100644 index 000000000..91f9f9118 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/raw/d4science-1-training.xml @@ -0,0 +1,93 @@ + + + + alessia_____::104c2d4ba8878c16fa824dce5b1bea57 + 12d8f77e-d66f-46f5-8d88-af7db23bc4c9 + 2023-09-08T10:12:35.864+02:00 + alessia_____ + 2023-09-08T11:31:45.692+02:00 + + + + http://data.d4science.org/ctlg/ResourceCatalogue/visual_analytics_for_data_scientists + + + + BRAGHIERI MARCO + + + + Visual Analytics for Data Scientists + + SoBigData++ + + + + + TrainingMaterial + + Participants to this module shall + - Learn the principles and rules underlying the design of visual data + representations and human-computer interactions + - Understand, adapt and apply representative visual analytics methods and systems for diverse types + of data and problems + - Analyse and evaluate the structure and properties + of data to select or devise appropriate methods for data exploration + - Combine visualization, interactive techniques, and computational + processing to develop practical data analysis for problem solving + + (This teaching material on Visual Analytics for Data Scientists is part of a MSc module at City University London). + + The author did not intend to violate any copyright on figures or content. In case you are the legal owner of any copyrighted content, please contact info@sobigdata.eu and we will immediately remove it + + + Visual analytics + + + Slides + Other + PDF + PDF + PDF + PDF + PDF + PDF + PDF + PDF + PDF + PDF + ZIP + + + OPEN + 0010 + + + + other-open + corda__h2020::871042 + + + + + https%3A%2F%2Fapi.d4science.org%2Fcatalogue%2Fitems + + + + + + + false + false + 0.9 + + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/raw/d4science-2-dataset.xml b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/raw/d4science-2-dataset.xml new file mode 100644 index 000000000..48ceb6c13 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/raw/d4science-2-dataset.xml @@ -0,0 +1,72 @@ + + + + alessia_____::028879484548f4e1c630e1c503e35231 + 4fed018e-c2ff-4afa-b7b5-1ca1beebf850 + 2023-09-08T12:14:27.615+02:00 + alessia_____ + 2023-09-08T12:14:51.7+02:00 + + + + http://data.d4science.org/ctlg/ResourceCatalogue/city-to-city_migration + + + + + + Pappalardo, Luca + + 0000-0002-1547-6007 + + + + City-to-city migration + + SoBigData++ + + + 2018-02-15 + + Dataset + + Census data recording the migration of people between metropolitan areas in + the US + + + Human Mobility data + + + + OPEN + 0021 + 2018-02-15 + + + AFL-3.0 + corda__h2020::871042 + + + + + https%3A%2F%2Fapi.d4science.org%2Fcatalogue%2Fitems + + + + + + + false + false + 0.9 + + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/raw/idus_sevilla.xml b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/raw/idus_sevilla.xml new file mode 100644 index 000000000..1bfa3c7c3 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/raw/idus_sevilla.xml @@ -0,0 +1,65 @@ + + +
+ od______3272::6a4d00217a024a46ce9697ce98b13c2a + oai:idus.us.es:11441/118940 + + + + + + 2021-08-20T12:32:32.826Z + 2023-07-04T15:47:55.397Z + od______3272 +
+ + El museo pictorico y escala optica : tomo I : theorica de la pintura en que se describe su origen ... y se aprueban con demonstraciomes mathematicas y filosoficas, sus mas radicales fundamentos + Palomino de Castro y Velasco, Antonio, 1653-1726 + Rovira y Brocandel, Hipólito, 1693-1765 + Palomino de Castro y Velasco, Antonio, 1653-1726 + 2021-08-12T08:59:53Z + 1715 + A 042(a)/063 + application/pdf + https://idus.us.es/handle//11441/118940 + spa + En Madrid : por Lucas Antonio de Bedmar ... : vendese en casa de Don Joseph de Villar y Villanueva, 1715 + info:eu-repo/semantics/book + info:eu-repo/semantics/publishedVersion + 0002 + 1715-01-01 + + opendoar____::3272 + OPEN + + + https://idus.us.es/handle//11441/118940 + + http://creativecommons.org/licenses/by-nc-nd/4.0/ + + + + + http%3A%2F%2Fidus.us.es%2Foai%2Fdriver + oai:idus.us.es:11441/118940 + 2021-08-12T08:59:54Z + http://www.openarchives.org/OAI/2.0/oai_dc/ + + + + false + false + 0.9 + + + + +
\ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/raw/oaf_crossref.xml b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/raw/oaf_crossref.xml new file mode 100644 index 000000000..182820a08 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/raw/oaf_crossref.xml @@ -0,0 +1,68 @@ + + +
+ doi_________::7f0f7807f17db50e5c2b5c452ccaf06d + doi_________::7f0f7807f17db50e5c2b5c452ccaf06d + 2020-08-06T07:04:09.62Z + + + + + + 2020-08-06T07:20:57.911Z + openaire____ +
+ + A case report of serious haemolysis in a glucose-6-phosphate dehydrogenase-deficient COVID-19 patient receiving hydroxychloroquine + Maillart, E. + Leemans, S. + Van Noten, H. + Vandergraesen, T. + Mahadeb, B. + Salaouatchi, M. T. + De Bels, D. + Clevenbergh, P. + + http://dx.doi.org/10.1080/23744235.2020.1774644 + + Informa UK Limited + Crossref + Infectious Diseases + Microbiology (medical) + General Immunology and Microbiology + Infectious Diseases + General Medicine + journal-article + 0001 + 2020-06-04 + + OPEN + + + 10.1080/23744235.2020.1774644 + Infectious Diseases + + + + + file%3A%2F%2F%2Fsrv%2Fclaims%2Frecords%2Fpublication%2Fcrossref + + + + + + + false + false + 0.9 + + + + +
\ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/raw/oaf_record.xml b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/raw/oaf_record.xml index 277578185..492fc9a7a 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/raw/oaf_record.xml +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/raw/oaf_record.xml @@ -47,7 +47,9 @@ provisioning services regulating services supporting services - Research Article + conference paper + http://purl.org/coar/resource_type/c_5794 + info:eu-repo/semantics/article 0001 2017-01-01 diff --git a/dhp-workflows/dhp-graph-mapper/src/test/scala/eu/dnetlib/dhp/enrich/orcid/EnrichOrcidTest.scala b/dhp-workflows/dhp-graph-mapper/src/test/scala/eu/dnetlib/dhp/enrich/orcid/EnrichOrcidTest.scala new file mode 100644 index 000000000..cb05332b2 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/scala/eu/dnetlib/dhp/enrich/orcid/EnrichOrcidTest.scala @@ -0,0 +1,77 @@ +package eu.dnetlib.dhp.enrich.orcid + +import eu.dnetlib.dhp.schema.oaf.{Author, Publication} +import org.apache.spark.sql.{Column, Encoder, Encoders, Row, SparkSession} +import org.junit.jupiter.api.Test +import org.slf4j.{Logger, LoggerFactory} +import org.apache.spark.sql.functions._ + +class EnrichOrcidTest { + + val log: Logger = LoggerFactory.getLogger(getClass) + + def test() = { + val spark = SparkSession.builder().master("local[*]").getOrCreate() +// spark.sparkContext.setLogLevel("ERROR") + +// new SparkEnrichGraphWithOrcidAuthors(null, null, null) +// .enrichResult( +// spark, +// "/Users/sandro/orcid_test/publication", +// "", +// "/tmp/graph/", +// Encoders.bean(classOf[Publication]) +// ) + + val schema = Encoders.bean(classOf[Publication]).schema +// +// val simplifyAuthor = udf((r: Seq[Row]) => { +// r +// .map(k => +// AuthorPid( +// k.getAs[String]("fullname"), +// k.getAs[Seq[Row]]("pid") +// .map(p => Pid(p.getAs[Row]("qualifier").getAs[String]("classid"), p.getAs[String]("value"))) +// .toList +// ) +// ) +// .filter(l => l.pids.nonEmpty) +// .toList +// }) +// +// val wrong_orcid_intersection = udf((a: Seq[Row]) => { +// a.map(author => { +// val pids_with_orcid: Seq[Row] = author +// .getAs[Seq[Row]]("pids") +// .filter(p => +// p.getAs[String]("pidScheme") != null && p.getAs[String]("pidScheme").toLowerCase.contains("orcid") +// ) +// if (pids_with_orcid.exists(p => p.getAs[String]("pidScheme").equals("ORCID"))) { +// if (pids_with_orcid.map(p => p.getAs[String]("pidValue").toLowerCase).distinct.size > 1) { +// AuthorPid( +// author.getAs[String]("fullName"), +// pids_with_orcid.map(p => Pid(p.getAs[String]("pidScheme"), p.getAs[String]("pidValue"))).toList +// ) +// +// } else +// null +// } else +// null +// }).filter(author => author != null) +// }) + + Encoders + import spark.implicits._ + +// val enriched = spark.read +// .schema(schema) +// .json("/Users/sandro/orcid_test/publication_enriched") +// .select(col("id"), explode(col("author")).as("authors")) +// .withColumn("ap", col("authors.pid.qualifier.classid")) +// .withColumn("dp", col("authors.pid.datainfo.provenanceAction.classid")) +// +// .show() + + } + +} diff --git a/dhp-workflows/dhp-graph-provision/pom.xml b/dhp-workflows/dhp-graph-provision/pom.xml index ae8f3b53a..e62fcdf19 100644 --- a/dhp-workflows/dhp-graph-provision/pom.xml +++ b/dhp-workflows/dhp-graph-provision/pom.xml @@ -14,7 +14,7 @@ net.alchim31.maven scala-maven-plugin - 4.0.1 + ${net.alchim31.maven.version} scala-compile-first @@ -37,6 +37,8 @@ -Xmax-classfile-name 200 + true + ${scala.binary.version} ${scala.version} @@ -48,11 +50,11 @@ org.apache.spark - spark-core_2.11 + spark-core_${scala.binary.version} org.apache.spark - spark-sql_2.11 + spark-sql_${scala.binary.version} com.jayway.jsonpath @@ -78,7 +80,7 @@ org.antlr - stringtemplate + ST4 org.apache.solr diff --git a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/XmlConverterJob.java b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/XmlConverterJob.java index 518f41120..6f43ca3f7 100644 --- a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/XmlConverterJob.java +++ b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/XmlConverterJob.java @@ -62,8 +62,8 @@ public class XmlConverterJob { final String outputPath = parser.get("outputPath"); log.info("outputPath: {}", outputPath); - final String isLookupUrl = parser.get("isLookupUrl"); - log.info("isLookupUrl: {}", isLookupUrl); + final String contextApiBaseUrl = parser.get("contextApiBaseUrl"); + log.info("contextApiBaseUrl: {}", contextApiBaseUrl); final SparkConf conf = new SparkConf(); conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer"); @@ -71,7 +71,7 @@ public class XmlConverterJob { runWithSparkSession(conf, isSparkSessionManaged, spark -> { removeOutputDir(spark, outputPath); - convertToXml(spark, inputPath, outputPath, ContextMapper.fromIS(isLookupUrl)); + convertToXml(spark, inputPath, outputPath, ContextMapper.fromAPI(contextApiBaseUrl)); }); } diff --git a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/XmlIndexingJob.java b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/XmlIndexingJob.java index 1560fcbd9..cd401c6cb 100644 --- a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/XmlIndexingJob.java +++ b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/XmlIndexingJob.java @@ -156,6 +156,11 @@ public class XmlIndexingJob { switch (outputFormat) { case SOLR: final String collection = ProvisionConstants.getCollectionName(format); + + // SparkSolr >= 4 + // com.lucidworks.spark.BatchSizeType bt = com.lucidworks.spark.BatchSizeType.NUM_DOCS; + // SolrSupport.indexDocs(zkHost, collection, batchSize, bt, docs.rdd()); + // SparkSolr < 4 SolrSupport.indexDocs(zkHost, collection, batchSize, docs.rdd()); break; case HDFS: diff --git a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/model/XmlInstance.java b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/model/XmlInstance.java index 930eab4c3..22e1df9ce 100644 --- a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/model/XmlInstance.java +++ b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/model/XmlInstance.java @@ -57,6 +57,8 @@ public class XmlInstance implements Serializable { // typed results private String processingchargecurrency; + private String fulltext; + private Qualifier refereed; // peer-review status public String getUrl() { @@ -162,4 +164,12 @@ public class XmlInstance implements Serializable { public void setRefereed(Qualifier refereed) { this.refereed = refereed; } + + public String getFulltext() { + return fulltext; + } + + public void setFulltext(String fulltext) { + this.fulltext = fulltext; + } } diff --git a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/utils/ContextMapper.java b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/utils/ContextMapper.java index bcaf40603..083dbe988 100644 --- a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/utils/ContextMapper.java +++ b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/utils/ContextMapper.java @@ -1,18 +1,22 @@ package eu.dnetlib.dhp.oa.provision.utils; -import java.io.Serializable; -import java.io.StringReader; +import java.io.*; +import java.net.HttpURLConnection; +import java.net.URL; import java.util.HashMap; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Node; import org.dom4j.io.SAXReader; +import org.jetbrains.annotations.NotNull; import org.xml.sax.SAXException; import com.google.common.base.Joiner; +import eu.dnetlib.dhp.common.api.context.*; +import eu.dnetlib.dhp.common.rest.DNetRestClient; import eu.dnetlib.dhp.utils.ISLookupClientFactory; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; @@ -23,6 +27,45 @@ public class ContextMapper extends HashMap implements Serial private static final String XQUERY = "for $x in //RESOURCE_PROFILE[.//RESOURCE_TYPE/@value='ContextDSResourceType']//*[name()='context' or name()='category' or name()='concept'] return "; + public static ContextMapper fromAPI(final String baseURL) throws Exception { + + final ContextMapper contextMapper = new ContextMapper(); + + for (ContextSummary ctx : DNetRestClient + .doGET(String.format("%s/contexts", baseURL), ContextSummaryList.class)) { + + contextMapper.put(ctx.getId(), new ContextDef(ctx.getId(), ctx.getLabel(), "context", ctx.getType())); + + for (CategorySummary cat : DNetRestClient + .doGET(String.format("%s/context/%s?all=true", baseURL, ctx.getId()), CategorySummaryList.class)) { + contextMapper.put(cat.getId(), new ContextDef(cat.getId(), cat.getLabel(), "category", "")); + if (cat.isHasConcept()) { + for (ConceptSummary c : DNetRestClient + .doGET( + String.format("%s/context/category/%s?all=true", baseURL, cat.getId()), + ConceptSummaryList.class)) { + contextMapper.put(c.getId(), new ContextDef(c.getId(), c.getLabel(), "concept", "")); + if (c.isHasSubConcept()) { + for (ConceptSummary cs : c.getConcepts()) { + contextMapper.put(cs.getId(), new ContextDef(cs.getId(), cs.getLabel(), "concept", "")); + if (cs.isHasSubConcept()) { + for (ConceptSummary css : cs.getConcepts()) { + contextMapper + .put( + css.getId(), + new ContextDef(css.getId(), css.getLabel(), "concept", "")); + } + } + } + } + } + } + } + } + return contextMapper; + } + + @Deprecated public static ContextMapper fromIS(final String isLookupUrl) throws DocumentException, ISLookUpException, SAXException { ISLookUpService isLookUp = ISLookupClientFactory.getLookUpService(isLookupUrl); @@ -32,6 +75,7 @@ public class ContextMapper extends HashMap implements Serial return fromXml(sb.toString()); } + @Deprecated public static ContextMapper fromXml(final String xml) throws DocumentException, SAXException { final ContextMapper contextMapper = new ContextMapper(); diff --git a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/utils/XmlRecordFactory.java b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/utils/XmlRecordFactory.java index e88b49de4..4d9d9c341 100644 --- a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/utils/XmlRecordFactory.java +++ b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/utils/XmlRecordFactory.java @@ -31,7 +31,6 @@ import org.dom4j.Node; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; -import org.json4s.Xml; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Joiner; @@ -435,6 +434,24 @@ public class XmlRecordFactory implements Serializable { XmlSerializationUtils .asXmlElement("processingchargecurrency", r.getProcessingchargecurrency().getValue())); } + if (r.getIsGreen() != null) { + metadata + .add(XmlSerializationUtils.asXmlElement("isgreen", Boolean.toString(r.getIsGreen()))); + } + if (r.getOpenAccessColor() != null) { + metadata + .add(XmlSerializationUtils.asXmlElement("openaccesscolor", r.getOpenAccessColor().toString())); + } + if (r.getIsInDiamondJournal() != null) { + metadata + .add( + XmlSerializationUtils + .asXmlElement("isindiamondjournal", Boolean.toString(r.getIsInDiamondJournal()))); + } + if (r.getPubliclyFunded() != null) { + metadata + .add(XmlSerializationUtils.asXmlElement("publiclyfunded", Boolean.toString(r.getPubliclyFunded()))); + } } switch (type) { @@ -1310,6 +1327,9 @@ public class XmlRecordFactory implements Serializable { .map(d -> XmlSerializationUtils.asXmlElement("license", d)) .collect(Collectors.toList())); } + if (StringUtils.isNotBlank(instance.getFulltext())) { + fields.add(XmlSerializationUtils.asXmlElement("fulltext", instance.getFulltext())); + } children .add( @@ -1460,6 +1480,9 @@ public class XmlRecordFactory implements Serializable { Optional .ofNullable(i.getDistributionlocation()) .ifPresent(dl -> instance.getDistributionlocation().add(dl)); + Optional + .ofNullable(i.getFulltext()) + .ifPresent(instance::setFulltext); }); if (instance.getHostedby().size() > 1 diff --git a/dhp-workflows/dhp-graph-provision/src/main/resources/eu/dnetlib/dhp/oa/provision/input_params_xml_converter.json b/dhp-workflows/dhp-graph-provision/src/main/resources/eu/dnetlib/dhp/oa/provision/input_params_xml_converter.json index eda6154d7..653a69ed1 100644 --- a/dhp-workflows/dhp-graph-provision/src/main/resources/eu/dnetlib/dhp/oa/provision/input_params_xml_converter.json +++ b/dhp-workflows/dhp-graph-provision/src/main/resources/eu/dnetlib/dhp/oa/provision/input_params_xml_converter.json @@ -12,9 +12,9 @@ "paramRequired": true }, { - "paramName": "ilu", - "paramLongName": "isLookupUrl", - "paramDescription": "URL of the isLookUp Service", + "paramName": "cau", + "paramLongName": "contextApiBaseUrl", + "paramDescription": "URL of the context API", "paramRequired": true } ] diff --git a/dhp-workflows/dhp-graph-provision/src/main/resources/eu/dnetlib/dhp/oa/provision/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-provision/src/main/resources/eu/dnetlib/dhp/oa/provision/oozie_app/workflow.xml index 2e7b11dde..9eab960f0 100644 --- a/dhp-workflows/dhp-graph-provision/src/main/resources/eu/dnetlib/dhp/oa/provision/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-graph-provision/src/main/resources/eu/dnetlib/dhp/oa/provision/oozie_app/workflow.xml @@ -9,6 +9,10 @@ isLookupUrl URL for the isLookup service
+ + contextApiBaseUrl + context API URL + relPartitions number or partitions for the relations Dataset @@ -589,7 +593,7 @@ --inputPath${workingDir}/join_entities --outputPath${workingDir}/xml - --isLookupUrl${isLookupUrl} + --contextApiBaseUrl${contextApiBaseUrl} diff --git a/dhp-workflows/dhp-graph-provision/src/test/java/eu/dnetlib/dhp/oa/provision/IndexRecordTransformerTest.java b/dhp-workflows/dhp-graph-provision/src/test/java/eu/dnetlib/dhp/oa/provision/IndexRecordTransformerTest.java index ce593cf07..e72883055 100644 --- a/dhp-workflows/dhp-graph-provision/src/test/java/eu/dnetlib/dhp/oa/provision/IndexRecordTransformerTest.java +++ b/dhp-workflows/dhp-graph-provision/src/test/java/eu/dnetlib/dhp/oa/provision/IndexRecordTransformerTest.java @@ -78,6 +78,22 @@ public class IndexRecordTransformerTest { testRecordTransformation(record); } + @Test + void testPeerReviewed() throws IOException, TransformerException { + + final XmlRecordFactory xmlRecordFactory = new XmlRecordFactory(contextMapper, false, + XmlConverterJob.schemaLocation); + + final Publication p = load("publication.json", Publication.class); + + final JoinedEntity je = new JoinedEntity<>(p); + final String record = xmlRecordFactory.build(je); + assertNotNull(record); + SolrInputDocument solrDoc = testRecordTransformation(record); + + assertEquals("true", solrDoc.get("peerreviewed").getValue()); + } + @Test public void testRiunet() throws IOException, TransformerException { @@ -184,7 +200,7 @@ public class IndexRecordTransformerTest { } } - private void testRecordTransformation(final String record) throws IOException, TransformerException { + private SolrInputDocument testRecordTransformation(final String record) throws IOException, TransformerException { final String fields = IOUtils.toString(getClass().getResourceAsStream("fields.xml")); final String xslt = IOUtils.toString(getClass().getResourceAsStream("layoutToRecordTransformer.xsl")); @@ -200,6 +216,8 @@ public class IndexRecordTransformerTest { Assertions.assertNotNull(xmlDoc); System.out.println(xmlDoc); + + return solrDoc; } private T load(final String fileName, final Class clazz) throws IOException { diff --git a/dhp-workflows/dhp-graph-provision/src/test/java/eu/dnetlib/dhp/oa/provision/XmlIndexingJobTest.java b/dhp-workflows/dhp-graph-provision/src/test/java/eu/dnetlib/dhp/oa/provision/XmlIndexingJobTest.java index 6f1956578..a3a140cf6 100644 --- a/dhp-workflows/dhp-graph-provision/src/test/java/eu/dnetlib/dhp/oa/provision/XmlIndexingJobTest.java +++ b/dhp-workflows/dhp-graph-provision/src/test/java/eu/dnetlib/dhp/oa/provision/XmlIndexingJobTest.java @@ -1,9 +1,12 @@ package eu.dnetlib.dhp.oa.provision; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.io.IOException; import java.io.StringReader; import java.net.URI; +import java.util.Map; import org.apache.commons.io.IOUtils; import org.apache.hadoop.io.Text; @@ -11,6 +14,7 @@ import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrInputField; import org.apache.solr.common.params.CommonParams; +import org.apache.solr.common.params.ModifiableSolrParams; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairRDD; import org.apache.spark.api.java.JavaSparkContext; @@ -101,14 +105,38 @@ public class XmlIndexingJobTest extends SolrTest { new XmlIndexingJob(spark, inputPath, FORMAT, batchSize, XmlIndexingJob.OutputFormat.SOLR, null) .run(isLookupClient); - Assertions.assertEquals(0, miniCluster.getSolrClient().commit().getStatus()); + assertEquals(0, miniCluster.getSolrClient().commit().getStatus()); QueryResponse rsp = miniCluster.getSolrClient().query(new SolrQuery().add(CommonParams.Q, "*:*")); - Assertions - .assertEquals( - nRecord, rsp.getResults().getNumFound(), - "the number of indexed records should be equal to the number of input records"); + assertEquals( + nRecord, rsp.getResults().getNumFound(), + "the number of indexed records should be equal to the number of input records"); + + rsp = miniCluster.getSolrClient().query(new SolrQuery().add(CommonParams.Q, "isgreen:true")); + assertEquals( + 0, rsp.getResults().getNumFound(), + "the number of indexed records having isgreen = true"); + + rsp = miniCluster.getSolrClient().query(new SolrQuery().add(CommonParams.Q, "openaccesscolor:bronze")); + assertEquals( + 0, rsp.getResults().getNumFound(), + "the number of indexed records having openaccesscolor = bronze"); + + rsp = miniCluster.getSolrClient().query(new SolrQuery().add(CommonParams.Q, "isindiamondjournal:true")); + assertEquals( + 0, rsp.getResults().getNumFound(), + "the number of indexed records having isindiamondjournal = true"); + + rsp = miniCluster.getSolrClient().query(new SolrQuery().add(CommonParams.Q, "publiclyfunded:true")); + assertEquals( + 0, rsp.getResults().getNumFound(), + "the number of indexed records having publiclyfunded = true"); + + rsp = miniCluster.getSolrClient().query(new SolrQuery().add(CommonParams.Q, "peerreviewed:true")); + assertEquals( + 0, rsp.getResults().getNumFound(), + "the number of indexed records having peerreviewed = true"); } @Test @@ -126,7 +154,7 @@ public class XmlIndexingJobTest extends SolrTest { .map(s -> new SAXReader().read(new StringReader(s)).valueOf(ID_XPATH)) .distinct() .count(); - Assertions.assertEquals(nRecord, xmlIdUnique, "IDs should be unique among input records"); + assertEquals(nRecord, xmlIdUnique, "IDs should be unique among input records"); final String outputPath = workingDir.resolve("outputPath").toAbsolutePath().toString(); new XmlIndexingJob(spark, inputPath, FORMAT, batchSize, XmlIndexingJob.OutputFormat.HDFS, outputPath) @@ -142,7 +170,7 @@ public class XmlIndexingJobTest extends SolrTest { }, Encoders.STRING()) .distinct() .count(); - Assertions.assertEquals(xmlIdUnique, docIdUnique, "IDs should be unique among the output records"); + assertEquals(xmlIdUnique, docIdUnique, "IDs should be unique among the output records"); } diff --git a/dhp-workflows/dhp-graph-provision/src/test/java/eu/dnetlib/dhp/oa/provision/XmlRecordFactoryTest.java b/dhp-workflows/dhp-graph-provision/src/test/java/eu/dnetlib/dhp/oa/provision/XmlRecordFactoryTest.java index 8802b546d..de69795f8 100644 --- a/dhp-workflows/dhp-graph-provision/src/test/java/eu/dnetlib/dhp/oa/provision/XmlRecordFactoryTest.java +++ b/dhp-workflows/dhp-graph-provision/src/test/java/eu/dnetlib/dhp/oa/provision/XmlRecordFactoryTest.java @@ -24,10 +24,7 @@ import eu.dnetlib.dhp.oa.provision.model.RelatedEntity; import eu.dnetlib.dhp.oa.provision.model.RelatedEntityWrapper; import eu.dnetlib.dhp.oa.provision.utils.ContextMapper; import eu.dnetlib.dhp.oa.provision.utils.XmlRecordFactory; -import eu.dnetlib.dhp.schema.oaf.Datasource; -import eu.dnetlib.dhp.schema.oaf.Project; -import eu.dnetlib.dhp.schema.oaf.Publication; -import eu.dnetlib.dhp.schema.oaf.Relation; +import eu.dnetlib.dhp.schema.oaf.*; public class XmlRecordFactoryTest { @@ -35,7 +32,7 @@ public class XmlRecordFactoryTest { .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); @Test - public void testXMLRecordFactory() throws IOException, DocumentException { + void testXMLRecordFactory() throws IOException, DocumentException { final ContextMapper contextMapper = new ContextMapper(); @@ -47,8 +44,6 @@ public class XmlRecordFactoryTest { final String xml = xmlRecordFactory.build(new JoinedEntity<>(p)); - System.out.println(xml); - assertNotNull(xml); final Document doc = new SAXReader().read(new StringReader(xml)); @@ -92,6 +87,16 @@ public class XmlRecordFactoryTest { assertEquals("EOSC::Jupyter Notebook", doc.valueOf("//*[local-name() = 'result']/eoscifguidelines/@code")); + assertEquals(2, Integer.parseInt(doc.valueOf("count(//*[local-name() = 'result']/fulltext)"))); + + assertEquals( + "https://osf.io/preprints/socarxiv/7vgtu/download", + doc.valueOf("//*[local-name() = 'result']/fulltext[1]")); + + assertEquals("true", doc.valueOf("//*[local-name() = 'result']/isgreen/text()")); + assertEquals("bronze", doc.valueOf("//*[local-name() = 'result']/openaccesscolor/text()")); + assertEquals("true", doc.valueOf("//*[local-name() = 'result']/isindiamondjournal/text()")); + assertEquals("true", doc.valueOf("//*[local-name() = 'result']/publiclyfunded/text()")); } @Test @@ -192,4 +197,51 @@ public class XmlRecordFactoryTest { assertEquals("dnet:pid_types", ((Element) pids.get(0)).attribute("schemeid").getValue()); assertEquals("dnet:pid_types", ((Element) pids.get(0)).attribute("schemename").getValue()); } + + @Test + public void testD4ScienceTraining() throws DocumentException, IOException { + final ContextMapper contextMapper = new ContextMapper(); + + final XmlRecordFactory xmlRecordFactory = new XmlRecordFactory(contextMapper, false, + XmlConverterJob.schemaLocation); + + final OtherResearchProduct p = OBJECT_MAPPER + .readValue( + IOUtils.toString(getClass().getResourceAsStream("d4science-1-training.json")), + OtherResearchProduct.class); + + final String xml = xmlRecordFactory.build(new JoinedEntity<>(p)); + + assertNotNull(xml); + + final Document doc = new SAXReader().read(new StringReader(xml)); + + assertNotNull(doc); + System.out.println(doc.asXML()); + + } + + @Test + public void testD4ScienceDataset() throws DocumentException, IOException { + final ContextMapper contextMapper = new ContextMapper(); + + final XmlRecordFactory xmlRecordFactory = new XmlRecordFactory(contextMapper, false, + XmlConverterJob.schemaLocation); + + final OtherResearchProduct p = OBJECT_MAPPER + .readValue( + IOUtils.toString(getClass().getResourceAsStream("d4science-2-dataset.json")), + OtherResearchProduct.class); + + final String xml = xmlRecordFactory.build(new JoinedEntity<>(p)); + + assertNotNull(xml); + + final Document doc = new SAXReader().read(new StringReader(xml)); + + assertNotNull(doc); + System.out.println(doc.asXML()); + + } + } diff --git a/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/d4science-1-training.json b/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/d4science-1-training.json new file mode 100644 index 000000000..3ce397f10 --- /dev/null +++ b/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/d4science-1-training.json @@ -0,0 +1 @@ +{"collectedfrom":[{"key":"10|alessia_____::6332e88a4c7dba6f7743d3a7a0c6ea2c","value":"Alessia","dataInfo":null}],"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1694165542374,"id":"50|alessia_____::104c2d4ba8878c16fa824dce5b1bea57","originalId":["12d8f77e-d66f-46f5-8d88-af7db23bc4c9","50|alessia_____::104c2d4ba8878c16fa824dce5b1bea57"],"pid":[],"dateofcollection":"2023-09-08T10:12:35.864+02:00","dateoftransformation":"2023-09-08T11:31:45.692+02:00","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2023-09-08T10:12:35.864+02:00","altered":true,"baseURL":"https%3A%2F%2Fapi.d4science.org%2Fcatalogue%2Fitems","identifier":"","datestamp":"","metadataNamespace":""}},"measures":null,"processingchargeamount":null,"processingchargecurrency":null,"author":[{"fullname":"BRAGHIERI MARCO","name":"","surname":"","rank":1,"pid":[],"affiliation":[]}],"resulttype":{"classid":"other","classname":"other","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"","classname":"","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Visual analytics","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"Visual Analytics for Data Scientists","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[{"value":"","qualifier":{"classid":"Issued","classname":"Issued","schemeid":"dnet:dataCite_date","schemename":"dnet:dataCite_date"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"description":[{"value":"Participants to this module shall\n - Learn the principles and rules underlying the design of visual data\n representations and human-computer interactions\n - Understand, adapt and apply representative visual analytics methods and systems for diverse types\n of data and problems\n - Analyse and evaluate the structure and properties\n of data to select or devise appropriate methods for data exploration\n - Combine visualization, interactive techniques, and computational\n processing to develop practical data analysis for problem solving\n\n (This teaching material on Visual Analytics for Data Scientists is part of a MSc module at City University London).\n\n The author did not intend to violate any copyright on figures or content. In case you are the legal owner of any copyrighted content, please contact info@sobigdata.eu and we will immediately remove it","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":null,"publisher":{"value":"SoBigData++","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"embargoenddate":null,"source":[],"fulltext":[],"format":[{"value":"Slides","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"Other","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"PDF","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},{"value":"ZIP","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"contributor":[],"resourcetype":{"classid":"TrainingMaterial","classname":"TrainingMaterial","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"coverage":[],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"context":[],"externalReference":[],"instance":[{"license":{"value":"other-open","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes","openAccessRoute":null},"instancetype":{"classid":"0010","classname":"Lecture","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"10|alessia_____::6332e88a4c7dba6f7743d3a7a0c6ea2c","value":"Alessia","dataInfo":null},"url":["http://data.d4science.org/ctlg/ResourceCatalogue/visual_analytics_for_data_scientists"],"distributionlocation":null,"collectedfrom":{"key":"10|alessia_____::6332e88a4c7dba6f7743d3a7a0c6ea2c","value":"Alessia","dataInfo":null},"pid":[],"alternateIdentifier":[],"dateofacceptance":null,"processingchargeamount":null,"processingchargecurrency":null,"refereed":{"classid":"","classname":"","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"measures":null,"fulltext":null}],"eoscifguidelines":[],"contactperson":[],"contactgroup":[],"tool":[]} diff --git a/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/d4science-2-dataset.json b/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/d4science-2-dataset.json new file mode 100644 index 000000000..ea8465e36 --- /dev/null +++ b/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/d4science-2-dataset.json @@ -0,0 +1 @@ +{"collectedfrom":[{"key":"10|alessia_____::6332e88a4c7dba6f7743d3a7a0c6ea2c","value":"Alessia","dataInfo":null}],"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":1694507584675,"id":"50|alessia_____::028879484548f4e1c630e1c503e35231","originalId":["4fed018e-c2ff-4afa-b7b5-1ca1beebf850","50|alessia_____::028879484548f4e1c630e1c503e35231"],"pid":[],"dateofcollection":"2023-09-08T12:14:27.615+02:00","dateoftransformation":"2023-09-08T12:14:51.7+02:00","extraInfo":[],"oaiprovenance":{"originDescription":{"harvestDate":"2023-09-08T12:14:27.615+02:00","altered":true,"baseURL":"https%3A%2F%2Fapi.d4science.org%2Fcatalogue%2Fitems","identifier":"","datestamp":"","metadataNamespace":""}},"measures":null,"processingchargeamount":null,"processingchargecurrency":null,"author":[{"fullname":"Pappalardo, Luca","name":"Luca","surname":"Pappalardo","rank":1,"pid":[{"value":"0000-0002-1547-6007","qualifier":{"classid":"orcid_pending","classname":"Open Researcher and Contributor ID","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"affiliation":[]}],"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"language":{"classid":"","classname":"","schemeid":"dnet:languages","schemename":"dnet:languages"},"country":[],"subject":[{"value":"Human Mobility data","qualifier":{"classid":"","classname":"","schemeid":"","schemename":""},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"title":[{"value":"City-to-city migration","qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"relevantdate":[{"value":"2018-02-15","qualifier":{"classid":"Issued","classname":"Issued","schemeid":"dnet:dataCite_date","schemename":"dnet:dataCite_date"},"dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"description":[{"value":"Census data recording the migration of people between metropolitan areas in\n the US","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}}],"dateofacceptance":{"value":"2018-02-15","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"publisher":{"value":"SoBigData++","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"embargoenddate":null,"source":[],"fulltext":[],"format":[],"contributor":[],"resourcetype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"coverage":[],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"context":[],"externalReference":[],"instance":[{"license":{"value":"AFL-3.0","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes","openAccessRoute":null},"instancetype":{"classid":"0021","classname":"Dataset","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"hostedby":{"key":"10|alessia_____::6332e88a4c7dba6f7743d3a7a0c6ea2c","value":"Alessia","dataInfo":null},"url":["http://data.d4science.org/ctlg/ResourceCatalogue/city-to-city_migration"],"distributionlocation":null,"collectedfrom":{"key":"10|alessia_____::6332e88a4c7dba6f7743d3a7a0c6ea2c","value":"Alessia","dataInfo":null},"pid":[],"alternateIdentifier":[],"dateofacceptance":{"value":"2018-02-15","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"processingchargeamount":null,"processingchargecurrency":null,"refereed":{"classid":"","classname":"","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"measures":null,"fulltext":null}],"eoscifguidelines":[],"storagedate":{"value":"2018-02-15","dataInfo":{"invisible":false,"inferred":false,"deletedbyinference":false,"trust":"0.9","inferenceprovenance":"","provenanceaction":{"classid":"sysimport:crosswalk","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}}},"device":null,"size":null,"version":null,"lastmetadataupdate":null,"metadataversionnumber":null,"geolocation":[]} diff --git a/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/fields.xml b/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/fields.xml index 0bf588a57..ba3fa83df 100644 --- a/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/fields.xml +++ b/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/fields.xml @@ -1,116 +1,137 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/publication.json b/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/publication.json index 901e6d579..a89ec62d5 100644 --- a/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/publication.json +++ b/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/publication.json @@ -485,10 +485,14 @@ }, "extraInfo": [], "format": [], - "fulltext": [], + "fulltext": [ + { "value" : "https://osf.io/preprints/socarxiv/7vgtu/download" }, + { "value" : "https://osf.io/preprints/socarxiv/7vgtu/download2" } + ], "id": "50|CSC_________::0000ec4dd9df012feaafa77e71a0fb4c", "instance": [ { + "fulltext" : "https://osf.io/preprints/socarxiv/7vgtu/download", "measures": [ { "id": "influence", @@ -1044,8 +1048,8 @@ "schemename": "dnet:dataCite_resource" }, "refereed": { - "classid": "0001", - "classname": "peerReviewed", + "classid": "0002", + "classname": "nonPeerReviewed", "schemeid": "dnet:review_levels", "schemename": "dnet:review_levels" }, @@ -1945,5 +1949,9 @@ "schemename": "dnet:provenanceActions" } } - } + }, + "isGreen": true, + "openAccessColor": "bronze", + "isInDiamondJournal": true, + "publiclyFunded": true } \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/solr/conf/exploreTestConfig/managed-schema b/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/solr/conf/exploreTestConfig/managed-schema index 39c811f83..4e85ca3be 100644 --- a/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/solr/conf/exploreTestConfig/managed-schema +++ b/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/solr/conf/exploreTestConfig/managed-schema @@ -219,20 +219,6 @@ - - - - - - - - - - - - - - @@ -368,6 +354,11 @@ + + + + + diff --git a/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/solr/conf/testConfig/managed-schema b/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/solr/conf/testConfig/managed-schema index 977e0b2d7..e191c6223 100644 --- a/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/solr/conf/testConfig/managed-schema +++ b/dhp-workflows/dhp-graph-provision/src/test/resources/eu/dnetlib/dhp/oa/provision/solr/conf/testConfig/managed-schema @@ -365,7 +365,14 @@ + + + + + + + diff --git a/dhp-workflows/dhp-impact-indicators/README.md b/dhp-workflows/dhp-impact-indicators/README.md new file mode 100644 index 000000000..de0ad157c --- /dev/null +++ b/dhp-workflows/dhp-impact-indicators/README.md @@ -0,0 +1,36 @@ +# Ranking Workflow for OpenAIRE Publications + +This project contains the files for running a paper ranking workflow on the openaire graph using apache oozie. +All scripts are written in python and the project setup follows the typical oozie workflow structure: + +- a workflow.xml file containing the workflow specification +- a job.properties file specifying parameter values for the parameters used by the workflow +- a set of python scripts used by the workflow + +**NOTE**: the workflow depends on the external library of ranking scripts called [BiP! Ranker](https://github.com/athenarc/Bip-Ranker). +You can check out a specific tag/release of BIP! Ranker using maven, as described in the following section. + +## Build and deploy + +Use the following command for packaging: + +``` +mvn package -Poozie-package -Dworkflow.source.dir=eu/dnetlib/dhp/oa/graph/impact_indicators -DskipTests +``` + +Deploy and run: +``` +mvn package -Poozie-package,deploy,run -Dworkflow.source.dir=eu/dnetlib/dhp/oa/graph/impact_indicators -DskipTests +``` + +Note: edit the property `bip.ranker.tag` of the `pom.xml` file to specify the tag of [BIP-Ranker](https://github.com/athenarc/Bip-Ranker) that you want to use. + + +Job info and logs: +``` +export OOZIE_URL=http://iis-cdh5-test-m3:11000/oozie +oozie job -info +oozie job -log +``` + +where `jobId` is the id of the job returned by the `run_workflow.sh` script. \ No newline at end of file diff --git a/dhp-workflows/dhp-impact-indicators/pom.xml b/dhp-workflows/dhp-impact-indicators/pom.xml new file mode 100644 index 000000000..a9eb0a4a1 --- /dev/null +++ b/dhp-workflows/dhp-impact-indicators/pom.xml @@ -0,0 +1,62 @@ + + + 4.0.0 + + eu.dnetlib.dhp + dhp-workflows + 1.2.5-SNAPSHOT + + + dhp-impact-indicators + + + 8 + 8 + UTF-8 + + + v1.0.0 + + + + https://github.com/athenarc/Bip-Ranker + scm:git:https://github.com/athenarc/Bip-Ranker.git + + + + + + org.apache.maven.plugins + maven-scm-plugin + 1.8.1 + + connection + tag + ${bip.ranker.tag} + ${project.build.directory}/${oozie.package.file.name}/${oozieAppDir}/bip-ranker + + + + checkout-bip-ranker + prepare-package + + checkout + + + + + + + + + + eu.dnetlib.dhp + dhp-aggregation + ${projectVersion} + compile + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/job.properties b/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/job.properties new file mode 100644 index 000000000..b1598910d --- /dev/null +++ b/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/job.properties @@ -0,0 +1,105 @@ +# The following set of properties are defined in https://support.openaire.eu/projects/openaire/wiki/Hadoop_clusters +# and concern the parameterization required for running workflows on the @GARR cluster + +# --- You can override the following properties (if needed) coming from your ~/.dhp/application.properties --- +# dhp.hadoop.frontend.temp.dir=/home/ilias.kanellos +# dhp.hadoop.frontend.user.name=ilias.kanellos +# dhp.hadoop.frontend.host.name=iis-cdh5-test-gw.ocean.icm.edu.pl +# dhp.hadoop.frontend.port.ssh=22 +# oozieServiceLoc=http://iis-cdh5-test-m3:11000/oozie +# jobTracker=yarnRM +# nameNode=hdfs://nameservice1 +# oozie.execution.log.file.location = target/extract-and-run-on-remote-host.log +# maven.executable=mvn + +# Some memory and driver settings for more demanding tasks +sparkHighDriverMemory=20G +sparkNormalDriverMemory=10G + +sparkHighExecutorMemory=20G +sparkNormalExecutorMemory=10G + +sparkExecutorCores=4 +sparkShufflePartitions=7680 + +# The above is given differently in an example I found online +oozie.action.sharelib.for.spark=spark2 +oozieActionShareLibForSpark2=spark2 +spark2YarnHistoryServerAddress=http://iis-cdh5-test-gw.ocean.icm.edu.pl:18089 +spark2EventLogDir=/user/spark/spark2ApplicationHistory +sparkSqlWarehouseDir=/user/hive/warehouse +hiveMetastoreUris=thrift://iis-cdh5-test-m3.ocean.icm.edu.pl:9083 +# This MAY avoid the no library used error +oozie.use.system.libpath=true +# Some stuff copied from openaire's jobs +spark2ExtraListeners=com.cloudera.spark.lineage.NavigatorAppListener +spark2SqlQueryExecutionListeners=com.cloudera.spark.lineage.NavigatorQueryListener + + +# Some stuff copied from openaire's jobs +spark2ExtraListeners=com.cloudera.spark.lineage.NavigatorAppListener +spark2SqlQueryExecutionListeners=com.cloudera.spark.lineage.NavigatorQueryListener + +# ------------------------------------------------------------------------------ # +# The following set of properties are my own custom ones + +# Based on the page linked to at the start of the file, if we use yarn as a resource manager, its address is given as follows +resourceManager=http://iis-cdh5-test-m2.ocean.icm.edu.pl:8088/cluster + +# current year used when creating graph / by some ranking methods +currentYear=2023 + +# Alpha value for pagerank +pageRankAlpha=0.5 +# AttRank values +attrankAlpha=0.2 +attrankBeta=0.5 +attrankGamma=0.3 +attrankRho=-0.16 +# attrankCurrentYear=2023 +attrankStartYear=2021 + +# Ram values +ramGamma=0.6 +# ramCurrentYear=2023 + +# Convergence error for pagerank +convergenceError=0.000000000001 + +# I think this should be the oozie workflow directory +# oozieWorkflowPath=user/ilias.kanellos/workflow_example/ + +# Directory where json data containing scores will be output +bipScorePath=${workingDir}/openaire_universe_scores/ + +# Directory where dataframes are checkpointed +checkpointDir=${nameNode}/${workingDir}/check/ + +# The directory for the doi-based bip graph +# bipGraphFilePath=${nameNode}/${workingDir}/bipdbv8_graph + +# The folder from which synonyms of openaire-ids are read +# openaireDataInput=${nameNode}/tmp/beta_provision/graph/21_graph_cleaned/ +openaireDataInput=/tmp/prod_provision/graph/18_graph_blacklisted + +# A folder where we will write the openaire to doi mapping +synonymFolder=${nameNode}/${workingDir}/openaireid_to_dois/ + +# This will be where we store the openaire graph input. They told us on GARR to use a directory under /data +openaireGraphInputPath=${nameNode}/${workingDir}/openaire_id_graph + +# The workflow application path +wfAppPath=${oozieTopWfApplicationPath} + +# The following is needed as a property of a workflow +#oozie.wf.application.path=${wfAppPath} +oozie.wf.application.path=${oozieTopWfApplicationPath} + + +# Path where the final output should be? +actionSetOutputPath=${workingDir}/bip_actionsets + +# The directory to store project impact indicators +projectImpactIndicatorsOutput=${workingDir}/project_indicators + +resume=entry-point-decision diff --git a/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/create_openaire_ranking_graph.py b/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/create_openaire_ranking_graph.py new file mode 100644 index 000000000..2b6b4aae9 --- /dev/null +++ b/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/create_openaire_ranking_graph.py @@ -0,0 +1,255 @@ +#!/usr/bin/python3 + +# Create openaire id - openaire id graph from openaire data + +############################################################################################################# +# Program proceeds as follows: +# 1. We read the input folder provided from hdfs. +# This contains subfolders with openaire graph objects and openaire graph relations +# 2. We select all openaire graph objects of interest. We filter out based on visibility +# and inference criteria. We also filter out based on the availability of publication year +# 3. Get reference type dataframes from openaire. Then filter each one of them based on the +# existence of citing and cited in the above filtered dataset. Get only citations +# produced by publication objects, or otherresearchproducts of types: +# [TBD] +# 4. Get objects that don't appear in the relations (from those gathered in step 1) and add +# them to the graph +# 5. Group relations by citing paper and do graph-specific formatting +############################################################################################################# +# ---------- Imports ------------- # +import sys +# import pyspark +# from pyspark import SparkConf, SparkContext +from pyspark.sql import SparkSession +# Functions to effectively handle data +# manipulation for DataFrames +import pyspark.sql.functions as F +# Diagnostics +from timeit import default_timer as timer +# from datetime import timedelta, datetime +# -------------------------------- # + +if len(sys.argv) < 5: + print ("Usage: ./create_openaire_ranking_graph.py ") + sys.exit(0) + +# Inputs will be: + +# 1. Folder where openaire graph is stored +graph_folder = sys.argv[1] +# 2. Current year (this will be needed for filtering) +current_year = int(sys.argv[2]) +# 3. Number of partitions +num_partitions = int(sys.argv[3]) +# 4. where to write output +output_folder = sys.argv[4] + +# Lists of results types we want to inclued in the citations +# valid_result_types = ['publication', 'other'] +valid_result_types = ['publication'] +# list of types in otherresearchproduct which are considered valid for citations +valid_other = [''] + +# Create the spark session +spark = SparkSession.builder.appName('oa ranking graph creation').getOrCreate() +# Set context level logging to WARN +spark.sparkContext.setLogLevel("WARN") + +############################################################################################################################ +# 1. Get the research objects and filter based on conditions. +# These will also be the unique identifiers we should find in the final graph + +# Initialize an empty dataframe +oa_objects_df = None + +# There is a directory structure on hdfs under the provided path. +# We need to parse data from the folders: ["publication", "dataset", "software", "otherresearchproduct"] +# which are rankable oa result objects. + +# Loop subfolders +for sub_folder in ["publication", "dataset", "software", "otherresearchproduct"]: + # Read the json data of the graph into a dataframe initially + if not oa_objects_df: + oa_objects_df = spark.read.json(graph_folder + "/" + sub_folder).select('id', 'resulttype.classname', 'datainfo.deletedbyinference', 'datainfo.invisible', F.year('dateofacceptance.value').alias('year')) + oa_objects_df = oa_objects_df.where( 'datainfo.deletedbyinference = false' ).where( 'datainfo.invisible = false' ).repartition(num_partitions, 'id').cache() + # If we already have data, simply add more to it + else: + sub_df = spark.read.json(graph_folder + "/" + sub_folder).select('id', 'resulttype.classname','datainfo.deletedbyinference', 'datainfo.invisible', F.year('dateofacceptance.value').alias('year')) + sub_df = sub_df.where( 'datainfo.deletedbyinference = false ' ).where( 'datainfo.invisible = false ').cache() + # Add the data to the openaire objects dataframe + oa_objects_df = oa_objects_df.union(sub_df).repartition(num_partitions, 'id').cache() + # Clear memory + sub_df.unpersist(True) + +# Remove those records without year +oa_objects_df = oa_objects_df.where(F.col('year').isNotNull()) + + +# Now replace years where > (current_year+1) with 0 +oa_objects_df = oa_objects_df.withColumn('clean_year', F.when(F.col('year').cast('int') > (current_year+1), 0).otherwise(F.col('year')))\ + .drop('year').withColumnRenamed('clean_year', 'year').repartition(num_partitions, 'id') + +# -------------------------------------------------------------------- # +''' +# Some diagnostics +print ("Min and max years:" ) +oa_objects_df.select(F.max('year')).show() +oa_objects_df.select(F.min('year')).show() + +# This should be slow due to not repartitioning by year +print ("Distinct years:") +oa_objects_df.select('year').distinct().sort(F.col('year')).show(5000, False) + +# Show distinct values of deletedbyinference and invisible to ensure we have the correct data +print ("Distinct deleted by inference:") +oa_objects_df.select('deletedbyinference').distinct().show() +print ("Distinct invisible values:") +oa_objects_df.select('invisible').distinct().show() + +# Output total count +print ("Total num of research objects: " + str(oa_objects_df.count())) +''' +# -------------------------------------------------------------------- # + +# Keep only required fields - we still keep resulttype.classname to +# filter the citation relationships we consider valid +oa_objects_df = oa_objects_df.drop('deletedbyinference').drop('invisible').distinct().cache() + +''' +print ("OA objects Schema:") +oa_objects_df.printSchema() +sys.exit(0) +''' +############################################################################################################################ +# 2. Get the relation objects and filter them based on their existence in the oa_objects_df +# NOTE: we are only interested in citations of type "cites" +# Further, we + +# Deprecated line +# references_df = spark.read.json(graph_folder + "/relation").select(F.col('source').alias('citing'), F.col('target').alias('cited'), 'relClass')\ +# .where( 'relClass = "References"' ).repartition(num_partitions, 'citing').drop('relClass') +# print ("References df has: " + str(references_df.count()) + " entries") + +# Collect only valid citations i.e., invisible = false & deletedbyinference=false +cites_df = spark.read.json(graph_folder + "/relation")\ + .select(F.col('source').alias('citing'), F.col('target').alias('cited'), 'collectedfrom.value', 'relClass', 'dataInfo.deletedbyinference', 'dataInfo.invisible')\ + .where( (F.col('relClass') == "Cites") \ + & (F.col('dataInfo.deletedbyinference') == "false")\ + & (F.col('dataInfo.invisible') == "false"))\ + .drop('dataInfo.deletedbyinference').drop('dataInfo.invisible')\ + .drop('deletedbyinference').drop('invisible')\ + .repartition(num_partitions, 'citing').drop('relClass')\ + .withColumn('collected_lower', F.expr('transform(value, x -> lower(x))'))\ + .drop('collectedfrom.value')\ + .drop('value')\ + .where( + (F.array_contains(F.col('collected_lower'), "opencitations")) + | (F.array_contains(F.col('collected_lower'), "crossref")) + | (F.array_contains(F.col('collected_lower'), "microsoft academic graph")) + ).drop('collected_lower') +# print ("Cited df has: " + str(cites_df.count()) + " entries") + +# DEPRECATED +# cited_by_df = spark.read.json(graph_folder + "/relation").select(F.col('target').alias('citing'), F.col('source').alias('cited'), 'relClass')\ +# .where( 'relClass = "IsCitedBy"' ).repartition(num_partitions, 'citing').drop('relClass') +# print ("Cited by df has: " + str(cited_by_df.count()) + " entries") + +# DEPRECATED +# Keep only relations where citing and cited are in the oa_objects_df +# references_df = references_df.join(oa_objects_df.select('id'), references_df.citing == oa_objects_df.id).drop('id') +# references_df = references_df.repartition(num_partitions, 'cited').join(oa_objects_df.select('id'), references_df.cited == oa_objects_df.id).drop('id').distinct().repartition(num_partitions, 'citing').cache() +# print ("References df now has: " + str(references_df.count()) + " entries") + +cites_df = cites_df.join(oa_objects_df.select('id', 'classname'), cites_df.citing == oa_objects_df.id).where( F.col('classname').isin(valid_result_types) ).drop('id').drop('classname') +cites_df = cites_df.repartition(num_partitions, 'cited').join(oa_objects_df.select('id'), cites_df.cited == oa_objects_df.id).distinct().repartition(num_partitions, 'citing').cache() +# TODO: add here a clause filtering out the citations +# originating from "other" types of research objects which we consider valid + +# print ("Cites df now has: " + str(cites_df.count()) + " entries") + +# DEPRECATED +# cited_by_df = cited_by_df.join(oa_objects_df.select('id'), cited_by_df.citing == oa_objects_df.id).drop('id') +# cited_by_df = cited_by_df.repartition(num_partitions, 'cited').join(oa_objects_df.select('id'), cited_by_df.cited == oa_objects_df.id).drop('id').distinct().repartition(num_partitions, 'citing').cache() +# print ("Cited BY df now has: " + str(cited_by_df.count()) + " entries") + +# DEPRECATED +# Join all the above into a single set +# citations_df = references_df.union(cites_df).distinct().repartition(num_partitions, 'citing').cache() +# Free space +# references_df.unpersist(True) +# cites_df.unpersist(True) + +# citations_df = citations_df.union(cited_by_df).distinct().repartition(num_partitions, 'citing').cache() + +# ALL citations we keep are in the cited_df dataframe +citations_df = cites_df + +''' +# Show schema +print ("Citation schema:") +citations_df.printSchema() +print ("Objects schema:") +oa_objects_df.printSchema() +''' + +# Free space +# cited_by_df.unpersist(True) + +# Show total num of unique citations +''' +num_unique_citations = citations_df.count() +print ("Total unique citations: " + str(num_unique_citations)) +''' +############################################################################################################################ +# 3. Get any potentially missing 'citing' papers from references (these are dangling nodes w/o any outgoing references) +dangling_nodes = oa_objects_df.join(citations_df.select('citing').distinct(), citations_df.citing == oa_objects_df.id, 'left_anti')\ + .select(F.col('id').alias('citing')).withColumn('cited', F.array([F.lit("0")])).repartition(num_partitions, 'citing') +# Count dangling nodes +''' +dangling_num = dangling_nodes.count() +print ("Number of dangling nodes: " + str(dangling_num)) +''' +# print ("Dangling nodes sample:") +# dangling_nodes.show(10, False) +############################################################################################################################ +# 4. Group the citation dataframe by citing doi, and create the cited dois list. Add dangling nodes to the result +graph = citations_df.groupBy('citing').agg(F.collect_set('cited').alias('cited')).repartition(num_partitions, 'citing').cache() +# Free space +citations_df.unpersist(True) + +''' +num_nodes = graph.count() +print ("Entries in graph before dangling nodes:" + str(num_nodes)) +''' +# print ("Sample in graph: ") +# graph.show(10, False) + +# Add dangling nodes +graph = graph.union(dangling_nodes).repartition(num_partitions, 'citing') +# Count current number of results +num_nodes = graph.count() +print ("Num entries after adding dangling nodes: " + str(num_nodes)) + +# Add publication year +graph = graph.join(oa_objects_df, graph.citing == oa_objects_df.id).select('citing', 'cited', 'year').cache() +num_nodes_final = graph.count() +print ("After adding year: " + str(num_nodes_final)) +# print ("Graph sample:") +# graph.show(20, False) +# Calculate initial score of nodes (1/N) +initial_score = float(1)/float(num_nodes_final) +############################################################################################################################ +# 5. Write graph to output file! +print("Writing output to: " + output_folder) + +graph.select('citing', F.concat_ws("|", F.concat_ws(",",'cited'), F.when(F.col('cited').getItem(1) != "0", F.size('cited')).otherwise(F.lit("0")), F.lit(str(initial_score)) ).alias('cited'), 'year').withColumn('prev_pr', F.lit("0")).select('citing', 'cited', 'prev_pr', 'year')\ + .write.mode("overwrite").option("delimiter","\t").csv(output_folder, compression="gzip") + +if num_nodes_final != num_nodes: + print ("WARNING: the number of nodes after keeping only nodes where year is available went from: " + str(num_nodes) + " to " + str(num_nodes_final) + "\n") + print ("Check for any mistakes...") + +############################################################################################################################ +print ("\nDONE!\n\n") +# Wrap up +spark.stop() diff --git a/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/format_ranking_results.py b/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/format_ranking_results.py new file mode 100644 index 000000000..8dbbe3ad3 --- /dev/null +++ b/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/format_ranking_results.py @@ -0,0 +1,795 @@ +# This program reads hdfs directories containing ranking results from openaire's cluster. +# Based on the parameters provided by the user, it will create different types of output files. + +# Modes available are: +# 1. bip +# This will result in output of the form required for bip-finder's update. +# Its lines conform to the following format: +# \t \t \t \t \t \t \t <3y_cc> \t <3y_cc_normalized> \t \t + +# 2. zenodo +# This is the format used in zenodo for Bip-DB. (6 way classes will be named C1, C2, ..., C6) +# This should output two files per ranking method with each line having the following data: +# a. <6-way-class> +# NOTE: this should also run for openaire-id files, hence we should have a total of 4 files per ranking (2 for each type of identifier) +# In 'zenodo' mode the user specifies only a single file, for which zenodo-based output will be created + +# 3. json +# This if the format used to provide openAIRE / claudio with data containing 1 json per identifier +# An example of such a json format follows: +#{ +# "50|dedup_wf_001::08823c8f5c3ca2eae523817036cdda67": [ +# { +# "id": "influence", +# "unit": [ +# { +# "key": "score", +# "value": "5.06690394631e-09" +# }, +# { +# "key": "class", +# "value": "C" +# } +# ] +# }, +# { +# "id": "popularity_alt", +# "unit": [ +# { +# "key": "score", +# "value": "0.0" +# }, +# { +# "key": "class", +# "value": "C" +# } +# ] +# }, +# { +# "id": "popularity", +# "unit": [ +# { +# "key": "score", +# "value": "3.11855618382e-09" +# }, +# { +# "key": "class", +# "value": "C" +# } +# ] +# }, +# { +# "id": "influence_alt", +# "unit": [ +# { +# "key": "score", +# "value": "0.0" +# }, +# { +# "key": "class", +# "value": "C" +# } +# ] +# }, +# { +# "id": "impulse", +# "unit": [ +# { +# "key": "score", +# "value": "0.0" +# }, +# { +# "key": "class", +# "value": "C" +# } +# ] +# } +# ] +#} + + +################################################################################################# +# Imports +import sys +import time + +# Sparksession lib to communicate with cluster via session object +from pyspark.sql import SparkSession + +# Import sql types to define the schema of score output files +from pyspark.sql.types import * + +# Import sql functions with shorthand alias +import pyspark.sql.functions as F +from pyspark.sql.functions import udf + +# Json specific encoding +import json +################################################################################################# +# Clean up directory name +def clean_directory_name(dir_name): + # We have a name with the form *_bip_universe_* or *_graph_universe_* + # and we need to keep the parts in * + dir_name_parts = dir_name.split('_') + dir_name_parts = [part for part in dir_name_parts if ('bip' not in part and 'graph' not in part and 'universe' not in part and 'from' not in part)] + + clean_name = '_'.join(dir_name_parts) + clean_name = clean_name.replace('_id', '_ids') + + clean_name = clean_name.replace('.txt', '') + clean_name = clean_name.replace('.gz', '') + + if 'openaire_ids_' in clean_name: + clean_name = clean_name.replace('openaire_ids_', '') + clean_name = clean_name + '_openaire_ids.txt.gz' + else: + clean_name = clean_name + '.txt.gz/' + + return clean_name +# --------------------------------------------------------------------------------------------- # +# User defined function to escape special characters in a string that will turn into a json key +@udf(StringType()) +def json_encode_key(doi_string): + return json.dumps(doi_string) +################################################################################################# +# --------------------------------------------------------------------------------------------- # +# Arguments from command line and initializations + +# Time initialization +start_time = time.time() + +# Check whether input is correct, otherwise exit with appropriate message +if len(sys.argv) < 2: + print ("Usage: ./format_ranking_results.py ") + sys.exit(0) + +# Define valid modes: +valid_modes = ['json', 'zenodo', 'bip', 'json-5-way'] +# Read mode provided by user +mode = sys.argv[1].strip() + +# If mode isn't valid, exit +if mode not in valid_modes: + print ("Usage: ./format_ranking_results.py \n") + print ("Invalid mode provided. Valid modes: ['zenodo', 'bip', 'json', 'json-5-way']") + sys.exit(0) + + +# Once here, we should be more or less okay to run. + +# Define the spark session object +spark = SparkSession.builder.appName('Parse Scores - ' + str(mode) + ' mode').getOrCreate() +# Set Log Level for spark session +spark.sparkContext.setLogLevel('WARN') + +# Here we define the schema shared by all score output files +# - citation count variants have a slightly different schema, due to their scores being integers +float_schema = StructType([ + StructField('id', StringType(), False), + StructField('score', FloatType(), False), + StructField('normalized_score', FloatType(), False), + StructField('3-way-class', StringType(), False), + StructField('5-way-class', StringType(), False) + ]) + +int_schema = StructType([ + StructField('id', StringType(), False), + StructField('score', IntegerType(), False), + StructField('normalized_score', FloatType(), False), + StructField('3-way-class', StringType(), False), + StructField('5-way-class', StringType(), False) + ]) + +# This schema concerns the output of the file +# containing the number of references of each doi +refs_schema = StructType([ + StructField('id', StringType(), False), + StructField('num_refs', IntegerType(), False), + ]) + +print("--- Initialization time: %s seconds ---" % (time.time() - start_time)) + +# --------------------------------------------------------------------------------------------- # + +# Time the main program execution +start_time = time.time() + +# The following is executed when the user requests the bip-update specific file +if mode == 'bip': + + # Read the remaining input files + if len(sys.argv) < 8: + print ("\n\nInsufficient input for 'bip' mode.") + print ("File list required: <3-year citation count> \n") + sys.exit(0) + + + # Read number of partitions: + num_partitions = int(sys.argv[-1]) + + + pagerank_dir = sys.argv[2] + attrank_dir = sys.argv[3] + cc_dir = sys.argv[4] + impulse_dir = sys.argv[5] + ram_dir = sys.argv[6] + + # NOTE: This was used initial, but @Serafeim told me to remove it since we don't get doi-doi referencew anymore + # In case of emergency, bring this back + # refs_dir = sys.argv[7] + + # Score-specific dataframe + pagerank_df = spark.read.schema(float_schema).option('delimiter', '\t').option('header',True).csv(pagerank_dir).repartition(num_partitions, 'id') + attrank_df = spark.read.schema(float_schema).option('delimiter', '\t').option('header',True).csv(attrank_dir).repartition(num_partitions, 'id') + cc_df = spark.read.schema(int_schema).option('delimiter', '\t').option('header',True).csv(cc_dir).repartition(num_partitions, 'id') + impulse_df = spark.read.schema(int_schema).option('delimiter', '\t').option('header',True).csv(impulse_dir).repartition(num_partitions, 'id') + ram_df = spark.read.schema(float_schema).option('delimiter', '\t').option('header', True).csv(ram_dir).repartition(num_partitions, 'id') + # refs_df = spark.read.schema(refs_schema).option('delimiter', '\t').option('header',True).csv(refs_dir).repartition(num_partitions, 'id') + + # ----------- TESTING CODE --------------- # + # pagerank_entries = pagerank_df.count() + # attrank_entries = attrank_df.count() + # cc_entries = cc_df.count() + # impulse_entries = impulse_df.count() + # ram_entries = ram_df.count() + # refs_entries = refs_df.count() + + # print ("Pagerank:" + str(pagerank_entries)) + # print ("AttRank:" + str(attrank_entries)) + # print ("CC entries: " + str(cc_entries)) + # print ("Impulse entries: " + str(impulse_entries)) + # print ("Refs: " + str(refs_entries)) + # ---------------------------------------- # + + # Create a new dataframe with the required data + results_df = pagerank_df.select('id', F.col('score').alias('pagerank'), F.col('normalized_score').alias('pagerank_normalized')) + # Add attrank dataframe + results_df = results_df.join(attrank_df.select('id', 'score', 'normalized_score'), ['id'])\ + .select(results_df.id, 'pagerank', 'pagerank_normalized', F.col('score').alias('attrank'), F.col('normalized_score').alias('attrank_normalized')) + + # Add citation count dataframe + results_df = results_df.join(cc_df.select('id', 'score', 'normalized_score'), ['id'])\ + .select(results_df.id, 'pagerank', 'pagerank_normalized', 'attrank', 'attrank_normalized', F.col('score').alias('cc'), F.col('normalized_score').alias('cc_normalized')) + + # Add 3-year df + results_df = results_df.join(impulse_df.select('id', 'score', 'normalized_score'), ['id'])\ + .select(results_df.id, 'pagerank', 'pagerank_normalized', 'attrank', 'attrank_normalized', 'cc', 'cc_normalized', \ + F.col('score').alias('3-cc'), F.col('normalized_score').alias('3-cc_normalized')) + + # Add ram df + results_df = results_df.join(ram_df.select('id', 'score'), ['id'])\ + .select(results_df.id, 'pagerank', 'pagerank_normalized', 'attrank', 'attrank_normalized', 'cc', 'cc_normalized',\ + '3-cc', '3-cc_normalized', F.col('score').alias('ram')) + + # Add references - THIS WAS REMOVED SINCE WE DON't GET DOI REFERENCES + # In case of emergency bring back + # results_df = results_df.join(refs_df, ['id']).select(results_df.id, 'pagerank', 'pagerank_normalized', 'attrank', 'attrank_normalized', \ + # 'cc', 'cc_normalized', '3-cc', '3-cc_normalized', 'ram', 'num_refs') + + # Write resulting dataframe to file + output_dir = "/".join(pagerank_dir.split('/')[:-1]) + output_dir = output_dir + '/bip_update_data.txt.gz' + + print("Writing to:" + output_dir) + results_df.write.mode('overwrite').option('delimiter','\t').option('header',True).csv(output_dir, compression='gzip') + +# The following is executed when the user requests the zenodo-specific file +elif mode == 'zenodo': + + # Read the remaining input files + if len(sys.argv) < 9: + print ("\n\nInsufficient input for 'zenodo' mode.") + print ("File list required: <3-year citation count> \n") + sys.exit(0) + + # Read number of partitions: + num_partitions = int(sys.argv[-2]) + graph_type = sys.argv[-1] + + if graph_type not in ['bip', 'openaire']: + graph_type = 'bip' + + pagerank_dir = sys.argv[2] + attrank_dir = sys.argv[3] + cc_dir = sys.argv[4] + impulse_dir = sys.argv[5] + ram_dir = sys.argv[6] + + # Output directory is common for all files + output_dir_prefix = "/".join(pagerank_dir.split('/')[:-1]) + # Method-specific outputs + pagerank_output = clean_directory_name(pagerank_dir.split('/')[-1]) + attrank_output = clean_directory_name(attrank_dir.split('/')[-1]) + cc_output = clean_directory_name(cc_dir.split('/')[-1]) + impulse_output = clean_directory_name(impulse_dir.split('/')[-1]) + ram_output = clean_directory_name(ram_dir.split('/')[-1]) + + # --------- PageRank ----------- # + # Get per file the doi - score - 6-way classes and write it to output + print("Writing to: " + output_dir_prefix + '/' + pagerank_output) + pagerank_df = spark.read.schema(float_schema).option('delimiter', '\t').option('header',True).csv(pagerank_dir).repartition(num_partitions, 'id').select('id', 'score', '5-way-class') + # Replace dataframe class names + pagerank_df = pagerank_df.withColumn('class', F.lit('C6')) + pagerank_df = pagerank_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('E'), F.lit('C5')).otherwise(F.col('class')) ) + pagerank_df = pagerank_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('D'), F.lit('C4')).otherwise(F.col('class')) ) + pagerank_df = pagerank_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('C'), F.lit('C3')).otherwise(F.col('class')) ) + pagerank_df = pagerank_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('B'), F.lit('C2')).otherwise(F.col('class')) ) + pagerank_df = pagerank_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('A'), F.lit('C1')).otherwise(F.col('class')) ) + pagerank_df = pagerank_df.drop('5-way-class') + + if graph_type == 'openaire': + pagerank_df = pagerank_df.where( ~F.col('id').like('10.%') ) + + # Write output + pagerank_df.write.mode('overwrite').option('delimiter','\t').option('header',False).csv(output_dir_prefix + '/' + pagerank_output, compression='gzip') + # --------- AttRank ----------- # + print("Writing to: " + output_dir_prefix + '/' + attrank_output) + attrank_df = spark.read.schema(float_schema).option('delimiter', '\t').option('header',True).csv(attrank_dir).repartition(num_partitions, 'id').select('id', 'score', '5-way-class') + # Replace dataframe class names + attrank_df = attrank_df.withColumn('class', F.lit('C6')) + attrank_df = attrank_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('E'), F.lit('C5')).otherwise(F.col('class')) ) + attrank_df = attrank_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('D'), F.lit('C4')).otherwise(F.col('class')) ) + attrank_df = attrank_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('C'), F.lit('C3')).otherwise(F.col('class')) ) + attrank_df = attrank_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('B'), F.lit('C2')).otherwise(F.col('class')) ) + attrank_df = attrank_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('A'), F.lit('C1')).otherwise(F.col('class')) ) + attrank_df = attrank_df.drop('5-way-class') + + if graph_type == 'openaire': + attrank_df = attrank_df.where( ~F.col('id').like('10.%') ) + + # Write output + attrank_df.write.mode('overwrite').option('delimiter','\t').option('header',False).csv(output_dir_prefix + '/' + attrank_output, compression='gzip') + # --------- Citation Count ----------- # + print("Writing to: " + output_dir_prefix + '/' + cc_output) + cc_df = spark.read.schema(int_schema).option('delimiter', '\t').option('header',True).csv(cc_dir).repartition(num_partitions, 'id').select('id', 'score', '5-way-class') + # Replace dataframe class names + cc_df = cc_df.withColumn('class', F.lit('C5')) + # cc_df = cc_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('E'), F.lit('C5')).otherwise(F.col('class')) ) + cc_df = cc_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('D'), F.lit('C4')).otherwise(F.col('class')) ) + cc_df = cc_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('C'), F.lit('C3')).otherwise(F.col('class')) ) + cc_df = cc_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('B'), F.lit('C2')).otherwise(F.col('class')) ) + cc_df = cc_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('A'), F.lit('C1')).otherwise(F.col('class')) ) + cc_df = cc_df.drop('5-way-class') + + if graph_type == 'openaire': + cc_df = cc_df.where( ~F.col('id').like('10.%') ) + + # Write output + cc_df.write.mode('overwrite').option('delimiter','\t').option('header',False).csv(output_dir_prefix + '/' + cc_output, compression='gzip') + # --------- Impulse ----------- # + print("Writing to: " + output_dir_prefix + '/' + impulse_output) + impulse_df = spark.read.schema(int_schema).option('delimiter', '\t').option('header',True).csv(impulse_dir).repartition(num_partitions, 'id').select('id', 'score', '5-way-class') + # Replace dataframe class names + impulse_df = impulse_df.withColumn('class', F.lit('C5')) + # impulse_df = impulse_df.withColumn('class', F.when(F.col('6-way-class') == F.lit('E'), F.lit('C5')).otherwise(F.col('class')) ) + impulse_df = impulse_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('D'), F.lit('C4')).otherwise(F.col('class')) ) + impulse_df = impulse_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('C'), F.lit('C3')).otherwise(F.col('class')) ) + impulse_df = impulse_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('B'), F.lit('C2')).otherwise(F.col('class')) ) + impulse_df = impulse_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('A'), F.lit('C1')).otherwise(F.col('class')) ) + impulse_df = impulse_df.drop('5-way-class') + + if graph_type == 'openaire': + impulse_df = impulse_df.where( ~F.col('id').like('10.%') ) + + # Write output + impulse_df.write.mode('overwrite').option('delimiter','\t').option('header',False).csv(output_dir_prefix + '/' + impulse_output, compression='gzip') + # --------- RAM ----------- # + print("Writing to: " + output_dir_prefix + '/' + ram_output) + ram_df = spark.read.schema(float_schema).option('delimiter', '\t').option('header', True).csv(ram_dir).repartition(num_partitions, 'id').select('id', 'score', '5-way-class') + # Replace dataframe class names + ram_df = ram_df.withColumn('class', F.lit('C5')) + # ram_df = ram_df.withColumn('class', F.when(F.col('6-way-class') == F.lit('E'), F.lit('C5')).otherwise(F.col('class')) ) + ram_df = ram_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('D'), F.lit('C4')).otherwise(F.col('class')) ) + ram_df = ram_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('C'), F.lit('C3')).otherwise(F.col('class')) ) + ram_df = ram_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('B'), F.lit('C2')).otherwise(F.col('class')) ) + ram_df = ram_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('A'), F.lit('C1')).otherwise(F.col('class')) ) + ram_df = ram_df.drop('5-way-class') + + if graph_type == 'openaire': + ram_df = ram_df.where( ~F.col('id').like('10.%') ) + + # Write output + ram_df.write.mode('overwrite').option('delimiter','\t').option('header',False).csv(output_dir_prefix + '/' + ram_output, compression='gzip') + +# The following produces the json file required by openaire +elif mode == 'json': + + # Read the remaining input files + if len(sys.argv) < 9: + print ("\n\nInsufficient input for 'json' mode.") + print ("File list required: <3-year citation count> \n") + sys.exit(0) + + # Read number of partitions: + num_partitions = int(sys.argv[-2]) + graph_type = sys.argv[-1] + + if graph_type not in ['bip', 'openaire']: + graph_type = 'bip' + + print ("Graph type: " + str(graph_type)) + + # File directories + pagerank_dir = sys.argv[2] + attrank_dir = sys.argv[3] + cc_dir = sys.argv[4] + impulse_dir = sys.argv[5] + ram_dir = sys.argv[6] + + print ("Reading files:") + print (pagerank_dir) + print (attrank_dir) + print (cc_dir) + print (impulse_dir) + print (ram_dir) + + # Score-specific dataframe - read inputs + pagerank_df = spark.read.schema(float_schema).option('delimiter', '\t').option('header',True).csv(pagerank_dir).repartition(num_partitions, 'id') + attrank_df = spark.read.schema(float_schema).option('delimiter', '\t').option('header',True).csv(attrank_dir).repartition(num_partitions, 'id') + cc_df = spark.read.schema(int_schema).option('delimiter', '\t').option('header',True).csv(cc_dir).repartition(num_partitions, 'id') + impulse_df = spark.read.schema(int_schema).option('delimiter', '\t').option('header',True).csv(impulse_dir).repartition(num_partitions, 'id') + ram_df = spark.read.schema(float_schema).option('delimiter', '\t').option('header', True).csv(ram_dir).repartition(num_partitions, 'id') + # --- Join the data of the various scores --- # + + # Create json data for pagerank + pagerank_df = pagerank_df.select('id', F.map_concat( + F.create_map(F.lit('key'), F.lit('score')), + F.create_map(F.lit('value'), F.col('score'))).alias('score_map'), + F.map_concat( + F.create_map(F.lit('key'), F.lit('class')), + F.create_map(F.lit('value'), F.col('3-way-class'))).alias('class_map')) + + pagerank_df = pagerank_df.select('id', F.create_map(F.lit('unit'), F.array([F.col('score_map'), F.col('class_map')]) ).alias('influence_values') ) + pagerank_df = pagerank_df.select('id', F.create_map(F.lit('id'), F.lit('influence')).alias('id_map'), F.col('influence_values')) + pagerank_df = pagerank_df.select('id', F.to_json(F.create_map(F.lit('id'), F.lit('influence'))).alias('influence_key'), F.to_json(F.col('influence_values')).alias('influence_values') ) + pagerank_df = pagerank_df.select('id', F.expr('substring(influence_key, 0, length(influence_key)-1)').alias('influence_key'), 'influence_values') + pagerank_df = pagerank_df.select('id', 'influence_key', F.expr('substring(influence_values, 2, length(influence_values))').alias('influence_values')) + pagerank_df = pagerank_df.select('id', F.concat_ws(', ', F.col('influence_key'), F.col('influence_values')).alias('influence_json')) + + # Create json data for attrank + attrank_df = attrank_df.select('id', F.map_concat( + F.create_map(F.lit('key'), F.lit('score')), + F.create_map(F.lit('value'), F.col('score'))).alias('score_map'), + F.map_concat( + F.create_map(F.lit('key'), F.lit('class')), + F.create_map(F.lit('value'), F.col('3-way-class'))).alias('class_map')) + + attrank_df = attrank_df.select('id', F.create_map(F.lit('unit'), F.array([F.col('score_map'), F.col('class_map')]) ).alias('popularity_values') ) + attrank_df = attrank_df.select('id', F.create_map(F.lit('id'), F.lit('popularity')).alias('id_map'), F.col('popularity_values')) + attrank_df = attrank_df.select('id', F.to_json(F.create_map(F.lit('id'), F.lit('popularity'))).alias('popularity_key'), F.to_json(F.col('popularity_values')).alias('popularity_values') ) + attrank_df = attrank_df.select('id', F.expr('substring(popularity_key, 0, length(popularity_key)-1)').alias('popularity_key'), 'popularity_values') + attrank_df = attrank_df.select('id', 'popularity_key', F.expr('substring(popularity_values, 2, length(popularity_values))').alias('popularity_values')) + attrank_df = attrank_df.select('id', F.concat_ws(', ', F.col('popularity_key'), F.col('popularity_values')).alias('popularity_json')) + + # Create json data for CC + cc_df = cc_df.select('id', F.map_concat( + F.create_map(F.lit('key'), F.lit('score')), + F.create_map(F.lit('value'), F.col('score'))).alias('score_map'), + F.map_concat( + F.create_map(F.lit('key'), F.lit('class')), + F.create_map(F.lit('value'), F.col('3-way-class'))).alias('class_map')) + + cc_df = cc_df.select('id', F.create_map(F.lit('unit'), F.array([F.col('score_map'), F.col('class_map')]) ).alias('influence_alt_values') ) + cc_df = cc_df.select('id', F.create_map(F.lit('id'), F.lit('influence_alt')).alias('id_map'), F.col('influence_alt_values')) + cc_df = cc_df.select('id', F.to_json(F.create_map(F.lit('id'), F.lit('influence_alt'))).alias('influence_alt_key'), F.to_json(F.col('influence_alt_values')).alias('influence_alt_values') ) + cc_df = cc_df.select('id', F.expr('substring(influence_alt_key, 0, length(influence_alt_key)-1)').alias('influence_alt_key'), 'influence_alt_values') + cc_df = cc_df.select('id', 'influence_alt_key', F.expr('substring(influence_alt_values, 2, length(influence_alt_values))').alias('influence_alt_values')) + cc_df = cc_df.select('id', F.concat_ws(', ', F.col('influence_alt_key'), F.col('influence_alt_values')).alias('influence_alt_json')) + + + # Create json data for RAM + ram_df = ram_df.select('id', F.map_concat( + F.create_map(F.lit('key'), F.lit('score')), + F.create_map(F.lit('value'), F.col('score'))).alias('score_map'), + F.map_concat( + F.create_map(F.lit('key'), F.lit('class')), + F.create_map(F.lit('value'), F.col('3-way-class'))).alias('class_map')) + + ram_df = ram_df.select('id', F.create_map(F.lit('unit'), F.array([F.col('score_map'), F.col('class_map')]) ).alias('popularity_alt_values') ) + ram_df = ram_df.select('id', F.create_map(F.lit('id'), F.lit('popularity_alt')).alias('id_map'), F.col('popularity_alt_values')) + ram_df = ram_df.select('id', F.to_json(F.create_map(F.lit('id'), F.lit('popularity_alt'))).alias('popularity_alt_key'), F.to_json(F.col('popularity_alt_values')).alias('popularity_alt_values') ) + ram_df = ram_df.select('id', F.expr('substring(popularity_alt_key, 0, length(popularity_alt_key)-1)').alias('popularity_alt_key'), 'popularity_alt_values') + ram_df = ram_df.select('id', 'popularity_alt_key', F.expr('substring(popularity_alt_values, 2, length(popularity_alt_values))').alias('popularity_alt_values')) + ram_df = ram_df.select('id', F.concat_ws(', ', F.col('popularity_alt_key'), F.col('popularity_alt_values')).alias('popularity_alt_json')) + + # Create json data for impulse + impulse_df = impulse_df.select('id', F.map_concat( + F.create_map(F.lit('key'), F.lit('score')), + F.create_map(F.lit('value'), F.col('score'))).alias('score_map'), + F.map_concat( + F.create_map(F.lit('key'), F.lit('class')), + F.create_map(F.lit('value'), F.col('3-way-class'))).alias('class_map')) + + impulse_df = impulse_df.select('id', F.create_map(F.lit('unit'), F.array([F.col('score_map'), F.col('class_map')]) ).alias('impulse_values') ) + impulse_df = impulse_df.select('id', F.create_map(F.lit('id'), F.lit('impulse')).alias('id_map'), F.col('impulse_values')) + impulse_df = impulse_df.select('id', F.to_json(F.create_map(F.lit('id'), F.lit('impulse'))).alias('impulse_key'), F.to_json(F.col('impulse_values')).alias('impulse_values') ) + impulse_df = impulse_df.select('id', F.expr('substring(impulse_key, 0, length(impulse_key)-1)').alias('impulse_key'), 'impulse_values') + impulse_df = impulse_df.select('id', 'impulse_key', F.expr('substring(impulse_values, 2, length(impulse_values))').alias('impulse_values')) + impulse_df = impulse_df.select('id', F.concat_ws(', ', F.col('impulse_key'), F.col('impulse_values')).alias('impulse_json')) + + #Join dataframes together + results_df = pagerank_df.join(attrank_df, ['id']) + results_df = results_df.join(cc_df, ['id']) + results_df = results_df.join(ram_df, ['id']) + results_df = results_df.join(impulse_df, ['id']) + + print ("Json encoding DOI keys") + # Json encode doi strings + results_df = results_df.select(json_encode_key('id').alias('id'), 'influence_json', 'popularity_json', 'influence_alt_json', 'popularity_alt_json', 'impulse_json') + + # Concatenate individual json columns + results_df = results_df.select('id', F.concat_ws(', ', F.col('influence_json'), F.col('popularity_json'), F.col('influence_alt_json'), F.col('popularity_alt_json'), F.col('impulse_json') ).alias('json_data')) + results_df = results_df.select('id', F.concat_ws('', F.lit('['), F.col('json_data'), F.lit(']')).alias('json_data') ) + + # Filter out non-openaire ids if need + if graph_type == 'openaire': + results_df = results_df.where( ~F.col('id').like('"10.%') ) + + # Concatenate paper id and add opening and ending brackets + results_df = results_df.select(F.concat_ws('', F.lit('{'), F.col('id'), F.lit(': '), F.col('json_data'), F.lit('}')).alias('json') ) + + # -------------------------------------------- # + # Write json output - set the directory here + output_dir = "/".join(pagerank_dir.split('/')[:-1]) + if graph_type == 'bip': + output_dir = output_dir + '/bip_universe_doi_scores/' + else: + output_dir = output_dir + '/openaire_universe_scores/' + + # Write the dataframe + print ("Writing output to: " + output_dir) + results_df.write.mode('overwrite').option('header', False).text(output_dir, compression='gzip') + + # Rename the files to .json.gz now + sc = spark.sparkContext + URI = sc._gateway.jvm.java.net.URI + Path = sc._gateway.jvm.org.apache.hadoop.fs.Path + FileSystem = sc._gateway.jvm.org.apache.hadoop.fs.FileSystem + # Get master prefix from input file path + master_prefix = "/".join(pagerank_dir.split('/')[:5]) + fs = FileSystem.get(URI(master_prefix), sc._jsc.hadoopConfiguration()) + path = Path(output_dir) + print ("Path is:" + path.toString()) + file_list = fs.listStatus(Path(output_dir)) + print ("Renaming files:") + for f in file_list: + initial_filename = f.getPath().toString() + if "part" in initial_filename: + print (initial_filename + " => " + initial_filename.replace(".txt.gz", ".json.gz")) + fs.rename(Path(initial_filename), Path(initial_filename.replace(".txt.gz", ".json.gz"))) + + + ''' + DEPRECATED: + # -------------------------------------------- # + # Write json output + output_dir = "/".join(pagerank_dir.split('/')[:-1]) + if graph_type == 'bip': + output_dir = output_dir + '/bip_universe_doi_scores_txt/' + else: + output_dir = output_dir + '/openaire_universe_scores_txt/' + + print ("Writing output to: " + output_dir) + results_df.write.mode('overwrite').option('header', False).text(output_dir, compression='gzip') + print ("Done writing first results") + # Read results df as json and write it as json file + print ("Reading json input from: " + str(output_dir)) + resulds_df_json = spark.read.json(output_dir).cache() + # Write json to different dir + print ("Writing json output to: " + output_dir.replace("_txt", "")) + resulds_df_json.write.mode('overwrite').json(output_dir.replace("_txt", ""), compression='gzip') + ''' + +# The following produces the json file required by openaire +elif mode == 'json-5-way': + + # Read the remaining input files + if len(sys.argv) < 9: + print ("\n\nInsufficient input for 'json-5-way' mode.") + print ("File list required: <3-year citation count> \n") + sys.exit(0) + + # Read number of partitions: + num_partitions = int(sys.argv[-2]) + graph_type = sys.argv[-1] + + if graph_type not in ['bip', 'openaire']: + graph_type = 'bip' + + # File directories + pagerank_dir = sys.argv[2] + attrank_dir = sys.argv[3] + cc_dir = sys.argv[4] + impulse_dir = sys.argv[5] + ram_dir = sys.argv[6] + + # Score-specific dataframe - read inputs + pagerank_df = spark.read.schema(float_schema).option('delimiter', '\t').option('header',True).csv(pagerank_dir).repartition(num_partitions, 'id') + attrank_df = spark.read.schema(float_schema).option('delimiter', '\t').option('header',True).csv(attrank_dir).repartition(num_partitions, 'id') + cc_df = spark.read.schema(int_schema).option('delimiter', '\t').option('header',True).csv(cc_dir).repartition(num_partitions, 'id') + impulse_df = spark.read.schema(int_schema).option('delimiter', '\t').option('header',True).csv(impulse_dir).repartition(num_partitions, 'id') + ram_df = spark.read.schema(float_schema).option('delimiter', '\t').option('header', True).csv(ram_dir).repartition(num_partitions, 'id') + # --- Join the data of the various scores --- # + + + # Replace 6-way classes with 5-way values + pagerank_df = pagerank_df.withColumn('class', F.lit('C5')) + pagerank_df = pagerank_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('D'), F.lit('C4')).otherwise(F.col('class')) ) + pagerank_df = pagerank_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('C'), F.lit('C3')).otherwise(F.col('class')) ) + pagerank_df = pagerank_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('B'), F.lit('C2')).otherwise(F.col('class')) ) + pagerank_df = pagerank_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('A'), F.lit('C1')).otherwise(F.col('class')) ) + pagerank_df = pagerank_df.drop('5-way-class').withColumnRenamed('class', '5-way-class') + + + # Create json data for pagerank + pagerank_df = pagerank_df.select('id', F.map_concat( + F.create_map(F.lit('key'), F.lit('score')), + F.create_map(F.lit('value'), F.col('score'))).alias('score_map'), + F.map_concat( + F.create_map(F.lit('key'), F.lit('class')), + F.create_map(F.lit('value'), F.col('5-way-class'))).alias('class_map')) + + + + pagerank_df = pagerank_df.select('id', F.create_map(F.lit('unit'), F.array([F.col('score_map'), F.col('class_map')]) ).alias('influence_values') ) + pagerank_df = pagerank_df.select('id', F.create_map(F.lit('id'), F.lit('influence')).alias('id_map'), F.col('influence_values')) + pagerank_df = pagerank_df.select('id', F.to_json(F.create_map(F.lit('id'), F.lit('influence'))).alias('influence_key'), F.to_json(F.col('influence_values')).alias('influence_values') ) + pagerank_df = pagerank_df.select('id', F.expr('substring(influence_key, 0, length(influence_key)-1)').alias('influence_key'), 'influence_values') + pagerank_df = pagerank_df.select('id', 'influence_key', F.expr('substring(influence_values, 2, length(influence_values))').alias('influence_values')) + pagerank_df = pagerank_df.select('id', F.concat_ws(', ', F.col('influence_key'), F.col('influence_values')).alias('influence_json')) + + # Replace 6-way classes with 5 way classes for attrank + attrank_df = attrank_df.withColumn('class', F.lit('C5')) + attrank_df = attrank_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('D'), F.lit('C4')).otherwise(F.col('class')) ) + attrank_df = attrank_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('C'), F.lit('C3')).otherwise(F.col('class')) ) + attrank_df = attrank_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('B'), F.lit('C2')).otherwise(F.col('class')) ) + attrank_df = attrank_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('A'), F.lit('C1')).otherwise(F.col('class')) ) + attrank_df = attrank_df.drop('5-way-class').withColumnRenamed('class', '5-way-class') + + # Create json data for attrank + attrank_df = attrank_df.select('id', F.map_concat( + F.create_map(F.lit('key'), F.lit('score')), + F.create_map(F.lit('value'), F.col('score'))).alias('score_map'), + F.map_concat( + F.create_map(F.lit('key'), F.lit('class')), + F.create_map(F.lit('value'), F.col('5-way-class'))).alias('class_map')) + + attrank_df = attrank_df.select('id', F.create_map(F.lit('unit'), F.array([F.col('score_map'), F.col('class_map')]) ).alias('popularity_values') ) + attrank_df = attrank_df.select('id', F.create_map(F.lit('id'), F.lit('popularity')).alias('id_map'), F.col('popularity_values')) + attrank_df = attrank_df.select('id', F.to_json(F.create_map(F.lit('id'), F.lit('popularity'))).alias('popularity_key'), F.to_json(F.col('popularity_values')).alias('popularity_values') ) + attrank_df = attrank_df.select('id', F.expr('substring(popularity_key, 0, length(popularity_key)-1)').alias('popularity_key'), 'popularity_values') + attrank_df = attrank_df.select('id', 'popularity_key', F.expr('substring(popularity_values, 2, length(popularity_values))').alias('popularity_values')) + attrank_df = attrank_df.select('id', F.concat_ws(', ', F.col('popularity_key'), F.col('popularity_values')).alias('popularity_json')) + + # Replace 6-way classes with 5 way classes for attrank + cc_df = cc_df.withColumn('class', F.lit('C5')) + cc_df = cc_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('D'), F.lit('C4')).otherwise(F.col('class')) ) + cc_df = cc_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('C'), F.lit('C3')).otherwise(F.col('class')) ) + cc_df = cc_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('B'), F.lit('C2')).otherwise(F.col('class')) ) + cc_df = cc_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('A'), F.lit('C1')).otherwise(F.col('class')) ) + cc_df = cc_df.drop('5-way-class').withColumnRenamed('class', '5-way-class') + + # Create json data for CC + cc_df = cc_df.select('id', F.map_concat( + F.create_map(F.lit('key'), F.lit('score')), + F.create_map(F.lit('value'), F.col('score'))).alias('score_map'), + F.map_concat( + F.create_map(F.lit('key'), F.lit('class')), + F.create_map(F.lit('value'), F.col('5-way-class'))).alias('class_map')) + + cc_df = cc_df.select('id', F.create_map(F.lit('unit'), F.array([F.col('score_map'), F.col('class_map')]) ).alias('influence_alt_values') ) + cc_df = cc_df.select('id', F.create_map(F.lit('id'), F.lit('influence_alt')).alias('id_map'), F.col('influence_alt_values')) + cc_df = cc_df.select('id', F.to_json(F.create_map(F.lit('id'), F.lit('influence_alt'))).alias('influence_alt_key'), F.to_json(F.col('influence_alt_values')).alias('influence_alt_values') ) + cc_df = cc_df.select('id', F.expr('substring(influence_alt_key, 0, length(influence_alt_key)-1)').alias('influence_alt_key'), 'influence_alt_values') + cc_df = cc_df.select('id', 'influence_alt_key', F.expr('substring(influence_alt_values, 2, length(influence_alt_values))').alias('influence_alt_values')) + cc_df = cc_df.select('id', F.concat_ws(', ', F.col('influence_alt_key'), F.col('influence_alt_values')).alias('influence_alt_json')) + + # Replace 6-way classes with 5 way classes for attrank + ram_df = ram_df.withColumn('class', F.lit('C5')) + ram_df = ram_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('D'), F.lit('C4')).otherwise(F.col('class')) ) + ram_df = ram_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('C'), F.lit('C3')).otherwise(F.col('class')) ) + ram_df = ram_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('B'), F.lit('C2')).otherwise(F.col('class')) ) + ram_df = ram_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('A'), F.lit('C1')).otherwise(F.col('class')) ) + ram_df = ram_df.drop('5-way-class').withColumnRenamed('class', '5-way-class') + + # Create json data for RAM + ram_df = ram_df.select('id', F.map_concat( + F.create_map(F.lit('key'), F.lit('score')), + F.create_map(F.lit('value'), F.col('score'))).alias('score_map'), + F.map_concat( + F.create_map(F.lit('key'), F.lit('class')), + F.create_map(F.lit('value'), F.col('5-way-class'))).alias('class_map')) + + ram_df = ram_df.select('id', F.create_map(F.lit('unit'), F.array([F.col('score_map'), F.col('class_map')]) ).alias('popularity_alt_values') ) + ram_df = ram_df.select('id', F.create_map(F.lit('id'), F.lit('popularity_alt')).alias('id_map'), F.col('popularity_alt_values')) + ram_df = ram_df.select('id', F.to_json(F.create_map(F.lit('id'), F.lit('popularity_alt'))).alias('popularity_alt_key'), F.to_json(F.col('popularity_alt_values')).alias('popularity_alt_values') ) + ram_df = ram_df.select('id', F.expr('substring(popularity_alt_key, 0, length(popularity_alt_key)-1)').alias('popularity_alt_key'), 'popularity_alt_values') + ram_df = ram_df.select('id', 'popularity_alt_key', F.expr('substring(popularity_alt_values, 2, length(popularity_alt_values))').alias('popularity_alt_values')) + ram_df = ram_df.select('id', F.concat_ws(', ', F.col('popularity_alt_key'), F.col('popularity_alt_values')).alias('popularity_alt_json')) + + # Replace 6-way classes with 5 way classes for attrank + impulse_df = impulse_df.withColumn('class', F.lit('C5')) + impulse_df = impulse_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('D'), F.lit('C4')).otherwise(F.col('class')) ) + impulse_df = impulse_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('C'), F.lit('C3')).otherwise(F.col('class')) ) + impulse_df = impulse_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('B'), F.lit('C2')).otherwise(F.col('class')) ) + impulse_df = impulse_df.withColumn('class', F.when(F.col('5-way-class') == F.lit('A'), F.lit('C1')).otherwise(F.col('class')) ) + impulse_df = impulse_df.drop('5-way-class').withColumnRenamed('class', '5-way-class') + + # Create json data for impulse + impulse_df = impulse_df.select('id', F.map_concat( + F.create_map(F.lit('key'), F.lit('score')), + F.create_map(F.lit('value'), F.col('score'))).alias('score_map'), + F.map_concat( + F.create_map(F.lit('key'), F.lit('class')), + F.create_map(F.lit('value'), F.col('5-way-class'))).alias('class_map')) + + impulse_df = impulse_df.select('id', F.create_map(F.lit('unit'), F.array([F.col('score_map'), F.col('class_map')]) ).alias('impulse_values') ) + impulse_df = impulse_df.select('id', F.create_map(F.lit('id'), F.lit('impulse')).alias('id_map'), F.col('impulse_values')) + impulse_df = impulse_df.select('id', F.to_json(F.create_map(F.lit('id'), F.lit('impulse'))).alias('impulse_key'), F.to_json(F.col('impulse_values')).alias('impulse_values') ) + impulse_df = impulse_df.select('id', F.expr('substring(impulse_key, 0, length(impulse_key)-1)').alias('impulse_key'), 'impulse_values') + impulse_df = impulse_df.select('id', 'impulse_key', F.expr('substring(impulse_values, 2, length(impulse_values))').alias('impulse_values')) + impulse_df = impulse_df.select('id', F.concat_ws(', ', F.col('impulse_key'), F.col('impulse_values')).alias('impulse_json')) + + #Join dataframes together + results_df = pagerank_df.join(attrank_df, ['id']) + results_df = results_df.join(cc_df, ['id']) + results_df = results_df.join(ram_df, ['id']) + results_df = results_df.join(impulse_df, ['id']) + + print ("Json encoding DOI keys") + # Json encode doi strings + results_df = results_df.select(json_encode_key('id').alias('id'), 'influence_json', 'popularity_json', 'influence_alt_json', 'popularity_alt_json', 'impulse_json') + + # Concatenate individual json columns + results_df = results_df.select('id', F.concat_ws(', ', F.col('influence_json'), F.col('popularity_json'), F.col('influence_alt_json'), F.col('popularity_alt_json'), F.col('impulse_json') ).alias('json_data')) + results_df = results_df.select('id', F.concat_ws('', F.lit('['), F.col('json_data'), F.lit(']')).alias('json_data') ) + + # Filter out non-openaire ids if need + if graph_type == 'openaire': + results_df = results_df.where( ~F.col('id').like('10.%') ) + + # Concatenate paper id and add opening and ending brackets + results_df = results_df.select(F.concat_ws('', F.lit('{'), F.col('id'), F.lit(': '), F.col('json_data'), F.lit('}')).alias('json') ) + + # TEST output and count + # results_df.show(20, False) + # print ("Results #" + str(results_df.count())) + + # -------------------------------------------- # + # Write json output + # -------------------------------------------- # + # Write json output - set the directory here + output_dir = "/".join(pagerank_dir.split('/')[:-1]) + if graph_type == 'bip': + output_dir = output_dir + '/bip_universe_doi_scores/' + else: + output_dir = output_dir + '/openaire_universe_scores/' + + # Write the dataframe + print ("Writing output to: " + output_dir) + results_df.write.mode('overwrite').option('header', False).text(output_dir, compression='gzip') + + # Rename the files to .json.gz now + sc = spark.sparkContext + URI = sc._gateway.jvm.java.net.URI + Path = sc._gateway.jvm.org.apache.hadoop.fs.Path + FileSystem = sc._gateway.jvm.org.apache.hadoop.fs.FileSystem + # Get master prefix from input file path + master_prefix = "/".join(pagerank_dir.split('/')[:5]) + fs = FileSystem.get(URI(master_prefix), sc._jsc.hadoopConfiguration()) + path = Path(output_dir) + print ("Path is:" + path.toString()) + file_list = fs.listStatus(Path(output_dir)) + print ("Renaming files:") + for f in file_list: + initial_filename = f.getPath().toString() + if "part" in initial_filename: + print (initial_filename + " => " + initial_filename.replace(".txt.gz", ".json.gz")) + fs.rename(Path(initial_filename), Path(initial_filename.replace(".txt.gz", ".json.gz"))) + +# Close spark session +spark.stop() + +print("--- Main program execution time: %s seconds ---" % (time.time() - start_time)) +print("--- Finished --- \n\n") + diff --git a/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/get_ranking_files.sh b/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/get_ranking_files.sh new file mode 100644 index 000000000..4d0fedba9 --- /dev/null +++ b/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/get_ranking_files.sh @@ -0,0 +1,14 @@ +ranking_results_folder=$1; + +pr_file=`hdfs dfs -ls ${ranking_results_folder}/ | grep "/PR_.*" | grep -o "PR.*"`; +attrank_file=`hdfs dfs -ls ${ranking_results_folder}/ | grep "/AttRank.*" | grep -o "AttRank.*"`; +cc_file=`hdfs dfs -ls ${ranking_results_folder}/ | grep "/CC_.*" | grep -o "CC.*"`; +impulse_file=`hdfs dfs -ls ${ranking_results_folder}/ | grep "/3-year_.*" | grep -o "3-year.*"`; +ram_file=`hdfs dfs -ls ${ranking_results_folder}/ | grep "/RAM_.*" | grep -o "RAM.*"`; + +echo "pr_file=${pr_file}"; +echo "attrank_file=${attrank_file}"; +echo "cc_file=${cc_file}"; +echo "impulse_file=${impulse_file}"; +echo "ram_file=${ram_file}"; +# echo "TEST=`hdfs dfs -ls ${ranking_results_folder}/`"; diff --git a/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/get_score_limits.sh b/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/get_score_limits.sh new file mode 100644 index 000000000..6d4161d7f --- /dev/null +++ b/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/get_score_limits.sh @@ -0,0 +1,63 @@ +#/usr/bin/bash + +# Read log files from ranking scripts and create a two-line file +# with score limits for the various measures. To be used by Kleanthis + +attrank_file=$(ls *attrank*.log); +pr_file=$(ls *pagerank*.log) +ram_file=$(ls *ram*.log); +cc_file=$(ls *cc*.log); +impulse_file=$(ls *impulse*.log); + +echo +echo "-----------------------------" +echo "Attrank file:${attrank_file}"; +echo "PageRank file:${pr_file}"; +echo "RAM file:${ram_file}"; +echo "CC file:${cc_file}"; +echo "Impulse file:${impulse_file}"; +echo "-----------------------------" +echo +echo + +# output file will be called score_limits.csv +echo -e "influence_top001\tinfluence_top01\tinfluence_top1\tinfluence_top10\tpopularity_top001\tpopularity_top01\tpopularity_top1\tpopularity_top10\timpulse_top001\timpulse_top01\timpulse_top1\timpulse_top10\tcc_top001\tcc_top01\tcc_top1\tcc_top10" > score_limits.csv +# ---------------------------------------------------- # +# Get respective score limits (we don't need RAM) +inf_001=$(grep "^0.01%" ${pr_file} | cut -f 2); +inf_01=$(grep "^0.1%" ${pr_file} | cut -f 2); +inf_1=$(grep "^1%" ${pr_file} | cut -f 2); +inf_10=$(grep "^10%" ${pr_file} | cut -f 2); +echo "Influnence limits:" +echo -e "${inf_001}\t${inf_01}\t${inf_1}\t${inf_10}"; +# ---------------------------------------------------- # +pop_001=$(grep "^0.01%" ${attrank_file} | cut -f 2); +pop_01=$(grep "^0.1%" ${attrank_file} | cut -f 2); +pop_1=$(grep "^1%" ${attrank_file} | cut -f 2); +pop_10=$(grep "^10%" ${attrank_file} | cut -f 2); +echo "Popularity limits:"; +echo -e "${pop_001}\t${pop_01}\t${pop_1}\t${pop_10}"; +# ---------------------------------------------------- # +imp_001=$(grep "^0.01%" ${impulse_file} | cut -f 2); +imp_01=$(grep "^0.1%" ${impulse_file} | cut -f 2); +imp_1=$(grep "^1%" ${impulse_file} | cut -f 2); +imp_10=$(grep "^10%" ${impulse_file} | cut -f 2); +echo "Popularity limits:"; +echo -e "${imp_001}\t${imp_01}\t${imp_1}\t${imp_10}"; +# ---------------------------------------------------- # +cc_001=$(grep "^0.01%" ${cc_file} | cut -f 2); +cc_01=$(grep "^0.1%" ${cc_file} | cut -f 2); +cc_1=$(grep "^1%" ${cc_file} | cut -f 2); +cc_10=$(grep "^10%" ${cc_file} | cut -f 2); +echo "Popularity limits:"; +echo -e "${cc_001}\t${cc_01}\t${cc_1}\t${cc_10}"; +# ---------------------------------------------------- # + +echo -e "${inf_001}\t${inf_01}\t${inf_1}\t${inf_10}\t${pop_001}\t${pop_01}\t${pop_1}\t${pop_10}\t${imp_001}\t${imp_01}\t${imp_1}\t${imp_10}\t${cc_001}\t${cc_01}\t${cc_1}\t${cc_10}" >> score_limits.csv + +echo +echo "score_limits.csv contents:" +cat score_limits.csv + +echo; +echo; diff --git a/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/map_openaire_ids_to_dois.py b/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/map_openaire_ids_to_dois.py new file mode 100644 index 000000000..7997eec82 --- /dev/null +++ b/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/map_openaire_ids_to_dois.py @@ -0,0 +1,60 @@ +import json +import sys +from pyspark.sql import SparkSession +from pyspark import SparkConf, SparkContext + +if len(sys.argv) != 3: + print("Usage: map_openaire_ids_to_dois.py ") + sys.exit(-1) + +conf = SparkConf().setAppName('BIP!: Map OpenAIRE IDs to DOIs') +sc = SparkContext(conf = conf) +spark = SparkSession.builder.appName('BIP!: Map OpenAIRE IDs to DOIs').getOrCreate() +sc.setLogLevel('OFF') + +src_dir = sys.argv[1] +output = sys.argv[2] + +# src_dir = "/tmp/beta_provision/graph/21_graph_cleaned/" +# output = '/tmp/openaireid_to_dois/' + +def transform(doc): + + # get publication year from 'doc.dateofacceptance.value' + dateofacceptance = doc.get('dateofacceptance', {}).get('value') + + year = 0 + + if (dateofacceptance is not None): + year = dateofacceptance.split('-')[0] + + # for each pid get 'pid.value' if 'pid.qualifier.classid' equals to 'doi' + dois = [ pid['value'] for pid in doc.get('pid', []) if (pid.get('qualifier', {}).get('classid') == 'doi' and pid['value'] is not None)] + + num_dois = len(dois) + + # exlcude openaire ids that do not correspond to DOIs + if (num_dois == 0): + return None + + fields = [ doc['id'], str(num_dois), chr(0x02).join(dois), str(year) ] + + return '\t'.join([ v.encode('utf-8') for v in fields ]) + +docs = None + +for result_type in ["publication", "dataset", "software", "otherresearchproduct"]: + + tmp = sc.textFile(src_dir + result_type).map(json.loads) + + if (docs is None): + docs = tmp + else: + # append all result types in one RDD + docs = docs.union(tmp) + +docs = docs.filter(lambda d: d.get('dataInfo', {}).get('deletedbyinference') == False and d.get('dataInfo', {}).get('invisible') == False) + +docs = docs.map(transform).filter(lambda d: d is not None) + +docs.saveAsTextFile(output) diff --git a/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/map_scores_to_dois.py b/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/map_scores_to_dois.py new file mode 100755 index 000000000..f6a8e9996 --- /dev/null +++ b/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/map_scores_to_dois.py @@ -0,0 +1,168 @@ +#!/usr/bin/python +# This program reads the openaire to doi mapping from the ${synonymFolder} of the workflow +# and uses this mapping to create doi-based score files in the format required by BiP! DB. +# This is done by reading each openaire-id based ranking file and joining the openaire based +# score and classes to all the corresponding dois. +################################################################################################# +# Imports +import sys + +# Sparksession lib to communicate with cluster via session object +from pyspark.sql import SparkSession + +# Import sql types to define schemas +from pyspark.sql.types import * + +# Import sql functions with shorthand alias +import pyspark.sql.functions as F + +from pyspark.sql.functions import max +# from pyspark.sql.functions import udf +################################################################################################# +################################################################################################# +# Clean up directory name - no longer needed in final workflow version +''' +def clean_directory_name(dir_name): + # We have a name with the form *_bip_universe_* or *_graph_universe_* + # and we need to keep the parts in * + + + dir_name_parts = dir_name.split('_') + dir_name_parts = [part for part in dir_name_parts if ('bip' not in part and 'graph' not in part and 'universe' not in part and 'from' not in part)] + + dir_name = dir_name.replace("openaire_id_graph", "openaire_ids") + clean_name = dir_name + ".txt.gz" + + # clean_name = '_'.join(dir_name_parts) + + # if '_ids' not in clean_name: + # clean_name = clean_name.replace('id_', 'ids_') + + # clean_name = clean_name.replace('.txt', '') + # clean_name = clean_name.replace('.gz', '') + + # if 'openaire_ids_' in clean_name: + # clean_name = clean_name.replace('openaire_ids_', '') + # clean_name = clean_name + '.txt.gz' + # else: + # clean_name = clean_name + '.txt.gz' + + return clean_name +''' +################################################################################################# +if len(sys.argv) < 3: + print ("Usage: ./map_scores_to_dois.py <...etc...>") + sys.exit(-1) + +# Read arguments +synonyms_folder = sys.argv[1] +num_partitions = int(sys.argv[2]) +input_file_list = [argument.replace("_openaire_id_graph", "").replace("_openaire_id_graph_", "") + "_openaire_ids.txt.gz" for argument in sys.argv[3:]] +# input_file_list = [clean_directory_name(item) for item in input_file_list] + +# Prepare output specific variables +output_file_list = [item.replace("_openaire_ids", "") for item in input_file_list] +output_file_list = [item + ".txt.gz" if not item.endswith(".txt.gz") else item for item in output_file_list] + +# --- INFO MESSAGES --- # +print ("\n\n----------------------------") +print ("Mpping openaire ids to DOIs") +print ("Reading input from: " + synonyms_folder) +print ("Num partitions: " + str(num_partitions)) +print ("Input files:" + " -- ".join(input_file_list)) +print ("Output files: " + " -- ".join(output_file_list)) +print ("----------------------------\n\n") +####################################################################################### +# We weill define the following schemas: +# --> the schema of the openaire - doi mapping file [string - int - doi_list] (the separator of the doi-list is a non printable character) +# --> a schema for floating point ranking scores [string - float - string] (the latter string is the class) +# --> a schema for integer ranking scores [string - int - string] (the latter string is the class) + +float_schema = StructType([ + StructField('id', StringType(), False), + StructField('score', FloatType(), False), + StructField('class', StringType(), False) + ]) + +int_schema = StructType([ + StructField('id', StringType(), False), + StructField('score', IntegerType(), False), + StructField('class', StringType(), False) + ]) + +# This schema concerns the output of the file +# containing the number of references of each doi +synonyms_schema = StructType([ + StructField('id', StringType(), False), + StructField('num_synonyms', IntegerType(), False), + StructField('doi_list', StringType(), False), + ]) +####################################################################################### +# Start spark session +spark = SparkSession.builder.appName('Map openaire scores to DOIs').getOrCreate() +# Set Log Level for spark session +spark.sparkContext.setLogLevel('WARN') +####################################################################################### +# MAIN Program + +# Read and repartition the synonym folder - also cache it since we will need to perform multiple joins +synonym_df = spark.read.schema(synonyms_schema).option('delimiter', '\t').csv(synonyms_folder) +synonym_df = synonym_df.select('id', F.split(F.col('doi_list'), chr(0x02)).alias('doi_list')) +synonym_df = synonym_df.select('id', F.explode('doi_list').alias('doi')).repartition(num_partitions, 'id').cache() + +# TESTING +# print ("Synonyms: " + str(synonym_df.count())) +# print ("DF looks like this:" ) +# synonym_df.show(1000, False) + +print ("\n\n-----------------------------") +# Now we need to join the score files on the openaire-id with the synonyms and then keep +# only doi - score - class and write this to the output +for offset, input_file in enumerate(input_file_list): + + print ("Mapping scores from " + input_file) + + # Select correct schema + schema = int_schema + if "attrank" in input_file.lower() or "pr" in input_file.lower() or "ram" in input_file.lower(): + schema = float_schema + + # Load file to dataframe + ranking_df = spark.read.schema(schema).option('delimiter', '\t').csv(input_file).repartition(num_partitions, 'id') + + # Get max score + max_score = ranking_df.select(max('score').alias('max')).collect()[0]['max'] + print ("Max Score for " + str(input_file) + " is " + str(max_score)) + + # TESTING + # print ("Loaded df sample:") + # ranking_df.show(1000, False) + + # Join scores to synonyms and keep required fields + doi_score_df = synonym_df.join(ranking_df, ['id']).select('doi', 'score', 'class').repartition(num_partitions, 'doi').cache() + # Write output + output_file = output_file_list[offset] + print ("Writing to: " + output_file) + doi_score_df.write.mode('overwrite').option('delimiter','\t').option('header',False).csv(output_file, compression='gzip') + + # Creata another file for the bip update process + ranking_df = ranking_df.select('id', 'score', F.lit(F.col('score')/max_score).alias('normalized_score'), 'class', F.col('class').alias('class_dup')) + doi_score_df = synonym_df.join(ranking_df, ['id']).select('doi', 'score', 'normalized_score', 'class', 'class_dup').repartition(num_partitions, 'doi').cache() + output_file = output_file.replace(".txt.gz", "_for_bip_update.txt.gz") + print ("Writing bip update to: " + output_file) + doi_score_df.write.mode('overwrite').option('delimiter','\t').option('header',False).csv(output_file, compression='gzip') + + + # Free memory? + ranking_df.unpersist(True) + +print ("-----------------------------") +print ("\n\nFinished!\n\n") + + + + + + + + diff --git a/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/projects_impact.py b/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/projects_impact.py new file mode 100644 index 000000000..d60f86e88 --- /dev/null +++ b/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/projects_impact.py @@ -0,0 +1,108 @@ +import sys +from pyspark.sql import SparkSession +from pyspark import SparkConf, SparkContext +import pyspark.sql.functions as F +from pyspark.sql.types import StringType, IntegerType, StructType, StructField + +if len(sys.argv) < 8: + print("Usage: projects_impact.py ") + sys.exit(-1) + +appName = 'Project Impact Indicators' +conf = SparkConf().setAppName(appName) +sc = SparkContext(conf = conf) +spark = SparkSession.builder.appName(appName).getOrCreate() +sc.setLogLevel('OFF') + +# input parameters +relations_fd = sys.argv[1] +influence_fd = sys.argv[2] +popularity_fd = sys.argv[3] +cc_fd = sys.argv[4] +impulse_fd = sys.argv[5] +num_partitions = int(sys.argv[6]) +output_dir = sys.argv[7] + +# schema for impact indicator files +impact_files_schema = StructType([ + StructField('resultId', StringType(), False), + StructField('score', IntegerType(), False), + StructField('class', StringType(), False), +]) + +# list of impact indicators +impact_indicators = [ + ('influence', influence_fd, 'class'), + ('popularity', popularity_fd, 'class'), + ('impulse', impulse_fd, 'score'), + ('citation_count', cc_fd, 'score') +] + +''' + * Read impact indicator file and return a dataframe with the following schema: + * resultId: String + * indicator_name: Integer +''' +def read_df(fd, indicator_name, column_name): + return spark.read.schema(impact_files_schema)\ + .option('delimiter', '\t')\ + .option('header', False)\ + .csv(fd)\ + .select('resultId', F.col(column_name).alias(indicator_name))\ + .repartition(num_partitions, 'resultId') + +# Print dataframe schema, first 5 rows, and count +def print_df(df): + df.show(50) + df.printSchema() + print(df.count()) + +# Sets a null value to the column if the value is equal to the given value +def set_class_value_to_null(column, value): + return F.when(column != value, column).otherwise(F.lit(None)) + +# load and filter Project-to-Result relations +print("Reading relations") +relations = spark.read.json(relations_fd)\ + .select(F.col('source').alias('projectId'), F.col('target').alias('resultId'), 'relClass', 'dataInfo.deletedbyinference', 'dataInfo.invisible')\ + .where( (F.col('relClass') == 'produces') \ + & (F.col('deletedbyinference') == "false")\ + & (F.col('invisible') == "false"))\ + .drop('deletedbyinference')\ + .drop('invisible')\ + .drop('relClass')\ + .repartition(num_partitions, 'resultId') + +for indicator_name, fd, column_name in impact_indicators: + + print("Reading {} '{}' field from file".format(indicator_name, column_name)) + df = read_df(fd, indicator_name, column_name) + + # sets a zero value to the indicator column if the value is C5 + if (column_name == 'class'): + df = df.withColumn(indicator_name, F.when(F.col(indicator_name).isin("C5"), 0).otherwise(1)) + + # print_df(df) + + print("Joining {} to relations".format(indicator_name)) + + # NOTE: we use inner join because we want to keep only the results that have an impact score + # also note that all impact scores have the same set of results + relations = relations.join(df, 'resultId', 'inner')\ + .repartition(num_partitions, 'resultId') + +# uncomment to print non-null values count for each indicator +# for indicator_name, fd, column_name in impact_indicators: +# print("Counting non null values for {}".format(indicator_name)) +# print(relations.filter(F.col(indicator_name).isNotNull()).count()) + +# sum the impact indicator values for each project +relations.groupBy('projectId')\ + .agg(\ + F.sum('influence').alias('numOfInfluentialResults'),\ + F.sum('popularity').alias('numOfPopularResults'),\ + F.sum('impulse').alias('totalImpulse'),\ + F.sum('citation_count').alias('totalCitationCount')\ + )\ + .write.mode("overwrite")\ + .json(output_dir, compression="gzip") \ No newline at end of file diff --git a/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/workflow.xml b/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/workflow.xml new file mode 100644 index 000000000..e43e7cf14 --- /dev/null +++ b/dhp-workflows/dhp-impact-indicators/src/main/resources/eu/dnetlib/dhp/oa/graph/impact_indicators/oozie_app/workflow.xml @@ -0,0 +1,612 @@ + + + + + ${jobTracker} + ${nameNode} + + + oozie.action.sharelib.for.spark + ${oozieActionShareLibForSpark2} + + + projectImpactIndicatorsOutput + ${nameNode}${workingDir}/project_indicators + + + openaireGraphInputPath + ${nameNode}/${workingDir}/openaire_id_graph + + + synonymFolder + ${nameNode}/${workingDir}/openaireid_to_dois/ + + + checkpointDir + ${nameNode}/${workingDir}/check/ + + + bipScorePath + ${nameNode}${workingDir}/openaire_universe_scores/ + + + + + + + + + + + + ${wf:conf('resume') eq "cc"} + ${wf:conf('resume') eq "ram"} + ${wf:conf('resume') eq "impulse"} + ${wf:conf('resume') eq "pagerank"} + ${wf:conf('resume') eq "attrank"} + + ${wf:conf('resume') eq "format-results"} + ${wf:conf('resume') eq "map-ids"} + ${wf:conf('resume') eq "map-scores"} + ${wf:conf('resume') eq "start"} + + + ${wf:conf('resume') eq "projects-impact"} + ${wf:conf('resume') eq "create-actionset"} + + + + + + + + + + yarn-cluster + cluster + OpenAIRE Ranking Graph Creation + create_openaire_ranking_graph.py + + + --executor-memory=${sparkHighExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkHighDriverMemory} + --conf spark.sql.shuffle.partitions=${sparkShufflePartitions} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + + + + ${openaireDataInput} + + ${currentYear} + + ${sparkShufflePartitions} + + ${nameNode}${workingDir}/openaire_id_graph + ${nameNode}${wfAppPath}/create_openaire_ranking_graph.py#create_openaire_ranking_graph.py + + + + + + + + + + + + yarn-cluster + cluster + Citation Count calculation + CC.py + + + --executor-memory=${sparkHighExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkNormalDriverMemory} + --conf spark.sql.shuffle.partitions=${sparkShufflePartitions} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + + + ${nameNode}/${workingDir}/openaire_id_graph + + ${sparkShufflePartitions} + + ${wfAppPath}/bip-ranker/CC.py#CC.py + + + + + + + + + + + + yarn-cluster + cluster + RAM calculation + TAR.py + + + --executor-memory=${sparkHighExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkNormalDriverMemory} + --conf spark.sql.shuffle.partitions=${sparkShufflePartitions} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + + + ${nameNode}/${workingDir}/openaire_id_graph + ${ramGamma} + ${currentYear} + RAM + ${sparkShufflePartitions} + ${checkpointDir} + + ${wfAppPath}/bip-ranker/TAR.py#TAR.py + + + + + + + + + + + yarn-cluster + cluster + Impulse calculation + CC.py + + + --executor-memory=${sparkHighExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkNormalDriverMemory} + --conf spark.sql.shuffle.partitions=${sparkShufflePartitions} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + + + ${nameNode}/${workingDir}/openaire_id_graph + + ${sparkShufflePartitions} + 3 + + ${wfAppPath}/bip-ranker/CC.py#CC.py + + + + + + + + + + + yarn-cluster + cluster + Pagerank calculation + PageRank.py + + + --executor-memory=${sparkHighExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkNormalDriverMemory} + --conf spark.sql.shuffle.partitions=${sparkShufflePartitions} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + + + ${nameNode}/${workingDir}/openaire_id_graph + ${pageRankAlpha} + ${convergenceError} + ${checkpointDir} + + ${sparkShufflePartitions} + dfs + + ${wfAppPath}/bip-ranker/PageRank.py#PageRank.py + + + + + + + + + + + yarn-cluster + cluster + AttRank calculation + AttRank.py + + + --executor-memory=${sparkHighExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkNormalDriverMemory} + --conf spark.sql.shuffle.partitions=${sparkShufflePartitions} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + + + ${nameNode}/${workingDir}/openaire_id_graph + ${attrankAlpha} + ${attrankBeta} + ${attrankGamma} + ${attrankRho} + ${currentYear} + ${attrankStartYear} + ${convergenceError} + ${checkpointDir} + + ${sparkShufflePartitions} + dfs + + ${wfAppPath}/bip-ranker/AttRank.py#AttRank.py + + + + + + + + + + + + /usr/bin/bash + + get_ranking_files.sh + + ${workingDir} + + ${wfAppPath}/get_ranking_files.sh#get_ranking_files.sh + + + + + + + + + + + + + + + + + + + + + + yarn-cluster + cluster + Format Ranking Results JSON + format_ranking_results.py + + + --executor-memory=${sparkNormalExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkNormalDriverMemory} + --conf spark.sql.shuffle.partitions=${sparkShufflePartitions} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + + + json-5-way + + ${nameNode}/${workingDir}/${wf:actionData('get-file-names')['pr_file']} + ${nameNode}/${workingDir}/${wf:actionData('get-file-names')['attrank_file']} + ${nameNode}/${workingDir}/${wf:actionData('get-file-names')['cc_file']} + ${nameNode}/${workingDir}/${wf:actionData('get-file-names')['impulse_file']} + ${nameNode}/${workingDir}/${wf:actionData('get-file-names')['ram_file']} + + ${sparkShufflePartitions} + + openaire + + ${wfAppPath}/format_ranking_results.py#format_ranking_results.py + + + + + + + + + + + + + yarn-cluster + cluster + + + Format Ranking Results BiP! DB + + format_ranking_results.py + + + + --executor-memory=${sparkNormalExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkNormalDriverMemory} + --conf spark.sql.shuffle.partitions=${sparkShufflePartitions} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + + + zenodo + + ${nameNode}/${workingDir}/${wf:actionData('get-file-names')['pr_file']} + ${nameNode}/${workingDir}/${wf:actionData('get-file-names')['attrank_file']} + ${nameNode}/${workingDir}/${wf:actionData('get-file-names')['cc_file']} + ${nameNode}/${workingDir}/${wf:actionData('get-file-names')['impulse_file']} + ${nameNode}/${workingDir}/${wf:actionData('get-file-names')['ram_file']} + + ${sparkShufflePartitions} + + openaire + + ${wfAppPath}/format_ranking_results.py#format_ranking_results.py + + + + + + + + + + + + + + + + + + + yarn-cluster + cluster + Openaire-DOI synonym collection + map_openaire_ids_to_dois.py + + + --executor-memory=${sparkHighExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkHighDriverMemory} + --conf spark.sql.shuffle.partitions=${sparkShufflePartitions} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + + + ${openaireDataInput}/ + + ${synonymFolder} + + ${wfAppPath}/map_openaire_ids_to_dois.py#map_openaire_ids_to_dois.py + + + + + + + + + + + + + + yarn-cluster + cluster + Mapping Openaire Scores to DOIs + map_scores_to_dois.py + + + --executor-memory=${sparkHighExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkHighDriverMemory} + --conf spark.sql.shuffle.partitions=${sparkShufflePartitions} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + + + ${synonymFolder} + + ${sparkShufflePartitions} + + ${nameNode}/${workingDir}/${wf:actionData('get-file-names')['pr_file']} + ${nameNode}/${workingDir}/${wf:actionData('get-file-names')['attrank_file']} + ${nameNode}/${workingDir}/${wf:actionData('get-file-names')['cc_file']} + ${nameNode}/${workingDir}/${wf:actionData('get-file-names')['impulse_file']} + ${nameNode}/${workingDir}/${wf:actionData('get-file-names')['ram_file']} + + ${wfAppPath}/map_scores_to_dois.py#map_scores_to_dois.py + + + + + + + + + + + yarn-cluster + cluster + Project Impact Indicators calculation + projects_impact.py + + + --executor-memory=${sparkHighExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkNormalDriverMemory} + --conf spark.sql.shuffle.partitions=${sparkShufflePartitions} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + + + + ${openaireDataInput}/relation + + + ${nameNode}/${workingDir}/${wf:actionData('get-file-names')['pr_file']} + ${nameNode}/${workingDir}/${wf:actionData('get-file-names')['attrank_file']} + ${nameNode}/${workingDir}/${wf:actionData('get-file-names')['cc_file']} + ${nameNode}/${workingDir}/${wf:actionData('get-file-names')['impulse_file']} + + + ${sparkShufflePartitions} + + ${projectImpactIndicatorsOutput} + ${wfAppPath}/projects_impact.py#projects_impact.py + + + + + + + + + + + + + + + + + + + + yarn-cluster + cluster + Produces the atomic action with the bip finder scores + eu.dnetlib.dhp.actionmanager.bipfinder.SparkAtomicActionScoreJob + dhp-aggregation-${projectVersion}.jar + + + --executor-memory=${sparkNormalExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkNormalDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + --conf spark.sql.warehouse.dir=${sparkSqlWarehouseDir} + + + --resultsInputPath${bipScorePath} + --projectsInputPath${projectImpactIndicatorsOutput} + --outputPath${actionSetOutputPath} + + + + + + + + + Creation of openaire-graph failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + CC failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + RAM failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + Impulse failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + PageRank failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + AttRank failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + Error getting key-value pairs for output files, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + Error formatting json files, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + Error formatting BIP files, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + Synonym collection failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + Mapping scores to DOIs failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + Deleting output path for actionsets failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + ActionSet creation for results failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + Calculating project impact indicators failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + + + diff --git a/dhp-workflows/dhp-stats-actionsets/pom.xml b/dhp-workflows/dhp-stats-actionsets/pom.xml new file mode 100644 index 000000000..3daa8f995 --- /dev/null +++ b/dhp-workflows/dhp-stats-actionsets/pom.xml @@ -0,0 +1,75 @@ + + + 4.0.0 + + eu.dnetlib.dhp + dhp-workflows + 1.2.5-SNAPSHOT + + dhp-stats-actionsets + + + + org.apache.httpcomponents + httpclient + + + + org.apache.spark + spark-core_2.11 + + + org.apache.spark + spark-sql_2.11 + + + + eu.dnetlib.dhp + dhp-common + ${project.version} + + + + net.sf.saxon + Saxon-HE + + + dom4j + dom4j + + + + xml-apis + xml-apis + + + + jaxen + jaxen + + + + org.json + json + + + + + org.apache.poi + poi-ooxml + + + + + org.apache.commons + commons-compress + + + + org.mongodb + mongo-java-driver + + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-stats-actionsets/src/main/java/eu/dnetlib/dhp/actionmanager/stats_actionsets/StatsAtomicActionsJob.java b/dhp-workflows/dhp-stats-actionsets/src/main/java/eu/dnetlib/dhp/actionmanager/stats_actionsets/StatsAtomicActionsJob.java new file mode 100644 index 000000000..0c3c2f3c0 --- /dev/null +++ b/dhp-workflows/dhp-stats-actionsets/src/main/java/eu/dnetlib/dhp/actionmanager/stats_actionsets/StatsAtomicActionsJob.java @@ -0,0 +1,162 @@ + +package eu.dnetlib.dhp.actionmanager.stats_actionsets; + +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkHiveSession; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Optional; + +import org.apache.commons.io.IOUtils; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.io.compress.GzipCodec; +import org.apache.hadoop.mapred.SequenceFileOutputFormat; +import org.apache.spark.SparkConf; +import org.apache.spark.api.java.JavaPairRDD; +import org.apache.spark.api.java.JavaRDD; +import org.apache.spark.api.java.JavaSparkContext; +import org.apache.spark.api.java.function.MapFunction; +import org.apache.spark.api.java.function.MapGroupsFunction; +import org.apache.spark.sql.*; +import org.apache.spark.sql.Dataset; +import org.apache.spark.sql.Encoders; +import org.apache.spark.sql.SaveMode; +import org.apache.spark.sql.SparkSession; +import org.apache.spark.sql.types.DataTypes; +import org.apache.spark.sql.types.StructField; +import org.apache.spark.sql.types.StructType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.common.HdfsSupport; +import eu.dnetlib.dhp.schema.action.AtomicAction; +import eu.dnetlib.dhp.schema.common.ModelConstants; +import eu.dnetlib.dhp.schema.oaf.*; +import eu.dnetlib.dhp.schema.oaf.utils.OafMapperUtils; +import scala.Tuple2; + +/** + * created the Atomic Action for each type of results + */ +public class StatsAtomicActionsJob implements Serializable { + + private static final Logger log = LoggerFactory.getLogger(StatsAtomicActionsJob.class); + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + + public static void main(String[] args) throws Exception { + + String jsonConfiguration = IOUtils + .toString( + StatsAtomicActionsJob.class + .getResourceAsStream( + "/eu/dnetlib/dhp/actionmanager/stats_actionsets/input_actionset_parameter.json")); + + final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); + + parser.parseArgument(args); + + Boolean isSparkSessionManaged = Optional + .ofNullable(parser.get("isSparkSessionManaged")) + .map(Boolean::valueOf) + .orElse(Boolean.TRUE); + + log.info("isSparkSessionManaged: {}", isSparkSessionManaged); + + final String outputPath = parser.get("outputPath"); + log.info("outputPath {}: ", outputPath); + + SparkConf conf = new SparkConf(); + conf.set("hive.metastore.uris", parser.get("hive_metastore_uris")); + conf.set("spark.speculation", "false"); + conf.set("spark.hadoop.mapreduce.map.speculative", "false"); + conf.set("spark.hadoop.mapreduce.reduce.speculative", "false"); + + final String dbname = parser.get("statsDB"); + + final String workingPath = parser.get("workingPath"); + + runWithSparkHiveSession( + conf, + isSparkSessionManaged, + spark -> { + removeOutputDir(spark, outputPath); + prepareResultEnhancement(dbname, spark, workingPath + "/resultEnhancements", "id"); + writeActionSet(spark, workingPath, outputPath); + }); + } + + private static void prepareResultEnhancement(String dbname, SparkSession spark, String workingPath, + String resultAttributeName) { + spark + .sql( + String + .format( + "select r.%s as id, is_gold, is_bronze_oa, is_hybrid,green_oa, in_diamond_journal,f.publicly_funded as publicly_funded " + + + "from %s.publication r " + + "left outer join %s.indi_pub_bronze_oa b on r.id=b.id " + + "left outer join %s.indi_pub_gold_oa g on r.id=g.id " + + "left outer join %s.indi_pub_hybrid h on r.id=h.id " + + "left outer join %s.indi_pub_green_oa gr on r.id=gr.id " + + "left outer join %s.indi_pub_diamond d on b.id=d.id " + + "left outer join %s.indi_pub_publicly_funded f on r.id=f.id ", + resultAttributeName, dbname, dbname, dbname, dbname, dbname, dbname, dbname)) + .as(Encoders.bean(StatsResultEnhancementModel.class)) + .write() + .mode(SaveMode.Overwrite) + .option("compression", "gzip") + .json(workingPath); + } + + public static void writeActionSet(SparkSession spark, String inputPath, String outputPath) { + + getResultEnhancements(spark, inputPath + "/resultEnhancements") + .toJavaRDD() + .map(p -> new AtomicAction(p.getClass(), p)) + .mapToPair( + aa -> new Tuple2<>(new Text(aa.getClazz().getCanonicalName()), + new Text(OBJECT_MAPPER.writeValueAsString(aa)))) + .saveAsHadoopFile( + outputPath, + Text.class, + Text.class, + SequenceFileOutputFormat.class, + GzipCodec.class); + } + + private static Dataset getResultEnhancements(SparkSession spark, String inputPath) { + + return readPath(spark, inputPath, StatsResultEnhancementModel.class) + .map((MapFunction) usm -> { + Result r = new Result(); + r.setId("50|" + usm.getId()); + r.setIsInDiamondJournal(usm.isIn_diamond_journal()); + r.setIsGreen(usm.isGreen_oa()); + r.setPubliclyFunded(usm.isPublicly_funded()); + if (usm.isIs_gold()) + r.setOpenAccessColor(OpenAccessColor.gold); + else if (usm.isIs_hybrid()) + r.setOpenAccessColor(OpenAccessColor.hybrid); + else if (usm.isIs_bronze_oa()) + r.setOpenAccessColor(OpenAccessColor.bronze); + return r; + }, Encoders.bean(Result.class)); + } + + private static void removeOutputDir(SparkSession spark, String path) { + HdfsSupport.remove(path, spark.sparkContext().hadoopConfiguration()); + } + + public static Dataset readPath( + SparkSession spark, String inputPath, Class clazz) { + return spark + .read() + .textFile(inputPath) + .map((MapFunction) value -> OBJECT_MAPPER.readValue(value, clazz), Encoders.bean(clazz)); + } +} diff --git a/dhp-workflows/dhp-stats-actionsets/src/main/java/eu/dnetlib/dhp/actionmanager/stats_actionsets/StatsResultEnhancementModel.java b/dhp-workflows/dhp-stats-actionsets/src/main/java/eu/dnetlib/dhp/actionmanager/stats_actionsets/StatsResultEnhancementModel.java new file mode 100644 index 000000000..f794c5591 --- /dev/null +++ b/dhp-workflows/dhp-stats-actionsets/src/main/java/eu/dnetlib/dhp/actionmanager/stats_actionsets/StatsResultEnhancementModel.java @@ -0,0 +1,76 @@ + +package eu.dnetlib.dhp.actionmanager.stats_actionsets; + +import java.io.Serializable; + +import eu.dnetlib.dhp.schema.oaf.*; + +/** + * @author dimitris.pierrakos + * @Date 30/10/23 + */ +public class StatsResultEnhancementModel implements Serializable { + private String id; + private Boolean is_gold; + private Boolean is_bronze_oa; + private Boolean is_hybrid; + private boolean in_diamond_journal; + private boolean green_oa; + private boolean publicly_funded; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Boolean isIs_gold() { + return is_gold; + } + + public void setIs_gold(Boolean is_gold) { + this.is_gold = is_gold; + } + + public Boolean isIs_bronze_oa() { + return is_bronze_oa; + } + + public void setIs_bronze_oa(Boolean is_bronze_oa) { + this.is_bronze_oa = is_bronze_oa; + } + + public Boolean isIs_hybrid() { + return is_hybrid; + } + + public void setIs_hybrid(Boolean is_hybrid) { + this.is_hybrid = is_hybrid; + } + + public boolean isIn_diamond_journal() { + return in_diamond_journal; + } + + public void setIn_diamond_journal(boolean in_diamond_journal) { + this.in_diamond_journal = in_diamond_journal; + } + + public boolean isGreen_oa() { + return green_oa; + } + + public void setGreen_oa(boolean green_oa) { + this.green_oa = green_oa; + } + + public boolean isPublicly_funded() { + return publicly_funded; + } + + public void setPublicly_funded(boolean publicly_funded) { + this.publicly_funded = publicly_funded; + } +} diff --git a/dhp-workflows/dhp-stats-actionsets/src/main/resources/eu/dnetlib/dhp/actionmanager/stats_actionsets/input_actionset_parameter.json b/dhp-workflows/dhp-stats-actionsets/src/main/resources/eu/dnetlib/dhp/actionmanager/stats_actionsets/input_actionset_parameter.json new file mode 100644 index 000000000..bb24d4c99 --- /dev/null +++ b/dhp-workflows/dhp-stats-actionsets/src/main/resources/eu/dnetlib/dhp/actionmanager/stats_actionsets/input_actionset_parameter.json @@ -0,0 +1,32 @@ +[ + { + "paramName": "issm", + "paramLongName": "isSparkSessionManaged", + "paramDescription": "when true will stop SparkSession after job execution", + "paramRequired": false + }, + { + "paramName": "hmu", + "paramLongName": "hive_metastore_uris", + "paramDescription": "the URI for the hive metastore", + "paramRequired": true + }, + { + "paramName": "o", + "paramLongName": "outputPath", + "paramDescription": "the path of the new ActionSet", + "paramRequired": true + }, + { + "paramName": "sdb", + "paramLongName": "statsDB", + "paramDescription": "the name of the stats db to be used", + "paramRequired": true + }, + { + "paramName": "wp", + "paramLongName": "workingPath", + "paramDescription": "the workingPath where to save the content of the usage_stats table", + "paramRequired": true + } +] \ No newline at end of file diff --git a/dhp-workflows/dhp-stats-actionsets/src/main/resources/eu/dnetlib/dhp/actionmanager/stats_actionsets/oozie_app/config-default.xml b/dhp-workflows/dhp-stats-actionsets/src/main/resources/eu/dnetlib/dhp/actionmanager/stats_actionsets/oozie_app/config-default.xml new file mode 100644 index 000000000..d262cb6e0 --- /dev/null +++ b/dhp-workflows/dhp-stats-actionsets/src/main/resources/eu/dnetlib/dhp/actionmanager/stats_actionsets/oozie_app/config-default.xml @@ -0,0 +1,30 @@ + + + jobTracker + yarnRM + + + nameNode + hdfs://nameservice1 + + + oozie.use.system.libpath + true + + + hiveMetastoreUris + thrift://iis-cdh5-test-m3.ocean.icm.edu.pl:9083 + + + hiveJdbcUrl + jdbc:hive2://iis-cdh5-test-m3.ocean.icm.edu.pl:10000 + + + hiveDbName + openaire + + + oozie.launcher.mapreduce.user.classpath.first + true + + diff --git a/dhp-workflows/dhp-stats-actionsets/src/main/resources/eu/dnetlib/dhp/actionmanager/stats_actionsets/oozie_app/workflow.xml b/dhp-workflows/dhp-stats-actionsets/src/main/resources/eu/dnetlib/dhp/actionmanager/stats_actionsets/oozie_app/workflow.xml new file mode 100644 index 000000000..79fd3f56e --- /dev/null +++ b/dhp-workflows/dhp-stats-actionsets/src/main/resources/eu/dnetlib/dhp/actionmanager/stats_actionsets/oozie_app/workflow.xml @@ -0,0 +1,97 @@ + + + + outputPath + the path where to store the actionset + + + statsDB + the name of the stats db to be used + + + sparkDriverMemory + memory for driver process + + + sparkExecutorMemory + memory for individual executor + + + sparkExecutorCores + number of cores used by single executor + + + oozieActionShareLibForSpark2 + oozie action sharelib for spark 2.* + + + spark2ExtraListeners + com.cloudera.spark.lineage.NavigatorAppListener + spark 2.* extra listeners classname + + + spark2SqlQueryExecutionListeners + com.cloudera.spark.lineage.NavigatorQueryListener + spark 2.* sql query execution listeners classname + + + spark2YarnHistoryServerAddress + spark 2.* yarn history server address + + + spark2EventLogDir + spark 2.* event log dir location + + + + + ${jobTracker} + ${nameNode} + + + mapreduce.job.queuename + ${queueName} + + + oozie.launcher.mapred.job.queue.name + ${oozieLauncherQueueName} + + + oozie.action.sharelib.for.spark + ${oozieActionShareLibForSpark2} + + + + + + + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + + yarn + cluster + Produces the atomic action with the stats green_oa for results + eu.dnetlib.dhp.actionmanager.stats_actionsets.StatsAtomicActionsJob + dhp-stats-actionsets-${projectVersion}.jar + + --executor-memory=${sparkExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + --conf spark.sql.warehouse.dir=${sparkSqlWarehouseDir} + + --hive_metastore_uris${hiveMetastoreUris} + --outputPath${outputPath} + --statsDB${statsDB} + --workingPath${workingDir} + + + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-stats-actionsets/src/main/resources/log4j.properties b/dhp-workflows/dhp-stats-actionsets/src/main/resources/log4j.properties new file mode 100644 index 000000000..81458d1f7 --- /dev/null +++ b/dhp-workflows/dhp-stats-actionsets/src/main/resources/log4j.properties @@ -0,0 +1,12 @@ +# Set root logger level to DEBUG and its only appender to A1. +log4j.rootLogger=INFO, A1 + +# A1 is set to be a ConsoleAppender. +log4j.appender.A1=org.apache.log4j.ConsoleAppender + +# A1 uses PatternLayout. +log4j.appender.A1.layout=org.apache.log4j.PatternLayout +log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n + +log4j.logger.org.apache.spark=FATAL +log4j.logger.org.spark_project=FATAL diff --git a/dhp-workflows/dhp-stats-promote/pom.xml b/dhp-workflows/dhp-stats-promote/pom.xml index ce3e739a5..9e17a78dc 100644 --- a/dhp-workflows/dhp-stats-promote/pom.xml +++ b/dhp-workflows/dhp-stats-promote/pom.xml @@ -10,11 +10,11 @@ org.apache.spark - spark-core_2.11 + spark-core_${scala.binary.version} org.apache.spark - spark-sql_2.11 + spark-sql_${scala.binary.version} diff --git a/dhp-workflows/dhp-stats-promote/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/updateProductionViews.sh b/dhp-workflows/dhp-stats-promote/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/updateProductionViews.sh index a6d7b289d..3813c7f27 100644 --- a/dhp-workflows/dhp-stats-promote/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/updateProductionViews.sh +++ b/dhp-workflows/dhp-stats-promote/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/updateProductionViews.sh @@ -11,6 +11,6 @@ export PRODUCTION=$2 echo "Updating ${PRODUCTION} database" impala-shell -i impala-cluster-dn1.openaire.eu -q "create database if not exists ${PRODUCTION}" -impala-shell -i impala-cluster-dn1.openaire.eu -d ${PRODUCTION} -q "show tables" --delimited | sed "s/^/drop view if exists ${PRODUCTION}./" | sed "s/$/;/" | impala-shell -c -f - -impala-shell -i impala-cluster-dn1.openaire.eu -d ${SOURCE} -q "show tables" --delimited | sed "s/\(.*\)/create view ${PRODUCTION}.\1 as select * from ${SOURCE}.\1;/" | impala-shell -c -f - +impala-shell -i impala-cluster-dn1.openaire.eu -d ${PRODUCTION} -q "show tables" --delimited | sed "s/^/drop view if exists ${PRODUCTION}./" | sed "s/$/;/" | impala-shell -i impala-cluster-dn1.openaire.eu -c -f - +impala-shell -i impala-cluster-dn1.openaire.eu -d ${SOURCE} -q "show tables" --delimited | sed "s/\(.*\)/create view ${PRODUCTION}.\1 as select * from ${SOURCE}.\1;/" | impala-shell -i impala-cluster-dn1.openaire.eu -c -f - echo "Production db ready!" \ No newline at end of file diff --git a/dhp-workflows/dhp-stats-promote/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/updateProductionViewsMonitor.sh b/dhp-workflows/dhp-stats-promote/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/updateProductionViewsMonitor.sh index 68844b14c..592310122 100644 --- a/dhp-workflows/dhp-stats-promote/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/updateProductionViewsMonitor.sh +++ b/dhp-workflows/dhp-stats-promote/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/updateProductionViewsMonitor.sh @@ -9,30 +9,36 @@ fi export SOURCE=$1 export PRODUCTION=$2 -echo "Updating ${PRODUCTION}'_funded' database" -impala-shell -i impala-cluster-dn1.openaire.eu -q "create database if not exists ${PRODUCTION}'_funded'" -impala-shell -i impala-cluster-dn1.openaire.eu -d ${PRODUCTION}'_funded' -q "show tables" --delimited | sed "s/^/drop view if exists ${PRODUCTION}'_funded'./" | sed "s/$/;/" | impala-shell -c -f - -impala-shell -i impala-cluster-dn1.openaire.eu -d ${SOURCE}'_funded' -q "show tables" --delimited | sed "s/\(.*\)/create view ${PRODUCTION}'_funded'.\1 as select * from ${SOURCE}'_funded'.\1;/" | impala-shell -c -f - +echo "Updating ${PRODUCTION} monitor database" +impala-shell -i impala-cluster-dn1.openaire.eu -q "create database if not exists ${PRODUCTION}" +impala-shell -i impala-cluster-dn1.openaire.eu -d ${PRODUCTION} -q "show tables" --delimited | sed "s/^/drop view if exists ${PRODUCTION}./" | sed "s/$/;/" | impala-shell -i impala-cluster-dn1.openaire.eu -c -f - +impala-shell -i impala-cluster-dn1.openaire.eu -d ${SOURCE} -q "show tables" --delimited | sed "s/\(.*\)/create view ${PRODUCTION}.\1 as select * from ${SOURCE}.\1;/" | impala-shell -i impala-cluster-dn1.openaire.eu -c -f - +echo "Production monitor db ready!" + +echo "Updating ${PRODUCTION}_funded database" +impala-shell -i impala-cluster-dn1.openaire.eu -q "create database if not exists ${PRODUCTION}_funded" +impala-shell -i impala-cluster-dn1.openaire.eu -d ${PRODUCTION}_funded -q "show tables" --delimited | sed "s/^/drop view if exists ${PRODUCTION}_funded./" | sed "s/$/;/" | impala-shell -i impala-cluster-dn1.openaire.eu -c -f - +impala-shell -i impala-cluster-dn1.openaire.eu -d ${SOURCE}_funded -q "show tables" --delimited | sed "s/\(.*\)/create view ${PRODUCTION}_funded.\1 as select * from ${SOURCE}_funded.\1;/" | impala-shell -i impala-cluster-dn1.openaire.eu -c -f - echo "Production funded db ready!" -echo "Updating ${PRODUCTION}'_institutions' database" -impala-shell -i impala-cluster-dn1.openaire.eu -q "create database if not exists ${PRODUCTION}'_institutions'" -impala-shell -i impala-cluster-dn1.openaire.eu -d ${PRODUCTION}'_institutions' -q "show tables" --delimited | sed "s/^/drop view if exists ${PRODUCTION}'_institutions'./" | sed "s/$/;/" | impala-shell -c -f - -impala-shell -i impala-cluster-dn1.openaire.eu -d ${SOURCE}'_institutions' -q "show tables" --delimited | sed "s/\(.*\)/create view ${PRODUCTION}'_institutions'.\1 as select * from ${SOURCE}'_institutions'.\1;/" | impala-shell -c -f - +echo "Updating ${PRODUCTION}_institutions database" +impala-shell -i impala-cluster-dn1.openaire.eu -q "create database if not exists ${PRODUCTION}_institutions" +impala-shell -i impala-cluster-dn1.openaire.eu -d ${PRODUCTION}_institutions -q "show tables" --delimited | sed "s/^/drop view if exists ${PRODUCTION}_institutions./" | sed "s/$/;/" | impala-shell -i impala-cluster-dn1.openaire.eu -c -f - +impala-shell -i impala-cluster-dn1.openaire.eu -d ${SOURCE}_institutions -q "show tables" --delimited | sed "s/\(.*\)/create view ${PRODUCTION}_institutions.\1 as select * from ${SOURCE}_institutions.\1;/" | impala-shell -i impala-cluster-dn1.openaire.eu -c -f - echo "Production insitutions db ready!" -echo "Updating ${PRODUCTION}'_ris_tail' database" -impala-shell -i impala-cluster-dn1.openaire.eu -q "create database if not exists ${PRODUCTION}'_ris_tail'" -impala-shell -i impala-cluster-dn1.openaire.eu -d ${PRODUCTION}'_ris_tail' -q "show tables" --delimited | sed "s/^/drop view if exists ${PRODUCTION}'_ris_tail'./" | sed "s/$/;/" | impala-shell -c -f - -impala-shell -i impala-cluster-dn1.openaire.eu -d ${SOURCE}'_RIs_tail' -q "show tables" --delimited | sed "s/\(.*\)/create view ${PRODUCTION}'_ris_tail'.\1 as select * from ${SOURCE}'_ris_tail'.\1;/" | impala-shell -c -f - +echo "Updating ${PRODUCTION}_ris_tail database" +impala-shell -i impala-cluster-dn1.openaire.eu -q "create database if not exists ${PRODUCTION}_ris_tail" +impala-shell -i impala-cluster-dn1.openaire.eu -d ${PRODUCTION}_ris_tail -q "show tables" --delimited | sed "s/^/drop view if exists ${PRODUCTION}_ris_tail./" | sed "s/$/;/" | impala-shell -i impala-cluster-dn1.openaire.eu -c -f - +impala-shell -i impala-cluster-dn1.openaire.eu -d ${SOURCE}_ris_tail -q "show tables" --delimited | sed "s/\(.*\)/create view ${PRODUCTION}_ris_tail.\1 as select * from ${SOURCE}_ris_tail.\1;/" | impala-shell -i impala-cluster-dn1.openaire.eu -c -f - echo "Production RIS tail db ready!" contexts="knowmad::other dh-ch::other enermaps::other gotriple::other neanias-atmospheric::other rural-digital-europe::other covid-19::other aurora::other neanias-space::other north-america-studies::other north-american-studies::other eutopia::other" for i in ${contexts} do tmp=`echo "$i" | sed 's/'-'/'_'/g' | sed 's/'::'/'_'/g'` - impala-shell -i impala-cluster-dn1.openaire.eu -q "create database if not exists ${PRODUCTION}'_'${tmp}" - impala-shell -i impala-cluster-dn1.openaire.eu -d ${PRODUCTION}'_'${tmp} -q "show tables" --delimited | sed "s/^/drop view if exists ${PRODUCTION}'_'${tmp}./" | sed "s/$/;/" | impala-shell -c -f - - impala-shell -i impala-cluster-dn1.openaire.eu -d ${SOURCE}'_'${tmp} -q "show tables" --delimited | sed "s/\(.*\)/create view ${PRODUCTION}'_'${tmp}.\1 as select * from ${SOURCE}'_'${tmp}.\1;/" | impala-shell -c -f - + impala-shell -i impala-cluster-dn1.openaire.eu -q "create database if not exists ${PRODUCTION}_${tmp}" + impala-shell -i impala-cluster-dn1.openaire.eu -d ${PRODUCTION}_${tmp} -q "show tables" --delimited | sed "s/^/drop view if exists ${PRODUCTION}_${tmp}./" | sed "s/$/;/" | impala-shell -i impala-cluster-dn1.openaire.eu -c -f - + impala-shell -i impala-cluster-dn1.openaire.eu -d ${SOURCE}_${tmp} -q "show tables" --delimited | sed "s/\(.*\)/create view ${PRODUCTION}_${tmp}.\1 as select * from ${SOURCE}_${tmp}.\1;/" | impala-shell -i impala-cluster-dn1.openaire.eu -c -f - echo "Production ${tmp} db ready!" done diff --git a/dhp-workflows/dhp-stats-update/pom.xml b/dhp-workflows/dhp-stats-update/pom.xml index 2bc610c42..cc15b8a15 100644 --- a/dhp-workflows/dhp-stats-update/pom.xml +++ b/dhp-workflows/dhp-stats-update/pom.xml @@ -9,12 +9,17 @@ dhp-stats-update - org.apache.spark - spark-core_2.11 + eu.dnetlib.dhp + dhp-common + ${project.version} org.apache.spark - spark-sql_2.11 + spark-core_${scala.binary.version} + + + org.apache.spark + spark-sql_${scala.binary.version} diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/copyDataToImpalaCluster.sh b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/copyDataToImpalaCluster.sh index 87294f6e9..18ff6dca8 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/copyDataToImpalaCluster.sh +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/copyDataToImpalaCluster.sh @@ -6,7 +6,6 @@ then ln -sfn ${PYTHON_EGG_CACHE}${link_folder} ${link_folder} fi -#export HADOOP_USER_NAME="dimitris.pierrakos" export HADOOP_USER_NAME=$6 export PROD_USAGE_STATS_DB="openaire_prod_usage_stats" function copydb() { @@ -24,13 +23,13 @@ function copydb() { # drop tables from db for i in `impala-shell --user $HADOOP_USER_NAME -i impala-cluster-dn1.openaire.eu -d ${db} --delimited -q "show tables"`; do - `impala-shell -i impala-cluster-dn1.openaire.eu -d -d ${db} -q "drop table $i;"`; + `impala-shell -i impala-cluster-dn1.openaire.eu -d ${db} -q "drop table $i;"`; done # drop views from db for i in `impala-shell --user $HADOOP_USER_NAME -i impala-cluster-dn1.openaire.eu -d ${db} --delimited -q "show tables"`; do - `impala-shell -i impala-cluster-dn1.openaire.eu -d -d ${db} -q "drop view $i;"`; + `impala-shell -i impala-cluster-dn1.openaire.eu -d ${db} -q "drop view $i;"`; done # delete the database @@ -82,12 +81,12 @@ copydb $USAGE_STATS_DB copydb $PROD_USAGE_STATS_DB copydb $EXT_DB copydb $STATS_DB -#copydb $MONITOR_DB +copydb $MONITOR_DB copydb $OBSERVATORY_DB copydb $MONITOR_DB'_funded' copydb $MONITOR_DB'_institutions' -copydb $MONITOR_DB'_RIs_tail' +copydb $MONITOR_DB'_ris_tail' contexts="knowmad::other dh-ch::other enermaps::other gotriple::other neanias-atmospheric::other rural-digital-europe::other covid-19::other aurora::other neanias-space::other north-america-studies::other north-american-studies::other eutopia::other" for i in ${contexts} diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/createPDFsAggregated.sh b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/createPDFsAggregated.sh new file mode 100644 index 000000000..46631a0c2 --- /dev/null +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/createPDFsAggregated.sh @@ -0,0 +1,42 @@ +export PYTHON_EGG_CACHE=/home/$(whoami)/.python-eggs +export link_folder=/tmp/impala-shell-python-egg-cache-$(whoami) +if ! [ -L $link_folder ] +then + rm -Rf "$link_folder" + ln -sfn ${PYTHON_EGG_CACHE}${link_folder} ${link_folder} +fi + +function createPDFsAggregated() { + db=$1 + +impala-shell --user $HADOOP_USER_NAME -i impala-cluster-dn1.openaire.eu -d ${db} -q "drop table if exists indi_is_result_accessible"; + +impala-shell --user $HADOOP_USER_NAME -i impala-cluster-dn1.openaire.eu -d ${db} -q "create table indi_is_result_accessible stored as parquet as + select distinct p.id, coalesce(is_result_accessible, 0) as is_result_accessible from result p + left outer join + (select id, 1 as is_result_accessible from (select pl.* from result r + join pdfaggregation_i.publication p on r.id=p.id + join pdfaggregation_i.payload pl on pl.id=p.id + union all + select pl.* from result r + join pdfaggregation_i.publication p on r.id=p.dedupid + join pdfaggregation_i.payload pl on pl.id=p.id) foo) tmp on p.id=tmp.id"; +} + +STATS_DB=$1 +MONITOR_DB=$2 +HADOOP_USER_NAME=$3 + +createPDFsAggregated $STATS_DB +createPDFsAggregated $MONITOR_DB + +createPDFsAggregated $MONITOR_DB'_funded' +createPDFsAggregated $MONITOR_DB'_institutions' +createPDFsAggregated $MONITOR_DB'_ris_tail' + +contexts="knowmad::other dh-ch::other enermaps::other gotriple::other neanias-atmospheric::other rural-digital-europe::other covid-19::other aurora::other neanias-space::other north-america-studies::other north-american-studies::other eutopia::other" +for i in ${contexts} +do + tmp=`echo "$i" | sed 's/'-'/'_'/g' | sed 's/'::'/'_'/g'` + createPDFsAggregated ${MONITOR_DB}'_'${tmp} +done \ No newline at end of file diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/finalizeImpalaCluster.sh b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/finalizeImpalaCluster.sh index 857635b6c..86a93216c 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/finalizeImpalaCluster.sh +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/finalizeImpalaCluster.sh @@ -13,7 +13,7 @@ function createShadowDB() { # drop views from db for i in `impala-shell -i impala-cluster-dn1.openaire.eu -d ${SHADOW} --delimited -q "show tables"`; do - `impala-shell -i impala-cluster-dn1.openaire.eu -d -d ${SHADOW} -q "drop view $i;"`; + `impala-shell -i impala-cluster-dn1.openaire.eu -d ${SHADOW} -q "drop view $i;"`; done impala-shell -i impala-cluster-dn1.openaire.eu -q "drop database ${SHADOW} CASCADE"; @@ -36,13 +36,13 @@ createShadowDB $MONITOR_DB $MONITOR_DB_SHADOW createShadowDB $OBSERVATORY_DB $OBSERVATORY_DB_SHADOW createShadowDB USAGE_STATS_DB USAGE_STATS_DB_SHADOW -createShadowDB $MONITOR_DB'_funded' $MONITOR_DB'_funded_shadow' -createShadowDB $MONITOR_DB'_institutions' $MONITOR_DB'_institutions_shadow' -createShadowDB $MONITOR_DB'_RIs_tail' $MONITOR_DB'_RIs_tail_shadow' +createShadowDB $MONITOR_DB'_funded' $MONITOR_DB_SHADOW'_shadow_funded' +createShadowDB $MONITOR_DB'_institutions' $MONITOR_DB_SHADOW'_shadow_institutions' +createShadowDB $MONITOR_DB'_ris_tail' $MONITOR_DB_SHADOW'_shadow_ris_tail' contexts="knowmad::other dh-ch::other enermaps::other gotriple::other neanias-atmospheric::other rural-digital-europe::other covid-19::other aurora::other neanias-space::other north-america-studies::other north-american-studies::other eutopia::other" for i in ${contexts} do tmp=`echo "$i" | sed 's/'-'/'_'/g' | sed 's/'::'/'_'/g'` - createShadowDB ${MONITOR_DB}'_'${tmp} ${MONITOR_DB}'_'${tmp}'_shadow' + createShadowDB ${MONITOR_DB}'_'${tmp} ${MONITOR_DB_SHADOW}'_shadow_'${tmp} done \ No newline at end of file diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/monitor.sh b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/monitor.sh old mode 100644 new mode 100755 index 08f4c9232..872456973 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/monitor.sh +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/monitor.sh @@ -14,6 +14,7 @@ export SCRIPT_PATH2=$5 export SCRIPT_PATH3=$6 export SCRIPT_PATH4=$7 export SCRIPT_PATH5=$8 +export SCRIPT_PATH6=$9 export HIVE_OPTS="-hiveconf mapred.job.queue.name=analytics -hiveconf hive.spark.client.connect.timeout=120000ms -hiveconf hive.spark.client.server.connect.timeout=300000ms -hiveconf spark.executor.memory=19166291558 -hiveconf spark.yarn.executor.memoryOverhead=3225 -hiveconf spark.driver.memory=11596411699 -hiveconf spark.yarn.driver.memoryOverhead=1228" export HADOOP_USER_NAME="oozie" @@ -33,12 +34,19 @@ hdfs dfs -copyToLocal $7 echo "Getting file from " $8 hdfs dfs -copyToLocal $8 +echo "Getting file from " $9 +hdfs dfs -copyToLocal $9 + + echo "Creating monitor database" +cat step20-createMonitorDBAll.sql | sed "s/SOURCE/$1/g" | sed "s/TARGET/$2/g1" > foo +hive $HIVE_OPTS -f foo + cat step20-createMonitorDB_funded.sql | sed "s/SOURCE/$1/g" | sed "s/TARGET/$2_funded/g1" > foo hive $HIVE_OPTS -f foo cat step20-createMonitorDB.sql | sed "s/SOURCE/$1/g" | sed "s/TARGET/$2_funded/g1" > foo hive $HIVE_OPTS -f foo -# + cat step20-createMonitorDB_institutions.sql | sed "s/SOURCE/$1/g" | sed "s/TARGET/$2_institutions/g1" > foo hive $HIVE_OPTS -f foo cat step20-createMonitorDB.sql | sed "s/SOURCE/$1/g" | sed "s/TARGET/$2_institutions/g1" > foo @@ -56,14 +64,20 @@ do hive $HIVE_OPTS -f foo done - -cat step20-createMonitorDB_RIs_tail.sql | sed "s/SOURCE/$1/g" | sed "s/TARGET/$2_RIs_tail/g1" | sed "s/CONTEXTS/\"'knowmad::other','dh-ch::other', 'enermaps::other', 'gotriple::other', 'neanias-atmospheric::other', 'rural-digital-europe::other', 'covid-19::other', 'aurora::other', 'neanias-space::other', 'north-america-studies::other', 'north-american-studies::other', 'eutopia::other'\"/g" > foo +cat step20-createMonitorDB_RIs_tail.sql | sed "s/SOURCE/$1/g" | sed "s/TARGET/$2_ris_tail/g1" | sed "s/CONTEXTS/\"'knowmad::other','dh-ch::other', 'enermaps::other', 'gotriple::other', 'neanias-atmospheric::other', 'rural-digital-europe::other', 'covid-19::other', 'aurora::other', 'neanias-space::other', 'north-america-studies::other', 'north-american-studies::other', 'eutopia::other'\"/g" > foo hive $HIVE_OPTS -f foo -cat step20-createMonitorDB.sql | sed "s/SOURCE/$1/g" | sed "s/TARGET/$2_RIs_tail/g1" > foo +cat step20-createMonitorDB.sql | sed "s/SOURCE/$1/g" | sed "s/TARGET/$2_ris_tail/g1" > foo hive $HIVE_OPTS -f foo echo "Hive shell finished" +echo "Updating shadow monitor all database" +hive -e "drop database if exists ${SHADOW} cascade" +hive -e "create database if not exists ${SHADOW}" +hive $HIVE_OPTS --database ${2} -e "show tables" | grep -v WARN | sed "s/\(.*\)/create view ${SHADOW}.\1 as select * from ${2}.\1;/" > foo +hive -f foo +echo "Updated shadow monitor all database" + echo "Updating shadow monitor funded database" hive -e "drop database if exists ${SHADOW}_funded cascade" hive -e "create database if not exists ${SHADOW}_funded" diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step10.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step10.sql index 92dedf243..bbd7b3bbc 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step10.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step10.sql @@ -49,5 +49,7 @@ select * from openaire_prod_usage_stats.views_stats; -- Creation date of the database ------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------ +DROP TABLE IF EXISTS ${stats_db_name}.creation_date purge; + create table ${stats_db_name}.creation_date STORED AS PARQUET as select date_format(current_date(), 'dd-MM-yyyy') as date; diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step11.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step11.sql index 41c3ed751..638fb0f7a 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step11.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step11.sql @@ -20,6 +20,7 @@ WHERE project_tmp.id IN (SELECT pr.id ${stats_db_name}.result r WHERE pr.result = r.id AND r.type = 'publication'); +DROP TABLE IF EXISTS ${stats_db_name}.stored purge; CREATE TABLE ${stats_db_name}.project stored as parquet as SELECT p.id, diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step12.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step12.sql index 47d147f75..0a1904de7 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step12.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step12.sql @@ -1,22 +1,32 @@ ------------------------------------------------------------------------------------------------------ -- Creating parquet tables from the updated temporary tables and removing unnecessary temporary tables ------------------------------------------------------------------------------------------------------ +DROP TABLE IF EXISTS ${stats_db_name}.datasource purge; + CREATE TABLE ${stats_db_name}.datasource stored AS parquet AS SELECT * FROM ${stats_db_name}.datasource_tmp; +DROP TABLE IF EXISTS ${stats_db_name}.publication purge; + CREATE TABLE ${stats_db_name}.publication stored AS parquet AS SELECT * FROM ${stats_db_name}.publication_tmp; +DROP TABLE IF EXISTS ${stats_db_name}.dataset purge; + CREATE TABLE ${stats_db_name}.dataset stored AS parquet AS SELECT * FROM ${stats_db_name}.dataset_tmp; +DROP TABLE IF EXISTS ${stats_db_name}.software purge; + CREATE TABLE ${stats_db_name}.software stored AS parquet AS SELECT * FROM ${stats_db_name}.software_tmp; +DROP TABLE IF EXISTS ${stats_db_name}.otherresearchproduct purge; + CREATE TABLE ${stats_db_name}.otherresearchproduct stored AS parquet AS SELECT * FROM ${stats_db_name}.otherresearchproduct_tmp; diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step13.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step13.sql old mode 100644 new mode 100755 index 24e1a1355..6493fa7d0 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step13.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step13.sql @@ -5,6 +5,8 @@ -- Sources related tables/views ------------------------------------------------------ ------------------------------------------------------ +DROP TABLE IF EXISTS ${stats_db_name}.publication_sources purge; + CREATE TABLE IF NOT EXISTS ${stats_db_name}.publication_sources STORED AS PARQUET as SELECT p.id, case when d.id is null then 'other' else p.datasource end as datasource FROM ( @@ -16,6 +18,8 @@ LEFT OUTER JOIN from ${openaire_db_name}.datasource d WHERE d.datainfo.deletedbyinference=false and d.datainfo.invisible = FALSE) d on p.datasource = d.id; +DROP TABLE IF EXISTS ${stats_db_name}.dataset_sources purge; + CREATE TABLE IF NOT EXISTS ${stats_db_name}.dataset_sources STORED AS PARQUET as SELECT p.id, case when d.id is null then 'other' else p.datasource end as datasource FROM ( @@ -27,6 +31,8 @@ LEFT OUTER JOIN from ${openaire_db_name}.datasource d WHERE d.datainfo.deletedbyinference=false and d.datainfo.invisible = FALSE) d on p.datasource = d.id; +DROP TABLE IF EXISTS ${stats_db_name}.software_sources purge; + CREATE TABLE IF NOT EXISTS ${stats_db_name}.software_sources STORED AS PARQUET as SELECT p.id, case when d.id is null then 'other' else p.datasource end as datasource FROM ( @@ -38,6 +44,8 @@ LEFT OUTER JOIN from ${openaire_db_name}.datasource d WHERE d.datainfo.deletedbyinference=false and d.datainfo.invisible = FALSE) d on p.datasource = d.id; +DROP TABLE IF EXISTS ${stats_db_name}.otherresearchproduct_sources purge; + CREATE TABLE IF NOT EXISTS ${stats_db_name}.otherresearchproduct_sources STORED AS PARQUET as SELECT p.id, case when d.id is null then 'other' else p.datasource end as datasource FROM ( @@ -48,7 +56,7 @@ LEFT OUTER JOIN SELECT substr(d.id, 4) id from ${openaire_db_name}.datasource d WHERE d.datainfo.deletedbyinference=false and d.datainfo.invisible = FALSE) d on p.datasource = d.id; - + CREATE VIEW IF NOT EXISTS ${stats_db_name}.result_sources AS SELECT * FROM ${stats_db_name}.publication_sources UNION ALL @@ -58,6 +66,7 @@ SELECT * FROM ${stats_db_name}.software_sources UNION ALL SELECT * FROM ${stats_db_name}.otherresearchproduct_sources; +DROP TABLE IF EXISTS ${stats_db_name}.result_orcid purge; CREATE TABLE IF NOT EXISTS ${stats_db_name}.result_orcid STORED AS PARQUET as select distinct res.id, regexp_replace(res.orcid, 'http://orcid.org/' ,'') as orcid @@ -69,6 +78,8 @@ from ( LATERAL VIEW explode(auth.pid.qualifier.classid) apt as author_pid_type WHERE res.datainfo.deletedbyinference = FALSE and res.datainfo.invisible = FALSE and author_pid_type = 'orcid') as res; +DROP TABLE IF EXISTS ${stats_db_name}.result_result purge; + CREATE TABLE IF NOT EXISTS ${stats_db_name}.result_result stored as parquet as select substr(rel.source, 4) as source, substr(rel.target, 4) as target, relclass, subreltype from ${openaire_db_name}.relation rel @@ -82,6 +93,8 @@ where reltype='resultResult' and r2.resulttype.classname != 'other' and rel.datainfo.deletedbyinference=false and rel.datainfo.invisible = FALSE; +DROP TABLE IF EXISTS ${stats_db_name}.result_citations_oc purge; + CREATE TABLE IF NOT EXISTS ${stats_db_name}.result_citations_oc stored as parquet as select substr(target, 4) as id, count(distinct substr(source, 4)) as citations from ${openaire_db_name}.relation rel @@ -97,6 +110,8 @@ where relClass='Cites' and rel.datainfo.provenanceaction.classid = 'sysimport:cr and rel.datainfo.deletedbyinference=false and rel.datainfo.invisible = FALSE group by substr(target, 4); +DROP TABLE IF EXISTS ${stats_db_name}.result_references_oc purge; + CREATE TABLE IF NOT EXISTS ${stats_db_name}.result_references_oc stored as parquet as select substr(source, 4) as id, count(distinct substr(target, 4)) as references from ${openaire_db_name}.relation rel diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step14.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step14.sql index 39755d68e..f50c13521 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step14.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step14.sql @@ -5,21 +5,29 @@ -- Licences related tables/views ------------------------------------------------------ ------------------------------------------------------ +DROP TABLE IF EXISTS ${stats_db_name}.publication_licenses purge; + CREATE TABLE IF NOT EXISTS ${stats_db_name}.publication_licenses STORED AS PARQUET AS -SELECT substr(p.id, 4) as id, licenses.value as type +SELECT substr(p.id, 4) as id, licenses.value as type from ${openaire_db_name}.publication p LATERAL VIEW explode(p.instance.license) instances as licenses where licenses.value is not null and licenses.value != '' and p.datainfo.deletedbyinference=false and p.datainfo.invisible = FALSE; +DROP TABLE IF EXISTS ${stats_db_name}.dataset_licenses purge; + CREATE TABLE IF NOT EXISTS ${stats_db_name}.dataset_licenses STORED AS PARQUET AS SELECT substr(p.id, 4) as id, licenses.value as type from ${openaire_db_name}.dataset p LATERAL VIEW explode(p.instance.license) instances as licenses where licenses.value is not null and licenses.value != '' and p.datainfo.deletedbyinference=false and p.datainfo.invisible = FALSE; +DROP TABLE IF EXISTS ${stats_db_name}.software_licenses purge; + CREATE TABLE IF NOT EXISTS ${stats_db_name}.software_licenses STORED AS PARQUET AS SELECT substr(p.id, 4) as id, licenses.value as type from ${openaire_db_name}.software p LATERAL VIEW explode(p.instance.license) instances as licenses where licenses.value is not null and licenses.value != '' and p.datainfo.deletedbyinference=false and p.datainfo.invisible = FALSE; +DROP TABLE IF EXISTS ${stats_db_name}.otherresearchproduct_licenses purge; + CREATE TABLE IF NOT EXISTS ${stats_db_name}.otherresearchproduct_licenses STORED AS PARQUET AS SELECT substr(p.id, 4) as id, licenses.value as type from ${openaire_db_name}.otherresearchproduct p LATERAL VIEW explode(p.instance.license) instances as licenses @@ -34,10 +42,14 @@ SELECT * FROM ${stats_db_name}.software_licenses UNION ALL SELECT * FROM ${stats_db_name}.otherresearchproduct_licenses; +DROP TABLE IF EXISTS ${stats_db_name}.organization_pids purge; + CREATE TABLE IF NOT EXISTS ${stats_db_name}.organization_pids STORED AS PARQUET AS select substr(o.id, 4) as id, ppid.qualifier.classname as type, ppid.value as pid from ${openaire_db_name}.organization o lateral view explode(o.pid) pids as ppid; +DROP TABLE IF EXISTS ${stats_db_name}.organization_sources purge; + CREATE TABLE IF NOT EXISTS ${stats_db_name}.organization_sources STORED AS PARQUET as SELECT o.id, case when d.id is null then 'other' else o.datasource end as datasource FROM ( @@ -48,6 +60,8 @@ FROM ( from ${openaire_db_name}.datasource d WHERE d.datainfo.deletedbyinference=false and d.datainfo.invisible = FALSE) d on o.datasource = d.id; +DROP TABLE IF EXISTS ${stats_db_name}.result_accessroute purge; + CREATE TABLE IF NOT EXISTS ${stats_db_name}.result_accessroute STORED AS PARQUET as select distinct substr(id,4) as id, accessroute from ${openaire_db_name}.result lateral view explode (instance.accessright.openaccessroute) openaccessroute as accessroute; diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step15.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step15.sql index 132cb482e..066b197e6 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step15.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step15.sql @@ -6,21 +6,29 @@ ------------------------------------------------------ ------------------------------------------------------ +DROP TABLE IF EXISTS ${stats_db_name}.publication_refereed purge; + CREATE TABLE IF NOT EXISTS ${stats_db_name}.publication_refereed STORED AS PARQUET as select substr(r.id, 4) as id, inst.refereed.classname as refereed from ${openaire_db_name}.publication r lateral view explode(r.instance) instances as inst where r.datainfo.deletedbyinference=false and r.datainfo.invisible = FALSE; +DROP TABLE IF EXISTS ${stats_db_name}.dataset_refereed purge; + CREATE TABLE IF NOT EXISTS ${stats_db_name}.dataset_refereed STORED AS PARQUET as select substr(r.id, 4) as id, inst.refereed.classname as refereed from ${openaire_db_name}.dataset r lateral view explode(r.instance) instances as inst where r.datainfo.deletedbyinference=false and r.datainfo.invisible = FALSE; +DROP TABLE IF EXISTS ${stats_db_name}.software_refereed purge; + CREATE TABLE IF NOT EXISTS ${stats_db_name}.software_refereed STORED AS PARQUET as select substr(r.id, 4) as id, inst.refereed.classname as refereed from ${openaire_db_name}.software r lateral view explode(r.instance) instances as inst where r.datainfo.deletedbyinference=false and r.datainfo.invisible = FALSE; +DROP TABLE IF EXISTS ${stats_db_name}.otherresearchproduct_refereed purge; + CREATE TABLE IF NOT EXISTS ${stats_db_name}.otherresearchproduct_refereed STORED AS PARQUET as select substr(r.id, 4) as id, inst.refereed.classname as refereed from ${openaire_db_name}.otherresearchproduct r lateral view explode(r.instance) instances as inst @@ -35,10 +43,21 @@ select * from ${stats_db_name}.software_refereed union all select * from ${stats_db_name}.otherresearchproduct_refereed; +DROP TABLE IF EXISTS ${stats_db_name}.indi_impact_measures purge; + create table if not exists ${stats_db_name}.indi_impact_measures STORED AS PARQUET as select substr(id, 4) as id, measures_ids.id impactmetric, cast(measures_ids.unit.value[0] as double) score, -cast(measures_ids.unit.value[0] as decimal(6,3)) score_dec, measures_ids.unit.value[1] class +cast(measures_ids.unit.value[0] as decimal(6,3)) score_dec, measures_ids.unit.value[1] impact_class from ${openaire_db_name}.result lateral view explode(measures) measures as measures_ids where measures_ids.id!='views' and measures_ids.id!='downloads'; -ANALYZE TABLE indi_impact_measures COMPUTE STATISTICS; +DROP TABLE IF EXISTS ${stats_db_name}.result_apc_affiliations purge; + +create table if not exists ${stats_db_name}.result_apc_affiliations STORED AS PARQUET as +select distinct substr(rel.target,4) id, substr(rel.source,4) organization, o.legalname.value name, +cast(rel.properties[0].value as double) apc_amount, +rel.properties[1].value apc_currency +from ${openaire_db_name}.relation rel +join ${openaire_db_name}.organization o on o.id=rel.source +join ${openaire_db_name}.result r on r.id=rel.target +where rel.subreltype = 'affiliation' and rel.datainfo.deletedbyinference = false and size(rel.properties)>0; diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step15_5.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step15_5.sql index f39ff2afd..2c606fb92 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step15_5.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step15_5.sql @@ -1,6 +1,8 @@ ------------------------------------------- --- Extra tables, mostly used by indicators +DROP TABLE IF EXISTS ${stats_db_name}.result_projectcount purge; + create table if not exists ${stats_db_name}.result_projectcount STORED AS PARQUET as select r.id, count(distinct p.id) as count from ${stats_db_name}.result r @@ -8,6 +10,8 @@ left outer join ${stats_db_name}.result_projects rp on rp.id=r.id left outer join ${stats_db_name}.project p on p.id=rp.project group by r.id; +DROP TABLE IF EXISTS ${stats_db_name}.result_fundercount purge; + create table if not exists ${stats_db_name}.result_fundercount STORED AS PARQUET as select r.id, count(distinct p.funder) as count from ${stats_db_name}.result r @@ -15,6 +19,8 @@ left outer join ${stats_db_name}.result_projects rp on rp.id=r.id left outer join ${stats_db_name}.project p on p.id=rp.project group by r.id; +DROP TABLE IF EXISTS ${stats_db_name}.project_resultcount purge; + create table if not exists ${stats_db_name}.project_resultcount STORED AS PARQUET as with rcount as ( select p.id as pid, count(distinct r.id) as `count`, r.type as type @@ -35,6 +41,9 @@ create or replace view ${stats_db_name}.doctoratestudents as select * from stats create or replace view ${stats_db_name}.totalresearchers as select * from stats_ext.totalresearchers; create or replace view ${stats_db_name}.totalresearchersft as select * from stats_ext.totalresearchersft; create or replace view ${stats_db_name}.hrrst as select * from stats_ext.hrrst; +create or replace view ${stats_db_name}.graduatedoctorates as select * from stats_ext.graduatedoctorates; + +DROP TABLE IF EXISTS ${stats_db_name}.result_instance purge; create table if not exists ${stats_db_name}.result_instance stored as parquet as select distinct r.* @@ -44,6 +53,8 @@ from ( from ${openaire_db_name}.result r lateral view explode(r.instance) instances as inst lateral view explode(inst.pid) pids as p) r join ${stats_db_name}.result res on res.id=r.id; +DROP TABLE IF EXISTS ${stats_db_name}.result_apc purge; + create table if not exists ${stats_db_name}.result_apc STORED AS PARQUET as select r.id, r.amount, r.currency from ( diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step16-createIndicatorsTables.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step16-createIndicatorsTables.sql index 36b34cc3c..f13b2500c 100755 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step16-createIndicatorsTables.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step16-createIndicatorsTables.sql @@ -1,88 +1,101 @@ -- Sprint 1 ---- -create table if not exists indi_pub_green_oa stored as parquet as +drop table if exists ${stats_db_name}.indi_pub_green_oa purge; /*EOS*/ + +--create table if not exists ${stats_db_name}.indi_pub_green_oa stored as parquet as +--select distinct p.id, coalesce(green_oa, 0) as green_oa +--from ${stats_db_name}.publication p +-- left outer join ( +-- select p.id, 1 as green_oa +-- from ${stats_db_name}.publication p +-- join ${stats_db_name}.result_instance ri on ri.id = p.id +-- join ${stats_db_name}.datasource on datasource.id = ri.hostedby +-- where datasource.type like '%Repository%' +-- and (ri.accessright = 'Open Access' +-- or ri.accessright = 'Embargo' or ri.accessright = 'Open Source')) tmp +-- on p.id= tmp.id; +create table if not exists ${stats_db_name}.indi_pub_green_oa stored as parquet as select distinct p.id, coalesce(green_oa, 0) as green_oa -from publication p +from ${stats_db_name}.publication p left outer join ( select p.id, 1 as green_oa - from publication p - join result_instance ri on ri.id = p.id - join datasource on datasource.id = ri.hostedby + from ${stats_db_name}.publication p + join ${stats_db_name}.result_instance ri on ri.id = p.id + join ${stats_db_name}.datasource on datasource.id = ri.hostedby where datasource.type like '%Repository%' and (ri.accessright = 'Open Access' - or ri.accessright = 'Embargo' or ri.accessright = 'Open Source')) tmp - on p.id= tmp.id; + or ri.accessright = 'Embargo' or ri.accessright = 'Open Source') and datasource.name!='Other') tmp + on p.id= tmp.id; /*EOS*/ -ANALYZE TABLE indi_pub_green_oa COMPUTE STATISTICS; +drop table if exists ${stats_db_name}.indi_pub_grey_lit purge; /*EOS*/ -create table if not exists indi_pub_grey_lit stored as parquet as +create table if not exists ${stats_db_name}.indi_pub_grey_lit stored as parquet as select distinct p.id, coalesce(grey_lit, 0) as grey_lit -from publication p +from ${stats_db_name}.publication p left outer join ( select p.id, 1 as grey_lit - from publication p - join result_classifications rt on rt.id = p.id + from ${stats_db_name}.publication p + join ${stats_db_name}.result_classifications rt on rt.id = p.id where rt.type not in ('Article','Part of book or chapter of book','Book','Doctoral thesis','Master thesis','Data Paper', 'Thesis', 'Bachelor thesis', 'Conference object') and - not exists (select 1 from result_classifications rc where type ='Other literature type' - and rc.id=p.id)) tmp on p.id=tmp.id; + not exists (select 1 from ${stats_db_name}.result_classifications rc where type ='Other literature type' + and rc.id=p.id)) tmp on p.id=tmp.id; /*EOS*/ -ANALYZE TABLE indi_pub_grey_lit COMPUTE STATISTICS; +drop table if exists ${stats_db_name}.indi_pub_doi_from_crossref purge; /*EOS*/ -create table if not exists indi_pub_doi_from_crossref stored as parquet as +create table if not exists ${stats_db_name}.indi_pub_doi_from_crossref stored as parquet as select distinct p.id, coalesce(doi_from_crossref, 0) as doi_from_crossref -from publication p +from ${stats_db_name}.publication p left outer join - (select ri.id, 1 as doi_from_crossref from result_instance ri - join datasource d on d.id = ri.collectedfrom + (select ri.id, 1 as doi_from_crossref from ${stats_db_name}.result_instance ri + join ${stats_db_name}.datasource d on d.id = ri.collectedfrom where pidtype='Digital Object Identifier' and d.name ='Crossref') tmp - on tmp.id=p.id; - -ANALYZE TABLE indi_pub_doi_from_crossref COMPUTE STATISTICS; + on tmp.id=p.id; /*EOS*/ -- Sprint 2 ---- -create table if not exists indi_result_has_cc_licence stored as parquet as +drop table if exists ${stats_db_name}.indi_result_has_cc_licence purge; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_result_has_cc_licence stored as parquet as select distinct r.id, (case when lic='' or lic is null then 0 else 1 end) as has_cc_license -from result r - left outer join (select r.id, license.type as lic from result r - join result_licenses as license on license.id = r.id +from ${stats_db_name}.result r +left outer join (select r.id, license.type as lic from ${stats_db_name}.result r + join ${stats_db_name}.result_licenses as license on license.id = r.id where lower(license.type) LIKE '%creativecommons.org%' OR lower(license.type) LIKE '%cc-%') tmp - on r.id= tmp.id; + on r.id= tmp.id; /*EOS*/ -ANALYZE TABLE indi_result_has_cc_licence COMPUTE STATISTICS; +drop table if exists ${stats_db_name}.indi_result_has_cc_licence_url purge; /*EOS*/ -create table if not exists indi_result_has_cc_licence_url stored as parquet as +create table if not exists ${stats_db_name}.indi_result_has_cc_licence_url stored as parquet as select distinct r.id, case when lic_host='' or lic_host is null then 0 else 1 end as has_cc_license_url -from result r +from ${stats_db_name}.result r left outer join (select r.id, lower(parse_url(license.type, "HOST")) as lic_host - from result r - join result_licenses as license on license.id = r.id + from ${stats_db_name}.result r + join ${stats_db_name}.result_licenses as license on license.id = r.id WHERE lower(parse_url(license.type, "HOST")) = "creativecommons.org") tmp - on r.id= tmp.id; + on r.id= tmp.id; /*EOS*/ -ANALYZE TABLE indi_result_has_cc_licence_url COMPUTE STATISTICS; +drop table if exists ${stats_db_name}.indi_pub_has_abstract purge; /*EOS*/ -create table if not exists indi_pub_has_abstract stored as parquet as +create table if not exists ${stats_db_name}.indi_pub_has_abstract stored as parquet as select distinct publication.id, cast(coalesce(abstract, true) as int) has_abstract -from publication; +from ${stats_db_name}.publication; /*EOS*/ -ANALYZE TABLE indi_pub_has_abstract COMPUTE STATISTICS; +drop table if exists ${stats_db_name}.indi_result_with_orcid purge; /*EOS*/ -create table if not exists indi_result_with_orcid stored as parquet as +create table if not exists ${stats_db_name}.indi_result_with_orcid stored as parquet as select distinct r.id, coalesce(has_orcid, 0) as has_orcid -from result r - left outer join (select id, 1 as has_orcid from result_orcid) tmp - on r.id= tmp.id; - -ANALYZE TABLE indi_result_with_orcid COMPUTE STATISTICS; +from ${stats_db_name}.result r + left outer join (select id, 1 as has_orcid from ${stats_db_name}.result_orcid) tmp + on r.id= tmp.id; /*EOS*/ ---- Sprint 3 ---- -create table if not exists indi_funded_result_with_fundref stored as parquet as -select distinct r.result as id, coalesce(fundref, 0) as fundref -from project_results r - left outer join (select distinct result, 1 as fundref from project_results - where provenance='Harvested') tmp - on r.result= tmp.result; -ANALYZE TABLE indi_funded_result_with_fundref COMPUTE STATISTICS; +drop table if exists ${stats_db_name}.indi_funded_result_with_fundref purge; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_funded_result_with_fundref stored as parquet as +select distinct r.result as id, coalesce(fundref, 0) as fundref +from ${stats_db_name}.project_results r + left outer join (select distinct result, 1 as fundref from ${stats_db_name}.project_results + where provenance='Harvested') tmp + on r.result= tmp.result; /*EOS*/ -- create table indi_result_org_collab stored as parquet as -- select o1.organization org1, o2.organization org2, count(distinct o1.id) as collaborations @@ -92,224 +105,287 @@ ANALYZE TABLE indi_funded_result_with_fundref COMPUTE STATISTICS; -- -- compute stats indi_result_org_collab; -- -create TEMPORARY TABLE tmp AS SELECT ro.organization organization, ro.id, o.name from result_organization ro -join organization o on o.id=ro.organization where o.name is not null; +create TEMPORARY VIEW tmp AS SELECT ro.organization organization, ro.id, o.name from ${stats_db_name}.result_organization ro +join ${stats_db_name}.organization o on o.id=ro.organization where o.name is not null; /*EOS*/ -create table if not exists indi_result_org_collab stored as parquet as +drop table if exists ${stats_db_name}.indi_result_org_collab purge; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_result_org_collab stored as parquet as select o1.organization org1, o1.name org1name1, o2.organization org2, o2.name org2name2, count(o1.id) as collaborations from tmp as o1 join tmp as o2 where o1.id=o2.id and o1.organization!=o2.organization and o1.name!=o2.name -group by o1.organization, o2.organization, o1.name, o2.name; +group by o1.organization, o2.organization, o1.name, o2.name; /*EOS*/ -drop table tmp purge; +DROP VIEW if exists tmp; /*EOS*/ -ANALYZE TABLE indi_result_org_collab COMPUTE STATISTICS; +create TEMPORARY VIEW tmp AS +select distinct ro.organization organization, ro.id, o.name, o.country from ${stats_db_name}.result_organization ro +join ${stats_db_name}.organization o on o.id=ro.organization where country <> 'UNKNOWN' and o.name is not null; /*EOS*/ -create TEMPORARY TABLE tmp AS -select distinct ro.organization organization, ro.id, o.name, o.country from result_organization ro -join organization o on o.id=ro.organization where country <> 'UNKNOWN' and o.name is not null; +drop table if exists ${stats_db_name}.indi_result_org_country_collab purge; /*EOS*/ -create table if not exists indi_result_org_country_collab stored as parquet as +create table if not exists ${stats_db_name}.indi_result_org_country_collab stored as parquet as select o1.organization org1,o1.name org1name1, o2.country country2, count(o1.id) as collaborations from tmp as o1 join tmp as o2 on o1.id=o2.id where o1.id=o2.id and o1.country!=o2.country -group by o1.organization, o1.id, o1.name, o2.country; +group by o1.organization, o1.id, o1.name, o2.country; /*EOS*/ -drop table tmp purge; +drop table if exists tmp purge; /*EOS*/ -ANALYZE TABLE indi_result_org_country_collab COMPUTE STATISTICS; +create TEMPORARY VIEW tmp AS +select o.id organization, o.name, ro.project as project from ${stats_db_name}.organization o + join ${stats_db_name}.organization_projects ro on o.id=ro.id where o.name is not null; /*EOS*/ -create TEMPORARY TABLE tmp AS -select o.id organization, o.name, ro.project as project from organization o - join organization_projects ro on o.id=ro.id where o.name is not null; +drop table if exists ${stats_db_name}.indi_project_collab_org purge; /*EOS*/ -create table if not exists indi_project_collab_org stored as parquet as +create table if not exists ${stats_db_name}.indi_project_collab_org stored as parquet as select o1.organization org1,o1.name orgname1, o2.organization org2, o2.name orgname2, count(distinct o1.project) as collaborations from tmp as o1 join tmp as o2 on o1.project=o2.project where o1.organization<>o2.organization and o1.name<>o2.name -group by o1.name,o2.name, o1.organization, o2.organization; +group by o1.name,o2.name, o1.organization, o2.organization; /*EOS*/ -drop table tmp purge; +DROP VIEW if exists tmp; /*EOS*/ -ANALYZE TABLE indi_project_collab_org COMPUTE STATISTICS; +create TEMPORARY VIEW tmp AS +select o.id organization, o.name, o.country , ro.project as project from ${stats_db_name}.organization o + join ${stats_db_name}.organization_projects ro on o.id=ro.id + and o.country <> 'UNKNOWN' and o.name is not null; /*EOS*/ -create TEMPORARY TABLE tmp AS -select o.id organization, o.name, o.country , ro.project as project from organization o - join organization_projects ro on o.id=ro.id - and o.country <> 'UNKNOWN' and o.name is not null; +drop table if exists ${stats_db_name}.indi_project_collab_org_country purge; /*EOS*/ -create table if not exists indi_project_collab_org_country stored as parquet as +create table if not exists ${stats_db_name}.indi_project_collab_org_country stored as parquet as select o1.organization org1,o1.name org1name, o2.country country2, count(distinct o1.project) as collaborations from tmp as o1 join tmp as o2 on o1.project=o2.project where o1.organization<>o2.organization and o1.country<>o2.country -group by o1.organization, o2.country, o1.name; +group by o1.organization, o2.country, o1.name; /*EOS*/ -drop table tmp purge; +DROP VIEW if exists tmp; /*EOS*/ -ANALYZE TABLE indi_project_collab_org_country COMPUTE STATISTICS; +drop table if exists ${stats_db_name}.indi_funder_country_collab purge; /*EOS*/ -create table if not exists indi_funder_country_collab stored as parquet as - with tmp as (select funder, project, country from organization_projects op - join organization o on o.id=op.id - join project p on p.id=op.project +create table if not exists ${stats_db_name}.indi_funder_country_collab stored as parquet as + with tmp as (select funder, project, country from ${stats_db_name}.organization_projects op + join ${stats_db_name}.organization o on o.id=op.id + join ${stats_db_name}.project p on p.id=op.project where country <> 'UNKNOWN') select f1.funder, f1.country as country1, f2.country as country2, count(distinct f1.project) as collaborations from tmp as f1 join tmp as f2 on f1.project=f2.project where f1.country<>f2.country -group by f1.funder, f2.country, f1.country; +group by f1.funder, f2.country, f1.country; /*EOS*/ -ANALYZE TABLE indi_funder_country_collab COMPUTE STATISTICS; +create TEMPORARY VIEW tmp AS +select distinct country, ro.id as result from ${stats_db_name}.organization o + join ${stats_db_name}.result_organization ro on o.id=ro.organization + where country <> 'UNKNOWN' and o.name is not null; /*EOS*/ -create TEMPORARY TABLE tmp AS -select distinct country, ro.id as result from organization o - join result_organization ro on o.id=ro.organization - where country <> 'UNKNOWN' and o.name is not null; +drop table if exists ${stats_db_name}.indi_result_country_collab purge; /*EOS*/ -create table if not exists indi_result_country_collab stored as parquet as +create table if not exists ${stats_db_name}.indi_result_country_collab stored as parquet as select o1.country country1, o2.country country2, count(o1.result) as collaborations from tmp as o1 join tmp as o2 on o1.result=o2.result where o1.country<>o2.country -group by o1.country, o2.country; +group by o1.country, o2.country; /*EOS*/ -drop table tmp purge; - -ANALYZE TABLE indi_result_country_collab COMPUTE STATISTICS; +DROP VIEW if exists tmp; /*EOS*/ ---- Sprint 4 ---- -create table if not exists indi_pub_diamond stored as parquet as +drop table if exists ${stats_db_name}.indi_pub_diamond purge; /*EOS*/ + +--create table if not exists ${stats_db_name}.indi_pub_diamond stored as parquet as +--select distinct pd.id, coalesce(in_diamond_journal, 0) as in_diamond_journal +--from ${stats_db_name}.publication_datasources pd +-- left outer join ( +-- select pd.id, 1 as in_diamond_journal from ${stats_db_name}.publication_datasources pd +-- join ${stats_db_name}.datasource d on d.id=pd.datasource +-- join STATS_EXT.plan_s_jn ps where (ps.issn_print=d.issn_printed and ps.issn_online=d.issn_online) +-- and (ps.journal_is_in_doaj=true or ps.journal_is_oa=true) and ps.has_apc=false) tmp +-- on pd.id=tmp.id; + +create table if not exists ${stats_db_name}.indi_pub_diamond stored as parquet as select distinct pd.id, coalesce(in_diamond_journal, 0) as in_diamond_journal -from publication_datasources pd - left outer join ( - select pd.id, 1 as in_diamond_journal from publication_datasources pd - join datasource d on d.id=pd.datasource - join STATS_EXT.plan_s_jn ps where (ps.issn_print=d.issn_printed and ps.issn_online=d.issn_online) - and (ps.journal_is_in_doaj=true or ps.journal_is_oa=true) and ps.has_apc=false) tmp - on pd.id=tmp.id; +from ${stats_db_name}.publication_datasources pd +left outer join (select pd.id, 1 as in_diamond_journal from ${stats_db_name}.publication_datasources pd +join ${stats_db_name}.datasource d on d.id=pd.datasource +join STATS_EXT.plan_s_jn ps where (ps.issn_print=d.issn_printed and ps.issn_online=d.issn_online) +and (ps.journal_is_in_doaj=true or ps.journal_is_oa=true) and ps.has_apc=false) tmp +on pd.id=tmp.id; /*EOS*/ -ANALYZE TABLE indi_pub_diamond COMPUTE STATISTICS; +drop table if exists ${stats_db_name}.indi_pub_in_transformative purge; /*EOS*/ -create table if not exists indi_pub_in_transformative stored as parquet as +create table if not exists ${stats_db_name}.indi_pub_in_transformative stored as parquet as select distinct pd.id, coalesce(is_transformative, 0) as is_transformative -from publication pd +from ${stats_db_name}.publication pd left outer join ( - select pd.id, 1 as is_transformative from publication_datasources pd - join datasource d on d.id=pd.datasource + select pd.id, 1 as is_transformative from ${stats_db_name}.publication_datasources pd + join ${stats_db_name}.datasource d on d.id=pd.datasource join STATS_EXT.plan_s_jn ps where (ps.issn_print=d.issn_printed and ps.issn_online=d.issn_online) and ps.is_transformative_journal=true) tmp - on pd.id=tmp.id; + on pd.id=tmp.id; /*EOS*/ -ANALYZE TABLE indi_pub_in_transformative COMPUTE STATISTICS; +drop table if exists ${stats_db_name}.indi_pub_closed_other_open purge; /*EOS*/ -create table if not exists indi_pub_closed_other_open stored as parquet as -select distinct ri.id, coalesce(pub_closed_other_open, 0) as pub_closed_other_open from result_instance ri +create table if not exists ${stats_db_name}.indi_pub_closed_other_open stored as parquet as +select distinct ri.id, coalesce(pub_closed_other_open, 0) as pub_closed_other_open from ${stats_db_name}.result_instance ri left outer join - (select ri.id, 1 as pub_closed_other_open from result_instance ri - join publication p on p.id=ri.id - join datasource d on ri.hostedby=d.id + (select ri.id, 1 as pub_closed_other_open from ${stats_db_name}.result_instance ri + join ${stats_db_name}.publication p on p.id=ri.id + join ${stats_db_name}.datasource d on ri.hostedby=d.id where d.type like '%Journal%' and ri.accessright='Closed Access' and (p.bestlicence='Open Access' or p.bestlicence='Open Source')) tmp - on tmp.id=ri.id; - -ANALYZE TABLE indi_pub_closed_other_open COMPUTE STATISTICS; + on tmp.id=ri.id; /*EOS*/ ---- Sprint 5 ---- -create table if not exists indi_result_no_of_copies stored as parquet as -select id, count(id) as number_of_copies from result_instance group by id; +drop table if exists ${stats_db_name}.indi_result_no_of_copies purge; /*EOS*/ -ANALYZE TABLE indi_result_no_of_copies COMPUTE STATISTICS; +create table if not exists ${stats_db_name}.indi_result_no_of_copies stored as parquet as +select id, count(id) as number_of_copies from ${stats_db_name}.result_instance group by id; /*EOS*/ ---- Sprint 6 ---- -create table if not exists indi_pub_downloads stored as parquet as +drop table if exists ${stats_db_name}.indi_pub_downloads purge; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_pub_downloads stored as parquet as SELECT result_id, sum(downloads) no_downloads from openaire_prod_usage_stats.usage_stats - join publication on result_id=id + join ${stats_db_name}.publication on result_id=id where downloads>0 GROUP BY result_id -order by no_downloads desc; +order by no_downloads desc; /*EOS*/ -ANALYZE TABLE indi_pub_downloads COMPUTE STATISTICS; +--ANALYZE TABLE ${stats_db_name}.indi_pub_downloads COMPUTE STATISTICS; -create table if not exists indi_pub_downloads_datasource stored as parquet as +drop table if exists ${stats_db_name}.indi_pub_downloads_datasource purge; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_pub_downloads_datasource stored as parquet as SELECT result_id, repository_id, sum(downloads) no_downloads from openaire_prod_usage_stats.usage_stats - join publication on result_id=id + join ${stats_db_name}.publication on result_id=id where downloads>0 GROUP BY result_id, repository_id -order by result_id; +order by result_id; /*EOS*/ -ANALYZE TABLE indi_pub_downloads_datasource COMPUTE STATISTICS; +drop table if exists ${stats_db_name}.indi_pub_downloads_year purge; /*EOS*/ -create table if not exists indi_pub_downloads_year stored as parquet as -SELECT result_id, substring(us.`date`, 1,4) as `year`, sum(downloads) no_downloads +create table if not exists ${stats_db_name}.indi_pub_downloads_year stored as parquet as +SELECT result_id, cast(substring(us.`date`, 1,4) as int) as `year`, sum(downloads) no_downloads from openaire_prod_usage_stats.usage_stats us -join publication on result_id=id where downloads>0 -GROUP BY result_id, substring(us.`date`, 1,4); +join ${stats_db_name}.publication on result_id=id where downloads>0 +GROUP BY result_id, substring(us.`date`, 1,4); /*EOS*/ -ANALYZE TABLE indi_pub_downloads_year COMPUTE STATISTICS; +drop table if exists ${stats_db_name}.indi_pub_downloads_datasource_year purge; /*EOS*/ -create table if not exists indi_pub_downloads_datasource_year stored as parquet as -SELECT result_id, substring(us.`date`, 1,4) as `year`, repository_id, sum(downloads) no_downloads from openaire_prod_usage_stats.usage_stats us -join publication on result_id=id +create table if not exists ${stats_db_name}.indi_pub_downloads_datasource_year stored as parquet as +SELECT result_id, cast(substring(us.`date`, 1,4) as int) as `year`, repository_id, sum(downloads) no_downloads from openaire_prod_usage_stats.usage_stats us +join ${stats_db_name}.publication on result_id=id where downloads>0 -GROUP BY result_id, repository_id, substring(us.`date`, 1,4); - -ANALYZE TABLE indi_pub_downloads_datasource_year COMPUTE STATISTICS; +GROUP BY result_id, repository_id, substring(us.`date`, 1,4); /*EOS*/ ---- Sprint 7 ---- -create table if not exists indi_pub_gold_oa stored as parquet as - WITH gold_oa AS ( SELECT - issn_l, - journal_is_in_doaj, - journal_is_oa, - issn_1 as issn - FROM - STATS_EXT.oa_journals - WHERE - issn_1 != "" - UNION - ALL SELECT - issn_l, - journal_is_in_doaj, - journal_is_oa, - issn_2 as issn - FROM - STATS_EXT.oa_journals - WHERE - issn_2 != "" ), issn AS ( SELECT - * - FROM -( SELECT - id, - issn_printed as issn - FROM - datasource - WHERE - issn_printed IS NOT NULL - UNION ALL - SELECT - id, - issn_online as issn - FROM - datasource - WHERE - issn_online IS NOT NULL or id like '%doajarticles%') as issn - WHERE - LENGTH(issn) > 7) -SELECT - DISTINCT pd.id, coalesce(is_gold, 0) as is_gold -FROM - publication_datasources pd - left outer join( - select pd.id, 1 as is_gold FROM publication_datasources pd - JOIN issn on issn.id=pd.datasource - JOIN gold_oa on issn.issn = gold_oa.issn) tmp - on pd.id=tmp.id; +drop table if exists ${stats_db_name}.indi_pub_gold_oa purge; /*EOS*/ -ANALYZE TABLE indi_pub_gold_oa COMPUTE STATISTICS; +--create table if not exists ${stats_db_name}.indi_pub_gold_oa stored as parquet as +-- WITH gold_oa AS ( SELECT +-- issn_l, +-- journal_is_in_doaj, +-- journal_is_oa, +-- issn_1 as issn +-- FROM +-- STATS_EXT.oa_journals +-- WHERE +-- issn_1 != "" +-- UNION +-- ALL SELECT +-- issn_l, +-- journal_is_in_doaj, +-- journal_is_oa, +-- issn_2 as issn +-- FROM +-- STATS_EXT.oa_journals +-- WHERE +-- issn_2 != "" ), issn AS ( SELECT +-- * +-- FROM +--( SELECT +-- id, +-- issn_printed as issn +-- FROM +-- ${stats_db_name}.datasource +-- WHERE +-- issn_printed IS NOT NULL +-- UNION ALL +-- SELECT +-- id, +-- issn_online as issn +-- FROM +-- ${stats_db_name}.datasource +-- WHERE +-- issn_online IS NOT NULL or id like '%doajarticles%') as issn +-- WHERE +-- LENGTH(issn) > 7) +--SELECT +-- DISTINCT pd.id, coalesce(is_gold, 0) as is_gold +--FROM +-- ${stats_db_name}.publication_datasources pd +-- left outer join( +-- select pd.id, 1 as is_gold FROM ${stats_db_name}.publication_datasources pd +-- JOIN issn on issn.id=pd.datasource +-- JOIN gold_oa on issn.issn = gold_oa.issn) tmp +-- on pd.id=tmp.id; -create table if not exists indi_pub_hybrid_oa_with_cc stored as parquet as +--create table if not exists ${stats_db_name}.indi_pub_gold_oa stored as parquet as +--with gold_oa as ( +--SELECT issn,issn_l from stats_ext.issn_gold_oa_dataset_v5), +--issn AS (SELECT * FROM +--(SELECT id,issn_printed as issn FROM ${stats_db_name}.datasource +--WHERE issn_printed IS NOT NULL +--UNION ALL +--SELECT id, issn_online as issn FROM ${stats_db_name}.datasource +--WHERE issn_online IS NOT NULL or id like '%doajarticles%') as issn +--WHERE LENGTH(issn) > 7), +--alljournals AS(select issn, issn_l from stats_ext.alljournals +--where journal_is_in_doaj=true or journal_is_oa=true) +--SELECT DISTINCT pd.id, coalesce(is_gold, 0) as is_gold +--FROM ${stats_db_name}.publication_datasources pd +--left outer join ( +--select pd.id, 1 as is_gold FROM ${stats_db_name}.publication_datasources pd +--JOIN issn on issn.id=pd.datasource +--JOIN gold_oa on issn.issn = gold_oa.issn +--join alljournals on issn.issn=alljournals.issn +--left outer join ${stats_db_name}.result_instance ri on ri.id=pd.id +--and ri.accessright!='Closed Access' and ri.accessright_uw='gold') tmp +--on pd.id=tmp.id; +create table if not exists ${stats_db_name}.indi_pub_gold_oa stored as parquet as +with gold_oa as ( +select distinct issn from ( + SELECT issn_l as issn from stats_ext.issn_gold_oa_dataset_v5 + UNION ALL + SELECT issn as issn from stats_ext.issn_gold_oa_dataset_v5 + UNION ALL + select issn from stats_ext.alljournals where journal_is_in_doaj=true or journal_is_oa=true + UNION ALL + select issn_l as issn from stats_ext.alljournals where journal_is_in_doaj=true or journal_is_oa=true) foo), +dd as ( +select distinct * from ( + select id, issn_printed as issn from ${stats_db_name}.datasource d where d.id like '%doajarticles%' + UNION ALL + select id, issn_online as issn from ${stats_db_name}.datasource d where d.id like '%doajarticles%' + UNION ALL + select id, issn_printed as issn from ${stats_db_name}.datasource d join gold_oa on gold_oa.issn=d.issn_printed + UNION ALL + select id, issn_online as issn from ${stats_db_name}.datasource d join gold_oa on gold_oa.issn=d.issn_online) foo +) +SELECT DISTINCT pd.id, coalesce(is_gold, 0) as is_gold +FROM ${stats_db_name}.publication_datasources pd +left outer join ( + select pd.id, 1 as is_gold + FROM ${stats_db_name}.publication_datasources pd + join dd on dd.id=pd.datasource + left outer join ${stats_db_name}.result_accessroute ra on ra.id = pd.id where ra.accessroute = 'gold') tmp on tmp.id=pd.id; /*EOS*/ + +drop table if exists ${stats_db_name}.indi_pub_hybrid_oa_with_cc purge; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_pub_hybrid_oa_with_cc stored as parquet as WITH hybrid_oa AS ( SELECT issn_l, journal_is_in_doaj, journal_is_oa, issn_print as issn FROM STATS_EXT.plan_s_jn @@ -322,290 +398,318 @@ create table if not exists indi_pub_hybrid_oa_with_cc stored as parquet as SELECT * FROM ( SELECT id, issn_printed as issn - FROM datasource + FROM ${stats_db_name}.datasource WHERE issn_printed IS NOT NULL UNION ALL SELECT id,issn_online as issn - FROM datasource + FROM ${stats_db_name}.datasource WHERE issn_online IS NOT NULL ) as issn WHERE LENGTH(issn) > 7) SELECT DISTINCT pd.id, coalesce(is_hybrid_oa, 0) as is_hybrid_oa -FROM publication_datasources pd +FROM ${stats_db_name}.publication_datasources pd LEFT OUTER JOIN ( - SELECT pd.id, 1 as is_hybrid_oa from publication_datasources pd - JOIN datasource d on d.id=pd.datasource + SELECT pd.id, 1 as is_hybrid_oa from ${stats_db_name}.publication_datasources pd + JOIN ${stats_db_name}.datasource d on d.id=pd.datasource JOIN issn on issn.id=pd.datasource JOIN hybrid_oa ON issn.issn = hybrid_oa.issn - JOIN indi_result_has_cc_licence cc on pd.id=cc.id - JOIN indi_pub_gold_oa ga on pd.id=ga.id - where cc.has_cc_license=1 and ga.is_gold=0) tmp on pd.id=tmp.id; + JOIN ${stats_db_name}.indi_result_has_cc_licence cc on pd.id=cc.id + JOIN ${stats_db_name}.indi_pub_gold_oa ga on pd.id=ga.id + where cc.has_cc_license=1 and ga.is_gold=0) tmp on pd.id=tmp.id; /*EOS*/ -ANALYZE TABLE indi_pub_hybrid_oa_with_cc COMPUTE STATISTICS; +drop table if exists ${stats_db_name}.indi_pub_hybrid purge; /*EOS*/ -create table if not exists indi_pub_hybrid stored as parquet as - WITH gold_oa AS ( SELECT - issn_l, - journal_is_in_doaj, - journal_is_oa, - issn_1 as issn, - has_apc - FROM - STATS_EXT.oa_journals - WHERE - issn_1 != "" - UNION - ALL SELECT - issn_l, - journal_is_in_doaj, - journal_is_oa, - issn_2 as issn, - has_apc - FROM - STATS_EXT.oa_journals - WHERE - issn_2 != "" ), issn AS ( SELECT - * - FROM -( SELECT - id, - issn_printed as issn - FROM - datasource - WHERE - issn_printed IS NOT NULL - UNION ALL - SELECT - id, - issn_online as issn - FROM - datasource - WHERE - issn_online IS NOT NULL or id like '%doajarticles%') as issn - WHERE - LENGTH(issn) > 7) -select distinct pd.id, coalesce(is_hybrid, 0) as is_hybrid -from publication_datasources pd - left outer join ( - select pd.id, 1 as is_hybrid from publication_datasources pd - join datasource d on d.id=pd.datasource - join issn on issn.id=pd.datasource - join gold_oa on issn.issn=gold_oa.issn - where (gold_oa.journal_is_in_doaj=false or gold_oa.journal_is_oa=false))tmp - on pd.id=tmp.id; +--create table if not exists ${stats_db_name}.indi_pub_hybrid stored as parquet as +-- WITH gold_oa AS ( SELECT +-- issn_l, +-- journal_is_in_doaj, +-- journal_is_oa, +-- issn_1 as issn, +-- has_apc +-- FROM +-- STATS_EXT.oa_journals +-- WHERE +-- issn_1 != "" +-- UNION +-- ALL SELECT +-- issn_l, +-- journal_is_in_doaj, +-- journal_is_oa, +-- issn_2 as issn, +-- has_apc +-- FROM +-- STATS_EXT.oa_journals +-- WHERE +-- issn_2 != "" ), issn AS ( SELECT +-- * +-- FROM +--( SELECT +-- id, +-- issn_printed as issn +-- FROM +-- ${stats_db_name}.datasource +-- WHERE +-- issn_printed IS NOT NULL +-- UNION ALL +-- SELECT +-- id, +-- issn_online as issn +-- FROM +-- ${stats_db_name}.datasource +-- WHERE +-- issn_online IS NOT NULL or id like '%doajarticles%') as issn +-- WHERE +-- LENGTH(issn) > 7) +--select distinct pd.id, coalesce(is_hybrid, 0) as is_hybrid +--from ${stats_db_name}.publication_datasources pd +-- left outer join ( +-- select pd.id, 1 as is_hybrid from ${stats_db_name}.publication_datasources pd +-- join ${stats_db_name}.datasource d on d.id=pd.datasource +-- join issn on issn.id=pd.datasource +-- join gold_oa on issn.issn=gold_oa.issn +-- where (gold_oa.journal_is_in_doaj=false or gold_oa.journal_is_oa=false))tmp +-- on pd.id=tmp.id; -ANALYZE TABLE indi_pub_hybrid COMPUTE STATISTICS; +--create table if not exists ${stats_db_name}.indi_pub_hybrid stored as parquet as +--select distinct pd.id,coalesce(is_hybrid,0) is_hybrid from ${stats_db_name}.publication_datasources pd +--left outer join (select pd.id, 1 as is_hybrid from ${stats_db_name}.publication_datasources pd +--join ${stats_db_name}.datasource d on pd.datasource=d.id +--join ${stats_db_name}.result_instance ri on ri.id=pd.id +--join ${stats_db_name}.indi_pub_gold_oa indi_gold on indi_gold.id=pd.id +--join ${stats_db_name}.result_accessroute ra on ra.id=pd.id +--where d.type like '%Journal%' and ri.accessright!='Closed Access' and (ri.accessright_uw!='gold' +--or indi_gold.is_gold=0) and (ra.accessroute='hybrid' or ri.license is not null)) tmp +--on pd.id=tmp.id; -create table if not exists indi_org_fairness stored as parquet as +create table if not exists ${stats_db_name}.indi_pub_hybrid stored as parquet as +select distinct pd.id,coalesce(is_hybrid,0) is_hybrid from ${stats_db_name}.publication pd +left outer join (select pd.id, 1 as is_hybrid from ${stats_db_name}.publication pd +join ${stats_db_name}.result_instance ri on ri.id=pd.id +join ${stats_db_name}.indi_pub_gold_oa indi_gold on indi_gold.id=pd.id +join ${stats_db_name}.result_accessroute ra on ra.id=pd.id +join ${stats_db_name}.datasource d on d.id=ri.hostedby +where indi_gold.is_gold=0 and ((d.type like '%Journal%' and ri.accessright!='Closed Access' and ri.accessright!='Restricted' and ri.license is not null) or +ra.accessroute='hybrid'))tmp +on pd.id=tmp.id; /*EOS*/ + +drop table if exists ${stats_db_name}.indi_org_fairness purge; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_org_fairness stored as parquet as --return results with PIDs, and rich metadata group by organization with result_fair as - (select ro.organization organization, count(distinct ro.id) no_result_fair from result_organization ro - join result r on r.id=ro.id + (select ro.organization organization, count(distinct ro.id) no_result_fair from ${stats_db_name}.result_organization ro + join ${stats_db_name}.result r on r.id=ro.id --join result_pids rp on r.id=rp.id where (title is not null) and (publisher is not null) and (abstract=true) and (year is not null) and (authors>0) and cast(year as int)>2003 group by ro.organization), --return all results group by organization - allresults as (select organization, count(distinct ro.id) no_allresults from result_organization ro - join result r on r.id=ro.id + allresults as (select ro.organization, count(distinct ro.id) no_allresults from ${stats_db_name}.result_organization ro + join ${stats_db_name}.result r on r.id=ro.id where cast(year as int)>2003 - group by organization) + group by ro.organization) --return results_fair/all_results select allresults.organization, result_fair.no_result_fair/allresults.no_allresults org_fairness from allresults - join result_fair on result_fair.organization=allresults.organization; + join result_fair on result_fair.organization=allresults.organization; /*EOS*/ -ANALYZE TABLE indi_org_fairness COMPUTE STATISTICS; - -create table if not exists indi_org_fairness_pub_pr stored as parquet as - with result_fair as - (select ro.organization organization, count(distinct ro.id) no_result_fair - from result_organization ro - join publication p on p.id=ro.id - join indi_pub_doi_from_crossref dc on dc.id=p.id - join indi_pub_grey_lit gl on gl.id=p.id +CREATE TEMPORARY VIEW result_fair as +select ro.organization organization, count(distinct ro.id) no_result_fair + from ${stats_db_name}.result_organization ro + join ${stats_db_name}.publication p on p.id=ro.id + join ${stats_db_name}.indi_pub_doi_from_crossref dc on dc.id=p.id + join ${stats_db_name}.indi_pub_grey_lit gl on gl.id=p.id where (title is not null) and (publisher is not null) and (abstract=true) and (year is not null) and (authors>0) and cast(year as int)>2003 and dc.doi_from_crossref=1 and gl.grey_lit=0 - group by ro.organization), - allresults as (select organization, count(distinct ro.id) no_allresults from result_organization ro - join publication p on p.id=ro.id + group by ro.organization; /*EOS*/ + +CREATE TEMPORARY VIEW allresults as +select ro.organization, count(distinct ro.id) no_allresults from ${stats_db_name}.result_organization ro + join ${stats_db_name}.publication p on p.id=ro.id where cast(year as int)>2003 - group by organization) ---return results_fair/all_results -select allresults.organization, result_fair.no_result_fair/allresults.no_allresults org_fairness -from allresults - join result_fair on result_fair.organization=allresults.organization; + group by ro.organization; /*EOS*/ -ANALYZE TABLE indi_org_fairness_pub_pr COMPUTE STATISTICS; +drop table if exists ${stats_db_name}.indi_org_fairness_pub_pr purge; /*EOS*/ -CREATE TEMPORARY table result_fair as - select year, ro.organization organization, count(distinct ro.id) no_result_fair from result_organization ro - join result p on p.id=ro.id +create table if not exists ${stats_db_name}.indi_org_fairness_pub_pr stored as parquet as +select ar.organization, rf.no_result_fair/ar.no_allresults org_fairness +from allresults ar + join result_fair rf on rf.organization=ar.organization; /*EOS*/ + +DROP VIEW result_fair; /*EOS*/ +DROP VIEW allresults; /*EOS*/ + +CREATE TEMPORARY VIEW result_fair as + select year, ro.organization organization, count(distinct ro.id) no_result_fair from ${stats_db_name}.result_organization ro + join ${stats_db_name}.result p on p.id=ro.id where (title is not null) and (publisher is not null) and (abstract=true) and (year is not null) and (authors>0) and cast(year as int)>2003 - group by ro.organization, year; + group by ro.organization, year; /*EOS*/ -CREATE TEMPORARY TABLE allresults as select year, organization, count(distinct ro.id) no_allresults from result_organization ro - join result p on p.id=ro.id +CREATE TEMPORARY VIEW allresults as select year, ro.organization, count(distinct ro.id) no_allresults from ${stats_db_name}.result_organization ro + join ${stats_db_name}.result p on p.id=ro.id where cast(year as int)>2003 - group by organization, year; + group by ro.organization, year; /*EOS*/ -create table if not exists indi_org_fairness_pub_year stored as parquet as -select allresults.year, allresults.organization, result_fair.no_result_fair/allresults.no_allresults org_fairness +drop table if exists ${stats_db_name}.indi_org_fairness_pub_year purge; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_org_fairness_pub_year stored as parquet as +select cast(allresults.year as int) year, allresults.organization, result_fair.no_result_fair/allresults.no_allresults org_fairness from allresults - join result_fair on result_fair.organization=allresults.organization and result_fair.year=allresults.year; + join result_fair on result_fair.organization=allresults.organization and result_fair.year=allresults.year; /*EOS*/ -DROP table result_fair purge; -DROP table allresults purge; +DROP VIEW result_fair; /*EOS*/ +DROP VIEW allresults; /*EOS*/ -ANALYZE TABLE indi_org_fairness_pub_year COMPUTE STATISTICS; - -CREATE TEMPORARY TABLE result_fair as +CREATE TEMPORARY VIEW result_fair as select ro.organization organization, count(distinct ro.id) no_result_fair - from result_organization ro - join result p on p.id=ro.id + from ${stats_db_name}.result_organization ro + join ${stats_db_name}.result p on p.id=ro.id where (title is not null) and (publisher is not null) and (abstract=true) and (year is not null) and (authors>0) and cast(year as int)>2003 - group by ro.organization; + group by ro.organization; /*EOS*/ -CREATE TEMPORARY TABLE allresults as - select organization, count(distinct ro.id) no_allresults from result_organization ro - join result p on p.id=ro.id +CREATE TEMPORARY VIEW allresults as + select ro.organization, count(distinct ro.id) no_allresults from ${stats_db_name}.result_organization ro + join ${stats_db_name}.result p on p.id=ro.id where cast(year as int)>2003 - group by organization; + group by ro.organization; /*EOS*/ -create table if not exists indi_org_fairness_pub as -select allresults.organization, result_fair.no_result_fair/allresults.no_allresults org_fairness -from allresults join result_fair on result_fair.organization=allresults.organization; +drop table if exists ${stats_db_name}.indi_org_fairness_pub purge; /*EOS*/ -DROP table result_fair purge; -DROP table allresults purge; +create table if not exists ${stats_db_name}.indi_org_fairness_pub as +select ar.organization, rf.no_result_fair/ar.no_allresults org_fairness +from allresults ar join result_fair rf +on rf.organization=ar.organization; /*EOS*/ -ANALYZE TABLE indi_org_fairness_pub COMPUTE STATISTICS; +DROP VIEW result_fair; /*EOS*/ +DROP VIEW allresults; /*EOS*/ -CREATE TEMPORARY TABLE result_fair as - select year, ro.organization organization, count(distinct ro.id) no_result_fair from result_organization ro - join result r on r.id=ro.id - join result_pids rp on r.id=rp.id +CREATE TEMPORARY VIEW result_fair as + select year, ro.organization organization, count(distinct ro.id) no_result_fair from ${stats_db_name}.result_organization ro + join ${stats_db_name}.result r on r.id=ro.id + join ${stats_db_name}.result_pids rp on r.id=rp.id where (title is not null) and (publisher is not null) and (abstract=true) and (year is not null) and (authors>0) and cast(year as int)>2003 - group by ro.organization, year; + group by ro.organization, year; /*EOS*/ -CREATE TEMPORARY TABLE allresults as - select year, organization, count(distinct ro.id) no_allresults from result_organization ro - join result r on r.id=ro.id +CREATE TEMPORARY VIEW allresults as + select year, ro.organization, count(distinct ro.id) no_allresults from ${stats_db_name}.result_organization ro + join ${stats_db_name}.result r on r.id=ro.id where cast(year as int)>2003 - group by organization, year; + group by ro.organization, year; /*EOS*/ -create table if not exists indi_org_fairness_year stored as parquet as - select allresults.year, allresults.organization, result_fair.no_result_fair/allresults.no_allresults org_fairness +drop table if exists ${stats_db_name}.indi_org_fairness_year purge; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_org_fairness_year stored as parquet as + select cast(allresults.year as int) year, allresults.organization, result_fair.no_result_fair/allresults.no_allresults org_fairness from allresults - join result_fair on result_fair.organization=allresults.organization and result_fair.year=allresults.year; + join result_fair on result_fair.organization=allresults.organization and cast(result_fair.year as int)=cast(allresults.year as int); /*EOS*/ -DROP table result_fair purge; -DROP table allresults purge; +DROP VIEW result_fair; /*EOS*/ +DROP VIEW allresults; /*EOS*/ -ANALYZE TABLE indi_org_fairness_year COMPUTE STATISTICS; - -CREATE TEMPORARY TABLE result_with_pid as - select year, ro.organization organization, count(distinct rp.id) no_result_with_pid from result_organization ro - join result_pids rp on rp.id=ro.id - join result r on r.id=rp.id +CREATE TEMPORARY VIEW result_with_pid as + select year, ro.organization, count(distinct rp.id) no_result_with_pid from ${stats_db_name}.result_organization ro + join ${stats_db_name}.result_pids rp on rp.id=ro.id + join ${stats_db_name}.result r on r.id=rp.id where cast(year as int) >2003 - group by ro.organization, year; + group by ro.organization, year; /*EOS*/ -CREATE TEMPORARY TABLE allresults as - select year, organization, count(distinct ro.id) no_allresults from result_organization ro - join result r on r.id=ro.id +CREATE TEMPORARY VIEW allresults as + select year, ro.organization, count(distinct ro.id) no_allresults from ${stats_db_name}.result_organization ro + join ${stats_db_name}.result r on r.id=ro.id where cast(year as int) >2003 - group by organization, year; + group by ro.organization, year; /*EOS*/ -create table if not exists indi_org_findable_year stored as parquet as -select allresults.year, allresults.organization, result_with_pid.no_result_with_pid/allresults.no_allresults org_findable +drop table if exists ${stats_db_name}.indi_org_findable_year purge; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_org_findable_year stored as parquet as +select cast(allresults.year as int) year, allresults.organization, result_with_pid.no_result_with_pid/allresults.no_allresults org_findable from allresults - join result_with_pid on result_with_pid.organization=allresults.organization and result_with_pid.year=allresults.year; + join result_with_pid on result_with_pid.organization=allresults.organization and cast(result_with_pid.year as int)=cast(allresults.year as int); /*EOS*/ -DROP table result_with_pid purge; -DROP table allresults purge; +DROP VIEW result_with_pid; /*EOS*/ +DROP VIEW allresults; /*EOS*/ -ANALYZE TABLE indi_org_findable_year COMPUTE STATISTICS; - -CREATE TEMPORARY TABLE result_with_pid as -select ro.organization organization, count(distinct rp.id) no_result_with_pid from result_organization ro - join result_pids rp on rp.id=ro.id - join result r on r.id=rp.id +CREATE TEMPORARY VIEW result_with_pid as +select ro.organization, count(distinct rp.id) no_result_with_pid from ${stats_db_name}.result_organization ro + join ${stats_db_name}.result_pids rp on rp.id=ro.id + join ${stats_db_name}.result r on r.id=rp.id where cast(year as int) >2003 - group by ro.organization; + group by ro.organization; /*EOS*/ -CREATE TEMPORARY TABLE allresults as -select organization, count(distinct ro.id) no_allresults from result_organization ro - join result r on r.id=ro.id +CREATE TEMPORARY VIEW allresults as +select ro.organization, count(distinct ro.id) no_allresults from ${stats_db_name}.result_organization ro + join ${stats_db_name}.result r on r.id=ro.id where cast(year as int) >2003 - group by organization; + group by ro.organization; /*EOS*/ -create table if not exists indi_org_findable stored as parquet as +drop table if exists ${stats_db_name}.indi_org_findable purge; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_org_findable stored as parquet as select allresults.organization, result_with_pid.no_result_with_pid/allresults.no_allresults org_findable from allresults - join result_with_pid on result_with_pid.organization=allresults.organization; + join result_with_pid on result_with_pid.organization=allresults.organization; /*EOS*/ -DROP table result_with_pid purge; -DROP table allresults purge; +DROP VIEW result_with_pid; /*EOS*/ +DROP VIEW allresults; /*EOS*/ -ANALYZE TABLE indi_org_findable COMPUTE STATISTICS; - -CREATE TEMPORARY TABLE pubs_oa as -SELECT ro.organization, count(distinct r.id) no_oapubs FROM publication r - join result_organization ro on ro.id=r.id - join result_instance ri on ri.id=r.id +CREATE TEMPORARY VIEW pubs_oa as +SELECT ro.organization, count(distinct r.id) no_oapubs FROM ${stats_db_name}.publication r + join ${stats_db_name}.result_organization ro on ro.id=r.id + join ${stats_db_name}.result_instance ri on ri.id=r.id where (ri.accessright = 'Open Access' or ri.accessright = 'Embargo' or ri.accessright = 'Open Source') and cast(r.year as int)>2003 - group by ro.organization; + group by ro.organization; /*EOS*/ -CREATE TEMPORARY TABLE datasets_oa as -SELECT ro.organization, count(distinct r.id) no_oadatasets FROM dataset r - join result_organization ro on ro.id=r.id - join result_instance ri on ri.id=r.id +CREATE TEMPORARY VIEW datasets_oa as +SELECT ro.organization, count(distinct r.id) no_oadatasets FROM ${stats_db_name}.dataset r + join ${stats_db_name}.result_organization ro on ro.id=r.id + join ${stats_db_name}.result_instance ri on ri.id=r.id where (ri.accessright = 'Open Access' or ri.accessright = 'Embargo' or ri.accessright = 'Open Source') and cast(r.year as int)>2003 - group by ro.organization; + group by ro.organization; /*EOS*/ -CREATE TEMPORARY TABLE software_oa as -SELECT ro.organization, count(distinct r.id) no_oasoftware FROM software r - join result_organization ro on ro.id=r.id - join result_instance ri on ri.id=r.id +CREATE TEMPORARY VIEW software_oa as +SELECT ro.organization, count(distinct r.id) no_oasoftware FROM ${stats_db_name}.software r + join ${stats_db_name}.result_organization ro on ro.id=r.id + join ${stats_db_name}.result_instance ri on ri.id=r.id where (ri.accessright = 'Open Access' or ri.accessright = 'Embargo' or ri.accessright = 'Open Source') and cast(r.year as int)>2003 - group by ro.organization; + group by ro.organization; /*EOS*/ -CREATE TEMPORARY TABLE allpubs as -SELECT ro.organization organization, count(ro.id) no_allpubs FROM result_organization ro - join publication ps on ps.id=ro.id +CREATE TEMPORARY VIEW allpubs as +SELECT ro.organization, count(ro.id) no_allpubs FROM ${stats_db_name}.result_organization ro + join ${stats_db_name}.publication ps on ps.id=ro.id where cast(ps.year as int)>2003 - group by ro.organization; + group by ro.organization; /*EOS*/ -CREATE TEMPORARY TABLE alldatasets as -SELECT ro.organization organization, count(ro.id) no_alldatasets FROM result_organization ro - join dataset ps on ps.id=ro.id +CREATE TEMPORARY VIEW alldatasets as +SELECT ro.organization, count(ro.id) no_alldatasets FROM ${stats_db_name}.result_organization ro + join ${stats_db_name}.dataset ps on ps.id=ro.id where cast(ps.year as int)>2003 - group by ro.organization; + group by ro.organization; /*EOS*/ -CREATE TEMPORARY TABLE allsoftware as -SELECT ro.organization organization, count(ro.id) no_allsoftware FROM result_organization ro - join software ps on ps.id=ro.id +CREATE TEMPORARY VIEW allsoftware as +SELECT ro.organization, count(ro.id) no_allsoftware FROM ${stats_db_name}.result_organization ro + join ${stats_db_name}.software ps on ps.id=ro.id where cast(ps.year as int)>2003 - group by ro.organization; + group by ro.organization; /*EOS*/ -CREATE TEMPORARY TABLE allpubsshare as +CREATE TEMPORARY VIEW allpubsshare as select pubs_oa.organization, pubs_oa.no_oapubs/allpubs.no_allpubs p from allpubs - join pubs_oa on allpubs.organization=pubs_oa.organization; + join pubs_oa on allpubs.organization=pubs_oa.organization; /*EOS*/ -CREATE TEMPORARY TABLE alldatasetssshare as +CREATE TEMPORARY VIEW alldatasetssshare as select datasets_oa.organization, datasets_oa.no_oadatasets/alldatasets.no_alldatasets d from alldatasets - join datasets_oa on alldatasets.organization=datasets_oa.organization; + join datasets_oa on alldatasets.organization=datasets_oa.organization; /*EOS*/ -CREATE TEMPORARY TABLE allsoftwaresshare as +CREATE TEMPORARY VIEW allsoftwaresshare as select software_oa.organization, software_oa.no_oasoftware/allsoftware.no_allsoftware s from allsoftware - join software_oa on allsoftware.organization=software_oa.organization; + join software_oa on allsoftware.organization=software_oa.organization; /*EOS*/ -create table if not exists indi_org_openess stored as parquet as +drop table if exists ${stats_db_name}.indi_org_openess purge; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_org_openess stored as parquet as select allpubsshare.organization, (p+if(isnull(s),0,s)+if(isnull(d),0,d))/(1+(case when s is null then 0 else 1 end) +(case when d is null then 0 else 1 end)) @@ -615,187 +719,483 @@ select allpubsshare.organization, on tmp1.organization=allpubsshare.organization left outer join (select organization,s from allsoftwaresshare) tmp2 - on tmp2.organization=allpubsshare.organization; + on tmp2.organization=allpubsshare.organization; /*EOS*/ -DROP TABLE pubs_oa purge; -DROP TABLE datasets_oa purge; -DROP TABLE software_oa purge; -DROP TABLE allpubs purge; -DROP TABLE alldatasets purge; -DROP TABLE allsoftware purge; -DROP TABLE allpubsshare purge; -DROP TABLE alldatasetssshare purge; -DROP TABLE allsoftwaresshare purge; +DROP VIEW pubs_oa; /*EOS*/ +DROP VIEW datasets_oa; /*EOS*/ +DROP VIEW software_oa; /*EOS*/ +DROP VIEW allpubs; /*EOS*/ +DROP VIEW alldatasets; /*EOS*/ +DROP VIEW allsoftware; /*EOS*/ +DROP VIEW allpubsshare; /*EOS*/ +DROP VIEW alldatasetssshare; /*EOS*/ +DROP VIEW allsoftwaresshare; /*EOS*/ -ANALYZE TABLE indi_org_openess COMPUTE STATISTICS; - -CREATE TEMPORARY TABLE pubs_oa AS -SELECT r.year, ro.organization, count(distinct r.id) no_oapubs FROM publication r - join result_organization ro on ro.id=r.id - join result_instance ri on ri.id=r.id +CREATE TEMPORARY VIEW pubs_oa AS +SELECT r.year, ro.organization, count(distinct r.id) no_oapubs FROM ${stats_db_name}.publication r + join ${stats_db_name}.result_organization ro on ro.id=r.id + join ${stats_db_name}.result_instance ri on ri.id=r.id where (ri.accessright = 'Open Access' or ri.accessright = 'Embargo' or ri.accessright = 'Open Source') and cast(r.year as int)>2003 - group by ro.organization,r.year; + group by ro.organization,r.year; /*EOS*/ -CREATE TEMPORARY TABLE datasets_oa AS -SELECT r.year,ro.organization, count(distinct r.id) no_oadatasets FROM dataset r - join result_organization ro on ro.id=r.id - join result_instance ri on ri.id=r.id +CREATE TEMPORARY VIEW datasets_oa AS +SELECT r.year,ro.organization, count(distinct r.id) no_oadatasets FROM ${stats_db_name}.dataset r + join ${stats_db_name}.result_organization ro on ro.id=r.id + join ${stats_db_name}.result_instance ri on ri.id=r.id where (ri.accessright = 'Open Access' or ri.accessright = 'Embargo' or ri.accessright = 'Open Source') and cast(r.year as int)>2003 - group by ro.organization, r.year; + group by ro.organization, r.year; /*EOS*/ -CREATE TEMPORARY TABLE software_oa AS -SELECT r.year,ro.organization, count(distinct r.id) no_oasoftware FROM software r - join result_organization ro on ro.id=r.id - join result_instance ri on ri.id=r.id +CREATE TEMPORARY VIEW software_oa AS +SELECT r.year,ro.organization, count(distinct r.id) no_oasoftware FROM ${stats_db_name}.software r + join ${stats_db_name}.result_organization ro on ro.id=r.id + join ${stats_db_name}.result_instance ri on ri.id=r.id where (ri.accessright = 'Open Access' or ri.accessright = 'Embargo' or ri.accessright = 'Open Source') and cast(r.year as int)>2003 - group by ro.organization, r.year; + group by ro.organization, r.year; /*EOS*/ -CREATE TEMPORARY TABLE allpubs as -SELECT p.year,ro.organization organization, count(ro.id) no_allpubs FROM result_organization ro - join publication p on p.id=ro.id where cast(p.year as int)>2003 - group by ro.organization, p.year; +CREATE TEMPORARY VIEW allpubs as +SELECT p.year,ro.organization organization, count(ro.id) no_allpubs FROM ${stats_db_name}.result_organization ro + join ${stats_db_name}.publication p on p.id=ro.id where cast(p.year as int)>2003 + group by ro.organization, p.year; /*EOS*/ -CREATE TEMPORARY TABLE alldatasets as -SELECT d.year, ro.organization organization, count(ro.id) no_alldatasets FROM result_organization ro - join dataset d on d.id=ro.id where cast(d.year as int)>2003 - group by ro.organization, d.year; +CREATE TEMPORARY VIEW alldatasets as +SELECT d.year, ro.organization organization, count(ro.id) no_alldatasets FROM ${stats_db_name}.result_organization ro + join ${stats_db_name}.dataset d on d.id=ro.id where cast(d.year as int)>2003 + group by ro.organization, d.year; /*EOS*/ -CREATE TEMPORARY TABLE allsoftware as -SELECT s.year,ro.organization organization, count(ro.id) no_allsoftware FROM result_organization ro - join software s on s.id=ro.id where cast(s.year as int)>2003 - group by ro.organization, s.year; +CREATE TEMPORARY VIEW allsoftware as +SELECT s.year,ro.organization organization, count(ro.id) no_allsoftware FROM ${stats_db_name}.result_organization ro + join ${stats_db_name}.software s on s.id=ro.id where cast(s.year as int)>2003 + group by ro.organization, s.year; /*EOS*/ -CREATE TEMPORARY TABLE allpubsshare as +CREATE TEMPORARY VIEW allpubsshare as select allpubs.year, pubs_oa.organization, pubs_oa.no_oapubs/allpubs.no_allpubs p from allpubs - join pubs_oa on allpubs.organization=pubs_oa.organization where cast(allpubs.year as INT)=cast(pubs_oa.year as int); + join pubs_oa on allpubs.organization=pubs_oa.organization where cast(allpubs.year as INT)=cast(pubs_oa.year as int); /*EOS*/ -CREATE TEMPORARY TABLE alldatasetssshare as +CREATE TEMPORARY VIEW alldatasetssshare as select alldatasets.year, datasets_oa.organization, datasets_oa.no_oadatasets/alldatasets.no_alldatasets d from alldatasets - join datasets_oa on alldatasets.organization=datasets_oa.organization where cast(alldatasets.year as INT)=cast(datasets_oa.year as int); + join datasets_oa on alldatasets.organization=datasets_oa.organization where cast(alldatasets.year as INT)=cast(datasets_oa.year as int); /*EOS*/ -CREATE TEMPORARY TABLE allsoftwaresshare as +CREATE TEMPORARY VIEW allsoftwaresshare as select allsoftware.year, software_oa.organization, software_oa.no_oasoftware/allsoftware.no_allsoftware s from allsoftware - join software_oa on allsoftware.organization=software_oa.organization where cast(allsoftware.year as INT)=cast(software_oa.year as int); + join software_oa on allsoftware.organization=software_oa.organization where cast(allsoftware.year as INT)=cast(software_oa.year as int); /*EOS*/ +drop table if exists ${stats_db_name}.indi_org_openess_year purge; /*EOS*/ -create table if not exists indi_org_openess_year stored as parquet as -select allpubsshare.year, allpubsshare.organization, +create table if not exists ${stats_db_name}.indi_org_openess_year stored as parquet as +select cast(allpubsshare.year as int) year, allpubsshare.organization, (p+if(isnull(s),0,s)+if(isnull(d),0,d))/(1+(case when s is null then 0 else 1 end) +(case when d is null then 0 else 1 end)) org_openess FROM allpubsshare - left outer join (select year, organization,d from + left outer join (select cast(year as int), organization,d from alldatasetssshare) tmp1 on tmp1.organization=allpubsshare.organization and tmp1.year=allpubsshare.year - left outer join (select year, organization,s from + left outer join (select cast(year as int), organization,s from allsoftwaresshare) tmp2 - on tmp2.organization=allpubsshare.organization and tmp2.year=allpubsshare.year; + on tmp2.organization=allpubsshare.organization and cast(tmp2.year as int)=cast(allpubsshare.year as int); /*EOS*/ -DROP TABLE pubs_oa purge; -DROP TABLE datasets_oa purge; -DROP TABLE software_oa purge; -DROP TABLE allpubs purge; -DROP TABLE alldatasets purge; -DROP TABLE allsoftware purge; -DROP TABLE allpubsshare purge; -DROP TABLE alldatasetssshare purge; -DROP TABLE allsoftwaresshare purge; +DROP VIEW pubs_oa; /*EOS*/ +DROP VIEW datasets_oa; /*EOS*/ +DROP VIEW software_oa; /*EOS*/ +DROP VIEW allpubs; /*EOS*/ +DROP VIEW alldatasets; /*EOS*/ +DROP VIEW allsoftware; /*EOS*/ +DROP VIEW allpubsshare; /*EOS*/ +DROP VIEW alldatasetssshare; /*EOS*/ +DROP VIEW allsoftwaresshare; /*EOS*/ -ANALYZE TABLE indi_org_openess_year COMPUTE STATISTICS; +drop table if exists ${stats_db_name}.indi_pub_has_preprint purge; /*EOS*/ -create table if not exists indi_pub_has_preprint stored as parquet as +create table if not exists ${stats_db_name}.indi_pub_has_preprint stored as parquet as select distinct p.id, coalesce(has_preprint, 0) as has_preprint -from publication_classifications p +from ${stats_db_name}.publication_classifications p left outer join ( select p.id, 1 as has_preprint - from publication_classifications p + from ${stats_db_name}.publication_classifications p where p.type='Preprint') tmp - on p.id= tmp.id; + on p.id= tmp.id; /*EOS*/ +drop table if exists ${stats_db_name}.indi_pub_in_subscribed purge; /*EOS*/ -ANALYZE TABLE indi_pub_has_preprint COMPUTE STATISTICS; - -create table if not exists indi_pub_in_subscribed stored as parquet as +create table if not exists ${stats_db_name}.indi_pub_in_subscribed stored as parquet as select distinct p.id, coalesce(is_subscription, 0) as is_subscription -from publication p +from ${stats_db_name}.publication p left outer join( - select p.id, 1 as is_subscription from publication p - join indi_pub_gold_oa g on p.id=g.id - join indi_pub_hybrid h on p.id=h.id - join indi_pub_in_transformative t on p.id=t.id + select p.id, 1 as is_subscription from ${stats_db_name}.publication p + join ${stats_db_name}.indi_pub_gold_oa g on p.id=g.id + join ${stats_db_name}.indi_pub_hybrid h on p.id=h.id + join ${stats_db_name}.indi_pub_in_transformative t on p.id=t.id where g.is_gold=0 and h.is_hybrid=0 and t.is_transformative=0) tmp - on p.id=tmp.id; + on p.id=tmp.id; /*EOS*/ -ANALYZE TABLE indi_pub_in_subscribed COMPUTE STATISTICS; +drop table if exists ${stats_db_name}.indi_result_with_pid purge; /*EOS*/ -create table if not exists indi_result_with_pid as +create table if not exists ${stats_db_name}.indi_result_with_pid as select distinct p.id, coalesce(result_with_pid, 0) as result_with_pid -from result p +from ${stats_db_name}.result p left outer join ( select p.id, 1 as result_with_pid - from result_pids p) tmp - on p.id= tmp.id; + from ${stats_db_name}.result_pids p) tmp + on p.id= tmp.id; /*EOS*/ -ANALYZE TABLE indi_result_with_pid COMPUTE STATISTICS; +CREATE TEMPORARY VIEW pub_fos_totals as +select rf.id, count(distinct lvl3) totals from ${stats_db_name}.result_fos rf +group by rf.id; /*EOS*/ -CREATE TEMPORARY TABLE pub_fos_totals as -select rf.id, count(distinct lvl3) totals from result_fos rf -group by rf.id; +drop table if exists ${stats_db_name}.indi_pub_interdisciplinarity purge; /*EOS*/ -create table if not exists indi_pub_interdisciplinarity as +create table if not exists ${stats_db_name}.indi_pub_interdisciplinarity as select distinct p.id as id, coalesce(is_interdisciplinary, 0) as is_interdisciplinary from pub_fos_totals p left outer join ( select pub_fos_totals.id, 1 as is_interdisciplinary from pub_fos_totals -where totals>1) tmp on p.id=tmp.id; +where totals>1) tmp on p.id=tmp.id; /*EOS*/ -drop table pub_fos_totals purge; +drop view pub_fos_totals; /*EOS*/ -ANALYZE TABLE indi_pub_interdisciplinarity COMPUTE STATISTICS; +drop table if exists ${stats_db_name}.indi_pub_bronze_oa purge; /*EOS*/ -create table if not exists indi_pub_bronze_oa stored as parquet as -select distinct p.id, coalesce(is_bronze_oa,0) as is_bronze_oa -from publication p -left outer join -(select p.id, 1 as is_bronze_oa from publication p -join indi_result_has_cc_licence cc on cc.id=p.id -join indi_pub_gold_oa ga on ga.id=p.id -where cc.has_cc_license=0 and ga.is_gold=0) tmp on tmp.id=p.id; +--create table if not exists ${stats_db_name}.indi_pub_bronze_oa stored as parquet as +--select distinct p.id, coalesce(is_bronze_oa,0) as is_bronze_oa +--from ${stats_db_name}.publication p +--left outer join +--(select p.id, 1 as is_bronze_oa from ${stats_db_name}.publication p +--join ${stats_db_name}.indi_result_has_cc_licence cc on cc.id=p.id +--join ${stats_db_name}.indi_pub_gold_oa ga on ga.id=p.id +--join ${stats_db_name}.result_instance ri on ri.id=p.id +--join ${stats_db_name}.datasource d on d.id=ri.hostedby +--where cc.has_cc_license=0 and ga.is_gold=0 +--and (d.type='Journal' or d.type='Journal Aggregator/Publisher') +--and ri.accessright='Open Access') tmp on tmp.id=p.id; --- create table if not exists indi_pub_bronze_oa stored as parquet as --- WITH hybrid_oa AS ( --- SELECT issn_l, journal_is_in_doaj, journal_is_oa, issn_print as issn --- FROM STATS_EXT.plan_s_jn --- WHERE issn_print != "" --- UNION ALL --- SELECT issn_l, journal_is_in_doaj, journal_is_oa, issn_online as issn --- FROM STATS_EXT.plan_s_jn --- WHERE issn_online != "" and (journal_is_in_doaj = FALSE OR journal_is_oa = FALSE)), --- issn AS ( --- SELECT * --- FROM ( --- SELECT id, issn_printed as issn --- FROM datasource --- WHERE issn_printed IS NOT NULL --- UNION ALL --- SELECT id,issn_online as issn --- FROM datasource --- WHERE issn_online IS NOT NULL ) as issn --- WHERE LENGTH(issn) > 7) ---SELECT DISTINCT pd.id, coalesce(is_bronze_oa, 0) as is_bronze_oa ---FROM publication_datasources pd --- LEFT OUTER JOIN ( --- SELECT pd.id, 1 as is_bronze_oa from publication_datasources pd --- JOIN datasource d on d.id=pd.datasource --- JOIN issn on issn.id=pd.datasource --- JOIN hybrid_oa ON issn.issn = hybrid_oa.issn --- JOIN indi_result_has_cc_licence cc on pd.id=cc.id --- JOIN indi_pub_gold_oa ga on pd.id=ga.id --- JOIN indi_pub_hybrid_oa_with_cc hy on hy.id=pd.id --- where cc.has_cc_license=0 and ga.is_gold=0 and hy.is_hybrid_oa=0) tmp on pd.id=tmp.id; +create table ${stats_db_name}.indi_pub_bronze_oa stored as parquet as +select distinct pd.id,coalesce(is_bronze_oa,0) is_bronze_oa from ${stats_db_name}.publication pd +left outer join (select pd.id, 1 as is_bronze_oa from ${stats_db_name}.publication pd +join ${stats_db_name}.result_instance ri on ri.id=pd.id +join ${stats_db_name}.indi_pub_gold_oa indi_gold on indi_gold.id=pd.id +join ${stats_db_name}.indi_pub_hybrid indi_hybrid on indi_hybrid.id=pd.id +join ${stats_db_name}.result_accessroute ra on ra.id=pd.id +join ${stats_db_name}.datasource d on d.id=ri.hostedby +where indi_gold.is_gold=0 and indi_hybrid.is_hybrid=0 +and ((d.type like '%Journal%' and ri.accessright!='Closed Access' +and ri.accessright!='Restricted' and ri.license is null) or ra.accessroute='bronze')) tmp +on pd.id=tmp.id; /*EOS*/ + +CREATE TEMPORARY VIEW project_year_result_year as +select p.id project_id, acronym, r.id result_id, r.year, p.end_year +from ${stats_db_name}.project p +join ${stats_db_name}.result_projects rp on p.id=rp.project +join ${stats_db_name}.result r on r.id=rp.id +where p.end_year is NOT NULL and r.year is not null; /*EOS*/ + +drop table if exists ${stats_db_name}.indi_is_project_result_after purge; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_is_project_result_after stored as parquet as +select pry.project_id, pry.acronym, pry.result_id, +coalesce(is_project_result_after, 0) as is_project_result_after +from project_year_result_year pry +left outer join (select pry.project_id, pry.acronym, pry.result_id, 1 as is_project_result_after +from project_year_result_year pry +where pry.year>pry.end_year) tmp on pry.result_id=tmp.result_id; /*EOS*/ + +drop view project_year_result_year; /*EOS*/ + +drop table if exists ${stats_db_name}.indi_is_funder_plan_s purge; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_is_funder_plan_s stored as parquet as +select distinct f.id, f.name, coalesce(is_funder_plan_s, 0) as is_funder_plan_s +from ${stats_db_name}.funder f + left outer join (select id, name, 1 as is_funder_plan_s from ${stats_db_name}.funder + join stats_ext.plan_s_short on c_o_alition_s_organisation_funder=name) tmp + on f.name= tmp.name; /*EOS*/ + +--Funder Fairness +drop table if exists ${stats_db_name}.indi_funder_fairness purge; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_funder_fairness stored as parquet as + with result_fair as + (select p.funder funder, count(distinct rp.id) no_result_fair from ${stats_db_name}.result_projects rp + join ${stats_db_name}.result r on r.id=rp.id + join ${stats_db_name}.project p on p.id=rp.project + where (r.title is not null) and (publisher is not null) and (abstract=true) and (year is not null) and (authors>0) and cast(year as int)>2003 + group by p.funder), + allresults as (select p.funder funder, count(distinct rp.id) no_allresults from ${stats_db_name}.result_projects rp + join ${stats_db_name}.result r on r.id=rp.id + join ${stats_db_name}.project p on p.id=rp.project + where cast(year as int)>2003 + group by p.funder) +select allresults.funder, result_fair.no_result_fair/allresults.no_allresults funder_fairness +from allresults + join result_fair on result_fair.funder=allresults.funder; /*EOS*/ + +--RIs Fairness +drop table if exists ${stats_db_name}.indi_ris_fairness purge; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_ris_fairness stored as parquet as +with result_contexts as +(select distinct rc.id, context.name ri_initiative from ${stats_db_name}.result_concepts rc +join ${stats_db_name}.concept on concept.id=rc.concept +join ${stats_db_name}.category on category.id=concept.category +join ${stats_db_name}.context on context.id=category.context), +result_fair as + (select rc.ri_initiative ri_initiative, count(distinct rc.id) no_result_fair from result_contexts rc + join ${stats_db_name}.result r on r.id=rc.id + where (title is not null) and (publisher is not null) and (abstract=true) and (year is not null) and (authors>0) and cast(year as int)>2003 + group by rc.ri_initiative), +allresults as +(select rc.ri_initiative ri_initiative, count(distinct rc.id) no_allresults from result_contexts rc + join ${stats_db_name}.result r on r.id=rc.id + where cast(year as int)>2003 + group by rc.ri_initiative) +select allresults.ri_initiative, result_fair.no_result_fair/allresults.no_allresults ris_fairness +from allresults + join result_fair on result_fair.ri_initiative=allresults.ri_initiative; /*EOS*/ + +--Funder Openess + +CREATE TEMPORARY VIEW pubs_oa as +select p.funder funder, count(distinct rp.id) no_oapubs from ${stats_db_name}.result_projects rp +join ${stats_db_name}.project p on p.id=rp.project +join ${stats_db_name}.publication r on r.id=rp.id +join ${stats_db_name}.result_instance ri on ri.id=r.id +where (ri.accessright = 'Open Access' or ri.accessright = 'Embargo' or ri.accessright = 'Open Source') +and cast(r.year as int)>2003 +group by p.funder; /*EOS*/ + + +CREATE TEMPORARY VIEW datasets_oa as +select p.funder funder, count(distinct rp.id) no_oadatasets from ${stats_db_name}.result_projects rp +join ${stats_db_name}.project p on p.id=rp.project +join ${stats_db_name}.dataset r on r.id=rp.id +join ${stats_db_name}.result_instance ri on ri.id=r.id +where (ri.accessright = 'Open Access' or ri.accessright = 'Embargo' or ri.accessright = 'Open Source') +and cast(r.year as int)>2003 +group by p.funder; /*EOS*/ + +CREATE TEMPORARY VIEW software_oa as +select p.funder funder, count(distinct rp.id) no_oasoftware from ${stats_db_name}.result_projects rp +join ${stats_db_name}.project p on p.id=rp.project +join ${stats_db_name}.software r on r.id=rp.id +join ${stats_db_name}.result_instance ri on ri.id=r.id +where (ri.accessright = 'Open Access' or ri.accessright = 'Embargo' or ri.accessright = 'Open Source') +and cast(r.year as int)>2003 +group by p.funder; /*EOS*/ + +CREATE TEMPORARY VIEW allpubs as +select p.funder funder, count(distinct rp.id) no_allpubs from ${stats_db_name}.result_projects rp +join ${stats_db_name}.project p on p.id=rp.project +join ${stats_db_name}.publication r on r.id=rp.id +where cast(r.year as int)>2003 +group by p.funder; /*EOS*/ + +CREATE TEMPORARY VIEW alldatasets as +select p.funder funder, count(distinct rp.id) no_alldatasets from ${stats_db_name}.result_projects rp +join ${stats_db_name}.project p on p.id=rp.project +join ${stats_db_name}.dataset r on r.id=rp.id +where cast(r.year as int)>2003 +group by p.funder; /*EOS*/ + +CREATE TEMPORARY VIEW allsoftware as +select p.funder funder, count(distinct rp.id) no_allsoftware from ${stats_db_name}.result_projects rp +join ${stats_db_name}.project p on p.id=rp.project +join ${stats_db_name}.software r on r.id=rp.id +where cast(r.year as int)>2003 +group by p.funder; /*EOS*/ + +CREATE TEMPORARY VIEW allpubsshare as +select pubs_oa.funder, pubs_oa.no_oapubs/allpubs.no_allpubs p from allpubs + join pubs_oa on allpubs.funder=pubs_oa.funder; /*EOS*/ + +CREATE TEMPORARY VIEW alldatasetssshare as +select datasets_oa.funder, datasets_oa.no_oadatasets/alldatasets.no_alldatasets d + from alldatasets + join datasets_oa on alldatasets.funder=datasets_oa.funder; /*EOS*/ + +CREATE TEMPORARY VIEW allsoftwaresshare as +select software_oa.funder, software_oa.no_oasoftware/allsoftware.no_allsoftware s + from allsoftware + join software_oa on allsoftware.funder=software_oa.funder; /*EOS*/ + +drop table if exists ${stats_db_name}.indi_funder_openess purge; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_funder_openess stored as parquet as +select allpubsshare.funder, + (p+if(isnull(s),0,s)+if(isnull(d),0,d))/(1+(case when s is null then 0 else 1 end) + +(case when d is null then 0 else 1 end)) + funder_openess FROM allpubsshare + left outer join (select funder,d from + alldatasetssshare) tmp1 + on tmp1.funder=allpubsshare.funder + left outer join (select funder,s from + allsoftwaresshare) tmp2 + on tmp2.funder=allpubsshare.funder; /*EOS*/ + +DROP VIEW pubs_oa; /*EOS*/ +DROP VIEW datasets_oa; /*EOS*/ +DROP VIEW software_oa; /*EOS*/ +DROP VIEW allpubs; /*EOS*/ +DROP VIEW alldatasets; /*EOS*/ +DROP VIEW allsoftware; /*EOS*/ +DROP VIEW allpubsshare; /*EOS*/ +DROP VIEW alldatasetssshare; /*EOS*/ +DROP VIEW allsoftwaresshare; /*EOS*/ + +--RIs Openess + +CREATE TEMPORARY VIEW result_contexts as +select distinct rc.id, context.name ri_initiative from ${stats_db_name}.result_concepts rc +join ${stats_db_name}.concept on concept.id=rc.concept +join ${stats_db_name}.category on category.id=concept.category +join ${stats_db_name}.context on context.id=category.context; /*EOS*/ + +CREATE TEMPORARY VIEW pubs_oa as +select rp.ri_initiative ri_initiative, count(distinct rp.id) no_oapubs from result_contexts rp +join ${stats_db_name}.publication r on r.id=rp.id +join ${stats_db_name}.result_instance ri on ri.id=r.id +where (ri.accessright = 'Open Access' or ri.accessright = 'Embargo' or ri.accessright = 'Open Source') +and cast(r.year as int)>2003 +group by rp.ri_initiative; /*EOS*/ + +CREATE TEMPORARY VIEW datasets_oa as +select rp.ri_initiative ri_initiative, count(distinct rp.id) no_oadatasets from result_contexts rp +join ${stats_db_name}.dataset r on r.id=rp.id +join ${stats_db_name}.result_instance ri on ri.id=r.id +where (ri.accessright = 'Open Access' or ri.accessright = 'Embargo' or ri.accessright = 'Open Source') +and cast(r.year as int)>2003 +group by rp.ri_initiative; /*EOS*/ + +CREATE TEMPORARY VIEW software_oa as +select rp.ri_initiative ri_initiative, count(distinct rp.id) no_oasoftware from result_contexts rp +join ${stats_db_name}.software r on r.id=rp.id +join ${stats_db_name}.result_instance ri on ri.id=r.id +where (ri.accessright = 'Open Access' or ri.accessright = 'Embargo' or ri.accessright = 'Open Source') +and cast(r.year as int)>2003 +group by rp.ri_initiative; /*EOS*/ + +CREATE TEMPORARY VIEW allpubs as +select rp.ri_initiative ri_initiative, count(distinct rp.id) no_allpubs from result_contexts rp +join ${stats_db_name}.publication r on r.id=rp.id +where cast(r.year as int)>2003 +group by rp.ri_initiative; /*EOS*/ + +CREATE TEMPORARY VIEW alldatasets as +select rp.ri_initiative ri_initiative, count(distinct rp.id) no_alldatasets from result_contexts rp +join ${stats_db_name}.dataset r on r.id=rp.id +where cast(r.year as int)>2003 +group by rp.ri_initiative; /*EOS*/ + +CREATE TEMPORARY VIEW allsoftware as +select rp.ri_initiative ri_initiative, count(distinct rp.id) no_allsoftware from result_contexts rp +join ${stats_db_name}.software r on r.id=rp.id +where cast(r.year as int)>2003 +group by rp.ri_initiative; /*EOS*/ + +CREATE TEMPORARY VIEW allpubsshare as +select pubs_oa.ri_initiative, pubs_oa.no_oapubs/allpubs.no_allpubs p from allpubs + join pubs_oa on allpubs.ri_initiative=pubs_oa.ri_initiative; /*EOS*/ + +CREATE TEMPORARY VIEW alldatasetssshare as +select datasets_oa.ri_initiative, datasets_oa.no_oadatasets/alldatasets.no_alldatasets d + from alldatasets + join datasets_oa on alldatasets.ri_initiative=datasets_oa.ri_initiative; /*EOS*/ + +CREATE TEMPORARY VIEW allsoftwaresshare as +select software_oa.ri_initiative, software_oa.no_oasoftware/allsoftware.no_allsoftware s + from allsoftware + join software_oa on allsoftware.ri_initiative=software_oa.ri_initiative; /*EOS*/ + +drop table if exists ${stats_db_name}.indi_ris_openess purge; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_ris_openess stored as parquet as +select allpubsshare.ri_initiative, + (p+if(isnull(s),0,s)+if(isnull(d),0,d))/(1+(case when s is null then 0 else 1 end) + +(case when d is null then 0 else 1 end)) + ris_openess FROM allpubsshare + left outer join (select ri_initiative,d from + alldatasetssshare) tmp1 + on tmp1.ri_initiative=allpubsshare.ri_initiative + left outer join (select ri_initiative,s from + allsoftwaresshare) tmp2 + on tmp2.ri_initiative=allpubsshare.ri_initiative; /*EOS*/ + +DROP VIEW result_contexts; /*EOS*/ +DROP VIEW pubs_oa; /*EOS*/ +DROP VIEW datasets_oa; /*EOS*/ +DROP VIEW software_oa; /*EOS*/ +DROP VIEW allpubs; /*EOS*/ +DROP VIEW alldatasets; /*EOS*/ +DROP VIEW allsoftware; /*EOS*/ +DROP VIEW allpubsshare; /*EOS*/ +DROP VIEW alldatasetssshare; /*EOS*/ +DROP VIEW allsoftwaresshare; /*EOS*/ + +--Funder Findability +drop table if exists ${stats_db_name}.indi_funder_findable purge; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_funder_findable stored as parquet as +with result_findable as + (select p.funder funder, count(distinct rp.id) no_result_findable from ${stats_db_name}.result_projects rp + join ${stats_db_name}.publication r on r.id=rp.id + join ${stats_db_name}.project p on p.id=rp.project + join ${stats_db_name}.result_pids rpi on rpi.id=r.id + where cast(year as int)>2003 + group by p.funder), + allresults as (select p.funder funder, count(distinct rp.id) no_allresults from ${stats_db_name}.result_projects rp + join ${stats_db_name}.result r on r.id=rp.id + join ${stats_db_name}.project p on p.id=rp.project + where cast(year as int)>2003 + group by p.funder) +select allresults.funder, result_findable.no_result_findable/allresults.no_allresults funder_findable +from allresults + join result_findable on result_findable.funder=allresults.funder; /*EOS*/ + +--RIs Findability +drop table if exists ${stats_db_name}.indi_ris_findable purge; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_ris_findable stored as parquet as +with result_contexts as +(select distinct rc.id, context.name ri_initiative from ${stats_db_name}.result_concepts rc +join ${stats_db_name}.concept on concept.id=rc.concept +join ${stats_db_name}.category on category.id=concept.category +join ${stats_db_name}.context on context.id=category.context), +result_findable as + (select rc.ri_initiative ri_initiative, count(distinct rc.id) no_result_findable from result_contexts rc + join ${stats_db_name}.result r on r.id=rc.id + join ${stats_db_name}.result_pids rp on rp.id=r.id + where cast(r.year as int)>2003 + group by rc.ri_initiative), +allresults as +(select rc.ri_initiative ri_initiative, count(distinct rc.id) no_allresults from result_contexts rc + join ${stats_db_name}.result r on r.id=rc.id + where cast(r.year as int)>2003 + group by rc.ri_initiative) +select allresults.ri_initiative, result_findable.no_result_findable/allresults.no_allresults ris_findable +from allresults + join result_findable on result_findable.ri_initiative=allresults.ri_initiative; /*EOS*/ + +create table if not exists ${stats_db_name}.indi_pub_publicly_funded stored as parquet as +with org_names_pids as +(select org.id,name, pid from ${stats_db_name}.organization org +join ${stats_db_name}.organization_pids op on org.id=op.id), +publicly_funded_orgs as +(select distinct name from +(select pf.name from stats_ext.insitutions_for_publicly_funded pf +join ${stats_db_name}.fundref f on f.name=pf.name where f.type='government' +union all +select pf.name from stats_ext.insitutions_for_publicly_funded pf +join ${stats_db_name}.project p on p.funder=pf.name +union all +select pf.name from stats_ext.insitutions_for_publicly_funded pf +join org_names_pids op on (op.name=pf.name or op.pid=pf.ror) +and pf.publicly_funded='yes') foo) +select distinct p.id, coalesce(publicly_funded, 0) as publicly_funded +from ${stats_db_name}.publication p +left outer join ( +select distinct ro.id, 1 as publicly_funded from ${stats_db_name}.result_organization ro +join ${stats_db_name}.organization o on o.id=ro.organization +join publicly_funded_orgs pfo on o.name=pfo.name) tmp on p.id=tmp.id; /*EOS*/ -ANALYZE TABLE indi_pub_bronze_oa COMPUTE STATISTICS; \ No newline at end of file diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step16_1-definitions.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step16_1-definitions.sql index 41c95758c..b55af13d4 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step16_1-definitions.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step16_1-definitions.sql @@ -3,6 +3,8 @@ ---------------------------------------------------- -- Peer reviewed: +drop table if exists ${stats_db_name}.result_peerreviewed purge; + create table IF NOT EXISTS ${stats_db_name}.result_peerreviewed STORED AS PARQUET as select r.id as id, case when doi.doi_from_crossref=1 and grey.grey_lit=0 then true else false end as peer_reviewed from ${stats_db_name}.result r @@ -10,12 +12,16 @@ left outer join ${stats_db_name}.indi_pub_doi_from_crossref doi on doi.id=r.id left outer join ${stats_db_name}.indi_pub_grey_lit grey on grey.id=r.id; -- Green OA: +drop table if exists ${stats_db_name}.result_greenoa purge; + create table IF NOT EXISTS ${stats_db_name}.result_greenoa STORED AS PARQUET as select r.id, case when green.green_oa=1 then true else false end as green from ${stats_db_name}.result r left outer join ${stats_db_name}.indi_pub_green_oa green on green.id=r.id; -- GOLD OA: +drop table if exists ${stats_db_name}.result_gold purge; + create table IF NOT EXISTS ${stats_db_name}.result_gold STORED AS PARQUET as select r.id, case when gold.is_gold=1 then true else false end as gold from ${stats_db_name}.result r diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step16_5.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step16_5.sql index f737c1ea6..7faa91697 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step16_5.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step16_5.sql @@ -1,6 +1,7 @@ -- replace the creation of the result view to include the boolean fields from the previous tables (green, gold, -- peer reviewed) drop table if exists ${stats_db_name}.result_tmp; + CREATE TABLE ${stats_db_name}.result_tmp ( id STRING, title STRING, diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step2.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step2.sql index 4ffbd384b..8e56f98fc 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step2.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step2.sql @@ -5,6 +5,7 @@ -------------------------------------------------------------- -- Publication temporary table +DROP TABLE IF EXISTS ${stats_db_name}.publication_tmp purge; CREATE TABLE ${stats_db_name}.publication_tmp ( id STRING, @@ -40,12 +41,16 @@ SELECT substr(p.id, 4) as id, from ${openaire_db_name}.publication p where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.publication_classifications purge; + CREATE TABLE ${stats_db_name}.publication_classifications STORED AS PARQUET AS SELECT substr(p.id, 4) as id, instancetype.classname as type from ${openaire_db_name}.publication p LATERAL VIEW explode(p.instance.instancetype) instances as instancetype where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.publication_concepts purge; + CREATE TABLE ${stats_db_name}.publication_concepts STORED AS PARQUET AS SELECT substr(p.id, 4) as id, case when contexts.context.id RLIKE '^[^::]+::[^::]+::.+$' then contexts.context.id @@ -55,6 +60,8 @@ from ${openaire_db_name}.publication p LATERAL VIEW explode(p.context) contexts as context where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.publication_datasources purge; + CREATE TABLE ${stats_db_name}.publication_datasources STORED AS PARQUET as SELECT p.id, case when d.id is null then 'other' else p.datasource end as datasource FROM ( @@ -66,29 +73,39 @@ FROM ( from ${openaire_db_name}.datasource d WHERE d.datainfo.deletedbyinference = false and d.datainfo.invisible=false) d on p.datasource = d.id; +DROP TABLE IF EXISTS ${stats_db_name}.publication_languages purge; + CREATE TABLE ${stats_db_name}.publication_languages STORED AS PARQUET AS select substr(p.id, 4) as id, p.language.classname as language FROM ${openaire_db_name}.publication p where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.publication_oids purge; + CREATE TABLE ${stats_db_name}.publication_oids STORED AS PARQUET AS SELECT substr(p.id, 4) AS id, oids.ids AS oid FROM ${openaire_db_name}.publication p LATERAL VIEW explode(p.originalid) oids AS ids where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.publication_pids purge; + CREATE TABLE ${stats_db_name}.publication_pids STORED AS PARQUET AS SELECT substr(p.id, 4) AS id, ppid.qualifier.classname AS type, ppid.value as pid FROM ${openaire_db_name}.publication p LATERAL VIEW explode(p.pid) pids AS ppid where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.publication_topics purge; + CREATE TABLE ${stats_db_name}.publication_topics STORED AS PARQUET as select substr(p.id, 4) AS id, subjects.subject.qualifier.classname AS TYPE, subjects.subject.value AS topic FROM ${openaire_db_name}.publication p LATERAL VIEW explode(p.subject) subjects AS subject where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.publication_citations purge; + CREATE TABLE ${stats_db_name}.publication_citations STORED AS PARQUET AS SELECT substr(p.id, 4) AS id, xpath_string(citation.value, "//citation/id[@type='openaire']/@value") AS cites FROM ${openaire_db_name}.publication p diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDB.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDB.sql index 9744d5aae..cc8348f26 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDB.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDB.sql @@ -1,79 +1,3 @@ ---drop database if exists TARGET cascade; ---create database if not exists TARGET; --- ---create view if not exists TARGET.category as select * from SOURCE.category; ---create view if not exists TARGET.concept as select * from SOURCE.concept; ---create view if not exists TARGET.context as select * from SOURCE.context; ---create view if not exists TARGET.country as select * from SOURCE.country; ---create view if not exists TARGET.countrygdp as select * from SOURCE.countrygdp; ---create view if not exists TARGET.creation_date as select * from SOURCE.creation_date; ---create view if not exists TARGET.funder as select * from SOURCE.funder; ---create view if not exists TARGET.fundref as select * from SOURCE.fundref; ---create view if not exists TARGET.rndexpenditure as select * from SOURCE.rndexpediture; ---create view if not exists TARGET.rndgdpexpenditure as select * from SOURCE.rndgdpexpenditure; ---create view if not exists TARGET.doctoratestudents as select * from SOURCE.doctoratestudents; ---create view if not exists TARGET.totalresearchers as select * from SOURCE.totalresearchers; ---create view if not exists TARGET.totalresearchersft as select * from SOURCE.totalresearchersft; ---create view if not exists TARGET.hrrst as select * from SOURCE.hrrst; --- ---create table TARGET.result stored as parquet as --- select distinct * from ( --- select * from SOURCE.result r where exists (select 1 from SOURCE.result_projects rp join SOURCE.project p on rp.project=p.id where rp.id=r.id) --- union all --- select * from SOURCE.result r where exists (select 1 from SOURCE.result_concepts rc where rc.id=r.id) --- union all --- select * from SOURCE.result r where exists (select 1 from SOURCE.result_organization ro where ro.id=r.id and ro.organization in ( --- 'openorgs____::b84450f9864182c67b8611b5593f4250', --"Athena Research and Innovation Center In Information Communication & Knowledge Technologies', --ARC" --- 'openorgs____::d41cf6bd4ab1b1362a44397e0b95c975', --National Research Council --- 'openorgs____::d2a09b9d5eabb10c95f9470e172d05d2', --??? Not exists ?? --- 'openorgs____::d169c7407dd417152596908d48c11460', --Masaryk University --- 'openorgs____::1ec924b1759bb16d0a02f2dad8689b21', --University of Belgrade --- 'openorgs____::0ae431b820e4c33db8967fbb2b919150', --University of Helsinki --- 'openorgs____::759d59f05d77188faee99b7493b46805', --University of Minho --- 'openorgs____::cad284878801b9465fa51a95b1d779db', --Universidad Politécnica de Madrid --- 'openorgs____::eadc8da90a546e98c03f896661a2e4d4', --University of Göttingen --- 'openorgs____::c0286313e36479eff8676dba9b724b40', --National and Kapodistrian University of Athens --- -- 'openorgs____::c80a8243a5e5c620d7931c88d93bf17a', --Université Paris Diderot --- 'openorgs____::c08634f0a6b0081c3dc6e6c93a4314f3', --Bielefeld University --- 'openorgs____::6fc85e4a8f7ecaf4b0c738d010e967ea', --University of Southern Denmark --- 'openorgs____::3d6122f87f9a97a99d8f6e3d73313720', --Humboldt-Universität zu Berlin --- 'openorgs____::16720ada63d0fa8ca41601feae7d1aa5', --TU Darmstadt --- 'openorgs____::ccc0a066b56d2cfaf90c2ae369df16f5', --KU Leuven --- 'openorgs____::4c6f119632adf789746f0a057ed73e90', --University of the Western Cape --- 'openorgs____::ec3665affa01aeafa28b7852c4176dbd', --Rudjer Boskovic Institute --- 'openorgs____::5f31346d444a7f06a28c880fb170b0f6', --Ghent University --- 'openorgs____::2dbe47117fd5409f9c61620813456632', --University of Luxembourg --- 'openorgs____::6445d7758d3a40c4d997953b6632a368', --National Institute of Informatics (NII) --- 'openorgs____::b77c01aa15de3675da34277d48de2ec1', -- Valencia Catholic University Saint Vincent Martyr --- 'openorgs____::7fe2f66cdc43983c6b24816bfe9cf6a0', -- Unviersity of Warsaw --- 'openorgs____::15e7921fc50d9aa1229a82a84429419e', -- University Of Thessaly --- 'openorgs____::11f7919dadc8f8a7251af54bba60c956', -- Technical University of Crete --- 'openorgs____::84f0c5f5dbb6daf42748485924efde4b', -- University of Piraeus --- 'openorgs____::4ac562f0376fce3539504567649cb373', -- University of Patras --- 'openorgs____::3e8d1f8c3f6cd7f418b09f1f58b4873b', -- Aristotle University of Thessaloniki --- 'openorgs____::3fcef6e1c469c10f2a84b281372c9814', -- World Bank --- 'openorgs____::1698a2eb1885ef8adb5a4a969e745ad3', -- École des Ponts ParisTech --- 'openorgs____::e15adb13c4dadd49de4d35c39b5da93a', -- Nanyang Technological University --- 'openorgs____::4b34103bde246228fcd837f5f1bf4212', -- Autonomous University of Barcelona --- 'openorgs____::72ec75fcfc4e0df1a76dc4c49007fceb', -- McMaster University --- 'openorgs____::51c7fc556e46381734a25a6fbc3fd398', -- University of Modena and Reggio Emilia --- 'openorgs____::235d7f9ad18ecd7e6dc62ea4990cb9db', -- Bilkent University --- 'openorgs____::31f2fa9e05b49d4cf40a19c3fed8eb06', -- Saints Cyril and Methodius University of Skopje --- 'openorgs____::db7686f30f22cbe73a4fde872ce812a6', -- University of Milan --- 'openorgs____::b8b8ca674452579f3f593d9f5e557483', -- University College Cork --- 'openorgs____::38d7097854736583dde879d12dacafca' -- Brown University --- 'openorgs____::57784c9e047e826fefdb1ef816120d92', --Arts et Métiers ParisTech --- 'openorgs____::2530baca8a15936ba2e3297f2bce2e7e', -- University of Cape Town --- 'openorgs____::d11f981828c485cd23d93f7f24f24db1', -- Technological University Dublin --- 'openorgs____::5e6bf8962665cdd040341171e5c631d8', -- Delft University of Technology --- 'openorgs____::846cb428d3f52a445f7275561a7beb5d', -- University of Manitoba --- 'openorgs____::eb391317ed0dc684aa81ac16265de041', -- Universitat Rovira i Virgili --- 'openorgs____::66aa9fc2fceb271423dfabcc38752dc0', -- Lund University --- 'openorgs____::3cff625a4370d51e08624cc586138b2f' -- IMT Atlantique --- ) )) foo; --- ---ANALYZE TABLE TARGET.result COMPUTE STATISTICS; - create view if not exists TARGET.category as select * from SOURCE.category; create view if not exists TARGET.concept as select * from SOURCE.concept; create view if not exists TARGET.context as select * from SOURCE.context; @@ -88,85 +12,66 @@ create view if not exists TARGET.doctoratestudents as select * from SOURCE.docto create view if not exists TARGET.totalresearchers as select * from SOURCE.totalresearchers; create view if not exists TARGET.totalresearchersft as select * from SOURCE.totalresearchersft; create view if not exists TARGET.hrrst as select * from SOURCE.hrrst; +create view if not exists TARGET.graduatedoctorates as select * from SOURCE.graduatedoctorates; create table TARGET.result_citations stored as parquet as select * from SOURCE.result_citations orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_citations COMPUTE STATISTICS; create table TARGET.result_references_oc stored as parquet as select * from SOURCE.result_references_oc orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_references_oc COMPUTE STATISTICS; create table TARGET.result_citations_oc stored as parquet as select * from SOURCE.result_citations_oc orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_citations_oc COMPUTE STATISTICS; create table TARGET.result_classifications stored as parquet as select * from SOURCE.result_classifications orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_classifications COMPUTE STATISTICS; create table TARGET.result_apc stored as parquet as select * from SOURCE.result_apc orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_apc COMPUTE STATISTICS; create table TARGET.result_concepts stored as parquet as select * from SOURCE.result_concepts orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_concepts COMPUTE STATISTICS; create table TARGET.result_datasources stored as parquet as select * from SOURCE.result_datasources orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_datasources COMPUTE STATISTICS; create table TARGET.result_fundercount stored as parquet as select * from SOURCE.result_fundercount orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_fundercount COMPUTE STATISTICS; create table TARGET.result_gold stored as parquet as select * from SOURCE.result_gold orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_gold COMPUTE STATISTICS; create table TARGET.result_greenoa stored as parquet as select * from SOURCE.result_greenoa orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_greenoa COMPUTE STATISTICS; create table TARGET.result_languages stored as parquet as select * from SOURCE.result_languages orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_languages COMPUTE STATISTICS; create table TARGET.result_licenses stored as parquet as select * from SOURCE.result_licenses orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_licenses COMPUTE STATISTICS; create table TARGET.licenses_normalized STORED AS PARQUET as select * from SOURCE.licenses_normalized; -ANALYZE TABLE TARGET.licenses_normalized COMPUTE STATISTICS; create table TARGET.result_oids stored as parquet as select * from SOURCE.result_oids orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_oids COMPUTE STATISTICS; create table TARGET.result_organization stored as parquet as select * from SOURCE.result_organization orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_organization COMPUTE STATISTICS; create table TARGET.result_peerreviewed stored as parquet as select * from SOURCE.result_peerreviewed orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_peerreviewed COMPUTE STATISTICS; create table TARGET.result_pids stored as parquet as select * from SOURCE.result_pids orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_pids COMPUTE STATISTICS; create table TARGET.result_projectcount stored as parquet as select * from SOURCE.result_projectcount orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_projectcount COMPUTE STATISTICS; create table TARGET.result_projects stored as parquet as select * from SOURCE.result_projects orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_projects COMPUTE STATISTICS; create table TARGET.result_refereed stored as parquet as select * from SOURCE.result_refereed orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_refereed COMPUTE STATISTICS; create table TARGET.result_sources stored as parquet as select * from SOURCE.result_sources orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_sources COMPUTE STATISTICS; create table TARGET.result_topics stored as parquet as select * from SOURCE.result_topics orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_topics COMPUTE STATISTICS; create table TARGET.result_fos stored as parquet as select * from SOURCE.result_fos orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_fos COMPUTE STATISTICS; create table TARGET.result_accessroute stored as parquet as select * from SOURCE.result_accessroute orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.result_accessroute COMPUTE STATISTICS; + +create table TARGET.result_orcid stored as parquet as select * from SOURCE.result_orcid orig where exists (select 1 from TARGET.result r where r.id=orig.id); +create table TARGET.indi_pub_publicly_funded stored as parquet as select * from SOURCE.indi_pub_publicly_funded orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_instance stored as parquet as select * from SOURCE.result_instance orig where exists (select 1 from TARGET.result r where r.id=orig.id); create view TARGET.foo1 as select * from SOURCE.result_result rr where rr.source in (select id from TARGET.result); create view TARGET.foo2 as select * from SOURCE.result_result rr where rr.target in (select id from TARGET.result); create table TARGET.result_result STORED AS PARQUET as select distinct * from (select * from TARGET.foo1 union all select * from TARGET.foo2) foufou; drop view TARGET.foo1; drop view TARGET.foo2; -ANALYZE TABLE TARGET.result_result COMPUTE STATISTICS; -- datasources create view if not exists TARGET.datasource as select * from SOURCE.datasource; @@ -175,7 +80,6 @@ create view if not exists TARGET.datasource_organizations as select * from SOURC create view if not exists TARGET.datasource_sources as select * from SOURCE.datasource_sources; create table TARGET.datasource_results stored as parquet as select id as result, datasource as id from TARGET.result_datasources; -ANALYZE TABLE TARGET.datasource_results COMPUTE STATISTICS; -- organizations create view if not exists TARGET.organization as select * from SOURCE.organization; @@ -193,28 +97,27 @@ create view if not exists TARGET.project_classification as select * from SOURCE. create view if not exists TARGET.project_organization_contribution as select * from SOURCE.project_organization_contribution; create table TARGET.project_results stored as parquet as select id as result, project as id from TARGET.result_projects; -ANALYZE TABLE TARGET.project_results COMPUTE STATISTICS; -- indicators -- Sprint 1 ---- create table TARGET.indi_pub_green_oa stored as parquet as select * from SOURCE.indi_pub_green_oa orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_pub_green_oa COMPUTE STATISTICS; + create table TARGET.indi_pub_grey_lit stored as parquet as select * from SOURCE.indi_pub_grey_lit orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_pub_grey_lit COMPUTE STATISTICS; + create table TARGET.indi_pub_doi_from_crossref stored as parquet as select * from SOURCE.indi_pub_doi_from_crossref orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_pub_doi_from_crossref COMPUTE STATISTICS; + -- Sprint 2 ---- create table TARGET.indi_result_has_cc_licence stored as parquet as select * from SOURCE.indi_result_has_cc_licence orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_result_has_cc_licence COMPUTE STATISTICS; + create table TARGET.indi_result_has_cc_licence_url stored as parquet as select * from SOURCE.indi_result_has_cc_licence_url orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_result_has_cc_licence_url COMPUTE STATISTICS; + create table TARGET.indi_pub_has_abstract stored as parquet as select * from SOURCE.indi_pub_has_abstract orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_pub_has_abstract COMPUTE STATISTICS; + create table TARGET.indi_result_with_orcid stored as parquet as select * from SOURCE.indi_result_with_orcid orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_result_with_orcid COMPUTE STATISTICS; + ---- Sprint 3 ---- create table TARGET.indi_funded_result_with_fundref stored as parquet as select * from SOURCE.indi_funded_result_with_fundref orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_funded_result_with_fundref COMPUTE STATISTICS; + create view TARGET.indi_result_org_collab as select * from SOURCE.indi_result_org_collab; create view TARGET.indi_result_org_country_collab as select * from SOURCE.indi_result_org_country_collab; create view TARGET.indi_project_collab_org as select * from SOURCE.indi_project_collab_org; @@ -223,32 +126,32 @@ create view TARGET.indi_funder_country_collab as select * from SOURCE.indi_funde create view TARGET.indi_result_country_collab as select * from SOURCE.indi_result_country_collab; ---- Sprint 4 ---- create table TARGET.indi_pub_diamond stored as parquet as select * from SOURCE.indi_pub_diamond orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_pub_diamond COMPUTE STATISTICS; + create table TARGET.indi_pub_in_transformative stored as parquet as select * from SOURCE.indi_pub_in_transformative orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_pub_in_transformative COMPUTE STATISTICS; + create table TARGET.indi_pub_closed_other_open stored as parquet as select * from SOURCE.indi_pub_closed_other_open orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_pub_closed_other_open COMPUTE STATISTICS; + ---- Sprint 5 ---- create table TARGET.indi_result_no_of_copies stored as parquet as select * from SOURCE.indi_result_no_of_copies orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_result_no_of_copies COMPUTE STATISTICS; + ---- Sprint 6 ---- create table TARGET.indi_pub_hybrid_oa_with_cc stored as parquet as select * from SOURCE.indi_pub_hybrid_oa_with_cc orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_pub_hybrid_oa_with_cc COMPUTE STATISTICS; + create table TARGET.indi_pub_bronze_oa stored as parquet as select * from SOURCE.indi_pub_bronze_oa orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_pub_bronze_oa COMPUTE STATISTICS; + create table TARGET.indi_pub_downloads stored as parquet as select * from SOURCE.indi_pub_downloads orig where exists (select 1 from TARGET.result r where r.id=orig.result_id); -ANALYZE TABLE TARGET.indi_pub_downloads COMPUTE STATISTICS; + create table TARGET.indi_pub_downloads_datasource stored as parquet as select * from SOURCE.indi_pub_downloads_datasource orig where exists (select 1 from TARGET.result r where r.id=orig.result_id); -ANALYZE TABLE TARGET.indi_pub_downloads_datasource COMPUTE STATISTICS; + create table TARGET.indi_pub_downloads_year stored as parquet as select * from SOURCE.indi_pub_downloads_year orig where exists (select 1 from TARGET.result r where r.id=orig.result_id); -ANALYZE TABLE TARGET.indi_pub_downloads_year COMPUTE STATISTICS; + create table TARGET.indi_pub_downloads_datasource_year stored as parquet as select * from SOURCE.indi_pub_downloads_datasource_year orig where exists (select 1 from TARGET.result r where r.id=orig.result_id); -ANALYZE TABLE TARGET.indi_pub_downloads_datasource_year COMPUTE STATISTICS; + ---- Sprint 7 ---- create table TARGET.indi_pub_gold_oa stored as parquet as select * from SOURCE.indi_pub_gold_oa orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_pub_gold_oa COMPUTE STATISTICS; + create table TARGET.indi_pub_hybrid stored as parquet as select * from SOURCE.indi_pub_hybrid orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_pub_hybrid COMPUTE STATISTICS; + create view TARGET.indi_org_fairness as select * from SOURCE.indi_org_fairness; create view TARGET.indi_org_fairness_pub_pr as select * from SOURCE.indi_org_fairness_pub_pr; create view TARGET.indi_org_fairness_pub_year as select * from SOURCE.indi_org_fairness_pub_year; @@ -259,12 +162,22 @@ create view TARGET.indi_org_findable as select * from SOURCE.indi_org_findable; create view TARGET.indi_org_openess as select * from SOURCE.indi_org_openess; create view TARGET.indi_org_openess_year as select * from SOURCE.indi_org_openess_year; create table TARGET.indi_pub_has_preprint stored as parquet as select * from SOURCE.indi_pub_has_preprint orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_pub_has_preprint COMPUTE STATISTICS; + create table TARGET.indi_pub_in_subscribed stored as parquet as select * from SOURCE.indi_pub_in_subscribed orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_pub_in_subscribed COMPUTE STATISTICS; + create table TARGET.indi_result_with_pid stored as parquet as select * from SOURCE.indi_result_with_pid orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_result_with_pid COMPUTE STATISTICS; + create table TARGET.indi_impact_measures stored as parquet as select * from SOURCE.indi_impact_measures orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_impact_measures COMPUTE STATISTICS; + create table TARGET.indi_pub_interdisciplinarity stored as parquet as select * from SOURCE.indi_pub_interdisciplinarity orig where exists (select 1 from TARGET.result r where r.id=orig.id); -ANALYZE TABLE TARGET.indi_pub_interdisciplinarity COMPUTE STATISTICS; + +create table TARGET.result_apc_affiliations stored as parquet as select * from SOURCE.result_apc_affiliations orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.indi_is_project_result_after stored as parquet as select * from SOURCE.indi_is_project_result_after orig where exists (select 1 from TARGET.result r where r.id=orig.result_id); +create table TARGET.indi_is_funder_plan_s stored as parquet as select * from SOURCE.indi_is_funder_plan_s orig where exists (select 1 from TARGET.result r where r.id=orig.id); +create view TARGET.indi_funder_fairness as select * from SOURCE.indi_funder_fairness; +create view TARGET.indi_funder_openess as select * from SOURCE.indi_funder_openess; +create view TARGET.indi_funder_findable as select * from SOURCE.indi_funder_findable; +create view TARGET.indi_ris_fairness as select * from SOURCE.indi_ris_fairness; +create view TARGET.indi_ris_openess as select * from SOURCE.indi_ris_openess; +create view TARGET.indi_ris_findable as select * from SOURCE.indi_ris_findable; \ No newline at end of file diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDBAll.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDBAll.sql new file mode 100644 index 000000000..42812d159 --- /dev/null +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDBAll.sql @@ -0,0 +1,267 @@ +drop database if exists TARGET cascade; +create database if not exists TARGET; + +create view if not exists TARGET.category as select * from SOURCE.category; +create view if not exists TARGET.concept as select * from SOURCE.concept; +create view if not exists TARGET.context as select * from SOURCE.context; +create view if not exists TARGET.country as select * from SOURCE.country; +create view if not exists TARGET.countrygdp as select * from SOURCE.countrygdp; +create view if not exists TARGET.creation_date as select * from SOURCE.creation_date; +create view if not exists TARGET.funder as select * from SOURCE.funder; +create view if not exists TARGET.fundref as select * from SOURCE.fundref; +create view if not exists TARGET.rndexpenditure as select * from SOURCE.rndexpediture; +create view if not exists TARGET.rndgdpexpenditure as select * from SOURCE.rndgdpexpenditure; +create view if not exists TARGET.doctoratestudents as select * from SOURCE.doctoratestudents; +create view if not exists TARGET.totalresearchers as select * from SOURCE.totalresearchers; +create view if not exists TARGET.totalresearchersft as select * from SOURCE.totalresearchersft; +create view if not exists TARGET.hrrst as select * from SOURCE.hrrst; +create view if not exists TARGET.graduatedoctorates as select * from SOURCE.graduatedoctorates; + +create table TARGET.result stored as parquet as + select distinct * from ( + select * from SOURCE.result r where exists (select 1 from SOURCE.result_projects rp join SOURCE.project p on rp.project=p.id where rp.id=r.id) + union all + select * from SOURCE.result r where exists (select 1 from SOURCE.result_concepts rc where rc.id=r.id) + union all + select * from SOURCE.result r where exists (select 1 from SOURCE.result_organization ro where ro.id=r.id and ro.organization in ( + 'openorgs____::b84450f9864182c67b8611b5593f4250', --"Athena Research and Innovation Center In Information Communication & Knowledge Technologies', --ARC" + 'openorgs____::d41cf6bd4ab1b1362a44397e0b95c975', --National Research Council + 'openorgs____::d2a09b9d5eabb10c95f9470e172d05d2', --??? Not exists ?? + 'openorgs____::d169c7407dd417152596908d48c11460', --Masaryk University + 'openorgs____::1ec924b1759bb16d0a02f2dad8689b21', --University of Belgrade + 'openorgs____::0ae431b820e4c33db8967fbb2b919150', --University of Helsinki + 'openorgs____::759d59f05d77188faee99b7493b46805', --University of Minho + 'openorgs____::cad284878801b9465fa51a95b1d779db', --Universidad Politécnica de Madrid + 'openorgs____::eadc8da90a546e98c03f896661a2e4d4', --University of Göttingen + 'openorgs____::c0286313e36479eff8676dba9b724b40', --National and Kapodistrian University of Athens + -- 'openorgs____::c80a8243a5e5c620d7931c88d93bf17a', --Université Paris Diderot + 'openorgs____::c08634f0a6b0081c3dc6e6c93a4314f3', --Bielefeld University + 'openorgs____::6fc85e4a8f7ecaf4b0c738d010e967ea', --University of Southern Denmark + 'openorgs____::3d6122f87f9a97a99d8f6e3d73313720', --Humboldt-Universität zu Berlin + 'openorgs____::16720ada63d0fa8ca41601feae7d1aa5', --TU Darmstadt + 'openorgs____::ccc0a066b56d2cfaf90c2ae369df16f5', --KU Leuven + 'openorgs____::4c6f119632adf789746f0a057ed73e90', --University of the Western Cape + 'openorgs____::ec3665affa01aeafa28b7852c4176dbd', --Rudjer Boskovic Institute + 'openorgs____::5f31346d444a7f06a28c880fb170b0f6', --Ghent University + 'openorgs____::2dbe47117fd5409f9c61620813456632', --University of Luxembourg + 'openorgs____::6445d7758d3a40c4d997953b6632a368', --National Institute of Informatics (NII) + 'openorgs____::b77c01aa15de3675da34277d48de2ec1', -- Valencia Catholic University Saint Vincent Martyr + 'openorgs____::7fe2f66cdc43983c6b24816bfe9cf6a0', -- Unviersity of Warsaw + 'openorgs____::15e7921fc50d9aa1229a82a84429419e', -- University Of Thessaly + 'openorgs____::11f7919dadc8f8a7251af54bba60c956', -- Technical University of Crete + 'openorgs____::84f0c5f5dbb6daf42748485924efde4b', -- University of Piraeus + 'openorgs____::4ac562f0376fce3539504567649cb373', -- University of Patras + 'openorgs____::3e8d1f8c3f6cd7f418b09f1f58b4873b', -- Aristotle University of Thessaloniki + 'openorgs____::3fcef6e1c469c10f2a84b281372c9814', -- World Bank + 'openorgs____::1698a2eb1885ef8adb5a4a969e745ad3', -- École des Ponts ParisTech + 'openorgs____::e15adb13c4dadd49de4d35c39b5da93a', -- Nanyang Technological University + 'openorgs____::4b34103bde246228fcd837f5f1bf4212', -- Autonomous University of Barcelona + 'openorgs____::72ec75fcfc4e0df1a76dc4c49007fceb', -- McMaster University + 'openorgs____::51c7fc556e46381734a25a6fbc3fd398', -- University of Modena and Reggio Emilia + 'openorgs____::235d7f9ad18ecd7e6dc62ea4990cb9db', -- Bilkent University + 'openorgs____::31f2fa9e05b49d4cf40a19c3fed8eb06', -- Saints Cyril and Methodius University of Skopje + 'openorgs____::db7686f30f22cbe73a4fde872ce812a6', -- University of Milan + 'openorgs____::b8b8ca674452579f3f593d9f5e557483', -- University College Cork + 'openorgs____::38d7097854736583dde879d12dacafca', -- Brown University + 'openorgs____::57784c9e047e826fefdb1ef816120d92', --Arts et Métiers ParisTech + 'openorgs____::2530baca8a15936ba2e3297f2bce2e7e', -- University of Cape Town + 'openorgs____::d11f981828c485cd23d93f7f24f24db1', -- Technological University Dublin + 'openorgs____::5e6bf8962665cdd040341171e5c631d8', -- Delft University of Technology + 'openorgs____::846cb428d3f52a445f7275561a7beb5d', -- University of Manitoba + 'openorgs____::eb391317ed0dc684aa81ac16265de041', -- Universitat Rovira i Virgili + 'openorgs____::66aa9fc2fceb271423dfabcc38752dc0', -- Lund University + 'openorgs____::3cff625a4370d51e08624cc586138b2f', -- IMT Atlantique + 'openorgs____::c0b262bd6eab819e4c994914f9c010e2', -- National Institute of Geophysics and Volcanology + 'openorgs____::1624ff7c01bb641b91f4518539a0c28a', -- Vrije Universiteit Amsterdam + 'openorgs____::4d4051b56708688235252f1d8fddb8c1', --Iscte - Instituto Universitário de Lisboa + 'openorgs____::ab4ac74c35fa5dada770cf08e5110fab', -- Universidade Católica Portuguesa + 'openorgs____::4d4051b56708688235252f1d8fddb8c1', -- Iscte - Instituto Universitário de Lisboa + 'openorgs____::5d55fb216b14691cf68218daf5d78cd9', -- Munster Technological University + 'openorgs____::0fccc7640f0cb44d5cd1b06b312a06b9', -- Cardiff University + 'openorgs____::8839b55dae0c84d56fd533f52d5d483a', -- Leibniz Institute of Ecological Urban and Regional Development + 'openorgs____::526468206bca24c1c90da6a312295cf4', -- Cyprus University of Technology + 'openorgs____::b5ca9d4340e26454e367e2908ef3872f' -- Alma Mater Studiorum University of Bologna + + ) )) foo; + +create view if not exists TARGET.category as select * from SOURCE.category; +create view if not exists TARGET.concept as select * from SOURCE.concept; +create view if not exists TARGET.context as select * from SOURCE.context; +create view if not exists TARGET.country as select * from SOURCE.country; +create view if not exists TARGET.countrygdp as select * from SOURCE.countrygdp; +create view if not exists TARGET.creation_date as select * from SOURCE.creation_date; +create view if not exists TARGET.funder as select * from SOURCE.funder; +create view if not exists TARGET.fundref as select * from SOURCE.fundref; +create view if not exists TARGET.rndexpenditure as select * from SOURCE.rndexpediture; +create view if not exists TARGET.rndgdpexpenditure as select * from SOURCE.rndgdpexpenditure; +create view if not exists TARGET.doctoratestudents as select * from SOURCE.doctoratestudents; +create view if not exists TARGET.totalresearchers as select * from SOURCE.totalresearchers; +create view if not exists TARGET.totalresearchersft as select * from SOURCE.totalresearchersft; +create view if not exists TARGET.hrrst as select * from SOURCE.hrrst; +create view if not exists TARGET.graduatedoctorates as select * from SOURCE.graduatedoctorates; + +create table TARGET.result_citations stored as parquet as select * from SOURCE.result_citations orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_references_oc stored as parquet as select * from SOURCE.result_references_oc orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_citations_oc stored as parquet as select * from SOURCE.result_citations_oc orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_classifications stored as parquet as select * from SOURCE.result_classifications orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_apc stored as parquet as select * from SOURCE.result_apc orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_concepts stored as parquet as select * from SOURCE.result_concepts orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_datasources stored as parquet as select * from SOURCE.result_datasources orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_fundercount stored as parquet as select * from SOURCE.result_fundercount orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_gold stored as parquet as select * from SOURCE.result_gold orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_greenoa stored as parquet as select * from SOURCE.result_greenoa orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_languages stored as parquet as select * from SOURCE.result_languages orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_licenses stored as parquet as select * from SOURCE.result_licenses orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.licenses_normalized STORED AS PARQUET as select * from SOURCE.licenses_normalized; + +create table TARGET.result_oids stored as parquet as select * from SOURCE.result_oids orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_organization stored as parquet as select * from SOURCE.result_organization orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_peerreviewed stored as parquet as select * from SOURCE.result_peerreviewed orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_pids stored as parquet as select * from SOURCE.result_pids orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_projectcount stored as parquet as select * from SOURCE.result_projectcount orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_projects stored as parquet as select * from SOURCE.result_projects orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_refereed stored as parquet as select * from SOURCE.result_refereed orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_sources stored as parquet as select * from SOURCE.result_sources orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_topics stored as parquet as select * from SOURCE.result_topics orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_fos stored as parquet as select * from SOURCE.result_fos orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_accessroute stored as parquet as select * from SOURCE.result_accessroute orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_orcid stored as parquet as select * from SOURCE.result_orcid orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create view TARGET.foo1 as select * from SOURCE.result_result rr where rr.source in (select id from TARGET.result); +create view TARGET.foo2 as select * from SOURCE.result_result rr where rr.target in (select id from TARGET.result); +create table TARGET.result_result STORED AS PARQUET as select distinct * from (select * from TARGET.foo1 union all select * from TARGET.foo2) foufou; +drop view TARGET.foo1; +drop view TARGET.foo2; + +-- datasources +create view if not exists TARGET.datasource as select * from SOURCE.datasource; +create view if not exists TARGET.datasource_oids as select * from SOURCE.datasource_oids; +create view if not exists TARGET.datasource_organizations as select * from SOURCE.datasource_organizations; +create view if not exists TARGET.datasource_sources as select * from SOURCE.datasource_sources; + +create table TARGET.datasource_results stored as parquet as select id as result, datasource as id from TARGET.result_datasources; + +-- organizations +create view if not exists TARGET.organization as select * from SOURCE.organization; +create view if not exists TARGET.organization_datasources as select * from SOURCE.organization_datasources; +create view if not exists TARGET.organization_pids as select * from SOURCE.organization_pids; +create view if not exists TARGET.organization_projects as select * from SOURCE.organization_projects; +create view if not exists TARGET.organization_sources as select * from SOURCE.organization_sources; + +-- projects +create view if not exists TARGET.project as select * from SOURCE.project; +create view if not exists TARGET.project_oids as select * from SOURCE.project_oids; +create view if not exists TARGET.project_organizations as select * from SOURCE.project_organizations; +create view if not exists TARGET.project_resultcount as select * from SOURCE.project_resultcount; +create view if not exists TARGET.project_classification as select * from SOURCE.project_classification; +create view if not exists TARGET.project_organization_contribution as select * from SOURCE.project_organization_contribution; + +create table TARGET.project_results stored as parquet as select id as result, project as id from TARGET.result_projects; + +-- indicators +-- Sprint 1 ---- +create table TARGET.indi_pub_green_oa stored as parquet as select * from SOURCE.indi_pub_green_oa orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.indi_pub_grey_lit stored as parquet as select * from SOURCE.indi_pub_grey_lit orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.indi_pub_doi_from_crossref stored as parquet as select * from SOURCE.indi_pub_doi_from_crossref orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +-- Sprint 2 ---- +create table TARGET.indi_result_has_cc_licence stored as parquet as select * from SOURCE.indi_result_has_cc_licence orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.indi_result_has_cc_licence_url stored as parquet as select * from SOURCE.indi_result_has_cc_licence_url orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.indi_pub_has_abstract stored as parquet as select * from SOURCE.indi_pub_has_abstract orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.indi_result_with_orcid stored as parquet as select * from SOURCE.indi_result_with_orcid orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +---- Sprint 3 ---- +create table TARGET.indi_funded_result_with_fundref stored as parquet as select * from SOURCE.indi_funded_result_with_fundref orig where exists (select 1 from TARGET.result r where r.id=orig.id); +create view TARGET.indi_result_org_collab as select * from SOURCE.indi_result_org_collab; +create view TARGET.indi_result_org_country_collab as select * from SOURCE.indi_result_org_country_collab; +create view TARGET.indi_project_collab_org as select * from SOURCE.indi_project_collab_org; +create view TARGET.indi_project_collab_org_country as select * from SOURCE.indi_project_collab_org_country; +create view TARGET.indi_funder_country_collab as select * from SOURCE.indi_funder_country_collab; +create view TARGET.indi_result_country_collab as select * from SOURCE.indi_result_country_collab; +---- Sprint 4 ---- +create table TARGET.indi_pub_diamond stored as parquet as select * from SOURCE.indi_pub_diamond orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.indi_pub_in_transformative stored as parquet as select * from SOURCE.indi_pub_in_transformative orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.indi_pub_closed_other_open stored as parquet as select * from SOURCE.indi_pub_closed_other_open orig where exists (select 1 from TARGET.result r where r.id=orig.id); +---- Sprint 5 ---- +create table TARGET.indi_result_no_of_copies stored as parquet as select * from SOURCE.indi_result_no_of_copies orig where exists (select 1 from TARGET.result r where r.id=orig.id); +---- Sprint 6 ---- +create table TARGET.indi_pub_hybrid_oa_with_cc stored as parquet as select * from SOURCE.indi_pub_hybrid_oa_with_cc orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.indi_pub_bronze_oa stored as parquet as select * from SOURCE.indi_pub_bronze_oa orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.indi_pub_downloads stored as parquet as select * from SOURCE.indi_pub_downloads orig where exists (select 1 from TARGET.result r where r.id=orig.result_id); + +create table TARGET.indi_pub_downloads_datasource stored as parquet as select * from SOURCE.indi_pub_downloads_datasource orig where exists (select 1 from TARGET.result r where r.id=orig.result_id); + +create table TARGET.indi_pub_downloads_year stored as parquet as select * from SOURCE.indi_pub_downloads_year orig where exists (select 1 from TARGET.result r where r.id=orig.result_id); + +create table TARGET.indi_pub_downloads_datasource_year stored as parquet as select * from SOURCE.indi_pub_downloads_datasource_year orig where exists (select 1 from TARGET.result r where r.id=orig.result_id); + +---- Sprint 7 ---- +create table TARGET.indi_pub_gold_oa stored as parquet as select * from SOURCE.indi_pub_gold_oa orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.indi_pub_hybrid stored as parquet as select * from SOURCE.indi_pub_hybrid orig where exists (select 1 from TARGET.result r where r.id=orig.id); +create view TARGET.indi_org_fairness as select * from SOURCE.indi_org_fairness; +create view TARGET.indi_org_fairness_pub_pr as select * from SOURCE.indi_org_fairness_pub_pr; +create view TARGET.indi_org_fairness_pub_year as select * from SOURCE.indi_org_fairness_pub_year; +create view TARGET.indi_org_fairness_pub as select * from SOURCE.indi_org_fairness_pub; +create view TARGET.indi_org_fairness_year as select * from SOURCE.indi_org_fairness_year; +create view TARGET.indi_org_findable_year as select * from SOURCE.indi_org_findable_year; +create view TARGET.indi_org_findable as select * from SOURCE.indi_org_findable; +create view TARGET.indi_org_openess as select * from SOURCE.indi_org_openess; +create view TARGET.indi_org_openess_year as select * from SOURCE.indi_org_openess_year; +create table TARGET.indi_pub_has_preprint stored as parquet as select * from SOURCE.indi_pub_has_preprint orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.indi_pub_in_subscribed stored as parquet as select * from SOURCE.indi_pub_in_subscribed orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.indi_result_with_pid stored as parquet as select * from SOURCE.indi_result_with_pid orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.indi_impact_measures stored as parquet as select * from SOURCE.indi_impact_measures orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.indi_pub_interdisciplinarity stored as parquet as select * from SOURCE.indi_pub_interdisciplinarity orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.result_apc_affiliations stored as parquet as select * from SOURCE.result_apc_affiliations orig where exists (select 1 from TARGET.result r where r.id=orig.id); +create table TARGET.result_instance stored as parquet as select * from SOURCE.result_instance orig where exists (select 1 from TARGET.result r where r.id=orig.id); +create table TARGET.result_orcid stored as parquet as select * from SOURCE.result_orcid orig where exists (select 1 from TARGET.result r where r.id=orig.id); +create table TARGET.indi_pub_publicly_funded stored as parquet as select * from SOURCE.indi_pub_publicly_funded orig where exists (select 1 from TARGET.result r where r.id=orig.id); + +create table TARGET.indi_is_project_result_after stored as parquet as select * from SOURCE.indi_is_project_result_after orig where exists (select 1 from TARGET.result r where r.id=orig.result_id); +create view TARGET.indi_is_funder_plan_s as select * from SOURCE.indi_is_funder_plan_s; +create view TARGET.indi_funder_fairness as select * from SOURCE.indi_funder_fairness; +create view TARGET.indi_funder_openess as select * from SOURCE.indi_funder_openess; +create view TARGET.indi_funder_findable as select * from SOURCE.indi_funder_findable; +create view TARGET.indi_ris_fairness as select * from SOURCE.indi_ris_fairness; +create view TARGET.indi_ris_openess as select * from SOURCE.indi_ris_openess; +create view TARGET.indi_ris_findable as select * from SOURCE.indi_ris_findable; + + diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDB_RIs.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDB_RIs.sql index 92b40405d..4469782f0 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDB_RIs.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDB_RIs.sql @@ -11,5 +11,4 @@ create table TARGET.result stored as parquet as join SOURCE.context cont on cont.id=cat.context -- join SOURCE.result where rc.id=r.id and conc.category like CONTEXT) -) foo; -ANALYZE TABLE TARGET.result COMPUTE STATISTICS; \ No newline at end of file +) foo; \ No newline at end of file diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDB_RIs_tail.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDB_RIs_tail.sql index ef6d08d79..a28206d56 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDB_RIs_tail.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDB_RIs_tail.sql @@ -11,5 +11,4 @@ create table TARGET.result stored as parquet as join SOURCE.context cont on cont.id=cat.context -- join SOURCE.result where rc.id=r.id and conc.category not in (CONTEXTS)) -) foo; -ANALYZE TABLE TARGET.result COMPUTE STATISTICS; \ No newline at end of file +) foo; \ No newline at end of file diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDB_funded.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDB_funded.sql index 8d8739c74..ce6475c22 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDB_funded.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDB_funded.sql @@ -4,6 +4,4 @@ create database if not exists TARGET; create table TARGET.result stored as parquet as select distinct * from ( select * from SOURCE.result r where exists (select 1 from SOURCE.result_projects rp join SOURCE.project p on rp.project=p.id where rp.id=r.id) - ) foo; - -ANALYZE TABLE TARGET.result COMPUTE STATISTICS; \ No newline at end of file + ) foo; \ No newline at end of file diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDB_institutions.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDB_institutions.sql index 442e623cd..2c0ac337c 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDB_institutions.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step20-createMonitorDB_institutions.sql @@ -34,16 +34,16 @@ create table TARGET.result stored as parquet as 'openorgs____::3e8d1f8c3f6cd7f418b09f1f58b4873b', -- Aristotle University of Thessaloniki 'openorgs____::3fcef6e1c469c10f2a84b281372c9814', -- World Bank 'openorgs____::1698a2eb1885ef8adb5a4a969e745ad3', -- École des Ponts ParisTech - 'openorgs____::e15adb13c4dadd49de4d35c39b5da93a', -- Nanyang Technological University - 'openorgs____::4b34103bde246228fcd837f5f1bf4212', -- Autonomous University of Barcelona - 'openorgs____::72ec75fcfc4e0df1a76dc4c49007fceb', -- McMaster University - 'openorgs____::51c7fc556e46381734a25a6fbc3fd398', -- University of Modena and Reggio Emilia - 'openorgs____::235d7f9ad18ecd7e6dc62ea4990cb9db', -- Bilkent University - 'openorgs____::31f2fa9e05b49d4cf40a19c3fed8eb06', -- Saints Cyril and Methodius University of Skopje + 'openorgs____::e15adb13c4dadd49de4d35c39b5da93a', -- Nanyang Technological University + 'openorgs____::4b34103bde246228fcd837f5f1bf4212', -- Autonomous University of Barcelona + 'openorgs____::72ec75fcfc4e0df1a76dc4c49007fceb', -- McMaster University + 'openorgs____::51c7fc556e46381734a25a6fbc3fd398', -- University of Modena and Reggio Emilia + 'openorgs____::235d7f9ad18ecd7e6dc62ea4990cb9db', -- Bilkent University + 'openorgs____::31f2fa9e05b49d4cf40a19c3fed8eb06', -- Saints Cyril and Methodius University of Skopje 'openorgs____::db7686f30f22cbe73a4fde872ce812a6', -- University of Milan - 'openorgs____::b8b8ca674452579f3f593d9f5e557483', -- University College Cork - 'openorgs____::38d7097854736583dde879d12dacafca' -- Brown University - 'openorgs____::57784c9e047e826fefdb1ef816120d92', --Arts et Métiers ParisTech + 'openorgs____::b8b8ca674452579f3f593d9f5e557483', -- University College Cork + 'openorgs____::38d7097854736583dde879d12dacafca', -- Brown University + 'openorgs____::57784c9e047e826fefdb1ef816120d92', --Arts et Métiers ParisTech 'openorgs____::2530baca8a15936ba2e3297f2bce2e7e', -- University of Cape Town 'openorgs____::d11f981828c485cd23d93f7f24f24db1', -- Technological University Dublin 'openorgs____::5e6bf8962665cdd040341171e5c631d8', -- Delft University of Technology @@ -52,7 +52,13 @@ create table TARGET.result stored as parquet as 'openorgs____::66aa9fc2fceb271423dfabcc38752dc0', -- Lund University 'openorgs____::3cff625a4370d51e08624cc586138b2f', -- IMT Atlantique 'openorgs____::c0b262bd6eab819e4c994914f9c010e2', -- National Institute of Geophysics and Volcanology - 'openorgs____::1624ff7c01bb641b91f4518539a0c28a' -- Vrije Universiteit Amsterdam - ))) foo; - -ANALYZE TABLE TARGET.result COMPUTE STATISTICS; \ No newline at end of file + 'openorgs____::1624ff7c01bb641b91f4518539a0c28a', -- Vrije Universiteit Amsterdam + 'openorgs____::4d4051b56708688235252f1d8fddb8c1', --Iscte - Instituto Universitário de Lisboa + 'openorgs____::ab4ac74c35fa5dada770cf08e5110fab', -- Universidade Católica Portuguesa + 'openorgs____::4d4051b56708688235252f1d8fddb8c1', -- Iscte - Instituto Universitário de Lisboa + 'openorgs____::5d55fb216b14691cf68218daf5d78cd9', -- Munster Technological University + 'openorgs____::0fccc7640f0cb44d5cd1b06b312a06b9', -- Cardiff University + 'openorgs____::8839b55dae0c84d56fd533f52d5d483a', -- Leibniz Institute of Ecological Urban and Regional Development + 'openorgs____::526468206bca24c1c90da6a312295cf4', -- Cyprus University of Technology + 'openorgs____::b5ca9d4340e26454e367e2908ef3872f' -- Alma Mater Studiorum University of Bologna + ))) foo; \ No newline at end of file diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step21-createObservatoryDB.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step21-createObservatoryDB.sql index 2d7d572b3..2e6f0711c 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step21-createObservatoryDB.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step21-createObservatoryDB.sql @@ -8,7 +8,6 @@ from ${stats_db_name}.result r group by rl.id ) rln on rln.id=r.id; -ANALYZE TABLE ${observatory_db_name}.result_cc_licence COMPUTE STATISTICS; create table ${observatory_db_name}.result_affiliated_country stored as parquet as select @@ -39,7 +38,6 @@ group by r.green, r.gold, case when rl.type is not null then true else false end case when r.access_mode in ('Open Access', 'Open Source') then true else false end, r.peer_reviewed, r.type, abstract, cc_licence, r.authors > 1, rpc.count > 1, rfc.count > 1, c.code, c.name; -ANALYZE TABLE ${observatory_db_name}.result_affiliated_country COMPUTE STATISTICS; create table ${observatory_db_name}.result_affiliated_year stored as parquet as select @@ -70,7 +68,6 @@ group by r.green, r.gold, case when rl.type is not null then true else false end case when r.access_mode in ('Open Access', 'Open Source') then true else false end, r.peer_reviewed, r.type, abstract, cc_licence, r.authors > 1, rpc.count > 1, rfc.count > 1, r.year; -ANALYZE TABLE ${observatory_db_name}.result_affiliated_year COMPUTE STATISTICS; create table ${observatory_db_name}.result_affiliated_year_country stored as parquet as select @@ -101,7 +98,6 @@ group by r.green, r.gold, case when rl.type is not null then true else false end case when r.access_mode in ('Open Access', 'Open Source') then true else false end, r.peer_reviewed, r.type, abstract, cc_licence, r.authors > 1, rpc.count > 1, rfc.count > 1, r.year, c.code, c.name; -ANALYZE TABLE ${observatory_db_name}.result_affiliated_year_country COMPUTE STATISTICS; create table ${observatory_db_name}.result_affiliated_datasource stored as parquet as select @@ -134,8 +130,6 @@ group by r.green, r.gold, case when rl.type is not null then true else false end case when r.access_mode in ('Open Access', 'Open Source') then true else false end, r.peer_reviewed, r.type, abstract, cc_licence, r.authors > 1, rpc.count > 1, rfc.count > 1, d.name; -ANALYZE TABLE ${observatory_db_name}.result_affiliated_datasource COMPUTE STATISTICS; - create table ${observatory_db_name}.result_affiliated_datasource_country stored as parquet as select count(distinct r.id) as total, @@ -167,8 +161,6 @@ group by r.green, r.gold, case when rl.type is not null then true else false end case when r.access_mode in ('Open Access', 'Open Source') then true else false end, r.peer_reviewed, r.type, abstract, cc_licence, r.authors > 1, rpc.count > 1, rfc.count > 1, d.name, c.code, c.name; -ANALYZE TABLE ${observatory_db_name}.result_affiliated_datasource_country COMPUTE STATISTICS; - create table ${observatory_db_name}.result_affiliated_organization stored as parquet as select count(distinct r.id) as total, @@ -198,8 +190,6 @@ group by r.green, r.gold, case when rl.type is not null then true else false end case when r.access_mode in ('Open Access', 'Open Source') then true else false end, r.peer_reviewed, r.type, abstract, cc_licence, r.authors > 1, rpc.count > 1, rfc.count > 1, o.name; -ANALYZE TABLE ${observatory_db_name}.result_affiliated_organization COMPUTE STATISTICS; - create table ${observatory_db_name}.result_affiliated_organization_country stored as parquet as select count(distinct r.id) as total, @@ -229,8 +219,6 @@ group by r.green, r.gold, case when rl.type is not null then true else false end case when r.access_mode in ('Open Access', 'Open Source') then true else false end, r.peer_reviewed, r.type, abstract, cc_licence, r.authors > 1, rpc.count > 1, rfc.count > 1, o.name, c.code, c.name; -ANALYZE TABLE ${observatory_db_name}.result_affiliated_organization_country COMPUTE STATISTICS; - create table ${observatory_db_name}.result_affiliated_funder stored as parquet as select count(distinct r.id) as total, @@ -262,8 +250,6 @@ group by r.green, r.gold, case when rl.type is not null then true else false end case when r.access_mode in ('Open Access', 'Open Source') then true else false end, r.peer_reviewed, r.type, abstract, cc_licence, r.authors > 1, rpc.count > 1, rfc.count > 1, p.funder; -ANALYZE TABLE ${observatory_db_name}.result_affiliated_funder COMPUTE STATISTICS; - create table ${observatory_db_name}.result_affiliated_funder_country stored as parquet as select count(distinct r.id) as total, @@ -295,8 +281,6 @@ group by r.green, r.gold, case when rl.type is not null then true else false end case when r.access_mode in ('Open Access', 'Open Source') then true else false end, r.peer_reviewed, r.type, abstract, cc_licence, r.authors > 1, rpc.count > 1, rfc.count > 1, p.funder, c.code, c.name; -ANALYZE TABLE ${observatory_db_name}.result_affiliated_funder_country COMPUTE STATISTICS; - create table ${observatory_db_name}.result_deposited_country stored as parquet as select count(distinct r.id) as total, @@ -328,8 +312,6 @@ group by r.green, r.gold, case when rl.type is not null then true else false end case when r.access_mode in ('Open Access', 'Open Source') then true else false end, r.peer_reviewed, r.type, abstract, cc_licence, r.authors > 1, rpc.count > 1, rfc.count > 1, c.code, c.name; -ANALYZE TABLE ${observatory_db_name}.result_deposited_country COMPUTE STATISTICS; - create table ${observatory_db_name}.result_deposited_year stored as parquet as select count(distinct r.id) as total, @@ -361,7 +343,6 @@ group by r.green, r.gold, case when rl.type is not null then true else false end case when r.access_mode in ('Open Access', 'Open Source') then true else false end, r.peer_reviewed, r.type, abstract, cc_licence, r.authors > 1, rpc.count > 1, rfc.count > 1, r.year; -ANALYZE TABLE ${observatory_db_name}.result_deposited_year COMPUTE STATISTICS; create table ${observatory_db_name}.result_deposited_year_country stored as parquet as select @@ -394,8 +375,6 @@ group by r.green, r.gold, case when rl.type is not null then true else false end case when r.access_mode in ('Open Access', 'Open Source') then true else false end, r.peer_reviewed, r.type, abstract, cc_licence, r.authors > 1, rpc.count > 1, rfc.count > 1, r.year, c.code, c.name; -ANALYZE TABLE ${observatory_db_name}.result_deposited_year_country COMPUTE STATISTICS; - create table ${observatory_db_name}.result_deposited_datasource stored as parquet as select count(distinct r.id) as total, @@ -427,8 +406,6 @@ group by r.green, r.gold, case when rl.type is not null then true else false end case when r.access_mode in ('Open Access', 'Open Source') then true else false end, r.peer_reviewed, r.type, abstract, cc_licence, r.authors > 1, rpc.count > 1, rfc.count > 1, d.name; -ANALYZE TABLE ${observatory_db_name}.result_deposited_datasource COMPUTE STATISTICS; - create table ${observatory_db_name}.result_deposited_datasource_country stored as parquet as select count(distinct r.id) as total, @@ -460,8 +437,6 @@ group by r.green, r.gold, case when rl.type is not null then true else false end case when r.access_mode in ('Open Access', 'Open Source') then true else false end, r.peer_reviewed, r.type, abstract, cc_licence, r.authors > 1, rpc.count > 1, rfc.count > 1, d.name, c.code, c.name; -ANALYZE TABLE ${observatory_db_name}.result_deposited_datasource_country COMPUTE STATISTICS; - create table ${observatory_db_name}.result_deposited_organization stored as parquet as select count(distinct r.id) as total, @@ -493,8 +468,6 @@ group by r.green, r.gold, case when rl.type is not null then true else false end case when r.access_mode in ('Open Access', 'Open Source') then true else false end, r.peer_reviewed, r.type, abstract, cc_licence, r.authors > 1, rpc.count > 1, rfc.count > 1, o.name; -ANALYZE TABLE ${observatory_db_name}.result_deposited_organization COMPUTE STATISTICS; - create table ${observatory_db_name}.result_deposited_organization_country stored as parquet as select count(distinct r.id) as total, @@ -526,8 +499,6 @@ group by r.green, r.gold, case when rl.type is not null then true else false end case when r.access_mode in ('Open Access', 'Open Source') then true else false end, r.peer_reviewed, r.type, abstract, cc_licence, r.authors > 1, rpc.count > 1, rfc.count > 1, o.name, c.code, c.name; -ANALYZE TABLE ${observatory_db_name}.result_deposited_organization_country COMPUTE STATISTICS; - create table ${observatory_db_name}.result_deposited_funder stored as parquet as select count(distinct r.id) as total, @@ -561,8 +532,6 @@ group by r.green, r.gold, case when rl.type is not null then true else false end case when r.access_mode in ('Open Access', 'Open Source') then true else false end, r.peer_reviewed, r.type, abstract, cc_licence, r.authors > 1, rpc.count > 1, rfc.count > 1, p.funder; -ANALYZE TABLE ${observatory_db_name}.result_deposited_funder COMPUTE STATISTICS; - create table ${observatory_db_name}.result_deposited_funder_country stored as parquet as select count(distinct r.id) as total, @@ -595,5 +564,3 @@ from ${stats_db_name}.result r group by r.green, r.gold, case when rl.type is not null then true else false end, case when pids.pid is not null then true else false end, case when r.access_mode in ('Open Access', 'Open Source') then true else false end, r.peer_reviewed, r.type, abstract, cc_licence, r.authors > 1, rpc.count > 1, rfc.count > 1, p.funder, c.code, c.name; - -ANALYZE TABLE ${observatory_db_name}.result_deposited_funder_country COMPUTE STATISTICS; \ No newline at end of file diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step3.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step3.sql index eb97263a7..0384de4ec 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step3.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step3.sql @@ -5,6 +5,8 @@ ------------------------------------------------------ -- Dataset temporary table supporting updates +DROP TABLE IF EXISTS ${stats_db_name}.dataset_tmp purge; + CREATE TABLE ${stats_db_name}.dataset_tmp ( id STRING, @@ -40,6 +42,8 @@ SELECT substr(d.id, 4) AS id, FROM ${openaire_db_name}.dataset d WHERE d.datainfo.deletedbyinference = FALSE and d.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.dataset_citations purge; + CREATE TABLE ${stats_db_name}.dataset_citations STORED AS PARQUET AS SELECT substr(d.id, 4) AS id, xpath_string(citation.value, "//citation/id[@type='openaire']/@value") AS cites FROM ${openaire_db_name}.dataset d @@ -47,12 +51,16 @@ FROM ${openaire_db_name}.dataset d WHERE xpath_string(citation.value, "//citation/id[@type='openaire']/@value") != "" and d.datainfo.deletedbyinference = false and d.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.dataset_classifications purge; + CREATE TABLE ${stats_db_name}.dataset_classifications STORED AS PARQUET AS SELECT substr(p.id, 4) AS id, instancetype.classname AS type FROM ${openaire_db_name}.dataset p LATERAL VIEW explode(p.instance.instancetype) instances AS instancetype where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.dataset_concepts purge; + CREATE TABLE ${stats_db_name}.dataset_concepts STORED AS PARQUET AS SELECT substr(p.id, 4) as id, case when contexts.context.id RLIKE '^[^::]+::[^::]+::.+$' then contexts.context.id @@ -62,6 +70,8 @@ from ${openaire_db_name}.dataset p LATERAL VIEW explode(p.context) contexts as context where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.dataset_datasources purge; + CREATE TABLE ${stats_db_name}.dataset_datasources STORED AS PARQUET AS SELECT p.id, case when d.id IS NULL THEN 'other' ELSE p.datasource END AS datasource FROM ( @@ -74,23 +84,31 @@ FROM ( FROM ${openaire_db_name}.datasource d WHERE d.datainfo.deletedbyinference = false and d.datainfo.invisible=false) d ON p.datasource = d.id; +DROP TABLE IF EXISTS ${stats_db_name}.dataset_languages purge; + CREATE TABLE ${stats_db_name}.dataset_languages STORED AS PARQUET AS SELECT substr(p.id, 4) AS id, p.language.classname AS language FROM ${openaire_db_name}.dataset p where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.dataset_oids purge; + CREATE TABLE ${stats_db_name}.dataset_oids STORED AS PARQUET AS SELECT substr(p.id, 4) AS id, oids.ids AS oid FROM ${openaire_db_name}.dataset p LATERAL VIEW explode(p.originalid) oids AS ids where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.dataset_pids purge; + CREATE TABLE ${stats_db_name}.dataset_pids STORED AS PARQUET AS SELECT substr(p.id, 4) AS id, ppid.qualifier.classname AS type, ppid.value AS pid FROM ${openaire_db_name}.dataset p LATERAL VIEW explode(p.pid) pids AS ppid where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.dataset_topics purge; + CREATE TABLE ${stats_db_name}.dataset_topics STORED AS PARQUET AS SELECT substr(p.id, 4) AS id, subjects.subject.qualifier.classname AS type, subjects.subject.value AS topic FROM ${openaire_db_name}.dataset p diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step4.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step4.sql index 0d1f6323e..d8f4d65e4 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step4.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step4.sql @@ -5,6 +5,7 @@ -------------------------------------------------------- -- Software temporary table supporting updates +DROP TABLE IF EXISTS ${stats_db_name}.software_tmp purge; CREATE TABLE ${stats_db_name}.software_tmp ( id STRING, @@ -40,6 +41,8 @@ SELECT substr(s.id, 4) as id, from ${openaire_db_name}.software s where s.datainfo.deletedbyinference = false and s.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.software_citations purge; + CREATE TABLE ${stats_db_name}.software_citations STORED AS PARQUET AS SELECT substr(s.id, 4) as id, xpath_string(citation.value, "//citation/id[@type='openaire']/@value") AS cites FROM ${openaire_db_name}.software s @@ -47,6 +50,8 @@ FROM ${openaire_db_name}.software s where xpath_string(citation.value, "//citation/id[@type='openaire']/@value") != "" and s.datainfo.deletedbyinference = false and s.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.software_classifications purge; + CREATE TABLE ${stats_db_name}.software_classifications STORED AS PARQUET AS SELECT substr(p.id, 4) AS id, instancetype.classname AS type FROM ${openaire_db_name}.software p @@ -62,6 +67,8 @@ FROM ${openaire_db_name}.software p LATERAL VIEW explode(p.context) contexts AS context where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.software_datasources purge; + CREATE TABLE ${stats_db_name}.software_datasources STORED AS PARQUET AS SELECT p.id, CASE WHEN d.id IS NULL THEN 'other' ELSE p.datasource end as datasource FROM ( @@ -74,23 +81,31 @@ FROM ( FROM ${openaire_db_name}.datasource d WHERE d.datainfo.deletedbyinference = false and d.datainfo.invisible=false) d ON p.datasource = d.id; +DROP TABLE IF EXISTS ${stats_db_name}.software_languages purge; + CREATE TABLE ${stats_db_name}.software_languages STORED AS PARQUET AS select substr(p.id, 4) AS id, p.language.classname AS language FROM ${openaire_db_name}.software p where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.software_oids purge; + CREATE TABLE ${stats_db_name}.software_oids STORED AS PARQUET AS SELECT substr(p.id, 4) AS id, oids.ids AS oid FROM ${openaire_db_name}.software p LATERAL VIEW explode(p.originalid) oids AS ids where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.software_pids purge; + CREATE TABLE ${stats_db_name}.software_pids STORED AS PARQUET AS SELECT substr(p.id, 4) AS id, ppid.qualifier.classname AS type, ppid.value AS pid FROM ${openaire_db_name}.software p LATERAL VIEW explode(p.pid) pids AS ppid where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.software_topics purge; + CREATE TABLE ${stats_db_name}.software_topics STORED AS PARQUET AS SELECT substr(p.id, 4) AS id, subjects.subject.qualifier.classname AS type, subjects.subject.value AS topic FROM ${openaire_db_name}.software p diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step5.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step5.sql old mode 100644 new mode 100755 index 06b616d6a..fae0fbb63 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step5.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step5.sql @@ -5,6 +5,8 @@ -------------------------------------------------------------------------------- -- Otherresearchproduct temporary table supporting updates +DROP TABLE IF EXISTS ${stats_db_name}.otherresearchproduct_tmp purge; + CREATE TABLE ${stats_db_name}.otherresearchproduct_tmp ( id STRING, @@ -40,6 +42,8 @@ FROM ${openaire_db_name}.otherresearchproduct o WHERE o.datainfo.deletedbyinference = FALSE and o.datainfo.invisible=false; -- Otherresearchproduct_citations +DROP TABLE IF EXISTS ${stats_db_name}.otherresearchproduct_citations purge; + CREATE TABLE ${stats_db_name}.otherresearchproduct_citations STORED AS PARQUET AS SELECT substr(o.id, 4) AS id, xpath_string(citation.value, "//citation/id[@type='openaire']/@value") AS cites FROM ${openaire_db_name}.otherresearchproduct o LATERAL VIEW explode(o.extrainfo) citations AS citation @@ -51,6 +55,8 @@ SELECT substr(p.id, 4) AS id, instancetype.classname AS type FROM ${openaire_db_name}.otherresearchproduct p LATERAL VIEW explode(p.instance.instancetype) instances AS instancetype where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.otherresearchproduct_concepts purge; + CREATE TABLE ${stats_db_name}.otherresearchproduct_concepts STORED AS PARQUET AS SELECT substr(p.id, 4) as id, case when contexts.context.id RLIKE '^[^::]+::[^::]+::.+$' then contexts.context.id @@ -59,6 +65,8 @@ SELECT substr(p.id, 4) as id, case FROM ${openaire_db_name}.otherresearchproduct p LATERAL VIEW explode(p.context) contexts AS context where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.otherresearchproduct_datasources purge; + CREATE TABLE ${stats_db_name}.otherresearchproduct_datasources STORED AS PARQUET AS SELECT p.id, CASE WHEN d.id IS NULL THEN 'other' ELSE p.datasource END AS datasource FROM (SELECT substr(p.id, 4) AS id, substr(instances.instance.hostedby.key, 4) AS datasource @@ -68,21 +76,29 @@ FROM (SELECT substr(p.id, 4) AS id, substr(instances.instance.hostedby.key, 4) A from ${openaire_db_name}.datasource d WHERE d.datainfo.deletedbyinference = false and d.datainfo.invisible=false) d on p.datasource = d.id; +DROP TABLE IF EXISTS ${stats_db_name}.otherresearchproduct_languages purge; + CREATE TABLE ${stats_db_name}.otherresearchproduct_languages STORED AS PARQUET AS SELECT substr(p.id, 4) AS id, p.language.classname AS language FROM ${openaire_db_name}.otherresearchproduct p where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.otherresearchproduct_oids purge; + CREATE TABLE ${stats_db_name}.otherresearchproduct_oids STORED AS PARQUET AS SELECT substr(p.id, 4) AS id, oids.ids AS oid FROM ${openaire_db_name}.otherresearchproduct p LATERAL VIEW explode(p.originalid) oids AS ids where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.otherresearchproduct_pids purge; + CREATE TABLE ${stats_db_name}.otherresearchproduct_pids STORED AS PARQUET AS SELECT substr(p.id, 4) AS id, ppid.qualifier.classname AS type, ppid.value AS pid FROM ${openaire_db_name}.otherresearchproduct p LATERAL VIEW explode(p.pid) pids AS ppid where p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.otherresearchproduct_topics purge; + CREATE TABLE ${stats_db_name}.otherresearchproduct_topics STORED AS PARQUET AS SELECT substr(p.id, 4) AS id, subjects.subject.qualifier.classname AS type, subjects.subject.value AS topic FROM ${openaire_db_name}.otherresearchproduct p LATERAL VIEW explode(p.subject) subjects AS subject diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step6.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step6.sql index e0522e149..e5b3f504e 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step6.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step6.sql @@ -3,29 +3,39 @@ -- Project table/view and Project related tables/views ------------------------------------------------------ ------------------------------------------------------ +DROP TABLE IF EXISTS ${stats_db_name}.project_oids purge; + CREATE TABLE ${stats_db_name}.project_oids STORED AS PARQUET AS SELECT substr(p.id, 4) AS id, oids.ids AS oid FROM ${openaire_db_name}.project p LATERAL VIEW explode(p.originalid) oids AS ids where p.datainfo.deletedbyinference=false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.project_organizations purge; + CREATE TABLE ${stats_db_name}.project_organizations STORED AS PARQUET AS SELECT substr(r.source, 4) AS id, substr(r.target, 4) AS organization from ${openaire_db_name}.relation r WHERE r.reltype = 'projectOrganization' and r.source like '40|%' and r.datainfo.deletedbyinference = false and r.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.project_results purge; + CREATE TABLE ${stats_db_name}.project_results STORED AS PARQUET AS SELECT substr(r.target, 4) AS id, substr(r.source, 4) AS result, r.datainfo.provenanceaction.classname as provenance FROM ${openaire_db_name}.relation r WHERE r.reltype = 'resultProject' and r.target like '40|%' and r.datainfo.deletedbyinference = false and r.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.project_classification purge; + create table ${stats_db_name}.project_classification STORED AS PARQUET as select substr(p.id, 4) as id, class.h2020programme.code, class.level1, class.level2, class.level3 from ${openaire_db_name}.project p lateral view explode(p.h2020classification) classifs as class where p.datainfo.deletedbyinference=false and p.datainfo.invisible=false and class.h2020programme is not null; +DROP TABLE IF EXISTS ${stats_db_name}.project_tmp purge; + CREATE TABLE ${stats_db_name}.project_tmp ( id STRING, @@ -80,12 +90,16 @@ SELECT substr(p.id, 4) AS id, FROM ${openaire_db_name}.project p WHERE p.datainfo.deletedbyinference = false and p.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.funder purge; + create table ${stats_db_name}.funder STORED AS PARQUET as select distinct xpath_string(fund, '//funder/id') as id, xpath_string(fund, '//funder/name') as name, xpath_string(fund, '//funder/shortname') as shortname from ${openaire_db_name}.project p lateral view explode(p.fundingtree.value) fundingtree as fund; +DROP TABLE IF EXISTS ${stats_db_name}.project_organization_contribution purge; + CREATE TABLE ${stats_db_name}.project_organization_contribution STORED AS PARQUET AS SELECT distinct substr(r.source, 4) AS project, substr(r.target, 4) AS organization, properties[0].value contribution, properties[1].value currency diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step7.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step7.sql index 1514ecf52..eb16a161e 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step7.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step7.sql @@ -123,6 +123,8 @@ UNION ALL SELECT * FROM ${stats_db_name}.otherresearchproduct_topics; +DROP TABLE IF EXISTS ${stats_db_name}.result_fos purge; + create table ${stats_db_name}.result_fos stored as parquet as with lvl1 as (select id, topic from ${stats_db_name}.result_topics where topic like '__ %' and type='Fields of Science and Technology classification'), @@ -133,6 +135,8 @@ from lvl1 join lvl2 on lvl1.id=lvl2.id and substr(lvl2.topic, 1, 2)=substr(lvl1.topic, 1, 2) join lvl3 on lvl3.id=lvl1.id and substr(lvl3.topic, 1, 4)=substr(lvl2.topic, 1, 4); +DROP TABLE IF EXISTS ${stats_db_name}.result_organization purge; + CREATE TABLE ${stats_db_name}.result_organization STORED AS PARQUET AS SELECT substr(r.target, 4) AS id, substr(r.source, 4) AS organization FROM ${openaire_db_name}.relation r @@ -140,6 +144,8 @@ WHERE r.reltype = 'resultOrganization' and r.target like '50|%' and r.datainfo.deletedbyinference = false and r.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.result_projects purge; + CREATE TABLE ${stats_db_name}.result_projects STORED AS PARQUET AS select pr.result AS id, pr.id AS project, datediff(p.enddate, p.startdate) AS daysfromend, pr.provenance as provenance FROM ${stats_db_name}.result r diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step8.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step8.sql index 248716b36..07204db0c 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step8.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step8.sql @@ -5,6 +5,8 @@ -- Datasource table/view and Datasource related tables/views ------------------------------------------------------------ ------------------------------------------------------------ +DROP TABLE IF EXISTS ${stats_db_name}.datasource_tmp purge; + CREATE TABLE ${stats_db_name}.datasource_tmp ( `id` string, @@ -48,6 +50,7 @@ WHERE d1.datainfo.deletedbyinference = FALSE and d1.datainfo.invisible=false; -- Updating temporary table with everything that is not based on results -> This is done with the following "dual" table. -- Creating a temporary dual table that will be removed after the following insert + CREATE TABLE ${stats_db_name}.dual ( dummy CHAR(1)); INSERT INTO ${stats_db_name}.dual VALUES ('X'); @@ -74,16 +77,22 @@ DROP TABLE ${stats_db_name}.dual; UPDATE ${stats_db_name}.datasource_tmp SET name='Other' WHERE name = 'Unknown Repository'; UPDATE ${stats_db_name}.datasource_tmp SET yearofvalidation=null WHERE yearofvalidation = '-1'; +DROP TABLE IF EXISTS ${stats_db_name}.datasource_languages purge; + CREATE TABLE ${stats_db_name}.datasource_languages STORED AS PARQUET AS SELECT substr(d.id, 4) AS id, langs.languages AS language FROM ${openaire_db_name}.datasource d LATERAL VIEW explode(d.odlanguages.value) langs AS languages where d.datainfo.deletedbyinference=false and d.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.datasource_oids purge; + CREATE TABLE ${stats_db_name}.datasource_oids STORED AS PARQUET AS SELECT substr(d.id, 4) AS id, oids.ids AS oid FROM ${openaire_db_name}.datasource d LATERAL VIEW explode(d.originalid) oids AS ids where d.datainfo.deletedbyinference=false and d.datainfo.invisible=false; +DROP TABLE IF EXISTS ${stats_db_name}.datasource_organizations purge; + CREATE TABLE ${stats_db_name}.datasource_organizations STORED AS PARQUET AS SELECT substr(r.target, 4) AS id, substr(r.source, 4) AS organization FROM ${openaire_db_name}.relation r @@ -91,6 +100,8 @@ WHERE r.reltype = 'datasourceOrganization' and r.datainfo.deletedbyinference = f -- datasource sources: -- where the datasource info have been collected from. +DROP TABLE IF EXISTS ${stats_db_name}.datasource_sources purge; + create table if not exists ${stats_db_name}.datasource_sources STORED AS PARQUET AS select substr(d.id, 4) as id, substr(cf.key, 4) as datasource from ${openaire_db_name}.datasource d lateral view explode(d.collectedfrom) cfrom as cf diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step9.sql b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step9.sql index 3da36dfe5..19d301e27 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step9.sql +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step9.sql @@ -3,6 +3,8 @@ -- Organization table/view and Organization related tables/views ---------------------------------------------------------------- ---------------------------------------------------------------- +DROP TABLE IF EXISTS ${stats_db_name}.organization purge; + CREATE TABLE IF NOT EXISTS ${stats_db_name}.organization STORED AS PARQUET AS SELECT substr(o.id, 4) as id, o.legalname.value as name, diff --git a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/workflow.xml b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/workflow.xml index 2ab50fb29..709de6595 100644 --- a/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-stats-update/src/main/resources/eu/dnetlib/dhp/oa/graph/stats/oozie_app/workflow.xml @@ -64,6 +64,26 @@ hadoop_user_name user name of the wf owner + + + sparkSqlWarehouseDir + + + + sparkClusterOpts + --conf spark.network.timeout=600 --conf spark.extraListeners= --conf spark.sql.queryExecutionListeners= --conf spark.yarn.historyServer.address=http://iis-cdh5-test-m3.ocean.icm.edu.pl:18088 --conf spark.eventLog.dir=hdfs://nameservice1/user/spark/applicationHistory + spark cluster-wide options + + + sparkResourceOpts + --executor-memory=6G --conf spark.executor.memoryOverhead=4G --executor-cores=6 --driver-memory=8G --driver-cores=4 + spark resource options + + + sparkApplicationOpts + --conf spark.sql.shuffle.partitions=3840 + spark resource options + @@ -75,13 +95,21 @@ ${hive_metastore_uris} - hive.txn.timeout - ${hive_timeout} + hive.txn.timeout + ${hive_timeout} + + + hive.mapjoin.followby.gby.localtask.max.memory.usage + 0.80 + + + oozie.action.sharelib.for.spark + ${oozieActionShareLibForSpark2} + + + mapred.job.queue.name + analytics - - mapred.job.queue.name - analytics - @@ -114,6 +142,7 @@ ${wf:conf('resumeFrom') eq 'step21-createObservatoryDB'} ${wf:conf('resumeFrom') eq 'step21-createObservatoryDB-post'} ${wf:conf('resumeFrom') eq 'step22-copyDataToImpalaCluster'} + ${wf:conf('resumeFrom') eq 'step22a-createPDFsAggregated'} ${wf:conf('resumeFrom') eq 'step23-finalizeImpalaCluster'} ${wf:conf('resumeFrom') eq 'Step24-updateCache'} @@ -128,164 +157,164 @@ ${hive_jdbc_url} - stats_db_name=${stats_db_name} - openaire_db_name=${openaire_db_name} + stats_db_name=${stats_db_name} + openaire_db_name=${openaire_db_name} - + ${hive_jdbc_url} - stats_db_name=${stats_db_name} - openaire_db_name=${openaire_db_name} + stats_db_name=${stats_db_name} + openaire_db_name=${openaire_db_name} - + ${hive_jdbc_url} - stats_db_name=${stats_db_name} - openaire_db_name=${openaire_db_name} + stats_db_name=${stats_db_name} + openaire_db_name=${openaire_db_name} - + - + ${hive_jdbc_url} - stats_db_name=${stats_db_name} - openaire_db_name=${openaire_db_name} + stats_db_name=${stats_db_name} + openaire_db_name=${openaire_db_name} - + - + ${hive_jdbc_url} - stats_db_name=${stats_db_name} - openaire_db_name=${openaire_db_name} + stats_db_name=${stats_db_name} + openaire_db_name=${openaire_db_name} - + - + ${hive_jdbc_url} - stats_db_name=${stats_db_name} - openaire_db_name=${openaire_db_name} + stats_db_name=${stats_db_name} + openaire_db_name=${openaire_db_name} - + - + ${hive_jdbc_url} - stats_db_name=${stats_db_name} - openaire_db_name=${openaire_db_name} + stats_db_name=${stats_db_name} + openaire_db_name=${openaire_db_name} - + - + ${hive_jdbc_url} - stats_db_name=${stats_db_name} - openaire_db_name=${openaire_db_name} + stats_db_name=${stats_db_name} + openaire_db_name=${openaire_db_name} - + - + ${hive_jdbc_url} - stats_db_name=${stats_db_name} - openaire_db_name=${openaire_db_name} + stats_db_name=${stats_db_name} + openaire_db_name=${openaire_db_name} - + - + ${hive_jdbc_url} - stats_db_name=${stats_db_name} - openaire_db_name=${openaire_db_name} - external_stats_db_name=${external_stats_db_name} + stats_db_name=${stats_db_name} + openaire_db_name=${openaire_db_name} + external_stats_db_name=${external_stats_db_name} - + - + ${hive_jdbc_url} - stats_db_name=${stats_db_name} - openaire_db_name=${openaire_db_name} - external_stats_db_name=${external_stats_db_name} + stats_db_name=${stats_db_name} + openaire_db_name=${openaire_db_name} + external_stats_db_name=${external_stats_db_name} - - + + ${hive_jdbc_url} - stats_db_name=${stats_db_name} - openaire_db_name=${openaire_db_name} + stats_db_name=${stats_db_name} + openaire_db_name=${openaire_db_name} - + ${hive_jdbc_url} - stats_db_name=${stats_db_name} - openaire_db_name=${openaire_db_name} + stats_db_name=${stats_db_name} + openaire_db_name=${openaire_db_name} - + ${hive_jdbc_url} - stats_db_name=${stats_db_name} - openaire_db_name=${openaire_db_name} + stats_db_name=${stats_db_name} + openaire_db_name=${openaire_db_name} - + ${hive_jdbc_url} - stats_db_name=${stats_db_name} - openaire_db_name=${openaire_db_name} + stats_db_name=${stats_db_name} + openaire_db_name=${openaire_db_name} @@ -317,15 +346,23 @@ - - ${jobTracker} - ${nameNode} - indicators.sh - ${stats_db_name} - ${external_stats_db_name} - ${wf:appPath()}/scripts/step16-createIndicatorsTables.sql - indicators.sh - + + yarn + cluster + Step16-createIndicatorsTables + eu.dnetlib.dhp.oozie.RunSQLSparkJob + dhp-stats-update-${projectVersion}.jar + + --conf spark.sql.warehouse.dir=${sparkSqlWarehouseDir} + ${sparkClusterOpts} + ${sparkResourceOpts} + ${sparkApplicationOpts} + + --hiveMetastoreUris${hive_metastore_uris} + --sqleu/dnetlib/dhp/oa/graph/stats/oozie_app/scripts/step16-createIndicatorsTables.sql + --stats_db_name${stats_db_name} + --external_stats_db_name${external_stats_db_name} + @@ -378,24 +415,25 @@ ${wf:appPath()}/scripts/step20-createMonitorDB_institutions.sql ${wf:appPath()}/scripts/step20-createMonitorDB_RIs.sql ${wf:appPath()}/scripts/step20-createMonitorDB_RIs_tail.sql + ${wf:appPath()}/scripts/step20-createMonitorDBAll.sql monitor.sh - - - - - - - - - - - - + + + + + + + + + + + + @@ -440,8 +478,8 @@ ${jobTracker} ${nameNode} copyDataToImpalaCluster.sh - - + + ${stats_db_name} ${monitor_db_name} ${observatory_db_name} @@ -450,6 +488,22 @@ ${hadoop_user_name} copyDataToImpalaCluster.sh + + + + + + + ${jobTracker} + ${nameNode} + createPDFsAggregated.sh + + + ${stats_db_name} + ${monitor_db_name} + ${hadoop_user_name} + createPDFsAggregated.sh + @@ -486,4 +540,4 @@ - + \ No newline at end of file diff --git a/dhp-workflows/dhp-swh/pom.xml b/dhp-workflows/dhp-swh/pom.xml new file mode 100644 index 000000000..80fff4587 --- /dev/null +++ b/dhp-workflows/dhp-swh/pom.xml @@ -0,0 +1,110 @@ + + + 4.0.0 + + eu.dnetlib.dhp + dhp-workflows + 1.2.5-SNAPSHOT + + dhp-swh + + + + org.apache.spark + spark-core_${scala.binary.version} + + + + org.apache.spark + spark-sql_${scala.binary.version} + + + + eu.dnetlib.dhp + dhp-common + ${project.version} + + + net.sf.saxon + Saxon-HE + + + + + + dom4j + dom4j + + + + xml-apis + xml-apis + + + + jaxen + jaxen + + + + org.apache.hadoop + hadoop-distcp + + + + eu.dnetlib + dnet-actionmanager-api + + + eu.dnetlib + dnet-actionmanager-common + + + eu.dnetlib + dnet-openaireplus-mapping-utils + + + saxonica + saxon + + + saxonica + saxon-dom + + + jgrapht + jgrapht + + + net.sf.ehcache + ehcache + + + org.springframework + spring-test + + + org.apache.* + * + + + apache + * + + + + + + org.apache.httpcomponents + httpclient + 4.5.13 + + + org.datanucleus + datanucleus-core + 3.2.10 + compile + + + + diff --git a/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/ArchiveRepositoryURLs.java b/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/ArchiveRepositoryURLs.java new file mode 100644 index 000000000..baa510346 --- /dev/null +++ b/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/ArchiveRepositoryURLs.java @@ -0,0 +1,176 @@ + +package eu.dnetlib.dhp.swh; + +import static eu.dnetlib.dhp.utils.DHPUtils.getHadoopConfiguration; + +import java.io.IOException; +import java.net.URL; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + +import org.apache.commons.cli.ParseException; +import org.apache.commons.io.IOUtils; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.io.SequenceFile; +import org.apache.hadoop.io.Text; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.common.collection.CollectorException; +import eu.dnetlib.dhp.common.collection.HttpClientParams; +import eu.dnetlib.dhp.schema.common.ModelSupport; +import eu.dnetlib.dhp.schema.oaf.utils.GraphCleaningFunctions; +import eu.dnetlib.dhp.swh.models.LastVisitData; +import eu.dnetlib.dhp.swh.utils.SWHConnection; +import eu.dnetlib.dhp.swh.utils.SWHConstants; +import eu.dnetlib.dhp.swh.utils.SWHUtils; + +/** + * Sends archive requests to the SWH API for those software repository URLs that are missing from them + * + * @author Serafeim Chatzopoulos + */ +public class ArchiveRepositoryURLs { + + private static final Logger log = LoggerFactory.getLogger(ArchiveRepositoryURLs.class); + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + + private static SWHConnection swhConnection = null; + + public static void main(final String[] args) throws IOException, ParseException { + final ArgumentApplicationParser argumentParser = new ArgumentApplicationParser( + IOUtils + .toString( + CollectLastVisitRepositoryData.class + .getResourceAsStream( + "/eu/dnetlib/dhp/swh/input_archive_repository_urls.json"))); + argumentParser.parseArgument(args); + + final String hdfsuri = argumentParser.get("namenode"); + log.info("hdfsURI: {}", hdfsuri); + + final String inputPath = argumentParser.get("lastVisitsPath"); + log.info("inputPath: {}", inputPath); + + final String outputPath = argumentParser.get("archiveRequestsPath"); + log.info("outputPath: {}", outputPath); + + final Integer archiveThresholdInDays = Integer.parseInt(argumentParser.get("archiveThresholdInDays")); + log.info("archiveThresholdInDays: {}", archiveThresholdInDays); + + final String apiAccessToken = argumentParser.get("apiAccessToken"); + log.info("apiAccessToken: {}", apiAccessToken); + + final HttpClientParams clientParams = SWHUtils.getClientParams(argumentParser); + + swhConnection = new SWHConnection(clientParams, apiAccessToken); + + final FileSystem fs = FileSystem.get(getHadoopConfiguration(hdfsuri)); + + archive(fs, inputPath, outputPath, archiveThresholdInDays); + + } + + private static void archive(FileSystem fs, String inputPath, String outputPath, Integer archiveThresholdInDays) + throws IOException { + + SequenceFile.Reader fr = SWHUtils.getSequenceFileReader(fs, inputPath); + SequenceFile.Writer fw = SWHUtils.getSequenceFileWriter(fs, outputPath); + + // Create key and value objects to hold data + Text repoUrl = new Text(); + Text lastVisitData = new Text(); + + // Read key-value pairs from the SequenceFile and handle appropriately + while (fr.next(repoUrl, lastVisitData)) { + + String response = null; + try { + response = handleRecord(repoUrl.toString(), lastVisitData.toString(), archiveThresholdInDays); + } catch (java.text.ParseException e) { + log.error("Could not handle record with repo Url: {}", repoUrl.toString()); + throw new RuntimeException(e); + } + + // response is equal to null when no need for request + if (response != null) { + SWHUtils.appendToSequenceFile(fw, repoUrl.toString(), response); + } + + } + + // Close readers + fw.close(); + fr.close(); + } + + public static String handleRecord(String repoUrl, String lastVisitData, Integer archiveThresholdInDays) + throws IOException, java.text.ParseException { + + log.info("{ Key: {}, Value: {} }", repoUrl, lastVisitData); + + LastVisitData lastVisit = OBJECT_MAPPER.readValue(lastVisitData, LastVisitData.class); + + // a previous attempt for archival has been made, and repository URL was not found + // avoid performing the same archive request again + if (lastVisit.getStatus() != null && + lastVisit.getStatus().equals(SWHConstants.VISIT_STATUS_NOT_FOUND)) { + + log.info("Avoid request -- previous archive request returned NOT_FOUND"); + return null; + } + + // if we have last visit data + if (lastVisit.getSnapshot() != null) { + + String cleanDate = GraphCleaningFunctions.cleanDate(lastVisit.getDate()); + + // and the last visit date can be parsed + if (cleanDate != null) { + + SimpleDateFormat formatter = new SimpleDateFormat(ModelSupport.DATE_FORMAT); + Date lastVisitDate = formatter.parse(cleanDate); + + // OR last visit time < (now() - archiveThresholdInDays) + long diffInMillies = Math.abs((new Date()).getTime() - lastVisitDate.getTime()); + long diffInDays = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS); + log.info("Date diff from now (in days): {}", diffInDays); + + // do not perform a request, if the last visit date is no older than $archiveThresholdInDays + if (archiveThresholdInDays >= diffInDays) { + log.info("Avoid request -- no older than {} days", archiveThresholdInDays); + return null; + } + } + } + + // ELSE perform an archive request + log.info("Perform archive request for: {}", repoUrl); + + // if last visit data are available, re-use version control type, + // else use the default one (i.e., git) + String visitType = Optional + .ofNullable(lastVisit.getType()) + .orElse(SWHConstants.DEFAULT_VISIT_TYPE); + + URL url = new URL(String.format(SWHConstants.SWH_ARCHIVE_URL, visitType, repoUrl.trim())); + + log.info("Sending archive request: {}", url); + + String response; + try { + response = swhConnection.call(url.toString()); + } catch (CollectorException e) { + log.error("Error in request: {}", url); + response = "{}"; + } + + return response; + } + +} diff --git a/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/CollectLastVisitRepositoryData.java b/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/CollectLastVisitRepositoryData.java new file mode 100644 index 000000000..ebb9176ff --- /dev/null +++ b/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/CollectLastVisitRepositoryData.java @@ -0,0 +1,119 @@ + +package eu.dnetlib.dhp.swh; + +import static eu.dnetlib.dhp.utils.DHPUtils.getHadoopConfiguration; + +import java.io.BufferedReader; +import java.io.IOException; +import java.net.URL; + +import org.apache.commons.cli.ParseException; +import org.apache.commons.io.IOUtils; +import org.apache.hadoop.fs.FileStatus; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.io.SequenceFile; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.common.collection.CollectorException; +import eu.dnetlib.dhp.common.collection.HttpClientParams; +import eu.dnetlib.dhp.swh.utils.SWHConnection; +import eu.dnetlib.dhp.swh.utils.SWHConstants; +import eu.dnetlib.dhp.swh.utils.SWHUtils; + +/** + * Given a file with software repository URLs, this class + * collects last visit data from the Software Heritage API. + * + * @author Serafeim Chatzopoulos + */ +public class CollectLastVisitRepositoryData { + + private static final Logger log = LoggerFactory.getLogger(CollectLastVisitRepositoryData.class); + private static SWHConnection swhConnection = null; + + public static void main(final String[] args) + throws IOException, ParseException { + final ArgumentApplicationParser argumentParser = new ArgumentApplicationParser( + IOUtils + .toString( + CollectLastVisitRepositoryData.class + .getResourceAsStream( + "/eu/dnetlib/dhp/swh/input_collect_last_visit_repository_data.json"))); + argumentParser.parseArgument(args); + + log.info("Java Xmx: {}m", Runtime.getRuntime().maxMemory() / (1024 * 1024)); + + final String hdfsuri = argumentParser.get("namenode"); + log.info("hdfsURI: {}", hdfsuri); + + final String inputPath = argumentParser.get("softwareCodeRepositoryURLs"); + log.info("inputPath: {}", inputPath); + + final String outputPath = argumentParser.get("lastVisitsPath"); + log.info("outputPath: {}", outputPath); + + final String apiAccessToken = argumentParser.get("apiAccessToken"); + log.info("apiAccessToken: {}", apiAccessToken); + + final HttpClientParams clientParams = SWHUtils.getClientParams(argumentParser); + + swhConnection = new SWHConnection(clientParams, apiAccessToken); + + final FileSystem fs = FileSystem.get(getHadoopConfiguration(hdfsuri)); + + collect(fs, inputPath, outputPath); + + fs.close(); + } + + private static void collect(FileSystem fs, String inputPath, String outputPath) + throws IOException { + + SequenceFile.Writer fw = SWHUtils.getSequenceFileWriter(fs, outputPath); + + // Specify the HDFS directory path you want to read + Path directoryPath = new Path(inputPath); + + // List all files in the directory + FileStatus[] partStatuses = fs.listStatus(directoryPath); + + for (FileStatus partStatus : partStatuses) { + + // Check if it's a file (not a directory) + if (partStatus.isFile()) { + handleFile(fs, partStatus.getPath(), fw); + } + + } + + fw.close(); + } + + private static void handleFile(FileSystem fs, Path partInputPath, SequenceFile.Writer fw) + throws IOException { + + BufferedReader br = SWHUtils.getFileReader(fs, partInputPath); + + String repoUrl; + while ((repoUrl = br.readLine()) != null) { + + URL url = new URL(String.format(SWHConstants.SWH_LATEST_VISIT_URL, repoUrl.trim())); + + String response; + try { + response = swhConnection.call(url.toString()); + } catch (CollectorException e) { + log.error("Error in request: {}", url); + response = "{}"; + } + + SWHUtils.appendToSequenceFile(fw, repoUrl, response); + } + + br.close(); + } + +} diff --git a/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/CollectSoftwareRepositoryURLs.java b/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/CollectSoftwareRepositoryURLs.java new file mode 100644 index 000000000..abd51bc5b --- /dev/null +++ b/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/CollectSoftwareRepositoryURLs.java @@ -0,0 +1,93 @@ + +package eu.dnetlib.dhp.swh; + +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkHiveSession; + +import java.util.Optional; + +import org.apache.commons.io.IOUtils; +import org.apache.spark.SparkConf; +import org.apache.spark.sql.Dataset; +import org.apache.spark.sql.Row; +import org.apache.spark.sql.SaveMode; +import org.apache.spark.sql.SparkSession; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.schema.oaf.Result; + +/** + * Collects unique software repository URLs in the Graph using Hive + * + * @author Serafeim Chatzopoulos + */ +public class CollectSoftwareRepositoryURLs { + + private static final Logger log = LoggerFactory.getLogger(CollectSoftwareRepositoryURLs.class); + + public static void main(String[] args) throws Exception { + + String jsonConfiguration = IOUtils + .toString( + CollectSoftwareRepositoryURLs.class + .getResourceAsStream("/eu/dnetlib/dhp/swh/input_collect_software_repository_urls.json")); + + final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); + parser.parseArgument(args); + + final Boolean isSparkSessionManaged = Optional + .ofNullable(parser.get("isSparkSessionManaged")) + .map(Boolean::valueOf) + .orElse(Boolean.TRUE); + log.info("isSparkSessionManaged: {}", isSparkSessionManaged); + + final String hiveDbName = parser.get("hiveDbName"); + log.info("hiveDbName: {}", hiveDbName); + + final String outputPath = parser.get("softwareCodeRepositoryURLs"); + log.info("softwareCodeRepositoryURLs: {}", outputPath); + + final String hiveMetastoreUris = parser.get("hiveMetastoreUris"); + log.info("hiveMetastoreUris: {}", hiveMetastoreUris); + + final Integer softwareLimit = Integer.parseInt(parser.get("softwareLimit")); + log.info("softwareLimit: {}", softwareLimit); + + SparkConf conf = new SparkConf(); + conf.set("hive.metastore.uris", hiveMetastoreUris); + + runWithSparkHiveSession( + conf, + isSparkSessionManaged, + spark -> { + doRun(spark, hiveDbName, softwareLimit, outputPath); + }); + } + + private static void doRun(SparkSession spark, String hiveDbName, Integer limit, + String outputPath) { + + String queryTemplate = "SELECT distinct coderepositoryurl.value " + + "FROM %s.software " + + "WHERE coderepositoryurl.value IS NOT NULL " + + "AND datainfo.deletedbyinference = FALSE " + + "AND datainfo.invisible = FALSE "; + + if (limit != null) { + queryTemplate += String.format("LIMIT %s", limit); + } + + String query = String.format(queryTemplate, hiveDbName); + + log.info("Hive query to fetch software code URLs: {}", query); + + Dataset df = spark.sql(query); + + // write distinct repository URLs + df + .write() + .mode(SaveMode.Overwrite) + .csv(outputPath); + } +} diff --git a/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/PrepareSWHActionsets.java b/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/PrepareSWHActionsets.java new file mode 100644 index 000000000..2691d4b7e --- /dev/null +++ b/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/PrepareSWHActionsets.java @@ -0,0 +1,185 @@ + +package eu.dnetlib.dhp.swh; + +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; +import static org.apache.spark.sql.functions.col; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.List; +import java.util.Optional; + +import org.apache.commons.io.IOUtils; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.io.compress.GzipCodec; +import org.apache.hadoop.mapred.SequenceFileOutputFormat; +import org.apache.spark.SparkConf; +import org.apache.spark.api.java.JavaPairRDD; +import org.apache.spark.api.java.JavaRDD; +import org.apache.spark.api.java.JavaSparkContext; +import org.apache.spark.api.java.function.MapFunction; +import org.apache.spark.sql.*; +import org.apache.spark.sql.Dataset; +import org.apache.spark.sql.types.DataTypes; +import org.apache.spark.sql.types.StructField; +import org.apache.spark.sql.types.StructType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.schema.action.AtomicAction; +import eu.dnetlib.dhp.schema.common.ModelConstants; +import eu.dnetlib.dhp.schema.oaf.*; +import eu.dnetlib.dhp.schema.oaf.utils.OafMapperUtils; +import eu.dnetlib.dhp.swh.models.LastVisitData; +import eu.dnetlib.dhp.swh.utils.SWHConstants; +import scala.Tuple2; + +/** + * Creates action sets for Software Heritage data + * + * @author Serafeim Chatzopoulos + */ +public class PrepareSWHActionsets { + + private static final Logger log = LoggerFactory.getLogger(PrepareSWHActionsets.class); + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + + public static void main(String[] args) throws Exception { + + String jsonConfiguration = IOUtils + .toString( + PrepareSWHActionsets.class + .getResourceAsStream( + "/eu/dnetlib/dhp/swh/input_prepare_swh_actionsets.json")); + + final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); + parser.parseArgument(args); + + final Boolean isSparkSessionManaged = Optional + .ofNullable(parser.get("isSparkSessionManaged")) + .map(Boolean::valueOf) + .orElse(Boolean.TRUE); + log.info("isSparkSessionManaged: {}", isSparkSessionManaged); + + final String inputPath = parser.get("lastVisitsPath"); + log.info("inputPath: {}", inputPath); + + final String softwareInputPath = parser.get("softwareInputPath"); + log.info("softwareInputPath: {}", softwareInputPath); + + final String outputPath = parser.get("actionsetsPath"); + log.info("outputPath: {}", outputPath); + + SparkConf conf = new SparkConf(); + + runWithSparkSession( + conf, + isSparkSessionManaged, + spark -> { + JavaPairRDD softwareRDD = prepareActionsets(spark, inputPath, softwareInputPath); + softwareRDD + .saveAsHadoopFile( + outputPath, Text.class, Text.class, SequenceFileOutputFormat.class, GzipCodec.class); + }); + } + + private static Dataset loadSWHData(SparkSession spark, String inputPath) { + + JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); + + // read from file and transform to tuples + // Note: snapshot id is the SWH id for us + JavaRDD swhRDD = sc + .sequenceFile(inputPath, Text.class, Text.class) + .map(t -> t._2().toString()) + .map(t -> OBJECT_MAPPER.readValue(t, LastVisitData.class)) + .filter(t -> t.getOrigin() != null && t.getSnapshot() != null) // response from SWH API is empty if repo URL + // was not found + .map(item -> RowFactory.create(item.getOrigin(), item.getSnapshot())); + + // convert RDD to 2-column DF + List fields = Arrays + .asList( + DataTypes.createStructField("repoUrl", DataTypes.StringType, true), + DataTypes.createStructField("swhId", DataTypes.StringType, true)); + StructType schema = DataTypes.createStructType(fields); + + return spark.createDataFrame(swhRDD, schema); + } + + private static Dataset loadGraphSoftwareData(SparkSession spark, String softwareInputPath) { + return spark + .read() + .textFile(softwareInputPath) + .map( + (MapFunction) t -> OBJECT_MAPPER.readValue(t, Software.class), + Encoders.bean(Software.class)) + .filter(t -> t.getCodeRepositoryUrl() != null) + .select(col("id"), col("codeRepositoryUrl.value").as("repoUrl")); + } + + private static JavaPairRDD prepareActionsets(SparkSession spark, String inputPath, + String softwareInputPath) { + + Dataset swhDF = loadSWHData(spark, inputPath); +// swhDF.show(false); + + Dataset graphSoftwareDF = loadGraphSoftwareData(spark, softwareInputPath); +// graphSoftwareDF.show(5); + + Dataset joinedDF = graphSoftwareDF.join(swhDF, "repoUrl").select("id", "swhid"); +// joinedDF.show(false); + + return joinedDF.map((MapFunction) row -> { + + Software s = new Software(); + + // set openaire id + s.setId(row.getString(row.fieldIndex("id"))); + + // set swh id + Qualifier qualifier = OafMapperUtils + .qualifier( + SWHConstants.SWHID, + SWHConstants.SWHID_CLASSNAME, + ModelConstants.DNET_PID_TYPES, + ModelConstants.DNET_PID_TYPES); + + DataInfo dataInfo = OafMapperUtils + .dataInfo( + false, + null, + false, + false, + ModelConstants.PROVENANCE_ACTION_SET_QUALIFIER, + ""); + + s + .setPid( + Arrays + .asList( + OafMapperUtils + .structuredProperty( + String.format("swh:1:snp:%s", row.getString(row.fieldIndex("swhid"))), + qualifier, + dataInfo))); + + // add SWH in the `collectedFrom` field + KeyValue kv = new KeyValue(); + kv.setKey(SWHConstants.SWH_ID); + kv.setValue(SWHConstants.SWH_NAME); + + s.setCollectedfrom(Arrays.asList(kv)); + + return s; + }, Encoders.bean(Software.class)) + .toJavaRDD() + .map(p -> new AtomicAction(Software.class, p)) + .mapToPair( + aa -> new Tuple2<>(new Text(aa.getClazz().getCanonicalName()), + new Text(OBJECT_MAPPER.writeValueAsString(aa)))); + } +} diff --git a/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/models/LastVisitData.java b/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/models/LastVisitData.java new file mode 100644 index 000000000..5e705716c --- /dev/null +++ b/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/models/LastVisitData.java @@ -0,0 +1,71 @@ + +package eu.dnetlib.dhp.swh.models; + +import java.io.Serializable; + +import com.cloudera.com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class LastVisitData implements Serializable { + + private String origin; + private String type; + private String date; + + @JsonProperty("snapshot") + private String snapshotId; + + private String status; + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getDate() { + return date; + } + + public void setDate(String date) { + this.date = date; + } + + public String getSnapshot() { + return snapshotId; + } + + public void setSnapshot(String snapshotId) { + this.snapshotId = snapshotId; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getOrigin() { + return origin; + } + + public void setOrigin(String origin) { + this.origin = origin; + } + + @Override + public String toString() { + return "LastVisitData{" + + "origin='" + origin + '\'' + + ", type='" + type + '\'' + + ", date='" + date + '\'' + + ", snapshotId='" + snapshotId + '\'' + + ", status='" + status + '\'' + + '}'; + } +} diff --git a/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/utils/SWHConnection.java b/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/utils/SWHConnection.java new file mode 100644 index 000000000..80249e816 --- /dev/null +++ b/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/utils/SWHConnection.java @@ -0,0 +1,40 @@ + +package eu.dnetlib.dhp.swh.utils; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.http.HttpHeaders; + +import eu.dnetlib.dhp.common.collection.CollectorException; +import eu.dnetlib.dhp.common.collection.HttpClientParams; +import eu.dnetlib.dhp.common.collection.HttpConnector2; + +public class SWHConnection { + + HttpConnector2 conn; + + public SWHConnection(HttpClientParams clientParams, String accessToken) { + + // set custom headers + Map headers = new HashMap() { + { + put(HttpHeaders.ACCEPT, "application/json"); + if (accessToken != null) { + put(HttpHeaders.AUTHORIZATION, String.format("Bearer %s", accessToken)); + } + } + }; + + clientParams.setHeaders(headers); + + // create http connector + conn = new HttpConnector2(clientParams); + + } + + public String call(String url) throws CollectorException { + return conn.getInputSource(url); + } + +} diff --git a/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/utils/SWHConstants.java b/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/utils/SWHConstants.java new file mode 100644 index 000000000..2a0403044 --- /dev/null +++ b/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/utils/SWHConstants.java @@ -0,0 +1,21 @@ + +package eu.dnetlib.dhp.swh.utils; + +public class SWHConstants { + public static final String SWH_LATEST_VISIT_URL = "https://archive.softwareheritage.org/api/1/origin/%s/visit/latest/"; + + public static final String SWH_ARCHIVE_URL = "https://archive.softwareheritage.org/api/1/origin/save/%s/url/%s/"; + + public static final String DEFAULT_VISIT_TYPE = "git"; + + public static final String VISIT_STATUS_NOT_FOUND = "not_found"; + + public static final String SWHID = "swhid"; + + public static final String SWHID_CLASSNAME = "Software Hash Identifier"; + + public static final String SWH_ID = "10|openaire____::dbfd07503aaa1ed31beed7dec942f3f4"; + + public static final String SWH_NAME = "Software Heritage"; + +} diff --git a/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/utils/SWHUtils.java b/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/utils/SWHUtils.java new file mode 100644 index 000000000..405ce51e4 --- /dev/null +++ b/dhp-workflows/dhp-swh/src/main/java/eu/dnetlib/dhp/swh/utils/SWHUtils.java @@ -0,0 +1,95 @@ + +package eu.dnetlib.dhp.swh.utils; + +import static eu.dnetlib.dhp.common.Constants.*; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.util.Optional; + +import org.apache.hadoop.fs.FSDataInputStream; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.io.SequenceFile; +import org.apache.hadoop.io.Text; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.common.collection.HttpClientParams; + +public class SWHUtils { + + private static final Logger log = LoggerFactory.getLogger(SWHUtils.class); + + public static HttpClientParams getClientParams(ArgumentApplicationParser argumentParser) { + + final HttpClientParams clientParams = new HttpClientParams(); + clientParams + .setMaxNumberOfRetry( + Optional + .ofNullable(argumentParser.get(MAX_NUMBER_OF_RETRY)) + .map(Integer::parseInt) + .orElse(HttpClientParams._maxNumberOfRetry)); + log.info("maxNumberOfRetry is {}", clientParams.getMaxNumberOfRetry()); + + clientParams + .setRequestDelay( + Optional + .ofNullable(argumentParser.get(REQUEST_DELAY)) + .map(Integer::parseInt) + .orElse(HttpClientParams._requestDelay)); + log.info("requestDelay is {}", clientParams.getRequestDelay()); + + clientParams + .setRetryDelay( + Optional + .ofNullable(argumentParser.get(RETRY_DELAY)) + .map(Integer::parseInt) + .orElse(HttpClientParams._retryDelay)); + log.info("retryDelay is {}", clientParams.getRetryDelay()); + + clientParams + .setRequestMethod( + Optional + .ofNullable(argumentParser.get(REQUEST_METHOD)) + .orElse(HttpClientParams._requestMethod)); + log.info("requestMethod is {}", clientParams.getRequestMethod()); + + return clientParams; + } + + public static BufferedReader getFileReader(FileSystem fs, Path inputPath) throws IOException { + FSDataInputStream inputStream = fs.open(inputPath); + return new BufferedReader( + new InputStreamReader(inputStream, StandardCharsets.UTF_8)); + } + + public static SequenceFile.Writer getSequenceFileWriter(FileSystem fs, String outputPath) throws IOException { + return SequenceFile + .createWriter( + fs.getConf(), + SequenceFile.Writer.file(new Path(outputPath)), + SequenceFile.Writer.keyClass(Text.class), + SequenceFile.Writer.valueClass(Text.class)); + } + + public static SequenceFile.Reader getSequenceFileReader(FileSystem fs, String inputPath) throws IOException { + Path filePath = new Path(inputPath); + SequenceFile.Reader.Option fileOption = SequenceFile.Reader.file(filePath); + + return new SequenceFile.Reader(fs.getConf(), fileOption); + } + + public static void appendToSequenceFile(SequenceFile.Writer fw, String keyStr, String valueStr) throws IOException { + Text key = new Text(); + key.set(keyStr); + + Text value = new Text(); + value.set(valueStr); + + fw.append(key, value); + } +} diff --git a/dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/input_archive_repository_urls.json b/dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/input_archive_repository_urls.json new file mode 100644 index 000000000..e8671f71b --- /dev/null +++ b/dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/input_archive_repository_urls.json @@ -0,0 +1,56 @@ +[ + { + "paramName": "n", + "paramLongName": "namenode", + "paramDescription": "the Name Node URI", + "paramRequired": true + }, + { + "paramName": "lv", + "paramLongName": "lastVisitsPath", + "paramDescription": "the URL where to store last visits data", + "paramRequired": true + }, + { + "paramName": "arp", + "paramLongName": "archiveRequestsPath", + "paramDescription": "the URL where to store the responses of the archive requests", + "paramRequired": true + }, + { + "paramName": "mnr", + "paramLongName": "maxNumberOfRetry", + "paramDescription": "the maximum number of admitted connection retries", + "paramRequired": false + }, + { + "paramName": "rqd", + "paramLongName": "requestDelay", + "paramDescription": "the delay (ms) between requests", + "paramRequired": false + }, + { + "paramName": "rtd", + "paramLongName": "retryDelay", + "paramDescription": "the delay (ms) between retries", + "paramRequired": false + }, + { + "paramName": "rm", + "paramLongName": "requestMethod", + "paramDescription": "the method of the requests to perform", + "paramRequired": false + }, + { + "paramName": "atid", + "paramLongName": "archiveThresholdInDays", + "paramDescription": "the thershold (in days) required to issue an archive request", + "paramRequired": false + }, + { + "paramName": "aat", + "paramLongName": "apiAccessToken", + "paramDescription": "the API access token of the SWH API", + "paramRequired": false + } +] \ No newline at end of file diff --git a/dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/input_collect_last_visit_repository_data.json b/dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/input_collect_last_visit_repository_data.json new file mode 100644 index 000000000..662582dfe --- /dev/null +++ b/dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/input_collect_last_visit_repository_data.json @@ -0,0 +1,50 @@ +[ + { + "paramName": "n", + "paramLongName": "namenode", + "paramDescription": "the Name Node URI", + "paramRequired": true + }, + { + "paramName": "scr", + "paramLongName": "softwareCodeRepositoryURLs", + "paramDescription": "the URL from where to read software repository URLs", + "paramRequired": true + }, + { + "paramName": "lv", + "paramLongName": "lastVisitsPath", + "paramDescription": "the URL where to store last visits data", + "paramRequired": true + }, + { + "paramName": "mnr", + "paramLongName": "maxNumberOfRetry", + "paramDescription": "the maximum number of admitted connection retries", + "paramRequired": false + }, + { + "paramName": "rqd", + "paramLongName": "requestDelay", + "paramDescription": "the delay (ms) between requests", + "paramRequired": false + }, + { + "paramName": "rtd", + "paramLongName": "retryDelay", + "paramDescription": "the delay (ms) between retries", + "paramRequired": false + }, + { + "paramName": "rm", + "paramLongName": "requestMethod", + "paramDescription": "the method of the requests to perform", + "paramRequired": false + }, + { + "paramName": "aat", + "paramLongName": "apiAccessToken", + "paramDescription": "the API access token of the SWH API", + "paramRequired": false + } +] \ No newline at end of file diff --git a/dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/input_collect_software_repository_urls.json b/dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/input_collect_software_repository_urls.json new file mode 100644 index 000000000..4459fe9df --- /dev/null +++ b/dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/input_collect_software_repository_urls.json @@ -0,0 +1,32 @@ +[ + { + "paramName": "issm", + "paramLongName": "isSparkSessionManaged", + "paramDescription": "when true will stop SparkSession after job execution", + "paramRequired": false + }, + { + "paramName": "scr", + "paramLongName": "softwareCodeRepositoryURLs", + "paramDescription": "the URL where to store software repository URLs", + "paramRequired": true + }, + { + "paramName": "db", + "paramLongName": "hiveDbName", + "paramDescription": "the target hive database name", + "paramRequired": true + }, + { + "paramName": "hmu", + "paramLongName": "hiveMetastoreUris", + "paramDescription": "the hive metastore uris", + "paramRequired": true + }, + { + "paramName": "slim", + "paramLongName": "softwareLimit", + "paramDescription": "limit on the number of software repo URL to fetch", + "paramRequired": false + } +] \ No newline at end of file diff --git a/dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/input_prepare_swh_actionsets.json b/dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/input_prepare_swh_actionsets.json new file mode 100644 index 000000000..07ab0b1f4 --- /dev/null +++ b/dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/input_prepare_swh_actionsets.json @@ -0,0 +1,26 @@ +[ + { + "paramName": "issm", + "paramLongName": "isSparkSessionManaged", + "paramDescription": "when true will stop SparkSession after job execution", + "paramRequired": false + }, + { + "paramName": "lv", + "paramLongName": "lastVisitsPath", + "paramDescription": "the URL where to store last visits data", + "paramRequired": true + }, + { + "paramName": "ap", + "paramLongName": "actionsetsPath", + "paramDescription": "the URL path where to store actionsets", + "paramRequired": true + }, + { + "paramName": "sip", + "paramLongName": "softwareInputPath", + "paramDescription": "the URL path of the software in the graph", + "paramRequired": true + } +] \ No newline at end of file diff --git a/dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/job.properties b/dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/job.properties new file mode 100644 index 000000000..35c068286 --- /dev/null +++ b/dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/job.properties @@ -0,0 +1,19 @@ +# hive +hiveDbName=openaire_prod_20230914 + +# input/output files +softwareCodeRepositoryURLs=${workingDir}/1_code_repo_urls.csv +lastVisitsPath=${workingDir}/2_last_visits.seq +archiveRequestsPath=${workingDir}/3_archive_requests.seq +actionsetsPath=${workingDir}/4_actionsets +graphPath=/tmp/prod_provision/graph/18_graph_blacklisted + +apiAccessToken=eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJhMTMxYTQ1My1hM2IyLTQwMTUtODQ2Ny05MzAyZjk3MTFkOGEifQ.eyJpYXQiOjE2OTQ2MzYwMjAsImp0aSI6IjkwZjdkNTNjLTQ5YTktNGFiMy1hY2E0LTcwMTViMjEyZTNjNiIsImlzcyI6Imh0dHBzOi8vYXV0aC5zb2Z0d2FyZWhlcml0YWdlLm9yZy9hdXRoL3JlYWxtcy9Tb2Z0d2FyZUhlcml0YWdlIiwiYXVkIjoiaHR0cHM6Ly9hdXRoLnNvZnR3YXJlaGVyaXRhZ2Uub3JnL2F1dGgvcmVhbG1zL1NvZnR3YXJlSGVyaXRhZ2UiLCJzdWIiOiIzMTY5OWZkNC0xNmE0LTQxOWItYTdhMi00NjI5MDY4ZjI3OWEiLCJ0eXAiOiJPZmZsaW5lIiwiYXpwIjoic3doLXdlYiIsInNlc3Npb25fc3RhdGUiOiIzMjYzMzEwMS00ZDRkLTQwMjItODU2NC1iMzNlMTJiNTE3ZDkiLCJzY29wZSI6Im9wZW5pZCBvZmZsaW5lX2FjY2VzcyBwcm9maWxlIGVtYWlsIn0.XHj1VIZu1dZ4Ej32-oU84mFmaox9cLNjXosNxwZM0Xs + +maxNumberOfRetry=2 +retryDelay=1 +requestDelay=100 + +softwareLimit=500 + +resume=collect-software-repository-urls diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/oozie_app/config-default.xml b/dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/oozie_app/config-default.xml similarity index 66% rename from dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/oozie_app/config-default.xml rename to dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/oozie_app/config-default.xml index fe82ae194..3e45a53fa 100644 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/oozie_app/config-default.xml +++ b/dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/oozie_app/config-default.xml @@ -16,39 +16,39 @@ spark2 - hive_metastore_uris + hiveMetastoreUris thrift://iis-cdh5-test-m3.ocean.icm.edu.pl:9083 spark2YarnHistoryServerAddress http://iis-cdh5-test-gw.ocean.icm.edu.pl:18089 - - spark2ExtraListeners - com.cloudera.spark.lineage.NavigatorAppListener - - - spark2SqlQueryExecutionListeners - com.cloudera.spark.lineage.NavigatorQueryListener - - - sparkExecutorNumber - 4 - spark2EventLogDir /user/spark/spark2ApplicationHistory - sparkDriverMemory - 15G + spark2ExtraListeners + "com.cloudera.spark.lineage.NavigatorAppListener" - sparkExecutorMemory - 6G + spark2SqlQueryExecutionListeners + "com.cloudera.spark.lineage.NavigatorQueryListener" - sparkExecutorCores - 1 + oozieActionShareLibForSpark2 + spark2 + + + resourceManager + http://iis-cdh5-test-m2.ocean.icm.edu.pl:8088/cluster + + + oozie.launcher.mapreduce.user.classpath.first + true + + + sparkSqlWarehouseDir + /user/hive/warehouse \ No newline at end of file diff --git a/dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/oozie_app/workflow.xml b/dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/oozie_app/workflow.xml new file mode 100644 index 000000000..c625fcb5b --- /dev/null +++ b/dhp-workflows/dhp-swh/src/main/resources/eu/dnetlib/dhp/swh/oozie_app/workflow.xml @@ -0,0 +1,183 @@ + + + + + + hiveDbName + The name of the Hive DB to be used + + + softwareCodeRepositoryURLs + The path in the HDFS to save the software repository URLs + + + lastVisitsPath + The path in the HDFS to save the responses of the last visit requests + + + archiveRequestsPath + The path in the HDFS to save the responses of the archive requests + + + actionsetsPath + The path in the HDFS to save the action sets + + + graphPath + The path in the HDFS to the base folder of the graph + + + maxNumberOfRetry + Max number of retries for failed API calls + + + retryDelay + Retry delay for failed requests (in sec) + + + requestDelay + Delay between API requests (in ms) + + + apiAccessToken + The API Key of the SWH API + + + softwareLimit + Limit on the number of repo URLs to use (Optional); for debug purposes + + + resumeFrom + Variable that indicates the step to start from + + + + + + ${jobTracker} + ${nameNode} + + + oozie.action.sharelib.for.spark + ${oozieActionShareLibForSpark2} + + + actionsetsPath + ${actionsetsPath} + + + apiAccessToken + ${apiAccessToken} + + + + + + + + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + + ${wf:conf('resumeFrom') eq 'collect-software-repository-urls'} + ${wf:conf('resumeFrom') eq 'create-swh-actionsets'} + + + + + + + yarn + cluster + Collect software repository URLs + eu.dnetlib.dhp.swh.CollectSoftwareRepositoryURLs + dhp-swh-${projectVersion}.jar + + --executor-memory=${sparkExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + --conf spark.sql.warehouse.dir=${sparkSqlWarehouseDir} + + + --softwareCodeRepositoryURLs${softwareCodeRepositoryURLs} + --hiveDbName${hiveDbName} + --hiveMetastoreUris${hiveMetastoreUris} + --softwareLimit${softwareLimit} + + + + + + + + eu.dnetlib.dhp.swh.CollectLastVisitRepositoryData + + --namenode${nameNode} + --softwareCodeRepositoryURLs${softwareCodeRepositoryURLs} + --lastVisitsPath${lastVisitsPath} + + --maxNumberOfRetry${maxNumberOfRetry} + --requestDelay${requestDelay} + --retryDelay${retryDelay} + --requestMethodGET + --apiAccessToken${apiAccessToken} + + + + + + + + + eu.dnetlib.dhp.swh.ArchiveRepositoryURLs + + --namenode${nameNode} + --lastVisitsPath${lastVisitsPath} + --archiveRequestsPath${archiveRequestsPath} + --archiveThresholdInDays365 + + --maxNumberOfRetry${maxNumberOfRetry} + --requestDelay${requestDelay} + --retryDelay${retryDelay} + --requestMethodPOST + --apiAccessToken${apiAccessToken} + + + + + + + + + yarn + cluster + Create actionsets for SWH data + eu.dnetlib.dhp.swh.PrepareSWHActionsets + dhp-swh-${projectVersion}.jar + + --executor-memory=${sparkExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + --conf spark.sql.warehouse.dir=${sparkSqlWarehouseDir} + + + --lastVisitsPath${lastVisitsPath} + --actionsetsPath${actionsetsPath} + --softwareInputPath${graphPath}/software + + + + + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-swh/src/test/java/eu/dnetlib/dhp/swh/ArchiveRepositoryURLsTest.java b/dhp-workflows/dhp-swh/src/test/java/eu/dnetlib/dhp/swh/ArchiveRepositoryURLsTest.java new file mode 100644 index 000000000..e069e9655 --- /dev/null +++ b/dhp-workflows/dhp-swh/src/test/java/eu/dnetlib/dhp/swh/ArchiveRepositoryURLsTest.java @@ -0,0 +1,38 @@ + +package eu.dnetlib.dhp.swh; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.text.ParseException; +import java.util.Arrays; + +import org.apache.hadoop.fs.FileSystem; +import org.junit.jupiter.api.Test; + +import eu.dnetlib.dhp.swh.utils.SWHUtils; + +public class ArchiveRepositoryURLsTest { + + @Test + void testArchive() throws IOException, ParseException { + String inputPath = getClass() + .getResource("/eu/dnetlib/dhp/swh/lastVisitDataToArchive.csv") + .getPath(); + + File file = new File(inputPath); + FileReader fr = new FileReader(file); + BufferedReader br = new BufferedReader(fr); // creates a buffering character input stream + + String line; + while ((line = br.readLine()) != null) { + String[] tokens = line.split("\t"); + + String response = ArchiveRepositoryURLs.handleRecord(tokens[0], tokens[1], 365); + System.out.println(tokens[0] + "\t" + response); + System.out.println(); + } + fr.close(); + } +} diff --git a/dhp-workflows/dhp-swh/src/test/java/eu/dnetlib/dhp/swh/PrepareSWHActionsetsTest.java b/dhp-workflows/dhp-swh/src/test/java/eu/dnetlib/dhp/swh/PrepareSWHActionsetsTest.java new file mode 100644 index 000000000..ffcb7aaee --- /dev/null +++ b/dhp-workflows/dhp-swh/src/test/java/eu/dnetlib/dhp/swh/PrepareSWHActionsetsTest.java @@ -0,0 +1,97 @@ + +package eu.dnetlib.dhp.swh; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; + +import org.apache.commons.io.FileUtils; +import org.apache.hadoop.io.Text; +import org.apache.spark.SparkConf; +import org.apache.spark.api.java.JavaRDD; +import org.apache.spark.api.java.JavaSparkContext; +import org.apache.spark.sql.Dataset; +import org.apache.spark.sql.Encoders; +import org.apache.spark.sql.Row; +import org.apache.spark.sql.SparkSession; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import eu.dnetlib.dhp.schema.action.AtomicAction; +import eu.dnetlib.dhp.schema.common.ModelConstants; +import eu.dnetlib.dhp.schema.oaf.Relation; +import eu.dnetlib.dhp.schema.oaf.utils.CleaningFunctions; +import eu.dnetlib.dhp.schema.oaf.utils.IdentifierFactory; + +public class PrepareSWHActionsetsTest { + + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + + private static SparkSession spark; + + private static Path workingDir; + + private static final Logger log = LoggerFactory + .getLogger(PrepareSWHActionsetsTest.class); + + @BeforeAll + public static void beforeAll() throws IOException { + workingDir = Files.createTempDirectory(PrepareSWHActionsetsTest.class.getSimpleName()); + + log.info("Using work dir {}", workingDir); + + SparkConf conf = new SparkConf(); + conf.setAppName(PrepareSWHActionsetsTest.class.getSimpleName()); + + conf.setMaster("local[*]"); + conf.set("spark.driver.host", "localhost"); + conf.set("hive.metastore.local", "true"); + conf.set("spark.ui.enabled", "false"); + conf.set("spark.sql.warehouse.dir", workingDir.toString()); + conf.set("hive.metastore.warehouse.dir", workingDir.resolve("warehouse").toString()); + + spark = SparkSession + .builder() + .appName(PrepareSWHActionsetsTest.class.getSimpleName()) + .config(conf) + .getOrCreate(); + } + + @AfterAll + public static void afterAll() throws IOException { + FileUtils.deleteDirectory(workingDir.toFile()); + spark.stop(); + } + + @Test + void testRun() throws Exception { + + String lastVisitsPath = getClass() + .getResource("/eu/dnetlib/dhp/swh/last_visits_data.seq") + .getPath(); + + String outputPath = workingDir.toString() + "/actionSet"; + + String softwareInputPath = getClass() + .getResource("/eu/dnetlib/dhp/swh/software.json.gz") + .getPath(); + + PrepareSWHActionsets + .main( + new String[] { + "-isSparkSessionManaged", Boolean.FALSE.toString(), + "-lastVisitsPath", lastVisitsPath, + "-softwareInputPath", softwareInputPath, + "-actionsetsPath", outputPath + }); + + } +} diff --git a/dhp-workflows/dhp-swh/src/test/java/eu/dnetlib/dhp/swh/SWHConnectionTest.java b/dhp-workflows/dhp-swh/src/test/java/eu/dnetlib/dhp/swh/SWHConnectionTest.java new file mode 100644 index 000000000..b19e0e7ac --- /dev/null +++ b/dhp-workflows/dhp-swh/src/test/java/eu/dnetlib/dhp/swh/SWHConnectionTest.java @@ -0,0 +1,58 @@ + +package eu.dnetlib.dhp.swh; + +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; + +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import eu.dnetlib.dhp.common.collection.CollectorException; +import eu.dnetlib.dhp.common.collection.HttpClientParams; +import eu.dnetlib.dhp.swh.utils.SWHConnection; +import eu.dnetlib.dhp.swh.utils.SWHConstants; + +//import org.apache.hadoop.hdfs.MiniDFSCluster; + +public class SWHConnectionTest { + private static final Logger log = LoggerFactory.getLogger(SWHConnectionTest.class); + + @Test + void testGetCall() throws IOException { + + HttpClientParams clientParams = new HttpClientParams(); + clientParams.setRequestMethod("GET"); + + SWHConnection swhConnection = new SWHConnection(clientParams, null); + + String repoUrl = "https://github.com/stanford-futuredata/FAST"; + URL url = new URL(String.format(SWHConstants.SWH_LATEST_VISIT_URL, repoUrl)); + String response = null; + try { + response = swhConnection.call(url.toString()); + } catch (CollectorException e) { + System.out.println("Error in request: " + url); + } + System.out.println(response); + } + + @Test + void testPostCall() throws MalformedURLException { + HttpClientParams clientParams = new HttpClientParams(); + clientParams.setRequestMethod("POST"); + + SWHConnection swhConnection = new SWHConnection(clientParams, null); + + String repoUrl = "https://github.com/stanford-futuredata/FAST"; + URL url = new URL(String.format(SWHConstants.SWH_ARCHIVE_URL, SWHConstants.DEFAULT_VISIT_TYPE, repoUrl)); + String response = null; + try { + response = swhConnection.call(url.toString()); + } catch (CollectorException e) { + System.out.println("Error in request: " + url); + } + System.out.println(response); + } +} diff --git a/dhp-workflows/dhp-swh/src/test/resources/eu/dnetlib/dhp/swh/lastVisitDataToArchive.csv b/dhp-workflows/dhp-swh/src/test/resources/eu/dnetlib/dhp/swh/lastVisitDataToArchive.csv new file mode 100644 index 000000000..568ccf482 --- /dev/null +++ b/dhp-workflows/dhp-swh/src/test/resources/eu/dnetlib/dhp/swh/lastVisitDataToArchive.csv @@ -0,0 +1,7 @@ +https://bitbucket.org/samskillman/yt-stokes {"origin":"https://bitbucket.org/samskillman/yt-stokes","visit":43,"date":"2021-09-13T21:59:27.125171+00:00","status":"failed","snapshot":null,"type":"hg","metadata":{},"origin_url":"https://archive.softwareheritage.org/api/1/origin/https://bitbucket.org/samskillman/yt-stokes/get/","snapshot_url":null} +https://github.com/bioinsilico/BIPSPI {"origin":"https://github.com/bioinsilico/BIPSPI","visit":1,"date":"2020-03-18T14:50:21.541822+00:00","status":"full","snapshot":"c6c69d2cd73ce89811448da5f031611df6f63bdb","type":"git","metadata":{},"origin_url":"https://archive.softwareheritage.org/api/1/origin/https://github.com/bioinsilico/BIPSPI/get/","snapshot_url":"https://archive.softwareheritage.org/api/1/snapshot/c6c69d2cd73ce89811448da5f031611df6f63bdb/"} +https://github.com/mloop/kdiff-type1-error-rate/blob/master/analysis/simulation.R {} +https://github.com/schwanbeck/YSMR {"origin":"https://github.com/schwanbeck/YSMR","visit":6,"date":"2023-08-02T15:25:02.650676+00:00","status":"full","snapshot":"a9d1c5f0bca2def198b89f65bc9f7da3be8439ed","type":"git","metadata":{},"origin_url":"https://archive.softwareheritage.org/api/1/origin/https://github.com/schwanbeck/YSMR/get/","snapshot_url":"https://archive.softwareheritage.org/api/1/snapshot/a9d1c5f0bca2def198b89f65bc9f7da3be8439ed/"} +https://github.com/lvclark/TASSELGBS_combine {"origin":"https://github.com/lvclark/TASSELGBS_combine","visit":1,"date":"2020-04-12T20:44:09.405589+00:00","status":"full","snapshot":"ffa6fefd3f5becefbea9fe0e6d5d93859c95c071","type":"git","metadata":{},"origin_url":"https://archive.softwareheritage.org/api/1/origin/https://github.com/lvclark/TASSELGBS_combine/get/","snapshot_url":"https://archive.softwareheritage.org/api/1/snapshot/ffa6fefd3f5becefbea9fe0e6d5d93859c95c071/"} +https://github.com/PRIDE-Toolsuite/inspector-example-files {"origin":"https://github.com/PRIDE-Toolsuite/inspector-example-files","visit":12,"date":"2021-01-25T08:54:13.394674+00:00","status":"full","snapshot":"0b56eb0ad07cf778df6dabefc4b73636e0ae8b37","type":"git","metadata":{},"origin_url":"https://archive.softwareheritage.org/api/1/origin/https://github.com/PRIDE-Toolsuite/inspector-example-files/get/","snapshot_url":"https://archive.softwareheritage.org/api/1/snapshot/0b56eb0ad07cf778df6dabefc4b73636e0ae8b37/"} +https://bitbucket.org/matwey/chelyabinsk {"origin":"https://bitbucket.org/matwey/chelyabinsk","visit":6,"date":"2021-09-24T19:32:43.322909+00:00","status":"full","snapshot":"215913858c3ee0e61e1aaea18241c5ee006da1b0","type":"hg","metadata":{},"origin_url":"https://archive.softwareheritage.org/api/1/origin/https://bitbucket.org/matwey/chelyabinsk/get/","snapshot_url":"https://archive.softwareheritage.org/api/1/snapshot/215913858c3ee0e61e1aaea18241c5ee006da1b0/"} \ No newline at end of file diff --git a/dhp-workflows/dhp-swh/src/test/resources/eu/dnetlib/dhp/swh/last_visits_data.seq b/dhp-workflows/dhp-swh/src/test/resources/eu/dnetlib/dhp/swh/last_visits_data.seq new file mode 100644 index 000000000..683fc0e69 Binary files /dev/null and b/dhp-workflows/dhp-swh/src/test/resources/eu/dnetlib/dhp/swh/last_visits_data.seq differ diff --git a/dhp-workflows/dhp-swh/src/test/resources/eu/dnetlib/dhp/swh/software.json.gz b/dhp-workflows/dhp-swh/src/test/resources/eu/dnetlib/dhp/swh/software.json.gz new file mode 100644 index 000000000..3a62c0615 Binary files /dev/null and b/dhp-workflows/dhp-swh/src/test/resources/eu/dnetlib/dhp/swh/software.json.gz differ diff --git a/dhp-workflows/dhp-usage-raw-data-update/pom.xml b/dhp-workflows/dhp-usage-raw-data-update/pom.xml index 954c8bd39..a9dbb09ae 100644 --- a/dhp-workflows/dhp-usage-raw-data-update/pom.xml +++ b/dhp-workflows/dhp-usage-raw-data-update/pom.xml @@ -46,13 +46,11 @@ org.apache.spark - spark-core_2.11 - 2.2.0 + spark-core_${scala.binary.version} org.apache.spark - spark-sql_2.11 - 2.4.5 + spark-sql_${scala.binary.version} com.googlecode.json-simple diff --git a/dhp-workflows/dhp-usage-stats-build/pom.xml b/dhp-workflows/dhp-usage-stats-build/pom.xml index 54e18580b..56aec73b7 100644 --- a/dhp-workflows/dhp-usage-stats-build/pom.xml +++ b/dhp-workflows/dhp-usage-stats-build/pom.xml @@ -46,13 +46,11 @@ org.apache.spark - spark-core_2.11 - 2.2.0 + spark-core_${scala.binary.version} org.apache.spark - spark-sql_2.11 - 2.4.5 + spark-sql_${scala.binary.version} com.googlecode.json-simple diff --git a/dhp-workflows/docs/oozie-installer.markdown b/dhp-workflows/docs/oozie-installer.markdown deleted file mode 100644 index d2de80dcc..000000000 --- a/dhp-workflows/docs/oozie-installer.markdown +++ /dev/null @@ -1,111 +0,0 @@ -General notes -==================== - -Oozie-installer is a utility allowing building, uploading and running oozie workflows. In practice, it creates a `*.tar.gz` package that contains resouces that define a workflow and some helper scripts. - -This module is automatically executed when running: - -`mvn package -Poozie-package -Dworkflow.source.dir=classpath/to/parent/directory/of/oozie_app` - -on module having set: - - - eu.dnetlib.dhp - dhp-workflows - - -in `pom.xml` file. `oozie-package` profile initializes oozie workflow packaging, `workflow.source.dir` property points to a workflow (notice: this is not a relative path but a classpath to directory usually holding `oozie_app` subdirectory). - -The outcome of this packaging is `oozie-package.tar.gz` file containing inside all the resources required to run Oozie workflow: - -- jar packages -- workflow definitions -- job properties -- maintenance scripts - -Required properties -==================== - -In order to include proper workflow within package, `workflow.source.dir` property has to be set. It could be provided by setting `-Dworkflow.source.dir=some/job/dir` maven parameter. - -In oder to define full set of cluster environment properties one should create `~/.dhp/application.properties` file with the following properties: - -- `dhp.hadoop.frontend.user.name` - your user name on hadoop cluster and frontend machine -- `dhp.hadoop.frontend.host.name` - frontend host name -- `dhp.hadoop.frontend.temp.dir` - frontend directory for temporary files -- `dhp.hadoop.frontend.port.ssh` - frontend machine ssh port -- `oozieServiceLoc` - oozie service location required by run_workflow.sh script executing oozie job -- `nameNode` - name node address -- `jobTracker` - job tracker address -- `oozie.execution.log.file.location` - location of file that will be created when executing oozie job, it contains output produced by `run_workflow.sh` script (needed to obtain oozie job id) -- `maven.executable` - mvn command location, requires parameterization due to a different setup of CI cluster -- `sparkDriverMemory` - amount of memory assigned to spark jobs driver -- `sparkExecutorMemory` - amount of memory assigned to spark jobs executors -- `sparkExecutorCores` - number of cores assigned to spark jobs executors - -All values will be overriden with the ones from `job.properties` and eventually `job-override.properties` stored in module's main folder. - -When overriding properties from `job.properties`, `job-override.properties` file can be created in main module directory (the one containing `pom.xml` file) and define all new properties which will override existing properties. One can provide those properties one by one as command line -D arguments. - -Properties overriding order is the following: - -1. `pom.xml` defined properties (located in the project root dir) -2. `~/.dhp/application.properties` defined properties -3. `${workflow.source.dir}/job.properties` -4. `job-override.properties` (located in the project root dir) -5. `maven -Dparam=value` - -where the maven `-Dparam` property is overriding all the other ones. - -Workflow definition requirements -==================== - -`workflow.source.dir` property should point to the following directory structure: - - [${workflow.source.dir}] - | - |-job.properties (optional) - | - \-[oozie_app] - | - \-workflow.xml - -This property can be set using maven `-D` switch. - -`[oozie_app]` is the default directory name however it can be set to any value as soon as `oozieAppDir` property is provided with directory name as value. - -Subworkflows are supported as well and subworkflow directories should be nested within `[oozie_app]` directory. - -Creating oozie installer step-by-step -===================================== - -Automated oozie-installer steps are the following: - -1. creating jar packages: `*.jar` and `*tests.jar` along with copying all dependancies in `target/dependencies` -2. reading properties from maven, `~/.dhp/application.properties`, `job.properties`, `job-override.properties` -3. invoking priming mechanism linking resources from import.txt file (currently resolving subworkflow resources) -4. assembling shell scripts for preparing Hadoop filesystem, uploading Oozie application and starting workflow -5. copying whole `${workflow.source.dir}` content to `target/${oozie.package.file.name}` -6. generating updated `job.properties` file in `target/${oozie.package.file.name}` based on maven, `~/.dhp/application.properties`, `job.properties` and `job-override.properties` -7. creating `lib` directory (or multiple directories for subworkflows for each nested directory) and copying jar packages created at step (1) to each one of them -8. bundling whole `${oozie.package.file.name}` directory into single tar.gz package - -Uploading oozie package and running workflow on cluster -======================================================= - -In order to simplify deployment and execution process two dedicated profiles were introduced: - -- `deploy` -- `run` - -to be used along with `oozie-package` profile e.g. by providing `-Poozie-package,deploy,run` maven parameters. - -`deploy` profile supplements packaging process with: -1) uploading oozie-package via scp to `/home/${user.name}/oozie-packages` directory on `${dhp.hadoop.frontend.host.name}` machine -2) extracting uploaded package -3) uploading oozie content to hadoop cluster HDFS location defined in `oozie.wf.application.path` property (generated dynamically by maven build process, based on `${dhp.hadoop.frontend.user.name}` and `workflow.source.dir` properties) - -`run` profile introduces: -1) executing oozie application uploaded to HDFS cluster using `deploy` command. Triggers `run_workflow.sh` script providing runtime properties defined in `job.properties` file. - -Notice: ssh access to frontend machine has to be configured on system level and it is preferable to set key-based authentication in order to simplify remote operations. \ No newline at end of file diff --git a/dhp-workflows/pom.xml b/dhp-workflows/pom.xml index 541d59007..369c71b5b 100644 --- a/dhp-workflows/pom.xml +++ b/dhp-workflows/pom.xml @@ -25,7 +25,6 @@ dhp-workflow-profiles dhp-aggregation - dhp-distcp dhp-actionmanager dhp-graph-mapper dhp-dedup-openaire @@ -38,6 +37,8 @@ dhp-usage-raw-data-update dhp-broker-events dhp-doiboost + dhp-impact-indicators + dhp-swh diff --git a/pom.xml b/pom.xml index db86c1db3..6ef320253 100644 --- a/pom.xml +++ b/pom.xml @@ -19,6 +19,7 @@ dhp-build + dhp-pace-core dhp-common dhp-workflows @@ -105,6 +106,22 @@ false + + dnet-deps + dnet-dependencies + https://maven.d4science.org/nexus/content/repositories/dnet-deps + default + + + maven-restlet + Restlet repository + https://maven.restlet.talend.com + + + conjars + conjars + https://conjars.wensel.net/repo/ + @@ -135,7 +152,7 @@ eu.dnetlib.dhp - dhp-schemas + ${dhp-schemas.artifact} ${dhp-schemas.version} @@ -164,25 +181,25 @@ org.apache.spark - spark-core_2.11 + spark-core_${scala.binary.version} ${dhp.spark.version} provided org.apache.spark - spark-sql_2.11 + spark-sql_${scala.binary.version} ${dhp.spark.version} provided org.apache.spark - spark-graphx_2.11 + spark-graphx_${scala.binary.version} ${dhp.spark.version} provided org.apache.spark - spark-hive_2.11 + spark-hive_${scala.binary.version} ${dhp.spark.version} test @@ -288,7 +305,7 @@ com.lucidworks.spark spark-solr - 3.6.0 + ${sparksolr.version} * @@ -381,11 +398,6 @@ - - eu.dnetlib - dnet-pace-core - ${dnet-pace-core.version} - eu.dnetlib cnr-rmi-api @@ -444,7 +456,13 @@ org.antlr stringtemplate - 4.0 + 3.2.1 + + + + org.antlr + ST4 + 4.3.4 @@ -510,7 +528,7 @@ org.json4s - json4s-jackson_2.11 + json4s-jackson_${scala.binary.version} ${json4s.version} @@ -537,6 +555,61 @@ 4.8.71 + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + ${jackson.version} + provided + + + com.fasterxml.jackson.module + jackson-module-jsonSchema + ${jackson.version} + provided + + + + + org.apache.commons + commons-math3 + 3.6.1 + + + + + com.google.code.gson + gson + ${google.gson.version} + + + + commons-collections + commons-collections + ${commons.collections.version} + + + commons-logging + commons-logging + ${commons.logging.version} + + + + org.reflections + reflections + 0.9.10 + + + + org.scala-lang + scala-library + ${scala.version} + + + + com.ibm.icu + icu4j + 70.1 + @@ -547,7 +620,11 @@ target/test-classes - + + org.apache.maven.plugins + maven-plugin-plugin + 3.3 + org.apache.maven.plugins maven-project-info-reports-plugin @@ -614,7 +691,7 @@ org.apache.maven.plugins maven-dependency-plugin - 3.0.0 + 3.6.0 @@ -631,7 +708,7 @@ org.antipathy - mvn-scalafmt_2.11 + mvn-scalafmt_${scala.binary.version} 1.0.1640073709.733712b @@ -688,7 +765,7 @@ org.antipathy - mvn-scalafmt_2.11 + mvn-scalafmt_${scala.binary.version} https://code-repo.d4science.org/D-Net/dnet-hadoop/raw/branch/beta/dhp-build/dhp-code-style/src/main/resources/scalafmt/scalafmt.conf false @@ -797,21 +874,24 @@ cdh5.9.2 2.6.0-${dhp.cdh.version} 4.1.0-${dhp.cdh.version} + dhp-schemas + 3.6.0 2.4.0.cloudera2 2.9.6 3.5 true 11.0.2 2.11.12 + 2.11 + 1.3.0 5.6.1 3.3.3 3.4.2 [2.12,3.0) - [3.17.1] + [4.17.2] [4.0.3] [6.0.5] [3.1.6] - [4.1.12] [2.6.1] 7.5.0 4.7.2 @@ -823,5 +903,53 @@ 1.8 4.5.3 4.0.1 + 2.2.2 + 1.1.3 + 3.2.1 + + + + + scala-2.12 + + 2.12 + 2.12.18 + + + + 4.0.2 + 3.4.1 + 2.14.2 + 3.12.0 + 3.7.0-M11 + 4.8.1 + + + + + + + + arm-silicon-mac + + + aarch64 + mac + + + + + + org.xerial.snappy + snappy-java + 1.1.8.4 + + + + + \ No newline at end of file