From 58b8176a3980b1952fa6c1bf46a9a09880809b2e Mon Sep 17 00:00:00 2001 From: j2blake Date: Tue, 22 Nov 2011 16:52:18 +0000 Subject: [PATCH] NIHVIVO-3186 fully functional? --- .../forms/organizationHasPositionHistory.ftl | 11 +++-- ...ganizationHasPositionHistoryGenerator.java | 46 ++++++++++++------- 2 files changed, 37 insertions(+), 20 deletions(-) diff --git a/productMods/templates/freemarker/edit/forms/organizationHasPositionHistory.ftl b/productMods/templates/freemarker/edit/forms/organizationHasPositionHistory.ftl index 83c30513..db2d4ca4 100644 --- a/productMods/templates/freemarker/edit/forms/organizationHasPositionHistory.ftl +++ b/productMods/templates/freemarker/edit/forms/organizationHasPositionHistory.ftl @@ -25,6 +25,7 @@ <#assign positionTitleValue = lvf.getFormFieldValue(editSubmission, editConfiguration, "positionTitle") /> <#assign positionTypeValue = lvf.getFormFieldValue(editSubmission, editConfiguration, "positionType") /> +<#assign personValue = lvf.getFormFieldValue(editSubmission, editConfiguration, "person") /> <#assign personLabelValue = lvf.getFormFieldValue(editSubmission, editConfiguration, "personLabel") /> <#if editSubmission?has_content && editSubmission.submissionExists = true && editSubmission.validationErrors?has_content> @@ -94,7 +95,12 @@

- + <#if editMode == "edit"> + + + <#else> + +

@@ -103,8 +109,7 @@ (Verify this match)

- - +

diff --git a/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/OrganizationHasPositionHistoryGenerator.java b/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/OrganizationHasPositionHistoryGenerator.java index d2e163d2..50c3102c 100644 --- a/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/OrganizationHasPositionHistoryGenerator.java +++ b/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/OrganizationHasPositionHistoryGenerator.java @@ -20,13 +20,10 @@ public class OrganizationHasPositionHistoryGenerator extends VivoBaseGenerator private final static String NS_VIVO_CORE = "http://vivoweb.org/ontology/core#"; - private final static String URI_RDFS_LABEL = RDFS.label.getURI(); - private static final String URI_PRECISION_NONE = Precision.NONE.uri(); private static final String URI_PRECISION_YEAR = Precision.YEAR.uri(); private final static String URI_POSITION_CLASS = vivoCore("Position"); - private final static String URI_POSITION_FOR_PERSON = vivoCore("positionForPerson"); private final static String URI_INTERVAL_FOR_POSITION = vivoCore("dateTimeInterval"); private final static String URI_DATE_TIME_INTERVAL_CLASS = vivoCore("DateTimeInterval"); private final static String URI_DATE_TIME_VALUE_CLASS = vivoCore("DateTimeValue"); @@ -40,23 +37,33 @@ public class OrganizationHasPositionHistoryGenerator extends VivoBaseGenerator return NS_VIVO_CORE + localName; } - private static final String QUERY_EXISTING_POSITION_TITLE = "SELECT ?existingPositionTitle WHERE { \n" - + "?position <" + URI_RDFS_LABEL + "> ?existingPositionTitle . }"; + private static final String QUERY_EXISTING_POSITION_TITLE = "" + + "PREFIX rdfs: \n" + + "SELECT ?existingPositionTitle WHERE { \n" + + " ?position rdfs:label ?existingPositionTitle . }"; - private static final String QUERY_EXISTING_POSITION_TYPE = "SELECT ?existingPositionType WHERE { \n" + private static final String QUERY_EXISTING_POSITION_TYPE = "" + + "SELECT ?existingPositionType WHERE { \n" + " ?position a ?existingPositionType . }"; - private static final String QUERY_EXISTING_PERSON_LABEL = String.format( - "SELECT ?existingPersonLabel WHERE { \n" - + " ?position <%1$s> ?existingPerson . \n" - + " ?existingPerson <%2$s> ?existingPersonLabel . }", - URI_POSITION_FOR_PERSON, URI_RDFS_LABEL); + private static final String QUERY_EXISTING_PERSON = "" + + "PREFIX core: \n" + + "PREFIX rdfs: \n" + + "SELECT ?existingPerson WHERE { \n" + + " ?position core:positionForPerson ?existingPerson .}"; - private static final String QUERY_EXISTING_INTERVAL_NODE = String.format( - "SELECT ?existingIntervalNode WHERE { \n" - + " ?position <%1$s> ?existingIntervalNode . \n" - + " ?existingIntervalNode a <%2$s> . }", - URI_INTERVAL_FOR_POSITION, URI_DATE_TIME_INTERVAL_CLASS); + private static final String QUERY_EXISTING_PERSON_LABEL = "" + + "PREFIX core: \n" + + "PREFIX rdfs: \n" + + "SELECT ?existingPersonLabel WHERE { \n" + + " ?position core:positionForPerson ?existingPerson . \n" + + " ?existingPerson rdfs:label ?existingPersonLabel . }"; + + private static final String QUERY_EXISTING_INTERVAL_NODE = "" + + "PREFIX core: \n" + + "SELECT ?existingIntervalNode WHERE { \n" + + " ?position core:dateTimeInterval ?existingIntervalNode . \n" + + " ?existingIntervalNode a core:DateTimeInterval . }"; private static final String QUERY_EXISTING_START_NODE = String.format( "SELECT ?existingStartNode WHERE { \n" @@ -180,9 +187,10 @@ public class OrganizationHasPositionHistoryGenerator extends VivoBaseGenerator conf.addNewResource("startNode", DEFAULT_NS_FOR_NEW_RESOURCE); conf.addNewResource("endNode", DEFAULT_NS_FOR_NEW_RESOURCE); - conf.setUrisOnform(Arrays.asList("position", "positionType")); + conf.setUrisOnform(Arrays.asList("person", "position", "positionType")); conf.addSparqlForExistingUris("positionType", QUERY_EXISTING_POSITION_TYPE); + conf.addSparqlForExistingUris("person", QUERY_EXISTING_PERSON); conf.addSparqlForExistingUris("intervalNode", QUERY_EXISTING_INTERVAL_NODE); @@ -215,6 +223,10 @@ public class OrganizationHasPositionHistoryGenerator extends VivoBaseGenerator .setRangeDatatypeUri(XSD.xstring.toString()) .setValidators(list("nonempty"))); + conf.addField(new FieldVTwo().setName("person") + .setOptionsType(FieldVTwo.OptionsType.INDIVIDUALS_VIA_VCLASS) + .setObjectClassUri(personClass)); + conf.addField(new FieldVTwo().setName("personLabel") .setRangeDatatypeUri(XSD.xstring.toString()) .setValidators(list("nonempty")));