/** * 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; }