Skip to content
Snippets Groups Projects
Commit 92dce796 authored by Thorge Petersen's avatar Thorge Petersen
Browse files

Improved handling of unknown licenses

parent 780690ab
No related branches found
No related tags found
1 merge request!21Resolve "Robusteres Hinzufügen der Lizenzinformationen"
Pipeline #614 failed
...@@ -546,29 +546,36 @@ public class MDMetadata2Dataset { ...@@ -546,29 +546,36 @@ public class MDMetadata2Dataset {
if (licenseInformation != null) { if (licenseInformation != null) {
resource.addLiteral(DCATAPde.licenseAttributionByText, licenseInformation.getString("quelle")); resource.addLiteral(DCATAPde.licenseAttributionByText, licenseInformation.getString("quelle"));
if (licenseInformation.has("url")) { if (licenseInformation.has("url")) {
// Some publishers specify the licence as the URL and not the id.
String licenseURL = licenseInformation.getString("url"); String licenseURL = licenseInformation.getString("url");
if (licenseURL.startsWith("http://dcat-ap.de/def/licenses/")) { if (licenseURL.startsWith("http://dcat-ap.de/def/licenses/")) {
resource.addProperty(DCTerms.license, model.createResource(licenseInformation.getString("url"))); resource.addProperty(DCTerms.license, model.createResource(licenseURL));
} else { } else {
final JSONObject license = url2license.get(licenseURL); final JSONObject license = url2license.get(licenseURL);
if (license != null && license.has("uri")) { if (license != null && license.has("uri")) {
resource.addProperty(DCTerms.license, model.createResource(license.getString("uri"))); resource.addProperty(DCTerms.license, model.createResource(license.getString("uri")));
} else { } else {
log.info("Unknown license: {}", licenseURL); log.info("Unknown license: {}", licenseURL);
handleUnknownLicense(resource, licenseInformation.getString("id"));
} }
} }
} else { } else {
String licenseId = licenseInformation.getString("id"); handleUnknownLicense(resource, licenseInformation.getString("id"));
}
}
}
private void handleUnknownLicense(Resource resource, String licenseId) {
try { try {
licenseId = URLEncoder.encode(licenseId, "UTF-8"); licenseId = URLEncoder.encode(licenseId, "UTF-8");
resource.addProperty(DCTerms.license, model.createResource("http://dcat-ap.de/def/licenses/" + licenseId));
log.info("Falling back to: {}", licenseId);
} catch (UnsupportedEncodingException e) { } catch (UnsupportedEncodingException e) {
log.info("Unable to encode licenseId: {}", e); log.info("Unable to encode licenseId: {}", e);
} }
resource.addProperty(DCTerms.license, model.createResource("http://dcat-ap.de/def/licenses/" + licenseId));
}
}
} }
private Resource guessFormat(String url) { private Resource guessFormat(String url) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment