/**
  * if element is datatype property then add min, max and sum as options
  *
  * @param element
  * @param poc
  * @return
  */
 List<Vote> addAdditionalVotes(
     OntologyElement element, POC poc, String text, String propertyUri, boolean alreadyAdded) {
   // if element is datatype property add suggestions with min,
   // max, sum
   List<Vote> votes = new ArrayList<Vote>();
   // logger.info("Adding additional votes(min,max,etc), poc is:"+poc.toString());
   if (element instanceof PropertyElement) {
     PropertyElement clonedElement = new PropertyElement();
     String thisPropertyUri = ((PropertyElement) element).getData().toString();
     // logger.info("thisPropertyUri "+thisPropertyUri);
     if (luceneAnnotator.isItDatatypeProperty(thisPropertyUri)) {
       ((PropertyElement) clonedElement).setDatatypeProperty(true);
       boolean containsJJ = false;
       containsJJ = treeUtils.pocContainsJJs(poc);
       // logger.info("Checking whether it contains JJ*..." + containsJJ);
       if (containsJJ) {
         if (alreadyAdded) clonedElement.setAlreadyAdded(true);
         else clonedElement.setAlreadyAdded(false);
         clonedElement.setAnnotation(element.getAnnotation());
         clonedElement.setData(element.getData());
         if (((PropertyElement) element).getRange() != null)
           clonedElement.setRange(((PropertyElement) element).getRange());
         if (((PropertyElement) element).getDomain() != null)
           clonedElement.setDomain(((PropertyElement) element).getDomain());
         if (((PropertyElement) element).getGovernor() != null)
           clonedElement.setGovernor(((PropertyElement) element).getGovernor());
         Vote vote = generateVote(text, propertyUri, clonedElement, FreyaConstants.MAX_FUNCTION);
         votes.add(vote);
         vote = generateVote(text, propertyUri, clonedElement, FreyaConstants.MIN_FUNCTION);
         votes.add(vote);
         vote = generateVote(text, propertyUri, clonedElement, FreyaConstants.SUM_FUNCTION);
         votes.add(vote);
         vote = generateVote(text, propertyUri, clonedElement, FreyaConstants.AVG_FUNCTION);
         votes.add(vote);
       }
     }
   }
   return votes;
 }
 /**
  * generate property elements from the set of property uris, and check whether these properties
  * are datatype so that additional flag can be added to the property elements
  *
  * @param classes
  * @return
  */
 List<OntologyElement> returnPropertyElements(Set<String> properties) throws Exception {
   if (properties == null) return new ArrayList();
   List<OntologyElement> elements = new ArrayList<OntologyElement>();
   for (String euri : properties) {
     // logger.info("Checking if datatypeproperty=true for: " + euri);
     SerializableURI elementUri = null;
     try {
       elementUri = new SerializableURI(euri, false);
     } catch (Exception e) {
       e.printStackTrace();
     }
     OntologyElement e = new PropertyElement();
     // so that later we can distinguish property elements if they refer
     // to datatypes
     if (luceneAnnotator.isItDatatypeProperty(euri)) {
       ((PropertyElement) e).setDatatypeProperty(true);
     }
     e.setData(elementUri);
     elements.add(((PropertyElement) e));
   }
   return elements;
 }