Adding getVClassesForVClassGroup to JSONServlet NIHVIVO-1674

This commit is contained in:
bdc34 2011-01-24 21:49:48 +00:00
parent 5db1494e85
commit 00bdb056d5
11 changed files with 239 additions and 115 deletions

View file

@ -8,6 +8,7 @@ import java.io.Writer;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
@ -32,14 +33,18 @@ import com.hp.hpl.jena.rdf.model.Literal;
import edu.cornell.mannlib.vitro.webapp.beans.DataProperty;
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.beans.VClass;
import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup;
import edu.cornell.mannlib.vitro.webapp.controller.TabEntitiesController.PageRecord;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
import edu.cornell.mannlib.vitro.webapp.dao.jena.VClassGroupCache;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.EditConfiguration;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.SelectListGenerator;
import edu.cornell.mannlib.vitro.webapp.search.beans.ProhibitedFromSearch;
import edu.cornell.mannlib.vitro.webapp.web.DisplayVocabulary;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.VClassGroupTemplateModel;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.VClassTemplateModel;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.IndividualTemplateModel;
/**
@ -60,22 +65,64 @@ public class JSONServlet extends VitroHttpServlet {
super.doGet(req, resp);
VitroRequest vreq = new VitroRequest(req);
if(vreq.getParameter("getEntitiesByVClass") != null ){
if( vreq.getParameter("resultKey") == null) {
getEntitiesByVClass(req, resp);
try{
if(vreq.getParameter("getEntitiesByVClass") != null ){
if( vreq.getParameter("resultKey") == null) {
getEntitiesByVClass(req, resp);
return;
} else {
getEntitiesByVClassContinuation( req, resp);
return;
}
}else if( vreq.getParameter("getN3EditOptionList") != null ){
doN3EditOptionList(req,resp);
return;
} else {
getEntitiesByVClassContinuation( req, resp);
}else if( vreq.getParameter("getLuceneIndividualsByVClass") != null ){
getLuceneIndividualsByVClass(req,resp);
return;
}else if( vreq.getParameter("getVClassesForVClassGroup") != null ){
getVClassesForVClassGroup(req,resp);
return;
}
}else if( vreq.getParameter("getN3EditOptionList") != null ){
doN3EditOptionList(req,resp);
return;
}else if( vreq.getParameter("getLuceneIndividualsByVClass") != null ){
getLuceneIndividualsByVClass(req,resp);
}catch(Exception ex){
log.warn(ex,ex);
}
}
private void getVClassesForVClassGroup(HttpServletRequest req, HttpServletResponse resp) throws IOException, JSONException {
JSONObject map = new JSONObject();
VitroRequest vreq = new VitroRequest(req);
String vcgUri = vreq.getParameter("classgroupUri");
if( vcgUri == null ){
log.debug("no URI passed for classgroupUri");
resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return;
}
VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(getServletContext());
VClassGroup vcg = vcgc.getGroup(vreq.getPortalId(), vcgUri);
if( vcg == null ){
log.debug("Could not find vclassgroup: " + vcgUri);
resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return;
}
ArrayList<JSONObject> classes = new ArrayList<JSONObject>(vcg.size());
for( VClass vc : vcg){
JSONObject vcObj = new JSONObject();
vcObj.put("name", vc.getName());
vcObj.put("URI", vc.getURI());
vcObj.put("entityCount", vc.getEntityCount());
classes.add(vcObj);
}
map.put("classes", classes);
map.put("classGroupName", vcg.getPublicName());
map.put("classGroupUri", vcg.getURI());
resp.setCharacterEncoding("UTF-8");
resp.setContentType("application/json;charset=UTF-8");
Writer writer = resp.getWriter();
writer.write(map.toString());
}
private void getLuceneIndividualsByVClass( HttpServletRequest req, HttpServletResponse resp ){

View file

@ -30,7 +30,7 @@ import com.hp.hpl.jena.rdf.model.StmtIterator;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues;
import edu.cornell.mannlib.vitro.webapp.web.DisplayVocabulary;
import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
import freemarker.template.Configuration;
public class NavigationController extends FreemarkerHttpServlet {

View file

@ -2,17 +2,28 @@
package edu.cornell.mannlib.vitro.webapp.dao;
import com.hp.hpl.jena.ontology.DatatypeProperty;
import com.hp.hpl.jena.ontology.ObjectProperty;
import com.hp.hpl.jena.ontology.OntClass;
import com.hp.hpl.jena.ontology.OntModel;
import com.hp.hpl.jena.ontology.OntModelSpec;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.Property;
import com.hp.hpl.jena.rdf.model.Resource;
import com.hp.hpl.jena.rdf.model.ResourceFactory;
public class DisplayVocabulary {
/** <p>The ontology model that holds the vocabulary terms</p> */
private static OntModel m_model = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, null );
/* Namespace for display vocabulary */
public static final String DISPLAY_NS = "http://vitro.mannlib.cornell.edu/ontologies/display/1.1#";
private static final String NS = DISPLAY_NS;
/* Individuals */
public static final String PRIMARY_LUCENE_INDEX_URI = NS + "PrimaryLuceneIndex";
/* Page types */
public static final String PAGE_TYPE = NS + "Page";
public static final String HOME_PAGE_TYPE = NS + "HomePage";
@ -22,11 +33,73 @@ public class DisplayVocabulary {
public static final String FOR_CLASSGROUP = NS + "forClassGroup";
/* Data Properties */
public static final String URL_MAPPING = NS + "urlMapping";
public static final DatatypeProperty URL_MAPPING = m_model.createDatatypeProperty(NS + "urlMapping");
public static final String TITLE = NS + "title";
public static final String REQUIRES_BODY_TEMPLATE = NS + "requiresBodyTemplate";
public static final DatatypeProperty REQUIRES_BODY_TEMPLATE = m_model.createDatatypeProperty(NS + "requiresBodyTemplate");
/* URIs for storing menu.n3 */
public static final String MENU_TEXT_RES = NS + "MenuText";
public static final String HAS_TEXT_REPRESENTATION = NS + "hasMenuText";
/** <p>The namespace of the vocabulary as a string</p>
* @see #NS */
public static String getURI() {return NS;}
/** <p>The namespace of the vocabulary as a resource</p> */
public static final Resource NAMESPACE = m_model.createResource( NS );
public static final ObjectProperty REQUIRES_VALUES = m_model.createObjectProperty( NS + "requiresValues" );
public static final ObjectProperty TO_PAGE = m_model.createObjectProperty( NS + "toPage" );
public static final ObjectProperty EXCLUDE_CLASS = m_model.createObjectProperty( NS + "excludeClass" );
public static final ObjectProperty INCLUDE_CLASS = m_model.createObjectProperty( NS + "includeClass" );
/** <p>Java package and class name. ex edu.cornell.mannlib.vitro.webapps.functions.ExampleFunction</p> */
public static final DatatypeProperty JAVA_CLASS_NAME = m_model.createDatatypeProperty( NS + "javaClassName" );
public static final DatatypeProperty MENU_POSITION = m_model.createDatatypeProperty( NS + "menuPosition" );
public static final DatatypeProperty PARAMETER_NAME = m_model.createDatatypeProperty( NS + "parameterName" );
public static final DatatypeProperty PARAMETER_VALUE = m_model.createDatatypeProperty( NS + "parameterValue" );
//public static final DatatypeProperty REQUIRES_BODY_TEMPLATE = m_model.createDatatypeProperty( NS + "requiresBodyTemplate" );
/** <p>Values from HttpRequest.getPathInfo() will be mapped to values from urlMapping.</p> */
//public static final DatatypeProperty URL_MAPPING = m_model.createDatatypeProperty( NS + "urlMapping" );
/** <p>This represents a menu item or other general navigation item.</p> */
public static final OntClass NAVIGATION_ELEMENT = m_model.createClass( NS + "NavigationElement" );
/** <p>Class of pages.</p> */
public static final OntClass PAGE = m_model.createClass( NS + "Page" );
/* URIs for some individuals in the dispaly ontology */
//public static final Individual EVENTS = m_model.createIndividual( NS + "Events", PAGE );
//public static final Individual EVENTS_MENU_ITEM = m_model.createIndividual( NS + "EventsMenuItem", NAVIGATION_ELEMENT );
//public static final Individual HOME = m_model.createIndividual( NS + "Home", PAGE );
//public static final Individual HOME_MENU_ITEM = m_model.createIndividual( NS + "HomeMenuItem", NAVIGATION_ELEMENT );
//public static final Individual ORGANIZATIONS = m_model.createIndividual( NS + "Organizations", PAGE );
//public static final Individual ORGANIZATIONS_MENU_ITEM = m_model.createIndividual( NS + "OrganizationsMenuItem", NAVIGATION_ELEMENT );
//public static final Individual PEOPLE = m_model.createIndividual( NS + "People", PAGE );
//public static final Individual PEOPLE_MENU_ITEM = m_model.createIndividual( NS + "PeopleMenuItem", NAVIGATION_ELEMENT );
//public static final Individual PUBLICATIONS = m_model.createIndividual( NS + "Publications", PAGE );
//public static final Individual PUBLICATIONS_MENU_ITEM = m_model.createIndividual( NS + "PublicationsMenuItem", NAVIGATION_ELEMENT );
}

View file

@ -2,6 +2,8 @@
package edu.cornell.mannlib.vitro.webapp.dao.jena;
import java.util.List;
import com.hp.hpl.jena.ontology.AnnotationProperty;
import com.hp.hpl.jena.ontology.OntClass;
import com.hp.hpl.jena.query.Dataset;
@ -9,6 +11,8 @@ import com.hp.hpl.jena.query.Query;
import com.hp.hpl.jena.query.QueryExecution;
import com.hp.hpl.jena.query.QueryExecutionFactory;
import com.hp.hpl.jena.query.QueryFactory;
import com.hp.hpl.jena.query.QuerySolution;
import com.hp.hpl.jena.query.QuerySolutionMap;
import com.hp.hpl.jena.query.ResultSet;
import com.hp.hpl.jena.query.Syntax;
import com.hp.hpl.jena.rdf.model.Literal;
@ -44,9 +48,12 @@ public class VClassDaoSDB extends VClassDaoJena {
@Deprecated
public void addVClassesToGroup(VClassGroup group, boolean includeUninstantiatedClasses, boolean getIndividualCount) {
group.setIndividualCount( getClassGroupInstanceCount(group));
getOntModel().enterCriticalSection(Lock.READ);
try {
if ((group != null) && (group.getURI() != null)) {
if ((group != null) && (group.getURI() != null)) {
Resource groupRes = ResourceFactory.createResource(group.getURI());
AnnotationProperty inClassGroup = getOntModel().getAnnotationProperty(VitroVocabulary.IN_CLASSGROUP);
if (inClassGroup != null) {
@ -121,5 +128,45 @@ public class VClassDaoSDB extends VClassDaoJena {
getOntModel().leaveCriticalSection();
}
}
// protected void addIndividualCountToGroups( List<VClassGroup> cgList ){
// for( VClassGroup cg : cgList){
// cg.setIndividualCount(getClassGroupInstanceCount(cg));
// }
// }
int getClassGroupInstanceCount(VClassGroup vcg){
int count = 0;
String[] graphVars = { "?g1", "?g2" };
try {
String queryText =
"SELECT COUNT( DISTINCT ?instance ) WHERE { \n" +
" GRAPH <urn:x-arq:UnionGraph> { \n" +
" ?class <"+VitroVocabulary.IN_CLASSGROUP+"> ?classGroupUri .\n" +
" ?instance a ?class . \n" +
" } \n" +
"} \n" ;
Query countQuery = QueryFactory.create(queryText, Syntax.syntaxARQ);
DatasetWrapper w = getDatasetWrapper();
Dataset dataset = w.getDataset();
QuerySolutionMap initialBinding = new QuerySolutionMap();
initialBinding.add("classGroupUri", ResourceFactory.createResource( vcg.getURI()));
dataset.getLock().enterCriticalSection(Lock.READ);
try {
QueryExecution qe = QueryExecutionFactory.create(countQuery, dataset, initialBinding);
ResultSet rs = qe.execSelect();
count = Integer.parseInt(((Literal) rs.nextSolution().get(".1")).getLexicalForm());
} finally {
dataset.getLock().leaveCriticalSection();
w.close();
}
}catch(Exception ex){
log.error("error in getClassGroupInstanceCount()", ex);
}
return count;
}
}

View file

@ -23,12 +23,12 @@ import com.hp.hpl.jena.util.iterator.ClosableIterator;
import edu.cornell.mannlib.vitro.webapp.beans.IndividualImpl;
import edu.cornell.mannlib.vitro.webapp.beans.VClass;
import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup;
import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
import edu.cornell.mannlib.vitro.webapp.dao.InsertException;
import edu.cornell.mannlib.vitro.webapp.dao.VClassDao;
import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupDao;
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
import edu.cornell.mannlib.vitro.webapp.search.beans.ProhibitedFromSearch;
import edu.cornell.mannlib.vitro.webapp.web.DisplayVocabulary;
public class VClassGroupDaoJena extends JenaBaseDao implements VClassGroupDao {
@ -158,10 +158,16 @@ public class VClassGroupDaoJena extends JenaBaseDao implements VClassGroupDao {
}
*/
if (groups.size()>0) {
if( getIndividualCount )
addIndividualCountToGroups(groups);
// if( getIndividualCount )
// addIndividualCountToGroups(groups);
return groups;
} else {
/* bdc34: the effect of the following code is that
* classgroups will get empty vclasses added to them
* when includeUninstantiatedClasses == false and all
* the vclasses are empty.
* This may not be the desired behavior.
*/
classDao.addVClassesToGroups(groups);
if( getIndividualCount )
addIndividualCountToGroups(groups);
@ -172,8 +178,8 @@ public class VClassGroupDaoJena extends JenaBaseDao implements VClassGroupDao {
}
}
private void addIndividualCountToGroups( List<VClassGroup> cgList ){
protected void addIndividualCountToGroups( List<VClassGroup> cgList ){
for( VClassGroup cg : cgList){
int count = 0;
for( VClass vc : cg){
@ -183,6 +189,47 @@ public class VClassGroupDaoJena extends JenaBaseDao implements VClassGroupDao {
}
}
// private int individuialCountForGroup( VClassGroup vcg){
// int count = 0;
// try{
// Model aboxModel = getOntModelSelector().getABoxModel();
// aboxModel.enterCriticalSection(Lock.READ);
// try {
//
// String[] graphVars = { "?g" };
// String countQueryStr = "SELECT COUNT(DISTINCT ?s) WHERE \n" +
// "{ GRAPH ?g { ?s a <" + cls.getURI() + "> } \n" +
// WebappDaoFactorySDB.getFilterBlock(graphVars, datasetMode) +
// "} \n";
// Query countQuery = QueryFactory.create(countQueryStr, Syntax.syntaxARQ);
// DatasetWrapper w = getDatasetWrapper();
// Dataset dataset = w.getDataset();
// dataset.getLock().enterCriticalSection(Lock.READ);
// try {
// QueryExecution qe = QueryExecutionFactory.create(countQuery, dataset);
// ResultSet rs = qe.execSelect();
// count = Integer.parseInt(((Literal) rs.nextSolution().get(".1")).getLexicalForm());
// } finally {
// dataset.getLock().leaveCriticalSection();
// w.close();
// }
//
//
//// String countQueryStr = "SELECT COUNT(*) WHERE \n" +
//// "{ ?s a <" + cls.getURI() + "> } ";
//// Query countQuery = QueryFactory.create(countQueryStr, Syntax.syntaxARQ);
//// QueryExecution qe = QueryExecutionFactory.create(countQuery, aboxModel);
//// ResultSet rs =qe.execSelect();
//// count = Integer.parseInt(((Literal) rs.nextSolution().get(".1")).getLexicalForm());
// } finally {
// aboxModel.leaveCriticalSection();
// }
// }catch(Exception ex){
// log.debug("error during individuialCountForGroup()", ex);
// }
// return count;
// }
public VClassGroup groupFromGroupIndividual(Individual groupInd) {
if (groupInd==null) {
return null;

View file

@ -17,16 +17,13 @@ import com.hp.hpl.jena.query.QuerySolution;
import com.hp.hpl.jena.query.QuerySolutionMap;
import com.hp.hpl.jena.query.ResultSet;
import com.hp.hpl.jena.rdf.listeners.StatementListener;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelChangedListener;
import com.hp.hpl.jena.rdf.model.RDFNode;
import com.hp.hpl.jena.rdf.model.Resource;
import com.hp.hpl.jena.rdf.model.ResourceFactory;
import com.hp.hpl.jena.rdf.model.Statement;
import com.hp.hpl.jena.rdf.model.StmtIterator;
import com.hp.hpl.jena.shared.Lock;
import edu.cornell.mannlib.vitro.webapp.web.DisplayVocabulary;
import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
public class ProhibitedFromSearch {
List<String> prohibitedClasses;

View file

@ -36,7 +36,7 @@ import edu.cornell.mannlib.vitro.webapp.dao.jena.SearchReindexingListener;
import edu.cornell.mannlib.vitro.webapp.search.beans.ObjectSourceIface;
import edu.cornell.mannlib.vitro.webapp.search.beans.ProhibitedFromSearch;
import edu.cornell.mannlib.vitro.webapp.search.indexing.IndexBuilder;
import edu.cornell.mannlib.vitro.webapp.web.DisplayVocabulary;
import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
/**
* Setup objects for lucene searching and indexing.

View file

@ -163,12 +163,10 @@ public class BrowseDataGetter implements PageDataGetter {
String vcgUri = getParam(Mode.CLASS_GROUP, request, params);
VitroRequest vreq = new VitroRequest(request);
//VClassGroup vcg = vreq.getWebappDaoFactory().getVClassGroupDao().getGroupByURI(vcgUri);
VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context);
VClassGroup vcg = vcgc.getGroup(vreq.getPortalId(), vcgUri);
//vreq.getWebappDaoFactory().getVClassDao().addVClassesToGroup(vcg, false, true);
ArrayList<VClassTemplateModel> classes = new ArrayList<VClassTemplateModel>(vcg.size());
for( VClass vc : vcg){
classes.add(new VClassTemplateModel(vc));
@ -211,7 +209,7 @@ public class BrowseDataGetter implements PageDataGetter {
return DEFAULT_MODE;
}
protected String getParam(Mode mode, VitroRequest request, Map params){
public static String getParam(Mode mode, VitroRequest request, Map params){
if( request.getParameter(mode.param) != null )
return request.getParameter(mode.param);
if( params.get(mode.param) != null )

View file

@ -1,85 +0,0 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.vitro.webapp.web;
import com.hp.hpl.jena.ontology.DatatypeProperty;
import com.hp.hpl.jena.ontology.ObjectProperty;
import com.hp.hpl.jena.ontology.OntClass;
import com.hp.hpl.jena.ontology.OntModel;
import com.hp.hpl.jena.ontology.OntModelSpec;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.Resource;
/**
* Vocabulary definitions from /home/bdc34/swoop/display.rdf
* @author Auto-generated by schemagen on 18 Jun 2010 16:57
*/
public class DisplayVocabulary {
/** <p>The ontology model that holds the vocabulary terms</p> */
private static OntModel m_model = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, null );
/** <p>The namespace of the vocabulary as a string</p> */
public static final String NS = "http://vitro.mannlib.cornell.edu/ontologies/display/1.1#";
/** <p>The namespace of the vocabulary as a string</p>
* @see #NS */
public static String getURI() {return NS;}
/** <p>The namespace of the vocabulary as a resource</p> */
public static final Resource NAMESPACE = m_model.createResource( NS );
public static final ObjectProperty REQUIRES_VALUES = m_model.createObjectProperty( NS + "requiresValues" );
public static final ObjectProperty TO_PAGE = m_model.createObjectProperty( NS + "toPage" );
public static final ObjectProperty EXCLUDE_CLASS = m_model.createObjectProperty( NS + "excludeClass" );
public static final ObjectProperty INCLUDE_CLASS = m_model.createObjectProperty( NS + "includeClass" );
/** <p>Java package and class name. ex edu.cornell.mannlib.vitro.webapps.functions.ExampleFunction</p> */
public static final DatatypeProperty JAVA_CLASS_NAME = m_model.createDatatypeProperty( NS + "javaClassName" );
public static final DatatypeProperty MENU_POSITION = m_model.createDatatypeProperty( NS + "menuPosition" );
public static final DatatypeProperty PARAMETER_NAME = m_model.createDatatypeProperty( NS + "parameterName" );
public static final DatatypeProperty PARAMETER_VALUE = m_model.createDatatypeProperty( NS + "parameterValue" );
public static final DatatypeProperty REQUIRES_BODY_TEMPLATE = m_model.createDatatypeProperty( NS + "requiresBodyTemplate" );
/** <p>Values from HttpRequest.getPathInfo() will be mapped to values from urlMapping.</p> */
public static final DatatypeProperty URL_MAPPING = m_model.createDatatypeProperty( NS + "urlMapping" );
/** <p>This represents a menu item or other general navigation item.</p> */
public static final OntClass NAVIGATION_ELEMENT = m_model.createClass( NS + "NavigationElement" );
/** <p>Class of pages.</p> */
public static final OntClass PAGE = m_model.createClass( NS + "Page" );
/* URIs for some individuals in the dispaly ontology */
public static final String PRIMARY_LUCENE_INDEX_URI = NS + "PrimaryLuceneIndex";
//public static final Individual EVENTS = m_model.createIndividual( NS + "Events", PAGE );
//public static final Individual EVENTS_MENU_ITEM = m_model.createIndividual( NS + "EventsMenuItem", NAVIGATION_ELEMENT );
//public static final Individual HOME = m_model.createIndividual( NS + "Home", PAGE );
//public static final Individual HOME_MENU_ITEM = m_model.createIndividual( NS + "HomeMenuItem", NAVIGATION_ELEMENT );
//public static final Individual ORGANIZATIONS = m_model.createIndividual( NS + "Organizations", PAGE );
//public static final Individual ORGANIZATIONS_MENU_ITEM = m_model.createIndividual( NS + "OrganizationsMenuItem", NAVIGATION_ELEMENT );
//public static final Individual PEOPLE = m_model.createIndividual( NS + "People", PAGE );
//public static final Individual PEOPLE_MENU_ITEM = m_model.createIndividual( NS + "PeopleMenuItem", NAVIGATION_ELEMENT );
//public static final Individual PUBLICATIONS = m_model.createIndividual( NS + "Publications", PAGE );
//public static final Individual PUBLICATIONS_MENU_ITEM = m_model.createIndividual( NS + "PublicationsMenuItem", NAVIGATION_ELEMENT );
}

View file

@ -47,7 +47,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.Field;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.SelectListGenerator;
import edu.cornell.mannlib.vitro.webapp.search.beans.ProhibitedFromSearch;
import edu.cornell.mannlib.vitro.webapp.utils.StringUtils;
import edu.cornell.mannlib.vitro.webapp.web.DisplayVocabulary;
import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
import freemarker.template.Configuration;
/**