VIVO-112: another round of updates to support the ISF changes

This commit is contained in:
tworrall 2013-08-28 16:58:02 -04:00
parent 978c9ccd5f
commit 59431742e1
10 changed files with 1901 additions and 1848 deletions

View file

@ -196,7 +196,7 @@ local:hasResearcherRoleConfig a :ObjectPropertyDisplayConfig ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:customEntryFormAnnot "edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.AddResearcherRoleToPersonGenerator"^^<http://www.w3.org/2001/XMLSchema#string> ; vitro:customEntryFormAnnot "edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.AddResearcherRoleToPersonGenerator"^^<http://www.w3.org/2001/XMLSchema#string> ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupresearch> . :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupresearch> .
m
local:hasInvestigatorRoleContext a :ConfigContext ; local:hasInvestigatorRoleContext a :ConfigContext ;
:hasConfiguration local:hasInvestigatorRoleConfig ; :hasConfiguration local:hasInvestigatorRoleConfig ;
:configContextFor <http://purl.obolibrary.org/obo/RO_0000053> ; :configContextFor <http://purl.obolibrary.org/obo/RO_0000053> ;
@ -226,7 +226,7 @@ local:hasPrincipalInvestigatorRoleConfig a :ObjectPropertyDisplayConfig ;
local:hasCo-PrincipalInvestigatorRoleContext a :ConfigContext ; local:hasCo-PrincipalInvestigatorRoleContext a :ConfigContext ;
:hasConfiguration local:hasCo-PrincipalInvestigatorRoleConfig ; :hasConfiguration local:hasCo-PrincipalInvestigatorRoleConfig ;
:configContextFor <http://purl.obolibrary.org/obo/RO_0000053> ; :configContextFor <http://purl.obolibrary.org/obo/RO_0000053> ;
:qualifiedBy <http://vivoweb.org/ontology/core#Co-PrincipalInvestigatorRole> . :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-hasInvestigatorRole.xml"^^xsd:string ;
@ -278,7 +278,7 @@ local:educationalTrainingConfig a :ObjectPropertyDisplayConfig ;
local:informationResourceInAuthorshipContext a :ConfigContext ; local:informationResourceInAuthorshipContext a :ConfigContext ;
:hasConfiguration local:informationResourceInAuthorshipConfig ; :hasConfiguration local:informationResourceInAuthorshipConfig ;
:configContextFor <http://vivoweb.org/ontology/core#relatedBy> ; :configContextFor <http://vivoweb.org/ontology/core#relatedBy> ;
:qualifiedByDomain <http://purl.org/ontology/bibo/Document> . :qualifiedByDomain <http://purl.org/ontology/bibo/Document> ;
:qualifiedBy <http://vivoweb.org/ontology/core#Authorship> . :qualifiedBy <http://vivoweb.org/ontology/core#Authorship> .
local:informationResourceInAuthorshipConfig a :ObjectPropertyDisplayConfig ; local:informationResourceInAuthorshipConfig a :ObjectPropertyDisplayConfig ;

View file

@ -1,222 +1,243 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $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$ -->
<!-- See guidelines in vitro/doc/list_view_configuration_guidelines.txt --> <!-- See guidelines in vitro/doc/list_view_configuration_guidelines.txt -->
<list-view-config> <list-view-config>
<query-select> <query-select>
PREFIX afn: &lt;http://jena.hpl.hp.com/ARQ/function#&gt; PREFIX afn: &lt;http://jena.hpl.hp.com/ARQ/function#&gt;
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;
SELECT DISTINCT SELECT DISTINCT
?role ?role
?activity ?activityName ?activity ?activityName
?activityLabel ?activityLabel
?awardedBy ?awardedBy
?adminedBy ?adminedBy
?awardedByLabel ?awardedByLabel
?adminedByLabel ?adminedByLabel
?dateTimeStartRole ?dateTimeEndRole ?dateTimeStartRole ?dateTimeEndRole
?dateTimeStartGrant ?dateTimeEndGrant ?dateTimeStartGrant ?dateTimeEndGrant
?hideThis ?hideThis
WHERE { WHERE {
?subject ?property ?role ?subject ?property ?role .
?role a ?objectType .
OPTIONAL { ?role core:roleRealizedIn ?activity ?role vitro:mostSpecificType ?subclass
LET (?activityName := afn:localname(?activity))
OPTIONAL { ?activity rdfs:label ?activityLabel } OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity
} LET (?activityName := afn:localname(?activity))
OPTIONAL { ?role core:roleContributesTo ?activity OPTIONAL { ?activity rdfs:label ?activityLabel }
LET (?activityName := afn:localname(?activity)) }
OPTIONAL { ?activity rdfs:label ?activityLabel } OPTIONAL { ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity
} LET (?activityName := afn:localname(?activity))
OPTIONAL { ?activity core:grantAwardedBy ?awardedBy . OPTIONAL { ?activity rdfs:label ?activityLabel }
?awardedBy rdfs:label ?awardedByLabel }
} OPTIONAL { ?activity core:grantAwardedBy ?awardedBy .
OPTIONAL { ?activity core:administeredBy ?adminedBy . ?awardedBy rdfs:label ?awardedByLabel
?adminedBy rdfs:label ?adminedByLabel }
} OPTIONAL { ?activity core:administeredBy ?adminedBy .
OPTIONAL { ?role core:dateTimeInterval ?dateTimeIntervalRole ?adminedBy rdfs:label ?adminedByLabel
OPTIONAL { ?dateTimeIntervalRole core:start ?dateTimeStartValueRole . }
?dateTimeStartValueRole core:dateTime ?dateTimeStartRole OPTIONAL { ?role core:dateTimeInterval ?dateTimeIntervalRole
} OPTIONAL { ?dateTimeIntervalRole core:start ?dateTimeStartValueRole .
OPTIONAL { ?dateTimeIntervalRole core:end ?dateTimeEndValueRole . ?dateTimeStartValueRole core:dateTime ?dateTimeStartRole
?dateTimeEndValueRole core:dateTime ?dateTimeEndRole }
} OPTIONAL { ?dateTimeIntervalRole core:end ?dateTimeEndValueRole .
} ?dateTimeEndValueRole core:dateTime ?dateTimeEndRole
OPTIONAL { ?role core:roleContributesTo ?grant . }
?grant core:dateTimeInterval ?dateTimeIntervalGrant }
OPTIONAL { ?dateTimeIntervalGrant core:start ?dateTimeStartValueGrant . OPTIONAL { ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?grant .
?dateTimeStartValueGrant core:dateTime ?dateTimeStartGrant ?grant core:dateTimeInterval ?dateTimeIntervalGrant
} OPTIONAL { ?dateTimeIntervalGrant core:start ?dateTimeStartValueGrant .
OPTIONAL { ?dateTimeIntervalGrant core:end ?dateTimeEndValueGrant . ?dateTimeStartValueGrant core:dateTime ?dateTimeStartGrant
?dateTimeEndValueGrant core:dateTime ?dateTimeEndGrant }
} OPTIONAL { ?dateTimeIntervalGrant core:end ?dateTimeEndValueGrant .
} ?dateTimeEndValueGrant core:dateTime ?dateTimeEndGrant
OPTIONAL { ?role core:hideFromDisplay ?hideThis } }
# NOT EXISTS { ?role core:hideFromDisplay ?hideThis } }
<critical-data-required> OPTIONAL { ?role core:hideFromDisplay ?hideThis }
FILTER ( bound(?activity) ) FILTER ( bound(?activity) &amp;&amp; ?subclass = ?objectType)
</critical-data-required> } 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;
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 core:roleRealizedIn ?activity . ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
?activity rdfs:label ?activityLabel ?activity rdfs:label ?activityLabel
} WHERE { } WHERE {
{ {
?subject ?property ?role . ?subject ?property ?role .
?role core:roleContributesTo ?activity ?role a ?objectType .
} UNION ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity
{ } UNION
?subject ?property ?role . {
?role core:roleRealizedIn ?activity . ?subject ?property ?role .
?activity rdfs:label ?activityLabel ?role a ?objectType .
} ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt;n ?activity .
} ?activity rdfs:label ?activityLabel
</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; <query-construct>
PREFIX vitro: &lt;http://vitro.mannlib.cornell.edu/ns/vitro/0.7#&gt; PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
CONSTRUCT { PREFIX vitro: &lt;http://vitro.mannlib.cornell.edu/ns/vitro/0.7#&gt;
?subject ?property ?role .
?role core:roleContributesTo ?activity . CONSTRUCT {
?activity rdfs:label ?activityLabel ?subject ?property ?role .
} WHERE { ?role a ?objectType .
{ ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?subject ?property ?role . ?activity rdfs:label ?activityLabel
?role core:roleContributesTo ?activity } WHERE {
} UNION {
{ ?subject ?property ?role .
?subject ?property ?role . ?role a ?objectType .
?role core:roleContributesTo ?activity . ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity
?activity rdfs:label ?activityLabel } UNION
} {
} ?subject ?property ?role .
</query-construct> ?role a ?objectType .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
<query-construct> ?activity rdfs:label ?activityLabel
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; }
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; }
CONSTRUCT { </query-construct>
?subject ?property ?role .
?role ?roleProperty ?roleValue . <query-construct>
?activity rdfs:label ?activityName . PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
?activity core:grantAwardedBy ?awardedBy . PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
?awardedBy rdfs:label ?awardedByLabel . CONSTRUCT {
?activity core:administeredBy ?adminedBy . ?subject ?property ?role .
?adminedBy rdfs:label ?adminedByLabel ?role a ?objectType .
} WHERE { ?role ?roleProperty ?roleValue .
{ ?activity rdfs:label ?activityName .
?subject ?property ?role ?activity core:grantAwardedBy ?awardedBy .
} UNION { ?awardedBy rdfs:label ?awardedByLabel .
?subject ?property ?role . ?activity core:administeredBy ?adminedBy .
?role ?roleProperty ?roleValue ?adminedBy rdfs:label ?adminedByLabel
} UNION { } WHERE {
?subject ?property ?role . {
?role core:roleContributesTo ?activity . ?subject ?property ?role
?activity rdfs:label ?activityName } UNION {
} UNION { ?subject ?property ?role .
?subject ?property ?role . ?role a ?objectType .
?role core:roleRealizedIn ?activity . ?role ?roleProperty ?roleValue
?activity rdfs:label ?activityName } UNION {
} UNION { ?subject ?property ?role .
?subject ?property ?role . ?role a ?objectType .
?role core:roleContributesTo ?activity . ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
?activity core:grantAwardedBy ?awardedBy ?activity rdfs:label ?activityName
} UNION { } UNION {
?subject ?property ?role . ?subject ?property ?role .
?role core:roleContributesTo ?activity . ?role a ?objectType .
?activity core:grantAwardedBy ?awardedBy . ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
?awardedBy rdfs:label ?awardedByLabel ?activity rdfs:label ?activityName
} UNION { } UNION {
?subject ?property ?role . ?subject ?property ?role .
?role core:roleContributesTo ?activity . ?role a ?objectType .
?activity core:administeredBy ?adminedBy ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
} UNION { ?activity core:grantAwardedBy ?awardedBy
?subject ?property ?role . } UNION {
?role core:roleContributesTo ?activity . ?subject ?property ?role .
?activity core:administeredBy ?adminedBy . ?role a ?objectType .
?adminedBy rdfs:label ?adminedByLabel ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
} ?activity core:grantAwardedBy ?awardedBy .
} ?awardedBy rdfs:label ?awardedByLabel
</query-construct> } UNION {
?subject ?property ?role .
<query-construct> ?role a ?objectType .
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
CONSTRUCT { ?activity core:administeredBy ?adminedBy
?subject ?property ?role . } UNION {
?role core:dateTimeInterval ?dateTimeIntervalRole . ?subject ?property ?role .
?dateTimeIntervalRole core:start ?dateTimeStartValueRole . ?role a ?objectType .
?dateTimeStartValueRole core:dateTime ?dateTimeStartRole ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?activity .
} WHERE { ?activity core:administeredBy ?adminedBy .
?subject ?property ?role . ?adminedBy rdfs:label ?adminedByLabel
?role core:dateTimeInterval ?dateTimeIntervalRole . }
?dateTimeIntervalRole core:start ?dateTimeStartValueRole . }
?dateTimeStartValueRole core:dateTime ?dateTimeStartRole </query-construct>
}
</query-construct> <query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
<query-construct> CONSTRUCT {
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; ?subject ?property ?role .
CONSTRUCT { ?role a ?objectType .
?subject ?property ?role . ?role core:dateTimeInterval ?dateTimeIntervalRole .
?role core:dateTimeInterval ?dateTimeIntervalRole . ?dateTimeIntervalRole core:start ?dateTimeStartValueRole .
?dateTimeIntervalRole core:end ?dateTimeEndValueRole . ?dateTimeStartValueRole core:dateTime ?dateTimeStartRole
?dateTimeEndValueRole core:dateTime ?dateTimeEndRole } WHERE {
} WHERE { ?subject ?property ?role .
?subject ?property ?role . ?role a ?objectType .
?role core:dateTimeInterval ?dateTimeIntervalRole . ?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeIntervalRole core:end ?dateTimeEndValueRole . ?dateTimeIntervalRole core:start ?dateTimeStartValueRole .
?dateTimeEndValueRole core:dateTime ?dateTimeEndRole ?dateTimeStartValueRole core:dateTime ?dateTimeStartRole
} }
</query-construct> </query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; <query-construct>
CONSTRUCT { PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
?subject ?property ?role . CONSTRUCT {
?role core:roleContributesTo ?grant . ?subject ?property ?role .
?grant core:dateTimeInterval ?dateTimeIntervalGrant . ?role a ?objectType .
?dateTimeIntervalGrant core:start ?dateTimeStartValueGrant . ?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeStartValueGrant core:dateTime ?dateTimeStartGrant ?dateTimeIntervalRole core:end ?dateTimeEndValueRole .
} WHERE { ?dateTimeEndValueRole core:dateTime ?dateTimeEndRole
?subject ?property ?role . } WHERE {
?role core:roleContributesTo ?grant . ?subject ?property ?role .
?grant core:dateTimeInterval ?dateTimeIntervalGrant . ?role a ?objectType .
?dateTimeIntervalGrant core:start ?dateTimeStartValueGrant . ?role core:dateTimeInterval ?dateTimeIntervalRole .
?dateTimeStartValueGrant core:dateTime ?dateTimeStartGrant ?dateTimeIntervalRole core:end ?dateTimeEndValueRole .
} ?dateTimeEndValueRole core:dateTime ?dateTimeEndRole
</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 ?role . ?subject ?property ?role .
?role core:roleContributesTo ?grant . ?role a ?objectType .
?grant core:dateTimeInterval ?dateTimeIntervalGrant . ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?grant .
?dateTimeIntervalGrant core:end ?dateTimeEndValueGrant . ?grant core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeEndValueGrant core:dateTime ?dateTimeEndGrant ?dateTimeIntervalGrant core:start ?dateTimeStartValueGrant .
} WHERE { ?dateTimeStartValueGrant core:dateTime ?dateTimeStartGrant
?subject ?property ?role . } WHERE {
?role core:roleContributesTo ?grant . ?subject ?property ?role .
?grant core:dateTimeInterval ?dateTimeIntervalGrant . ?role a ?objectType .
?dateTimeIntervalGrant core:end ?dateTimeEndValueGrant . ?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?grant .
?dateTimeEndValueGrant core:dateTime ?dateTimeEndGrant ?grant core:dateTimeInterval ?dateTimeIntervalGrant .
} ?dateTimeIntervalGrant core:start ?dateTimeStartValueGrant .
</query-construct> ?dateTimeStartValueGrant core:dateTime ?dateTimeStartGrant
}
<template>propStatement-hasInvestigatorRole.ftl</template> </query-construct>
</list-view-config>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a ?objectType .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?grant .
?grant core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeIntervalGrant core:end ?dateTimeEndValueGrant .
?dateTimeEndValueGrant core:dateTime ?dateTimeEndGrant
} WHERE {
?subject ?property ?role .
?role a ?objectType .
?role &lt;http://vivoweb.org/ontology/core#relatedBy&gt; ?grant .
?grant core:dateTimeInterval ?dateTimeIntervalGrant .
?dateTimeIntervalGrant core:end ?dateTimeEndValueGrant .
?dateTimeEndValueGrant core:dateTime ?dateTimeEndGrant
}
</query-construct>
<template>propStatement-hasInvestigatorRole.ftl</template>
</list-view-config>

View file

@ -1,333 +1,363 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $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$ -->
<!-- See guidelines in vitro/doc/list_view_configuration_guidelines.txt --> <!-- See guidelines in vitro/doc/list_view_configuration_guidelines.txt -->
<!-- Note: ?workshop is a generic name for any intervening event between a presentation and --> <!-- Note: ?workshop is a generic name for any intervening event between a presentation and -->
<!-- a conference, such as a workshop or session or exhibit. tlw72 --> <!-- a conference, such as a workshop or session or exhibit. tlw72 -->
<list-view-config> <list-view-config>
<query-select> <query-select>
PREFIX afn: &lt;http://jena.hpl.hp.com/ARQ/function#&gt; PREFIX afn: &lt;http://jena.hpl.hp.com/ARQ/function#&gt;
PREFIX bibo: &lt;http://purl.org/ontology/bibo/&gt; PREFIX bibo: &lt;http://purl.org/ontology/bibo/&gt;
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 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;
SELECT DISTINCT <collated>?subclass</collated> SELECT DISTINCT <collated>?subclass</collated>
?role ?roleLabel ?role ?roleLabel
?presentation ?presentationName ?presentationLabel ?presentation ?presentationName ?presentationLabel
?conference ?conferenceLabel ?conference ?conferenceLabel
?series ?seriesLabel ?series ?seriesLabel
?workshop ?workshop
?dateTime ?dateTime
WHERE { WHERE {
?subject ?property ?role ?subject ?property ?role .
?role a vivo:PresenterRole
OPTIONAL { ?role rdfs:label ?roleLabel }
OPTIONAL { ?role rdfs:label ?roleLabel }
OPTIONAL { ?role vivo:roleRealizedIn ?presentation
LET (?presentationName := afn:localname(?presentation)) OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation
LET (?presentationName := afn:localname(?presentation))
OPTIONAL { ?presentation rdfs:label ?presentationLabel }
OPTIONAL { ?presentation rdfs:label ?presentationLabel }
OPTIONAL { ?conference a bibo:Conference .
OPTIONAL { ?conference rdfs:label ?conferenceLabel } OPTIONAL { ?conference a bibo:Conference .
OPTIONAL { ?conference rdfs:label ?conferenceLabel }
{
?presentation vivo:eventWithin ?conference {
} UNION { ?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?conference
?conference vivo:includesEvent ?presentation } UNION {
} ?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation
} }
OPTIONAL { }
{ OPTIONAL {
?presentation vivo:eventWithin ?workshop . {
?workshop vivo:eventWithin ?conference ?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?workshop .
} UNION { ?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?conference
?workshop vivo:includesEvent ?presentation . } UNION {
?conference vivo:includesEvent ?workshop ?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
} ?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?workshop
OPTIONAL { ?conference rdfs:label ?conferenceLabel } }
} OPTIONAL { ?conference rdfs:label ?conferenceLabel }
}
OPTIONAL { ?series a vivo:EventSeries .
OPTIONAL { ?series rdfs:label ?seriesLabel } OPTIONAL { ?series a vivo:EventSeries .
OPTIONAL { ?series rdfs:label ?seriesLabel }
{
?presentation vivo:inEventWithin ?series {
} UNION { ?presentation vivo:inEventWithin ?series
?series vivo:seriesForEvent ?presentation } UNION {
} ?series vivo:seriesForEvent ?presentation
} }
OPTIONAL { }
{ OPTIONAL {
?presentation vivo:eventWithin ?workshop . {
?workshop vivo:inEventSeries ?series ?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?workshop .
} UNION { ?workshop vivo:inEventSeries ?series
?workshop vivo:includesEvent ?presentation . } UNION {
?series vivo:seriesForEvent ?workshop ?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
} ?series vivo:seriesForEvent ?workshop
OPTIONAL { ?series rdfs:label ?seriesLabel } }
} OPTIONAL { ?series rdfs:label ?seriesLabel }
}
<collated>
?presentation vitro:mostSpecificType ?subclass . <collated>
?presentation vitro:mostSpecificType ?subclass .
{
?subclass rdfs:subClassOf vivo:Presentation {
} UNION { ?subclass rdfs:subClassOf vivo:Presentation
?subclass owl:equivalentClass vivo:Presentation } UNION {
} ?subclass owl:equivalentClass vivo:Presentation
</collated> }
</collated>
}
}
OPTIONAL { ?role vivo:dateTimeInterval ?dateTimeInterval
OPTIONAL { ?dateTimeInterval vivo:start ?dateTimeStartValue . OPTIONAL { ?role vivo:dateTimeInterval ?dateTimeInterval
?dateTimeStartValue vivo:dateTime ?dateTime OPTIONAL { ?dateTimeInterval vivo:start ?dateTimeStartValue .
} ?dateTimeStartValue vivo:dateTime ?dateTime
} }
}
<critical-data-required>
FILTER ( bound(?presentation) ) <critical-data-required>
</critical-data-required> FILTER ( bound(?presentation) )
</critical-data-required>
} ORDER BY <collated>?subclass</collated> DESC(?dateTime) ?presentationLabel ?presentationName
</query-select> } ORDER BY <collated>?subclass</collated> DESC(?dateTime) ?presentationLabel ?presentationName
</query-select>
<query-construct>
PREFIX vivo: &lt;http://vivoweb.org/ontology/core#&gt; <query-construct>
PREFIX owl: &lt;http://www.w3.org/2002/07/owl#&gt; PREFIX vivo: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; PREFIX owl: &lt;http://www.w3.org/2002/07/owl#&gt;
PREFIX vitro: &lt;http://vitro.mannlib.cornell.edu/ns/vitro/0.7#&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 . CONSTRUCT {
?role vivo:roleRealizedIn ?presentation . ?subject ?property ?role .
?presentation vitro:mostSpecificType ?subclass . ?role a vivo:PresenterRole .
?subclass rdfs:subClassOf vivo:Presentation . ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?subclass owl:equivalentClass vivo:Presentation . ?presentation vitro:mostSpecificType ?subclass .
} WHERE { ?subclass rdfs:subClassOf vivo:Presentation .
{ ?subclass owl:equivalentClass vivo:Presentation .
?subject ?property ?role . } WHERE {
?role vivo:roleRealizedIn ?presentation . {
?presentation vitro:mostSpecificType ?subclass . ?subject ?property ?role .
?subclass rdfs:subClassOf vivo:Presentation ?role a vivo:PresenterRole .
} UNION { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?subject ?property ?role . ?presentation vitro:mostSpecificType ?subclass .
?role vivo:roleRealizedIn ?presentation . ?subclass rdfs:subClassOf vivo:Presentation
?presentation vitro:mostSpecificType ?subclass . } UNION {
?subclass owl:equivalentClass vivo:Presentation ?subject ?property ?role .
} ?role a vivo:PresenterRole .
} ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
</query-construct> ?presentation vitro:mostSpecificType ?subclass .
?subclass owl:equivalentClass vivo:Presentation
<query-construct> }
PREFIX vivo: &lt;http://vivoweb.org/ontology/core#&gt; }
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; </query-construct>
CONSTRUCT {
?subject ?property ?role . <query-construct>
?role ?roleProperty ?roleValue . PREFIX vivo: &lt;http://vivoweb.org/ontology/core#&gt;
?presentation rdfs:label ?presentationLabel PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
} WHERE { CONSTRUCT {
{ ?subject ?property ?role .
?subject ?property ?role ?role a vivo:PresenterRole .
} UNION { ?role ?roleProperty ?roleValue .
?subject ?property ?role . ?presentation rdfs:label ?presentationLabel
?role ?roleProperty ?roleValue } WHERE {
} UNION { {
?subject ?property ?role . ?subject ?property ?role .
?role vivo:roleRealizedIn ?presentation . ?role a vivo:PresenterRole
?presentation rdfs:label ?presentationLabel } UNION {
} ?subject ?property ?role .
} ?role a vivo:PresenterRole .
</query-construct> ?role ?roleProperty ?roleValue
} UNION {
<query-construct> ?subject ?property ?role .
PREFIX bibo: &lt;http://purl.org/ontology/bibo/&gt; ?role a vivo:PresenterRole .
PREFIX vivo: &lt;http://vivoweb.org/ontology/core#&gt; ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; ?presentation rdfs:label ?presentationLabel
}
CONSTRUCT { }
?subject ?property ?role . </query-construct>
?conference a bibo:Conference .
?presentation vivo:eventWithin ?conference . <query-construct>
?conference vivo:includesEvent ?presentation . PREFIX bibo: &lt;http://purl.org/ontology/bibo/&gt;
?conference rdfs:label ?conferenceLabel PREFIX vivo: &lt;http://vivoweb.org/ontology/core#&gt;
} WHERE { PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
{ CONSTRUCT {
?subject ?property ?role . ?subject ?property ?role .
?role vivo:roleRealizedIn ?presentation . ?role a vivo:PresenterRole .
?conference a bibo:Conference . ?conference a bibo:Conference .
?presentation vivo:eventWithin ?conference ?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?conference .
} UNION { ?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?subject ?property ?role . ?conference rdfs:label ?conferenceLabel
?role vivo:roleRealizedIn ?presentation . } WHERE {
?conference a bibo:Conference .
?presentation vivo:eventWithin ?conference . {
?conference rdfs:label ?conferenceLabel ?subject ?property ?role .
} UNION { ?role a vivo:PresenterRole .
?subject ?property ?role . ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?role vivo:roleRealizedIn ?presentation . ?conference a bibo:Conference .
?conference a bibo:Conference . ?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?conference
?conference vivo:includesEvent ?presentation } UNION {
} UNION { ?subject ?property ?role .
?subject ?property ?role . ?role a vivo:PresenterRole .
?role vivo:roleRealizedIn ?presentation . ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?conference a bibo:Conference . ?conference a bibo:Conference .
?conference vivo:includesEvent ?presentation . ?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?conference .
?conference rdfs:label ?conferenceLabel ?conference rdfs:label ?conferenceLabel
} } UNION {
} ?subject ?property ?role .
</query-construct> ?role a vivo:PresenterRole .
?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
<query-construct> ?conference a bibo:Conference .
PREFIX bibo: &lt;http://purl.org/ontology/bibo/&gt; ?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation
PREFIX vivo: &lt;http://vivoweb.org/ontology/core#&gt; } UNION {
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; ?subject ?property ?role .
?role a vivo:PresenterRole .
CONSTRUCT { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?subject ?property ?role . ?conference a bibo:Conference .
?workshop vivo:eventWithin ?conference . ?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?conference vivo:includesEvent ?workshop . ?conference rdfs:label ?conferenceLabel
?conference a bibo:Conference . }
?presentation vivo:eventWithin ?workshop . }
?workshop vivo:includesEvent ?presentation . </query-construct>
?conference rdfs:label ?conferenceLabel
} WHERE { <query-construct>
{ PREFIX bibo: &lt;http://purl.org/ontology/bibo/&gt;
?subject ?property ?role . PREFIX vivo: &lt;http://vivoweb.org/ontology/core#&gt;
?role vivo:roleRealizedIn ?presentation . PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
?conference a bibo:Conference .
?presentation vivo:eventWithin ?workshop . CONSTRUCT {
?workshop vivo:eventWithin ?conference ?subject ?property ?role .
} UNION { ?role a vivo:PresenterRole .
?subject ?property ?role . ?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?conference .
?role vivo:roleRealizedIn ?presentation . ?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?workshop .
?conference a bibo:Conference . ?conference a bibo:Conference .
?presentation vivo:eventWithin ?workshop . ?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?workshop .
?workshop vivo:eventWithin ?conference . ?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?conference rdfs:label ?conferenceLabel ?conference rdfs:label ?conferenceLabel
} UNION { } WHERE {
?subject ?property ?role . {
?role vivo:roleRealizedIn ?presentation . ?subject ?property ?role .
?conference a bibo:Conference . ?role a vivo:PresenterRole .
?conference vivo:includesEvent ?workshop . ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?workshop vivo:includesEvent ?presentation ?conference a bibo:Conference .
} UNION { ?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?workshop .
?subject ?property ?role . ?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?conference
?role vivo:roleRealizedIn ?presentation . } UNION {
?conference a bibo:Conference . ?subject ?property ?role .
?conference vivo:includesEvent ?workshop . ?role a vivo:PresenterRole .
?workshop vivo:includesEvent ?presentation . ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?conference rdfs:label ?conferenceLabel ?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 .
</query-construct> ?conference rdfs:label ?conferenceLabel
} UNION {
<query-construct> ?subject ?property ?role .
PREFIX bibo: &lt;http://purl.org/ontology/bibo/&gt; ?role a vivo:PresenterRole .
PREFIX vivo: &lt;http://vivoweb.org/ontology/core#&gt; ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; ?conference a bibo:Conference .
?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?workshop .
CONSTRUCT { ?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation
?subject ?property ?role . } UNION {
?series a vivo:EventSeries . ?subject ?property ?role .
?presentation vivo:inEventSeries ?series . ?role a vivo:PresenterRole .
?series vivo:seriesForEvent ?presentation . ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?series rdfs:label ?seriesLabel ?conference a bibo:Conference .
} WHERE { ?conference &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?workshop .
?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
{ ?conference rdfs:label ?conferenceLabel
?subject ?property ?role . }
?role vivo:roleRealizedIn ?presentation . }
?series a vivo:EventSeries . </query-construct>
?presentation vivo:inEventSeries ?series
} UNION { <query-construct>
?subject ?property ?role . PREFIX bibo: &lt;http://purl.org/ontology/bibo/&gt;
?role vivo:roleRealizedIn ?presentation . PREFIX vivo: &lt;http://vivoweb.org/ontology/core#&gt;
?series a vivo:EventSeries . PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
?presentation vivo:inEventSeries ?series .
?series rdfs:label ?seriesLabel CONSTRUCT {
} UNION { ?subject ?property ?role .
?subject ?property ?role . ?role a vivo:PresenterRole .
?role vivo:roleRealizedIn ?presentation . ?series a vivo:EventSeries .
?series a vivo:EventSeries . ?presentation vivo:inEventSeries ?series .
?series vivo:seriesForEvent ?presentation ?series vivo:seriesForEvent ?presentation .
} UNION { ?series rdfs:label ?seriesLabel
?subject ?property ?role . } WHERE {
?role vivo:roleRealizedIn ?presentation .
?series a vivo:EventSeries . {
?series vivo:seriesForEvent ?presentation . ?subject ?property ?role .
?series rdfs:label ?seriesLabel ?role a vivo:PresenterRole .
} ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
} ?series a vivo:EventSeries .
</query-construct> ?presentation vivo:inEventSeries ?series
} UNION {
<query-construct> ?subject ?property ?role .
PREFIX bibo: &lt;http://purl.org/ontology/bibo/&gt; ?role a vivo:PresenterRole .
PREFIX vivo: &lt;http://vivoweb.org/ontology/core#&gt; ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; ?series a vivo:EventSeries .
?presentation vivo:inEventSeries ?series .
CONSTRUCT { ?series rdfs:label ?seriesLabel
?subject ?property ?role . } UNION {
?workshop vivo:inEventSeries ?series . ?subject ?property ?role .
?series vivo:seriesForEvent ?workshop . ?role a vivo:PresenterRole .
?series a vivo:EventSeries . ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?presentation vivo:eventWithin ?workshop . ?series a vivo:EventSeries .
?workshop vivo:includesEvent ?presentation . ?series vivo:seriesForEvent ?presentation
?series rdfs:label ?seriesLabel } UNION {
} WHERE { ?subject ?property ?role .
{ ?role a vivo:PresenterRole .
?subject ?property ?role . ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?role vivo:roleRealizedIn ?presentation . ?series a vivo:EventSeries .
?series a vivo:EventSeries . ?series vivo:seriesForEvent ?presentation .
?presentation vivo:eventWithin ?workshop . ?series rdfs:label ?seriesLabel
?workshop vivo:inEventSeries ?series }
} UNION { }
?subject ?property ?role . </query-construct>
?role vivo:roleRealizedIn ?presentation .
?series a vivo:EventSeries . <query-construct>
?presentation vivo:eventWithin ?workshop . PREFIX bibo: &lt;http://purl.org/ontology/bibo/&gt;
?workshop vivo:inEventSeries ?series . PREFIX vivo: &lt;http://vivoweb.org/ontology/core#&gt;
?series rdfs:label ?seriesLabel PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
} UNION {
?subject ?property ?role . CONSTRUCT {
?role vivo:roleRealizedIn ?presentation . ?subject ?property ?role .
?series a vivo:EventSeries . ?role a vivo:PresenterRole .
?series vivo:seriesForEvent ?workshop . ?workshop vivo:inEventSeries ?series .
?workshop vivo:includesEvent ?presentation ?series vivo:seriesForEvent ?workshop .
} UNION { ?series a vivo:EventSeries .
?subject ?property ?role . ?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?workshop .
?role vivo:roleRealizedIn ?presentation . ?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation .
?series a vivo:EventSeries . ?series rdfs:label ?seriesLabel
?series vivo:seriesForEvent ?workshop . } WHERE {
?workshop vivo:includesEvent ?presentation . {
?series rdfs:label ?seriesLabel ?subject ?property ?role .
} ?role a vivo:PresenterRole .
} ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
</query-construct> ?series a vivo:EventSeries .
?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?workshop .
<query-construct> ?workshop vivo:inEventSeries ?series
PREFIX vivo: &lt;http://vivoweb.org/ontology/core#&gt; } UNION {
CONSTRUCT { ?subject ?property ?role .
?subject ?property ?role . ?role a vivo:PresenterRole .
?role vivo:dateTimeInterval ?dateTimeInterval . ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
?dateTimeInterval vivo:start ?dateTimeStartValue . ?series a vivo:EventSeries .
?dateTimeStartValue vivo:dateTime ?dateTimeStart ?presentation &lt;http://purl.obolibrary.org/obo/BFO_0000050&gt; ?workshop .
} WHERE { ?workshop vivo:inEventSeries ?series .
?subject ?property ?role . ?series rdfs:label ?seriesLabel
?role vivo:dateTimeInterval ?dateTimeInterval . } UNION {
?dateTimeInterval vivo:start ?dateTimeStartValue . ?subject ?property ?role .
?dateTimeStartValue vivo:dateTime ?dateTimeStart ?role a vivo:PresenterRole .
} ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?presentation .
</query-construct> ?series a vivo:EventSeries .
?series vivo:seriesForEvent ?workshop .
<template>propStatement-hasPresenterRole.ftl</template> ?workshop &lt;http://purl.obolibrary.org/obo/BFO_0000051&gt; ?presentation
</list-view-config> } 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 .
?series rdfs:label ?seriesLabel
}
}
</query-construct>
<query-construct>
PREFIX vivo: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role vivo:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval vivo:start ?dateTimeStartValue .
?dateTimeStartValue vivo:dateTime ?dateTimeStart
} WHERE {
?subject ?property ?role .
?role a vivo:PresenterRole .
?role vivo:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval vivo:start ?dateTimeStartValue .
?dateTimeStartValue vivo:dateTime ?dateTimeStart
}
</query-construct>
<template>propStatement-hasPresenterRole.ftl</template>
</list-view-config>

View file

@ -1,149 +1,150 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $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$ -->
<!-- See guidelines in vitro/doc/list_view_configuration_guidelines.txt --> <!-- See guidelines in vitro/doc/list_view_configuration_guidelines.txt -->
<list-view-config> <list-view-config>
<query-select> <query-select>
PREFIX afn: &lt;http://jena.hpl.hp.com/ARQ/function#&gt; PREFIX afn: &lt;http://jena.hpl.hp.com/ARQ/function#&gt;
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;
SELECT DISTINCT <collated>?subclass</collated> SELECT DISTINCT <collated>?subclass</collated>
# send the property to the template, since this view supports multiple role properties # send the property to the template, since this view supports multiple role properties
?property ?property
?role ?role
?roleLabel ?roleLabel
?activity ?activityName ?activity ?activityName
?activityLabel ?activityLabel
?dateTimeStart ?dateTimeEnd ?dateTimeStart ?dateTimeEnd
?hideThis ?hideThis
WHERE { ?objectType
?subject ?property ?role . WHERE {
?role a ?objectType ?subject ?property ?role .
?role a ?objectType
OPTIONAL { ?role core:roleRealizedIn ?activity
LET (?activityName := afn:localname(?activity)) OPTIONAL { ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity
OPTIONAL { ?activity rdfs:label ?activityLabel } LET (?activityName := afn:localname(?activity))
OPTIONAL { ?activity rdfs:label ?activityLabel }
<collated>
?activity vitro:mostSpecificType ?subclass <collated>
</collated> ?activity vitro:mostSpecificType ?subclass
} </collated>
}
OPTIONAL { ?role core:roleContributesTo ?activity
LET (?activityName := afn:localname(?activity)) OPTIONAL { ?role core:relatedBy ?activity
OPTIONAL { ?activity rdfs:label ?activityLabel } LET (?activityName := afn:localname(?activity))
OPTIONAL { ?activity rdfs:label ?activityLabel }
<collated>
?activity vitro:mostSpecificType ?subclass <collated>
</collated> ?activity vitro:mostSpecificType ?subclass
} </collated>
}
OPTIONAL { ?role rdfs:label ?roleLabel }
OPTIONAL { ?role core:hideFromDisplay ?hideThis } OPTIONAL { ?role rdfs:label ?roleLabel }
OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval OPTIONAL { ?role core:hideFromDisplay ?hideThis }
OPTIONAL { ?dateTimeInterval core:start ?dateTimeStartValue . OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval
?dateTimeStartValue core:dateTime ?dateTimeStart OPTIONAL { ?dateTimeInterval core:start ?dateTimeStartValue .
} ?dateTimeStartValue core:dateTime ?dateTimeStart
OPTIONAL { ?dateTimeInterval core:end ?dateTimeEndValue . }
?dateTimeEndValue core:dateTime ?dateTimeEnd OPTIONAL { ?dateTimeInterval core:end ?dateTimeEndValue .
} ?dateTimeEndValue core:dateTime ?dateTimeEnd
} }
# NOT EXISTS { ?role core:hideFromDisplay ?hideThis } }
<critical-data-required> # NOT EXISTS { ?role core:hideFromDisplay ?hideThis }
FILTER ( bound(?activity) ) <critical-data-required>
</critical-data-required> FILTER ( bound(?activity) )
} ORDER BY <collated>?subclass</collated> DESC(?dateTimeEnd) DESC(?dateTimeStart) ?activityLabel ?activityName </critical-data-required>
</query-select> } ORDER BY <collated>?subclass</collated> DESC(?dateTimeEnd) DESC(?dateTimeStart) ?activityLabel ?activityName
</query-select>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; <query-construct>
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX vitro: &lt;http://vitro.mannlib.cornell.edu/ns/vitro/0.7#&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 . CONSTRUCT {
?role core:roleContributesTo ?activity . ?subject ?property ?role .
?activity vitro:mostSpecificType ?subclass . ?role core:relatedBy ?activity .
} WHERE { ?activity vitro:mostSpecificType ?subclass .
?subject ?property ?role . } WHERE {
?role core:roleContributesTo ?activity . ?subject ?property ?role .
?activity vitro:mostSpecificType ?subclass ?role core:relatedBy ?activity .
} ?activity vitro:mostSpecificType ?subclass
</query-construct> }
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; <query-construct>
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX vitro: &lt;http://vitro.mannlib.cornell.edu/ns/vitro/0.7#&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 . CONSTRUCT {
?role core:roleRealizedIn ?activity . ?subject ?property ?role .
?activity vitro:mostSpecificType ?subclass . ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
} WHERE { ?activity vitro:mostSpecificType ?subclass .
?subject ?property ?role . } WHERE {
?role core:roleRealizedIn ?activity . ?subject ?property ?role .
?activity vitro:mostSpecificType ?subclass ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
} ?activity vitro:mostSpecificType ?subclass
</query-construct> }
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; <query-construct>
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
CONSTRUCT { PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
?subject ?property ?role . CONSTRUCT {
?role ?roleProperty ?roleValue . ?subject ?property ?role .
?activity rdfs:label ?activityName ?role ?roleProperty ?roleValue .
} WHERE { ?activity rdfs:label ?activityName
{ } WHERE {
?subject ?property ?role {
} UNION { ?subject ?property ?role
?subject ?property ?role . } UNION {
?role ?roleProperty ?roleValue ?subject ?property ?role .
} UNION { ?role ?roleProperty ?roleValue
?subject ?property ?role . } UNION {
?role core:roleContributesTo ?activity . ?subject ?property ?role .
?activity rdfs:label ?activityName ?role core:relatedBy ?activity .
} UNION { ?activity rdfs:label ?activityName
?subject ?property ?role . } UNION {
?role core:roleRealizedIn ?activity . ?subject ?property ?role .
?activity rdfs:label ?activityName ?role &lt;http://purl.obolibrary.org/obo/BFO_0000054&gt; ?activity .
} ?activity rdfs:label ?activityName
} }
</query-construct> }
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; <query-construct>
CONSTRUCT { PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
?subject ?property ?role . CONSTRUCT {
?role core:dateTimeInterval ?dateTimeInterval . ?subject ?property ?role .
?dateTimeInterval core:start ?dateTimeStartValue . ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeStartValue core:dateTime ?dateTimeStart ?dateTimeInterval core:start ?dateTimeStartValue .
} WHERE { ?dateTimeStartValue core:dateTime ?dateTimeStart
?subject ?property ?role . } WHERE {
?role core:dateTimeInterval ?dateTimeInterval . ?subject ?property ?role .
?dateTimeInterval core:start ?dateTimeStartValue . ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeStartValue core:dateTime ?dateTimeStart ?dateTimeInterval core:start ?dateTimeStartValue .
} ?dateTimeStartValue core:dateTime ?dateTimeStart
</query-construct> }
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; <query-construct>
CONSTRUCT { PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
?subject ?property ?role . CONSTRUCT {
?role core:dateTimeInterval ?dateTimeInterval . ?subject ?property ?role .
?dateTimeInterval core:end ?dateTimeEndValue . ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeEndValue core:dateTime ?dateTimeEnd ?dateTimeInterval core:end ?dateTimeEndValue .
} WHERE { ?dateTimeEndValue core:dateTime ?dateTimeEnd
?subject ?property ?role . } WHERE {
?role core:dateTimeInterval ?dateTimeInterval . ?subject ?property ?role .
?dateTimeInterval core:end ?dateTimeEndValue . ?role core:dateTimeInterval ?dateTimeInterval .
?dateTimeEndValue core:dateTime ?dateTimeEnd ?dateTimeInterval core:end ?dateTimeEndValue .
} ?dateTimeEndValue core:dateTime ?dateTimeEnd
</query-construct> }
</query-construct>
<template>propStatement-hasRole.ftl</template>
</list-view-config> <template>propStatement-hasRole.ftl</template>
</list-view-config>

View file

@ -1,72 +1,73 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $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$ -->
<!-- See guidelines in vitro/doc/list_view_configuration_guidelines.txt --> <!-- See guidelines in vitro/doc/list_view_configuration_guidelines.txt -->
<list-view-config> <list-view-config>
<query-select> <query-select>
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 afn: &lt;http://jena.hpl.hp.com/ARQ/function#&gt; PREFIX afn: &lt;http://jena.hpl.hp.com/ARQ/function#&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;
SELECT DISTINCT <collated> ?subclass </collated> SELECT DISTINCT <collated> ?subclass </collated>
?authorship ?authorship
?person ?personName WHERE { ?person ?personName WHERE {
?subject ?property ?authorship ?subject ?property ?authorship .
OPTIONAL { ?authorship core:authorRank ?rank } ?subject a core:Authorship
OPTIONAL { ?authorship core:linkedAuthor ?person . OPTIONAL { ?authorship core:authorRank ?rank }
?person rdfs:label ?personName OPTIONAL { ?authorship core:relates ?person .
<collated> ?person rdfs:label ?personName
OPTIONAL { ?person vitro:mostSpecificType ?subclass . <collated>
?subclass rdfs:subClassOf foaf:Person OPTIONAL { ?person vitro:mostSpecificType ?subclass .
} ?subclass rdfs:subClassOf foaf:Person
</collated> }
} </collated>
<critical-data-required> }
FILTER ( bound(?person) ) <critical-data-required>
</critical-data-required> FILTER ( bound(?person) )
} ORDER BY <collated> ?subclass </collated> ?rank ?personName </critical-data-required>
</query-select> } ORDER BY <collated> ?subclass </collated> ?rank ?personName
</query-select>
<query-construct>
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; <query-construct>
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt; PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
CONSTRUCT { PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
?subclass rdfs:subClassOf foaf:Person CONSTRUCT {
} WHERE { ?subclass rdfs:subClassOf foaf:Person
?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; <query-construct>
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX vitro: &lt;http://vitro.mannlib.cornell.edu/ns/vitro/0.7#&gt; PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
CONSTRUCT { PREFIX vitro: &lt;http://vitro.mannlib.cornell.edu/ns/vitro/0.7#&gt;
?subject ?property ?authorship . CONSTRUCT {
?authorship ?authorshipProperty ?authorshipValue . ?subject ?property ?authorship .
?person rdfs:label ?personName . ?authorship ?authorshipProperty ?authorshipValue .
?person vitro:mostSpecificType ?subclass ?person rdfs:label ?personName .
} WHERE { ?person vitro:mostSpecificType ?subclass
{ } WHERE {
?subject ?property ?authorship {
} UNION { ?subject ?property ?authorship
?subject ?property ?authorship . } UNION {
?authorship ?authorshipProperty ?authorshipValue ?subject ?property ?authorship .
} UNION { ?authorship ?authorshipProperty ?authorshipValue
?subject ?property ?authorship . } UNION {
?authorship core:linkedAuthor ?person . ?subject ?property ?authorship .
?person rdfs:label ?personName ?authorship core:relates ?person .
} UNION { ?person rdfs:label ?personName
?subject ?property ?authorship . } UNION {
?authorship core:linkedAuthor ?person . ?subject ?property ?authorship .
?person rdfs:label ?personName . ?authorship core:relates ?person .
?person vitro:mostSpecificType ?subclass ?person rdfs:label ?personName .
} ?person vitro:mostSpecificType ?subclass
} }
</query-construct> }
</query-construct>
<template>propStatement-informationResourceInAuthorship.ftl</template>
</list-view-config> <template>propStatement-informationResourceInAuthorship.ftl</template>
</list-view-config>

View file

@ -15,9 +15,9 @@
<#local linkedIndividual> <#local linkedIndividual>
<#if statement.award??> <#if statement.award??>
<a href="${profileUrl(statement.uri("award"))}" title="${i18n().award_name}">${statement.awardLabel!statement.localName}</a> <a href="${profileUrl(statement.uri("award"))}" title="${i18n().award_name}">${statement.awardLabel!statement.localName!}</a>
<#else> <#else>
<a href="${profileUrl(statement.uri("awardReceipt"))}" title="${i18n().award_receipt_name}">${statement.receiptLabel!statement.localName}</a> <a href="${profileUrl(statement.uri("awardReceipt"))}" title="${i18n().award_receipt_name}">${statement.receiptLabel!statement.localName!}</a>
</#if> </#if>
</#local> </#local>

View file

@ -47,6 +47,6 @@
</#if> </#if>
</#local> </#local>
${linkedIndividual} ${awardOrAdminBy} ${dateTime!} ${statement.subclass!} ${linkedIndividual} ${awardOrAdminBy} ${dateTime!}
</#if> </#if>
</#macro> </#macro>

View file

@ -101,8 +101,8 @@ public class AddAuthorsToInformationResourceGenerator extends VivoBaseGenerator
private String getN3NewAuthorship() { private String getN3NewAuthorship() {
return getN3PrefixString() + return getN3PrefixString() +
"?authorshipUri a core:Authorship ;\n" + "?authorshipUri a core:Authorship ;\n" +
" core:linkedInformationResource ?infoResource .\n" + " core:relates ?infoResource .\n" +
"?infoResource core:informationResourceInAuthorship ?authorshipUri ."; "?infoResource core:relatedBy ?authorshipUri .";
} }
private String getN3AuthorshipRank() { private String getN3AuthorshipRank() {

View file

@ -1,311 +1,311 @@
/* $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 java.util.Arrays; import java.util.Arrays;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import com.hp.hpl.jena.vocabulary.XSD; import com.hp.hpl.jena.vocabulary.XSD;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary; 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.AutocompleteRequiredInputValidator;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.DateTimeIntervalValidationVTwo; 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.DateTimeWithPrecisionVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesWithParent; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesWithParent;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo; 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.VTwo.fields.IndividualsViaVClassOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
public class AddPresenterRoleToPersonGenerator extends VivoBaseGenerator implements public class AddPresenterRoleToPersonGenerator extends VivoBaseGenerator implements
EditConfigurationGenerator { EditConfigurationGenerator {
final static String presentationClass = vivoCore + "Presentation"; final static String presentationClass = vivoCore + "Presentation";
final static String roleClass = vivoCore + "PresenterRole"; final static String roleClass = vivoCore + "PresenterRole";
final static String conferenceClass = bibo + "Conference"; final static String conferenceClass = bibo + "Conference";
final static String hasRolePred = vivoCore + "hasPresenterRole"; final static String hasRolePred = "http://purl.obolibrary.org/obo/RO_0000053";
final static String roleOfPred = vivoCore + "presenterRoleOf"; final static String roleOfPred = "http://purl.obolibrary.org/obo/RO_0000052";
final static String roleRealizedInPred = vivoCore + "roleRealizedIn"; final static String roleRealizedInPred = "http://purl.obolibrary.org/obo/BFO_0000054";
final static String realizedRolePred = vivoCore + "realizedRole"; final static String realizedRolePred = "http://purl.obolibrary.org/obo/BFO_0000055";
final static String includesEventPred = vivoCore + "includesEvent"; final static String includesEventPred = "http://purl.obolibrary.org/obo/BFO_0000051";
final static String eventWithinPred = vivoCore + "eventWithin"; final static String eventWithinPred = "http://purl.obolibrary.org/obo/BFO_0000050";
final static String roleToInterval = vivoCore + "dateTimeInterval"; final static String roleToInterval = 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";
final static String intervalToEnd = vivoCore + "end"; final static String intervalToEnd = vivoCore + "end";
final static String dateTimeValueType = vivoCore + "DateTimeValue"; final static String dateTimeValueType = vivoCore + "DateTimeValue";
final static String dateTimeValue = vivoCore + "dateTime"; final static String dateTimeValue = vivoCore + "dateTime";
final static String dateTimePrecision = vivoCore + "dateTimePrecision"; final static String dateTimePrecision = vivoCore + "dateTimePrecision";
public AddPresenterRoleToPersonGenerator() {} public AddPresenterRoleToPersonGenerator() {}
@Override @Override
public EditConfigurationVTwo getEditConfiguration(VitroRequest vreq, public EditConfigurationVTwo getEditConfiguration(VitroRequest vreq,
HttpSession session) throws Exception { HttpSession session) throws Exception {
EditConfigurationVTwo conf = new EditConfigurationVTwo(); EditConfigurationVTwo conf = new EditConfigurationVTwo();
initBasics(conf, vreq); initBasics(conf, vreq);
initPropertyParameters(vreq, session, conf); initPropertyParameters(vreq, session, conf);
initObjectPropForm(conf, vreq); initObjectPropForm(conf, vreq);
conf.setTemplate("addPresenterRoleToPerson.ftl"); conf.setTemplate("addPresenterRoleToPerson.ftl");
conf.setVarNameForSubject("person"); conf.setVarNameForSubject("person");
conf.setVarNameForPredicate("predicate"); conf.setVarNameForPredicate("predicate");
conf.setVarNameForObject("role"); conf.setVarNameForObject("role");
conf.setN3Required( Arrays.asList( n3ForNewRole, conf.setN3Required( Arrays.asList( n3ForNewRole,
roleLabelAssertion) ); roleLabelAssertion) );
conf.setN3Optional( Arrays.asList( n3ForNewPresentation, conf.setN3Optional( Arrays.asList( n3ForNewPresentation,
n3ForExistingPresentation, n3ForExistingPresentation,
n3ForNewConferenceNewPres, n3ForNewConferenceNewPres,
n3ForNewConferenceExistingPres, n3ForNewConferenceExistingPres,
n3ForExistingConferenceNewPres, n3ForExistingConferenceNewPres,
n3ForExistingConferenceExistingPres, n3ForExistingConferenceExistingPres,
n3ForStart, n3ForStart,
n3ForEnd ) ); n3ForEnd ) );
conf.addNewResource("presentation", DEFAULT_NS_FOR_NEW_RESOURCE); conf.addNewResource("presentation", DEFAULT_NS_FOR_NEW_RESOURCE);
conf.addNewResource("newConference", DEFAULT_NS_FOR_NEW_RESOURCE); conf.addNewResource("newConference", DEFAULT_NS_FOR_NEW_RESOURCE);
conf.addNewResource("role", DEFAULT_NS_FOR_NEW_RESOURCE); conf.addNewResource("role", DEFAULT_NS_FOR_NEW_RESOURCE);
conf.addNewResource("intervalNode", DEFAULT_NS_FOR_NEW_RESOURCE); conf.addNewResource("intervalNode", DEFAULT_NS_FOR_NEW_RESOURCE);
conf.addNewResource("startNode", DEFAULT_NS_FOR_NEW_RESOURCE); conf.addNewResource("startNode", DEFAULT_NS_FOR_NEW_RESOURCE);
conf.addNewResource("endNode", DEFAULT_NS_FOR_NEW_RESOURCE); conf.addNewResource("endNode", DEFAULT_NS_FOR_NEW_RESOURCE);
//uris in scope: none //uris in scope: none
//literals in scope: none //literals in scope: none
conf.setUrisOnform(Arrays.asList("existingPresentation", "existingConference", "presentationType")); conf.setUrisOnform(Arrays.asList("existingPresentation", "existingConference", "presentationType"));
conf.setLiteralsOnForm(Arrays.asList("presentationLabel", "presentationLabelDisplay", "conferenceLabel", "conferenceLabelDisplay", "roleLabel")); conf.setLiteralsOnForm(Arrays.asList("presentationLabel", "presentationLabelDisplay", "conferenceLabel", "conferenceLabelDisplay", "roleLabel"));
conf.addSparqlForExistingLiteral("presentationLabel", presentationLabelQuery); conf.addSparqlForExistingLiteral("presentationLabel", presentationLabelQuery);
conf.addSparqlForExistingLiteral("conferenceLabel", conferenceLabelQuery); conf.addSparqlForExistingLiteral("conferenceLabel", conferenceLabelQuery);
conf.addSparqlForExistingLiteral("roleLabel", roleLabelQuery); conf.addSparqlForExistingLiteral("roleLabel", roleLabelQuery);
conf.addSparqlForExistingUris("existingPresentation", presentationQuery); conf.addSparqlForExistingUris("existingPresentation", presentationQuery);
conf.addSparqlForExistingUris("existingConference", existingConferenceQuery); conf.addSparqlForExistingUris("existingConference", existingConferenceQuery);
conf.addSparqlForExistingUris("presentationType", presentationTypeQuery); conf.addSparqlForExistingUris("presentationType", presentationTypeQuery);
conf.addSparqlForExistingLiteral( conf.addSparqlForExistingLiteral(
"startField-value", existingStartDateQuery); "startField-value", existingStartDateQuery);
conf.addSparqlForExistingLiteral( conf.addSparqlForExistingLiteral(
"endField-value", existingEndDateQuery); "endField-value", existingEndDateQuery);
conf.addSparqlForExistingUris( conf.addSparqlForExistingUris(
"intervalNode", existingIntervalNodeQuery); "intervalNode", existingIntervalNodeQuery);
conf.addSparqlForExistingUris("startNode", existingStartNodeQuery); conf.addSparqlForExistingUris("startNode", existingStartNodeQuery);
conf.addSparqlForExistingUris("endNode", existingEndNodeQuery); conf.addSparqlForExistingUris("endNode", existingEndNodeQuery);
conf.addSparqlForExistingUris("startField-precision", conf.addSparqlForExistingUris("startField-precision",
existingStartPrecisionQuery); existingStartPrecisionQuery);
conf.addSparqlForExistingUris("endField-precision", conf.addSparqlForExistingUris("endField-precision",
existingEndPrecisionQuery); existingEndPrecisionQuery);
conf.addField( new FieldVTwo(). // an autocomplete field conf.addField( new FieldVTwo(). // an autocomplete field
setName("existingPresentation") setName("existingPresentation")
); );
conf.addField( new FieldVTwo(). conf.addField( new FieldVTwo().
setName("presentationLabelDisplay") setName("presentationLabelDisplay")
.setRangeDatatypeUri( XSD.xstring.toString() ). .setRangeDatatypeUri( XSD.xstring.toString() ).
setValidators( list("datatype:" + XSD.xstring.toString()) ) setValidators( list("datatype:" + XSD.xstring.toString()) )
); );
conf.addField( new FieldVTwo(). conf.addField( new FieldVTwo().
setName("presentationLabel") setName("presentationLabel")
.setRangeDatatypeUri( XSD.xstring.toString() ). .setRangeDatatypeUri( XSD.xstring.toString() ).
setValidators( list("datatype:" + XSD.xstring.toString()) ) setValidators( list("datatype:" + XSD.xstring.toString()) )
); );
conf.addField( new FieldVTwo(). conf.addField( new FieldVTwo().
setName("presentationType"). setName("presentationType").
setValidators( list("nonempty") ). setValidators( list("nonempty") ).
setOptions( new ChildVClassesWithParent( setOptions( new ChildVClassesWithParent(
presentationClass)) presentationClass))
); );
conf.addField( new FieldVTwo(). conf.addField( new FieldVTwo().
setName("roleLabel") setName("roleLabel")
.setRangeDatatypeUri( XSD.xstring.toString() ). .setRangeDatatypeUri( XSD.xstring.toString() ).
setValidators( list("nonempty") ) setValidators( list("nonempty") )
); );
conf.addField( new FieldVTwo(). // an autocomplete field conf.addField( new FieldVTwo(). // an autocomplete field
setName("existingConference") setName("existingConference")
); );
conf.addField( new FieldVTwo(). conf.addField( new FieldVTwo().
setName("conferenceLabel"). setName("conferenceLabel").
setRangeDatatypeUri(XSD.xstring.toString() ) setRangeDatatypeUri(XSD.xstring.toString() )
); );
conf.addField( new FieldVTwo(). conf.addField( new FieldVTwo().
setName("conferenceLabelDisplay"). setName("conferenceLabelDisplay").
setRangeDatatypeUri(XSD.xstring.toString() ) setRangeDatatypeUri(XSD.xstring.toString() )
); );
conf.addField( new FieldVTwo().setName("startField"). conf.addField( new FieldVTwo().setName("startField").
setEditElement( setEditElement(
new DateTimeWithPrecisionVTwo(null, new DateTimeWithPrecisionVTwo(null,
VitroVocabulary.Precision.YEAR.uri(), VitroVocabulary.Precision.YEAR.uri(),
VitroVocabulary.Precision.NONE.uri()) VitroVocabulary.Precision.NONE.uri())
) )
); );
conf.addField( new FieldVTwo().setName("endField"). conf.addField( new FieldVTwo().setName("endField").
setEditElement( setEditElement(
new DateTimeWithPrecisionVTwo(null, new DateTimeWithPrecisionVTwo(null,
VitroVocabulary.Precision.YEAR.uri(), VitroVocabulary.Precision.YEAR.uri(),
VitroVocabulary.Precision.NONE.uri()) VitroVocabulary.Precision.NONE.uri())
) )
); );
conf.addValidator(new DateTimeIntervalValidationVTwo("startField","endField")); conf.addValidator(new DateTimeIntervalValidationVTwo("startField","endField"));
conf.addValidator(new AntiXssValidation()); conf.addValidator(new AntiXssValidation());
conf.addValidator(new AutocompleteRequiredInputValidator("existingPresentation", "presentationLabel")); conf.addValidator(new AutocompleteRequiredInputValidator("existingPresentation", "presentationLabel"));
prepare(vreq, conf); prepare(vreq, conf);
return conf; return conf;
} }
/* N3 assertions */ /* N3 assertions */
final static String n3ForNewRole = final static String n3ForNewRole =
"@prefix core: <" + vivoCore + "> . \n\n" + "@prefix core: <" + vivoCore + "> . \n\n" +
"?person <" + hasRolePred + "> ?role . \n" + "?person <" + hasRolePred + "> ?role . \n" +
"?role a <" + roleClass + "> . \n" + "?role a <" + roleClass + "> . \n" +
"?role <" + roleOfPred + "> ?person . "; "?role <" + roleOfPred + "> ?person . ";
final static String roleLabelAssertion = final static String roleLabelAssertion =
"?role <" + label + "> ?roleLabel ."; "?role <" + label + "> ?roleLabel .";
final static String n3ForNewPresentation = final static String n3ForNewPresentation =
"?role <" + roleRealizedInPred + "> ?presentation . \n" + "?role <" + roleRealizedInPred + "> ?presentation . \n" +
"?presentation <" + realizedRolePred + "> ?role . \n" + "?presentation <" + realizedRolePred + "> ?role . \n" +
"?presentation <" + label + "> ?presentationLabel . \n" + "?presentation <" + label + "> ?presentationLabel . \n" +
"?presentation a ?presentationType ."; "?presentation a ?presentationType .";
final static String n3ForExistingPresentation = final static String n3ForExistingPresentation =
"?role <" + roleRealizedInPred + "> ?existingPresentation . \n" + "?role <" + roleRealizedInPred + "> ?existingPresentation . \n" +
"?existingPresentation <" + realizedRolePred + "> ?role . \n" + "?existingPresentation <" + realizedRolePred + "> ?role . \n" +
"?existingPresentation a ?presentationType ."; "?existingPresentation a ?presentationType .";
final static String n3ForNewConferenceNewPres = final static String n3ForNewConferenceNewPres =
"?presentation <" + eventWithinPred + "> ?newConference . \n" + "?presentation <" + eventWithinPred + "> ?newConference . \n" +
"?newConference <" + includesEventPred + "> ?presentation . \n" + "?newConference <" + includesEventPred + "> ?presentation . \n" +
"?newConference a <" + conferenceClass + "> . \n" + "?newConference a <" + conferenceClass + "> . \n" +
"?newConference <" + label + "> ?conferenceLabel ."; "?newConference <" + label + "> ?conferenceLabel .";
final static String n3ForNewConferenceExistingPres = final static String n3ForNewConferenceExistingPres =
"?existingPresentation <" + eventWithinPred + "> ?newConference . \n" + "?existingPresentation <" + eventWithinPred + "> ?newConference . \n" +
"?newConference <" + includesEventPred + "> ?existingPresentation . \n" + "?newConference <" + includesEventPred + "> ?existingPresentation . \n" +
"?newConference a <" + conferenceClass + "> . \n" + "?newConference a <" + conferenceClass + "> . \n" +
"?newConference <" + label + "> ?conferenceLabel ."; "?newConference <" + label + "> ?conferenceLabel .";
final static String n3ForExistingConferenceNewPres = final static String n3ForExistingConferenceNewPres =
"?existingConference <" + includesEventPred + "> ?presentation . \n" + "?existingConference <" + includesEventPred + "> ?presentation . \n" +
"?presentation <" + eventWithinPred + "> ?existingConference . \n" + "?presentation <" + eventWithinPred + "> ?existingConference . \n" +
"?presentation <" + label + "> ?presentationLabel . "; "?presentation <" + label + "> ?presentationLabel . ";
final static String n3ForExistingConferenceExistingPres = final static String n3ForExistingConferenceExistingPres =
"?existingConference <" + includesEventPred + "> ?existingPresentation . \n" + "?existingConference <" + includesEventPred + "> ?existingPresentation . \n" +
"?existingPresentation <" + eventWithinPred + "> ?existingConference . "; "?existingPresentation <" + eventWithinPred + "> ?existingConference . ";
final static String n3ForStart = final static String n3ForStart =
"?role <" + roleToInterval + "> ?intervalNode . \n" + "?role <" + roleToInterval + "> ?intervalNode . \n" +
"?intervalNode a <" + intervalType + "> . \n" + "?intervalNode a <" + intervalType + "> . \n" +
"?intervalNode <" + intervalToStart + "> ?startNode . \n" + "?intervalNode <" + intervalToStart + "> ?startNode . \n" +
"?startNode a <" + dateTimeValueType + "> . \n" + "?startNode a <" + dateTimeValueType + "> . \n" +
"?startNode <" + dateTimeValue + "> ?startField-value . \n" + "?startNode <" + dateTimeValue + "> ?startField-value . \n" +
"?startNode <" + dateTimePrecision + "> ?startField-precision . \n"; "?startNode <" + dateTimePrecision + "> ?startField-precision . \n";
final static String n3ForEnd = final static String n3ForEnd =
"?role <" + roleToInterval + "> ?intervalNode . \n" + "?role <" + roleToInterval + "> ?intervalNode . \n" +
"?intervalNode a <" + intervalType + "> . \n" + "?intervalNode a <" + intervalType + "> . \n" +
"?intervalNode <" + intervalToEnd + "> ?endNode . \n" + "?intervalNode <" + intervalToEnd + "> ?endNode . \n" +
"?endNode a <" + dateTimeValueType + "> . \n" + "?endNode a <" + dateTimeValueType + "> . \n" +
"?endNode <" + dateTimeValue + "> ?endField-value . \n" + "?endNode <" + dateTimeValue + "> ?endField-value . \n" +
"?endNode <" + dateTimePrecision + "> ?endField-precision . \n"; "?endNode <" + dateTimePrecision + "> ?endField-precision . \n";
/* Queries for editing an existing entry */ /* Queries for editing an existing entry */
final static String roleLabelQuery = final static String roleLabelQuery =
"SELECT ?existingRoleLabel WHERE { \n" + "SELECT ?existingRoleLabel WHERE { \n" +
"?role <" + label + "> ?existingRoleLabel . }"; "?role <" + label + "> ?existingRoleLabel . }";
final static String presentationQuery = final static String presentationQuery =
"SELECT ?existingPresentation WHERE { \n" + "SELECT ?existingPresentation WHERE { \n" +
"?role <" + roleRealizedInPred + "> ?existingPresentation . }"; "?role <" + roleRealizedInPred + "> ?existingPresentation . }";
final static String presentationLabelQuery = final static String presentationLabelQuery =
"SELECT ?existingPresentationLabel WHERE { \n" + "SELECT ?existingPresentationLabel WHERE { \n" +
"?role <" + roleRealizedInPred + "> ?existingPresentation . " + "?role <" + roleRealizedInPred + "> ?existingPresentation . " +
"?existingPresentation <" + label + "> ?existingPresentationLabel . }"; "?existingPresentation <" + label + "> ?existingPresentationLabel . }";
final static String presentationTypeQuery = final static String presentationTypeQuery =
"PREFIX vitro: <" + VitroVocabulary.vitroURI + "> \n" + "PREFIX vitro: <" + VitroVocabulary.vitroURI + "> \n" +
"SELECT ?existingPresentationType WHERE { \n" + "SELECT ?existingPresentationType WHERE { \n" +
"?role <" + roleRealizedInPred + "> ?existingPresentation . " + "?role <" + roleRealizedInPred + "> ?existingPresentation . " +
"?existingPresentation vitro:mostSpecificType ?existingPresentationType . }"; "?existingPresentation vitro:mostSpecificType ?existingPresentationType . }";
final static String existingConferenceQuery = final static String existingConferenceQuery =
"SELECT ?existingConference WHERE { \n" + "SELECT ?existingConference WHERE { \n" +
"?role <" + roleRealizedInPred + "> ?existingPresentation . " + "?role <" + roleRealizedInPred + "> ?existingPresentation . " +
"?existingPresentation <" + eventWithinPred + "> ?existingConference . }"; "?existingPresentation <" + eventWithinPred + "> ?existingConference . }";
final static String conferenceLabelQuery = final static String conferenceLabelQuery =
"SELECT ?existingConferenceLabel WHERE { \n" + "SELECT ?existingConferenceLabel WHERE { \n" +
"?role <" + roleRealizedInPred + "> ?existingPresentation . " + "?role <" + roleRealizedInPred + "> ?existingPresentation . " +
"?existingPresentation <" + eventWithinPred + "> ?existingConference . \n" + "?existingPresentation <" + eventWithinPred + "> ?existingConference . \n" +
"?existingConference <" + label + "> ?existingConferenceLabel . }"; "?existingConference <" + label + "> ?existingConferenceLabel . }";
final static String existingStartDateQuery = final static String existingStartDateQuery =
"SELECT ?existingDateStart WHERE { \n" + "SELECT ?existingDateStart WHERE { \n" +
" ?role <" + roleToInterval + "> ?intervalNode . \n" + " ?role <" + roleToInterval + "> ?intervalNode . \n" +
" ?intervalNode a <" + intervalType + "> . \n" + " ?intervalNode a <" + intervalType + "> . \n" +
" ?intervalNode <" + intervalToStart + "> ?startNode . \n" + " ?intervalNode <" + intervalToStart + "> ?startNode . \n" +
" ?startNode a <" + dateTimeValueType +"> . \n" + " ?startNode a <" + dateTimeValueType +"> . \n" +
" ?startNode <" + dateTimeValue + "> ?existingDateStart . }"; " ?startNode <" + dateTimeValue + "> ?existingDateStart . }";
final static String existingEndDateQuery = final static String existingEndDateQuery =
"SELECT ?existingEndDate WHERE { \n" + "SELECT ?existingEndDate WHERE { \n" +
" ?role <" + roleToInterval + "> ?intervalNode . \n" + " ?role <" + roleToInterval + "> ?intervalNode . \n" +
" ?intervalNode a <" + intervalType + "> . \n " + " ?intervalNode a <" + intervalType + "> . \n " +
" ?intervalNode <" + intervalToEnd + "> ?endNode . \n" + " ?intervalNode <" + intervalToEnd + "> ?endNode . \n" +
" ?endNode a <" + dateTimeValueType + "> . \n" + " ?endNode a <" + dateTimeValueType + "> . \n" +
" ?endNode <" + dateTimeValue + "> ?existingEndDate . }"; " ?endNode <" + dateTimeValue + "> ?existingEndDate . }";
final static String existingIntervalNodeQuery = final static String existingIntervalNodeQuery =
"SELECT ?existingIntervalNode WHERE { \n" + "SELECT ?existingIntervalNode WHERE { \n" +
" ?role <" + roleToInterval + "> ?existingIntervalNode . \n" + " ?role <" + roleToInterval + "> ?existingIntervalNode . \n" +
" ?existingIntervalNode a <" + intervalType + "> . }"; " ?existingIntervalNode a <" + intervalType + "> . }";
final static String existingStartNodeQuery = final static String existingStartNodeQuery =
"SELECT ?existingStartNode WHERE { \n" + "SELECT ?existingStartNode WHERE { \n" +
" ?role <" + roleToInterval + "> ?intervalNode . \n" + " ?role <" + roleToInterval + "> ?intervalNode . \n" +
" ?intervalNode a <" + intervalType + "> . \n" + " ?intervalNode a <" + intervalType + "> . \n" +
" ?intervalNode <" + intervalToStart + "> ?existingStartNode . \n" + " ?intervalNode <" + intervalToStart + "> ?existingStartNode . \n" +
" ?existingStartNode a <" + dateTimeValueType + "> . } "; " ?existingStartNode a <" + dateTimeValueType + "> . } ";
final static String existingEndNodeQuery = final static String existingEndNodeQuery =
"SELECT ?existingEndNode WHERE { \n" + "SELECT ?existingEndNode WHERE { \n" +
" ?role <" + roleToInterval + "> ?intervalNode . \n" + " ?role <" + roleToInterval + "> ?intervalNode . \n" +
" ?intervalNode a <" + intervalType + "> . \n" + " ?intervalNode a <" + intervalType + "> . \n" +
" ?intervalNode <" + intervalToEnd + "> ?existingEndNode . \n" + " ?intervalNode <" + intervalToEnd + "> ?existingEndNode . \n" +
" ?existingEndNode a <" + dateTimeValueType + "> .} "; " ?existingEndNode a <" + dateTimeValueType + "> .} ";
final static String existingStartPrecisionQuery = final static String existingStartPrecisionQuery =
"SELECT ?existingStartPrecision WHERE { \n" + "SELECT ?existingStartPrecision WHERE { \n" +
" ?role <" + roleToInterval + "> ?intervalNode . \n" + " ?role <" + roleToInterval + "> ?intervalNode . \n" +
" ?intervalNode a <" + intervalType + "> . \n" + " ?intervalNode a <" + intervalType + "> . \n" +
" ?intervalNode <" + intervalToStart + "> ?startNode . \n" + " ?intervalNode <" + intervalToStart + "> ?startNode . \n" +
" ?startNode a <" + dateTimeValueType + "> . \n" + " ?startNode a <" + dateTimeValueType + "> . \n" +
" ?startNode <" + dateTimePrecision + "> ?existingStartPrecision . }"; " ?startNode <" + dateTimePrecision + "> ?existingStartPrecision . }";
final static String existingEndPrecisionQuery = final static String existingEndPrecisionQuery =
"SELECT ?existingEndPrecision WHERE { \n" + "SELECT ?existingEndPrecision WHERE { \n" +
" ?role <" + roleToInterval + "> ?intervalNode . \n" + " ?role <" + roleToInterval + "> ?intervalNode . \n" +
" ?intervalNode a <" + intervalType + "> . \n" + " ?intervalNode a <" + intervalType + "> . \n" +
" ?intervalNode <" + intervalToEnd + "> ?endNode . \n" + " ?intervalNode <" + intervalToEnd + "> ?endNode . \n" +
" ?endNode a <" + dateTimeValueType + "> . \n" + " ?endNode a <" + dateTimeValueType + "> . \n" +
" ?endNode <" + dateTimePrecision + "> ?existingEndPrecision . }"; " ?endNode <" + dateTimePrecision + "> ?existingEndPrecision . }";
} }