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> <h4>VIVO inside Tomcat</h4>
<p> <p>
When you run the build script to compile and deploy VIVO 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, 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 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 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>, in the build.properties file (see <a href="#build_properties">Step 4</a>,
below). You must create this directory before starting VIVO, below). You must create this directory before starting VIVO,
you must create the <code>runtime.properties</code> file in this directory 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 must ensure that Tomcat has permission to read and write to this
directory when it runs. directory when it runs.
</p> </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> <a href="#build_properties">Specify build properties</a>
</li> </li>
<li> <li>
<a href="#runtime_properties">Specify runtime properties</a> <a href="#deploy">Compile and deploy</a>
</li> </li>
<li> <li>
<a href="#deploy">Compile and deploy</a> <a href="#runtime_properties">Specify runtime properties</a>
</li> </li>
<li> <li>
<a href="#tomcat_settings">Configure Tomcat</a> <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> </p>
<ul> <ul>
<li> <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> <ul>
<li>VIVO does not work with OpenJDK</li> <li>VIVO has not been tested with OpenJDK</li>
<li>VIVO does not work with Java 1.7</li>
</ul> </ul>
</li> </li>
<li> <li>
@ -245,8 +244,8 @@ issuing SPARQL queries that read data, and its URI for issuing SPARQL UPDATE com
<p> <p>
These properties are used in compilation and deployment. These properties are used in compilation and deployment.
They will be incorporated into VIVO when it is compiled in 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 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 6</a>, a later date, you will need to stop Tomcat, repeat <a href="#deploy">Step 5</a>,
and restart Tomcat. and restart Tomcat.
</p> </p>
<p> <p>
@ -343,22 +342,62 @@ issuing SPARQL queries that read data, and its URI for issuing SPARQL UPDATE com
</tbody> </tbody>
</table> </table>
<h3 id="runtime_properties">5. Specify runtime properties </h3> <h3 id="deploy">5. Compile and deploy</h3>
<p> <p>
In <a href="#build_properties">Step 4</a>, you defined the location of the VIVO home directory, 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. by specifying <code>vitro.home</code> in the <code>build.properties</code> file.
Create that directory now. Create that directory now.
</p> </p>
<p> <p>
At the top level of the VIVO distribution directory, you will find a file called At the command line, from the top level of the VIVO distribution
<code>example.runtime.properties</code>. Copy this to the VIVO home directory you have created, directory, type:
renaming the copy to <code>runtime.properties</code>. <pre> ant all </pre>
Edit the file to suit your installation, as described in the following table. 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>
<p> <p>
These properties are loaded when VIVO starts up. If you want to change these 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 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>
<p> <p>
<em>Windows:</em> <em>Windows:</em>
@ -921,45 +960,6 @@ issuing SPARQL queries that read data, and its URI for issuing SPARQL UPDATE com
</tbody> </tbody>
</table> </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> <h3 id="tomcat_settings">7. Configure Tomcat</h3>
<h4>Set JVM parameters</h4> <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 problem is detected the normal VIVO pages will redirect
to a startup status page describing the problem. You to a startup status page describing the problem. You
can stop tomcat, attempt to fix the problem and can stop tomcat, attempt to fix the problem and
proceeded from <a href="#deploy">Step 6</a>. The proceed from <a href="#deploy">Step 5</a>. If the problem is not serious, the
startup status page may offer a continue link which startup status page may offer a <code>continue</code> link which
will allow you to use VIVO in spite of the problems. will allow you to use VIVO in spite of the problems.
<p> <p>

View file

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

View file

@ -194,14 +194,7 @@ hyperlink = Hiperenlace
# #
# accounts templates ( /templates/freemarker/body/accounts ) # 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 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 ) # harvester templates ( /templates/freemarker/body/harvester )
@ -356,7 +349,7 @@ selected_conference = Conferencia Seleccionado
years_participation_in = Años de participación en years_participation_in = Años de participación en
grant_entry_for = autorizará la entrada de 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. 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 grant_type = concesión de la
@ -870,3 +863,13 @@ type_of_credential = Tipo de Credencial
credential_name = Nombre de Credencial credential_name = Nombre de Credencial
selected_credential = Credential seleccionado selected_credential = Credential seleccionado
year_issued = Año de Emisión 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,32 +28,31 @@
WHERE { WHERE {
?subject ?property ?adviseeRole . ?subject ?property ?adviseeRole .
?adviseeRole core:relatedBy ?advisingRel . ?adviseeRole core:relatedBy ?advisingRel .
?subject core:relatedBy ?advisingRel .
LET ( ?localName := afn:localname(?advisingRel) ) LET ( ?localName := afn:localname(?advisingRel) )
OPTIONAL { ?advisingRel rdfs:label ?advisingRelLabel } OPTIONAL { ?advisingRel rdfs:label ?advisingRelLabel }
OPTIONAL { ?advisingRel core:relates ?advisor . OPTIONAL { ?advisingRel core:relates ?advisor .
?advisor a foaf:Person . ?advisor a foaf:Person .
OPTIONAL { ?advisor rdfs:label ?advisorLabel } ?advisor rdfs:label ?advisorLabel
} }
OPTIONAL { ?advisingRel core:degreeCandidacy ?degree . OPTIONAL { ?advisingRel core:degreeCandidacy ?degree .
?degree rdfs:label ?degreeLabel . ?degree rdfs:label ?degreeLabel .
?degree core:abbreviation ?degreeAbbr }
OPTIONAL { ?advisingRel core:degreeCandidacy ?degree .
?degree core:abbreviation ?degreeAbbr .
} }
<collated> <collated>
OPTIONAL { ?advisingRel vitro:mostSpecificType ?subclass . OPTIONAL { ?advisingRel vitro:mostSpecificType ?subclass .
?subclass rdfs:subClassOf core:AdvisingRelationship ?subclass rdfs:subClassOf core:AdvisingRelationship
} }
</collated> </collated>
OPTIONAL { ?advisingRel core:dateTimeInterval ?dateTimeInterval OPTIONAL { ?advisingRel core:dateTimeInterval ?dateTimeInterval .
OPTIONAL { ?dateTimeInterval core:start ?dateTimeStartValue . ?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart ?dateTimeStartValue core:dateTime ?dateTimeStart
} }
} OPTIONAL { ?advisingRel core:dateTimeInterval ?dateTimeInterval .
OPTIONAL { ?advisingRel core:dateTimeInterval ?dateTimeInterval ?dateTimeInterval core:end ?dateTimeEndValue .
OPTIONAL { ?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd ?dateTimeEndValue core:dateTime ?dateTimeEnd
} }
}
} ORDER BY <collated>?subclass</collated> DESC(?dateTimeEnd) } ORDER BY <collated>?subclass</collated> DESC(?dateTimeEnd)
</query-select> </query-select>
@ -61,9 +60,15 @@
<query-construct> <query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&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 { CONSTRUCT {
?advisingRel vitro:mostSpecificType ?subclass .
?subclass rdfs:subClassOf core:AdvisingRelationship ?subclass rdfs:subClassOf core:AdvisingRelationship
} WHERE { } WHERE {
?subject ?property ?adviseeRole .
?adviseeRole core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship .
?advisingRel vitro:mostSpecificType ?subclass .
?subclass rdfs:subClassOf core:AdvisingRelationship ?subclass rdfs:subClassOf core:AdvisingRelationship
} }
</query-construct> </query-construct>
@ -74,6 +79,7 @@
CONSTRUCT { CONSTRUCT {
?subject ?property ?adviseeRole . ?subject ?property ?adviseeRole .
?adviseeRole core:relatedBy ?advisingRel . ?adviseeRole core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship .
?advisingRel rdfs:label ?advisingRelLabel . ?advisingRel rdfs:label ?advisingRelLabel .
} WHERE { } WHERE {
{ {
@ -86,7 +92,6 @@
?adviseeRole a core:AdviseeRole . ?adviseeRole a core:AdviseeRole .
?adviseeRole core:relatedBy ?advisingRel . ?adviseeRole core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship . ?advisingRel a core:AdvisingRelationship .
?advisingRel ?advisingRelProperty ?advisingRelValue .
?advisingRel rdfs:label ?advisingRelLabel ?advisingRel rdfs:label ?advisingRelLabel
} }
} }
@ -105,8 +110,8 @@
?advisingRel a core:AdvisingRelationship . ?advisingRel a core:AdvisingRelationship .
?advisingRel core:relates ?advisor . ?advisingRel core:relates ?advisor .
?advisor a foaf:Person . ?advisor a foaf:Person .
?advisor &lt;http://purl.obolibrary.org/obo/RO_0000053&gt; ?advisorRole .
?advisor rdfs:label ?advisorLabel . ?advisor rdfs:label ?advisorLabel .
?advisor &lt;http://purl.obolibrary.org/obo/RO_0000053&gt; ?advisorRole .
?advisorRole a core:AdvisorRole . ?advisorRole a core:AdvisorRole .
?advisingRel core:degreeCandidacy ?degree . ?advisingRel core:degreeCandidacy ?degree .
?degree rdfs:label ?degreeLabel . ?degree rdfs:label ?degreeLabel .
@ -134,6 +139,12 @@
?advisingRel a core:AdvisingRelationship . ?advisingRel a core:AdvisingRelationship .
?advisingRel core:degreeCandidacy ?degree . ?advisingRel core:degreeCandidacy ?degree .
?degree rdfs:label ?degreeLabel . ?degree rdfs:label ?degreeLabel .
} UNION {
?subject ?property ?adviseeRole .
?adviseeRole a core:AdviseeRole .
?adviseeRole core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship .
?advisingRel core:degreeCandidacy ?degree .
?degree core:abbreviation ?degreeAbbr ?degree core:abbreviation ?degreeAbbr
} }
} }
@ -143,18 +154,16 @@
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT { CONSTRUCT {
?subject ?property ?adviseeRole . ?subject ?property ?adviseeRole .
?adviseeRole a core:AdviseeRole .
?adviseeRole core:relatedBy ?advisingRel . ?adviseeRole core:relatedBy ?advisingRel .
?subject core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship . ?advisingRel a core:AdvisingRelationship .
?advisingRel core:dateTimeInterval ?dateTimeInterval . ?advisingRel core:dateTimeInterval ?dateTimeInterval .
?advisingRel core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue . ?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart ?dateTimeStartValue core:dateTime ?dateTimeStart
} WHERE { } WHERE {
?subject ?property ?adviseeRole . ?subject ?property ?adviseeRole .
?adviseeRole a core:AdviseeRole . ?adviseeRole a core:AdviseeRole .
?adviseeRole core:relatedBy ?advisingRel . ?adviseeRole core:relatedBy ?advisingRel .
?subject core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship . ?advisingRel a core:AdvisingRelationship .
?advisingRel core:dateTimeInterval ?dateTimeInterval . ?advisingRel core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue . ?dateTimeInterval core:start ?dateTimeStartValue .
@ -166,8 +175,8 @@
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT { CONSTRUCT {
?subject ?property ?adviseeRole . ?subject ?property ?adviseeRole .
?adviseeRole a core:AdviseeRole .
?adviseeRole core:relatedBy ?advisingRel . ?adviseeRole core:relatedBy ?advisingRel .
?subject core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship . ?advisingRel a core:AdvisingRelationship .
?advisingRel core:dateTimeInterval ?dateTimeInterval . ?advisingRel core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue . ?dateTimeInterval core:end ?dateTimeEndValue .
@ -175,8 +184,8 @@
} WHERE { } WHERE {
?subject ?property ?adviseeRole . ?subject ?property ?adviseeRole .
?adviseeRole a core:AdviseeRole . ?adviseeRole a core:AdviseeRole .
?adviseeRole a core:AdviseeRole .
?adviseeRole core:relatedBy ?advisingRel . ?adviseeRole core:relatedBy ?advisingRel .
?subject core:relatedBy ?advisingRel .
?advisingRel a core:AdvisingRelationship . ?advisingRel a core:AdvisingRelationship .
?advisingRel core:dateTimeInterval ?dateTimeInterval . ?advisingRel core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue . ?dateTimeInterval core:end ?dateTimeEndValue .

View file

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

View file

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

View file

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

View file

@ -23,9 +23,13 @@
OPTIONAL { ?edTraining vitro:mostSpecificType ?subclass . } OPTIONAL { ?edTraining vitro:mostSpecificType ?subclass . }
OPTIONAL { ?edTraining &lt;http://purl.obolibrary.org/obo/RO_0002234&gt; ?awardedDegree . OPTIONAL { ?edTraining &lt;http://purl.obolibrary.org/obo/RO_0002234&gt; ?awardedDegree .
?awardedDegree core:relates ?degree . ?awardedDegree core:relates ?degree .
?degree a core:AcademicDegree ?degree a core:AcademicDegree .
OPTIONAL { ?degree rdfs:label ?degreeName } ?degree rdfs:label ?degreeName
OPTIONAL { ?degree core:abbreviation ?degreeAbbr } }
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 . OPTIONAL { ?edTraining &lt;http://purl.obolibrary.org/obo/RO_0000057&gt; ?org .
?org a foaf:Organization . ?org a foaf:Organization .
@ -34,14 +38,14 @@
OPTIONAL { ?edTraining core:majorField ?majorField } OPTIONAL { ?edTraining core:majorField ?majorField }
OPTIONAL { ?edTraining core:departmentOrSchool ?deptOrSchool } OPTIONAL { ?edTraining core:departmentOrSchool ?deptOrSchool }
OPTIONAL { ?edTraining core:supplementalInformation ?info } OPTIONAL { ?edTraining core:supplementalInformation ?info }
OPTIONAL { ?edTraining core:dateTimeInterval ?dateTimeInterval OPTIONAL { ?edTraining core:dateTimeInterval ?dateTimeInterval .
OPTIONAL { ?dateTimeInterval core:start ?dateTimeStartValue . ?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart ?dateTimeStartValue core:dateTime ?dateTimeStart
} }
OPTIONAL { ?dateTimeInterval core:end ?dateTimeEndValue . OPTIONAL { ?edTraining core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd ?dateTimeEndValue core:dateTime ?dateTimeEnd
} }
}
} ORDER BY ?subclass DESC(?dateTimeEnd) DESC(?dateTimeStart) } ORDER BY ?subclass DESC(?dateTimeEnd) DESC(?dateTimeStart)
</query-select> </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,19 +22,20 @@
?subject ?property ?role ?subject ?property ?role
OPTIONAL { ?role core:roleContributesTo ?activity . OPTIONAL { ?role core:roleContributesTo ?activity .
?activity vitro:mostSpecificType ?subclass ?activity vitro:mostSpecificType ?subclass .
OPTIONAL { ?activity rdfs:label ?activityName } ?subclass rdfs:label ?subclassLabel
OPTIONAL { ?subclass rdfs:label ?subclassLabel }
} }
OPTIONAL { ?role core:roleContributesTo ?activity .
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval ?activity rdfs:label ?activityName
OPTIONAL { ?dateTimeInterval core:start ?dateTimeStartValue . }
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart ?dateTimeStartValue core:dateTime ?dateTimeStart
} }
OPTIONAL { ?dateTimeInterval core:end ?dateTimeEndValue . OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd ?dateTimeEndValue core:dateTime ?dateTimeEnd
} }
}
} ORDER BY <collated> ?subclass </collated> DESC(?dateTimeEnd) DESC(?dateTimeStart) ?activityName } ORDER BY <collated> ?subclass </collated> DESC(?dateTimeEnd) DESC(?dateTimeStart) ?activityName
</query-select> </query-select>

View file

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

View file

@ -30,69 +30,51 @@
OPTIONAL { ?role rdfs:label ?roleLabel } 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)) 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 { ?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 { 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 . ?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 . ?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?workshop ?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 { ?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 .
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 . ?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 . ?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?series vivo:seriesForEvent ?workshop ?workshop vivo:inEventSeries ?series .
?series vivo:seriesForEvent ?workshop .
?series rdfs:label ?seriesLabel
} }
OPTIONAL { ?series rdfs:label ?seriesLabel }
}
<collated> <collated>
OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation a vivo:Presentation .
?presentation vitro:mostSpecificType ?subclass . ?presentation vitro:mostSpecificType ?subclass .
{
?subclass rdfs:subClassOf vivo:Presentation
} UNION {
?subclass owl:equivalentClass vivo:Presentation
} }
</collated> </collated>
} OPTIONAL { ?role vivo:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval vivo:start ?dateTimeStartValue .
OPTIONAL { ?role vivo:dateTimeInterval ?dateTimeInterval
OPTIONAL { ?dateTimeInterval vivo:start ?dateTimeStartValue .
?dateTimeStartValue vivo:dateTime ?dateTime ?dateTimeStartValue vivo:dateTime ?dateTime
} }
}
<critical-data-required> <critical-data-required>
FILTER ( bound(?presentation) ) FILTER ( bound(?presentation) )
@ -103,42 +85,16 @@
<query-construct> <query-construct>
PREFIX vivo: &lt;http://vivoweb.org/ontology/core#&gt; 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 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 vitro: &lt;http://vitro.mannlib.cornell.edu/ns/vitro/0.7#&gt;
CONSTRUCT { CONSTRUCT {
?subject ?property ?role . ?subject ?property ?role .
?role a vivo:PresenterRole . ?role a vivo:PresenterRole .
?role rdfs:label ?roleLabel .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation . ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation a vivo:Presentation .
?presentation rdfs:label ?presentationLabel .
?presentation vitro:mostSpecificType ?subclass . ?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 { } WHERE {
{ {
?subject ?property ?role . ?subject ?property ?role .
@ -146,12 +102,19 @@
} UNION { } UNION {
?subject ?property ?role . ?subject ?property ?role .
?role a vivo:PresenterRole . ?role a vivo:PresenterRole .
?role ?roleProperty ?roleValue ?role rdfs:label ?roleLabel .
} UNION { } UNION {
?subject ?property ?role . ?subject ?property ?role .
?role a vivo:PresenterRole . ?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation . ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation a vivo:Presentation .
?presentation rdfs:label ?presentationLabel ?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> </query-construct>
@ -164,8 +127,10 @@
CONSTRUCT { CONSTRUCT {
?subject ?property ?role . ?subject ?property ?role .
?role a vivo:PresenterRole . ?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 . ?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 &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?conference rdfs:label ?conferenceLabel ?conference rdfs:label ?conferenceLabel
} WHERE { } WHERE {
@ -173,28 +138,14 @@
{ {
?subject ?property ?role . ?subject ?property ?role .
?role a vivo:PresenterRole . ?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 { } UNION {
?subject ?property ?role . ?subject ?property ?role .
?role a vivo:PresenterRole . ?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation . ?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 . ?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 &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?conference a bibo:Conference .
?conference rdfs:label ?conferenceLabel ?conference rdfs:label ?conferenceLabel
} }
} }
@ -208,42 +159,31 @@
CONSTRUCT { CONSTRUCT {
?subject ?property ?role . ?subject ?property ?role .
?role a vivo:PresenterRole . ?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 . ?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?conference .
?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?workshop . ?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?workshop .
?conference a bibo:Conference . ?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 ?conference rdfs:label ?conferenceLabel
} WHERE { } WHERE {
{ {
?subject ?property ?role . ?subject ?property ?role .
?role a vivo:PresenterRole . ?role a vivo:PresenterRole .
} UNION {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation . ?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 . ?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 . ?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 &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 ?conference rdfs:label ?conferenceLabel
} }
} }
@ -257,6 +197,8 @@
CONSTRUCT { CONSTRUCT {
?subject ?property ?role . ?subject ?property ?role .
?role a vivo:PresenterRole . ?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation a vivo:Presentation .
?series a vivo:EventSeries . ?series a vivo:EventSeries .
?presentation vivo:inEventSeries ?series . ?presentation vivo:inEventSeries ?series .
?series vivo:seriesForEvent ?presentation . ?series vivo:seriesForEvent ?presentation .
@ -266,27 +208,13 @@
{ {
?subject ?property ?role . ?subject ?property ?role .
?role a vivo:PresenterRole . ?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?series a vivo:EventSeries .
?presentation vivo:inEventSeries ?series
} UNION { } UNION {
?subject ?property ?role . ?subject ?property ?role .
?role a vivo:PresenterRole . ?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation . ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation a vivo:Presentation .
?series a vivo:EventSeries . ?series a vivo:EventSeries .
?presentation vivo:inEventSeries ?series . ?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 vivo:seriesForEvent ?presentation .
?series rdfs:label ?seriesLabel ?series rdfs:label ?seriesLabel
} }
@ -301,42 +229,30 @@
CONSTRUCT { CONSTRUCT {
?subject ?property ?role . ?subject ?property ?role .
?role a vivo:PresenterRole . ?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 . ?workshop vivo:inEventSeries ?series .
?series vivo:seriesForEvent ?workshop . ?series vivo:seriesForEvent ?workshop .
?series a vivo:EventSeries . ?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 ?series rdfs:label ?seriesLabel
} WHERE { } WHERE {
{ {
?subject ?property ?role . ?subject ?property ?role .
?role a vivo:PresenterRole . ?role a vivo:PresenterRole .
} UNION {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation . ?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 . ?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 &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 ?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,19 +22,21 @@
?subject ?property ?role ?subject ?property ?role
OPTIONAL { ?role core:roleContributesTo ?activity . OPTIONAL { ?role core:roleContributesTo ?activity .
?activity vitro:mostSpecificType ?subclass ?activity rdfs:label ?activityName .
OPTIONAL { ?activity rdfs:label ?activityName }
OPTIONAL { ?subclass rdfs:label ?subclassLabel }
} }
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval OPTIONAL { ?role core:roleContributesTo ?activity .
OPTIONAL { ?dateTimeInterval core:start ?dateTimeStartValue . ?activity vitro:mostSpecificType ?subclass .
?subclass rdfs:label ?subclassLabel
}
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart ?dateTimeStartValue core:dateTime ?dateTimeStart
} }
OPTIONAL { ?dateTimeInterval core:end ?dateTimeEndValue . OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd ?dateTimeEndValue core:dateTime ?dateTimeEnd
} }
}
} ORDER BY <collated> ?subclass </collated> DESC(?dateTimeEnd) DESC(?dateTimeStart) ?activityName } ORDER BY <collated> ?subclass </collated> DESC(?dateTimeEnd) DESC(?dateTimeStart) ?activityName
</query-select> </query-select>
@ -60,20 +62,11 @@
?subject ?property ?role . ?subject ?property ?role .
?role a core:ReviewerRole . ?role a core:ReviewerRole .
?role vitro:mostSpecificType ?roleSubclass ?role vitro:mostSpecificType ?roleSubclass
} UNION {
?subject ?property ?role .
?role a core:ReviewerRole .
?role core:roleContributesTo ?activity
} UNION { } UNION {
?subject ?property ?role . ?subject ?property ?role .
?role a core:ReviewerRole . ?role a core:ReviewerRole .
?role core:roleContributesTo ?activity . ?role core:roleContributesTo ?activity .
?activity rdfs:label ?activityName . ?activity rdfs:label ?activityName .
} UNION {
?subject ?property ?role .
?role a core:ReviewerRole .
?role core:roleContributesTo ?activity .
?activity vitro:mostSpecificType ?subclass
} UNION { } UNION {
?subject ?property ?role . ?subject ?property ?role .
?role a core:ReviewerRole . ?role a core:ReviewerRole .

View file

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

View file

@ -21,7 +21,9 @@
?person a foaf:Person . ?person a foaf:Person .
?person rdfs:label ?personName ?person rdfs:label ?personName
<collated> <collated>
OPTIONAL { ?person vitro:mostSpecificType ?subclass . OPTIONAL { ?authorship core:relates ?person .
?person a foaf:Person .
?person vitro:mostSpecificType ?subclass .
?subclass rdfs:subClassOf foaf:Person ?subclass rdfs:subClassOf foaf:Person
} }
</collated> </collated>
@ -32,16 +34,6 @@
} ORDER BY <collated> ?subclass </collated> ?rank ?personName } ORDER BY <collated> ?subclass </collated> ?rank ?personName
</query-select> </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> <query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
@ -54,7 +46,8 @@
?authorship core:relates ?person . ?authorship core:relates ?person .
?person a foaf:Person . ?person a foaf:Person .
?person rdfs:label ?personName . ?person rdfs:label ?personName .
?person vitro:mostSpecificType ?subclass ?person vitro:mostSpecificType ?subclass .
?subclass rdfs:subClassOf foaf:Person
} WHERE { } WHERE {
{ {
?subject ?property ?authorship . ?subject ?property ?authorship .
@ -75,7 +68,8 @@
?authorship core:relates ?person . ?authorship core:relates ?person .
?person a foaf:Person . ?person a foaf:Person .
?person rdfs:label ?personName . ?person rdfs:label ?personName .
?person vitro:mostSpecificType ?subclass ?person vitro:mostSpecificType ?subclass .
?subclass rdfs:subClassOf foaf:Person
} }
} }
</query-construct> </query-construct>

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

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 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 vitro: &lt;http://vitro.mannlib.cornell.edu/ns/vitro/0.7#&gt;
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&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 SELECT DISTINCT
?person ?person
?personName ?personName
?posnLabel ?posnLabel
?org
?orgLabel ?orgLabel
?type
?personType
?title ?title
WHERE { WHERE {
?subject ?property ?person . ?subject ?property ?person .
?person core:personInPosition ?position . OPTIONAL { ?person core:relatedBy ?position .
OPTIONAL { ?person rdfs:label ?personName } ?position a core:Position
OPTIONAL { ?person core:preferredTitle ?title }
OPTIONAL { ?person vitro:mostSpecificType ?personType .
?personType rdfs:subClassOf foaf:Person
} }
OPTIONAL { ?position rdfs:label ?posnLabel } OPTIONAL { ?person core:relatedBy ?position .
OPTIONAL { ?position core:positionInOrganization ?org . ?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 ?org rdfs:label ?orgLabel
} }
OPTIONAL { ?position core:hrJobTitle ?hrJobTitle }
OPTIONAL { ?position core:rank ?rank }
} }
ORDER BY ?personName ?type ORDER BY ?personName
</query-select> </query-select>
<query-construct> <query-construct>
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
CONSTRUCT { CONSTRUCT {
?subject ?property ?person . ?subject ?property ?person .
?person core:personInPosition ?position . ?person core:relatedBy ?position .
?position rdfs:label ?positionLabel . ?position a core:Position .
?position core:positionInOrganization ?org . ?position rdfs:label ?posnLabel .
?position core:relates ?org .
?org a foaf:Organization .
?org rdfs:label ?orgName . ?org rdfs:label ?orgName .
?position core:hrJobTitle ?hrJobTitle
} WHERE { } WHERE {
{ {
?subject ?property ?person ?subject ?property ?person
} UNION { } UNION {
?subject ?property ?person . ?subject ?property ?person .
?person core:personInPosition ?position ?person core:relatedBy ?position .
?position a core:Position .
} UNION { } UNION {
?subject ?property ?person . ?subject ?property ?person .
?person core:personInPosition ?position . ?person core:relatedBy ?position .
?position rdfs:label ?positionLabel ?position a core:Position .
?position rdfs:label ?posnLabel
} UNION { } UNION {
?subject ?property ?person . ?subject ?property ?person .
?person core:personInPosition ?position . ?person core:relatedBy ?position .
?position core:positionInOrganization ?org ?position a core:Position .
?position core:relates ?org .
?org a foaf:Organization .
} UNION { } UNION {
?subject ?property ?person . ?subject ?property ?person .
?person core:personInPosition ?position . ?person core:relatedBy ?position .
?position core:positionInOrganization ?org . ?position a core:Position .
?position core:relates ?org .
?org a foaf:Organization .
?org rdfs:label ?orgName ?org rdfs:label ?orgName
} UNION {
?subject ?property ?person .
?person core:personInPosition ?position .
?position core:hrJobTitle ?hrJobTitle
} }
} }
</query-construct> </query-construct>
@ -82,26 +93,26 @@
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&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 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 { CONSTRUCT {
?subject ?property ?person . ?subject ?property ?person .
?person rdfs:label ?label . ?person rdfs:label ?personName .
?person core:preferredTitle ?title . ?person obo:ARG_2000028 ?vcard .
?person vitro:mostSpecificType ?personType . ?vcard vcard:hasTitle ?titleObj .
?personType rdfs:subClassOf foaf:Person ?titleObj vcard:title ?title
} WHERE { } WHERE {
{ {
?subject ?property ?person ?subject ?property ?person
} UNION { } UNION {
?subject ?property ?person . ?subject ?property ?person .
?person rdfs:label ?label ?person rdfs:label ?personName
} UNION { } UNION {
?subject ?property ?person . ?subject ?property ?person .
?person core:preferredTitle ?title ?person obo:ARG_2000028 ?vcard .
} UNION { ?vcard vcard:hasTitle ?titleObj .
?subject ?property ?person . ?titleObj vcard:title ?title
?person vitro:mostSpecificType ?personType .
?personType rdfs:subClassOf foaf:Person
} }
} }
</query-construct> </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> <#macro showRole statement>
<#local linkedIndividual> <#local linkedIndividual>
<#if statement.presentation??> <#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> <#else>
<#-- This shouldn't happen, but we must provide for it --> <#-- This shouldn't happen, but we must provide for it -->
<a href="${profileUrl(statement.uri("role"))}" title="${i18n().missing_presentation}">${i18n().missing_presentation}</a> <a href="${profileUrl(statement.uri("role"))}" title="${i18n().missing_presentation}">${i18n().missing_presentation}</a>

View file

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

View file

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

View file

@ -13,13 +13,18 @@
next statement --> next statement -->
<#macro showResearchers statement> <#macro showResearchers statement>
<#local linkedIndividual> <#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> </#local>
<#if statement.title?has_content > <#if statement.title?has_content >
<#local posnTitle = statement.title> <#local posnTitle = statement.title>
<#else> <#elseif statement.posnLabel?has_content>
<#local posnTitle = statement.posnLabel!statement.personType> <#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> </#if>
<@s.join [ linkedIndividual, posnTitle, statement.orgLabel!"" ] /> ${statement.type!} <@s.join [ linkedIndividual, posnTitle!, orgString! ] />
</#macro> </#macro>

View file

@ -65,13 +65,13 @@
<form id="addFullNameToPerson" class="customForm noIE67" action="${submitUrl}" role="add/edit name"> <form id="addFullNameToPerson" class="customForm noIE67" action="${submitUrl}" role="add/edit name">
<p> <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 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}" /> <input style="margin-left:138px" size="12" type="text" id="prefix" name="prefix" value="${prefixValue}" />
</p> </p>
<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 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}" /> <input style="margin-left:138px" size="12" type="text" id="suffix" name="suffix" value="${suffixValue}" />
</p> </p>

View file

@ -4,6 +4,7 @@
<#-- Template for adding a grant role, such as principal investigator, to a foaf:Persons --> <#-- Template for adding a grant role, such as principal investigator, to a foaf:Persons -->
<#--Retrieve certain edit configuration information--> <#--Retrieve certain edit configuration information-->
<#assign editMode = editConfiguration.pageData.editMode /> <#assign editMode = editConfiguration.pageData.editMode />
<#assign rangeUri = editConfiguration.pageData.rangeUri />
<#assign literalValues = editConfiguration.existingLiteralValues /> <#assign literalValues = editConfiguration.existingLiteralValues />
<#assign uriValues = editConfiguration.existingUriValues /> <#assign uriValues = editConfiguration.existingUriValues />
<#assign htmlForElements = editConfiguration.pageData.htmlForElements /> <#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 formHeading = "${i18n().investigator_entry_for}"/>
<#assign submitButtonLabel = "${i18n().investigator_capitalized}" /> <#assign submitButtonLabel = "${i18n().investigator_capitalized}" />
<#if editConfiguration.predicateUri?ends_with("hasPrincipalInvestigatorRole") > <#if rangeUri?contains("#PrincipalInvestigatorRole") >
<#assign formHeading = "${i18n().principal_investigator_entry_for}"/> <#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}"/> <#assign formHeading = "${i18n().co_principal_investigator_entry_for}"/>
</#if> </#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.form = $('#personHasAdvisingRelationship');
this.adRelshiplabel = $('#advisingRelLabel'); this.adRelshiplabel = $('#advisingRelLabel');
this.advisor = $('#advisor'); this.advisor = $('#advisor');
this.fauxLabel = $('#maskLabelBuilding');
this.subjArea = $('#SubjectArea'); this.subjArea = $('#SubjectArea');
this.firstName = $('#firstName'); this.firstName = $('#firstName');
this.lastName = $('#lastName'); this.lastName = $('#lastName');
@ -56,8 +57,6 @@ var adviseeRelUtils = {
this.form.submit(function() { this.form.submit(function() {
adviseeRelUtils.resolveAdvisorNames(); adviseeRelUtils.resolveAdvisorNames();
adviseeRelUtils.buildAdvisingRelLabel(); adviseeRelUtils.buildAdvisingRelLabel();
alert(this.adRelshiplabel.val());
return false;
}); });
}, },
@ -80,6 +79,12 @@ var adviseeRelUtils = {
if (firstName) { if (firstName) {
name += ', ' + 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.advisor.val(name);
this.lastName.val(lastName); this.lastName.val(lastName);
} }
@ -91,7 +96,6 @@ var adviseeRelUtils = {
}, },
buildAdvisingRelLabel: function() { buildAdvisingRelLabel: function() {
alert("here");
if ( this.advisor.val() != "" ) { if ( this.advisor.val() != "" ) {
this.adRelshiplabel.val(this.advisor.val() + " " + adviseeRelUtils.advisingString + " " + this.subjName); 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 > <p >
<label for="advisor">${i18n().advisor_capitalized}: ${i18n().last_name} ${requiredHint}<span style="padding-left:322px">${i18n().first_name} ${requiredHint}</span></label> <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 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 size="30" type="text" id="firstName" name="firstName" value="${firstNameValue}" ><br />
<input type="hidden" id="lastName" name="lastName" value=""> <input type="hidden" id="lastName" name="lastName" value="">
<input class="display" type="hidden" acGroupName="advisor" id="advisorDisplay" name="advisorLabelDisplay" value="${advisorLabelDisplayValue}" > <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 requiredHint = "<span class='requiredHint'> *</span>" />
<#assign yearHint = "<span class='hint'>(${i18n().year_hint_format})</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--> <#--Display error messages if any-->
<#if submissionErrors?has_content> <#if submissionErrors?has_content>

View file

@ -68,11 +68,17 @@
<section id="personHasMailingAddress" role="region"> <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> <p>
<label for="streetAddress">${i18n().street_address} ${requiredHint}</label> <label for="streetAddress">${i18n().street_address} 1 ${requiredHint}</label>
<input size="50" type="text" id="streetAddress" name="streetAddress" value="${streetAddressValue}" /> <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>
<p> <p>
@ -108,12 +114,19 @@
</section> </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}/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/customForm.css" />')}
${stylesheets.add('<link rel="stylesheet" href="${urls.base}/templates/freemarker/edit/forms/css/customFormWithAutocomplete.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>', ${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}/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/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}/js/jquery_plugins/jquery.bgiframe.pack.js"></script>')}

View file

@ -27,6 +27,7 @@ local:personInPositionConfig a :ObjectPropertyDisplayConfig ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupaffiliation> ; :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupaffiliation> ;
vitro:displayRankAnnot 40; vitro:displayRankAnnot 40;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:customEntryFormAnnot "edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.PersonHasPositionHistoryGenerator"^^xsd:string . vitro:customEntryFormAnnot "edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.PersonHasPositionHistoryGenerator"^^xsd:string .
local:organizationForPositionContext a :ConfigContext ; local:organizationForPositionContext a :ConfigContext ;
@ -41,6 +42,7 @@ local:organizationForPositionConfig a :ObjectPropertyDisplayConfig ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupaffiliation> ; :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupaffiliation> ;
vitro:displayRankAnnot 15; vitro:displayRankAnnot 15;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:customEntryFormAnnot "edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.OrganizationHasPositionHistoryGenerator"^^xsd:string . vitro:customEntryFormAnnot "edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.OrganizationHasPositionHistoryGenerator"^^xsd:string .
local:authorInAuthorshipContext a :ConfigContext ; local:authorInAuthorshipContext a :ConfigContext ;
@ -67,7 +69,7 @@ local:hasServiceProviderRoleContext a :ConfigContext ;
:qualifiedBy <http://purl.obolibrary.org/obo/ERO_0000012> . :qualifiedBy <http://purl.obolibrary.org/obo/ERO_0000012> .
local:hasServiceProviderRoleConfig a :ObjectPropertyDisplayConfig ; local:hasServiceProviderRoleConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-hasRole.xml"^^xsd:string ; :listViewConfigFile "listViewConfig-roleContributesTo.xml"^^xsd:string ;
:displayName "service to the profession" ; :displayName "service to the profession" ;
vitro:displayRankAnnot 20; vitro:displayRankAnnot 20;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
@ -82,7 +84,7 @@ local:hasClinicalRoleContext a :ConfigContext ;
:qualifiedBy <http://vivoweb.org/ontology/core#ClinicalRole> . :qualifiedBy <http://vivoweb.org/ontology/core#ClinicalRole> .
local:hasClinicalRoleConfig a :ObjectPropertyDisplayConfig ; local:hasClinicalRoleConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-hasRole.xml"^^xsd:string ; :listViewConfigFile "listViewConfig-hasClinicalActivity.xml"^^xsd:string ;
:displayName "clinical activities" ; :displayName "clinical activities" ;
vitro:displayRankAnnot 70; vitro:displayRankAnnot 70;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
@ -97,7 +99,7 @@ local:hasLeaderRoleContext a :ConfigContext ;
:qualifiedBy <http://vivoweb.org/ontology/core#LeaderRole> . :qualifiedBy <http://vivoweb.org/ontology/core#LeaderRole> .
local:hasLeaderRoleConfig a :ObjectPropertyDisplayConfig ; local:hasLeaderRoleConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-hasRole.xml"^^xsd:string ; :listViewConfigFile "listViewConfig-roleContributesTo.xml"^^xsd:string ;
:displayName "head of" ; :displayName "head of" ;
vitro:displayRankAnnot 30; vitro:displayRankAnnot 30;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
@ -112,7 +114,7 @@ local:hasMemberRoleContext a :ConfigContext ;
:qualifiedBy <http://vivoweb.org/ontology/core#MemberRole> . :qualifiedBy <http://vivoweb.org/ontology/core#MemberRole> .
local:hasMemberRoleConfig a :ObjectPropertyDisplayConfig ; local:hasMemberRoleConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-hasRole.xml"^^xsd:string ; :listViewConfigFile "listViewConfig-roleContributesTo.xml"^^xsd:string ;
:displayName "member of" ; :displayName "member of" ;
vitro:displayRankAnnot 50; vitro:displayRankAnnot 50;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
@ -127,7 +129,7 @@ local:hasTeacherRoleContext a :ConfigContext ;
:qualifiedBy <http://vivoweb.org/ontology/core#TeacherRole> . :qualifiedBy <http://vivoweb.org/ontology/core#TeacherRole> .
local:hasTeacherRoleConfig a :ObjectPropertyDisplayConfig ; local:hasTeacherRoleConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-hasRole.xml"^^xsd:string ; :listViewConfigFile "listViewConfig-roleRealizedIn.xml"^^xsd:string ;
:displayName "teaching activities" ; :displayName "teaching activities" ;
vitro:displayRankAnnot 20; vitro:displayRankAnnot 20;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
@ -172,7 +174,7 @@ local:hasOrganizerRoleContext a :ConfigContext ;
:qualifiedBy <http://vivoweb.org/ontology/core#OrganizerRole> . :qualifiedBy <http://vivoweb.org/ontology/core#OrganizerRole> .
local:hasOrganizerRoleConfig a :ObjectPropertyDisplayConfig ; local:hasOrganizerRoleConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-hasRole.xml"^^xsd:string ; :listViewConfigFile "listViewConfig-roleRealizedIn.xml"^^xsd:string ;
:displayName "organizer of" ; :displayName "organizer of" ;
vitro:displayRankAnnot 4; vitro:displayRankAnnot 4;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
@ -187,7 +189,7 @@ local:hasOutreachProviderRoleContext a :ConfigContext ;
:qualifiedBy <http://vivoweb.org/ontology/core#OutreachProviderRole> . :qualifiedBy <http://vivoweb.org/ontology/core#OutreachProviderRole> .
local:hasOutreachProviderRoleConfig a :ObjectPropertyDisplayConfig ; local:hasOutreachProviderRoleConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-hasRole.xml"^^xsd:string ; :listViewConfigFile "listViewConfig-roleContributesTo.xml"^^xsd:string ;
:displayName "outreach and community service" ; :displayName "outreach and community service" ;
vitro:displayRankAnnot 50; vitro:displayRankAnnot 50;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
@ -217,7 +219,7 @@ local:hasResearcherRoleContext a :ConfigContext ;
:qualifiedBy <http://vivoweb.org/ontology/core#ResearcherRole> . :qualifiedBy <http://vivoweb.org/ontology/core#ResearcherRole> .
local:hasResearcherRoleConfig a :ObjectPropertyDisplayConfig ; local:hasResearcherRoleConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-hasRole.xml"^^xsd:string ; :listViewConfigFile "listViewConfig-researchActivities.xml"^^xsd:string ;
:displayName "research activities" ; :displayName "research activities" ;
vitro:displayRankAnnot 15; vitro:displayRankAnnot 15;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
@ -247,7 +249,7 @@ local:hasPrincipalInvestigatorRoleContext a :ConfigContext ;
:qualifiedBy <http://vivoweb.org/ontology/core#PrincipalInvestigatorRole> . :qualifiedBy <http://vivoweb.org/ontology/core#PrincipalInvestigatorRole> .
local:hasPrincipalInvestigatorRoleConfig a :ObjectPropertyDisplayConfig ; local:hasPrincipalInvestigatorRoleConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-hasInvestigatorRole.xml"^^xsd:string ; :listViewConfigFile "listViewConfig-hasPrincipalInvestigatorRole.xml"^^xsd:string ;
:displayName "principal investigator on" ; :displayName "principal investigator on" ;
vitro:displayRankAnnot 20; vitro:displayRankAnnot 20;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
@ -262,7 +264,7 @@ local:hasCo-PrincipalInvestigatorRoleContext a :ConfigContext ;
:qualifiedBy <http://vivoweb.org/ontology/core#CoPrincipalInvestigatorRole> . :qualifiedBy <http://vivoweb.org/ontology/core#CoPrincipalInvestigatorRole> .
local:hasCo-PrincipalInvestigatorRoleConfig a :ObjectPropertyDisplayConfig ; local:hasCo-PrincipalInvestigatorRoleConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-hasInvestigatorRole.xml"^^xsd:string ; :listViewConfigFile "listViewConfig-hasCoPrincipalInvestigatorRole.xml"^^xsd:string ;
:displayName "co-principal investigator on" ; :displayName "co-principal investigator on" ;
vitro:displayRankAnnot 25; vitro:displayRankAnnot 25;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; 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> ; 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> . :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 ### ### vcard properties ###
local:mailingAddressContext a :ConfigContext ; local:mailingAddressContext a :ConfigContext ;
@ -647,6 +664,104 @@ local:inEventSeriesConfig a :ObjectPropertyDisplayConfig ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> . :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 ; local:awardOrHonorReceiptsContext a :ConfigContext ;
:hasConfiguration local:awardOrHonorReceiptsConfig ; :hasConfiguration local:awardOrHonorReceiptsConfig ;
:configContextFor <http://vivoweb.org/ontology/core#relatedBy> ; :configContextFor <http://vivoweb.org/ontology/core#relatedBy> ;
@ -720,5 +835,32 @@ local:grantRelatesConfig a :ObjectPropertyDisplayConfig ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupbiography> . :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) { public void addFormSpecificData(EditConfigurationVTwo editConfiguration, VitroRequest vreq) {
HashMap<String, Object> formSpecificData = new HashMap<String, Object>(); HashMap<String, Object> formSpecificData = new HashMap<String, Object>();
formSpecificData.put("editMode", getEditMode(vreq).name().toLowerCase()); formSpecificData.put("editMode", getEditMode(vreq).name().toLowerCase());
formSpecificData.put("rangeUri", getRangeUri(vreq));
//In this case, passing back a sparql query //In this case, passing back a sparql query
formSpecificData.put("sparqlForAcFilter", getSparqlForAcFilter(vreq)); formSpecificData.put("sparqlForAcFilter", getSparqlForAcFilter(vreq));
//Put in the fact that we require field //Put in the fact that we require field
@ -747,8 +748,10 @@ public class AddGrantRoleToPersonGenerator implements EditConfigurationGenerator
return query; 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; package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; 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; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
public class AddOutreachProviderRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator { 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 //Outreach Provider role involves hard-coded options for the "right side" of the role or activity
@Override @Override
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception { FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
return new return new ConstantFieldOptions(
ChildVClassesOptions(OPTION_CLASS_URI) "","Select type",
.setDefaultOptionLabel("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 @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$ */ /* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators; 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.io.FileNotFoundException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -335,7 +337,7 @@ public class ManageLabelsForPersonGenerator extends BaseEditConfigurationGenerat
Individual individual = EditConfigurationUtils.getIndividual(vreq, config.getSubjectUri()); Individual individual = EditConfigurationUtils.getIndividual(vreq, config.getSubjectUri());
AddDataPropertyStatement adps = new AddDataPropertyStatement( AddDataPropertyStatement adps = new AddDataPropertyStatement(
vreq.getJenaOntModel(), individual.getURI(), vreq.getJenaOntModel(), individual.getURI(),
RequestActionConstants.SOME_URI); RequestActionConstants.SOME_URI, SOME_LITERAL);
AddObjectPropertyStatement aops = new AddObjectPropertyStatement( AddObjectPropertyStatement aops = new AddObjectPropertyStatement(
vreq.getJenaOntModel(), individual.getURI(), vreq.getJenaOntModel(), individual.getURI(),

View file

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

View file

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

View file

@ -262,9 +262,8 @@ public class PersonHasAwardOrHonorGenerator extends VivoBaseGenerator implements
final static String existingOrgQuery = final static String existingOrgQuery =
"SELECT ?existingOrg WHERE { \n" + "SELECT ?existingOrg WHERE { \n" +
" ?awardReceipt <" + receiptOfPred + "> ?existingAward . \n" + " ?awardReceipt <" + awardConferredByPred + "> ?existingOrg . \n" +
" ?existingAward a <" + awardClass + "> . \n" + " ?existingOrg a <" + orgClass + "> . \n" +
" ?existingAward<" + awardConferredByPred + "> ?existingOrg . \n" +
" ?existingOrg <" + awardConferredPred + "> ?existingAward . }"; " ?existingOrg <" + awardConferredPred + "> ?existingAward . }";
final static String awardReceiptLabelQuery = final static String awardReceiptLabelQuery =
@ -281,7 +280,8 @@ public class PersonHasAwardOrHonorGenerator extends VivoBaseGenerator implements
final static String orgLabelQuery = final static String orgLabelQuery =
"SELECT ?existingOrgLabel WHERE { \n" + "SELECT ?existingOrgLabel WHERE { \n" +
" ?award <" + awardConferredByPred + "> ?existingOrg . \n" + " ?awardReceipt <" + awardConferredByPred + "> ?existingOrg . \n" +
" ?existingOrg a <" + orgClass + "> . \n" +
" ?existingOrg <" + label + "> ?existingOrgLabel . \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 issuedCredentialTypeClass = vivoCore + "IssuedCredential";
final static String credentialTypeClass = vivoCore + "Credential"; 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 issuedCredentialToInterval = vivoCore + "dateTimeInterval";
final static String intervalType = vivoCore + "DateTimeInterval"; final static String intervalType = vivoCore + "DateTimeInterval";
final static String intervalToStart = vivoCore + "start"; final static String intervalToStart = vivoCore + "start";
@ -117,12 +117,6 @@ public class PersonHasIssuedCredentialGenerator extends VivoBaseGenerator implem
setValidators( list("datatype:" + 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.addField( new FieldVTwo(). conf.addField( new FieldVTwo().
setName("credentialLabelDisplay"). setName("credentialLabelDisplay").
setRangeDatatypeUri(XSD.xstring.toString() ). setRangeDatatypeUri(XSD.xstring.toString() ).
@ -184,8 +178,8 @@ public class PersonHasIssuedCredentialGenerator extends VivoBaseGenerator implem
final static String n3ForExistingCredentialAssertion = final static String n3ForExistingCredentialAssertion =
"@prefix vivo: <" + vivoCore + "> . \n\n" + "@prefix vivo: <" + vivoCore + "> . \n\n" +
"?issuedCredential vivo:relates ?existingCredential . \n" + "?issuedCredential vivo:relates ?existingCredential . \n" +
"?existingCredential a <" + credentialTypeClass + "> . \n" + /* "?existingCredential a <" + credentialTypeClass + "> . \n" +
"?credential a ?credentialType . \n" + "?existingCredential a ?credentialType . \n" + */
"?existingCredential vivo:relatedBy ?issuedCredential . " ; "?existingCredential vivo:relatedBy ?issuedCredential . " ;
final static String n3ForYearCredentialed = final static String n3ForYearCredentialed =

View file

@ -148,7 +148,7 @@ public class UtilitiesRequestHandler implements VisualizationRequestHandler {
Map<String, String> fieldLabelToOutputFieldLabel = new HashMap<String, String>(); Map<String, String> fieldLabelToOutputFieldLabel = new HashMap<String, String>();
String aggregationRules = "(count(DISTINCT ?Grant) AS ?numOfGrants)"; 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()); ObjectProperty predicate = ModelUtils.getPropertyForRoleInClass(grantType, vitroRequest.getWebappDaoFactory());
String roleToGrantPredicate = "<" + predicate.getURI() + ">"; String roleToGrantPredicate = "<" + predicate.getURI() + ">";

View file

@ -2,28 +2,60 @@
package edu.cornell.mannlib.vitro.webapp.web.templatemodels.individuallist; 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.Log;
import org.apache.commons.logging.LogFactory; 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.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individuallist.BaseListedIndividual; import edu.cornell.mannlib.vitro.webapp.dao.jena.QueryUtils;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individuallist.ListedIndividual;
public class ListedIndividual extends BaseListedIndividual { public class ListedIndividual extends BaseListedIndividual {
private static final Log log = LogFactory.getLog(ListedIndividual.class); 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) { public ListedIndividual(Individual individual, VitroRequest vreq) {
super(individual, 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 */ /* Template properties */
public String getPreferredTitle() { 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; 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.Log;
import org.apache.commons.logging.LogFactory; 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.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.dao.jena.QueryUtils;
public class IndividualSearchResult extends BaseIndividualSearchResult { public class IndividualSearchResult extends BaseIndividualSearchResult {
private static final Log log = LogFactory.getLog(IndividualSearchResult.class); 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) { public IndividualSearchResult(Individual individual, VitroRequest vreq) {
super(individual, vreq); super(individual, vreq);
log.debug("Called Individual Search Result"); 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 */ /* Access methods for templates */
public String getPreferredTitle() { public String getPreferredTitle() {
log.debug("Called get Title"); return title;
return individual.getDataValue(CORE + "preferredTitle");
} }
public String getEmail() { public String getEmail() {
log.debug("Called get Email"); return email;
return individual.getDataValue(CORE + "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.AUTHORIZED;
import static edu.cornell.mannlib.vitro.webapp.auth.policy.ifaces.Authorization.INCONCLUSIVE; 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.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
@ -44,10 +45,9 @@ import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
/** /**
* Check the relationships in the SelfEditorRelationshipPolicy. * Check the relationships in the SelfEditorRelationshipPolicy.
* *
* This only checks the relationships that deal with InfoContentEntitys. * This only checks the relationships that deal with InfoContentEntitys. Testing
* Testing the others seems too redundant. If we generalize this to use * the others seems too redundant. If we generalize this to use configurable
* configurable relationships, then we'll be able to make more general tests as * relationships, then we'll be able to make more general tests as well.
* well.
*/ */
public class SelfEditorRelationshipPolicyTest extends AbstractTestClass { public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
private static final Log log = LogFactory private static final Log log = LogFactory
@ -185,30 +185,28 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
@Test @Test
public void dataPropSubjectIsRestricted() { public void dataPropSubjectIsRestricted() {
action = new AddDataPropertyStatement(ontModel, action = new AddDataPropertyStatement(ontModel,
URI_RESTRICTED_RESOURCE, URI_PERMITTED_PREDICATE); URI_RESTRICTED_RESOURCE, URI_PERMITTED_PREDICATE, SOME_LITERAL);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action)); assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
} }
@Test @Test
public void dataPropPredicateIsRestricted() { public void dataPropPredicateIsRestricted() {
action = new AddDataPropertyStatement(ontModel, URI_JOE_EDITED_IT, action = new AddDataPropertyStatement(ontModel, URI_JOE_EDITED_IT,
URI_RESTRICTED_PREDICATE); URI_RESTRICTED_PREDICATE, SOME_LITERAL);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action)); assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
} }
@Test @Test
public void objectPropSubjectIsRestricted() { public void objectPropSubjectIsRestricted() {
action = new AddObjectPropertyStatement(ontModel, action = new AddObjectPropertyStatement(ontModel,
URI_RESTRICTED_RESOURCE, PERMITTED_PREDICATE, URI_RESTRICTED_RESOURCE, PERMITTED_PREDICATE, URI_JOE_EDITED_IT);
URI_JOE_EDITED_IT);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action)); assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
} }
@Test @Test
public void objectPropPredicateIsRestricted() { public void objectPropPredicateIsRestricted() {
action = new AddObjectPropertyStatement(ontModel, action = new AddObjectPropertyStatement(ontModel,
URI_PERMITTED_RESOURCE, RESTRICTED_PREDICATE, URI_PERMITTED_RESOURCE, RESTRICTED_PREDICATE, URI_JOE_EDITED_IT);
URI_JOE_EDITED_IT);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action)); assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
} }
@ -226,14 +224,14 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
@Test @Test
public void dataPropSubjectIsIceButNobodyIsSelfEditing() { public void dataPropSubjectIsIceButNobodyIsSelfEditing() {
action = new AddDataPropertyStatement(ontModel, URI_JOE_WROTE_IT, action = new AddDataPropertyStatement(ontModel, URI_JOE_WROTE_IT,
URI_PERMITTED_PREDICATE); URI_PERMITTED_PREDICATE, SOME_LITERAL);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idNobody, action)); assertDecision(INCONCLUSIVE, policy.isAuthorized(idNobody, action));
} }
@Test @Test
public void dataPropSubjectIsIceButNoAuthorsOrEditorsOrFeatured() { public void dataPropSubjectIsIceButNoAuthorsOrEditorsOrFeatured() {
action = new AddDataPropertyStatement(ontModel, URI_NOBODY_WROTE_IT, 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(idJoe, action));
assertDecision(INCONCLUSIVE, policy.isAuthorized(idBozoAndJoe, action)); assertDecision(INCONCLUSIVE, policy.isAuthorized(idBozoAndJoe, action));
} }
@ -241,28 +239,28 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
@Test @Test
public void dataPropSubjectIsIceButWrongAuthor() { public void dataPropSubjectIsIceButWrongAuthor() {
action = new AddDataPropertyStatement(ontModel, URI_BOZO_WROTE_IT, action = new AddDataPropertyStatement(ontModel, URI_BOZO_WROTE_IT,
URI_PERMITTED_PREDICATE); URI_PERMITTED_PREDICATE, SOME_LITERAL);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action)); assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
} }
@Test @Test
public void dataPropSubjectIsIceButWrongEditor() { public void dataPropSubjectIsIceButWrongEditor() {
action = new AddDataPropertyStatement(ontModel, URI_BOZO_EDITED_IT, action = new AddDataPropertyStatement(ontModel, URI_BOZO_EDITED_IT,
URI_PERMITTED_PREDICATE); URI_PERMITTED_PREDICATE, SOME_LITERAL);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action)); assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
} }
@Test @Test
public void dataPropSubjectIsIceButWrongFeatured() { public void dataPropSubjectIsIceButWrongFeatured() {
action = new AddDataPropertyStatement(ontModel, 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)); assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
} }
@Test @Test
public void dataPropSubjectIsIceWithSelfEditingAuthor() { public void dataPropSubjectIsIceWithSelfEditingAuthor() {
action = new AddDataPropertyStatement(ontModel, URI_JOE_WROTE_IT, 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(idJoe, action));
assertDecision(AUTHORIZED, policy.isAuthorized(idBozoAndJoe, action)); assertDecision(AUTHORIZED, policy.isAuthorized(idBozoAndJoe, action));
} }
@ -270,7 +268,7 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
@Test @Test
public void dataPropSubjectIsIceWithSelfEditingEditor() { public void dataPropSubjectIsIceWithSelfEditingEditor() {
action = new AddDataPropertyStatement(ontModel, URI_JOE_EDITED_IT, 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(idJoe, action));
assertDecision(AUTHORIZED, policy.isAuthorized(idBozoAndJoe, action)); assertDecision(AUTHORIZED, policy.isAuthorized(idBozoAndJoe, action));
} }
@ -278,7 +276,7 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
@Test @Test
public void dataPropSubjectIsIceWithSelfEditingFeatured() { public void dataPropSubjectIsIceWithSelfEditingFeatured() {
action = new AddDataPropertyStatement(ontModel, URI_JOE_FEATURED_IN_IT, 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(idJoe, action));
assertDecision(AUTHORIZED, policy.isAuthorized(idBozoAndJoe, action)); assertDecision(AUTHORIZED, policy.isAuthorized(idBozoAndJoe, action));
} }
@ -348,8 +346,7 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
@Test @Test
public void objectPropObjectIsIcebutNobodyIsSelfEditing() { public void objectPropObjectIsIcebutNobodyIsSelfEditing() {
action = new AddObjectPropertyStatement(ontModel, action = new AddObjectPropertyStatement(ontModel,
URI_PERMITTED_RESOURCE, PERMITTED_PREDICATE, URI_PERMITTED_RESOURCE, PERMITTED_PREDICATE, URI_JOE_EDITED_IT);
URI_JOE_EDITED_IT);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idNobody, action)); assertDecision(INCONCLUSIVE, policy.isAuthorized(idNobody, action));
} }
@ -365,16 +362,14 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
@Test @Test
public void objectPropObjectIsIceButWrongAuthor() { public void objectPropObjectIsIceButWrongAuthor() {
action = new AddObjectPropertyStatement(ontModel, action = new AddObjectPropertyStatement(ontModel,
URI_PERMITTED_RESOURCE, PERMITTED_PREDICATE, URI_PERMITTED_RESOURCE, PERMITTED_PREDICATE, URI_BOZO_WROTE_IT);
URI_BOZO_WROTE_IT);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action)); assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
} }
@Test @Test
public void objectPropObjectIsIceButWrongEditor() { public void objectPropObjectIsIceButWrongEditor() {
action = new AddObjectPropertyStatement(ontModel, action = new AddObjectPropertyStatement(ontModel,
URI_PERMITTED_RESOURCE, PERMITTED_PREDICATE, URI_PERMITTED_RESOURCE, PERMITTED_PREDICATE, URI_BOZO_EDITED_IT);
URI_BOZO_EDITED_IT);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action)); assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
} }
@ -389,8 +384,7 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
@Test @Test
public void objectPropObjectIsIceWithSelfEditingAuthor() { public void objectPropObjectIsIceWithSelfEditingAuthor() {
action = new AddObjectPropertyStatement(ontModel, action = new AddObjectPropertyStatement(ontModel,
URI_PERMITTED_RESOURCE, PERMITTED_PREDICATE, URI_PERMITTED_RESOURCE, PERMITTED_PREDICATE, URI_JOE_WROTE_IT);
URI_JOE_WROTE_IT);
assertDecision(AUTHORIZED, policy.isAuthorized(idJoe, action)); assertDecision(AUTHORIZED, policy.isAuthorized(idJoe, action));
assertDecision(AUTHORIZED, policy.isAuthorized(idBozoAndJoe, action)); assertDecision(AUTHORIZED, policy.isAuthorized(idBozoAndJoe, action));
} }
@ -398,8 +392,7 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
@Test @Test
public void objectPropObjectIsIceWithSelfEditingEditor() { public void objectPropObjectIsIceWithSelfEditingEditor() {
action = new AddObjectPropertyStatement(ontModel, action = new AddObjectPropertyStatement(ontModel,
URI_PERMITTED_RESOURCE, PERMITTED_PREDICATE, URI_PERMITTED_RESOURCE, PERMITTED_PREDICATE, URI_JOE_EDITED_IT);
URI_JOE_EDITED_IT);
assertDecision(AUTHORIZED, policy.isAuthorized(idJoe, action)); assertDecision(AUTHORIZED, policy.isAuthorized(idJoe, action));
assertDecision(AUTHORIZED, policy.isAuthorized(idBozoAndJoe, action)); assertDecision(AUTHORIZED, policy.isAuthorized(idBozoAndJoe, action));
} }
@ -420,7 +413,7 @@ public class SelfEditorRelationshipPolicyTest extends AbstractTestClass {
@Test @Test
public void dataPropSubjectIsNotIce() { public void dataPropSubjectIsNotIce() {
action = new AddDataPropertyStatement(ontModel, URI_PERMITTED_RESOURCE, action = new AddDataPropertyStatement(ontModel, URI_PERMITTED_RESOURCE,
URI_PERMITTED_PREDICATE); URI_PERMITTED_PREDICATE, SOME_LITERAL);
assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action)); assertDecision(INCONCLUSIVE, policy.isAuthorized(idJoe, action));
} }

View file

@ -194,15 +194,7 @@ hyperlink = Hyperlink
# #
# accounts templates ( /templates/freemarker/body/accounts ) # 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 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 ) # harvester templates ( /templates/freemarker/body/harvester )
@ -363,7 +355,7 @@ selected_conference = Selected Conference
years_participation_in = Years of Participation in years_participation_in = Years of Participation in
grant_entry_for = grant entry for 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. 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 grant_type = grant Type
@ -877,3 +869,13 @@ type_of_credential = Type of Credential
credential_name = Credential Name credential_name = Credential Name
selected_credential = Selected Credential selected_credential = Selected Credential
year_issued = Year Issued 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) def scan_line(path, line_number, line)
@obsolete_uris.uris.each do |uri| @obsolete_uris.uris.each do |uri|
next if @known_exceptions.skip?(path, line_number, 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 end
if @complete if @complete
@obsolete_uris.localnames.each do |localname| @obsolete_uris.localnames.each do |localname|
term = ":#{localname}" term = ":#{localname}"
next if @known_exceptions.skip?(path, line_number, term) 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 end
end end

View file

@ -33,7 +33,13 @@ class Report
hash.sort.each do |path, events| hash.sort.each do |path, events|
puts "#{path}" puts "#{path}"
events.sort{|a, b| a.line_number <=> b.line_number }.each do |e| 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}" puts " #{e.is_localname ? "Localname" : "URI"} #{e.string}"
end end
puts "--------------------" puts "--------------------"

View file

@ -10,6 +10,7 @@ directory, for possible inspection later.
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
=end =end
require File.expand_path('subscripts/common', File.dirname(__FILE__))
require 'date' require 'date'
require "#{File.dirname(__FILE__)}/subscripts/loadParms" require "#{File.dirname(__FILE__)}/subscripts/loadParms"
@ -17,12 +18,20 @@ def figure_time_stamp()
return DateTime.now.strftime("%Y-%m-%d_%H-%M-%S") return DateTime.now.strftime("%Y-%m-%d_%H-%M-%S")
end end
Dir.chdir("/home/jeb228/LoadTesting/versions/#{@version_name}") do |path| def add_read_me()
@tomcat_logs_dir = "#{path}/tomcatLogs" 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)) if (! File.directory?(@tomcat_logs_dir))
Dir.mkdir(@tomcat_logs_dir) Dir.mkdir(@tomcat_logs_dir)
end end
end
Dir.chdir(@tomcat_logs_dir) do |path| Dir.chdir(@tomcat_logs_dir) do |path|
@this_logs_dir = "#{path}/#{figure_time_stamp()}" @this_logs_dir = "#{path}/#{figure_time_stamp()}"
@ -30,6 +39,6 @@ Dir.chdir(@tomcat_logs_dir) do |path|
end end
Dir.chdir(@this_logs_dir) do |path| Dir.chdir(@this_logs_dir) do |path|
system('cp ~/LoadTesting/tomcat/logs/* .') system("cp #{@home}/tomcat/logs/* .")
add_read_me()
end end

View file

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