|
8 | 8 | import edu.harvard.iq.dataverse.DatasetFieldServiceBean;
|
9 | 9 | import edu.harvard.iq.dataverse.DatasetFieldType;
|
10 | 10 | import edu.harvard.iq.dataverse.DatasetVersion;
|
| 11 | +import edu.harvard.iq.dataverse.Dataverse; |
11 | 12 | import edu.harvard.iq.dataverse.DvObjectContainer;
|
12 | 13 | import edu.harvard.iq.dataverse.FileMetadata;
|
13 | 14 | import edu.harvard.iq.dataverse.TermsOfUseAndAccess;
|
@@ -86,7 +87,7 @@ public JsonObjectBuilder getOREMapBuilder(boolean aggregationOnly) throws Except
|
86 | 87 | localContext.putIfAbsent(JsonLDNamespace.schema.getPrefix(), JsonLDNamespace.schema.getUrl());
|
87 | 88 |
|
88 | 89 | Dataset dataset = version.getDataset();
|
89 |
| - String id = dataset.getGlobalId().asString(); |
| 90 | + String id = dataset.getGlobalId().toURL().toExternalForm(); |
90 | 91 | JsonArrayBuilder fileArray = Json.createArrayBuilder();
|
91 | 92 | // The map describes an aggregation
|
92 | 93 | JsonObjectBuilder aggBuilder = Json.createObjectBuilder();
|
@@ -214,7 +215,9 @@ public JsonObjectBuilder getOREMapBuilder(boolean aggregationOnly) throws Except
|
214 | 215 | }
|
215 | 216 |
|
216 | 217 | aggBuilder.add(JsonLDTerm.schemaOrg("includedInDataCatalog").getLabel(),
|
217 |
| - BrandingUtil.getRootDataverseCollectionName()); |
| 218 | + BrandingUtil.getInstallationBrandName()); |
| 219 | + |
| 220 | + aggBuilder.add(JsonLDTerm.schemaOrg("isPartOf").getLabel(), getDataverseDescription(dataset.getOwner())); |
218 | 221 | String mdl = dataset.getMetadataLanguage();
|
219 | 222 | if(!mdl.equals(DvObjectContainer.UNDEFINED_METADATA_LANGUAGE_CODE)) {
|
220 | 223 | aggBuilder.add(JsonLDTerm.schemaOrg("inLanguage").getLabel(), mdl);
|
@@ -320,6 +323,17 @@ public JsonObjectBuilder getOREMapBuilder(boolean aggregationOnly) throws Except
|
320 | 323 | }
|
321 | 324 | }
|
322 | 325 |
|
| 326 | + private JsonObjectBuilder getDataverseDescription(Dataverse dv) { |
| 327 | + //Schema.org is already in local context, no updates needed as long as we only use chemaOrg and "@id" here |
| 328 | + JsonObjectBuilder dvjob = Json.createObjectBuilder().add(JsonLDTerm.schemaOrg("name").getLabel(), dv.getCurrentName()).add("@id", dv.getLocalURL()); |
| 329 | + addIfNotNull(dvjob, JsonLDTerm.schemaOrg("description"), dv.getDescription()); |
| 330 | + Dataverse owner = dv.getOwner(); |
| 331 | + if(owner!=null) { |
| 332 | + dvjob.add(JsonLDTerm.schemaOrg("isPartOf").getLabel(), getDataverseDescription(owner)); |
| 333 | + } |
| 334 | + return dvjob; |
| 335 | + } |
| 336 | + |
323 | 337 | /*
|
324 | 338 | * Simple methods to only add an entry to JSON if the value of the term is
|
325 | 339 | * non-null. Methods created for string, JsonValue, boolean, and long
|
|
0 commit comments