anchor.diff:          flagURI = wdf.getVClassDao().getTopConcept().getURI();  // fall back to owl:Thing if not portal filtering
       }
       vreq.setAttribute("flagURI",flagURI);
  +    
  +    request.setAttribute("stringDatatypeUriJson", MiscWebUtils.escape(XSD.xstring.toString()));
  +    request.setAttribute("gYearDatatypeUriJson", MiscWebUtils.escape(XSD.gYear.toString()));
   %>
   
  -<%-- RY *** SET VARIABLES for uris & namespaces --%>
  +<c:set var="vivo" value="http://vivoweb.org/ontology/core#" />
  +<c:set var="rdf" value="<%= VitroVocabulary.RDF %>" />
  +<c:set var="rdfs" value="<% VitroVocabulary.RDFS %>" />
   
   <%--  Then enter a SPARQL query for each field, by convention concatenating the field id with "Existing"
         to convey that the expression is used to retrieve any existing value for the field in an existing individual.
         Each of these must then be referenced in the sparqlForExistingLiterals section of the JSON block below
         and in the literalsOnForm --%>
  -<v:jsonset var="titleExisting" >      
  +<c:set var="titlePred" value="${vivo}titleOrRole" />
  +<v:jsonset var="titleExisting" >    
   	SELECT ?titleExisting WHERE {
  -	  	?positionUri <http://vivoweb.org/ontology/core#titleOrRole> ?titleExisting }
  +	  	?positionUri <${titlePred}> ?titleExisting }
   </v:jsonset>
   
   <%--  Pair the "existing" query with the skeleton of what will be asserted for a new statement involving this field.
         The actual assertion inserted in the model will be created via string substitution into the ? variables.
         NOTE the pattern of punctuation (a period after the prefix URI and after the ?field) --%> 
   <v:jsonset var="titleAssertion" >      
  -	?positionUri <http://vivoweb.org/ontology/core#titleOrRole> ?title .
  -	?positionUri <http://www.w3.org/2000/01/rdf-schema#label> ?title. 
  -</v:jsonset>
  -
  +	?positionUri <${titlePred}> ?title .
  +	?positionUri <${rdf}label> ?title. 
  +</v:jsonset>
  +
  +<c:set var="involvedOrgNamePred" value="${vivo}involvedOrganizationName" />
   <v:jsonset var="organizationNameExisting" >      
         SELECT ?existingOrgName WHERE {  
  -      	?positionUri <http://vivoweb.org/ontology/core#involvedOrganizationName> ?existingOrgName }
  +      	?positionUri <${involvedOrgNamePred}> ?existingOrgName }
   </v:jsonset>
   <v:jsonset var="organizationNameAssertion" >
  -      ?positionUri <http://vivoweb.org/ontology/core#involvedOrganizationName> ?organizationName .
  -</v:jsonset>
  -
  +      ?positionUri <${involvedOrgNamePred}> ?organizationName .
  +</v:jsonset>
  +
  +<c:set var="startYearPred" value="${vivo}startYear" />
   <v:jsonset var="startYearExisting" >      
         SELECT ?startYearExisting WHERE {  
  -      	?positionUri <http://vivoweb.org/ontology/core#startYear> ?startYearExisting }
  +      	?positionUri <${startYearPred}> ?startYearExisting }
   </v:jsonset>
   <v:jsonset var="startYearAssertion" >
  -      ?positionUri <http://vivoweb.org/ontology/core#startYear> ?startYear .
  -</v:jsonset>
  -
  +      ?positionUri <${startYearPred}> ?startYear .
  +</v:jsonset>
  +
  +<c:set var="endYearPred" value="${vivo}endYear" />
   <v:jsonset var="endYearExisting" >      
         SELECT ?endYearExisting WHERE {  
  -      	?positionUri <http://vivoweb.org/ontology/core#endYear> ?endYearExisting }
  +      	?positionUri <${endYearPred}> ?endYearExisting }
   </v:jsonset>
   <v:jsonset var="endYearAssertion" >
  -      ?positionUri <http://vivoweb.org/ontology/core#endYear> ?endYear .
  +      ?positionUri <${endYearPred}> ?endYear .
   </v:jsonset>
   
   <%--  Note there is really no difference in how things are set up for an object property except
         below in the n3ForEdit section, in whether the ..Existing variable goes in SparqlForExistingLiterals
         or in the SparqlForExistingUris, as well as perhaps in how the options are prepared --%>
  +<c:set var="positionInOrgPred" value="${vivo}positionInOrganization" />
   <v:jsonset var="organizationUriExisting" >      
   	SELECT ?existingOrgUri WHERE {
  -		?positionUri <http://vivoweb.org/ontology/core#positionInOrganization> ?existingOrgUri }
  +		?positionUri <${positionInOrgPred}> ?existingOrgUri }
   </v:jsonset>
   <v:jsonset var="organizationUriAssertion" >      
  -	?positionUri <http://vivoweb.org/ontology/core#positionInOrganization> ?organizationUri .
  -	?organizationUri <http://vivoweb.org/ontology/core#organizationForPosition> ?positionUri .
  +	?positionUri <${positionInOrgPred}> ?organizationUri .
  +	?organizationUri <${vivo}organizationForPosition> ?positionUri .
   </v:jsonset>
   
   <v:jsonset var="n3ForStmtToPerson"  >
  -    @prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.    
  -    @prefix core: <http://vivoweb.org/ontology/core#>.    
  +    @prefix rdf:  <${rdf}>.    
  +    @prefix core: <${vivo}>.    
   
       ?person      core:personInPosition  ?positionUri .
       ?positionUri core:positionForPerson ?person .
  
positive.code:          "literalOptions"   : [ ],
           "predicateUri"     : "",
           "objectClassUri"   : "",
           "rangeDatatypeUri" : "http://www.w3.org/2001/XMLSchema#string",
           "rangeLang"        : "",         
           "assertions"       : [ "${organizationNameAssertion}" ]
        },
        "startYear" : {
           "newResource"      : "false",
           "validators"       : [ "nonempty", "datatype:http://www.w3.org/2001/XMLSchema#gYear" ],
           "optionsType"      : "UNDEFINED",
           "literalOptions"   : [ ],
           "predicateUri"     : "",
           "objectClassUri"   : "",
           "rangeDatatypeUri" : "http://www.w3.org/2001/XMLSchema#gYear",
           "rangeLang"        : "",         
           "assertions"       : ["${startYearAssertion}"]
        },
        "endYear" : {
           "newResource"      : "false",
           "validators"       : [ "datatype:http://www.w3.org/2001/XMLSchema#gYear" ],
           "optionsType"      : "UNDEFINED",
           "literalOptions"   : [ ],
           "predicateUri"     : "",
           "objectClassUri"   : "",
           "rangeDatatypeUri" : "http://www.w3.org/2001/XMLSchema#gYear",
           "rangeLang"        : "",         
           "assertions"       : ["${endYearAssertion}"]
        }
  
negative.code: 
  <%@ page import="com.hp.hpl.jena.rdf.model.Literal"%>
  <%@ page import="com.hp.hpl.jena.rdf.model.Model"%>
  <%@ page import="com.hp.hpl.jena.vocabulary.XSD" %>
  
  <%@ page import="edu.cornell.mannlib.vitro.webapp.beans.Individual"%>
  <%@ page import="edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary"%>
  <%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.EditConfiguration"%>
  <%@ page import="edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory"%>
  <%@ page import="edu.cornell.mannlib.vitro.webapp.controller.VitroRequest"%>
  <%@ page import="edu.cornell.mannlib.vitro.webapp.web.MiscWebUtils"%>
  
  <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
  <%@ taglib prefix="v" uri="http://vitro.mannlib.cornell.edu/vitro/tags" %>
  