Merge pull request #124 from awoods/sprint-search

Update sprint-search to current develop branch
This commit is contained in:
hudajkhan 2019-04-03 12:44:05 -04:00 committed by GitHub
commit 11eaa119dd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
43 changed files with 224 additions and 288 deletions

View file

@ -1,5 +1,7 @@
# VIVO: Connect, Share, Discover
[![Build Status](https://travis-ci.org/vivo-project/VIVO.png?branch=develop)](https://travis-ci.org/vivo-project/VIVO)
VIVO is an open source semantic web tool for research discovery -- finding people and the research they do.
VIVO supports editing, searching, browsing and visualizing research activity in order to discover people, programs,

View file

@ -58,12 +58,12 @@ public class AgrovocService implements ExternalConceptService {
protected final String dbpedia_endpoint = " http://dbpedia.org/sparql";
// URL to get all the information for a concept
protected final String conceptSkosMosBase = "http://artemide.art.uniroma2.it:8081/skosmos/rest/v1/";
protected final String conceptSkosMosBase = "http://agrovoc.uniroma2.it/agrovoc/rest/v1/";
protected final String conceptsSkosMosSearch = conceptSkosMosBase + "search?";
protected final String conceptSkosMosURL = conceptSkosMosBase + "data?";
@Override
public List<Concept> getConcepts(String term) throws Exception {
List<Concept> conceptList = new ArrayList<Concept>();
List<Concept> conceptList = new ArrayList<>();
//For the RDF webservices mechanism, utilize the following
/*
@ -86,7 +86,7 @@ public class AgrovocService implements ExternalConceptService {
return conceptList;
int conceptCounter = 0;
HashSet<String> encounteredURI = new HashSet<String>();
HashSet<String> encounteredURI = new HashSet<>();
// Loop through each of these URIs and load using the SKOSManager
for (String conceptUri : conceptUris) {
@ -185,7 +185,7 @@ public class AgrovocService implements ExternalConceptService {
public List<Concept> getConceptsByURIWithSparql(String uri)
throws Exception {
// deprecating this method...just return an empty list
List<Concept> conceptList = new ArrayList<Concept>();
List<Concept> conceptList = new ArrayList<>();
return conceptList;
}
@ -227,7 +227,7 @@ public class AgrovocService implements ExternalConceptService {
// When utilizing the getTermExpansion method, will get a list of URIs back
// and not just one URI
protected List<String> getConceptURIsListFromRDF(String rdf) {
List<String> conceptUris = new ArrayList<String>();
List<String> conceptUris = new ArrayList<>();
try {
Document doc = XMLUtils.parse(rdf);
NodeList nodes = doc.getElementsByTagName("skos:Concept");
@ -262,21 +262,21 @@ public class AgrovocService implements ExternalConceptService {
+ "> rdfs:comment ?description . \n"
+ "FILTER (LANG(?description)='en' ) \n" + "}";
// System.out.println(qs);
List<HashMap> resultList = new ArrayList<HashMap>();
List<HashMap> resultList = new ArrayList<>();
QueryExecution qexec = null;
try {
Query query = QueryFactory.create(qs);
qexec = QueryExecutionFactory.sparqlService(this.dbpedia_endpoint, query);
qexec.setTimeout(5000, TimeUnit.MILLISECONDS);
resultList = new ArrayList<HashMap>();
resultList = new ArrayList<>();
ResultSet resultSet = qexec.execSelect();
int resultSetSize = 0;
while (resultSet.hasNext()) {
resultSetSize++;
QuerySolution solution = resultSet.nextSolution();
Iterator varnames = solution.varNames();
HashMap<String, String> hm = new HashMap<String, String>();
HashMap<String, String> hm = new HashMap<>();
while (varnames.hasNext()) {
String name = (String) varnames.next();
RDFNode rdfnode = solution.get(name);
@ -374,7 +374,7 @@ public class AgrovocService implements ExternalConceptService {
//JSON-LD array
private List<String> getConceptURIsListFromSkosMosResult(String results) {
List<String> conceptURIs = new ArrayList<String>();
List<String> conceptURIs = new ArrayList<>();
ObjectNode json = (ObjectNode) JacksonUtils.parseJson(results);
//Format should be: { ..."results":["uri":uri...]
if (json.has("results")) {

View file

@ -31,8 +31,7 @@ public class GeoFocusMapLocations extends AbstractAjaxResponder {
+ "PREFIX core: <http://vivoweb.org/ontology/core#> \n"
+ "PREFIX foaf: <http://xmlns.com/foaf/0.1/> \n"
+ "PREFIX vivoc: <http://vivo.library.cornell.edu/ns/0.1#> \n"
+ "PREFIX afn: <http://jena.apache.org/ARQ/function#> "
+ "SELECT DISTINCT ?label ?location (afn:localname(?location) AS ?localName) (COUNT(DISTINCT ?person) AS ?count) \n"
+ "SELECT DISTINCT ?label ?location (REPLACE(STR(?location),\"^.*(#)(.*)$\", \"$2\") AS ?localName) (COUNT(DISTINCT ?person) AS ?count) \n"
+ "WHERE { { \n"
+ " ?location rdf:type core:GeographicRegion . \n"
+ " ?location rdfs:label ?label . \n"

View file

@ -69,7 +69,6 @@ public class ManageGrantsForIndividualController extends FreemarkerHttpServlet {
+ "PREFIX core: <http://vivoweb.org/ontology/core#> \n"
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n"
+ "PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> \n"
+ "PREFIX afn: <http://jena.apache.org/ARQ/function#> \n"
+ "SELECT DISTINCT ?subclass ?role (str(?label2) as ?label) ?activity ?hideThis WHERE { \n"
+ " ?subject <http://purl.obolibrary.org/obo/RO_0000053> ?role . \n"
+ " ?role a core:ResearcherRole . \n"

View file

@ -69,7 +69,6 @@ public class ManagePeopleForOrganizationController extends FreemarkerHttpServlet
+ "PREFIX core: <http://vivoweb.org/ontology/core#> \n"
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n"
+ "PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> \n"
+ "PREFIX afn: <http://jena.apache.org/ARQ/function#> \n"
+ "PREFIX foaf: <http://xmlns.com/foaf/0.1/> \n"
+ "SELECT DISTINCT ?subclass ?position ?positionLabel (str(?label) as ?name) ?person ?hideThis WHERE { \n"
+ " ?subject core:relatedBy ?position . \n"

View file

@ -69,7 +69,6 @@ public class ManagePublicationsForIndividualController extends FreemarkerHttpSer
+ "PREFIX core: <http://vivoweb.org/ontology/core#> \n"
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n"
+ "PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> \n"
+ "PREFIX afn: <http://jena.apache.org/ARQ/function#> \n"
+ "SELECT DISTINCT ?subclass ?authorship (str(?label) as ?title) ?pub ?hideThis WHERE { \n"
+ " ?subject core:relatedBy ?authorship . \n"
+ " ?authorship a core:Authorship . \n"

View file

@ -346,7 +346,6 @@ public class AddAuthorsToInformationResourceGenerator extends VivoBaseGenerator
private static String AUTHORSHIPS_MODEL = " \n"
+ "PREFIX core: <http://vivoweb.org/ontology/core#>\n"
+ "PREFIX afn: <http://jena.apache.org/ARQ/function#>\n"
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n"
+ "PREFIX foaf: <http://xmlns.com/foaf/0.1/>\n"
+ "PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>\n"
@ -412,11 +411,10 @@ public class AddAuthorsToInformationResourceGenerator extends VivoBaseGenerator
private static String AUTHORSHIPS_QUERY = " \n"
+ "PREFIX core: <http://vivoweb.org/ontology/core#> \n"
+ "PREFIX afn: <http://jena.apache.org/ARQ/function#> \n"
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n"
+ "PREFIX foaf: <http://xmlns.com/foaf/0.1/> \n"
+ "PREFIX vcard: <http://www.w3.org/2006/vcard/ns#> \n"
+ "SELECT ?authorshipURI (afn:localname(?authorshipURI) AS ?authorshipName) ?authorURI ?authorName ?rank \n"
+ "SELECT ?authorshipURI (REPLACE(STR(?authorshipURI),\"^.*(#)(.*)$\", \"$2\") AS ?authorshipName) ?authorURI ?authorName ?rank \n"
+ "WHERE { { \n"
+ " ?subject core:relatedBy ?authorshipURI . \n"
+ " ?authorshipURI a core:Authorship . \n"

View file

@ -309,7 +309,6 @@ public class AddEditorsToInformationResourceGenerator extends VivoBaseGenerator
private static String EDITORSHIPS_MODEL = ""
+ "PREFIX core: <http://vivoweb.org/ontology/core#>\n"
+ "PREFIX afn: <http://jena.apache.org/ARQ/function#>\n"
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n"
+ "PREFIX foaf: <http://xmlns.com/foaf/0.1/>\n"
+ "CONSTRUCT\n"
@ -347,10 +346,9 @@ public class AddEditorsToInformationResourceGenerator extends VivoBaseGenerator
private static String EDITORSHIPS_QUERY = ""
+ "PREFIX core: <http://vivoweb.org/ontology/core#> \n"
+ "PREFIX afn: <http://jena.apache.org/ARQ/function#> \n"
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n"
+ "PREFIX foaf: <http://xmlns.com/foaf/0.1/> \n"
+ "SELECT ?editorshipURI (afn:localname(?editorshipURI) AS ?editorshipName) ?editorURI ?editorName ?rank \n"
+ "SELECT ?editorshipURI (REPLACE(STR(?editorshipURI),\"^.*(#)(.*)$\", \"$2\") AS ?editorshipName) ?editorURI ?editorName ?rank \n"
+ "WHERE { \n"
+ "?subject core:relatedBy ?editorshipURI . \n"
+ "?editorshipURI a core:Editorship . \n"

View file

@ -41,7 +41,6 @@ public class QueryConstants {
put("vivo", "http://vivo.library.cornell.edu/ns/0.1#");
put("geo", "http://aims.fao.org/aos/geopolitical.owl#");
put("public", "http://vitro.mannlib.cornell.edu/ns/vitro/public#");
put("afn", "http://jena.apache.org/ARQ/function#");
put("vivosocnet", "http://vivo.cns.iu.edu/ns/#");
put("obo", "http://purl.obolibrary.org/obo/");
put("vcard", "http://www.w3.org/2006/vcard/ns#");

View file

@ -8,6 +8,7 @@ import java.util.Map;
import edu.cornell.mannlib.vitro.webapp.visualization.collaborationutils.CoAuthorshipData;
import edu.cornell.mannlib.vitro.webapp.visualization.collaborationutils.CoInvestigationData;
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.CollaborationDataViewHelper;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.jena.query.Dataset;
@ -74,8 +75,15 @@ public class PersonLevelRequestHandler implements VisualizationRequestHandler {
String visMode = vitroRequest.getParameter(
VisualizationFrameworkConstants.VIS_MODE_KEY);
if (!StringUtils.isEmpty(egoURI)) {
return generateStandardVisualizationForPersonLevelVis(vitroRequest,
log, dataset, egoURI, visMode);
} else {
return UtilityFunctions.handleMalformedParameters(
"Visualization Query Error",
"Inappropriate query parameters were submitted.",
vitroRequest);
}
}
@ -84,12 +92,22 @@ public class PersonLevelRequestHandler implements VisualizationRequestHandler {
Map<String, String> parameters, VitroRequest vitroRequest, Log log,
Dataset dataset) throws MalformedQueryParametersException {
String egoURI = parameters.get(VisualizationFrameworkConstants.INDIVIDUAL_URI_KEY);
String visMode = parameters.get(VisualizationFrameworkConstants.VIS_MODE_KEY);
if (!StringUtils.isEmpty(egoURI)) {
return generateStandardVisualizationForPersonLevelVis(
vitroRequest,
log,
dataset,
parameters.get(VisualizationFrameworkConstants.INDIVIDUAL_URI_KEY),
parameters.get(VisualizationFrameworkConstants.VIS_MODE_KEY));
egoURI,
visMode);
} else {
return UtilityFunctions.handleMalformedParameters(
"Visualization Query Error",
"Inappropriate query parameters were submitted.",
vitroRequest);
}
}
private ResponseValues generateStandardVisualizationForPersonLevelVis(

View file

@ -7,6 +7,11 @@
# Save a copy of this file as runtime.properties in your VIVO home directory,
# and edit the properties as needed for your installation.
#
# For more information on specific properties, see the configuration reference
# or installation options section of the technical documentation for the
# version of VIVO you are running:
# https://wiki.duraspace.org/display/VIVO/VIVO+Technical+Documentation
#
# -----------------------------------------------------------------------------
@ -295,8 +300,6 @@ VitroConnection.DataSource.validationQuery = SELECT 1
#
# When the following flag is set to enabled, the VIVO home page displays a
# global map highlighting the geographical focus of foaf:person individuals.
# For information on the maps, refer to this wiki page:
# https://wiki.duraspace.org/x/c4XVAw
#
#homePage.geoFocusMaps=enabled
@ -307,9 +310,6 @@ VitroConnection.DataSource.validationQuery = SELECT 1
# Implementing this feature requires an installation to develop a web service
# that captures images of web pages or to use an existing service outside of VIVO.
#
# For more information on implementing multiple profile pages, refer to this
# wiki page: https://wiki.duraspace.org/x/doXVAw
#
#multiViews.profilePageTypes=enabled
@ -317,9 +317,6 @@ VitroConnection.DataSource.validationQuery = SELECT 1
# Tell VIVO to generate HTTP headers on its responses to facilitate caching the
# profile pages that it creates.
#
# For more information, see this wiki page:
# https://wiki.duraspace.org/x/5sQQAg
#
# Developers will likely want to leave caching disabled, since a change to a
# Freemarker template or to a Java class would not cause the page to be
# considered stale.

View file

@ -23,6 +23,7 @@
searchIndex:documentBuilding.DocumentModifier ,
searchIndex:extensions.LabelsAcrossContextNodes ;
rdfs:label "Labels across relatedBy/relates" ;
:hasTypeRestriction "http://vivoweb.org/ontology/core#Relationship" ;
:hasIncomingProperty "http://vivoweb.org/ontology/core#relatedBy" ;
:hasOutgoingProperty "http://vivoweb.org/ontology/core#relates" .
@ -150,4 +151,3 @@
?emailHolder vcard:email ?email .
}
""" .

View file

@ -1911,13 +1911,17 @@ there is a measurement process p that has specified output m, a measurement datu
<!-- http://vivoweb.org/ontology/core#hasCollaborator -->
<owl:ObjectProperty rdf:about="http://vivoweb.org/ontology/core#hasCollaborator">
<rdfs:label xml:lang="en">has collaborator</rdfs:label>
<rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#SymmetricProperty"/>
<rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
<rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
<rdfs:label xml:lang="en">has collaborator</rdfs:label>
<obo:IAO_0000112 xml:lang="en">Fran has collaborator Jim, they work together regularly.</obo:IAO_0000112>
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000120"/>
<obo:IAO_0000115 xml:lang="en">Two agents are collaborators if they work together to produce common results.</obo:IAO_0000115>
<obo:IAO_0000117 xml:lang="en">PERSON: Michael Conlon</obo:IAO_0000117>
<obo:IAO_0000119 xml:lang="en">Merriam Webster (https://www.merriam-webster.com/dictionary/collaborator)</obo:IAO_0000119>
</owl:ObjectProperty>
<!-- http://vivoweb.org/ontology/core#hasEquipment -->
<owl:ObjectProperty rdf:about="http://vivoweb.org/ontology/core#hasEquipment">

View file

@ -2,106 +2,106 @@
@prefix cito: <http://purl.org/spar/cito/> .
@prefix c4o: <http://purl.org/spar/c4o/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix event: <http://purl.org/NET/c4dm/event.owl> .
@prefix event: <http://purl.org/NET/c4dm/event.owl#> .
@prefix fabio: <http://purl.org/spar/fabio/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix geo: <http://aims.fao.org/aos/geopolitical.owl> .
@prefix geo: <http://aims.fao.org/aos/geopolitical.owl#> .
@prefix obo: <http://purl.obolibrary.org/obo/> .
@prefix ocrer: <http://purl.org/net/OCRe/research.owl> .
@prefix ocresd: <http://purl.org/net/OCRe/study_design.owl> .
@prefix ocresp: <http://purl.org/net/OCRe/study_protocol.owl> .
@prefix ocrest: <http://purl.org/net/OCRe/statistics.owl> .
@prefix ocrer: <http://purl.org/net/OCRe/research.owl#> .
@prefix ocresd: <http://purl.org/net/OCRe/study_design.owl#> .
@prefix ocresp: <http://purl.org/net/OCRe/study_protocol.owl#> .
@prefix ocrest: <http://purl.org/net/OCRe/statistics.owl#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ro: <http://purl.obolibrary.org/obo/ro.owl> .
@prefix scires: <http://vivoweb.org/ontology/scientific-research> .
@prefix skos: <http://www.w3.org/2004/02/skos/core> .
@prefix ro: <http://purl.obolibrary.org/obo/ro.owl#> .
@prefix scires: <http://vivoweb.org/ontology/scientific-research#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix swo: <http://www.ebi.ac.uk/efo/swo/> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix vcard: <http://www.w3.org/2006/vcard/ns> .
@prefix vcard: <http://www.w3.org/2006/vcard/ns#> .
@prefix vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> .
@prefix vitro-public: <http://vitro.mannlib.cornell.edu/ns/vitro/public#> .
@prefix vivo: <http://vivoweb.org/ontology/core#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
bibo:
<http://purl.org/ontology/bibo/>
rdfs:label "Bibliographic Ontology"@en-US ;
vitro:ontologyPrefixAnnot "bibo" .
skos:
<http://www.w3.org/2004/02/skos/core>
rdfs:label "SKOS (Simple Knowledge Organization System)"@en-US ;
vitro:ontologyPrefixAnnot "skos" .
vivo:
<http://vivoweb.org/ontology/core>
rdfs:label "VIVO Core Ontology"@en-US ;
vitro:ontologyPrefixAnnot "vivo" .
ocrer:
<http://purl.org/net/OCRe/research.owl>
rdfs:label "OCRe Research"@en-US ;
vitro:ontologyPrefixAnnot "ocrer" .
ocresd:
<http://purl.org/net/OCRe/study_design.owl>
rdfs:label "OCRe Study Design"@en-US ;
vitro:ontologyPrefixAnnot "ocresd" .
ocresp:
<http://purl.org/net/OCRe/study_protocol.owl>
rdfs:label "OCRe Study Protocol"@en-US ;
vitro:ontologyPrefixAnnot "ocresp" .
ocrest:
<http://purl.org/net/OCRe/statistics.owl>
rdfs:label "OCRe Statistics"@en-US ;
vitro:ontologyPrefixAnnot "ocresst" .
geo:
<http://aims.fao.org/aos/geopolitical.owl>
rdfs:label "Geopolitical Ontology"@en-US ;
vitro:ontologyPrefixAnnot "geo" .
event:
<http://purl.org/NET/c4dm/event.owl>
rdfs:label "Event Ontology"@en-US ;
vitro:ontologyPrefixAnnot "event" .
obo:
<http://purl.obolibrary.org/obo/>
rdfs:label "OBO Foundry"@en-US ;
vitro:ontologyPrefixAnnot "obo" .
vcard:
<http://www.w3.org/2006/vcard/ns>
rdfs:label "VCard"@en-US ;
vitro:ontologyPrefixAnnot "vcard" .
foaf:
<http://xmlns.com/foaf/0.1/>
rdfs:label "FOAF (Friend of a Friend)"@en-US ;
vitro:ontologyPrefixAnnot "foaf" .
scires:
<http://vivoweb.org/ontology/scientific-research>
rdfs:label "VIVO Scientific Research Ontology"@en-US ;
vitro:ontologyPrefixAnnot "scires" .
fabio:
<http://purl.org/spar/fabio/>
rdfs:label "FaBiO (FRBR-Aligned Bibliographic Ontology)"@en-US ;
vitro:ontologyPrefixAnnot "fabio" .
c4o:
<http://purl.org/spar/c4o/>
rdfs:label "Citation Counting and Context Characterization Ontology"@en-US ;
vitro:ontologyPrefixAnnot "c4o" .
cito:
<http://purl.org/spar/cito/>
rdfs:label "CiTO (Citation Typing Ontology)"@en-US ;
vitro:ontologyPrefixAnnot "cito" .
dcterms:
<http://purl.org/dc/terms/>
rdfs:label "Dublin Core Terms"@en-US ;
vitro:ontologyPrefixAnnot "dcterms" .
vann:
<http://purl.org/vocab/vann/>
rdfs:label "Vocabulary for Annotating Vocabulary Descriptions"@en-US ;
vitro:ontologyPrefixAnnot "vann" .
ro:
<http://purl.obolibrary.org/obo/ro.owl>
rdfs:label "Relations Ontology"@en-US ;
vitro:ontologyPrefixAnnot "ro" .
swo:
<http://www.ebi.ac.uk/efo/swo/>
rdfs:label "Software Ontology"@en-US ;
vitro:ontologyPrefixAnnot "swo" .
@ -1730,7 +1730,9 @@ vivo:outreachOverview
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:publicDescriptionAnnot
"Please enter a single summary narrative of your outreach goals and/or contributions"^^xsd:string .
"Please enter a single summary narrative of your outreach goals and/or contributions"^^xsd:string ;
vitro:editing
"HTML"^^xsd:string .
obo:ERO_0000031
vitro:hiddenFromDisplayBelowRoleLevelAnnot
@ -1912,7 +1914,9 @@ bibo:abstract
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:publicDescriptionAnnot
"A summary of the resource."^^xsd:string .
"A summary of the resource."^^xsd:string ;
vitro:editing
"HTML"^^xsd:string .
vivo:PrincipalInvestigatorRole
vitro:displayLimitAnnot
@ -2141,7 +2145,9 @@ vivo:teachingOverview
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:publicDescriptionAnnot
"Please enter a single narrative summary description of your teaching activities, goals, and/or experience"^^xsd:string .
"Please enter a single narrative summary description of your teaching activities, goals, and/or experience"^^xsd:string ;
vitro:editing
"HTML"^^xsd:string .
vivo:rank
vitro:hiddenFromDisplayBelowRoleLevelAnnot
@ -2268,7 +2274,9 @@ vivo:overview
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:publicDescriptionAnnot
"A short narrative summary to be used as a single descriptive overview statement."^^xsd:string .
"A short narrative summary to be used as a single descriptive overview statement."^^xsd:string ;
vitro:editing
"HTML"^^xsd:string .
vivo:description
vitro:displayLimitAnnot
@ -5405,7 +5413,9 @@ vivo:researchOverview
vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGroupresearch> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> .
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:editing
"HTML"^^xsd:string .
obo:ERO_0000390
vitro:displayLimitAnnot

View file

@ -58,9 +58,9 @@
<goal>run</goal>
</goals>
<configuration>
<tasks>
<target>
<delete dir="${vivo-dir}/rdf" />
</tasks>
</target>
</configuration>
</execution>
</executions>

View file

@ -64,7 +64,7 @@
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>

View file

@ -84,9 +84,9 @@
<goal>run</goal>
</goals>
<configuration>
<tasks>
<target>
<delete dir="${tomcat-dir}/webapps/${project.build.finalName}" />
</tasks>
</target>
</configuration>
</execution>
</executions>

103
pom.xml
View file

@ -151,6 +151,18 @@
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
@ -167,18 +179,6 @@
<additionalparam>${javadoc.opts}</additionalparam>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
@ -202,22 +202,28 @@
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- JDK 8 profile for the Error Prone plugin -->
<id>jdk8</id>
<activation>
<jdk>1.8</jdk>
</activation>
<properties>
<javac.version>9+181-r4173-1</javac.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
<shortRevisionLength>7</shortRevisionLength>
<revisionOnScmFailure>Detached</revisionOnScmFailure>
<fork>true</fork>
<compilerArgs combine.children="append">
<arg>-J-Xbootclasspath/p:${settings.localRepository}/com/google/errorprone/javac/${javac.version}/javac-${javac.version}.jar</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
@ -269,23 +275,36 @@
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerId>javac-with-errorprone</compilerId>
<forceJavacCompilerUse>true</forceJavacCompilerUse>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-javac-errorprone</artifactId>
<version>2.8</version>
</dependency>
<!-- override plexus-compiler-javac-errorprone's dependency on
Error Prone with the latest version -->
<dependency>
<compilerArgs>
<arg>-XDcompilePolicy=simple</arg>
<arg>-Xplugin:ErrorProne</arg>
</compilerArgs>
<annotationProcessorPaths>
<path>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_core</artifactId>
<version>2.1.1</version>
</dependency>
</dependencies>
<version>2.3.2</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
<shortRevisionLength>7</shortRevisionLength>
<revisionOnScmFailure>Detached</revisionOnScmFailure>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@ -314,7 +333,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<version>3.8.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>

View file

@ -6,7 +6,7 @@
<list-view-config>
<query-select>
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
PREFIX afn: &lt;http://jena.apache.org/ARQ/function#&gt;
PREFIX bibo: &lt;http://purl.org/ontology/bibo/&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX owl: &lt;http://www.w3.org/2002/07/owl#&gt;
@ -31,7 +31,7 @@
?adviseeRole a core:AdviseeRole .
?adviseeRole core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship .
LET ( ?localName := afn:localname(?advisingRel) )
LET ( ?localName := REPLACE(STR(?advisingRel),"^.*(#)(.*)$", "$2") )
OPTIONAL {
<precise-subquery>?subject ?property ?adviseeRole .
?adviseeRole a core:AdviseeRole .

View file

@ -6,7 +6,6 @@
<list-view-config>
<query-select>
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
PREFIX afn: &lt;http://jena.apache.org/ARQ/function#&gt;
PREFIX bibo: &lt;http://purl.org/ontology/bibo/&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX owl: &lt;http://www.w3.org/2002/07/owl#&gt;
@ -31,7 +30,7 @@
?advisorRole a core:AdvisorRole .
?advisorRole core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship .
LET ( ?localName := afn:localname(?advisingRel) )
LET ( ?localName := REPLACE(STR(?advisingRel),"^.*(#)(.*)$", "$2") )
OPTIONAL {
<precise-subquery>?subject ?property ?advisorRole .
?advisorRole a core:AdvisorRole .

View file

@ -7,7 +7,7 @@
<query-select>
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX afn: &lt;http://jena.apache.org/ARQ/function#&gt;
SELECT DISTINCT ?dateTimeInterval ?label
?valueStart ?valueStartName
@ -24,7 +24,7 @@
OPTIONAL {
<precise-subquery>?subject ?property ?dateTimeInterval .</precise-subquery>
?dateTimeInterval core:start ?valueStart .
LET (?valueStartName := afn:localname(?valueStart))
LET (?valueStartName := REPLACE(STR(?valueStart),"^.*(#)(.*)$", "$2"))
OPTIONAL {
<precise-subquery>?subject ?property ?dateTimeInterval .
@ -35,13 +35,13 @@
<precise-subquery>?subject ?property ?dateTimeInterval .
?dateTimeInterval core:start ?valueStart .</precise-subquery>
?valueStart core:dateTimePrecision ?dateTimePrecisionStart .
LET (?precisionStart := afn:localname(?dateTimePrecisionStart))
LET (?precisionStart := REPLACE(STR(?dateTimePrecisionStart),"^.*(#)(.*)$", "$2"))
}
}
OPTIONAL {
<precise-subquery>?subject ?property ?dateTimeInterval .</precise-subquery>
?dateTimeInterval core:end ?valueEnd .
LET (?valueEndName := afn:localname(?valueEnd))
LET (?valueEndName := REPLACE(STR(?valueEnd),"^.*(#)(.*)$", "$2"))
OPTIONAL {
<precise-subquery>?subject ?property ?dateTimeInterval .
?dateTimeInterval core:end ?valueEnd .</precise-subquery>
@ -51,7 +51,7 @@
<precise-subquery>?subject ?property ?dateTimeInterval .
?dateTimeInterval core:end ?valueEnd .</precise-subquery>
?valueEnd core:dateTimePrecision ?dateTimePrecisionEnd .
LET (?precisionEnd := afn:localname(?dateTimePrecisionEnd))
LET (?precisionEnd := REPLACE(STR(?dateTimePrecisionEnd),"^.*(#)(.*)$", "$2"))
}
}
OPTIONAL {

View file

@ -7,10 +7,10 @@
<query-select>
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX afn: &lt;http://jena.apache.org/ARQ/function#&gt;
SELECT DISTINCT ?dateTimeValue
(afn:localname(?dateTimePrecision) AS ?precision)
(REPLACE(STR(?dateTimePrecision),"^.*(#)(.*)$", "$2") AS ?precision)
?dateTime
WHERE {
?subject ?property ?dateTimeValue .

View file

@ -7,7 +7,7 @@
<list-view-config>
<query-select>
PREFIX afn: &lt;http://jena.apache.org/ARQ/function#&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
@ -25,7 +25,7 @@
WHERE
{
?subject ?property ?object .
LET (?localName := afn:localname(?object))
LET (?localName := REPLACE(STR(?object), "^.*(#)(.*)$", "$2"))
OPTIONAL {
<precise-subquery>?subject ?property ?object .</precise-subquery>
@ -57,7 +57,7 @@
}
<collated>
FILTER ( afn:namespace(?subclass) != "http://vitro.mannlib.cornell.edu/ns/vitro/0.7#" )
FILTER ( REPLACE(STR(?subclass),"^(.*)(#)(.*)$", "$1$2") != "http://vitro.mannlib.cornell.edu/ns/vitro/0.7#" )
</collated>
# Order by ?type is important, because if the object has more than one mostSpecificType,

View file

@ -7,7 +7,7 @@
<list-view-config>
<query-select>
PREFIX afn: &lt;http://jena.apache.org/ARQ/function#&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
@ -26,7 +26,7 @@
{
?subject ?property ?object .
?object a ?objectType .
LET (?localName := afn:localname(?object))
LET (?localName := REPLACE(STR(?object),"^.*(#)(.*)$", "$2"))
OPTIONAL {
<precise-subquery>?subject ?property ?object .
@ -63,7 +63,7 @@
?object a ?objectType .</precise-subquery>
?object a ?subclass .
}
FILTER ( afn:namespace(?subclass) != "http://vitro.mannlib.cornell.edu/ns/vitro/0.7#" )
FILTER ( REPLACE(STR(?subclass),"^(.*)(#)(.*)$", "$1$2") != "http://vitro.mannlib.cornell.edu/ns/vitro/0.7#" )
</collated>
# Order by ?type is important, because if the object has more than one mostSpecificType,

View file

@ -8,12 +8,12 @@
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX vivo: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;
PREFIX afn: &lt;http://jena.apache.org/ARQ/function#&gt;
SELECT ?concept ?conceptLabel ?conceptName ?vocabularySource ?vocabularySourceName
WHERE {
?subject ?property ?concept .
LET (?conceptName := afn:localname(?concept))
LET (?conceptName := REPLACE(STR(?concept),"^.*(#)(.*)$", "$2"))
OPTIONAL {
<precise-subquery>?subject ?property ?concept .</precise-subquery>
?concept rdfs:label ?conceptLabel .

View file

@ -5,7 +5,7 @@
<list-view-config>
<query-select>
PREFIX afn: &lt;http://jena.apache.org/ARQ/function#&gt;
PREFIX bibo: &lt;http://purl.org/ontology/bibo/&gt;
PREFIX vivo: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX owl: &lt;http://www.w3.org/2002/07/owl#&gt;
@ -55,7 +55,7 @@
}
</collated>
LET (?event1Name := afn:localname(?event1))
LET (?event1Name := REPLACE(STR(?event1),"^.*(#)(.*)$", "$2"))
OPTIONAL {
<precise-subquery>

View file

@ -5,7 +5,7 @@
<list-view-config>
<query-select>
PREFIX afn: &lt;http://jena.apache.org/ARQ/function#&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
@ -32,7 +32,7 @@
?role core:relatedBy ?activity .
?activity a core:Contract .
?activity rdfs:label ?activityLabel .
LET (?activityName := afn:localname(?activity)) .
LET (?activityName := REPLACE(STR(?activity),"^.*(#)(.*)$", "$2")) .
}
OPTIONAL {
<precise-subquery>?subject ?property ?role .
@ -40,7 +40,7 @@
?role core:relatedBy ?activity .
?activity a core:Grant .
?activity rdfs:label ?activityLabel .
LET (?activityName := afn:localname(?activity)) .
LET (?activityName := REPLACE(STR(?activity),"^.*(#)(.*)$", "$2")) .
}
OPTIONAL {
<precise-subquery>?subject ?property ?role .

View file

@ -5,7 +5,7 @@
<list-view-config>
<query-select>
PREFIX afn: &lt;http://jena.apache.org/ARQ/function#&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX vitro: &lt;http://vitro.mannlib.cornell.edu/ns/vitro/0.7#&gt;
@ -14,7 +14,7 @@
?role
?subclassLabel
?activity
(afn:localname(?activity) AS ?activityLocal)
(REPLACE(STR(?activity),"^.*(#)(.*)$", "$2") AS ?activityLocal)
?activityName
?dateTimeStart
?dateTimeEnd

View file

@ -5,7 +5,7 @@
<list-view-config>
<query-select>
PREFIX afn: &lt;http://jena.apache.org/ARQ/function#&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
@ -32,7 +32,7 @@
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Contract .
?activity rdfs:label ?activityLabel .
LET (?activityName := afn:localname(?activity))
LET (?activityName := REPLACE(STR(?activity),"^.*(#)(.*)$", "$2"))
}
OPTIONAL {
<precise-subquery>?subject ?property ?role .
@ -57,7 +57,7 @@
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity rdfs:label ?activityLabel .
LET (?activityName := afn:localname(?activity))
LET (?activityName := REPLACE(STR(?activity),"^.*(#)(.*)$", "$2"))
}
OPTIONAL {
<precise-subquery>?subject ?property ?role .

View file

@ -8,7 +8,7 @@
<list-view-config>
<query-select>
PREFIX afn: &lt;http://jena.apache.org/ARQ/function#&gt;
PREFIX bibo: &lt;http://purl.org/ontology/bibo/&gt;
PREFIX vivo: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX owl: &lt;http://www.w3.org/2002/07/owl#&gt;
@ -38,7 +38,7 @@
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation a vivo:Presentation .
?presentation rdfs:label ?presentationLabel .
LET (?presentationName := afn:localname(?presentation))
LET (?presentationName := REPLACE(STR(?presentation),"^.*(#)(.*)$", "$2"))
}
OPTIONAL {
<precise-subquery>?subject ?property ?role .

View file

@ -5,7 +5,7 @@
<list-view-config>
<query-select>
PREFIX afn: &lt;http://jena.apache.org/ARQ/function#&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
@ -34,7 +34,7 @@
?role core:relatedBy ?activity .
?activity a core:Contract .
?activity rdfs:label ?activityLabel .
LET (?activityName := afn:localname(?activity)) .
LET (?activityName := REPLACE(STR(?activity),"^.*(#)(.*)$", "$2")) .
}
OPTIONAL {
<precise-subquery>?subject ?property ?role .
@ -59,7 +59,7 @@
?role core:relatedBy ?activity .
?activity a core:Grant .
?activity rdfs:label ?activityLabel .
LET (?activityName := afn:localname(?activity)) .
LET (?activityName := REPLACE(STR(?activity),"^.*(#)(.*)$", "$2")) .
}
OPTIONAL {
<precise-subquery>?subject ?property ?role .

View file

@ -5,7 +5,7 @@
<list-view-config>
<query-select>
PREFIX afn: &lt;http://jena.apache.org/ARQ/function#&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX vitro: &lt;http://vitro.mannlib.cornell.edu/ns/vitro/0.7#&gt;
@ -14,7 +14,7 @@
?role
?subclassLabel
?activity
(afn:localname(?activity) AS ?activityLocal)
(REPLACE(STR(?activity),"^.*(#)(.*)$", "$2") AS ?activityLocal)
?activityName
?dateTimeStart
?dateTimeEnd

View file

@ -64,7 +64,7 @@
bind ( COALESCE(?firstName, "") As ?firstName1) .
bind ( COALESCE(?middleName, "") As ?middleName1) .
bind ( COALESCE(?lastName, "") As ?lastName1) .
bind (concat(str(?lastName1 + ", "),str(?firstName1 + " "),str(?middleName1)) as ?authorName) .
bind (concat(str(?lastName1),", ",str(?firstName1)," ",str(?middleName1)) as ?authorName) .
OPTIONAL {
<precise-subquery>?subject ?property ?authorship .

View file

@ -6,7 +6,7 @@
<list-view-config>
<query-select>
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
PREFIX afn: &lt;http://jena.apache.org/ARQ/function#&gt;
PREFIX bibo: &lt;http://purl.org/ontology/bibo/&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX owl: &lt;http://www.w3.org/2002/07/owl#&gt;
@ -26,7 +26,7 @@
WHERE {
?subject ?property ?issuedCredential .
?issuedCredential a core:IssuedCredential .
LET (?issuedCredentialLocal := afn:localname(?issuedCredential))
LET (?issuedCredentialLocal := REPLACE(STR(?issuedCredential),"^.*(#)(.*)$", "$2"))
OPTIONAL {
<precise-subquery>?subject ?property ?issuedCredential .
?issuedCredential a core:IssuedCredential .</precise-subquery>
@ -39,7 +39,7 @@
?credential a core:Credential .
?credential core:relatedBy ?issuedCredential .
?credential rdfs:label ?credentialLabel .
LET (?credentialLocal := afn:localname(?credential))
LET (?credentialLocal := REPLACE(STR(?credential),"^.*(#)(.*)$", "$2"))
}
OPTIONAL {
<precise-subquery>?subject ?property ?issuedCredential .

View file

@ -7,7 +7,7 @@
<list-view-config>
<query-select>
PREFIX afn: &lt;http://jena.apache.org/ARQ/function#&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
@ -24,7 +24,7 @@
WHERE
{
?subject ?property ?object .
LET (?localName := afn:localname(?object))
LET (?localName := REPLACE(STR(?object),"^.*(#)(.*)$", "$2"))
OPTIONAL {
<precise-subquery>?subject ?property ?object .</precise-subquery>
@ -50,7 +50,7 @@
}
<collated>
FILTER ( afn:namespace(?subclass) != "http://vitro.mannlib.cornell.edu/ns/vitro/0.7#" )
FILTER ( REPLACE(STR(?subclass),"^(.*)(#)(.*)$", "$1$2") != "http://vitro.mannlib.cornell.edu/ns/vitro/0.7#" )
</collated>
# Order by ?type is important, because if the object has more than one mostSpecificType,

View file

@ -8,7 +8,7 @@
<query-select>
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX afn: &lt;http://jena.apache.org/ARQ/function#&gt;
PREFIX vitro: &lt;http://vitro.mannlib.cornell.edu/ns/vitro/0.7#&gt;
PREFIX vcard: &lt;http://www.w3.org/2006/vcard/ns#&gt;
@ -18,7 +18,7 @@
?property
?role
?roleLabel ?roleTypeLabel
?indivInRole (afn:localname(?indivInRole) AS ?indivName)
?indivInRole (REPLACE(STR(?indivInRole),"^.*(#)(.*)$", "$2") AS ?indivName)
?indivLabel
?dateTimeInterval ?dateTimeStart ?dateTimeEnd ?objectType
WHERE {

View file

@ -7,13 +7,13 @@
<list-view-config>
<query-select>
PREFIX afn: &lt;http://jena.apache.org/ARQ/function#&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX vcard: &lt;http://www.w3.org/2006/vcard/ns#&gt;
SELECT ?vcard ?link
(afn:localname(?link) AS ?linkName)
(REPLACE(STR(?link),"^.*(#)(.*)$", "$2") AS ?linkName)
(group_concat(distinct ?linkLabel;separator="/") as ?label)
?url
?rank

View file

@ -137,8 +137,10 @@
<#assign plumIdParam = "isbn=${statement.isbn13}">
<#elseif statement.oclc??>
<#assign plumIdParam = "oclc=${statement.oclc}">
<#else>
<#assign plumIdParam = "">
</#if>
<#if plumIdParam??>
<#if plumIdParam?has_content>
<div class="plum-print-wrapper" style="display: inline-block; vertical-align: top">
<a class="plumx-plum-print-popup"
href="https://plu.mx/plum/a/?${plumIdParam}"

View file

@ -1,108 +0,0 @@
<#-- $This file is distributed under the terms of the license in LICENSE$ -->
<#-- VIVO-specific default data property statement template.
This template must be self-contained and not rely on other variables set for the individual page, because it
is also used to generate the property statement during a deletion.
-->
<#import "lib-datetime.ftl" as dt>
<#import "lib-meta-tags.ftl" as lmt>
<#if property.rangeDatatypeURI?? && property.rangeDatatypeURI?contains("#")>
<#assign datatype = property.rangeDatatypeURI?substring(property.rangeDatatypeURI?last_index_of("#")+1) />
<#else>
<#assign datatype = "none" />
</#if>
<@showStatement statement property datatype />
<#macro showStatement statement property datatype>
<#assign theValue = statement.value />
<#if theValue?contains("<ul>") >
<#assign theValue = theValue?replace("<ul>","<ul class='tinyMCEDisc'>") />
</#if>
<#if theValue?contains("<ol>") >
<#assign theValue = theValue?replace("<ol>","<ol class='tinyMCENumeric'>") />
</#if>
<#if theValue?contains("<p>") >
<#assign theValue = theValue?replace("<p>","<p style='margin-bottom:.6em'>") />
</#if>
<#if theValue?matches("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})") >
<#assign theValue = theValue + "T00:00:00" />
${dt.formatXsdDateTimeLong(theValue, "yearMonthDayPrecision")}
<#elseif theValue?matches("^([0-9]{4})-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(T|\\s)(([0-1][0-9])|(2[0-3])):([0-5][0-9]):([0-5][0-9])")>
<#if theValue?contains("T00:00:00") >
${dt.formatXsdDateTimeLong(theValue, "yearMonthDayPrecision")}
<#else>
${dt.formatXsdDateTimeLong(theValue, "yearMonthDayTimePrecision")}
</#if>
<#elseif theValue?matches("^([0-9]{4})-(0[1-9]|1[012])")>
<#assign theValue = theValue + "-01T00:00:00" />
${dt.formatXsdDateTimeLong(theValue, "yearMonthPrecision")}
<#elseif theValue?matches("^--(0[1-9]|1[012])")>
<#assign theValue = "2000" + theValue?substring(1) + "-01T00:00:00" />
${dt.formatXsdDateTimeLong(theValue, "monthPrecision")}
<#else>
${theValue} <#if !datatype?contains("none")> <@validateFormat theValue datatype/> </#if>
</#if>
<@lmt.addCitationMetaTag uri=(property.uri!) content=(theValue!) />
</#macro>
<#macro validateFormat value datatype >
<#if datatype?? >
<#switch datatype>
<#case "date">
<img class="invalidFormatImg" src="${urls.base}/images/iconAlert.png" width="18" alt="${i18n().invalid_format}" title=" ${i18n().invalid_format}"> <#-- validated above -->
<span class="invalidFormatText">invalid format</span>
<#break>
<#case "dateTime">
<img class="invalidFormatImg" src="${urls.base}/images/iconAlert.png" width="18" alt=" ${i18n().invalid_format}" title=" ${i18n().invalid_format}"> <#-- validated above -->
<span class="invalidFormatText">invalid format</span>
<#break>
<#case "time">
<#if !value?matches("(([0-1][0-9])|(2[0-3])):([0-5][0-9]):([0-5][0-9])") >
<img class="invalidFormatImg" src="${urls.base}/images/iconAlert.png" width="18" alt=" ${i18n().invalid_format}" title=" ${i18n().invalid_format}">
<span class="invalidFormatText">invalid format</span>
</#if>
<#break>
<#case "gYear">
<#if !value?matches("^\\d{4}") >
<img class="invalidFormatImg" src="${urls.base}/images/iconAlert.png" width="18" alt=" ${i18n().invalid_format}" title=" ${i18n().invalid_format}">
<span class="invalidFormatText">invalid format</span>
</#if>
<#break>
<#case "gMonth">
<img class="invalidFormatImg" src="${urls.base}/images/iconAlert.png" width="18" alt=" ${i18n().invalid_format}" title=" ${i18n().invalid_format}"> <#-- validated above -->
<span class="invalidFormatText">invalid format</span>
<#break>
<#case "gYearMonth">
<img class="invalidFormatImg" src="${urls.base}/images/iconAlert.png" width="18" alt=" ${i18n().invalid_format}" title=" ${i18n().invalid_format}"> <#-- validated above -->
<span class="invalidFormatText">invalid format</span>
<#break>
<#case "float">
<#if !value?matches("^[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?.") >
<img class="invalidFormatImg" src="${urls.base}/images/iconAlert.png" width="18" alt=" ${i18n().invalid_format}" title=" ${i18n().invalid_format}">
<span class="invalidFormatText">invalid format</span>
</#if>
<#break>
<#case "integer">
<#if !value?matches("^-?\\d+$") >
<img class="invalidFormatImg" src="${urls.base}/images/iconAlert.png" width="18" alt=" ${i18n().invalid_format}" title=" ${i18n().invalid_format}">
<span class="invalidFormatText">invalid format</span>
</#if>
<#break>
<#case "int">
<#if !value?matches("^-?\\d+$") >
<img class="invalidFormatImg" src="${urls.base}/images/iconAlert.png" width="18" alt=" ${i18n().invalid_format}" title=" ${i18n().invalid_format}">
<span class="invalidFormatText">invalid format</span>
</#if>
<#break>
<#case "boolean">
<#if !value?matches("false") && !value?matches("true") >
<img class="invalidFormatImg" src="${urls.base}/images/iconAlert.png" width="18" alt=" ${i18n().invalid_format}" title=" ${i18n().invalid_format}">
<span class="invalidFormatText">invalid format</span>
</#if>
<#break>
<#default>
</#switch>
</#if>
</#macro>

View file

@ -19,7 +19,7 @@
<#if statement.authorName?replace(" ","")?length == statement.authorName?replace(" ","")?last_index_of(",") + 1 >
${statement.authorName?replace(",","")}
<#else>
${statement.authorName}
${statement.authorName!i18n().missing_author}
</#if>
<#else>
<a href="${profileUrl(statement.uri("author"))}" title="${i18n().author_name}">${statement.authorName}</a>

View file

@ -25,6 +25,8 @@ roleExamples-->
<#assign acMultipleTypes = "'true'" />
<#assign acTypes = "{activity: 'http://xmlns.com/foaf/0.1/Organization,http://xmlns.com/foaf/0.1/Group,http://purl.obolibrary.org/obo/OBI_0000835,http://purl.org/NET/c4dm/event.owl#Event'}" />
<#assign editTitle = "${i18n().edit_entry_for_service_provider_role}"/>
<#assign createTitle = "${i18n().create_entry_for_service_provider_role}"/>
<#--Each of the two stage forms will include the form below-->
<#include "addRoleToPersonTwoStage.ftl">

View file

@ -114,7 +114,7 @@ Set this flag on the input acUriReceiver where you would like this behavior to o
</#list>
<#else>
<select id="selector" name="advisingRelType" ${disabledVal} >
<option value="${blankSentinel}" selected="selected">${i18n().select_one}</option>
<option value="" selected="selected">${i18n().select_one}</option>
<#list advisingRelTypeOpts?keys as key>
<option value="${key}" <#if advisingRelTypeValue = key>selected</#if>>${advisingRelTypeOpts[key]}</option>
</#list>

View file

@ -110,7 +110,7 @@ var i18nStrings = {
<#if googleMapsKey??>
${scripts.add('<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=${googleMapsKey}"></script>')}
<#else>
${scripts.add('<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>')}
${scripts.add('<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false"></script>')}
</#if>
${scripts.add('<script type="text/javascript" src="${urls.base}/js/jquery-ui/js/jquery-ui-1.12.1.min.js"></script>',
'<script type="text/javascript" src="${urls.base}/js/jquery_plugins/jquery.blockUI.js"></script>',