Merge branch 'maint-rel-1.6' into develop
This commit is contained in:
commit
0170b31b13
8 changed files with 320 additions and 41 deletions
|
@ -11,12 +11,15 @@ CONSTRUCT {
|
|||
_:address v:region ?addressState .
|
||||
_:address v:postalCode ?addressPostalCode .
|
||||
_:address v:country ?addressCountry .
|
||||
_:address <http://purl.obolibrary.org/obo/RO_0001025> ?location .
|
||||
?location <http://purl.obolibrary.org/obo/RO_0001015> _:address .
|
||||
} WHERE {
|
||||
?s vivo:mailingAddress ?address .
|
||||
OPTIONAL { ?address vivo:addressCity ?addressCity }
|
||||
OPTIONAL { ?address vivo:addressState ?addressState }
|
||||
OPTIONAL { ?address vivo:addressPostalCode ?addressPostalCode }
|
||||
OPTIONAL { ?address vivo:addressCountry ?addressCountry }
|
||||
OPTIONAL { ?address vivo:hasGeographicLocation ?location }
|
||||
?s arg:ARG_2000028 ?vcard .
|
||||
OPTIONAL {
|
||||
?address vivo:address1 ?address1 .
|
||||
|
|
|
@ -17,6 +17,7 @@ CONSTRUCT {
|
|||
?s vivo:faxNumber ?faxNumber .
|
||||
?s vivo:mailingAddress ?address .
|
||||
?address ?addressP ?addressO .
|
||||
?addressS ?addressQ ?address .
|
||||
?s vivo:webpage ?webpage .
|
||||
?webpage ?webpageP ?webpageO .
|
||||
} WHERE {
|
||||
|
@ -58,6 +59,10 @@ CONSTRUCT {
|
|||
?s vivo:mailingAddress ?address .
|
||||
?address ?addressP ?addressO
|
||||
}
|
||||
UNION {
|
||||
?s vivo:mailingAddress ?address .
|
||||
?addressS ?addressQ ?address
|
||||
}
|
||||
UNION {
|
||||
?s vivo:webpage ?webpage
|
||||
}
|
||||
|
|
|
@ -296,36 +296,6 @@
|
|||
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000120"/>
|
||||
</owl:Class>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- http://purl.obolibrary.org/obo/ERO_0000715 -->
|
||||
|
||||
<owl:Class rdf:about="http://purl.obolibrary.org/obo/ERO_0000715">
|
||||
|
||||
<rdfs:subClassOf rdf:resource="http://purl.obolibrary.org/obo/ERO_0000007"/>
|
||||
<obo:IAO_0000115 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">A technique used for identification, assessment, and prioritization of risks followed by coordinated and economical application of resources to minimize, monitor, and control the probability and/or impact of unfortunate events or to maximize the realization of opportunities.</obo:IAO_0000115>
|
||||
<obo:IAO_0000117 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">PERSON: Nicole Vasilevsky</obo:IAO_0000117>
|
||||
<obo:IAO_0000119 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">http://en.wikipedia.org/wiki/Risk_management</obo:IAO_0000119>
|
||||
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000123"/>
|
||||
</owl:Class>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- http://purl.obolibrary.org/obo/ERO_0000742 -->
|
||||
|
||||
<owl:Class rdf:about="http://purl.obolibrary.org/obo/ERO_0000742">
|
||||
|
||||
<rdfs:subClassOf rdf:resource="http://purl.obolibrary.org/obo/ERO_0000007"/>
|
||||
<obo:IAO_0000115 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">A technique designed for the collection of clinical data in electronic format for use mainly in human clinical trials.</obo:IAO_0000115>
|
||||
<obo:IAO_0000112 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Electronic health records.</obo:IAO_0000112>
|
||||
<obo:IAO_0000117 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">PERSON: Nicole Vasilevsky</obo:IAO_0000117>
|
||||
<obo:IAO_0000118 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">clinical database development</obo:IAO_0000118>
|
||||
<obo:IAO_0000119 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">http://en.wikipedia.org/wiki/Electronic_data_capture</obo:IAO_0000119>
|
||||
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000120"/>
|
||||
</owl:Class>
|
||||
|
||||
|
||||
<owl:Class rdf:about="http://purl.obolibrary.org/obo/ERO_0001245">
|
||||
|
|
|
@ -1774,9 +1774,6 @@ vivo:hasGoverningAuthority
|
|||
vitro:selectFromExistingAnnot
|
||||
"true"^^xsd:boolean .
|
||||
|
||||
obo:ERO_0000715
|
||||
rdfs:label "Risk Management"@en-US .
|
||||
|
||||
vcard:additionalName
|
||||
rdfs:label "additional name"@en-US .
|
||||
|
||||
|
@ -2798,7 +2795,11 @@ vivo:GraduateAdvisingRelationship
|
|||
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> .
|
||||
|
||||
obo:RO_0000052
|
||||
rdfs:label "inheres in"@en-US .
|
||||
rdfs:label "inheres in"@en-US ;
|
||||
vitro:hiddenFromDisplayBelowRoleLevelAnnot
|
||||
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ;
|
||||
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
|
||||
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> .
|
||||
|
||||
obo:OBI_0000299
|
||||
rdfs:label "has specified output"@en-US .
|
||||
|
@ -5568,9 +5569,6 @@ geo:countryAreaUnit
|
|||
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
|
||||
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> .
|
||||
|
||||
obo:ERO_0000742
|
||||
rdfs:label "Research Electronic Datacapture"@en-US .
|
||||
|
||||
vcard:geo
|
||||
rdfs:label "geo"@en-US .
|
||||
|
||||
|
@ -6053,7 +6051,11 @@ obo:RO_0001018
|
|||
rdfs:label "contained in"@en-US .
|
||||
|
||||
obo:ERO_0000033
|
||||
rdfs:label "has expertise"@en-US .
|
||||
rdfs:label "has expertise in technique"@en-US ;
|
||||
vitro:selectFromExistingAnnot
|
||||
"true"^^xsd:boolean ;
|
||||
vitro:offerCreateNewOptionAnnot
|
||||
"true"^^xsd:boolean .
|
||||
|
||||
bibo:peerReviewed
|
||||
rdfs:label "peer reviewed"@en-US .
|
||||
|
|
|
@ -0,0 +1,298 @@
|
|||
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||
|
||||
package edu.cornell.mannlib.vitro.webapp.search.solr;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.solr.common.SolrInputDocument;
|
||||
|
||||
import com.hp.hpl.jena.query.Dataset;
|
||||
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.RDFNode;
|
||||
import com.hp.hpl.jena.rdf.model.Resource;
|
||||
import com.hp.hpl.jena.rdf.model.ResourceFactory;
|
||||
import com.hp.hpl.jena.shared.Lock;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
|
||||
import edu.cornell.mannlib.vitro.webapp.search.VitroSearchTermNames;
|
||||
import edu.cornell.mannlib.vitro.webapp.search.solr.documentBuilding.DocumentModifier;
|
||||
|
||||
|
||||
public class CalculateParameters implements DocumentModifier {
|
||||
|
||||
private boolean shutdown = false;
|
||||
private Dataset dataset;
|
||||
// public static int totalInd=1;
|
||||
|
||||
private static final String prefix = "prefix owl: <http://www.w3.org/2002/07/owl#> "
|
||||
+ " prefix vitroDisplay: <http://vitro.mannlib.cornell.edu/ontologies/display/1.1#> "
|
||||
+ " prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "
|
||||
+ " prefix core: <http://vivoweb.org/ontology/core#> "
|
||||
+ " prefix foaf: <http://xmlns.com/foaf/0.1/> "
|
||||
+ " prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> "
|
||||
+ " prefix localNav: <http://vitro.mannlib.cornell.edu/ns/localnav#> "
|
||||
+ " prefix obo: <http://purl.obolibrary.org/obo/> "
|
||||
+ " prefix bibo: <http://purl.org/ontology/bibo/> ";
|
||||
|
||||
private static final String betaQuery = prefix + " SELECT count(distinct ?inLinks) " +
|
||||
" WHERE { " +
|
||||
" ?uri rdf:type owl:Thing . " +
|
||||
" ?inLinks ?prop ?uri . " +
|
||||
" } ";
|
||||
|
||||
private static final String totalCountQuery = prefix + " SELECT count(distinct ?ind) " +
|
||||
" WHERE { " +
|
||||
" ?ind rdf:type owl:Thing . " +
|
||||
" } ";
|
||||
|
||||
private static Log log = LogFactory.getLog(CalculateParameters.class);
|
||||
|
||||
public CalculateParameters(Dataset dataset){
|
||||
this.dataset =dataset;
|
||||
// new Thread(new TotalInd(this.dataset,totalCountQuery)).start();
|
||||
}
|
||||
|
||||
public CalculateParameters(){
|
||||
super();
|
||||
}
|
||||
|
||||
public float calculateBeta(String uri){
|
||||
float beta=0;
|
||||
int Conn=0;
|
||||
Query query;
|
||||
QuerySolutionMap initialBinding = new QuerySolutionMap();
|
||||
QuerySolution soln = null;
|
||||
Resource uriResource = ResourceFactory.createResource(uri);
|
||||
initialBinding.add("uri", uriResource);
|
||||
dataset.getLock().enterCriticalSection(Lock.READ);
|
||||
QueryExecution qexec=null;
|
||||
try{
|
||||
query = QueryFactory.create(betaQuery,Syntax.syntaxARQ);
|
||||
qexec = QueryExecutionFactory.create(query,dataset,initialBinding);
|
||||
ResultSet results = qexec.execSelect();
|
||||
List<String> resultVars = results.getResultVars();
|
||||
if(resultVars!=null && resultVars.size()!=0){
|
||||
soln = results.next();
|
||||
Conn = Integer.parseInt(soln.getLiteral(resultVars.get(0)).getLexicalForm());
|
||||
}
|
||||
}catch(Throwable t){
|
||||
if( ! shutdown )
|
||||
log.error(t,t);
|
||||
}finally{
|
||||
if( qexec != null )
|
||||
qexec.close();
|
||||
dataset.getLock().leaveCriticalSection();
|
||||
}
|
||||
|
||||
beta = (float)Conn;
|
||||
//beta *= 100;
|
||||
beta += 1;
|
||||
|
||||
// sigmoid function to keep beta between 0 to 1;
|
||||
|
||||
beta = (float) (1 / ( 1 + Math.pow(Math.E,(-beta))));
|
||||
|
||||
if(beta > 1)
|
||||
log.info("Beta higher than 1 : " + beta);
|
||||
else if(beta <= 0)
|
||||
log.info("Beta lower < = 0 : " + beta);
|
||||
return beta;
|
||||
}
|
||||
|
||||
|
||||
public String[] getAdjacentNodes(String uri){
|
||||
|
||||
List<String> queryList = new ArrayList<String>();
|
||||
Set<String> adjacentNodes = new HashSet<String>();
|
||||
Set<String> coauthorNames = new HashSet<String>();
|
||||
String[] info = new String[]{"",""};
|
||||
StringBuffer adjacentNodesConcat = new StringBuffer();
|
||||
StringBuffer coauthorBuff = new StringBuffer();
|
||||
adjacentNodesConcat.append("");
|
||||
coauthorBuff.append("");
|
||||
|
||||
queryList.add(prefix +
|
||||
" SELECT ?adjobj (str(?adjobjLabel) as ?coauthor) " +
|
||||
" WHERE { " +
|
||||
" ?uri rdf:type <http://xmlns.com/foaf/0.1/Person> . " +
|
||||
" ?uri ?prop ?obj . " +
|
||||
" ?obj rdf:type <http://vivoweb.org/ontology/core#Relationship> . " +
|
||||
" ?obj ?prop2 ?obj2 . " +
|
||||
" ?obj2 rdf:type obo:IAO_0000030 . " +
|
||||
" ?obj2 ?prop3 ?obj3 . " +
|
||||
" ?obj3 rdf:type <http://vivoweb.org/ontology/core#Relationship> . " +
|
||||
" ?obj3 ?prop4 ?adjobj . " +
|
||||
" ?adjobj rdfs:label ?adjobjLabel . " +
|
||||
" ?adjobj rdf:type <http://xmlns.com/foaf/0.1/Person> . " +
|
||||
|
||||
" FILTER (?prop !=rdf:type) . " +
|
||||
" FILTER (?prop2!=rdf:type) . " +
|
||||
" FILTER (?prop3!=rdf:type) . " +
|
||||
" FILTER (?prop4!=rdf:type) . " +
|
||||
" FILTER (?adjobj != ?uri) . " +
|
||||
"}");
|
||||
|
||||
queryList.add(prefix +
|
||||
" SELECT ?adjobj " +
|
||||
" WHERE{ " +
|
||||
|
||||
" ?uri rdf:type foaf:Agent . " +
|
||||
" ?uri ?prop ?obj . " +
|
||||
" ?obj ?prop2 ?adjobj . " +
|
||||
|
||||
|
||||
" FILTER (?prop !=rdf:type) . " +
|
||||
" FILTER isURI(?obj) . " +
|
||||
|
||||
" FILTER (?prop2!=rdf:type) . " +
|
||||
" FILTER (?adjobj != ?uri) . " +
|
||||
" FILTER isURI(?adjobj) . " +
|
||||
|
||||
" { ?adjobj rdf:type <http://xmlns.com/foaf/0.1/Organization> . } " +
|
||||
" UNION " +
|
||||
" { ?adjobj rdf:type <http://xmlns.com/foaf/0.1/Person> . } " +
|
||||
" UNION " +
|
||||
" { ?adjobj rdf:type obo:IAO_0000030 . } " +
|
||||
" UNION " +
|
||||
" { ?adjobj rdf:type <http://vivoweb.org/ontology/core#Location> . } ." +
|
||||
"}");
|
||||
|
||||
Query query;
|
||||
|
||||
QuerySolution soln;
|
||||
QuerySolutionMap initialBinding = new QuerySolutionMap();
|
||||
Resource uriResource = ResourceFactory.createResource(uri);
|
||||
|
||||
initialBinding.add("uri", uriResource);
|
||||
|
||||
Iterator<String> queryItr = queryList.iterator();
|
||||
|
||||
dataset.getLock().enterCriticalSection(Lock.READ);
|
||||
Resource adjacentIndividual = null;
|
||||
RDFNode coauthor = null;
|
||||
try{
|
||||
while(queryItr.hasNext()){
|
||||
/*if(!isPerson){
|
||||
queryItr.next(); // we don't want first query to execute if the ind is not a person.
|
||||
}*/
|
||||
query = QueryFactory.create(queryItr.next(),Syntax.syntaxARQ);
|
||||
QueryExecution qexec = QueryExecutionFactory.create(query,dataset,initialBinding);
|
||||
try{
|
||||
ResultSet results = qexec.execSelect();
|
||||
while(results.hasNext()){
|
||||
soln = results.nextSolution();
|
||||
|
||||
adjacentIndividual = (Resource)soln.get("adjobj");
|
||||
if(adjacentIndividual!=null){
|
||||
adjacentNodes.add(adjacentIndividual.getURI());
|
||||
}
|
||||
|
||||
coauthor = soln.get("coauthor");
|
||||
if(coauthor!=null){
|
||||
coauthorNames.add(" co-authors " + coauthor.toString() + " co-authors ");
|
||||
}
|
||||
}
|
||||
}catch(Exception e){
|
||||
if( ! shutdown )
|
||||
log.error("Error found in getAdjacentNodes method of SearchQueryHandler");
|
||||
}finally{
|
||||
qexec.close();
|
||||
}
|
||||
}
|
||||
queryList = null;
|
||||
Iterator<String> itr = adjacentNodes.iterator();
|
||||
while(itr.hasNext()){
|
||||
adjacentNodesConcat.append(itr.next() + " ");
|
||||
}
|
||||
|
||||
info[0] = adjacentNodesConcat.toString();
|
||||
|
||||
itr = coauthorNames.iterator();
|
||||
while(itr.hasNext()){
|
||||
coauthorBuff.append(itr.next());
|
||||
}
|
||||
|
||||
info[1] = coauthorBuff.toString();
|
||||
|
||||
}
|
||||
catch(Throwable t){
|
||||
if( ! shutdown )
|
||||
log.error(t,t);
|
||||
}finally{
|
||||
dataset.getLock().leaveCriticalSection();
|
||||
adjacentNodes = null;
|
||||
adjacentNodesConcat = null;
|
||||
coauthorBuff = null;
|
||||
}
|
||||
return info;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void modifyDocument(Individual individual, SolrInputDocument doc, StringBuffer addUri) {
|
||||
// TODO Auto-generated method stub
|
||||
// calculate beta value.
|
||||
log.debug("Parameter calculation starts..");
|
||||
float beta = calculateBeta(individual.getURI());
|
||||
doc.addField(VitroSearchTermNames.BETA, beta);
|
||||
doc.setDocumentBoost(beta + doc.getDocumentBoost() );
|
||||
log.debug("Parameter calculation is done");
|
||||
}
|
||||
|
||||
|
||||
public void shutdown(){
|
||||
shutdown=true;
|
||||
}
|
||||
}
|
||||
|
||||
class TotalInd implements Runnable{
|
||||
private Dataset dataset;
|
||||
private String totalCountQuery;
|
||||
private static Log log = LogFactory.getLog(TotalInd.class);
|
||||
|
||||
public TotalInd(Dataset dataset,String totalCountQuery){
|
||||
this.dataset = dataset;
|
||||
this.totalCountQuery = totalCountQuery;
|
||||
|
||||
}
|
||||
public void run(){
|
||||
int totalInd=0;
|
||||
Query query;
|
||||
QuerySolution soln = null;
|
||||
dataset.getLock().enterCriticalSection(Lock.READ);
|
||||
QueryExecution qexec = null;
|
||||
|
||||
try{
|
||||
query = QueryFactory.create(totalCountQuery,Syntax.syntaxARQ);
|
||||
qexec = QueryExecutionFactory.create(query,dataset);
|
||||
ResultSet results = qexec.execSelect();
|
||||
List<String> resultVars = results.getResultVars();
|
||||
|
||||
if(resultVars!=null && resultVars.size()!=0){
|
||||
soln = results.next();
|
||||
totalInd = Integer.parseInt(soln.getLiteral(resultVars.get(0)).getLexicalForm());
|
||||
}
|
||||
//CalculateParameters.totalInd = totalInd;
|
||||
//log.info("Total number of individuals in the system are : " + CalculateParameters.totalInd);
|
||||
}catch(Throwable t){
|
||||
log.error(t,t);
|
||||
}finally{
|
||||
if( qexec != null )
|
||||
qexec.close();
|
||||
dataset.getLock().leaveCriticalSection();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -13,7 +13,6 @@ import com.hp.hpl.jena.query.DatasetFactory;
|
|||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceFactory;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.RDFServiceUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.search.solr.documentBuilding.CalculateParameters;
|
||||
import edu.cornell.mannlib.vitro.webapp.search.solr.documentBuilding.DocumentModifier;
|
||||
import edu.cornell.mannlib.vitro.webapp.search.solr.documentBuilding.ExcludeBasedOnNamespace;
|
||||
import edu.cornell.mannlib.vitro.webapp.search.solr.documentBuilding.SearchIndexExcluder;
|
||||
|
|
|
@ -48,7 +48,7 @@ public class VivoInformationResourceContextNodeFields extends ContextNodeFields{
|
|||
+ "?uri core:relatedBy ?a . "
|
||||
+ "?a rdf:type core:Authorship ."
|
||||
+ "?a core:relates ?b ."
|
||||
+ "?b rdf:type foaf:Person ."
|
||||
+ "?b rdf:type foaf:Agent ."
|
||||
+ "?b rdfs:label ?ContextNodeProperty .}");
|
||||
|
||||
/* features */
|
||||
|
@ -69,7 +69,7 @@ public class VivoInformationResourceContextNodeFields extends ContextNodeFields{
|
|||
+ "?uri core:relatedBy ?e . "
|
||||
+ "?e rdf:type core:Editorship ."
|
||||
+ "?e core:relates ?i ."
|
||||
+ "?i rdf:type foaf:Person ."
|
||||
+ "?i rdf:type foaf:Agent ."
|
||||
+ "?i rdfs:label ?ContextNodeProperty ."
|
||||
+ "}");
|
||||
|
||||
|
|
2
utilities/languageSupport/i18nChecker/check
Executable file
2
utilities/languageSupport/i18nChecker/check
Executable file
|
@ -0,0 +1,2 @@
|
|||
ruby i18nChecker.rb '/Library/Tomcat/webapps/vivo/i18n/*.properties' complete
|
||||
ruby i18nChecker.rb '/Library/Tomcat/webapps/vivo/themes/wilma/i18n/*.properties' complete
|
Loading…
Add table
Reference in a new issue