Andre språk: nasjonalMuseumArtists (svensk)
04.06.2018 10:30:23
nasjonalMuseumArtists
nasjonalMuseumArtists
var PropertyType = Java.type("se.altrusoft.entitymachine.schema.PropertyType");
var PropertyValue = Java.type("se.altrusoft.entitymachine.entity.PropertyValue");
var Entity = Java.type("se.altrusoft.entitymachine.entity.Entity");
var HashMap = Java.type("java.util.HashMap");
var URLEncoder = Java.type("java.net.URLEncoder");
var ImportService = Java.type("se.altrusoft.entitymachine.imp.ImportService");
var RdfImporter = Java.type("se.altrusoft.entitymachine.imp.RdfImporter");
var FileUtils = Java.type("org.apache.commons.io.FileUtils");
var File = Java.type("java.io.File");
var Constants = Java.type("util.Constants");
var PrecisionDate = Java.type("se.altrusoft.entitymachine.entity.PrecisionDate");
function educationPresent(entity, education) {
var educationEvents = entity.getProperty(Constants.PROPERTY_PERSON_EDUCATION);
for (var ii = 0; ii < educationEvents.size(); ii++) {
var educationEvent = educationEvents.get(ii).getValue();
var educationText = educationEvent.getPrimaryPropertyAsText("person.education.education", "no");
if (educationText != null && educationText == education) {
return true;
}
}
return false;
}
function residencePresent(entity, education) {
var residenceEvents = entity.getProperty(Constants.PROPERTY_PERSON_RESIDENCE);
for (var ii = 0; ii < residenceEvents.size(); ii++) {
var residenceEvent = residenceEvents.get(ii).getValue();
var placeReference = residenceEvent.getPrimaryPropertyAsEntity("event.placeReference");
if (placeReference != null) {
var placeText = placeReference.getPrimaryPropertyAsText("placeReference.placeString", "no");
if (placeText != null && placeText == place) {
return true;
}
}
}
return false;
}
var lifeRoleEvent;
var liferoles = entity.getProperty(Constants.PROPERTY_PERSON_LIFEROLE);
if (liferoles.size() == 0) {
lifeRoleEvent = new Entity();
lifeRoleEvent.setInline(true);
lifeRoleEvent.setEntityType("Person.Liferole");
lifeRoleEvent.addProperty("person.liferole.liferole",
new PropertyValue(null, PropertyType.ValueType.ENTITY_REFERENCE, "da7f057a-9ed6-4e92-b501-7aab7d8465cc"));
entity.addProperty(Constants.PROPERTY_PERSON_LIFEROLE, new PropertyValue(null, PropertyType.ValueType.ENTITY, lifeRoleEvent));
}
logger.info("Main resource: " + resourceUri)
var resource = model.createResource(resourceUri);
/*
* Cannot use biography due to copyright
var biographyStatement = resource.getProperty(model.createProperty("http://purl.org/vocab/bio/0.1/", "Biographybiography"));
if (biographyStatement != null) {
logger.info("Biography reference present");
var biographyResource = biographyStatement.getResource();
var biographyUri = biographyResource.getURI();
logger.info("Biography resource: " + biographyUri);
try {
var describeUri = "http://data.nasjonalmuseet.no:2020/klex?query=" + URLEncoder.encode("DESCRIBE <" + biographyUri + ">", "UTF-8");
logger.info("describeUri: " + describeUri);
var biographyModel = RdfImporter.loadModel(describeUri, null);
logger.info("Loaded model");
biographyResource = biographyModel.createResource(biographyUri);
logger.info("Created resource");
var descriptionStatement = biographyResource.getProperty(biographyModel.createProperty("http://purl.org/dc/elements/1.1/", "description"));
logger.info("Description statement: " + descriptionStatement);
if (descriptionStatement != null) {
var biography = descriptionStatement.getLiteral().getString();
var descriptionProperty = entity.getPrimaryProperty(Constants.PROPERTY_PERSON_BIOGRAPHY);
var texts;
if (descriptionProperty == null) {
texts = new HashMap();
descriptionProperty = new PropertyValue(null, PropertyType.ValueType.TEXT, texts);
entity.addProperty(Constants.PROPERTY_PERSON_BIOGRAPHY, descriptionProperty);
} else {
texts = descriptionProperty.getValue();
}
texts.put("no", biography);
}
biographyModel.close();
} catch (e) {
logger.error(e);
}
}
*/
var educationIter = resource.listProperties(model.createProperty("http://data.nasjonalmuseet.no/ontology/", "education"));
while (educationIter.hasNext()) {
var statement = educationIter.nextStatement();
var educationResource = statement.getResource();
var educationUri = educationResource.getURI();
logger.info("Education resource: " + educationUri);
try {
describeUri = "http://data.nasjonalmuseet.no:2020/klex?query=" + URLEncoder.encode("DESCRIBE <" + educationUri + ">", "UTF-8");
logger.info("educationUri: " + educationUri);
var educationModel = RdfImporter.loadModel(describeUri, null);
logger.info("Loaded model");
educationResource = educationModel.createResource(educationUri);
logger.info("Created resource");
var commentStatement = educationResource.getProperty(educationModel.createProperty("http://www.w3.org/2000/01/rdf-schema#", "comment"));
logger.info("Comment statement: " + commentStatement);
if (commentStatement != null) {
var education = commentStatement.getLiteral().getString();
if (!educationPresent(entity, education)) {
var educationEvent = new Entity();
educationEvent.setInline(true);
educationEvent.setEntityType("Person.Education");
texts = new HashMap();
texts.put("no", education);
educationEvent.addProperty("person.education.education",
new PropertyValue(null, PropertyType.ValueType.TEXT, texts));
entity.addProperty("person.education",
new PropertyValue(null, PropertyType.ValueType.ENTITY, educationEvent));
}
}
educationModel.close();
} catch (e) {
logger.error(e);
}
}
var residenceIter = resource.listProperties(model.createProperty("http://data.nasjonalmuseet.no/ontology/", "residence"));
while (residenceIter.hasNext()) {
var statement = residenceIter.nextStatement();
var residenceResource = statement.getResource();
var residenceUri = residenceResource.getURI();
logger.info("Residence resource: " + residenceUri);
try {
describeUri = "http://data.nasjonalmuseet.no:2020/klex?query=" + URLEncoder.encode("DESCRIBE <" + residenceUri + ">", "UTF-8");
logger.info("residenceUri: " + residenceUri);
var residenceModel = RdfImporter.loadModel(describeUri, null);
logger.info("Loaded model");
residenceResource = residenceModel.createResource(residenceUri);
logger.info("Created resource");
var placeStatement = residenceResource.getProperty(residenceModel.createProperty("http://data.nasjonalmuseet.no/ontology/", "place"));
var placeResource = placeStatement.getResource();
var placeUri = placeResource.getURI();
describeUri = "http://data.nasjonalmuseet.no:2020/klex?query=" + URLEncoder.encode("DESCRIBE <" + placeUri + ">", "UTF-8");
var placeModel = RdfImporter.loadModel(describeUri, null);
placeResource = placeModel.createResource(placeUri);
var titleStatement = placeResource.getProperty(placeModel.createProperty("http://purl.org/dc/elements/1.1/", "title"));
logger.info("Title statement: " + titleStatement);
if (titleStatement != null) {
var place = titleStatement.getLiteral().getString();
if (!residencePresent(entity, place)) {
var residenceEvent = new Entity();
residenceEvent.setInline(true);
residenceEvent.setEntityType("Person.Residence");
var placeReference = new Entity();
placeReference.setInline(true);
placeReference.setEntityType("Place.Reference");
residenceEvent.addProperty("event.placeReference",
new PropertyValue(null, PropertyType.ValueType.ENTITY, placeReference));
texts = new HashMap();
texts.put("no", place);
placeReference.addProperty("placeReference.placeString",
new PropertyValue(null, PropertyType.ValueType.TEXT, texts));
entity.addProperty("person.residence",
new PropertyValue(null, PropertyType.ValueType.ENTITY, residenceEvent));
var startDate = null;
var startDateStatement = residenceResource.getProperty(residenceModel.createProperty("http://data.nasjonalmuseet.no/ontology/", "startDate"));
if (startDateStatement != null) {
try {
startDate = PrecisionDate.fromString(startDateStatement.getString());
logger.info("startDate: " + startDate);
} catch(e) {
logger.error(e);
}
}
var endDate = null;
var endDateStatement = residenceResource.getProperty(residenceModel.createProperty("http://data.nasjonalmuseet.no/ontology/", "endDate"));
if (endDateStatement != null) {
try {
endDate = PrecisionDate.fromString(endDateStatement.getString());
logger.info("endDate: " + startDate);
} catch(e) {
logger.error(e);
}
}
if (startDate != null || endDate != null) {
var timeSpan = new Entity();
timeSpan.setInline(true);
timeSpan.setEntityType("Timespan");
if (startDate != null) {
timeSpan.addProperty(Constants.PROPERTY_TIMESPAN_START,
new PropertyValue(null, PropertyType.ValueType.DATE, startDate));
}
if (endDate != null) {
timeSpan.addProperty(Constants.PROPERTY_TIMESPAN_END,
new PropertyValue(null, PropertyType.ValueType.DATE, endDate));
}
residenceEvent.addProperty(Constants.PROPERTY_EVENT_TIMESPAN,
new PropertyValue(null, PropertyType.ValueType.ENTITY, timeSpan))
}
}
}
residenceModel.close();
} catch (e) {
logger.error(e);
}
}
9f63d3cd-b0be-489b-afba-567f649b03ce
SYSTEM
root
04.06.2018 10:30:23
Erstatt | Lagret | Lagret av |
---|