Merge branch 'maint-rel-1.6' of https://github.com/vivo-project/VIVO into maint-rel-1.6

This commit is contained in:
brianjlowe 2013-10-31 10:46:54 -04:00
commit 9635331b17
62 changed files with 2625 additions and 1096 deletions

View file

@ -60,7 +60,7 @@
<h4>VIVO inside Tomcat</h4>
<p>
When you run the build script to compile and deploy VIVO
(see <a href="#deploy">Step 6</a>, below), the files will be deployed to a
(see <a href="#deploy">Step 5</a>, below), the files will be deployed to a
directory inside Tomcat. This is the actual executing code for VIVO,
but you wont need to look at it or change it. If you need to change
VIVO, make the changes in the distribution directory, and run the build
@ -78,7 +78,7 @@
in the build.properties file (see <a href="#build_properties">Step 4</a>,
below). You must create this directory before starting VIVO,
you must create the <code>runtime.properties</code> file in this directory
(see <a href="#runtime_properties">Step 5</a>, below), and you
(see <a href="#runtime_properties">Step 6</a>, below), and you
must ensure that Tomcat has permission to read and write to this
directory when it runs.
</p>
@ -113,10 +113,10 @@ issuing SPARQL queries that read data, and its URI for issuing SPARQL UPDATE com
<a href="#build_properties">Specify build properties</a>
</li>
<li>
<a href="#runtime_properties">Specify runtime properties</a>
<a href="#deploy">Compile and deploy</a>
</li>
<li>
<a href="#deploy">Compile and deploy</a>
<a href="#runtime_properties">Specify runtime properties</a>
</li>
<li>
<a href="#tomcat_settings">Configure Tomcat</a>
@ -156,10 +156,9 @@ issuing SPARQL queries that read data, and its URI for issuing SPARQL UPDATE com
</p>
<ul>
<li>
Java (SE) 1.6.x <a href="http://java.sun.com">http://java.sun.com</a>
Java (SE) 1.7.x <a href="http://java.sun.com">http://java.sun.com</a>
<ul>
<li>VIVO does not work with OpenJDK</li>
<li>VIVO does not work with Java 1.7</li>
<li>VIVO has not been tested with OpenJDK</li>
</ul>
</li>
<li>
@ -245,8 +244,8 @@ issuing SPARQL queries that read data, and its URI for issuing SPARQL UPDATE com
<p>
These properties are used in compilation and deployment.
They will be incorporated into VIVO when it is compiled in
<a href="#deploy">Step 6</a>. If you want to change these properties at
a later date, you will need to stop Tomcat, repeat <a href="#deploy">Step 6</a>,
<a href="#deploy">Step 5</a>. If you want to change these properties at
a later date, you will need to stop Tomcat, repeat <a href="#deploy">Step 5</a>,
and restart Tomcat.
</p>
<p>
@ -343,22 +342,62 @@ issuing SPARQL queries that read data, and its URI for issuing SPARQL UPDATE com
</tbody>
</table>
<h3 id="runtime_properties">5. Specify runtime properties </h3>
<h3 id="deploy">5. Compile and deploy</h3>
<p>
In <a href="#build_properties">Step 4</a>, you defined the location of the VIVO home directory,
by specifying <code>vitro.home</code> in the <code>build.properties</code> file.
Create that directory now.
</p>
<p>
At the top level of the VIVO distribution directory, you will find a file called
<code>example.runtime.properties</code>. Copy this to the VIVO home directory you have created,
renaming the copy to <code>runtime.properties</code>.
Edit the file to suit your installation, as described in the following table.
At the command line, from the top level of the VIVO distribution
directory, type:
<pre> ant all </pre>
to build VIVO and deploy to Tomcat's webapps directory.
</p>
<p>
The build script may run for as much as five minutes,
and creates more than 100 lines of output.
The process comprises several steps:
<ul>
<li>collecting the source files from the distribution directory,</li>
<li>compiling the Java source code,</li>
<li>compiling and running unit tests,</li>
<li>preparing the Solr search engine,</li>
<li>deploying VIVO and Solr to Tomcat.</li>
</ul>
</p>
<p>
The output of the build may include a variety of warning messages.
The Java compiler may warn of code that is outdated.
Unit tests may produce warning messages,
and some tests may be ignored if they do not produce consistent results.
</p>
<table align="center"><tr><td>
BUILD SUCCESSFUL<br>Total time: 1 minute 49 seconds
</td></tr></table>
<p>
If the output ends with a success message, the build was successful.
Proceed to the next step.
</p>
<table align="center"><tr><td>
BUILD FAILED<br>Total time: 35 seconds
</td></tr></table>
<p>
If the output ends with a failure message, the build has failed.
Find the cause of the failure, fix the problem, and run the script again.
</p>
<h3 id="runtime_properties">6. Specify runtime properties </h3>
<p>
The build process in <a href="deploy">Step 5</a> created a file called <code>example.runtime.properties</code>
in your VIVO home directory (<code>vitro.home</code> in the <code>build.properties</code> file).
Rename this file to <code>runtime.properties</code>, and
edit the file to suit your installation, as described in the following table.
</p>
<p>
These properties are loaded when VIVO starts up. If you want to change these
properties at a later date, you will need to restart Tomcat for them to take
effect. You will not need to repeat <a href="#deploy">Step 6</a>.
effect. You will not need to repeat <a href="#deploy">Step 5</a>.
</p>
<p>
<em>Windows:</em>
@ -921,45 +960,6 @@ issuing SPARQL queries that read data, and its URI for issuing SPARQL UPDATE com
</tbody>
</table>
<h3 id="deploy">6. Compile and deploy</h3>
<p>
At the command line, from the top level of the VIVO distribution
directory, type:
<pre> ant all </pre>
to build VIVO and deploy to Tomcat's webapps directory.
</p>
<p>
The build script may run for as much as five minutes,
and creates more than 100 lines of output.
The process comprises several steps:
<ul>
<li>collecting the source files from the distribution directory,</li>
<li>compiling the Java source code,</li>
<li>compiling and running unit tests,</li>
<li>preparing the Solr search engine,</li>
<li>deploying VIVO and Solr to Tomcat.</li>
</ul>
</p>
<p>
The output of the build may include a variety of warning messages.
The Java compiler may warn of code that is outdated.
Unit tests may produce warning messages,
and some tests may be ignored if they do not produce consistent results.
</p>
<table align="center"><tr><td>
BUILD SUCCESSFUL<br>Total time: 1 minute 49 seconds
</td></tr></table>
<p>
If the output ends with a success message, the build was successful.
Proceed to the next step.
</p>
<table align="center"><tr><td>
BUILD FAILED<br>Total time: 35 seconds
</td></tr></table>
<p>
If the output ends with a failure message, the build has failed.
Find the cause of the failure, fix the problem, and run the script again.
</p>
<h3 id="tomcat_settings">7. Configure Tomcat</h3>
<h4>Set JVM parameters</h4>
@ -1049,8 +1049,8 @@ issuing SPARQL queries that read data, and its URI for issuing SPARQL UPDATE com
problem is detected the normal VIVO pages will redirect
to a startup status page describing the problem. You
can stop tomcat, attempt to fix the problem and
proceeded from <a href="#deploy">Step 6</a>. The
startup status page may offer a continue link which
proceed from <a href="#deploy">Step 5</a>. If the problem is not serious, the
startup status page may offer a <code>continue</code> link which
will allow you to use VIVO in spite of the problems.
<p>

View file

@ -243,97 +243,59 @@
the new locations accordingly.
</p>
<h5>Old locations of RDF files</h5>
<pre>/WEB-INF/ontologies/app/application.owl
/WEB-INF/ontologies/app/aboutPage.n3
/WEB-INF/ontologies/app/menu.n3
/WEB-INF/ontologies/app/profilePageType.n3
/WEB-INF/ontologies/app/loadedAtStartup/displayModelListViews.rdf
/WEB-INF/ontologies/app/loadedAtStartup/homePageDataGetters.n3
/WEB-INF/ontologies/app/loadedAtStartup/localeSelectionGUI.n3
/WEB-INF/ontologies/app/loadedAtStartup/vivoListViewConfig.rdf
/WEB-INF/ontologies/app/loadedAtStartup/vivoOrganizationDataGetters.n3
/WEB-INF/ontologies/app/loadedAtStartup/vivoSearchProhibited.n3
/WEB-INF/ontologies/app/menuload/displayTBOX.n3
/WEB-INF/ontologies/app/menuload/displayDisplay.n3
/WEB-INF/init-data/initialSiteConfig.rdf
/WEB-INF/ontologies/user/abox/geopolitical.ver1.1-11-18-11-individual-labels.rdf
/WEB-INF/ontologies/user/abox/vocabularySource-labels.n3
/WEB-INF/ontologies/user/tbox/vitro-0.7-annotations.rdf
/WEB-INF/ontologies/user/tbox/geopolitical-ver1.1-11-18-11-annotations.rdf
/WEB-INF/ontologies/user/tbox/scires-1.5-annotations.rdf
/WEB-INF/ontologies/user/tbox/vivo-core-1.5-annotations.rdf
/WEB-INF/ontologies/user/tbox/isDefinedBy-1.5-annotations.rdf
/WEB-INF/ontologies/user/applicationMetadata/propertygroups.rdf
/WEB-INF/ontologies/user/applicationMetadata/classgroups.rdf
/WEB-INF/filegraph/abox/us-states.rdf
/WEB-INF/filegraph/abox/geopolitical.abox.ver1.1-11-18-11.owl
/WEB-INF/filegraph/abox/academicDegree.rdf
/WEB-INF/filegraph/abox/documentStatus.owl
/WEB-INF/filegraph/abox/continents.n3
/WEB-INF/filegraph/abox/vocabularySource.n3
/WEB-INF/filegraph/abox/dateTimeValuePrecision.owl
/WEB-INF/filegraph/tbox/vitroPublic.owl
/WEB-INF/filegraph/tbox/vivo-dcterms-1.5.owl
/WEB-INF/filegraph/tbox/scires-1.5.owl
/WEB-INF/filegraph/tbox/vivo-core-1.5.owl
/WEB-INF/filegraph/tbox/vivo-c4o-1.5.owl
/WEB-INF/filegraph/tbox/geopolitical.tbox.ver1.1-11-18-11.owl
/WEB-INF/filegraph/tbox/vivo-fabio-1.5.owl
/WEB-INF/filegraph/tbox/vivo-skos-1.5.owl
/WEB-INF/filegraph/tbox/vivo-event-1.5.owl
/WEB-INF/filegraph/tbox/vivo-foaf-1.5.owl
/WEB-INF/filegraph/tbox/vitro-0.7.owl
/WEB-INF/filegraph/tbox/vivo-pws-1.5.owl
/WEB-INF/filegraph/tbox/isDefinedBy-1.5.owl
/WEB-INF/filegraph/tbox/vivo-dcelements-1.5.owl
/WEB-INF/filegraph/tbox/vivo-bibo-1.5.owl</pre>
<table>
<tr>
<th>Old locations of RDF files<br/>under [Vitro]/webapp/web or [VIVO]/productMods</th>
<th>New locations of RDF files<br/>under [Vitro]/webapp/rdf or [VIVO]/rdf</th>
<th>Comments</th>
</tr>
<tr>
<td>WEB-INF/ontologies/app/</td>
<td>rdf/display/firsttime/</td>
<td></td>
</tr>
<tr>
<td>WEB-INF/ontologies/app/loadedAtStartup/</td>
<td>rdf/display/everytime/</td>
<td></td>
</tr>
<tr>
<td>WEB-INF/ontologies/app/menuload/displayTBOX.n3</td>
<td>rdf/displayTbox/everytime/</td>
<td>Was one file, now a directory</td>
</tr>
<tr>
<td>/WEB-INF/ontologies/app/menuload/displayDisplay.n3</td>
<td>rdf/displayDisplay/everytime/</td>
<td>Was one file, now a directory</td>
</tr>
<tr>
<td>WEB-INF/ontologies/user/applicationMetadata/<br/>WEB-INF/init-data/</td>
<td>rdf/applicationMetadata/firsttime/</td>
<td>Merged directories</td>
</tr>
<tr>
<td>WEB-INF/ontologies/user/abox/</td>
<td>rdf/abox/firsttime/</td>
<td></td>
</tr>
<tr>
<td>WEB-INF/filegraph/abox/</td>
<td>rdf/abox/filegraph/</td>
<td></td>
</tr>
<tr>
<td>WEB-INF/ontologies/user/tbox/</td>
<td>rdf/tbox/firsttime/</td>
<td></td>
</tr>
<tr>
<td>WEB-INF/filegraph/tbox/</td>
<td>rdf/tbox/filegraph/</td>
<td></td>
</tr>
</table>
<h5>New locations of RDF files</h5>
<pre>rdf/display/firsttime/aboutPage.n3
rdf/display/firsttime/application.owl
rdf/display/firsttime/menu.n3
rdf/display/firsttime/profilePageType.n3
rdf/display/everytime/displayModelListViews.rdf
rdf/display/everytime/homePageDataGetters.n3
rdf/display/everytime/localeSelectionGUI.n3
rdf/display/everytime/vivoListViewConfig.rdf
rdf/display/everytime/vivoOrganizationDataGetters.n3
rdf/display/everytime/vivoSearchProhibited.n3
rdf/displayTbox/everytime/displayTBOX.n3
rdf/displayDisplay/everytime/displayDisplay.n3
rdf/applicationMetadata/firsttime/classgroups.rdf
rdf/applicationMetadata/firsttime/initialSiteConfig.rdf
rdf/applicationMetadata/firsttime/propertygroups.rdf
rdf/abox/firsttime/geopolitical.ver1.1-11-18-11-individual-labels.rdf
rdf/abox/firsttime/vocabularySource-labels.n3
rdf/abox/filegraph/abox/academicDegree.rdf
rdf/abox/filegraph/abox/continents.n3
rdf/abox/filegraph/abox/dateTimeValuePrecision.owl
rdf/abox/filegraph/abox/documentStatus.owl
rdf/abox/filegraph/abox/geopolitical.abox.ver1.1-11-18-11.owl
rdf/abox/filegraph/abox/us-states.rdf
rdf/abox/filegraph/abox/vocabularySource.n3
rdf/tbox/firsttime/geopolitical-ver1.1-11-18-11-annotations.rdf
rdf/tbox/firsttime/isDefinedBy-1.5-annotations.rdf
rdf/tbox/firsttime/scires-1.5-annotations.rdf
rdf/tbox/firsttime/vitro-0.7-annotations.rdf
rdf/tbox/firsttime/vivo-core-1.5-annotations.rdf
rdf/tbox/filegraph/tbox/geopolitical.tbox.ver1.1-11-18-11.owl
rdf/tbox/filegraph/tbox/isDefinedBy-1.5.owl
rdf/tbox/filegraph/tbox/scires-1.5.owl
rdf/tbox/filegraph/tbox/vitro-0.7.owl
rdf/tbox/filegraph/tbox/vitroPublic.owl
rdf/tbox/filegraph/tbox/vivo-bibo-1.5.owl
rdf/tbox/filegraph/tbox/vivo-c4o-1.5.owl
rdf/tbox/filegraph/tbox/vivo-core-1.5.owl
rdf/tbox/filegraph/tbox/vivo-dcelements-1.5.owl
rdf/tbox/filegraph/tbox/vivo-dcterms-1.5.owl
rdf/tbox/filegraph/tbox/vivo-event-1.5.owl
rdf/tbox/filegraph/tbox/vivo-fabio-1.5.owl
rdf/tbox/filegraph/tbox/vivo-foaf-1.5.owl
rdf/tbox/filegraph/tbox/vivo-pws-1.5.owl
rdf/tbox/filegraph/tbox/vivo-skos-1.5.owl</pre>
<p>
If you are using a three-tier build process, you will need to add two lines
to the build script to accomodate the RDF files, and the language support (see below)
@ -353,8 +315,8 @@ rdf/tbox/filegraph/tbox/vivo-skos-1.5.owl</pre>
<pre>&lt;patternset id="appbase.patterns"&gt;
&lt;include name="src/**/*" /&gt;
&lt;include name="lib/**/*" /&gt;
&lt;include name="rdf/**/*" /&gt;
&lt;include name="languages/**/*" /&gt;
<b>&lt;include name="rdf/**/*" /&gt;
&lt;include name="languages/**/*" /&gt;</b>
&lt;include name="test/**/*" /&gt;
&lt;include name="themes/**/*" /&gt;
&lt;include name="config/*.properties" /&gt;
@ -436,24 +398,26 @@ rdf/tbox/filegraph/tbox/vivo-skos-1.5.owl</pre>
<p>
For this release, the following browsers are supported.
</p>
<p>
Mac:
</p>
<ul>
<li>Chrome 30.0.1599.69 and above</li>
<li>FireFox 3.6.28, 10.0.12, 24</li>
<li>Opera 12.02</li>
<li>Safari 5.0.3</li>
</ul>
</li>
<li>
PC:
<ul>
<li>Chrome 25.1364.2 and above</li>
<li>FireFox 10.0.12, 24</li>
<li>Internet Explorer 8, 9, 10</li>
<li>Opera 12.02</li>
</ul>
<ul>
<li>
Mac:
<ul>
<li>Chrome 30.0.1599.69 and above</li>
<li>FireFox 3.6.28, 10.0.12, 24</li>
<li>Opera 12.02</li>
<li>Safari 5.0.3</li>
</ul>
</li>
<li>
PC:
<ul>
<li>Chrome 25.1364.2 and above</li>
<li>FireFox 10.0.12, 24</li>
<li>Internet Explorer 8, 9, 10</li>
<li>Opera 12.02</li>
</ul>
</li>
</ul>
</li>
</ul>

View file

@ -194,14 +194,7 @@ hyperlink = Hiperenlace
#
# accounts templates ( /templates/freemarker/body/accounts )
#
congratulations = ¡Enhorabuena!
we_have_created_your_account = Hemos creado el nuevo {0} cuenta asociada a {1}.
did_not_request_text = Si no has solicitado esta nueva cuenta puede ignorar este mensaje. Esta solicitud caducará si no se hubiere pronunciado sobre durante 30 días.
click_to_create_password = Haga clic en el enlace de abajo para crear la contraseña de su cuenta usando nuestro servidor seguro.
password = contraseña
if_link_failed = Si el enlace no funciona, puedes copiar y pegar el enlace directamente en la barra de direcciones de su navegador.
thanks = ¡Gracias!
paste_the_link = Pega el siguiente enlace en la barra de direcciones de su navegador para crear la contraseña de su cuenta usando nuestro servidor seguro.
#
# harvester templates ( /templates/freemarker/body/harvester )
@ -356,7 +349,7 @@ selected_conference = Conferencia Seleccionado
years_participation_in = Años de participación en
grant_entry_for = autorizará la entrada de
select_existing_pub_or_enter_new = Por favor seleccione una subvención actual en el campo de título o ingresar uno nuevo.
select_existing_pub_or_enter_new = Por favor seleccione una publicación actual en el campo de título o ingresar uno nuevo.
unable_to_handle_grant_editing = Esta forma no es capaz de manejar la edición de esta subvención, ya que se asocia con múltiples individuos subvención.
grant_type = concesión de la
@ -870,3 +863,13 @@ type_of_credential = Tipo de Credencial
credential_name = Nombre de Credencial
selected_credential = Credential seleccionado
year_issued = Año de Emisión
year_awarded_for = año otorgado por
create_year_awarded = Crear año concede
edit_year_awarded = Editar año concede
publication_date_for = fecha de publicación de
create_publication_date = Crear fecha de publicación
edit_publication_date = Editar fecha de publicación
name_prefix = Prefijo de nombre
name_suffix = Sufijo de nombre
administering_organization_for = administración de la organización para
missing_credential = falta credencial

View file

@ -28,31 +28,30 @@
WHERE {
?subject ?property ?adviseeRole .
?adviseeRole core:relatedBy ?advisingRel .
?subject core:relatedBy ?advisingRel .
LET ( ?localName := afn:localname(?advisingRel) )
OPTIONAL { ?advisingRel rdfs:label ?advisingRelLabel }
OPTIONAL { ?advisingRel core:relates ?advisor .
?advisor a foaf:Person .
OPTIONAL { ?advisor rdfs:label ?advisorLabel }
?advisor rdfs:label ?advisorLabel
}
OPTIONAL { ?advisingRel core:degreeCandidacy ?degree .
?degree rdfs:label ?degreeLabel .
?degree core:abbreviation ?degreeAbbr
}
OPTIONAL { ?advisingRel core:degreeCandidacy ?degree .
?degree core:abbreviation ?degreeAbbr .
}
<collated>
OPTIONAL { ?advisingRel vitro:mostSpecificType ?subclass .
?subclass rdfs:subClassOf core:AdvisingRelationship
}
</collated>
OPTIONAL { ?advisingRel core:dateTimeInterval ?dateTimeInterval
OPTIONAL { ?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?advisingRel core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?advisingRel core:dateTimeInterval ?dateTimeInterval
OPTIONAL { ?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
OPTIONAL { ?advisingRel core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
} ORDER BY <collated>?subclass</collated> DESC(?dateTimeEnd)
@ -61,9 +60,15 @@
<query-construct>
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;
CONSTRUCT {
?advisingRel vitro:mostSpecificType ?subclass .
?subclass rdfs:subClassOf core:AdvisingRelationship
} WHERE {
?subject ?property ?adviseeRole .
?adviseeRole core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship .
?advisingRel vitro:mostSpecificType ?subclass .
?subclass rdfs:subClassOf core:AdvisingRelationship
}
</query-construct>
@ -74,6 +79,7 @@
CONSTRUCT {
?subject ?property ?adviseeRole .
?adviseeRole core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship .
?advisingRel rdfs:label ?advisingRelLabel .
} WHERE {
{
@ -86,7 +92,6 @@
?adviseeRole a core:AdviseeRole .
?adviseeRole core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship .
?advisingRel ?advisingRelProperty ?advisingRelValue .
?advisingRel rdfs:label ?advisingRelLabel
}
}
@ -105,8 +110,8 @@
?advisingRel a core:AdvisingRelationship .
?advisingRel core:relates ?advisor .
?advisor a foaf:Person .
?advisor &lt;http://purl.obolibrary.org/obo/RO_0000053&gt; ?advisorRole .
?advisor rdfs:label ?advisorLabel .
?advisor &lt;http://purl.obolibrary.org/obo/RO_0000053&gt; ?advisorRole .
?advisorRole a core:AdvisorRole .
?advisingRel core:degreeCandidacy ?degree .
?degree rdfs:label ?degreeLabel .
@ -134,7 +139,13 @@
?advisingRel a core:AdvisingRelationship .
?advisingRel core:degreeCandidacy ?degree .
?degree rdfs:label ?degreeLabel .
?degree core:abbreviation ?degreeAbbr
} UNION {
?subject ?property ?adviseeRole .
?adviseeRole a core:AdviseeRole .
?adviseeRole core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship .
?advisingRel core:degreeCandidacy ?degree .
?degree core:abbreviation ?degreeAbbr
}
}
</query-construct>
@ -143,18 +154,16 @@
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?adviseeRole .
?adviseeRole a core:AdviseeRole .
?adviseeRole core:relatedBy ?advisingRel .
?subject core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship .
?advisingRel core:dateTimeInterval ?dateTimeInterval .
?advisingRel core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
} WHERE {
?subject ?property ?adviseeRole .
?adviseeRole a core:AdviseeRole .
?adviseeRole core:relatedBy ?advisingRel .
?subject core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship .
?advisingRel core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
@ -166,8 +175,8 @@
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?adviseeRole .
?adviseeRole a core:AdviseeRole .
?adviseeRole core:relatedBy ?advisingRel .
?subject core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship .
?advisingRel core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
@ -175,8 +184,8 @@
} WHERE {
?subject ?property ?adviseeRole .
?adviseeRole a core:AdviseeRole .
?adviseeRole a core:AdviseeRole .
?adviseeRole core:relatedBy ?advisingRel .
?subject core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship .
?advisingRel core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .

View file

@ -32,28 +32,26 @@
OPTIONAL { ?advisingRel rdfs:label ?advisingRelLabel }
OPTIONAL { ?advisingRel core:relates ?advisee .
?advisee a foaf:Person .
?advisee &lt;http://purl.obolibrary.org/obo/RO_0000053&gt; ?adviseeRole .
?adviseeRole a core:AdviseeRole .
OPTIONAL { ?advisee rdfs:label ?adviseeLabel }
?advisee rdfs:label ?adviseeLabel
}
OPTIONAL { ?advisingRel core:degreeCandidacy ?degree .
OPTIONAL { ?degree rdfs:label ?degreeLabel }
OPTIONAL { ?degree core:abbreviation ?degreeAbbr }
?degree rdfs:label ?degreeLabel .
}
OPTIONAL { ?advisingRel core:degreeCandidacy ?degree .
?degree core:abbreviation ?degreeAbbr
}
<collated>
OPTIONAL { ?advisingRel vitro:mostSpecificType ?subclass .
?subclass rdfs:subClassOf core:AdvisingRelationship
}
</collated>
OPTIONAL { ?advisingRel core:dateTimeInterval ?dateTimeInterval
OPTIONAL { ?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?advisingRel core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?advisingRel core:dateTimeInterval ?dateTimeInterval
OPTIONAL { ?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
OPTIONAL { ?advisingRel core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
} ORDER BY <collated>?subclass</collated> DESC(?dateTimeEnd)
@ -123,7 +121,6 @@
?advisee &lt;http://purl.obolibrary.org/obo/RO_0000053&gt; ?adviseeRole .
?adviseeRole a core:AdviseeRole .
?advisingRel core:degreeCandidacy ?degree .
?degree a core:AcademicDegree .
?degree rdfs:label ?degreeLabel .
?degree core:abbreviation ?degreeAbbr
} WHERE {
@ -132,15 +129,6 @@
?advisorRole a core:AdvisorRole .
?advisorRole core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship .
} UNION {
?subject ?property ?advisorRole .
?advisorRole a core:AdvisorRole .
?advisorRole core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship .
?advisingRel core:relates ?advisee .
?advisee a foaf:Person .
?advisee &lt;http://purl.obolibrary.org/obo/RO_0000053&gt; ?adviseeRole .
?adviseeRole a core:AdviseeRole
} UNION {
?subject ?property ?advisorRole .
?advisorRole a core:AdvisorRole .
@ -157,7 +145,6 @@
?advisorRole core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship .
?advisingRel core:degreeCandidacy ?degree .
?degree a core:AcademicDegree .
?degree rdfs:label ?degreeLabel .
} UNION {
?subject ?property ?advisorRole .
@ -165,7 +152,6 @@
?advisorRole core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship .
?advisingRel core:degreeCandidacy ?degree .
?degree a core:AcademicDegree .
?degree core:abbreviation ?degreeAbbr
}
}

View file

@ -26,27 +26,25 @@
WHERE {
?subject ?property ?awardReceipt .
?awardReceipt a core:AwardReceipt .
OPTIONAL { ?awardReceipt rdfs:label ?receiptLabel }
OPTIONAL { ?awardReceipt core:relates ?award .
OPTIONAL { ?awardReceipt rdfs:label ?receiptLabel }
OPTIONAL { ?awardReceipt core:relates ?award .
?award a core:Award .
?award core:relatedBy ?awardReceipt
OPTIONAL { ?award rdfs:label ?awardLabel }
OPTIONAL { ?award core:assignedBy ?assignedBy
OPTIONAL { ?assignedBy rdfs:label ?assignedByLabel }
}
?award core:relatedBy ?awardReceipt .
?award rdfs:label ?awardLabel
}
OPTIONAL { ?awardReceipt core:assignedBy ?assignedBy .
?assignedBy rdfs:label ?assignedByLabel
}
OPTIONAL { ?awardReceipt core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?awardReceipt core:dateTimeInterval ?dateTimeInterval
OPTIONAL { ?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?awardReceipt core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
OPTIONAL { ?awardReceipt core:dateTimeInterval ?dateTimeInterval
OPTIONAL { ?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
}
OPTIONAL { ?awardReceipt core:dateTimeValue ?dateTimeValue
OPTIONAL { ?dateTimeValue core:dateTime ?dateTime }
OPTIONAL { ?awardReceipt core:dateTimeValue ?dateTimeValue .
?dateTimeValue core:dateTime ?dateTime
}
} ORDER BY DESC(?dateTime) DESC(?dateTimeEnd)
</query-select>
@ -65,7 +63,7 @@
?award a core:Award .
?award core:relatedBy ?awardReceipt .
?award rdfs:label ?awardLabel .
?award core:assignedBy ?assignedBy .
?awardReceipt core:assignedBy ?assignedBy .
?assignedBy rdfs:label ?assignedByLabel .
?awardReceipt core:dateTimeValue ?dateTimeValue .
?dateTimeValue core:dateTime ?dateTime
@ -89,9 +87,7 @@
?subject ?property ?awardReceipt .
?awardReceipt a core:AwardReceipt .
?awardReceipt rdfs:label ?receiptLabel .
?awardReceipt core:relates ?award .
?award a core:Award .
?award core:assignedBy ?assignedBy .
?awardReceipt core:assignedBy ?assignedBy .
?assignedBy rdfs:label ?assignedByLabel
} UNION {
?subject ?property ?awardReceipt .

View file

@ -12,6 +12,8 @@
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&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;
PREFIX obo: &lt;http://purl.obolibrary.org/obo/&gt;
PREFIX vcard: &lt;http://www.w3.org/2006/vcard/ns#&gt;
SELECT <collated> ?subclass </collated>
?object
@ -37,7 +39,11 @@
?classGroup a vitro:ClassGroup
}
OPTIONAL { ?object core:preferredTitle ?title }
OPTIONAL { ?object obo:ARG_2000028 ?vcard .
?vcard vcard:hasTitle ?titleObj .
?titleObj vcard:title ?title
}
<collated>
OPTIONAL { ?object a ?subclass }
@ -75,6 +81,8 @@
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;
PREFIX obo: &lt;http://purl.obolibrary.org/obo/&gt;
PREFIX vcard: &lt;http://www.w3.org/2006/vcard/ns#&gt;
CONSTRUCT {
?subject ?property ?object .
@ -82,7 +90,9 @@
?typeUri vitro:inClassGroup ?classGroup .
?classGroup a vitro:ClassGroup .
?typeUri rdfs:label ?type .
?object core:preferredTitle ?title .
?object obo:ARG_2000028 ?vcard .
?vcard vcard:hasTitle ?titleObj .
?titleObj vcard:title ?title
} WHERE {
{
?subject ?property ?object .
@ -92,7 +102,9 @@
?classGroup a vitro:ClassGroup
} UNION {
?subject ?property ?object .
?object core:preferredTitle ?title .
?object obo:ARG_2000028 ?vcard .
?vcard vcard:hasTitle ?titleObj .
?titleObj vcard:title ?title
}
}
</query-construct>

View file

@ -23,10 +23,14 @@
OPTIONAL { ?edTraining vitro:mostSpecificType ?subclass . }
OPTIONAL { ?edTraining &lt;http://purl.obolibrary.org/obo/RO_0002234&gt; ?awardedDegree .
?awardedDegree core:relates ?degree .
?degree a core:AcademicDegree
OPTIONAL { ?degree rdfs:label ?degreeName }
OPTIONAL { ?degree core:abbreviation ?degreeAbbr }
}
?degree a core:AcademicDegree .
?degree rdfs:label ?degreeName
}
OPTIONAL { ?edTraining &lt;http://purl.obolibrary.org/obo/RO_0002234&gt; ?awardedDegree .
?awardedDegree core:relates ?degree .
?degree a core:AcademicDegree .
?degree core:abbreviation ?degreeAbbr
}
OPTIONAL { ?edTraining &lt;http://purl.obolibrary.org/obo/RO_0000057&gt; ?org .
?org a foaf:Organization .
?org rdfs:label ?orgName
@ -34,13 +38,13 @@
OPTIONAL { ?edTraining core:majorField ?majorField }
OPTIONAL { ?edTraining core:departmentOrSchool ?deptOrSchool }
OPTIONAL { ?edTraining core:supplementalInformation ?info }
OPTIONAL { ?edTraining core:dateTimeInterval ?dateTimeInterval
OPTIONAL { ?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
OPTIONAL { ?edTraining core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?edTraining core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
} ORDER BY ?subclass DESC(?dateTimeEnd) DESC(?dateTimeStart)
</query-select>

View file

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<!-- See guidelines in vitro/doc/list_view_configuration_guidelines.txt -->
<list-view-config>
<query-select>
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX obo: &lt;http://purl.obolibrary.org/obo/&gt;
SELECT DISTINCT ?administratorRole
?organization
?organizationLabel
WHERE {
?subject ?property ?administratorRole .
?administratorRole a core:AdministratorRole .
OPTIONAL { ?administratorRole obo:RO_0000052 ?organization .
?organization a foaf:Organization .
?organization obo:RO_0000053 ?administratorRole .
?organization rdfs:label ?organizationLabel .
}
} ORDER BY ?organizationLabel
</query-select>
<query-construct>
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX obo: &lt;http://purl.obolibrary.org/obo/&gt;
CONSTRUCT {
?subject ?property ?administratorRole .
?administratorRole a core:AdministratorRole .
?administratorRole obo:RO_0000052 ?organization .
?organization a foaf:Organization .
?organization obo:RO_0000053 ?administratorRole .
?organization rdfs:label ?organizationLabel .
} WHERE {
{
?subject ?property ?administratorRole .
?administratorRole a core:AdministratorRole .
} UNION {
?subject ?property ?administratorRole .
?administratorRole a core:AdministratorRole .
?administratorRole obo:RO_0000052 ?organization .
?organization a foaf:Organization .
?organization obo:RO_0000053 ?administratorRole .
?organization rdfs:label ?organizationLabel .
}
}
</query-construct>
<template>propStatement-grantAdministeredBy.ftl</template>
</list-view-config>

View file

@ -0,0 +1,159 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<!-- See guidelines in vitro/doc/list_view_configuration_guidelines.txt -->
<list-view-config>
<query-select>
PREFIX afn: &lt;http://jena.hpl.hp.com/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;
SELECT DISTINCT <collated>?subclass</collated>
# send the property to the template, since this view supports multiple role properties
?property
?role
?roleLabel
?activity ?activityName
?activityLabel
?dateTimeStart ?dateTimeEnd
?hideThis
?objectType
WHERE {
?subject ?property ?role .
?role a core:ClinicalRole .
OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
?activity rdfs:label ?activityLabel
<collated>
?activity vitro:mostSpecificType ?subclass
</collated>
}
OPTIONAL { ?role core:roleContributesTo ?activity .
?activity rdfs:label ?activityLabel
<collated>
?activity vitro:mostSpecificType ?subclass
</collated>
}
OPTIONAL { ?role rdfs:label ?roleLabel }
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
} ORDER BY <collated>?subclass</collated> DESC(?dateTimeEnd) DESC(?dateTimeStart) ?activityLabel ?activityName
</query-select>
<query-construct>
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;
CONSTRUCT {
?subject ?property ?role .
?role a core:ClinicalRole .
?role core:roleContributesTo ?activity .
?activity vitro:mostSpecificType ?subclass .
} WHERE {
?subject ?property ?role .
?role a core:ClinicalRole .
?role core:roleContributesTo ?activity .
?activity vitro:mostSpecificType ?subclass
}
</query-construct>
<query-construct>
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;
CONSTRUCT {
?subject ?property ?role .
?role a core:ClinicalRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
?activity vitro:mostSpecificType ?subclass .
} WHERE {
?subject ?property ?role .
?role a core:ClinicalRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
?activity vitro:mostSpecificType ?subclass
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a core:ClinicalRole .
?role ?roleProperty ?roleValue .
?activity rdfs:label ?activityName
} WHERE {
{
?subject ?property ?role .
?role a core:ClinicalRole .
} UNION {
?subject ?property ?role .
?role a core:ClinicalRole .
?role ?roleProperty ?roleValue
} UNION {
?subject ?property ?role .
?role a core:ClinicalRole .
?role core:relates ?activity .
?activity rdfs:label ?activityName
} UNION {
?subject ?property ?role .
?role a core:ClinicalRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
?activity rdfs:label ?activityName
} UNION {
?subject ?property ?role .
?role a core:ClinicalRole .
?role core:roleContributesTo ?activity .
?activity rdfs:label ?activityName
}
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a core:ClinicalRole .
?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
} WHERE {
?subject ?property ?role .
?role a core:ClinicalRole .
?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a core:ClinicalRole .
?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
} WHERE {
?subject ?property ?role .
?role a core:ClinicalRole .
?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
</query-construct>
<template>propStatement-hasRole.ftl</template>
</list-view-config>

View file

@ -0,0 +1,188 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<!-- See guidelines in vitro/doc/list_view_configuration_guidelines.txt -->
<list-view-config>
<query-select>
PREFIX afn: &lt;http://jena.hpl.hp.com/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;
SELECT DISTINCT
?role
?activity ?activityName
?activityLabel
?awardedBy
?adminedBy
?awardedByLabel
?adminedByLabel
?dateTimeStartRole ?dateTimeEndRole
?dateTimeStartGrant ?dateTimeEndGrant
?hideThis
WHERE {
?subject ?property ?role .
?role a core:CoPrincipalInvestigatorRole .
OPTIONAL { ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity rdfs:label ?activityLabel .
LET (?activityName := afn:localname(?activity))
}
OPTIONAL { ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:grantAwardedBy ?awardedBy .
?awardedBy rdfs:label ?awardedByLabel
}
OPTIONAL { ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:administeredBy ?adminedBy .
?adminedBy rdfs:label ?adminedByLabel
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeIntervalRole core:start ?dateTimeStartValueRole .
?dateTimeStartValueRole core:dateTime ?dateTimeStartRole
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeIntervalRole core:end ?dateTimeEndValueRole .
?dateTimeEndValueRole core:dateTime ?dateTimeEndRole
}
OPTIONAL { ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeIntervalGrant core:start ?dateTimeStartValueGrant .
?dateTimeStartValueGrant core:dateTime ?dateTimeStartGrant
}
OPTIONAL { ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeIntervalGrant core:end ?dateTimeEndValueGrant .
?dateTimeEndValueGrant core:dateTime ?dateTimeEndGrant
}
OPTIONAL { ?role core:hideFromDisplay ?hideThis }
} ORDER BY DESC(?dateTimeEndRole) DESC(?dateTimeStartRole) DESC(?dateTimeEndGrant) DESC(?dateTimeStartGrant) ?activityLabel ?activityName
</query-select>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a core:CoPrincipalInvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?role ?roleProperty ?roleValue .
?activity rdfs:label ?activityLabel .
?activity core:grantAwardedBy ?awardedBy .
?awardedBy rdfs:label ?awardedByLabel .
?activity core:administeredBy ?adminedBy .
?adminedBy rdfs:label ?adminedByLabel
} WHERE {
{
?subject ?property ?role .
?role a core:CoPrincipalInvestigatorRole .
} UNION {
?subject ?property ?role .
?role a core:CoPrincipalInvestigatorRole .
?role ?roleProperty ?roleValue
} UNION {
?subject ?property ?role .
?role a core:CoPrincipalInvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity rdfs:label ?activityLabel
} UNION {
?subject ?property ?role .
?role a core:CoPrincipalInvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:grantAwardedBy ?awardedBy .
?awardedBy rdfs:label ?awardedByLabel
} UNION {
?subject ?property ?role .
?role a core:CoPrincipalInvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:administeredBy ?adminedBy .
?adminedBy rdfs:label ?adminedByLabel
}
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a core:CoPrincipalInvestigatorRole .
?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeIntervalRole core:start ?dateTimeStartValueRole .
?dateTimeStartValueRole core:dateTime ?dateTimeStartRole
} WHERE {
?subject ?property ?role .
?role a core:CoPrincipalInvestigatorRole .
?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeIntervalRole core:start ?dateTimeStartValueRole .
?dateTimeStartValueRole core:dateTime ?dateTimeStartRole
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a core:CoPrincipalInvestigatorRole .
?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeIntervalRole core:end ?dateTimeEndValueRole .
?dateTimeEndValueRole core:dateTime ?dateTimeEndRole
} WHERE {
?subject ?property ?role .
?role a core:CoPrincipalInvestigatorRole .
?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeIntervalRole core:end ?dateTimeEndValueRole .
?dateTimeEndValueRole core:dateTime ?dateTimeEndRole
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a core:CoPrincipalInvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeIntervalGrant core:start ?dateTimeStartValueGrant .
?dateTimeStartValueGrant core:dateTime ?dateTimeStartGrant
} WHERE {
?subject ?property ?role .
?role a core:CoPrincipalInvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeIntervalGrant core:start ?dateTimeStartValueGrant .
?dateTimeStartValueGrant core:dateTime ?dateTimeStartGrant
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a core:CoPrincipalInvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeIntervalGrant core:end ?dateTimeEndValueGrant .
?dateTimeEndValueGrant core:dateTime ?dateTimeEndGrant
} WHERE {
?subject ?property ?role .
?role a core:CoPrincipalInvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeIntervalGrant core:end ?dateTimeEndValueGrant .
?dateTimeEndValueGrant core:dateTime ?dateTimeEndGrant
}
</query-construct>
<template>propStatement-hasInvestigatorRole.ftl</template>
</list-view-config>

View file

@ -22,18 +22,19 @@
?subject ?property ?role
OPTIONAL { ?role core:roleContributesTo ?activity .
?activity vitro:mostSpecificType ?subclass
OPTIONAL { ?activity rdfs:label ?activityName }
OPTIONAL { ?subclass rdfs:label ?subclassLabel }
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval
OPTIONAL { ?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
?activity vitro:mostSpecificType ?subclass .
?subclass rdfs:label ?subclassLabel
}
OPTIONAL { ?role core:roleContributesTo ?activity .
?activity rdfs:label ?activityName
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
} ORDER BY <collated> ?subclass </collated> DESC(?dateTimeEnd) DESC(?dateTimeStart) ?activityName

View file

@ -24,144 +24,87 @@
WHERE {
?subject ?property ?role .
?role a ?objectType .
?role a core:InvestigatorRole .
?role vitro:mostSpecificType ?subclass
OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity
OPTIONAL { ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity rdfs:label ?activityLabel .
LET (?activityName := afn:localname(?activity))
OPTIONAL { ?activity rdfs:label ?activityLabel }
}
OPTIONAL { ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity
LET (?activityName := afn:localname(?activity))
OPTIONAL { ?activity rdfs:label ?activityLabel }
}
OPTIONAL { ?activity core:grantAwardedBy ?awardedBy .
OPTIONAL { ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:grantAwardedBy ?awardedBy .
?awardedBy rdfs:label ?awardedByLabel
}
OPTIONAL { ?activity core:administeredBy ?adminedBy .
OPTIONAL { ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:administeredBy ?adminedBy .
?adminedBy rdfs:label ?adminedByLabel
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeIntervalRole
OPTIONAL { ?dateTimeIntervalRole core:start ?dateTimeStartValueRole .
?dateTimeStartValueRole core:dateTime ?dateTimeStartRole
}
OPTIONAL { ?dateTimeIntervalRole core:end ?dateTimeEndValueRole .
?dateTimeEndValueRole core:dateTime ?dateTimeEndRole
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeIntervalRole core:start ?dateTimeStartValueRole .
?dateTimeStartValueRole core:dateTime ?dateTimeStartRole
}
OPTIONAL { ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?grant .
?grant core:dateTimeInterval ?dateTimeIntervalGrant
OPTIONAL { ?dateTimeIntervalGrant core:start ?dateTimeStartValueGrant .
?dateTimeStartValueGrant core:dateTime ?dateTimeStartGrant
}
OPTIONAL { ?dateTimeIntervalGrant core:end ?dateTimeEndValueGrant .
?dateTimeEndValueGrant core:dateTime ?dateTimeEndGrant
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeIntervalRole core:end ?dateTimeEndValueRole .
?dateTimeEndValueRole core:dateTime ?dateTimeEndRole
}
OPTIONAL { ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeIntervalGrant core:start ?dateTimeStartValueGrant .
?dateTimeStartValueGrant core:dateTime ?dateTimeStartGrant
}
OPTIONAL { ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeIntervalGrant core:end ?dateTimeEndValueGrant .
?dateTimeEndValueGrant core:dateTime ?dateTimeEndGrant
}
OPTIONAL { ?role core:hideFromDisplay ?hideThis }
FILTER ( bound(?activity) &amp;&amp; ?subclass = ?objectType)
FILTER ( ?subclass = core:InvestigatorRole)
} ORDER BY DESC(?dateTimeEndRole) DESC(?dateTimeStartRole) DESC(?dateTimeEndGrant) DESC(?dateTimeStartGrant) ?activityLabel ?activityName
</query-select>
<query-construct>
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;
CONSTRUCT {
?subject ?property ?role .
?role a ?objectType .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
?activity rdfs:label ?activityLabel
} WHERE {
{
?subject ?property ?role .
?role a ?objectType .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity
} UNION
{
?subject ?property ?role .
?role a ?objectType .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
?activity rdfs:label ?activityLabel
}
}
</query-construct>
<query-construct>
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;
CONSTRUCT {
?subject ?property ?role .
?role a ?objectType .
?role a core:InvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity rdfs:label ?activityLabel
} WHERE {
{
?subject ?property ?role .
?role a ?objectType .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity
} UNION
{
?subject ?property ?role .
?role a ?objectType .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity rdfs:label ?activityLabel
}
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a ?objectType .
?activity a core:Grant .
?role ?roleProperty ?roleValue .
?activity rdfs:label ?activityName .
?activity rdfs:label ?activityLabel .
?activity core:grantAwardedBy ?awardedBy .
?awardedBy rdfs:label ?awardedByLabel .
?activity core:administeredBy ?adminedBy .
?adminedBy rdfs:label ?adminedByLabel
} WHERE {
{
?subject ?property ?role
?subject ?property ?role .
?role a core:InvestigatorRole .
} UNION {
?subject ?property ?role .
?role a ?objectType .
?role a core:InvestigatorRole .
?role ?roleProperty ?roleValue
} UNION {
?subject ?property ?role .
?role a ?objectType .
?role a core:InvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity rdfs:label ?activityName
?activity a core:Grant .
?activity rdfs:label ?activityLabel
} UNION {
?subject ?property ?role .
?role a ?objectType .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
?activity rdfs:label ?activityName
} UNION {
?subject ?property ?role .
?role a ?objectType .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity core:grantAwardedBy ?awardedBy
} UNION {
?subject ?property ?role .
?role a ?objectType .
?role a core:InvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:grantAwardedBy ?awardedBy .
?awardedBy rdfs:label ?awardedByLabel
} UNION {
?subject ?property ?role .
?role a ?objectType .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity core:administeredBy ?adminedBy
} UNION {
?subject ?property ?role .
?role a ?objectType .
?role a core:InvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:administeredBy ?adminedBy .
?adminedBy rdfs:label ?adminedByLabel
}
@ -172,13 +115,13 @@
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a ?objectType .
?role a core:InvestigatorRole .
?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeIntervalRole core:start ?dateTimeStartValueRole .
?dateTimeStartValueRole core:dateTime ?dateTimeStartRole
} WHERE {
?subject ?property ?role .
?role a ?objectType .
?role a core:InvestigatorRole .
?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeIntervalRole core:start ?dateTimeStartValueRole .
?dateTimeStartValueRole core:dateTime ?dateTimeStartRole
@ -189,13 +132,13 @@
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a ?objectType .
?role a core:InvestigatorRole .
?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeIntervalRole core:end ?dateTimeEndValueRole .
?dateTimeEndValueRole core:dateTime ?dateTimeEndRole
} WHERE {
?subject ?property ?role .
?role a ?objectType .
?role a core:InvestigatorRole .
?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeIntervalRole core:end ?dateTimeEndValueRole .
?dateTimeEndValueRole core:dateTime ?dateTimeEndRole
@ -205,16 +148,18 @@
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a ?objectType .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?grant .
?grant core:dateTimeInterval ?dateTimeIntervalGrant .
?role a core:InvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeIntervalGrant core:start ?dateTimeStartValueGrant .
?dateTimeStartValueGrant core:dateTime ?dateTimeStartGrant
} WHERE {
?subject ?property ?role .
?role a ?objectType .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?grant .
?grant core:dateTimeInterval ?dateTimeIntervalGrant .
?role a core:InvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeIntervalGrant core:start ?dateTimeStartValueGrant .
?dateTimeStartValueGrant core:dateTime ?dateTimeStartGrant
}
@ -224,16 +169,18 @@
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a ?objectType .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?grant .
?grant core:dateTimeInterval ?dateTimeIntervalGrant .
?role a core:InvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeIntervalGrant core:end ?dateTimeEndValueGrant .
?dateTimeEndValueGrant core:dateTime ?dateTimeEndGrant
} WHERE {
?subject ?property ?role .
?role a ?objectType .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?grant .
?grant core:dateTimeInterval ?dateTimeIntervalGrant .
?role a core:InvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeIntervalGrant core:end ?dateTimeEndValueGrant .
?dateTimeEndValueGrant core:dateTime ?dateTimeEndGrant
}

View file

@ -30,68 +30,50 @@
OPTIONAL { ?role rdfs:label ?roleLabel }
OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation
OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation a vivo:Presentation .
?presentation rdfs:label ?presentationLabel .
LET (?presentationName := afn:localname(?presentation))
OPTIONAL { ?presentation rdfs:label ?presentationLabel }
OPTIONAL { ?conference a bibo:Conference .
OPTIONAL { ?conference rdfs:label ?conferenceLabel }
{
?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?conference
} UNION {
?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation
}
}
OPTIONAL {
{
?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?workshop .
?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?conference
} UNION {
?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?workshop
}
OPTIONAL { ?conference rdfs:label ?conferenceLabel }
}
OPTIONAL { ?series a vivo:EventSeries .
OPTIONAL { ?series rdfs:label ?seriesLabel }
{
?presentation vivo:inEventWithin ?series
} UNION {
?series vivo:seriesForEvent ?presentation
}
}
OPTIONAL {
{
?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?workshop .
?workshop vivo:inEventSeries ?series
} UNION {
?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?series vivo:seriesForEvent ?workshop
}
OPTIONAL { ?series rdfs:label ?seriesLabel }
}
<collated>
?presentation vitro:mostSpecificType ?subclass .
{
?subclass rdfs:subClassOf vivo:Presentation
} UNION {
?subclass owl:equivalentClass vivo:Presentation
}
</collated>
}
OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation a vivo:Presentation .
?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?conference .
?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?conference a bibo:Conference .
?conference rdfs:label ?conferenceLabel
}
OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation a vivo:Presentation .
?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?workshop .
?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?conference .
?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?workshop .
?conference rdfs:label ?conferenceLabel
}
OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation a vivo:Presentation .
?presentation vivo:inEventWithin ?series .
?series vivo:seriesForEvent ?presentation .
?series rdfs:label ?seriesLabel
}
OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation a vivo:Presentation .
?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?workshop .
?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?workshop vivo:inEventSeries ?series .
?series vivo:seriesForEvent ?workshop .
?series rdfs:label ?seriesLabel
}
<collated>
OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation a vivo:Presentation .
?presentation vitro:mostSpecificType ?subclass .
}
</collated>
OPTIONAL { ?role vivo:dateTimeInterval ?dateTimeInterval
OPTIONAL { ?dateTimeInterval vivo:start ?dateTimeStartValue .
?dateTimeStartValue vivo:dateTime ?dateTime
}
OPTIONAL { ?role vivo:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval vivo:start ?dateTimeStartValue .
?dateTimeStartValue vivo:dateTime ?dateTime
}
<critical-data-required>
@ -103,42 +85,16 @@
<query-construct>
PREFIX vivo: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX owl: &lt;http://www.w3.org/2002/07/owl#&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;
CONSTRUCT {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role rdfs:label ?roleLabel .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation a vivo:Presentation .
?presentation rdfs:label ?presentationLabel .
?presentation vitro:mostSpecificType ?subclass .
?subclass rdfs:subClassOf vivo:Presentation .
?subclass owl:equivalentClass vivo:Presentation .
} WHERE {
{
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation vitro:mostSpecificType ?subclass .
?subclass rdfs:subClassOf vivo:Presentation
} UNION {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation vitro:mostSpecificType ?subclass .
?subclass owl:equivalentClass vivo:Presentation
}
}
</query-construct>
<query-construct>
PREFIX vivo: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role ?roleProperty ?roleValue .
?presentation rdfs:label ?presentationLabel
} WHERE {
{
?subject ?property ?role .
@ -146,12 +102,19 @@
} UNION {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role ?roleProperty ?roleValue
?role rdfs:label ?roleLabel .
} UNION {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation a vivo:Presentation .
?presentation rdfs:label ?presentationLabel
} UNION {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation a vivo:Presentation .
?presentation vitro:mostSpecificType ?subclass .
}
}
</query-construct>
@ -164,8 +127,10 @@
CONSTRUCT {
?subject ?property ?role .
?role a vivo:PresenterRole .
?conference a bibo:Conference .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation a vivo:Presentation .
?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?conference .
?conference a bibo:Conference .
?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?conference rdfs:label ?conferenceLabel
} WHERE {
@ -173,28 +138,14 @@
{
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?conference a bibo:Conference .
?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?conference
} UNION {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?conference a bibo:Conference .
?presentation a vivo:Presentation .
?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?conference .
?conference rdfs:label ?conferenceLabel
} UNION {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?conference a bibo:Conference .
?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation
} UNION {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?conference a bibo:Conference .
?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?conference a bibo:Conference .
?conference rdfs:label ?conferenceLabel
}
}
@ -208,42 +159,31 @@
CONSTRUCT {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation a vivo:Presentation .
?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?workshop .
?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?workshop a bibo:Workshop .
?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?conference .
?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?workshop .
?conference a bibo:Conference .
?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?workshop .
?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?conference rdfs:label ?conferenceLabel
} WHERE {
{
?subject ?property ?role .
?role a vivo:PresenterRole .
} UNION {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?conference a bibo:Conference .
?presentation a vivo:Presentation .
?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?workshop .
?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?conference
} UNION {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?conference a bibo:Conference .
?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?workshop .
?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?conference .
?conference rdfs:label ?conferenceLabel
} UNION {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?conference a bibo:Conference .
?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?workshop .
?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation
} UNION {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?conference a bibo:Conference .
?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?workshop .
?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?workshop a bibo:Workshop .
?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?conference .
?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?workshop .
?conference a bibo:Conference .
?conference rdfs:label ?conferenceLabel
}
}
@ -257,6 +197,8 @@
CONSTRUCT {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation a vivo:Presentation .
?series a vivo:EventSeries .
?presentation vivo:inEventSeries ?series .
?series vivo:seriesForEvent ?presentation .
@ -266,27 +208,13 @@
{
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?series a vivo:EventSeries .
?presentation vivo:inEventSeries ?series
} UNION {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation a vivo:Presentation .
?series a vivo:EventSeries .
?presentation vivo:inEventSeries ?series .
?series rdfs:label ?seriesLabel
} UNION {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?series a vivo:EventSeries .
?series vivo:seriesForEvent ?presentation
} UNION {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?series a vivo:EventSeries .
?series vivo:seriesForEvent ?presentation .
?series rdfs:label ?seriesLabel
}
@ -301,42 +229,30 @@
CONSTRUCT {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation a vivo:Presentation .
?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?workshop .
?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?workshop a bibo:Workshop .
?workshop vivo:inEventSeries ?series .
?series vivo:seriesForEvent ?workshop .
?series a vivo:EventSeries .
?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?workshop .
?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?series rdfs:label ?seriesLabel
} WHERE {
{
?subject ?property ?role .
?role a vivo:PresenterRole .
} UNION {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?series a vivo:EventSeries .
?presentation a vivo:Presentation .
?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?workshop .
?workshop vivo:inEventSeries ?series
} UNION {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?series a vivo:EventSeries .
?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?workshop .
?workshop vivo:inEventSeries ?series .
?series rdfs:label ?seriesLabel
} UNION {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?series a vivo:EventSeries .
?series vivo:seriesForEvent ?workshop .
?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation
} UNION {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?series a vivo:EventSeries .
?series vivo:seriesForEvent ?workshop .
?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?workshop a bibo:Workshop .
?workshop vivo:inEventSeries ?series .
?series vivo:seriesForEvent ?workshop .
?series a vivo:EventSeries .
?series rdfs:label ?seriesLabel
}
}

View file

@ -0,0 +1,188 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<!-- See guidelines in vitro/doc/list_view_configuration_guidelines.txt -->
<list-view-config>
<query-select>
PREFIX afn: &lt;http://jena.hpl.hp.com/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;
SELECT DISTINCT
?role
?activity ?activityName
?activityLabel
?awardedBy
?adminedBy
?awardedByLabel
?adminedByLabel
?dateTimeStartRole ?dateTimeEndRole
?dateTimeStartGrant ?dateTimeEndGrant
?hideThis
WHERE {
?subject ?property ?role .
?role a core:PrincipalInvestigatorRole .
OPTIONAL { ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity rdfs:label ?activityLabel .
LET (?activityName := afn:localname(?activity))
}
OPTIONAL { ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:grantAwardedBy ?awardedBy .
?awardedBy rdfs:label ?awardedByLabel
}
OPTIONAL { ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:administeredBy ?adminedBy .
?adminedBy rdfs:label ?adminedByLabel
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeIntervalRole core:start ?dateTimeStartValueRole .
?dateTimeStartValueRole core:dateTime ?dateTimeStartRole
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeIntervalRole core:end ?dateTimeEndValueRole .
?dateTimeEndValueRole core:dateTime ?dateTimeEndRole
}
OPTIONAL { ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeIntervalGrant core:start ?dateTimeStartValueGrant .
?dateTimeStartValueGrant core:dateTime ?dateTimeStartGrant
}
OPTIONAL { ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeIntervalGrant core:end ?dateTimeEndValueGrant .
?dateTimeEndValueGrant core:dateTime ?dateTimeEndGrant
}
OPTIONAL { ?role core:hideFromDisplay ?hideThis }
} ORDER BY DESC(?dateTimeEndRole) DESC(?dateTimeStartRole) DESC(?dateTimeEndGrant) DESC(?dateTimeStartGrant) ?activityLabel ?activityName
</query-select>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a core:PrincipalInvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?role ?roleProperty ?roleValue .
?activity rdfs:label ?activityLabel .
?activity core:grantAwardedBy ?awardedBy .
?awardedBy rdfs:label ?awardedByLabel .
?activity core:administeredBy ?adminedBy .
?adminedBy rdfs:label ?adminedByLabel
} WHERE {
{
?subject ?property ?role .
?role a core:PrincipalInvestigatorRole .
} UNION {
?subject ?property ?role .
?role a core:PrincipalInvestigatorRole .
?role ?roleProperty ?roleValue
} UNION {
?subject ?property ?role .
?role a core:PrincipalInvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity rdfs:label ?activityLabel
} UNION {
?subject ?property ?role .
?role a core:PrincipalInvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:grantAwardedBy ?awardedBy .
?awardedBy rdfs:label ?awardedByLabel
} UNION {
?subject ?property ?role .
?role a core:PrincipalInvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:administeredBy ?adminedBy .
?adminedBy rdfs:label ?adminedByLabel
}
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a core:PrincipalInvestigatorRole .
?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeIntervalRole core:start ?dateTimeStartValueRole .
?dateTimeStartValueRole core:dateTime ?dateTimeStartRole
} WHERE {
?subject ?property ?role .
?role a core:PrincipalInvestigatorRole .
?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeIntervalRole core:start ?dateTimeStartValueRole .
?dateTimeStartValueRole core:dateTime ?dateTimeStartRole
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a core:PrincipalInvestigatorRole .
?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeIntervalRole core:end ?dateTimeEndValueRole .
?dateTimeEndValueRole core:dateTime ?dateTimeEndRole
} WHERE {
?subject ?property ?role .
?role a core:PrincipalInvestigatorRole .
?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeIntervalRole core:end ?dateTimeEndValueRole .
?dateTimeEndValueRole core:dateTime ?dateTimeEndRole
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a core:PrincipalInvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeIntervalGrant core:start ?dateTimeStartValueGrant .
?dateTimeStartValueGrant core:dateTime ?dateTimeStartGrant
} WHERE {
?subject ?property ?role .
?role a core:PrincipalInvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeIntervalGrant core:start ?dateTimeStartValueGrant .
?dateTimeStartValueGrant core:dateTime ?dateTimeStartGrant
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a core:PrincipalInvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeIntervalGrant core:end ?dateTimeEndValueGrant .
?dateTimeEndValueGrant core:dateTime ?dateTimeEndGrant
} WHERE {
?subject ?property ?role .
?role a core:PrincipalInvestigatorRole .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity a core:Grant .
?activity core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeIntervalGrant core:end ?dateTimeEndValueGrant .
?dateTimeEndValueGrant core:dateTime ?dateTimeEndGrant
}
</query-construct>
<template>propStatement-hasInvestigatorRole.ftl</template>
</list-view-config>

View file

@ -22,18 +22,20 @@
?subject ?property ?role
OPTIONAL { ?role core:roleContributesTo ?activity .
?activity vitro:mostSpecificType ?subclass
OPTIONAL { ?activity rdfs:label ?activityName }
OPTIONAL { ?subclass rdfs:label ?subclassLabel }
}
?activity rdfs:label ?activityName .
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval
OPTIONAL { ?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
OPTIONAL { ?role core:roleContributesTo ?activity .
?activity vitro:mostSpecificType ?subclass .
?subclass rdfs:label ?subclassLabel
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
} ORDER BY <collated> ?subclass </collated> DESC(?dateTimeEnd) DESC(?dateTimeStart) ?activityName
@ -60,20 +62,11 @@
?subject ?property ?role .
?role a core:ReviewerRole .
?role vitro:mostSpecificType ?roleSubclass
} UNION {
?subject ?property ?role .
?role a core:ReviewerRole .
?role core:roleContributesTo ?activity
} UNION {
?subject ?property ?role .
?role a core:ReviewerRole .
?role core:roleContributesTo ?activity .
?activity rdfs:label ?activityName .
} UNION {
?subject ?property ?role .
?role a core:ReviewerRole .
?role core:roleContributesTo ?activity .
?activity vitro:mostSpecificType ?subclass
} UNION {
?subject ?property ?role .
?role a core:ReviewerRole .

View file

@ -23,52 +23,37 @@
WHERE {
?subject ?property ?role .
?role a ?objectType .
?role vitro:mostSpecificType ?roleSubclass
OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity
LET (?activityName := afn:localname(?activity))
OPTIONAL { ?activity rdfs:label ?activityLabel }
OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
?activity rdfs:label ?activityLabel
<collated>
?activity vitro:mostSpecificType ?subclass
</collated>
}
OPTIONAL { ?role core:relates ?activity
LET (?activityName := afn:localname(?activity))
OPTIONAL { ?activity rdfs:label ?activityLabel }
OPTIONAL { ?role core:relates ?activity .
?activity rdfs:label ?activityLabel
<collated>
?activity vitro:mostSpecificType ?subclass
</collated>
}
OPTIONAL { ?role core:roleContributesTo ?activity
LET (?activityName := afn:localname(?activity))
OPTIONAL { ?activity rdfs:label ?activityLabel }
<collated>
?activity vitro:mostSpecificType ?subclass
</collated>
}
<!-- for research activities where the activity involves a grant -->
OPTIONAL { ?role core:relatedBy ?activity .
LET (?activityName := afn:localname(?activity))
OPTIONAL { ?activity rdfs:label ?activityLabel }
OPTIONAL { ?role core:roleContributesTo ?activity .
?activity rdfs:label ?activityLabel
<collated>
?activity vitro:mostSpecificType ?subclass
</collated>
}
OPTIONAL { ?role rdfs:label ?roleLabel }
OPTIONAL { ?role core:hideFromDisplay ?hideThis }
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval
OPTIONAL { ?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
FILTER ( bound(?activity) &amp;&amp; ?objectType = ?roleSubclass )
} ORDER BY <collated>?subclass</collated> DESC(?dateTimeEnd) DESC(?dateTimeStart) ?activityLabel ?activityName
</query-select>
@ -88,22 +73,6 @@
}
</query-construct>
<query-construct>
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;
CONSTRUCT {
?subject ?property ?role .
?role core:relatedBy ?activity .
?activity vitro:mostSpecificType ?subclass .
} WHERE {
?subject ?property ?role .
?role core:relatedBy ?activity .
?activity vitro:mostSpecificType ?subclass
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
@ -145,26 +114,27 @@
?activity rdfs:label ?activityName
} WHERE {
{
?subject ?property ?role
?subject ?property ?role .
?role a ?objectType .
} UNION {
?subject ?property ?role .
?role a ?objectType .
?role ?roleProperty ?roleValue
} UNION {
?subject ?property ?role .
?role a ?objectType .
?role core:relates ?activity .
?activity rdfs:label ?activityName
} UNION {
?subject ?property ?role .
?role a ?objectType .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
?activity rdfs:label ?activityName
} UNION {
?subject ?property ?role .
?role a ?objectType .
?role core:roleContributesTo ?activity .
?activity rdfs:label ?activityName
} UNION {
?subject ?property ?role .
?role core:relatedBy ?activity .
?activity rdfs:label ?activityName
}
}
</query-construct>

View file

@ -18,13 +18,15 @@
?subject ?property ?authorship .
OPTIONAL { ?authorship core:rank ?rank }
OPTIONAL { ?authorship core:relates ?person .
?person a foaf:Person .
?person rdfs:label ?personName
<collated>
OPTIONAL { ?person vitro:mostSpecificType ?subclass .
?subclass rdfs:subClassOf foaf:Person
}
</collated>
?person a foaf:Person .
?person rdfs:label ?personName
<collated>
OPTIONAL { ?authorship core:relates ?person .
?person a foaf:Person .
?person vitro:mostSpecificType ?subclass .
?subclass rdfs:subClassOf foaf:Person
}
</collated>
}
<critical-data-required>
FILTER ( bound(?person) )
@ -32,16 +34,6 @@
} ORDER BY <collated> ?subclass </collated> ?rank ?personName
</query-select>
<query-construct>
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
CONSTRUCT {
?subclass rdfs:subClassOf foaf:Person
} WHERE {
?subclass rdfs:subClassOf foaf:Person
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
@ -54,7 +46,8 @@
?authorship core:relates ?person .
?person a foaf:Person .
?person rdfs:label ?personName .
?person vitro:mostSpecificType ?subclass
?person vitro:mostSpecificType ?subclass .
?subclass rdfs:subClassOf foaf:Person
} WHERE {
{
?subject ?property ?authorship .
@ -75,7 +68,8 @@
?authorship core:relates ?person .
?person a foaf:Person .
?person rdfs:label ?personName .
?person vitro:mostSpecificType ?subclass
?person vitro:mostSpecificType ?subclass .
?subclass rdfs:subClassOf foaf:Person
}
}
</query-construct>

View file

@ -18,30 +18,22 @@
?subject ?property ?editorship .
OPTIONAL { ?editorship core:rank ?rank }
OPTIONAL { ?editorship core:relates ?person .
?person a foaf:Person .
?person rdfs:label ?personName
<collated>
OPTIONAL { ?person vitro:mostSpecificType ?subclass .
?subclass rdfs:subClassOf foaf:Person
}
</collated>
}
?person a foaf:Person .
?person rdfs:label ?personName
}
<collated>
OPTIONAL { ?editorship core:relates ?person .
?person a foaf:Person .
?person vitro:mostSpecificType ?subclass .
?subclass rdfs:subClassOf foaf:Person
}
</collated>
<critical-data-required>
FILTER ( bound(?person) )
</critical-data-required>
} ORDER BY <collated> ?subclass </collated> ?rank ?personName
</query-select>
<query-construct>
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
CONSTRUCT {
?subclass rdfs:subClassOf foaf:Person
} WHERE {
?subclass rdfs:subClassOf foaf:Person
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
@ -54,7 +46,8 @@
?editorship core:relates ?person .
?person a foaf:Person .
?person rdfs:label ?personName .
?person vitro:mostSpecificType ?subclass
?person vitro:mostSpecificType ?subclass .
?subclass rdfs:subClassOf foaf:Person
} WHERE {
{
?subject ?property ?editorship .
@ -75,7 +68,8 @@
?editorship core:relates ?person .
?person a foaf:Person .
?person rdfs:label ?personName .
?person vitro:mostSpecificType ?subclass
?person vitro:mostSpecificType ?subclass .
?subclass rdfs:subClassOf foaf:Person
}
}
</query-construct>

View file

@ -27,27 +27,25 @@
?subject ?property ?issuedCredential .
?issuedCredential a core:IssuedCredential .
LET (?issuedCredentialLocal := afn:localname(?issuedCredential))
OPTIONAL { ?issuedCredential rdfs:label ?issuedCredentialLabel }
OPTIONAL {?issuedCredential rdfs:label ?issuedCredentialLabel }
OPTIONAL { ?issuedCredential core:relates ?credential .
?credential a core:Credential .
?credential core:relatedBy ?issuedCredential .
?credential rdfs:label ?credentialLabel .
LET (?credentialLocal := afn:localname(?credential))
?credential core:relatedBy ?issuedCredential
OPTIONAL { ?credential rdfs:label ?credentialLabel }
}
OPTIONAL { ?issuedCredential core:dateTimeInterval ?dateTimeInterval
OPTIONAL { ?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
}
OPTIONAL { ?issuedCredential core:dateTimeInterval ?dateTimeInterval
OPTIONAL { ?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
}
OPTIONAL { ?issuedCredential core:dateTimeValue ?dateTimeValue
OPTIONAL { ?dateTimeValue core:dateTime ?dateTime }
}
} ORDER BY DESC(?dateTime) DESC(?dateTimeEnd)
}
OPTIONAL { ?issuedCredential core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?issuedCredential core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
OPTIONAL { ?issuedCredential core:dateIssued ?dateTimeValue .
?dateTimeValue core:dateTime ?dateTime
}
} ORDER BY DESC(?dateTime) DESC(?dateTimeEnd)
</query-select>
<query-construct>
@ -136,12 +134,12 @@
CONSTRUCT {
?subject ?property ?issuedCredential .
?issuedCredential a core:IssuedCredential .
?issuedCredential core:dateTimeValue ?dateTimeValue .
?issuedCredential core:dateIssued ?dateTimeValue .
?dateTimeValue core:dateTime ?dateTime
} WHERE {
?subject ?property ?issuedCredential .
?issuedCredential a core:IssuedCredential .
?issuedCredential core:dateTimeValue ?dateTimeValue .
?issuedCredential core:dateIssued ?dateTimeValue .
?dateTimeValue core:dateTime ?dateTime
}
</query-construct>

View file

@ -29,16 +29,15 @@
</collated>
OPTIONAL { ?position rdfs:label ?positionTitle }
OPTIONAL { ?position core:hideFromDisplay ?hideThis }
OPTIONAL { ?position core:dateTimeInterval ?dateTimeInterval
OPTIONAL { ?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
# Get current positions only: end date is either null or not in the past
OPTIONAL { ?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
# NOT EXISTS { ?position core:hideFromDisplay ?hideThis }
OPTIONAL { ?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
# Get current positions only: end date is either null or not in the past
FILTER ( !bound(?dateTimeEnd) ||
afn:substring(str(?dateTimeEnd), 0, 4) &gt;= afn:substring(str(afn:now()), 0, 4) )
<critical-data-required>

View file

@ -19,27 +19,33 @@
?org ?orgName
?middleOrg ?middleOrgName
?outerOrg ?outerOrgName
?dateTimeStart ?dateTimeEnd WHERE {
?subject ?property ?position
?dateTimeStart ?dateTimeEnd
WHERE {
?subject ?property ?position .
OPTIONAL { ?position core:relates ?org .
?org rdfs:label ?orgName
OPTIONAL { ?org obo:BFO_0000050 ?middleOrg .
?middleOrg rdfs:label ?middleOrgName
OPTIONAL { ?middleOrg obo:BFO_0000050 ?outerOrg .
?outerOrg rdfs:label ?outerOrgName
}
}
}
OPTIONAL { ?position core:relates ?org .
?org rdfs:label ?orgName .
?org obo:BFO_0000050 ?middleOrg .
?middleOrg rdfs:label ?middleOrgName
}
OPTIONAL { ?position core:relates ?org .
?org rdfs:label ?orgName .
?org obo:BFO_0000050 ?middleOrg .
?middleOrg obo:BFO_0000050 ?outerOrg .
?outerOrg rdfs:label ?outerOrgName
}
OPTIONAL { ?position rdfs:label ?positionTitle }
OPTIONAL { ?position core:hrJobTitle ?hrJobTitle }
OPTIONAL { ?position core:rank ?rank }
OPTIONAL { ?position core:dateTimeInterval ?dateTimeInterval
OPTIONAL { ?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
OPTIONAL { ?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
<collated>
OPTIONAL { ?position vitro:mostSpecificType ?subclass .
@ -75,7 +81,6 @@
PREFIX obo: &lt;http://purl.obolibrary.org/obo/&gt;
CONSTRUCT {
?subject ?property ?position .
?position a core:Position .
?position ?positionProperty ?positionValue .
?org rdfs:label ?orgName .
?org obo:BFO_0000050 ?middleOrg .
@ -86,26 +91,13 @@
{
?subject ?property ?position .
?position a core:Position .
} UNION {
?subject ?property ?position .
?position a core:Position .
?position ?positionProperty ?positionValue
} UNION {
?subject ?property ?position .
?position a core:Position .
?position core:rank ?rank
} UNION {
?subject ?property ?position .
?position a core:Position .
?position core:relates ?org .
?org a foaf:Organization .
?org rdfs:label ?orgName
} UNION {
?subject ?property ?position .
?position a core:Position .
?position core:relates ?org .
?org a foaf:Organization .
?org obo:BFO_0000050 ?middleOrg
} UNION {
?subject ?property ?position .
?position a core:Position .
@ -119,13 +111,6 @@
?position core:relates ?org .
?org a foaf:Organization .
?org obo:BFO_0000050 ?middleOrg .
?middleOrg obo:BFO_0000050 ?outerOrg
} UNION {
?subject ?property ?position .
?position a core:Position .
?position core:positionInOrganization ?org .
?org a foaf:Organization .
?org obo:BFO_0000050 ?middleOrg .
?middleOrg obo:BFO_0000050 ?outerOrg .
?outerOrg rdfs:label ?outerOrgName
}
@ -136,28 +121,22 @@
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?position .
?position a core:Position .
?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
} WHERE {
?subject ?property ?position .
?position a core:Position .
?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
</query-construct>
<!--
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?position .
?position a core:Position .
?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
@ -169,6 +148,6 @@
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
</query-construct>
-->
<template>propStatement-personInPosition.ftl</template>
</list-view-config>

View file

@ -12,8 +12,8 @@
?preferredTitle
WHERE {
?subject ?property ?vcard .
?vcard vcard:hasTitle ?title
OPTIONAL { ?title vcard:title ?preferredTitle }
?vcard vcard:hasTitle ?title .
?title vcard:title ?preferredTitle
}
</query-select>

View file

@ -30,23 +30,27 @@ http://vivoweb.org/ontology/core#realizedRole and http://vivoweb.org/ontology/co
# We need ?subclass in the uncollated query to get the roleTypeLabel
# for roles that have no label.
OPTIONAL { ?role vitro:mostSpecificType ?subclass . }
OPTIONAL { ?role vitro:mostSpecificType ?subclass .
OPTIONAL { ?subclass rdfs:label ?roleTypeLabel }
OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/RO_0000052&gt; ?indivInRole
OPTIONAL { ?indivInRole rdfs:label ?indivLabel }
}
OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000055&gt; ?indivInRole
OPTIONAL { ?indivInRole rdfs:label ?indivLabel }
}
?subclass rdfs:label ?roleTypeLabel
}
OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/RO_0000052&gt; ?indivInRole }
OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/RO_0000052&gt; ?indivInRole .
?indivInRole rdfs:label ?indivLabel
}
OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000055&gt; ?indivInRole .
}
OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000055&gt; ?indivInRole .
?indivInRole rdfs:label ?indivLabel
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval
OPTIONAL { ?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
<critical-data-required>
FILTER ( bound(?indivInRole) )

View file

@ -0,0 +1,157 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<!-- See guidelines in vitro/doc/list_view_configuration_guidelines.txt -->
<list-view-config>
<query-select>
PREFIX afn: &lt;http://jena.hpl.hp.com/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;
SELECT DISTINCT <collated>?subclass</collated>
# send the property to the template, since this view supports multiple role properties
?property
?role
?roleLabel
?activity ?activityName
?activityLabel
?dateTimeStart ?dateTimeEnd
?hideThis
?objectType
WHERE {
?subject ?property ?role .
?role a core:ResearcherRole .
?role vitro:mostSpecificType ?roleSubclass
OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
?activity rdfs:label ?activityLabel
<collated>
?activity vitro:mostSpecificType ?subclass
</collated>
}
OPTIONAL { ?role core:relatedBy ?activity .
?activity rdfs:label ?activityLabel
<collated>
?activity vitro:mostSpecificType ?subclass
</collated>
}
OPTIONAL { ?role rdfs:label ?roleLabel }
OPTIONAL { ?role core:hideFromDisplay ?hideThis }
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
FILTER ( ?roleSubclass = core:ResearcherRole)
} ORDER BY <collated>?subclass</collated> DESC(?dateTimeEnd) DESC(?dateTimeStart) ?activityLabel ?activityName
</query-select>
<query-construct>
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;
CONSTRUCT {
?subject ?property ?role .
?role a core:ResearcherRole .
?role core:relatedBy ?activity .
?activity vitro:mostSpecificType ?subclass .
} WHERE {
?subject ?property ?role .
?role a core:ResearcherRole .
?role core:relatedBy ?activity .
?activity vitro:mostSpecificType ?subclass
}
</query-construct>
<query-construct>
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;
CONSTRUCT {
?subject ?property ?role .
?role a core:ResearcherRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
?activity vitro:mostSpecificType ?subclass .
} WHERE {
?subject ?property ?role .
?role a core:ResearcherRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
?activity vitro:mostSpecificType ?subclass
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a core:ResearcherRole .
?role ?roleProperty ?roleValue .
?activity rdfs:label ?activityName
} WHERE {
{
?subject ?property ?role .
?role a core:ResearcherRole .
} UNION {
?subject ?property ?role .
?role a core:ResearcherRole .
?role ?roleProperty ?roleValue
} UNION {
?subject ?property ?role .
?role a core:ResearcherRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
?activity rdfs:label ?activityName
} UNION {
?subject ?property ?role .
?role a core:ResearcherRole .
?role core:relatedBy ?activity .
?activity rdfs:label ?activityName
}
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a core:ResearcherRole .
?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
} WHERE {
?subject ?property ?role .
?role a core:ResearcherRole .
?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a core:ResearcherRole .
?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
} WHERE {
?subject ?property ?role .
?role a core:ResearcherRole .
?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
</query-construct>
<template>propStatement-hasRole.ftl</template>
</list-view-config>

View file

@ -12,67 +12,78 @@
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;
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
PREFIX obo: &lt;http://purl.obolibrary.org/obo/&gt;
PREFIX vcard: &lt;http://www.w3.org/2006/vcard/ns#&gt;
SELECT DISTINCT
?person
?personName
?posnLabel
?org
?orgLabel
?type
?personType
?title
WHERE {
?subject ?property ?person .
?person core:personInPosition ?position .
OPTIONAL { ?person rdfs:label ?personName }
OPTIONAL { ?person core:preferredTitle ?title }
OPTIONAL { ?person vitro:mostSpecificType ?personType .
?personType rdfs:subClassOf foaf:Person
OPTIONAL { ?person core:relatedBy ?position .
?position a core:Position
}
OPTIONAL { ?position rdfs:label ?posnLabel }
OPTIONAL { ?position core:positionInOrganization ?org .
OPTIONAL { ?person core:relatedBy ?position .
?position a core:Position .
?position rdfs:label ?posnLabel
}
OPTIONAL { ?person rdfs:label ?personName }
OPTIONAL { ?person obo:ARG_2000028 ?vcard .
?vcard vcard:hasTitle ?titleObj .
?titleObj vcard:title ?title
}
OPTIONAL { ?person core:relatedBy ?position .
?position a core:Position .
?position core:relates ?org .
?org a foaf:Organization .
?org rdfs:label ?orgLabel
}
OPTIONAL { ?position core:hrJobTitle ?hrJobTitle }
OPTIONAL { ?position core:rank ?rank }
}
ORDER BY ?personName ?type
ORDER BY ?personName
</query-select>
<query-construct>
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
CONSTRUCT {
?subject ?property ?person .
?person core:personInPosition ?position .
?position rdfs:label ?positionLabel .
?position core:positionInOrganization ?org .
?person core:relatedBy ?position .
?position a core:Position .
?position rdfs:label ?posnLabel .
?position core:relates ?org .
?org a foaf:Organization .
?org rdfs:label ?orgName .
?position core:hrJobTitle ?hrJobTitle
} WHERE {
{
?subject ?property ?person
} UNION {
?subject ?property ?person .
?person core:personInPosition ?position
?person core:relatedBy ?position .
?position a core:Position .
} UNION {
?subject ?property ?person .
?person core:personInPosition ?position .
?position rdfs:label ?positionLabel
?person core:relatedBy ?position .
?position a core:Position .
?position rdfs:label ?posnLabel
} UNION {
?subject ?property ?person .
?person core:personInPosition ?position .
?position core:positionInOrganization ?org
?person core:relatedBy ?position .
?position a core:Position .
?position core:relates ?org .
?org a foaf:Organization .
} UNION {
?subject ?property ?person .
?person core:personInPosition ?position .
?position core:positionInOrganization ?org .
?person core:relatedBy ?position .
?position a core:Position .
?position core:relates ?org .
?org a foaf:Organization .
?org rdfs:label ?orgName
} UNION {
?subject ?property ?person .
?person core:personInPosition ?position .
?position core:hrJobTitle ?hrJobTitle
}
}
</query-construct>
@ -82,26 +93,26 @@
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
PREFIX vitro: &lt;http://vitro.mannlib.cornell.edu/ns/vitro/0.7#&gt;
PREFIX obo: &lt;http://purl.obolibrary.org/obo/&gt;
PREFIX vcard: &lt;http://www.w3.org/2006/vcard/ns#&gt;
CONSTRUCT {
?subject ?property ?person .
?person rdfs:label ?label .
?person core:preferredTitle ?title .
?person vitro:mostSpecificType ?personType .
?personType rdfs:subClassOf foaf:Person
?person rdfs:label ?personName .
?person obo:ARG_2000028 ?vcard .
?vcard vcard:hasTitle ?titleObj .
?titleObj vcard:title ?title
} WHERE {
{
?subject ?property ?person
} UNION {
?subject ?property ?person .
?person rdfs:label ?label
} UNION {
?person rdfs:label ?personName
} UNION {
?subject ?property ?person .
?person core:preferredTitle ?title
} UNION {
?subject ?property ?person .
?person vitro:mostSpecificType ?personType .
?personType rdfs:subClassOf foaf:Person
?person obo:ARG_2000028 ?vcard .
?vcard vcard:hasTitle ?titleObj .
?titleObj vcard:title ?title
}
}
</query-construct>

View file

@ -0,0 +1,133 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<!-- See guidelines in vitro/doc/list_view_configuration_guidelines.txt -->
<list-view-config>
<query-select>
PREFIX afn: &lt;http://jena.hpl.hp.com/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;
SELECT DISTINCT <collated>?subclass</collated>
# send the property to the template, since this view supports multiple role properties
?property
?role
?roleLabel
?activity ?activityName
?activityLabel
?dateTimeStart ?dateTimeEnd
?hideThis
?objectType
WHERE {
?subject ?property ?role .
?role a ?objectType .
OPTIONAL { ?role core:roleContributesTo ?activity .
?activity rdfs:label ?activityLabel
<collated>
?activity vitro:mostSpecificType ?subclass
</collated>
}
OPTIONAL { ?role rdfs:label ?roleLabel }
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
} ORDER BY <collated>?subclass</collated> DESC(?dateTimeEnd) DESC(?dateTimeStart) ?activityLabel ?activityName
</query-select>
<query-construct>
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;
CONSTRUCT {
?subject ?property ?role .
?role a ?objectType .
?role core:roleContributesTo ?activity .
?activity vitro:mostSpecificType ?subclass .
} WHERE {
?subject ?property ?role .
?role a ?objectType .
?role core:roleContributesTo ?activity .
?activity vitro:mostSpecificType ?subclass
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
CONSTRUCT {
?subject ?property ?role .
?role ?roleProperty ?roleValue .
?activity rdfs:label ?activityName
} WHERE {
{
?subject ?property ?role .
?role a ?objectType .
} UNION {
?subject ?property ?role .
?role a ?objectType .
?role ?roleProperty ?roleValue
} UNION {
?subject ?property ?role .
?role a ?objectType .
?role core:relates ?activity .
?activity rdfs:label ?activityName
} UNION {
?subject ?property ?role .
?role a ?objectType .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
?activity rdfs:label ?activityName
} UNION {
?subject ?property ?role .
?role a ?objectType .
?role core:roleContributesTo ?activity .
?activity rdfs:label ?activityName
}
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a ?objectType .
?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
} WHERE {
?subject ?property ?role .
?role a ?objectType .
?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a ?objectType .
?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
} WHERE {
?subject ?property ?role .
?role a ?objectType .
?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
</query-construct>
<template>propStatement-hasRole.ftl</template>
</list-view-config>

View file

@ -0,0 +1,133 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<!-- See guidelines in vitro/doc/list_view_configuration_guidelines.txt -->
<list-view-config>
<query-select>
PREFIX afn: &lt;http://jena.hpl.hp.com/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;
SELECT DISTINCT <collated>?subclass</collated>
# send the property to the template, since this view supports multiple role properties
?property
?role
?roleLabel
?activity ?activityName
?activityLabel
?dateTimeStart ?dateTimeEnd
?hideThis
?objectType
WHERE {
?subject ?property ?role .
?role a ?objectType .
OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
?activity rdfs:label ?activityLabel
<collated>
?activity vitro:mostSpecificType ?subclass
</collated>
}
OPTIONAL { ?role rdfs:label ?roleLabel }
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
} ORDER BY <collated>?subclass</collated> DESC(?dateTimeEnd) DESC(?dateTimeStart) ?activityLabel ?activityName
</query-select>
<query-construct>
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;
CONSTRUCT {
?subject ?property ?role .
?role a ?objectType .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
?activity vitro:mostSpecificType ?subclass .
} WHERE {
?subject ?property ?role .
?role a ?objectType .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
?activity vitro:mostSpecificType ?subclass
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
CONSTRUCT {
?subject ?property ?role .
?role ?roleProperty ?roleValue .
?activity rdfs:label ?activityName
} WHERE {
{
?subject ?property ?role .
?role a ?objectType .
} UNION {
?subject ?property ?role .
?role a ?objectType .
?role ?roleProperty ?roleValue
} UNION {
?subject ?property ?role .
?role a ?objectType .
?role core:relates ?activity .
?activity rdfs:label ?activityName
} UNION {
?subject ?property ?role .
?role a ?objectType .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
?activity rdfs:label ?activityName
} UNION {
?subject ?property ?role .
?role a ?objectType .
?role core:roleContributesTo ?activity .
?activity rdfs:label ?activityName
}
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a ?objectType .
?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
} WHERE {
?subject ?property ?role .
?role a ?objectType .
?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a ?objectType .
?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
} WHERE {
?subject ?property ?role .
?role a ?objectType .
?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd
}
</query-construct>
<template>propStatement-hasRole.ftl</template>
</list-view-config>

View file

@ -1,64 +0,0 @@
<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<#-- Confirmation that an account has been created. -->
<#assign subject = "${i18n().account_created_subject(siteName)}" />
<#assign html>
<html>
<head>
<title>${subject}</title>
</head>
<body>
<p>
${userAccount.firstName} ${userAccount.lastName}
</p>
<p>
<strong>${i18n().congratulations}</strong>
</p>
<p>
${i18n().we_have_created_your_account(siteName,userAccount.emailAddress)}
</p>
<p>
${i18n().did_not_request_text}
</p>
<p>
${i18n().click_to_create_password}
</p>
<p>
<a href="${passwordLink}" title="${i18n().password}">${passwordLink}</a>
</p>
<p>
${i18n().if_link_failed}
</p>
<p>
${i18n().thanks}
</p>
</body>
</html>
</#assign>
<#assign text>
${userAccount.firstName} ${userAccount.lastName}
${i18n().congratulations}
${i18n().we_have_created_your_account(siteName,userAccount.emailAddress)}
${i18n().did_not_request_text}
${i18n().paste_the_link}
${passwordLink}
${i18n().thanks}
</#assign>
<@email subject=subject html=html text=text />

View file

@ -0,0 +1,26 @@
<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<#--
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-sequence.ftl" as s>
<#import "lib-datetime.ftl" as dt>
<@showAdministrator statement />
<#-- Use a macro to keep variable assignments local; otherwise the values carry over to the
next statement -->
<#macro showAdministrator statement>
<#local linkedIndividual>
<#if statement.organization??>
<a href="${profileUrl(statement.uri("organization"))}" title="${i18n().organization_name}">${statement.organizationLabel!""}</a>
<#else>
<a href="${profileUrl(statement.uri("administratorRole"))}" title="${i18n().administering_organization_for}">${i18n().missing_organization}</a>
</#if>
</#local>
${linkedIndividual!}
</#macro>

View file

@ -16,7 +16,7 @@
<#macro showRole statement>
<#local linkedIndividual>
<#if statement.presentation??>
<a href="${profileUrl(statement.uri("presentation"))}" title="${i18n().presentation_name}">${statement.presentationLabel!statement.presentationName}</a>
<a href="${profileUrl(statement.uri("presentation"))}" title="${i18n().presentation_name}">${statement.presentationLabel!statement.presentationName!""}</a>
<#else>
<#-- This shouldn't happen, but we must provide for it -->
<a href="${profileUrl(statement.uri("role"))}" title="${i18n().missing_presentation}">${i18n().missing_presentation}</a>

View file

@ -17,7 +17,7 @@
<#if statement.credential??>
<a href="${profileUrl(statement.uri("credential"))}" title="${i18n().credential_name}">${statement.credentialLabel!statement.issuedCredentialLabel!statement.credentialLocal!}</a>
<#else>
<a href="${profileUrl(statement.uri("issuedCredential"))}" title="${i18n().credential_name}">${statement.issuedCredentialLabel!"missing credential"}</a>
<a href="${profileUrl(statement.uri("issuedCredential"))}" title="${i18n().credential_name}">${statement.issuedCredentialLabel!"${i18n().missing_credential}"}</a>
</#if>
</#local>

View file

@ -13,9 +13,17 @@
<#macro showAddress statement>
<#if statement.street?has_content>
<p class="address-line">
${statement.street}
</p>
<#if statement.street?contains(";") >
<#list statement.street?split("; ") as lines>
<p class="address-line">
${lines}
</p>
</#list>
<#else>
<p class="address-line">
${statement.street}
</p>
</#if>
</#if>
<#if ( statement.country?has_content && (statement.country == "US" || statement.country?contains("United States") || statement.country?contains("U.S.") || statement.country?contains("U.S.A.") || statement.country?contains("USA")))>
@ -23,7 +31,7 @@
<#local cityStateZip><@s.join [ cityState!, statement.postalCode!], "&nbsp;" /></#local>
<#if cityStateZip?has_content>
<p class="address-line">${cityStateZip}</p>
<p class="address-line">${statement.country!}</p>
<p class="address-line" style="float:left; padding-right:20px">${statement.country!}</p>
</#if>
<#else>
<#if statement.locality?has_content>
@ -42,7 +50,7 @@
</p>
</#if>
<#if statement.country?has_content>
<p class="address-line">
<p class="address-line" style="float:left; padding-right:20px">
${statement.country}
</p>
</#if>

View file

@ -13,13 +13,18 @@
next statement -->
<#macro showResearchers statement>
<#local linkedIndividual>
<a href="${profileUrl(statement.uri("person"))}" title="${i18n().person_name}">${statement.personName}</a>
<a href="${profileUrl(statement.uri("person"))}" title="${i18n().person_name}">${statement.personName!}</a>
</#local>
<#if statement.title?has_content >
<#local posnTitle = statement.title>
<#else>
<#local posnTitle = statement.posnLabel!statement.personType>
<#elseif statement.posnLabel?has_content>
<#local posnTitle = statement.posnLabel>
</#if>
<#if statement.org??>
<#local orgString>
<a href="${profileUrl(statement.uri("org"))}" title="${i18n().organization_name}">${statement.orgLabel!""}</a>
</#local>
</#if>
<@s.join [ linkedIndividual, posnTitle, statement.orgLabel!"" ] /> ${statement.type!}
<@s.join [ linkedIndividual, posnTitle!, orgString! ] />
</#macro>

View file

@ -65,13 +65,13 @@
<form id="addFullNameToPerson" class="customForm noIE67" action="${submitUrl}" role="add/edit name">
<p>
<label for="firstName">${i18n().first_name} ${requiredHint}<span style="padding-left:300px">name_prefix</span></label>
<label for="firstName">${i18n().first_name} ${requiredHint}<span style="padding-left:300px">${i18n().name_prefix}</span></label>
<input size="25" type="text" id="firstName" name="firstName" value="${firstNameValue}" />
<input style="margin-left:138px" size="12" type="text" id="prefix" name="prefix" value="${prefixValue}" />
</p>
<p>
<label for="middleName">${i18n().middle_name}<span style="padding-left:293px">name_suffix</span></label>
<label for="middleName">${i18n().middle_name}<span style="padding-left:293px">${i18n().name_suffix}</span></label>
<input size="25" type="text" id="middleName" name="middleName" value="${middleNameValue}" />
<input style="margin-left:138px" size="12" type="text" id="suffix" name="suffix" value="${suffixValue}" />
</p>

View file

@ -4,6 +4,7 @@
<#-- Template for adding a grant role, such as principal investigator, to a foaf:Persons -->
<#--Retrieve certain edit configuration information-->
<#assign editMode = editConfiguration.pageData.editMode />
<#assign rangeUri = editConfiguration.pageData.rangeUri />
<#assign literalValues = editConfiguration.existingLiteralValues />
<#assign uriValues = editConfiguration.existingUriValues />
<#assign htmlForElements = editConfiguration.pageData.htmlForElements />
@ -34,9 +35,9 @@ Set this flag on the input acUriReceiver where you would like this behavior to o
<#assign formHeading = "${i18n().investigator_entry_for}"/>
<#assign submitButtonLabel = "${i18n().investigator_capitalized}" />
<#if editConfiguration.predicateUri?ends_with("hasPrincipalInvestigatorRole") >
<#if rangeUri?contains("#PrincipalInvestigatorRole") >
<#assign formHeading = "${i18n().principal_investigator_entry_for}"/>
<#elseif editConfiguration.predicateUri?ends_with("hasCo-PrincipalInvestigatorRole") >
<#elseif rangeUri?contains("#CoPrincipalInvestigatorRole") >
<#assign formHeading = "${i18n().co_principal_investigator_entry_for}"/>
</#if>

View file

@ -0,0 +1,58 @@
<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<#-- Template for adding/editing time values -->
<#--Retrieve certain edit configuration information-->
<#assign editMode = editConfiguration.pageData.editMode />
<#assign htmlForElements = editConfiguration.pageData.htmlForElements />
<#assign domainUri = editConfiguration.pageData.domainUri!"" />
<#if editMode == "edit">
<#assign titleVerb="${i18n().edit_capitalized}">
<#assign disabledVal="disabled">
<#assign submitButtonText="${i18n().edit_date_time_value}">
<#else>
<#assign titleVerb="${i18n().create_capitalized}">
<#assign submitButtonText="${i18n().create_date_time_value}">
<#assign disabledVal=""/>
</#if>
<#if domainUri?contains("IAO_0000030")>
<#assign titleObject="${i18n().publication_date_for}">
<#if editMode == "edit">
<#assign submitButtonText="${i18n().edit_publication_date}">
<#else>
<#assign submitButtonText="${i18n().create_publication_date}">
</#if>
<#elseif domainUri?contains("AwardReceipt")>
<#assign titleObject="${i18n().year_awarded_for}">
<#if editMode == "edit">
<#assign submitButtonText="${i18n().edit_year_awarded}">
<#else>
<#assign submitButtonText="${i18n().create_year_awarded}">
</#if>
<#else>
<#assign titleObject="${i18n().date_time_value_for}">
</#if>
<h2>${titleVerb} ${titleObject} ${editConfiguration.subjectName}</h2>
<form class="customForm" action ="${submitUrl}" class="customForm">
<#--Need to draw edit elements for dates here-->
<#if htmlForElements?keys?seq_contains("dateTimeField")>
${htmlForElements["dateTimeField"]}
</#if>
<p class="submit">
<input type="hidden" name="editKey" value="${editKey}" />
<input type="submit" id="submit" value="${submitButtonText}" role="button" />
<span class="or"> ${i18n().or} </span>
<a class="cancel" href="${editConfiguration.cancelUrl}" title="${i18n().cancel_title}">${i18n().cancel_link}</a>
</p>
</form>
${stylesheets.add('<link rel="stylesheet" href="${urls.base}/edit/forms/css/customForm.css" />',
'<link rel="stylesheet" href="${urls.base}/edit/forms/css/personHasEducationalTraining.css" />')}
${scripts.add('<script type="text/javascript" src="${urls.base}/js/utils.js"></script>',
'<script type="text/javascript" src="${urls.base}/js/customFormUtils.js"></script>')}

View file

@ -0,0 +1,136 @@
<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<#-- this is in request.subject.name -->
<#-- leaving this edit/add mode code in for reference in case we decide we need it -->
<#import "lib-vivo-form.ftl" as lvf>
<#--Retrieve certain edit configuration information-->
<#if editConfiguration.objectUri?has_content>
<#assign editMode = "edit">
<#else>
<#assign editMode = "add">
</#if>
<#--The blank sentinel indicates what value should be put in a URI when no autocomplete result has been selected.
If the blank value is non-null or non-empty, n3 editing for an existing object will remove the original relationship
if nothing is selected for that object-->
<#assign blankSentinel = "" />
<#if editConfigurationConstants?has_content && editConfigurationConstants?keys?seq_contains("BLANK_SENTINEL")>
<#assign blankSentinel = editConfigurationConstants["BLANK_SENTINEL"] />
</#if>
<#--This flag is for clearing the label field on submission for an existing object being selected from autocomplete.
Set this flag on the input acUriReceiver where you would like this behavior to occur. -->
<#assign flagClearLabelForExisting = "flagClearLabelForExisting" />
<#assign htmlForElements = editConfiguration.pageData.htmlForElements />
<#--Retrieve variables needed-->
<#assign existingOrgValue = lvf.getFormFieldValue(editSubmission, editConfiguration, "existingOrganization") />
<#assign orgLabelValue = lvf.getFormFieldValue(editSubmission, editConfiguration, "orgLabel") />
<#assign orgLabelDisplayValue = lvf.getFormFieldValue(editSubmission, editConfiguration, "orgLabelDisplay") />
<#--If edit submission exists, then retrieve validation errors if they exist-->
<#if editSubmission?has_content && editSubmission.submissionExists = true && editSubmission.validationErrors?has_content>
<#assign submissionErrors = editSubmission.validationErrors/>
</#if>
<#if editMode == "edit">
<#assign titleVerb="${i18n().edit_capitalized}">
<#assign submitButtonText="${i18n().save_changes}">
<#assign disabledVal="disabled">
<#else>
<#assign titleVerb="${i18n().create_capitalized}">
<#assign submitButtonText="${i18n().create_entry}">
<#assign disabledVal=""/>
</#if>
<#assign requiredHint = "<span class='requiredHint'> *</span>" />
<h2>${titleVerb}&nbsp;${i18n().administering_organization_for} ${editConfiguration.subjectName}</h2>
<#--Display error messages if any-->
<#if submissionErrors?has_content>
<#if orgLabelDisplayValue?has_content >
<#assign orgLabelValue = orgLabelDisplayValue />
</#if>
<section id="error-alert" role="alert">
<img src="${urls.images}/iconAlert.png" width="24" height="24" alt="${i18n().error_alert_icon}" />
<p>
<#--Checking if any required fields are empty-->
<#if lvf.submissionErrorExists(editSubmission, "orgLabel")>
${i18n().select_or_create_organization}
</#if>
</p>
</section>
</#if>
<@lvf.unsupportedBrowser urls.base />
<section id="grantAdministeredBy" role="region">
<form id="grantAdministeredBy" class="customForm noIE67" action="${submitUrl}" role="add/edit AdministeredGrant">
<p>
<label for="relatedIndLabel">${i18n().organization_capitalized} ${requiredHint}</label>
<input class="acSelector" size="50" type="text" id="organization" acGroupName="organization" name="orgLabel" value="${orgLabelValue}">
<input class="display" type="hidden" id="organizationDisplay" acGroupName="organization" name="orgLabelDisplay" value="${orgLabelDisplayValue}">
</p>
<div class="acSelection" acGroupName="organization" id="organizationAcSelection">
<p class="inline">
<label>${i18n().selected_organization}:</label>
<span class="acSelectionInfo"></span>
<a href="" class="verifyMatch" title="${i18n().verify_match_capitalized}">(${i18n().verify_match_capitalized}</a> ${i18n().or}
<a href="#" class="changeSelection" id="changeSelection">${i18n().change_selection})</a>
</p>
<input class="acUriReceiver" type="hidden" id="orgUri" name="existingOrganization" value="${existingOrgValue}" ${flagClearLabelForExisting}="true" />
</div>
<#assign htmlForElements = editConfiguration.pageData.htmlForElements />
<input type="hidden" id="editKey" name="editKey" value="${editKey}"/>
<p class="submit">
<input type="submit" class="submit" value="${submitButtonText}"/><span class="or"> ${i18n().or} </span>
<a class="cancel" href="${cancelUrl}" title="${i18n().cancel_title}">${i18n().cancel_link}</a>
</p>
<p id="requiredLegend" class="requiredHint">* ${i18n().required_fields}</p>
</form>
<script type="text/javascript">
var customFormData = {
acUrl: '${urls.base}/autocomplete?tokenize=true&stem=true',
acTypes: {organization: 'http://xmlns.com/foaf/0.1/Organization'},
editMode: '${editMode}',
defaultTypeName: 'organization',
baseHref: '${urls.base}/individual?uri=',
blankSentinel: '${blankSentinel}',
flagClearLabelForExisting: '${flagClearLabelForExisting}'
};
var i18nStrings = {
selectAnExisting: '${i18n().select_an_existing}',
orCreateNewOne: '${i18n().or_create_new_one}',
selectedString: '${i18n().selected}',
};
</script>
${stylesheets.add('<link rel="stylesheet" href="${urls.base}/js/jquery-ui/css/smoothness/jquery-ui-1.8.9.custom.css" />')}
${stylesheets.add('<link rel="stylesheet" href="${urls.base}/templates/freemarker/edit/forms/css/customForm.css" />')}
${stylesheets.add('<link rel="stylesheet" href="${urls.base}/templates/freemarker/edit/forms/css/customFormWithAutocomplete.css" />')}
${scripts.add('<script type="text/javascript" src="${urls.base}/js/jquery-ui/js/jquery-ui-1.8.9.custom.min.js"></script>',
'<script type="text/javascript" src="${urls.base}/js/customFormUtils.js"></script>',
'<script type="text/javascript" src="${urls.base}/js/extensions/String.js"></script>',
'<script type="text/javascript" src="${urls.base}/js/browserUtils.js"></script>',
'<script type="text/javascript" src="${urls.base}/js/jquery_plugins/jquery.bgiframe.pack.js"></script>',
'<script type="text/javascript" src="${urls.base}/templates/freemarker/edit/forms/js/customFormWithAutocomplete.js"></script>')}

View file

@ -25,6 +25,7 @@ var adviseeRelUtils = {
this.form = $('#personHasAdvisingRelationship');
this.adRelshiplabel = $('#advisingRelLabel');
this.advisor = $('#advisor');
this.fauxLabel = $('#maskLabelBuilding');
this.subjArea = $('#SubjectArea');
this.firstName = $('#firstName');
this.lastName = $('#lastName');
@ -56,8 +57,6 @@ var adviseeRelUtils = {
this.form.submit(function() {
adviseeRelUtils.resolveAdvisorNames();
adviseeRelUtils.buildAdvisingRelLabel();
alert(this.adRelshiplabel.val());
return false;
});
},
@ -80,6 +79,12 @@ var adviseeRelUtils = {
if (firstName) {
name += ', ' + firstName;
}
// we don't want the user to see the label getting built, so hide the acSelector
// field and display a bogus field that just has the last name in it.
this.fauxLabel.val(lastName);
this.advisee.hide();
this.fauxLabel.show();
this.advisor.val(name);
this.lastName.val(lastName);
}
@ -91,7 +96,6 @@ var adviseeRelUtils = {
},
buildAdvisingRelLabel: function() {
alert("here");
if ( this.advisor.val() != "" ) {
this.adRelshiplabel.val(this.advisor.val() + " " + adviseeRelUtils.advisingString + " " + this.subjName);
}

View file

@ -0,0 +1,51 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
var mailingAddressUtils = {
onLoad: function(editMode) {
this.initObjectReferences();
this.bindEventListeners();
if ( editMode != "add" ) {
this.setStreetAddressDisplayFields();
}
},
initObjectReferences: function() {
this.form = $('#personHasMailingAddress');
this.street1 = $('#streetAddressOne');
this.street2 = $('#streetAddressTwo');
this.streetAddress = $('#streetAddress');
},
bindEventListeners: function() {
this.idCache = {};
this.form.submit(function() {
mailingAddressUtils.setStreetAddressField();
});
},
// the vcard only has one address field, so combine the two
// displayed addresses into the hidden field which gets asserted in the N3
setStreetAddressField: function() {
var tempString = this.street1.val() + "; " + this.street2.val();
this.streetAddress.val(tempString);
},
// in edit mode, take the asserted streetAddress value and parse it into
// the two displayed address fields
setStreetAddressDisplayFields: function() {
var tempString = this.streetAddress.val();
var lineOne = tempString.substring(0,tempString.lastIndexOf(";"));
var lineTwo = tempString.substring(tempString.lastIndexOf(";") + 2);
this.street1.val(lineOne);
this.street2.val(lineTwo);
}
}

View file

@ -124,6 +124,7 @@ Set this flag on the input acUriReceiver where you would like this behavior to o
<p >
<label for="advisor">${i18n().advisor_capitalized}: ${i18n().last_name} ${requiredHint}<span style="padding-left:322px">${i18n().first_name} ${requiredHint}</span></label>
<input class="acSelector" size="50" type="text" acGroupName="advisor" id="advisor" name="advisorLabel" value="${advisorLabelValue}" >
<input type="text" size="50" id="maskLabelBuilding" name="maskLabelBuilding" value="" style="display:none" >
<input size="30" type="text" id="firstName" name="firstName" value="${firstNameValue}" ><br />
<input type="hidden" id="lastName" name="lastName" value="">
<input class="display" type="hidden" acGroupName="advisor" id="advisorDisplay" name="advisorLabelDisplay" value="${advisorLabelDisplayValue}" >

View file

@ -53,7 +53,7 @@ Set this flag on the input acUriReceiver where you would like this behavior to o
<#assign requiredHint = "<span class='requiredHint'> *</span>" />
<#assign yearHint = "<span class='hint'>(${i18n().year_hint_format})</span>" />
<h2>${titleVerb}&nbsp;${i18n().credentials} ${editConfiguration.subjectName}</h2>
<h2>${titleVerb}&nbsp;${i18n().credentials} ${i18n().for} ${editConfiguration.subjectName}</h2>
<#--Display error messages if any-->
<#if submissionErrors?has_content>

View file

@ -68,11 +68,17 @@
<section id="personHasMailingAddress" role="region">
<form id="personHasMailingAddress" class="customForm noIE67" action="${submitUrl}" role="add/edit educational training">
<form id="personHasMailingAddress" class="customForm noIE67" action="${submitUrl}" role="add/edit mailing address">
<p>
<label for="streetAddress">${i18n().street_address} ${requiredHint}</label>
<input size="50" type="text" id="streetAddress" name="streetAddress" value="${streetAddressValue}" />
<label for="streetAddress">${i18n().street_address} 1 ${requiredHint}</label>
<input size="40" type="text" id="streetAddressOne" name="streetAddressOne" value="" />
</p>
<p>
<label for="streetAddress">${i18n().street_address} 2 ${requiredHint}</label>
<input size="40" type="text" id="streetAddressTwo" name="streetAddressTwo" value="" />
<input type="hidden" id="streetAddress" name="streetAddress" value="${streetAddressValue}" />
</p>
<p>
@ -108,12 +114,19 @@
</section>
<script type="text/javascript">
$(document).ready(function(){
mailingAddressUtils.onLoad('${editMode}');
});
</script>
${stylesheets.add('<link rel="stylesheet" href="${urls.base}/js/jquery-ui/css/smoothness/jquery-ui-1.8.9.custom.css" />')}
${stylesheets.add('<link rel="stylesheet" href="${urls.base}/templates/freemarker/edit/forms/css/customForm.css" />')}
${stylesheets.add('<link rel="stylesheet" href="${urls.base}/templates/freemarker/edit/forms/css/customFormWithAutocomplete.css" />')}
${scripts.add('<script type="text/javascript" src="${urls.base}/js/jquery-ui/js/jquery-ui-1.8.9.custom.min.js"></script>',
'<script type="text/javascript" src="${urls.base}/js/extensions/String.js"></script>',
'<script type="text/javascript" src="${urls.base}/templates/freemarker/edit/forms/js/mailingAddressUtils.js"></script>',
'<script type="text/javascript" src="${urls.base}/js/browserUtils.js"></script>',
'<script type="text/javascript" src="${urls.base}/js/jquery_plugins/jquery.bgiframe.pack.js"></script>')}

View file

@ -27,6 +27,7 @@ local:personInPositionConfig a :ObjectPropertyDisplayConfig ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupaffiliation> ;
vitro:displayRankAnnot 40;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:customEntryFormAnnot "edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.PersonHasPositionHistoryGenerator"^^xsd:string .
local:organizationForPositionContext a :ConfigContext ;
@ -41,6 +42,7 @@ local:organizationForPositionConfig a :ObjectPropertyDisplayConfig ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupaffiliation> ;
vitro:displayRankAnnot 15;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:customEntryFormAnnot "edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.OrganizationHasPositionHistoryGenerator"^^xsd:string .
local:authorInAuthorshipContext a :ConfigContext ;
@ -67,7 +69,7 @@ local:hasServiceProviderRoleContext a :ConfigContext ;
:qualifiedBy <http://purl.obolibrary.org/obo/ERO_0000012> .
local:hasServiceProviderRoleConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-hasRole.xml"^^xsd:string ;
:listViewConfigFile "listViewConfig-roleContributesTo.xml"^^xsd:string ;
:displayName "service to the profession" ;
vitro:displayRankAnnot 20;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
@ -82,7 +84,7 @@ local:hasClinicalRoleContext a :ConfigContext ;
:qualifiedBy <http://vivoweb.org/ontology/core#ClinicalRole> .
local:hasClinicalRoleConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-hasRole.xml"^^xsd:string ;
:listViewConfigFile "listViewConfig-hasClinicalActivity.xml"^^xsd:string ;
:displayName "clinical activities" ;
vitro:displayRankAnnot 70;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
@ -97,7 +99,7 @@ local:hasLeaderRoleContext a :ConfigContext ;
:qualifiedBy <http://vivoweb.org/ontology/core#LeaderRole> .
local:hasLeaderRoleConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-hasRole.xml"^^xsd:string ;
:listViewConfigFile "listViewConfig-roleContributesTo.xml"^^xsd:string ;
:displayName "head of" ;
vitro:displayRankAnnot 30;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
@ -112,7 +114,7 @@ local:hasMemberRoleContext a :ConfigContext ;
:qualifiedBy <http://vivoweb.org/ontology/core#MemberRole> .
local:hasMemberRoleConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-hasRole.xml"^^xsd:string ;
:listViewConfigFile "listViewConfig-roleContributesTo.xml"^^xsd:string ;
:displayName "member of" ;
vitro:displayRankAnnot 50;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
@ -127,7 +129,7 @@ local:hasTeacherRoleContext a :ConfigContext ;
:qualifiedBy <http://vivoweb.org/ontology/core#TeacherRole> .
local:hasTeacherRoleConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-hasRole.xml"^^xsd:string ;
:listViewConfigFile "listViewConfig-roleRealizedIn.xml"^^xsd:string ;
:displayName "teaching activities" ;
vitro:displayRankAnnot 20;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
@ -172,7 +174,7 @@ local:hasOrganizerRoleContext a :ConfigContext ;
:qualifiedBy <http://vivoweb.org/ontology/core#OrganizerRole> .
local:hasOrganizerRoleConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-hasRole.xml"^^xsd:string ;
:listViewConfigFile "listViewConfig-roleRealizedIn.xml"^^xsd:string ;
:displayName "organizer of" ;
vitro:displayRankAnnot 4;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
@ -187,7 +189,7 @@ local:hasOutreachProviderRoleContext a :ConfigContext ;
:qualifiedBy <http://vivoweb.org/ontology/core#OutreachProviderRole> .
local:hasOutreachProviderRoleConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-hasRole.xml"^^xsd:string ;
:listViewConfigFile "listViewConfig-roleContributesTo.xml"^^xsd:string ;
:displayName "outreach and community service" ;
vitro:displayRankAnnot 50;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
@ -217,7 +219,7 @@ local:hasResearcherRoleContext a :ConfigContext ;
:qualifiedBy <http://vivoweb.org/ontology/core#ResearcherRole> .
local:hasResearcherRoleConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-hasRole.xml"^^xsd:string ;
:listViewConfigFile "listViewConfig-researchActivities.xml"^^xsd:string ;
:displayName "research activities" ;
vitro:displayRankAnnot 15;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
@ -247,7 +249,7 @@ local:hasPrincipalInvestigatorRoleContext a :ConfigContext ;
:qualifiedBy <http://vivoweb.org/ontology/core#PrincipalInvestigatorRole> .
local:hasPrincipalInvestigatorRoleConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-hasInvestigatorRole.xml"^^xsd:string ;
:listViewConfigFile "listViewConfig-hasPrincipalInvestigatorRole.xml"^^xsd:string ;
:displayName "principal investigator on" ;
vitro:displayRankAnnot 20;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
@ -262,7 +264,7 @@ local:hasCo-PrincipalInvestigatorRoleContext a :ConfigContext ;
:qualifiedBy <http://vivoweb.org/ontology/core#CoPrincipalInvestigatorRole> .
local:hasCo-PrincipalInvestigatorRoleConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-hasInvestigatorRole.xml"^^xsd:string ;
:listViewConfigFile "listViewConfig-hasCoPrincipalInvestigatorRole.xml"^^xsd:string ;
:displayName "co-principal investigator on" ;
vitro:displayRankAnnot 25;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
@ -409,6 +411,21 @@ local:issuedCredentialConfig a :ObjectPropertyDisplayConfig ;
vitro:customEntryFormAnnot "edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.PersonHasIssuedCredentialGenerator"^^<http://www.w3.org/2001/XMLSchema#string> ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupbiography> .
local:grantAdministeredByContext a :ConfigContext ;
:hasConfiguration local:grantAdministeredByConfig ;
:configContextFor vivo:relates ;
:qualifiedByDomain vivo:Grant ;
:qualifiedBy vivo:AdministratorRole .
local:grantAdministeredByConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-grantAdministeredBy.xml"^^xsd:string ;
:displayName "grant administered by" ;
vitro:displayRankAnnot 1;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:customEntryFormAnnot "edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.GrantAdministeredByGenerator"^^<http://www.w3.org/2001/XMLSchema#string> ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
### vcard properties ###
local:mailingAddressContext a :ConfigContext ;
@ -647,6 +664,104 @@ local:inEventSeriesConfig a :ObjectPropertyDisplayConfig ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
local:eventLocationContext a :ConfigContext ;
:hasConfiguration local:eventLocationConfig ;
:configContextFor <http://purl.obolibrary.org/obo/RO_0001025> ;
:qualifiedByDomain <http://purl.org/NET/c4dm/event.owl#Event> ;
:qualifiedBy vivo:GeographicLocation .
local:eventLocationConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-default.xml"^^xsd:string ;
:displayName "has geographic location" ;
vitro:displayRankAnnot 2;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGrouplocation> .
local:courseOfferedByContext a :ConfigContext ;
:hasConfiguration local:courseOfferedByConfig ;
:configContextFor vivo:offeredBy ;
:qualifiedByDomain vivo:Course ;
:qualifiedBy <http://xmlns.com/foaf/0.1/Organization> .
local:courseOfferedByConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-default.xml"^^xsd:string ;
:displayName "offered by" ;
vitro:displayRankAnnot 2;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
local:orgOffersCourseContext a :ConfigContext ;
:hasConfiguration local:orgOffersCourseConfig ;
:configContextFor vivo:offers ;
:qualifiedByDomain <http://xmlns.com/foaf/0.1/Organization> ;
:qualifiedBy vivo:Course .
local:orgOffersCourseConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-default.xml"^^xsd:string ;
:displayName "offers course" ;
vitro:displayRankAnnot 2;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupother> .
local:collegeOffersDegreeContext a :ConfigContext ;
:hasConfiguration local:collegeOffersDegreeConfig ;
:configContextFor vivo:offers ;
:qualifiedByDomain vivo:College ;
:qualifiedBy vivo:AcademicDegree .
local:collegeOffersDegreeConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-default.xml"^^xsd:string ;
:displayName "offers degree" ;
vitro:displayRankAnnot 2;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
local:deptOffersDegreeContext a :ConfigContext ;
:hasConfiguration local:debtOffersDegreeConfig ;
:configContextFor vivo:offers ;
:qualifiedByDomain vivo:AcademicDepartment ;
:qualifiedBy vivo:AcademicDegree .
local:deptOffersDegreeConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-default.xml"^^xsd:string ;
:displayName "offers degree" ;
vitro:displayRankAnnot 2;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
local:uniOffersDegreeContext a :ConfigContext ;
:hasConfiguration local:uniOffersDegreeConfig ;
:configContextFor vivo:offers ;
:qualifiedByDomain vivo:University ;
:qualifiedBy vivo:AcademicDegree .
local:uniOffersDegreeConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-default.xml"^^xsd:string ;
:displayName "offers degree" ;
vitro:displayRankAnnot 2;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
local:grantAwardedByContext a :ConfigContext ;
:hasConfiguration local:grantAwardedByConfig ;
:configContextFor vivo:assignedBy ;
:qualifiedByDomain vivo:Grant ;
:qualifiedBy <http://xmlns.com/foaf/0.1/Organization> .
local:grantAwardedByConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-default.xml"^^xsd:string ;
:displayName "grant awarded by" ;
vitro:displayRankAnnot 2;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
local:awardOrHonorReceiptsContext a :ConfigContext ;
:hasConfiguration local:awardOrHonorReceiptsConfig ;
:configContextFor <http://vivoweb.org/ontology/core#relatedBy> ;
@ -720,5 +835,32 @@ local:grantRelatesConfig a :ObjectPropertyDisplayConfig ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupbiography> .
### faux properties for dateTimeValue ###
local:publicationDateContext a :ConfigContext ;
:hasConfiguration local:publicationDateConfig ;
:configContextFor <http://vivoweb.org/ontology/core#dateTimeValue> ;
:qualifiedByDomain <http://purl.obolibrary.org/obo/IAO_0000030> ;
:qualifiedBy <http://vivoweb.org/ontology/core#DateTimeValue> .
local:publicationDateConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-dateTimeValue.xml"^^xsd:string ;
:displayName "publication date" ;
vitro:displayRankAnnot 10;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGrouptime> .
local:yearAwardedContext a :ConfigContext ;
:hasConfiguration local:yearAwardedConfig ;
:configContextFor <http://vivoweb.org/ontology/core#dateTimeValue> ;
:qualifiedByDomain <http://vivoweb.org/ontology/core#AwardReceipt> ;
:qualifiedBy <http://vivoweb.org/ontology/core#DateTimeValue> .
local:yearAwardedConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-dateTimeValue.xml"^^xsd:string ;
:displayName "year awarded" ;
vitro:displayRankAnnot 10;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGrouptime> .

View file

@ -0,0 +1,87 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.vitro.webapp.controller.individuallist;
import java.util.Collection;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.json.JSONException;
import org.json.JSONObject;
import com.hp.hpl.jena.query.QuerySolution;
import com.hp.hpl.jena.query.ResultSet;
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
import edu.cornell.mannlib.vitro.webapp.dao.ObjectPropertyStatementDao;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
import edu.cornell.mannlib.vitro.webapp.dao.jena.QueryUtils;
/**
* Wrap an Individual in a JSON object for display by the script.
*
* This overrides the Vitro version so we can have more info in the display.
*/
public class IndividualJsonWrapper {
private static final Log log = LogFactory
.getLog(IndividualJsonWrapper.class);
private static String VCARD_DATA_QUERY = ""
+ "PREFIX obo: <http://purl.obolibrary.org/obo/> \n"
+ "PREFIX vcard: <http://www.w3.org/2006/vcard/ns#> \n"
+ "SELECT DISTINCT ?title \n" + "WHERE { \n"
+ " ?subject obo:ARG_2000028 ?vIndividual . \n"
+ " ?vIndividual vcard:hasTitle ?vTitle . \n"
+ " ?vTitle vcard:title ?title . \n" + "} ";
static JSONObject packageIndividualAsJson(VitroRequest vreq, Individual ind)
throws JSONException {
// need an unfiltered dao to get firstnames and lastnames
WebappDaoFactory fullWdf = vreq.getUnfilteredWebappDaoFactory();
JSONObject jo = new JSONObject();
jo.put("URI", ind.getURI());
jo.put("label", ind.getRdfsLabel());
jo.put("name", ind.getName());
jo.put("thumbUrl", ind.getThumbUrl());
jo.put("imageUrl", ind.getImageUrl());
jo.put("profileUrl", UrlBuilder.getIndividualProfileUrl(ind, vreq));
jo.put("mostSpecificTypes", getMostSpecificTypes(ind, fullWdf));
jo.put("preferredTitle", findPreferredTitle(vreq, ind));
return jo;
}
private static String findPreferredTitle(VitroRequest vreq, Individual ind) {
String queryStr = QueryUtils.subUriForQueryVar(VCARD_DATA_QUERY,
"subject", ind.getURI());
log.debug("queryStr = " + queryStr);
String value = "";
try {
ResultSet results = QueryUtils.getQueryResults(queryStr, vreq);
while (results.hasNext()) {
QuerySolution soln = results.nextSolution();
String t = QueryUtils.nodeToString(soln.get("title"));
if (StringUtils.isNotBlank(t)) {
value = t;
}
}
} catch (Exception e) {
log.error(e, e);
}
return value;
}
public static Collection<String> getMostSpecificTypes(
Individual individual, WebappDaoFactory wdf) {
ObjectPropertyStatementDao opsDao = wdf.getObjectPropertyStatementDao();
Map<String, String> mostSpecificTypes = opsDao
.getMostSpecificTypesInClassgroupsForIndividual(individual
.getURI());
return mostSpecificTypes.values();
}
}

View file

@ -729,6 +729,7 @@ public class AddGrantRoleToPersonGenerator implements EditConfigurationGenerator
public void addFormSpecificData(EditConfigurationVTwo editConfiguration, VitroRequest vreq) {
HashMap<String, Object> formSpecificData = new HashMap<String, Object>();
formSpecificData.put("editMode", getEditMode(vreq).name().toLowerCase());
formSpecificData.put("rangeUri", getRangeUri(vreq));
//In this case, passing back a sparql query
formSpecificData.put("sparqlForAcFilter", getSparqlForAcFilter(vreq));
//Put in the fact that we require field
@ -747,8 +748,10 @@ public class AddGrantRoleToPersonGenerator implements EditConfigurationGenerator
return query;
}
private String getRangeUri(VitroRequest vreq) {
String rangeUri = vreq.getParameter("rangeUri");
return rangeUri;
}
}

View file

@ -3,7 +3,7 @@
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
public class AddOutreachProviderRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
@ -24,9 +24,37 @@ public class AddOutreachProviderRoleToPersonGenerator extends AddRoleToPersonTwo
//Outreach Provider role involves hard-coded options for the "right side" of the role or activity
@Override
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
return new
ChildVClassesOptions(OPTION_CLASS_URI)
.setDefaultOptionLabel("Select type");
return new ConstantFieldOptions(
"","Select type",
"http://vivoweb.org/ontology/core#Association","Association",
"http://vivoweb.org/ontology/core#Center","Center",
"http://vivoweb.org/ontology/core#ClinicalOrganization","Clinical Organization",
"http://vivoweb.org/ontology/core#College","College",
"http://vivoweb.org/ontology/core#Committee","Committee",
"http://vivoweb.org/ontology/core#Consortium","Consortium",
"http://vivoweb.org/ontology/core#CoreLaboratory","Core Laboratory",
"http://vivoweb.org/ontology/core#Department","Department",
"http://vivoweb.org/ontology/core#Division","Division",
"http://vivoweb.org/ontology/core#ExtensionUnit","Extension Unit",
"http://vivoweb.org/ontology/core#Foundation","Foundation",
"http://vivoweb.org/ontology/core#FundingOrganization","Funding Organization",
"http://vivoweb.org/ontology/core#GovernmentAgency","Government Agency",
"http://vivoweb.org/ontology/core#Hospital","Hospital",
"http://vivoweb.org/ontology/core#Institute","Institute",
"http://vivoweb.org/ontology/core#Laboratory","Laboratory",
"http://vivoweb.org/ontology/core#Library","Library",
"http://vivoweb.org/ontology/core#Museum","Museum",
"http://xmlns.com/foaf/0.1/Organization","Organization",
"http://vivoweb.org/ontology/core#PrivateCompany","Private Company",
"http://vivoweb.org/ontology/core#Program","Program",
"http://vivoweb.org/ontology/core#Publisher","Publisher",
"http://vivoweb.org/ontology/core#ResearchOrganization","Research Organization",
"http://vivoweb.org/ontology/core#Team","Team",
"http://vivoweb.org/ontology/core#School","School",
"http://vivoweb.org/ontology/core#ServiceProvidingLaboratory","Service Providing Lab",
"http://vivoweb.org/ontology/core#StudentOrganization","Student Organization",
"http://purl.obolibrary.org/obo/ERO_0000565","Technology Transfer Office",
"http://vivoweb.org/ontology/core#University","University");
}
@Override

View file

@ -0,0 +1,123 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpSession;
import com.hp.hpl.jena.vocabulary.XSD;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.AutocompleteRequiredInputValidator;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.DateTimeIntervalValidationVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.DateTimeWithPrecisionVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesWithParent;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.IndividualsViaVClassOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
public class GrantAdministeredByGenerator extends VivoBaseGenerator implements
EditConfigurationGenerator {
public GrantAdministeredByGenerator() {}
@Override
public EditConfigurationVTwo getEditConfiguration(VitroRequest vreq,
HttpSession session) throws Exception {
EditConfigurationVTwo conf = new EditConfigurationVTwo();
initBasics(conf, vreq);
initPropertyParameters(vreq, session, conf);
initObjectPropForm(conf, vreq);
conf.setTemplate("grantAdministeredBy.ftl");
conf.setVarNameForSubject("grant");
conf.setVarNameForPredicate("predicate");
conf.setVarNameForObject("adminRole");
conf.setN3Required( Arrays.asList( n3ForNewAdminRole) );
conf.setN3Optional( Arrays.asList( n3ForNewAdminOrganization,
n3ForExistingAdminOrganization ) );
conf.addNewResource("newOrganization", DEFAULT_NS_FOR_NEW_RESOURCE);
conf.addNewResource("adminRole", DEFAULT_NS_FOR_NEW_RESOURCE);
conf.setUrisOnform(Arrays.asList("existingOrganization"));
conf.setLiteralsOnForm(Arrays.asList("orgLabel", "orgLabelDisplay" ));
conf.addSparqlForExistingLiteral("orgLabel", orgLabelQuery);
conf.addSparqlForExistingUris("existingOrganization", existingOrganizationQuery);
conf.addField( new FieldVTwo(). // options will be added in browser by auto complete JS
setName("existingOrganization")
);
conf.addField( new FieldVTwo().
setName("orgLabel").
setRangeDatatypeUri(XSD.xstring.toString() ).
setValidators( list("datatype:" + XSD.xstring.toString()) )
);
conf.addField( new FieldVTwo().
setName("orgLabelDisplay").
setRangeDatatypeUri(XSD.xstring.toString() ).
setValidators( list("datatype:" + XSD.xstring.toString()))
);
conf.addValidator(new AntiXssValidation());
conf.addValidator(new AutocompleteRequiredInputValidator("existingOrganization", "orgLabel"));
// addFormSpecificData(conf, vreq);
prepare(vreq, conf);
return conf;
}
/* N3 assertions */
final static String n3ForNewAdminRole =
"@prefix vivo: <" + vivoCore + "> . \n\n" +
"?grant vivo:relates ?adminRole . \n" +
"?adminRole a vivo:AdministratorRole . \n" +
"?adminRole vivo:relatedBy ?grant . " ;
final static String n3ForNewAdminOrganization =
"@prefix vivo: <" + vivoCore + "> . \n\n" +
"?adminRole <http://purl.obolibrary.org/obo/RO_0000052> ?newOrganization . \n" +
"?newOrganization a <http://xmlns.com/foaf/0.1/Organization> . \n" +
"?newOrganization <http://purl.obolibrary.org/obo/RO_0000053> ?adminRole . \n" +
"?newOrganization <"+ label + "> ?orgLabel .";
final static String n3ForExistingAdminOrganization =
"@prefix vivo: <" + vivoCore + "> . \n\n" +
"?adminRole <http://purl.obolibrary.org/obo/RO_0000052> ?existingOrganization . \n" +
"?existingOrganization a <http://xmlns.com/foaf/0.1/Organization> . \n" +
"?existingOrganization <http://purl.obolibrary.org/obo/RO_0000053> ?adminRole . " ;
/* Queries for editing an existing entry */
final static String existingOrganizationQuery =
"PREFIX vivo: <http://vivoweb.org/ontology/core#> \n" +
"SELECT ?existingOrganization WHERE { \n" +
" ?adminRole <http://purl.obolibrary.org/obo/RO_0000052> ?existingOrganization . \n" +
" ?existingOrganization a <http://xmlns.com/foaf/0.1/Organization> . \n" +
"}";
final static String orgLabelQuery =
"PREFIX vivo: <http://vivoweb.org/ontology/core#> \n" +
"SELECT ?existingOrganizationLabel WHERE { \n" +
" ?adminRole <http://purl.obolibrary.org/obo/RO_0000052> ?existingOrganization . \n" +
" ?existingOrganization a <http://xmlns.com/foaf/0.1/Organization> . \n" +
" ?existingOrganization <" + label + "> ?existingOrganizationLabel . \n" +
"}";
}

View file

@ -1,6 +1,8 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
import static edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestActionConstants.SOME_LITERAL;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Arrays;
@ -335,7 +337,7 @@ public class ManageLabelsForPersonGenerator extends BaseEditConfigurationGenerat
Individual individual = EditConfigurationUtils.getIndividual(vreq, config.getSubjectUri());
AddDataPropertyStatement adps = new AddDataPropertyStatement(
vreq.getJenaOntModel(), individual.getURI(),
RequestActionConstants.SOME_URI);
RequestActionConstants.SOME_URI, SOME_LITERAL);
AddObjectPropertyStatement aops = new AddObjectPropertyStatement(
vreq.getJenaOntModel(), individual.getURI(),

View file

@ -93,7 +93,7 @@ public class PersonHasAdviseeRelationshipGenerator extends VivoBaseGenerator imp
conf.addSparqlForExistingLiteral("endField-value", existingEndDateQuery);
conf.addSparqlForExistingUris("advisingRelType", advisingRelTypeQuery);
conf.addSparqlForExistingUris("adviseeRole", existingAdviseeRoleQuery);
conf.addSparqlForExistingUris("advisingRelationship", existingAdvisingRelQuery);
conf.addSparqlForExistingUris("advisorRole", existingAdvisorRoleQuery);
conf.addSparqlForExistingUris("existingSubjArea", subjAreaQuery);
conf.addSparqlForExistingUris("existingAdvisor", advisorQuery);
@ -249,22 +249,22 @@ public class PersonHasAdviseeRelationshipGenerator extends VivoBaseGenerator imp
"?vcardName vcard:familyName ?lastName .";
final static String degreeAssertion =
"?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?degree . \n" +
"?degree <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . ";
"?advisingRelationship <http://vivoweb.org/ontology/core#degreeCandidacy> ?degree . \n" +
" ";
//This is for an existing subject area
//Where we only need the existing subject area label
final static String n3ForExistingSubjAreaAssertion =
"?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?existingSubjArea . \n" +
"?existingSubjArea <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . ";
"?advisingRelationship <http://vivoweb.org/ontology/core#hasSubjectArea> ?existingSubjArea . \n" +
"?existingSubjArea <http://vivoweb.org/ontology/core#subjectAreaOf> ?advisingRelationship . ";
//For new subject area, we include all new information
//new subject area should always be a new resource
//and the following should only get evaluated
//when there is something in the label
final static String n3ForNewSubjAreaAssertion =
"?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?newSubjArea . \n" +
"?newSubjArea <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
"?advisingRelationship <http://vivoweb.org/ontology/core#hasSubjectArea> ?newSubjArea . \n" +
"?newSubjArea <http://vivoweb.org/ontology/core#subjectAreaOf> ?advisingRelationship . \n" +
"?newSubjArea <"+ label + "> ?subjAreaLabel . \n" +
"?newSubjArea a <" + subjAreaClass + "> . ";
@ -286,70 +286,90 @@ public class PersonHasAdviseeRelationshipGenerator extends VivoBaseGenerator imp
/* Queries for editing an existing entry */
final static String existingAdvisingRelQuery =
"SELECT ?advisingRelationship WHERE { \n" +
" ?adviseeRole <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?adviseeRole . \n" +
"}";
final static String advisingRelTypeQuery =
"PREFIX vitro: <" + VitroVocabulary.vitroURI + "> \n" +
"SELECT ?advisingRelType WHERE { \n" +
" ?advisingRelationship vitro:mostSpecificType ?advisingRelType . \n" +
"}";
final static String advisorQuery =
"SELECT ?existingAdvisor WHERE { \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?existingAdvisor . \n" +
" ?existingAdvisor a <" + advisorClass + "> . \n" +
" FILTER (?person != ?existingAdvisor) . \n" +
"}";
final static String existingAdviseeRoleQuery =
"SELECT ?adviseeRole WHERE { \n" +
"?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?adviseeRole . \n" +
"?adviseeRole a <" + adviseeRoleClass + "> . \n" +
"}";
final static String existingAdvisorRoleQuery =
"SELECT ?advisorRole WHERE { \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?advisorRole . \n" +
" ?advisorRole a <" + advisorRoleClass + "> . \n" +
"}";
final static String advisorLabelQuery =
"SELECT ?existingAdvisorLabel WHERE { \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?existingAdvisor . \n" +
" ?existingAdvisor a <" + advisorClass + "> . \n" +
" ?existingAdvisor <" + label + "> ?existingAdvisorLabel . \n" +
" FILTER (?person != ?existingAdvisor) . \n" +
"}";
final static String subjAreaQuery =
"SELECT ?existingSubjArea WHERE { \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?existingSubjArea . \n" +
" ?existingSubjArea a <http://www.w3.org/2004/02/skos/core#Concept> . \n" +
" ?existingSubjArea <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#mostSpecificType> ?type \n" +
" FILTER (?type != <http://vivoweb.org/ontology/core#AcademicDegree>) . \n" +
"}";
final static String subjAreaLabelQuery =
"SELECT ?existingSubjAreaLabel WHERE { \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?existingSubjArea . \n" +
" ?existingSubjArea a <http://www.w3.org/2004/02/skos/core#Concept> . \n" +
" ?existingSubjArea <" + label + "> ?existingSubjAreaLabel . \n" +
" ?existingSubjArea <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#mostSpecificType> ?type \n" +
" FILTER (?type != <http://vivoweb.org/ontology/core#AcademicDegree>) . \n" +
" ?adviseeRole <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?adviseeRole . \n" +
" ?advisingRelationship vitro:mostSpecificType ?advisingRelType . \n" +
"}";
final static String advisingRelLabelQuery =
"SELECT ?existingAdvisingRelLabel WHERE { \n" +
" ?adviseeRole <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?adviseeRole . \n" +
" ?advisingRelationship <" + label + "> ?existingAdvisingRelLabel . \n" +
"}";
final static String advisorQuery =
"SELECT ?existingAdvisor WHERE { \n" +
" ?adviseeRole <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?adviseeRole . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?existingAdvisor . \n" +
" ?existingAdvisor <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
" ?existingAdvisor a <" + advisorClass + "> . \n" +
" ?existingAdvisor <http://purl.obolibrary.org/obo/RO_0000053> ?existingAdvisorRole . \n" +
" ?existingAdvisorRole a <" + advisorRoleClass + "> . \n" +
"}";
final static String advisorLabelQuery =
"SELECT ?existingAdvisorLabel WHERE { \n" +
" ?adviseeRole <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?adviseeRole . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?existingAdvisor . \n" +
" ?existingAdvisor <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
" ?existingAdvisor a <" + advisorClass + "> . \n" +
" ?existingAdvisor <" + label + "> ?existingAdvisorLabel . \n" +
" ?existingAdvisor <http://purl.obolibrary.org/obo/RO_0000053> ?existingAdvisorRole . \n" +
" ?existingAdvisorRole a <" + advisorRoleClass + "> . \n" +
"}";
final static String existingAdvisorRoleQuery =
"SELECT ?existingAdvisorRole WHERE { \n" +
" ?adviseeRole <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?adviseeRole . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?existingAdvisorRole . \n" +
" ?existingAdvisorRole <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
" ?existingAdvisorRole a <" + advisorRoleClass + "> . \n" +
"}";
final static String subjAreaQuery =
"SELECT ?existingSubjArea WHERE { \n" +
" ?adviseeRole <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?adviseeRole . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#hasSubjectArea> ?existingSubjArea . \n" +
" ?existingSubjArea a <http://www.w3.org/2004/02/skos/core#Concept> . \n" +
" ?existingSubjArea <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#mostSpecificType> ?type \n" +
"}";
final static String subjAreaLabelQuery =
"SELECT ?existingSubjAreaLabel WHERE { \n" +
" ?adviseeRole <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?adviseeRole . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#hasSubjectArea> ?existingSubjArea . \n" +
" ?existingSubjArea a <http://www.w3.org/2004/02/skos/core#Concept> . \n" +
" ?existingSubjArea <" + label + "> ?existingSubjAreaLabel . \n" +
" ?existingSubjArea <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#mostSpecificType> ?type \n" +
"}";
final static String degreeQuery =
"SELECT ?existingDegree WHERE {\n"+
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?existingDegree . \n" +
" ?adviseeRole <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?adviseeRole . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#degreeCandidacy> ?existingDegree . \n" +
" ?existingDegree a <" + degreeClass + "> . \n" +
"}";
final static String existingStartDateQuery =
"SELECT ?existingDateStart WHERE { \n" +
" ?adviseeRole <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?adviseeRole . \n" +
" ?advisingRelationship <" + advisingRelToInterval + "> ?intervalNode . \n" +
" ?intervalNode a <" + intervalType + "> . \n" +
" ?intervalNode <" + intervalToStart + "> ?startNode . \n" +
@ -358,6 +378,8 @@ public class PersonHasAdviseeRelationshipGenerator extends VivoBaseGenerator imp
final static String existingEndDateQuery =
"SELECT ?existingEndDate WHERE { \n" +
" ?adviseeRole <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?adviseeRole . \n" +
" ?advisingRelationship <" + advisingRelToInterval + "> ?intervalNode . \n" +
" ?intervalNode a <" + intervalType + "> . \n " +
" ?intervalNode <" + intervalToEnd + "> ?endNode . \n" +
@ -366,11 +388,15 @@ public class PersonHasAdviseeRelationshipGenerator extends VivoBaseGenerator imp
final static String existingIntervalNodeQuery =
"SELECT ?existingIntervalNode WHERE { \n" +
" ?adviseeRole <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?adviseeRole . \n" +
" ?advisingRelationship <" + advisingRelToInterval + "> ?existingIntervalNode . \n" +
" ?existingIntervalNode a <" + intervalType + "> . }";
final static String existingStartNodeQuery =
"SELECT ?existingStartNode WHERE { \n" +
" ?adviseeRole <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?adviseeRole . \n" +
" ?advisingRelationship <" + advisingRelToInterval + "> ?intervalNode . \n" +
" ?intervalNode a <" + intervalType + "> . \n" +
" ?intervalNode <" + intervalToStart + "> ?existingStartNode . \n" +
@ -378,6 +404,8 @@ public class PersonHasAdviseeRelationshipGenerator extends VivoBaseGenerator imp
final static String existingEndNodeQuery =
"SELECT ?existingEndNode WHERE { \n" +
" ?adviseeRole <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?adviseeRole . \n" +
" ?advisingRelationship <" + advisingRelToInterval + "> ?intervalNode . \n" +
" ?intervalNode a <" + intervalType + "> . \n" +
" ?intervalNode <" + intervalToEnd + "> ?existingEndNode . \n" +
@ -385,6 +413,8 @@ public class PersonHasAdviseeRelationshipGenerator extends VivoBaseGenerator imp
final static String existingStartPrecisionQuery =
"SELECT ?existingStartPrecision WHERE { \n" +
" ?adviseeRole <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?adviseeRole . \n" +
" ?advisingRelationship <" + advisingRelToInterval + "> ?intervalNode . \n" +
" ?intervalNode a <" + intervalType + "> . \n" +
" ?intervalNode <" + intervalToStart + "> ?startNode . \n" +
@ -393,6 +423,8 @@ public class PersonHasAdviseeRelationshipGenerator extends VivoBaseGenerator imp
final static String existingEndPrecisionQuery =
"SELECT ?existingEndPrecision WHERE { \n" +
" ?adviseeRole <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
" ?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?adviseeRole . \n" +
" ?advisingRelationship <" + advisingRelToInterval + "> ?intervalNode . \n" +
" ?intervalNode a <" + intervalType + "> . \n" +
" ?intervalNode <" + intervalToEnd + "> ?endNode . \n" +

View file

@ -263,8 +263,8 @@ public class PersonHasAdvisorRelationshipGenerator extends VivoBaseGenerator imp
//when there is something in the label
final static String n3ForNewSubjAreaAssertion =
"?advisingRelationship <http://vivoweb.org/ontology/core#relates> ?newSubjArea . \n" +
"?newSubjArea <http://vivoweb.org/ontology/core#relatedBy> ?advisingRelationship . \n" +
"?advisingRelationship <http://vivoweb.org/ontology/core#hasSubjectArea> ?newSubjArea . \n" +
"?newSubjArea <http://vivoweb.org/ontology/core#subjectAreaOf> ?advisingRelationship . \n" +
"?newSubjArea <"+ label + "> ?subjAreaLabel . \n" +
"?newSubjArea a <" + subjAreaClass + "> . ";

View file

@ -262,9 +262,8 @@ public class PersonHasAwardOrHonorGenerator extends VivoBaseGenerator implements
final static String existingOrgQuery =
"SELECT ?existingOrg WHERE { \n" +
" ?awardReceipt <" + receiptOfPred + "> ?existingAward . \n" +
" ?existingAward a <" + awardClass + "> . \n" +
" ?existingAward<" + awardConferredByPred + "> ?existingOrg . \n" +
" ?awardReceipt <" + awardConferredByPred + "> ?existingOrg . \n" +
" ?existingOrg a <" + orgClass + "> . \n" +
" ?existingOrg <" + awardConferredPred + "> ?existingAward . }";
final static String awardReceiptLabelQuery =
@ -281,7 +280,8 @@ public class PersonHasAwardOrHonorGenerator extends VivoBaseGenerator implements
final static String orgLabelQuery =
"SELECT ?existingOrgLabel WHERE { \n" +
" ?award <" + awardConferredByPred + "> ?existingOrg . \n" +
" ?awardReceipt <" + awardConferredByPred + "> ?existingOrg . \n" +
" ?existingOrg a <" + orgClass + "> . \n" +
" ?existingOrg <" + label + "> ?existingOrgLabel . \n" +
"}";

View file

@ -28,7 +28,7 @@ public class PersonHasIssuedCredentialGenerator extends VivoBaseGenerator implem
final static String issuedCredentialTypeClass = vivoCore + "IssuedCredential";
final static String credentialTypeClass = vivoCore + "Credential";
final static String yearCredentialedPred = vivoCore + "dateTimeValue";
final static String yearCredentialedPred = vivoCore + "dateIssued";
final static String issuedCredentialToInterval = vivoCore + "dateTimeInterval";
final static String intervalType = vivoCore + "DateTimeInterval";
final static String intervalToStart = vivoCore + "start";
@ -117,12 +117,6 @@ public class PersonHasIssuedCredentialGenerator extends VivoBaseGenerator implem
setValidators( list("datatype:" + XSD.xstring.toString()))
);
conf.addField( new FieldVTwo().
setName("orgLabelDisplay").
setRangeDatatypeUri(XSD.xstring.toString() ).
setValidators( list("datatype:" + XSD.xstring.toString()))
);
conf.addField( new FieldVTwo().
setName("credentialLabelDisplay").
setRangeDatatypeUri(XSD.xstring.toString() ).
@ -184,8 +178,8 @@ public class PersonHasIssuedCredentialGenerator extends VivoBaseGenerator implem
final static String n3ForExistingCredentialAssertion =
"@prefix vivo: <" + vivoCore + "> . \n\n" +
"?issuedCredential vivo:relates ?existingCredential . \n" +
"?existingCredential a <" + credentialTypeClass + "> . \n" +
"?credential a ?credentialType . \n" +
/* "?existingCredential a <" + credentialTypeClass + "> . \n" +
"?existingCredential a ?credentialType . \n" + */
"?existingCredential vivo:relatedBy ?issuedCredential . " ;
final static String n3ForYearCredentialed =

View file

@ -148,7 +148,7 @@ public class UtilitiesRequestHandler implements VisualizationRequestHandler {
Map<String, String> fieldLabelToOutputFieldLabel = new HashMap<String, String>();
String aggregationRules = "(count(DISTINCT ?Grant) AS ?numOfGrants)";
String grantType = "http://vivoweb.org/ontology#Grant";
String grantType = "http://vivoweb.org/ontology/core#Grant";
ObjectProperty predicate = ModelUtils.getPropertyForRoleInClass(grantType, vitroRequest.getWebappDaoFactory());
String roleToGrantPredicate = "<" + predicate.getURI() + ">";

View file

@ -2,28 +2,60 @@
package edu.cornell.mannlib.vitro.webapp.web.templatemodels.individuallist;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.hp.hpl.jena.query.QuerySolution;
import com.hp.hpl.jena.query.ResultSet;
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individuallist.BaseListedIndividual;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individuallist.ListedIndividual;
import edu.cornell.mannlib.vitro.webapp.dao.jena.QueryUtils;
public class ListedIndividual extends BaseListedIndividual {
private static final Log log = LogFactory.getLog(ListedIndividual.class);
private static final String CORE = "http://vivoweb.org/ontology/core#";
private static String VCARD_DATA_QUERY = ""
+ "PREFIX obo: <http://purl.obolibrary.org/obo/> \n"
+ "PREFIX vcard: <http://www.w3.org/2006/vcard/ns#> \n"
+ "SELECT DISTINCT ?title \n"
+ "WHERE { \n"
+ " ?subject obo:ARG_2000028 ?vIndividual . \n"
+ " ?vIndividual vcard:hasTitle ?vTitle . \n"
+ " ?vTitle vcard:title ?title . \n"
+ "} " ;
private final String title;
public ListedIndividual(Individual individual, VitroRequest vreq) {
super(individual, vreq);
title = findPreferredTitle();
}
private String findPreferredTitle() {
String queryStr = QueryUtils.subUriForQueryVar(VCARD_DATA_QUERY, "subject", individual.getURI());
log.debug("queryStr = " + queryStr);
String value = "";
try {
ResultSet results = QueryUtils.getQueryResults(queryStr, vreq);
while (results.hasNext()) {
QuerySolution soln = results.nextSolution();
String t = QueryUtils.nodeToString( soln.get("title"));
if (StringUtils.isNotBlank(t)) {
value = t;
}
}
} catch (Exception e) {
log.error(e, e);
}
return value;
}
/* Template properties */
public String getPreferredTitle() {
return cleanTextForDisplay( individual.getDataValue(CORE + "preferredTitle") );
return title;
}
}

View file

@ -2,33 +2,73 @@
package edu.cornell.mannlib.vitro.webapp.web.templatemodels.searchresult;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.hp.hpl.jena.query.QuerySolution;
import com.hp.hpl.jena.query.ResultSet;
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.dao.jena.QueryUtils;
public class IndividualSearchResult extends BaseIndividualSearchResult {
private static final Log log = LogFactory.getLog(IndividualSearchResult.class);
private static final String CORE = "http://vivoweb.org/ontology/core#";
private static String VCARD_DATA_QUERY = ""
+ "PREFIX obo: <http://purl.obolibrary.org/obo/> \n"
+ "PREFIX vcard: <http://www.w3.org/2006/vcard/ns#> \n"
+ "SELECT DISTINCT ?email ?title \n"
+ "WHERE { \n"
+ " ?subject obo:ARG_2000028 ?vIndividual . \n"
+ " OPTIONAL { ?vIndividual vcard:hasEmail ?vEmail . \n"
+ " ?vEmail vcard:email ?email . \n"
+ " } \n"
+ " OPTIONAL { ?vIndividual vcard:hasTitle ?vTitle . \n"
+ " ?vTitle vcard:title ?title . \n"
+ " } \n"
+ "} " ;
private String email = "";
private String title = "";
public IndividualSearchResult(Individual individual, VitroRequest vreq) {
super(individual, vreq);
log.debug("Called Individual Search Result");
findVcardInfo();
}
private void findVcardInfo() {
String queryStr = QueryUtils.subUriForQueryVar(VCARD_DATA_QUERY, "subject", individual.getURI());
log.debug("queryStr = " + queryStr);
try {
ResultSet results = QueryUtils.getQueryResults(queryStr, vreq);
while (results.hasNext()) {
QuerySolution soln = results.nextSolution();
String t = QueryUtils.nodeToString( soln.get("title"));
if (StringUtils.isNotBlank(t)) {
title = t;
}
String em = QueryUtils.nodeToString( soln.get("email"));
if (StringUtils.isNotBlank(em)) {
email = em;
}
}
} catch (Exception e) {
log.error(e, e);
}
}
/* Access methods for templates */
public String getPreferredTitle() {
log.debug("Called get Title");
return individual.getDataValue(CORE + "preferredTitle");
return title;
}
public String getEmail() {
log.debug("Called get Email");
return individual.getDataValue(CORE + "email");
return email;
}
}

View file

@ -4,6 +4,7 @@ package edu.cornell.mannlib.vivo.auth.policy;
import static edu.cornell.mannlib.vitro.webapp.auth.policy.ifaces.Authorization.AUTHORIZED;
import static edu.cornell.mannlib.vitro.webapp.auth.policy.ifaces.Authorization.INCONCLUSIVE;
import static edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestActionConstants.SOME_LITERAL;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@ -44,10 +45,9 @@ import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
/**
* Check the relationships in the SelfEditorRelationshipPolicy.
*
* This only checks the relationships that deal with InfoContentEntitys.
* Testing the others seems too redundant. If we generalize this to use
* configurable relationships, then we'll be able to make more general tests as
* well.
* This only checks the relationships that deal with InfoContentEntitys. Testing
* the others seems too redundant. If we generalize this to use configurable
* relationships, then we'll be able to make more general tests as well.
*/
public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
private static final Log log = LogFactory
@ -69,12 +69,12 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
private static final String URI_PERMITTED_PREDICATE = NS_PERMITTED
+ "permittedPredicate";
private static final Property PERMITTED_PREDICATE = new Property(
URI_PERMITTED_PREDICATE);
private static final Property PERMITTED_PREDICATE = new Property(
URI_PERMITTED_PREDICATE);
private static final String URI_RESTRICTED_PREDICATE = NS_RESTRICTED
+ "restrictedPredicate";
private static final Property RESTRICTED_PREDICATE = new Property(
URI_RESTRICTED_PREDICATE);
private static final Property RESTRICTED_PREDICATE = new Property(
URI_RESTRICTED_PREDICATE);
/**
* Where the model statements are stored for this test.
@ -185,30 +185,28 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
@Test
public void dataPropSubjectIsRestricted() {
action = new AddDataPropertyStatement(ontModel,
URI_RESTRICTED_RESOURCE, URI_PERMITTED_PREDICATE);
URI_RESTRICTED_RESOURCE, URI_PERMITTED_PREDICATE, SOME_LITERAL);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
}
@Test
public void dataPropPredicateIsRestricted() {
action = new AddDataPropertyStatement(ontModel, URI_JOE_EDITED_IT,
URI_RESTRICTED_PREDICATE);
URI_RESTRICTED_PREDICATE, SOME_LITERAL);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
}
@Test
public void objectPropSubjectIsRestricted() {
action = new AddObjectPropertyStatement(ontModel,
URI_RESTRICTED_RESOURCE, PERMITTED_PREDICATE,
URI_JOE_EDITED_IT);
URI_RESTRICTED_RESOURCE, PERMITTED_PREDICATE, URI_JOE_EDITED_IT);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
}
@Test
public void objectPropPredicateIsRestricted() {
action = new AddObjectPropertyStatement(ontModel,
URI_PERMITTED_RESOURCE, RESTRICTED_PREDICATE,
URI_JOE_EDITED_IT);
URI_PERMITTED_RESOURCE, RESTRICTED_PREDICATE, URI_JOE_EDITED_IT);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
}
@ -226,14 +224,14 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
@Test
public void dataPropSubjectIsIceButNobodyIsSelfEditing() {
action = new AddDataPropertyStatement(ontModel, URI_JOE_WROTE_IT,
URI_PERMITTED_PREDICATE);
URI_PERMITTED_PREDICATE, SOME_LITERAL);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idNobody, action));
}
@Test
public void dataPropSubjectIsIceButNoAuthorsOrEditorsOrFeatured() {
action = new AddDataPropertyStatement(ontModel, URI_NOBODY_WROTE_IT,
URI_PERMITTED_PREDICATE);
URI_PERMITTED_PREDICATE, SOME_LITERAL);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
assertDecision(INCONCLUSIVE, policy.isAuthorized(idBozoAndJoe, action));
}
@ -241,28 +239,28 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
@Test
public void dataPropSubjectIsIceButWrongAuthor() {
action = new AddDataPropertyStatement(ontModel, URI_BOZO_WROTE_IT,
URI_PERMITTED_PREDICATE);
URI_PERMITTED_PREDICATE, SOME_LITERAL);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
}
@Test
public void dataPropSubjectIsIceButWrongEditor() {
action = new AddDataPropertyStatement(ontModel, URI_BOZO_EDITED_IT,
URI_PERMITTED_PREDICATE);
URI_PERMITTED_PREDICATE, SOME_LITERAL);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
}
@Test
public void dataPropSubjectIsIceButWrongFeatured() {
action = new AddDataPropertyStatement(ontModel,
URI_BOZO_FEATURED_IN_IT, URI_PERMITTED_PREDICATE);
URI_BOZO_FEATURED_IN_IT, URI_PERMITTED_PREDICATE, SOME_LITERAL);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
}
@Test
public void dataPropSubjectIsIceWithSelfEditingAuthor() {
action = new AddDataPropertyStatement(ontModel, URI_JOE_WROTE_IT,
URI_PERMITTED_PREDICATE);
URI_PERMITTED_PREDICATE, SOME_LITERAL);
assertDecision(AUTHORIZED, policy.isAuthorized(idJoe, action));
assertDecision(AUTHORIZED, policy.isAuthorized(idBozoAndJoe, action));
}
@ -270,7 +268,7 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
@Test
public void dataPropSubjectIsIceWithSelfEditingEditor() {
action = new AddDataPropertyStatement(ontModel, URI_JOE_EDITED_IT,
URI_PERMITTED_PREDICATE);
URI_PERMITTED_PREDICATE, SOME_LITERAL);
assertDecision(AUTHORIZED, policy.isAuthorized(idJoe, action));
assertDecision(AUTHORIZED, policy.isAuthorized(idBozoAndJoe, action));
}
@ -278,7 +276,7 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
@Test
public void dataPropSubjectIsIceWithSelfEditingFeatured() {
action = new AddDataPropertyStatement(ontModel, URI_JOE_FEATURED_IN_IT,
URI_PERMITTED_PREDICATE);
URI_PERMITTED_PREDICATE, SOME_LITERAL);
assertDecision(AUTHORIZED, policy.isAuthorized(idJoe, action));
assertDecision(AUTHORIZED, policy.isAuthorized(idBozoAndJoe, action));
}
@ -348,8 +346,7 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
@Test
public void objectPropObjectIsIcebutNobodyIsSelfEditing() {
action = new AddObjectPropertyStatement(ontModel,
URI_PERMITTED_RESOURCE, PERMITTED_PREDICATE,
URI_JOE_EDITED_IT);
URI_PERMITTED_RESOURCE, PERMITTED_PREDICATE, URI_JOE_EDITED_IT);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idNobody, action));
}
@ -365,16 +362,14 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
@Test
public void objectPropObjectIsIceButWrongAuthor() {
action = new AddObjectPropertyStatement(ontModel,
URI_PERMITTED_RESOURCE, PERMITTED_PREDICATE,
URI_BOZO_WROTE_IT);
URI_PERMITTED_RESOURCE, PERMITTED_PREDICATE, URI_BOZO_WROTE_IT);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
}
@Test
public void objectPropObjectIsIceButWrongEditor() {
action = new AddObjectPropertyStatement(ontModel,
URI_PERMITTED_RESOURCE, PERMITTED_PREDICATE,
URI_BOZO_EDITED_IT);
URI_PERMITTED_RESOURCE, PERMITTED_PREDICATE, URI_BOZO_EDITED_IT);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
}
@ -389,8 +384,7 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
@Test
public void objectPropObjectIsIceWithSelfEditingAuthor() {
action = new AddObjectPropertyStatement(ontModel,
URI_PERMITTED_RESOURCE, PERMITTED_PREDICATE,
URI_JOE_WROTE_IT);
URI_PERMITTED_RESOURCE, PERMITTED_PREDICATE, URI_JOE_WROTE_IT);
assertDecision(AUTHORIZED, policy.isAuthorized(idJoe, action));
assertDecision(AUTHORIZED, policy.isAuthorized(idBozoAndJoe, action));
}
@ -398,8 +392,7 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
@Test
public void objectPropObjectIsIceWithSelfEditingEditor() {
action = new AddObjectPropertyStatement(ontModel,
URI_PERMITTED_RESOURCE, PERMITTED_PREDICATE,
URI_JOE_EDITED_IT);
URI_PERMITTED_RESOURCE, PERMITTED_PREDICATE, URI_JOE_EDITED_IT);
assertDecision(AUTHORIZED, policy.isAuthorized(idJoe, action));
assertDecision(AUTHORIZED, policy.isAuthorized(idBozoAndJoe, action));
}
@ -420,7 +413,7 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
@Test
public void dataPropSubjectIsNotIce() {
action = new AddDataPropertyStatement(ontModel, URI_PERMITTED_RESOURCE,
URI_PERMITTED_PREDICATE);
URI_PERMITTED_PREDICATE, SOME_LITERAL);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
}

View file

@ -194,15 +194,7 @@ hyperlink = Hyperlink
#
# accounts templates ( /templates/freemarker/body/accounts )
#
congratulations = Congratulations!
we_have_created_your_account = We have created your new {0} account associated with {1}.
did_not_request_text = If you did not request this new account you can safely ignore this email. \
This request will expire if not acted upon for 30 days.
click_to_create_password = Click the link below to create your password for your new account using our secure server.
password = password
if_link_failed = If the link above doesn't work, you can copy and paste the link directly into your browser's address bar.
thanks = Thanks!
paste_the_link = Paste the link below into your browser's address bar to create your password for your new account using our secure server.
#
# harvester templates ( /templates/freemarker/body/harvester )
@ -363,7 +355,7 @@ selected_conference = Selected Conference
years_participation_in = Years of Participation in
grant_entry_for = grant entry for
select_existing_pub_or_enter_new = Please select an existing grant in the Title field or enter a new one.
select_existing_pub_or_enter_new = Please select an existing publication in the Title field or enter a new one.
unable_to_handle_grant_editing = This form is unable to handle the editing of this grant because it is associated with multiple grant individuals.
grant_type = grant Type
@ -877,3 +869,13 @@ type_of_credential = Type of Credential
credential_name = Credential Name
selected_credential = Selected Credential
year_issued = Year Issued
year_awarded_for = year awarded for
create_year_awarded = Create year awarded
edit_year_awarded = Edit year awarded
publication_date_for = publication date for
create_publication_date = Create publication date
edit_publication_date = Edit publication date
name_prefix = Name Prefix
name_suffix = Name Suffix
administering_organization_for = administering organization for
missing_credential = missing credential

View file

@ -34,13 +34,13 @@ class DirectoryWalker
def scan_line(path, line_number, line)
@obsolete_uris.uris.each do |uri|
next if @known_exceptions.skip?(path, line_number, uri)
@report.add_event(Event.new(path, line_number, line, uri)) if line =~ Regexp.new(Regexp.quote(uri))
@report.add_event(Event.new(path, line_number, line, uri)) if line =~ Regexp.new("\\b#{Regexp.quote(uri)}\\b")
end
if @complete
@obsolete_uris.localnames.each do |localname|
term = ":#{localname}"
next if @known_exceptions.skip?(path, line_number, term)
@report.add_event(Event.new(path, line_number, line, term)) if line =~ Regexp.new(Regexp.quote(term))
@report.add_event(Event.new(path, line_number, line, term)) if line =~ Regexp.new("#{Regexp.quote(term)}\\b")
end
end
end

View file

@ -33,7 +33,13 @@ class Report
hash.sort.each do |path, events|
puts "#{path}"
events.sort{|a, b| a.line_number <=> b.line_number }.each do |e|
puts " #{e.line_number} #{e.line}"
trimmed =
if e.line.size <= 100
e.line
else
e.line[0..97] << "..."
end
puts " #{e.line_number} #{trimmed}"
puts " #{e.is_localname ? "Localname" : "URI"} #{e.string}"
end
puts "--------------------"

View file

@ -10,6 +10,7 @@ directory, for possible inspection later.
--------------------------------------------------------------------------------
=end
require File.expand_path('subscripts/common', File.dirname(__FILE__))
require 'date'
require "#{File.dirname(__FILE__)}/subscripts/loadParms"
@ -17,19 +18,27 @@ def figure_time_stamp()
return DateTime.now.strftime("%Y-%m-%d_%H-%M-%S")
end
Dir.chdir("/home/jeb228/LoadTesting/versions/#{@version_name}") do |path|
@tomcat_logs_dir = "#{path}/tomcatLogs"
if (! File.directory?(@tomcat_logs_dir))
Dir.mkdir(@tomcat_logs_dir)
def add_read_me()
puts "Add a comment for the README.txt file"
comment = STDIN.gets.strip
return if comment.empty?
File.open('README.txt', "w") do |file|
file.puts comment
end
end
@tomcat_logs_dir = version_file('tomcatLogs')
if (! File.directory?(@tomcat_logs_dir))
Dir.mkdir(@tomcat_logs_dir)
end
Dir.chdir(@tomcat_logs_dir) do |path|
@this_logs_dir = "#{path}/#{figure_time_stamp()}"
Dir.mkdir(@this_logs_dir)
end
Dir.chdir(@this_logs_dir) do |path|
system('cp ~/LoadTesting/tomcat/logs/* .')
system("cp #{@home}/tomcat/logs/* .")
add_read_me()
end

View file

@ -67,11 +67,13 @@ mydomain:facultyPreferredTitleDG
a datagetters:SparqlQueryDataGetter ;
display:saveToVar "extra" ;
display:query """
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX vivo: <http://vivoweb.org/ontology/core#>
SELECT ?pt
PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>
SELECT DISTINCT ?pt
WHERE {
?individualUri <http://vivoweb.org/ontology/core#preferredTitle> ?pt
?individualUri obo:ARG_2000028 ?vIndividual .
?vIndividual vcard:hasTitle ?vTitle .
?vTitle vcard:title ?pt .
}
LIMIT 1
""" .