Many changes to ProcessRdfForm.java
This commit is contained in:
parent
776241d423
commit
57934c5aec
3 changed files with 157 additions and 130 deletions
|
@ -6,7 +6,13 @@
|
|||
|
||||
<#import "lib-vivo-form.ftl" as lvf>
|
||||
|
||||
<#if editConfig.object?has_content>
|
||||
<#assign subjectName="Fake name hardcoded in FTL"/>
|
||||
<#assign requiredHint="*"/>
|
||||
<#assign yearHint="Do it his year!!!"/>
|
||||
<#assign roleActivityUri="mysteryRoleActivityURI"/>
|
||||
<#assign orgLabel="mysteryOrgLabel"/>
|
||||
|
||||
<#if editConfiguration.object?has_content>
|
||||
<#assign editMode = "edit">
|
||||
<#else>
|
||||
<#assign editMode = "add">
|
||||
|
@ -25,14 +31,17 @@
|
|||
<#assign requiredHint = "<span class='requiredHint'> *</span>" />
|
||||
<#assign yearHint = "<span class='hint'>(YYYY)</span>" />
|
||||
|
||||
|
||||
<#--
|
||||
<#if editMode = “ERROR”>
|
||||
<div>This form is unable to handle the editing of this position because it is associated with
|
||||
multiple Position individuals.</div>
|
||||
<#else>
|
||||
-->
|
||||
|
||||
<h2>${titleVerb} educational training entry for ${subjectName}</h2>
|
||||
|
||||
|
||||
<#--
|
||||
<#if errorTypeFieldIsEmpty??>
|
||||
<#assign errorMessage = "Select a type of organization." />
|
||||
</#if>
|
||||
|
@ -40,6 +49,7 @@
|
|||
<#if errorNameFieldIsEmpty??>
|
||||
<#assign errorMessage = "Enter a name for the organization." />
|
||||
</#if>
|
||||
-->
|
||||
|
||||
<#if errorMessage?has_content>
|
||||
<section id="error-alert" role="alert">
|
||||
|
@ -50,29 +60,26 @@
|
|||
|
||||
<section id="personHasEducationalTraining" role="region">
|
||||
|
||||
<@lvf.unsupportedBrowser>
|
||||
|
||||
<div id="ie67DisableWrapper">
|
||||
<div id="ie67DisableContent">
|
||||
<img src="/vivo/site_icons/iconAlertBig.png" alt="Alert Icon"/>
|
||||
<p>This form is not supported in versions of Internet Explorer below version 8. Please upgrade your browser, or
|
||||
switch to another browser, such as FireFox.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form id="personHasEducationalTraining" class="customForm noIE67" action="${submitUrl}" role="add/edit educational training">
|
||||
|
||||
|
||||
|
||||
<label for="orgType">Select Organization Type ${requiredHint}</label>
|
||||
<select id="typeSelector" name="orgType" disabled="${disabledVal}" >
|
||||
<#assign orgTypeOpts = editConfiguration.pageData.orgType />
|
||||
<select id="typeSelector" name="orgType" >
|
||||
<option value="" selected="selected">Select one</option>
|
||||
<#list rangeOptionKeys as key>
|
||||
<opton value="${key}"
|
||||
<#if editConfiguration.objectUri?has_contant && editConfiguration.object.Uri = key>selected</#if>
|
||||
<#list orgTypeOpts?keys as key>
|
||||
<#if editConfiguration.objectUri?has_content && editConfiguration.objectUri = key>
|
||||
<option value="${key}" selected >${orgTypeOpts[key]}</option>
|
||||
<#else>
|
||||
<option value="${key}">${orgTypeOpts[key]}</option>
|
||||
</#if>
|
||||
</#list>
|
||||
</select>
|
||||
|
||||
<p>
|
||||
<label for="relatedIndLabel">Organization Name ${requiredHint}</label>
|
||||
<input class="acSelector" size="50" type="text" id="relatedIndLabel" name="orgLabel" disabled="${disabledVal}" value="${???}" />
|
||||
<input class="acSelector" size="50" type="text" id="relatedIndLabel" name="orgLabel" disabled="${disabledVal}" value="" />
|
||||
</p>
|
||||
|
||||
<div class="acSelection">
|
||||
|
@ -85,43 +92,50 @@
|
|||
|
||||
<input class="acLabelReceiver" type="hidden" id="existingOrgLabel" name="existingOrgLabel" value="${orgLabel}" />
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<label for="dept">Department or School Name within the Organization</label>
|
||||
<input size="50" type="text" id="dept" name="dept" value="" />
|
||||
</p>
|
||||
|
||||
<div class="entry">
|
||||
<label for="degreeUri">Degree</label>
|
||||
<select name="degreeUri" id="degreeUri" >
|
||||
|
||||
<#assign degreeOpts = editConfiguration.pageData.degree />
|
||||
<select name="degree" id="degreeUri" >
|
||||
<option value="" selected="selected">Select one</option>
|
||||
<#list rangeOptionKeys as key>
|
||||
<opton value="${key}"
|
||||
<#if editConfiguration.objectUri?has_contant && editConfiguration.object.Uri = key>selected</#if>
|
||||
|
||||
<#list degreeOpts?keys as key>
|
||||
<option value="${key}">${degreeOpts[key]}</option>
|
||||
</#list>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<label for="majorField">Major Field of Degree</label>
|
||||
<input type="text" id="majorField" name="majorField" size="30" value="${???}"/>
|
||||
<input type="text" id="majorField" name="majorField" size="30" value=""/>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label for="info">Supplemental Information</label>
|
||||
<input size="50" type="text" id="info" name="info" value="${???}" />
|
||||
<input size="50" type="text" id="info" name="info" value="" />
|
||||
<p>e.g., <em>Postdoctoral training</em> or <em>Transferred</em></p>
|
||||
</p>
|
||||
|
||||
<label for="startField">Start Year ${yearHint}</label>
|
||||
|
||||
<fieldset class="dateTime">
|
||||
<input class="text-field" name="startField-year" id="startField-year" type="text" value="${startYear}" size="4" maxlength="4" />
|
||||
<input class="text-field" name="startField-year" id="startField-year" type="text" value="" size="4" maxlength="4" />
|
||||
</fieldset>
|
||||
|
||||
<label for="endField">End Year ${yearHint}</label>
|
||||
<fieldset class="dateTime">
|
||||
<input class="text-field" name="endField-year" id="endField-year" type="text" value="${endYear}" size="4" maxlength="4" />
|
||||
<input class="text-field" name="endField-year" id="endField-year" type="text" value="" size="4" maxlength="4" />
|
||||
</fieldset>
|
||||
|
||||
<input type="hidden" id="editKey" name="editKey" value="${editConfiguration.editKey}"/>
|
||||
<p class="submit">
|
||||
<input type="submit" id="submit" value="editConfiguration.submitLabel"/><span class="or"> or </span><a class="cancel" href="${editConfiguration.cancelUrl}">Cancel</a>
|
||||
<input type="submit" id="submit" value="editConfiguration.submitLabel"/><span class="or"> or </span>
|
||||
<a class="cancel" href="${editConfiguration.cancelUrl}">Cancel</a>
|
||||
</p>
|
||||
|
||||
<p id="requiredLegend" class="requiredHint">* required fields</p>
|
||||
|
@ -130,14 +144,18 @@
|
|||
|
||||
<#assign acUrl="/autocomplete?tokenize=true&stem=true" >
|
||||
|
||||
<#--
|
||||
<script type="text/javascript">
|
||||
var customFormData = {
|
||||
acUrl: '${acUrl?url}',
|
||||
acUrl: '${acUrl}',
|
||||
editMode: '${editMode}',
|
||||
submitButtonTextType: 'compound',
|
||||
defaultTypeName: 'organization'
|
||||
};
|
||||
</script>
|
||||
-->
|
||||
|
||||
</section>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import com.hp.hpl.jena.vocabulary.XSD;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.DateTimeWithPrecisionVTwo;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.FieldVTwo;
|
||||
|
||||
|
@ -71,6 +71,8 @@ public class PersonHasEducationalTraining extends VivoBaseGenerator implements
|
|||
initPropertyParameters(vreq, session, conf);
|
||||
initObjectPropForm(conf, vreq);
|
||||
|
||||
conf.setTemplate("personHasEducationalTraining.ftl");
|
||||
|
||||
conf.setVarNameForSubject("person");
|
||||
conf.setVarNameForPredicate("predicate");
|
||||
conf.setVarNameForObject("edTraining");
|
||||
|
@ -120,14 +122,6 @@ public class PersonHasEducationalTraining extends VivoBaseGenerator implements
|
|||
setAssertions( majorFieldAssertion ));
|
||||
//setValidators( ) datatype:stringDatatypeUriJson
|
||||
|
||||
conf.addField( new FieldVTwo().
|
||||
setName("startField").
|
||||
setAssertions(n3ForStart));
|
||||
|
||||
conf.addField( new FieldVTwo().
|
||||
setName("endField").
|
||||
setAssertions(n3ForEnd));
|
||||
|
||||
conf.addField( new FieldVTwo().
|
||||
setName("org").
|
||||
setOptionsType(FieldVTwo.OptionsType.INDIVIDUALS_VIA_VCLASS).
|
||||
|
@ -159,146 +153,161 @@ public class PersonHasEducationalTraining extends VivoBaseGenerator implements
|
|||
setRangeDatatypeUri( XSD.xstring.toString() ).
|
||||
setAssertions( infoAssertion));
|
||||
|
||||
conf.addField(new FieldVTwo().
|
||||
setName("startField").
|
||||
setAssertions(n3ForStart).
|
||||
setEditElement(
|
||||
new DateTimeWithPrecisionVTwo(null,
|
||||
VitroVocabulary.Precision.YEAR.uri(),
|
||||
VitroVocabulary.Precision.NONE.uri())));
|
||||
|
||||
conf.addField( new FieldVTwo().
|
||||
setName("endField").
|
||||
setAssertions(n3ForEnd).
|
||||
setEditElement(
|
||||
new DateTimeWithPrecisionVTwo(null,
|
||||
VitroVocabulary.Precision.YEAR.uri(),
|
||||
VitroVocabulary.Precision.NONE.uri())));
|
||||
|
||||
return conf;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* N3 assertions for working with educational training */
|
||||
|
||||
final static String orgTypeAssertion =
|
||||
"?org a ?orgType .";
|
||||
|
||||
final static String orgLabelAssertion =
|
||||
"?org "+ label +" ?orgLabel .";
|
||||
"?org <"+ label +"> ?orgLabel .";
|
||||
|
||||
final static String degreeAssertion =
|
||||
"?edTraining "+ degreeEarned +" ?degree ."+
|
||||
"?degree "+ degreeOutcomeOf +" ?edTraining .";
|
||||
"?edTraining <"+ degreeEarned +"> ?degree .\n"+
|
||||
"?degree <"+ degreeOutcomeOf +"> ?edTraining .";
|
||||
|
||||
final static String majorFieldAssertion =
|
||||
"?edTraining "+ majorFieldPred +" ?majorField .";
|
||||
"?edTraining <"+ majorFieldPred +"> ?majorField .";
|
||||
|
||||
final static String n3ForStart =
|
||||
"?edTraining "+ ToInterval +" ?intervalNode . "+
|
||||
"?intervalNode "+ type +" "+ intervalType +" ."+
|
||||
"?intervalNode "+ intervalToStart +" ?startNode . "+
|
||||
"?startNode "+ type +" "+ dateTimeValueType +" ."+
|
||||
"?startNode "+ dateTimeValue +" ?startField-value ."+
|
||||
"?startNode "+ dateTimePrecision +" ?startField-precision .";
|
||||
"?edTraining <"+ toInterval +"> ?intervalNode .\n"+
|
||||
"?intervalNode <"+ type +"> <"+ intervalType +"> .\n"+
|
||||
"?intervalNode <"+ intervalToStart +"> ?startNode .\n"+
|
||||
"?startNode <"+ type +"> <"+ dateTimeValueType +"> .\n"+
|
||||
"?startNode <"+ dateTimeValue +"> ?startField-value .\n"+
|
||||
"?startNode <"+ dateTimePrecision +"> ?startField-precision .";
|
||||
|
||||
final static String n3ForEnd =
|
||||
"?edTraining "+ ToInterval +" ?intervalNode . "+
|
||||
"?intervalNode "+ type +" "+ intervalType +" ."+
|
||||
"?intervalNode "+ intervalToEnd +" ?endNode ."+
|
||||
"?endNode "+ type +" "+ dateTimeValueType +" ."+
|
||||
"?endNode "+ dateTimeValue +" ?endField-value ."+
|
||||
"?endNode "+ dateTimePrecision +" ?endField-precision .";
|
||||
"?edTraining <"+ toInterval +"> ?intervalNode . \n"+
|
||||
"?intervalNode <"+ type +"> <"+ intervalType +"> .\n"+
|
||||
"?intervalNode <"+ intervalToEnd +"> ?endNode .\n"+
|
||||
"?endNode <"+ type +"> <"+ dateTimeValueType +"> .\n"+
|
||||
"?endNode <"+ dateTimeValue +"> ?endField-value .\n"+
|
||||
"?endNode <"+ dateTimePrecision +"> ?endField-precision .";
|
||||
|
||||
final static String deptAssertion =
|
||||
"?edTraining "+ deptPred +" ?dept .";
|
||||
"?edTraining <"+ deptPred +"> ?dept .";
|
||||
|
||||
final static String infoAssertion =
|
||||
"?edTraining "+ infoPred +" ?info .";
|
||||
"?edTraining <"+ infoPred +"> ?info .";
|
||||
|
||||
final static String n3ForNewEdTraining =
|
||||
"@prefix core: "+ vivoCore +" . "+
|
||||
"?person core:educationalTraining ?edTraining ."+
|
||||
"?edTraining a core:EducationalTraining ;"+
|
||||
"core:educationalTrainingOf ?person ;"+
|
||||
""+ trainingAtOrg +" ?org .";
|
||||
"@prefix core: <"+ vivoCore +"> .\n"+
|
||||
"?person core:educationalTraining ?edTraining .\n"+
|
||||
"?edTraining a core:EducationalTraining ;\n"+
|
||||
"core:educationalTrainingOf ?person ;\n"+
|
||||
"<"+ trainingAtOrg +"> ?org .\n";
|
||||
|
||||
final static String n3ForEdTrainingToOrg =
|
||||
"?edTraining "+ trainingAtOrg +" ?org .";
|
||||
"?edTraining <"+ trainingAtOrg +"> ?org .";
|
||||
|
||||
|
||||
/* Queries for editing an existing educational training entry */
|
||||
|
||||
final static String orgQuery =
|
||||
"SELECT ?existingOrg WHERE {"+
|
||||
"?edTraining "+ trainingAtOrg +" ?existingOrg . }";
|
||||
"SELECT ?existingOrg WHERE {\n"+
|
||||
"?edTraining <"+ trainingAtOrg +"> ?existingOrg . }\n";
|
||||
|
||||
final static String orgLabelQuery =
|
||||
"SELECT ?existingOrgLabel WHERE {"+
|
||||
"?edTraining "+ trainingAtOrg +" ?existingOrg ."+
|
||||
"?existingOrg "+ label +" ?existingOrgLabel ."+
|
||||
"SELECT ?existingOrgLabel WHERE {\n"+
|
||||
"?edTraining <"+ trainingAtOrg +"> ?existingOrg .\n"+
|
||||
"?existingOrg "+ label +" ?existingOrgLabel .\n"+
|
||||
"}";
|
||||
|
||||
/* Limit type to subclasses of foaf:Organization. Otherwise, sometimes owl:Thing or another
|
||||
type is returned and we don't get a match to the select element options. */
|
||||
final static String orgTypeQuery =
|
||||
"PREFIX rdfs: "+ rdfs +" "+
|
||||
"SELECT ?existingOrgType WHERE {"+
|
||||
"?edTraining "+ trainingAtOrg +" ?existingOrg ."+
|
||||
"?existingOrg a ?existingOrgType ."+
|
||||
"?existingOrgType rdfs:subClassOf "+ orgClass +" ."+
|
||||
"PREFIX rdfs: <"+ rdfs +"> \n"+
|
||||
"SELECT ?existingOrgType WHERE {\n"+
|
||||
"?edTraining <"+ trainingAtOrg +"> ?existingOrg .\n"+
|
||||
"?existingOrg a ?existingOrgType .\n"+
|
||||
"?existingOrgType rdfs:subClassOf "+ orgClass +" .\n"+
|
||||
"}";
|
||||
|
||||
final static String degreeQuery =
|
||||
"SELECT ?existingDegree WHERE {"+
|
||||
"SELECT ?existingDegree WHERE {\n"+
|
||||
"?edTraining "+ degreeEarned +" ?existingDegree . }";
|
||||
|
||||
final static String majorFieldQuery =
|
||||
"SELECT ?existingMajorField WHERE {"+
|
||||
"?edTraining "+ majorFieldPred +" ?existingMajorField . }";
|
||||
"SELECT ?existingMajorField WHERE {\n"+
|
||||
"?edTraining <"+ majorFieldPred +"> ?existingMajorField . }";
|
||||
|
||||
final static String deptQuery =
|
||||
"SELECT ?existingDept WHERE {"+
|
||||
"?edTraining "+ deptPred +" ?existingDept . }";
|
||||
"SELECT ?existingDept WHERE {\n"+
|
||||
"?edTraining <"+ deptPred +"> ?existingDept . }";
|
||||
|
||||
final static String infoQuery =
|
||||
"SELECT ?existingInfo WHERE {"+
|
||||
"?edTraining "+ infoPred +" ?existingInfo . }";
|
||||
"SELECT ?existingInfo WHERE {\n"+
|
||||
"?edTraining <"+ infoPred +"> ?existingInfo . }";
|
||||
|
||||
final static String existingIntervalNodeQuery =
|
||||
"SELECT ?existingIntervalNode WHERE {"+
|
||||
"?edTraining "+ ToInterval +" ?existingIntervalNode ."+
|
||||
"?existingIntervalNode "+ type +" "+ intervalType +" . }";
|
||||
"SELECT ?existingIntervalNode WHERE {\n"+
|
||||
"?edTraining <"+ toInterval +"> ?existingIntervalNode .\n"+
|
||||
"?existingIntervalNode <"+ type +"> <"+ intervalType +"> . }";
|
||||
|
||||
final static String existingStartNodeQuery =
|
||||
"SELECT ?existingStartNode WHERE {"+
|
||||
"?edTraining "+ ToInterval +" ?intervalNode ."+
|
||||
"?intervalNode "+ type +" "+ intervalType +" ."+
|
||||
"?intervalNode "+ intervalToStart +" ?existingStartNode . "+
|
||||
"?existingStartNode "+ type +" "+ dateTimeValueType +" .} ";
|
||||
"SELECT ?existingStartNode WHERE {\n"+
|
||||
"?edTraining <"+ toInterval +"> ?intervalNode .\n"+
|
||||
"?intervalNode <"+ type +"> <"+ intervalType +"> .\n"+
|
||||
"?intervalNode <"+ intervalToStart +"> ?existingStartNode . \n"+
|
||||
"?existingStartNode <"+ type +"> <"+ dateTimeValueType +"> .}";
|
||||
|
||||
final static String existingStartDateQuery =
|
||||
"SELECT ?existingDateStart WHERE {"+
|
||||
"?edTraining "+ ToInterval +" ?intervalNode ."+
|
||||
"?intervalNode "+ type +" "+ intervalType +" ."+
|
||||
"?intervalNode "+ intervalToStart +" ?startNode ."+
|
||||
"?startNode "+ type +" "+ dateTimeValueType +" ."+
|
||||
"?startNode "+ dateTimeValue +" ?existingDateStart . }";
|
||||
"SELECT ?existingDateStart WHERE {\n"+
|
||||
"?edTraining <"+ toInterval +"> ?intervalNode .\n"+
|
||||
"?intervalNode <"+ type +"> <"+ intervalType +"> .\n"+
|
||||
"?intervalNode <"+ intervalToStart +"> ?startNode .\n"+
|
||||
"?startNode <"+ type +"> <"+ dateTimeValueType +"> .\n"+
|
||||
"?startNode <"+ dateTimeValue +"> ?existingDateStart . }";
|
||||
|
||||
final static String existingStartPrecisionQuery =
|
||||
"SELECT ?existingStartPrecision WHERE {"+
|
||||
"?edTraining "+ ToInterval +" ?intervalNode ."+
|
||||
"?intervalNode "+ type +" "+ intervalType +" ."+
|
||||
"?intervalNode "+ intervalToStart +" ?startNode ."+
|
||||
"?startNode "+ type +" "+ dateTimeValueType +" . "+
|
||||
"?startNode "+ dateTimePrecision +" ?existingStartPrecision . }";
|
||||
"SELECT ?existingStartPrecision WHERE {\n"+
|
||||
"?edTraining <"+ toInterval +"> ?intervalNode .\n"+
|
||||
"?intervalNode <"+ type +"> <"+ intervalType +"> .\n"+
|
||||
"?intervalNode <"+ intervalToStart +"> ?startNode .\n"+
|
||||
"?startNode <"+ type +"> <"+ dateTimeValueType +"> . \n"+
|
||||
"?startNode <"+ dateTimePrecision +"> ?existingStartPrecision . }";
|
||||
|
||||
final static String existingEndNodeQuery =
|
||||
"SELECT ?existingEndNode WHERE {"+
|
||||
"?edTraining "+ ToInterval +" ?intervalNode ."+
|
||||
"?intervalNode "+ type +" "+ intervalType +" ."+
|
||||
"?intervalNode "+ intervalToEnd +" ?existingEndNode . "+
|
||||
"?existingEndNode "+ type +" "+ dateTimeValueType +" .} ";
|
||||
"SELECT ?existingEndNode WHERE { \n"+
|
||||
"?edTraining <"+ toInterval +"> ?intervalNode .\n"+
|
||||
"?intervalNode <"+ type +"> <"+ intervalType +"> .\n"+
|
||||
"?intervalNode <"+ intervalToEnd +"> ?existingEndNode . \n"+
|
||||
"?existingEndNode <"+ type +"> <"+ dateTimeValueType +"> .}";
|
||||
|
||||
final static String existingEndDateQuery =
|
||||
"SELECT ?existingEndDate WHERE {"+
|
||||
"?edTraining "+ ToInterval +" ?intervalNode ."+
|
||||
"?intervalNode "+ type +" "+ intervalType +" ."+
|
||||
"?intervalNode "+ intervalToEnd +" ?endNode ."+
|
||||
"?endNode "+ type +" "+ dateTimeValueType +" ."+
|
||||
"?endNode "+ dateTimeValue +" ?existingEndDate . }";
|
||||
"SELECT ?existingEndDate WHERE {\n"+
|
||||
"?edTraining <"+ toInterval +"> ?intervalNode .\n"+
|
||||
"?intervalNode <"+ type +"> <"+ intervalType +"> .\n"+
|
||||
"?intervalNode <"+ intervalToEnd +"> ?endNode .\n"+
|
||||
"?endNode <"+ type +"> <"+ dateTimeValueType +"> .\n"+
|
||||
"?endNode <"+ dateTimeValue +"> ?existingEndDate . }";
|
||||
|
||||
final static String existingEndPrecisionQuery =
|
||||
"SELECT ?existingEndPrecision WHERE {"+
|
||||
"?edTraining "+ ToInterval +" ?intervalNode ."+
|
||||
"?intervalNode "+ type +" "+ intervalType +" ."+
|
||||
"?intervalNode "+ intervalToEnd +" ?endNode ."+
|
||||
"?endNode "+ type +" "+ dateTimeValueType +" . "+
|
||||
"?endNode "+ dateTimePrecision +" ?existingEndPrecision . }";
|
||||
"SELECT ?existingEndPrecision WHERE {\n"+
|
||||
"?edTraining <"+ toInterval +"> ?intervalNode .\n"+
|
||||
"?intervalNode <"+ type +"> <"+ intervalType +"> .\n"+
|
||||
"?intervalNode <"+ intervalToEnd +"> ?endNode .\n"+
|
||||
"?endNode <"+ type +"> <"+ dateTimeValueType +"> .\n"+
|
||||
"?endNode <"+ dateTimePrecision +"> ?existingEndPrecision . }";
|
||||
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ public abstract class VivoBaseGenerator extends BaseEditConfigurationGenerator i
|
|||
final static String dateTimeValueType =vivoCore+"DateTimeValue";
|
||||
final static String dateTimePrecision =vivoCore+"dateTimePrecision";
|
||||
|
||||
final static String ToInterval =vivoCore+"dateTimeInterval";
|
||||
final static String toInterval =vivoCore+"dateTimeInterval";
|
||||
final static String intervalType =vivoCore+"DateTimeInterval";
|
||||
final static String intervalToStart =vivoCore+"start";
|
||||
final static String intervalToEnd =vivoCore+"end";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue