protected Literal jenaLiteralFromDataPropertyStatement( DataPropertyStatement dataPropertyStatement, OntModel ontModel) { Literal l = null; if ((dataPropertyStatement.getLanguage()) != null && (dataPropertyStatement.getLanguage().length() > 0)) { l = ontModel.createLiteral( dataPropertyStatement.getData(), dataPropertyStatement.getLanguage()); } else if ((dataPropertyStatement.getDatatypeURI() != null) && (dataPropertyStatement.getDatatypeURI().length() > 0)) { l = ontModel.createTypedLiteral( dataPropertyStatement.getData(), TypeMapper.getInstance().getSafeTypeByName(dataPropertyStatement.getDatatypeURI())); } else { l = ontModel.createLiteral(dataPropertyStatement.getData()); } return l; }
@Override public String toString() { return "DisplayDataPropertyStatement[" + dataPropertyStatement.getIndividualURI() + "==>" + dataPropertyStatement.getDatapropURI() + "==>" + dataPropertyStatement.getData() + "]"; }
public int insertNewDataPropertyStatement( DataPropertyStatement dataPropertyStmt, OntModel ontModel) { ontModel.enterCriticalSection(Lock.WRITE); getOntModel() .getBaseModel() .notifyEvent( new IndividualUpdateEvent( getWebappDaoFactory().getUserURI(), true, dataPropertyStmt.getIndividualURI())); DataProperty dp = getWebappDaoFactory() .getDataPropertyDao() .getDataPropertyByURI(dataPropertyStmt.getDatapropURI()); if ((dataPropertyStmt.getDatatypeURI() == null) && (dp != null) && (dp.getRangeDatatypeURI() != null)) { dataPropertyStmt.setDatatypeURI(dp.getRangeDatatypeURI()); } Property prop = ontModel.getProperty(dataPropertyStmt.getDatapropURI()); try { Resource res = ontModel.getResource(dataPropertyStmt.getIndividualURI()); Literal literal = jenaLiteralFromDataPropertyStatement(dataPropertyStmt, ontModel); if (res != null && prop != null && literal != null && dataPropertyStmt.getData().length() > 0) { res.addProperty(prop, literal); } } finally { getOntModel() .getBaseModel() .notifyEvent( new IndividualUpdateEvent( getWebappDaoFactory().getUserURI(), false, dataPropertyStmt.getIndividualURI())); ontModel.leaveCriticalSection(); } return 0; }
@Override public void modifyDocument(Individual ind, SolrInputDocument doc, StringBuffer arg2) throws SkipIndividualException { String t = null; StringBuffer allTextValue = new StringBuffer(); // collecting data property statements List<DataPropertyStatement> dataPropertyStatements = ind.getDataPropertyStatements(); if (dataPropertyStatements != null) { Iterator<DataPropertyStatement> dataPropertyStmtIter = dataPropertyStatements.iterator(); while (dataPropertyStmtIter.hasNext()) { DataPropertyStatement dataPropertyStmt = dataPropertyStmtIter.next(); // we don't want label to be added to alltext if (RDFS.label.getURI().equals(dataPropertyStmt.getDatapropURI())) { continue; } allTextValue.append(" "); allTextValue.append(((t = dataPropertyStmt.getData()) == null) ? "" : t); } } try { String stripped = Jsoup.parse(allTextValue.toString()).text(); allTextValue.setLength(0); allTextValue.append(stripped); } catch (Exception e) { log.debug("Could not strip HTML during search indexing. ", e); } String alltext = allTextValue.toString(); doc.addField(multiSiteTerm.alltext, alltext); }